2018-08-01T00:00:33Z broccolistem joined #lisp 2018-08-01T00:02:22Z dddddd quit (Remote host closed the connection) 2018-08-01T00:03:11Z graphene quit (Remote host closed the connection) 2018-08-01T00:03:46Z pierpal joined #lisp 2018-08-01T00:04:27Z graphene joined #lisp 2018-08-01T00:10:30Z fikka joined #lisp 2018-08-01T00:13:38Z Achylles quit (Remote host closed the connection) 2018-08-01T00:15:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T00:21:00Z fikka joined #lisp 2018-08-01T00:26:09Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T00:34:05Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-01T00:37:27Z SaganMan quit (Ping timeout: 240 seconds) 2018-08-01T00:40:08Z SaganMan joined #lisp 2018-08-01T00:41:00Z fikka joined #lisp 2018-08-01T00:41:52Z terpri joined #lisp 2018-08-01T00:45:53Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T00:47:25Z Kundry_Wag joined #lisp 2018-08-01T00:54:35Z Kundry_Wag quit (Remote host closed the connection) 2018-08-01T00:56:42Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-01T00:58:12Z maximjaffe quit (Quit: Leaving) 2018-08-01T00:59:13Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-01T00:59:50Z Yaargh quit (Ping timeout: 245 seconds) 2018-08-01T01:00:20Z papachan quit (Quit: WeeChat 2.2) 2018-08-01T01:01:41Z fikka joined #lisp 2018-08-01T01:05:09Z nanozz joined #lisp 2018-08-01T01:06:35Z fikka quit (Ping timeout: 244 seconds) 2018-08-01T01:08:22Z nanoz quit (Ping timeout: 265 seconds) 2018-08-01T01:22:00Z fikka joined #lisp 2018-08-01T01:22:23Z Josh_2 quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-08-01T01:24:19Z Kundry_Wag joined #lisp 2018-08-01T01:26:45Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T01:27:51Z papachan joined #lisp 2018-08-01T01:29:29Z phoe_ quit (Ping timeout: 268 seconds) 2018-08-01T01:32:38Z Fare joined #lisp 2018-08-01T01:34:28Z jinkies quit (Ping timeout: 265 seconds) 2018-08-01T01:35:29Z graphene quit (Remote host closed the connection) 2018-08-01T01:36:42Z graphene joined #lisp 2018-08-01T01:37:22Z JuanDaugherty quit (Ping timeout: 265 seconds) 2018-08-01T01:38:25Z ChanServ has set mode +o p_l 2018-08-01T01:42:20Z fikka joined #lisp 2018-08-01T01:43:50Z Arcaelyx_ joined #lisp 2018-08-01T01:46:09Z nanozz quit (Ping timeout: 248 seconds) 2018-08-01T01:46:15Z FreeBirdLjj joined #lisp 2018-08-01T01:46:50Z Arcaelyx quit (Ping timeout: 260 seconds) 2018-08-01T01:47:14Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T01:51:48Z NoNumber joined #lisp 2018-08-01T01:53:05Z fikka joined #lisp 2018-08-01T01:56:59Z robotoad quit (Quit: robotoad) 2018-08-01T01:57:44Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T01:58:14Z sjl joined #lisp 2018-08-01T02:03:08Z fikka joined #lisp 2018-08-01T02:03:16Z graphene quit (Remote host closed the connection) 2018-08-01T02:04:27Z graphene joined #lisp 2018-08-01T02:04:55Z kajo joined #lisp 2018-08-01T02:05:02Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-01T02:07:26Z aindilis quit (Read error: Connection reset by peer) 2018-08-01T02:08:18Z fikka quit (Ping timeout: 265 seconds) 2018-08-01T02:10:34Z vsync quit (Ping timeout: 264 seconds) 2018-08-01T02:11:56Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T02:15:17Z aindilis joined #lisp 2018-08-01T02:16:06Z Kundry_Wag quit (Remote host closed the connection) 2018-08-01T02:16:41Z Kundry_Wag joined #lisp 2018-08-01T02:17:37Z robotoad joined #lisp 2018-08-01T02:19:37Z dented42 joined #lisp 2018-08-01T02:21:21Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-01T02:23:14Z fikka joined #lisp 2018-08-01T02:25:22Z papachan quit (Ping timeout: 256 seconds) 2018-08-01T02:27:42Z fikka quit (Ping timeout: 244 seconds) 2018-08-01T02:31:10Z NoNumber left #lisp 2018-08-01T02:31:39Z graphene quit (Remote host closed the connection) 2018-08-01T02:32:52Z graphene joined #lisp 2018-08-01T02:33:45Z smasta joined #lisp 2018-08-01T02:40:02Z v0|d joined #lisp 2018-08-01T02:43:36Z fikka joined #lisp 2018-08-01T02:48:33Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T02:49:11Z graphene quit (Remote host closed the connection) 2018-08-01T02:51:46Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T03:02:44Z didi joined #lisp 2018-08-01T03:03:42Z didi: beach: You sent me a link, some days ago, about copying, equality, and other things in Common Lisp. Could you resend it to me? I lost it. 2018-08-01T03:04:14Z fikka joined #lisp 2018-08-01T03:06:27Z renzhi quit (Quit: WeeChat 2.1) 2018-08-01T03:08:27Z v0|d quit (Ping timeout: 240 seconds) 2018-08-01T03:08:34Z renzhi joined #lisp 2018-08-01T03:08:54Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T03:14:43Z fikka joined #lisp 2018-08-01T03:15:11Z anewuser joined #lisp 2018-08-01T03:15:43Z JuanDaugherty joined #lisp 2018-08-01T03:15:45Z v0|d joined #lisp 2018-08-01T03:18:36Z pierpa: I dont know what beach sent you, but a widely quoted writing about copying and equality is http://www.nhplace.com/kent/PS/EQUAL.html maybe that's the one you want. 2018-08-01T03:18:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T03:21:12Z pierpa quit (Quit: Page closed) 2018-08-01T03:22:59Z JuanDaugherty quit (Quit: Exeunt) 2018-08-01T03:24:44Z fikka joined #lisp 2018-08-01T03:26:16Z didi: pierpal: Indeed, it is. Thank you. 2018-08-01T03:28:57Z terpri quit (Ping timeout: 240 seconds) 2018-08-01T03:29:11Z fikka quit (Ping timeout: 244 seconds) 2018-08-01T03:31:24Z pierpal: ;) 2018-08-01T03:32:47Z anewuser quit (Read error: Connection reset by peer) 2018-08-01T03:34:40Z jlarocco joined #lisp 2018-08-01T03:35:16Z pierpal quit (Quit: Poof) 2018-08-01T03:35:37Z pierpal joined #lisp 2018-08-01T03:36:58Z beach: Good morning everyone! 2018-08-01T03:37:09Z beach: Thanks pierpa. 2018-08-01T03:37:36Z no-defun-allowed: hello beach 2018-08-01T03:38:26Z renzhi quit (Quit: WeeChat 2.1) 2018-08-01T03:38:51Z renzhi joined #lisp 2018-08-01T03:38:54Z anewuser joined #lisp 2018-08-01T03:40:39Z renzhi quit (Client Quit) 2018-08-01T03:41:24Z renzhi joined #lisp 2018-08-01T03:44:55Z fikka joined #lisp 2018-08-01T03:48:49Z smasta quit (Ping timeout: 244 seconds) 2018-08-01T03:49:44Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T03:54:06Z detectiveaoi quit (Quit: Leaving...) 2018-08-01T03:54:48Z dented42 joined #lisp 2018-08-01T03:55:40Z fikka joined #lisp 2018-08-01T03:57:22Z anewuser quit (Ping timeout: 264 seconds) 2018-08-01T04:00:49Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T04:03:17Z Bike quit (Quit: Lost terminal) 2018-08-01T04:05:45Z fikka joined #lisp 2018-08-01T04:10:25Z nowhere_man quit (Remote host closed the connection) 2018-08-01T04:10:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T04:10:48Z nowhere_man joined #lisp 2018-08-01T04:13:15Z pierpal quit (Quit: Poof) 2018-08-01T04:13:33Z pierpal joined #lisp 2018-08-01T04:14:38Z JuanDaugherty joined #lisp 2018-08-01T04:15:52Z fikka joined #lisp 2018-08-01T04:20:39Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T04:26:08Z fikka joined #lisp 2018-08-01T04:26:13Z jlarocco quit (Remote host closed the connection) 2018-08-01T04:30:57Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T04:34:58Z X-Scale quit (Quit: Want to be different? Try HydraIRC -> http://www.hydrairc.com <-) 2018-08-01T04:46:07Z fikka joined #lisp 2018-08-01T04:51:45Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T04:56:38Z fikka joined #lisp 2018-08-01T04:59:42Z lavaflow quit (Read error: Connection reset by peer) 2018-08-01T05:01:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T05:01:42Z lavaflow joined #lisp 2018-08-01T05:07:09Z fikka joined #lisp 2018-08-01T05:11:59Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T05:13:44Z vlatkoB joined #lisp 2018-08-01T05:17:09Z fikka joined #lisp 2018-08-01T05:21:46Z orivej joined #lisp 2018-08-01T05:21:58Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T05:37:04Z terpri joined #lisp 2018-08-01T05:37:18Z fikka joined #lisp 2018-08-01T05:40:48Z sauvin joined #lisp 2018-08-01T05:40:49Z sauvin quit (Max SendQ exceeded) 2018-08-01T05:41:42Z thinkpad quit (Ping timeout: 268 seconds) 2018-08-01T05:42:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T05:42:29Z thinkpad joined #lisp 2018-08-01T05:47:45Z thinkpad quit (Ping timeout: 264 seconds) 2018-08-01T05:49:20Z didi: How many implementations implement SBCL's sequence extension? Is there a "trivial" package for it? 2018-08-01T05:49:30Z thinkpad joined #lisp 2018-08-01T05:51:05Z sauvin joined #lisp 2018-08-01T05:54:27Z orivej quit (Ping timeout: 240 seconds) 2018-08-01T05:57:58Z fikka joined #lisp 2018-08-01T06:03:06Z fikka quit (Ping timeout: 256 seconds) 2018-08-01T06:04:21Z shifty joined #lisp 2018-08-01T06:04:42Z shifty: #join /slackware 2018-08-01T06:06:59Z shifty left #lisp 2018-08-01T06:07:15Z v0|d: what does TN stands for in (cmu|sb)cl? 2018-08-01T06:07:37Z v0|d: didi: morning. 2018-08-01T06:07:51Z rozenglass quit (Remote host closed the connection) 2018-08-01T06:08:05Z didi: v0|d: o/ 2018-08-01T06:08:24Z fikka joined #lisp 2018-08-01T06:12:49Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T06:17:06Z gector quit (Ping timeout: 244 seconds) 2018-08-01T06:18:29Z gector joined #lisp 2018-08-01T06:24:13Z gector quit (Remote host closed the connection) 2018-08-01T06:27:23Z jackdaniel: v0|d: TN? 2018-08-01T06:27:47Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T06:27:57Z gector joined #lisp 2018-08-01T06:28:07Z jackdaniel: didi: I think only SBCL and ABCL right now. I plan to add it to ECL at some point, but no work on that has been done so far 2018-08-01T06:28:27Z fikka joined #lisp 2018-08-01T06:29:03Z wildbartty quit (Remote host closed the connection) 2018-08-01T06:29:23Z didi: jackdaniel: Oh, nice. So it's well received, it seems. 2018-08-01T06:33:30Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T06:37:02Z JuanDaugherty quit (Quit: Exeunt) 2018-08-01T06:40:46Z fikka joined #lisp 2018-08-01T06:47:02Z gravicappa joined #lisp 2018-08-01T06:47:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-01T07:04:10Z Fare joined #lisp 2018-08-01T07:05:41Z ofi joined #lisp 2018-08-01T07:08:55Z dented42 joined #lisp 2018-08-01T07:45:41Z beach: v0|d: Same question as jackdaniel. What do you mean by TN? 2018-08-01T07:48:44Z drot quit (Ping timeout: 268 seconds) 2018-08-01T07:49:43Z dddddd joined #lisp 2018-08-01T07:51:02Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T07:51:52Z drot joined #lisp 2018-08-01T07:52:01Z ramus quit (Ping timeout: 248 seconds) 2018-08-01T08:04:34Z Fare quit (Ping timeout: 264 seconds) 2018-08-01T08:16:38Z quipa joined #lisp 2018-08-01T08:23:51Z schweers joined #lisp 2018-08-01T08:25:53Z test1600 joined #lisp 2018-08-01T08:26:55Z trittweiler joined #lisp 2018-08-01T08:28:23Z beach: trittweiler: The talk you gave me a link to is very hard to understand, partly because he talks to fast, partly because of his accept, and partly because he assumes knowledge that I might not have. So I have started watching some other talks on the same subject first. After I understand a bit more, I'll get back to the one you recommended. 2018-08-01T08:30:35Z shka: what talk? 2018-08-01T08:30:56Z beach: Abaout the Shenandoah garbage collector. 2018-08-01T08:31:12Z beach: This one was the one he recommended: https://www.youtube.com/watch?v=qBQtbkmURiQ 2018-08-01T08:32:31Z shka: Shenandoah great 2018-08-01T08:32:38Z shka: i don't even know how to say it 2018-08-01T08:32:56Z trittweiler: beach: I haven't actually watched it yet except for the first few minutes. I stumbled on it and thought you may be interested, that's really all :) 2018-08-01T08:33:58Z shka: very intense eastern accent 2018-08-01T08:33:59Z beach: Yes, and I thank you for that. It looks quite interesting. 2018-08-01T08:34:02Z trittweiler: If it's not immediately useful, don't sweat over it :) 2018-08-01T08:34:24Z beach: Sure, sure. But I want to know about these things. 2018-08-01T08:34:29Z no-defun-allowed: i got genera running 2018-08-01T08:34:31Z beach: So it's great. 2018-08-01T08:35:17Z trittweiler: there may be 2018-08-01T08:35:23Z trittweiler: (white)papers about that gc 2018-08-01T08:36:02Z trittweiler: which wouldn't have the accent issue 2018-08-01T08:37:17Z orivej joined #lisp 2018-08-01T08:37:24Z beach: Yes, I will read some papers and watch some more movies about it. 2018-08-01T08:37:32Z beach: It seems they have some very good ideas. 2018-08-01T08:37:55Z beach: At the same time, I learn about what they have been doing in Java before this one. 2018-08-01T08:38:43Z shka: well, there was A LOT of the development in the java land 2018-08-01T08:38:54Z beach: shka: pronunciation: ʃɛnənˈdoʊə 2018-08-01T08:38:58Z schweers quit (Read error: Connection reset by peer) 2018-08-01T08:40:04Z shka: jvm has the benefit of being something that industry loves 2018-08-01T08:40:29Z shka: so there was huge ammount of time and effort thrown into it 2018-08-01T08:40:38Z beach: Indeed. 2018-08-01T08:46:00Z angavrilov joined #lisp 2018-08-01T08:49:02Z ebrasca quit (Remote host closed the connection) 2018-08-01T08:50:20Z no-defun-allowed uploaded an image: Screenshot_2018-08-01_18-49-25.png (566KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/WUlpYUTFiRdtcmeKgZlyFKTJ > 2018-08-01T09:00:34Z aeth: no-defun-allowed: So it's the best software environment and you're going to be working in it daily? 2018-08-01T09:01:15Z aeth: Hopefully it's much better than VAX like they said! 2018-08-01T09:01:45Z no-defun-allowed: yeah i'm gonna use zmacs to play tetris all day 2018-08-01T09:02:25Z aeth: I love those 90s graphics, complete with "Your Application" not fitting entirely in the circle 2018-08-01T09:02:36Z aeth: A more innocent time, before designers took over. 2018-08-01T09:02:48Z beach: no-defun-allowed: I am convinced that Genera is one of the nicest operating systems around, both when it comes to the user experience (with the integration of the tools) and when it comes to the facility with which one can write applications for it. 2018-08-01T09:02:57Z beach: no-defun-allowed: I am also convinced that we can do better. 2018-08-01T09:03:17Z no-defun-allowed: damn straight 2018-08-01T09:03:31Z beach: no-defun-allowed: In particular, I think we can have all the advantages of Genera, but on stock hardware, and with a safe multi-user environment. 2018-08-01T09:03:55Z no-defun-allowed: not sure about "stock hardware" but the rest is feasible 2018-08-01T09:04:17Z beach: I am absolutely sure. 2018-08-01T09:04:21Z no-defun-allowed: having type- and GC- tagged memory seems less painful than bitshifting out type info 2018-08-01T09:04:29Z beach: Nope. 2018-08-01T09:04:31Z schweers joined #lisp 2018-08-01T09:04:39Z quipa quit (Quit: Leaving) 2018-08-01T09:04:54Z quipa joined #lisp 2018-08-01T09:04:55Z aeth: no-defun-allowed: I think RISC-V is adding tagged memory 2018-08-01T09:04:56Z no-defun-allowed: yep. 2018-08-01T09:04:58Z beach: It is in the same instruction on x86-64. No shifting required. 2018-08-01T09:05:14Z quipa quit (Remote host closed the connection) 2018-08-01T09:05:45Z no-defun-allowed shrugs and goes back to genera documentation 2018-08-01T09:05:58Z quipa joined #lisp 2018-08-01T09:06:04Z aeth: no-defun-allowed: https://www.lowrisc.org/docs/tagged-memory-v0.1/ 2018-08-01T09:06:22Z no-defun-allowed: >Pressing the ABORT key gets you out of most kinds of trouble 2018-08-01T09:06:27Z beach: no-defun-allowed: You can even tell the x86-64 to trap on unaligned memory accesses, so you don't even have to check the type first. 2018-08-01T09:06:39Z no-defun-allowed: m$ removed the ABORT key to enforce the GUI on you!!! 2018-08-01T09:06:41Z quipa quit (Client Quit) 2018-08-01T09:06:58Z no-defun-allowed: that is impressive 2018-08-01T09:07:03Z maximjaffe joined #lisp 2018-08-01T09:07:10Z maximjaffe quit (Remote host closed the connection) 2018-08-01T09:07:16Z no-defun-allowed: risc-v isn't exactly stock though for most uses 2018-08-01T09:07:49Z quipa joined #lisp 2018-08-01T09:09:25Z beach: no-defun-allowed: But the main argument is this: if you try to create a Lisp-specific processor today, you couldn't afford to do the work to get all the fancy stuff in it, so it would be slower than if you had an interpreter for the Lisp machine running on the x86-64. 2018-08-01T09:09:57Z no-defun-allowed: that is true 2018-08-01T09:11:03Z beach: This is why I think we should create a SAFE Common Lisp system, include first-class global environments and protection to make it multi-user, and run it on stock hardware. 2018-08-01T09:11:05Z pierpal quit (Quit: Poof) 2018-08-01T09:11:24Z pierpal joined #lisp 2018-08-01T09:12:05Z beach: But, apparently, these days it seems I have to apologize for suggesting that we program in Common Lisp, so I'll be quiet. 2018-08-01T09:13:03Z nirved joined #lisp 2018-08-01T09:13:45Z aeth: no-defun-allowed: The great thing about RISC-V is that one day you could write a RISC-V hardware in a CL DSL and have CL all the way down without having to worry about compiler support at the same time as hardware support. 2018-08-01T09:14:15Z aeth: (Well, you still would need to find a way to replace physics with a fresh CL implementation, but that's another step.) 2018-08-01T09:15:54Z no-defun-allowed: i was thinking about doing such a design. it'd be 99% stack machine, with only stack, environment and flag registers publically exposed 2018-08-01T09:16:34Z no-defun-allowed: magic GNU🦄PONUT was involved too 2018-08-01T09:16:53Z magicGNUPONUT[m]: O.o 2018-08-01T09:17:14Z no-defun-allowed: yes you were don't lie to yourself 2018-08-01T09:17:22Z pierpal quit (Quit: Poof) 2018-08-01T09:17:22Z magicGNUPONUT[m]: Shhh, they'll put is in the school prison 2018-08-01T09:17:33Z no-defun-allowed: oh no 2018-08-01T09:17:37Z pierpal joined #lisp 2018-08-01T09:17:46Z no-defun-allowed: oh no oh no oh no not school prison. wait, whose school and which prison 2018-08-01T09:18:24Z magicGNUPONUT[m]: The one where the os is proprietary and kicks start the free software movment 2018-08-01T09:20:13Z no-defun-allowed: oh yeah that one 2018-08-01T09:21:25Z schweers: beach: no need to apologize for that suggestion ;) I think many people could use that advice. 2018-08-01T09:21:59Z beach: schweers: Thanks. 2018-08-01T09:22:20Z jsjolen joined #lisp 2018-08-01T09:25:38Z ramus joined #lisp 2018-08-01T09:25:49Z nirved_ joined #lisp 2018-08-01T09:26:04Z nirved_ quit (Client Quit) 2018-08-01T09:26:44Z no-defun-allowed: btw the mouse cable is a tail now. please update your programs 2018-08-01T09:26:59Z foom2 joined #lisp 2018-08-01T09:27:13Z Plazma_ joined #lisp 2018-08-01T09:28:02Z catern quit (Ping timeout: 248 seconds) 2018-08-01T09:28:02Z foom quit (Read error: Connection reset by peer) 2018-08-01T09:28:02Z bjorkintosh quit (Read error: Connection reset by peer) 2018-08-01T09:28:02Z Plazma quit (Read error: Connection reset by peer) 2018-08-01T09:28:03Z whartung quit (Ping timeout: 248 seconds) 2018-08-01T09:28:03Z ghostyy quit (Ping timeout: 248 seconds) 2018-08-01T09:28:15Z blt quit (Quit: ZNC 1.7.0 - https://znc.in) 2018-08-01T09:28:28Z whartung_ joined #lisp 2018-08-01T09:29:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T09:29:37Z nirved quit (Ping timeout: 248 seconds) 2018-08-01T09:29:37Z schjetne quit (Ping timeout: 248 seconds) 2018-08-01T09:30:24Z copec quit (Ping timeout: 260 seconds) 2018-08-01T09:30:27Z msb quit (Ping timeout: 240 seconds) 2018-08-01T09:30:57Z tazjin quit (Ping timeout: 240 seconds) 2018-08-01T09:31:30Z blt joined #lisp 2018-08-01T09:31:31Z tazjin joined #lisp 2018-08-01T09:31:36Z nirved joined #lisp 2018-08-01T09:31:57Z pierpal quit (Ping timeout: 240 seconds) 2018-08-01T09:32:59Z msb joined #lisp 2018-08-01T09:33:06Z copec joined #lisp 2018-08-01T09:37:37Z LdBeth: IA64 isn’t terrible 2018-08-01T09:37:41Z LdBeth: And provides lots of goodness 2018-08-01T09:38:01Z LdBeth: I bet it can survive for another 60 years, so it worths the investment 2018-08-01T09:40:19Z no-defun-allowed: clim 0.9.42 comes with CLIM:MOUSE-HAS-TAIL-P for detecting tail support now 2018-08-01T09:42:00Z binghe joined #lisp 2018-08-01T09:42:50Z Kaisyu7 quit (Ping timeout: 256 seconds) 2018-08-01T09:42:54Z beach: LdBeth: The thing that worries me is all the crap they put into the processors that might one day prevent us from using free software on them, and that might make spware impossible to avoid. 2018-08-01T09:43:32Z ecraven: beach: isn't that already the case? with the separate minix running in a part of the processor you cannot access? 2018-08-01T09:43:42Z ecraven: wasn't there something about it even running an http server? 2018-08-01T09:43:48Z beach: Yeah. 2018-08-01T09:46:34Z shka: http server? 2018-08-01T09:46:40Z shka: fascinating 2018-08-01T09:46:55Z beach: Scary, too. 2018-08-01T09:48:46Z pierpal joined #lisp 2018-08-01T09:50:44Z aeth: Maybe one day LispOS will be the most popular OS in the world instead of Minix. 2018-08-01T09:52:15Z antoszka: Not very likely. 2018-08-01T09:53:05Z shka: aeth: so it can be used for evil? ;-) 2018-08-01T09:54:44Z no-defun-allowed: if you can embed it, sure 2018-08-01T09:58:00Z p_l isn't really sure about that "minix is most popular" ;) 2018-08-01T09:58:15Z p_l: yes, there's a ton of ME v8 and newer devices 2018-08-01T10:05:50Z mkolenda: only intel did that hoax with minix running hidden in processors, right? 2018-08-01T10:09:38Z aeth: AMD has roughly equivalent functionality. It probably doesn't use Minix, though. 2018-08-01T10:11:01Z jackdaniel: but let us not stray away from lisp topic! ;-) I'm sure Common Lisp is a perfect language for writing operating systems 2018-08-01T10:11:08Z jackdaniel: for instance last Mezzano demo looks very nice 2018-08-01T10:11:20Z beach: I like the fact that they now use McCLIM. 2018-08-01T10:12:08Z beach: It will speed up McCLIM development. 2018-08-01T10:12:11Z jackdaniel: that may encourage more contributors (good!), and more peer review demand (well…) 2018-08-01T10:12:18Z beach: Exactly! 2018-08-01T10:12:32Z beach: And generally more tools. 2018-08-01T10:12:40Z beach: ... and applications, of course. 2018-08-01T10:12:51Z no-defun-allowed: how do i poweroff the genera emulator? 2018-08-01T10:13:16Z pierpal quit (Quit: Poof) 2018-08-01T10:13:34Z pierpal joined #lisp 2018-08-01T10:14:08Z trittweiler: no-defun-allowed, invoke the garbage-collector ;) 2018-08-01T10:17:39Z no-defun-allowed: i did Save World and i got to the VLM debugger 2018-08-01T10:19:07Z no-defun-allowed: PSA: you do not want to do that, it writes a buggy world which crashes on startup 2018-08-01T10:25:17Z LdBeth: #'no-defun-allowed: type "Halt Genera" 2018-08-01T10:25:37Z no-defun-allowed: of course 2018-08-01T10:25:55Z LdBeth: it will ask you a (Y/N) in cold boot screen, just press "y" 2018-08-01T10:26:02Z LdBeth: and all down 2018-08-01T10:26:09Z no-defun-allowed: it asks three times 2018-08-01T10:26:14Z no-defun-allowed: that's three more than my linux host 2018-08-01T10:28:50Z LdBeth: which Linux distro you use, #'no-defun-allowed? Seems only Ubuntu can run the VM without crash it. 2018-08-01T10:29:32Z no-defun-allowed: ubuntu 7.04 in a VM 2018-08-01T10:29:33Z no-defun-allowed: it requires an old X for some reason 2018-08-01T10:29:49Z antoszka: p_l: ↑ what was the reason for the old X11 server? 2018-08-01T10:29:59Z antoszka: you explained that to me once 2018-08-01T10:30:09Z no-defun-allowed: it needs some fancy function IIRC 2018-08-01T10:30:42Z LdBeth: The new Xorg deprecated some functions 2018-08-01T10:30:48Z m00natic joined #lisp 2018-08-01T10:35:38Z antoszka: yeah, just can't remember the particular details 2018-08-01T10:35:43Z antoszka: that I think p_l did 2018-08-01T10:37:45Z p_l: what exactly happens is that some ops fail on X server newer than 7.0 2018-08-01T10:38:16Z p_l: the function isn't exactly fancy or deprecated, but the specific behaviour changed in a way that hangs, related to handling modifier keys iirc 2018-08-01T10:38:28Z p_l: there's a nearly one-line patch that fixes it as well 2018-08-01T10:38:49Z p_l: (it essentially removes a function from Genera's CLX) 2018-08-01T10:39:10Z p_l: the failure is when you do certain operations, not everything, so it will deceptively work at first 2018-08-01T10:39:23Z p_l: also, for sanity, run it inside Xvnc or Xephyr 2018-08-01T10:39:57Z p_l: because Genera *will* fuck up your modifiers leaving you with effect of being able only to write in ALL CAPS 2018-08-01T10:41:49Z LdBeth: There is a issuse other than that, Save World freezes the window on Gentoo Linux 2018-08-01T10:42:53Z p_l: LdBeth: that's due to X11 2018-08-01T10:48:49Z p_l: Genera tries to, I think, change modifier settings at one point (as it has to carefully manage state during Save World) and the function fails hanging the whole process 2018-08-01T10:54:38Z JuanDaugherty joined #lisp 2018-08-01T10:55:09Z shka: CLIM is rather interesting 2018-08-01T10:55:27Z shka: i had no idea that you can make toolkit like this 2018-08-01T10:55:27Z beach: We have been saying that for 18 years. :) 2018-08-01T10:55:41Z schweers: is it a known problem that McCLIM has problems with modifiers on X11? 2018-08-01T10:56:00Z beach: I think so, yes. 2018-08-01T10:56:10Z beach: Check with #clim. 2018-08-01T10:56:15Z schweers: to be more specific: I use a keyboard layout which uses Caps Lock (and another key on the german keyboard) as an extra modifier. 2018-08-01T10:56:26Z schweers: Same with Mod4 (Alt Gr). 2018-08-01T10:56:31Z loke: schweers: Which modifiers specifically are you using? 2018-08-01T10:56:35Z schweers: will do when I have time. 2018-08-01T10:56:44Z schweers: loke: a derivative of the neo layout. 2018-08-01T10:56:54Z schweers: http://neo-layout.org 2018-08-01T10:57:48Z loke: schweers: the actual keys should be sent to McCLIM normally. 2018-08-01T10:57:58Z schweers: letters work fine 2018-08-01T10:58:21Z schweers: I tried a few demos, including the ... uh ... method inspector? 2018-08-01T10:58:24Z loke: schweers: However, if you have, like me, added an AltGr key and use setxkbmap to install a special keymap for AltGr combinations, then those inputs will not be seen by McCLIM 2018-08-01T10:58:41Z schweers: anyway, I was prompted for a generic function, and the first that came to mind was PRINT-OBJECT 2018-08-01T10:58:46Z schweers: note the minus sign 2018-08-01T10:59:03Z p_l: loke: sounds like McCLIM needs full redo of the input path 2018-08-01T10:59:06Z schweers: typing “print” went fine, but for the dash I normally use a modifier, that’s when I noticed 2018-08-01T10:59:20Z beach: p_l: It was a mess last time I looked. 2018-08-01T10:59:22Z jackdaniel: there is a bounty on that issue. someone even started it, but didn't have time for it after 60%. most importantly he has figured out what the problem is (namely key -> char mappings) 2018-08-01T10:59:24Z schweers: I use a „regular“ keymap, no xmodmap 2018-08-01T10:59:35Z loke: p_l: well, yes. Someone was looking at linking with existing input manager frameworks 2018-08-01T10:59:54Z schweers: I just issue "setxkbmap de bone" (or "setxkbmap de neo" for what you can see on the website, it doesn’t make a difference) 2018-08-01T11:00:02Z loke: schweers: There is no such thing as a “regular” keymap. It's all setxkbmap 2018-08-01T11:00:28Z schweers: sorry, this is so not my area of expertise. So don’t count on me using the proper terms ;) 2018-08-01T11:00:45Z schweers: but still: please correct me, this is the easiest way to learn. 2018-08-01T11:00:57Z loke: schweers: Anyway. McCLIM uses lowere-level functions to access input. 2018-08-01T11:01:04Z jackdaniel: https://github.com/McCLIM/McCLIM/issues/35 ← 2018-08-01T11:01:09Z schweers: loke: at any rate, I use setxkbmap and no xmodmap (at least /I/ don’t) 2018-08-01T11:01:26Z jackdaniel: this is not architectural issue but a matter of porting some defines from some X11-header.h file to CL 2018-08-01T11:01:30Z loke: schweers: Like I said. The mechanism you use to modify those behaviours doesn't matter. 2018-08-01T11:01:50Z schweers: ah, that was your point. 2018-08-01T11:01:54Z p_l: loke: I was thinking of possibly punting input to a separate layer which could handle IME as well 2018-08-01T11:02:08Z p_l: well, make the low-level input support cognizant of IMEs 2018-08-01T11:02:18Z jackdaniel: p_l: there is already a layer for that 2018-08-01T11:02:22Z loke: For example, I can type compose-"-o to generate ö. But CLIM will see three keypresses, because it looks purely at each keypress and tries to make sense of it itself 2018-08-01T11:02:28Z jackdaniel: as I said, we simply need to copy mappings from x11 headers 2018-08-01T11:02:30Z random-nick joined #lisp 2018-08-01T11:02:56Z schweers: huh, that issue has a bounty on it? How is that going anyway? 2018-08-01T11:02:56Z p_l: jackdaniel: what about XIM? 2018-08-01T11:03:01Z loke: jackdaniel: I think it's more than just the mappings. Things like dead-keys needs additional code to deal with. 2018-08-01T11:03:06Z jackdaniel: or parse them and generate code, nothing super fancy 2018-08-01T11:03:31Z jackdaniel: p_l: I'm just referencing conclusions of people who worked on the issue 2018-08-01T11:03:46Z loke: Still needs to integrate with the input manager framework, unless one wants to reimplement all the specialised input methods like Arabic, Chinese, etc... 2018-08-01T11:03:53Z jackdaniel: and I don't know what xim is 2018-08-01T11:04:08Z loke: jackdaniel: X Inut Manager. A framework for handling input methods. 2018-08-01T11:04:16Z loke: (one of three, in fact... Nothing is ever simple in X :-) ) 2018-08-01T11:04:17Z jackdaniel: all I say that there is a dedicated layer for input handling in clx backend 2018-08-01T11:04:38Z jackdaniel: so adding yet another layer instead of improving existing one doesn't make sense to me 2018-08-01T11:04:51Z loke: jackdaniel: You can't support all the input methods using the pur X layer. 2018-08-01T11:05:01Z loke: Modern input methods use some Dbus stuff. 2018-08-01T11:05:01Z jackdaniel: if you talk about some X extension to use, then better place to implement it in clx 2018-08-01T11:05:17Z LdBeth: I would like to start a new IM framework 2018-08-01T11:05:26Z jsjolen: Considering Wayland, wouldn't that make clx purposeless? As in, clx wouldn't workj 2018-08-01T11:05:33Z LdBeth: purly for CLIM 2018-08-01T11:05:43Z p_l: loke: XIM is pure X, and all the "modern" systems support it still 2018-08-01T11:05:48Z loke: LdBeth: You're welcome to write it. That's the route Emacs went. 2018-08-01T11:05:54Z loke: They reimplemented all those frameworks 2018-08-01T11:05:55Z jackdaniel: imho dbus is a pathology. either way the issue mentioned above is related to key mappings 2018-08-01T11:06:00Z p_l: loke: not exactly 2018-08-01T11:06:02Z loke: (although they _also_ support XIM I believe) 2018-08-01T11:06:25Z p_l: loke: Emacs went the way I'd want to take modifications in McCLIM input layer 2018-08-01T11:06:48Z loke: p_l: True. That would make it more "CLIM native" 2018-08-01T11:06:49Z jackdaniel: jsjolen: wayland has X11 layer to make X applications working in it. but yes, investing time into X11 backend won't benefit any other backend in McCLIM 2018-08-01T11:06:50Z p_l: i.e. they have their own framework to plug in methods so they can support different "graphics" drivers 2018-08-01T11:07:45Z p_l: so on X11 you can have XIM, but you can also use internal methods that support terminal, on windows it works with IME, on Macs whatever Macs do, you can hook to several implementations on linux directly (like UIM) 2018-08-01T11:09:11Z loke: p_l: Thank you 2018-08-01T11:09:53Z LdBeth: Actually Windows 10 creates lots of trouble degrades IME experenice with Emacs 2018-08-01T11:11:45Z binghe quit (Ping timeout: 264 seconds) 2018-08-01T11:23:01Z binghe joined #lisp 2018-08-01T11:25:42Z AetherWind joined #lisp 2018-08-01T11:26:05Z AetherWind left #lisp 2018-08-01T11:27:52Z X-Scale joined #lisp 2018-08-01T11:41:24Z kozy quit (Remote host closed the connection) 2018-08-01T11:47:26Z sjl_ joined #lisp 2018-08-01T11:51:36Z troydm quit (Ping timeout: 256 seconds) 2018-08-01T11:52:13Z kozy joined #lisp 2018-08-01T11:52:57Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-01T11:54:24Z no-defun-allowed: now the "Lisp stopped itself \n FEP Command:" fortune makes sense 2018-08-01T12:02:20Z araujo quit (Ping timeout: 245 seconds) 2018-08-01T12:04:01Z pierpal quit (Quit: Poof) 2018-08-01T12:04:20Z pierpal joined #lisp 2018-08-01T12:09:17Z Bronsa joined #lisp 2018-08-01T12:11:07Z troydm joined #lisp 2018-08-01T12:12:05Z fikka joined #lisp 2018-08-01T12:14:46Z SaganMan quit (Ping timeout: 264 seconds) 2018-08-01T12:20:02Z no-defun-allowed: If lispcafe didn't have the bloody spambots I'd talk crap there. 2018-08-01T12:23:43Z Guest43104 quit (Quit: WeeChat 1.9.1) 2018-08-01T12:25:05Z jsjolen: no-defun-allowed: Instead u r spambot here 2018-08-01T12:25:06Z SaganMan joined #lisp 2018-08-01T12:27:10Z test1600 quit (Ping timeout: 256 seconds) 2018-08-01T12:28:07Z binghe left #lisp 2018-08-01T12:30:03Z no-defun-allowed: Yes, of course I'm a spam bot. Go to dennisritchieisobviouslyapedoyouircusingnolifenerd.wordpress.com for more details please. 2018-08-01T12:31:32Z no-defun-allowed: If that does resolve, please don't click on it. That was a joke. 2018-08-01T12:35:15Z tfb: no-defun-allowed: of course the machine you're probably emulating was itself emulating the FEP. 2018-08-01T12:37:02Z fikka quit (Ping timeout: 255 seconds) 2018-08-01T12:37:22Z HighMemoryDaemon joined #lisp 2018-08-01T12:38:28Z HighMemoryDaemon: Do backticks and apostrophes have similar functionality? 2018-08-01T12:38:38Z no-defun-allowed: Yes, it was. 2018-08-01T12:39:22Z beach: HighMemoryDaemon: They are implemented very differently, but the backquote facility was meant to resemble a simple quote with additional functionality, so yes. 2018-08-01T12:39:38Z lavaflow_ joined #lisp 2018-08-01T12:39:59Z beach: HighMemoryDaemon: You can consider backquote as a quote that allows you to "unquote" some parts of the structure. 2018-08-01T12:40:56Z fikka joined #lisp 2018-08-01T12:41:07Z no-defun-allowed: My x86_64 host runs an x86_64 Ubuntu 7.04 virtual machine, emulating the cadr-ish CPU and 68k FEP in this setup. 2018-08-01T12:41:08Z HighMemoryDaemon: beach: Thank you. That is extremely helpful. So there is no way to unquote (use variables) with an apostrophe? 2018-08-01T12:41:17Z beach: Correct. 2018-08-01T12:41:29Z beach: And we call it "quote". 2018-08-01T12:41:39Z no-defun-allowed: No, not with the normal quote. 2018-08-01T12:41:51Z HighMemoryDaemon: Ok, cool. 2018-08-01T12:41:56Z beach: HighMemoryDaemon: In fact, ' is turned by the reader into (quote ) 2018-08-01T12:42:07Z tfb: no-defun-allowed: Oh, I thought this would be something emulating an ivory 2018-08-01T12:42:14Z emacsoma` joined #lisp 2018-08-01T12:42:25Z no-defun-allowed: However, (list 'a b 'c) gives you a list of the symbol A, the value of B and the symbol C 2018-08-01T12:42:31Z beach: HighMemoryDaemon: i.e. a list of two elements, the symbol QUOTE and the object that was read after the '. 2018-08-01T12:42:54Z beach: no-defun-allowed: You are confusing HighMemoryDaemon. 2018-08-01T12:43:15Z MoziM quit (Quit: WeeChat 2.2) 2018-08-01T12:43:44Z no-defun-allowed: That's not quoting the entire list, yada yada, don't listen to me and just follow beach, because that's a different use of quote. Sorry. 2018-08-01T12:43:46Z HighMemoryDaemon: beach: No, no it makes sense. 2018-08-01T12:43:48Z HighMemoryDaemon: Thanks you guys. 2018-08-01T12:43:50Z uint_ joined #lisp 2018-08-01T12:43:53Z trnv2 joined #lisp 2018-08-01T12:43:53Z logicmoo joined #lisp 2018-08-01T12:44:05Z hvxgr__ joined #lisp 2018-08-01T12:44:16Z beach: HighMemoryDaemon: And QUOTE is a special operator that returns its single argument unevaluated. So if the evaluator sees (QUOTE ), then is returned. 2018-08-01T12:45:10Z beach: HighMemoryDaemon: So at that point, since forms are not repeatedly evaluated, is just data. 2018-08-01T12:45:11Z no-defun-allowed: tfb: I thought they were all based off the cadr, even if they drifted way off in the end. 2018-08-01T12:45:15Z no-defun-allowed: Goodnight everyone. 2018-08-01T12:45:31Z beach: 'night no-defun-allowed. 2018-08-01T12:46:22Z narendraj9 joined #lisp 2018-08-01T12:46:23Z benkard joined #lisp 2018-08-01T12:46:26Z no-defun-allowed: * the variable no-defun-allowed is unbound. I mean...goodbye. 2018-08-01T12:48:03Z swflint_away joined #lisp 2018-08-01T12:48:14Z HighMemoryDaemon quit (Remote host closed the connection) 2018-08-01T12:48:44Z JuanDaugherty quit (Ping timeout: 260 seconds) 2018-08-01T12:48:57Z lavaflow quit (*.net *.split) 2018-08-01T12:48:57Z renzhi quit (*.net *.split) 2018-08-01T12:48:57Z aindilis quit (*.net *.split) 2018-08-01T12:48:58Z emacsomancer quit (*.net *.split) 2018-08-01T12:48:58Z swflint quit (*.net *.split) 2018-08-01T12:48:58Z housel quit (*.net *.split) 2018-08-01T12:48:58Z peccu4 quit (*.net *.split) 2018-08-01T12:48:58Z dmiles quit (*.net *.split) 2018-08-01T12:48:58Z sabrac quit (*.net *.split) 2018-08-01T12:48:58Z Fade quit (*.net *.split) 2018-08-01T12:48:58Z jfrancis quit (*.net *.split) 2018-08-01T12:48:58Z lel quit (*.net *.split) 2018-08-01T12:48:58Z jasom quit (*.net *.split) 2018-08-01T12:48:58Z kqr quit (*.net *.split) 2018-08-01T12:48:58Z nullman quit (*.net *.split) 2018-08-01T12:48:58Z APic quit (*.net *.split) 2018-08-01T12:48:59Z hvxgr quit (*.net *.split) 2018-08-01T12:48:59Z himmAllRIght17 quit (*.net *.split) 2018-08-01T12:48:59Z thijso quit (*.net *.split) 2018-08-01T12:48:59Z uint quit (*.net *.split) 2018-08-01T12:48:59Z Ober quit (*.net *.split) 2018-08-01T12:48:59Z loke quit (*.net *.split) 2018-08-01T12:48:59Z davsebamse quit (*.net *.split) 2018-08-01T12:48:59Z trn quit (*.net *.split) 2018-08-01T12:48:59Z fluxit quit (*.net *.split) 2018-08-01T12:48:59Z mulk quit (*.net *.split) 2018-08-01T12:48:59Z f32ff quit (*.net *.split) 2018-08-01T12:48:59Z zymurgy quit (*.net *.split) 2018-08-01T12:48:59Z gabot quit (*.net *.split) 2018-08-01T12:48:59Z [df]_ quit (*.net *.split) 2018-08-01T12:48:59Z lxpz quit (*.net *.split) 2018-08-01T12:48:59Z cmbntr quit (*.net *.split) 2018-08-01T12:49:00Z renard_ quit (*.net *.split) 2018-08-01T12:49:00Z trnv2 is now known as trn 2018-08-01T12:49:04Z benkard is now known as mulk 2018-08-01T12:49:15Z swflint_away is now known as swflint 2018-08-01T12:49:46Z lel joined #lisp 2018-08-01T12:50:54Z beach: I am considering what memory layout to use for a new Common Lisp implementation (SICL) on an x86-64 running Linux. Since I have limited knowledge of Linux, I would like some advice. In particular, I would like to know whether something bad will happen to me if I choose the following layout. 2018-08-01T12:51:01Z beach: I am assuming a 48-bit valid address space, but I will use only the lower 47 bits to avoid stepping on OS territory. This should give me 128TB of memory space. I am thinking of allocating the first 64TB to the global heap and the remaining 64TB to thread-local stuff. 2018-08-01T12:51:02Z beach: I am thinking of allocating 1GB fixed for each thread, making it possible to have 64 thousand threads at most. Each thread would have a few MB of heap and the rest would be the stack. Oh, and I could have made some mistakes in my calculations, of course. 2018-08-01T12:51:27Z dcluna quit (Ping timeout: 266 seconds) 2018-08-01T12:51:28Z vibs29 quit (Ping timeout: 266 seconds) 2018-08-01T12:51:36Z LiamH joined #lisp 2018-08-01T12:51:39Z fiddlerwoaroof quit (Ping timeout: 260 seconds) 2018-08-01T12:51:46Z beach: I should have said "address space" rather than "memory space". 2018-08-01T12:52:53Z shka: it does not look wrong 2018-08-01T12:52:53Z beach: I fear that the organization of the page tables might get in my way, but I don't know that for a fact. 2018-08-01T12:53:12Z shka: let me check with coleauges 2018-08-01T12:53:22Z shka: those androids should know better 2018-08-01T12:53:49Z igemnace joined #lisp 2018-08-01T12:54:23Z vibs29 joined #lisp 2018-08-01T12:54:24Z jasom joined #lisp 2018-08-01T12:55:21Z beach: So (virtual) memory would be allocated as needed, of course. The global heap would expand as necessary, as would the individual thread stacks. And (virtual) memory would be given back to the system when a thread exits. 2018-08-01T12:56:09Z shka: obviously 2018-08-01T12:56:34Z kqr joined #lisp 2018-08-01T12:57:00Z fiddlerwoaroof joined #lisp 2018-08-01T12:57:03Z gabot joined #lisp 2018-08-01T12:57:22Z beach: If this layout is possible, it would avoid many problems such as having to choose a (small-ish) fixed size heap at system start-up. 2018-08-01T12:57:44Z zymurgy joined #lisp 2018-08-01T12:57:46Z beach: And I can test whether an object is in the global heap with a single comparison with a constant. 2018-08-01T12:58:02Z kuribas joined #lisp 2018-08-01T12:58:39Z kuribas: what does the "World Lock" do? 2018-08-01T12:59:19Z beach: Never heard of it. Where did you hear about it? 2018-08-01T13:00:24Z renard_ joined #lisp 2018-08-01T13:00:25Z shka: beach: so from what i understand you want to have 1GB address space per each thread 2018-08-01T13:00:25Z shka: correct? 2018-08-01T13:00:25Z jackdaniel: kuribas: by the name of it it is a giant lock over some big thread-insecure module 2018-08-01T13:00:25Z p_l: beach: please use 40bits, not 48bits, so 39bit userland memory space 2018-08-01T13:00:43Z jackdaniel: kuribas: i.e you could lock whole compile/compile-file functionality in compiler to avoid races 2018-08-01T13:00:54Z kuribas: jackdaniel: yeah 2018-08-01T13:01:07Z shka: "Each thread would have a few MB of heap and the rest would be the stack." 2018-08-01T13:01:17Z shka: shouldn't that be other way around? 2018-08-01T13:03:07Z kuribas: jackdaniel, beach: https://github.com/sbcl/sbcl/blob/master/src/compiler/early-c.lisp#L144 2018-08-01T13:03:10Z beach quit (Disconnected by services) 2018-08-01T13:03:26Z beach joined #lisp 2018-08-01T13:03:43Z beach: shka: Sorry, computer crashed. :( 2018-08-01T13:03:52Z shka: hm 2018-08-01T13:04:06Z jackdaniel: kuribas: I like how they put emphasis on how global it is, by doubling number of earmuffs :-) 2018-08-01T13:04:10Z shka: beach: you can check the logs i think 2018-08-01T13:04:27Z ChanServ has set mode +o Xach 2018-08-01T13:04:27Z beach: Yes, 1GB per thread was my suggestion. 2018-08-01T13:04:50Z beach: p_l: What's wrong with 48? 2018-08-01T13:04:58Z beach: I thought that was the minimum, no? 2018-08-01T13:05:29Z beach: shka: No, per-thread heaps are small to make GC pauses small. 2018-08-01T13:05:33Z shka: beach: it is the address space of cpu 2018-08-01T13:05:37Z beach: "short" rather. 2018-08-01T13:05:53Z shka: ok, i see 2018-08-01T13:05:56Z p_l: beach: no, the minimum is 40 2018-08-01T13:06:01Z beach: Oh, sorry, OK. 2018-08-01T13:06:18Z p_l: ... though it might be difference between physical and virtual 2018-08-01T13:06:19Z beach: Then I may have to redo my calculation. 2018-08-01T13:06:28Z shka: p_l: hmm 2018-08-01T13:06:34Z p_l: you might be correct after all, virtual space might be 48bit minimum 2018-08-01T13:06:49Z beach: Whew! 2018-08-01T13:07:09Z beach: I don't care about physical memory for this. It will be much smaller of course. 2018-08-01T13:07:37Z p_l: the confusion stems from how both limits are talked close to each other in ISA requirements ;) 2018-08-01T13:07:50Z shka: "The minimal implementation of the x86-64 architecture provides 48-bit addressing encoded into 64 bits; future versions of the architecture can expand this without breaking properly written applications. " 2018-08-01T13:07:54Z p_l: (and that early 64bit x86 from intel failed the physical requirement) 2018-08-01T13:07:58Z shka: so i guess 48 bits 2018-08-01T13:08:32Z beach: That's what I thought, but it was from (a notoriously bad) memory. 2018-08-01T13:09:54Z shka: so everything looks fine 2018-08-01T13:09:58Z beach: So then the only question is whether something bad will happen to the page tables if physical memory is scattered this way in the address space. 2018-08-01T13:10:10Z beach: shka: Thanks! Very helpful! 2018-08-01T13:10:36Z shka: beach: wouldn't that be bug in the linux itself? 2018-08-01T13:10:37Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-01T13:11:03Z beach: Not necessarily. 2018-08-01T13:11:31Z JPeroutek quit (Quit: Page closed) 2018-08-01T13:11:48Z beach: shka: It could be that the page table organization will mean that the space required for the page tables becomes huge if the virtual memory allocated is scattered this way. 2018-08-01T13:12:06Z beach: But I don't think it will happen unless there is a very large number of threads. 2018-08-01T13:12:31Z beach: ... and then the threads themselves will take more space than the page tables. 2018-08-01T13:12:55Z shka: this probabbly depends on how you are allocating memory 2018-08-01T13:13:05Z beach: I wouldn't think so. 2018-08-01T13:13:08Z sjl_ joined #lisp 2018-08-01T13:13:22Z beach: I would think it only depends on where in the address space memory is allocated. 2018-08-01T13:14:21Z shka: ... brk vs mmap namely 2018-08-01T13:14:28Z p_l: beach: if you try to linearize actually mapped pages it will work much, much better 2018-08-01T13:14:41Z p_l: because it increases the chances of system using larger pages 2018-08-01T13:14:49Z Bike joined #lisp 2018-08-01T13:16:37Z jsjolen: shka: Isn't mmap standard compared to brk nowadays? 2018-08-01T13:16:41Z beach: p_l: That won't be a problem. The global heap is totally linear. Each thread heap and each thread stack is linear, and the thread heap and thread stack will be contiguous. 2018-08-01T13:17:18Z shka: jsjolen: both are in use 2018-08-01T13:17:32Z beach: shka: Oh, so you mean the same issue as p_l pointed out? 2018-08-01T13:17:48Z shka: i think so 2018-08-01T13:18:05Z mindCrime joined #lisp 2018-08-01T13:18:07Z beach: shka: I can't use brk or I would have to allocate more than 64TB at startup. 2018-08-01T13:18:14Z shka: yeah 2018-08-01T13:18:39Z shka: anyway, i would say that it should work fine from what i understand 2018-08-01T13:18:51Z beach: Excellent! Thanks to both of you. 2018-08-01T13:19:21Z shka: and the only circumstances where it would be failing are those that would make any universal strategy failing hardcore 2018-08-01T13:19:59Z beach: Whew! 2018-08-01T13:20:45Z test1600 joined #lisp 2018-08-01T13:21:29Z p_l: brk *should not* be used 2018-08-01T13:21:37Z beach: Right. 2018-08-01T13:22:06Z beach: OK, last question. Independently of the fact that we now think it will work, does it sound like a good plan? 2018-08-01T13:22:30Z nhandler_ quit (Quit: leaving) 2018-08-01T13:23:12Z p_l: beach: I'm not sure about the sizes or layout, but it's good (my heart goes out for different approach that's all) 2018-08-01T13:23:34Z p_l: (and yours is already thought upon and calculated whereas I don't even have time to sketch on a napkin) 2018-08-01T13:23:46Z beach: Understood. 2018-08-01T13:23:47Z beach: Thanks. 2018-08-01T13:24:26Z beach: My main concern is the fixed (but high) hard limit on a thread stack. 2018-08-01T13:24:28Z wigust joined #lisp 2018-08-01T13:24:33Z Fare joined #lisp 2018-08-01T13:25:55Z p_l: beach: also, I'd probably do some special purpose segments even with your design 2018-08-01T13:26:11Z beach: What would those segments contain? 2018-08-01T13:26:24Z beach: I mean, there is room for such things, below the global heap. 2018-08-01T13:26:33Z beach: Or between the global heap and the threads. 2018-08-01T13:26:34Z p_l: depending on approach, a low-memory one for some "global static" objects (nil, t, possibly references to important implementation objects) 2018-08-01T13:26:49Z beach: I considered that. 2018-08-01T13:26:58Z p_l: but I'm unsure on how it would cooperate with the needs of relocation and randomized memory layout 2018-08-01T13:27:13Z beach: But since objects don't move in my global heap, I won't spend any time copying such objects anyway. 2018-08-01T13:27:15Z jackdaniel: I would keep in such memory pre-allocated conditions for memory problems 2018-08-01T13:27:16Z p_l: actually, that big of a memory map might break with randomized virtual layout 2018-08-01T13:27:57Z beach: p_l: I consider that a bug. 2018-08-01T13:28:44Z p_l: there *could* be ways around it, but I'm unsure on actual real life behavior there 2018-08-01T13:28:55Z beach: jackdaniel: Since my global heap contains objects that won't move, would it not be enough to keeps such stuff there? 2018-08-01T13:29:17Z jackdaniel: yes, you are right 2018-08-01T13:29:29Z beach: OK, that's what I thought. Thanks. 2018-08-01T13:30:09Z jsjolen quit (Remote host closed the connection) 2018-08-01T13:30:30Z beach: p_l: I am hoping there will always be a way to disable it. Otherwise, it will be impossible to build a pre-allocated data structure in an executable. 2018-08-01T13:30:59Z p_l: beach: at some point SBCL had patches that allowed reallocation 2018-08-01T13:31:23Z beach: Modify every pointer in the system? Wow! 2018-08-01T13:31:46Z kozy_ joined #lisp 2018-08-01T13:32:08Z kozy quit (Read error: Connection reset by peer) 2018-08-01T13:32:11Z p_l: it ran a pass during image load, afaik 2018-08-01T13:32:34Z smasta joined #lisp 2018-08-01T13:32:40Z beach: What a world we have created. It's all the fault of Unix. 2018-08-01T13:33:13Z p_l: relocations are older than unix 2018-08-01T13:33:18Z p_l: unix was very anti-relocation ;) 2018-08-01T13:33:34Z beach: But randomized address space is new. 2018-08-01T13:34:01Z p_l: but unrelated to unix 2018-08-01T13:34:08Z beach: Not quite. 2018-08-01T13:34:33Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T13:34:35Z p_l: only in the sense that unix runs on systems with flat memory model, like most other OSes around 2018-08-01T13:34:44Z beach: It is the fault of Unix that we still insist on emulating the access to a complete machine with addresses starting at 0 so that the application program has access to the stack. 2018-08-01T13:34:51Z p_l: unlike, let's say, Multics, MCP or OS/400 2018-08-01T13:35:24Z p_l: beach: not really, even if C pushed a lot of PDP-11 into computation model longer than it's usable 2018-08-01T13:35:44Z beach: "not really" as it's not the fault of Unix? 2018-08-01T13:35:54Z p_l: beach: I'd consider it orthongal 2018-08-01T13:35:59Z p_l: *orthogonal 2018-08-01T13:36:26Z SaganMan quit (Ping timeout: 255 seconds) 2018-08-01T13:36:46Z p_l: beach: Unix by itself promoted approach to memory closer to many Lisp implementations (you have a pointer and you move it to allocate more memory, you can move it to lower the memory but you have to copy the objects) 2018-08-01T13:37:16Z p_l: mmap(), shared/foreign memory and shared libraries are all foreign graft tissue 2018-08-01T13:37:30Z beach: Indeed. 2018-08-01T13:37:32Z SaganMan joined #lisp 2018-08-01T13:38:01Z p_l: mmap() in a very convoluted fashion might have arrived from Twenex? 2018-08-01T13:38:12Z p_l: (or was it Tenex?) 2018-08-01T13:38:16Z beach: I don't know. 2018-08-01T13:38:44Z beach: Multics did something similar at the level of an entire segment. 2018-08-01T13:39:04Z p_l: beach: yes, but multics also depended on hw access controls far beyond simplistic paging model 2018-08-01T13:39:36Z p_l: (and if you read Bell Labs notes, there is a giant "do not go for paging, it's horrible") 2018-08-01T13:39:44Z beach: Heh! 2018-08-01T13:40:06Z p_l: x86 had some advanced segmentation with call gates, but it was complex and pretty much died 2018-08-01T13:40:17Z p_l: because flat 32bit segment was easier to reason and use 2018-08-01T13:40:46Z beach: When I say that it's the fault of Unix, all I mean that, if Unix had not become so popular (and I include Windows, and other descendants), perhaps a more sophisticated computing model would have been more popular. 2018-08-01T13:41:17Z p_l: beach: I think microcomputers might be more the cause ;) 2018-08-01T13:42:08Z p_l: availability of reasonably fast and cheap hw favoured designs that didn't support more complex memory models 2018-08-01T13:42:17Z beach: ... and then, application programs would not have access to the stack, so we would not have the problem with attacks that modify the return address. And then address space randomization would never have been invented. 2018-08-01T13:42:43Z beach: p_l: Yes, I read an interesting article abou that recently. 2018-08-01T13:42:45Z p_l: beach: stack is not really as much of a problem as you think, since several popular architectures actually don't use memory stack 2018-08-01T13:42:59Z p_l: (for example SPARC) 2018-08-01T13:42:59Z beach: It is entitled "C is not a low-level programming language". 2018-08-01T13:43:04Z p_l: yep 2018-08-01T13:43:24Z beach: Oh, the SPARC uses a stack. 2018-08-01T13:43:43Z p_l: beach: but not in memory 2018-08-01T13:43:52Z Inline quit (Remote host closed the connection) 2018-08-01T13:44:03Z p_l: (C code might, but the CPU architecture doesn't) 2018-08-01T13:44:11Z beach: Yes, I see. 2018-08-01T13:44:18Z beach: YOu have to spill the registers at some point. 2018-08-01T13:44:26Z p_l: beach: that's controlled by OS 2018-08-01T13:44:29Z beach: Sure. 2018-08-01T13:44:45Z p_l: beach: which is how OpenBSD managed to encrypt the control stack 2018-08-01T13:44:57Z beach: The article is about how current architectures have been created (by hard work on the part of the designers) to accommodate the semantics of C. 2018-08-01T13:45:10Z beach: p_l: Oh, nice! 2018-08-01T13:45:42Z beach: p_l: Er, so what happens if in C you do { int x; f(&x)}? 2018-08-01T13:45:52Z beach: Perhaps that is undefined C behavior? 2018-08-01T13:45:57Z aindilis joined #lisp 2018-08-01T13:46:49Z p_l: beach: not sure about whether it is UB or not, but I suspect the C compiler would have to use "emulated" stack for it 2018-08-01T13:47:20Z beach: I don't think I will read the latest C specification to find out. 2018-08-01T13:47:33Z beach: Interesting questions, though. 2018-08-01T13:47:40Z beach: Off topic, too. :) 2018-08-01T13:47:45Z p_l: I can't recall all of the article you mentioned, but stack isn't one of those "design for C" things 2018-08-01T13:48:10Z p_l: it's more that PDP-11 was of the same "simple stack machine" family that 8080 and related were 2018-08-01T13:48:25Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-01T13:49:06Z beach: Sure, I just mentioned the article because of the fact that processors, OSes, and languages evolve in parallel and inter-dependent ways. 2018-08-01T13:50:29Z fikka joined #lisp 2018-08-01T13:50:32Z p_l: in this case I would just point that register starved stack machine is the ancestor, not the result :) 2018-08-01T13:50:54Z p_l: (and that technically pure lisp machines were *pure* stack machines) 2018-08-01T13:51:03Z beach: For example, x86-64 with its restrictions on address bits exists because OSes have a kernel and that kernel uses the upper half of the address space. 2018-08-01T13:51:24Z beach: Yes, of course. 2018-08-01T13:51:49Z p_l: beach: the "half address space" tradition exists because it was the cheapest trick in the book since day 0 2018-08-01T13:52:12Z beach: Yes, the VAX did that as I reall. 2018-08-01T13:52:15Z beach: recall. 2018-08-01T13:52:19Z p_l: beach: it's older than VAX 2018-08-01T13:52:22Z p_l: PDP-10 did that 2018-08-01T13:52:28Z beach: Not surprised. 2018-08-01T13:52:49Z p_l: PDP-11 did that (because it took an address latch and interrupt line to implement protected memory this way) 2018-08-01T13:53:10Z beach: But I find it interesting that it propagated to the specification of an architecture. 2018-08-01T13:53:12Z Josh_2 joined #lisp 2018-08-01T13:53:14Z p_l: generally outside of multics and S/360 in that era everyone used it 2018-08-01T13:53:21Z mkolenda quit (Ping timeout: 240 seconds) 2018-08-01T13:53:37Z Denommus joined #lisp 2018-08-01T13:53:37Z test1600 quit (Ping timeout: 248 seconds) 2018-08-01T13:54:03Z p_l: beach: I'd say that "stack grows downwards" aspect of x86 (and most other architectures) had a bit to do with that 2018-08-01T13:54:40Z beach: Possibly. But I think we will get kicked if we continue this discussion here. :) 2018-08-01T13:54:50Z beach is getting nervous. 2018-08-01T13:54:56Z p_l: lol 2018-08-01T13:55:02Z gendl: You guys are fine here. 2018-08-01T13:55:11Z JuanDaugherty joined #lisp 2018-08-01T13:55:13Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T13:55:28Z beach: p_l: I do want to thank you for the remarks on my proposed address-space layout. 2018-08-01T13:55:29Z p_l: we're not disrupting anyone, and IMO Xach and fe[nl]ix would agree that details of how and why computers work might of relevance to lisp 2018-08-01T13:55:35Z Inline joined #lisp 2018-08-01T13:55:37Z p_l notes his @ hat 2018-08-01T13:55:48Z gendl: of course, i'm not the authority here. Just giving my humble opinion. 2018-08-01T13:55:56Z beach: p_l: Yes, but we would have to slip in some keywords from time to time. 2018-08-01T13:56:14Z beach: gendl: I think we would be given warnings first, so I am not really nervous. 2018-08-01T13:56:49Z p_l: beach: of interest might be that SPARC included some instructions written with ideas of Lisp and other non-C languages 2018-08-01T13:57:08Z beach: p_l: I am impressed with your knowledge of both current and older systems (processors AND operating systems). 2018-08-01T13:57:23Z p_l: Legacy of misspent youth 2018-08-01T13:57:24Z beach: Yes, I remember the TADDC instruction. 2018-08-01T13:57:58Z beach: That was the name wasn't it? 2018-08-01T13:58:04Z p_l: I think so 2018-08-01T13:58:09Z p_l: T prefix for "tagged" 2018-08-01T13:58:11Z sjl_ joined #lisp 2018-08-01T13:58:13Z beach: I wrote a compiler for SPARC some time ago. 2018-08-01T13:58:29Z beach: Yes, and C for... TRAP? :) 2018-08-01T13:59:35Z p_l: don't recall, didn't do much SPARC assembly :) 2018-08-01T14:00:01Z beach: It turns out that the SPARC register windows (and the depth of the register stack) was a result of benchmarks on Unix. For the language I wrote a compiler for, the assumptions were totally false so we had tons of traps in order to spill the register windows. 2018-08-01T14:00:30Z beach: ... and they were SLOW. 2018-08-01T14:01:03Z p_l: beach: generally from what I heard people didn't like register windows, no matter how elegant they are in theory 2018-08-01T14:01:42Z beach: You may be right. 2018-08-01T14:01:56Z beach: p_l: Are you working on any Common Lisp implementation? 2018-08-01T14:02:08Z p_l: also, was it just very, very deep in terms of functional calls, or did you have a need to use control stack as the only stack? 2018-08-01T14:02:14Z p_l: beach: not right now :/ 2018-08-01T14:02:20Z beach: Did you use to? 2018-08-01T14:02:35Z p_l: once I fix some things I might add some code to mezzano and maybe some more, but no, I didn't use to 2018-08-01T14:02:40Z p_l: but I read some source code :) 2018-08-01T14:02:44Z beach: It was a functional language so deep stacks. 2018-08-01T14:03:00Z p_l: and I have this half-baked idea for a lisp machine emulator 2018-08-01T14:03:04Z beach: p_l: It seems your knowledge would come in handy for writing a compiler, and more generally for a Common Lisp system. 2018-08-01T14:03:27Z didi left #lisp 2018-08-01T14:03:30Z p_l: my issue is getting from theory to practice, something I work on in general 2018-08-01T14:03:53Z beach: You mean you have problems with that? 2018-08-01T14:04:01Z p_l: yep :) 2018-08-01T14:04:05Z beach: I see. 2018-08-01T14:04:12Z beach: Do you know why? 2018-08-01T14:04:16Z p_l: so many interesting things, so little time, so hard to concentrate on paying work :) 2018-08-01T14:04:24Z beach: I fully understand. 2018-08-01T14:04:33Z p_l: (and well, some detritus in terms of organization on my side that is hard to fix) 2018-08-01T14:04:45Z vultyre joined #lisp 2018-08-01T14:05:06Z iskander quit (K-Lined) 2018-08-01T14:06:15Z beach: Are you busy with some other Common Lisp-related programming projects? 2018-08-01T14:06:54Z p_l: beach: mostly non computing things, some computing things that aren't really programming, and Ops work that occassionally involves light programming (mostly shell scripts and Go) 2018-08-01T14:07:11Z beach: Got it. 2018-08-01T14:07:31Z beach: p_l: So it would be OK if I bounce design questions on you from time to time? 2018-08-01T14:07:35Z p_l: it's perpetual state of "get this all sorted out so I can declare time for personal development" 2018-08-01T14:07:37Z p_l: beach: sure 2018-08-01T14:07:49Z beach: Great! Thanks! 2018-08-01T14:08:03Z p_l: I'll try to do my best for them, because frankly speaking, I feel like I'd backslide without something interesting to think about :) 2018-08-01T14:10:49Z fikka joined #lisp 2018-08-01T14:10:57Z v0|d: beach: there is compiler stage called Global TN assignments. I thought TN is type name, still not sure. 2018-08-01T14:13:07Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-01T14:13:16Z orivej quit (Ping timeout: 256 seconds) 2018-08-01T14:15:02Z v0|d: beach: In this scheme there is no such thing as a ”heap closure variable” in code, since the closure values are moved into TNs by the external entry point. <= from the manual 2018-08-01T14:15:29Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T14:16:03Z beach: I Googled it and found it in the CMUCL documentation, but I don't see an explanation for the abbreviation. 2018-08-01T14:16:33Z sjl_ joined #lisp 2018-08-01T14:17:27Z v0|d: Xof: *help* 2018-08-01T14:18:54Z jackdaniel: tn is temporary name 2018-08-01T14:19:01Z beach: Oh! :) 2018-08-01T14:19:01Z jackdaniel: in this context 2018-08-01T14:21:03Z v0|d: All the TN based VMR optimizations will apply to closure variables, since closure variables are represented in the same way as all other variables in VMR. Closure values will be allocated in registers where appropriate. 2018-08-01T14:21:48Z v0|d: temporary name based optimization doesnt make much sense to me :( 2018-08-01T14:26:41Z jackdaniel: temporary names are used during optimizations before you are concerned with the actual machine 2018-08-01T14:27:11Z jackdaniel: after that some are assigned to registers, some are allocated on a heap and some on a stack 2018-08-01T14:27:42Z jackdaniel: so in my understanding that means: optimizations before phase of compiling into actual machine code for certain processor 2018-08-01T14:28:09Z v0|d: right, VMr is virtual machine representation after intermiediate continuation repre. 2018-08-01T14:28:20Z v0|d: ir2 vs ir1 2018-08-01T14:31:08Z fikka joined #lisp 2018-08-01T14:31:23Z xaotuk joined #lisp 2018-08-01T14:32:15Z v0|d: jackdaniel: profiler in ecl fails miserably. profiling counter goes to negative somehow, type checks fail, fyi. 2018-08-01T14:32:22Z kuwze joined #lisp 2018-08-01T14:33:34Z jackdaniel: I'm retiring ECL's profiler in favour of metering system (which is based on the same, CMUCL, profiler) which is available from quicklisp 2018-08-01T14:34:16Z jackdaniel: it may fail due to aggressive inlining, because this profiler works by replacing function definitions 2018-08-01T14:34:50Z jackdaniel: fwiw ECL may be used with standard POSIX tools for profiling C applications 2018-08-01T14:35:37Z vultyre quit (Quit: Leaving) 2018-08-01T14:38:29Z jackdaniel scribes on his long todo: improve perf output for ECL and write a tutorial how to use that 2018-08-01T14:38:32Z ofi quit (Quit: rcirc on GNU Emacs 26.1) 2018-08-01T14:41:57Z v0|d: jackdaniel: compiling is still so slow. 2018-08-01T14:42:20Z v0|d: maybe its possible to dlopen gcc once and compile an asdf system at once. 2018-08-01T14:42:34Z v0|d: otherwise its rlly painful. 2018-08-01T14:42:42Z fikka quit (Ping timeout: 245 seconds) 2018-08-01T14:43:59Z jackdaniel: opening gcc doesn't take that much time. main part is gcc compiling files into objects, then linking these objects etc 2018-08-01T14:45:08Z jackdaniel: there has been no work recently on improving compilation speed and none is planned atm (at least on calendar, if someone improves it I'll be happy to test and merge such improvement) 2018-08-01T14:45:47Z jackdaniel: that said, compilation time is not that important (especially that ASDF does some caching); major focus in near future will be in improvements to runtime (especially CLOS) 2018-08-01T14:46:01Z FreeBirdLjj joined #lisp 2018-08-01T14:46:35Z v0|d: oh i have a complaint. 2018-08-01T14:46:40Z v0|d: let me see. 2018-08-01T14:48:17Z fikka joined #lisp 2018-08-01T14:48:35Z xaotuk quit (Ping timeout: 240 seconds) 2018-08-01T14:49:34Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-01T14:51:48Z housel joined #lisp 2018-08-01T14:52:17Z shka: GCC is just slow, and that would be it 2018-08-01T14:52:36Z v0|d: OK got it. 2018-08-01T14:52:41Z shka: MAYBE clang could be better 2018-08-01T14:52:54Z shka: but i am not so sure about that 2018-08-01T14:52:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T14:53:09Z jackdaniel: you may always compile with tcc 2018-08-01T14:53:11Z v0|d: jackdaniel: in clos/standard.lsp, compute-effective-slot-definition method makes it very hard to use custom slot-definitions. 2018-08-01T14:53:37Z v0|d: the reason is the local fun direct-to-effective is not customizable. 2018-08-01T14:54:13Z shka: direct-to-effective is IIRC not part of MOP 2018-08-01T14:54:26Z shka: and should not be used in portable programs anyway 2018-08-01T14:54:34Z v0|d: shka: its local flet. 2018-08-01T14:54:59Z shka: what difference does it make? 2018-08-01T14:55:06Z v0|d: its not XEP 2018-08-01T14:55:48Z v0|d: SBCL solves this problem by compute-effective-slot-definition-initargs. 2018-08-01T14:55:55Z jackdaniel: v0|d: nothing prevents you from specializing compute-effective-slot-definition on your own class (i.e with eql specializer), isn't this the reason why mop is supported? 2018-08-01T14:56:21Z v0|d: jackdaniel: see the method in SBCL and you'll see what I mean. 2018-08-01T14:56:29Z v0|d: no need to re-implement stuff. 2018-08-01T14:56:45Z jackdaniel: sorry, I'm buried in pending tasks right now. if you report a ticket on gitlab with explanation I'll get to it eventually 2018-08-01T14:58:43Z fikka joined #lisp 2018-08-01T15:01:53Z narendraj9 quit (Ping timeout: 248 seconds) 2018-08-01T15:03:29Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T15:09:05Z fikka joined #lisp 2018-08-01T15:11:34Z beach: This new screenshot of the IR viewer shows the three kinds of highlighting that is supported now: highlighting the successors of a particular instruction, highlighting the defining and using instructions of some datum, and highlighting the data defined by or used by some instruction: http://metamodular.com/IR-viewer.png 2018-08-01T15:12:00Z beach: that ARE supported now 2018-08-01T15:13:43Z fikka quit (Ping timeout: 265 seconds) 2018-08-01T15:14:20Z beach: With this latest addition, the viewer now has a little more than 1000 lines of code. 2018-08-01T15:14:41Z Fare quit (Ping timeout: 248 seconds) 2018-08-01T15:15:28Z shka: it looks cute 2018-08-01T15:15:55Z beach: Thanks. More importantly, I hope it can be used for real IR debugging work. 2018-08-01T15:16:12Z beach: I did not aim for aesthetics. 2018-08-01T15:16:12Z v0|d: beach: is compute-effective-slot-definition-initargs a part of the standard? 2018-08-01T15:16:23Z beach: I doubt it. 2018-08-01T15:16:32Z beach: mop compute-effective-slot-definition-initargs 2018-08-01T15:16:32Z specbot: Couldn't find anything for compute-effective-slot-definition-initargs. 2018-08-01T15:16:35Z beach: See. 2018-08-01T15:16:47Z v0|d: Ok. 2018-08-01T15:17:30Z beach: You have all the generic functions here: http://metamodular.com/CLOS-MOP/all.html 2018-08-01T15:25:48Z Bike: when i made a custom slotd class, i defined an :around method on compute-effective-slot-definition that altered the slots manually instead of through initargs. kind of ugly, but works. 2018-08-01T15:27:18Z v0|d: I blieve adding unmake-instance to CL will solve the problem. 2018-08-01T15:27:37Z beach: What? 2018-08-01T15:27:55Z v0|d: eq #'identity (apply 'make-instance (unmake-instance *instance*)) => T 2018-08-01T15:28:53Z fikka joined #lisp 2018-08-01T15:28:54Z nirved quit (Ping timeout: 244 seconds) 2018-08-01T15:29:30Z Bike: oh, like unmake-instance returns the initargs. 2018-08-01T15:29:39Z v0|d: Instead of writing copy-instance, copy-object etc. 2018-08-01T15:29:52Z Bike: that's kind of problematic since make-instance andinitialize-instance and etc can have arbitrary side effects 2018-08-01T15:29:53Z v0|d: In GHC, you can do that I believe. 2018-08-01T15:30:07Z Bike: haskell? they don't have anything like clos. 2018-08-01T15:30:38Z v0|d: Bike: they have it for alg data types. 2018-08-01T15:30:49Z Bike: yeah. those are simple. 2018-08-01T15:31:30Z v0|d: I use unmake all the time over CLOs objects to implement fmaps. 2018-08-01T15:31:33Z Bike: as per how haskell usually rolls, what you can do is quite restricted so that the system can do amazing things with them. 2018-08-01T15:32:50Z v0|d: True, in CL apply is not optimized at all afaiknow. 2018-08-01T15:33:07Z v0|d: always a full-call. 2018-08-01T15:33:30Z Bike: depends. but that's not what i meant. 2018-08-01T15:33:44Z fikka quit (Ping timeout: 256 seconds) 2018-08-01T15:34:14Z Bike: you can, for example, have a shared-initialize method that takes a &key argument that controls some initialization behavior, but which does not itself correspond to a slot. 2018-08-01T15:34:57Z Bike: oh, but i suppose unmake-instance is itself a generic function 2018-08-01T15:36:59Z v0|d: Its possible to arrange stuff to save those args somewhere convenient. Not sure about the particular case you've meant, I'm afraid. 2018-08-01T15:37:42Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-01T15:43:00Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-01T15:43:17Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-01T15:49:36Z fikka joined #lisp 2018-08-01T15:52:52Z light2yellow joined #lisp 2018-08-01T15:54:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T15:56:40Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-01T15:57:20Z Baggers joined #lisp 2018-08-01T15:57:37Z Baggers left #lisp 2018-08-01T15:58:48Z FreeBirdLjj joined #lisp 2018-08-01T16:00:15Z v0|d: The two main components of VMR are Temporary Names (TNs) and Virtual OPerations (VOPs). 2018-08-01T16:00:23Z v0|d: jackdaniel: you were right. 2018-08-01T16:03:04Z asarch joined #lisp 2018-08-01T16:04:37Z orivej joined #lisp 2018-08-01T16:09:55Z fikka joined #lisp 2018-08-01T16:12:54Z JuanDaugherty quit (Quit: Exeunt) 2018-08-01T16:14:22Z fikka quit (Ping timeout: 244 seconds) 2018-08-01T16:14:33Z quipa quit (Read error: Connection reset by peer) 2018-08-01T16:14:50Z quipa joined #lisp 2018-08-01T16:17:40Z nowhere_man joined #lisp 2018-08-01T16:17:42Z LdBeth: Is Obj-C dead after Swift promoted? Will there be any plans on a Swift binding? 2018-08-01T16:19:19Z smasta quit (Ping timeout: 260 seconds) 2018-08-01T16:22:46Z kuribas quit (Remote host closed the connection) 2018-08-01T16:27:10Z Xach: LdBeth: not something to discuss here. 2018-08-01T16:27:40Z fikka joined #lisp 2018-08-01T16:30:05Z Fade joined #lisp 2018-08-01T16:45:51Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T16:46:19Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-01T16:49:13Z fikka joined #lisp 2018-08-01T16:49:29Z schweers quit (Ping timeout: 255 seconds) 2018-08-01T16:53:14Z p_l: heh 2018-08-01T16:53:29Z p_l: interviewers in job interviews should be prepared to tell me what language they want :> 2018-08-01T16:54:11Z p_l feels reasonably prideful that the code he wrote in browser's TEXTAREA compiled, even if had few errors) 2018-08-01T16:54:57Z v0|d: p_l: w3m? 2018-08-01T16:55:00Z Copenhagen_Bram joined #lisp 2018-08-01T16:55:17Z v0|d: heh, emacs->w3->textarea 2018-08-01T16:55:36Z p_l: nothing as fancy as that 2018-08-01T16:55:45Z p_l: chrome, no editor support 2018-08-01T16:56:13Z p_l: wrote a function in CL from memory to verify if an IPv4 address is inside the provided network 2018-08-01T16:56:49Z p_l: it compiled, though it had few errors (forgot arguments to functions in few places, had wrong order of arguments to ASH) 2018-08-01T16:57:32Z v0|d: did you get the job? 2018-08-01T16:58:13Z p_l: well, I'm definitely getting next interview 2018-08-01T16:58:34Z Josh_2: Xach is a package not compiling from Quicklisp your problem? Or do I message the maintainer? 2018-08-01T16:59:35Z mkolenda joined #lisp 2018-08-01T17:03:27Z mfiano: Josh_2: That depends on which quicklisp dist you are on, which OS, which implementation, and which implementation version. Xach tests on newish SBCL x64 on Linux. 2018-08-01T17:04:54Z Josh_2: I am on SBCL on Linux 2018-08-01T17:04:57Z Josh_2: x64 2018-08-01T17:05:08Z mfiano: I suppose it also depends on if you have any of its transitive dependencies in local-projects or another asdf central registry location, as well as if it depends on any foreign code 2018-08-01T17:05:36Z mfiano: Perhaps mentioning the system 2018-08-01T17:05:36Z Josh_2: I deleted Quicklisp and reinstalled and it still didn't work 2018-08-01T17:05:49Z Josh_2: It was working until I updated Quicklisp 2018-08-01T17:06:03Z mfiano: As that is what I assume you meant, since Quicklisp does not have anything to do with packages 2018-08-01T17:07:14Z Josh_2: am on 4.16.7 kernel on Gentoo 2018-08-01T17:07:23Z mfiano: You still didn't mention which system 2018-08-01T17:07:37Z m00natic quit (Remote host closed the connection) 2018-08-01T17:07:41Z Josh_2: sbcl 1.3.21. What u mean? 2018-08-01T17:08:01Z mfiano: Quicklisp is a frontend to asdf, and the 's' stands for 'system'. That's what we call Common Lisp collections of software 2018-08-01T17:08:16Z mfiano: You erroneously call them packages, which are something else entirely 2018-08-01T17:08:31Z v0|d: p_l: good luck. 2018-08-01T17:08:47Z Josh_2: Well I was just running (ql:quickload "spinneret") 2018-08-01T17:09:06Z Josh_2: just not sure who to tell 2018-08-01T17:09:23Z mfiano: I use spinneret daily. It works fine from Quicklisp. 2018-08-01T17:09:39Z mfiano: Perhaps paste the backtrace and compile log somewhere 2018-08-01T17:11:47Z test1600 joined #lisp 2018-08-01T17:12:18Z rpg joined #lisp 2018-08-01T17:12:44Z Shinmera joined #lisp 2018-08-01T17:12:58Z Josh_2: mfiano: https://pastebin.com/8B6ysHS4 2018-08-01T17:15:42Z mfiano: It looks like it's erroring on serapeum, not spinneret. Particularly the strings module, which depends on the string-case library, which got a recent update to support newer SBCL versions. I would ensure you are on the latest stable SBCL, and clear your FASL's. 2018-08-01T17:15:51Z asarch quit (Remote host closed the connection) 2018-08-01T17:15:54Z mfiano: But I have to go back to work now. Good luck 2018-08-01T17:16:12Z asarch joined #lisp 2018-08-01T17:18:11Z Josh_2: alrighty thanks 2018-08-01T17:19:28Z Orion3k quit (Quit: Leaving) 2018-08-01T17:20:24Z v0|d: Josh_2: There is no function named DECLARE. 2018-08-01T17:20:29Z v0|d: this doesn't make sense. 2018-08-01T17:20:32Z v0|d: which lisp is this? 2018-08-01T17:21:31Z Josh_2: SBCL 1.3.21 2018-08-01T17:21:46Z jasom: v0|d: that's an sbcl error message; most other implementations have a less friendly error for the same issue 2018-08-01T17:22:32Z Josh_2: I'm going to delete the portage version and download the 1.4.10 from sbcl website 2018-08-01T17:23:18Z kuwze: do you guys use roswell to have a current sbcl? or do you use something else? 2018-08-01T17:23:25Z jasom: Josh_2: you can also use the lisp overlay 2018-08-01T17:23:33Z jasom: Josh_2: https://gitweb.gentoo.org/proj/lisp.git/ 2018-08-01T17:23:45Z Josh_2: o 2018-08-01T17:24:06Z kuwze: I have been using my distro sbcl but I guess I shouldn't be... 2018-08-01T17:24:35Z jasom: kuwze: Josh and I both use gentoo and the distro provided sbcl; if I need to test on a bleeding edge, I just download and build it. 2018-08-01T17:25:04Z kuwze: jasom: ah okay. thank you for clarifying. 2018-08-01T17:25:46Z jkordani quit (Read error: Connection reset by peer) 2018-08-01T17:25:56Z jasom: kuwze: I have nothing against roswell, it just didn't exist when my habits formed. 2018-08-01T17:26:14Z jkordani joined #lisp 2018-08-01T17:26:37Z edgar-rft quit (Remote host closed the connection) 2018-08-01T17:27:18Z edgar-rft joined #lisp 2018-08-01T17:31:16Z smasta joined #lisp 2018-08-01T17:35:04Z rozenglass joined #lisp 2018-08-01T17:40:17Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T17:42:59Z phoe joined #lisp 2018-08-01T17:43:09Z emacsomancer joined #lisp 2018-08-01T17:43:53Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-01T17:44:42Z kuwze quit (Ping timeout: 252 seconds) 2018-08-01T17:44:52Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-01T17:45:04Z smasta quit (Ping timeout: 260 seconds) 2018-08-01T17:46:56Z smasta joined #lisp 2018-08-01T17:50:22Z Fare joined #lisp 2018-08-01T17:56:40Z fikka joined #lisp 2018-08-01T17:58:08Z hiroaki joined #lisp 2018-08-01T17:58:20Z Josh_2: jasom: I'm going to use the overlay, thanks for the headsup :) 2018-08-01T17:59:43Z lonjil2 joined #lisp 2018-08-01T18:00:12Z sauvin quit (Read error: Connection reset by peer) 2018-08-01T18:00:31Z cpape quit (Ping timeout: 256 seconds) 2018-08-01T18:00:31Z lonjil quit (Ping timeout: 256 seconds) 2018-08-01T18:00:31Z easye quit (Ping timeout: 256 seconds) 2018-08-01T18:01:37Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T18:01:52Z mkolenda joined #lisp 2018-08-01T18:03:09Z pdv quit (Ping timeout: 260 seconds) 2018-08-01T18:03:57Z swflint quit (Ping timeout: 240 seconds) 2018-08-01T18:05:29Z swflint joined #lisp 2018-08-01T18:09:21Z kenster joined #lisp 2018-08-01T18:09:30Z kenster: doing some C++ and lisp programming on my CDN https://www.twitch.tv/kingherring 2018-08-01T18:11:51Z fikka joined #lisp 2018-08-01T18:14:41Z dented42 joined #lisp 2018-08-01T18:16:41Z dented42 quit (Client Quit) 2018-08-01T18:17:10Z Fare quit (Ping timeout: 264 seconds) 2018-08-01T18:18:58Z APic joined #lisp 2018-08-01T18:22:27Z Fare joined #lisp 2018-08-01T18:24:38Z Kundry_Wag joined #lisp 2018-08-01T18:30:34Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T18:36:41Z fikka joined #lisp 2018-08-01T18:38:37Z whartung_ quit (Quit: whartung_) 2018-08-01T18:39:20Z whartung joined #lisp 2018-08-01T18:41:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T18:46:21Z fikka joined #lisp 2018-08-01T18:49:06Z Josh_2: updated sbcl to 1.4.9 and still getting the same error 2018-08-01T18:49:29Z rozenglass quit (Remote host closed the connection) 2018-08-01T18:51:34Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T18:53:29Z varjag joined #lisp 2018-08-01T18:56:27Z fikka joined #lisp 2018-08-01T18:57:59Z azimut quit (Ping timeout: 265 seconds) 2018-08-01T18:58:28Z Kundry_Wag quit (Ping timeout: 265 seconds) 2018-08-01T19:00:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T19:01:13Z Demosthenex: teaching the next generation. having a blast showing my youngest son how to use emacs, slime, and CL to make a text adventure game =] 2018-08-01T19:06:09Z varjag: cool 2018-08-01T19:06:30Z dlowe: sweet 2018-08-01T19:07:02Z fikka joined #lisp 2018-08-01T19:09:02Z Demosthenex: he is not intimidated by the hotkeys, he's been quick to pick them up. also, using tmux/screen to share a session we can both work in is GOLDEN 2018-08-01T19:09:54Z Demosthenex: he was upset he'd have to make a bulk edit for some stuff, i did it in seconds using an emacs keyboard macro. blew his mind ;] 2018-08-01T19:10:55Z vlatkoB quit (Remote host closed the connection) 2018-08-01T19:12:00Z fikka quit (Ping timeout: 268 seconds) 2018-08-01T19:12:49Z Josh_2: Demosthenex: he's probably better at it than me :) 2018-08-01T19:13:44Z dlowe: Demosthenex: curious, how old? 2018-08-01T19:13:50Z Demosthenex: dlowe: 15 2018-08-01T19:14:09Z Demosthenex: good age for learning languages. i learned pascal, x86 assembly, c and c++ in highschool 2018-08-01T19:14:13Z rozenglass joined #lisp 2018-08-01T19:16:25Z dlowe: nod 2018-08-01T19:17:45Z aeth: Demosthenex: Have you seen this library? https://borodust.org/projects/trivial-gamekit/ 2018-08-01T19:19:20Z Demosthenex: aeth: that is a GREAT link. thank you! 2018-08-01T19:19:31Z Demosthenex: aeth: at the moment though he's doing a text adventure, like a MUD. 2018-08-01T19:19:57Z Demosthenex: its a good opportunity to learn regular expression, command parsing, REPL loops, basic OOP, and more 2018-08-01T19:20:21Z al-damiri joined #lisp 2018-08-01T19:21:54Z dim: Demosthenex: have a look at https://tic.computer even if it's not CL but lua, also there's a CL version out there but you might need to debug it 2018-08-01T19:22:24Z dented42 joined #lisp 2018-08-01T19:22:29Z Fare quit (Ping timeout: 260 seconds) 2018-08-01T19:22:42Z Demosthenex: pretty cool! 2018-08-01T19:23:01Z Demosthenex: funny that he's enjoying learning some basics, while i chomp at the bit over the lack of TUI libs for basic CRUD interfaces :P 2018-08-01T19:23:17Z dim: we made the skeleton of a game with my 14yo nephew a couple weeks ago, using Tic-80, it all happens in within the same application which is pretty nice 2018-08-01T19:23:49Z Demosthenex: what's good for me is that he's played MUDs before, so he's keen to try and recreate the experience 2018-08-01T19:24:06Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T19:24:49Z hiroaki quit (Ping timeout: 260 seconds) 2018-08-01T19:25:54Z dim: do you know about http://www.lisperati.com/casting.html ? 2018-08-01T19:27:42Z vultyre joined #lisp 2018-08-01T19:28:34Z jkordani: beach: what is the impetus for your questions about architecture? Are you writing a new compiler for fun, work? 2018-08-01T19:29:11Z dlowe: Demosthenex: you might want to check out #lispgames 2018-08-01T19:31:01Z pjb joined #lisp 2018-08-01T19:32:10Z Bike: jkordani: https://github.com/robert-strandh/SICL 2018-08-01T19:32:27Z Bike: specifically they were talking about the gc, i think 2018-08-01T19:33:15Z jkordani: ty bike: 2018-08-01T19:40:15Z vultyre: Is anybody familiar with cl-ftp? I am working on an application that uses it as an ftp client, but I am not getting expected behavior. When I try to download a non-existent file, I should receive an ftp:ftp-error object. However, the evaluation just hangs instead. 2018-08-01T19:40:28Z vultyre: Here is an example: https://pastebin.com/XHARLdyw. Does anyone know why this might be the case? 2018-08-01T19:43:24Z Josh_2: vultyre: you are trying to hax the planet why you think it's gonna work /s 2018-08-01T19:43:25Z Guest5800_ joined #lisp 2018-08-01T19:45:47Z pjb: vultyre: https://pastebin.com/6ppHjAXE 2018-08-01T19:46:01Z fikka joined #lisp 2018-08-01T19:46:50Z igemnace quit (Remote host closed the connection) 2018-08-01T19:47:28Z pjb: vultyre: I'd say you're using an old version ofc l-ftp. 2018-08-01T19:47:34Z pjb: s/c / c/ 2018-08-01T19:47:40Z vultyre: Sorry, here's the fixed example: https://pastebin.com/TKye50AV. I was trying to rewrite it in the simplest way possible to show my problem but forgot the conn argument 2018-08-01T19:48:26Z dented42 joined #lisp 2018-08-01T19:50:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T19:51:28Z Plazma_ is now known as Plazma 2018-08-01T19:55:09Z orivej quit (Ping timeout: 260 seconds) 2018-08-01T19:56:28Z fikka joined #lisp 2018-08-01T19:59:41Z orivej joined #lisp 2018-08-01T20:01:11Z fikka quit (Ping timeout: 244 seconds) 2018-08-01T20:01:45Z hiroaki joined #lisp 2018-08-01T20:04:47Z jasom: vultyre: shelling out to curl or wget is sadly going to be more reliable. There are many corner cases in how FTP is implemented. 2018-08-01T20:05:34Z sh1r0 joined #lisp 2018-08-01T20:05:46Z v0|d: Demosthenex: I want to build a space invaders clone in browser using parenscript. Prob. several pages long, let me know if you are in doing such. 2018-08-01T20:06:15Z v0|d: s//interested/g 2018-08-01T20:07:57Z Fare joined #lisp 2018-08-01T20:09:40Z vultyre: jasom, thanks 2018-08-01T20:12:58Z gravicappa quit (Ping timeout: 264 seconds) 2018-08-01T20:14:25Z sh1r0 quit (Ping timeout: 248 seconds) 2018-08-01T20:16:30Z fikka joined #lisp 2018-08-01T20:18:24Z sh1r0 joined #lisp 2018-08-01T20:20:09Z papachan joined #lisp 2018-08-01T20:20:39Z dented42 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-01T20:21:36Z fikka quit (Ping timeout: 265 seconds) 2018-08-01T20:25:21Z v0|d quit (Remote host closed the connection) 2018-08-01T20:26:30Z vultyre: jasom, I was able to switch it over and verify that it works. 2018-08-01T20:26:53Z fikka joined #lisp 2018-08-01T20:27:57Z pierpal quit (Quit: Poof) 2018-08-01T20:28:10Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T20:28:12Z pierpal joined #lisp 2018-08-01T20:31:29Z fikka quit (Ping timeout: 248 seconds) 2018-08-01T20:33:27Z kajo quit (Ping timeout: 240 seconds) 2018-08-01T20:35:46Z stylewarning quit (Changing host) 2018-08-01T20:35:46Z stylewarning joined #lisp 2018-08-01T20:35:46Z stylewarning quit (Changing host) 2018-08-01T20:35:46Z stylewarning joined #lisp 2018-08-01T20:36:02Z kajo joined #lisp 2018-08-01T20:39:51Z angavrilov quit (Remote host closed the connection) 2018-08-01T20:41:31Z vultyre quit (Quit: Leaving) 2018-08-01T20:43:39Z stylewarning quit (Changing host) 2018-08-01T20:43:39Z stylewarning joined #lisp 2018-08-01T20:43:39Z stylewarning quit (Changing host) 2018-08-01T20:43:39Z stylewarning joined #lisp 2018-08-01T20:44:05Z stylewarning quit (Changing host) 2018-08-01T20:44:05Z stylewarning joined #lisp 2018-08-01T20:44:05Z stylewarning quit (Changing host) 2018-08-01T20:44:05Z stylewarning joined #lisp 2018-08-01T20:45:27Z test1600 quit (Ping timeout: 240 seconds) 2018-08-01T20:46:59Z fikka joined #lisp 2018-08-01T20:50:13Z zagura joined #lisp 2018-08-01T20:51:44Z fikka quit (Ping timeout: 260 seconds) 2018-08-01T20:55:23Z Kundry_Wag joined #lisp 2018-08-01T20:55:33Z fikka joined #lisp 2018-08-01T21:02:14Z sh1r0 quit (Ping timeout: 260 seconds) 2018-08-01T21:12:55Z xaotuk joined #lisp 2018-08-01T21:21:52Z v0|d joined #lisp 2018-08-01T21:24:44Z chronal joined #lisp 2018-08-01T21:24:53Z chronal left #lisp 2018-08-01T21:28:33Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-01T21:33:34Z pierpa joined #lisp 2018-08-01T21:41:57Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-01T21:42:25Z Lycurgus joined #lisp 2018-08-01T21:44:19Z quipa quit (Quit: Leaving) 2018-08-01T21:49:16Z LiamH quit (Quit: Leaving.) 2018-08-01T21:50:39Z reg_32 joined #lisp 2018-08-01T21:51:08Z ntqz joined #lisp 2018-08-01T21:52:04Z reg_32: does anyone know if I can set a default debug level in CCL like what can be done in SBCL with (sb-ext:restrict-compiler-policy 'debug 3) 2018-08-01T21:53:58Z nowhere_man joined #lisp 2018-08-01T21:56:24Z v0|d: reg_32: (proclaim (optimize ..)) does not work? 2018-08-01T21:57:14Z azimut joined #lisp 2018-08-01T21:59:30Z pierpa: reg_32: AFAIK no. That's a sbcl feature that should be copied by the other implementations. 2018-08-01T22:00:00Z pierpa: v0|d: reg_32 wishes something different 2018-08-01T22:00:33Z mindCrime quit (Ping timeout: 248 seconds) 2018-08-01T22:01:00Z Bike quit (Ping timeout: 252 seconds) 2018-08-01T22:02:10Z v0|d: I should have guessd that. sry. 2018-08-01T22:02:58Z v0|d: so it basically does what? overrides proclaims? 2018-08-01T22:03:06Z pierpa: yes, basically 2018-08-01T22:03:16Z v0|d: see. 2018-08-01T22:03:16Z pierpa: no, wait. 2018-08-01T22:03:24Z pierpa: overrides local declarations 2018-08-01T22:04:01Z pierpa: so after the command above, a local declaration (debug 0) has no effect 2018-08-01T22:04:18Z v0|d: interesting. 2018-08-01T22:04:31Z reg_32: that's was my point 2018-08-01T22:04:35Z reg_32: thanks pierpa 2018-08-01T22:05:08Z pierpa: yw. keep present that I may be wrong, of course 2018-08-01T22:05:56Z pierpa: I read the CCL manual cover to cover and don't remember this feature. But this does not absolute certainty that there's no sucj a feature. 2018-08-01T22:06:08Z pierpa: *does not give 2018-08-01T22:07:29Z varjag quit (Ping timeout: 248 seconds) 2018-08-01T22:11:02Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-01T22:15:20Z asarch_ joined #lisp 2018-08-01T22:16:35Z asarch quit (Ping timeout: 240 seconds) 2018-08-01T22:17:02Z rpg joined #lisp 2018-08-01T22:22:38Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-01T22:26:02Z pjb: There should be no local optimize declarations. Report the bug to the library author! 2018-08-01T22:26:12Z Jesin joined #lisp 2018-08-01T22:26:28Z equwal joined #lisp 2018-08-01T22:27:19Z asarch__ joined #lisp 2018-08-01T22:27:27Z asarch_ quit (Read error: Connection reset by peer) 2018-08-01T22:28:32Z krrrcks quit (Ping timeout: 256 seconds) 2018-08-01T22:34:44Z reg_32 quit (Quit: Page closed) 2018-08-01T22:35:24Z jasom: pjb: it overrides declaims as well, and there is a case for local optimize declarations to be made. Some numeric code can have massive performance speedups with a safety of 0 and it is often possible to make a safe interface to them. 2018-08-01T22:42:05Z anewuser joined #lisp 2018-08-01T22:43:07Z quipa joined #lisp 2018-08-01T22:44:13Z quipa quit (Max SendQ exceeded) 2018-08-01T22:44:38Z Jesin quit (Remote host closed the connection) 2018-08-01T22:44:47Z quipa joined #lisp 2018-08-01T22:46:48Z Lycurgus quit (Quit: Exeunt) 2018-08-01T22:47:52Z Jesin joined #lisp 2018-08-01T22:50:08Z orivej quit (Ping timeout: 244 seconds) 2018-08-01T22:50:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T22:55:08Z rumbler31 quit (Remote host closed the connection) 2018-08-01T22:56:06Z fikka joined #lisp 2018-08-01T23:00:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T23:04:03Z robotoad quit (Quit: robotoad) 2018-08-01T23:04:22Z nullniverse joined #lisp 2018-08-01T23:04:33Z xaotuk quit (Ping timeout: 248 seconds) 2018-08-01T23:05:38Z Bike joined #lisp 2018-08-01T23:06:32Z fikka joined #lisp 2018-08-01T23:09:29Z random-nick quit (Read error: Connection reset by peer) 2018-08-01T23:10:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-01T23:10:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T23:16:38Z fikka joined #lisp 2018-08-01T23:17:45Z asarch__ is now known as asarch 2018-08-01T23:21:07Z robotoad joined #lisp 2018-08-01T23:21:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-01T23:25:51Z Kundry_Wag joined #lisp 2018-08-01T23:26:00Z stylewarning: yeah, "no local optimizations" is lousy advice 2018-08-01T23:27:38Z v0|d quit (Remote host closed the connection) 2018-08-01T23:28:31Z aeth: Additionally, SBCL uses double-float for trigonometric functions on single-floats on the default settings, but not at (speed 3). When speed is more important than precision (such as in real-time graphical applications like games), you want speed instead, especially since using double-floats in this context will cons and could potentially trigger a garbage collection when you don't want it. 2018-08-01T23:31:25Z aeth: (Graphics are mostly done on the GPU, but you often *generate* the matrices that you give to GPU with a bunch of trig functions.) 2018-08-01T23:32:00Z gigetoo quit (Ping timeout: 256 seconds) 2018-08-01T23:33:51Z gigetoo joined #lisp 2018-08-01T23:35:53Z patlv joined #lisp 2018-08-01T23:36:46Z fikka joined #lisp 2018-08-01T23:39:47Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-01T23:41:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-01T23:42:39Z hiroaki quit (Ping timeout: 260 seconds) 2018-08-01T23:47:02Z patlv quit (Ping timeout: 268 seconds) 2018-08-01T23:47:13Z fikka joined #lisp 2018-08-01T23:47:42Z fikka quit (Read error: Connection reset by peer) 2018-08-01T23:54:21Z mrcom quit (Quit: Leaving) 2018-08-01T23:54:26Z kajo quit (Ping timeout: 268 seconds) 2018-08-01T23:54:55Z Denommus quit (Read error: Connection reset by peer) 2018-08-01T23:56:46Z kajo joined #lisp 2018-08-01T23:57:23Z fikka joined #lisp 2018-08-01T23:57:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-01T23:59:12Z Oladon joined #lisp 2018-08-02T00:02:19Z patlv joined #lisp 2018-08-02T00:02:29Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T00:03:45Z anewuser quit (Ping timeout: 248 seconds) 2018-08-02T00:04:02Z gector quit (Read error: Connection reset by peer) 2018-08-02T00:04:28Z gector joined #lisp 2018-08-02T00:05:10Z Kundry_Wag joined #lisp 2018-08-02T00:06:21Z lieven quit (Ping timeout: 240 seconds) 2018-08-02T00:06:34Z Pixel_Outlaw joined #lisp 2018-08-02T00:07:51Z fikka joined #lisp 2018-08-02T00:09:54Z Arcaelyx_ quit (Ping timeout: 260 seconds) 2018-08-02T00:10:09Z SaganMan joined #lisp 2018-08-02T00:11:43Z anewuser joined #lisp 2018-08-02T00:12:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T00:15:12Z jack_rabbit joined #lisp 2018-08-02T00:15:26Z troydm quit (Ping timeout: 255 seconds) 2018-08-02T00:16:41Z jasom: I suspect cl-ppcre is what would lead to that recommendation though. You can get some errors that appear to be in your code that uses cl-ppcre when they actually are happening deep within cl-ppcre. 2018-08-02T00:17:41Z fikka joined #lisp 2018-08-02T00:18:10Z mrcom joined #lisp 2018-08-02T00:18:29Z lnostdal quit (Read error: Connection reset by peer) 2018-08-02T00:22:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T00:24:51Z troydm joined #lisp 2018-08-02T00:25:40Z quipa quit (Remote host closed the connection) 2018-08-02T00:28:07Z fikka joined #lisp 2018-08-02T00:29:37Z rumbler31 joined #lisp 2018-08-02T00:32:06Z rumbler31 quit (Remote host closed the connection) 2018-08-02T00:32:27Z asarch quit (Ping timeout: 240 seconds) 2018-08-02T00:33:17Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T00:38:20Z lnostdal joined #lisp 2018-08-02T00:43:07Z ebrasca joined #lisp 2018-08-02T00:48:11Z fikka joined #lisp 2018-08-02T00:50:54Z SaganMan quit (Ping timeout: 260 seconds) 2018-08-02T00:53:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T00:55:40Z Kundry_Wag quit (Remote host closed the connection) 2018-08-02T00:56:14Z Kundry_Wag joined #lisp 2018-08-02T00:58:57Z fikka joined #lisp 2018-08-02T01:00:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-02T01:04:07Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T01:04:22Z Kundry_Wag joined #lisp 2018-08-02T01:08:35Z troydm quit (Ping timeout: 240 seconds) 2018-08-02T01:08:51Z fikka joined #lisp 2018-08-02T01:11:54Z Fare joined #lisp 2018-08-02T01:13:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T01:16:13Z Josh_2 quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-08-02T01:19:17Z fikka joined #lisp 2018-08-02T01:24:06Z fikka quit (Ping timeout: 244 seconds) 2018-08-02T01:29:05Z patlv quit (Ping timeout: 248 seconds) 2018-08-02T01:29:09Z fikka joined #lisp 2018-08-02T01:30:31Z patlv joined #lisp 2018-08-02T01:33:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T01:36:40Z Arcaelyx joined #lisp 2018-08-02T01:39:35Z fikka joined #lisp 2018-08-02T01:43:15Z mathZ joined #lisp 2018-08-02T01:44:01Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T01:44:33Z patlv quit (Ping timeout: 248 seconds) 2018-08-02T01:47:16Z patlv joined #lisp 2018-08-02T01:49:25Z fikka joined #lisp 2018-08-02T01:52:05Z robotoad quit (Quit: robotoad) 2018-08-02T01:54:09Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T01:56:17Z patlv quit (Ping timeout: 248 seconds) 2018-08-02T02:00:56Z patlv joined #lisp 2018-08-02T02:01:05Z dddddd quit (Remote host closed the connection) 2018-08-02T02:10:10Z fikka joined #lisp 2018-08-02T02:14:57Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T02:30:27Z fikka joined #lisp 2018-08-02T02:32:37Z rumbler31 joined #lisp 2018-08-02T02:35:23Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T02:35:52Z robotoad joined #lisp 2018-08-02T02:36:33Z troydm joined #lisp 2018-08-02T02:37:21Z rumbler31 quit (Ping timeout: 248 seconds) 2018-08-02T02:37:51Z anewuser quit (Ping timeout: 268 seconds) 2018-08-02T02:40:55Z JuanDaugherty joined #lisp 2018-08-02T02:44:10Z anewuser joined #lisp 2018-08-02T02:44:32Z patlv quit (Ping timeout: 256 seconds) 2018-08-02T02:48:27Z loke` joined #lisp 2018-08-02T02:49:44Z loke` quit (Remote host closed the connection) 2018-08-02T02:50:46Z fikka joined #lisp 2018-08-02T02:50:57Z anewuser quit (Ping timeout: 240 seconds) 2018-08-02T02:53:53Z nullniverse quit (Ping timeout: 248 seconds) 2018-08-02T02:55:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T03:01:37Z fikka joined #lisp 2018-08-02T03:05:16Z nowhere_man joined #lisp 2018-08-02T03:06:09Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T03:06:30Z loke joined #lisp 2018-08-02T03:11:26Z fikka joined #lisp 2018-08-02T03:14:41Z nowhere_man quit (Ping timeout: 248 seconds) 2018-08-02T03:15:58Z pierpa quit (Quit: Page closed) 2018-08-02T03:16:44Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T03:18:35Z pjb quit (Remote host closed the connection) 2018-08-02T03:21:55Z fikka joined #lisp 2018-08-02T03:26:01Z Pixel_Outlaw quit (Remote host closed the connection) 2018-08-02T03:26:22Z voidlily quit (Ping timeout: 260 seconds) 2018-08-02T03:26:33Z fikka quit (Ping timeout: 244 seconds) 2018-08-02T03:29:42Z vultyre joined #lisp 2018-08-02T03:31:47Z fikka joined #lisp 2018-08-02T03:34:00Z vultyre quit (Client Quit) 2018-08-02T03:36:33Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T03:38:25Z Kundry_Wag quit (Remote host closed the connection) 2018-08-02T03:38:57Z Kundry_Wag joined #lisp 2018-08-02T03:39:20Z voidlily joined #lisp 2018-08-02T03:42:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-02T03:52:03Z fikka joined #lisp 2018-08-02T03:52:13Z test1600 joined #lisp 2018-08-02T03:56:06Z pierpal quit (Quit: Poof) 2018-08-02T03:57:22Z fikka quit (Ping timeout: 264 seconds) 2018-08-02T03:58:57Z test1600 quit (Ping timeout: 248 seconds) 2018-08-02T04:10:33Z Bike quit (Quit: Lost terminal) 2018-08-02T04:12:44Z fikka joined #lisp 2018-08-02T04:15:02Z biopandemic quit (Quit: Quit.) 2018-08-02T04:17:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T04:21:02Z marusich joined #lisp 2018-08-02T04:23:09Z fikka joined #lisp 2018-08-02T04:27:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T04:30:12Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-02T04:33:16Z fikka joined #lisp 2018-08-02T04:37:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T04:40:04Z emaczen joined #lisp 2018-08-02T04:43:27Z fikka joined #lisp 2018-08-02T04:46:28Z flip214: good morning! today even before beach ;) 2018-08-02T04:47:04Z housel quit (Remote host closed the connection) 2018-08-02T04:48:01Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T04:48:26Z JuanDaugherty quit (Quit: Exeunt) 2018-08-02T04:50:41Z housel joined #lisp 2018-08-02T04:52:49Z dilated_dinosaur quit (Ping timeout: 248 seconds) 2018-08-02T04:53:17Z fikka joined #lisp 2018-08-02T04:58:27Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T04:59:09Z LdBeth: Good afterwards 2018-08-02T05:02:01Z mathZ left #lisp 2018-08-02T05:07:19Z sauvin joined #lisp 2018-08-02T05:14:00Z fikka joined #lisp 2018-08-02T05:18:38Z flazh quit (Ping timeout: 276 seconds) 2018-08-02T05:19:04Z fikka quit (Ping timeout: 265 seconds) 2018-08-02T05:23:37Z terpri quit (Remote host closed the connection) 2018-08-02T05:24:30Z fikka joined #lisp 2018-08-02T05:29:13Z fikka quit (Ping timeout: 265 seconds) 2018-08-02T05:33:07Z Inline quit (Remote host closed the connection) 2018-08-02T05:34:20Z fikka joined #lisp 2018-08-02T05:34:55Z ofi joined #lisp 2018-08-02T05:38:35Z wigust quit (Ping timeout: 240 seconds) 2018-08-02T05:39:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-02T05:40:03Z wigust joined #lisp 2018-08-02T05:44:41Z lavaflow_ is now known as lavaflow 2018-08-02T05:45:39Z jlarocco joined #lisp 2018-08-02T05:46:53Z phoe: minion: memo for pierpa: I remember that there was kind-of-an-equivalent in CCL; you could ask rme for that because he pointed me towards something similar once. 2018-08-02T05:46:53Z minion: Remembered. I'll tell pierpa when he/she/it next speaks. 2018-08-02T05:47:39Z lieven joined #lisp 2018-08-02T05:51:10Z gravicappa joined #lisp 2018-08-02T05:54:41Z fikka joined #lisp 2018-08-02T05:59:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T06:00:11Z igemnace joined #lisp 2018-08-02T06:01:56Z vlatkoB joined #lisp 2018-08-02T06:05:31Z fikka joined #lisp 2018-08-02T06:09:07Z beach: Good morning everyone! 2018-08-02T06:09:18Z beach: Hello flip214. Back from vacation? 2018-08-02T06:10:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T06:15:17Z fikka joined #lisp 2018-08-02T06:17:33Z al-damiri quit (Quit: Connection closed for inactivity) 2018-08-02T06:20:26Z fikka quit (Ping timeout: 256 seconds) 2018-08-02T06:25:51Z fikka joined #lisp 2018-08-02T06:27:19Z stacksmith quit (Read error: Connection reset by peer) 2018-08-02T06:28:23Z phoe: Morning! 2018-08-02T06:30:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T06:33:52Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-02T06:35:05Z tralala joined #lisp 2018-08-02T06:35:47Z fikka joined #lisp 2018-08-02T06:37:57Z rozenglass quit (Remote host closed the connection) 2018-08-02T06:39:42Z Shinmera: Morning. 2018-08-02T06:40:49Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T06:44:41Z fikka joined #lisp 2018-08-02T06:52:04Z pierpal joined #lisp 2018-08-02T06:52:21Z pierpal quit (Remote host closed the connection) 2018-08-02T06:59:19Z nowhere_man joined #lisp 2018-08-02T07:16:54Z schweers joined #lisp 2018-08-02T07:23:39Z equwal quit (Remote host closed the connection) 2018-08-02T07:26:32Z equwal joined #lisp 2018-08-02T07:29:48Z pierpal joined #lisp 2018-08-02T07:30:19Z pierpal quit (Client Quit) 2018-08-02T07:31:28Z pierpal joined #lisp 2018-08-02T07:31:46Z pierpal quit (Remote host closed the connection) 2018-08-02T07:34:38Z iridioid joined #lisp 2018-08-02T07:36:01Z smasta quit (Write error: Connection reset by peer) 2018-08-02T07:37:36Z charh_ joined #lisp 2018-08-02T07:38:12Z charh quit (Ping timeout: 256 seconds) 2018-08-02T07:39:49Z troydm quit (Ping timeout: 260 seconds) 2018-08-02T07:43:03Z troydm joined #lisp 2018-08-02T07:45:21Z ircbrowse quit (Ping timeout: 256 seconds) 2018-08-02T07:45:21Z thinkpad quit (Ping timeout: 256 seconds) 2018-08-02T07:45:26Z CrazyEddy quit (Read error: Connection reset by peer) 2018-08-02T07:45:34Z kozy_ quit (Write error: Connection reset by peer) 2018-08-02T07:45:44Z emacsomancer quit (Read error: No route to host) 2018-08-02T07:46:02Z shka quit (Remote host closed the connection) 2018-08-02T07:46:03Z equwal quit (Remote host closed the connection) 2018-08-02T07:46:07Z zigpaw quit (Read error: Connection reset by peer) 2018-08-02T07:46:08Z moei quit (Ping timeout: 256 seconds) 2018-08-02T07:46:26Z CrazyEddy joined #lisp 2018-08-02T07:46:29Z ircbrowse joined #lisp 2018-08-02T07:46:39Z kozy joined #lisp 2018-08-02T07:46:42Z MetaYan quit (Ping timeout: 256 seconds) 2018-08-02T07:47:46Z thinkpad joined #lisp 2018-08-02T07:49:32Z angavrilov joined #lisp 2018-08-02T07:53:59Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-02T07:56:50Z Copenhagen_Bram joined #lisp 2018-08-02T08:11:52Z nirved joined #lisp 2018-08-02T08:13:01Z gector quit (Quit: WeeChat 2.0.1) 2018-08-02T08:13:19Z gector joined #lisp 2018-08-02T08:13:59Z renzhi joined #lisp 2018-08-02T08:14:58Z dddddd joined #lisp 2018-08-02T08:15:40Z crsc quit (Quit: leaving) 2018-08-02T08:22:04Z varjag joined #lisp 2018-08-02T08:32:31Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-02T08:33:12Z gector quit (Quit: WeeChat 2.0.1) 2018-08-02T08:33:27Z gector joined #lisp 2018-08-02T08:34:22Z DataLinkDroid joined #lisp 2018-08-02T08:37:00Z orivej joined #lisp 2018-08-02T08:38:57Z iridioid quit (Ping timeout: 248 seconds) 2018-08-02T08:39:19Z vertigo quit (Ping timeout: 260 seconds) 2018-08-02T08:42:49Z crsc joined #lisp 2018-08-02T08:51:45Z SaganMan joined #lisp 2018-08-02T08:52:42Z nullniverse joined #lisp 2018-08-02T08:54:09Z hh47 joined #lisp 2018-08-02T08:58:59Z hh47 quit (Ping timeout: 265 seconds) 2018-08-02T09:00:50Z Fare quit (Ping timeout: 244 seconds) 2018-08-02T09:01:49Z hh47 joined #lisp 2018-08-02T09:06:29Z eminhi joined #lisp 2018-08-02T09:07:48Z DataLinkDroid quit (Quit: Alla prossima volta) 2018-08-02T09:11:05Z marusich quit (Ping timeout: 240 seconds) 2018-08-02T09:15:39Z DataLinkDroid joined #lisp 2018-08-02T09:19:48Z hh47 quit (Quit: hh47) 2018-08-02T09:44:45Z eminhi quit (Ping timeout: 244 seconds) 2018-08-02T09:46:43Z eminhi joined #lisp 2018-08-02T10:16:44Z ofi quit (Ping timeout: 260 seconds) 2018-08-02T10:29:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T10:29:54Z fikka joined #lisp 2018-08-02T10:36:59Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-02T10:38:54Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T10:41:22Z random-nick joined #lisp 2018-08-02T10:48:22Z X-Scale quit (Ping timeout: 264 seconds) 2018-08-02T10:49:13Z charh_ is now known as char_ 2018-08-02T10:49:24Z char_ is now known as charh 2018-08-02T10:51:05Z troydm quit (Ping timeout: 240 seconds) 2018-08-02T10:54:41Z fikka joined #lisp 2018-08-02T10:56:47Z m00natic joined #lisp 2018-08-02T10:59:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T11:02:35Z rumbler31 joined #lisp 2018-08-02T11:04:05Z ofi joined #lisp 2018-08-02T11:04:51Z asedeno quit (Remote host closed the connection) 2018-08-02T11:04:54Z l1x quit (Remote host closed the connection) 2018-08-02T11:04:54Z weltung quit (Remote host closed the connection) 2018-08-02T11:04:54Z tfb quit (Remote host closed the connection) 2018-08-02T11:04:54Z jerme__ quit (Remote host closed the connection) 2018-08-02T11:04:54Z zkat quit (Remote host closed the connection) 2018-08-02T11:04:54Z kilimanjaro quit (Remote host closed the connection) 2018-08-02T11:04:54Z banjiewen quit (Remote host closed the connection) 2018-08-02T11:05:11Z fikka joined #lisp 2018-08-02T11:05:42Z banjiewen joined #lisp 2018-08-02T11:05:43Z kilimanjaro joined #lisp 2018-08-02T11:07:13Z rumbler31 quit (Ping timeout: 248 seconds) 2018-08-02T11:08:39Z zotan quit (Ping timeout: 260 seconds) 2018-08-02T11:09:44Z fikka quit (Ping timeout: 255 seconds) 2018-08-02T11:14:57Z fikka joined #lisp 2018-08-02T11:20:10Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T11:21:19Z fikka joined #lisp 2018-08-02T11:22:16Z quipa joined #lisp 2018-08-02T11:24:08Z housel quit (Read error: Connection reset by peer) 2018-08-02T11:31:35Z orivej quit (Ping timeout: 240 seconds) 2018-08-02T11:47:07Z iridioid joined #lisp 2018-08-02T11:54:19Z Kevslinger joined #lisp 2018-08-02T11:55:35Z kozy quit (Ping timeout: 240 seconds) 2018-08-02T12:00:41Z pjb joined #lisp 2018-08-02T12:00:43Z rpg joined #lisp 2018-08-02T12:04:50Z elfmacs joined #lisp 2018-08-02T12:05:21Z rpg quit (Ping timeout: 248 seconds) 2018-08-02T12:06:12Z schweers: Is it just me, or is the interface to WITH-FOREIGN-OBJECT and WITH-FOREIGN-POINTER in CFFI a little weird? According to their docstrings they both stack allocate (if possible) an object and give out a pointer to it. in one case I give a type, in the other a size, but can also give a size-var? 2018-08-02T12:10:05Z iridioid quit (Ping timeout: 240 seconds) 2018-08-02T12:10:18Z kozy joined #lisp 2018-08-02T12:21:38Z pjb: objects have types, pointer to random memory have size of memory allocated. In both case, you can know the size that has been allocated. 2018-08-02T12:22:43Z pjb: err, I mean, in the object case, you can know the size with cffi:foreign-type-size 2018-08-02T12:23:29Z pjb: But the point is that objects and pointers to memory blocks are two different things, so you cannot count on a similar API, even if it has the same prefix. 2018-08-02T12:24:43Z schweers: seems like both can be used, as one can get the size from a type. What confuses me a little: I’d like to give a type and have a variable bound to the size. I’d also like to give a type and a count and get a total-size. But it seems that I don’t get that. 2018-08-02T12:25:24Z pjb: schweers: this is why you are a programmer, and lisp is a meta-programming programming language: write your own macros! 2018-08-02T12:25:54Z schweers: sure, I can do that. I’m just a little confused about the option the API gives me. They seem a little weird, that’s all. 2018-08-02T12:41:37Z Bike joined #lisp 2018-08-02T12:42:09Z eminhi quit (Ping timeout: 248 seconds) 2018-08-02T12:53:02Z nirved quit (Read error: Connection reset by peer) 2018-08-02T12:53:13Z mindCrime joined #lisp 2018-08-02T12:59:32Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-02T13:03:09Z Guest98336 is now known as xristos 2018-08-02T13:03:35Z xristos quit (Changing host) 2018-08-02T13:03:35Z xristos joined #lisp 2018-08-02T13:13:49Z devon joined #lisp 2018-08-02T13:14:40Z Jesin quit (Ping timeout: 265 seconds) 2018-08-02T13:15:05Z devon: Lest I reinvent the wheel, is there a util to list all symbols referenced in a lisp file? 2018-08-02T13:15:31Z Xach: devon: I don't think so. 2018-08-02T13:15:42Z Shinmera: devon: what would you do with that information? 2018-08-02T13:15:49Z Xach: I think you might be able to fish that info out of something like sb-introspect perhaps. 2018-08-02T13:16:17Z joast quit (Ping timeout: 248 seconds) 2018-08-02T13:19:09Z Shinmera: If I had to do this I'd probably use Eclector and add a method on its intern function to record the symbol, then read the file with it. 2018-08-02T13:19:54Z eschulte quit (Ping timeout: 260 seconds) 2018-08-02T13:21:45Z X-Scale joined #lisp 2018-08-02T13:28:00Z Josh_2 joined #lisp 2018-08-02T13:32:18Z Jesin joined #lisp 2018-08-02T13:34:57Z patlv joined #lisp 2018-08-02T13:43:12Z devon: QL lacks sb-introspect and Eclector. 2018-08-02T13:44:37Z Shinmera: sb-introspect is an SBCL contrib, and it does have eclector. 2018-08-02T13:44:44Z Bike: (require :sb-introspect) 2018-08-02T13:44:56Z Bike: in sbcl, of course 2018-08-02T13:45:04Z devon: I'd have to install SBCL then. 2018-08-02T13:45:06Z Bike: i don't think it has a facility like that,though 2018-08-02T13:45:14Z Guest5800_ joined #lisp 2018-08-02T13:46:33Z Shinmera: If you can't load eclector, update your ql dist. 2018-08-02T13:48:02Z joast joined #lisp 2018-08-02T13:49:47Z dlowe: PSA: the #clnoobs channel has been renamed to #clschool. 2018-08-02T13:50:34Z kamog joined #lisp 2018-08-02T13:50:35Z Josh_2: ^^ bots everywhere Q_Q 2018-08-02T13:51:06Z dlowe: and no op on #clnoobs. I registered #clschool so we shouldn't have that problem again, at least. 2018-08-02T13:51:54Z Josh_2: Gotta change it on cliki, I can't remember my darn pics 2018-08-02T13:51:59Z Josh_2: pics.. password 2018-08-02T13:52:14Z Josh_2: wait I got it 2018-08-02T13:53:16Z Josh_2: ahh u got it :) 2018-08-02T13:53:25Z Inline joined #lisp 2018-08-02T13:53:50Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-02T13:54:45Z dlowe: yeah, I got it 2018-08-02T13:55:29Z vultyre joined #lisp 2018-08-02T13:56:19Z vultyre quit (Client Quit) 2018-08-02T13:59:00Z fiddlerwoaroof joined #lisp 2018-08-02T14:03:11Z eminhi joined #lisp 2018-08-02T14:04:10Z kuwze joined #lisp 2018-08-02T14:05:05Z tralala quit (Ping timeout: 240 seconds) 2018-08-02T14:05:34Z kamog quit (Quit: Leaving.) 2018-08-02T14:09:35Z Josh_2 quit (Ping timeout: 240 seconds) 2018-08-02T14:11:46Z stnutt quit (Ping timeout: 260 seconds) 2018-08-02T14:12:52Z rpg joined #lisp 2018-08-02T14:15:42Z stnutt joined #lisp 2018-08-02T14:16:08Z quipa_ joined #lisp 2018-08-02T14:19:52Z quipa quit (Ping timeout: 260 seconds) 2018-08-02T14:20:05Z quipa_ is now known as quipa 2018-08-02T14:20:27Z stnutt quit (Ping timeout: 260 seconds) 2018-08-02T14:22:19Z eminhi quit (Ping timeout: 260 seconds) 2018-08-02T14:22:30Z stnutt joined #lisp 2018-08-02T14:25:45Z housel joined #lisp 2018-08-02T14:29:09Z igemnace quit (Ping timeout: 264 seconds) 2018-08-02T14:29:48Z al-damiri joined #lisp 2018-08-02T14:31:59Z mindCrime joined #lisp 2018-08-02T14:32:49Z nowhere_man quit (Ping timeout: 260 seconds) 2018-08-02T14:33:12Z Bike quit (Ping timeout: 252 seconds) 2018-08-02T14:34:34Z Fare joined #lisp 2018-08-02T14:39:25Z Bike joined #lisp 2018-08-02T14:43:27Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-02T14:45:48Z Josh_2 joined #lisp 2018-08-02T14:46:25Z ofi quit (Remote host closed the connection) 2018-08-02T14:50:46Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-02T14:55:05Z patlv quit (Ping timeout: 240 seconds) 2018-08-02T14:55:12Z fikka quit (Ping timeout: 265 seconds) 2018-08-02T14:55:40Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T14:56:26Z FreeBirdLjj joined #lisp 2018-08-02T14:57:37Z devon quit (Ping timeout: 265 seconds) 2018-08-02T14:57:57Z kamog joined #lisp 2018-08-02T14:58:47Z fikka joined #lisp 2018-08-02T15:05:39Z rippa joined #lisp 2018-08-02T15:05:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T15:07:25Z fikka joined #lisp 2018-08-02T15:16:34Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T15:17:37Z fikka joined #lisp 2018-08-02T15:18:42Z quipa_ joined #lisp 2018-08-02T15:20:10Z cage_ joined #lisp 2018-08-02T15:21:05Z quipa quit (Ping timeout: 248 seconds) 2018-08-02T15:32:06Z xificurC joined #lisp 2018-08-02T15:32:10Z igemnace joined #lisp 2018-08-02T15:33:05Z trittweiler: devon: I had done something like that with swank/source-path-parser.lisp from Slime, 8 years ago. I did that to color symbols in an emacs buffer by home package. Never polished that one up though 2018-08-02T15:33:21Z elfmacs quit (Ping timeout: 248 seconds) 2018-08-02T15:38:06Z v0|d joined #lisp 2018-08-02T15:39:55Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-02T15:40:18Z fikka quit (Ping timeout: 256 seconds) 2018-08-02T15:41:02Z mindCrime joined #lisp 2018-08-02T15:42:45Z sh1r0 joined #lisp 2018-08-02T15:43:23Z asarch joined #lisp 2018-08-02T15:44:02Z fikka joined #lisp 2018-08-02T15:45:26Z v0|d quit (Read error: Connection reset by peer) 2018-08-02T15:46:02Z v0|d joined #lisp 2018-08-02T15:47:25Z sh1r0 quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-02T15:48:31Z zigpaw joined #lisp 2018-08-02T15:55:29Z FreeBirdLjj joined #lisp 2018-08-02T15:56:05Z v0|d quit (Ping timeout: 240 seconds) 2018-08-02T16:03:00Z test1600 joined #lisp 2018-08-02T16:04:59Z cage_ quit (Ping timeout: 260 seconds) 2018-08-02T16:05:41Z rpg joined #lisp 2018-08-02T16:07:23Z cage_ joined #lisp 2018-08-02T16:10:00Z cage_ quit (Client Quit) 2018-08-02T16:14:57Z mathrick quit (Ping timeout: 265 seconds) 2018-08-02T16:15:07Z cage_ joined #lisp 2018-08-02T16:16:34Z eminhi joined #lisp 2018-08-02T16:17:39Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-02T16:18:15Z FreeBirdLjj joined #lisp 2018-08-02T16:21:06Z cage_ quit (Read error: Connection reset by peer) 2018-08-02T16:22:41Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-08-02T16:32:57Z cage_ joined #lisp 2018-08-02T16:33:13Z xaotuk joined #lisp 2018-08-02T16:34:59Z cage_ quit (Client Quit) 2018-08-02T16:35:17Z cage_ joined #lisp 2018-08-02T16:40:53Z terpri joined #lisp 2018-08-02T16:41:46Z cage_ quit (Remote host closed the connection) 2018-08-02T16:42:08Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-02T16:46:45Z mathrick joined #lisp 2018-08-02T16:53:08Z Bronsa quit (Ping timeout: 265 seconds) 2018-08-02T16:55:33Z mathrick quit (Ping timeout: 265 seconds) 2018-08-02T16:59:56Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-02T17:02:22Z Copenhagen_Bram joined #lisp 2018-08-02T17:10:55Z milanj joined #lisp 2018-08-02T17:11:54Z patlv joined #lisp 2018-08-02T17:16:39Z vlatkoB quit (Remote host closed the connection) 2018-08-02T17:22:34Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T17:23:10Z m00natic quit (Read error: Connection reset by peer) 2018-08-02T17:28:57Z fikka joined #lisp 2018-08-02T17:38:19Z patlv quit (Ping timeout: 260 seconds) 2018-08-02T17:38:56Z patlv joined #lisp 2018-08-02T17:42:22Z deba5e12 quit (Quit: WeeChat 2.1) 2018-08-02T17:42:50Z Denommus joined #lisp 2018-08-02T17:43:15Z meepdeew joined #lisp 2018-08-02T17:46:09Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T17:46:56Z fikka joined #lisp 2018-08-02T17:47:13Z thijso joined #lisp 2018-08-02T17:50:02Z Fare quit (Ping timeout: 276 seconds) 2018-08-02T17:51:38Z dlowe: could someone get specbot out of #clnoobs and into #clschool? thx 2018-08-02T17:51:49Z Fare joined #lisp 2018-08-02T17:52:34Z fikka quit (Ping timeout: 264 seconds) 2018-08-02T17:52:37Z orivej joined #lisp 2018-08-02T17:53:23Z troydm joined #lisp 2018-08-02T17:53:29Z patlv quit (Ping timeout: 260 seconds) 2018-08-02T17:53:35Z makomo joined #lisp 2018-08-02T17:54:30Z rozenglass joined #lisp 2018-08-02T17:54:44Z jasom: specbot: please leave #clnoobs 2018-08-02T17:55:02Z jasom: it was worth a try :) 2018-08-02T17:55:04Z dlowe: jasom: I'd be impressed. 2018-08-02T17:56:07Z Kevslinger joined #lisp 2018-08-02T17:56:10Z jasom: perhaps it uses a dialect of intercal and I was overly polite 2018-08-02T18:02:45Z jeosol quit (Ping timeout: 252 seconds) 2018-08-02T18:02:49Z dlowe: I would assume that it has an owner with such privileges 2018-08-02T18:02:54Z dlowe: invites don't seem to work 2018-08-02T18:06:15Z iskander joined #lisp 2018-08-02T18:06:41Z quipa_ quit (Quit: Leaving) 2018-08-02T18:06:56Z quipa_ joined #lisp 2018-08-02T18:07:32Z fikka joined #lisp 2018-08-02T18:10:00Z test1600_ joined #lisp 2018-08-02T18:10:59Z test1600 quit (Ping timeout: 260 seconds) 2018-08-02T18:11:23Z schweers quit (Ping timeout: 255 seconds) 2018-08-02T18:11:34Z meepdeew quit (Remote host closed the connection) 2018-08-02T18:12:34Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T18:17:17Z patlv joined #lisp 2018-08-02T18:17:48Z gector quit (Ping timeout: 244 seconds) 2018-08-02T18:18:02Z quipa_ quit (Quit: Leaving) 2018-08-02T18:18:21Z quipa_ joined #lisp 2018-08-02T18:18:56Z quipa_ is now known as quipa 2018-08-02T18:19:06Z meepdeew joined #lisp 2018-08-02T18:19:34Z fikka joined #lisp 2018-08-02T18:22:27Z Khisanth quit (Ping timeout: 244 seconds) 2018-08-02T18:22:32Z vultyre joined #lisp 2018-08-02T18:23:58Z sauvin quit (Read error: Connection reset by peer) 2018-08-02T18:26:58Z gector joined #lisp 2018-08-02T18:28:29Z test1600_ quit (Ping timeout: 260 seconds) 2018-08-02T18:30:23Z makomo quit (Quit: WeeChat 2.0.1) 2018-08-02T18:30:43Z patlv quit (Ping timeout: 244 seconds) 2018-08-02T18:31:09Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-02T18:33:04Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T18:34:32Z Copenhagen_Bram joined #lisp 2018-08-02T18:35:16Z Khisanth joined #lisp 2018-08-02T18:37:57Z gravicappa quit (Ping timeout: 240 seconds) 2018-08-02T18:43:31Z fikka joined #lisp 2018-08-02T18:45:15Z drewes joined #lisp 2018-08-02T18:50:17Z patlv joined #lisp 2018-08-02T18:54:59Z test1600_ joined #lisp 2018-08-02T18:56:05Z patlv quit (Ping timeout: 240 seconds) 2018-08-02T19:02:35Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T19:05:47Z emacsomancer joined #lisp 2018-08-02T19:06:51Z Plazma left #lisp 2018-08-02T19:09:24Z test1600_ quit (Ping timeout: 256 seconds) 2018-08-02T19:10:53Z patlv joined #lisp 2018-08-02T19:12:56Z cods quit (Remote host closed the connection) 2018-08-02T19:14:07Z Denommus quit (Ping timeout: 244 seconds) 2018-08-02T19:14:41Z drewes joined #lisp 2018-08-02T19:15:44Z patlv quit (Ping timeout: 260 seconds) 2018-08-02T19:16:51Z Denommus joined #lisp 2018-08-02T19:23:25Z nowhere_man joined #lisp 2018-08-02T19:23:35Z payphone quit (Ping timeout: 245 seconds) 2018-08-02T19:30:23Z eminhi quit (Remote host closed the connection) 2018-08-02T19:30:41Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T19:32:39Z jack_rabbit joined #lisp 2018-08-02T19:36:19Z vultyre quit (Quit: Leaving) 2018-08-02T19:36:21Z fikka joined #lisp 2018-08-02T19:40:16Z equwal joined #lisp 2018-08-02T19:41:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T19:43:30Z light2yellow quit (Quit: light2yellow) 2018-08-02T19:44:43Z Bike_ joined #lisp 2018-08-02T19:45:36Z giraffe quit (Changing host) 2018-08-02T19:45:36Z giraffe joined #lisp 2018-08-02T19:45:36Z giraffe quit (Changing host) 2018-08-02T19:45:36Z giraffe joined #lisp 2018-08-02T19:46:00Z Bike quit (Disconnected by services) 2018-08-02T19:46:03Z Bike_ is now known as Bike 2018-08-02T19:46:24Z fikka joined #lisp 2018-08-02T19:51:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-02T19:52:05Z igemnace quit (Ping timeout: 240 seconds) 2018-08-02T19:56:47Z fikka joined #lisp 2018-08-02T20:01:49Z fikka quit (Ping timeout: 260 seconds) 2018-08-02T20:06:34Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T20:06:56Z fikka joined #lisp 2018-08-02T20:08:26Z void_pointer joined #lisp 2018-08-02T20:11:28Z fikka quit (Ping timeout: 244 seconds) 2018-08-02T20:11:46Z v0|d joined #lisp 2018-08-02T20:16:59Z rumbler31 joined #lisp 2018-08-02T20:17:03Z drewes joined #lisp 2018-08-02T20:19:20Z asarch quit (Quit: Leaving) 2018-08-02T20:21:21Z rumbler31 quit (Ping timeout: 264 seconds) 2018-08-02T20:24:54Z emacsomancer quit (Ping timeout: 244 seconds) 2018-08-02T20:27:02Z fikka joined #lisp 2018-08-02T20:32:42Z fikka quit (Ping timeout: 268 seconds) 2018-08-02T20:34:30Z Fare quit (Ping timeout: 265 seconds) 2018-08-02T20:37:14Z fikka joined #lisp 2018-08-02T20:39:26Z Shinmera: dlowe: I can send Colleen there, so you can use ::clhs at least (and get logging if you want that kinda thing). 2018-08-02T20:42:22Z fikka quit (Ping timeout: 264 seconds) 2018-08-02T20:43:18Z dlowe: Shinmera: thanks, I think I've got it covered. 2018-08-02T20:43:23Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-02T20:44:16Z Shinmera: Alright 2018-08-02T20:44:42Z iridioid joined #lisp 2018-08-02T20:52:52Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T20:54:02Z drewes joined #lisp 2018-08-02T20:54:39Z meepdeew quit (Remote host closed the connection) 2018-08-02T20:57:49Z rozenglass quit (Ping timeout: 260 seconds) 2018-08-02T20:57:54Z fikka joined #lisp 2018-08-02T21:07:57Z iridioid quit (Ping timeout: 240 seconds) 2018-08-02T21:08:06Z eddof13 joined #lisp 2018-08-02T21:10:51Z Bike quit (Ping timeout: 252 seconds) 2018-08-02T21:12:45Z angavrilov quit (Remote host closed the connection) 2018-08-02T21:14:44Z phoe quit (Ping timeout: 260 seconds) 2018-08-02T21:14:52Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-02T21:15:25Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T21:15:35Z gpiero_ joined #lisp 2018-08-02T21:18:57Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-02T21:21:15Z patlv joined #lisp 2018-08-02T21:24:59Z phoe joined #lisp 2018-08-02T21:27:43Z Jesin quit (Remote host closed the connection) 2018-08-02T21:30:09Z phoe quit (Ping timeout: 248 seconds) 2018-08-02T21:30:47Z Denommus quit (Remote host closed the connection) 2018-08-02T21:32:55Z pierpal joined #lisp 2018-08-02T21:34:22Z Jesin joined #lisp 2018-08-02T21:39:32Z iridioid joined #lisp 2018-08-02T21:48:39Z xaotuk quit (Remote host closed the connection) 2018-08-02T22:03:07Z Bike joined #lisp 2018-08-02T22:12:52Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-02T22:13:59Z xificurC joined #lisp 2018-08-02T22:26:09Z patlv quit (Ping timeout: 248 seconds) 2018-08-02T22:31:58Z al-damiri quit (Quit: Connection closed for inactivity) 2018-08-02T22:32:07Z random-nick quit (Read error: Connection reset by peer) 2018-08-02T22:34:46Z kamog quit (Remote host closed the connection) 2018-08-02T22:34:53Z patlv joined #lisp 2018-08-02T22:39:36Z moei joined #lisp 2018-08-02T22:39:57Z patlv quit (Ping timeout: 240 seconds) 2018-08-02T22:49:00Z pierpa joined #lisp 2018-08-02T22:56:33Z fikka quit (Ping timeout: 248 seconds) 2018-08-02T23:00:40Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-02T23:02:24Z robotoad quit (Quit: robotoad) 2018-08-02T23:02:44Z asarch joined #lisp 2018-08-02T23:10:31Z patlv joined #lisp 2018-08-02T23:12:46Z Fare joined #lisp 2018-08-02T23:14:36Z edgar-rft quit (Remote host closed the connection) 2018-08-02T23:15:23Z edgar-rft joined #lisp 2018-08-02T23:16:12Z ntqz quit (Remote host closed the connection) 2018-08-02T23:16:34Z ntqz joined #lisp 2018-08-02T23:16:40Z ntqz quit (Excess Flood) 2018-08-02T23:17:02Z ntqz joined #lisp 2018-08-02T23:19:33Z patlv quit (Ping timeout: 264 seconds) 2018-08-02T23:20:08Z CrazyEddy quit (Remote host closed the connection) 2018-08-02T23:21:56Z dddddd quit (Remote host closed the connection) 2018-08-02T23:23:51Z robotoad joined #lisp 2018-08-02T23:24:14Z equwal quit (Ping timeout: 260 seconds) 2018-08-02T23:27:35Z iridioid quit (Ping timeout: 240 seconds) 2018-08-02T23:30:53Z patlv joined #lisp 2018-08-02T23:36:25Z meepdeew joined #lisp 2018-08-02T23:37:37Z rumbler31 joined #lisp 2018-08-02T23:38:05Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-02T23:42:19Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-02T23:47:19Z meepdeew quit (Remote host closed the connection) 2018-08-02T23:51:29Z Fare quit (Ping timeout: 248 seconds) 2018-08-02T23:52:27Z patlv quit (Ping timeout: 240 seconds) 2018-08-02T23:55:54Z rumbler31 joined #lisp 2018-08-03T00:05:22Z gector quit (Read error: Connection reset by peer) 2018-08-03T00:05:49Z gector joined #lisp 2018-08-03T00:15:46Z meepdeew joined #lisp 2018-08-03T00:18:43Z fikka joined #lisp 2018-08-03T00:20:06Z Fare joined #lisp 2018-08-03T00:20:57Z patlv joined #lisp 2018-08-03T00:23:29Z fikka quit (Ping timeout: 248 seconds) 2018-08-03T00:23:39Z meepdeew quit (Remote host closed the connection) 2018-08-03T00:26:49Z lnostdal quit (Read error: Connection reset by peer) 2018-08-03T00:27:44Z Fare quit (Ping timeout: 244 seconds) 2018-08-03T00:35:54Z Kaisyu joined #lisp 2018-08-03T00:38:35Z beach quit (Ping timeout: 265 seconds) 2018-08-03T00:40:41Z JuanDaugherty joined #lisp 2018-08-03T00:42:35Z pierpa quit (Quit: Page closed) 2018-08-03T00:48:33Z meepdeew joined #lisp 2018-08-03T01:05:25Z elfmacs joined #lisp 2018-08-03T01:10:49Z meepdeew quit (Remote host closed the connection) 2018-08-03T01:17:27Z rumbler31 quit (Remote host closed the connection) 2018-08-03T01:18:12Z nowhere_man quit (Remote host closed the connection) 2018-08-03T01:18:35Z nowhere_man joined #lisp 2018-08-03T01:20:16Z lnostdal joined #lisp 2018-08-03T01:27:39Z Josh_2 quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-08-03T01:29:46Z lagagain joined #lisp 2018-08-03T01:34:28Z lagagain quit (Client Quit) 2018-08-03T01:34:44Z rumbler31 joined #lisp 2018-08-03T01:37:35Z v0|d quit (Remote host closed the connection) 2018-08-03T01:40:56Z lagagain joined #lisp 2018-08-03T01:45:17Z orivej quit (Ping timeout: 265 seconds) 2018-08-03T01:50:57Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-03T01:51:19Z xificurC joined #lisp 2018-08-03T01:56:21Z nowhere_man quit (Remote host closed the connection) 2018-08-03T01:56:44Z nowhere_man joined #lisp 2018-08-03T02:00:46Z patlv quit (Ping timeout: 268 seconds) 2018-08-03T02:02:50Z pjb quit (Read error: Connection reset by peer) 2018-08-03T02:04:21Z pjb joined #lisp 2018-08-03T02:06:08Z rumbler31 quit (Remote host closed the connection) 2018-08-03T02:06:35Z robotoad quit (Quit: robotoad) 2018-08-03T02:07:22Z fikka joined #lisp 2018-08-03T02:09:18Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-03T02:10:01Z nowhere_man joined #lisp 2018-08-03T02:12:29Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T02:15:48Z edgar-rft quit (Quit: Leaving) 2018-08-03T02:16:28Z edgar-rft joined #lisp 2018-08-03T02:25:02Z iridioid joined #lisp 2018-08-03T02:29:30Z pjb quit (Remote host closed the connection) 2018-08-03T02:30:01Z robotoad joined #lisp 2018-08-03T02:31:05Z pjb joined #lisp 2018-08-03T02:38:10Z v0|d joined #lisp 2018-08-03T02:42:03Z equwal joined #lisp 2018-08-03T02:49:21Z charh quit (Quit: quit) 2018-08-03T02:50:50Z pjb quit (Remote host closed the connection) 2018-08-03T02:51:57Z pjb joined #lisp 2018-08-03T02:57:26Z payphone joined #lisp 2018-08-03T03:02:35Z rozenglass joined #lisp 2018-08-03T03:03:41Z matzy_ joined #lisp 2018-08-03T03:04:28Z matzy_: for someone who knows how to program, what's the best site for just googling how to do common things in CL? I'm writing my first script in it. Stuff like (when) clauses that scheme has 2018-08-03T03:04:45Z matzy_: and yes, by google, i just meant searching 2018-08-03T03:04:56Z matzy_: *googling 2018-08-03T03:09:22Z Demosthenex quit (Ping timeout: 264 seconds) 2018-08-03T03:12:11Z aeth: I do duckduckgo searches prefixed in "!l1sp" 2018-08-03T03:12:30Z antoszka: matzy_: A single place with recipes doesn't really come to mind – though when you google "common lisp ", you'll usually get results from http://cl-cookbook.sourceforge.net/index.html 2018-08-03T03:12:35Z antoszka: matzy_: or Rosetta Code 2018-08-03T03:12:36Z aeth: e.g. "!l1sp car" goes to http://l1sp.org/search?q=car 2018-08-03T03:12:54Z aeth: For libraries, it's trickier 2018-08-03T03:12:57Z antoszka: matzy_: or get pointed to the semi-official Common Lisp HyperSpec 2018-08-03T03:16:29Z beach joined #lisp 2018-08-03T03:18:58Z beach: Good morning everyone! 2018-08-03T03:19:32Z kenster quit (Ping timeout: 265 seconds) 2018-08-03T03:20:12Z no-defun-allowed: hi beach 2018-08-03T03:24:51Z beach: matzy_: [I am reading the logs] can you give some example of "common things" to do in programming? Most common things would be done the same in Common Lisp as in other languages I would think. Except that the syntax and the conventions are different of course. 2018-08-03T03:27:03Z kuwze quit (Ping timeout: 252 seconds) 2018-08-03T03:29:39Z patlv joined #lisp 2018-08-03T03:32:02Z pjb quit (Remote host closed the connection) 2018-08-03T03:32:06Z v0|d: beach: which lisp is your daily driver? 2018-08-03T03:32:33Z beach: Do you mean which implementation of Common Lisp do I use for my daily work? 2018-08-03T03:32:47Z beach: If so, SBCL. 2018-08-03T03:33:02Z v0|d: See. 2018-08-03T03:33:36Z pjb joined #lisp 2018-08-03T03:33:54Z Kundry_Wag joined #lisp 2018-08-03T03:33:59Z matzy_: ok, thanks for the info everyone 2018-08-03T03:34:11Z beach: v0|d: Why do you ask? 2018-08-03T03:35:15Z LdBeth: hello 2018-08-03T03:35:26Z v0|d: beach: it is interesting to see how SBCL dominates atm. 2018-08-03T03:35:44Z matzy_: beach: here's an example - i'm trying to traverse directories of files and add text before certain functions, do this all automatically of course with CL 2018-08-03T03:36:27Z matzy_: certain functions need a prefix but we have hundreds at this point so doing it manually would be a massive pain. there's an example 2018-08-03T03:37:01Z beach: matzy_: I see. 2018-08-03T03:37:27Z matzy_: unfortunately the documention for cl is a bit...scattered it seems 2018-08-03T03:37:38Z beach: Oh? 2018-08-03T03:38:35Z patlv quit (Ping timeout: 240 seconds) 2018-08-03T03:38:41Z LdBeth: matzy_: it's a matter of using pattern matching 2018-08-03T03:38:52Z matzy_: scheme has (when) clauses, but it was hard to google and see if that exists in CL 2018-08-03T03:39:12Z beach: matzy_: I don't recommend using a search engine for that. 2018-08-03T03:39:18Z beach: matzy_: I recommend using the Common Lisp HyperSpec. 2018-08-03T03:39:45Z beach: matzy_: You look in the symbol index, under `w', and you will see WHEN. 2018-08-03T03:39:47Z matzy_: well emacs autocomplete told me when is a macro, which...is that different than just a function? i've gone through simple macro exercises 2018-08-03T03:40:14Z matzy_: but i would expect when to just be like it is in scheme, i wouldn't expect it to be a macro 2018-08-03T03:40:21Z beach: matzy_: It seems you need to learn more about the basics by reading some book, rather than using a search engine. 2018-08-03T03:40:31Z beach: And, yes, a macro is different from a function. 2018-08-03T03:40:51Z beach: Why would you expect Common Lisp to be like Scheme? 2018-08-03T03:41:03Z matzy_: yeah, probably, i started learning racket but decided cl was probably more useful, have something i need to do and want to do it in CL so am trying to learn on the fly 2018-08-03T03:41:04Z Bike quit (Quit: Lost terminal) 2018-08-03T03:41:08Z matzy_: i can get around fine in racket 2018-08-03T03:41:09Z beach: matzy_: The two are very different. 2018-08-03T03:41:16Z v0|d: matzy_: paip has a one-liner solution to your problem. 2018-08-03T03:41:44Z matzy_: is that a package> 2018-08-03T03:41:55Z matzy_: paip? 2018-08-03T03:42:03Z v0|d: a book. 2018-08-03T03:42:07Z beach: matzy_: I think your basic assumption is wrong, i.e. that there are only minor differences between Scheme and Common Lisp, and that you can just figure out those differences as you go. 2018-08-03T03:42:08Z Arcaelyx quit (Read error: Connection reset by peer) 2018-08-03T03:42:48Z matzy_: yeah i'm big on emacs and learned about how awesome slime and the emacs env was with cl so wanted to switch over 2018-08-03T03:42:53Z matzy_: maybe i'll just write this in racket 2018-08-03T03:43:03Z beach: That might be easier. 2018-08-03T03:43:22Z beach: If what you want is for things to be "easy". 2018-08-03T03:43:36Z matzy_: i mean i'm fine spending some time learning 2018-08-03T03:43:48Z matzy_: i really want to, seems like a good opportunity 2018-08-03T03:43:54Z v0|d: I recall http://metamodular.com/Essays/psychology.html at this very moment. 2018-08-03T03:43:59Z v0|d: :p 2018-08-03T03:44:16Z matzy_: but i havent found a "here's the basics for people who know wtf their doing" 2018-08-03T03:44:26Z beach: matzy_: Then I recommend you read PCL or PAIP or the Common Lisp Recipes. 2018-08-03T03:44:30Z matzy_: learnxiny has gotten me kinda far 2018-08-03T03:45:25Z LdBeth: if you want to switch it's worth to know more beyond the language itself, i.e. how languages are implemented 2018-08-03T03:46:07Z housel quit (Ping timeout: 265 seconds) 2018-08-03T03:46:59Z matzy_: yeah i completely agree. i planned to do a deep dive as i went on 2018-08-03T03:47:07Z matzy_: i'm curious, why wouldnt soething like this work? 2018-08-03T03:47:13Z matzy_: 2018-08-03T03:47:13Z matzy_: (defun process-folder-files2 () 2018-08-03T03:47:13Z matzy_: (dolist (file (directory "/Users/matzy/Projects/IupEmscripten/src")) 2018-08-03T03:47:13Z matzy_: (print file))) 2018-08-03T03:47:37Z matzy_: sorry shouldnt used pastebin... 2018-08-03T03:48:15Z fikka joined #lisp 2018-08-03T03:48:32Z beach: clhs directory 2018-08-03T03:48:33Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_dir.htm 2018-08-03T03:49:30Z v0|d: matzy_: cl-fad package might help. 2018-08-03T03:49:31Z beach: matzy_: It works here. It prints the single directory that you gave the name of. 2018-08-03T03:49:44Z LdBeth: matzy_: because PRINT does not print file 2018-08-03T03:50:15Z beach: matzy_: Perhaps you assume that DIRECTORY returns a list of files in that directory? 2018-08-03T03:51:34Z Arcaelyx joined #lisp 2018-08-03T03:52:23Z beach: matzy_: What did you expect would happen with your example? 2018-08-03T03:53:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-03T03:53:10Z beach: ... and why did you expect that? 2018-08-03T03:53:39Z matzy_: beach: you're right. i thought it would print each file in the dir 2018-08-03T03:55:06Z matzy_: but i think i see why 2018-08-03T03:55:12Z beach: So in cases like this, the right thing is to go read the Common Lisp HyperSpec entry for DIRECTORY. 2018-08-03T03:55:38Z matzy_: beach: i did but honestly it's kind of confusing 2018-08-03T03:56:28Z matzy_: i wish they just had an example 2018-08-03T03:57:35Z beach: I think you will find plenty of examples in the books we recommended. 2018-08-03T03:57:48Z beach: The Common Lisp HyperSpec is for the exact definition of what things do. 2018-08-03T03:57:51Z matzy_: like how do i use the key with the pathnames, cant you just put a variable as the third arg or do you need a random key in front of it? 2018-08-03T03:57:54Z omilu joined #lisp 2018-08-03T03:59:01Z beach: Oh, for that, you need to know more about the fundamentals of Common Lisp. Keyword arguments may not exist in the other languages you have used. 2018-08-03T03:59:24Z beach: Though the Common Lisp HyperSpec entry says precisely what you should expect. 2018-08-03T03:59:24Z lagagain quit (Quit: Connection closed for inactivity) 2018-08-03T04:00:01Z Kundry_Wag quit (Remote host closed the connection) 2018-08-03T04:00:10Z beach: I.e. it says you have to go to the manual of your Common Lisp implementation to find out what keyword arguments your implementation-specific version of DIRECTORY accepts. 2018-08-03T04:00:28Z matzy_: ahhh ok i see what that means now 2018-08-03T04:00:35Z matzy_: i didnt get that before 2018-08-03T04:00:37Z Kundry_Wag joined #lisp 2018-08-03T04:00:47Z matzy_: im on sbcls now and it helps a lot more 2018-08-03T04:01:17Z LdBeth: I think CL's filename wildcard is quite weird bacause it works totally different from how unix shell deals with file 2018-08-03T04:01:18Z beach: matzy_: I can see why you are frustrated. You oscillate between wanting to just know the delta between what you already know and how to do it in Common Lisp. But then you lack some very fundamental concepts of Common Lisp, so you are not able to read the Common Lisp HyperSpec entries. 2018-08-03T04:01:31Z Fare joined #lisp 2018-08-03T04:01:42Z LdBeth: which makes it confusing 2018-08-03T04:05:03Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-03T04:05:09Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-03T04:06:01Z LdBeth: so, (directory #P"~/Desktop/*.*") matchs all files on $HOME/Desktop even include dirs and files without a extension name. 2018-08-03T04:06:21Z pjb quit (Remote host closed the connection) 2018-08-03T04:06:23Z equwal: Personally it took me a long time to understand the hyperspec. I wouldn't recommend using it as a primary reference until you already have lots of experience using the language. A beginners book like PCL is much more helpful. 2018-08-03T04:06:40Z rumbler31 joined #lisp 2018-08-03T04:07:18Z aeth: l1sp gives both HyperSpec and PCL results 2018-08-03T04:07:27Z matzy_ quit (Ping timeout: 240 seconds) 2018-08-03T04:08:16Z equwal: Until then, it can be good to look at the hyperspec to remember how functions you already know work, and that experience will acclimate you to what they mean. 2018-08-03T04:08:49Z equwal: (what the hyperspec means with its somewhat confusing specificity) 2018-08-03T04:11:10Z rumbler31 quit (Ping timeout: 264 seconds) 2018-08-03T04:12:08Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-03T04:20:45Z elfmacs quit (Ping timeout: 268 seconds) 2018-08-03T04:25:55Z rozenglass quit (Ping timeout: 244 seconds) 2018-08-03T04:32:06Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-03T04:32:38Z quipa quit (Ping timeout: 244 seconds) 2018-08-03T04:35:35Z Copenhagen_Bram joined #lisp 2018-08-03T04:39:14Z Fare quit (Ping timeout: 260 seconds) 2018-08-03T04:39:58Z light2yellow joined #lisp 2018-08-03T04:48:45Z meepdeew joined #lisp 2018-08-03T05:00:50Z kozy_ joined #lisp 2018-08-03T05:01:31Z kozy quit (Read error: Connection reset by peer) 2018-08-03T05:18:05Z iridioid quit (Ping timeout: 240 seconds) 2018-08-03T05:21:51Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-03T05:31:35Z Inline quit (Remote host closed the connection) 2018-08-03T05:33:25Z otwieracz quit (Quit: leaving) 2018-08-03T05:34:29Z igemnace joined #lisp 2018-08-03T05:35:04Z sauvin joined #lisp 2018-08-03T05:35:50Z Khisanth joined #lisp 2018-08-03T05:35:57Z asarch quit (Quit: Leaving) 2018-08-03T05:36:41Z fikka joined #lisp 2018-08-03T05:37:14Z otwieracz joined #lisp 2018-08-03T05:39:29Z phoe joined #lisp 2018-08-03T05:40:32Z otwieracz quit (Client Quit) 2018-08-03T05:41:25Z meepdeew quit (Remote host closed the connection) 2018-08-03T05:42:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T05:45:08Z otwieracz joined #lisp 2018-08-03T05:47:05Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-03T05:49:38Z mathZ joined #lisp 2018-08-03T05:52:41Z uint_ is now known as uint 2018-08-03T05:55:25Z mathZ quit (Remote host closed the connection) 2018-08-03T05:55:40Z JuanDaugherty quit (Quit: Exeunt) 2018-08-03T05:57:09Z fikka joined #lisp 2018-08-03T05:58:52Z danielxvu joined #lisp 2018-08-03T06:01:49Z danielxvu quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T06:02:30Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T06:07:44Z fikka joined #lisp 2018-08-03T06:09:00Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-03T06:09:23Z nowhere_man joined #lisp 2018-08-03T06:12:59Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T06:13:03Z jackdaniel: daily infuriator: MOP in Python: http://laser.inf.ethz.ch/2012/slides/vanRossum/laser-mop.pdf ; second slide tells it all ;) 2018-08-03T06:13:34Z elfmacs joined #lisp 2018-08-03T06:17:54Z fikka joined #lisp 2018-08-03T06:17:57Z danielxvu joined #lisp 2018-08-03T06:22:30Z robotoad quit (Quit: robotoad) 2018-08-03T06:23:28Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T06:28:03Z fikka joined #lisp 2018-08-03T06:32:35Z wigust quit (Ping timeout: 240 seconds) 2018-08-03T06:33:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T06:36:51Z vlatkoB joined #lisp 2018-08-03T06:36:58Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-03T06:38:09Z fikka joined #lisp 2018-08-03T06:38:14Z drewes joined #lisp 2018-08-03T06:38:22Z zigpaw: I think somewhere on hackernews discussion I have read that even if it is named like so it is far from the original and because some of the technical decisions made it would be hard to extend it even near the CLOS functionality. Haven't tried it myself though. 2018-08-03T06:39:03Z cross quit (Quit: Lost terminal) 2018-08-03T06:39:04Z danielxvu quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T06:39:10Z jackdaniel: that's what I've meant by saying "second slide tells it all", he says that term is taken from "The art of meta-object protocol" but he never actually read this book 2018-08-03T06:39:31Z beach: How do you know that? 2018-08-03T06:39:36Z danielxvu joined #lisp 2018-08-03T06:40:10Z jackdaniel: beach: see the second slide, he mentions amop and second book, and the second book has a remark, that this one he actually read 2018-08-03T06:40:13Z housel joined #lisp 2018-08-03T06:40:16Z jackdaniel: natural conclusion is that he didn't read the first one 2018-08-03T06:40:20Z beach: Oh! 2018-08-03T06:40:33Z beach: Right you are. 2018-08-03T06:40:35Z beach: Heh! 2018-08-03T06:40:41Z danielxvu quit (Client Quit) 2018-08-03T06:40:45Z beach: What a joke. 2018-08-03T06:40:53Z jackdaniel: indeed, not very funny though 2018-08-03T06:41:05Z beach: Yeah, not that kind of joke. 2018-08-03T06:42:25Z beach: So soon Python programmers will believe they have a MOP just like C++ programmers believe they have garbage collection. 2018-08-03T06:42:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T06:46:08Z danielxvu joined #lisp 2018-08-03T06:47:24Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T06:48:17Z fikka joined #lisp 2018-08-03T06:51:34Z zigpaw: C++ got something that can be named GC? (haven't use C++ for quite few years now so that's something new to me) 2018-08-03T06:51:52Z orivej joined #lisp 2018-08-03T06:51:57Z Shinmera: reference counting \o/ 2018-08-03T06:51:59Z jackdaniel: beach: are you referring smart pointers? 2018-08-03T06:52:36Z beach: jackdaniel: Yes, but I recall there is more now as well. 2018-08-03T06:53:36Z drewes joined #lisp 2018-08-03T06:53:41Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T06:54:25Z jack_rabbit joined #lisp 2018-08-03T06:54:27Z beach: I don't remember the details, but I think it was someone in Clasp who said with a "straight face" that C++ has garbage collection, "so why don't you just use it for Clasp instead of MPS or Boehm". 2018-08-03T06:56:12Z jackdaniel: so we'll take type system from javascript, garbage collection from c++ and metaobject protocol from python and we are good, CL-2.0 :-) 2018-08-03T06:56:31Z drewes quit (Client Quit) 2018-08-03T06:57:11Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-03T06:57:18Z terpri quit (Remote host closed the connection) 2018-08-03T06:57:40Z beach quit (Disconnected by services) 2018-08-03T06:57:54Z beach joined #lisp 2018-08-03T06:58:26Z fikka joined #lisp 2018-08-03T06:58:56Z drewes joined #lisp 2018-08-03T06:59:37Z beach: Yes, good plan! :) 2018-08-03T07:00:19Z no-defun-allowed: reference counting is GC like....erm.....street food has good souvlakis 2018-08-03T07:00:32Z akkad joined #lisp 2018-08-03T07:01:47Z jackdaniel: it has some nice characteristics though (given I've understood my recent read) - amount of work is proportional to the program flow 2018-08-03T07:02:09Z beach: Yes, but you can still have unbounded pauses. 2018-08-03T07:02:12Z jackdaniel: so while you have worse overall gc performance you may have some time guarantees and no pauses 2018-08-03T07:02:29Z jackdaniel: or, pauses which count as part of dereferencing operations 2018-08-03T07:02:45Z beach: And those pauses can be arbitrarily long. 2018-08-03T07:03:36Z jackdaniel: why wouldn't you be able to put an upper bound on these pauses? I must miss some crucial detail with that regard 2018-08-03T07:03:52Z beach: You can have an arbitrarily large data structure with a single root. 2018-08-03T07:04:11Z beach: When you lose the last reference to the root, you have to recursively free every object in the data structure. 2018-08-03T07:04:20Z jackdaniel: ah, that's what you mean. I see now 2018-08-03T07:04:30Z shrdlu68 joined #lisp 2018-08-03T07:04:31Z jackdaniel: thanks 2018-08-03T07:04:36Z beach: Sure. 2018-08-03T07:04:56Z beach: Plus, the overhead of managing the reference counter, and the overhead of the malloc/free style allocation is much grater than the overhead of a modern tracing garbage collector. 2018-08-03T07:05:53Z beach: So in summary, C++ programmers think they have a "fast language" with garbage collection that has real-time behavior. In reality they have reference counters that slow things down, that can't handle cycles, and that are still not real-time. 2018-08-03T07:06:57Z rumbler31 joined #lisp 2018-08-03T07:06:58Z lnostdal quit (Ping timeout: 264 seconds) 2018-08-03T07:07:48Z beach: Just to manage the reference counter takes two memory accesses and a test/branch for each assignment. With RAM being considerably slower than registers it is going to slow things down a lot. 2018-08-03T07:08:37Z LdBeth: Ada use the idea of memory pool to help free large chunck of data 2018-08-03T07:08:47Z beach: Yeah, good luck with that. 2018-08-03T07:08:56Z beach: It breaks every abstraction barrier in the book. 2018-08-03T07:09:19Z beach: As I recall, GCC recently moved away from obstack-style allocation. 2018-08-03T07:09:45Z beach: My guess is that it was unmanageable. Now they are using some GC, maybe Boehm. 2018-08-03T07:10:08Z jackdaniel: they do use libgc (boehm) indeed 2018-08-03T07:10:40Z beach: Why someone like RMS would implement a C compiler in C is very hard for me to understand. Maybe it's just that he didn't have a decent Lisp system available at the time. 2018-08-03T07:10:48Z beach: I should ask him at some point. 2018-08-03T07:11:20Z rumbler31 quit (Ping timeout: 256 seconds) 2018-08-03T07:11:26Z LdBeth: he doesn't even have an OS avaliavle 2018-08-03T07:12:06Z lnostdal joined #lisp 2018-08-03T07:12:07Z beach: I can see where this argument is going and I don't like it. 2018-08-03T07:12:15Z akkad: R "Hey!, wait up guys!" MS 2018-08-03T07:12:27Z jackdaniel: isn't that at that time Lisp didn't have decent compilers for personal computers? also being able to bootstrap compiler from the same language you compile is something many people strive for (you included, you want to bootstrap CL from CL) 2018-08-03T07:13:04Z loke: jackdaniel: this is the era of ITS. You can connect to an open ITS system today and try out Maclisp if you want. 2018-08-03T07:13:12Z loke: It works great, but not good for low-level stuff 2018-08-03T07:13:29Z beach: jackdaniel: I think your first argument is correct. All he had was Franz Lisp aand Emacs Lisp and both those were probably unacceptable. 2018-08-03T07:14:42Z beach: jackdaniel: But I don't believe for a second that RMS had the ambition to bootstrap from the same language. He is a smart guy and I am sure he knew that it would be much easier to implement it in Lisp. I mean, look at RTL. It is definitely Lisp inspired. 2018-08-03T07:15:09Z loke: beach: Emacs Lisp didn't exist when rms started the GNU project, no? didn't he start GNU Emacs around the same time as GCC? 2018-08-03T07:15:20Z LdBeth: Emacs is later 2018-08-03T07:15:32Z LdBeth: I mean GNU/Emacs 2018-08-03T07:15:33Z beach: loke: I think GNU Emacs came first. 1984 as I recall. 2018-08-03T07:15:51Z beach: I still remember the Email from RMS. I know where I was. 2018-08-03T07:15:57Z loke: Just looked it up 2018-08-03T07:15:59Z jackdaniel: implementing thing is one thing, maintaining it is another. you can't benefit from your own optimizations, many people wouldn't know Lisp, and if they knew they wouldn't use C (smaller contributor base) etc 2018-08-03T07:16:06Z jackdaniel: but I may be wrong of course 2018-08-03T07:16:11Z jackdaniel: I wasn't born back then :-) 2018-08-03T07:16:17Z loke: GNU Started in 1984, Emacs in was rleased in 1985. First release of gcc was 87 2018-08-03T07:16:41Z LdBeth: ok, then 2018-08-03T07:16:43Z loke: jackdaniel: You're a kid :-) 2018-08-03T07:16:44Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-08-03T07:16:53Z akkad: the best lisp was the non-free ones right? 2018-08-03T07:16:55Z beach: jackdaniel: Yes, that could be an issue. The reason Unix was chosen was for that reason. And that was strategically correct, and a very admirable decision. I would have made the wrong one. 2018-08-03T07:17:05Z loke: akkad: That dpeends on when... Maclisp was very good 2018-08-03T07:17:16Z loke: akkad: Then there was Interlisp which was a weird beast 2018-08-03T07:17:40Z shrdlu68 joined #lisp 2018-08-03T07:17:54Z akkad waits for mezanno become self hosting 2018-08-03T07:18:48Z jackdaniel: loke: I prefer the term "fresh blood" ;-) also, being older isn't something to brag about if you think about it 2018-08-03T07:19:09Z loke: jackdaniel: It's all I have to show :-( 2018-08-03T07:19:14Z beach: Aww. 2018-08-03T07:19:49Z jackdaniel: I had a guest yesterday and I was bragging about things I posses 2018-08-03T07:20:04Z jackdaniel: I've shown him my PAIP book, my Lisp in Small Pieces book, CL recipes book 2018-08-03T07:20:10Z loke: jackdaniel: Such as? Intelligence? Good looks? Bulging biceps? 2018-08-03T07:20:35Z jackdaniel: and my recent thing I bought: "the garbage collection handbook" 2018-08-03T07:20:41Z beach: Congratulations! 2018-08-03T07:20:46Z LdBeth: GG 2018-08-03T07:20:54Z loke: jackdaniel: If you're not into CS, I imagine that book title would seem very strange. :-) 2018-08-03T07:20:59Z jackdaniel: well, having books on a shelf isn't something to brag about either until you read them :p 2018-08-03T07:21:14Z beach: jackdaniel: Awful writing, but contains all the information. If there is something you don't understand, don't think it's your fault necessarily. 2018-08-03T07:21:20Z jackdaniel: well, he is into CS (he is a professional C# programmer with mathematics background) 2018-08-03T07:21:30Z loke: The best computing book I read recently was “The Apollo Guidance Computer - Design and Operation” 2018-08-03T07:21:37Z shrdlu68 quit (Client Quit) 2018-08-03T07:21:56Z loke: That one describes both the hardware ans fotware on a ridiculopusly low level. After reading that book you'll be able to read and understand and AGC source code: 2018-08-03T07:22:08Z loke: https://github.com/chrislgarry/Apollo-11 2018-08-03T07:22:09Z beach: Now, if we could only get Steven Pinker to write about garbage collection... 2018-08-03T07:22:52Z jackdaniel: show me your bookshelf and I'll tell you who you are ;) 2018-08-03T07:22:56Z LdBeth: I'm looking Design by Contract and static analysis 2018-08-03T07:23:19Z beach: jackdaniel: Bah, too easy in my case. :) 2018-08-03T07:23:41Z beach: jackdaniel: Try the bookshelf of my (admittedly small) family and you will have a much harder time. 2018-08-03T07:23:45Z jackdaniel: well, I have quite chaotic bookshelf, I'm just not bragging about non-CL related books here 2018-08-03T07:24:11Z jackdaniel: and this gets into offtopic regions, so I apologise for leading that way 2018-08-03T07:24:32Z LdBeth: GG (again 2018-08-03T07:25:49Z shrdlu68 joined #lisp 2018-08-03T07:28:49Z hvxgr_ quit (Ping timeout: 244 seconds) 2018-08-03T07:29:22Z shrdlu68: He hoped to avoid having to write a compiler from scratch. 2018-08-03T07:30:45Z kerrhau joined #lisp 2018-08-03T07:31:28Z LdBeth: I believe it's not hard to translate Pascal to lisp 2018-08-03T07:31:50Z beach: What makes you believe that? 2018-08-03T07:32:07Z beach: ... and why is it relevant? 2018-08-03T07:32:36Z akkad: LdBeth is bringing it back in a retro sort of hipster way 2018-08-03T07:33:21Z LdBeth: GCC was first translated from a Pascal compiler 2018-08-03T07:33:38Z shrdlu68: He might be referring to the fact that GCC was adapted from the Pastel compiler. 2018-08-03T07:33:56Z beach: So how is that relevant to Lisp? 2018-08-03T07:34:04Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T07:34:34Z jackdaniel: he medidates about the possibility of writing GCC in Lisp (something you have suggested earlier) 2018-08-03T07:34:53Z aeth: LdBeth: The problem with translating from languages that aren't expression-oriented into Lisp is that lots of basic idioms change. Like instead of doing "foo;" and then having a big set of if/then/else statements that set the foo to different values, you use cond to return a value into foo. And lots of language idioms are just working around not having true multiple return values. 2018-08-03T07:35:06Z aeth: There's lots of little things that makes it not trivial 2018-08-03T07:35:06Z shrdlu68: But those were the early efforts. That didn't work out, so eventually he had to write GCC from scratch. At this point he could've used Lisp. 2018-08-03T07:35:18Z drewes joined #lisp 2018-08-03T07:36:13Z LdBeth: shrdlu68: Probably due to a LICENSEE issue. 2018-08-03T07:36:47Z beach: LdBeth: No. Read up on your history. 2018-08-03T07:37:39Z loke: beach: He might be thinking of that Pascal compiler which was written in Pascal, which was bootstrapped by manually compiling the pascal compiler to machine code. 2018-08-03T07:37:41Z loke: By hand 2018-08-03T07:37:51Z CrazyEddy joined #lisp 2018-08-03T07:37:53Z shrdlu68: LdBeth: the issue appears to have been wholly technical. 2018-08-03T07:37:55Z tralala joined #lisp 2018-08-03T07:38:55Z ofi joined #lisp 2018-08-03T07:38:55Z rozenglass joined #lisp 2018-08-03T07:39:41Z shrdlu68: LdBeth: https://gcc.gnu.org/wiki/History 2018-08-03T07:40:29Z beach: I am just reading the exact same page. 2018-08-03T07:41:44Z jackdaniel: "and has also compiled tex-in-C and Kyoto Common Lisp" 2018-08-03T07:41:54Z jackdaniel: uh oh, ECL ancestor 2018-08-03T07:42:52Z shrdlu68: Is KCL source code available? Does it work? 2018-08-03T07:43:52Z jackdaniel: I would be suprised if it builds on today compilers 2018-08-03T07:44:16Z jackdaniel: shrdlu68: here you can find historical ecolisp releases: https://common-lisp.net/project/ecl/static/files/release/ 2018-08-03T07:44:27Z jackdaniel: history-ecolisp-v011.tgz and history-ecolisp-v012.tgz 2018-08-03T07:44:46Z jackdaniel: probably I should create tarballs of older ECL releases too 2018-08-03T07:44:55Z shrdlu68: One would presumably have to find the gcc from that era. 2018-08-03T07:45:32Z shrdlu68: If it compiled to ANSI C, it should work, right? 2018-08-03T07:45:34Z jackdaniel: shrdlu68: it's not only that. some kcl parts were opencoded in assembly to speed thigns up, so there were some conditionalization for instance for VAX etc 2018-08-03T07:45:57Z aeth: Will it still run on a VAX? 2018-08-03T07:46:09Z jackdaniel: but I believe it would be possible to make it compile with some effort 2018-08-03T07:46:35Z jackdaniel: aeth: kcl? maybe, if you find right compiler and machine to run it on; ecl? no, support has been removed long ago 2018-08-03T07:46:59Z aeth: jackdaniel: What I mean is that it might be easier to run KCL on a VAX emulator 2018-08-03T07:47:12Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T07:47:14Z shrdlu68: Damn, the ephemerality of software. 2018-08-03T07:47:47Z drewes joined #lisp 2018-08-03T07:48:57Z jackdaniel: it seems that cs.cmu.edu has kcl archive: http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/kcl/0.html 2018-08-03T07:50:03Z angavrilov joined #lisp 2018-08-03T07:50:40Z shrdlu68: I remember reading somwhere that guys on the Western sphere hadn't considered a compile-to-c CL compiler before KCL. 2018-08-03T07:52:37Z beach quit (Remote host closed the connection) 2018-08-03T07:52:42Z jackdaniel: according to what I have read /somehwere/ they were definetely impressed that KCL was written completely from scratch and based on a standard draft (not evolved from a previous lisp) 2018-08-03T07:52:59Z aeth: VAX emulators definitely exist. If one comes with a compiler, it might be easier to compile KCL with that than trying to get it to run on x86 with a modern Linux. e.g. https://en.wikipedia.org/wiki/SIMH 2018-08-03T07:53:28Z jackdaniel: (standard used was CLtL1) 2018-08-03T07:54:01Z shrdlu68: They couldn't wait for ANSI. 2018-08-03T07:54:05Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-03T07:54:42Z jackdaniel: well, it was like 9 years before ansi when KCL was published 2018-08-03T07:55:50Z jackdaniel: here you may find KCL family in a form of a graph: https://common-lisp.net/project/ecl/static/quarterly/img/vol4/all-hierarchy.png 2018-08-03T07:55:52Z schweers joined #lisp 2018-08-03T08:01:04Z fiddlerwoaroof joined #lisp 2018-08-03T08:06:16Z kozy_ quit (Remote host closed the connection) 2018-08-03T08:09:30Z kozy joined #lisp 2018-08-03T08:11:12Z beach joined #lisp 2018-08-03T08:18:57Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T08:21:27Z beach quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2018-08-03T08:33:20Z Lycurgus joined #lisp 2018-08-03T08:38:03Z Jesin quit (Ping timeout: 265 seconds) 2018-08-03T08:38:44Z Bronsa joined #lisp 2018-08-03T08:41:54Z flip214: sjl: check my vlime master branch if you find some time; feedback would be welcome. 2018-08-03T08:53:33Z hvxgr joined #lisp 2018-08-03T08:55:27Z froggey quit (Ping timeout: 240 seconds) 2018-08-03T08:57:09Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T08:57:28Z froggey joined #lisp 2018-08-03T08:58:18Z beach joined #lisp 2018-08-03T09:03:40Z kerrhau quit (Ping timeout: 265 seconds) 2018-08-03T09:05:48Z pierpal quit (Quit: Poof) 2018-08-03T09:06:25Z pierpal joined #lisp 2018-08-03T09:27:36Z danielxvu quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T09:38:00Z flazh joined #lisp 2018-08-03T09:38:23Z psfm joined #lisp 2018-08-03T09:38:30Z lel quit (Ping timeout: 244 seconds) 2018-08-03T09:41:23Z lel joined #lisp 2018-08-03T09:44:40Z psfm left #lisp 2018-08-03T09:59:25Z light2yellow quit (Quit: light2yellow) 2018-08-03T10:02:06Z danielxvu joined #lisp 2018-08-03T10:02:16Z danielxvu quit (Client Quit) 2018-08-03T10:03:31Z nullniverse quit (Remote host closed the connection) 2018-08-03T10:04:03Z nullniverse joined #lisp 2018-08-03T10:06:58Z nullniverse quit (Client Quit) 2018-08-03T10:10:14Z schjetne joined #lisp 2018-08-03T10:11:59Z phoe: minion: memo for stylewarning: Hey - please poke me when you have a free while, I'd like to discuss a thing with you 2018-08-03T10:11:59Z minion: Remembered. I'll tell stylewarning when he/she/it next speaks. 2018-08-03T10:12:46Z rozenglass quit (Remote host closed the connection) 2018-08-03T10:13:12Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-03T10:13:35Z elfmacs quit (Ping timeout: 240 seconds) 2018-08-03T10:19:26Z flip214: I've got a (DOTIMES (i 10) (foo)). Thinking that as I don't use variable i I should do (DECLARE (IGNORE i)) is exactly the wrong thing... 2018-08-03T10:19:41Z flip214: " I is being set even though it was declared to be ignored." and "reading an ignored variable: I" 2018-08-03T10:20:30Z random-nick joined #lisp 2018-08-03T10:24:48Z no-defun-allowed: no, dotimes changes i so you shouldn't ignore it 2018-08-03T10:25:48Z phoe: flip214: look at the macroexpansion of DOTIMES to see what's going on 2018-08-03T10:26:59Z drewes joined #lisp 2018-08-03T10:27:34Z beach: flip214: It is better to do (loop repeat 10 do (foo)) 2018-08-03T10:29:23Z phoe: beach: what are the reasons for that? 2018-08-03T10:29:38Z phoe: I can see that personal preference plays a role, but I'm curious for other ones. 2018-08-03T10:30:04Z m00natic joined #lisp 2018-08-03T10:32:02Z shrdlu68: Because there's nothing to ignore? In the sense that it is a more concise and straightforward way to merely repeat something 10 times. 2018-08-03T10:33:57Z phoe: I see. Yep, there's one unused variable less. 2018-08-03T10:34:25Z beach: Yes, you don't have to introduce a variable. It is going to be a GENSYM in general. 2018-08-03T10:34:34Z beach: So the intention is more clear. 2018-08-03T10:35:38Z phoe: Yep, I see. 2018-08-03T10:37:35Z flip214: I would've guessed that DOTIMES uses a GENSYM internally, and just does (LET ((,var ,gensym)) ,@ body) to protect it -- and then the IGNORE would've made sense. 2018-08-03T10:38:08Z flip214: ah, but CLHS says 2018-08-03T10:38:10Z flip214: > The body of the loop is an implicit tagbody 2018-08-03T10:38:47Z flip214: doesn't that contradict 2018-08-03T10:38:49Z flip214: > It is implementation-dependent whether dotimes establishes a new binding of var on each iteration or whether it establishes a binding for var once at the beginning and then assigns it on any subsequent iterations. 2018-08-03T10:39:08Z flip214: if the BODY is a TAGBODY, there wouldn't be a new binding?! 2018-08-03T10:39:24Z trittweiler: flip214, it could use PROG 2018-08-03T10:39:24Z beach: Either way, the intentions are more clear if you use a construct that does not force you to invent a variable that you do not intend to use. 2018-08-03T10:39:25Z flip214: unless it's like (TAGBODY ... (LET ((,var ,gensym)) (TAGBODY ,@ BODY))) 2018-08-03T10:39:52Z flip214: beach: true. but DOTIMES is shorter and captures the intent nicely, too! 2018-08-03T10:40:16Z trittweiler: flip214, The paragraph you quoted is actually important. It means you need to be careful when you create a closure over the iteration variable 2018-08-03T10:42:28Z trittweiler: (let ((thunks '())) (dotimes (i 10) (push (lambda () i) thunks)) (mapcar #'funcall thunks)) might evaluate to (list 0 1 2 ...) or (list 9 9 9 ...) 2018-08-03T10:45:15Z flip214: trittweiler: yeah, exactly. same problem as when eg. creating a thread. 2018-08-03T10:46:11Z eschatologist quit (Ping timeout: 244 seconds) 2018-08-03T10:52:16Z fikka joined #lisp 2018-08-03T10:52:56Z quipa joined #lisp 2018-08-03T10:55:35Z eschatologist joined #lisp 2018-08-03T11:11:12Z elfmacs joined #lisp 2018-08-03T11:13:36Z fluke` quit (Read error: Connection reset by peer) 2018-08-03T11:15:25Z markoong joined #lisp 2018-08-03T11:18:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T11:18:23Z Jesin joined #lisp 2018-08-03T11:19:58Z MrSleepy joined #lisp 2018-08-03T11:22:19Z fikka joined #lisp 2018-08-03T11:22:33Z Bronsa quit (Ping timeout: 268 seconds) 2018-08-03T11:27:00Z fikka quit (Ping timeout: 244 seconds) 2018-08-03T11:34:19Z pjb joined #lisp 2018-08-03T11:35:13Z dddddd joined #lisp 2018-08-03T11:39:25Z rozenglass joined #lisp 2018-08-03T11:42:29Z fikka joined #lisp 2018-08-03T11:47:05Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-03T11:47:18Z fikka quit (Ping timeout: 256 seconds) 2018-08-03T11:47:21Z nowhere_man joined #lisp 2018-08-03T11:54:20Z MoziM joined #lisp 2018-08-03T11:55:08Z Bronsa joined #lisp 2018-08-03T12:04:22Z fikka joined #lisp 2018-08-03T12:05:29Z adlai joined #lisp 2018-08-03T12:15:46Z pierpal quit (Quit: Poof) 2018-08-03T12:16:04Z pierpal joined #lisp 2018-08-03T12:16:14Z eminhi joined #lisp 2018-08-03T12:28:32Z stux|RC quit (Ping timeout: 245 seconds) 2018-08-03T12:34:53Z LiamH joined #lisp 2018-08-03T12:37:10Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T12:37:54Z fikka joined #lisp 2018-08-03T12:41:13Z magicGNUPONUT[m] is now known as Gnuxie[m] 2018-08-03T12:42:05Z Lycurgus quit (Ping timeout: 240 seconds) 2018-08-03T12:43:59Z fikka quit (Ping timeout: 260 seconds) 2018-08-03T12:45:39Z fikka joined #lisp 2018-08-03T12:49:02Z josemanuel joined #lisp 2018-08-03T12:50:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T12:50:51Z fikka joined #lisp 2018-08-03T12:59:22Z Fare joined #lisp 2018-08-03T13:01:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T13:02:33Z rumbler31 joined #lisp 2018-08-03T13:04:04Z fikka joined #lisp 2018-08-03T13:06:12Z zfree quit (Quit: zfree) 2018-08-03T13:08:18Z Bike joined #lisp 2018-08-03T13:10:10Z X-Scale joined #lisp 2018-08-03T13:12:50Z patlv joined #lisp 2018-08-03T13:13:50Z ofi quit (Remote host closed the connection) 2018-08-03T13:17:43Z Guest5800_ joined #lisp 2018-08-03T13:20:01Z Cymew quit (Remote host closed the connection) 2018-08-03T13:20:04Z Inline joined #lisp 2018-08-03T13:23:12Z Shinmera: I imagine this little tool I built today might be useful for some of you. https://github.com/Shinmera/cl-all 2018-08-03T13:27:04Z mindCrime joined #lisp 2018-08-03T13:27:05Z kajo quit (Ping timeout: 240 seconds) 2018-08-03T13:28:51Z test1600_ joined #lisp 2018-08-03T13:28:58Z zianic joined #lisp 2018-08-03T13:32:35Z rippa joined #lisp 2018-08-03T13:35:33Z rumbler31 quit (Remote host closed the connection) 2018-08-03T13:45:14Z test1600_ quit (Ping timeout: 260 seconds) 2018-08-03T13:47:22Z Denommus joined #lisp 2018-08-03T13:51:44Z FreeBirdLjj joined #lisp 2018-08-03T13:51:57Z gpiero_ quit (Quit: Leaving.) 2018-08-03T13:53:29Z Xach: cool 2018-08-03T13:54:45Z dlowe: I like that very interesting example 2018-08-03T13:55:25Z gpiero joined #lisp 2018-08-03T13:55:46Z pierpal quit (Quit: Poof) 2018-08-03T13:56:05Z pierpal joined #lisp 2018-08-03T13:59:41Z random-nick: is there something like with-slots but instead of slots it shortens calls single-argument methods? 2018-08-03T13:59:51Z random-nick: s/calls/calls to/ 2018-08-03T14:00:12Z schjetne quit (Remote host closed the connection) 2018-08-03T14:00:18Z beach: clhs with-accessors 2018-08-03T14:00:19Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_w_acce.htm 2018-08-03T14:01:16Z Xach: I wish a slot-entry of a single symbol was a designator for (variable-name accessor-name) 2018-08-03T14:01:29Z random-nick: beach: that's what I was looking for, thank you 2018-08-03T14:01:36Z beach: Sure. 2018-08-03T14:04:17Z tralala quit (Ping timeout: 248 seconds) 2018-08-03T14:06:17Z Shinmera: dlowe: Yeah, the ABCL call-arguments-limit made me flinch 2018-08-03T14:06:58Z dlowe: inherited from java, I'm sure 2018-08-03T14:08:42Z Shinmera: dlowe: Cursory google suggests Java's method parameter limit is 255, though. 2018-08-03T14:09:44Z dlowe: hm. no idea, then. 2018-08-03T14:09:50Z Shinmera: Except long and double type arguments count as two arguments? What? 2018-08-03T14:10:14Z Shinmera: Well anyway, weird stuff. 2018-08-03T14:10:16Z dlowe: 50 is an odd number to limit anything 2018-08-03T14:10:46Z Shinmera: Maybe it is that low to catch all the people that misuse apply :) 2018-08-03T14:11:56Z dlowe: I'm on board with that. 2018-08-03T14:12:04Z fikka quit (Ping timeout: 260 seconds) 2018-08-03T14:21:45Z pjb: Shinmera: see, I should have named mine com.informatimago.script.cl-all, and not cl-all… 2018-08-03T14:24:54Z Shinmera: pjb: I remembered that you had something like that but couldn't google it. 2018-08-03T14:24:58Z charh joined #lisp 2018-08-03T14:25:21Z random-nick: huh, slot-value isn't generic? 2018-08-03T14:25:37Z beach: No, but slot-value-using-class is. 2018-08-03T14:25:42Z beach: mop slot-value-using-class 2018-08-03T14:25:42Z specbot: http://metamodular.com/CLOS-MOP/slot-value-using-class.html 2018-08-03T14:26:13Z light2yellow joined #lisp 2018-08-03T14:28:24Z patlv quit (Ping timeout: 260 seconds) 2018-08-03T14:38:59Z fikka joined #lisp 2018-08-03T14:40:51Z igemnace quit (Read error: Connection reset by peer) 2018-08-03T14:43:25Z eddof13 joined #lisp 2018-08-03T14:43:45Z fikka quit (Ping timeout: 248 seconds) 2018-08-03T14:43:53Z nanthil joined #lisp 2018-08-03T14:44:29Z nanthil: hello all. I have a question. about how to do something in common lisp 2018-08-03T14:45:55Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T14:45:56Z nanthil: https://www.reddit.com/r/learnlisp/comments/941f7v/paul_graham_lisp_or_avoiding_the_clos/ I wrote this yesterday, and I'm not really interested in paul graham specifically, I'm interested in if there are any LISP capabilities that can accomplish polymorphism without use of the CLOS. Not because I feel one way or another about it, but I'm wondering how something like a LISP 1, a "pure" (in quotes) LISP with only functions would accompl 2018-08-03T14:45:56Z dlowe: nanthil: what's your question? 2018-08-03T14:46:06Z nanthil: a giant switch/cond expression 2018-08-03T14:46:20Z dlowe: there's always the option of having a giant cond expression 2018-08-03T14:46:57Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-03T14:47:09Z nanthil: yes I know that, but in UNIX, with C, STDIN was polymorphic and they didn't add a giant switch statement based on every possible keyboard input device available 2018-08-03T14:47:58Z beach: nanthil: You can't not use CLOS. It's part of the language. Do you mean avoiding generic functions? Why would you do that? 2018-08-03T14:48:09Z dlowe: sure, they used function pointers to dispatch between keyboard drivers 2018-08-03T14:48:14Z nanthil: its a thought experiment 2018-08-03T14:48:31Z nanthil: how would you a chieve functional polymorphism without a giant cond expression 2018-08-03T14:48:31Z beach: nanthil: When you write LISP, we think of a language from the 1970s or so. 2018-08-03T14:48:47Z dlowe: you can use lisp functions in a similar way, with a hashtable associating types and functions 2018-08-03T14:48:50Z Shinmera: I don't know if I remember correctly, but wasn't CLOS or Flavours built as a Library on top of existing Lisp systems at the time? 2018-08-03T14:48:59Z dlowe: or by storing function dispatches in a table 2018-08-03T14:49:16Z schweers: nanthil: I’m not entirely sure where you’re going with your thought experiment, but you /can/ of course roll your polymorphism. Using vtables is the classing single minded^Wdispatch way to go. But then again: why would you? 2018-08-03T14:49:38Z dlowe: the advantage of using CLOS is that your implementation can provide optimizations that aren't easily available otherwise 2018-08-03T14:49:44Z beach: Shinmera: Sure, PCL was a library meant to turn a CLtL1 into one with CLOS in it. 2018-08-03T14:49:50Z nanthil: because I'm trying to grok the idea that there's polymorphism outside of object orientation 2018-08-03T14:50:04Z nanthil: and how you would accomplish that functionally 2018-08-03T14:50:05Z Shinmera: beach: Ah, right. 2018-08-03T14:50:47Z nanthil: like what does that look like 2018-08-03T14:50:57Z schweers: nanthil: well, haskell has static polymorphism without being object oriented. The compiler can dispatch on the type of the arguments. 2018-08-03T14:51:16Z nanthil: so lisp doesn't have a typed dispatch model? 2018-08-03T14:51:17Z beach: nanthil: First you need to decide what you mean by "polymorphism". Some people think it is a compile-time feature and that nothing happens at run-time. 2018-08-03T14:51:31Z Shinmera: beach: and also what he means by "object orientation" 2018-08-03T14:51:37Z beach: That too. 2018-08-03T14:51:46Z nanthil: no beach: i mean simply that a call to a method will call the correct method 2018-08-03T14:51:54Z nanthil: i mean 2018-08-03T14:51:58Z LdBeth: In pure funcational one can not even write a Tetris 2018-08-03T14:52:06Z igemnace joined #lisp 2018-08-03T14:52:09Z nanthil: can we stop being pedantic. 2018-08-03T14:52:33Z beach: nanthil: It is important to know precisely what you try to accomplish. 2018-08-03T14:52:43Z dlowe: it's really hard to both not be pedantic and to be sufficiently understood 2018-08-03T14:52:45Z Shinmera: nanthil: No, because we don't understand what you want us to tell you. 2018-08-03T14:52:46Z LdBeth: so the answer is simply NO 2018-08-03T14:52:52Z dlowe: because a lot can hinge on slight variations 2018-08-03T14:52:53Z nanthil: OOP as in the industry nonsensical bastardized common usage Java C# and C++ style of class based langauges attempting the 4 so-called pillars of OOP 2018-08-03T14:53:07Z nanthil: what I'm trying to accomplish can be found in explicit detail in my link 2018-08-03T14:53:07Z nanthil: https://www.reddit.com/r/learnlisp/comments/941f7v/paul_graham_lisp_or_avoiding_the_clos/ 2018-08-03T14:53:09Z nanthil: there it is again 2018-08-03T14:53:26Z LdBeth: and Lisp is not about Pure FP 2018-08-03T14:53:45Z dlowe: the usual advice is to kick pg to the curb and pick up a more reputable lisp source 2018-08-03T14:53:54Z nanthil: how would you call a "sublcass.attack()" and "subclass2.attack()" when both subclasses implement a common interface 2018-08-03T14:54:11Z nanthil: in lisp (attack player enemy) and (attack enemy player) will call the same attack method unless there's some kind of dispatch model 2018-08-03T14:54:20Z beach: nanthil: Given that you don't use static typing, you need run-time dispatch. And that is exactly what generic functions do. 2018-08-03T14:54:41Z Xach: free help is usually provided in the form the helper wants, and if the helpee is lucky, it will align with what they want too. 2018-08-03T14:55:04Z xrash joined #lisp 2018-08-03T14:55:24Z nanthil: beach: I'm not asking how to do it in the CLOS, I'm asking how would it be done without cond using native LISP constructs 2018-08-03T14:55:27Z schweers: nanthil: Paul Graham talked about having closures in hashtables, if I recall correctly. Maybe this is what you’re asking about? That way you can have a hashtable instead of an object and put functions (“methods”) into the table. This way you don’t call the same function every time, but the one provided by the object. 2018-08-03T14:55:43Z beach: nanthil: CLOS is native Common Lisp. 2018-08-03T14:55:45Z nanthil: schweer: where could I read about that? 2018-08-03T14:55:48Z schweers: This gives you a sort of polymorphism, but no inheritance (unless I’m missing something) 2018-08-03T14:55:53Z schweers: uhh .. dunno 2018-08-03T14:56:06Z nanthil: beach: you're not hearing me. there is a core of lisp upon which CL is defined 2018-08-03T14:56:15Z nanthil: inside that core, how would you accomplish polymorphism 2018-08-03T14:56:19Z beach: nanthil: Yes, I consider that core to be CLOS. 2018-08-03T14:56:27Z nanthil: well you would be wrong 2018-08-03T14:56:30Z nanthil: historically and currently 2018-08-03T14:56:41Z schweers: nanthil: beach is right. CLOS is part of the ANSI standard 2018-08-03T14:56:45Z nanthil: that 2018-08-03T14:56:48Z nanthil: isn't my question 2018-08-03T14:56:50Z Shinmera: A long time ago I wrote an article about adding class-bound methods to CLOS. https://reader.tymoon.eu/article/286 2018-08-03T14:56:54Z nanthil: the "core" of lisp can be found all throughout even scheme 2018-08-03T14:56:59Z nanthil: scheme certainly doens't have the CLOS 2018-08-03T14:56:59Z Shinmera: It uses a simple hash-table based dispatch scheme. 2018-08-03T14:57:09Z beach: nanthil: In that case you are in the wrong channel. This channel is dedicated to Common Lisp. 2018-08-03T14:57:11Z schweers: some scheme implementations do 2018-08-03T14:57:19Z nanthil: no I'm not in the wrong channel 2018-08-03T14:57:22Z Shinmera: nanthil: Scheme is Scheme. 2018-08-03T14:57:23Z nanthil: because I'm using common lisp 2018-08-03T14:57:34Z Shinmera: Common Lisp does not have Scheme as an ancestor. 2018-08-03T14:57:41Z nanthil: no kidding, but it does have LISP 1 2018-08-03T14:57:42Z nanthil: which 2018-08-03T14:57:45Z nanthil: didn't have the CLOS 2018-08-03T14:58:07Z schweers: It seems to me that you are confusing lots of things. 2018-08-03T14:58:14Z nanthil: i'm absolutely not confusing anything 2018-08-03T14:58:18Z nanthil: the question in isolation is quite simple 2018-08-03T14:58:28Z nanthil: find a way to accomplish polymorphism without using the class system 2018-08-03T14:58:37Z schweers: Does my answer about using closures in hashtables go in the direction you intended? 2018-08-03T14:58:48Z nanthil: i'm not sure, it is a branch I can look into 2018-08-03T14:59:02Z dlowe: nanthil: there is a way to do exactly what you want using nested lambdas 2018-08-03T14:59:05Z nanthil: that is one direction, and if there are others I'd be interested in looking into those 2018-08-03T14:59:13Z dlowe: it's describe in Let Over Lambda 2018-08-03T14:59:24Z schweers: Keep in mind that this is something you should probably only pursue as an experiment. 2018-08-03T14:59:31Z nanthil: dlowe: is that a book? 2018-08-03T14:59:42Z nanthil: schweers: that's the idea 2018-08-03T14:59:44Z schweers: nanthil: https://letoverlambda.com/ 2018-08-03T15:00:04Z nanthil: it's a thought experiment 2018-08-03T15:00:19Z dlowe: that and a dollar will get you a cup of coffee 2018-08-03T15:00:44Z nanthil: because I am not well versed in the lambda calculus and I got to thinking how would one accomplish that with the basic universal lisp features 2018-08-03T15:01:06Z dlowe: I bet if you wrote some lisp programs it would become much more clear 2018-08-03T15:01:39Z nanthil: i'm in the middle of writing one and I was reading into the CLOS, and read something about how it was implemented. it got me thinking, and that's what brought me here 2018-08-03T15:02:05Z beach quit (Ping timeout: 276 seconds) 2018-08-03T15:02:09Z nanthil: you can find the small program I was working on that lead me here at the bottom of this question https://www.reddit.com/r/learnlisp/comments/941f7v/paul_graham_lisp_or_avoiding_the_clos/ 2018-08-03T15:02:11Z nanthil: on git 2018-08-03T15:02:24Z beach joined #lisp 2018-08-03T15:02:39Z nanthil: dlowe: what chapter did you find it in? 2018-08-03T15:02:45Z nanthil: about the nested lambdas? 2018-08-03T15:02:58Z stux|RC joined #lisp 2018-08-03T15:03:24Z schweers: nanthil: I guess you might just read the second chapter of the book. It’s even available online. But take the whole book with a grain of salt 2018-08-03T15:03:41Z nanthil: schweers: what flavor of salt should I take it with? 2018-08-03T15:04:03Z dlowe: nanthil: you won't be able to understand it without the previous chapters 2018-08-03T15:04:16Z nanthil: ok 2018-08-03T15:04:50Z nanthil: I'll give it my best swing 2018-08-03T15:04:54Z nanthil: thanks all 2018-08-03T15:05:30Z schweers: nanthil: before you go 2018-08-03T15:05:32Z nanthil: yes 2018-08-03T15:05:35Z nanthil: i'll be here 2018-08-03T15:05:37Z dlowe: nanthil: what kind of program are you writing? 2018-08-03T15:05:54Z nanthil: https://github.com/carkat/game-lisp/blob/master/game.lisp 2018-08-03T15:05:55Z nanthil: there's the code 2018-08-03T15:05:58Z nanthil: https://www.reddit.com/r/learnlisp/comments/941f7v/paul_graham_lisp_or_avoiding_the_clos/ 2018-08-03T15:06:04Z nanthil: you can get a sense for what I'm going for here 2018-08-03T15:06:18Z nanthil: it's a small program that I use to help me learn how to GSD with a language I'm learning 2018-08-03T15:06:24Z nanthil: it's surprisingly effective 2018-08-03T15:06:30Z schweers: in your TL;DR section you asked about multiple dispatch without CLOS. I guess you can implement it yourself using a mix of functions and macros, but beware that this is exactly what we have defgeneric for 2018-08-03T15:07:14Z nanthil: but not specifically multiple dispatch, so much as that's the best way I can articulate the core of the idea that I'm trying to get it 2018-08-03T15:07:34Z nanthil: it seems to me that the article before I added that statement was perfectly intelligible, but people still weren't getting at what I was trying to ask 2018-08-03T15:07:44Z beach: nanthil: In your code you have some undefined behavior it seems. 2018-08-03T15:07:51Z nanthil: I'm a total novice 2018-08-03T15:07:54Z nanthil: I'm open to input 2018-08-03T15:07:54Z elfmacs quit (Quit: WeeChat 2.2) 2018-08-03T15:08:08Z schweers: TIL that defining new method combinations is part of the CL standard (i.e. without MOP). 2018-08-03T15:08:09Z beach: (setf action-names (get-keys actions)) Where is action-names defined? 2018-08-03T15:09:09Z beach: The code is also incorrectly indented. May be because you have TAB characters in the code, though. 2018-08-03T15:09:13Z nanthil: with setf 2018-08-03T15:09:25Z nanthil: I was using setf to define it in place 2018-08-03T15:09:31Z Lycurgus joined #lisp 2018-08-03T15:09:33Z beach: That is not what SETF does. 2018-08-03T15:09:40Z beach: The variable has to be defined first. 2018-08-03T15:09:44Z beach: clhs setf 2018-08-03T15:09:44Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_setf_.htm 2018-08-03T15:09:44Z pjb: nanthil: objects are equivalent to closures. Closures are just mere functions. polymorphism is natural since it's just a matter of passing different arguments to different closures. 2018-08-03T15:09:49Z nanthil: but you can run the code with CLISP 2018-08-03T15:10:07Z beach: nanthil: Since when is a language defined by the behavior of a single implementation? 2018-08-03T15:10:15Z nanthil: i'm not arguing 2018-08-03T15:10:16Z beach: nanthil: When I said "undefined" I meant it. 2018-08-03T15:10:19Z schweers: you can probably run it with several implementations. SBCL gives me a warning when I try this sort of thing. 2018-08-03T15:10:40Z nanthil: I'm trying to point at the fact that saying its wrong isn't revealing the correct way to me 2018-08-03T15:10:42Z cpape joined #lisp 2018-08-03T15:10:47Z pjb: nanthil: so basically, you're asking "if I inflate my pulmons, will I breath? 2018-08-03T15:10:49Z nanthil: so if you would do that I would join you in understanding :) 2018-08-03T15:10:50Z pjb: " 2018-08-03T15:11:11Z pjb: s/pulmons/lungs/ 2018-08-03T15:11:38Z dlowe: nanthil: define your variable ahead of time with DEFVAR 2018-08-03T15:11:39Z nanthil: :pjb: idk what you're trying to say beach: it would be nice if you told me how I'm supposed to do it 2018-08-03T15:11:42Z beach: nanthil: I have my doubts, but hey. DEFVAR, DEFPARAMETER define variables. SETF can be used to assign to an already defined variable. 2018-08-03T15:11:48Z nanthil: but defvar kept defining things globablly 2018-08-03T15:11:51Z dlowe: nanthil: feel free to join #clschool 2018-08-03T15:11:52Z nanthil: and I don't want that 2018-08-03T15:12:01Z beach: nanthil: If you want locally, you use LET or LET* 2018-08-03T15:12:19Z nanthil: so setf is only mutation? 2018-08-03T15:12:54Z beach: nanthil: You will be very surprised if you think your SETF creates a fresh lexical variable. 2018-08-03T15:13:08Z nanthil: I am surprised 2018-08-03T15:13:16Z nanthil: color me surprised 2018-08-03T15:13:29Z nanthil: but that's what I'm trying to do. this is my first LISP program 2018-08-03T15:13:29Z nanthil: so 2018-08-03T15:13:36Z nanthil: I'm open to direction 2018-08-03T15:13:51Z nanthil: because I want to know the right way so I can skip all the wrong ways as quickly as possible 2018-08-03T15:13:52Z beach: I am not so sure about ath. 2018-08-03T15:13:58Z beach: that 2018-08-03T15:14:11Z Bike: setf is not like a c declaration or whatever. it only mutates bindings. 2018-08-03T15:14:19Z Bike: if you want to define a local variable, you use let or let*. 2018-08-03T15:14:35Z schweers: on which you can use SETF if you like 2018-08-03T15:15:32Z beach: nanthil: So it's more than just a thought experiment. You are writing real code with it. 2018-08-03T15:15:42Z nanthil: i mean 2018-08-03T15:15:46Z nanthil: the code isn't real 2018-08-03T15:15:49Z nanthil: it's a toy learning program 2018-08-03T15:15:59Z FreeBirdLjj joined #lisp 2018-08-03T15:16:01Z beach: And what is it that you are trying to learn? 2018-08-03T15:16:08Z nanthil: functional polymorphism 2018-08-03T15:16:11Z nanthil: as I've said 2018-08-03T15:16:13Z beach: Certainly not Common Lisp, which is what this channel is dedicated to. 2018-08-03T15:16:19Z nanthil: and common lisp 2018-08-03T15:16:20Z nanthil: jesus 2018-08-03T15:16:37Z nanthil: i'm in the midst of learning common lisp and came to the question of polymorphism and in reading the CLOS I had this question 2018-08-03T15:16:44Z nanthil: c'mon man. how many ways and times can I say it 2018-08-03T15:17:47Z nanthil: oops I made a mistake using setf in my _first lisp program_ don't shoot me over it 2018-08-03T15:17:54Z Bike: from pure lambda calculus, you can construct objects that respond to a query for their type, and then you can do different behavior based on that type. 2018-08-03T15:18:01Z Bike: it's a pretty academic exercise, of course. 2018-08-03T15:18:13Z pjb: nanthil: https://pastebin.com/krLFcsvL 2018-08-03T15:18:21Z nanthil: bike: of course, learning lambda calculus is an ongoing endeavor for me 2018-08-03T15:18:23Z beach: nanthil: Look, you admit to be a newbie. Yet you question the wisdom of practically everyone here, and you tell people flat out that they are wrong about factual things like what this channel is about. 2018-08-03T15:18:33Z nanthil: i'm not questioning any wisdom 2018-08-03T15:18:34Z beach: nanthil: That's very impolite in my book. 2018-08-03T15:18:37Z nanthil: i'm questioning 2018-08-03T15:18:48Z zianic: I think you should try the recomended CLOS polymorphism then move to trying to figure out how to implement it differently. It seems to me that you're trying to learn several different things at once. Which just makes it harder than it needs to be. 2018-08-03T15:18:49Z nanthil: i'm interrogating to find answers and knowledge 2018-08-03T15:18:52Z nanthil: that's what you do 2018-08-03T15:19:18Z pjb: nanthil: so you see, you can send the inc or get messages to different objects, and obtain different processings and results. Plain lisp function (closure) -based polymorphism. 2018-08-03T15:19:29Z nanthil: zianic: i am certainly trying to learn multiple things at once. the lambda calculus for one, functional programming in LISP as opposed to OOP in lisp 2018-08-03T15:20:18Z beach: nanthil: Your program does not use a functional style at all. There are plenty of imperative constructs in it. 2018-08-03T15:20:26Z pjb: nanthil: note, that o1 and o2, are FUNCTIONs! 2018-08-03T15:20:28Z nanthil: beach: yes thanks 2018-08-03T15:20:40Z Bike: paul graham's opinions on writing lisp are not popular here, or as far as i know really anywhere. 2018-08-03T15:20:52Z dlowe: hacker news :) 2018-08-03T15:21:03Z dlowe: not an unbiased sample 2018-08-03T15:21:11Z Bike: if for some reason you want to avoid generic functions, you would still use defclass or defstruct to define your own record types, and then dispatch on types using typecase or something. 2018-08-03T15:21:22Z jgkamat: what was the problem again, mac os crashed and I lost history -_- 2018-08-03T15:21:24Z Bike: or you could go the totally artificial route as pjb has shown. 2018-08-03T15:21:34Z nanthil: bike: as I mentioned in the question, I'm not super concerned with him or his thoughts, but that in googling polymorphism I found that response on a forum, so it lead me to asking the question 2018-08-03T15:21:35Z pjb: it's only that apart form the ITA team, who else than Paul Graham sold his lisp program for hundreds of millions? 2018-08-03T15:21:43Z nanthil: bike: of how would you do it another way 2018-08-03T15:21:51Z schweers: I find that Graham has something interesting to say, although I may not always agree. I don’t remember exactly what he said about CLOS, but it seemed weird to me. 2018-08-03T15:22:04Z Bike: you have two other ways now. 2018-08-03T15:22:09Z nanthil: yes 2018-08-03T15:22:18Z beach: nanthil: But what you seem to want to do is completely artificial and it is very hard to understand the reason for wanting what you seem to want. 2018-08-03T15:22:20Z nanthil: I'm simply narrating the story, not reiterating the question 2018-08-03T15:22:48Z beach: nanthil: You want to accomplish polymorphism without using the mechanism that was designed for precisely that purpose. 2018-08-03T15:23:05Z robotoad joined #lisp 2018-08-03T15:23:10Z nanthil: beach: I've explained the reason several times now. I wasn't expecting you to agree with the method, or condone it, but simply help me to understand it. as the others seem perfectly willing to do 2018-08-03T15:23:40Z beach: OK, good luck then. 2018-08-03T15:24:19Z schweers: reminds me of the time that I tried to do “object orientation” in C, just to understand it better. 2018-08-03T15:24:42Z schweers: also known as design patterns, i.e. being a human compiler ;) 2018-08-03T15:25:03Z beach: schweers: I have a colleague who did implement a (near) complete OO layer on top of C. 2018-08-03T15:25:19Z schweers: beach: for the fun of it, or because he 2018-08-03T15:25:23Z Bike: it's usually more interesting to ask "how is X implemented" than "how can i do what X is for without using X", which is pretty artificial. 2018-08-03T15:25:24Z schweers: beach: for the fun of it, or because he/she needed it? 2018-08-03T15:25:42Z beach: schweers: He is convinced that C is the best thing since sliced bread, so he wants to use it for everything. 2018-08-03T15:26:00Z schweers: oh dear. I guess the two of you get along really well! ;) 2018-08-03T15:26:00Z p_l: beach: I guess it wasn't COS? 2018-08-03T15:26:35Z beach: minion: What does COS stand for? 2018-08-03T15:26:35Z minion: Carucated Ophidologist Sloppage 2018-08-03T15:26:36Z schweers: speaking of C, I read that article mentioned here the other day about C not being a low-level language. Very interesting 2018-08-03T15:27:08Z beach: schweers: For kicks I tried to implement Common Lisp-style signals in C. Turns out to be quite difficult because of some weird semantic restrictions in C. 2018-08-03T15:27:08Z p_l: beach: C Object System, a "port" of CLOS to C 2018-08-03T15:27:18Z beach: Ah, no, home brew. 2018-08-03T15:27:29Z p_l: COS was quite interesting 2018-08-03T15:27:38Z beach: I can imagine. 2018-08-03T15:28:14Z schweers: I think I don’t fully(!) understand how signals work in lisp, but I would have thought that some emulation of special variables should suffice. 2018-08-03T15:28:19Z schweers: Ugh, no. No closures. 2018-08-03T15:28:23Z Bike: Signals? 2018-08-03T15:28:40Z beach: clhs signal 2018-08-03T15:28:40Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_signal.htm 2018-08-03T15:28:51Z p_l: I don't think it works without compling a slightly different language to C 2018-08-03T15:28:54Z Bike: Oh. Yeah. Not used to it as a noun 2018-08-03T15:28:59Z beach: Oh, sorry. 2018-08-03T15:29:00Z beach: Sure. 2018-08-03T15:29:08Z beach: Signaling. 2018-08-03T15:29:09Z p_l: if you get something generating a CPS-form program, you can always do as Chicken Scheme does :) 2018-08-03T15:30:05Z beach: schweers: Signaling is actually quite simple in Common Lisp, compared to other languages like Java and C++. 2018-08-03T15:30:12Z schweers: given lexical closures and special variables and non-local exists, shouldn’t it be possible to implement the signalling mechanism using macros? 2018-08-03T15:30:17Z beach: The key is that signaling does not unwind the stack. 2018-08-03T15:30:44Z beach: You don't even need non-local exists. That's an orthogonal mechanism. 2018-08-03T15:31:09Z schweers: I know. I remember reading the chapter on conditions and restarts in PCL and almost wept. I always thought that I didn’t understand how to properly use exceptions in C++/Java/Blub properly. 2018-08-03T15:31:27Z schweers: beach: you need it for INVOKE-RESTART, right? 2018-08-03T15:31:48Z beach: I don't think so? 2018-08-03T15:31:55Z p_l: beach: what about some POSIX extensions like makecontext/swapcontext? 2018-08-03T15:32:04Z schweers: that’s what I meant by not fully understanding it ;) 2018-08-03T15:32:08Z beach: Heh. 2018-08-03T15:32:37Z beach: p_l: Haven't looked at those. What about them? 2018-08-03T15:32:54Z p_l: let's you swap process context around 2018-08-03T15:33:05Z beach: Sounds bad. 2018-08-03T15:33:06Z p_l: a bit of a more extended setjmp() and longjmp() 2018-08-03T15:33:18Z beach: Oh! 2018-08-03T15:33:34Z p_l: not sure if it would be enough, though 2018-08-03T15:33:41Z beach: Enough for what? 2018-08-03T15:33:49Z beach: For a complete condition system? 2018-08-03T15:34:00Z p_l: for at least usable one :) 2018-08-03T15:34:34Z beach: A long time ago now, I stopped asking myself what to do if I didn't have Common Lisp. I do. 2018-08-03T15:34:41Z p_l: :) 2018-08-03T15:35:03Z beach: But yeah, it used to be interesting to contemplate such things. 2018-08-03T15:35:05Z p_l: I find that question mostly interesting in terms of "here's computer manual and assembler, bring up a system on it" 2018-08-03T15:35:18Z beach: Ah, yes, I see. 2018-08-03T15:35:35Z p_l: I'd rather, if anything, write compiler in CL that generates an inferior language to operate where I can't put CL in 2018-08-03T15:36:03Z rumbler31 joined #lisp 2018-08-03T15:36:06Z beach: Yeah, we had that discussion recently. GCC would have been simpler if written in Common Lisp. 2018-08-03T15:36:30Z schweers: beach: wouldn’t any sufficiently non-trivial program be simpler if written in lisp? 2018-08-03T15:36:37Z schweers: well, almost any 2018-08-03T15:36:38Z random-nick: I think you need non-local exits for INVOKE-RESTART in order to be able to unwind the stack to a selected clause in RESTART-CASE 2018-08-03T15:36:41Z beach: Indeed. 2018-08-03T15:37:13Z beach: random-nick: You think so? 2018-08-03T15:37:28Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T15:37:54Z schweers: doesn’t invoking a restart unwind back to where the restart was defined? 2018-08-03T15:38:04Z schweers: oh dear, I may really be showing my ignorance here 2018-08-03T15:38:08Z Bike: in implementations i've seen it's usually backwards- you don't do any unwinding until you hit a handler case or something 2018-08-03T15:38:22Z beach: Yes, restarts kind of sit on the top of the stack. 2018-08-03T15:38:46Z beach: The topmost function asks one further down what to do. 2018-08-03T15:39:17Z drewes joined #lisp 2018-08-03T15:39:27Z kuwze joined #lisp 2018-08-03T15:40:29Z rumbler31 quit (Ping timeout: 265 seconds) 2018-08-03T15:40:59Z beach: But, yes, I guess there is some unwinding involved. 2018-08-03T15:42:31Z schweers: huh. in sbcl it seems that the stack is first unwound to where the restart is defined, then the restart is invoked 2018-08-03T15:42:54Z orivej quit (Ping timeout: 265 seconds) 2018-08-03T15:43:00Z beach: Yes, you are right. 2018-08-03T15:43:22Z schweers: I was about to post a test case ;) 2018-08-03T15:43:23Z Josh_2 joined #lisp 2018-08-03T15:44:06Z beach: But what accomplishes the unwinding? 2018-08-03T15:44:25Z vibs29 quit (Ping timeout: 245 seconds) 2018-08-03T15:45:27Z iridioid joined #lisp 2018-08-03T15:45:50Z Bike: restart-case uses a block and tagbody. restart-bind just dynamically binds a function. 2018-08-03T15:46:07Z eddof13 joined #lisp 2018-08-03T15:46:09Z vibs29 joined #lisp 2018-08-03T15:46:25Z beach: Right, so condition system is still orthogonal to the non-local exit mechanism. 2018-08-03T15:47:07Z beach: But the condition system uses it. 2018-08-03T15:47:16Z Bike: yes. 2018-08-03T15:47:55Z Bike: in clisp handler-bind is special operator enough to have its own bytecode instructions. seems weird 2018-08-03T15:50:55Z beach: Anyway, I think this orthogonality is exactly the right thing to do which is why I am convinced that Common Lisp has the most elegant condition system around. Inspired by Multics PL/I, sure. But that one is not so active anymore. 2018-08-03T15:52:03Z housel: Well, there's also Dylan, which has pretty much exactly the Common Lisp condition system 2018-08-03T15:52:26Z beach: Ah, forgot about that one. Also didn't know about the condition system. 2018-08-03T15:52:45Z beach: Perhaps a bit more active than Multics PL/I? 2018-08-03T15:52:51Z housel: Indeed 2018-08-03T15:52:59Z kuwze: I believe R also has an exception system inspired by Common Lisp 2018-08-03T15:53:07Z beach: Oh, nice! 2018-08-03T15:55:48Z kuwze: yeah it was Guicho that said it: https://www.reddit.com/r/lisp/comments/7sp8mo/is_there_any_nonlisp_that_copies_common_lisps/dt6zttz/ 2018-08-03T15:56:02Z kuwze: and this references Common Lisp: https://homepage.divms.uiowa.edu/~luke/R/exceptions/simplecond.html 2018-08-03T15:56:31Z kuwze: but that entire reddit thread seems relevant: https://www.reddit.com/r/lisp/comments/7sp8mo/is_there_any_nonlisp_that_copies_common_lisps/ 2018-08-03T15:58:22Z kuwze: sorry if those links had already been posted; I just joined 30 minutes ago 2018-08-03T15:59:19Z beach: Good to know. 2018-08-03T15:59:41Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-03T16:00:49Z rozenglass quit (Remote host closed the connection) 2018-08-03T16:01:37Z Copenhagen_Bram joined #lisp 2018-08-03T16:13:21Z schweers quit (Ping timeout: 240 seconds) 2018-08-03T16:21:38Z shrdlu68 quit (Quit: WeeChat 2.0.1) 2018-08-03T16:22:26Z fikka joined #lisp 2018-08-03T16:25:05Z Lycurgus quit (Quit: Exeunt) 2018-08-03T16:25:34Z Josh_2 quit (Ping timeout: 264 seconds) 2018-08-03T16:27:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T16:36:14Z mathrick joined #lisp 2018-08-03T16:36:37Z karswell joined #lisp 2018-08-03T16:36:52Z beach quit (Ping timeout: 245 seconds) 2018-08-03T16:45:13Z Jesin quit (Remote host closed the connection) 2018-08-03T16:50:49Z Jesin joined #lisp 2018-08-03T16:51:15Z vaporatorius quit (Remote host closed the connection) 2018-08-03T16:53:22Z quipa_ joined #lisp 2018-08-03T16:57:08Z karswell quit (Remote host closed the connection) 2018-08-03T16:58:14Z Kevslinger joined #lisp 2018-08-03T16:58:48Z rozenglass joined #lisp 2018-08-03T17:00:09Z patlv joined #lisp 2018-08-03T17:00:29Z fikka joined #lisp 2018-08-03T17:01:19Z fikka quit (Read error: Connection reset by peer) 2018-08-03T17:01:22Z nowhere_man quit (Remote host closed the connection) 2018-08-03T17:03:29Z eminhi: c 2018-08-03T17:03:32Z m00natic quit (Remote host closed the connection) 2018-08-03T17:03:40Z eminhi quit (Quit: leaving) 2018-08-03T17:06:43Z nowhere_man joined #lisp 2018-08-03T17:06:46Z quipa quit (Quit: Leaving) 2018-08-03T17:06:56Z quipa_ is now known as quipa 2018-08-03T17:10:21Z patlv quit (Ping timeout: 268 seconds) 2018-08-03T17:15:44Z skidd0 joined #lisp 2018-08-03T17:16:19Z skidd0: when defining lambda functions, are the parameters kept in the functions lexical scope? 2018-08-03T17:16:23Z skidd0: I think i'm asking this right 2018-08-03T17:16:50Z dlowe: yes 2018-08-03T17:17:05Z skidd0: basically, if i do #'(lambda (X) ..) does that X clobber up any other X? 2018-08-03T17:17:12Z dlowe: skidd0: you too might be interested in the #clschool channel 2018-08-03T17:17:18Z dlowe: skidd0: it does not 2018-08-03T17:17:21Z Bike: it's a lexical binding unless you specifically declare it otherwise. 2018-08-03T17:17:36Z patlv joined #lisp 2018-08-03T17:17:40Z skidd0: Bike: so i can choose to make it use an existing X if wanted 2018-08-03T17:17:44Z skidd0: but that has to be explicit? 2018-08-03T17:17:55Z Bike: You can choose to make the binding special, if that's what you mean. 2018-08-03T17:17:59Z Bike: Dynamic. 2018-08-03T17:18:04Z phoe: dlowe: we've moved to #clschool? 2018-08-03T17:18:35Z Shinmera: phoe: No ops on #clnoobs 2018-08-03T17:19:25Z dlowe: and we suddenly needed ops 2018-08-03T17:19:29Z dlowe: due to spammers 2018-08-03T17:19:35Z phoe: yes, I see 2018-08-03T17:19:36Z skidd0: gross 2018-08-03T17:20:09Z edgar-rft: let's setup #clops with everybody being an op 2018-08-03T17:20:17Z foom2: dlowe: probably you could get freenode to fix that for you? 2018-08-03T17:20:28Z phoe: foom2: #clnoobs is... not a registered channel. 2018-08-03T17:20:34Z dlowe: foom2: they would if I changed it to ##clnoobs 2018-08-03T17:20:57Z dlowe: man, I have explained this a bunch of times now 2018-08-03T17:21:05Z foom2: nevermind 2018-08-03T17:21:08Z fikka joined #lisp 2018-08-03T17:21:11Z dlowe: :) 2018-08-03T17:24:05Z cage_ joined #lisp 2018-08-03T17:25:53Z fikka quit (Ping timeout: 248 seconds) 2018-08-03T17:31:20Z fikka joined #lisp 2018-08-03T17:33:53Z kuwze: maybe someone can help me... I have trouble understanding basic heap/stack semantics in programming languages in general. Since lexical scoping causes variables to automatically be reclaimed, is a GC only needed for heap-based allocations? 2018-08-03T17:35:35Z orivej joined #lisp 2018-08-03T17:35:54Z fikka quit (Ping timeout: 244 seconds) 2018-08-03T17:37:39Z kuwze: I guess for cl in particular; is a GC only needed for dynamically scoped variables? 2018-08-03T17:38:35Z kuwze: sorry meant to use : not ; 2018-08-03T17:39:38Z jasom: kuwze: in general GCs are only needed for non-dynamic-extent variables 2018-08-03T17:39:55Z jasom: dynamic extent and dynamic scope are orthogonal concepts 2018-08-03T17:40:22Z jasom: correction: GCs are only needed for non-dynamic-extent *data* 2018-08-03T17:40:33Z jasom: data are distinct from variables as well 2018-08-03T17:41:02Z kuwze: jasom: what's the best resource to learn more about this? 2018-08-03T17:41:25Z fikka joined #lisp 2018-08-03T17:42:52Z jasom: kuwze: hmm, if you wan't I can give you the basics maybe in #clschool if it's not OT there? 2018-08-03T17:43:29Z Bike: you can assign one variable to have the value of another variable. 2018-08-03T17:44:08Z Bike: (let ((x nil)) ...complicated stuff... (let ((y some-value)) (setf x y) ...) ...), now if you delete some-value at the end of the inner let problems happen. 2018-08-03T17:45:44Z zianic quit (Ping timeout: 255 seconds) 2018-08-03T17:46:44Z fikka quit (Ping timeout: 260 seconds) 2018-08-03T17:47:11Z jasom: consider (let ((foo (make-some-value)) (bar foo)) <-- we have no idea what bar does with the value held by foo. Even though foo the variable goes away after the let expression is exited, that says nothing about the value we initially bound to it 2018-08-03T17:47:54Z jasom: this is true whether foo is a dynamic or lexical variable 2018-08-03T17:50:09Z jasom: here's an example where the value obviously survives the scope of the variable (let ((h (make-hash-table))) (let ((foo (make-some-value))) (setf (gethash 'foo h) foo)) ...) 2018-08-03T17:50:19Z jasom: here's an example where the value obviously survives the scope of the variable (let ((h (make-hash-table))) (let ((foo (make-some-value))) (setf (gethash 'bar h) foo)) ...) 2018-08-03T17:50:35Z jasom: (the second example is the same as the first, but I changed the name of the hash key so as not to confuse things) 2018-08-03T17:51:34Z fikka joined #lisp 2018-08-03T17:51:48Z kuwze: well that's way more complicated than I thought... I guess I have to put more time into becoming familiar with cl and the standard in general 2018-08-03T17:52:10Z jasom: kuwze: this is true for all languagues in eneral, not just lisp 2018-08-03T17:52:57Z papachan quit (Ping timeout: 240 seconds) 2018-08-03T17:54:13Z jasom: kuwze: not all languages have separate concepts for dynamic and lexical bindings, but the concept of values being distinct from variables is true in nearly all languages. 2018-08-03T17:55:45Z kuwze: jasom: what do you mean "values are distinct from variables"? 2018-08-03T17:55:55Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T17:56:26Z kuwze: err I got to go but I'll login later... thanks again for answering my questions. 2018-08-03T17:56:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T17:56:32Z kuwze quit (Quit: Page closed) 2018-08-03T17:58:16Z jasom: If I could add one concept to CS 101 it would be "values are distinct from variables" it's so fundamental and not learning it makes programming much harder. No struggling CS student who asked me for help in college ever grasped it, and once they did about 75% of their problems went away. 2018-08-03T17:59:53Z milanj quit (Quit: This computer has gone to sleep) 2018-08-03T18:01:46Z fikka joined #lisp 2018-08-03T18:02:36Z fikka quit (Read error: Connection reset by peer) 2018-08-03T18:05:45Z skidd0: meaning values like 11 are not the same as the variables that hold that value? 2018-08-03T18:06:08Z skidd0: because the variable is an address to data, not the data itself 2018-08-03T18:06:10Z skidd0: ? 2018-08-03T18:07:38Z patlv_ joined #lisp 2018-08-03T18:11:14Z patlv quit (Ping timeout: 260 seconds) 2018-08-03T18:12:16Z fikka joined #lisp 2018-08-03T18:15:45Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T18:17:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T18:17:56Z jxy quit (Remote host closed the connection) 2018-08-03T18:19:06Z makomo joined #lisp 2018-08-03T18:21:05Z patlv_ quit (Ping timeout: 240 seconds) 2018-08-03T18:21:37Z jasom: skidd0: variables are abstract concepts, not necessarily addresses to data 2018-08-03T18:22:01Z drewes joined #lisp 2018-08-03T18:22:04Z jasom: e.g. (let ((x 3)) (+ x 1)) ; <-- that might just compile down to "4" 2018-08-03T18:22:27Z fikka joined #lisp 2018-08-03T18:22:44Z jasom: references *are* addresses to data, and they are an extra layer of confusion, at least when the data is mutable. 2018-08-03T18:23:02Z skidd0: damn pointers 2018-08-03T18:23:10Z jasom: e.g. (let ((x 3)) (foo x) x) will awyas evaluate to 3. 2018-08-03T18:23:29Z jasom: (let ((x (cons 3 4))) (foo x) (car x)) may evaluate to pretty much anything 2018-08-03T18:24:21Z skidd0: hmm okay 2018-08-03T18:24:46Z jasom: a variable is bound to a particular value in some context. When the value is mutable, then things get even more confusing. 2018-08-03T18:25:18Z skidd0: so why can the let cons example evaluate to anything? 2018-08-03T18:25:24Z skidd0: if the x is bound to the cons 2018-08-03T18:25:41Z jasom: because foo might be: (def foo (x) (setf (car x) 2)) 2018-08-03T18:25:49Z jasom: now the cons example evaluates to 2 2018-08-03T18:25:55Z jasom: because a CONS is mutable, but an integer is not. 2018-08-03T18:26:07Z skidd0: but then can't the same be said of foo in the first? 2018-08-03T18:26:09Z skidd0: oh duh 2018-08-03T18:26:42Z v0|d quit (Read error: Connection reset by peer) 2018-08-03T18:26:56Z skidd0: can't a (def foo (x) (setf x 2))? 2018-08-03T18:27:00Z skidd0: can't I* 2018-08-03T18:27:34Z jasom: yes, but that changes the value bound by the variable x inside this particular call of foo. 2018-08-03T18:27:46Z jasom: it doesn't change the value "3" to be "2" 2018-08-03T18:27:49Z skidd0: OH 2018-08-03T18:27:57Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T18:28:32Z skidd0: then in the LET, x is still 3 2018-08-03T18:28:32Z jasom: if you do (setf x 2) as your foo for the cons example, the cons example still returns 3, because you never mutated the cons cell. 2018-08-03T18:28:49Z skidd0: ah 2018-08-03T18:29:08Z jasom: (def foo (x) (setf (car x) 2)) <-- note we do *not* setf X here, we setf (car x) 2018-08-03T18:30:15Z jasom: e.g. (let* ((x (cons 1 2)) (y x)) (setf (car x 2)) (eq y x)) ; -> T 2018-08-03T18:30:23Z jasom: we didn't change x, so y and x are still the same 2018-08-03T18:30:36Z jasom: e.g. (let* ((x (cons 1 2)) (y x)) (setf x 2) (eq y x)) ; -> NIL 2018-08-03T18:30:50Z dlowe: Scalar data is data where the value is the identity, and those cannot be mutated. 2018-08-03T18:32:05Z dlowe: except in those few languages where you can literally set the value of 3 2018-08-03T18:32:29Z dlowe: nonscalar data has an identity with potentially different values, so where the data is bound is important 2018-08-03T18:32:37Z fikka joined #lisp 2018-08-03T18:33:52Z jasom: and practical implementations of nonscalar data on real hardware usually use memory and addresses; which is why "because the variable is an address to data, not the data itself" is an imprecise way of talking about mutability. 2018-08-03T18:34:34Z jasom: If all values were immutable, then the only reason we would care about whether it's a reference or not would be identity testing (e.g. EQ in lisp). 2018-08-03T18:35:26Z jasom: an example of that in lisp would be a bignum (technically fixnums are allowed to behave this way too, most implementations EQ works on fixnums) 2018-08-03T18:35:54Z skidd0: oh this is the difference between EQ and EQUAL right? 2018-08-03T18:36:19Z jasom: 1234567890123456789012345678901234567890 will never be mutated, so (foo x) will not change it. however you might have two different copies of those values that are not EQ 2018-08-03T18:36:35Z jasom: skidd0: it's *a* difference 2018-08-03T18:36:53Z jasom: eq and eql is the one where that's the main difference 2018-08-03T18:37:15Z skidd0: err: variable *a* not defined before use 2018-08-03T18:37:25Z jasom: I *think* there are no immutable values in lisp that are different under EQL when they are otherwise equal. 2018-08-03T18:37:34Z skidd0: wait theres also a EQL? 2018-08-03T18:37:36Z skidd0: oh boy 2018-08-03T18:37:42Z jasom: clhs eql 2018-08-03T18:37:42Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_eql.htm 2018-08-03T18:37:55Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T18:38:37Z fikka joined #lisp 2018-08-03T18:38:48Z jasom: skidd0: eql is what you usually want for efficient identity testing. For "this is the *same* thing" compared to "these things are equivalent" 2018-08-03T18:40:09Z skidd0: so eql is the *same* test, right? 2018-08-03T18:40:17Z skidd0: and eq is the equivalency 2018-08-03T18:41:01Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T18:41:57Z meepdeew joined #lisp 2018-08-03T18:42:57Z jasom: right. One good mnemonic is that the longer the name, the broader the equality test; eq is a subset of eql is a subset of equal is a subset of equalp 2018-08-03T18:42:58Z fiddlerwoaroof quit (Ping timeout: 264 seconds) 2018-08-03T18:43:38Z skidd0: I see 2018-08-03T18:43:45Z skidd0: good mnemonic 2018-08-03T18:44:12Z jasom: and some standards mandate that you never use eq, since there are no portable differences between eq and eql. 2018-08-03T18:44:20Z NoNumber joined #lisp 2018-08-03T18:44:23Z jasom: i.e. a conforming standard could have the two behave the same. 2018-08-03T18:44:28Z varjag joined #lisp 2018-08-03T18:44:28Z jasom: s/standard/implementation/ 2018-08-03T18:44:40Z patlv_ joined #lisp 2018-08-03T18:44:49Z skidd0: ah 2018-08-03T18:45:41Z jasom: some of the functions in the standard work the way they do simply to prevent breaking existing code. 2018-08-03T18:46:15Z Inline quit (Quit: Leaving) 2018-08-03T18:52:06Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T18:54:40Z Inline joined #lisp 2018-08-03T18:55:19Z nanthil: http://www.compileonline.com/execute_lisp_online.php 2018-08-03T18:55:21Z nanthil: there's this guy 2018-08-03T18:55:24Z nanthil: it isn't interactive 2018-08-03T18:55:29Z nanthil: which means it isn't a repl :( 2018-08-03T18:56:31Z drewes joined #lisp 2018-08-03T18:58:59Z gendl: Hi, I have a big .fasl file, made by asdf's monolithic-compile-bundle facility, and somehow it got polluted with a symbol from the ASDF package -- 2018-08-03T18:59:42Z gendl: I think some new Quicklisp library I'm using must be less than hygienic as far as ending up with stuff from asdf when it gets built into fasls.. 2018-08-03T19:00:02Z gendl: How can I inspect the (binary) .fasl file to find what symbol is causing this mischief? 2018-08-03T19:01:24Z gendl: Well, I just opened the fasl in emacs, from the looks of things cl-markdown is the culprit, and indeed I just added that recently to my soup 2018-08-03T19:03:18Z gendl: Hmm I was hoping to start using cl-markdown to help with authoring content for my website and web applications... trying to track down where it's getting polluted with stuff from asdf... (because in general I build runtimes sans asdf - I just use asdf to make the monolithic fasls, then load them into a clean image at build time). 2018-08-03T19:04:17Z gendl: Hrmph, cl-markdown looks to be from January of 2010 -- I guess it's quite "stable" ;) 2018-08-03T19:11:24Z papachan joined #lisp 2018-08-03T19:18:05Z kerrhau joined #lisp 2018-08-03T19:18:35Z asarch joined #lisp 2018-08-03T19:19:46Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T19:21:46Z iskander quit (Ping timeout: 260 seconds) 2018-08-03T19:22:05Z patlv_ quit (Ping timeout: 240 seconds) 2018-08-03T19:23:43Z v0|d joined #lisp 2018-08-03T19:30:57Z Arcaelyx joined #lisp 2018-08-03T19:35:20Z light2yellow quit (Quit: light2yellow) 2018-08-03T19:46:39Z Jesin quit (Remote host closed the connection) 2018-08-03T19:46:47Z gendl: Whelp, both cl-markdown and metatilities are polluted. 2018-08-03T19:47:12Z skidd0: does anyone have an example of setting the cors header of hunchentoot? 2018-08-03T19:54:23Z Jesin joined #lisp 2018-08-03T19:59:04Z Bike: clhs allow-other-keys 2018-08-03T19:59:04Z specbot: Couldn't find anything for allow-other-keys. 2018-08-03T19:59:08Z Bike: bummer 2018-08-03T19:59:39Z v0|d: clhs &allow-other-keys 2018-08-03T19:59:39Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/03_da.htm 2018-08-03T20:00:29Z Bike: thanks 2018-08-03T20:01:57Z papachan quit (Quit: WeeChat 2.2) 2018-08-03T20:08:09Z Xach: gendl: what causes it, do you know? 2018-08-03T20:08:11Z fiddlerwoaroof joined #lisp 2018-08-03T20:08:23Z Xach: gendl: using asdf:whatever in system sources? like asdf:system-relative-pathname and such? 2018-08-03T20:09:37Z gendl: metatilities (:imports ..) then (:exports ..) three or so ASDF utilities in its package.lisp, 2018-08-03T20:09:42Z Xach: ah 2018-08-03T20:10:09Z gendl: and cl-markdown has (:use .... :asdf) in a package definition in its cl-markdown.asd, 2018-08-03T20:10:38Z gendl: so it can then call some asdf stuff in its testing methods, which apparently get called automatically upon compile/loading or so. 2018-08-03T20:10:59Z gendl: (those actions are defined further down in the defsystem of cl-markdown.asdf) 2018-08-03T20:11:08Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-03T20:11:35Z gendl: :use'ing :asdf in the cl-markdown-system package in cl-markdown.asdf also eliminates the need to say asdf:defsystem so it just says defsystem. 2018-08-03T20:11:48Z gendl: I fixed everything locally just by commenting out all the offending stuff. 2018-08-03T20:12:48Z gendl: I'll send email to the author alerting him to these issues. I'm not sure how to fix it while keeping all the functionality and test automation which is apparently in there now though. None of that stuff is needed for production runtime deployment though, so I'd think there should be a way to switch it off short of commenting out code locally. 2018-08-03T20:14:27Z Copenhagen_Bram joined #lisp 2018-08-03T20:14:31Z drewes joined #lisp 2018-08-03T20:15:37Z vlatkoB quit (Remote host closed the connection) 2018-08-03T20:16:40Z figurelisp joined #lisp 2018-08-03T20:16:48Z gendl: By the way, for people who are nervous about exposing a Lisp website to the wild (which I've been doing constantly since about 1997), one trivial way to mitigate that appears to be to sign up for a free Cloudflare account, and send everything through there. 2018-08-03T20:17:12Z rpg joined #lisp 2018-08-03T20:18:06Z gendl: I accidentally stumbled upon Cloudflare the other day when I started getting spam where someone was trying to use one of my genworks email addresses for a Cloudflare account and registering a bunch of bogus websites. So I took control of the account and as an experiment set up genworks.com to go through Cloudflare. 2018-08-03T20:18:16Z angavrilov quit (Remote host closed the connection) 2018-08-03T20:19:00Z gendl: Seems legit. It does caching, protects from attacks, and redirects everything to https: with the flip of a switch. 2018-08-03T20:19:37Z gendl: but, ssh stops working. You have to set up a different subdomain for that and not have it go through the cloudflare IP address. 2018-08-03T20:19:43Z gendl: Anyway enough off-topic rambling. 2018-08-03T20:20:33Z cage_ quit (Quit: Leaving) 2018-08-03T20:24:14Z patlv_ joined #lisp 2018-08-03T20:26:30Z gendl: Just switched over to the new Genworks website: http://genworks.com 2018-08-03T20:26:38Z gendl: Feedback welcome. Some parts of it are a bit ranty. 2018-08-03T20:26:53Z gendl: and of course it needs a ton of fleshing out. But I was getting sick of our 1990s looking site. 2018-08-03T20:27:52Z gendl: So now we have a 2013 looking site. 2018-08-03T20:27:57Z Shinmera: Looks modern enough, aside from the graphic which still looks very 90s. 2018-08-03T20:28:20Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-03T20:28:25Z gendl: The graphic was made by someone in about 2008. 2018-08-03T20:28:45Z gendl: Can't be bothered to update it at this juncture. 2018-08-03T20:28:57Z Shinmera: Protip: Don't use gradients or 3D effects and it'll look much more modern almost instantaneously :) 2018-08-03T20:29:28Z gendl: I'll see if the guy still has the source file in whatever he used to do it. 2018-08-03T20:30:01Z gendl: Meantime I'll start filling in the rest of the site with some GDL-generated geometry graphics. 2018-08-03T20:30:28Z Shinmera: gendl: By the by, I remember you filed some issues on some of my projects some time ago but never got back to my responses 2018-08-03T20:30:56Z gendl: You did respond, and you recently closed the issue. I was proposing modern-mode support and you rejected it on principle. 2018-08-03T20:31:33Z Shinmera: Ah, right. There was something else though. I think something on Portacle? 2018-08-03T20:31:47Z gendl: Oh yes, I was just wondering why it wasn't a normal .dmg. 2018-08-03T20:31:56Z skidd0 quit (Quit: \0) 2018-08-03T20:32:12Z gendl: We do distribute Gendl including a pre-configured Emacs as a normal .dmg 2018-08-03T20:32:32Z gendl: so you just drag-to-install and click the icon, and emacs comes up with a Gendl repl, ready to go. 2018-08-03T20:32:50Z Shinmera: Yeah, I have different constraints that make that unfavourable. 2018-08-03T20:34:38Z igemnace quit (Quit: WeeChat 2.2) 2018-08-03T20:34:50Z Jesin quit (Remote host closed the connection) 2018-08-03T20:38:24Z gendl: regarding the modern-mode thing, is that a hard principle of yours? I understand the desire to avoid drifting away from ANSI standards. But in my experience it's not hard to write code which is still totally ANSI compliant but will also work in modern-mode. 2018-08-03T20:40:06Z gendl: We do have some modern-mode deployments (for better or for worse) which we do have to support for the time being. So if we ever were to use any of the very awesome-looking Shinmera libraries, we'd have to create and maintain our own forks, which doesn't appear so awesome... 2018-08-03T20:40:45Z Shinmera: Which library was the modern mode thing on again? 2018-08-03T20:41:12Z Shinmera: I try to code most things to not be readtable case dependant, but in general it's a huge headache that I don't want to think about hence the rejection. 2018-08-03T20:42:33Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-03T20:43:36Z phoe: Hmm. Mezzano runs in VirtualBox. 2018-08-03T20:43:42Z Shinmera: GitHub search is worthless 2018-08-03T20:44:00Z phoe: Has anyone tried using it to run some production code, just to check if it's capable of it? 2018-08-03T20:44:51Z gendl: Shinmera: the gtk thing or one of its dependencies. 2018-08-03T20:45:04Z Shinmera: I don't have any gtk things 2018-08-03T20:45:23Z aeth: Iirc, the way I handle readtable case issues is #.(symbol-name '#:foo) but it doesn't appear to be that common 2018-08-03T20:45:26Z gendl: I'm getting the wrong UI acronym. 2018-08-03T20:45:30Z Shinmera: Qt? 2018-08-03T20:45:35Z gendl: must be Qt, yes. 2018-08-03T20:45:50Z gendl: the desktop UI. 2018-08-03T20:45:52Z aeth: (Even I don't handle readtable case issues everywhere because of just how rare of an issue it is. Compare this to floating point where I always make sure to end floats in "f0") 2018-08-03T20:46:10Z Shinmera: Ah, the use of NIL and T as uppercase. Right, now I remember. 2018-08-03T20:46:27Z Shinmera: That's one I will not change due to stylistic consistency reasons. 2018-08-03T20:46:29Z gendl: Currently we don't support any desktop UIs at all. We try to force everything to be web-based. Sometimes we probably lose potential sales because of that. 2018-08-03T20:46:47Z gendl: But i'm very much allergic to diving into any platform-specific UI development. 2018-08-03T20:46:48Z aeth: gendl: Ime, people will comment and not understand the purpose of #.(symbol-name '#:foo) if you use it to avoid modern mode issues since literally no one (including me, so I haven't even tested this workaround) uses it 2018-08-03T20:47:28Z gendl: yes, using NIL and T as uppercase in source code will break modern-mode quite directly. 2018-08-03T20:47:49Z Shinmera: I wonder if there's a way to hack support in by doing reader trickery. 2018-08-03T20:47:57Z Shinmera: Probably not. 2018-08-03T20:48:28Z figurelisp quit (Ping timeout: 256 seconds) 2018-08-03T20:48:44Z iridioid quit (Ping timeout: 260 seconds) 2018-08-03T20:49:11Z NoNumber left #lisp 2018-08-03T20:49:22Z Shinmera: Re-reading my response I was being oddly obscure. I consistently upcase constants in my code, which I deem important for readability. 2018-08-03T20:49:32Z phoe: what's modern-mode? 2018-08-03T20:49:54Z Shinmera: And I'd rather not go through all of my projects and change that style just to address what is, in my view, a bad idea. 2018-08-03T20:50:01Z fikka joined #lisp 2018-08-03T20:50:21Z phoe: ooh. I see. 2018-08-03T20:50:34Z gendl: Well I'm certainly in no position to question your sensibilities there. 2018-08-03T20:51:17Z gendl: So I'll resign myself to maintaining forks if I ever endeavor to use that stuff. 2018-08-03T20:51:32Z gendl: Once the initial fork is done it shouldn't be too hard to keep merging in your latest. 2018-08-03T20:51:37Z Shinmera: Right. If there's a hack available that I can #+allegro, I'd consider it though. 2018-08-03T20:52:15Z gendl: I'll keep that in mind. But I don't suppose you would want to see #+allegro nil #-allegro NIL 2018-08-03T20:52:20Z gendl: lol 2018-08-03T20:52:27Z Shinmera: Haha, no 2018-08-03T20:52:51Z trittweiler: (defconstant NIL nil) and (deconstant T t) will perhaps work 2018-08-03T20:52:53Z foom2: You could just set the case mode to case-insensitive-lower before loading the library 2018-08-03T20:53:02Z foom2: (as the modern mode docs recommend) 2018-08-03T20:53:04Z Shinmera: trittweiler: Nope 2018-08-03T20:53:10Z gendl: trittweiler - Yeap, i was just thinking somethning like that. 2018-08-03T20:53:23Z gendl: Shinmera: Figured there would be some catch, though. 2018-08-03T20:53:25Z Shinmera: NIL and T are used in lots of places that are not evaluated, so symbol macros won't work. 2018-08-03T20:53:44Z Shinmera: And constants, for that matter. 2018-08-03T20:53:56Z Shinmera: You'd have to hack INTERN. 2018-08-03T20:53:58Z gendl: foom2: oh, interesting. I haven't looked at those docs in ages. 2018-08-03T20:55:11Z gendl: phoe: you know what modern-mode is, now? It's slightly tweaked alternative images provided by Franz (and Scieneer too, last I looked) which have the reader case set to case-preserving instead of upcasing everything, and which have all the standard CL symbols in lowercase instead of uppercase. 2018-08-03T20:55:47Z foom2: someone should add that feature to sbcl too. :) 2018-08-03T20:55:49Z Shinmera: almost as weird as :invert case 2018-08-03T20:56:00Z foom2: Nah, it's _way_ less weird than any of the ansi standard case modes. 2018-08-03T20:56:30Z gendl: I'm not schooled enough on the standard to know how egregious of a violation this is. 2018-08-03T20:56:46Z Shinmera: I like being screamed at while I work. It's only fair for how much I scream at my computer. 2018-08-03T20:57:24Z gendl: I think what's violating ANSI in a modern-mode is the fact that the built-in symbols are shipped in lowercase, right? 2018-08-03T20:57:46Z gendl: a conforming program is allowed to switch the reader-case to be case-preserving, right? 2018-08-03T20:57:56Z Shinmera: Yes, yes. 2018-08-03T20:59:22Z kajo joined #lisp 2018-08-03T20:59:30Z gendl: Who was the SBCL guy several years ago? Nikolas Siiva (sp?) 2018-08-03T20:59:36Z aeth: I :downcase my *print-case* mainly because it downcases the output of macroexpand-1 (and, in SBCL, disassemble) 2018-08-03T21:00:21Z aeth: gendl: A proper case sensitive CL would have to support car and CAR even if it made it case sensitive everywhere else, I guess. 2018-08-03T21:00:44Z aeth: (Supporting CaR, cAr, etc., might not be necessary, though.) 2018-08-03T21:01:06Z Shinmera: Yeah a useful modern mode would need at least both upcase and downcase variants. 2018-08-03T21:01:07Z foom2: Is it acceptable to export additional symbols from the CL package w.r.t. the standard? 2018-08-03T21:01:12Z Shinmera: foom2: No 2018-08-03T21:01:29Z foom2: It'd still be a violation, then, so what's the point. :) 2018-08-03T21:01:40Z Shinmera: But neither is changing the case of the standard package's symbols 2018-08-03T21:01:47Z Shinmera: So if you're gonna violate, at least violate usefully 2018-08-03T21:01:55Z Shinmera: That sounds really bad out of context. 2018-08-03T21:02:09Z foom2: Sure it is, because approx everyone writes their code in lowercase, except where they accidentally don't. 2018-08-03T21:02:12Z Jesin joined #lisp 2018-08-03T21:02:21Z foom2: (Obviously, there are some notable exceptions in this conversation, but I still contend that's true) 2018-08-03T21:02:25Z aeth: What you would probably want to do is extend defpackage (including the definition of CL) to handle the case of exported symbols in a certain way. i.e. If case sensitive, make CAR an alias to car (or the other way around) if the defpackage allows it. 2018-08-03T21:02:41Z aeth: If implementation-specific extensions to defpackage are even allowed. 2018-08-03T21:02:54Z gendl: Nikodemus Siivola 2018-08-03T21:03:27Z gendl: Nikodemus mentioned to me that one can essentially achieve most of what modern-mode does by simply running an ANSI image with case-mode set to :invert. 2018-08-03T21:03:50Z foom2: Kinda. you get some very odd results then 2018-08-03T21:03:51Z patlv_ quit (Remote host closed the connection) 2018-08-03T21:04:06Z gendl: At the time, I "got" what he was saying, but now I don't so much remember my epiphany. 2018-08-03T21:04:10Z patlv_ joined #lisp 2018-08-03T21:04:18Z aeth: foom2: The problem is most people use string literals when writing macros that deal with symbols, e.g. searching for symbols with the prefix "FOO-". In most, but not all, of my code, I handle that with #.(symbol-name '#:foo-) which should work for a "modern mode" but probably wouldn't work if the reader case changes over time for some reason 2018-08-03T21:04:39Z aeth: Most code would probably just hardcode "FOO-" though 2018-08-03T21:04:42Z gendl: Because yeah, if your source is in lowercase (as is usual) then you'll still see everything screaming at you in uppercase after it gets read and inverted. 2018-08-03T21:05:15Z foom2: aeth: yea, don't change the reader case within one build, that's just asking for trouble. =) 2018-08-03T21:05:26Z Shinmera: Just use print-case :downcase if the screaming is all that's bothering you. 2018-08-03T21:05:26Z gendl: So there might have been some other trick he mentioned too. 2018-08-03T21:05:35Z gendl: Right. 2018-08-03T21:05:49Z Shinmera: Or :invert if you use :invert read case. 2018-08-03T21:06:06Z gendl: Shinmera -- that was probably the trick. 2018-08-03T21:06:12Z gendl: Invert on the way in, and on the way out. 2018-08-03T21:07:09Z mindCrime quit (Ping timeout: 268 seconds) 2018-08-03T21:07:24Z aeth: gendl: I might do that for cl-scheme 2018-08-03T21:08:31Z figurelisp joined #lisp 2018-08-03T21:10:33Z jxy joined #lisp 2018-08-03T21:12:38Z Jesin quit (Remote host closed the connection) 2018-08-03T21:14:39Z Jesin joined #lisp 2018-08-03T21:15:47Z aeth: (invert both ways so a case-sensitive language can interop with a language that upcases everything) 2018-08-03T21:16:39Z figurelisp: use of clschool channel? 2018-08-03T21:17:00Z figurelisp: should i as a newbie lurk on it? 2018-08-03T21:17:55Z Bike: that seems to be the intent. 2018-08-03T21:20:49Z libre-man quit (Ping timeout: 260 seconds) 2018-08-03T21:23:00Z figurelisp: Bike: what about clnoobs 2018-08-03T21:25:18Z trittweiler quit (Ping timeout: 256 seconds) 2018-08-03T21:29:42Z figurelisp quit (Remote host closed the connection) 2018-08-03T21:29:56Z LiamH quit (Quit: Leaving.) 2018-08-03T21:32:58Z josemanuel quit (Quit: leaving) 2018-08-03T21:34:09Z libre-man joined #lisp 2018-08-03T21:36:13Z pierpa joined #lisp 2018-08-03T21:37:16Z Denommus quit (Remote host closed the connection) 2018-08-03T21:42:02Z pjb: aeth: what about Car and Multiple-Value-Bind or MultipleValueBind? 2018-08-03T21:44:07Z aeth: Does someone actually use Multiple-Value-Bind? 2018-08-03T21:45:15Z pjb: There are random capitalization sometimes. 2018-08-03T21:45:33Z pjb: The point is that it's case insensitive. 2018-08-03T21:46:11Z aeth: Just because the language itself will tolerate Multiple-Value-Bind doesn't mean that any human reader of CL will 2018-08-03T21:48:00Z markong joined #lisp 2018-08-03T21:48:05Z markoong quit (Ping timeout: 240 seconds) 2018-08-03T21:52:56Z spm_ joined #lisp 2018-08-03T21:54:12Z Bike quit (Ping timeout: 252 seconds) 2018-08-03T21:58:34Z FreeBirdLjj joined #lisp 2018-08-03T22:08:46Z acolarh quit (Ping timeout: 264 seconds) 2018-08-03T22:09:24Z acolarh joined #lisp 2018-08-03T22:11:27Z varjag: people were banned for less 2018-08-03T22:11:45Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-03T22:15:34Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-03T22:19:13Z patlv_ quit (Ping timeout: 248 seconds) 2018-08-03T22:19:18Z pierpal quit (Ping timeout: 268 seconds) 2018-08-03T22:19:34Z crsc quit (Ping timeout: 264 seconds) 2018-08-03T22:19:42Z crsc joined #lisp 2018-08-03T22:24:49Z markong quit (Quit: Konversation terminated!) 2018-08-03T22:29:24Z fikka quit (Read error: Connection reset by peer) 2018-08-03T22:34:38Z xrash quit (Remote host closed the connection) 2018-08-03T22:39:06Z fikka joined #lisp 2018-08-03T22:42:23Z kajo joined #lisp 2018-08-03T22:44:01Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-03T22:44:14Z fikka quit (Ping timeout: 260 seconds) 2018-08-03T22:46:45Z skapata joined #lisp 2018-08-03T22:49:12Z fikka joined #lisp 2018-08-03T22:52:06Z kajo quit (Ping timeout: 265 seconds) 2018-08-03T22:53:12Z kajo joined #lisp 2018-08-03T22:54:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T22:54:26Z robotoad quit (Quit: robotoad) 2018-08-03T23:02:57Z varjag quit (Ping timeout: 240 seconds) 2018-08-03T23:03:17Z varjag joined #lisp 2018-08-03T23:09:31Z fikka joined #lisp 2018-08-03T23:10:17Z tessier quit (Remote host closed the connection) 2018-08-03T23:11:24Z Cthulhux quit (Ping timeout: 256 seconds) 2018-08-03T23:13:54Z jasom: This case sensitivity thing is yet another issue that could be done in a library if there were a callback invoked for processing a token. 2018-08-03T23:14:48Z fikka quit (Ping timeout: 268 seconds) 2018-08-03T23:15:37Z meepdeew quit (Remote host closed the connection) 2018-08-03T23:16:56Z varjag quit (Ping timeout: 256 seconds) 2018-08-03T23:18:58Z kerrhau quit (Read error: Connection reset by peer) 2018-08-03T23:19:39Z fikka joined #lisp 2018-08-03T23:24:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T23:28:10Z patlv_ joined #lisp 2018-08-03T23:29:48Z fikka joined #lisp 2018-08-03T23:35:10Z fikka quit (Ping timeout: 264 seconds) 2018-08-03T23:40:01Z Bike joined #lisp 2018-08-03T23:40:19Z fikka joined #lisp 2018-08-03T23:44:10Z random-nick quit (Ping timeout: 264 seconds) 2018-08-03T23:44:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-03T23:48:13Z patlv_ quit (Remote host closed the connection) 2018-08-03T23:48:32Z patlv_ joined #lisp 2018-08-03T23:50:41Z fikka joined #lisp 2018-08-03T23:55:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T00:00:47Z fikka joined #lisp 2018-08-04T00:05:59Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T00:10:35Z patlv_ quit (Ping timeout: 240 seconds) 2018-08-04T00:15:21Z jinkies joined #lisp 2018-08-04T00:20:59Z fikka joined #lisp 2018-08-04T00:25:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T00:28:26Z pierpal joined #lisp 2018-08-04T00:31:06Z fikka joined #lisp 2018-08-04T00:31:56Z fikka quit (Read error: Connection reset by peer) 2018-08-04T00:33:09Z Kundry_Wag joined #lisp 2018-08-04T00:37:07Z rumbler31 joined #lisp 2018-08-04T00:39:09Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T00:40:51Z jinkies quit (Ping timeout: 265 seconds) 2018-08-04T00:41:45Z rumbler31 quit (Ping timeout: 268 seconds) 2018-08-04T00:43:16Z fiddlerwoaroof joined #lisp 2018-08-04T00:46:11Z robotoad joined #lisp 2018-08-04T00:46:38Z FreeBirdLjj joined #lisp 2018-08-04T00:47:38Z NoNumber joined #lisp 2018-08-04T00:51:50Z fikka joined #lisp 2018-08-04T00:53:19Z gwood joined #lisp 2018-08-04T00:56:02Z easye joined #lisp 2018-08-04T00:57:10Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T01:01:55Z fikka joined #lisp 2018-08-04T01:06:41Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T01:06:57Z pierpal quit (Ping timeout: 264 seconds) 2018-08-04T01:12:08Z fikka joined #lisp 2018-08-04T01:13:35Z orivej quit (Ping timeout: 240 seconds) 2018-08-04T01:17:09Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T01:19:34Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-04T01:22:17Z fikka joined #lisp 2018-08-04T01:26:35Z v0|d quit (Ping timeout: 240 seconds) 2018-08-04T01:27:23Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T01:28:14Z iridioid joined #lisp 2018-08-04T01:33:34Z NoNumber left #lisp 2018-08-04T01:37:00Z patlv_ joined #lisp 2018-08-04T01:38:19Z spm_ quit (Remote host closed the connection) 2018-08-04T01:41:03Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-04T01:42:57Z fikka joined #lisp 2018-08-04T01:46:18Z meepdeew joined #lisp 2018-08-04T01:47:13Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-04T01:47:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T01:53:16Z fikka joined #lisp 2018-08-04T01:53:49Z iridioid quit (Ping timeout: 260 seconds) 2018-08-04T01:58:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T02:01:14Z iridioid joined #lisp 2018-08-04T02:03:13Z fikka joined #lisp 2018-08-04T02:07:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T02:09:50Z Kundry_Wag joined #lisp 2018-08-04T02:13:39Z fikka joined #lisp 2018-08-04T02:14:25Z robotoad quit (Quit: robotoad) 2018-08-04T02:16:12Z quipa_ joined #lisp 2018-08-04T02:18:21Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T02:19:35Z quipa quit (Ping timeout: 240 seconds) 2018-08-04T02:23:34Z fikka joined #lisp 2018-08-04T02:25:05Z robotoad joined #lisp 2018-08-04T02:28:35Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T02:29:30Z esrarkesh left #lisp 2018-08-04T02:30:57Z patlv_ quit (Ping timeout: 248 seconds) 2018-08-04T02:33:44Z fikka joined #lisp 2018-08-04T02:34:03Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-04T02:34:31Z fikka quit (Read error: Connection reset by peer) 2018-08-04T02:36:11Z Copenhagen_Bram joined #lisp 2018-08-04T02:43:34Z maximjaffe joined #lisp 2018-08-04T02:44:13Z fikka joined #lisp 2018-08-04T02:45:35Z quipa_ quit (Ping timeout: 240 seconds) 2018-08-04T02:48:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T02:50:57Z Kundry_Wag quit (Remote host closed the connection) 2018-08-04T02:51:05Z makomo quit (Ping timeout: 240 seconds) 2018-08-04T02:51:29Z Kundry_Wag joined #lisp 2018-08-04T02:53:41Z pierpa quit (Quit: Page closed) 2018-08-04T02:54:26Z fikka joined #lisp 2018-08-04T02:55:50Z pierpal joined #lisp 2018-08-04T02:56:14Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-04T02:59:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T03:04:00Z FreeBirdLjj joined #lisp 2018-08-04T03:04:34Z fikka joined #lisp 2018-08-04T03:08:17Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-04T03:09:39Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T03:13:03Z pierpal quit (Quit: Poof) 2018-08-04T03:13:23Z pierpal joined #lisp 2018-08-04T03:14:51Z fikka joined #lisp 2018-08-04T03:20:14Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T03:22:47Z MrSleepy quit (Remote host closed the connection) 2018-08-04T03:24:50Z fikka joined #lisp 2018-08-04T03:26:23Z Bike quit (Quit: Lost terminal) 2018-08-04T03:29:33Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T03:30:18Z asarch_ joined #lisp 2018-08-04T03:32:50Z asarch quit (Ping timeout: 276 seconds) 2018-08-04T03:45:30Z fikka joined #lisp 2018-08-04T03:47:22Z Oddity quit (Ping timeout: 268 seconds) 2018-08-04T03:50:13Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T03:53:20Z FreeBirdLjj joined #lisp 2018-08-04T03:53:25Z Oddity joined #lisp 2018-08-04T03:55:44Z fikka joined #lisp 2018-08-04T03:57:51Z maximjaffe quit (Ping timeout: 268 seconds) 2018-08-04T03:57:58Z FreeBirdLjj quit (Ping timeout: 264 seconds) 2018-08-04T04:00:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T04:06:01Z fikka joined #lisp 2018-08-04T04:08:15Z equwal: There is that one CL that has a special case-sensitive mode. Also you can modify the printer. The point is you shouldn't. 2018-08-04T04:09:47Z equwal: OOOooof that is five hours ago. 2018-08-04T04:10:53Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T04:13:47Z FreeBirdLjj joined #lisp 2018-08-04T04:16:01Z fikka joined #lisp 2018-08-04T04:18:07Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-04T04:19:29Z pierpal quit (Quit: Poof) 2018-08-04T04:19:50Z pierpal joined #lisp 2018-08-04T04:20:40Z patlv_ joined #lisp 2018-08-04T04:20:59Z pjb quit (Remote host closed the connection) 2018-08-04T04:21:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T04:22:33Z pjb joined #lisp 2018-08-04T04:26:10Z fikka joined #lisp 2018-08-04T04:28:39Z equwal quit (Remote host closed the connection) 2018-08-04T04:28:59Z equwal joined #lisp 2018-08-04T04:30:33Z equwal quit (Remote host closed the connection) 2018-08-04T04:30:54Z equwal joined #lisp 2018-08-04T04:30:57Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T04:33:58Z equwal quit (Remote host closed the connection) 2018-08-04T04:34:19Z equwal joined #lisp 2018-08-04T04:35:50Z equwal quit (Remote host closed the connection) 2018-08-04T04:36:12Z equwal joined #lisp 2018-08-04T04:36:16Z fikka joined #lisp 2018-08-04T04:37:14Z fikka quit (Read error: Connection reset by peer) 2018-08-04T04:41:53Z impulse quit (Ping timeout: 256 seconds) 2018-08-04T04:42:06Z nanthil___ joined #lisp 2018-08-04T04:42:11Z patlv_ quit (Read error: Connection reset by peer) 2018-08-04T04:42:12Z nanthil___: can someone join me in clschool? 2018-08-04T04:42:34Z patlv_ joined #lisp 2018-08-04T04:43:32Z marusich joined #lisp 2018-08-04T04:43:45Z gwood quit (Ping timeout: 248 seconds) 2018-08-04T04:45:16Z equwal quit (Remote host closed the connection) 2018-08-04T04:45:37Z equwal joined #lisp 2018-08-04T04:45:42Z marusich quit (Remote host closed the connection) 2018-08-04T04:46:01Z equwal quit (Remote host closed the connection) 2018-08-04T04:46:22Z equwal joined #lisp 2018-08-04T04:46:26Z orivej joined #lisp 2018-08-04T04:48:29Z impulse joined #lisp 2018-08-04T04:48:33Z nanthil___: thoughts on the book ansi common lisp? 2018-08-04T04:50:13Z equwal quit (Remote host closed the connection) 2018-08-04T04:50:48Z equwal joined #lisp 2018-08-04T04:50:59Z equwal left #lisp 2018-08-04T04:51:23Z equwal joined #lisp 2018-08-04T04:54:00Z equwal quit (Remote host closed the connection) 2018-08-04T04:54:23Z equwal joined #lisp 2018-08-04T04:55:08Z equwal quit (Remote host closed the connection) 2018-08-04T04:55:28Z equwal joined #lisp 2018-08-04T04:57:01Z fikka joined #lisp 2018-08-04T04:58:57Z patlv_ quit (Ping timeout: 240 seconds) 2018-08-04T04:59:06Z SaganMan is now known as pornography 2018-08-04T04:59:18Z pornography is now known as SaganMan 2018-08-04T05:00:21Z SaganMan is now known as death 2018-08-04T05:00:51Z death is now known as SaganMan 2018-08-04T05:01:31Z nanthil___: anyone paying attention in here? 2018-08-04T05:01:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T05:01:48Z v0|d joined #lisp 2018-08-04T05:02:58Z marusich joined #lisp 2018-08-04T05:04:34Z equwal quit (Remote host closed the connection) 2018-08-04T05:04:52Z equwal joined #lisp 2018-08-04T05:04:53Z SaganMan: sorry for nick changes 2018-08-04T05:06:18Z lavaflow quit (Ping timeout: 268 seconds) 2018-08-04T05:07:18Z fikka joined #lisp 2018-08-04T05:09:54Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T05:10:31Z FreeBirdLjj joined #lisp 2018-08-04T05:12:22Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T05:12:25Z lavaflow joined #lisp 2018-08-04T05:15:13Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-04T05:17:48Z fikka joined #lisp 2018-08-04T05:17:52Z meepdeew quit (Remote host closed the connection) 2018-08-04T05:17:53Z beach joined #lisp 2018-08-04T05:18:44Z beach: Good morning everyone! 2018-08-04T05:22:20Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T05:23:35Z v0|d quit (Ping timeout: 240 seconds) 2018-08-04T05:27:26Z fikka joined #lisp 2018-08-04T05:29:05Z asarch_ quit (Ping timeout: 240 seconds) 2018-08-04T05:29:11Z vtomole joined #lisp 2018-08-04T05:30:25Z no-defun-allowed: hi beach 2018-08-04T05:30:45Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T05:32:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T05:34:14Z zigpaw: morning :) 2018-08-04T05:35:39Z vtomole quit (Ping timeout: 252 seconds) 2018-08-04T05:35:45Z fiddlerwoaroof joined #lisp 2018-08-04T05:37:34Z fikka joined #lisp 2018-08-04T05:38:25Z fikka quit (Read error: Connection reset by peer) 2018-08-04T05:42:53Z phoe: heyy 2018-08-04T05:42:54Z minion: phoe, memo from pierpa: ah! never heard of this one 2018-08-04T05:43:17Z beach: Hi phoe. 2018-08-04T05:51:43Z LdBeth: Good morning 2018-08-04T05:55:01Z orivej quit (Ping timeout: 268 seconds) 2018-08-04T05:58:16Z fikka joined #lisp 2018-08-04T06:03:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T06:06:04Z pjb quit (Ping timeout: 256 seconds) 2018-08-04T06:08:40Z fikka joined #lisp 2018-08-04T06:13:31Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T06:14:09Z nanthil___ quit (Ping timeout: 252 seconds) 2018-08-04T06:16:33Z equwal quit (Remote host closed the connection) 2018-08-04T06:16:50Z equwal joined #lisp 2018-08-04T06:19:29Z igemnace joined #lisp 2018-08-04T06:19:46Z equwal quit (Remote host closed the connection) 2018-08-04T06:20:02Z equwal joined #lisp 2018-08-04T06:20:20Z equwal quit (Remote host closed the connection) 2018-08-04T06:21:15Z equwal joined #lisp 2018-08-04T06:23:13Z equwal quit (Remote host closed the connection) 2018-08-04T06:23:33Z equwal joined #lisp 2018-08-04T06:24:29Z iridioid quit (Ping timeout: 260 seconds) 2018-08-04T06:26:35Z pierpal quit (Quit: Poof) 2018-08-04T06:26:55Z pierpal joined #lisp 2018-08-04T06:28:43Z fikka joined #lisp 2018-08-04T06:29:20Z FreeBirdLjj joined #lisp 2018-08-04T06:29:21Z Fare quit (Ping timeout: 248 seconds) 2018-08-04T06:33:37Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T06:34:00Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-04T06:34:46Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-04T06:35:05Z igemnace quit (Quit: WeeChat 2.2) 2018-08-04T06:38:08Z Copenhagen_Bram joined #lisp 2018-08-04T06:38:51Z fikka joined #lisp 2018-08-04T06:39:44Z fikka quit (Read error: Connection reset by peer) 2018-08-04T06:42:15Z rozenglass quit (Remote host closed the connection) 2018-08-04T06:48:47Z Lycurgus joined #lisp 2018-08-04T06:49:17Z nika joined #lisp 2018-08-04T06:49:24Z fikka joined #lisp 2018-08-04T06:54:49Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T06:57:39Z vlatkoB joined #lisp 2018-08-04T06:59:33Z fikka joined #lisp 2018-08-04T07:04:33Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T07:06:36Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-04T07:08:25Z khrbt quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-08-04T07:09:41Z fikka joined #lisp 2018-08-04T07:14:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T07:20:06Z fikka joined #lisp 2018-08-04T07:24:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T07:26:15Z robotoad quit (Quit: robotoad) 2018-08-04T07:30:15Z fikka joined #lisp 2018-08-04T07:30:36Z phoe: Hey beach 2018-08-04T07:30:48Z beach: phoe: What's up? 2018-08-04T07:32:21Z phoe: beach: laundry and such. I'm also thinking about how to implement my new Lisp library. 2018-08-04T07:32:31Z phoe: The one with Petri nets. 2018-08-04T07:32:36Z beach: Ah, OK. 2018-08-04T07:33:33Z phoe: And also cleaning up my hard drives. 2018-08-04T07:33:37Z phoe: This ain't a lazy Saturday. (: 2018-08-04T07:33:47Z beach: I understand. 2018-08-04T07:34:46Z phoe: Brb now - it's laundry time. 2018-08-04T07:35:04Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T07:40:25Z fikka joined #lisp 2018-08-04T07:40:32Z zxcvz joined #lisp 2018-08-04T07:41:01Z fikka quit (Read error: Connection reset by peer) 2018-08-04T07:42:41Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-04T07:43:14Z eschatologist quit (Ping timeout: 244 seconds) 2018-08-04T07:43:45Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-04T07:47:28Z pierpal quit (Quit: Poof) 2018-08-04T07:47:47Z pierpal joined #lisp 2018-08-04T07:48:23Z eschatologist joined #lisp 2018-08-04T07:50:44Z fikka joined #lisp 2018-08-04T07:52:12Z Lycurgus quit (Quit: Exeunt) 2018-08-04T07:55:43Z trittweiler joined #lisp 2018-08-04T07:55:53Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T08:00:22Z p_l: ... lazy saturday? what's that? :D 2018-08-04T08:00:55Z fikka joined #lisp 2018-08-04T08:05:59Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T08:07:39Z phoe: a mythical creature originating from ancient Southern Europe 2018-08-04T08:09:59Z iridioid joined #lisp 2018-08-04T08:11:11Z fikka joined #lisp 2018-08-04T08:13:45Z mkolenda quit (Remote host closed the connection) 2018-08-04T08:16:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T08:17:30Z FreeBirdLjj joined #lisp 2018-08-04T08:17:55Z mkolenda joined #lisp 2018-08-04T08:20:24Z pjb joined #lisp 2018-08-04T08:21:10Z fikka joined #lisp 2018-08-04T08:22:05Z nirved joined #lisp 2018-08-04T08:24:22Z iridioid quit (Ping timeout: 264 seconds) 2018-08-04T08:26:10Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T08:32:46Z equwal quit (Ping timeout: 264 seconds) 2018-08-04T08:37:05Z fikka joined #lisp 2018-08-04T08:51:29Z SaganMan quit (Ping timeout: 260 seconds) 2018-08-04T08:55:39Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-04T08:56:26Z rozenglass joined #lisp 2018-08-04T08:59:39Z nowhere_man joined #lisp 2018-08-04T09:04:02Z varjag joined #lisp 2018-08-04T09:04:07Z SaganMan joined #lisp 2018-08-04T09:08:44Z shka_ joined #lisp 2018-08-04T09:10:57Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-04T09:23:54Z shka_: good day 2018-08-04T09:27:57Z beach: Hello shka_. 2018-08-04T09:30:00Z no-defun-allowed: hi beach and shka_ 2018-08-04T09:32:39Z Inline quit (Quit: Leaving) 2018-08-04T09:32:58Z carmack quit (Remote host closed the connection) 2018-08-04T09:33:13Z mgsk joined #lisp 2018-08-04T09:34:45Z Inline joined #lisp 2018-08-04T09:35:20Z mgsk: I have something like (let ((info 0)) (mutates-input info) (if (> info 0) 'a 'b)) and SBCL warns that it is deleting the unreachable 'a. I think this is because it sees (info 0) and doesn't expect it to be mutated? Any idea how I can stop that warning 2018-08-04T09:35:45Z mgsk: Stop/fix 2018-08-04T09:35:47Z shka_: mgsk: numbers are unmutable 2018-08-04T09:35:56Z beach: mgsk: What does mutates-input do? 2018-08-04T09:35:58Z shka_: the thing you are doing won't wonrk 2018-08-04T09:35:58Z Shinmera: Assuming mutates-input is a function, a function cannot change bindings. 2018-08-04T09:37:40Z no-defun-allowed: yeah, numbers are by reference so you can't set a new value for info 2018-08-04T09:37:57Z shka_: no-defun-allowed: that… makes no sense 2018-08-04T09:38:08Z no-defun-allowed: lol, by reference 2018-08-04T09:38:08Z Shinmera: No, all function arguments are pass by value. 2018-08-04T09:38:12Z no-defun-allowed: *not by reference 2018-08-04T09:38:40Z no-defun-allowed: i can and have changed struct values so there's some pointers involved somewhere 2018-08-04T09:38:56Z shka_: anyway, you can't mutate numbers 2018-08-04T09:39:17Z no-defun-allowed: numbers don't have pointers. you can mutate sequences, structs and objects cause those do somewhere. 2018-08-04T09:39:34Z shka_: what the heck is pointer in lisp? 2018-08-04T09:39:35Z no-defun-allowed: odds are you're just setting the value passed to the function which does nothing outside the function 2018-08-04T09:39:39Z Shinmera: pointers are orthogonal to mutation 2018-08-04T09:39:57Z Shinmera: and you can have pointers to numbers. 2018-08-04T09:40:17Z Shinmera: for instance, bignums are most definitely not immediate. 2018-08-04T09:40:35Z no-defun-allowed: you don't get pointers in lisp without a reason, and it's very clear why. 2018-08-04T09:40:48Z no-defun-allowed: bignums do cons and are of arbitrary length so they need pointers 2018-08-04T09:41:27Z trittweiler: mgsk, you have got two options: either pass a setter, like so (lambda (new) (setq info new)) to your function, or you need to "box" your value, for example by putting it into a list, a vector, or a structure: (let ((info (vector 0))) (mutate-it info) ...)) and mutate-it would use (setf (elt arg 0) 42) 2018-08-04T09:41:52Z void_pointer joined #lisp 2018-08-04T09:41:57Z mgsk: That all makes sense. Thanks 2018-08-04T09:41:57Z Shinmera: trittweiler: third option is a macro. fourth option is to return a new value. 2018-08-04T09:42:04Z beach: trittweiler: Thirds option, make it a macro. 2018-08-04T09:42:16Z trittweiler: yeah 2018-08-04T09:42:32Z beach: mgsk: Do you know any other programming languages? 2018-08-04T09:42:35Z trittweiler: returning a new value is what I would prefer :) 2018-08-04T09:42:45Z trittweiler: returning a new value + rebinding 2018-08-04T09:43:39Z mgsk: Yes. My misunderstanding came from this being an FFI to LAPACK, and LAPACK likes to mutate its inputs, and I confused myself thinking info was a pointer. 2018-08-04T09:43:49Z mgsk dumb 2018-08-04T09:45:27Z ebzzry quit (Ping timeout: 240 seconds) 2018-08-04T09:45:31Z trittweiler: another option is to use CALLF at https://common-lisp.net/~trittweiler/darcs/alexandria/modify-macros.lisp (I don't think this ever made it into the official alexandria repository) 2018-08-04T10:03:12Z random-nick joined #lisp 2018-08-04T10:07:21Z Shinmera: Hmm. Is there a good reason why c2mop doesn't seem to have method-qualifiers? 2018-08-04T10:07:44Z beach: mop method-qualifiers 2018-08-04T10:07:44Z specbot: http://metamodular.com/CLOS-MOP/method-qualifiers.html 2018-08-04T10:07:52Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-04T10:08:20Z beach: clhs method-qualifiers 2018-08-04T10:08:20Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_method.htm 2018-08-04T10:08:23Z beach: That's why. 2018-08-04T10:08:27Z Shinmera: O- whoops. 2018-08-04T10:08:30Z Shinmera: Thanks! 2018-08-04T10:08:47Z beach: Sure. 2018-08-04T10:10:55Z FreeBirdLjj joined #lisp 2018-08-04T10:24:30Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-08-04T10:27:58Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T10:30:55Z drewes joined #lisp 2018-08-04T10:39:53Z fikka joined #lisp 2018-08-04T10:42:21Z renzhi quit (Ping timeout: 264 seconds) 2018-08-04T10:44:01Z orivej joined #lisp 2018-08-04T10:47:22Z phoe: stylewarning: beep boop 2018-08-04T10:55:09Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T10:55:27Z beach: Isn't he in California? If so, it might be a bit early for him. 2018-08-04T10:58:00Z phoe: I think he is, yes 2018-08-04T10:58:08Z makomo joined #lisp 2018-08-04T10:58:10Z phoe: I've been trying to poke him since yesterday. 2018-08-04T10:59:18Z maximjaffe joined #lisp 2018-08-04T11:00:37Z fikka joined #lisp 2018-08-04T11:04:41Z skapata quit (Remote host closed the connection) 2018-08-04T11:08:12Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T11:12:46Z drewes joined #lisp 2018-08-04T11:13:56Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-04T11:17:24Z kajo quit (Ping timeout: 265 seconds) 2018-08-04T11:18:30Z Xach: so early 2018-08-04T11:24:02Z Zaphiel joined #lisp 2018-08-04T11:25:26Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T11:28:31Z orivej quit (Ping timeout: 265 seconds) 2018-08-04T11:30:17Z fiddlerwoaroof joined #lisp 2018-08-04T11:31:06Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T11:32:06Z shka_ quit (Quit: Konversation terminated!) 2018-08-04T11:32:26Z fiddlerwoaroof joined #lisp 2018-08-04T11:33:16Z FreeBirdLjj joined #lisp 2018-08-04T11:33:27Z fiddlerwoaroof quit (Excess Flood) 2018-08-04T11:34:50Z fiddlerwoaroof joined #lisp 2018-08-04T11:34:55Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-04T11:35:35Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T11:35:57Z fiddlerwoaroof joined #lisp 2018-08-04T11:37:10Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T11:37:20Z Copenhagen_Bram joined #lisp 2018-08-04T11:38:09Z Kevslinger joined #lisp 2018-08-04T11:38:38Z fiddlerwoaroof joined #lisp 2018-08-04T11:38:41Z fiddlerwoaroof quit (Read error: Connection reset by peer) 2018-08-04T11:41:08Z on_ion joined #lisp 2018-08-04T11:44:09Z Zaphiel quit (Ping timeout: 252 seconds) 2018-08-04T11:50:30Z JuanDaugherty joined #lisp 2018-08-04T12:00:20Z rpg joined #lisp 2018-08-04T12:02:37Z Inline quit (Quit: Leaving) 2018-08-04T12:02:41Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T12:06:57Z on_ion quit (Ping timeout: 240 seconds) 2018-08-04T12:08:07Z Inline joined #lisp 2018-08-04T12:14:32Z JuanDaugherty quit (Quit: Exeunt) 2018-08-04T12:17:28Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T12:18:41Z fikka joined #lisp 2018-08-04T12:21:55Z root_____ joined #lisp 2018-08-04T12:23:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T12:29:00Z fikka joined #lisp 2018-08-04T12:33:00Z drewes joined #lisp 2018-08-04T12:33:57Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T12:35:46Z drewes quit (Client Quit) 2018-08-04T12:39:01Z fikka joined #lisp 2018-08-04T12:40:37Z shka_ joined #lisp 2018-08-04T12:40:40Z shka_: i have a question 2018-08-04T12:40:49Z shka_: is is always possible to set position in the file? 2018-08-04T12:41:25Z shka_: http://clhs.lisp.se/Body/f_file_p.htm 2018-08-04T12:41:43Z shka_: besides passing file size 2018-08-04T12:41:45Z shka_: obviously 2018-08-04T12:44:29Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T12:46:09Z phoe: shka_: shouldn't be 2018-08-04T12:46:14Z phoe: some streams aren't backed by files 2018-08-04T12:47:17Z phoe: but then, huh, the spec says it may be *any* stream 2018-08-04T12:48:07Z shka_: weird, i know 2018-08-04T12:48:26Z shka_: but for now i am thinking just about files 2018-08-04T12:48:27Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-04T12:48:58Z phoe: ` If position-spec is supplied, but is too large or otherwise inappropriate, an error is signaled. ` 2018-08-04T12:49:04Z phoe: so, not always 2018-08-04T12:49:08Z fikka joined #lisp 2018-08-04T12:49:16Z shka_: phoe: that's obvious case 2018-08-04T12:49:41Z shka_: i am looking for situation that are not such clearly specified 2018-08-04T12:50:06Z X-Scale joined #lisp 2018-08-04T12:50:29Z shka_: well, ok, it is just for docs anyway 2018-08-04T12:53:02Z edgar-rft: less clearly specified than "otherwise inappropriate" what means "any reason whatever"? 2018-08-04T12:54:16Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T12:54:38Z shka_ quit (Remote host closed the connection) 2018-08-04T12:55:59Z shka_ joined #lisp 2018-08-04T12:59:32Z Bike joined #lisp 2018-08-04T13:01:27Z fikka joined #lisp 2018-08-04T13:03:26Z patlv_ joined #lisp 2018-08-04T13:17:35Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-04T13:24:39Z igemnace joined #lisp 2018-08-04T13:25:07Z reverse_light quit (Read error: Connection reset by peer) 2018-08-04T13:25:28Z maximjaffe quit (Quit: Leaving) 2018-08-04T13:25:40Z Fare joined #lisp 2018-08-04T13:25:51Z quipa joined #lisp 2018-08-04T13:37:14Z Copenhagen_Bram joined #lisp 2018-08-04T13:38:10Z varjag joined #lisp 2018-08-04T13:38:20Z pierpal quit (Quit: Poof) 2018-08-04T13:39:59Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T13:40:44Z pierpal joined #lisp 2018-08-04T13:40:51Z pierpal quit (Client Quit) 2018-08-04T13:41:46Z rozenglass quit (Ping timeout: 264 seconds) 2018-08-04T13:42:49Z pierpal joined #lisp 2018-08-04T13:43:20Z patlv_ quit (Quit: Leaving) 2018-08-04T13:45:45Z root_____ quit (Quit: Lost terminal) 2018-08-04T13:52:44Z gravicappa joined #lisp 2018-08-04T13:56:04Z fikka joined #lisp 2018-08-04T13:58:21Z kamog joined #lisp 2018-08-04T14:01:14Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T14:06:22Z fikka joined #lisp 2018-08-04T14:11:26Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T14:13:13Z loli quit (Quit: WeeChat 2.2) 2018-08-04T14:16:19Z fikka joined #lisp 2018-08-04T14:17:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-04T14:21:39Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T14:22:46Z Copenhagen_Bram quit (Remote host closed the connection) 2018-08-04T14:24:50Z Copenhagen_Bram joined #lisp 2018-08-04T14:26:42Z fikka joined #lisp 2018-08-04T14:31:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T14:36:38Z fikka joined #lisp 2018-08-04T14:37:29Z fikka quit (Read error: Connection reset by peer) 2018-08-04T14:41:58Z Fare joined #lisp 2018-08-04T14:46:49Z alms_clozure quit 2018-08-04T14:47:12Z fikka joined #lisp 2018-08-04T14:51:49Z nanthil__ joined #lisp 2018-08-04T14:52:04Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T14:57:21Z fikka joined #lisp 2018-08-04T15:05:43Z Kundry_Wag joined #lisp 2018-08-04T15:05:56Z vtomole joined #lisp 2018-08-04T15:08:42Z cage_ joined #lisp 2018-08-04T15:11:27Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-04T15:18:06Z fikka quit (Ping timeout: 265 seconds) 2018-08-04T15:18:29Z iridioid joined #lisp 2018-08-04T15:19:21Z NoNumber joined #lisp 2018-08-04T15:23:01Z fikka joined #lisp 2018-08-04T15:23:11Z FreeBirdLjj joined #lisp 2018-08-04T15:25:35Z pierpal quit (Quit: Poof) 2018-08-04T15:25:48Z Kundry_Wag quit (Remote host closed the connection) 2018-08-04T15:25:55Z pierpal joined #lisp 2018-08-04T15:26:21Z Kundry_Wag joined #lisp 2018-08-04T15:26:41Z zaquest quit (Quit: Leaving) 2018-08-04T15:27:01Z drewes joined #lisp 2018-08-04T15:27:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T15:29:27Z makomo quit (Ping timeout: 240 seconds) 2018-08-04T15:30:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-04T15:31:33Z makomo joined #lisp 2018-08-04T15:32:53Z iridioid quit (Ping timeout: 244 seconds) 2018-08-04T15:33:29Z fikka joined #lisp 2018-08-04T15:34:17Z biopandemic joined #lisp 2018-08-04T15:38:09Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T15:40:49Z light2yellow joined #lisp 2018-08-04T15:41:36Z fikka joined #lisp 2018-08-04T15:42:56Z cage_ quit (Remote host closed the connection) 2018-08-04T15:45:37Z Khisanth quit (Ping timeout: 248 seconds) 2018-08-04T15:46:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T15:48:57Z iridioid joined #lisp 2018-08-04T15:51:58Z fikka joined #lisp 2018-08-04T15:52:33Z varjag quit (Ping timeout: 248 seconds) 2018-08-04T15:53:26Z lequestion joined #lisp 2018-08-04T15:56:06Z meepdeew joined #lisp 2018-08-04T15:56:22Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T15:56:46Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T15:58:27Z Khisanth joined #lisp 2018-08-04T16:00:58Z drewes joined #lisp 2018-08-04T16:01:38Z lequestion: would this program (written in scheme) never finish running if it used normal-order evaluation? https://pastebin.com/FkqPeVbf 2018-08-04T16:02:18Z Shinmera: Try #scheme, this channel is for Common Lisp. 2018-08-04T16:02:49Z Bike: i don't remember how normal evaluation interacts with conditionals. 2018-08-04T16:02:51Z lequestion: Shinmera, already did, just want to increase the chances of someone answering. Thank you 2018-08-04T16:03:21Z Shinmera: lequestion: It's off-topic here is my point. 2018-08-04T16:03:49Z lequestion: Shinmera, I apologize 2018-08-04T16:04:19Z random-nick: it would finish doing since all it does is define two functions 2018-08-04T16:04:24Z random-nick: s/doing/running/ 2018-08-04T16:04:49Z Bike: psh. 2018-08-04T16:06:27Z Kundry_Wag joined #lisp 2018-08-04T16:11:05Z iridioid quit (Ping timeout: 240 seconds) 2018-08-04T16:12:02Z fikka joined #lisp 2018-08-04T16:12:16Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T16:14:12Z vtomole quit (Ping timeout: 252 seconds) 2018-08-04T16:15:38Z iridioid joined #lisp 2018-08-04T16:17:14Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T16:20:13Z v0|d joined #lisp 2018-08-04T16:23:43Z cage_ joined #lisp 2018-08-04T16:24:41Z drewes joined #lisp 2018-08-04T16:31:54Z lequestion left #lisp 2018-08-04T16:32:42Z fikka joined #lisp 2018-08-04T16:38:12Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T16:40:43Z cage_ quit (Read error: Connection reset by peer) 2018-08-04T16:41:05Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-04T16:41:09Z NoNumber quit (Remote host closed the connection) 2018-08-04T16:42:44Z sabrac joined #lisp 2018-08-04T16:44:03Z rozenglass joined #lisp 2018-08-04T16:44:36Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-04T16:52:30Z vtomole joined #lisp 2018-08-04T16:53:05Z fikka joined #lisp 2018-08-04T16:54:08Z test1600 joined #lisp 2018-08-04T16:54:37Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-04T16:58:33Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T16:58:57Z iridioid quit (Ping timeout: 240 seconds) 2018-08-04T16:59:20Z cage_ joined #lisp 2018-08-04T17:01:10Z Kundry_Wag joined #lisp 2018-08-04T17:03:08Z fikka joined #lisp 2018-08-04T17:03:28Z robotoad joined #lisp 2018-08-04T17:06:18Z TechnoTony joined #lisp 2018-08-04T17:08:17Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T17:09:56Z cage_ quit (Quit: Leaving) 2018-08-04T17:15:31Z phoe quit (Quit: leaving) 2018-08-04T17:15:39Z TechnoTony quit (Quit: Leaving) 2018-08-04T17:16:54Z vtomole quit (Ping timeout: 252 seconds) 2018-08-04T17:19:48Z phoe joined #lisp 2018-08-04T17:21:10Z Lord_of_Life quit (Excess Flood) 2018-08-04T17:21:10Z kammd[m] quit (Ping timeout: 240 seconds) 2018-08-04T17:21:51Z emaczen quit (Ping timeout: 240 seconds) 2018-08-04T17:23:31Z fikka joined #lisp 2018-08-04T17:24:19Z fikka quit (Read error: Connection reset by peer) 2018-08-04T17:25:40Z detergnet joined #lisp 2018-08-04T17:25:42Z nanthil__ quit (Ping timeout: 252 seconds) 2018-08-04T17:25:43Z azrazalea_ joined #lisp 2018-08-04T17:26:25Z drdo_ joined #lisp 2018-08-04T17:28:09Z tazjin_ joined #lisp 2018-08-04T17:28:23Z msb quit (Ping timeout: 256 seconds) 2018-08-04T17:28:23Z azrazalea quit (Ping timeout: 256 seconds) 2018-08-04T17:28:23Z beach quit (Read error: Connection reset by peer) 2018-08-04T17:28:23Z lbeckman314[m] quit (Ping timeout: 256 seconds) 2018-08-04T17:28:23Z svillemot quit (Ping timeout: 256 seconds) 2018-08-04T17:28:23Z Cal[m] quit (Ping timeout: 256 seconds) 2018-08-04T17:28:23Z drdo quit (Ping timeout: 256 seconds) 2018-08-04T17:28:24Z tazjin quit (Ping timeout: 256 seconds) 2018-08-04T17:28:24Z equalunique[m] quit (Ping timeout: 256 seconds) 2018-08-04T17:28:24Z nowhere_man quit (Remote host closed the connection) 2018-08-04T17:28:25Z drdo_ is now known as drdo 2018-08-04T17:28:25Z tazjin_ is now known as tazjin 2018-08-04T17:29:13Z svillemot joined #lisp 2018-08-04T17:29:18Z nowhere_man joined #lisp 2018-08-04T17:30:57Z vibs29 quit (Ping timeout: 269 seconds) 2018-08-04T17:31:30Z vibs29 joined #lisp 2018-08-04T17:36:36Z lnostdal_ joined #lisp 2018-08-04T17:37:48Z easye quit (Ping timeout: 256 seconds) 2018-08-04T17:37:48Z cpape quit (Ping timeout: 256 seconds) 2018-08-04T17:37:48Z lnostdal quit (Ping timeout: 256 seconds) 2018-08-04T17:37:49Z White_Flame quit (Ping timeout: 256 seconds) 2018-08-04T17:39:06Z broccolistem quit (Ping timeout: 256 seconds) 2018-08-04T17:39:06Z EuAndreh[m] quit (Ping timeout: 256 seconds) 2018-08-04T17:39:23Z pjb quit (Read error: Connection reset by peer) 2018-08-04T17:39:49Z broccolistem joined #lisp 2018-08-04T17:40:29Z pjb joined #lisp 2018-08-04T17:41:55Z gendl: What is up with all the messages from this “Australian hacker” ? Are other people getting those? 2018-08-04T17:42:11Z gendl: My phone keeps buzzing. 2018-08-04T17:42:32Z White_Flame joined #lisp 2018-08-04T17:42:37Z aeth: IRC channels which have not taken measure to stop spam are getting spammed. 2018-08-04T17:42:49Z gendl: Maybe not in this channel but all over IRC apparently. 2018-08-04T17:43:13Z aeth: A couple of days ago, it was in more than half of my channels. Now it's just one. 2018-08-04T17:43:23Z adlai: spam ain't free when it costs identity. 2018-08-04T17:43:36Z zymurgy quit (Ping timeout: 256 seconds) 2018-08-04T17:43:36Z nowhere_man quit (Remote host closed the connection) 2018-08-04T17:43:59Z nowhere_man joined #lisp 2018-08-04T17:44:11Z fikka joined #lisp 2018-08-04T17:44:22Z nika quit (Quit: Leaving...) 2018-08-04T17:45:27Z zymurgy joined #lisp 2018-08-04T17:45:32Z iridioid joined #lisp 2018-08-04T17:47:04Z beach joined #lisp 2018-08-04T17:47:09Z phoe: gendl: freenode's been under a spam attack for a few days now. 2018-08-04T17:49:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T17:53:45Z rozenglass quit (Remote host closed the connection) 2018-08-04T17:54:29Z fikka joined #lisp 2018-08-04T17:58:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T17:59:06Z josemanuel joined #lisp 2018-08-04T18:02:12Z nanoz joined #lisp 2018-08-04T18:04:27Z gravicappa quit (Ping timeout: 240 seconds) 2018-08-04T18:04:40Z fikka joined #lisp 2018-08-04T18:06:18Z loli joined #lisp 2018-08-04T18:09:42Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T18:10:57Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-04T18:13:07Z varjag joined #lisp 2018-08-04T18:14:34Z fikka joined #lisp 2018-08-04T18:19:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T18:19:35Z iridioid quit (Ping timeout: 240 seconds) 2018-08-04T18:24:02Z pierpal quit (Quit: Poof) 2018-08-04T18:24:22Z pierpal joined #lisp 2018-08-04T18:24:59Z fikka joined #lisp 2018-08-04T18:25:36Z fikka quit (Read error: Connection reset by peer) 2018-08-04T18:27:47Z eminhi joined #lisp 2018-08-04T18:33:33Z DGASAU quit (Read error: Connection reset by peer) 2018-08-04T18:35:16Z fikka joined #lisp 2018-08-04T18:35:43Z Khisanth joined #lisp 2018-08-04T18:38:05Z n3t joined #lisp 2018-08-04T18:38:36Z rozenglass joined #lisp 2018-08-04T18:49:56Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-04T18:52:10Z Lycurgus joined #lisp 2018-08-04T18:54:50Z igemnace quit (Quit: WeeChat 2.2) 2018-08-04T18:58:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T19:08:35Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-04T19:09:00Z Khisanth joined #lisp 2018-08-04T19:09:46Z nirved quit (Quit: Leaving) 2018-08-04T19:10:58Z Kundry_Wag quit (Remote host closed the connection) 2018-08-04T19:13:25Z Jesin quit (Remote host closed the connection) 2018-08-04T19:14:54Z fikka joined #lisp 2018-08-04T19:15:40Z Kundry_Wag joined #lisp 2018-08-04T19:20:40Z rozenglass quit (Remote host closed the connection) 2018-08-04T19:24:55Z gendl: phoe: well I hope my $5/month helps them to sort it out (I guess my $5 goes to IRC Cloud through, not Freenode)... 2018-08-04T19:26:14Z gendl: Ok Google just released a [kick-ass looking rendering engine](https://github.com/google/filament) 2018-08-04T19:26:45Z gendl: First one to make a CL interface to it gets a Gendl AGPL exception. 2018-08-04T19:26:46Z test1600 quit (Ping timeout: 264 seconds) 2018-08-04T19:27:56Z gendl: (talk to me first to work out details of course, if anyone takes this seriously) 2018-08-04T19:29:00Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T19:31:23Z rozenglass joined #lisp 2018-08-04T19:32:01Z vlatkoB quit (Remote host closed the connection) 2018-08-04T19:32:48Z orivej joined #lisp 2018-08-04T19:32:57Z eminhi quit (Quit: leaving) 2018-08-04T19:33:29Z vlatkoB joined #lisp 2018-08-04T19:33:35Z nanoz quit (Ping timeout: 240 seconds) 2018-08-04T19:34:30Z fikka joined #lisp 2018-08-04T19:38:25Z Shinmera: They're also spamming people directly through privmsgs now, so set +R on yourself if that happens. 2018-08-04T19:39:48Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T19:44:40Z fikka joined #lisp 2018-08-04T19:44:41Z gendl: Shinmera: Yes it's happening to me. So I shouldn't take it personally? Anyway you read my mind, I was just going to ask how to prevent that. 2018-08-04T19:45:57Z Shinmera: Yes, just /mode gendl +R should do the trick for now. 2018-08-04T19:46:29Z gendl: Done, thanks. 2018-08-04T19:47:38Z pjb: what does +R do? 2018-08-04T19:47:56Z Shinmera: Only allows people who are identified with NickServ (+i) to privmsg you 2018-08-04T19:50:10Z fikka quit (Ping timeout: 264 seconds) 2018-08-04T19:51:05Z gendl: How can I confirm that I myself am identified with NickServ? 2018-08-04T19:51:43Z phoe: gendl: /msg nickserv info 2018-08-04T19:51:47Z Shinmera: Type /mode, it'll show +i if you are identified. 2018-08-04T19:51:51Z Shinmera: Or that 2018-08-04T19:52:06Z tsandstr joined #lisp 2018-08-04T19:53:46Z Bike: also, you're in this +r channel 2018-08-04T20:05:00Z fikka joined #lisp 2018-08-04T20:08:05Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-04T20:09:50Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T20:15:06Z fikka joined #lisp 2018-08-04T20:20:12Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T20:20:27Z Fare quit (Ping timeout: 240 seconds) 2018-08-04T20:27:39Z kajo joined #lisp 2018-08-04T20:28:47Z Fare joined #lisp 2018-08-04T20:34:37Z kamog quit (Remote host closed the connection) 2018-08-04T20:34:37Z Fare quit (Ping timeout: 244 seconds) 2018-08-04T20:35:50Z fikka joined #lisp 2018-08-04T20:41:00Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T20:46:00Z fikka joined #lisp 2018-08-04T20:47:05Z shka_ quit (Ping timeout: 240 seconds) 2018-08-04T20:51:12Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T20:56:07Z fikka joined #lisp 2018-08-04T20:59:42Z pierpal quit (Ping timeout: 256 seconds) 2018-08-04T21:00:58Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T21:02:15Z vlatkoB quit (Remote host closed the connection) 2018-08-04T21:06:16Z fikka joined #lisp 2018-08-04T21:11:09Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T21:16:38Z fikka joined #lisp 2018-08-04T21:21:52Z fikka quit (Ping timeout: 268 seconds) 2018-08-04T21:26:32Z fikka joined #lisp 2018-08-04T21:31:45Z fikka quit (Ping timeout: 248 seconds) 2018-08-04T21:33:39Z Lycurgus quit (Quit: Exeunt) 2018-08-04T21:36:48Z MetaYan joined #lisp 2018-08-04T21:37:05Z fikka joined #lisp 2018-08-04T21:41:26Z scymtym quit (Read error: Connection reset by peer) 2018-08-04T21:42:12Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T21:44:56Z josemanuel quit (Quit: leaving) 2018-08-04T21:46:34Z kajo quit (Remote host closed the connection) 2018-08-04T21:47:15Z fikka joined #lisp 2018-08-04T21:47:22Z kajo joined #lisp 2018-08-04T21:51:28Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-04T21:52:01Z Kundry_Wag joined #lisp 2018-08-04T21:52:24Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T21:56:39Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-04T21:56:49Z rozenglass quit (Ping timeout: 248 seconds) 2018-08-04T21:57:25Z fikka joined #lisp 2018-08-04T22:02:36Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T22:07:45Z fikka joined #lisp 2018-08-04T22:11:32Z Copenhagen_Bram joined #lisp 2018-08-04T22:15:34Z rozenglass joined #lisp 2018-08-04T22:34:50Z makomo: hello \o 2018-08-04T22:38:36Z kini quit (Quit: bye) 2018-08-04T22:39:48Z scymtym joined #lisp 2018-08-04T22:45:41Z LdBeth: Morning 2018-08-04T22:46:20Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-04T22:48:07Z Fare joined #lisp 2018-08-04T22:48:18Z pierpa joined #lisp 2018-08-04T22:49:42Z JuanDaugherty joined #lisp 2018-08-04T22:50:46Z orivej quit (Ping timeout: 256 seconds) 2018-08-04T22:52:40Z marusich quit (Quit: Leaving) 2018-08-04T23:02:21Z lnostdal__ joined #lisp 2018-08-04T23:02:25Z lnostdal_ quit (Read error: Connection reset by peer) 2018-08-04T23:02:35Z random-nick quit (Ping timeout: 240 seconds) 2018-08-04T23:15:05Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-04T23:15:42Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T23:21:45Z lnostdal__ quit (Read error: Connection reset by peer) 2018-08-04T23:21:56Z fikka joined #lisp 2018-08-04T23:21:57Z lnostdal__ joined #lisp 2018-08-04T23:24:27Z varjag quit (Ping timeout: 240 seconds) 2018-08-04T23:25:37Z makomo: i have a question regarding the hardware simulation thingy that i mentioned before (but no recollection is required :-)) 2018-08-04T23:26:28Z makomo: processes within components (blocks of instructions that describe how the component behaves; the processes themselves are run concurrently with other processes within the component) are just lisp code 2018-08-04T23:26:29Z fikka quit (Ping timeout: 260 seconds) 2018-08-04T23:26:45Z makomo: certain special functions will be defined by the system that are to be used for synchronization, etc. 2018-08-04T23:27:10Z makomo: if i want to ensure that a process block does use one of these synchronization functions, how do i do it? 2018-08-04T23:27:39Z makomo: a block is just a chunk of lisp code, so i'd have to somehow codewalk the thing and see if it calls the synchronization function, right? 2018-08-04T23:30:03Z NoNumber joined #lisp 2018-08-04T23:31:45Z fikka joined #lisp 2018-08-04T23:36:40Z fikka quit (Ping timeout: 256 seconds) 2018-08-04T23:40:25Z NoNumber quit (Remote host closed the connection) 2018-08-04T23:42:04Z fikka joined #lisp 2018-08-04T23:46:49Z fikka quit (Ping timeout: 244 seconds) 2018-08-04T23:48:57Z stylewarning: Who is the maintainer of CL-PPCRE? 2018-08-04T23:48:57Z minion: stylewarning, memo from phoe: Hey - please poke me when you have a free while, I'd like to discuss a thing with you 2018-08-04T23:49:57Z stylewarning: I made a PR on GitHub. Would be nice to have it serviced. :) 2018-08-04T23:52:01Z fikka joined #lisp 2018-08-04T23:56:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-04T23:58:22Z iridioid joined #lisp 2018-08-05T00:00:01Z kozy quit (Remote host closed the connection) 2018-08-05T00:00:47Z kozy joined #lisp 2018-08-05T00:02:10Z fikka joined #lisp 2018-08-05T00:02:30Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-05T00:07:16Z fikka quit (Ping timeout: 256 seconds) 2018-08-05T00:11:45Z makomo quit (Ping timeout: 248 seconds) 2018-08-05T00:12:21Z fikka joined #lisp 2018-08-05T00:13:08Z Copenhagen_Bram joined #lisp 2018-08-05T00:13:11Z fikka quit (Read error: Connection reset by peer) 2018-08-05T00:13:29Z pierpal joined #lisp 2018-08-05T00:20:35Z iridioid quit (Ping timeout: 240 seconds) 2018-08-05T00:21:57Z pierpal quit (Ping timeout: 244 seconds) 2018-08-05T00:22:54Z fikka joined #lisp 2018-08-05T00:23:42Z PuercoPop: stylewarning: Stas is the maintainer of edi-ware afaik 2018-08-05T00:28:17Z Fare quit (Ping timeout: 248 seconds) 2018-08-05T00:28:19Z fikka quit (Ping timeout: 260 seconds) 2018-08-05T00:30:09Z nowhere_man joined #lisp 2018-08-05T00:33:00Z fikka joined #lisp 2018-08-05T00:34:44Z housel quit (Ping timeout: 260 seconds) 2018-08-05T00:37:53Z fikka quit (Ping timeout: 248 seconds) 2018-08-05T00:39:48Z X-Scale joined #lisp 2018-08-05T00:40:33Z asdf123 quit (Ping timeout: 244 seconds) 2018-08-05T00:43:11Z fikka joined #lisp 2018-08-05T00:44:51Z emacsomancer joined #lisp 2018-08-05T00:45:00Z adlai: gendl: just be sure to stick a "this is not an officially supported AGPL exception" at the bottom of the readme? 2018-08-05T00:47:25Z adlai: it's unclear to me why corporations like google release such code under their official auspices, then slip in such a finely printed disclaimer. literally one line, not even a different font, and the house card-house collapses. but the rest of the readme is well-rendered! i wish i had the near-future potential to follow up your challenge. 2018-08-05T00:48:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-05T00:49:33Z LdBeth: makomo: slime provides who-calls analysis I believe 2018-08-05T00:52:37Z Pixel_Outlaw joined #lisp 2018-08-05T00:53:02Z Fare joined #lisp 2018-08-05T00:53:30Z fikka joined #lisp 2018-08-05T00:57:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-05T00:57:59Z jack_rabbit joined #lisp 2018-08-05T01:03:29Z nanthil___ joined #lisp 2018-08-05T01:03:31Z nanthil___: is it accurate to say that (defgeneric ...) merely defines the interface, but that (defmethod ...) is the implementation? 2018-08-05T01:03:39Z fikka joined #lisp 2018-08-05T01:03:45Z nanthil___: or can defgeneric be used for a default implementation? 2018-08-05T01:04:02Z no-defun-allowed: i thought defgeneric did the default implementation 2018-08-05T01:04:14Z Bike: only with the :method option 2018-08-05T01:04:18Z JuanDaugherty quit (Quit: Exeunt) 2018-08-05T01:04:35Z nanthil___: so defgeneric can function as an interface method or an abstract method in Java/C++ terms? 2018-08-05T01:05:15Z nanthil___: and defmethod functions as an override? 2018-08-05T01:07:42Z light2yellow quit (Quit: light2yellow) 2018-08-05T01:08:04Z Bike: if you like, i suppose. 2018-08-05T01:08:17Z fikka quit (Ping timeout: 248 seconds) 2018-08-05T01:08:31Z adlai: nanthil___: either can do both 2018-08-05T01:08:46Z nanthil___: adlai: now you've lost me 2018-08-05T01:09:19Z Kundry_Wag joined #lisp 2018-08-05T01:09:21Z adlai: you can define both the interface, and the implementation, using either toplevel form; but if you want maximal similarity to static languages, use a declaration. 2018-08-05T01:09:24Z adlai: clhs ftype 2018-08-05T01:09:24Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/d_ftype.htm 2018-08-05T01:10:21Z nanthil___: i don't want maximal similarity 2018-08-05T01:10:29Z nanthil___: I want to understand the LISP way of doing things] 2018-08-05T01:10:43Z nanthil___: i was making the comparison simply to verify understanding 2018-08-05T01:11:02Z nanthil___: and now you're telling me its less clear than that, and I don't understand any of the reading I've been doing now 2018-08-05T01:11:40Z adlai: good! so i offer a humble recommendation that you define both interface and implementation in a defgeneric form, unless some of the implementations are either large enough, or too context-specific, to clutter up the single toplevel form. 2018-08-05T01:12:29Z adlai: also, the LISP way is to use M-expressions, but that's where i'd lose myself. 2018-08-05T01:12:53Z nanthil___: so generally stick to defgeneric with the method flag unless some other use is necessary? 2018-08-05T01:13:26Z adlai: yes, we have communicated well enough. 2018-08-05T01:13:31Z Bike: it's pretty common to d efine methods outside of defgenerics 2018-08-05T01:13:34Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-05T01:14:06Z fikka joined #lisp 2018-08-05T01:16:00Z Kundry_Wag joined #lisp 2018-08-05T01:16:46Z nanthil___: what sort of lisp patterns are there outside of the closure, lambda, etc.... obviously gang of four patterns aren't super necessary, so then is the CLOS typically used simply for organzing structs with typed general dispatch? 2018-08-05T01:17:20Z eschatologist: The best way to learn Lisp patterns is work in Lisp codebases. 2018-08-05T01:17:33Z nanthil___: oh good... the end of times is coming 2018-08-05T01:17:33Z cmack joined #lisp 2018-08-05T01:17:45Z nanthil___: ;P 2018-08-05T01:18:12Z eschatologist: The Lisp world didn’t do a whole lot of “let’s all write a million blog posts and white papers” thing around extremely common designs like the C++ and later the Java/.NET world did. 2018-08-05T01:18:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-05T01:18:39Z no-defun-allowed: lol 2018-08-05T01:18:50Z nanthil___: I think it'd done LISP a favor, and the rest of the world, beause people would be reading about why lisp is amaze-balls and why its better than java and C++ 2018-08-05T01:19:03Z nanthil___: instead of leaving the rest of us to rot with JAVA 2018-08-05T01:20:15Z nanthil___: so am I to take it that general functional patterns are the most common? and that object oriented patterns are a bit silly? 2018-08-05T01:20:26Z nanthil___: what with macros, I don't see a factory being all that useful 2018-08-05T01:20:38Z no-defun-allowed: can i test if a stream is ready to be read from? 2018-08-05T01:20:51Z no-defun-allowed: i think FP is most natural for most lisp problems 2018-08-05T01:22:30Z cmack: I'm trying to play with ulubis for the first time but I'm having trouble with an error about INIT-EGL-WAYLAND not found in the egl package during the build-ulubis command. Has anyone seen this and know how to solve? 2018-08-05T01:24:09Z fikka joined #lisp 2018-08-05T01:29:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-05T01:31:45Z quipa quit (Ping timeout: 248 seconds) 2018-08-05T01:50:10Z Kundry_Wag quit (Remote host closed the connection) 2018-08-05T01:50:45Z Kundry_Wag joined #lisp 2018-08-05T01:55:40Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-05T01:56:44Z robotoad quit (Quit: robotoad) 2018-08-05T02:02:24Z dwrngr joined #lisp 2018-08-05T02:05:16Z housel joined #lisp 2018-08-05T02:05:40Z robotoad joined #lisp 2018-08-05T02:07:05Z renzhi joined #lisp 2018-08-05T02:15:27Z pierpal joined #lisp 2018-08-05T02:16:57Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-05T02:17:32Z Khisanth joined #lisp 2018-08-05T02:20:50Z cmack quit (Remote host closed the connection) 2018-08-05T02:22:00Z nanthil___ quit (Quit: Page closed) 2018-08-05T02:22:18Z Arcaelyx joined #lisp 2018-08-05T02:23:29Z Khisanth quit (Ping timeout: 248 seconds) 2018-08-05T02:28:50Z Khisanth joined #lisp 2018-08-05T02:28:59Z pierpa quit (Quit: Page closed) 2018-08-05T02:30:49Z nowhere_man quit (Ping timeout: 260 seconds) 2018-08-05T02:46:52Z LdBeth: #'no-defun-allowed: a stream is always ready, do you mean to test if it’s empty? 2018-08-05T02:47:21Z no-defun-allowed: to see if reading a line would make me wait 2018-08-05T02:47:39Z no-defun-allowed: i decided to use two threads and a queue instead 2018-08-05T02:48:05Z anewuser joined #lisp 2018-08-05T02:48:47Z no-defun-allowed: i'm doing an asynchronous decentralised thing where i want to push out as much stuff over a socket while reading requests for new data 2018-08-05T02:51:03Z LdBeth: #'no-defun-allowed: you might have to define you own gray streams 2018-08-05T02:51:47Z no-defun-allowed: yeah, actually let's not 2018-08-05T02:52:10Z no-defun-allowed: using one input and one output thread works better 2018-08-05T02:53:40Z beach: Good morning everyone! 2018-08-05T02:55:12Z stnutt quit (Ping timeout: 260 seconds) 2018-08-05T02:56:58Z pierpal quit (Quit: Poof) 2018-08-05T02:57:19Z pierpal joined #lisp 2018-08-05T03:04:28Z no-defun-allowed: hi beach 2018-08-05T03:05:14Z stnutt joined #lisp 2018-08-05T03:13:13Z Kundry_Wag joined #lisp 2018-08-05T03:20:19Z Oladon quit (Quit: Leaving.) 2018-08-05T03:30:58Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-05T03:35:24Z v0|d: no-defun-allowed: the only way to make that efficient is to match kernel buffers. 2018-08-05T03:36:44Z v0|d: otherwise you'll need epoll tramp to process kernel->usermode pushed msgs 2018-08-05T03:37:48Z v0|d quit (Remote host closed the connection) 2018-08-05T03:44:21Z no-defun-allowed: that sounds complicated 2018-08-05T03:46:33Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-05T04:01:28Z Fare quit (Ping timeout: 268 seconds) 2018-08-05T04:04:59Z pjb quit (Remote host closed the connection) 2018-08-05T04:06:41Z pjb joined #lisp 2018-08-05T04:09:48Z Khisanth quit (Ping timeout: 256 seconds) 2018-08-05T04:10:12Z Khisanth joined #lisp 2018-08-05T04:12:25Z pjb quit (Remote host closed the connection) 2018-08-05T04:13:40Z pjb joined #lisp 2018-08-05T04:14:58Z Bike quit (Quit: Lost terminal) 2018-08-05T04:18:12Z pjb quit (Remote host closed the connection) 2018-08-05T04:18:32Z NoNumber joined #lisp 2018-08-05T04:20:09Z pjb joined #lisp 2018-08-05T04:20:32Z Arcaelyx joined #lisp 2018-08-05T04:24:54Z pjb quit (Remote host closed the connection) 2018-08-05T04:26:30Z pjb joined #lisp 2018-08-05T04:28:17Z anewuser quit (Ping timeout: 248 seconds) 2018-08-05T04:34:05Z Oladon joined #lisp 2018-08-05T04:34:39Z FreeBirdLjj joined #lisp 2018-08-05T04:38:30Z pjb quit (Ping timeout: 265 seconds) 2018-08-05T04:40:02Z pjb joined #lisp 2018-08-05T04:40:38Z emacsomancer quit (Remote host closed the connection) 2018-08-05T04:46:38Z pjb quit (Ping timeout: 256 seconds) 2018-08-05T04:56:27Z aeth quit (Ping timeout: 240 seconds) 2018-08-05T04:58:19Z aeth joined #lisp 2018-08-05T04:58:38Z pjb joined #lisp 2018-08-05T05:00:15Z igemnace joined #lisp 2018-08-05T05:04:12Z pjb quit (Ping timeout: 256 seconds) 2018-08-05T05:09:50Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-05T05:13:01Z johnnymacs joined #lisp 2018-08-05T05:13:07Z johnnymacs: reddit.com/r/unsingablesong 2018-08-05T05:17:38Z beach: johnnymacs: Posting links without a summary of what they contain is troll behavior. 2018-08-05T05:23:54Z clhsgang[m]: yeah why is everything NSFW 2018-08-05T05:24:55Z clhsgang[m]: this is some wannabe nazi shit johnnymacs 2018-08-05T05:26:58Z clhsgang[m]: instead you should back the lispm party http://cs.brown.edu/research/plt/LispM/Campaign/ 2018-08-05T05:29:18Z clhsgang[m]: beach: it's some weird subreddit with really stupid claims and pepe memes mostly 2018-08-05T05:29:45Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T05:38:32Z FreeBirdLjj joined #lisp 2018-08-05T05:39:02Z Shinmera: no-defun-allowed: You can use peek-char-no-hang, but that's not a good idea usually. If you're dealing with sockets, usocket has wait-for-input and socket-state. 2018-08-05T05:39:34Z clhsgang[m]: i see 2018-08-05T05:40:32Z clhsgang[m]: both ends are expected to be async so i decided it'd be simpler to just put one listener and one responder thread. i want it to work with any stream so usocket specifics aren't the ideal solution 2018-08-05T05:40:59Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-05T05:41:37Z Shinmera: well, the stream concept does not include the idea of knowing if input is there. You can only consume it. 2018-08-05T05:41:46Z Shinmera: So you need to make case-by-case distinctions. 2018-08-05T05:42:15Z blackadder joined #lisp 2018-08-05T05:43:19Z SaganMan quit (Ping timeout: 260 seconds) 2018-08-05T05:43:55Z Kundry_Wag joined #lisp 2018-08-05T05:44:13Z clhsgang[m]: that is true 2018-08-05T05:56:18Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-05T06:00:42Z meepdeew quit (Remote host closed the connection) 2018-08-05T06:02:38Z johnnymacs quit (Ping timeout: 260 seconds) 2018-08-05T06:16:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-05T06:27:27Z lavaflow quit (Read error: Connection reset by peer) 2018-08-05T06:28:12Z lavaflow joined #lisp 2018-08-05T06:47:04Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T06:48:01Z robotoad quit (Quit: robotoad) 2018-08-05T06:52:37Z phoe: Shinmera: hah, peek-char-no-hang 2018-08-05T06:57:06Z robotoad joined #lisp 2018-08-05T06:59:00Z void_pointer joined #lisp 2018-08-05T07:03:04Z FreeBirdLjj joined #lisp 2018-08-05T07:07:45Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-05T07:11:35Z zxcvz quit (Quit: zxcvz) 2018-08-05T07:11:59Z zxcvz joined #lisp 2018-08-05T07:34:35Z FreeBirdLjj joined #lisp 2018-08-05T07:34:52Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T07:35:07Z FreeBirdLjj joined #lisp 2018-08-05T07:38:51Z shka_ joined #lisp 2018-08-05T07:40:19Z nika joined #lisp 2018-08-05T07:48:19Z Oladon quit (Quit: Leaving.) 2018-08-05T07:52:06Z varjag joined #lisp 2018-08-05T07:56:54Z varjag quit (Ping timeout: 260 seconds) 2018-08-05T08:13:41Z Kundry_Wag joined #lisp 2018-08-05T08:19:47Z drewes joined #lisp 2018-08-05T08:21:50Z vlatkoB joined #lisp 2018-08-05T08:26:42Z josemanuel joined #lisp 2018-08-05T08:37:05Z varjag joined #lisp 2018-08-05T08:38:27Z varjag quit (Client Quit) 2018-08-05T08:39:02Z varjag joined #lisp 2018-08-05T08:47:15Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-05T08:51:13Z pierpal quit (Quit: Poof) 2018-08-05T08:51:32Z pierpal joined #lisp 2018-08-05T09:05:36Z beach quit (Ping timeout: 256 seconds) 2018-08-05T09:11:27Z igemnace quit (Quit: WeeChat 2.2) 2018-08-05T09:13:07Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-05T09:14:18Z cage_ joined #lisp 2018-08-05T09:15:11Z mgsk: Should (describe #'some-func) show the documentation as set by (setf (documentation #'some-func 'function) "the documentation")? I would expect so, but doesn't seem to be the case 2018-08-05T09:15:28Z mgsk left #lisp 2018-08-05T09:15:34Z mgsk joined #lisp 2018-08-05T09:15:43Z mgsk left #lisp 2018-08-05T09:16:06Z mgsk joined #lisp 2018-08-05T09:16:08Z mgsk: Oops 2018-08-05T09:16:35Z mgsk: Hopefully didn't miss a reply while my irc was going bezerk 2018-08-05T09:18:06Z Shinmera: clhs describe 2018-08-05T09:18:06Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_descri.htm 2018-08-05T09:18:17Z Shinmera: "In all cases, however, the nature and format of the output of describe is implementation-dependent." 2018-08-05T09:18:18Z void_pointer: mgsk: looking at the draft of the CL ANSI standard, it says that what describe and describe-object show are implementation dependent 2018-08-05T09:19:52Z mgsk: Fair enough. Ty Shinmera void_pointer 2018-08-05T09:23:23Z Shinmera: For instance, SBCL will print the docstring if it is known. 2018-08-05T09:24:09Z Shinmera: If it does not, you might be able to add it yourself with something like (defmethod describe-object :after ((function function) stream) (format stream "~@[~&~%Documentation:~% ~a~]" (documentation function T))) 2018-08-05T09:24:52Z Shinmera: Doing so is not conformant, I believe, but since we're already in implementation-specific territory anyway it doesn't really matter. 2018-08-05T09:25:53Z Shinmera: *If it => If your implementation 2018-08-05T09:41:21Z loke left #lisp 2018-08-05T09:41:38Z loke joined #lisp 2018-08-05T09:44:49Z JuanDaugherty joined #lisp 2018-08-05T09:44:50Z mgsk: Shinmera: If I setf the documentation, SCBL's DESCRIBE doesn't show the doc, but DOCUMENTATION does. So it both knows and doesn't know the doc string. 2018-08-05T09:49:46Z Shinmera: Ah- that's probably because function objects have a specific documentation slot so you can document functions that are not top-level definitions. 2018-08-05T09:50:52Z phoe: mgsk: sounds like a bug. You might want to mention it on #sbcl. 2018-08-05T09:53:31Z Shinmera: Hmm actually looks like the describe method for function objects is doing something weird 2018-08-05T09:54:09Z orivej joined #lisp 2018-08-05T09:54:10Z Shinmera: (documentation (lambda () "Foo" NIL) T) ;=> "Foo", and (let ((a (lambda ()))) (setf (documentation a T) "Foo") (documentation a T)) ; => "Foo" as well 2018-08-05T09:54:28Z Shinmera: But in both cases describe shows "Documentation: T" for the object. 2018-08-05T09:59:08Z mgsk: Weird eh 2018-08-05T10:03:41Z mn3m joined #lisp 2018-08-05T10:04:45Z loke: I think you can minimise the test case to: (describe (lambda () "foo" nil)) 2018-08-05T10:04:57Z gravicappa joined #lisp 2018-08-05T10:05:44Z edgar-rft: AFAIK the doc-string is wired into the DEFUN macro, but not into LAMBDA 2018-08-05T10:05:57Z phoe: well, at least it's logical 2018-08-05T10:06:01Z phoe: user: "does it have documentation" 2018-08-05T10:06:03Z phoe: SBCL: "yep" 2018-08-05T10:06:19Z phoe: user: "awesome, thanks" 2018-08-05T10:06:24Z mgsk: phoe: lol 2018-08-05T10:06:37Z Shinmera: phoe: it does print the actual docstrings for standard functions though. 2018-08-05T10:07:30Z Shinmera: edgar-rft: lambda includes the ability to include a docstring. 2018-08-05T10:07:34Z edgar-rft: just looked, the CLHS says LAMBDA has a doc-string, too 2018-08-05T10:07:43Z phoe: Shinmera: I know. I was joking. 2018-08-05T10:07:45Z edgar-rft: *Shinmear was faster than me 2018-08-05T10:07:55Z Shinmera: Well I didn't need to look 2018-08-05T10:08:06Z edgar-rft: that's why :-) 2018-08-05T10:09:25Z phoe: then it's a bug in SBCL, it seems 2018-08-05T10:11:10Z cage_ quit (Quit: Leaving) 2018-08-05T10:15:44Z nowhere_man joined #lisp 2018-08-05T10:18:42Z razzy joined #lisp 2018-08-05T10:23:56Z quipa joined #lisp 2018-08-05T10:27:40Z DataLinkDroid quit (Ping timeout: 240 seconds) 2018-08-05T10:31:47Z mn3m quit (Quit: mn3m) 2018-08-05T10:32:46Z makomo joined #lisp 2018-08-05T10:33:58Z jmercouris joined #lisp 2018-08-05T10:44:10Z Kundry_Wag joined #lisp 2018-08-05T10:56:06Z random-nick joined #lisp 2018-08-05T11:01:05Z DataLinkDroid joined #lisp 2018-08-05T11:05:11Z Demosthenex joined #lisp 2018-08-05T11:05:54Z Demosthenex: hey, i thought i read somewhere someone recommended common lisp for math/data analysis instead of R. R's hell to search for, anyone know of something similar? running math and interactive simple plots in CL? 2018-08-05T11:12:19Z jmercouris: Demosthenex: there are some interfaces to plot software in CL 2018-08-05T11:12:49Z jmercouris: here is one that I just found: https://github.com/koji-kojiro/matplotlib-cl 2018-08-05T11:13:01Z jmercouris: there's also a few interfaces to gnuplot as well 2018-08-05T11:13:12Z jmercouris: I don't think you could interact with these plots, but I'm not sure 2018-08-05T11:13:24Z jmercouris: I know that if you use gnuplot you can probably zoom in on them, pan, or whatever 2018-08-05T11:13:53Z jmercouris: here is one with gnuplot: https://github.com/masatoi/clgplot 2018-08-05T11:14:11Z jmercouris: anyway, CL is better than R, and there are more than enough libraries in CL to do what you want 2018-08-05T11:14:28Z jmercouris: I would say, give it a try, and if you encounter too much friction, you can always drop back to R 2018-08-05T11:17:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-05T11:18:12Z Fare joined #lisp 2018-08-05T11:19:34Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-05T11:25:54Z JuanDaugherty quit (Quit: Exeunt) 2018-08-05T11:27:26Z Shinmera: Maxima also has plotting capabilities, if I remember correctly 2018-08-05T11:33:01Z jack_rabbit joined #lisp 2018-08-05T11:45:05Z orivej quit (Ping timeout: 248 seconds) 2018-08-05T11:46:41Z sjl quit (Ping timeout: 248 seconds) 2018-08-05T11:48:06Z Bike joined #lisp 2018-08-05T11:52:27Z sjl joined #lisp 2018-08-05T11:54:20Z sjl quit (Client Quit) 2018-08-05T11:59:57Z gigetoo quit (Ping timeout: 240 seconds) 2018-08-05T12:00:10Z rpg joined #lisp 2018-08-05T12:10:46Z orivej joined #lisp 2018-08-05T12:11:41Z gendl: adlai: I'm not sure what is the current state of the art for CL to C++ interfacing. We have a longstanding integration with a body of commercial C++ code with hand-written C wrappers. I'm sure there are better ways to do it these days. 2018-08-05T12:12:23Z Shinmera: Not really if you want it to run on many implementations. 2018-08-05T12:12:51Z gigetoo joined #lisp 2018-08-05T12:22:42Z pjb joined #lisp 2018-08-05T12:23:22Z p_l: I'd say interfacing with C++ is ... problematic outside Windows and *possibly* AIX (if you have source code) 2018-08-05T12:23:24Z 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) 2018-08-05T12:23:38Z p_l: Clasp technically can do better but that's non-trivial as well 2018-08-05T12:24:09Z p_l: on Windows you have the benefit that you can make a COM wrapper around the C++ library and use COM from CL 2018-08-05T12:24:45Z p_l: Don't recall if you need to do something special to be able to run it in IPC mode, but if you do that then you get isolation from C++ messing with your runtime 2018-08-05T12:25:16Z p_l: AIX has SOM ABI option for C++, but that's rarely used (gives similar ABI to Objective-C, iirc) 2018-08-05T12:25:21Z troydm joined #lisp 2018-08-05T12:26:10Z makomo quit (Ping timeout: 264 seconds) 2018-08-05T12:29:54Z orivej quit (Ping timeout: 260 seconds) 2018-08-05T12:33:58Z easye joined #lisp 2018-08-05T12:37:17Z light2yellow joined #lisp 2018-08-05T12:41:56Z cage_ joined #lisp 2018-08-05T12:43:34Z eMBee quit (Ping timeout: 264 seconds) 2018-08-05T12:48:46Z orivej joined #lisp 2018-08-05T12:50:01Z makomo joined #lisp 2018-08-05T13:08:42Z svillemot quit (Ping timeout: 256 seconds) 2018-08-05T13:08:43Z pjb quit (Read error: Connection reset by peer) 2018-08-05T13:09:10Z svillemot joined #lisp 2018-08-05T13:09:16Z xristos quit (Ping timeout: 256 seconds) 2018-08-05T13:11:49Z beach joined #lisp 2018-08-05T13:13:42Z pjb joined #lisp 2018-08-05T13:14:51Z Kundry_Wag joined #lisp 2018-08-05T13:29:46Z orivej quit (Ping timeout: 264 seconds) 2018-08-05T13:46:14Z lnostdal__ is now known as lnostdal 2018-08-05T13:47:46Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-05T13:50:24Z quipa_ joined #lisp 2018-08-05T13:52:30Z quipa_ quit (Remote host closed the connection) 2018-08-05T13:52:35Z quipa quit (Ping timeout: 240 seconds) 2018-08-05T13:52:50Z quipa_ joined #lisp 2018-08-05T13:53:28Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T14:05:10Z rozenglass quit (Ping timeout: 264 seconds) 2018-08-05T14:05:46Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-05T14:05:59Z gendl: p_l: what ever happened to swig? 2018-08-05T14:06:55Z p_l: gendl: it fights the uneven battle, uphills in snow both ways 2018-08-05T14:07:28Z Demosthenex: p_l: oooh! aix! i like that stuff. but yes, dev stuff is hard to come by 2018-08-05T14:08:28Z p_l: Demosthenex: XLc supports using SOM ABI for C++ classes 2018-08-05T14:08:47Z Demosthenex: yep, but if it's the paid XLC most customers don't have it 2018-08-05T14:08:53Z Demosthenex: many admins try to make do with gcc 2018-08-05T14:09:02Z p_l: ah 2018-08-05T14:09:19Z p_l: my only contacts with AIX development were very tangential and involved XLc for Plan9 2018-08-05T14:09:35Z Demosthenex: the stdlib for c++ isn't even in the standard install as i recall. you have to install the libstdc++ packages 2018-08-05T14:09:41Z Demosthenex: if you install something compiled from it 2018-08-05T14:10:02Z gendl: it seems like the best way to interface with anything these days is to demand a web API and interact with that. 2018-08-05T14:10:13Z gendl: assuming one is in the position of "demanding." 2018-08-05T14:10:32Z p_l: gendl: or at least wrapping it around in one 2018-08-05T14:10:38Z Demosthenex: i must admit, between emacs restclient mode and postgres' json handling, web apis are really simple now 2018-08-05T14:10:41Z p_l: even SWIG has to do so when dealing with C++, as it generates a C wrapper 2018-08-05T14:10:56Z Demosthenex: i still long for a useful TUI library 2018-08-05T14:11:53Z p_l: jackdaniel made a demo of using CLIM on ncurses 2018-08-05T14:14:30Z shka_: what the heck 2018-08-05T14:14:36Z shka_: CLIM on ncurses? 2018-08-05T14:14:38Z Demosthenex: i have a variety of small forms based crud apps i'd make in a heartbeat if i didn't have to reinvent the TUI wheel completely :P 2018-08-05T14:14:45Z shka_: crazy 2018-08-05T14:15:06Z Demosthenex: right now i lean on org-mode because it does really simple tables. 2018-08-05T14:15:38Z p_l: http://turtleware.eu/posts/cl-charms-crash-course.html 2018-08-05T14:16:52Z p_l: https://asciinema.org/a/KNDnnycLc2uHMsmi7YvFMUpau 2018-08-05T14:17:14Z p_l: uses cl-charms from https://github.com/HiTECNOLOGYs/cl-charms 2018-08-05T14:17:25Z Demosthenex: no. 2018-08-05T14:17:31Z Demosthenex: he's exploring how you use cl-charms there. 2018-08-05T14:17:51Z Demosthenex: at the end he says "we implemented 1/10th of clim, maybe curses should be an option for clim" 2018-08-05T14:18:07Z Demosthenex: unfortunately his demo is about using cl-charms, not anything about McCLIM with ncurses 2018-08-05T14:18:32Z jack_rabbit joined #lisp 2018-08-05T14:18:35Z p_l: ah, yes, forgot the details 2018-08-05T14:18:41Z p_l: still, cl-charms might of interest 2018-08-05T14:18:53Z Demosthenex: yeah, its bascially just ncurses again 2018-08-05T14:18:55Z p_l: I also recently learnt of dtksh and ... deer god 2018-08-05T14:19:05Z Demosthenex: and i've gone down that rabbit hole a few times, looking at the forms lib etc. 2018-08-05T14:19:29Z Demosthenex: it's down to reinvent the wheel, or try to interface with ncurses forms, and that's a nearly forgotten art 2018-08-05T14:20:09Z Demosthenex: onthe topic of dtksh, i've seen several wrappers now for using Dialog as a TUI in python and other langs 2018-08-05T14:20:30Z quipa_ quit (Ping timeout: 244 seconds) 2018-08-05T14:22:05Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-05T14:22:08Z p_l: yeah, but it's not as crazy as embedding Motif into korn shell 2018-08-05T14:22:36Z Demosthenex: dialog has forks that goto gtk 2018-08-05T14:22:46Z Demosthenex: so you can have simple shell script directed guis 2018-08-05T14:23:12Z FreeBirdLjj joined #lisp 2018-08-05T14:23:38Z p_l: yes, but it involves calling a program and getting a simple result, at least last time I checked 2018-08-05T14:23:50Z p_l: dtksh was closer to Tcl/Tk 2018-08-05T14:23:56Z Demosthenex: ah 2018-08-05T14:24:30Z p_l: http://www.brendangregg.com/dtkshdemos.html 2018-08-05T14:29:20Z Kundry_Wag joined #lisp 2018-08-05T14:31:17Z l1x joined #lisp 2018-08-05T14:34:13Z notnull joined #lisp 2018-08-05T14:52:00Z gigetoo quit (Read error: No route to host) 2018-08-05T14:52:40Z gigetoo joined #lisp 2018-08-05T14:55:40Z random-nick quit (Read error: Connection reset by peer) 2018-08-05T14:57:21Z random-nick joined #lisp 2018-08-05T14:59:18Z gurmble joined #lisp 2018-08-05T15:01:37Z pointerk joined #lisp 2018-08-05T15:03:51Z sjl joined #lisp 2018-08-05T15:05:36Z igemnace joined #lisp 2018-08-05T15:08:34Z grumble quit (Ping timeout: 615 seconds) 2018-08-05T15:10:10Z gurmble is now known as grumble 2018-08-05T15:10:43Z rozenglass joined #lisp 2018-08-05T15:13:14Z beach quit (Disconnected by services) 2018-08-05T15:15:28Z beach joined #lisp 2018-08-05T15:17:58Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T15:18:34Z FreeBirdLjj joined #lisp 2018-08-05T15:19:09Z nowhere_man joined #lisp 2018-08-05T15:22:02Z o1e9 joined #lisp 2018-08-05T15:23:30Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-08-05T15:30:44Z nowhere_man quit (Ping timeout: 260 seconds) 2018-08-05T15:31:21Z jack_rabbit quit (Quit: Leaving) 2018-08-05T15:37:05Z gravicappa quit (Ping timeout: 248 seconds) 2018-08-05T15:46:19Z FreeBirdLjj joined #lisp 2018-08-05T15:48:17Z rozenglass quit (Ping timeout: 248 seconds) 2018-08-05T15:49:22Z nika quit (Quit: Leaving...) 2018-08-05T16:14:19Z Oladon joined #lisp 2018-08-05T16:14:28Z jurov: hello, I can't quickload swank after sbcl upgrade to 1.4.9 2018-08-05T16:14:48Z jurov: the error is: Symbol "SIMPLE-FUN-HEADER-WIDETAG" not found in the SB-VM package. 2018-08-05T16:15:19Z Shinmera: upgrade slime 2018-08-05T16:15:20Z jurov: tried to (ql:update-dist "quicklisp"),that did not help 2018-08-05T16:16:27Z jurov: oh nevermind, after sbcl restart it loads fine 2018-08-05T16:19:25Z MoziM quit (Quit: WeeChat 2.2) 2018-08-05T16:23:49Z klltkr quit (Remote host closed the connection) 2018-08-05T16:25:42Z rippa joined #lisp 2018-08-05T16:34:07Z Kundry_Wag quit (Remote host closed the connection) 2018-08-05T16:35:52Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-05T16:38:45Z jmercouris quit (Ping timeout: 264 seconds) 2018-08-05T16:41:04Z pierpal quit (Quit: Poof) 2018-08-05T16:41:22Z pierpal joined #lisp 2018-08-05T16:44:44Z beach quit (Disconnected by services) 2018-08-05T16:45:22Z X-Scale quit (Ping timeout: 264 seconds) 2018-08-05T16:48:05Z Kundry_Wag joined #lisp 2018-08-05T16:53:09Z pointerk quit (Ping timeout: 264 seconds) 2018-08-05T16:57:27Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-05T17:01:24Z eMBee joined #lisp 2018-08-05T17:01:44Z Fare quit (Ping timeout: 260 seconds) 2018-08-05T17:04:11Z igemnace quit (Read error: Connection reset by peer) 2018-08-05T17:04:53Z igemnace joined #lisp 2018-08-05T17:08:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-05T17:08:27Z FreeBirdLjj joined #lisp 2018-08-05T17:09:32Z jmercouris joined #lisp 2018-08-05T17:10:59Z josemanuel quit (Quit: leaving) 2018-08-05T17:12:46Z v0|d joined #lisp 2018-08-05T17:13:33Z giraffe quit (Remote host closed the connection) 2018-08-05T17:13:33Z itruslove quit (Remote host closed the connection) 2018-08-05T17:22:00Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-05T17:25:59Z itruslove joined #lisp 2018-08-05T17:27:33Z X-Scale joined #lisp 2018-08-05T17:28:36Z test1600 joined #lisp 2018-08-05T17:30:03Z buffergn0me joined #lisp 2018-08-05T17:31:45Z iskander joined #lisp 2018-08-05T17:43:56Z iridioid joined #lisp 2018-08-05T17:48:37Z beach joined #lisp 2018-08-05T17:50:07Z nanoz joined #lisp 2018-08-05T17:51:17Z FreeBirdLjj joined #lisp 2018-08-05T17:54:49Z impulse quit (Ping timeout: 260 seconds) 2018-08-05T18:01:05Z engblom quit (Ping timeout: 248 seconds) 2018-08-05T18:06:45Z impulse joined #lisp 2018-08-05T18:09:19Z Oladon quit (Quit: Leaving.) 2018-08-05T18:12:58Z iridioid quit (Ping timeout: 264 seconds) 2018-08-05T18:16:02Z meepdeew joined #lisp 2018-08-05T18:35:25Z quipa joined #lisp 2018-08-05T18:47:24Z meepdeew quit (Remote host closed the connection) 2018-08-05T18:54:56Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-05T18:55:41Z klltkr joined #lisp 2018-08-05T18:55:46Z klltkr: Word 2018-08-05T19:04:16Z Fare joined #lisp 2018-08-05T19:08:14Z vlatkoB quit (Remote host closed the connection) 2018-08-05T19:09:28Z vlatkoB joined #lisp 2018-08-05T19:16:53Z pjb: Number 2018-08-05T19:18:01Z cage_ quit (Quit: Leaving) 2018-08-05T19:18:03Z phoe: Symbol 2018-08-05T19:18:45Z klltkr: Nice 2018-08-05T19:21:00Z meepdeew joined #lisp 2018-08-05T19:21:05Z jinkies joined #lisp 2018-08-05T19:24:24Z X-Scale quit (Ping timeout: 256 seconds) 2018-08-05T19:27:10Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-05T19:30:11Z buffergn0me joined #lisp 2018-08-05T19:32:17Z o1e9 quit (Ping timeout: 248 seconds) 2018-08-05T19:36:52Z pjb quit (Ping timeout: 256 seconds) 2018-08-05T19:37:38Z kushal quit (Remote host closed the connection) 2018-08-05T19:40:35Z nanoz quit (Ping timeout: 240 seconds) 2018-08-05T19:42:19Z zxcvz quit (Quit: zxcvz) 2018-08-05T19:42:56Z pjb joined #lisp 2018-08-05T19:43:11Z pjb: This 67-year-old retiree solved a math problem–using Microsoft Word 2018-08-05T19:45:54Z FreeBirdLjj joined #lisp 2018-08-05T19:49:54Z orivej joined #lisp 2018-08-05T19:51:26Z nowhere_man joined #lisp 2018-08-05T19:52:28Z jonh: /close 2018-08-05T19:52:30Z jonh left #lisp 2018-08-05T19:53:41Z klltkr quit (Remote host closed the connection) 2018-08-05T19:56:17Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-05T19:57:28Z skidd0 joined #lisp 2018-08-05T20:00:35Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-05T20:00:46Z X-Scale joined #lisp 2018-08-05T20:03:18Z DataLinkDroid quit (Ping timeout: 240 seconds) 2018-08-05T20:07:16Z nowhere_man joined #lisp 2018-08-05T20:24:08Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-05T20:32:58Z orivej quit (Ping timeout: 256 seconds) 2018-08-05T20:35:01Z borodust: Shinmera: details for Autumn LGJ 2018 are not available yet, we don't know the format yet: https://events.tymoon.eu/4 is a bit misleading 2018-08-05T20:35:16Z borodust: thanks for the announcement anyway! 2018-08-05T20:37:14Z Shinmera: I didn't make it 2018-08-05T20:37:25Z borodust: Shinmera: oh wait, sh*t 2018-08-05T20:37:31Z Shinmera: I made the website 2018-08-05T20:37:33Z mfiano: Details are available. Just clic e link 2018-08-05T20:37:39Z mfiano: Err click the link 2018-08-05T20:37:41Z borodust: Shinmera: i've got confused, my bad and apologies 2018-08-05T20:38:03Z Shinmera: You can blame me for the theme fuckup though, that's all on me being bad at programming 2018-08-05T20:38:37Z mfiano: Theme is fine. I'll just blame you for the epic fail we had at deploying earlier ;) 2018-08-05T20:38:48Z Shinmera: That's what I mean 2018-08-05T20:39:26Z mfiano: Eh it is what it is. It works and your code is useful 2018-08-05T20:39:50Z Shinmera: In other news, a proper iCal library turns out to be a huge pita, who'da thunk it 2018-08-05T20:40:43Z borodust: Shinmera: nah, it's all cool, it's just me being drunk, i guess 2018-08-05T20:40:44Z Shinmera: Hopefully I can knock it out this week and then fuhgeddaboudit for the rest of my life though 2018-08-05T20:41:29Z Kundry_Wag joined #lisp 2018-08-05T20:41:54Z aeth: Shinmera: How many entries are you going to make for the game jam? Will you make it to a dozen? 2018-08-05T20:41:58Z vlatkoB quit (Remote host closed the connection) 2018-08-05T20:42:02Z Shinmera: aeth: Zero so far 2018-08-05T20:42:56Z Shinmera: It's smack in the middle of the semester, so I doubt I'll have much time. 2018-08-05T20:42:57Z shka_ quit (Ping timeout: 240 seconds) 2018-08-05T21:02:18Z aeth: ah 2018-08-05T21:02:39Z pierpal quit (Ping timeout: 260 seconds) 2018-08-05T21:03:45Z orivej joined #lisp 2018-08-05T21:09:17Z Shinmera: I'll be doing a game jam kinda deal by myself in the coming weeks, so hopefully I'll at least get some lisp game done this year. 2018-08-05T21:14:05Z borodust: Shinmera: nice! 2018-08-05T21:15:00Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-05T21:21:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-05T21:22:23Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-05T21:22:47Z Arcaelyx joined #lisp 2018-08-05T21:25:35Z Bike quit (Ping timeout: 240 seconds) 2018-08-05T21:38:09Z test1600 quit (Ping timeout: 248 seconds) 2018-08-05T21:39:18Z FreeBirdLjj joined #lisp 2018-08-05T21:40:12Z void_pointer joined #lisp 2018-08-05T21:42:06Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-05T21:43:48Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-05T21:52:19Z Oladon joined #lisp 2018-08-05T21:58:12Z azimut_ joined #lisp 2018-08-05T22:00:30Z nowhere_man joined #lisp 2018-08-05T22:00:59Z azimut quit (Ping timeout: 260 seconds) 2018-08-05T22:22:19Z Kundry_Wag joined #lisp 2018-08-05T22:25:02Z Trystam joined #lisp 2018-08-05T22:26:36Z buffergn0me quit (Remote host closed the connection) 2018-08-05T22:27:43Z Tristam quit (Ping timeout: 244 seconds) 2018-08-05T22:27:56Z Trystam is now known as Tristam 2018-08-05T22:27:58Z nowhere_man quit (Ping timeout: 264 seconds) 2018-08-05T22:37:04Z random-nick quit (Ping timeout: 256 seconds) 2018-08-05T22:50:06Z Guest12051 is now known as karstensrage 2018-08-05T22:50:33Z karstensrage quit (Changing host) 2018-08-05T22:50:33Z karstensrage joined #lisp 2018-08-05T22:51:09Z orivej joined #lisp 2018-08-05T22:52:11Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-05T23:00:04Z pierpa joined #lisp 2018-08-05T23:02:49Z Fare quit (Ping timeout: 260 seconds) 2018-08-05T23:08:43Z meepdeew quit (Remote host closed the connection) 2018-08-05T23:10:05Z xylef joined #lisp 2018-08-05T23:10:22Z chamblin joined #lisp 2018-08-05T23:13:28Z pierpal joined #lisp 2018-08-05T23:15:06Z Patternmaster joined #lisp 2018-08-05T23:16:02Z Fare joined #lisp 2018-08-05T23:21:58Z pierpal quit (Ping timeout: 244 seconds) 2018-08-05T23:22:10Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-05T23:22:10Z xylef quit (Quit: WeeChat 2.2) 2018-08-05T23:24:02Z jmercouris quit (Ping timeout: 244 seconds) 2018-08-05T23:27:24Z FreeBirdLjj joined #lisp 2018-08-05T23:27:45Z nanoz joined #lisp 2018-08-05T23:32:56Z Kundry_Wag quit (Remote host closed the connection) 2018-08-05T23:35:50Z skidd0 quit (Quit: \0) 2018-08-05T23:37:45Z Kundry_Wag joined #lisp 2018-08-05T23:39:50Z Oladon quit (Quit: Leaving.) 2018-08-05T23:46:46Z lavaflow quit (Ping timeout: 256 seconds) 2018-08-05T23:49:29Z Bike joined #lisp 2018-08-05T23:50:57Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-06T00:00:51Z makomo quit (Quit: WeeChat 2.0.1) 2018-08-06T00:04:27Z iridioid joined #lisp 2018-08-06T00:04:35Z flazh quit (Ping timeout: 240 seconds) 2018-08-06T00:09:59Z NoNumber quit (Read error: Connection reset by peer) 2018-08-06T00:22:44Z iridioid quit (Ping timeout: 260 seconds) 2018-08-06T00:25:27Z FreeBirdLjj joined #lisp 2018-08-06T00:30:24Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-06T00:38:31Z iridioid joined #lisp 2018-08-06T00:40:35Z FreeBirdLjj joined #lisp 2018-08-06T00:43:00Z lavaflow joined #lisp 2018-08-06T00:45:09Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-06T00:47:45Z lavaflow quit (Ping timeout: 264 seconds) 2018-08-06T01:02:42Z quipa quit (Ping timeout: 256 seconds) 2018-08-06T01:02:53Z Denommus joined #lisp 2018-08-06T01:03:27Z FreeBirdLjj joined #lisp 2018-08-06T01:05:56Z v0|d quit (Remote host closed the connection) 2018-08-06T01:08:22Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-06T01:10:01Z allcr joined #lisp 2018-08-06T01:10:55Z JohnnyL joined #lisp 2018-08-06T01:14:00Z chamblin quit (Ping timeout: 245 seconds) 2018-08-06T01:18:40Z allcr quit (Remote host closed the connection) 2018-08-06T01:19:24Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-06T01:26:13Z FreeBirdLjj joined #lisp 2018-08-06T01:28:50Z aeth_ joined #lisp 2018-08-06T01:30:28Z aeth quit (Ping timeout: 256 seconds) 2018-08-06T01:30:37Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-06T01:31:13Z lavaflow joined #lisp 2018-08-06T01:31:40Z pierpal joined #lisp 2018-08-06T01:32:56Z moei quit (Quit: Leaving...) 2018-08-06T01:38:46Z pierpal quit (Ping timeout: 264 seconds) 2018-08-06T01:40:35Z renzhi quit (Ping timeout: 240 seconds) 2018-08-06T01:43:02Z renzhi joined #lisp 2018-08-06T01:45:11Z Kundry_Wag quit (Remote host closed the connection) 2018-08-06T01:45:26Z pierpal joined #lisp 2018-08-06T01:45:45Z Kundry_Wag joined #lisp 2018-08-06T01:47:12Z gector quit (Read error: Connection reset by peer) 2018-08-06T01:47:57Z gector joined #lisp 2018-08-06T01:48:22Z meepdeew joined #lisp 2018-08-06T01:50:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-06T01:54:09Z mathZ joined #lisp 2018-08-06T01:54:09Z gector quit (Ping timeout: 248 seconds) 2018-08-06T01:55:05Z gector joined #lisp 2018-08-06T01:59:17Z FreeBirdLjj joined #lisp 2018-08-06T02:00:14Z robotoad quit (Quit: robotoad) 2018-08-06T02:05:33Z JohnnyL quit (Quit: leaving) 2018-08-06T02:09:00Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-06T02:13:53Z pierpa quit (Quit: Page closed) 2018-08-06T02:14:29Z drmeister: I'd like to move ~/quicklisp elsewhere - I see hints on the internet that this is possible but no instructions. 2018-08-06T02:14:32Z drmeister: How does one do that? 2018-08-06T02:15:03Z robotoad joined #lisp 2018-08-06T02:15:07Z drmeister: https://www.quicklisp.org/beta/#loading 2018-08-06T02:15:31Z drmeister: It says "For example, if you installed Quicklisp in the default location in your home directory..." 2018-08-06T02:15:42Z drmeister: Which implies that it can be installed elsewhere. 2018-08-06T02:18:13Z Bike: i think you can just move the entire directory 2018-08-06T02:18:37Z Bike: making sure to load setup.lisp from the new location, of course 2018-08-06T02:21:25Z Kundry_Wag joined #lisp 2018-08-06T02:21:52Z Pixel_Outlaw joined #lisp 2018-08-06T02:22:30Z drmeister: Is that all - just load the setup.lisp from the new location? 2018-08-06T02:22:35Z drmeister: That would be nice. 2018-08-06T02:22:59Z Bike: that's what i remember 2018-08-06T02:26:19Z blackadder is now known as SaganMan 2018-08-06T02:28:12Z igemnace_ joined #lisp 2018-08-06T02:28:17Z igemnace quit (Read error: Connection reset by peer) 2018-08-06T02:29:19Z dddddd quit (Remote host closed the connection) 2018-08-06T02:34:12Z kushal joined #lisp 2018-08-06T02:39:05Z Oladon joined #lisp 2018-08-06T02:51:03Z jinkies quit (Ping timeout: 265 seconds) 2018-08-06T02:51:50Z drmeister: Well, thank you - I'll try that as soon as I get to that point. 2018-08-06T02:52:27Z drmeister: I'm installing everything - cando, jupyterlab, quicklisp, slime into one directory tree. 2018-08-06T02:54:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-06T02:56:35Z orivej quit (Ping timeout: 240 seconds) 2018-08-06T03:15:13Z Khisanth quit (Ping timeout: 248 seconds) 2018-08-06T03:15:48Z Khisanth joined #lisp 2018-08-06T03:24:49Z robotoad quit (Quit: robotoad) 2018-08-06T03:26:54Z Kundry_Wag joined #lisp 2018-08-06T03:27:48Z robotoad joined #lisp 2018-08-06T03:31:36Z LdBeth: good morning 2018-08-06T03:40:11Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-06T03:40:18Z Bike quit (Quit: Lost terminal) 2018-08-06T03:54:09Z nanoz quit (Ping timeout: 248 seconds) 2018-08-06T03:59:36Z meepdeew quit 2018-08-06T04:00:19Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-06T04:25:57Z gector quit (Ping timeout: 240 seconds) 2018-08-06T04:43:20Z jibanes quit (Ping timeout: 244 seconds) 2018-08-06T04:48:31Z gector joined #lisp 2018-08-06T04:57:41Z Copenhagen_Bram quit (Ping timeout: 265 seconds) 2018-08-06T04:58:06Z Elon_Satoshi joined #lisp 2018-08-06T04:58:24Z pjb quit (Remote host closed the connection) 2018-08-06T04:59:45Z gigetoo quit (Ping timeout: 248 seconds) 2018-08-06T05:09:47Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T05:16:51Z gigetoo joined #lisp 2018-08-06T05:21:55Z pointerk joined #lisp 2018-08-06T05:26:41Z beach: Good morning everyone! 2018-08-06T05:27:35Z clhsgang[m]: hi beach 2018-08-06T05:30:19Z moei joined #lisp 2018-08-06T05:31:54Z pointerk quit (Remote host closed the connection) 2018-08-06T05:38:29Z cpape joined #lisp 2018-08-06T05:38:33Z phoe: morniiing 2018-08-06T05:41:18Z kozy quit (Quit: No Ping reply in 180 seconds.) 2018-08-06T05:42:26Z kozy joined #lisp 2018-08-06T05:42:50Z Oladon quit (Quit: Leaving.) 2018-08-06T05:52:30Z Inline quit (Quit: Leaving) 2018-08-06T05:52:48Z panji joined #lisp 2018-08-06T05:57:01Z aeth_ is now known as aeth 2018-08-06T05:57:45Z Kundry_Wag joined #lisp 2018-08-06T05:58:39Z vlatkoB joined #lisp 2018-08-06T06:00:54Z v0|d joined #lisp 2018-08-06T06:04:27Z gko quit (Ping timeout: 260 seconds) 2018-08-06T06:10:52Z nowhere_man joined #lisp 2018-08-06T06:11:41Z Fare quit (Ping timeout: 244 seconds) 2018-08-06T06:17:40Z gko joined #lisp 2018-08-06T06:25:42Z moei quit (Ping timeout: 256 seconds) 2018-08-06T06:27:15Z schweers joined #lisp 2018-08-06T06:28:04Z tralala joined #lisp 2018-08-06T06:30:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-06T06:33:28Z shrdlu68 joined #lisp 2018-08-06T06:40:02Z LdBeth: I guess it would be nice to extend lisp’s language parser with pattern match 2018-08-06T06:41:49Z ofi joined #lisp 2018-08-06T06:43:06Z hiroaki joined #lisp 2018-08-06T06:45:36Z jackdaniel: LdBeth: check out library optima 2018-08-06T06:46:46Z clhsgang[m]: yeah optima does pattern matching 2018-08-06T06:47:55Z beach: I thought it was another request for updating the standard. 2018-08-06T06:48:47Z mathZ quit (Remote host closed the connection) 2018-08-06T06:49:49Z hiroaki quit (Ping timeout: 265 seconds) 2018-08-06T06:50:35Z clhsgang[m]: (with-sarcasm (format nil "hey can we add ~a to the standard it's like a very important programming thing" (random-elt '("currying" "polymorphic types" "traits" "memory safety"))) 2018-08-06T06:52:08Z LdBeth: It is not wise to request update standard with test and examinations. 2018-08-06T06:53:51Z LdBeth: But I believe it can bring solutions to problems 1. Static analysis 2. Code formatting 2018-08-06T06:53:53Z clhsgang[m]: i can't believe X3J13 voted against DESCRIPTIVE-TEXT-MACROS, gees 2018-08-06T06:58:47Z moei joined #lisp 2018-08-06T06:59:42Z lieven: clhsgang[m]: what were those? 2018-08-06T07:00:08Z clhsgang[m]: adds the WITH-SARCASM macro among other text descriptive words /s 2018-08-06T07:00:25Z clhsgang[m]: (no, they're not real.) 2018-08-06T07:02:19Z hiroaki joined #lisp 2018-08-06T07:06:08Z tralala` joined #lisp 2018-08-06T07:08:10Z tralala quit (Ping timeout: 264 seconds) 2018-08-06T07:09:08Z heisig joined #lisp 2018-08-06T07:09:54Z iridioid quit (Ping timeout: 256 seconds) 2018-08-06T07:12:03Z drewes joined #lisp 2018-08-06T07:14:06Z eminhi joined #lisp 2018-08-06T07:20:10Z Khisanth quit (Ping timeout: 264 seconds) 2018-08-06T07:21:24Z varjag joined #lisp 2018-08-06T07:21:47Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- In tests, 0x09 out of 0x0A l33t h4x0rz prefer it :)) 2018-08-06T07:23:27Z schweers quit (Remote host closed the connection) 2018-08-06T07:25:15Z lel quit (Ping timeout: 245 seconds) 2018-08-06T07:25:23Z eminhi quit (Quit: leaving) 2018-08-06T07:26:27Z oldtopman quit (Ping timeout: 240 seconds) 2018-08-06T07:27:15Z lel joined #lisp 2018-08-06T07:27:28Z beach quit (Ping timeout: 256 seconds) 2018-08-06T07:28:12Z schweers joined #lisp 2018-08-06T07:29:10Z beach joined #lisp 2018-08-06T07:29:55Z schweers quit (Remote host closed the connection) 2018-08-06T07:31:56Z trafaret1 joined #lisp 2018-08-06T07:31:58Z trafaret1: hi there 2018-08-06T07:32:11Z beach: Hello trafaret1. 2018-08-06T07:32:14Z trafaret1: can anybody ask me 2018-08-06T07:32:27Z schweers joined #lisp 2018-08-06T07:32:38Z trafaret1: for what I need lisp in 21 century? 2018-08-06T07:33:05Z Shinmera: Ok: what do you need lisp for in the 21st century? 2018-08-06T07:33:11Z beach: Heh, you beat me to it. 2018-08-06T07:33:44Z oldtopman joined #lisp 2018-08-06T07:33:53Z trafaret1: should I learn it or not 2018-08-06T07:33:56Z trafaret1: be or not to be question 2018-08-06T07:34:24Z beach: trafaret1: You are in a channel dedicated to Common Lisp. Of course we would encourage you to learn it. 2018-08-06T07:34:25Z trafaret1: it's like mammoth shit 2018-08-06T07:34:53Z Shinmera: Is this a markov chain 2018-08-06T07:35:04Z beach: I just got bored with this conversation. 2018-08-06T07:36:27Z shrdlu68: What we need now is a bunch of people learning CL half-heartedly and writing blog posts comparing it unfavourably to some other language. 2018-08-06T07:36:42Z trafaret1: beach: does it gives I mean understand programming in lisp some afflatus 2018-08-06T07:36:53Z trafaret1: or not ? 2018-08-06T07:37:04Z schweers: wtf did I just read there? 2018-08-06T07:37:17Z trafaret1: come on 2018-08-06T07:37:22Z schweers: oh and: Hi Everyone! 2018-08-06T07:37:26Z trafaret1: I not native english speaker 2018-08-06T07:37:29Z trafaret1: don't be picky 2018-08-06T07:37:31Z trafaret1: fucking murican 2018-08-06T07:37:32Z beach: trafaret1: Your trolling would be much more effective if you learned the grammar of English. 2018-08-06T07:37:55Z angavrilov joined #lisp 2018-08-06T07:38:04Z schweers: being called an american ... that’s a first :D 2018-08-06T07:38:08Z shrdlu68: I'm not sure he's trolling - English may not be his first language. 2018-08-06T07:38:39Z Khisanth joined #lisp 2018-08-06T07:38:43Z beach: shrdlu68: You think? :) 2018-08-06T07:39:24Z LdBeth: I’m not sure if it’s a trolling—English is my second language 2018-08-06T07:39:51Z shrdlu68: Third. 2018-08-06T07:40:34Z schweers: TIL about the word afflatus. I seriously didn’t know it, and it actually does kinda fit the question. So yes, maybe I was too harsh 2018-08-06T07:41:04Z Shinmera: Colleen: define afflatus 2018-08-06T07:41:05Z Colleen: afflatus /əˈfleɪtəs/ 2018-08-06T07:41:05Z Colleen: (noun): a divine creative impulse or inspiration. 2018-08-06T07:41:30Z varjag: it's trolling either way 2018-08-06T07:42:19Z shrdlu68: Clearly he's not very enthused about the prospect of learning some mammoth shit. 2018-08-06T07:43:13Z schweers: As to the actual question, whether or not learing lisp will benifit an individual ... just fucking google it already. These is enough on the web to answer that question. 2018-08-06T07:43:25Z clhsgang[m]: well mammoth shit seems pretty interesting 2018-08-06T07:43:31Z clhsgang[m]: mammoths are extinct so that's useful science knowledge 2018-08-06T07:43:36Z edgar-rft has learned Lisp just *because* it's mammoth shit 2018-08-06T07:43:47Z varjag: schweers: noone comes asking that question here in good faith 2018-08-06T07:44:06Z schweers: varjag: you may be right. 2018-08-06T07:44:27Z clhsgang[m]: "damn why did i make this mammoth shit of a language" john mccarthy 1958 2018-08-06T07:44:42Z shrdlu68: varjag: ...especially not with such flowery language. 2018-08-06T07:44:49Z varjag: clhsgang[m]: 'old as mammoth shit' is a common russian idiom 2018-08-06T07:45:04Z beach: Interesting. 2018-08-06T07:45:17Z varjag: plenty russians also think that anyone speaking english has to be american 2018-08-06T07:45:26Z clhsgang[m]: RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE (Part I): why did i do this 2018-08-06T07:45:34Z clhsgang[m]: why the fuck did i just write this mammoth shit please don't fund my research 2018-08-06T07:46:48Z LdBeth: GG 2018-08-06T07:46:49Z Shinmera: That's actually me, but with everything I code 2018-08-06T07:47:06Z edgar-rft: the term "mammoth shit" is badly missing in the CLHS glossary 2018-08-06T07:47:20Z beach: We need to update the standard to include it. 2018-08-06T07:47:59Z schweers: As we have quite a few people here who don’t speak english as a native language ... what do you folks make of Eric Raymond’s advice for would-be hackers to learn proper english? 2018-08-06T07:48:08Z clhsgang[m]: - mammoth shit: see common lisp 2018-08-06T07:48:22Z edgar-rft: with mammoth shit we can make trafaret1 happy :-) 2018-08-06T07:48:25Z zigpaw: so everyone will have to re-buy the print version to have the latest standard version with 'mammoth shit' included? sounds like a plan ;) 2018-08-06T07:49:02Z LdBeth: The update will be distributed as a single page errata 2018-08-06T07:49:02Z loke: schweers: Not surpirsing he'd say something like that, given the author. 2018-08-06T07:49:06Z clhsgang[m]: and this is how commercial CL gets money 2018-08-06T07:49:15Z edgar-rft: no, we just release dpANS4 2018-08-06T07:49:18Z schweers: loke: how so? 2018-08-06T07:49:25Z LdBeth: !clhs gang: by teaching proper English? 2018-08-06T07:49:49Z loke: schweers: read some of esr's writings. 2018-08-06T07:49:58Z clhsgang[m]: releasing revision (incf revision) of the CLHS just to cover mammoth shit 2018-08-06T07:50:12Z edgar-rft: from cover to cover 2018-08-06T07:50:17Z clhsgang[m]: anyways i think people should analyse people like esr's and graham's code, not personal beliefs 2018-08-06T07:50:44Z clhsgang[m]: the code is less shitty than their beliefs so just learn from that 2018-08-06T07:50:55Z trafaret1: it's proved fact that java with clojure moving toword lisp paradigm 2018-08-06T07:51:05Z trafaret1: maybe I'm wrong 2018-08-06T07:51:11Z trafaret1: but ... who can explain 2018-08-06T07:51:15Z LdBeth: No 2018-08-06T07:51:36Z LdBeth: Clojure is defined functional paradigm 2018-08-06T07:51:43Z tralala` is now known as tralala 2018-08-06T07:51:48Z edgar-rft: before learning Lisp one first sholuld learn howto shit like a mammoth 2018-08-06T07:51:58Z schweers: I don’t think there is such a thing as “lisp paradigm“ 2018-08-06T07:52:03Z beach: schweers: I have been in many meetings where English was spoken but where many participants did not master it. It was interesting to observe how the people mastering the language more frequently got their opinions voted on. 2018-08-06T07:52:08Z trafaret1: edgar-rft: lol 2018-08-06T07:52:21Z LdBeth: (? ? ? Paradigm) 2018-08-06T07:52:45Z schweers: beach: what exactly do you mean by “voted on”? They got more feedback and the like? 2018-08-06T07:53:07Z beach: Their ideas were more often adopted. 2018-08-06T07:53:08Z beach: 2018-08-06T07:53:28Z beach: Even though they were inferior to those of the non-native speakers. 2018-08-06T07:53:56Z LdBeth: GG 2018-08-06T07:54:52Z schweers: Not surprising. I am guity of zoning off when I have to listen to someone who does not speak the language somewhat competently. 2018-08-06T07:55:04Z schweers: Not something I’m proud of, but it happens. 2018-08-06T07:55:23Z loke: schweers: How many languages do you speal (more or less fluently)? 2018-08-06T07:55:26Z loke: speak, even 2018-08-06T07:55:34Z schweers: So I guess that the ideas of those who did not master the language were simply not will understood by the audience. 2018-08-06T07:56:00Z schweers: Note that I don’t want to blame anyone for not speaking english. I tried to learn french in school and failed miserably. 2018-08-06T07:56:13Z edgar-rft: we shold leran to speak Lisp in our everyday conversations 2018-08-06T07:56:19Z schweers: loke: just two, so I’m not exactly a polyglot. 2018-08-06T07:56:20Z beach: schweers: It was also that they were too shy to protest because they couldn't express the objections very well. 2018-08-06T07:56:21Z Shinmera: schweers: It's not about language, just about how competent people appear. If someone speaks fluently they appear more competent. There's other factors to this too of course. 2018-08-06T07:56:39Z schweers: Shinmera: good point 2018-08-06T07:56:40Z shrdlu68: For the average Random J. D'vloper, one of the first things they picture when someone mentions Lisp is immense age. What good is an antediluvian language? Surely the newer languages were invented for a reason? 2018-08-06T07:57:17Z loke: schweers: Still, I'd have thought that the behaviour you descibed would be more common in people who only speak one language. 2018-08-06T07:57:34Z schweers: loke: my point is actually: I shy away from telling people they must learn a language, because I failed at doing so myself. 2018-08-06T07:58:05Z LdBeth: I would argue there’re not many completely new languages invented 2018-08-06T07:58:06Z loke: schweers: Yes. I agree with you. 2018-08-06T07:58:18Z loke: I find esr to be a hopelessly narrow-minded individual 2018-08-06T07:58:31Z schweers: That I speak two is just a happy accident ;) 2018-08-06T07:58:54Z trafaret1: btw anybody tryed to do programming automation systems with lisp? 2018-08-06T07:58:56Z loke: schweers: which one is the other one? 2018-08-06T07:59:01Z schweers: I must admit that I have not read many of his writings. 2018-08-06T07:59:09Z schweers: loke: German (my mother tongue) 2018-08-06T07:59:20Z trafaret1: schweers: guten tag 2018-08-06T07:59:21Z loke: schweers: It reads like your typical US rightwingnut 2018-08-06T07:59:53Z loke: schweers: Ah, ich habe Deutsch gelernt... Drei jahre, ich glaube. 2018-08-06T07:59:55Z schweers: loke: at first glance he seems to be gun nut, which so does not resonate with me (I hope I’m not starting any flamewars here) 2018-08-06T07:59:56Z dim: there's only one way to get good at anything and that's practice. so if you want to help people to speak a new language, well, the best you can do is offer them more practice opportunities, and that means listening to them, not speaking to them. 2018-08-06T08:00:01Z loke: or soemthing like that. My german is horrible. 2018-08-06T08:00:17Z shrdlu68: schweers: Ein Person desen Haus! 2018-08-06T08:00:28Z Shinmera: Can we get back to lisp? 2018-08-06T08:00:31Z schweers: lol, what did I start here? 2018-08-06T08:00:36Z loke: However, I mostly listen to German music, so there's that. 2018-08-06T08:01:46Z LdBeth: schweers: probably reasons for learning lisp 2018-08-06T08:02:14Z schweers: LdBeth: sorry, what? 2018-08-06T08:02:48Z varjag: schweers: esr is quite right wing, so many feel justified to ignore his personal opinions on hacker culture 2018-08-06T08:02:59Z varjag: as to his code, i know it exists but haven't looked into any 2018-08-06T08:03:04Z trafaret1: how good lisp at programming IoT? 2018-08-06T08:03:06Z varjag: fetchmail? 2018-08-06T08:03:49Z varjag: as good as anything else 2018-08-06T08:04:15Z dim: the question I keep reading about esr and code is: how much did he actually write himself? but again, that's stearing away from our topic 2018-08-06T08:04:44Z loke: dim: who knows? He's very good at taking credit. 2018-08-06T08:05:09Z zigpaw: depends on what you mean by IoT, as this buzzword is quite encompassing (ie a laptop can be considered an IoT device). 2018-08-06T08:05:37Z varjag: iot is embedded for hipsters 2018-08-06T08:05:39Z LdBeth: Lost 2018-08-06T08:07:02Z zigpaw: IoT is considered much more than embedded I think. You even have cloud for IoT sold, and many other "products" that are clearly not embedded goes into this bag. 2018-08-06T08:07:03Z dim: also remember: “The S in IoT stands for Security”. 2018-08-06T08:07:43Z zigpaw: yeah :) 2018-08-06T08:08:29Z trafaret1: don't get me an annoying person but another question for pro programmers 2018-08-06T08:08:41Z trafaret1: I'm just started lean how to programming plc 2018-08-06T08:09:20Z LdBeth: Then congratulations 2018-08-06T08:09:26Z trafaret1: quesion is 2018-08-06T08:09:32Z trafaret1: how to build fms 2018-08-06T08:09:49Z trafaret1: which way would be simple and clearest for this 2018-08-06T08:10:04Z oldtopman quit (Read error: No route to host) 2018-08-06T08:11:29Z oldtopman joined #lisp 2018-08-06T08:14:05Z varjag: zigpaw: it is considered more than embedded, but in practice *is* embedded 2018-08-06T08:14:24Z varjag: smart lightbulbs? bluetooth doorlocks? 2018-08-06T08:15:07Z varjag: as to the cloud, managing devices via network isn't a new invention 2018-08-06T08:15:47Z trafaret1: and one more question as a nobie I will to know how to design rangs or modes 2018-08-06T08:15:52Z trafaret1: for example 1 - Manual 2018-08-06T08:15:55Z trafaret1: 2 - Automat 2018-08-06T08:15:58Z trafaret1: 3 - Protectio mode 2018-08-06T08:16:06Z trafaret1: is there good book for this stuff 2018-08-06T08:17:46Z Denommus quit (Ping timeout: 264 seconds) 2018-08-06T08:21:00Z varjag: hard to tell what you mean here 2018-08-06T08:26:07Z eminhi joined #lisp 2018-08-06T08:27:26Z Kundry_Wag joined #lisp 2018-08-06T08:31:52Z oldtopman quit (Read error: Connection reset by peer) 2018-08-06T08:32:38Z oldtopman joined #lisp 2018-08-06T08:52:22Z josemanuel joined #lisp 2018-08-06T09:00:49Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-06T09:02:52Z trafaret1: language barrier 2018-08-06T09:03:53Z gravicappa joined #lisp 2018-08-06T09:15:41Z mingus quit (Remote host closed the connection) 2018-08-06T09:19:06Z mingus joined #lisp 2018-08-06T09:24:05Z schweers: I’m reading AMOP chapter 5 and in the section on methods it says that a method contains a generic function, /if/ the method is associated with a generic function. It further states, that a method can be associated with at most one generic function at a time. My question is this: how can a method /not/ be associated with a generic function? 2018-08-06T09:25:35Z beach: schweers: If you just create the method using MAKE-INSTANCE it will not be associated with any generic function. 2018-08-06T09:25:44Z beach: For that you then have to do ADD-METHOD. 2018-08-06T09:25:55Z schweers: does it make sense to do so? 2018-08-06T09:26:06Z schweers: let me rephrase that 2018-08-06T09:26:26Z schweers: does it make senst to have a method not associated with a gf, unless one is about to associate it? 2018-08-06T09:27:17Z beach: Probably not much. 2018-08-06T09:27:35Z schweers: okay, thanks 2018-08-06T09:27:59Z no-defun-allowed backs up on chat 2018-08-06T09:28:10Z no-defun-allowed: okay why do you want methods associated with your girlf.........wait no 2018-08-06T09:30:44Z v0|d: no-defun-allowed: beer overflow? 2018-08-06T09:31:06Z jsjolen joined #lisp 2018-08-06T09:31:44Z no-defun-allowed: more like beer underflow 2018-08-06T09:32:02Z no-defun-allowed: i've been so sober it wrapped around to most-positive-fixnum 2018-08-06T09:32:18Z v0|d: beach: do you have something in writing that talks about std-class bein a std-class, what do they call it in GHC, rankN types? 2018-08-06T09:35:01Z jsjolen: no-defun-allowed: Does your body not support a full beer gut tower? 2018-08-06T09:37:00Z no-defun-allowed: not sure 2018-08-06T09:37:55Z no-defun-allowed: it's a very buggy body to say the least. someone compiled it with (DECLARE (Y-CHROMOSOME T)) and now i have to put up with it 2018-08-06T09:37:56Z no-defun-allowed: recompiling the world would be very expensive to say the least. 2018-08-06T09:38:04Z jsjolen: Yeah, it's pretty typical to optimize for unsafety when drunk so that might be why you had wrap-around issues 2018-08-06T09:38:38Z no-defun-allowed: that's probably about right 2018-08-06T09:39:18Z charh quit (Remote host closed the connection) 2018-08-06T09:39:36Z charh joined #lisp 2018-08-06T09:43:23Z quipa joined #lisp 2018-08-06T09:44:04Z no-defun-allowed: unfortunately estradiol isn't in the quicklisp packages so i'll have to find it somewhere else 2018-08-06T09:47:03Z v0|d: offtpc(sry): do anybody know a channel where I can ask about arm asm? 2018-08-06T09:47:56Z no-defun-allowed: ##asm seems like "assembler" 2018-08-06T09:48:33Z v0|d: thnx 2018-08-06T09:51:26Z phoe: schweers: not really 2018-08-06T09:51:34Z beach: v0|d: This picture is derived from information in the AMOP book: http://metamodular.com/CLOS-MOP/graph.png 2018-08-06T09:51:53Z phoe: I mean, technically, you can create a method object, equip it with some function, then call that method directly without calling any generic function at all. 2018-08-06T09:52:18Z phoe: If your use case is unusual enough to involve such mechanisms, then it might be feasible for you. 2018-08-06T09:52:28Z beach: As you can see, the word STANDARD-CLASS is in red, meaning that it is an instance of STANDARD-CLASS (because the rectangle is drawn in red). 2018-08-06T09:52:32Z orivej joined #lisp 2018-08-06T09:53:05Z phoe: But unless you dive deep into CLOS/MOP internals and have enough knowledge to back you up in case you screw something up, the answer is, no, it doesn't make sense. 2018-08-06T09:53:43Z v0|d: beach: the only red I can see. 2018-08-06T09:53:46Z Shinmera: The point of the blurb is simply that it is possible for methods to exist without generic functions (because they need to be created first and then attached) 2018-08-06T09:54:02Z schweers: thanks for the extra info. It makes sense now 2018-08-06T09:54:50Z beach: v0|d: The color of the text determines the metaclass. If the color is green, the metaclass is built-in-class. If the color is blue, the metaclas is funcallable-standard-class. Etc. 2018-08-06T09:56:45Z dddddd joined #lisp 2018-08-06T09:58:32Z mingus quit (Remote host closed the connection) 2018-08-06T10:03:16Z v0|d: beach: Do you know a particular algorithm that employs this recursive type? (std-class) 2018-08-06T10:03:43Z v0|d: (sry, I should have not calld std-class a type) 2018-08-06T10:04:43Z beach: It is a type. 2018-08-06T10:05:05Z lel quit (Ping timeout: 240 seconds) 2018-08-06T10:05:25Z beach: Well, it is more like this: Since every Common Lisp object is the instance of some class, unless you want infinitely many classes, there has to be a cycle somewhere in the graph. 2018-08-06T10:07:03Z lel joined #lisp 2018-08-06T10:09:40Z random-nick joined #lisp 2018-08-06T10:12:17Z phoe: with the smallest cycle being (typep (make-instance 'standard-object) 'standard-object) ;=> T 2018-08-06T10:12:29Z phoe: wait a second, no, not that 2018-08-06T10:12:32Z Shinmera: :V 2018-08-06T10:12:37Z phoe: (typep (find-class 'standard-object) 'standard-object) 2018-08-06T10:12:40Z phoe: this one 2018-08-06T10:13:09Z phoe: the class STANDARD-OBJECT is an instance of itself 2018-08-06T10:14:17Z beach: Not an immediate instance though. 2018-08-06T10:14:54Z phoe: Hm 2018-08-06T10:15:14Z phoe: that's correct, class -> specializer -> metaobject -> standard-object. 2018-08-06T10:15:21Z phoe: Can we do better? 2018-08-06T10:15:35Z beach: The cycle is (class-of (find-class 'standard-class)) 2018-08-06T10:16:01Z phoe: Oh, right 2018-08-06T10:16:01Z eminhi quit (Remote host closed the connection) 2018-08-06T10:16:33Z v0|d: so its kinda fixpoint 2018-08-06T10:16:42Z v0|d: of functions which act on std-class 2018-08-06T10:16:48Z v0|d: or classes. 2018-08-06T10:17:35Z light2yellow quit (Ping timeout: 240 seconds) 2018-08-06T10:17:48Z phoe: kind-of, yes 2018-08-06T10:23:32Z panji quit (Quit: Leaving.) 2018-08-06T10:31:31Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T10:31:40Z m00natic joined #lisp 2018-08-06T10:33:40Z tfb joined #lisp 2018-08-06T10:38:34Z vlatkoB_ joined #lisp 2018-08-06T10:41:54Z vlatkoB quit (Ping timeout: 244 seconds) 2018-08-06T10:47:05Z lel quit (Ping timeout: 240 seconds) 2018-08-06T10:49:25Z lel joined #lisp 2018-08-06T10:50:58Z jsjolen left #lisp 2018-08-06T10:51:22Z v0|d: um, we can have different cycles yet we have the same fixpoint of all. 2018-08-06T10:51:45Z v0|d: I wonder if this is similar to the concept of genus of curves in math. 2018-08-06T10:55:42Z mingus joined #lisp 2018-08-06T10:56:55Z milanj joined #lisp 2018-08-06T10:58:09Z Kundry_Wag joined #lisp 2018-08-06T11:11:18Z oldtopman quit (Read error: No route to host) 2018-08-06T11:15:18Z oldtopman joined #lisp 2018-08-06T11:16:52Z nirved joined #lisp 2018-08-06T11:19:34Z orivej quit (Ping timeout: 260 seconds) 2018-08-06T11:25:05Z igemnace_ quit (Quit: WeeChat 2.2) 2018-08-06T11:25:23Z Murii__ quit (Ping timeout: 268 seconds) 2018-08-06T11:30:39Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-06T11:34:05Z pierpal quit (Quit: Poof) 2018-08-06T11:34:23Z pierpal joined #lisp 2018-08-06T11:46:21Z Kundry_Wag joined #lisp 2018-08-06T11:49:42Z drewes joined #lisp 2018-08-06T11:49:56Z notnull quit (Remote host closed the connection) 2018-08-06T11:51:39Z Kundry_Wag quit (Remote host closed the connection) 2018-08-06T11:51:58Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-08-06T12:00:03Z v0|d quit (Remote host closed the connection) 2018-08-06T12:00:21Z rpg joined #lisp 2018-08-06T12:01:05Z pierpal quit (Ping timeout: 240 seconds) 2018-08-06T12:04:47Z pjb joined #lisp 2018-08-06T12:07:39Z v0|d joined #lisp 2018-08-06T12:08:01Z shrdlu68 joined #lisp 2018-08-06T12:08:17Z sjl joined #lisp 2018-08-06T12:10:44Z Kevslinger joined #lisp 2018-08-06T12:25:36Z Fare joined #lisp 2018-08-06T12:33:01Z igemnace joined #lisp 2018-08-06T12:33:27Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-08-06T12:39:00Z Bike joined #lisp 2018-08-06T12:39:11Z shrdlu68 joined #lisp 2018-08-06T12:44:06Z Arcaelyx quit (Ping timeout: 265 seconds) 2018-08-06T12:45:53Z Bronsa quit (Ping timeout: 248 seconds) 2018-08-06T12:48:46Z Bronsa joined #lisp 2018-08-06T12:50:12Z Arcaelyx joined #lisp 2018-08-06T12:57:05Z LiamH joined #lisp 2018-08-06T12:57:27Z eminhi joined #lisp 2018-08-06T13:00:29Z pierpal joined #lisp 2018-08-06T13:02:34Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T13:04:50Z bigfondue quit (Ping timeout: 245 seconds) 2018-08-06T13:05:11Z trafaret1 left #lisp 2018-08-06T13:24:47Z mindCrime joined #lisp 2018-08-06T13:26:39Z bigfondue joined #lisp 2018-08-06T13:26:44Z Fare quit (Ping timeout: 256 seconds) 2018-08-06T13:30:57Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-06T13:36:42Z ofi quit (Remote host closed the connection) 2018-08-06T13:49:20Z heisig quit (Quit: Leaving) 2018-08-06T13:50:58Z Inline joined #lisp 2018-08-06T13:51:57Z pierpal quit (Ping timeout: 240 seconds) 2018-08-06T13:53:40Z tralala: (pcomplete-erc-nicks ?, nil) 2018-08-06T13:54:42Z pierpal joined #lisp 2018-08-06T13:54:55Z LdBeth: USERS 2018-08-06T13:56:42Z tralala: sorry, I was supposed to evaluate this, not post it 2018-08-06T14:02:51Z Fare joined #lisp 2018-08-06T14:04:35Z tralala quit (Ping timeout: 240 seconds) 2018-08-06T14:05:45Z dyelar joined #lisp 2018-08-06T14:10:07Z pierpal quit (Quit: Poof) 2018-08-06T14:10:27Z pierpal joined #lisp 2018-08-06T14:12:05Z gpiero quit (Ping timeout: 240 seconds) 2018-08-06T14:13:16Z kushal quit (Remote host closed the connection) 2018-08-06T14:13:32Z kushal joined #lisp 2018-08-06T14:13:34Z trittweiler quit (Ping timeout: 264 seconds) 2018-08-06T14:18:48Z eddof13 joined #lisp 2018-08-06T14:21:30Z slyrus1 joined #lisp 2018-08-06T14:23:11Z starman_jr_ joined #lisp 2018-08-06T14:25:01Z lacedaemon joined #lisp 2018-08-06T14:25:01Z ChanServ has set mode +o lacedaemon 2018-08-06T14:26:33Z swflint quit (Ping timeout: 240 seconds) 2018-08-06T14:26:33Z slyrus quit (Ping timeout: 240 seconds) 2018-08-06T14:26:34Z gendl quit (Ping timeout: 240 seconds) 2018-08-06T14:26:34Z tazjin quit (Ping timeout: 240 seconds) 2018-08-06T14:26:34Z Fade quit (Ping timeout: 240 seconds) 2018-08-06T14:26:34Z cyberlard quit (Ping timeout: 240 seconds) 2018-08-06T14:26:34Z starman_jr quit (Ping timeout: 240 seconds) 2018-08-06T14:26:36Z Gnuxie[m] quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z spacedbat quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z shaftoe_ quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z dan64 quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z cgay quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z groovy2shoes quit (Ping timeout: 240 seconds) 2018-08-06T14:26:37Z bexx_ quit (Ping timeout: 240 seconds) 2018-08-06T14:26:38Z fe[nl]ix quit (Ping timeout: 240 seconds) 2018-08-06T14:26:38Z Blkt quit (Ping timeout: 240 seconds) 2018-08-06T14:26:42Z slyrus1 is now known as slyrus 2018-08-06T14:26:44Z starman_jr_ is now known as starman_jr 2018-08-06T14:27:41Z dan64 joined #lisp 2018-08-06T14:28:22Z swflint joined #lisp 2018-08-06T14:30:19Z detergnet quit (Ping timeout: 260 seconds) 2018-08-06T14:30:37Z mindCrime joined #lisp 2018-08-06T14:30:41Z groovy2shoes joined #lisp 2018-08-06T14:31:29Z codenix quit (Ping timeout: 260 seconds) 2018-08-06T14:31:37Z msb joined #lisp 2018-08-06T14:33:46Z jludwig joined #lisp 2018-08-06T14:35:37Z Guest26876 joined #lisp 2018-08-06T14:37:22Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T14:39:00Z jludwig is now known as cyberlard 2018-08-06T14:39:40Z Guest26876 is now known as giraffe 2018-08-06T14:43:12Z iridioid joined #lisp 2018-08-06T14:46:25Z drewes joined #lisp 2018-08-06T14:49:04Z light2yellow joined #lisp 2018-08-06T14:51:00Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-06T14:51:47Z zxcvz joined #lisp 2018-08-06T14:57:54Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-06T14:59:32Z random-nick quit (Read error: Connection reset by peer) 2018-08-06T15:00:43Z shrdlu68 quit (Quit: WeeChat 2.0.1) 2018-08-06T15:01:23Z random-nick joined #lisp 2018-08-06T15:01:49Z nika joined #lisp 2018-08-06T15:09:20Z AeroNotix joined #lisp 2018-08-06T15:09:29Z AeroNotix: Long time no irc 2018-08-06T15:09:33Z AeroNotix: wahooo 2018-08-06T15:10:33Z Inline: try the seat ejection button.... 2018-08-06T15:10:37Z Inline: lol 2018-08-06T15:12:11Z FreeBirdLjj joined #lisp 2018-08-06T15:12:18Z JuanDaugherty joined #lisp 2018-08-06T15:12:27Z tazjin joined #lisp 2018-08-06T15:12:44Z drewes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T15:15:01Z drewes joined #lisp 2018-08-06T15:15:36Z drewes quit (Client Quit) 2018-08-06T15:16:42Z trittweiler joined #lisp 2018-08-06T15:16:44Z Inline quit (Read error: Network is unreachable) 2018-08-06T15:17:17Z orivej joined #lisp 2018-08-06T15:18:52Z Inline joined #lisp 2018-08-06T15:21:52Z AeroNotix: Any news in the lisp world? 2018-08-06T15:22:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-06T15:23:29Z eminhi quit (Ping timeout: 244 seconds) 2018-08-06T15:24:46Z Inline: yes there's a () heading in from 4h33'22'' 2018-08-06T15:25:04Z Inline: lol 2018-08-06T15:25:18Z beach: AeroNotix: froggey announced a new version of Mezzano. 2018-08-06T15:27:32Z AeroNotix: beach: Is mezzano worth running as a full OS? 2018-08-06T15:27:38Z AeroNotix: i.e. replacing linuix 2018-08-06T15:27:41Z AeroNotix: linux* for me 2018-08-06T15:27:59Z beach: I don't know, but I doubt it. I have never tried it. 2018-08-06T15:28:03Z Shinmera: if all you want to do doom sure 2018-08-06T15:28:07Z Shinmera: *do is play doom 2018-08-06T15:28:42Z AeroNotix: It runs doom? 2018-08-06T15:28:53Z Shinmera: Yes, but then again what doesn't 2018-08-06T15:29:01Z AeroNotix: I ran mezzano for like 10 seconds a few years ago. Clicked around, "huh cool" and never ran it again 2018-08-06T15:29:12Z Inline: i ran it too 2018-08-06T15:29:20Z Inline: but the keyboard was purely american or so 2018-08-06T15:29:23Z AeroNotix: running emacs + chrome (or something) would be far superior 2018-08-06T15:29:25Z Inline: so couldn't type 2018-08-06T15:29:27Z AeroNotix: haha, americans 2018-08-06T15:29:28Z Inline: and gave up 2018-08-06T15:30:15Z beach: froggey: Is from the UK as I recall. 2018-08-06T15:30:19Z random-nick: Inline: nah, the default keyboard in Mezzano is UK 2018-08-06T15:30:28Z Fare joined #lisp 2018-08-06T15:30:35Z random-nick: you can get the US layout by pressing meta-F12 5 times 2018-08-06T15:30:57Z beach: froggey: Sorry, didn't mean to address you there. 2018-08-06T15:31:14Z Inline: no idea, it seems mezzano source i have is old, and couldn't find any new ones 2018-08-06T15:31:53Z AeroNotix: Has/will it run on bare metal? 2018-08-06T15:31:54Z Inline: i'd have liked to put it onto usb and try it from there 2018-08-06T15:32:10Z Inline: for a bare bones feeling.... 2018-08-06T15:32:12Z Inline: lol 2018-08-06T15:32:27Z random-nick: iirc demo4 has a pre-compiled USB image 2018-08-06T15:32:42Z Inline: hmmm 2018-08-06T15:32:53Z Inline: is that all new ? i thought it was discontinued 2018-08-06T15:33:11Z random-nick: but you might have trouble getting it to connect to the network because Mezzano only supports a single ethernet card 2018-08-06T15:33:36Z random-nick: Inline: yes, it was released 9 days ago 2018-08-06T15:33:38Z random-nick: https://github.com/froggey/Mezzano/releases/tag/demo4 2018-08-06T15:33:52Z Inline: aww 2018-08-06T15:34:16Z random-nick: btw, Mezzano has a channel on freenode 2018-08-06T15:34:57Z Inline: ok, got it 2018-08-06T15:35:27Z Inline: dd bs=1 in=blah out=/dev/blah count=1 ? 2018-08-06T15:36:01Z Inline: one question, does it have networking ? 2018-08-06T15:36:21Z Fare quit (Ping timeout: 264 seconds) 2018-08-06T15:36:26Z random-nick: Inline: well, partially 2018-08-06T15:36:37Z Inline: which means ? 2018-08-06T15:36:54Z Inline: can i get out to the internet ? 2018-08-06T15:36:59Z Inline: or not ? 2018-08-06T15:37:11Z Inline: i don't ask for fancy firewall or whatnot.... 2018-08-06T15:37:13Z random-nick: it doesn't have DHCP, TCP retransmit, ICMP (but it has enough of it to get ping to work), and it has only 1 network driver 2018-08-06T15:37:21Z Inline: awww 2018-08-06T15:37:38Z Inline: oki 2018-08-06T15:38:00Z random-nick: so only very simple networking things work and you have to manually configure the IP address 2018-08-06T15:38:13Z random-nick: but it can run an IRC client 2018-08-06T15:38:20Z Inline: heh 2018-08-06T15:38:51Z Fare joined #lisp 2018-08-06T15:43:06Z AeroNotix: It's funny really. I would have thought a Lisp OS would be the wet dream of every lisper but I haven't seen much interest in Mezzano unfortunately. 2018-08-06T15:43:55Z Shinmera: OSs are hard and only few people have the know-how and/or dedication to commit to it. 2018-08-06T15:44:10Z Fare quit (Ping timeout: 264 seconds) 2018-08-06T15:45:07Z AeroNotix: For sure, for sure. I'm part of that group. 2018-08-06T15:45:29Z pjb: AeroNotix: wet dreams or not, during the day the tools I use are: emacs, firefox, bash, posix commands, git, gcc or clang and a bunch of C libraries. If Mezzano cannot support those programs, then I cannot use it, but in wet dreams. 2018-08-06T15:45:31Z AeroNotix: but there are many smart lispers in here that do have the skills to contribute, though obviously probably not the time 2018-08-06T15:45:46Z AeroNotix: pjb: yep, same. 2018-08-06T15:46:50Z random-nick quit (Read error: Connection reset by peer) 2018-08-06T15:47:16Z random-nick joined #lisp 2018-08-06T15:47:42Z pjb: Unfortunately, long past are the days without the internet, where you could use your own little OS and write your own little programs (even for some customers). With the Internet, network effects have been much stronger, and this excludes for practical purposes all but the two or three main options. 2018-08-06T15:48:08Z varjag joined #lisp 2018-08-06T15:48:20Z phoe: AeroNotix: a critical mass of software is required for it to lift off. 2018-08-06T15:49:01Z pjb: What's the market share of Apple already? (You know, the $1T company). 2018-08-06T15:49:19Z pjb: macOS market share is less than 5% and dropping lately… 2018-08-06T15:49:48Z pjb: and they have all the money of the world to develop it! 2018-08-06T15:54:57Z JuanDaugherty quit (Quit: Exeunt) 2018-08-06T15:59:09Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-06T16:03:34Z cgay joined #lisp 2018-08-06T16:08:33Z cage_ joined #lisp 2018-08-06T16:12:01Z FreeBirdLjj joined #lisp 2018-08-06T16:17:59Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-06T16:21:09Z jerme joined #lisp 2018-08-06T16:21:57Z papachan joined #lisp 2018-08-06T16:22:06Z buffergn0me joined #lisp 2018-08-06T16:22:24Z Fare joined #lisp 2018-08-06T16:29:48Z igemnace quit (Quit: WeeChat 2.2) 2018-08-06T16:32:39Z ebrasca quit (Read error: Connection reset by peer) 2018-08-06T16:33:45Z Fare quit (Ping timeout: 244 seconds) 2018-08-06T16:43:52Z jmercouris joined #lisp 2018-08-06T16:44:12Z jmercouris: I'm trying to ql clml https://github.com/mmaul/clml 2018-08-06T16:44:17Z jmercouris: I'm encountering an interesting issue 2018-08-06T16:44:19Z jmercouris: System "clml.data.r-datasets-package" not found 2018-08-06T16:44:32Z iridioid quit (Ping timeout: 255 seconds) 2018-08-06T16:44:50Z pierpal quit (Quit: Poof) 2018-08-06T16:45:03Z jmercouris: the thing is, looking at the asd in the github, it depends on a large variety of systems 2018-08-06T16:45:06Z AeroNotix: jmercouris: I have the same error. 2018-08-06T16:45:07Z jmercouris: which I don't seem to find defined anywhere else 2018-08-06T16:45:09Z pierpal joined #lisp 2018-08-06T16:45:13Z AeroNotix: And I installed the latest quicklisp last night 2018-08-06T16:45:23Z jmercouris: Interesting 2018-08-06T16:45:31Z jmercouris: I thought all systems were audited before each quicklisp release? 2018-08-06T16:45:36Z AeroNotix: I thought the same? 2018-08-06T16:45:36Z jmercouris: AeroNotix: thanks for the infor 2018-08-06T16:45:52Z AeroNotix: np 2018-08-06T16:46:05Z AeroNotix: perhaps Xach would know why this is available in the QL distro but not actually working 2018-08-06T16:46:28Z jmercouris: I'm sure the project is likely working, it has had progress 2018-08-06T16:46:36Z jmercouris: I can't imagine somebody randomly comitting to a broken project 2018-08-06T16:46:47Z jmercouris: anything is possible though 2018-08-06T16:48:03Z AeroNotix: jmercouris: put https://github.com/mmaul/clml.extras in local-projects and load clml.extras then clml 2018-08-06T16:48:25Z AeroNotix: at least it makes some more progress for me. It seems that clml.extras package is where the r-datasets package is located... 2018-08-06T16:48:37Z jmercouris: Right, interesting that would make sense 2018-08-06T16:48:42Z jmercouris: there is a system in there that it would be looking for 2018-08-06T16:48:54Z AeroNotix: Not got it loaded for me properly yet, though. I have some issues with sbcl and dynamic heap sizes apparently (???) 2018-08-06T16:49:15Z AeroNotix: """""ring compilation with SBCL this system requires that the heap space be set to 2560 or greater. ~%This can be set by dynamic-space-size flag when starting sbcl. To resolve restart sbcl as follows:~%"""" 2018-08-06T16:49:28Z jmercouris: Yeah that notice is found in the readme of the instructinos 2018-08-06T16:49:34Z jmercouris: s/instructinos/instructions 2018-08-06T16:49:53Z jmercouris: have to invoke sbcl like this: "sbcl --dynamic-space-size 2560" 2018-08-06T16:51:10Z AeroNotix: oh ok 2018-08-06T16:51:15Z AeroNotix: let me try again, then 2018-08-06T16:51:24Z jmercouris: I'm also giving it a try, taking quite a while here 2018-08-06T16:51:39Z jmercouris: I also apparently need to install libplplot 2018-08-06T16:51:40Z AeroNotix: iirc you have a decent spec machine 2018-08-06T16:51:46Z AeroNotix: yes, libplplot seems required 2018-08-06T16:51:47Z jmercouris: Yeah, I have a quite new machine 2018-08-06T16:52:14Z AeroNotix: I'm using a weird machine right now 2018-08-06T16:52:21Z jmercouris: what's strange about it? 2018-08-06T16:52:29Z AeroNotix: repurposed rackmount server 2018-08-06T16:52:34Z jmercouris: Lol nice 2018-08-06T16:52:47Z jmercouris: I assume the graphical performance is terrible 2018-08-06T16:52:48Z AeroNotix: 2.4Ghz Xeon, 32GB RAM 2018-08-06T16:52:50Z jmercouris: are you basically using it via tty? 2018-08-06T16:52:56Z AeroNotix: yes, aspeed 2400 chip 2018-08-06T16:53:04Z AeroNotix: having issues with getting the xorg support working with it 2018-08-06T16:53:23Z AeroNotix: It originally had debian on it which had a package for the xorg/gpu drivers but my current distro doesn't. 2018-08-06T16:53:24Z jmercouris: maybe it would be easier to find a pci gpu and one of those 90 degree pci mounting brackets 2018-08-06T16:53:39Z AeroNotix: could be but then that would be effort. I just need a computer that works reasonably well right now 2018-08-06T16:53:56Z gpiero joined #lisp 2018-08-06T16:54:14Z jmercouris: I don't like that clml is tied to plplot 2018-08-06T16:54:34Z jmercouris: I feel that is a bad separation of concerns 2018-08-06T16:54:41Z jmercouris: imagine if scikit learn required matplotlib to function 2018-08-06T16:55:31Z Fare joined #lisp 2018-08-06T16:55:58Z jmercouris: it seems to be getting a lot farther, but now interesting package errors 2018-08-06T16:56:09Z AeroNotix: Yes, I'm currently loading :clml 2018-08-06T16:56:12Z jmercouris: "R-DATASETS" is already a nickname for "CLML.R-DATASETS" 2018-08-06T16:56:14Z AeroNotix: I got past clml.extras 2018-08-06T16:56:41Z AeroNotix: jmercouris: I 'left this nickname alone' 2018-08-06T16:56:44Z AeroNotix: for both issues 2018-08-06T16:56:51Z AeroNotix: wonder if that will break anythinkg 2018-08-06T16:56:58Z jmercouris: probably if you are using the dataset 2018-08-06T16:56:59Z AeroNotix: but it's loaded after that "just fine" 2018-08-06T16:57:00Z jmercouris: if not, probably not 2018-08-06T16:57:14Z emacsomancer joined #lisp 2018-08-06T16:57:35Z jmercouris: I also got it to load nice 2018-08-06T16:57:54Z jmercouris: I'll probably have to change some swank config if I will work with this library at all 2018-08-06T16:58:54Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-06T16:59:25Z jmercouris: aha, you know what it is quite interesting 2018-08-06T16:59:28Z jmercouris: https://github.com/mmaul/clml/tree/master/data 2018-08-06T17:01:02Z jmercouris: seems that this system SHOULD have been found: https://gist.github.com/6e6d59ea2acc97d3a88f4f67775f6bf8 2018-08-06T17:01:17Z jmercouris: well, I've got to go to a meeting now, thanks once again for the help 2018-08-06T17:02:53Z cage_ quit (Remote host closed the connection) 2018-08-06T17:03:57Z Bronsa quit (Ping timeout: 264 seconds) 2018-08-06T17:05:29Z gpiero quit (Ping timeout: 260 seconds) 2018-08-06T17:06:31Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-06T17:07:03Z josemanuel quit (Quit: leaving) 2018-08-06T17:07:08Z FreeBirdLjj joined #lisp 2018-08-06T17:07:45Z cage_ joined #lisp 2018-08-06T17:11:28Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-06T17:18:34Z rpg joined #lisp 2018-08-06T17:20:23Z jmercouris quit (Remote host closed the connection) 2018-08-06T17:21:10Z m00natic quit (Remote host closed the connection) 2018-08-06T17:22:51Z shka_ joined #lisp 2018-08-06T17:28:01Z Fare quit (Ping timeout: 248 seconds) 2018-08-06T17:31:21Z razzy quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-08-06T17:41:50Z nirved quit (Ping timeout: 260 seconds) 2018-08-06T17:42:23Z ja-barr joined #lisp 2018-08-06T17:42:40Z nika quit (Quit: Leaving...) 2018-08-06T17:42:55Z nirved joined #lisp 2018-08-06T17:44:53Z al-damiri joined #lisp 2018-08-06T17:45:40Z makomo joined #lisp 2018-08-06T18:01:07Z Fare joined #lisp 2018-08-06T18:04:24Z trittweiler quit (Ping timeout: 260 seconds) 2018-08-06T18:05:36Z lel quit (Ping timeout: 268 seconds) 2018-08-06T18:08:33Z lel joined #lisp 2018-08-06T18:11:09Z cross joined #lisp 2018-08-06T18:14:10Z lel quit (Ping timeout: 264 seconds) 2018-08-06T18:14:10Z light2yellow quit (Quit: light2yellow) 2018-08-06T18:16:58Z lel joined #lisp 2018-08-06T18:21:58Z sauvin quit (Read error: Connection reset by peer) 2018-08-06T18:22:33Z lel quit (Ping timeout: 264 seconds) 2018-08-06T18:23:41Z fourier joined #lisp 2018-08-06T18:24:36Z AeroNotix: Is anyone doing any software defined radio projects with CL? 2018-08-06T18:25:36Z lel joined #lisp 2018-08-06T18:32:07Z sabrac quit (Ping timeout: 268 seconds) 2018-08-06T18:34:40Z cage_ quit (Quit: Leaving) 2018-08-06T18:40:40Z pjb: AeroNotix: not that I know of, but it'd be possible. 2018-08-06T18:47:33Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-06T18:50:22Z emacsomancer quit (Remote host closed the connection) 2018-08-06T18:53:02Z AeroNotix: pjb: cool. I'm getting into it and would love to use CL for processing some of the data I get back. 2018-08-06T18:58:35Z lel quit (Ping timeout: 240 seconds) 2018-08-06T19:02:15Z lel joined #lisp 2018-08-06T19:09:03Z Jesin joined #lisp 2018-08-06T19:12:05Z emaczen joined #lisp 2018-08-06T19:18:05Z lel quit (Ping timeout: 240 seconds) 2018-08-06T19:19:20Z lel joined #lisp 2018-08-06T19:20:40Z hiroaki quit (Ping timeout: 245 seconds) 2018-08-06T19:21:01Z Shinmera: AeroNotix: frgo who hangs out in #clasp sometimes does amateur radio stuff (possibly with lisp?), if I remember correctly 2018-08-06T19:24:15Z devlaf left #lisp 2018-08-06T19:25:17Z Jesin quit (Remote host closed the connection) 2018-08-06T19:26:47Z pjb: AeroNotix: of course, processing data is a streingth of CL. 2018-08-06T19:28:11Z Jesin joined #lisp 2018-08-06T19:32:48Z o1e9 joined #lisp 2018-08-06T19:33:55Z hiroaki joined #lisp 2018-08-06T19:34:14Z nirved quit (Quit: Leaving) 2018-08-06T19:37:09Z emaczen: AeroNotix: I just got my license, so I am just getting started... 2018-08-06T19:39:16Z emaczen: AeroNotix: What exactly are you looking to do? 2018-08-06T19:41:14Z lel quit (Ping timeout: 260 seconds) 2018-08-06T19:43:45Z lel joined #lisp 2018-08-06T19:48:16Z o1e9 quit (Quit: Ex-Chat) 2018-08-06T19:49:14Z lel quit (Ping timeout: 256 seconds) 2018-08-06T19:50:44Z meepdeew joined #lisp 2018-08-06T19:51:31Z lel joined #lisp 2018-08-06T19:56:35Z shka_ quit (Ping timeout: 240 seconds) 2018-08-06T19:58:57Z lel quit (Ping timeout: 240 seconds) 2018-08-06T20:02:56Z dyelar quit (Remote host closed the connection) 2018-08-06T20:05:01Z lel joined #lisp 2018-08-06T20:07:38Z jmercouris joined #lisp 2018-08-06T20:09:22Z jmercouris quit (Remote host closed the connection) 2018-08-06T20:09:46Z jmercouris joined #lisp 2018-08-06T20:11:04Z Fade joined #lisp 2018-08-06T20:12:31Z al-damiri quit (Quit: Connection closed for inactivity) 2018-08-06T20:14:10Z gravicappa quit (Ping timeout: 256 seconds) 2018-08-06T20:14:26Z gendl joined #lisp 2018-08-06T20:16:38Z gendl: Hi, apparently I had gotten kicked out of here. Hope it wasn't something I said... 2018-08-06T20:18:32Z Zhivago: Your client timed out. 2018-08-06T20:21:28Z zxcvz quit (Quit: zxcvz) 2018-08-06T20:24:04Z gendl: Zhivago: I see. Thanks. 2018-08-06T20:25:22Z drewes joined #lisp 2018-08-06T20:26:03Z random-nick quit (Read error: Connection reset by peer) 2018-08-06T20:28:54Z jmercouris: does anyone know how to setup SSL with clack? 2018-08-06T20:29:13Z jmercouris: even if it would be using FCGI with nginx as a reverse proxy, that would be fine too 2018-08-06T20:30:05Z ikki joined #lisp 2018-08-06T20:30:54Z gpiero joined #lisp 2018-08-06T20:31:06Z random-nick joined #lisp 2018-08-06T20:31:27Z mood: jmercouris: I generally just have Clack use Hunchentoot, and make nginx reverse proxy to the port it's listening on 2018-08-06T20:31:56Z jmercouris: mood: that seems simple enough 2018-08-06T20:32:05Z jmercouris: and then you have nginx deal with the SSL stuff then? 2018-08-06T20:32:53Z mood: jmercouris: Yes. It looks like this: https://link.joram.io/Gd.txt 2018-08-06T20:33:23Z jmercouris: mood: are you jorams on github? your profile image that of an alien with the lisp flag? 2018-08-06T20:33:37Z mood: Or, well, I guess that doesn't contain the actual usage of the certificate, but that's just ssl_certificate and ssl_certificate_key 2018-08-06T20:33:39Z jmercouris: thank you for the snippet, I will use it 2018-08-06T20:33:39Z mood: jmercouris: Yes 2018-08-06T20:33:49Z jmercouris: good to know! I recognize you 2018-08-06T20:34:06Z jmercouris: do you us nginx for the static assets or no? 2018-08-06T20:34:13Z jmercouris: or do you literally do everything as a reverse proxy? 2018-08-06T20:34:14Z mood: What did I do this time? :P 2018-08-06T20:34:17Z mood: I do, yes 2018-08-06T20:34:21Z mood: Let me look up an example for that 2018-08-06T20:34:35Z jmercouris: and you used letsencrypt? 2018-08-06T20:34:47Z jmercouris: It appears so since I see the acme challenge 2018-08-06T20:35:12Z jmercouris: this also let's your lisp image run as a non-privileged user, that is quite useful 2018-08-06T20:35:26Z mood: This is the config for link., which serves its files directly https://link.joram.io/Hd.txt 2018-08-06T20:35:54Z mood: The only real difference is the "root ..." line 2018-08-06T20:36:45Z jmercouris: and somehow that allows static assets? 2018-08-06T20:37:06Z jmercouris: I am used to having a different location like location /static or something, or maybe I am misremembering 2018-08-06T20:37:10Z mood: The "root ..." combined with "try_files $uri ..." does 2018-08-06T20:37:25Z jmercouris: aha, interesting 2018-08-06T20:37:44Z jmercouris: so you have a directory at: /srv/http/link.joram.io which contains static assets? 2018-08-06T20:37:51Z emacsoma` quit (Ping timeout: 256 seconds) 2018-08-06T20:37:58Z jmercouris: or rather /srv/http/link.joram.io/ 2018-08-06T20:38:15Z jmercouris: so maybe something like /srv/http/link.joram.io/static/file.png and it will try to find that file first? 2018-08-06T20:38:17Z mindCrime_ joined #lisp 2018-08-06T20:38:19Z jmercouris: that is quite interesting 2018-08-06T20:38:32Z mindCrime quit (Ping timeout: 268 seconds) 2018-08-06T20:41:00Z lel quit (Ping timeout: 268 seconds) 2018-08-06T20:41:52Z NoNumber joined #lisp 2018-08-06T20:42:45Z mood: Uhh, now I do. Apparently I forgot to make the symlink. But yes, a directory at /srv/http/link.joram.io/ containing files like "Hd.txt". Nginx will look for a file to serve, and forward the request to Hunchentoot if it doesn't exist 2018-08-06T20:42:57Z gigetoo quit (Ping timeout: 240 seconds) 2018-08-06T20:43:44Z jmercouris: I wonder if that is less efficient than simply setting up a static dir and pointing to it as I am used to 2018-08-06T20:44:18Z jmercouris: I am used to the paradigm that looks like this: https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/ 2018-08-06T20:44:21Z Shinmera: I use nginx' proxy cache for static assets. 2018-08-06T20:44:33Z Shinmera: But this is getting a bit off-topic. 2018-08-06T20:44:40Z lel joined #lisp 2018-08-06T20:46:25Z mindCrime_ quit (Quit: Leaving) 2018-08-06T20:49:44Z kajo joined #lisp 2018-08-06T20:53:04Z lnostdal quit (Read error: Connection reset by peer) 2018-08-06T20:54:23Z angavrilov quit (Remote host closed the connection) 2018-08-06T20:59:14Z mindCrime joined #lisp 2018-08-06T21:12:06Z papachan quit (Quit: WeeChat 2.2) 2018-08-06T21:15:28Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-06T21:17:54Z pierpal quit (Quit: Poof) 2018-08-06T21:18:11Z pierpal joined #lisp 2018-08-06T21:18:51Z kajo joined #lisp 2018-08-06T21:23:06Z logicmoo is now known as dmiles 2018-08-06T21:23:19Z varjag quit (Ping timeout: 260 seconds) 2018-08-06T21:23:56Z AeroNotix: emaczen: nothing requiring a license 2018-08-06T21:24:27Z AeroNotix: I want to communicate with NOAA satellites at first and, since I live very close to an airport, I want to see what I can listen to from them. Perhaps see if I can "use" their radar somewhat 2018-08-06T21:27:06Z mindCrime_ joined #lisp 2018-08-06T21:30:45Z mindCrime_ quit (Remote host closed the connection) 2018-08-06T21:30:57Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-06T21:31:09Z mindCrime_ joined #lisp 2018-08-06T21:33:31Z mindCrime_ quit (Max SendQ exceeded) 2018-08-06T21:34:02Z AeroNotix: What's the best way to create a "union" value like in C, I want to have a 16 bit value be addressable via the two bytes. 2018-08-06T21:34:05Z mindCrime_ joined #lisp 2018-08-06T21:34:54Z Shinmera: Use ash and logand 2018-08-06T21:35:32Z AeroNotix: thanks 2018-08-06T21:36:53Z drewes quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-06T21:39:30Z NoNumber left #lisp 2018-08-06T21:39:36Z Bike quit (Ping timeout: 252 seconds) 2018-08-06T21:43:29Z LiamH quit (Quit: Leaving.) 2018-08-06T21:44:03Z pjb: AeroNotix: C unions don't make sense in lisp, since the type is not associated to the variables, but to the values. 2018-08-06T21:44:37Z AeroNotix: pjb: right but the concept is what I meant. I can't believe I derped over just using logical operators 2018-08-06T21:44:40Z pjb: AeroNotix: so union { int i; float f; char* s } v; is just: (let (v) (setf v 42) (setf v 3.2) (setf v "foo")) 2018-08-06T21:45:17Z pjb: or (setf v #x12) (setf v #x1234) if your union is 1 byte vs. 2 bytes. 2018-08-06T21:45:58Z AeroNotix: seems like it would be nice to write some functions/macros over this though 2018-08-06T21:46:03Z pjb: Otherwise, I prefer using ldb and dpb in general. 2018-08-06T21:46:46Z pjb: But again, it's very bad, because in lisp numbers are not mutable, so dpb creates a new integer. 2018-08-06T21:47:16Z AeroNotix: I'm not bothered about mutability 2018-08-06T21:47:17Z pjb: (trying to shoehorn C concepts in lisp). 2018-08-06T21:47:27Z AeroNotix: I get you. 2018-08-06T21:47:32Z pierpa joined #lisp 2018-08-06T21:47:53Z Shinmera: There's binary-types, but I don't know if it allows using its facilities on integers directly. 2018-08-06T21:47:53Z AeroNotix: I'm writing a Z80 emulator for fun (I've had four months away from computers entirely) after a solid 5 years of 80 hour weeks. 2018-08-06T21:47:59Z varjag joined #lisp 2018-08-06T21:48:00Z AeroNotix: I want something to do that's fun. 2018-08-06T21:48:27Z AeroNotix: For the 16 bit registers where they're made up of two other registers. A union in C is how you typically would implement that. 2018-08-06T21:48:36Z AeroNotix: but still, in CL. Logical operators will work fine 2018-08-06T21:49:01Z pjb: You can use arrays of bytes, and build the 16-bit values when needed. 2018-08-06T21:49:06Z no-defun-allowed: Bad idea: use a symbol macro 2018-08-06T21:49:15Z pjb: No, not necessarily bad. 2018-08-06T21:49:29Z AeroNotix: pjb: originally I implemented it like that actually. I found it rather un fun 2018-08-06T21:49:39Z AeroNotix: Oh good idea re symbol macro! 2018-08-06T21:49:42Z AeroNotix: I like it 2018-08-06T21:49:57Z pjb: AeroNotix: the fun thing is: 1- hide the details in a functional abstraction. 2018-08-06T21:50:12Z AeroNotix: I'll play with a symbol macro 2018-08-06T21:50:15Z pjb: and 2- use a LUR Last Used Representation. 2018-08-06T21:50:27Z AeroNotix: I'll look up LUR 2018-08-06T21:51:04Z AeroNotix: another question - for accessor functions for slots. Can I point a variable that accessor function? 2018-08-06T21:51:13Z pjb: (defstruct register 16-bit-value low-8-bit high-8-bit) when you write a byte, you set the 16-bit-value to nil and vice versa, and when you read, if it's null you compute it from the other slots. 2018-08-06T21:51:48Z pjb: Ie. lazily convert between the representations. 2018-08-06T21:52:14Z AeroNotix: an option for sure^ 2018-08-06T21:52:22Z pjb: accessor functions defined by CLOS are generic functions. As such they are functions. Functions are first class objects in lisp, so you can store them in variables. 2018-08-06T21:52:42Z pjb: (let ((a (function register-16-bit-value))) (funcall a reg)) 2018-08-06T21:53:31Z AeroNotix: oh right the accessor tag just creates the function already. For some reason I thought I'd need to pull the accessor function off the class instance and bind it to a variable 2018-08-06T21:57:34Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-06T22:00:27Z ikki quit (Ping timeout: 240 seconds) 2018-08-06T22:04:06Z pierpal quit (Ping timeout: 256 seconds) 2018-08-06T22:11:13Z rumbler31 joined #lisp 2018-08-06T22:17:08Z mindCrime_ quit (Ping timeout: 256 seconds) 2018-08-06T22:25:01Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-06T22:25:04Z isoraqathedh quit (Quit: No Ping reply in 180 seconds.) 2018-08-06T22:25:23Z Jesin quit (Remote host closed the connection) 2018-08-06T22:26:28Z Bike joined #lisp 2018-08-06T22:28:47Z meepdeew quit (Remote host closed the connection) 2018-08-06T22:28:49Z parjanya joined #lisp 2018-08-06T22:31:38Z rozenglass joined #lisp 2018-08-06T22:34:52Z random-nick quit (Read error: Connection reset by peer) 2018-08-06T22:42:05Z makomo quit (Ping timeout: 240 seconds) 2018-08-06T22:43:20Z makomo joined #lisp 2018-08-06T22:49:12Z ikki joined #lisp 2018-08-06T22:49:54Z joast quit (Quit: Leaving.) 2018-08-06T22:55:31Z hiroaki quit (Ping timeout: 265 seconds) 2018-08-06T22:56:29Z sjl quit (Ping timeout: 276 seconds) 2018-08-06T22:59:44Z ntqz quit 2018-08-06T23:03:15Z joast joined #lisp 2018-08-06T23:03:34Z JuanDaugherty joined #lisp 2018-08-06T23:03:50Z Jesin joined #lisp 2018-08-06T23:05:09Z robotoad quit (Quit: robotoad) 2018-08-06T23:08:57Z fourier quit (Ping timeout: 240 seconds) 2018-08-06T23:10:21Z jmercouris: assuming one started at the level of assembler, how much of a standard common lisp implementation can be implemented in pure lisp? 2018-08-06T23:10:22Z quipa quit (Quit: Leaving) 2018-08-06T23:10:35Z ikki quit (Ping timeout: 240 seconds) 2018-08-06T23:10:46Z jmercouris: e.g. what operations must be implemented in assembler to bootstrap the system 2018-08-06T23:11:21Z joast quit (Quit: Leaving.) 2018-08-06T23:14:16Z pierpa: see http://home.pipeline.com/~hbaker1/MetaCircular.html 2018-08-06T23:14:53Z equwal joined #lisp 2018-08-06T23:15:10Z equwal quit (Remote host closed the connection) 2018-08-06T23:15:28Z equwal joined #lisp 2018-08-06T23:16:27Z jmercouris: that's interesting 2018-08-06T23:16:35Z jmercouris: those are the kinds of forms I was imagining 2018-08-06T23:16:44Z jmercouris: but the question is still kind of unanswered 2018-08-06T23:16:54Z jmercouris: what is the absolute minimum and from which forms should you build up? 2018-08-06T23:16:54Z aeth: I was about to mention a metacircular approach but that seems like cheating 2018-08-06T23:17:28Z jmercouris: I don't see anything wrong with that approach 2018-08-06T23:17:28Z joast joined #lisp 2018-08-06T23:17:40Z jmercouris: I wonder, does there exist a manual to write a common lisp? 2018-08-06T23:17:43Z pjb: jmercouris: there's an infinite number of ways to bootstrap a system. Which one do you prefer? 2018-08-06T23:17:45Z aeth: jmercouris: I suspect that there's a tradeoff between minimalism and performance. 2018-08-06T23:17:49Z jmercouris: before someone mentions the spec, I would like to point out that it is not a manual 2018-08-06T23:18:34Z jmercouris: I guess you could bootstrap the system, and then write it entirely in itself 2018-08-06T23:18:41Z jmercouris: especially if you have an image 2018-08-06T23:18:55Z Bike: yeah, ther'es no minimal form. 2018-08-06T23:19:08Z Bike: it's like how you can prove normal mathematical theorems from a variety of axiom systems. 2018-08-06T23:19:49Z jmercouris: Yeah 2018-08-06T23:19:59Z jmercouris: Anyways going to sleep for now, goodnight 2018-08-06T23:21:13Z Jesin quit (Remote host closed the connection) 2018-08-06T23:24:39Z jmercouris quit (Ping timeout: 260 seconds) 2018-08-06T23:25:35Z Kundry_Wag joined #lisp 2018-08-06T23:29:15Z Jesin joined #lisp 2018-08-06T23:30:09Z Pixel_Outlaw joined #lisp 2018-08-06T23:38:31Z lavaflow quit (Read error: Connection reset by peer) 2018-08-06T23:46:49Z meepdeew joined #lisp 2018-08-06T23:47:54Z lavaflow joined #lisp 2018-08-06T23:50:19Z Fare quit (Ping timeout: 268 seconds) 2018-08-07T00:01:11Z robotoad joined #lisp 2018-08-07T00:02:46Z cmos joined #lisp 2018-08-07T00:04:00Z cmos: I'm having trouble getting slime to run on OSX. Last I used it was about a year ago, and now when I try to boot it up I get an error to do with compiling the SB-VM package 2018-08-07T00:04:07Z cmos: have tried updating various things with no luck 2018-08-07T00:04:08Z cmos: any tips? 2018-08-07T00:04:35Z cmos: error is: Symbol "SIMPLE-FUN-HEADER-WIDETAG" not found in the SB-VM package. 2018-08-07T00:04:55Z cmos: occurs at "Line: 1571, Column: 52, File-Position: 62862" in sbcl.lisp 2018-08-07T00:05:36Z rumbler31 quit (Remote host closed the connection) 2018-08-07T00:07:02Z cmos: the error occurs when loading swank-loader.lisp 2018-08-07T00:07:40Z mange joined #lisp 2018-08-07T00:09:19Z pjb: cmos: your problems are related to sbcl. update everything. 2018-08-07T00:10:20Z cmos: pjb: Thanks. I'm running SBCL v1.4.10, which I think is up-to-date 2018-08-07T00:10:58Z cmos: looks like my slime is from a couple of years ago, but the most recent one indexed by melpa (or whichever package index emacs is pulling from) 2018-08-07T00:11:42Z cmos: worth using a local, up-to-date version? (if so, how can I tell emacs to use this rather than the version indexed by the package manager?) 2018-08-07T00:11:55Z pjb: I use the one from quicklisp. 2018-08-07T00:14:06Z cmos: hmm, tried installing through quicklisp and got "The function ASDF/INTERFACE::OPERATION-FORCED is undefined" 2018-08-07T00:14:39Z pjb: You could use a different implementation to install it. 2018-08-07T00:20:22Z akkad: cmos: are you actually using sbcl? 2018-08-07T00:20:32Z cmos: akkad: yes 2018-08-07T00:20:43Z cmos: or, at least, I have previously, and am intending to 2018-08-07T00:20:51Z cmos: I don't think I have any other implementations installed 2018-08-07T00:21:22Z cmos: I have "(setq inferior-lisp-program "sbcl")" in my .emacs 2018-08-07T00:21:35Z akkad: how did you install slime? 2018-08-07T00:21:47Z akkad: (ql:quickload :quicklisp-slime-helper) 2018-08-07T00:21:56Z cmos: ^ probably that, if memory serves 2018-08-07T00:22:01Z cmos: but this would've been a while ago 2018-08-07T00:24:12Z cmos: is there a simple way to update slime directly using quicklisp? 2018-08-07T00:26:20Z akkad: (ql:update-all-dists) 2018-08-07T00:27:17Z cmos: hmm, apparently quicklisp itself is the only thing being tracked 2018-08-07T00:28:35Z cmos: aaaaand re-running (ql:quickload "quicklisp-slime-helper") seems to have fixed the issue, whatever it may have been 2018-08-07T00:28:56Z cmos: thanks, both, for your help…though I'm still pretty fuzzy on what the issue was in the first place 2018-08-07T00:32:18Z akkad: then in emacs M-x load-file ~/quicklisp/slime-helper.el 2018-08-07T00:34:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-07T00:37:36Z quipa joined #lisp 2018-08-07T00:39:14Z on_ion joined #lisp 2018-08-07T00:40:02Z meepdeew quit (Remote host closed the connection) 2018-08-07T00:42:12Z cmos quit (Ping timeout: 256 seconds) 2018-08-07T00:43:52Z omilu quit (Remote host closed the connection) 2018-08-07T00:46:09Z Jesin quit (Read error: Connection reset by peer) 2018-08-07T00:46:22Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-07T00:47:49Z Autolycus joined #lisp 2018-08-07T00:50:26Z kajo joined #lisp 2018-08-07T00:51:12Z Jesin joined #lisp 2018-08-07T00:51:51Z Autolycus quit (Client Quit) 2018-08-07T00:52:04Z kajo quit (Client Quit) 2018-08-07T00:58:10Z Kundry_Wag joined #lisp 2018-08-07T00:59:08Z chamblin joined #lisp 2018-08-07T01:07:38Z rumbler31 joined #lisp 2018-08-07T01:12:35Z quipa quit (Ping timeout: 240 seconds) 2018-08-07T01:18:17Z Fare joined #lisp 2018-08-07T01:30:19Z nonlinear joined #lisp 2018-08-07T01:35:08Z meepdeew joined #lisp 2018-08-07T01:39:26Z kajo joined #lisp 2018-08-07T01:40:38Z kajo quit (Client Quit) 2018-08-07T01:42:09Z black_13 joined #lisp 2018-08-07T01:42:20Z black_13: when does a variable get gc-ed 2018-08-07T01:43:40Z no-defun-allowed: whenever the gc runs and finds it's not being used 2018-08-07T01:44:33Z no-defun-allowed: the GC specifics are implementation dependent 2018-08-07T01:45:23Z kajo joined #lisp 2018-08-07T01:46:47Z black_13: but are there lips statements that will cause a variable to be gc if that makes sense 2018-08-07T01:47:14Z Bike: sometimes you can call the garbage collector yourself, but it's mostly invisible. 2018-08-07T01:47:22Z Bike: also it's values rather than variables that are collected. 2018-08-07T01:47:24Z black_13: i know 2018-08-07T01:47:33Z robotoad quit (Quit: robotoad) 2018-08-07T01:51:09Z black_13: Bike: if i define a variable to have a value of something 2018-08-07T01:51:34Z black_13: then changed the value of the variable that value would get gc-ed 2018-08-07T01:52:23Z Bike: at some point, probably, yes, if there was no other way that value was accessible. 2018-08-07T01:52:48Z black_13: i am using something called s7 scheme (not lisp) 2018-08-07T01:53:11Z mange: Generally speaking, you shouldn't assume that things will be garbage collected within a particular timeframe. It's probably more helpful to speak of being eligible for collection. 2018-08-07T01:53:22Z black_13: and you can add c language types to this i wanted to know when does the the gc come along 2018-08-07T01:53:50Z Bike: Whenever. 2018-08-07T01:53:58Z pjb quit (Remote host closed the connection) 2018-08-07T01:54:04Z Bike: The whole point is you don't usually need to think about it. 2018-08-07T01:54:40Z Bike: there are no guarantees about when it's collected because you have no way to tell if it's collected. 2018-08-07T01:55:20Z no-defun-allowed: if there are no references to an object, you can't probe for its existence 2018-08-07T01:55:32Z no-defun-allowed: it'll happen whenever the system deems it necessary 2018-08-07T01:55:38Z pjb joined #lisp 2018-08-07T01:55:53Z Oladon joined #lisp 2018-08-07T01:55:56Z FreeBirdLjj joined #lisp 2018-08-07T01:56:00Z no-defun-allowed: go read the GC handbook 2018-08-07T01:56:22Z no-defun-allowed: http://www.gchandbook.org 2018-08-07T01:56:40Z mange: Just briefly reading about S7, it seems to have weak references which allow you to tell whether something has been collected. 2018-08-07T01:59:28Z black_13: mange: thanks 2018-08-07T01:59:44Z kerrhau joined #lisp 2018-08-07T02:00:28Z pierpal joined #lisp 2018-08-07T02:01:03Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-07T02:01:25Z mathZ joined #lisp 2018-08-07T02:01:40Z robotoad joined #lisp 2018-08-07T02:02:26Z black_13: "You can wrap up raw C pointers and pass them around in s7 code." 2018-08-07T02:02:44Z makomo quit (Ping timeout: 260 seconds) 2018-08-07T02:02:53Z NoNumber joined #lisp 2018-08-07T02:02:54Z black_13: this is why i picked this but trying to understand how to wrap and use 2018-08-07T02:03:35Z mange: You mean you picked S7 because you can have pointers into C code? 2018-08-07T02:05:00Z black_13: correct sorry for my dyslexic prose 2018-08-07T02:05:23Z Bike: probably it won't collect C objects, since C is all about managing things yourself 2018-08-07T02:06:52Z black_13: correct 2018-08-07T02:07:01Z mange: Yeah, it will collect its own wrapper (with the type/info), but I don't think it will collect the thing pointed to by the C pointer. Attempting to do so could break things pretty horribly (eg, if you passed &x[1], how would it free one item in the array?). 2018-08-07T02:08:35Z Kundry_Wag quit (Remote host closed the connection) 2018-08-07T02:09:08Z black_13: the wrapping begins with s7_make_c_object or seems to from the example 2018-08-07T02:09:10Z Kundry_Wag joined #lisp 2018-08-07T02:10:48Z black_13: is this statement "s7_c_type_set_free(s7, dax_type_tag, free_dax);" that makes me wonder when it will be called 2018-08-07T02:13:26Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-07T02:15:12Z pjb quit (Remote host closed the connection) 2018-08-07T02:16:50Z pjb joined #lisp 2018-08-07T02:18:54Z marusich joined #lisp 2018-08-07T02:19:17Z mange: Maybe they have some way to include them in the GC process. It looks like you can define a few hooks to let S7 work with your C data. That won't give you any guarantees about GC timing, though, it just hands over control for the lifetime of the object to the system. 2018-08-07T02:26:32Z rumbler31 quit (Remote host closed the connection) 2018-08-07T02:27:06Z black_13: ok maybe ... If I have a pointer to top-level struct (god object) and this is wrapped by s7 and can be used frankly prevented from being gc-ed 2018-08-07T02:28:39Z black_13: i don 2018-08-07T02:28:59Z black_13: dont want this pointer to be gc just be used 2018-08-07T02:37:42Z black_13 quit (Ping timeout: 252 seconds) 2018-08-07T02:42:11Z meepdeew: Have any folks here played around with coleslaw for static site generation? 2018-08-07T02:42:33Z pjb quit (Remote host closed the connection) 2018-08-07T02:43:23Z ikki joined #lisp 2018-08-07T02:43:49Z dddddd quit (Remote host closed the connection) 2018-08-07T02:43:56Z pjb joined #lisp 2018-08-07T02:44:27Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-07T02:45:49Z rumbler31 joined #lisp 2018-08-07T02:48:29Z marusich quit (Ping timeout: 265 seconds) 2018-08-07T02:48:41Z isoraqathedh joined #lisp 2018-08-07T02:51:09Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-07T03:03:30Z pjb quit (Remote host closed the connection) 2018-08-07T03:04:19Z edgar-rft: The CLHS says that "setf {pair}* => result*" where result* are the multiple values[2] returned by the storing form for the last place. 2018-08-07T03:04:19Z edgar-rft: Simplified question: in (setf a 1) can I take for granted that the result* will be 1? The CLHS doesn't say so clearly enough IMO. 2018-08-07T03:05:04Z Bike: you can. i'm not sure what other reading is possible. 2018-08-07T03:05:06Z buffergn0me joined #lisp 2018-08-07T03:05:09Z pjb joined #lisp 2018-08-07T03:05:35Z Bike: well, i suppose you need to know that storing forms are supposed to return the input values. 2018-08-07T03:06:52Z mathZ: v 2018-08-07T03:07:11Z loke: edgar-rft: I find it reasonably clear 2018-08-07T03:07:47Z edgar-rft: Bike, loke: thanks, sometimes reading the CLHS just simply makes me getting paranoid :-) 2018-08-07T03:07:49Z loke: It has that workding because of the following: (SETF foo (bar) xyz (abc)) ⇒ (abc) 2018-08-07T03:08:08Z loke: (abc) being the last storing form 2018-08-07T03:09:25Z edgar-rft: no, I only have one storing form, but it just simply saves me a lot of LET bindings if I can pass the result of a SETF to another SETF 2018-08-07T03:09:36Z kirkwood joined #lisp 2018-08-07T03:09:54Z loke: edgar-rft: Yes. if you have only one, then the last one is that one. :-) 2018-08-07T03:14:51Z cgay quit (Remote host closed the connection) 2018-08-07T03:15:04Z orivej quit (Ping timeout: 260 seconds) 2018-08-07T03:15:26Z buffergn0me quit (Ping timeout: 255 seconds) 2018-08-07T03:20:46Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-07T03:21:22Z pierpa quit (Quit: Page closed) 2018-08-07T03:22:35Z beach: Good morning everyone! 2018-08-07T03:22:43Z loke: hello beach! 2018-08-07T03:22:57Z loke: I need help with one of the hardest things in computer science 2018-08-07T03:23:05Z beach: Oh dear. 2018-08-07T03:23:11Z beach: Naming 2018-08-07T03:23:12Z beach: ? 2018-08-07T03:23:23Z marusich joined #lisp 2018-08-07T03:23:39Z loke: I'm building a new generic component that consists of a main pane, along with a set of supplementary panes that can slide in and out from the sides (similr to how IntelliJ IDEA works). 2018-08-07T03:23:57Z loke: It will be th ebasis of the notepad and other tools in climaxima 2018-08-07T03:24:21Z beach: Nice. 2018-08-07T03:24:43Z loke: Right. But... I need to figure out what teh component should be called 2018-08-07T03:24:54Z loke: I'll give you a screenshot of IDEA so that you get an idea of what it looks liek: 2018-08-07T03:25:05Z beach: Chest (of drawers)? 2018-08-07T03:25:22Z loke: here is one: 2018-08-07T03:25:23Z loke: https://cursive-ide.com/ 2018-08-07T03:25:44Z loke: the middle panel is the “root” panel... The left and right ones are drawers 2018-08-07T03:26:00Z beach: I think I understand. 2018-08-07T03:26:26Z loke: Here is one with the drawer on the bottom https://www.i-programmer.info/images/stories/News/2 2018-08-07T03:26:51Z beach: 404 2018-08-07T03:26:57Z loke: Oops 2018-08-07T03:27:33Z loke: Try this one https://plugins.jetbrains.com/plugin/7588-robovm-intellij-idea-plugin 2018-08-07T03:27:58Z loke: As you can see, you can change the size of the drawers by dragging 2018-08-07T03:28:12Z beach: Yes, I think I understand. 2018-08-07T03:28:16Z loke: (well, you can't see the dragging, but the two pictures have different sizes of their drawers) 2018-08-07T03:28:54Z beach: Right. 2018-08-07T03:28:56Z loke: I have been thinking of words such as Workspace, Desktop, Workbench... 2018-08-07T03:29:11Z beach: Too general, and already used for other stuff. 2018-08-07T03:29:18Z loke: exactly 2018-08-07T03:29:52Z beach: That's why I suggested "chest". 2018-08-07T03:30:30Z loke: Hmm 2018-08-07T03:30:38Z loke: It's actually not bad 2018-08-07T03:31:01Z loke: but it doesn't “feel” like a chest, if you know what I mean 2018-08-07T03:31:01Z beach: Thanks. 2018-08-07T03:31:15Z loke: but I might just go with that anyway :-) 2018-08-07T03:31:17Z beach: Well, names are just words, and you get used to them. 2018-08-07T03:31:28Z mfiano: Why must it be a word? 2018-08-07T03:31:43Z loke: mfiano: Sure, it can be two words. 2018-08-07T03:31:44Z mfiano: Prepend an adjective to remove ambiguity. 2018-08-07T03:31:54Z loke: I'm not going to name it an emoji if that's what you mean :-) 2018-08-07T03:31:58Z mfiano: resizable-pane or something 2018-08-07T03:32:09Z loke: mfiano: Sure, but it isn't a resizable pane 2018-08-07T03:32:33Z loke: a descriptive name would be something along the lines of root-pane-with-attached-drawers, but it's a bit too long 2018-08-07T03:32:51Z mfiano: I guess look at what it's called in Swing then, or whatever java toolkit it's actually using. 2018-08-07T03:33:08Z loke: Good point 2018-08-07T03:33:34Z loke: It's a jetbrains object, so I guess it'll be hiodden somewhere in their code base. Don't know if I feel like going on a hunt for it :-) 2018-08-07T03:38:16Z kirkwood: loke: sliding-pane? slider? 2018-08-07T03:38:36Z beach: kirkwood: Already used for things like volume control. 2018-08-07T03:39:21Z loke: damn it... what is the function to get the dimensions of a pane? 2018-08-07T03:39:24Z beach: loke: Also, whenever I have naming problems and I ask for advice, I find that I am totally unhappy with the suggestions I get. 2018-08-07T03:39:39Z beach: SHEET-REGION? 2018-08-07T03:39:47Z loke: beach: I agree. But then, I leave it for a bit and then I realise that the suggestions were't bad 2018-08-07T03:39:52Z loke: Oh... 2018-08-07T03:40:21Z kirkwood: SLINKER 2018-08-07T03:40:27Z loke: so, (RECTANGLE-SIZE (SHEET-REGION pane)) ? 2018-08-07T03:40:40Z loke: Or can the sheet region ever be non-rectangualar? 2018-08-07T03:41:14Z kirkwood: shifty-pane-that-cannot-be-found-when-needed 2018-08-07T03:41:18Z equwal quit (Ping timeout: 244 seconds) 2018-08-07T03:42:02Z loke: kirkwood: My intent is to make the hidden drawers have buttons along the side (note the second screenshot I sent, it has the title written vertically along the side) 2018-08-07T03:42:14Z loke: (yay for rotated text :-) ) 2018-08-07T03:45:57Z pierpal quit (Quit: Poof) 2018-08-07T03:46:14Z pierpal joined #lisp 2018-08-07T03:47:11Z rumbler31 joined #lisp 2018-08-07T03:47:13Z ikki quit (Ping timeout: 248 seconds) 2018-08-07T03:49:36Z v0|d quit (Remote host closed the connection) 2018-08-07T03:50:46Z pjb quit (Read error: Connection reset by peer) 2018-08-07T03:52:01Z pjb joined #lisp 2018-08-07T03:53:27Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-07T03:54:22Z mange quit (Ping timeout: 264 seconds) 2018-08-07T03:55:18Z pjb quit (Remote host closed the connection) 2018-08-07T03:56:36Z Oladon quit (Quit: Leaving.) 2018-08-07T03:56:43Z pjb joined #lisp 2018-08-07T04:01:59Z marusich quit (Ping timeout: 276 seconds) 2018-08-07T04:08:15Z marusich joined #lisp 2018-08-07T04:09:12Z marusich quit (Client Quit) 2018-08-07T04:25:44Z Bike quit (Quit: Lost terminal) 2018-08-07T04:28:38Z gector quit (Read error: Connection reset by peer) 2018-08-07T04:29:20Z gector joined #lisp 2018-08-07T04:46:57Z Fare quit (Ping timeout: 248 seconds) 2018-08-07T04:51:34Z pjb quit (Remote host closed the connection) 2018-08-07T04:52:48Z Inline quit (Quit: Leaving) 2018-08-07T04:54:33Z pjb joined #lisp 2018-08-07T04:55:58Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-07T05:07:36Z pjb quit (Remote host closed the connection) 2018-08-07T05:08:59Z pjb joined #lisp 2018-08-07T05:13:38Z pjb quit (Ping timeout: 256 seconds) 2018-08-07T05:16:54Z pjb joined #lisp 2018-08-07T05:17:36Z impulse quit (Ping timeout: 256 seconds) 2018-08-07T05:20:18Z on_ion quit (Quit: WeeChat 1.9.1) 2018-08-07T05:20:57Z impulse joined #lisp 2018-08-07T05:22:10Z NoNumber left #lisp 2018-08-07T05:23:16Z pjb quit (Remote host closed the connection) 2018-08-07T05:26:25Z pjb joined #lisp 2018-08-07T05:28:48Z sauvin joined #lisp 2018-08-07T05:33:33Z Amany left #lisp 2018-08-07T05:34:33Z pjb quit (Remote host closed the connection) 2018-08-07T05:36:04Z pjb joined #lisp 2018-08-07T05:41:24Z pjb quit (Ping timeout: 256 seconds) 2018-08-07T05:41:32Z buffergn0me joined #lisp 2018-08-07T05:45:05Z nsrahmad joined #lisp 2018-08-07T05:45:30Z pjb joined #lisp 2018-08-07T05:46:40Z v0|d joined #lisp 2018-08-07T05:46:55Z fourier joined #lisp 2018-08-07T05:48:36Z sjl joined #lisp 2018-08-07T05:51:15Z pjb quit (Remote host closed the connection) 2018-08-07T05:53:53Z pjb joined #lisp 2018-08-07T05:59:02Z pjb quit (Remote host closed the connection) 2018-08-07T06:00:15Z pjb joined #lisp 2018-08-07T06:03:35Z nsrahmad quit (Ping timeout: 245 seconds) 2018-08-07T06:05:24Z pjb quit (Remote host closed the connection) 2018-08-07T06:06:32Z vlatkoB_ quit (Remote host closed the connection) 2018-08-07T06:07:54Z vlatkoB joined #lisp 2018-08-07T06:10:20Z pjb joined #lisp 2018-08-07T06:15:33Z pjb quit (Remote host closed the connection) 2018-08-07T06:16:53Z orivej joined #lisp 2018-08-07T06:17:13Z pjb joined #lisp 2018-08-07T06:20:11Z pjb quit (Remote host closed the connection) 2018-08-07T06:24:23Z pjb joined #lisp 2018-08-07T06:24:53Z akkad is now known as Ober 2018-08-07T06:26:10Z orivej quit (Ping timeout: 256 seconds) 2018-08-07T06:28:23Z milanj quit (Quit: This computer has gone to sleep) 2018-08-07T06:30:08Z fourier quit (Ping timeout: 256 seconds) 2018-08-07T06:41:56Z kajo quit (Ping timeout: 265 seconds) 2018-08-07T06:43:25Z patlv joined #lisp 2018-08-07T06:44:17Z fourier joined #lisp 2018-08-07T06:49:02Z beach quit (Quit: ERC (IRC client for Emacs 25.2.2)) 2018-08-07T06:51:29Z mathZ quit (Remote host closed the connection) 2018-08-07T06:51:45Z patlv quit (Ping timeout: 248 seconds) 2018-08-07T06:53:00Z gravicappa joined #lisp 2018-08-07T06:53:41Z buffergn0me quit (Ping timeout: 255 seconds) 2018-08-07T07:01:41Z trittweiler joined #lisp 2018-08-07T07:02:27Z hiroaki joined #lisp 2018-08-07T07:06:06Z buffergn0me joined #lisp 2018-08-07T07:13:17Z angavrilov joined #lisp 2018-08-07T07:13:52Z test1600 joined #lisp 2018-08-07T07:15:24Z pjb quit (Remote host closed the connection) 2018-08-07T07:17:16Z pjb joined #lisp 2018-08-07T07:19:15Z kerrhau quit (Ping timeout: 268 seconds) 2018-08-07T07:20:13Z pjb quit (Remote host closed the connection) 2018-08-07T07:23:26Z beach joined #lisp 2018-08-07T07:24:52Z LdBeth: Is there any data structure optimized for fast concatenation and subsequence operation? 2018-08-07T07:26:02Z LdBeth: How about Ropes? 2018-08-07T07:26:39Z Shinmera: skip lists perhaps? 2018-08-07T07:28:49Z jsnell_ quit (Ping timeout: 265 seconds) 2018-08-07T07:30:32Z LdBeth: It basically linked lists so maybe 2018-08-07T07:32:23Z phoe: why not just a linked list? 2018-08-07T07:32:52Z Shinmera: phoe: because subsequence is slow if the sequence is at the tail. 2018-08-07T07:33:02Z Shinmera: that's where the skip list can help 2018-08-07T07:33:20Z phoe: oh, you also need to traverse the list to compute the starting and ending points. 2018-08-07T07:33:27Z phoe: that's right, it'll be O(n) for a list. 2018-08-07T07:35:58Z Shinmera: concatenating two skip lists is a bit trickier but should be almost constant. 2018-08-07T07:36:13Z meepdeew quit (Remote host closed the connection) 2018-08-07T07:41:00Z varjag joined #lisp 2018-08-07T07:43:55Z kerrhau joined #lisp 2018-08-07T07:45:11Z LdBeth: Yes I will give it a try 2018-08-07T07:59:36Z shrdlu68 joined #lisp 2018-08-07T08:06:22Z azimut_ quit (Ping timeout: 264 seconds) 2018-08-07T08:11:05Z impulse quit (Ping timeout: 240 seconds) 2018-08-07T08:13:07Z azimut joined #lisp 2018-08-07T08:13:10Z impulse joined #lisp 2018-08-07T08:24:35Z azimut quit (Ping timeout: 240 seconds) 2018-08-07T08:30:26Z hiroaki quit (Ping timeout: 276 seconds) 2018-08-07T08:31:31Z azimut joined #lisp 2018-08-07T08:32:52Z stnutt quit (Ping timeout: 260 seconds) 2018-08-07T08:33:52Z stnutt joined #lisp 2018-08-07T08:38:44Z lumm joined #lisp 2018-08-07T08:42:24Z pjb joined #lisp 2018-08-07T08:44:01Z lumm quit (Quit: lumm) 2018-08-07T08:46:30Z lumm joined #lisp 2018-08-07T08:50:23Z lumm quit (Client Quit) 2018-08-07T08:52:45Z beach: LdBeth: Any balanced tree will do, but splay trees are particularly good, though only statistically so. 2018-08-07T08:57:09Z schweers: Is Sonya Keenes book on CLOS really that good? Especially if one has already read and understood the relevant chapters from PCL and uses CLOS casually? 2018-08-07T08:57:30Z beach: Probably no great point in reading it then. 2018-08-07T08:57:42Z schweers: okay, thanks 2018-08-07T08:58:34Z schweers: I somehow struggle with proper OO design given generic functions and MI. I always thought that “OO design” was a fad, and think that it is in mainstream languages. But thanks to CLOS I can see what I’m missing. 2018-08-07T08:59:37Z schweers: Do you (or anyone else) have a good book recommendation? 2018-08-07T09:00:39Z beach: I learned object-oriented design in Common Lisp by reading the CLIM II specification. 2018-08-07T09:00:46Z schweers: oh 2018-08-07T09:00:53Z Shinmera: The book of: read code that uses CLOS a lot (like beach's stuff) 2018-08-07T09:01:01Z beach: Before that I had read Sonja Keene's book, but I guess I didn't "get" it. 2018-08-07T09:01:30Z beach: Yes, that too. You can look at Cluffer for instance. It has documentation and tests too. 2018-08-07T09:02:18Z pierpal quit (Quit: Poof) 2018-08-07T09:02:38Z Shinmera: Some of my stuff also uses CLOS heavily (and some of it the MOP heavily) 2018-08-07T09:02:39Z pierpal joined #lisp 2018-08-07T09:04:55Z phoe: I agree - Shinmera's code uses a lot of OO code and OO patterns in general 2018-08-07T09:04:58Z mhitchman[m] joined #lisp 2018-08-07T09:05:00Z schweers: thanks for the tip, especially about cluffer. I see that you have 35 pdf pages worth of docs :) 2018-08-07T09:05:20Z schweers: Shinmera: you have a github account where I can find your code, right? 2018-08-07T09:05:23Z phoe: I actually learned a lot about object composition by reading and analyzing Shinmera's parachute library 2018-08-07T09:05:29Z phoe: schweers: github.com/Shinmera 2018-08-07T09:05:41Z schweers: any particular recommendation? 2018-08-07T09:05:53Z schweers: oh, just saw phoe’s comment 2018-08-07T09:05:55Z schweers: thanks 2018-08-07T09:06:35Z Shinmera: There's also stuff at https://shirakumo.org/projects/ 2018-08-07T09:09:44Z SaganMan quit (Ping timeout: 260 seconds) 2018-08-07T09:10:39Z beach: schweers: I do recommend the CLIM II specification. It is not quite as good as the Common Lisp HyperSpec, but the low-level parts are quite well specified. 2018-08-07T09:11:49Z schweers: beach: I’ve made a note of that. I guess I’ll first read at least the pdf documentation on cluffer. 2018-08-07T09:11:59Z beach: Sure. 2018-08-07T09:12:08Z schweers: the CLIM spec does seem quite intimidating at a first glance (huge) 2018-08-07T09:12:15Z kerrhau quit (Ping timeout: 265 seconds) 2018-08-07T09:12:27Z dddddd joined #lisp 2018-08-07T09:12:30Z schweers: also, text editing operations are something I can relate to a little more 2018-08-07T09:12:38Z beach: True, but is a stratified design, so it consists of a large number of independent "modules". 2018-08-07T09:13:11Z beach: But, by all means, start with Cluffer. Then I can answer questions as well. 2018-08-07T09:13:16Z phoe: take it slow with the CLIM documentation - just start in one point and try to understand what it does, and then expand it by reading about an adjacent class/function/thing 2018-08-07T09:17:02Z pierpal quit (Quit: Poof) 2018-08-07T09:18:47Z makomo joined #lisp 2018-08-07T09:19:35Z pierpal joined #lisp 2018-08-07T09:22:14Z Kevslinger joined #lisp 2018-08-07T09:24:23Z adlai: schweers: have you read AMOP? it's a great insight into the "CLOS philosophy", even if you don't end up using any of the extra flexibility 2018-08-07T09:24:43Z schweers: I’m reading it on the side when I have time 2018-08-07T09:24:59Z schweers: I’m not sure what to make of the first part of the book, though 2018-08-07T09:25:18Z adlai: context, in which to make something else of the rest. 2018-08-07T09:25:18Z beach: Oh, that's a very tough one unless you know CLOS very well as a user. 2018-08-07T09:26:06Z schweers: I have the feeling that I understand CLOS well enough to see that OO does have some merit, but not well enough to use it to its full potential 2018-08-07T09:27:20Z adlai: you could teach yourself how to see this potential through the painful approach: start building a large system without using OO, and list the points where you regret that omission. 2018-08-07T09:28:08Z schweers: yeah, been there, done that 2018-08-07T09:28:22Z schweers: well, large may not be the right term, but large enough 2018-08-07T09:28:35Z jackdaniel: "cognitive baggage is proportional to the potential of technology in question" – JD's rule of CLOS :-) 2018-08-07T09:29:14Z jackdaniel: or s/baggage/ballast/ 2018-08-07T09:31:55Z orivej joined #lisp 2018-08-07T09:33:24Z hiroaki joined #lisp 2018-08-07T09:37:51Z quipa joined #lisp 2018-08-07T09:38:50Z quipa quit (Client Quit) 2018-08-07T09:41:18Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-07T09:43:56Z siraben joined #lisp 2018-08-07T09:44:16Z siraben: Hi all, is there a CL library for interfacing with MIDI devices? 2018-08-07T09:45:36Z phoe: siraben: https://github.com/pcrama/midi is what google tells me 2018-08-07T09:45:55Z phoe: also http://incudine.sourceforge.net/ 2018-08-07T09:46:11Z siraben: Hmm. Which ones are still actively used? 2018-08-07T09:46:33Z phoe: but also https://github.com/jnykopp/notewhacker/blob/master/midi.lisp 2018-08-07T09:46:49Z siraben: I'll take a look at them. Thanks. 2018-08-07T09:56:32Z schweers: beach: the cluffer docs state that there are two classes for standard-line (open and closed). Do you use change-class to switch between the two? 2018-08-07T09:56:45Z schweers: I.e. does inspecting a line change the class of the underlying object? 2018-08-07T09:58:13Z beach: I forget. 2018-08-07T09:58:39Z phoe: https://github.com/robert-strandh/Cluffer/blob/7e9812e5f25e7d9bc34bf646eaeb467dc564b95c/Standard-line/edit-protocol-implementation.lisp#L53 2018-08-07T09:58:42Z phoe: it seems so 2018-08-07T09:59:02Z beach: Yeah. 2018-08-07T09:59:09Z phoe: there are exactly two occurrences of "change-class" in the code: "change-class line 'closed-line" and "change-class line 'open-line" 2018-08-07T09:59:27Z beach: Indeed. 2018-08-07T09:59:30Z pjb: siraben: https://framagit.org/patchwork/CoreMIDI on macOS. 2018-08-07T09:59:49Z xristos joined #lisp 2018-08-07T10:00:01Z schweers: thanks 2018-08-07T10:01:11Z siraben: pjb: Thanks. 2018-08-07T10:01:13Z siraben: Are you a musician? 2018-08-07T10:01:29Z pjb: siraben: see also: https://framagit.org/abnotation/midi for midi files. 2018-08-07T10:01:29Z beach: schweers: Interesting you should mention open/closed lines. This concept allows me to represent most lines in a compact way. I could go through the items and if they are only ASCII characters, I could create a vector of unsigned-byte 8. 2018-08-07T10:01:35Z pjb: siraben: more a programmer. 2018-08-07T10:01:50Z beach: schweers: Or, in some cases, I could run a compression algorithm on it if I wanted to. 2018-08-07T10:02:12Z beach: schweers: Right now, I just replace the gap buffer by a normal vector. 2018-08-07T10:03:04Z schweers: I took a while to understand your comment on ASCII, but now it makes sense. Interesting design. 2018-08-07T10:03:13Z pjb: siraben: there's also Midishare, https://framagit.org/patchwork/midishare but it has a little bitrotten. 2018-08-07T10:03:29Z schweers: I think I like the idea of changing the class in order to change which methods apply without changing object identity. 2018-08-07T10:03:40Z beach: schweers: Thanks. I have been contemplating this design for 30 years or so. :) 2018-08-07T10:03:46Z schweers: wow 2018-08-07T10:03:57Z pjb: siraben: perhaps it'll be easier to make it work on linux. The main problem is on macOS, that ffigen4 doesn't work on recent systems; it would have to be ported to newer compilers. 2018-08-07T10:04:33Z beach: schweers: Not full time, luckily. My Flexichain library is a step on the way. 2018-08-07T10:04:56Z siraben: pjb: I want to explore using CL as a musical live coding language 2018-08-07T10:05:32Z siraben: pjb: I have a macOS machine 2018-08-07T10:05:43Z pjb: beach: cf. com.informatimago.common-lisp.cesarum.ascii 2018-08-07T10:05:59Z pjb: siraben: then have fun with CoreMidi ;-) 2018-08-07T10:06:12Z pjb: siraben: https://framagit.org/pjb/midi-transform 2018-08-07T10:07:33Z Shinmera: siraben: Maybe have a look at OpusModus 2018-08-07T10:08:26Z siraben: pjb: Wow you do a lot of MIDI stuff! 2018-08-07T10:08:41Z siraben: You must be a musician haha 2018-08-07T10:09:12Z pjb: No, I just have fun with synthesizers. 2018-08-07T10:09:20Z siraben: Nice. 2018-08-07T10:10:31Z pjb: beach: things like: (com.informatimago.common-lisp.cesarum.ascii:ascii-format nil "foo ~A ~A" "bar" (com.informatimago.common-lisp.cesarum.ascii:ascii-bytes "baz")) (com.informatimago.common-lisp.cesarum.ascii:bytes<= #(65 66 67) #(65 66 68)) 2018-08-07T10:11:50Z beach: pjb: Yes, I see. 2018-08-07T10:12:33Z phoe: siraben: https://www.youtube.com/watch?v=xzTH_ZqaFKI 2018-08-07T10:12:51Z phoe: watch all videos from that guy, he's completely bonkers with his music programming. 2018-08-07T10:17:05Z siraben: phoe: Such a fast type o.o 2018-08-07T10:17:08Z siraben: typer* 2018-08-07T10:18:17Z beach: siraben: I think the word is "typist". :) 2018-08-07T10:18:27Z siraben: typist* 2018-08-07T10:19:35Z beach: Colleen: define typist 2018-08-07T10:19:36Z Colleen: typist /ˈtʌɪpɪst/ 2018-08-07T10:19:36Z Colleen: (noun): a person who is skilled in typing, especially one who is employed for this purpose. 2018-08-07T10:19:49Z kerrhau joined #lisp 2018-08-07T10:19:56Z schweers: skilled in typing ... that sounds a little vague ;) 2018-08-07T10:20:52Z beach: Most definitions of most common words are vague. 2018-08-07T10:20:56Z siraben: Either they memorized all this before hand or are really doing this live 2018-08-07T10:20:57Z phoe: like skilled in dynamic typing? 2018-08-07T10:21:08Z phoe: siraben: most likely a combo of both 2018-08-07T10:21:29Z siraben: Actually, this would be a good way to create generative music 2018-08-07T10:21:37Z siraben: Anyone ever heard of Music for Airports by Brain Eno? 2018-08-07T10:21:40Z phoe: in general, livecoding is just like making music, memorizing and training a lot so your subconscious can do the boring tasks and leave your consciousness to be actually creative 2018-08-07T10:21:42Z siraben: He does of lot of this stuf 2018-08-07T10:21:59Z siraben: phoe: More or less like a Jazz pianist memorizing common patterns 2018-08-07T10:22:14Z phoe: yep 2018-08-07T10:22:18Z phoe AFKs 2018-08-07T10:22:20Z schweers: also, completion seems to help him along 2018-08-07T10:22:40Z phoe: it helps all Lispers along (; 2018-08-07T10:23:01Z schweers: but yes, he does seem to be quite a decent typist and probably very good at doing what he does (besides typing) 2018-08-07T10:25:16Z siraben: The visualizations are good too 2018-08-07T10:25:51Z siraben: I don't think his display is getting distorted from his point of view 2018-08-07T10:25:58Z siraben: Anyway, it shows the power of using opengl as well 2018-08-07T10:32:18Z m00natic joined #lisp 2018-08-07T10:34:34Z schweers: beach: given that cluffer has two classes for cursors, (left and right sticky), if one wanted to alternate between the two behaviors (for instance on a per-command basis), would you consider it reasonable to change the class of said cursor regularly? 2018-08-07T10:35:43Z Kundry_Wag joined #lisp 2018-08-07T10:37:31Z beach: I suppose so. 2018-08-07T10:39:27Z SaganMan joined #lisp 2018-08-07T10:47:21Z schweers is off for lunch 2018-08-07T10:50:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-07T10:53:59Z brandonz quit (Ping timeout: 255 seconds) 2018-08-07T10:55:35Z meowray quit (Ping timeout: 256 seconds) 2018-08-07T10:57:14Z Kundry_Wag joined #lisp 2018-08-07T10:57:30Z brandonz joined #lisp 2018-08-07T10:57:55Z \u joined #lisp 2018-08-07T10:59:46Z galdor1: pjb: I'm curious regarding the way you name package, (e.g. com.informatimago.common-lisp.cesarum.ascii) do you use package name aliases ? or do you always :USE for DEFPACKAGE ? 2018-08-07T11:01:27Z kbtr_ quit (Quit: leaving) 2018-08-07T11:01:45Z kozy quit (Remote host closed the connection) 2018-08-07T11:01:49Z kbtr joined #lisp 2018-08-07T11:02:07Z phoe: galdor1: there are several schools for that. 2018-08-07T11:02:28Z phoe: the one I use: I mostly USE-PACKAGE, except for when I use IMPORT-FROM. 2018-08-07T11:02:35Z pierpal quit (Quit: Poof) 2018-08-07T11:02:50Z phoe: Another one is: never import anything and explicitly use package prefixes. 2018-08-07T11:02:55Z pierpal joined #lisp 2018-08-07T11:03:33Z galdor1: I use very short names for my own packages, which I find more practical, but it's easier to get conflicts 2018-08-07T11:03:45Z galdor1 is now known as galdor 2018-08-07T11:07:38Z ikki joined #lisp 2018-08-07T11:07:56Z Kundry_Wag quit (Remote host closed the connection) 2018-08-07T11:13:24Z phoe: yep - package-local nicknames is a solution for that, and it's kinda-widely-adopted now. 2018-08-07T11:21:58Z AeroNotix: is it normal/expected to use defsetf expander code to implement assertions on the value being setf? 2018-08-07T11:22:09Z AeroNotix: or is that typically/supposed to be done somewhere else? 2018-08-07T11:23:56Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-07T11:24:26Z phoe: AeroNotix: uh, inside the setf function? 2018-08-07T11:24:50Z phoe: (defun (setf foo) (new-foo ...) (assert (frobnicable-p foo)) ...) 2018-08-07T11:25:43Z AeroNotix: yeah 2018-08-07T11:26:03Z AeroNotix: Well I'm using defsetf 2018-08-07T11:26:16Z AeroNotix: Need to learn the difference between defsetf and (defun (setf ...))) 2018-08-07T11:26:28Z AeroNotix: to macroexpand! 2018-08-07T11:27:38Z phoe: I almost exclusively use (defun (setf foo) ...) 2018-08-07T11:27:59Z rumbler31 joined #lisp 2018-08-07T11:28:04Z phoe: unless I need to avoid double evaluation of arguments somewhere, at which point I define-setf-expander or define-modify-macro 2018-08-07T11:28:54Z schweers: hm, ccl doesn’t seem to support package local nicknames, at least not by the same feature convention as sbcl does. 2018-08-07T11:29:31Z AeroNotix: phoe: and the (setf foo) part can be anything like (setf (lookup foo blah blah)) instead, right? 2018-08-07T11:29:42Z AeroNotix: when using (defun (setf ..)) 2018-08-07T11:31:22Z phoe: AeroNotix: yes 2018-08-07T11:31:28Z phoe: (foo bar baz quux) 2018-08-07T11:31:37Z phoe: (setf (foo bar baz quux) fred) 2018-08-07T11:31:48Z AeroNotix: gotcha, thanks 2018-08-07T11:31:49Z phoe: (defun (setf foo) (new-value bar baz quux) ...) 2018-08-07T11:32:06Z phoe: in that case, the value FRED gets bound to the variable NEW-VALUE 2018-08-07T11:32:26Z phoe: so if (defun foo (...)), then (defun (setf foo) (new-value ...)) 2018-08-07T11:32:37Z phoe: the variables in ... SHOULD stay the same 2018-08-07T11:32:50Z AeroNotix: righto, will have a play 2018-08-07T11:40:21Z orivej quit (Ping timeout: 240 seconds) 2018-08-07T11:44:39Z akr joined #lisp 2018-08-07T11:45:06Z akr: Hello, does anyone know whether there is a CL implementation of CLDR ( https://en.wikipedia.org/wiki/Common_Locale_Data_Repository )? 2018-08-07T11:45:26Z akr: specifically, I need to use the country-dependent regexes for postal codes 2018-08-07T11:45:51Z akr: I don't think cl-unicode has it 2018-08-07T11:47:28Z akr: oh okay looks like it's been deprecated from CLDR anyway :( http://unicode.org/cldr/trac/ticket/8421 2018-08-07T11:48:41Z akr: I wonder what are the "other sources of such information" 2018-08-07T11:56:22Z kamog joined #lisp 2018-08-07T11:56:52Z random-nick joined #lisp 2018-08-07T11:59:23Z crsc quit (Quit: leaving) 2018-08-07T12:07:59Z rumbler31 quit (Remote host closed the connection) 2018-08-07T12:13:37Z random-nick quit (Read error: Connection reset by peer) 2018-08-07T12:16:45Z quipa joined #lisp 2018-08-07T12:20:26Z vaporatorius joined #lisp 2018-08-07T12:25:34Z test1600 quit (Ping timeout: 264 seconds) 2018-08-07T12:33:43Z drmeister: How would I get a random available port and the port number using sbcl sockets? 2018-08-07T12:34:19Z drmeister: I know open port 0 (zero) - but getting the port address afterwards ... 2018-08-07T12:37:27Z eminhi joined #lisp 2018-08-07T12:42:45Z Bike joined #lisp 2018-08-07T12:48:57Z Bronsa joined #lisp 2018-08-07T12:50:46Z lel quit (Ping timeout: 244 seconds) 2018-08-07T12:50:46Z malm quit (Ping timeout: 244 seconds) 2018-08-07T12:50:46Z PuercoPop quit (Ping timeout: 244 seconds) 2018-08-07T12:50:46Z dvdmuckle quit (Ping timeout: 244 seconds) 2018-08-07T12:50:46Z mulk quit (Ping timeout: 244 seconds) 2018-08-07T12:50:46Z justinmcp quit (Quit: No Ping reply in 180 seconds.) 2018-08-07T12:50:47Z abeaumont quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z dlowe quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z dieggsy quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z jxy quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z hjudt quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z ineiros quit (Ping timeout: 244 seconds) 2018-08-07T12:50:47Z nimiux quit (Ping timeout: 244 seconds) 2018-08-07T12:50:56Z pjb: galdor1: I use use-package and :use in defpackage. 2018-08-07T12:51:01Z zagura quit (Ping timeout: 244 seconds) 2018-08-07T12:51:01Z shachaf quit (Ping timeout: 244 seconds) 2018-08-07T12:51:19Z malm joined #lisp 2018-08-07T12:51:20Z lel_ joined #lisp 2018-08-07T12:51:35Z dlowe joined #lisp 2018-08-07T12:52:00Z dvdmuckle joined #lisp 2018-08-07T12:52:24Z pjb: galdor: and in my common lisp rc file, I import all those packages in CL-USER: https://github.com/informatimago/rc/blob/db7cace0bbe4cb9d4c370fd45c79666c23518d9a/common.lisp#L302 https://github.com/informatimago/rc/blob/db7cace0bbe4cb9d4c370fd45c79666c23518d9a/common.lisp#L437 2018-08-07T12:52:34Z Colleen quit (Ping timeout: 244 seconds) 2018-08-07T12:52:34Z pjb: (well, most of them). 2018-08-07T12:53:10Z galdor: oh nice 2018-08-07T12:53:13Z galdor: thank you for the information 2018-08-07T12:53:38Z pjb: galdor: Of course, I also have a com.informatimago.common-lisp.cesarum.package:add-nickname function, but my rule is that it should only be used by end-users. 2018-08-07T12:54:36Z pjb: galdor: and if you write an application such as it can be loaded in a lisp image along with other applications (occurs a lot of the time), then you're not the end-user. Only if your code can only be loaded to save a stand alone executable image. 2018-08-07T12:54:39Z mulk joined #lisp 2018-08-07T12:54:53Z pjb: But to have fun in the REPL, add-nicknames is nice. 2018-08-07T12:55:10Z pjb: add-nickname. 2018-08-07T12:55:17Z galdor: yep, this way you get a fully featured environment right under your fingers 2018-08-07T12:55:50Z dieggsy joined #lisp 2018-08-07T12:56:21Z ebrasca joined #lisp 2018-08-07T12:56:26Z hjudt joined #lisp 2018-08-07T12:56:35Z jxy joined #lisp 2018-08-07T12:57:23Z Xach: drmeister: sb-bsd-sockets:socket-name 2018-08-07T12:57:28Z Xach: drmeister: port is the 2nd return value 2018-08-07T12:57:30Z phoe: drmeister: yes, the second value of that 2018-08-07T12:57:38Z pjb: For package local nicknames, and other hierarchical package names, the current situation is that there are different specifications, and we'd need to homogeneize them and implement them for all implementations. cf https://github.com/informatimago/lisp/blob/master/common-lisp/lisp/relative-package.lisp 2018-08-07T12:57:39Z phoe: (I actually just checked the SBCL source for that) 2018-08-07T12:57:59Z pjb: notably https://github.com/informatimago/lisp/blob/cdd6ce994e55f88ba8b826657fae8c320dfaa291/common-lisp/lisp/relative-package.lisp#L106 2018-08-07T12:58:08Z drmeister: Thank you very much. I was looking for 'port-number' and whatnot and wondering if my implementation of sockets was missing something. 2018-08-07T12:58:51Z varjag joined #lisp 2018-08-07T12:58:56Z drmeister: Xach: While I have you here - once I (load "/quicklisp/setup.lisp") quicklisp does everthing relative to /quicklisp - correct? 2018-08-07T12:58:59Z galdor quit (Quit: WeeChat 2.1) 2018-08-07T12:59:02Z Xach: drmeister: yes 2018-08-07T12:59:22Z varjag quit (Remote host closed the connection) 2018-08-07T12:59:22Z drmeister: Oh boy - if only the rest of the world were so reasonable. 2018-08-07T12:59:40Z varjag joined #lisp 2018-08-07T13:00:07Z drmeister: We were wrestling all weekend with getting jupyterlab (implemented in Python) to install itself under one directory. 2018-08-07T13:00:17Z drmeister: Thank you very much. 2018-08-07T13:00:27Z pjb: it's not hard to do, but you still need to real with various cases, notably if you allow compiling the file. 2018-08-07T13:01:03Z pjb: You must deal with *load-pathnames* and *compile-file-pathname* in the different situations (or choose the -truename* versions). 2018-08-07T13:03:21Z ebrasca quit (Remote host closed the connection) 2018-08-07T13:04:34Z beach: In SICL code, I often need to refer to files that have a specific place with respect to the root directory, but where the relative path can vary. I have been using ASDF:SYSTEM-RELATIVE-PATHNAME, but I have been using it with a nested ASDF system name, so the relative pathnames vary. 2018-08-07T13:04:37Z beach: I would like for the relative pathnames to look the same no matter where they are referred to. Should I just use some (possibly fake) ASDF system name that I stick at the root of the hierarchy, or is there a better way? 2018-08-07T13:06:29Z phoe: I think (ab)using ASDF:S-R-P would be a sane approach here. 2018-08-07T13:06:56Z phoe: It's a rather popular function and it's designed for that kind of usage. 2018-08-07T13:06:56Z beach: So just use the same ASDF system everywhere so that the paths always look the same? 2018-08-07T13:07:16Z beach: Sounds good to me. 2018-08-07T13:07:57Z phoe: More or less, yep. ASDF systems, theoretically, are movable around the filesystem; if you have /foo/foo.asd and then /foo/bar/baz/quux/quux.asd, then, in pure theory, ASDF treats it the same as if the latter was /quux/quux.asd. 2018-08-07T13:08:45Z phoe: So, if your code is structured like that, you could consider putting some kind of root ASDF system that, uh. Kind of depends on all the others being in the same place? 2018-08-07T13:08:46Z beach: Oh, but if I move it, then all my relative pathnames will be wrong. 2018-08-07T13:08:59Z phoe: beach: this doesn't sound exactly right. 2018-08-07T13:09:25Z phoe: If you have a system FOO containing a file /bar/baz.txt, why don't you refer to it via (asdf:s-r-p :foo "/bar/baz.txt"?) 2018-08-07T13:09:25Z beach: I think we misunderstood each other. 2018-08-07T13:10:07Z phoe: If you want to refer to *every* single file from a single ASDF system, then you've essentially killed ASDF's modularity and turned all of your code into a de-facto single system. 2018-08-07T13:10:28Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-07T13:10:33Z beach: This is for a single repository, namely SICL. 2018-08-07T13:10:34Z pjb: Of course, whatever the mechanism to obtain the root pathname, I use it to set a logical pathname. 2018-08-07T13:10:41Z beach: The place for SICL may move around. 2018-08-07T13:10:50Z phoe: I understand so far. 2018-08-07T13:10:53Z pjb: Some of my logical pathnames may also be specified in logical-host files. 2018-08-07T13:10:55Z phoe: You have modules inside SICL, right? 2018-08-07T13:10:58Z beach: But within SICL, there are many ASDF systems, and many subdirectories. 2018-08-07T13:11:02Z beach: Yes. 2018-08-07T13:11:05Z phoe: Yep, I see. 2018-08-07T13:11:12Z galdor joined #lisp 2018-08-07T13:11:20Z beach: So I just want every file to be referred to using the same path. 2018-08-07T13:11:32Z phoe: So if you have a subsystem called FOO containing a file /bar/baz.txt, then you should be able to (asdf:s-r-p :foo "/bar/baz.txt") 2018-08-07T13:11:32Z pjb: I find that using logical pathnames really simplify the rest of the program. 2018-08-07T13:11:35Z beach: And it seems that I can do that be referring to them relative to an ASDF system located in the root. 2018-08-07T13:12:00Z phoe: You don't need to care about pathnames that way. All you need to know is, there's a system named FOO that contains a file at "/bar/baz.txt". 2018-08-07T13:12:15Z phoe: You don't have to care where it is relative to your position or even absolutely. ASDF takes care of that. 2018-08-07T13:12:17Z beach: phoe: No, that's not true. 2018-08-07T13:12:48Z beach: phoe: Because when I cross compile, I can't use ASDF since I haven't booted SICL sufficiently to contain ASDF. 2018-08-07T13:13:04Z phoe: Ooh. 2018-08-07T13:13:07Z beach: phoe: So I need to LOAD or CST-COMPILE a file, giving it a name. 2018-08-07T13:13:19Z phoe: Sigh. beach, you and your bootstrapping edge cases. (: 2018-08-07T13:13:47Z beach: I guess I could teach ASDF to do cross compilation, but I'll do that some other day. 2018-08-07T13:14:07Z beach: It is already complicated to deviate just a little bit from the default behavior. 2018-08-07T13:14:13Z phoe: Yep, I see. 2018-08-07T13:14:31Z beach: pjb: What is a "logical-host file"? 2018-08-07T13:15:18Z fourier quit (Ping timeout: 256 seconds) 2018-08-07T13:16:54Z pjb: The files that are loaded by load-logical-pathname-translations 2018-08-07T13:18:45Z beach: I have no idea how to use that, and the usage seems to be implementation-defined. 2018-08-07T13:19:18Z beach: pjb: Can you suggest a solution using that for the specific problem that I was asking about? 2018-08-07T13:19:19Z pjb: Yes, but most implementation use the same format, just the logical-pathname-translation list saved in a file named after the logical host. 2018-08-07T13:19:40Z beach: and where is that file located? 2018-08-07T13:20:05Z ikki quit (Ping timeout: 240 seconds) 2018-08-07T13:20:35Z pjb: Well, in your case, using *load-pathname* or *compile-file-pathname* or -truename* is better. Those logical pathname translations are specified by the user, you probably don't want to depend on that. 2018-08-07T13:21:21Z pjb: It's implementation dependent, but you can configure them to search them eg. in ~/loghost/. 2018-08-07T13:21:33Z beach: That's correct. I want the exact contrary. And I can't use *load-pathname* or *compile-file-pathname* either, because for them to be set, I have to refer to the files somehow and that is the problem I am having. 2018-08-07T13:22:26Z beach: pjb: But wait, then I need yet another mechanism to refer to that file and that will vary according to where SICL is installed. That is precisely what I want to avoid. 2018-08-07T13:22:35Z pjb: beach: well, you start by loading one of the files in your sources, no? If you don't have asdf. 2018-08-07T13:22:51Z LiamH joined #lisp 2018-08-07T13:23:37Z pjb: At one time, the user needs to specify the path. Either with a (LOAD path-to-a-sicl-file) or by pre-configuring this path sometime somewhere. 2018-08-07T13:23:43Z beach: I have ASDF and it knows the root of the SICL tree, so I can use the relative pathname facility of ASDF to refer to files directly. Therefore I don't need to specify the initial file with an absolute pathname, and that's what I want. 2018-08-07T13:24:16Z beach: Yes, by running ql:register-local-projects which most people seem to know how to do. 2018-08-07T13:24:37Z pjb: beach: yes. What I'm suggesting here is to use asdf to set a logical-host, and use it to refer to the rest of the SICP files with logical pathnames. 2018-08-07T13:25:03Z pjb: This way, your dependency on asdf is limited to the code that does this setting up of the logical-host. 2018-08-07T13:25:32Z beach: I don't understand how to use ASDF to set a logical host. 2018-08-07T13:27:15Z beach: pjb: OK, never mind. I'll look into logical pathnames, but I'll probably do that later. Right now it would be a distraction from the work I am currently doing. Thanks for the tip. 2018-08-07T13:28:41Z mindCrime_ joined #lisp 2018-08-07T13:29:37Z light2yellow joined #lisp 2018-08-07T13:31:31Z dim: I think to remember CCL at least provides a logical hostname for its sources, is that right pjb? 2018-08-07T13:32:20Z dim: yeah, beach, you might find https://ccl.clozure.com/manual/chapter4.6.html interesting, as I think it solves the same use-case than you have with SICL 2018-08-07T13:34:31Z zagura joined #lisp 2018-08-07T13:36:50Z crsc joined #lisp 2018-08-07T13:37:25Z pjb: beach: https://pastebin.com/2Rq3bbeq (starting line 73) 2018-08-07T13:37:33Z shrdlu68 quit (Ping timeout: 264 seconds) 2018-08-07T13:37:38Z pjb: make-translation only deals with implementation specific variations. 2018-08-07T13:38:10Z pjb: (Sorry, I used cerarum as example, I don't have sicl sources at hand on this system). 2018-08-07T13:40:06Z patlv joined #lisp 2018-08-07T13:40:14Z patlv quit (Remote host closed the connection) 2018-08-07T13:40:35Z akr left #lisp 2018-08-07T13:41:23Z kushal quit (Ping timeout: 250 seconds) 2018-08-07T13:42:16Z beach: pjb: Thanks. I would have to figure out how to call define-logical-host-... automatically. 2018-08-07T13:42:54Z pjb: beach: perhaps it's possible to do that in the asd file. 2018-08-07T13:43:02Z beach: It might be. 2018-08-07T13:43:04Z pjb: After the defsystem form. 2018-08-07T13:43:27Z beach: Yes, that sounds possible. 2018-08-07T13:43:38Z beach: Thanks. 2018-08-07T13:44:02Z beach: That function would have to be defined though. 2018-08-07T13:44:19Z pjb: Yes, in the asd file too… 2018-08-07T13:44:20Z beach: Presumably as a result of running some ASDF system. 2018-08-07T13:44:39Z beach: Well, then I would have hundreds of copies of it. 2018-08-07T13:44:41Z pjb: or adding a dependency indeed, but this is a meta dependency. 2018-08-07T13:44:50Z beach: So I would have to extract it to a root system. 2018-08-07T13:45:14Z pjb: I guess you could add a (ql:quickload …) in the asd files. 2018-08-07T13:45:33Z beach: I'll give it some thought. Thanks again. 2018-08-07T13:45:58Z pjb: Perhaps this could be added to asdf. It seems useful to me. 2018-08-07T13:45:59Z beach: dim: I am reading that and I don't see a solution to my problem in there. 2018-08-07T13:46:13Z Denommus joined #lisp 2018-08-07T13:46:18Z beach: pjb: Maybe so, yes. 2018-08-07T13:46:51Z beach: OK, back to work. Thanks for the help everyone. 2018-08-07T13:51:44Z kushal joined #lisp 2018-08-07T13:54:02Z Inline joined #lisp 2018-08-07T14:00:14Z zfree joined #lisp 2018-08-07T14:01:05Z foom2 is now known as foom 2018-08-07T14:04:52Z random-nick joined #lisp 2018-08-07T14:08:30Z rumbler31 joined #lisp 2018-08-07T14:10:01Z lnostdal joined #lisp 2018-08-07T14:10:02Z black_13 joined #lisp 2018-08-07T14:10:19Z black_13: what is the difference between define and let 2018-08-07T14:11:43Z Inline: there's no define in common-lisp 2018-08-07T14:11:46Z Inline: that's scheme 2018-08-07T14:11:54Z Inline: in common-lisp it's called defun 2018-08-07T14:12:05Z Inline: but i suppose both are macros 2018-08-07T14:12:07Z FreeBirdLjj joined #lisp 2018-08-07T14:12:46Z black_13: ok 2018-08-07T14:13:11Z black_13: defun is define function? 2018-08-07T14:13:15Z Inline: let has lexical variables 2018-08-07T14:13:21Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-07T14:13:25Z Inline: a defun can refer to global ones tho 2018-08-07T14:13:27Z beach: black_13: DEFUN is a macro for defining functions. 2018-08-07T14:13:31Z Inline: via the parameter list 2018-08-07T14:13:55Z black_13: sorry my questions should be about scheme 2018-08-07T14:14:00Z black_13: #scheme 2018-08-07T14:14:25Z beach: black_13: This channel is dedicated to Common Lisp. 2018-08-07T14:14:39Z Inline: well actually you can also refer to global ones via let, but shortly after you enter let's body that one also becomes lexical 2018-08-07T14:14:42Z orivej joined #lisp 2018-08-07T14:14:52Z phoe: black_13: yep, most schemes don't have DEFUNs - they have only DEFINEs 2018-08-07T14:15:19Z Inline: and common-lisp code can have define, but most probably that would be a macro too 2018-08-07T14:15:22Z phoe: where (define foo ...) defines a variable named FOO and (define (bar ...) ...) defines a function named BAR. 2018-08-07T14:15:29Z phoe: Inline: yep, and it would be very non-standard. 2018-08-07T14:15:37Z Inline: i've seen some 2018-08-07T14:15:43Z Inline: not sure what to think of it 2018-08-07T14:16:04Z phoe: Inline: where? 2018-08-07T14:16:16Z phoe: Usually, if anything, it's macros from the DEFINE-FOO family 2018-08-07T14:16:19Z phoe: but DEFINE alone? hmm 2018-08-07T14:16:23Z lumm joined #lisp 2018-08-07T14:16:29Z Inline: i can't remember now, but somewhere i've seen defines in common-lisp code 2018-08-07T14:22:11Z phoe: changing topic: I was having a thought of doing basic inter-process communication between Lisp images by sending around FASLs 2018-08-07T14:23:29Z pjb: Inline: you can define a define macro in CL if you want. 2018-08-07T14:24:24Z pjb: phoe: I'm not sure it would be simplier or easier to use than my lisp heap. 2018-08-07T14:26:22Z phoe: pjb: your lisp heap? 2018-08-07T14:28:25Z makomo quit (Quit: WeeChat 2.0.1) 2018-08-07T14:28:55Z test1600 joined #lisp 2018-08-07T14:32:48Z AeroNotix: phoe: Why do you think that would be good? 2018-08-07T14:33:24Z AeroNotix: IPC usually is only concerned with data between processes where they both understand what the data represents and what operations are valid on said data 2018-08-07T14:33:45Z AeroNotix: sending the data + code to another process sounds kind of strange outside of some select distributed computing models. 2018-08-07T14:35:47Z JuanDaugherty quit (Quit: Exeunt) 2018-08-07T14:36:40Z phoe: AeroNotix: that's literally what Erlang does. 2018-08-07T14:38:22Z foom: Erlang is kinda an obscure reference, compared to literally the most common computing environment in existence, which also does that. 2018-08-07T14:38:44Z AeroNotix: phoe: It's not what Erlang does primarily 2018-08-07T14:38:44Z foom: (javascript, on the web) 2018-08-07T14:38:55Z AeroNotix: source: literally just finished an Erlang job spanning 5+ years 2018-08-07T14:39:10Z Shinmera: phoe: FASLs aren't very fast, mind you. They're usually also too general for IPC and more tailored formats will be more suitable. 2018-08-07T14:39:23Z Shinmera: FASLs also only have global side-effects, so not very great 2018-08-07T14:39:26Z AeroNotix: phoe: javascript is a special case, though. I liken it to downloading the software to run a program. 2018-08-07T14:39:31Z Shinmera: As in, they don't have a "return value" 2018-08-07T14:39:39Z pjb: phoe: type: (apropos "heap") that should list com.informatimago.common-lisp.heap.heap 2018-08-07T14:40:07Z pjb: or: (find "HEAP" (list-all-packages) :key (function package-name) :test (function search)) 2018-08-07T14:40:35Z AeroNotix: in reality, you tend to only send code between running beam instances when you've fucked up 2018-08-07T14:40:57Z black_13 quit (Ping timeout: 252 seconds) 2018-08-07T14:41:07Z pjb: Nonetheless, this can be useful. 2018-08-07T14:41:14Z AeroNotix: the distributed code loading features are touted as a really cool entrance feature but I really would doubt you should use them day-to-day. Or base your application's design around it. 2018-08-07T14:41:27Z AeroNotix: pjb: sure, it's definitely useful 2018-08-07T14:41:36Z pjb: You could send closures, or you could send rules compiled as functions, in systems where those rules change often (eg. yearly for tax rules). 2018-08-07T14:41:46Z AeroNotix: But phoe mentioned passing FASLs around as an alternative IPC mechanism 2018-08-07T14:41:59Z AeroNotix: my point is that the are countless other more standard and well-understood ways of doing that 2018-08-07T14:42:00Z pjb: But it's hard to get right, and fasl cannot store closures anyways. 2018-08-07T14:42:13Z pjb: indeed. 2018-08-07T14:42:14Z AeroNotix: pjb: lets pretend you _could_ send closures 2018-08-07T14:42:24Z pjb: Then super nice! 2018-08-07T14:42:33Z pjb: You could do great things, security wise. 2018-08-07T14:42:42Z AeroNotix: Is there a benefit of sending a closure to another lisp instance versus just updating the backing code and restarting the service 2018-08-07T14:43:04Z pjb: it could be useful for data access time, or for processing time. 2018-08-07T14:43:27Z AeroNotix: what do you refer to by both of those things? 2018-08-07T14:43:45Z pjb: for example, instead of giving your data to google etc, you could send them a closure that would ensure that your data is not use by them, but that your closure would process your data for them (on their systems). 2018-08-07T14:44:06Z AeroNotix: I understood phoe as meaning between two systems you control 2018-08-07T14:44:15Z AeroNotix: rather than handing code to a third-party to execute 2018-08-07T14:44:28Z pjb: Or to process a big database, sending a closure would be practical, like a stored procedure, to have local access to the database data. 2018-08-07T14:44:55Z pjb: Yes, but if you have a working system, it is useful when you don't control both systems. 2018-08-07T14:45:18Z pjb: (of course, you'd need more mechanisms to ensure protection, security, privacity, etc). 2018-08-07T14:45:26Z AeroNotix: seems like a mess 2018-08-07T14:45:37Z AeroNotix: sending a function to execute on a database 2018-08-07T14:45:57Z AeroNotix: I'm sure there are databases out there that do this (perhaps couchdb, if memory serves correctly) 2018-08-07T14:46:32Z X-Scale joined #lisp 2018-08-07T14:46:48Z Shinmera: couch needs predefined queries, so not really 2018-08-07T14:47:00Z Shinmera: but there are dbs that just execute random JS 2018-08-07T14:48:28Z kozy joined #lisp 2018-08-07T14:50:31Z sjl_ joined #lisp 2018-08-07T14:51:09Z AeroNotix: Shinmera: 90% sure you can set up functions to run on your data in cdb 2018-08-07T14:51:30Z AeroNotix: anyway 2018-08-07T14:51:32Z Shinmera: Yes but if I remember correctly you need to program them ahead of time as predefined procedures. 2018-08-07T14:51:32Z AeroNotix: point is 2018-08-07T14:51:36Z AeroNotix: right 2018-08-07T14:53:00Z pjb: AeroNotix: stored procedures in SQL database are routine. 2018-08-07T14:53:29Z pjb: AeroNotix: some database such as Postgres even allow plug-in languages: you could use Common Lisp by writing a trivial pg-ecl plugin. 2018-08-07T14:54:42Z pjb: And of course, there are OO databases, where it's even more a thing. (only OO databases usually runs more often locally, in your application). 2018-08-07T14:55:14Z pjb: https://www.postgresql.org/docs/9.5/static/xplang.html 2018-08-07T14:56:08Z AeroNotix: pjb: yep, I've used non pgpsql functions in pg. Though they're always just for the novelty really. 2018-08-07T14:56:33Z AeroNotix: My opinion is that, if you're needing your db to execute so much of your code like that, perhaps the db is doing too much 2018-08-07T14:56:48Z foom: Or your data is really big. 2018-08-07T15:06:00Z oldtopman quit (Quit: *pouf*) 2018-08-07T15:09:43Z rumbler31 joined #lisp 2018-08-07T15:10:41Z pjb: AeroNotix: the problem is with objects. SQL things that objects don't exist, just relationships. But relationships define objects! And as we know, objects encapsulate code with data, as in closures. So when you have a database, you have actually a bunch of objects in there, and you need code for their methods! 2018-08-07T15:11:19Z pjb: Only this is not in the relational model. So they added triggers and stored procedures in SQL. 2018-08-07T15:11:21Z hiroaki quit (Ping timeout: 240 seconds) 2018-08-07T15:11:36Z AeroNotix: applications define how data is transformed into application specific constructs 2018-08-07T15:11:59Z pjb: Next question is how you spread the code of your objects between the various computers or systems (database server, client UI app, etc). 2018-08-07T15:12:19Z pjb: And this is where it would be nice to be able to transfer closures, since this would allow you transfer standalone objects. 2018-08-07T15:12:57Z pjb: Otherwise, it is difficult to ensure consistency between all the different bodies of code. 2018-08-07T15:15:10Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-07T15:19:35Z jmercouris joined #lisp 2018-08-07T15:21:40Z milanj joined #lisp 2018-08-07T15:22:00Z Fare joined #lisp 2018-08-07T15:34:24Z buffergn0me joined #lisp 2018-08-07T15:35:02Z jmercouris: so I have a list like this ("something" "fish" "something") 2018-08-07T15:35:14Z jmercouris: I know about remove-duplicates, but I also want to sort the list by those which had the most frequency 2018-08-07T15:35:33Z jmercouris: so, since "something" appeared twice, I would like a resultant list that looks like ("something" "fish") which reflects the relative infrequency of "fish" 2018-08-07T15:35:57Z beach: jmercouris: First create a list (("something" . 2) ("fish" . 1)) 2018-08-07T15:36:09Z beach: jmercouris: Then sort it by the CDR. 2018-08-07T15:36:12Z jmercouris: I was just about to say that, but it is a little expensive 2018-08-07T15:36:30Z jmercouris: but if you are apparently thinking the same way that I am, it is probably the most reasonable solution 2018-08-07T15:36:36Z jmercouris: thank you for the help! 2018-08-07T15:36:38Z phoe: can this be done better than in O(nlogn) time? 2018-08-07T15:36:44Z pjb: (sort (com.informatimago.common-lisp.cesarum.list:equivalence-classes '("something" "fish" "something") :test (function string=)) (function >) :key (function length)) #| --> (("something" "something") ("fish")) |# 2018-08-07T15:37:00Z beach: Nice! 2018-08-07T15:37:09Z phoe: pjb: and then mapcar #'car on that and you have ("something "fish") 2018-08-07T15:37:37Z pjb: or: (sort (mapcar (lambda (class) (list (length class) (first class))) (com.informatimago.common-lisp.cesarum.list:equivalence-classes '("something" "fish" "something") :test (function string=))) (function >) :key (function first)) #| --> ((2 "something") (1 "fish")) |# 2018-08-07T15:38:15Z Shinmera: (let ((c (make-hash-table :test 'eq))) (dolist (i '(0 1 2 0)) (incf (gethash i c 0))) (sort (loop for k being the hash-keys of c collect k) #'> :key (lambda (k) (gethash k c)))) 2018-08-07T15:40:23Z Shinmera: supplant 'eq for whatever else equality test is appropriate of course. 2018-08-07T15:40:56Z pjb: you cannot compare integers with eq! 2018-08-07T15:41:05Z pjb: even (let ((x 0)) (eq x x)) may be nil! 2018-08-07T15:41:11Z beach: He is not trying. 2018-08-07T15:41:20Z beach: The hash table is for the strings. 2018-08-07T15:41:21Z Shinmera: No, but it's just an example with the assumption that the list contains identical objects. 2018-08-07T15:41:37Z pjb: (make-hash-table :test 'eq) <-- ; (dolist (i '(0 1 2 0)) <-- 2018-08-07T15:42:06Z jmercouris: Well, I'm going to do the first approach anyways, because I have to also maintain the code 2018-08-07T15:42:19Z jmercouris: fortunately this operation only happens literally one time at system startup 2018-08-07T15:42:22Z pjb: Leave it as is, the default eql is perfectly good. 2018-08-07T15:46:38Z sjl_: jmercouris: a FREQUENCIES function that implements the first half of what shinmera said is a handy util to have, e.g. https://github.com/sjl/cl-losh/blob/master/src/sequences.lisp#L26 2018-08-07T15:47:30Z jmercouris: that is pretty useful ineed, but by having it in the car I can make a sorted list more easily 2018-08-07T15:47:40Z jmercouris: s/ineed/indeed 2018-08-07T15:49:47Z sjl_: (alexandria:hash-table-alist (losh:frequencies '(a b a a c b))) ;=> ((C . 1) (B . 2) (A . 3)) 2018-08-07T15:49:50Z sjl_: :) 2018-08-07T15:50:09Z jmercouris: Lol, nice composition 2018-08-07T15:50:50Z jmercouris: does alexandria accept contributions? 2018-08-07T15:51:09Z sjl_: sometimes I wish there were just a few more utility functions for hash tables in the standard 2018-08-07T15:51:25Z sjl_: I've sent PRs that were accepted, but they were all pretty minor. 2018-08-07T15:51:42Z josemanuel joined #lisp 2018-08-07T15:51:55Z Shinmera: alexandria is pretty conservative. 2018-08-07T15:51:58Z sjl_: yeah 2018-08-07T15:52:11Z jmercouris: so it is doubtful that they would accept such a function, then? 2018-08-07T15:52:14Z rippa joined #lisp 2018-08-07T15:52:30Z Shinmera: There's a shittonne of utility libraries out there though that either already have something like this or would accept it 2018-08-07T15:52:39Z sjl_: My PRs were mostly obvious typo fixes and such 2018-08-07T15:53:12Z jmercouris: Well, nevermind then :P 2018-08-07T15:53:33Z AeroNotix: is there a built in format recipe that, given a 2D array it will print a table? 2018-08-07T15:54:14Z jackdaniel: knowing format there is, but no idea what that could be 2018-08-07T15:54:20Z Shinmera: format's iteration only does lists, not arrays, so no. 2018-08-07T15:54:20Z jackdaniel: probably some spghetti string 2018-08-07T15:54:35Z AeroNotix: lists, then 2018-08-07T15:54:36Z Shinmera: of course there's the cop-out of ~/ 2018-08-07T15:54:36Z sjl_: yeah if it were nested lists, definitely. not for 2d arrays. 2018-08-07T15:54:40Z jmercouris: Isn't there a way to pretty print a 2d array? 2018-08-07T15:55:09Z Shinmera: Something like "~{~{~10a ~}~%~}" for lists I guess. 2018-08-07T15:55:32Z AeroNotix: OK, will play 2018-08-07T15:56:01Z pierpal quit (Quit: Poof) 2018-08-07T15:56:19Z sjl_: http://cybertiggyr.com/fmt/fmt.pdf may be relevant to your interests 2018-08-07T15:56:20Z pierpal joined #lisp 2018-08-07T15:56:20Z Shinmera: Doing proper tabulation that doesn't break requires two iterations over the data -- once to estimate the column width, and once to print the data. 2018-08-07T15:57:14Z jmercouris: unless you truncate each cell to a max width, which could be faster and simpler to read 2018-08-07T15:57:30Z jmercouris: which is what I would do, rather than trying to dyanmically adjust the width of each column 2018-08-07T15:57:58Z AeroNotix: Nah it's just for debugging. A small format string is fine enough 2018-08-07T15:58:04Z AeroNotix: just thought there could be something built in 2018-08-07T15:58:38Z eminhi quit (Ping timeout: 256 seconds) 2018-08-07T16:00:43Z random-nickname joined #lisp 2018-08-07T16:00:54Z random-nick quit (Ping timeout: 256 seconds) 2018-08-07T16:11:50Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-07T16:25:13Z zfree quit (Quit: zfree) 2018-08-07T16:27:57Z emacsomancer joined #lisp 2018-08-07T16:28:23Z FreeBirdLjj joined #lisp 2018-08-07T16:28:26Z psq joined #lisp 2018-08-07T16:31:07Z psq quit (Quit: Page closed) 2018-08-07T16:31:51Z psq joined #lisp 2018-08-07T16:32:12Z psq quit (Client Quit) 2018-08-07T16:35:36Z psq joined #lisp 2018-08-07T16:36:30Z psq_ joined #lisp 2018-08-07T16:36:51Z psq: test, sorry 2018-08-07T16:37:29Z beach: What is it that you are testing? 2018-08-07T16:37:48Z mercourisj joined #lisp 2018-08-07T16:39:10Z mercourisj: our patience :D 2018-08-07T16:39:22Z mercourisj: next time, you can message minion to test your connection 2018-08-07T16:39:51Z jmercouris quit (Ping timeout: 240 seconds) 2018-08-07T16:41:51Z psq: I'm using erc in emacs, I just wanted to make sure I could talk and have the right nick 2018-08-07T16:42:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-07T16:42:27Z jackdaniel: psq: saying "hey" would be less suspicious :) 2018-08-07T16:42:30Z shka_ joined #lisp 2018-08-07T16:42:39Z eatonphil[m] quit (Quit: removing from IRC because user idle on matrix for 30+ days) 2018-08-07T16:43:47Z jackdaniel: on the other hand, if it is a new nick you may have been afraid of being inquired by beach (that he hasn't seen you here yet ;-) 2018-08-07T16:44:39Z schweers quit (Ping timeout: 265 seconds) 2018-08-07T16:44:51Z mercourisj: jackdaniel: you are missing a closing parenthesis 2018-08-07T16:45:14Z mercourisj: don't you have paredit enabled in your irc buffer? 2018-08-07T16:46:43Z jackdaniel: nerdy jokes are nerdy (i.e not especially funny); fyi I'm using irssi 2018-08-07T16:49:33Z Bronsa quit (Ping timeout: 264 seconds) 2018-08-07T16:52:24Z mercourisj quit (Remote host closed the connection) 2018-08-07T17:00:39Z psq_ quit (Ping timeout: 252 seconds) 2018-08-07T17:02:21Z orivej quit (Ping timeout: 240 seconds) 2018-08-07T17:04:28Z siraben quit (Ping timeout: 268 seconds) 2018-08-07T17:04:41Z JuanDaugherty joined #lisp 2018-08-07T17:08:34Z razzy joined #lisp 2018-08-07T17:12:21Z emacsomancer quit (Ping timeout: 240 seconds) 2018-08-07T17:14:14Z m00natic quit (Remote host closed the connection) 2018-08-07T17:17:59Z lumm quit (Quit: lumm) 2018-08-07T17:21:05Z Fare quit (Ping timeout: 248 seconds) 2018-08-07T17:21:10Z lumm joined #lisp 2018-08-07T17:22:50Z v0|d: jackdaniel: news on profiler? 2018-08-07T17:24:34Z hiroaki joined #lisp 2018-08-07T17:27:36Z test1600 quit (Ping timeout: 256 seconds) 2018-08-07T17:29:15Z shka_ quit (Remote host closed the connection) 2018-08-07T17:36:24Z shka_ joined #lisp 2018-08-07T17:37:21Z jxy quit (Quit: leaving) 2018-08-07T17:40:14Z schweers joined #lisp 2018-08-07T17:44:34Z pierpal quit (Quit: Poof) 2018-08-07T17:44:41Z jxy joined #lisp 2018-08-07T17:44:50Z pierpal joined #lisp 2018-08-07T17:45:24Z v0|d quit (Ping timeout: 260 seconds) 2018-08-07T17:48:13Z schweers: I have a problem starting ECL from slime on windows 10. I used the binary installer (I have no idea how to invoke autoreconf on mingw/msys). Starting ecl from the start menu item works, but starting it from slime, I get an “error” loading “sockets.fas”: "The operation completed successfully. 2018-08-07T17:48:13Z schweers: ". I have seen this issue: https://gitlab.com/embeddable-common-lisp/ecl/issues/293 2018-08-07T17:48:22Z schweers: But I can’t make sense of it. 2018-08-07T17:49:10Z jackdaniel: schweers: precompiled version is outdated; instructions how to compile on windows are in the manual 2018-08-07T17:49:29Z jackdaniel: v0|d: what kind of news? I'm lost here 2018-08-07T17:49:54Z phoe: beach: How do you plan on securing LispOS from dynamic-extent misuse? 2018-08-07T17:50:21Z jackdaniel: phoe: he plans to ignore this declaration, unless it may be proven that variable indeed has dynamic-extent 2018-08-07T17:50:23Z schweers: jackdaniel: this manual? https://common-lisp.net/project/ecl/static/files/misc/new-doc.pdf 2018-08-07T17:50:40Z phoe: jackdaniel: ooh, I see! Got it. Thanks. 2018-08-07T17:50:41Z random-nickname is now known as random-nick 2018-08-07T17:50:50Z jackdaniel: schweers: yes 2018-08-07T17:51:12Z jackdaniel: (I need to go, making pancakes) 2018-08-07T17:51:56Z Fare joined #lisp 2018-08-07T17:53:17Z Inline quit (Quit: Leaving) 2018-08-07T17:54:47Z Inline joined #lisp 2018-08-07T17:56:32Z beach: phoe: Yes, definitely. 2018-08-07T17:57:16Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-07T18:03:47Z lumm quit (Quit: lumm) 2018-08-07T18:09:16Z d4ryus quit (Quit: WeeChat 2.2) 2018-08-07T18:11:53Z d4ryus joined #lisp 2018-08-07T18:12:15Z zxcvz joined #lisp 2018-08-07T18:17:33Z shachaf joined #lisp 2018-08-07T18:26:29Z beach: phoe: I mean, what jackdaniel said. 2018-08-07T18:28:30Z phoe: beach: yes, I understood that. 2018-08-07T18:28:37Z sauvin quit (Read error: Connection reset by peer) 2018-08-07T18:29:14Z Fare quit (Ping timeout: 256 seconds) 2018-08-07T18:30:17Z phoe: Which Lisp data structure should I use if I want to be able to insert into it, get the count of all elements, and remove an element at random? 2018-08-07T18:30:26Z Ober: hash 2018-08-07T18:30:43Z phoe: How can I remove an element at random from a hash-table? 2018-08-07T18:30:46Z Ober: but 50 years of "List processing" (length lst) is still not O(1) 2018-08-07T18:30:49Z Bike: remhash 2018-08-07T18:30:56Z Bike: or do you mean picking an element randomly 2018-08-07T18:31:04Z Bike: if so, do you actually mean randomly, or just arbitrarily 2018-08-07T18:31:05Z phoe: Picking it at random and removing it from the hash-table, yes. 2018-08-07T18:31:09Z Ober: order is random 2018-08-07T18:31:18Z sjl_: phoe: make a hash bag element with an index vector, like stylewarning's hash-set interface 2018-08-07T18:31:19Z Ober: s/random/undefined 2018-08-07T18:31:23Z phoe: Random, as in, I want actual true randomness here. 2018-08-07T18:31:43Z sjl_: https://bitbucket.org/tarballs_are_good/map-set/src/default/map-set.lisp 2018-08-07T18:31:45Z Ober: random * (mod (length hash)) 2018-08-07T18:31:48Z stylewarning: “hash bag” nice term 2018-08-07T18:32:38Z sjl_: stylewarning: "multiset" is too fancy for me... and hash-(map|set|bag) is nice cause they all have 3 letters :) 2018-08-07T18:32:49Z Shinmera: phoe: the random removal is free if you can remove an arbitrary element in constant time and can know the size, since then you can just (remove (random N) structure) 2018-08-07T18:34:56Z sjl_: phoe: if all you need is insert + count + remove you could probably get away with a vector with some logic to move the last element into the "hole" when you remove an element, like in the link I posted 2018-08-07T18:35:30Z phoe: I actually think such a thing would be good enough. Basically an extensible vector. 2018-08-07T18:35:43Z m3tti joined #lisp 2018-08-07T18:35:44Z pjb: Ober: order in hash-tables is not random, it's unspecified. 2018-08-07T18:36:05Z sjl_: phoe: you just lose the insertion order of the elements once you start removing, which might be fine if you don't care about preserving insertion order 2018-08-07T18:36:12Z pjb: phoe: are you okay with removing the element in O(n)? 2018-08-07T18:36:47Z phoe: pjb: I'd use Lisp lists if it was. (: 2018-08-07T18:37:02Z phoe: sjl_: right, I don't care for insertion order. 2018-08-07T18:37:22Z phoe: pjb: in the worst case, I'll use lists, I am just looking for a smarter solution. 2018-08-07T18:37:33Z pjb: well, there's a difference. with list, removing an element is O(1) if you know the previous cons. 2018-08-07T18:38:54Z pjb: (vector-push-extend e v) (let ((r (random (length v)))) (replace v v :start1 r :start2 (1+ r)) (decf (fill-pointer v))) 2018-08-07T18:39:46Z sjl_: but if you don't care about reserving the insertion order, replace REPLACE with SETF to just swap the final element 2018-08-07T18:39:49Z sjl_: *preserving 2018-08-07T18:40:06Z pjb: Indeed. 2018-08-07T18:40:28Z sjl_: only downside is needing to resize the array on insertion sometimes 2018-08-07T18:40:36Z pjb: (vector-push-extend e v) (progn (rotatef (aref v (random (length v))) (aref v (1- (length v)))) (decf (fill-pointer v))) 2018-08-07T18:41:01Z pjb: So it's O(1) amortized insertion and O(1) extraction of a random element. 2018-08-07T18:41:09Z pjb: sjl_: not with fill pointers ;-) 2018-08-07T18:41:19Z sjl_: don't rotatef it, there's no reason to bother putting the removed element into the space that's just gonna get overwritten on the next push 2018-08-07T18:41:45Z sjl_: pjb: you'll occasionally need to resize if the fill pointer is already at the end, but usually you won't 2018-08-07T18:42:02Z pjb: sjl_: this is taken care by vector-push-extend. 2018-08-07T18:42:24Z pjb: Just use 3 arguments: (vector-push-extend e v (length v)) 2018-08-07T18:42:25Z sjl_: I'm talking about the work required, not who types it 2018-08-07T18:42:30Z pjb: ok. 2018-08-07T18:43:23Z pjb: (defun add-element (v e) (vector-push-extend e v)) (defun extract-element (v) (prog1 (setf (aref v (random (length v))) (aref v (1- (length v)))) (decf (fill-pointer v)))) 2018-08-07T18:43:45Z pjb: Oops. 2018-08-07T18:44:11Z pjb: (defun add-element (v e) (vector-push-extend e v)) (defun extract-element (v) (let ((r (random (length v)))) (prog1 (aref v r) (setf (aref v r) (aref v (1- (length v)))) (decf (fill-pointer v))))) 2018-08-07T18:44:32Z sjl_: now null out the slot you removed so it can get gc'ed later :) 2018-08-07T18:45:38Z pjb: If it's needed. Otherwise, and since it only grows the vector, you may want to resize down the vector when you've extracted a bunch. 2018-08-07T18:50:42Z m3tti quit (Remote host closed the connection) 2018-08-07T18:50:59Z m3tti joined #lisp 2018-08-07T18:55:35Z Fare joined #lisp 2018-08-07T18:57:03Z aeth: pjb almost has the answer (swap them) 2018-08-07T18:57:23Z aeth: It's actually more lines than that, though. You probably want (declaim (inline add-element)) ;-p 2018-08-07T18:57:33Z pjb: We want to avoid two stores. 2018-08-07T18:57:34Z pjb: rotatef is no more lines thant setf. 2018-08-07T18:57:45Z pjb: But it's more memory accesses. 2018-08-07T18:58:14Z pjb: On the other hand, if you want to clear the last element, we can use (shiftf (aref v r) (aref v (1- (length v))) nil) 2018-08-07T18:58:35Z pjb: But we may still want the (prog1 (aref v r) …) to get the removed element. 2018-08-07T19:02:55Z figurelisp joined #lisp 2018-08-07T19:05:13Z m3tti quit (Remote host closed the connection) 2018-08-07T19:05:59Z m3tti joined #lisp 2018-08-07T19:07:35Z schweers quit (Ping timeout: 240 seconds) 2018-08-07T19:07:50Z m3tti quit (Client Quit) 2018-08-07T19:09:24Z rpg joined #lisp 2018-08-07T19:20:51Z hiroaki quit (Ping timeout: 240 seconds) 2018-08-07T19:22:59Z sjl_: huh, TIL about shiftf. neat. 2018-08-07T19:24:05Z sjl_: pjb: shiftf returns the value it shifts out of the first element, right? so you don't need the separate aref in the prog1 2018-08-07T19:24:16Z sjl_: *first place 2018-08-07T19:25:32Z sjl_: q/b 5 2018-08-07T19:26:44Z pjb: Oh, right. use shift and skip the prog1. 2018-08-07T19:26:45Z sjl_: and if you're sneaky and decf the fill-pointer first and remove the 1- you could avoid the prog1 altogether, though that's kind of gross 2018-08-07T19:27:20Z Jesin quit (Remote host closed the connection) 2018-08-07T19:27:40Z pjb: you need to decf fill-pointer between the random length and the aref length :-) 2018-08-07T19:28:42Z pjb: (defun extract-element (v) (shiftf (aref v (random (length v))) (aref v (decf (fill-pointer v))))) 2018-08-07T19:29:02Z fouric: does anyone else have troubles getting SLIME to display lambda-lists in the emacs minibuffer while a process is running in the REPL? 2018-08-07T19:29:44Z pjb: (let ((v (make-array 10 :fill-pointer 0 :adjustable t))) (loop for i below 20 do (add-element v i)) (loop repeat 3 collect (extract-element v))) #| --> (5 1 10) |# 2018-08-07T19:30:05Z sjl_: should handle the empty case a bit more gracefully, but that works 2018-08-07T19:30:11Z pjb: fouric: perhaps it depends on the connection mode. It should work when threads are used. 2018-08-07T19:30:46Z pjb: sjl_: I expectde the empty case to be handled by pre-conditions. (ie. a docstring). 2018-08-07T19:31:11Z fouric: pjb: "connection mode" being the connection between swank and slime? 2018-08-07T19:32:04Z sjl_: I'd still rather have an error message like "Cannot extract element from empty extraction vector" instead of "Argument is neither a positive integer nor a positive float: 0" 2018-08-07T19:33:39Z Jesin joined #lisp 2018-08-07T19:33:56Z hiroaki joined #lisp 2018-08-07T19:35:14Z aeth: Isn't that just this? (when (zerop (length v)) (error "Cannot extract element from empty extraction vector")) 2018-08-07T19:35:32Z pjb: fouric: yes. 2018-08-07T19:35:34Z sjl_: yes 2018-08-07T19:35:37Z aeth: What's great about vectors over lists is the O(1) length instead of the O(n) length 2018-08-07T19:36:41Z sjl_: or (assert (plusp (length v)) () "Cannot extract...") 2018-08-07T19:37:08Z pjb: swank:*use-dedicated-output-stream* IIRC, and perhaps also swank:*globally-redirect-io* 2018-08-07T19:37:25Z pjb: sjl_: yes. 2018-08-07T19:39:21Z shka_ quit (Ping timeout: 240 seconds) 2018-08-07T19:40:30Z fouric: thanks! i'll look at it but i'm not super hopeful i'll be able to even figure out which mode i'm using 2018-08-07T19:50:35Z figurelisp quit (Quit: leaving) 2018-08-07T19:55:14Z jmercouris joined #lisp 2018-08-07T19:55:34Z doubledup joined #lisp 2018-08-07T20:01:54Z aeth: sjl_: or (defun foo (v) (let ((length (length v))) (handler-case (check-type length alexandria:positive-fixnum) (simple-type-error (x) (error "Cannot extract...~%~A~%" x))) v)) 2018-08-07T20:07:33Z aindilis quit (Remote host closed the connection) 2018-08-07T20:10:28Z ckonstanski joined #lisp 2018-08-07T20:12:24Z light2yellow quit (Quit: enough socialization for today) 2018-08-07T20:18:33Z aindilis joined #lisp 2018-08-07T20:20:31Z josemanuel quit (Quit: leaving) 2018-08-07T20:24:42Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-07T20:25:11Z orivej joined #lisp 2018-08-07T20:27:49Z ckonstanski quit (Remote host closed the connection) 2018-08-07T20:33:59Z gravicappa quit (Ping timeout: 260 seconds) 2018-08-07T20:52:36Z meepdeew joined #lisp 2018-08-07T20:54:56Z random-nick quit (Read error: Connection reset by peer) 2018-08-07T20:56:54Z random-nick joined #lisp 2018-08-07T21:03:56Z mooshmoosh joined #lisp 2018-08-07T21:04:44Z test1600 joined #lisp 2018-08-07T21:05:52Z doubledup quit (Remote host closed the connection) 2018-08-07T21:06:57Z mindCrime_ quit (Ping timeout: 240 seconds) 2018-08-07T21:07:06Z void_pointer joined #lisp 2018-08-07T21:08:52Z zxcvz quit (Quit: zxcvz) 2018-08-07T21:09:48Z Bike_ joined #lisp 2018-08-07T21:10:21Z Bike quit (Ping timeout: 252 seconds) 2018-08-07T21:16:21Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-07T21:27:24Z Bike_ quit (Ping timeout: 252 seconds) 2018-08-07T21:31:44Z gendl: Hi, has anyone ever had a good experience with an online editor for CL? 2018-08-07T21:31:56Z gendl: as in these "cloud development environments" 2018-08-07T21:32:39Z gendl: There is this: http://www.ymacs.org/ but it does not exactly look like a hotbed of activity.. 2018-08-07T21:33:04Z v0|d joined #lisp 2018-08-07T21:33:39Z gendl: it seems like in 2018 the best option for an "online" development experience is still running real Emacs locally and connecting to a remote CL with slime/swank -- agree, disagree? 2018-08-07T21:33:46Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-07T21:35:53Z no-defun-allowed: Yeah, that's what I've found best. 2018-08-07T21:41:39Z ckonstanski joined #lisp 2018-08-07T21:42:31Z angavrilov quit (Remote host closed the connection) 2018-08-07T21:43:00Z pjb: gendl: yes, it's the best solution. 2018-08-07T21:43:03Z LiamH quit (Quit: Leaving.) 2018-08-07T21:43:23Z void_pointer: I've not used it, but I think I saw recently that there is now a common lisp notebook for Jupyter and Jupyter can be used online. Given that Jupyter was originally meant for python and its editting capabilities for python are rather limited, I would guess that it doesn't offer much for common lisp other than maybe syntax highlighting. I don't know though. I guess take a look 2018-08-07T21:43:30Z pjb: gendl: even if you can use make-frame-on-display remotely, it's usually more effective to use tramp and edit locally. 2018-08-07T21:45:03Z void_pointer: https://github.com/fredokun/cl-jupyter 2018-08-07T21:47:27Z void_pointer: Also, it is jupyter, so it is more for doing computations and displaying the results. It doesn't look like it has much of any debugging capability and it is hard to imagine how it could even be added. 2018-08-07T21:50:44Z aeth: This also could be an option in the future, but it's still (1) an incomplete CL and (2) just a basic REPL. https://jscl-project.github.io/ 2018-08-07T21:51:18Z aeth: It has some 2018 activity, though. https://github.com/jscl-project/jscl/ 2018-08-07T21:54:53Z jmercouris: aeth: but why not target web-assembly instead? 2018-08-07T21:56:06Z ckonstanski quit (Ping timeout: 244 seconds) 2018-08-07T21:56:45Z aeth: jmercouris: (1) jscl is years older than wasm (even the initial announcement) and (2) wasm still hasn't solved the GC problem afaik 2018-08-07T21:57:16Z jmercouris: GC problem? 2018-08-07T21:57:25Z aeth: and I guess (3) if you're going to target wasm, just recompile an existing complete implementation and use wasm as a new architecture backend and save a ton of work 2018-08-07T21:57:47Z jmercouris: I think point 3 is the most salient 2018-08-07T21:57:51Z void_pointer: jmercouris: having seen discussion on targetting wasm from scheme, one difficulty is the lack of a garbage collector built into wasm (one would need to implement one within it) where as javascript has one by default 2018-08-07T21:58:02Z jmercouris: though I can't even imagine what that would entail, I seem to recall some document discussing how to port CCL 2018-08-07T21:58:16Z mindCrime joined #lisp 2018-08-07T21:58:26Z jmercouris: Oh, I see 2018-08-07T21:58:32Z aeth: If you implement your own GC in WASM, you are afaik going to have it be horribly inefficient because WASM isn't low-level enough. 2018-08-07T21:58:40Z aeth: Even if you were to port SBCL to WASM, you'd use the host's GC 2018-08-07T21:58:43Z jmercouris: I'm sure that'll get fixed with time 2018-08-07T21:58:49Z void_pointer: making a simple GC in wasm shouldn't be too hard, but as aeth mentioned, good performance would be hard 2018-08-07T21:59:11Z void_pointer: hmm, wonder if anyone is working on porting picolisp to wasm 2018-08-07T21:59:28Z jmercouris: so since there are efforts underway to port C to webassembly, does that mean you could possibly just use ECL wholesale? 2018-08-07T21:59:44Z void_pointer: that seems like it would be an order of magnitude easier than porting any common lisp or scheme implementation to wasm 2018-08-07T21:59:53Z aeth: Afaik yes, ECL will be the easiest to port, but with the efficiency issues unless it uses the host's GC. 2018-08-07T22:00:02Z test1600 quit (Quit: Leaving) 2018-08-07T22:00:09Z jmercouris: Well, not to mention the other performance issues ECL has in general 2018-08-07T22:00:47Z aeth: It's hard to make any implementations except 64-bit SBCL and CCL perform afaik 2018-08-07T22:01:19Z aeth: (32-bit versions will be creating *a lot* more garbage) 2018-08-07T22:01:54Z jmercouris: so, let's say we do get CL to run in the web 2018-08-07T22:01:57Z jmercouris: what would one possibly do with that? 2018-08-07T22:02:05Z jmercouris: s/web/web browser 2018-08-07T22:02:20Z jmercouris: I can't imagine, would one distribute CL images as applications that can run in the browser? 2018-08-07T22:02:38Z pjb: jmercouris: that'd be the purpose. 2018-08-07T22:03:09Z aeth: jmercouris: The next step after CL in the browser would be to add WebGL support to cl-opengl and find some way to either work with SDL as well or replace SDL backends for frameworks/libraries/engines with whatever wasm would use for the equivalent functionality 2018-08-07T22:03:09Z pjb: jmercouris: of course, an alternative is just to use jslinux and ccl. 2018-08-07T22:03:28Z pjb: or clisp or ecl; they might be easier to port to jslinux. 2018-08-07T22:03:29Z jmercouris: I guess it would certainly make distribution easier 2018-08-07T22:03:37Z aeth: jmercouris: A wasm SBCL or CCL using WebGL might eventually get passable performance for all the stuff currently written for cl-opengl 2018-08-07T22:03:49Z jmercouris: well, it could work for simple applications 2018-08-07T22:03:49Z pjb: https://bellard.org/jslinux/ 2018-08-07T22:04:16Z Bike joined #lisp 2018-08-07T22:04:25Z varjag: then you can finally run clim natively on the web 2018-08-07T22:04:36Z aeth: jmercouris: I think ideally what you'd want to do eventually is port Next Browser to wasm 2018-08-07T22:05:43Z aeth: varjag: CLIM would need a new GL backend. Afaik the old one got removed for basically using idiomatic 1999ish OpenGL when the dominant 3D API paradigm has changed several times since then 2018-08-07T22:05:58Z aeth: You'd want to use WebGL if you're using wasm 2018-08-07T22:06:12Z aeth: I think you could also use canvas, though. I'm not sure. 2018-08-07T22:07:44Z aeth: Of course, this is essentially reinventing the Flash plugin, except it would be a version where you'd have to redownload the Flash plugin with every in-browser Flash app. 2018-08-07T22:08:48Z void_pointer: probably the easiest common lisp like thing to implement in wasm once the C -> wasm stuff works would probably be μlisp since it is designed for very small image sizes and RAM (2 KB even), though all the low level hardware stuff would need to be drastically changed 2018-08-07T22:08:53Z jmercouris: aeth: why would I want to port Next to WASM? 2018-08-07T22:09:05Z aeth: jmercouris: so you can run Next in Next 2018-08-07T22:09:09Z jmercouris: Lol 2018-08-07T22:09:27Z jmercouris: I'm sure you've heard of the browser that has its UI written in JS that runs within the browser 2018-08-07T22:09:35Z jmercouris: it was some experimental Mozilla browser IIRC 2018-08-07T22:09:39Z aeth: There are several afaik 2018-08-07T22:21:05Z quipa quit (Ping timeout: 240 seconds) 2018-08-07T22:21:32Z meepdeew quit (Read error: Connection reset by peer) 2018-08-07T22:22:02Z meepdeew joined #lisp 2018-08-07T22:26:04Z vlatkoB quit (Remote host closed the connection) 2018-08-07T22:26:49Z random-nick quit (Read error: Connection reset by peer) 2018-08-07T22:28:33Z mindCrime quit (Read error: Connection reset by peer) 2018-08-07T22:29:01Z mindCrime joined #lisp 2018-08-07T22:29:08Z no-defun-allowed: yeah the servo people didn't want to write it in C and they decided Rust was too annoying so they did it in JS for some reason 2018-08-07T22:29:26Z no-defun-allowed: wait no, it couldn't be "too annoying", they wrote servo in rust 2018-08-07T22:29:32Z no-defun-allowed: lazy bastards. 2018-08-07T22:29:59Z kajo joined #lisp 2018-08-07T22:33:26Z quipa joined #lisp 2018-08-07T22:33:49Z hiroaki quit (Ping timeout: 244 seconds) 2018-08-07T22:34:25Z Denommus quit (Remote host closed the connection) 2018-08-07T22:38:21Z kajo quit (Remote host closed the connection) 2018-08-07T22:38:50Z kajo joined #lisp 2018-08-07T22:38:55Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-07T22:39:38Z jmercouris: right, I was thinking of servo 2018-08-07T22:43:28Z jmercouris quit (Remote host closed the connection) 2018-08-07T22:45:16Z kajo quit (Read error: Connection reset by peer) 2018-08-07T22:47:05Z test1600 joined #lisp 2018-08-07T22:49:55Z moei quit (Quit: Leaving...) 2018-08-07T22:50:39Z moei joined #lisp 2018-08-07T23:00:23Z nonlinear quit (Quit: WeeChat 2.0.1) 2018-08-07T23:04:59Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-07T23:05:50Z robotoad quit (Quit: robotoad) 2018-08-07T23:07:27Z Fare quit (Ping timeout: 240 seconds) 2018-08-07T23:15:42Z lavaflow quit (Ping timeout: 268 seconds) 2018-08-07T23:23:44Z meepdeew quit (Remote host closed the connection) 2018-08-07T23:25:13Z chipolux joined #lisp 2018-08-07T23:28:00Z pjb quit (Ping timeout: 256 seconds) 2018-08-07T23:39:24Z pjb joined #lisp 2018-08-07T23:47:05Z nonlinear joined #lisp 2018-08-07T23:47:09Z Fare joined #lisp 2018-08-07T23:51:26Z lavaflow joined #lisp 2018-08-07T23:53:00Z ym quit (Remote host closed the connection) 2018-08-07T23:55:58Z chipolux quit (Ping timeout: 244 seconds) 2018-08-08T00:05:33Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-08T00:10:26Z lavaflow quit (Ping timeout: 244 seconds) 2018-08-08T00:12:21Z Fare quit (Ping timeout: 240 seconds) 2018-08-08T00:32:08Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-08T00:36:47Z orivej quit (Ping timeout: 244 seconds) 2018-08-08T00:44:42Z stnutt quit (Ping timeout: 260 seconds) 2018-08-08T00:46:45Z stnutt joined #lisp 2018-08-08T00:55:09Z mooshmoosh quit (Quit: Quit) 2018-08-08T01:01:02Z aeth: Does anyone configure their Emacs to highlight the types or classes green in places like defmethod? 2018-08-08T01:01:51Z aeth: Also probably would fit in THE and DECLARE as well as in quite a few custom DEFINE-FOO macros. 2018-08-08T01:02:30Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-08T01:03:01Z aeth: it looks like if Emacs highlighted CL like it highlighted C++, (defmethod foobar ((something foo)) ...) should have something highlighted as yellow and foo highlighted as green instead of having no highlighting there. 2018-08-08T01:04:57Z nowhere_man joined #lisp 2018-08-08T01:05:03Z aeth: It could be slightly problematic because &quux is green in all lambda-lists 2018-08-08T01:05:47Z lavaflow joined #lisp 2018-08-08T01:09:01Z aeth: I have a bunch of custom define-foos and I use some libraries that have their own define-foos (or deffoos) so I'm considering writing some syntax highlighting, but defmethod stands out as not really fitting expected Emacs highlighting so I'm considering also doing highlighting for that. 2018-08-08T01:10:26Z lavaflow quit (Ping timeout: 256 seconds) 2018-08-08T01:12:32Z Elon_Satoshi quit (Quit: So long, and thanks for all the fish! 2.2 Weechat is best Weechat) 2018-08-08T01:13:08Z Copenhagen_Bram joined #lisp 2018-08-08T01:18:15Z Kundry_Wag joined #lisp 2018-08-08T01:22:44Z PuercoPop joined #lisp 2018-08-08T01:32:39Z loli quit (Quit: WeeChat 2.2) 2018-08-08T01:33:33Z esthlos quit (Quit: ZNC 1.6.5 - http://znc.in) 2018-08-08T01:34:11Z esthlos joined #lisp 2018-08-08T01:37:41Z loli joined #lisp 2018-08-08T01:38:26Z Fare joined #lisp 2018-08-08T01:40:34Z lavaflow joined #lisp 2018-08-08T01:47:11Z zacts joined #lisp 2018-08-08T01:47:30Z siraben joined #lisp 2018-08-08T01:48:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-08T01:52:06Z Kundry_Wag joined #lisp 2018-08-08T01:54:27Z Fade: I think that would be a useful enhancement. 2018-08-08T01:56:28Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-08T01:57:44Z chipolux joined #lisp 2018-08-08T02:02:23Z robotoad joined #lisp 2018-08-08T02:20:05Z dddddd quit (Remote host closed the connection) 2018-08-08T02:22:42Z Pixel_Outlaw joined #lisp 2018-08-08T02:23:14Z Kundry_Wag joined #lisp 2018-08-08T02:26:28Z drmeister: Is there a function for formating a time like: 2018-08-08T01:16:07Z 2018-08-08T02:26:49Z drmeister: I see decode-universal-time 2018-08-08T02:26:51Z Bike: i think the local-time library has that 2018-08-08T02:27:29Z test1600 quit (Ping timeout: 260 seconds) 2018-08-08T02:29:35Z meepdeew joined #lisp 2018-08-08T02:31:34Z quipa quit (Quit: Leaving) 2018-08-08T02:33:59Z Pixel_Outlaw: I was thinking about making a scheduling tool myself a while back. Getting time span calculation right is truly an awful task. ;) 2018-08-08T02:35:37Z dieggsy left #lisp 2018-08-08T02:37:44Z pjb: drmeister: (list (ql-bundle::iso8601-time-stamp) (swank::format-iso8601-time (get-universal-time))) #| --> ("2018-08-08T02:37:43Z" "2018-08-08T04:37:43") |# 2018-08-08T02:38:20Z mathZ joined #lisp 2018-08-08T02:38:36Z dieggsy joined #lisp 2018-08-08T02:43:26Z PuercoPop: cl-localtime has pretty flexible formatting output options 2018-08-08T02:45:30Z asarch joined #lisp 2018-08-08T02:47:28Z aeth: I wrote my own ISO 8601 because it's mostly about taking DST into account... iirc, CL provides a multiple-values function that's basically a reversed ISO 8601 with the main difference being that ISO 8601 shifts the time zone with DST and CL keeps a constant time zone with a DST boolean 2018-08-08T02:50:39Z graphene joined #lisp 2018-08-08T02:51:47Z drmeister: Thanks everyone. 2018-08-08T02:52:02Z beach: Good morning everyone! 2018-08-08T02:56:21Z ckonstanski joined #lisp 2018-08-08T02:56:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-08T02:56:42Z Bike quit (Quit: Lost terminal) 2018-08-08T03:00:37Z housel quit (Remote host closed the connection) 2018-08-08T03:06:39Z housel joined #lisp 2018-08-08T03:09:07Z clog quit (Ping timeout: 256 seconds) 2018-08-08T03:10:15Z no-defun-allowed: hi beach 2018-08-08T03:10:27Z eminhi joined #lisp 2018-08-08T03:12:09Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-08T03:12:10Z pjb: 2018-08-08T03:12:10Z pjb: aeth: Z is fixed GMT+0. 2018-08-08T03:12:26Z pjb: = UTC. 2018-08-08T03:13:01Z asarch: How could I create the binary of (ql:quickload "clim-examples") (CLIM-DEMO:DEMODEMO)? 2018-08-08T03:13:20Z asarch: ...with SBCL? 2018-08-08T03:13:58Z beach: You could use save-lisp-and-die with the option of creating an executable file. 2018-08-08T03:15:04Z asarch: ? 2018-08-08T03:16:25Z asarch: "For information on creating "standalone executables" using SBCL, see SB-EXT:SAVE-LISP-AND-DIE in the User Manual." 2018-08-08T03:16:51Z beach: Is there a problem? 2018-08-08T03:17:44Z siraben is now known as rms 2018-08-08T03:17:49Z rms is now known as siraben 2018-08-08T03:19:12Z buffergn0me joined #lisp 2018-08-08T03:19:39Z asarch: No, sir no! 2018-08-08T03:25:49Z NoNumber joined #lisp 2018-08-08T03:30:36Z Kundry_Wag joined #lisp 2018-08-08T03:33:51Z \u is now known as meowray 2018-08-08T03:37:31Z aeth: pjb: Z is just yet another a special case, where you just put a conditional in the time zone name 2018-08-08T03:37:51Z aeth: it starts out as like 3 lines and is maybe 20 when you put all the special cases together 2018-08-08T03:38:34Z aeth: (two conditionals, actually. one to show Z if the offset is 0, another to force Z even if the CL time zone offset is not) 2018-08-08T03:42:54Z asarch: http://paste.scsys.co.uk/581371 2018-08-08T03:43:14Z asarch: Why this?: "SYSTEM::%FIND-PACKAGE: There is no package with name "ASDF-USER"" 2018-08-08T03:43:16Z asarch: ? 2018-08-08T03:43:34Z asarch: However, the same quicklisp.list works fine with SBCL 2018-08-08T03:43:48Z asarch: *quicklisp.lisp file 2018-08-08T03:49:11Z slyrus1 joined #lisp 2018-08-08T03:51:49Z buffergn0me: That sounds like an ASDF 2 thing. I remember reading somewhere there were problems with some of the old ASDF versions that came bundled with CLISP 2018-08-08T03:52:01Z ebrasca joined #lisp 2018-08-08T03:52:07Z asarch: Oh :-( 2018-08-08T03:52:54Z buffergn0me: CLISP has not really been developed for a very long time 2018-08-08T03:54:34Z asarch: :'-( 2018-08-08T03:56:52Z buffergn0me: :shrugs: not a big deal, there are probably too many Common Lisp implementations even without CLISP. It wasn't that compelling to use it vs CCL or SBCL 2018-08-08T03:57:47Z asarch: Ok. I'll stick to SBCL 2018-08-08T03:58:11Z ckonstanski quit (Quit: bye) 2018-08-08T04:01:57Z ebrasca quit (Remote host closed the connection) 2018-08-08T04:01:58Z nonlinear is now known as NB0X-Matt-CA 2018-08-08T04:02:34Z ebrasca joined #lisp 2018-08-08T04:02:39Z beach: buffergn0me: CLISP is being worked on right now, but it is still lagging behind because of several years of no activity. 2018-08-08T04:03:16Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-08T04:03:51Z buffergn0me: Oh that's cool. New maintainers stepped up or is it still Bruno and Sam? 2018-08-08T04:04:24Z beach: I don't know the details, but I know that karlosz is working on a Cleavir-based compiler for CLISP as a Google Summer-of-Code project. 2018-08-08T04:08:46Z kushal quit (Remote host closed the connection) 2018-08-08T04:09:00Z kushal joined #lisp 2018-08-08T04:11:41Z eminhi quit (Remote host closed the connection) 2018-08-08T04:16:57Z moei quit (Quit: Leaving...) 2018-08-08T04:28:31Z meepdeew quit (Read error: Connection reset by peer) 2018-08-08T04:29:46Z gector quit (Read error: Connection reset by peer) 2018-08-08T04:30:22Z meepdeew joined #lisp 2018-08-08T04:30:37Z gector joined #lisp 2018-08-08T04:48:37Z siraben: What are some good books on graphics (e.g. OpenGL, 2D graphics etc.) programming with Common Lisp? 2018-08-08T04:48:39Z siraben: Or resources. 2018-08-08T04:49:29Z beach: siraben: You may want to ask in #lispgames as well. They probably know more. 2018-08-08T04:51:04Z mfiano: The only one I know of is Land of Lisp, and I would not call it good. It is also wuite dated. 2018-08-08T04:52:30Z siraben: mfiano: Why is LoL not good? 2018-08-08T04:52:35Z siraben: beach: Ok I'll join that channel. 2018-08-08T04:54:39Z mfiano: I would consider that book a introduction to the language using impractical game development as a teaching aid. 2018-08-08T04:55:05Z montxero joined #lisp 2018-08-08T04:55:06Z siraben quit (Changing host) 2018-08-08T04:55:06Z siraben joined #lisp 2018-08-08T04:55:59Z siraben: Oof, I was considering buying it. 2018-08-08T04:56:04Z siraben: Now I'm reading Practical Common Lisp 2018-08-08T04:56:12Z siraben: I think it's pretty good. 2018-08-08T05:02:09Z montxero quit (Ping timeout: 264 seconds) 2018-08-08T05:04:39Z housel quit (Remote host closed the connection) 2018-08-08T05:05:14Z zacts quit (Quit: Konversation terminated!) 2018-08-08T05:05:16Z buffergn0me: Land of Lisp had almost no graphics in it 2018-08-08T05:05:58Z Khisanth quit (Ping timeout: 268 seconds) 2018-08-08T05:06:23Z siraben: Right I've seen. 2018-08-08T05:06:36Z siraben: Emacs Lisp would be a good language to write games in, there's a couple already 2018-08-08T05:06:41Z siraben: tetris.el snake.el pong.el 2018-08-08T05:06:53Z siraben: But not for more complicated things with OpenGL 2018-08-08T05:07:01Z beach: What does Emacs Lisp have that Common Lisp does not? 2018-08-08T05:07:19Z siraben: It's made for Emacs 2018-08-08T05:07:29Z siraben: A lot of things in Emacs Lisp are taken directly from Common Lisp 2018-08-08T05:07:34Z beach: How does that make it suitable for games? 2018-08-08T05:07:36Z siraben: And prefixed with cl- 2018-08-08T05:07:41Z siraben: It does not, just a toy example 2018-08-08T05:07:48Z siraben: It's not suitable for games* 2018-08-08T05:07:55Z siraben: Just for simple demos I suppose 2018-08-08T05:08:00Z beach: You said "Emacs Lisp would be a good language to write games in" 2018-08-08T05:08:08Z beach: Hence my question. 2018-08-08T05:08:31Z siraben: Well, _some_ games 2018-08-08T05:09:19Z beach: So I meant to ask: What does Emacs Lisp have that Common Lisp does not, and that makes it a good language to write games in? 2018-08-08T05:11:14Z siraben: Well, perhaps I'm biased because the only games I've played written in Lisp were made in Emacs Lisp 2018-08-08T05:11:20Z siraben: But of course it's not the best Lisp 2018-08-08T05:11:21Z beach: I see. 2018-08-08T05:11:24Z siraben: Hence my interest in Common Lisp. 2018-08-08T05:11:30Z siraben: ^esp wrt. OpenGL bindings 2018-08-08T05:11:34Z beach: It's not a trick question. I seriously wanted to know. 2018-08-08T05:11:43Z siraben: My bias, basically. 2018-08-08T05:11:46Z siraben: Haha 2018-08-08T05:12:21Z chipolux quit (Quit: chipolux) 2018-08-08T05:12:51Z chipolux joined #lisp 2018-08-08T05:15:26Z buffergn0me: Emacs Lisp is probably the last language you want to write games in. The Emacs event loop is horrible and there is no opting out of it. 2018-08-08T05:17:34Z siraben: Right. 2018-08-08T05:18:39Z Khisanth joined #lisp 2018-08-08T05:19:30Z housel joined #lisp 2018-08-08T05:23:09Z Kundry_Wag joined #lisp 2018-08-08T05:26:27Z chipolux quit (Quit: chipolux) 2018-08-08T05:30:58Z housel quit (Remote host closed the connection) 2018-08-08T05:31:10Z sauvin joined #lisp 2018-08-08T05:31:27Z housel joined #lisp 2018-08-08T05:32:23Z bkst quit (Quit: Lost terminal) 2018-08-08T05:34:10Z Inline quit (Quit: Leaving) 2018-08-08T05:39:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-08T05:43:39Z chipolux joined #lisp 2018-08-08T05:53:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-08T05:56:03Z ebzzry joined #lisp 2018-08-08T05:56:36Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-08T05:57:49Z moei joined #lisp 2018-08-08T06:03:48Z chipolux quit (Quit: chipolux) 2018-08-08T06:04:12Z aeth: The only Lisp that's good for games is Common Lisp. 2018-08-08T06:04:20Z aeth: Nothing's stopping a Scheme from eventually getting there, though. 2018-08-08T06:04:40Z aeth: (Except maybe having a smaller community size) 2018-08-08T06:05:13Z siraben: Racket? 2018-08-08T06:05:29Z siraben: Well, in the Lisp Game Jam there was a lisp with lua support as well 2018-08-08T06:06:37Z aeth: You can make simple 2D games in any language. Compiling to Lua is kind of cheating... Lua is an entirely unsuitable language for games alone, but is built around being a scripting language for C. You could do this with almost any language, but Lua's the most popular for this because it's sandboxable. 2018-08-08T06:08:05Z aeth: You can make a game entirely in Common Lisp. The only barrier is lack of higher level libraries. (Making it entirely in Common Lisp is probably unwise, though. SDL will save you a lot of work porting to many OSes.) 2018-08-08T06:09:51Z phoe: aeth: higher-level libraries? 2018-08-08T06:09:59Z siraben: So I guess I'll attempt just learning OpenGL first and make some graphics with common lisp 2018-08-08T06:10:17Z aeth: You might *barely* be able to get Racket to run higher-performance games. I wouldn't be surprised if in the next year that becomes a lot easier, though. 2018-08-08T06:10:45Z phoe: siraben: #lispgames might help you with that 2018-08-08T06:11:00Z meepdeew quit 2018-08-08T06:11:09Z aeth: phoe: The most mature game libraries are pretty low level, relatively speaking. 2018-08-08T06:11:21Z aeth: at least at the moment 2018-08-08T06:11:34Z aeth: I think phoe might be working on one, though 2018-08-08T06:12:03Z phoe: me? how? where? 2018-08-08T06:12:12Z aeth: you're not? 2018-08-08T06:12:22Z phoe: nope, not really 2018-08-08T06:12:25Z LdBeth: Probably a C friendly CL should be used for this? 2018-08-08T06:12:28Z phoe: nothing strictly game-related. 2018-08-08T06:12:47Z buffergn0me joined #lisp 2018-08-08T06:14:29Z aeth: LdBeth: If you don't care about footprint, SBCL + CFFI will be much faster, with CCL maybe half the speed in a worst case. 2018-08-08T06:14:54Z aeth: So if most of your game is in CL, those would be better choices 2018-08-08T06:21:41Z ofi joined #lisp 2018-08-08T06:21:52Z nowhere_man quit (Remote host closed the connection) 2018-08-08T06:21:59Z foom2 joined #lisp 2018-08-08T06:22:16Z nowhere_man joined #lisp 2018-08-08T06:22:43Z phoe: If MOP:SET-FUNCALLABLE-INSTANCE-FUNCTION is the writer function, what's the respective reader function? 2018-08-08T06:24:58Z foom quit (Ping timeout: 260 seconds) 2018-08-08T06:25:09Z aeth: siraben: You should probably try out https://borodust.org/projects/trivial-gamekit/ 2018-08-08T06:26:25Z aeth: There are lots of simple 2D options. That seems to be the one that's currently the most actively developed. 2018-08-08T06:26:39Z siraben: aeth: I'll check it out, thanks. 2018-08-08T06:26:43Z aeth: There's just currently a big gap between simple 2D and raw OpenGL bindings. 2018-08-08T06:30:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-08T06:31:42Z aeth: LdBeth: If an embeddable CL wanted to compete with Lua it would have to have sandboxing. Every game project starts with wanting to embed Python because of the popularity and then switching to Lua because Lua's pretty much the option for a tiny sandboxed language in C. 2018-08-08T06:34:01Z schweers joined #lisp 2018-08-08T06:37:19Z aeth: phoe: oh one example of a higher level library that afaik is still lacking is a 3D physics one 2018-08-08T06:38:01Z aeth: Even bindings are hard because they're usually written in C++ 2018-08-08T06:41:06Z beach: phoe: There isn't any. 2018-08-08T06:41:15Z beach: phoe: What do you need it for? 2018-08-08T06:42:07Z beach: phoe: For all practical purposes, the generic function *IS* the funcallable instance function. 2018-08-08T06:42:51Z aindilis quit (Ping timeout: 240 seconds) 2018-08-08T06:43:21Z mathZ quit (Remote host closed the connection) 2018-08-08T06:43:39Z beach: phoe: Hint: in SICL, there is actually no slot in the funcallable instance that stores the function given as an argument. Instead, it copies the components of the argument (i.e. the entry point in the code and the environment) to the funcallable instance component with the same function. 2018-08-08T06:44:11Z beach: phoe: Otherwise, there would be yet another indirection for the call. 2018-08-08T06:45:01Z phoe: beach: I don't need it for anything; curiosity, it's all. 2018-08-08T06:45:31Z beach: OK, now you know then. :) 2018-08-08T06:46:23Z v0|d: is it useful to have CL subset -> lua compiler? 2018-08-08T06:46:52Z v0|d: or does it exists already? 2018-08-08T06:50:45Z beach: What would you use it for? 2018-08-08T06:51:15Z v0|d: no idea, thats why Im asking. 2018-08-08T06:53:31Z aeth: v0|d: Lua is basically mini-JavaScript, and you use it for scripting for the same reason: lack of choice. 2018-08-08T06:53:36Z heisig joined #lisp 2018-08-08T06:53:56Z v0|d: Interesting. 2018-08-08T06:53:57Z aeth: But anything using Lua is many orders of magnitude less popular and less important than a web browser. 2018-08-08T06:54:18Z aeth: (Pretty much everything but Microsoft Office is.) 2018-08-08T06:55:03Z aeth: I would not get my hopes up for a good CL->Lua when the two CL->JSes aren't very complete. 2018-08-08T06:56:18Z v0|d: Another question, why there is no attempt to build a SecurityManager/Context standard for CL? (sandboxing?) 2018-08-08T06:57:02Z aeth: that's a question for beach. 2018-08-08T06:57:38Z beach: v0|d: It is very hard to do with the existing implementations. 2018-08-08T06:58:35Z v0|d: aeth: thanks for the answer, much appreciated. 2018-08-08T06:58:48Z beach: v0|d: ... which is why I am creating an implementation in which it will be easier to accomplish. 2018-08-08T07:00:39Z test1600 joined #lisp 2018-08-08T07:01:30Z beach: v0|d: The goal is to create a secure multi-user operating system. And I obviously can't let one user step on the code of other users, nor can I let random code from the net take down the entire system. 2018-08-08T07:02:15Z v0|d: Java has seperate class loader for each application. 2018-08-08T07:02:23Z v0|d: I always wondered how that might be applied to CL. 2018-08-08T07:03:43Z v0|d: GHC can also, load different versions of the same package. 2018-08-08T07:03:49Z beach: v0|d: I solve most of the problem with first-class global environments. 2018-08-08T07:04:00Z v0|d: See. 2018-08-08T07:04:02Z shrdlu68 joined #lisp 2018-08-08T07:05:00Z v0|d: Lets say we are in CMUCL, we need two kernels or both two kernels/vms? 2018-08-08T07:05:01Z beach: They allow each user to have a separate default environment, and they allow the system to have its own, so that random code can not be used to hack the compiler (for instance). 2018-08-08T07:05:46Z beach: In a typical Common Lisp system, nothing prevents any programmer (or any code from the net) from modifying the compiler so that it generates code with (say) a virus in it. 2018-08-08T07:05:59Z v0|d: Its really not that silverlined for me for the particular case. 2018-08-08T07:06:27Z beach: What do you mean? 2018-08-08T07:07:47Z varjag joined #lisp 2018-08-08T07:08:03Z v0|d: I mean, there is distinction of VM and KERNEL in CMUCL. 2018-08-08T07:08:28Z v0|d: I believe kernel is the subset that you were talking about. 2018-08-08T07:09:02Z phoe: not really 2018-08-08T07:09:14Z phoe: in Lisp, an environment describes what's accessible to you 2018-08-08T07:09:22Z phoe: what functions, what symbols, what objects, what everything 2018-08-08T07:10:03Z phoe: if you give an user an environment without access to the symbol CL:CAR, he won't be able to call #'CAR 2018-08-08T07:10:32Z beach: phoe: It's even better. I can give the user the symbol but not the function. 2018-08-08T07:10:35Z phoe: if you give an user an environment without access to any functions/macros/facilities that mutate anything, then he won't be able to mutate anything 2018-08-08T07:10:40Z phoe: beach: ooh 2018-08-08T07:10:43Z phoe: well, even better then 2018-08-08T07:10:57Z beach: Because in first-class global environments, functions are not attached to symbols but to the environment. 2018-08-08T07:11:04Z yangby joined #lisp 2018-08-08T07:11:32Z beach: So I can even have different functions with the name CAR as long as they are in different environments. 2018-08-08T07:11:37Z phoe: v0|d: so, anyway, this isn't about VM or KERNEL, it's about what stuff you are allowed to access *by* the environment. 2018-08-08T07:12:06Z phoe: and most Lisp implementations have only one global environment per image, which is why they aren't really suited for multi-user environments. 2018-08-08T07:12:33Z msb quit (Ping timeout: 248 seconds) 2018-08-08T07:12:42Z v0|d: Hm I guess I couldn't express myself properly. 2018-08-08T07:12:45Z beach: ... or sandboxing. 2018-08-08T07:13:04Z phoe: which is why beach is currently working on an implementation where global environments are plentiful and you can jail/sandbox/lock a particular piece of code in an environment where it's unable to do harm. 2018-08-08T07:13:04Z aeth: I think it's not uncommon to run 3 Lisps at once. 2018-08-08T07:13:05Z kbtr quit (Ping timeout: 248 seconds) 2018-08-08T07:13:05Z uint quit (Ping timeout: 248 seconds) 2018-08-08T07:13:05Z drot quit (Ping timeout: 248 seconds) 2018-08-08T07:13:37Z hvxgr quit (Ping timeout: 248 seconds) 2018-08-08T07:13:54Z tralala joined #lisp 2018-08-08T07:14:04Z no-defun-allowed: 3 lisps means 3 times the speed, duh! 2018-08-08T07:14:20Z phoe: and three times the garbage collection 2018-08-08T07:14:26Z shrdlu68: But why not just have separate processes? 2018-08-08T07:14:47Z uint joined #lisp 2018-08-08T07:14:48Z beach: no-defun-allowed: It also means that you have to communicate between them using this silly idea of converting everything to a stream of bytes, thereby losing identity of your objects. 2018-08-08T07:15:02Z kbtr joined #lisp 2018-08-08T07:15:07Z hvxgr joined #lisp 2018-08-08T07:15:09Z Shinmera: shrdlu68: Because communication is easier if it's in the same process. 2018-08-08T07:15:24Z Shinmera: shrdlu68: You can also share resources and conserve memory 2018-08-08T07:16:13Z drot joined #lisp 2018-08-08T07:16:20Z shrdlu68: I see. 2018-08-08T07:16:21Z v0|d: Im interested in the code organisation of such a CL implementation. 2018-08-08T07:16:31Z v0|d: Like, which code will be shared among all? 2018-08-08T07:16:53Z v0|d: which cannot, assume I am the developer of that machine. 2018-08-08T07:17:19Z v0|d: I exactly know whats going to happen on the user side. 2018-08-08T07:17:24Z no-defun-allowed: beach: whoosh 2018-08-08T07:17:25Z v0|d: (not interesting) 2018-08-08T07:17:31Z no-defun-allowed: but yes, welcome to unix. 2018-08-08T07:18:31Z phoe: v0|d: it's not really about sharing; it's more about access. 2018-08-08T07:18:41Z beach: v0|d: Exactly what code will be shared is not easy to figure out. But certainly most standard functions will be shared, but they won't necessarily have the effect that they do in a typical Common Lisp implementation. 2018-08-08T07:18:57Z msb joined #lisp 2018-08-08T07:18:58Z phoe: if an environment A has access to function FOO, then you can say that the code behind function FOO is "shared" with environment A. 2018-08-08T07:19:43Z beach: v0|d: I can't let (say) ADD-METHOD to add a method so that it is shared among all users of the generic function in question. 2018-08-08T07:20:22Z v0|d: Indeed. 2018-08-08T07:20:30Z beach: v0|d: So, either I give each one a separate generic function, or I store the methods in the environment rather than (as is usually the case) in the generic function object. 2018-08-08T07:20:40Z yangby quit (Quit: Go out for a walk and buy a drink.) 2018-08-08T07:21:31Z beach: Stuff like that has to be decided on a case by case basis, but most cases will be very simple because they don't have any shared effect. 2018-08-08T07:22:46Z beach: ... which just gave me an idea about how to do that. Thanks v0|d. 2018-08-08T07:22:48Z v0|d: Can it be done in the very low level? Don't laugh if it doesn't make sense. Lets say, a binary mmaps copies of some lisp image to the memory and executes each (top-level) in a sep. thread and implements a method of IPC. 2018-08-08T07:23:09Z phoe: v0|d: you mean the unix low-level? 2018-08-08T07:23:14Z phoe: or rather 2018-08-08T07:23:20Z v0|d: Sure. 2018-08-08T07:23:33Z phoe: "implements a method of IPC" the unix way, too? 2018-08-08T07:23:40Z phoe: meaning that you communicate via bytestreams? 2018-08-08T07:23:48Z v0|d: No, lisp IPC. 2018-08-08T07:23:53Z v0|d: we already have unix IPC. 2018-08-08T07:24:07Z Shinmera: beach: Could do COW, perhaps. 2018-08-08T07:24:25Z phoe: if we're in the Unix world, then we need Unix IPC between different processes 2018-08-08T07:24:47Z phoe: if these are threads and therefore share memory, then it could be done without inter-process bytestream communication 2018-08-08T07:25:11Z phoe: so, hmm, I can't see why this couldn't be done that way 2018-08-08T07:25:23Z no-defun-allowed: http://simson.net/ref/ugh.pdf​ 2018-08-08T07:25:36Z phoe: (: 2018-08-08T07:25:51Z no-defun-allowed: god dammit riot.im, stop mangling [my links](http://simson.net/ref/ugh.pdf) 2018-08-08T07:26:59Z v0|d: no-defun-allowed: https://www.youtube.com/watch?v=FzM1qHJ04k0 2018-08-08T07:27:30Z no-defun-allowed: aren't names great? 2018-08-08T07:27:42Z v0|d: :) 2018-08-08T07:27:52Z no-defun-allowed: leah wanted me to pick a game for her and i said "no" so she showed me an amiga game called "no (exit)" 2018-08-08T07:28:02Z no-defun-allowed: (: 2018-08-08T07:28:46Z shrdlu68: Is Mezzano 100% CL? 2018-08-08T07:28:46Z v0|d: 7 The X-Windows Disaster How to Make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC 2018-08-08T07:28:53Z v0|d: lol 2018-08-08T07:29:03Z no-defun-allowed: mezzano is 100% common lisp afaik 2018-08-08T07:29:20Z no-defun-allowed: github says 99.7% CL, .3% "other" 2018-08-08T07:29:40Z aeth: phoe: how would you do it? 2018-08-08T07:30:03Z v0|d: 14 NFS Nightmare File System 2018-08-08T07:30:36Z phoe: aeth: as long as we're inside a single process, then we're home - any kind of Lisp message-passing should do 2018-08-08T07:30:55Z phoe: changing the topic a little bit: why (typep '#'foo '(cons (eql 'function) (cons symbol null))) ;=> NIL? Do I have some silly error in there? 2018-08-08T07:31:12Z no-defun-allowed: chapter 10, C++: the COBOL of the 90s, the assembly language of OOP 2018-08-08T07:32:00Z no-defun-allowed: hm, '#'foo would be (function foo), right? 2018-08-08T07:32:04Z phoe: yes 2018-08-08T07:32:11Z phoe: '#'foo == '(function foo) 2018-08-08T07:32:18Z jackdaniel: phoe: typep does not destructure cons 2018-08-08T07:32:23Z no-defun-allowed: gotcha 2018-08-08T07:32:24Z jackdaniel: type of '#'list is simply cons 2018-08-08T07:32:35Z phoe: clhs typep 2018-08-08T07:32:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_typep.htm 2018-08-08T07:32:43Z no-defun-allowed: cons is any cons iirc 2018-08-08T07:32:50Z jackdaniel: (because it is (quote (function foo)) 2018-08-08T07:32:59Z jackdaniel: s/(because/because/ 2018-08-08T07:33:00Z phoe: jackdaniel: well then, why (typep '(function foo) '(cons symbol (cons symbol null))) ;=> T? 2018-08-08T07:33:13Z no-defun-allowed: wait i see now 2018-08-08T07:33:18Z phoe: and why (typep '(function foo) '(cons (eql 'function) (cons symbol null))) ;=> NIL? 2018-08-08T07:33:28Z no-defun-allowed: (eql 'function) doesn't need the quote i think 2018-08-08T07:33:37Z phoe: gah 2018-08-08T07:33:40Z phoe: you are right 2018-08-08T07:33:52Z phoe: I knew it was some sorta silly mistake like that. (: thanks. 2018-08-08T07:33:57Z no-defun-allowed: np 2018-08-08T07:34:17Z v0|d: phoe: can I call you foo? 2018-08-08T07:34:28Z v0|d: or is it different. 2018-08-08T07:34:31Z jackdaniel: uhm, then I'm wrong it seems 2018-08-08T07:35:47Z phoe: phadthai: it's actually pronounced φ 2018-08-08T07:36:32Z phoe: jackdaniel: TYPEP destructures CONS; it's possible to describe a type that's "a list of three elements, the first two are floats and the third is a symbol" that way 2018-08-08T07:36:40Z phoe: as (cons float (cons float (cons symbol nil))) 2018-08-08T07:36:58Z no-defun-allowed: got phi problems? 2018-08-08T07:37:06Z phoe: uh, woops 2018-08-08T07:37:08Z asarch quit (Quit: Leaving) 2018-08-08T07:37:08Z phoe: phadthai: sorry 2018-08-08T07:37:15Z phoe: v0|d: ^ 2018-08-08T07:37:36Z yangby joined #lisp 2018-08-08T07:43:45Z milanj quit (Quit: This computer has gone to sleep) 2018-08-08T07:51:15Z phadthai: no problem phoe :) 2018-08-08T07:53:41Z Kundry_Wag joined #lisp 2018-08-08T07:57:55Z hjudt: what would i have to do to add keywords to a slot definition and to access this later? e.g. specifying a serialization function 2018-08-08T07:58:38Z vlatkoB joined #lisp 2018-08-08T07:59:36Z phoe: hjudt: sounds like creating a custom slot definition metaobject 2018-08-08T07:59:53Z Shinmera: Doing so is quite involved though 2018-08-08T08:00:01Z hjudt: yes probably 2018-08-08T08:00:10Z hjudt: ok so nothing easy? 2018-08-08T08:00:18Z phoe: nothing trivial 2018-08-08T08:00:20Z Shinmera: Let me see if I can dig up an example in my code base that's somewhat comprehensive 2018-08-08T08:00:37Z phoe: and nothing easy unless you have some MOP experience 2018-08-08T08:00:37Z hjudt: examples would be helpful, or maybe something to read 2018-08-08T08:00:44Z Shinmera: I guess this works. https://github.com/Shirakumo/lichat-protocol/blob/master/typed-slot-class.lisp 2018-08-08T08:01:40Z Shinmera: The above allows you to specify a type initarg on slots that is strictly checked (unlike the standard :type which may or may not be used for anything) 2018-08-08T08:02:34Z hjudt: ok thanks seems like a good starting point. but also looks like quite a bit customization is needed... as you said not trivial 2018-08-08T08:02:48Z Shinmera: The MOP requires quite a bit of boilerplate. 2018-08-08T08:03:00Z hjudt: and understanding of the mop 2018-08-08T08:03:37Z Shinmera: Ah, that part's not so hard once you understand that it's classes all the way down :) 2018-08-08T08:03:56Z phoe: until you reach turtles 2018-08-08T08:04:05Z robotoad quit (Quit: robotoad) 2018-08-08T08:04:30Z hjudt: i will delve in some time later when i don't have work to do and it is not so hot outside and inside ;-) 2018-08-08T08:10:31Z DataLinkDroid joined #lisp 2018-08-08T08:10:45Z yangby quit (Quit: Go out for a walk and buy a drink.) 2018-08-08T08:15:19Z samebchase quit (Quit: WeeChat 1.6) 2018-08-08T08:16:19Z tralala quit (Remote host closed the connection) 2018-08-08T08:18:01Z graphene quit (Remote host closed the connection) 2018-08-08T08:19:22Z graphene joined #lisp 2018-08-08T08:20:10Z samebchase joined #lisp 2018-08-08T08:23:48Z tralala joined #lisp 2018-08-08T08:26:20Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-08T08:28:36Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-08T08:33:56Z aindilis joined #lisp 2018-08-08T08:43:05Z figurelisp joined #lisp 2018-08-08T08:44:01Z aindilis quit (Read error: Connection reset by peer) 2018-08-08T08:57:04Z Bronsa joined #lisp 2018-08-08T09:07:02Z graphene quit (Remote host closed the connection) 2018-08-08T09:08:28Z graphene joined #lisp 2018-08-08T09:14:40Z dddddd joined #lisp 2018-08-08T09:30:57Z graphene quit (Remote host closed the connection) 2018-08-08T09:32:19Z graphene joined #lisp 2018-08-08T09:47:26Z orivej joined #lisp 2018-08-08T10:14:51Z test1600 quit (Ping timeout: 240 seconds) 2018-08-08T10:17:42Z graphene quit (Remote host closed the connection) 2018-08-08T10:19:08Z graphene joined #lisp 2018-08-08T10:22:58Z graphene quit (Remote host closed the connection) 2018-08-08T10:23:32Z Kundry_Wag joined #lisp 2018-08-08T10:24:18Z graphene joined #lisp 2018-08-08T10:28:06Z m00natic joined #lisp 2018-08-08T10:39:14Z Zaphiel joined #lisp 2018-08-08T10:40:33Z Zaphiel quit (Client Quit) 2018-08-08T10:41:04Z test1600 joined #lisp 2018-08-08T10:43:38Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-08T10:52:05Z vaporatorius quit (Ping timeout: 240 seconds) 2018-08-08T10:55:51Z lavaflow quit (Ping timeout: 240 seconds) 2018-08-08T10:56:47Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-08T10:57:26Z vaporatorius joined #lisp 2018-08-08T11:00:42Z random-nick joined #lisp 2018-08-08T11:05:01Z graphene quit (Remote host closed the connection) 2018-08-08T11:06:20Z graphene joined #lisp 2018-08-08T11:07:16Z orivej quit (Ping timeout: 256 seconds) 2018-08-08T11:20:19Z random-nick quit (Read error: Connection reset by peer) 2018-08-08T11:21:47Z random-nick joined #lisp 2018-08-08T11:31:00Z jeosol joined #lisp 2018-08-08T11:31:10Z JuanDaugherty quit (Quit: Exeunt) 2018-08-08T11:31:18Z jeosol: morning guys. 2018-08-08T11:31:32Z jeosol: Been doing a bunch of irc gymnastics to get it. wow 2018-08-08T11:31:41Z jeosol: *get in. 2018-08-08T11:32:13Z siraben: I'm having troubles loading trivial-gamekit 2018-08-08T11:32:15Z siraben: https://paste.debian.net/1037135/ 2018-08-08T11:32:22Z siraben: With quicklisp 2018-08-08T11:32:34Z siraben: I'm using SBCL, if that helps. 2018-08-08T11:33:07Z ismdeep joined #lisp 2018-08-08T11:33:22Z ismdeep quit (Remote host closed the connection) 2018-08-08T11:34:41Z graphene quit (Remote host closed the connection) 2018-08-08T11:35:06Z jeosol: I have a question related to cl-store. I have a defclass and after some calculations, I serialize it to a file. But when I tried to read it back into a session (via cl-store:restore ..), I get an invalid function: (lambda () :in some-function-name ..) 2018-08-08T11:35:51Z jeosol: above, I meant serialize an instance of the class ... 2018-08-08T11:35:59Z phoe: jeosol: can you paste the full error that you get? 2018-08-08T11:35:59Z graphene joined #lisp 2018-08-08T11:36:14Z jeosol: thanks. 2018-08-08T11:41:03Z graphene quit (Remote host closed the connection) 2018-08-08T11:41:18Z jeosol: phoe: here is a link: https://pastebin.com/RXGAR4RL 2018-08-08T11:41:37Z borodust: siraben: oh, you've already posted it here, nice :) 2018-08-08T11:42:01Z random-nick quit (Read error: Connection reset by peer) 2018-08-08T11:42:06Z borodust: Shinmera: looks like dissect is borked for latest sbcl 2018-08-08T11:42:09Z siraben: borodust: It's a weird issue. 2018-08-08T11:42:15Z borodust: https://paste.debian.net/1037135/ 2018-08-08T11:42:26Z borodust: Shinmera: here's the issue ^ 2018-08-08T11:42:28Z graphene joined #lisp 2018-08-08T11:42:43Z Shinmera: it was fixed in GIT 2018-08-08T11:42:49Z borodust: oh 2018-08-08T11:42:57Z borodust: i see 2018-08-08T11:43:05Z borodust: hmm 2018-08-08T11:43:11Z Shinmera: https://github.com/Shinmera/dissect/commit/85f9d485cca892dec12f365505251ac0d1c2c26b 2018-08-08T11:43:42Z graphene quit (Remote host closed the connection) 2018-08-08T11:43:55Z Shinmera: close to a month ago now. Still no new QL release though. 2018-08-08T11:45:20Z graphene joined #lisp 2018-08-08T11:45:45Z borodust: Shinmera: thanks! 2018-08-08T11:46:08Z Shinmera: Sure. It's a shame I didn't catch it before the last release. 2018-08-08T11:47:27Z siraben: Shinmera: Is there an ad-hoc fix? 2018-08-08T11:47:41Z Shinmera: apply the above patch 2018-08-08T11:48:28Z borodust: siraben: wait a second, no need to, i'll upload new dissect package in a moment 2018-08-08T11:48:36Z siraben: borodust: Oh ok. Thanks. 2018-08-08T11:57:26Z borodust: siraben: please, try (ql:update-all-dists) and runnint trivial-gamekit again 2018-08-08T11:57:33Z borodust: *try running 2018-08-08T12:01:06Z ofi quit (Ping timeout: 256 seconds) 2018-08-08T12:04:10Z Meow-J___ quit (Quit: Connection closed for inactivity) 2018-08-08T12:10:34Z siraben: borodust: It works now. Thank you again. 2018-08-08T12:11:32Z borodust: siraben: yay! my apologies it hadn't work out of the box 2018-08-08T12:11:37Z siraben: borodust: Shinmera: https://imgur.com/a/cPa0CLZ :) 2018-08-08T12:11:51Z siraben: borodust: No worries. Glad I had IRC to help. 2018-08-08T12:12:36Z borodust: siraben: 👍 2018-08-08T12:12:47Z black_13 joined #lisp 2018-08-08T12:20:29Z jeosol: what is the correct way to return a closure(?) around a function, so that I just call the function later, e.g., (funcall func-name). For a simple example (not actual case but similar) I define a function like (defun make-random () #'(lambda () (random 100.0))) 2018-08-08T12:21:08Z jeosol: and then use it later elsewhere like (funcall (make-random)) 2018-08-08T12:21:57Z dmiles quit (Ping timeout: 268 seconds) 2018-08-08T12:22:18Z shrdlu68: This is how I did it once: https://github.com/shrdlu68/cl-tls/blob/master/src/tls/tls.lisp#L1710 2018-08-08T12:24:10Z logicmoo joined #lisp 2018-08-08T12:26:14Z ofi joined #lisp 2018-08-08T12:26:17Z jeosol: shrdlu68: thanks it's similar to what I currently do. The problem is I am getting a cl-restore related problem that some function (make-random in the above example) is invalid function name 2018-08-08T12:28:40Z shrdlu68: Perhaps it expects a function name, not a function object. 2018-08-08T12:30:58Z graphene quit (Remote host closed the connection) 2018-08-08T12:32:28Z graphene joined #lisp 2018-08-08T12:33:50Z v0|d: diff btw 'make-random and #'make-random prob. 2018-08-08T12:36:14Z nowhere_man joined #lisp 2018-08-08T12:40:20Z panji joined #lisp 2018-08-08T12:40:41Z graphene quit (Remote host closed the connection) 2018-08-08T12:42:04Z graphene joined #lisp 2018-08-08T12:44:57Z trittweiler quit (Ping timeout: 240 seconds) 2018-08-08T12:46:44Z phoe: jeosol: return a closure? what do you mean? 2018-08-08T12:47:21Z phoe: does CL-STORE allow serializing functions at all? 2018-08-08T12:47:56Z phoe: https://common-lisp.net/project/cl-store/ 2018-08-08T12:47:58Z phoe: ` Serialization of functions and closures is not supported at this time. ` 2018-08-08T12:50:24Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-08T12:50:30Z v0|d: its actually very simple to serialize functions. 2018-08-08T12:50:51Z v0|d: just walk it, find free variables, serialize the sexp, serialize env, done. 2018-08-08T12:52:47Z random-nick joined #lisp 2018-08-08T12:52:54Z lavaflow joined #lisp 2018-08-08T12:53:20Z phoe: why walk it at all? serialize it as data and call COMPILE or EVAL when deserializing 2018-08-08T12:53:45Z v0|d: for closures, to find free vars. 2018-08-08T12:54:21Z Kundry_Wag joined #lisp 2018-08-08T12:57:21Z lavaflow quit (Ping timeout: 240 seconds) 2018-08-08T12:57:23Z graphene quit (Remote host closed the connection) 2018-08-08T12:58:49Z graphene joined #lisp 2018-08-08T13:01:05Z panji quit (Quit: Leaving.) 2018-08-08T13:03:34Z Bike joined #lisp 2018-08-08T13:04:47Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-08T13:05:00Z Kundry_Wag joined #lisp 2018-08-08T13:09:58Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-08T13:21:46Z test1600 quit (Ping timeout: 268 seconds) 2018-08-08T13:21:52Z makomo joined #lisp 2018-08-08T13:24:48Z black_13 quit (Quit: Page closed) 2018-08-08T13:25:15Z mindCrime joined #lisp 2018-08-08T13:26:48Z mindCrime quit (Remote host closed the connection) 2018-08-08T13:27:12Z mindCrime joined #lisp 2018-08-08T13:27:47Z MoziM joined #lisp 2018-08-08T13:28:00Z jmercouris joined #lisp 2018-08-08T13:28:31Z jmercouris: how can I start slime and set the dynamic space size of sbcl? 2018-08-08T13:28:37Z jmercouris: in the command line I would do: sbcl --dynamic-space-size 2560 2018-08-08T13:29:07Z Bike: you put the option in the command line slime uses. 2018-08-08T13:29:15Z jackdaniel: (setq inferior-lisp-program "~/bin/sbcl --dynamic-space-size 16") 2018-08-08T13:29:22Z jmercouris: I see 2018-08-08T13:29:32Z jmercouris: thanks 2018-08-08T13:29:59Z jmercouris: I wish I didn't have to do this, but it is a limitation of CLML 2018-08-08T13:30:06Z Shinmera: Or if you use slime-lisp-implementations, each entry is a list of binary + arguments. 2018-08-08T13:30:07Z jmercouris: for reference: https://github.com/mmaul/clml 2018-08-08T13:30:24Z gravicappa joined #lisp 2018-08-08T13:31:13Z jmercouris: Shinmera: that's useful, I didn't know about that, thanks 2018-08-08T13:31:44Z Shinmera: https://github.com/Shinmera/.emacs/blob/master/shinmera-lisp.el#L55-L92 2018-08-08T13:31:47Z Denommus joined #lisp 2018-08-08T13:33:34Z heisig quit (Quit: Leaving) 2018-08-08T13:33:41Z FreeBirdLjj joined #lisp 2018-08-08T13:35:27Z sjl joined #lisp 2018-08-08T13:39:00Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-08T13:40:49Z Kundry_Wag joined #lisp 2018-08-08T13:41:41Z logicmoo is now known as dmiles 2018-08-08T13:42:28Z random-nick quit (Read error: Connection reset by peer) 2018-08-08T13:45:11Z azimut quit (Ping timeout: 265 seconds) 2018-08-08T13:47:36Z pjb: v0|d: yes, it would be interesting to have various CL->x translators, so CL programmers can use those systems without suffering the pain of programming or scripting in those bullshit languages. lua might be nice, but it's not CL. Now, of course, since there is already a lot of code written in x, you would also want a x->CL translator, so that a CL programmer can maintain or patch those scripts. This is why I started a lua scanne 2018-08-08T13:47:57Z random-nick joined #lisp 2018-08-08T13:48:19Z Shinmera: pjb: your IRC client ate the rest of your message 2018-08-08T13:48:20Z pjb: beach: I would used a Lua->CL->Lua translator pair to write scripts in the DCS World simulator. (but lua is used in a lot of games). 2018-08-08T13:48:37Z pjb: Usually they just send another message; is there an option in erc? 2018-08-08T13:48:52Z pjb: Now, of course, since there is already a lot of code written in x, you would also want a x->CL translator, so that a CL programmer can maintain or patch those scripts. This is why I started a lua scanner and parser a few years ago. 2018-08-08T13:48:53Z pjb: https://github.com/informatimago/lisp/tree/master/languages/lua But strangely, I didn't have enough clones to go on with this project :-( 2018-08-08T13:49:21Z tralala quit (Ping timeout: 244 seconds) 2018-08-08T13:52:17Z light2yellow joined #lisp 2018-08-08T13:56:25Z beach: pjb: I see, thanks. 2018-08-08T13:56:41Z pjb: shrdlu68: notice that unix processes, ie. separate addressing spaces, where invented because in unix we want to run uncontrolled programs, written in assembler, or later, in C, and having free access to all the hardware and processor instructions. 2018-08-08T13:56:43Z pjb: Clearly, this leads to constant crashes (just like any C program), so we need hardware support to implement this separation of addressing spaces and privilege rings. 2018-08-08T13:57:21Z pjb: shrdlu68: but this is a patch on a peg leg. 2018-08-08T13:58:40Z pjb: shrdlu68: other systems give protection at a finer level, and this is possible cheaply in a controlled execution environment, with the help of a compiler that forbid the generation of random code such as address calculations. 2018-08-08T13:58:41Z pjb: In those systems, there will be no FFI! 2018-08-08T14:00:20Z pjb: shrdlu68: you might be interested in studying http://eros-os.org or keykos (or some older systems such as Burrough's). 2018-08-08T14:00:43Z eschatologist quit (Ping timeout: 244 seconds) 2018-08-08T14:02:00Z makomo: hello \o 2018-08-08T14:05:02Z pjb: jeosol: the operator that creates closures is CL:FUNCTION ! 2018-08-08T14:06:51Z pjb: jeosol: In (defun make-random () #'(lambda () (random 100.0))) #'(lambda () (random 100.0)) reads as (CL:FUNCTION (lambda () (random 100.0))) and this is what creates the closure returned by make-random. 2018-08-08T14:07:25Z pjb: jeosol: (let ((r1 (make-random)) (r2 (make-random))) (list (funcall r1) (funcall r2))) #| --> (33.383213 20.762522) |# 2018-08-08T14:07:34Z eschatologist joined #lisp 2018-08-08T14:08:32Z pjb: jeosol: note however that dynamic bindings (special variables) cannot be enclosed in closures, since closures are a lexical (spatial) notion, while dynamic binding is a temporal notion. 2018-08-08T14:08:35Z foom2: pjb: unfortunately, we now know that our *hardware* requires address-space separation for security, even if the software guarantees that it never generates machine code that would expose incorrect privileges. 2018-08-08T14:08:59Z pjb: foom2: how do you know that? 2018-08-08T14:09:25Z foom2: pjb: all the research papers on spectre and the follow-ons to it. 2018-08-08T14:10:09Z pjb: IIRC, spectre is a bug in the MMU? Without MMU, no spectre right? 2018-08-08T14:11:03Z pjb: jeosol: (defun make-random () (let ((state (make-random-state *random-state*))) (lambda () (let ((*random-state* state)) (random 100.0))))) (let ((r1 (make-random)) (r2 (make-random))) (list (funcall r1) (funcall r2))) #| --> (65.935524 65.935524) |# 2018-08-08T14:12:19Z foom2: Nothing to do with MMU. And it's not a "bug" per se, it's a giant hole in the models of machine behavior. 2018-08-08T14:13:00Z foom2: Let's say you have an array. Your programming language is not C, so it obviously checks that the element you're accessing is within the array, right? 2018-08-08T14:13:20Z beach: foom2: Sure. 2018-08-08T14:13:49Z foom2: Well, the hardware doesn't care, it speculatively assumes that the element is within the array, and loads the offset anyways. You don't get to see the result of that load, because the speculation is discarded, but it causes side-effects -- a cache line was loaded. 2018-08-08T14:13:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-08T14:14:41Z beach: So how do you exploit that? 2018-08-08T14:14:45Z foom2: And then you can observe that side-effect by comparing performance of a future fetch. 2018-08-08T14:15:45Z beach: And what will you conclude from that performance difference? 2018-08-08T14:16:15Z phoe: You basically iterate over a large amount of possible values and check the access times for them. For some value, this time is going to be smaller, since the value was cached by the CPU. 2018-08-08T14:16:20Z foom2: Read the paper. https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html 2018-08-08T14:16:54Z Fare joined #lisp 2018-08-08T14:16:59Z jmercouris: We keep talking about security from a technical perspective, but nobody ever considers the social perspective 2018-08-08T14:17:02Z foom2: "Variant 1" is the worst, because it's basically fundamental. 2018-08-08T14:17:07Z loke: My current CLIM work: 2018-08-08T14:17:08Z loke: A way to add notes to 2018-08-08T14:17:10Z loke: Oops 2018-08-08T14:17:13Z loke: https://youtu.be/mTubjXqFPBI 2018-08-08T14:17:18Z jmercouris: if we could somehow make it such that nobody had the desire to hurt anyone else in society, we wouldn't have to struggle with this constant exploit battle 2018-08-08T14:17:34Z phoe: By iterating enough times, you get a statistical time profile that's good enough for you to extract information from. 2018-08-08T14:17:36Z jmercouris: when I say society, I mean the greater global society 2018-08-08T14:17:40Z mindCrime quit (Ping timeout: 256 seconds) 2018-08-08T14:18:20Z beach: foom2: I was hoping you would summarize it so that I don't have to read it. I tried to understand it in the past and failed. 2018-08-08T14:18:33Z orivej joined #lisp 2018-08-08T14:18:37Z phoe: beach: I'm trying to help a little bit. (: 2018-08-08T14:19:19Z foom2: beach: okay, so, you want to discover what some value in memory is, that you're not allowed to access. 2018-08-08T14:19:33Z beach: OK. 2018-08-08T14:20:06Z foom2: beach: basically, what you want to be able to do is to speculatively load the value, then speculatively run some math instructions (e.g. mask off bits, say) on the result of that, then a second load. 2018-08-08T14:20:33Z beach: OK so far. 2018-08-08T14:20:43Z foom2: The second load will tell you whether the bit you masked off was 0 or 1, by which cacheline it pulled in. 2018-08-08T14:20:59Z Bike: that's the part i don't understand :( 2018-08-08T14:21:33Z beach: So the result of the masking is an address you use for the second load? 2018-08-08T14:22:07Z foom2: SECRET = speculative_load1; val = myarray[(SECRET & 1) * 10000] 2018-08-08T14:22:20Z beach: I think I understand. 2018-08-08T14:22:27Z foom2: after you execute that, either myarray[0] is in cache, or myarray[10000] is in cache 2018-08-08T14:22:31Z foom2: You can detect which by timing 2018-08-08T14:22:40Z beach: Makes sense. 2018-08-08T14:23:21Z beach: Now, of course, if you are not allowed to do arbitrary address calculations that will be a lot trickier. 2018-08-08T14:23:30Z foom2: Nope 2018-08-08T14:23:45Z phoe: and by then trying to access myarray[0] and myarray[10000], you can figure out which one was loaded 2018-08-08T14:23:50Z Bike: geez, that's tricky. 2018-08-08T14:23:58Z phoe: and if you can figure out which one was loaded, you can figure out whether that bit inside SECRET was 0 or 1 2018-08-08T14:24:01Z beach: Like if you are not allowed to mask something and then use that as an address. 2018-08-08T14:24:13Z foom2: you're not using it as an address 2018-08-08T14:24:15Z foom2: it's an array offset 2018-08-08T14:24:55Z beach: But you would then have to know the address of the beginning of the array, no? 2018-08-08T14:25:08Z foom2: "myarray" can be memory you're allowed to access. 2018-08-08T14:25:19Z foom2: it's an actual array you've allocated, that you're allowed to use 2018-08-08T14:25:31Z hiroaki joined #lisp 2018-08-08T14:25:32Z beach: Oh, but pjb was discussing a system where you are definitely not allowed to do address calculations. 2018-08-08T14:25:43Z beach: Like you are not allowed to know what address your array is at. 2018-08-08T14:25:47Z foom2: you don't need to know 2018-08-08T14:25:49Z beach: Like, say, a Common Lisp system. 2018-08-08T14:26:11Z beach: Hmm. 2018-08-08T14:26:15Z phoe: (aref vector (* 10000 (ldb (byte 1 0) secret))) ? 2018-08-08T14:26:21Z phoe: or rather, 2018-08-08T14:26:34Z phoe: (let ((secret (speculative-load))) (aref vector (* 10000 (ldb (byte 1 0) secret)))) 2018-08-08T14:26:41Z phoe: SECRET = speculative_load1; val = myarray[(SECRET & 1) * 10000] 2018-08-08T14:26:46Z phoe: I think these two are kinda equivalent 2018-08-08T14:26:54Z beach: I think I understand. 2018-08-08T14:26:57Z foom2: So, it is certainly helpful to know addresses to figure out where you'd like to point the first speculative load. 2018-08-08T14:27:11Z foom2: But you can just iterate through all of memory, instead 2018-08-08T14:27:13Z Bike: why not just have (ldb (byte 1 0) (speculative-load)) in there. lisp can cause security flaws in just one form, as it is highly advanced 2018-08-08T14:27:38Z phoe: Bike: I actually laughed hard 2018-08-08T14:28:05Z Bike: the project zero page mentions the second vulnerability can extract 1.5 KB a second. impressive 2018-08-08T14:29:23Z razzy: hi, any thoughts about picolisp? 2018-08-08T14:29:24Z foom2: There _are_ ways to mitigate this, e.g. this document describes a feature being implemented in clang to harden all loads: https://docs.google.com/document/d/1wwcfv3UV9ZnZVcGiGuoITT_61e_Ko3TmoCS3uXLcJR0/edit 2018-08-08T14:29:27Z phoe: Bike: https://www.youtube.com/watch?v=bReA1dvGJ6Y running on real hardware via pure speculation 2018-08-08T14:29:32Z pierpal quit (Quit: Poof) 2018-08-08T14:29:34Z beach: Well, the latest scare about x86 processors having all kinds of DRM stuff on them has made me a lot more interested in RISC-V. 2018-08-08T14:29:35Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-08-08T14:29:47Z pierpal joined #lisp 2018-08-08T14:30:11Z foom2: It reportedly "only" causes an ~30% slowdown, with some compromises that make it not 100% complete protection. 2018-08-08T14:30:32Z Bike: the economics of making chips seem to favor oligopolies, which are pretty vulnerable to Management Engine type stuff. it is, to say the least, unfortunate 2018-08-08T14:30:51Z beach: Indeed. 2018-08-08T14:31:32Z pjb: jmercouris: Current events teach us again that the greater global society doesn't exist: it's life, it's competition, it's darwin selection of the best. 2018-08-08T14:31:36Z phoe: well, x86_64 chips are on computers everywhere that are used to watch Hollywood videos, so it's obvious that Hollywood wants DRM on them, eh 2018-08-08T14:31:36Z Shinmera: Producing chips is unfortunately extremely expensive :/ 2018-08-08T14:32:06Z beach: I also read a paper recently about how impressively simple it was for a chip manufacturer, without the knowledge of the chip DESIGNER, to introduce a back door into a chip. And it would be very hard to detect such an addition. 2018-08-08T14:32:06Z pjb: jmercouris: the only context (society) where it's possible is within a "family" or the equivalent country wide: strong ethnic homogeneity. 2018-08-08T14:32:47Z Bike: cripes. 2018-08-08T14:33:30Z beach: This seems like a good time to take a break. 2018-08-08T14:33:31Z NB0X-Matt-CA quit (Excess Flood) 2018-08-08T14:34:00Z Bike left #lisp 2018-08-08T14:34:25Z phoe: I recently deleted all Lisp code I wrote for a library when I realized that it was essentially useless 2018-08-08T14:34:39Z loke: phoe: What code was it? 2018-08-08T14:34:40Z NB0X-Matt-CA joined #lisp 2018-08-08T14:34:42Z phoe: which was pretty darn good - I'd never have realized that without writing all that code. 2018-08-08T14:34:53Z phoe: loke: code for implementing a Petri net library. 2018-08-08T14:35:19Z loke: phoe: what is that? 2018-08-08T14:35:38Z phoe: I realized that I 1) wrote too much error handling code, 2) the objects I had were essentially functions, and were fully replaceable by them. 2018-08-08T14:35:43Z phoe: loke: https://www.techfak.uni-bielefeld.de/~mchen/BioPNML/Intro/pnfaq.html 2018-08-08T14:35:49Z phoe: basically a model of distributed computation. 2018-08-08T14:36:13Z pjb: phoe: in your example, I don't understand how you can get the secret if speculative-load fails? Shouldn't you get an condition signaled, or NIL? 2018-08-08T14:37:01Z phoe: pjb: actually, let me fix that 2018-08-08T14:37:03Z pjb: phoe: also, how far down the code will the processor keep executing after the speculative memory access? 2018-08-08T14:37:38Z foom2: pjb: can be thousands of cycles, if it's waiting for something that required fetching from main memory in order to resolve the speculation. 2018-08-08T14:37:46Z pjb: If you can access arrays, (several times) and set up timers, etc, why not just do some I/O to output SPECULATIVELY the secret? 2018-08-08T14:37:56Z foom2: You can't speculate I/O. 2018-08-08T14:37:59Z phoe: (let ((secret (speculative-load))) (when (foo) (aref vector (* 10000 (ldb (byte 1 0) secret))))) 2018-08-08T14:38:11Z phoe: and (foo) is something that isn't available in the cache. 2018-08-08T14:38:11Z pjb: That seems to me to be really a big design error. 2018-08-08T14:38:21Z pjb: (in the processor). 2018-08-08T14:38:27Z phoe: pjb: well, it is. 2018-08-08T14:38:35Z foom2: It's fundamental to the entire concept of caching and speculation. 2018-08-08T14:39:01Z foom2: It's not a big _design_ error, it's a really big conceptual error in the entire way we've thought about creating processors for the last few decades. 2018-08-08T14:39:29Z pjb: Ah, right, you're making only read access in the array, no write access. So it can keep executing as long as you're only reading and the data is available. 2018-08-08T14:39:42Z foom2: You can speculate writes too, fwiw. 2018-08-08T14:40:45Z rpg joined #lisp 2018-08-08T14:41:17Z pierpal quit (Quit: Poof) 2018-08-08T14:41:38Z pierpal joined #lisp 2018-08-08T14:41:39Z phoe: These writes will never leave the CPU because the speculation is discarded and not committed, but you can read the associated side effects of the CPU's inner work by means of timing. 2018-08-08T14:42:11Z pjb: Well, in any case having some cooperation between the hardware and the software is indeed a prerequisite for security and safety. 2018-08-08T14:42:28Z pjb: In the worst case, if you're running on a virtual machine, anything can happen under your feet. 2018-08-08T14:43:03Z jeosol: phoe, pjb, v0|d: thanks for the inputs. I had to get sleep to rest the brain. I think the issue is related to how I returned the function. 2018-08-08T14:44:35Z hiroaki quit (Ping timeout: 240 seconds) 2018-08-08T14:45:06Z jeosol: phoe: my use of use of closure(?) is technically not correct. My bad. I have a utility similar to the make-random example. I serialize to disk on, but on reading it back, it complains about that function. 2018-08-08T14:47:24Z ofi quit (Remote host closed the connection) 2018-08-08T14:48:35Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-08T14:48:43Z sauvin quit (Ping timeout: 268 seconds) 2018-08-08T14:51:24Z pjb: jeosol: indeed, functions and closures cannot be serialized by PRINT/READ. functions can be serialized by COMPILE-FILE/LOAD, but not closures. 2018-08-08T14:52:05Z pjb: jeosol: the problem with closures is that there may be several functions inside, and we'd have to load them at once. So this is not specified. 2018-08-08T14:52:32Z pjb: jeosol: if you need to do that in lisp, you can always save the values of your bindings, and the source of the functions. 2018-08-08T14:52:42Z iridioid joined #lisp 2018-08-08T14:53:54Z azimut joined #lisp 2018-08-08T14:54:25Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-08T14:55:20Z jeosol: pjb: really? hmmm. I save that function to a slot of a defclass that I call later. It's like, there are different distributions (normal, uniform), one is chosen at the start of the program, it is saved in a slot for later use throughout the run 2018-08-08T14:56:53Z jeosol: pjb: from your comments, it seems I have to think about this differently. It's expensive to generate the objects again (> 4hours run), hence my choice of trying to save and read-in 2018-08-08T14:57:20Z phoe: which kinds of objects are you generating? 2018-08-08T14:57:52Z phoe: if you're generating data, can't you try to serialize this alone, and recreate the closure using that data later on 2018-08-08T14:58:21Z jeosol: phoe: pardon the wrong use of word/terms. I am running an application that takes anywhere from 4 to 7 hours (worst case), and I have to save certain information about state (pressures, rates, etc) within some object. 2018-08-08T14:59:11Z chipolux joined #lisp 2018-08-08T14:59:19Z phoe: within that object, correct. If that object is some kind of standard-object, it should be serializable, depending on what is inside its slots. 2018-08-08T14:59:35Z jeosol: I do something like (defmethod run-object (obj class) ...), when I call (run-object obj ...), the object is updated with lots of info. 2018-08-08T14:59:35Z AnLog joined #lisp 2018-08-08T14:59:59Z phoe: Yep, I see. What makes OBJ non-serializable, then? 2018-08-08T15:00:07Z jeosol: phoe: yes, that is what I thought. I think I have been able to read-in and back before, but not sure of the current before, but this was before many addition updates. 2018-08-08T15:00:32Z quipa joined #lisp 2018-08-08T15:00:43Z phoe: jeosol: what makes that object non-serializable? Do you refer to any lambdas and/or closures from inside it? 2018-08-08T15:00:54Z sauvin joined #lisp 2018-08-08T15:01:22Z rippa joined #lisp 2018-08-08T15:02:44Z jeosol: phoe: short answer is yes, I think I am using that (I need to save a generator for a distribution (e.g., normal, uniform, etc), and this is saved in a slot for one of the object. 2018-08-08T15:03:24Z FreeBirdLjj joined #lisp 2018-08-08T15:03:37Z phoe: jeosol: can you regenerate this generator after the object is deserialized? 2018-08-08T15:03:39Z phoe: or rather 2018-08-08T15:03:59Z jeosol: phoe: there are many workflows, but current one doesn't even call or use the generator, but that slot still had some value for the generator. Perhaps, I need to remove it and test in isolation. 2018-08-08T15:04:00Z phoe: can you DEFUN that generator and just store the symbol inside that slot? Funcalling that symbol will be equivalent to funcalling the function object associated with it. 2018-08-08T15:04:07Z jeosol: phoe: that will be a yes, 2018-08-08T15:04:12Z phoe: jeosol: do that, then! 2018-08-08T15:04:26Z jeosol: because it just takes a list to sample from. 2018-08-08T15:04:50Z jeosol: let me try these options and see. 2018-08-08T15:05:01Z slyrus1 quit (Quit: slyrus1) 2018-08-08T15:08:22Z Achylles joined #lisp 2018-08-08T15:08:59Z pjb: jeosol: you can put in the closure functions to serialize and deserialize it. 2018-08-08T15:10:56Z pjb: and then, random-states cannot be serialized (conformingly: ecl and abcl cannot do it). 2018-08-08T15:11:24Z pjb: See previous discussions about the subject: write your own random number generator so you may save the state. 2018-08-08T15:11:29Z jeosol: pjb: thanks for that info. seems 2018-08-08T15:11:49Z jeosol: I will try to expand this a bit so it's clear. The random number example was to simplify my case. 2018-08-08T15:12:35Z jeosol: I will make a quick paste now. 2018-08-08T15:12:41Z pjb: or use an implementation that can save it: (unless (ignore-errors (read-from-string (prin1-to-string *random-state*))) (error "Choose another implementation, able to serialize random states")) 2018-08-08T15:12:49Z Inline joined #lisp 2018-08-08T15:13:55Z Kundry_Wag joined #lisp 2018-08-08T15:14:41Z mindCrime joined #lisp 2018-08-08T15:14:44Z robotoad joined #lisp 2018-08-08T15:17:03Z zacts joined #lisp 2018-08-08T15:17:08Z phoe: pjb: 2018-08-08T15:17:10Z phoe: clhs random-state 2018-08-08T15:17:10Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_rnd_st.htm 2018-08-08T15:17:12Z phoe: ` Implementations are required to provide a read syntax for objects of type random-state, but the specific nature of that syntax is implementation-dependent. ` 2018-08-08T15:17:22Z phoe: all implementations are able to serialize random states. 2018-08-08T15:17:28Z phoe: otherwise, they don't conform. 2018-08-08T15:17:56Z Kevslinger joined #lisp 2018-08-08T15:18:33Z jeosol: pjb, phoe: this is a paste to give a better idea https://pastebin.com/mwPFAxf0 2018-08-08T15:19:53Z jeosol: now, the discrete-variable-generator is used in the specific workflow I ran, but when I try to serialize back the object, I get invalid function name: (lambda () :in discrete-variable-generator) 2018-08-08T15:20:45Z jeosol: or i need some rest, hmm 2018-08-08T15:21:45Z slyrus1 joined #lisp 2018-08-08T15:22:05Z buffergn0me joined #lisp 2018-08-08T15:22:12Z pjb: ok, so abcl and ecl have a conformity bug here. 2018-08-08T15:22:31Z graphene quit (Remote host closed the connection) 2018-08-08T15:22:51Z figurelisp quit (Quit: Lost terminal) 2018-08-08T15:23:02Z phoe: huh? 2018-08-08T15:23:04Z phoe: (let ((*print-readably* t)) (print *random-state*)) works on ECL 2018-08-08T15:23:46Z phoe: wy 2018-08-08T15:23:50Z phoe: oops, wrong tab 2018-08-08T15:23:53Z graphene joined #lisp 2018-08-08T15:25:56Z zacts quit (Quit: Konversation terminated!) 2018-08-08T15:27:13Z zacts joined #lisp 2018-08-08T15:30:30Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-08T15:31:22Z slyrus1 quit (Quit: slyrus1) 2018-08-08T15:31:24Z pjb: jeosol: https://pastebin.com/uChwykJe 2018-08-08T15:31:43Z pjb: jeosol: but note that your closures ignore *random-state*. 2018-08-08T15:32:14Z pjb: therefore you won't have reproducible runs. 2018-08-08T15:33:02Z phoe: pjb: what kind of bug? 2018-08-08T15:33:03Z Copenhagen_Bram joined #lisp 2018-08-08T15:33:53Z pjb: phoe: indeed, *random-state* can be printed readably in ecl. I don't know why they don't print it readably in all cases. Remains abcl which doesn't print it readably: Armed Bear Common Lisp # cannot be printed readably. 2018-08-08T15:34:03Z varjag joined #lisp 2018-08-08T15:34:10Z phoe: ooh, that's a bug then 2018-08-08T15:34:21Z jeosol: pjb: yes, good point. That would be good to have, but in general, they are optimization runs, and I average results from multiple runs to get an average performance. 2018-08-08T15:34:33Z pjb: phoe: when an implementation diverge from the specified behavior, it's not conforming, it's a bug of the kind conformity bug. 2018-08-08T15:34:54Z phoe: pjb: yes, agreed 2018-08-08T15:34:57Z mkolenda joined #lisp 2018-08-08T15:35:21Z schweers quit (Ping timeout: 240 seconds) 2018-08-08T15:35:31Z pjb: jeosol: that's not the point. the point is that when you deal with pseudo random numbers, you often want to be able to reproduce an identical run (eg. to be able to debug a bug occuring only in some specific case). 2018-08-08T15:35:34Z jeosol: pjb: thanks for the paste, need to study it and adapt it to my case. Only different I see at a high-level is that the object being serialized contains the generator. 2018-08-08T15:35:42Z vaporatorius quit (Quit: Leaving) 2018-08-08T15:35:43Z zacts quit (Quit: Konversation terminated!) 2018-08-08T15:35:57Z pjb: jeosol: no, the serialized string only contains the names. 2018-08-08T15:35:59Z jeosol: pjb: my comment was not to disagree with you. Yes, that is a valid 2018-08-08T15:36:06Z pjb: (and instructions to recreate the generator). 2018-08-08T15:36:40Z pjb: (let ((dvg (discrete-variable-generator #("foo" "bar" "baz")))) (with-output-to-string (stream) (serialize dvg stream))) --> "#.(discrete-variable-generator #(\"foo\" \"bar\" \"baz\"))" 2018-08-08T15:37:19Z chamblin quit (Ping timeout: 265 seconds) 2018-08-08T15:37:19Z pjb: jeosol: of course, this is recursive; this works only because the data bound inside the closure is printable readably. 2018-08-08T15:40:07Z nika joined #lisp 2018-08-08T15:40:39Z shka_ joined #lisp 2018-08-08T15:40:48Z jeosol: jpb: most of my cases are discrete parameters (numbers, or string) 2018-08-08T15:41:48Z pjb: Yes, in general the set of types printable readably is enough for practical purposes. And it's easy to add your own serialization if needed. See make-load-form (for saving in a fasl) and print-object. 2018-08-08T15:41:59Z jeosol: pjb: something I see from your snippet. Could my use of cl:restore be the issue here. Perhaps may be try another method to serialize and deserialize the object 2018-08-08T15:42:20Z pjb: what is cl:restore? 2018-08-08T15:42:26Z phoe: pjb: cl-restore 2018-08-08T15:42:26Z jeosol: sorry, 2018-08-08T15:42:30Z jeosol: cl-store library 2018-08-08T15:42:34Z phoe: a function from the CL-STORE serialization library 2018-08-08T15:42:36Z jeosol: cl-store:restore ... 2018-08-08T15:42:45Z jeosol: (cl-store:restore ...) 2018-08-08T15:42:57Z pjb: No, you can use it instead of prin1 and read. 2018-08-08T15:43:08Z pjb: and format. 2018-08-08T15:43:34Z jeosol: I serialize with (cl-store:store object filename) then read back with (cl-store:restore filename) 2018-08-08T15:43:48Z pjb: Yes. That's good. Only you must include the names. 2018-08-08T15:44:44Z jeosol: you mean the names of the options 2018-08-08T15:45:38Z jmercouris: so I have a very large sqlite database on a remote server, anyone know how it would be possible to connect with cl-dbi to that database?? or any other tool or combination of tools? 2018-08-08T15:46:05Z jmercouris: of course I could SSH onto the machine, install lisp, and then start working, but the latency of SSH and constantly repushing code to the server is frustrating 2018-08-08T15:46:07Z jeosol: jermcouris: mito? 2018-08-08T15:46:19Z jeosol: sorry, about that, different application 2018-08-08T15:47:09Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-08T15:47:23Z jmercouris: its ok, mito also uses cl-dbi underneath 2018-08-08T15:47:53Z jmercouris: I thought about converting the database to mysql or something and then connecting to it 2018-08-08T15:48:05Z jmercouris: but that is a huge operation, and I have to know if there is a simpler way first 2018-08-08T15:48:35Z mkolenda quit (Remote host closed the connection) 2018-08-08T15:49:41Z jeosol: Well, I have used mostly postgresql with mito, and clsql, but sqlite3 with clsql. 2018-08-08T15:50:00Z jmercouris: I see 2018-08-08T15:50:32Z jeosol: btw, i see your clml comments above. I'll love to hear your experiences with the library. 2018-08-08T15:51:31Z jmercouris: I finally did get it working, but not with quicklisp 2018-08-08T15:51:35Z X-Scale joined #lisp 2018-08-08T15:51:40Z zacts joined #lisp 2018-08-08T15:51:42Z jmercouris: I'll let you know if I end up forking it as we had discussed 2018-08-08T15:51:48Z aindilis joined #lisp 2018-08-08T15:52:22Z jeosol: that may be the way to go. it was a bit messy, when I wanted to run the clustering algorithms. I meant the package organizations. 2018-08-08T15:52:39Z jmercouris: yeah, its very messy 2018-08-08T15:55:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-08T15:56:51Z iridioid quit (Ping timeout: 240 seconds) 2018-08-08T15:57:50Z buffergn0me joined #lisp 2018-08-08T15:58:37Z iridioid joined #lisp 2018-08-08T16:04:04Z charh quit (Ping timeout: 256 seconds) 2018-08-08T16:05:05Z pjb: jeosol: I mean the enclosed values. 2018-08-08T16:05:14Z slyrus1 joined #lisp 2018-08-08T16:05:17Z pjb: ie. the values bound to enclosed variables. 2018-08-08T16:05:55Z pjb: jmercouris: open a ssh tunnel, and connect thru it. 2018-08-08T16:06:21Z zacts quit (Quit: Konversation terminated!) 2018-08-08T16:06:41Z pjb: ssh database.server -L ${dbport}:localhost:${dbport} & and connect to the database localhost:${dbport} 2018-08-08T16:07:05Z nsrahmad joined #lisp 2018-08-08T16:07:21Z light2yellow quit (Ping timeout: 240 seconds) 2018-08-08T16:08:38Z jmercouris: I don't see how that would work 2018-08-08T16:08:58Z jeosol: pjb, phoe, and others: thanks for your help. I fixed the problem, albeit partially for now. I decided to save the list of the options and call the function explicitly. 2018-08-08T16:09:10Z jmercouris: sqlite3 operates on a file descriptor, not a port 2018-08-08T16:09:21Z pierpal quit (Quit: Poof) 2018-08-08T16:09:37Z light2yellow joined #lisp 2018-08-08T16:09:39Z pierpal joined #lisp 2018-08-08T16:10:13Z Shinmera: There's sshfs but it's pretty slow 2018-08-08T16:10:20Z jeosol: pjb: I'll explore the robust option you suggested. I'll just recall, that I save the random-state used for a given run. 2018-08-08T16:10:29Z jmercouris: sshfs is indeed too slow :\ 2018-08-08T16:10:57Z jmercouris: I think my only real option is pushing my source to the server and having a remote slime connect in which I reload the system after every big code change 2018-08-08T16:11:16Z jmercouris: but that still makes it complex to test on the actual data, so I'll have to copy the schema from the sqlite3 database locally and insert some small amount of dummy data 2018-08-08T16:13:02Z Jesin quit (Remote host closed the connection) 2018-08-08T16:13:30Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-08T16:14:13Z pjb: jmercouris: the point is that you'd want to encrypt the communications with the remote database, so using a ssh tunnel is an easy solution to do that. 2018-08-08T16:14:19Z jmercouris: that is an easy solution 2018-08-08T16:14:29Z jmercouris: I'm just going to go buy a large external hard drive 2018-08-08T16:14:31Z jmercouris: there is no other way 2018-08-08T16:14:41Z pjb: yep, hard disks are cheap. 2018-08-08T16:15:07Z nowhere_man joined #lisp 2018-08-08T16:15:46Z jmercouris: if it saves me hours of effort in testing the data set, it is worth it 2018-08-08T16:17:42Z housel quit (Read error: Connection reset by peer) 2018-08-08T16:20:37Z jeosol: jmercouris: do you mean you are sending that remotely? 2018-08-08T16:21:12Z jeosol: I had a similar problem to yours, eventually, I had the data copy on the remote machine. I push code changes to the remote machine and run it there. 2018-08-08T16:21:33Z jmercouris: yeah, that is what I will do 2018-08-08T16:21:33Z jeosol: I have same setup as my local machine. 2018-08-08T16:21:57Z jmercouris: but I will make a small toy-database just for a sanity check on my local machine 2018-08-08T16:22:09Z jeosol: it's a bit painful, but in the future, when I have time, I will use the docker, ansible routes etc, when I need to duplicate machines 2018-08-08T16:22:10Z jmercouris: I may also buy the hard drive as well, just because 2018-08-08T16:22:15Z jeosol: that makes sense 2018-08-08T16:23:58Z jeosol: I did explore the database option for my case, it was taken a lot of time to even write the data to the database (many large arrays) and then having the application read it back in. 2018-08-08T16:24:37Z nsrahmad left #lisp 2018-08-08T16:25:07Z gendl: Can emacs establish an ssh tunnel to a remote Linux host running Lisp, in order to do a swank connection? 2018-08-08T16:25:33Z gendl: I mean for example emacs running on Windows, can it do something like a 2018-08-08T16:25:42Z gendl: ssh -L8042:localhost:8042 my-dev-host 2018-08-08T16:25:51Z gendl: automatically self-contained from inside emacs, 2018-08-08T16:26:33Z gendl: or would the person have to run some kind of shell manually and to that ssh first, before being able to do M-x slime-connect to connect through the localhost tunnel to my-dev-host? 2018-08-08T16:26:34Z FreeBirdLjj joined #lisp 2018-08-08T16:28:13Z housel joined #lisp 2018-08-08T16:28:19Z jmercouris: gendl: emacs itself could open the ssh tunnel 2018-08-08T16:29:19Z zacts joined #lisp 2018-08-08T16:30:06Z gector quit (Read error: Connection reset by peer) 2018-08-08T16:31:03Z captgector joined #lisp 2018-08-08T16:31:34Z Tristam quit (Quit: Leaving) 2018-08-08T16:32:28Z pjb: gendl: emacs can open ssh tunnels with tramp. But that code is not used by slime. This could be a nice contribution to slime. 2018-08-08T16:32:56Z pjb: For now, you need to type M-x shell RET ssh -L80342:localhost:8042 my-dev-host RET 2018-08-08T16:33:51Z gendl: pjb: and that assumes the local machine has ssh installed, right? (i.e. ssh isn't built into emacs somehow, is it?) 2018-08-08T16:34:05Z gendl: especially this is an issue of local machine is a Windows one. 2018-08-08T16:34:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-08T16:35:16Z pjb: You could use (make-process :name "ssh for slime" :buffer (get-buffer-create "*ssh for slime*) :command "ssh -L80342:localhost:8042 my-dev-host") to launch it automatically. 2018-08-08T16:35:52Z _death: gendl: I wrote an ssh-tunnels module some years ago.. you can find it in melpa 2018-08-08T16:35:53Z pjb: you could call it from a :before advice of slime-connect 2018-08-08T16:39:37Z trittweiler joined #lisp 2018-08-08T16:39:51Z jmercouris quit (Ping timeout: 240 seconds) 2018-08-08T16:53:34Z wigust joined #lisp 2018-08-08T17:00:02Z Jesin joined #lisp 2018-08-08T17:03:05Z siraben quit (Ping timeout: 240 seconds) 2018-08-08T17:07:08Z lavaflow joined #lisp 2018-08-08T17:10:20Z X-Scale quit (Ping timeout: 244 seconds) 2018-08-08T17:10:40Z test1600 joined #lisp 2018-08-08T17:14:48Z m00natic quit (Remote host closed the connection) 2018-08-08T17:14:54Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-08T17:15:55Z makomo quit (Quit: WeeChat 2.0.1) 2018-08-08T17:23:42Z ntqz joined #lisp 2018-08-08T17:23:57Z quipa quit (Ping timeout: 240 seconds) 2018-08-08T17:25:30Z dim: gendl: when on windows, have a look at https://mobaxterm.mobatek.net, it might help you there 2018-08-08T17:31:28Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-08T17:32:35Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-08T17:32:39Z nowhere_man joined #lisp 2018-08-08T17:38:23Z nika quit (Quit: Leaving...) 2018-08-08T17:39:23Z test1600_ joined #lisp 2018-08-08T17:39:45Z Baggers joined #lisp 2018-08-08T17:40:14Z Baggers left #lisp 2018-08-08T17:42:00Z test1600 quit (Ping timeout: 268 seconds) 2018-08-08T17:44:45Z Kundry_Wag joined #lisp 2018-08-08T17:44:58Z test1600 joined #lisp 2018-08-08T17:45:21Z test1600_ quit (Ping timeout: 240 seconds) 2018-08-08T17:47:43Z graphene quit (Remote host closed the connection) 2018-08-08T17:49:05Z graphene joined #lisp 2018-08-08T17:54:22Z pjb quit (Read error: Connection reset by peer) 2018-08-08T17:54:22Z graphene quit (Read error: Connection reset by peer) 2018-08-08T17:54:46Z iridioid quit (Ping timeout: 244 seconds) 2018-08-08T17:55:08Z pjb joined #lisp 2018-08-08T17:59:55Z iridioid joined #lisp 2018-08-08T18:05:25Z tomaw quit (Read error: Connection reset by peer) 2018-08-08T18:05:55Z tomaw joined #lisp 2018-08-08T18:13:32Z asarch joined #lisp 2018-08-08T18:15:51Z orivej quit (Ping timeout: 240 seconds) 2018-08-08T18:17:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-08T18:18:15Z X-Scale joined #lisp 2018-08-08T18:18:45Z scottj joined #lisp 2018-08-08T18:20:38Z test1600_ joined #lisp 2018-08-08T18:22:51Z test1600 quit (Ping timeout: 240 seconds) 2018-08-08T18:22:58Z smaster joined #lisp 2018-08-08T18:24:13Z iridioid quit (Read error: Connection reset by peer) 2018-08-08T18:25:18Z test1600_ quit (Ping timeout: 256 seconds) 2018-08-08T18:27:44Z sauvin quit (Remote host closed the connection) 2018-08-08T18:31:46Z anewuser joined #lisp 2018-08-08T18:35:35Z Jesin quit (Read error: Connection reset by peer) 2018-08-08T18:36:03Z Jesin joined #lisp 2018-08-08T18:37:49Z JuanDaugherty joined #lisp 2018-08-08T18:44:04Z Tristam joined #lisp 2018-08-08T18:51:11Z zotan joined #lisp 2018-08-08T18:51:46Z meepdeew joined #lisp 2018-08-08T18:56:47Z quipa joined #lisp 2018-08-08T18:57:03Z papachan joined #lisp 2018-08-08T19:01:01Z nanthil quit (Quit: Page closed) 2018-08-08T19:07:48Z pierpal quit (Quit: Poof) 2018-08-08T19:08:06Z pierpal joined #lisp 2018-08-08T19:16:22Z zacts quit (Quit: Konversation terminated!) 2018-08-08T19:17:35Z pierpal quit (Quit: Poof) 2018-08-08T19:17:53Z pierpal joined #lisp 2018-08-08T19:20:33Z gendl: dim: Thanks. 2018-08-08T19:21:39Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-08T19:24:31Z Achylles quit (Quit: Leaving) 2018-08-08T19:24:45Z pierpal quit (Quit: Poof) 2018-08-08T19:24:48Z shka_ quit (Ping timeout: 256 seconds) 2018-08-08T19:25:03Z pierpal joined #lisp 2018-08-08T19:31:05Z kamog quit (Quit: Leaving.) 2018-08-08T19:33:50Z smaster quit (Ping timeout: 276 seconds) 2018-08-08T19:35:19Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-08T19:39:37Z mkolenda joined #lisp 2018-08-08T19:44:43Z vlatkoB quit (Remote host closed the connection) 2018-08-08T19:49:11Z pierpa joined #lisp 2018-08-08T19:56:35Z nowhere_man joined #lisp 2018-08-08T20:04:48Z zotan quit (Excess Flood) 2018-08-08T20:05:10Z zotan joined #lisp 2018-08-08T20:05:11Z orivej joined #lisp 2018-08-08T20:08:26Z smaster joined #lisp 2018-08-08T20:20:21Z JuanDaugherty quit (Quit: Exeunt) 2018-08-08T20:26:39Z gravicappa quit (Ping timeout: 260 seconds) 2018-08-08T20:28:13Z eschatologist quit (Ping timeout: 244 seconds) 2018-08-08T20:28:24Z eschatologist joined #lisp 2018-08-08T20:28:53Z kajo joined #lisp 2018-08-08T20:31:33Z hph^ quit (Ping timeout: 264 seconds) 2018-08-08T20:32:06Z hiroaki joined #lisp 2018-08-08T20:42:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-08T20:42:39Z evilbot23 quit (Read error: No route to host) 2018-08-08T20:42:40Z Zhivago quit (Read error: No route to host) 2018-08-08T20:48:10Z jkordani quit (Read error: Connection reset by peer) 2018-08-08T20:53:46Z jmercouris joined #lisp 2018-08-08T21:17:35Z hiroaki quit (Ping timeout: 265 seconds) 2018-08-08T21:17:58Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-08T21:19:22Z smaster quit (Ping timeout: 244 seconds) 2018-08-08T21:20:44Z smaster joined #lisp 2018-08-08T21:23:36Z hiroaki joined #lisp 2018-08-08T21:27:22Z Fare joined #lisp 2018-08-08T21:31:56Z quipa quit (Quit: Leaving) 2018-08-08T21:32:14Z slyrus quit (Quit: slyrus) 2018-08-08T21:32:15Z slyrus1 is now known as slyrus 2018-08-08T21:35:48Z slyrus1 joined #lisp 2018-08-08T21:39:25Z jmercouris: anyone know of a js/css minifier written in CL? 2018-08-08T21:41:26Z AeroNotix: If I've DECLAIM'd something. How can I undo that declaim? 2018-08-08T21:41:38Z AeroNotix: I declaimed an ftype that is impossible 2018-08-08T21:43:06Z Shinmera: jmercouris: LASS can output to minified CSS, but it doesn't have a CSS->LASS compiler, so it's only half the answer. 2018-08-08T21:45:35Z jmercouris: Shinmera: I've seen other similar projects, I don't want to write my CSS in S-expr, but maybe I'll have to, either that or write a minifier myself 2018-08-08T21:48:19Z AeroNotix: Redeclaring the type, works. But I would've expected a way to unset the type declare 2018-08-08T21:48:23Z AeroNotix: declaim* 2018-08-08T21:50:37Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-08T22:05:56Z mindCrime quit (Ping timeout: 268 seconds) 2018-08-08T22:07:57Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-08T22:18:39Z sjl quit (Ping timeout: 260 seconds) 2018-08-08T22:19:31Z jmercouris quit (Remote host closed the connection) 2018-08-08T22:22:49Z pierpa: you can unintern the symbol you declaimed about, and then reload all the users. 2018-08-08T22:23:18Z rumbler31 joined #lisp 2018-08-08T22:23:45Z White_Flame: Everything has an assumed default declaration, and many Lisp operations (like DEFUN) destructively modify their scope 2018-08-08T22:24:07Z White_Flame: so its prior state is gone. re-DECLAIMing is a proper solution 2018-08-08T22:24:41Z pierpa: *unintern the symbol, create a new one, apply the right declamation, reload users... 2018-08-08T22:25:07Z White_Flame: sure, if you're wholesale reconstructing, as opposed to fixing a recently misapplied declaration 2018-08-08T22:25:47Z pierpa: I'm assuming the symbol with the wrong declamation has been used somewhere 2018-08-08T22:25:57Z White_Flame: I also personally think it's good form to ensure you can cleanly reconstruct your environment from source consistently, as opposed to just carrying forward random image state 2018-08-08T22:26:30Z White_Flame: so some of those smaller fixups may or may not apply 2018-08-08T22:27:53Z pierpa: I prefer both to ensure I can cleanly reconstruct my environment AND also apply small fixes in the image 2018-08-08T22:28:05Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-08T22:29:15Z patlv joined #lisp 2018-08-08T22:30:43Z jusss joined #lisp 2018-08-08T22:31:10Z jusss: (3) is a pair (3 . ()) 2018-08-08T22:32:22Z Fare quit (Ping timeout: 256 seconds) 2018-08-08T22:32:43Z Fare joined #lisp 2018-08-08T22:32:44Z pjb: It's also a list. (ie. either a pair or nil). 2018-08-08T22:32:47Z jusss: (() ()) how to detect that is end of the list? 2018-08-08T22:33:05Z pjb: It's also a proper list. (ie. a list whose cdr-chain ends in nil). 2018-08-08T22:33:27Z pjb: (print-conses '(() ())) #| (() . (() . ())) --> (nil nil) |# 2018-08-08T22:33:30Z pjb: with ENDP 2018-08-08T22:33:32Z pjb: clhsp endp 2018-08-08T22:33:35Z patlv quit (Ping timeout: 240 seconds) 2018-08-08T22:33:35Z pjb: clhs endp 2018-08-08T22:33:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_endp.htm 2018-08-08T22:34:46Z pjb: Note, often people use null to test the end of list, but this is not correct, because in case if dotted list, null returns always false, and the else branch will try to process the atom as if it was a pair. 2018-08-08T22:35:25Z AeroNotix: White_Flame: From source it _would_ have been able to be reconstructed cleanly. During development buggy code can be executed and then fixed. 2018-08-08T22:35:46Z AeroNotix: Only I didn't want to restart my slime session but I wanted to know how to roll that declaim back 2018-08-08T22:37:12Z jusss: like (3 5) in loop, we can detect that (cddr (3 5)) to know the list is over, what the list is (() ())? because (cdr (() ())) is same as (cdr (())) 2018-08-08T22:37:39Z pjb: jusss: (3 5) is not a valid form. 2018-08-08T22:37:50Z pjb: jusss: (cddr (3 5)) is a program-error. 2018-08-08T22:37:56Z pjb: (cddr (3 5)) #| ERROR: Car of (3 5) is not a function name or lambda-expression. |# 2018-08-08T22:38:28Z pjb: (equalp (cdr '(() ())) (cdr '(()))) #| --> nil |# they're not the same. 2018-08-08T22:38:49Z pjb: jusss: you're not prudent, you're saying silly things that even your REPL know better! 2018-08-08T22:39:33Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-08T22:40:14Z jusss: (cdr ‘(())) 2018-08-08T22:40:20Z White_Flame: AeroNotix: yeah, and reconstruction means that any hot-fixes and initialization you made to get it working must move into your source code, which is a good thing. 2018-08-08T22:40:41Z lel joined #lisp 2018-08-08T22:41:14Z ravndal quit (Quit: WeeChat 2.2) 2018-08-08T22:41:22Z lel_ quit (Ping timeout: 264 seconds) 2018-08-08T22:42:04Z AeroNotix: White_Flame: it's just good to know how to "manually" fix the issue without restarting the current session. Actually I did restart it, for a similar kind of issue (I suspected more so I didn't want to fight it any longer) 2018-08-08T22:42:12Z White_Flame: sure 2018-08-08T22:42:58Z ravndal joined #lisp 2018-08-08T22:43:11Z White_Flame: it's a heck of a lot easier than the other-languages edit/compile/run cycle ;) 2018-08-08T22:44:11Z Kundry_Wag joined #lisp 2018-08-08T22:44:38Z patlv joined #lisp 2018-08-08T22:45:11Z AeroNotix: for sure 2018-08-08T22:45:12Z jusss quit (Remote host closed the connection) 2018-08-08T22:45:28Z AeroNotix: Even languages touted as having a "live" or "runtime recompilable" environment, like Erlang. 2018-08-08T22:45:35Z AeroNotix: CL far outperforms 2018-08-08T22:47:40Z random-nick quit (Ping timeout: 256 seconds) 2018-08-08T22:51:21Z patlv quit (Remote host closed the connection) 2018-08-08T22:51:21Z mange joined #lisp 2018-08-08T22:51:36Z jusss joined #lisp 2018-08-08T22:51:47Z patlv joined #lisp 2018-08-08T22:53:11Z shlecta joined #lisp 2018-08-08T22:54:18Z patlv_ joined #lisp 2018-08-08T22:54:49Z koenig1 joined #lisp 2018-08-08T22:55:50Z energizer_ joined #lisp 2018-08-08T22:55:55Z sword` joined #lisp 2018-08-08T22:56:08Z aeth: What about Smalltalk? 2018-08-08T22:58:38Z uint_ joined #lisp 2018-08-08T22:59:00Z lemoinem quit (Killed (tolkien.freenode.net (Nickname regained by services))) 2018-08-08T23:00:56Z AeroNotix: aeth: never used it personally. It's on my List. 2018-08-08T23:01:35Z aeth: Personally, I put languages on my adjustable vector instead of a list. 2018-08-08T23:01:44Z azrazalea joined #lisp 2018-08-08T23:01:48Z \u joined #lisp 2018-08-08T23:02:07Z drdo_ joined #lisp 2018-08-08T23:02:11Z AeroNotix: There aren't that many I'm interested in that I need to microoptimize like that 2018-08-08T23:02:16Z aeth: I haven't tried Smalltalk yet, either, because I think the most mature environments are commercial environments. I'd like to see how it compares to Emacs+SLIME though. 2018-08-08T23:02:47Z patlv quit (*.net *.split) 2018-08-08T23:02:47Z jusss quit (*.net *.split) 2018-08-08T23:02:47Z smaster quit (*.net *.split) 2018-08-08T23:02:47Z zotan quit (*.net *.split) 2018-08-08T23:02:47Z papachan quit (*.net *.split) 2018-08-08T23:02:47Z Tristam quit (*.net *.split) 2018-08-08T23:02:47Z uint quit (*.net *.split) 2018-08-08T23:02:47Z dlowe quit (*.net *.split) 2018-08-08T23:02:47Z meowray quit (*.net *.split) 2018-08-08T23:02:48Z dan64 quit (*.net *.split) 2018-08-08T23:02:48Z iskander quit (*.net *.split) 2018-08-08T23:02:48Z drdo quit (*.net *.split) 2018-08-08T23:02:48Z azrazalea_ quit (*.net *.split) 2018-08-08T23:02:48Z hvxgr__ quit (*.net *.split) 2018-08-08T23:02:49Z koenig quit (*.net *.split) 2018-08-08T23:02:49Z Xach quit (*.net *.split) 2018-08-08T23:02:49Z Xof quit (*.net *.split) 2018-08-08T23:02:49Z sword quit (*.net *.split) 2018-08-08T23:02:49Z Lord_Nightmare quit (*.net *.split) 2018-08-08T23:02:49Z bend3r_ quit (*.net *.split) 2018-08-08T23:02:49Z snits_ quit (*.net *.split) 2018-08-08T23:02:49Z mrSpec quit (*.net *.split) 2018-08-08T23:02:49Z djh quit (*.net *.split) 2018-08-08T23:02:49Z energizer quit (*.net *.split) 2018-08-08T23:02:49Z guaqua quit (*.net *.split) 2018-08-08T23:02:50Z Mandus quit (*.net *.split) 2018-08-08T23:02:50Z n3t quit (*.net *.split) 2018-08-08T23:02:50Z tkd quit (*.net *.split) 2018-08-08T23:02:53Z drdo_ is now known as drdo 2018-08-08T23:03:08Z Lord_Nightmare2 joined #lisp 2018-08-08T23:03:23Z AeroNotix: aeth: and there's my main issue with it. If it doesn't integrate with emacs it'll take me a lot longer to care about it. 2018-08-08T23:03:49Z AeroNotix: $PREVIOUS_DAY_JOB had a lot of Java in place which I could have contributed to but the whole ecosystem is just complete garbage 2018-08-08T23:04:09Z Lord_Nightmare2 is now known as Lord_Nightmare 2018-08-08T23:05:02Z Mandus joined #lisp 2018-08-08T23:08:12Z Denommus quit (Remote host closed the connection) 2018-08-08T23:09:10Z Tristam joined #lisp 2018-08-08T23:10:21Z shlecta quit (Ping timeout: 240 seconds) 2018-08-08T23:10:58Z patlv_ quit (Ping timeout: 244 seconds) 2018-08-08T23:12:37Z pjb: AeroNotix: you can write unix programs in Smalltalk in emacs using gst. 2018-08-08T23:13:07Z pjb: http://smalltalk.gnu.org 2018-08-08T23:13:13Z chipolux quit (Quit: chipolux) 2018-08-08T23:13:28Z chipolux joined #lisp 2018-08-08T23:15:00Z aeth: Writing Smalltalk outside of a written-in-and-for-Smalltalk IDE would be like writing CL outside of a written-in-and-for CL IDE. 2018-08-08T23:16:58Z chipolux quit (Client Quit) 2018-08-08T23:17:13Z chipolux joined #lisp 2018-08-08T23:17:42Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-08T23:20:23Z aeth: Of course even if such an IDE existed, you'd have the strange situation where you'd be running three copies of CL: one for stumpwm, one for the editor, and one for the inferior-lisp (you wouldn't want to mix the latter two because sometimes you get into a state where M-x slime-restart-inferior-lisp is the simplest solution) 2018-08-08T23:20:43Z shlecta joined #lisp 2018-08-08T23:21:21Z energizer_ is now known as energizer 2018-08-08T23:21:33Z kajo joined #lisp 2018-08-08T23:22:15Z aeth: (you'd also want to be able to run a CL implementation that's not the same as the editor's) 2018-08-08T23:23:47Z robotoad quit (Quit: robotoad) 2018-08-08T23:24:24Z edgar-rft suggests writing SmallTalk programs with ed 2018-08-08T23:24:56Z aeth: https://www.gnu.org/fun/jokes/ed.msg.html 2018-08-08T23:26:25Z aeth: "Note the consistent user interface and error reportage. Ed is generous enough to flag errors, yet prudent enough not to overwhelm the novice with verbosity." 2018-08-08T23:28:28Z Fare quit (Ping timeout: 256 seconds) 2018-08-08T23:28:37Z asarch quit (Quit: Leaving) 2018-08-08T23:32:20Z robotoad joined #lisp 2018-08-08T23:37:46Z siraben joined #lisp 2018-08-08T23:40:07Z pjb: edgar-rft: https://pastebin.com/egys9gP5 2018-08-08T23:41:07Z Bike joined #lisp 2018-08-08T23:42:32Z rodt joined #lisp 2018-08-08T23:52:44Z meepdeew quit 2018-08-08T23:54:23Z Jesin quit (Read error: Connection reset by peer) 2018-08-08T23:54:51Z shlecta quit (Ping timeout: 240 seconds) 2018-08-08T23:57:49Z pierpa quit (Quit: Page closed) 2018-08-08T23:59:38Z Jesin joined #lisp 2018-08-09T00:01:51Z chipolux quit (Quit: chipolux) 2018-08-09T00:02:07Z chipolux joined #lisp 2018-08-09T00:03:41Z chipolux quit (Client Quit) 2018-08-09T00:04:34Z chipolux joined #lisp 2018-08-09T00:07:16Z JuanDaugherty joined #lisp 2018-08-09T00:07:42Z Fare joined #lisp 2018-08-09T00:11:49Z pierpal quit (Quit: Poof) 2018-08-09T00:12:07Z pierpal joined #lisp 2018-08-09T00:18:19Z chipolux quit (Quit: chipolux) 2018-08-09T00:18:36Z chipolux joined #lisp 2018-08-09T00:19:43Z patlv_ joined #lisp 2018-08-09T00:21:54Z chipolux quit (Client Quit) 2018-08-09T00:21:55Z slyrus1 quit (Quit: slyrus1) 2018-08-09T00:22:16Z chipolux joined #lisp 2018-08-09T00:24:36Z rumbler31 joined #lisp 2018-08-09T00:26:36Z chipolux quit (Client Quit) 2018-08-09T00:27:31Z ntqz quit 2018-08-09T00:28:59Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-09T00:35:17Z patlv_ quit (Remote host closed the connection) 2018-08-09T00:35:20Z Arcaelyx joined #lisp 2018-08-09T00:35:35Z patlv_ joined #lisp 2018-08-09T00:36:29Z Kundry_Wag joined #lisp 2018-08-09T00:37:32Z meepdeew joined #lisp 2018-08-09T00:44:29Z patlv_ quit (Ping timeout: 244 seconds) 2018-08-09T00:53:13Z chipolux joined #lisp 2018-08-09T00:54:00Z chipolux quit (Client Quit) 2018-08-09T01:02:38Z chipolux joined #lisp 2018-08-09T01:02:45Z chipolux quit (Client Quit) 2018-08-09T01:08:46Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-09T01:09:37Z meepdeew quit (Remote host closed the connection) 2018-08-09T01:10:29Z chipolux joined #lisp 2018-08-09T01:14:53Z JuanDaugherty quit (Quit: Exeunt) 2018-08-09T01:16:51Z hiroaki quit (Ping timeout: 240 seconds) 2018-08-09T01:17:25Z hiroaki joined #lisp 2018-08-09T01:19:12Z patlv_ joined #lisp 2018-08-09T01:24:52Z robotoad quit (Max SendQ exceeded) 2018-08-09T01:31:55Z koenig1 is now known as koenig 2018-08-09T01:31:57Z AnLog quit (Ping timeout: 240 seconds) 2018-08-09T01:38:10Z chamblin joined #lisp 2018-08-09T01:41:18Z robotoad joined #lisp 2018-08-09T01:44:16Z mathZ joined #lisp 2018-08-09T01:47:06Z Kundry_Wag joined #lisp 2018-08-09T01:54:40Z patlv_ quit (Ping timeout: 256 seconds) 2018-08-09T01:58:25Z patlv_ joined #lisp 2018-08-09T02:05:10Z hiroaki quit (Ping timeout: 265 seconds) 2018-08-09T02:06:58Z hiroaki joined #lisp 2018-08-09T02:23:37Z mindCrime joined #lisp 2018-08-09T02:24:14Z patlv_ quit (Ping timeout: 260 seconds) 2018-08-09T02:26:25Z Jesin quit (Read error: Connection reset by peer) 2018-08-09T02:26:38Z Jesin joined #lisp 2018-08-09T02:28:43Z ebzzry quit (Quit: WeeChat 2.1) 2018-08-09T02:30:27Z patlv_ joined #lisp 2018-08-09T02:31:38Z buffergn0me joined #lisp 2018-08-09T02:32:39Z buffergn0me quit (Remote host closed the connection) 2018-08-09T02:39:13Z robotoad quit (Quit: robotoad) 2018-08-09T02:41:51Z Fare quit (Ping timeout: 240 seconds) 2018-08-09T02:41:58Z asarch joined #lisp 2018-08-09T02:43:13Z buffergn0me joined #lisp 2018-08-09T02:45:54Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-09T02:53:20Z rodt quit (Quit: Leaving) 2018-08-09T02:59:38Z robotoad joined #lisp 2018-08-09T03:02:28Z iskander joined #lisp 2018-08-09T03:18:20Z meepdeew joined #lisp 2018-08-09T03:22:28Z Kundry_Wag quit (Remote host closed the connection) 2018-08-09T03:25:41Z MoziM quit (Ping timeout: 244 seconds) 2018-08-09T03:39:41Z rozenglass joined #lisp 2018-08-09T03:41:13Z meepdeew quit (Remote host closed the connection) 2018-08-09T03:46:01Z dddddd quit (Remote host closed the connection) 2018-08-09T03:54:42Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- Nine out of ten l33t h4x0rz prefer it) 2018-08-09T03:57:26Z Kundry_Wag joined #lisp 2018-08-09T03:58:25Z pjb quit (Read error: Connection reset by peer) 2018-08-09T03:59:02Z pjb joined #lisp 2018-08-09T04:01:23Z Oladon joined #lisp 2018-08-09T04:04:48Z edgar-rft quit (Quit: Leaving) 2018-08-09T04:05:34Z patlv_ quit (Ping timeout: 256 seconds) 2018-08-09T04:30:51Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-09T04:40:56Z eminhi joined #lisp 2018-08-09T04:41:08Z anewuser quit (Ping timeout: 276 seconds) 2018-08-09T04:45:07Z anewuser joined #lisp 2018-08-09T04:45:51Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-09T04:48:56Z pillton joined #lisp 2018-08-09T04:49:16Z pillton: rpg: Are you here? 2018-08-09T04:49:19Z shka_ joined #lisp 2018-08-09T04:50:20Z pjb quit (Ping timeout: 256 seconds) 2018-08-09T04:51:48Z no-defun-allowed waits for beach to say hello 2018-08-09T04:55:45Z buffergn0me joined #lisp 2018-08-09T04:56:35Z scottj quit (Quit: leaving) 2018-08-09T04:58:38Z siraben: What language was that pastebin? 2018-08-09T04:58:48Z siraben: Is that... Smalltalk? 2018-08-09T04:59:07Z housel: Yes, GNU Smalltalk 2018-08-09T04:59:15Z siraben: Who's writing smalltalk? 2018-08-09T04:59:28Z siraben: I want to learn Smalltalk but haven't found a Smalltalker 2018-08-09T04:59:54Z no-defun-allowed: yep 2018-08-09T04:59:59Z otwieracz: I'd love to learn APL, but haven't found Spacecadet. :/ 2018-08-09T05:00:14Z no-defun-allowed: i can write a bit 2018-08-09T05:00:21Z siraben: Of Smalltalk? 2018-08-09T05:00:34Z no-defun-allowed: 2 > 3 ifTrue: [Transcript show 'Your computer is broken.'; cr]. 2018-08-09T05:00:37Z siraben: I have Squeak installed but I have no idea how to use it, or what resources to read 2018-08-09T05:00:49Z no-defun-allowed: Transcript show: 'yes'. 2018-08-09T05:01:28Z no-defun-allowed: siraben canWriteSmalltalk ifFalse: [ siraben learn: #smalltalk ]. 2018-08-09T05:01:56Z siraben: no-defun-allowed: So what did you read to be able to write Smalltalk? 2018-08-09T05:05:01Z no-defun-allowed: https://learnxinyminutes.com/docs/smalltalk/ was how i started 2018-08-09T05:05:05Z no-defun-allowed: gnu smalltalk also has some documentation too 2018-08-09T05:05:12Z no-defun-allowed: the best is `true become: false` 2018-08-09T05:05:30Z no-defun-allowed: sorry, `True become: False.` 2018-08-09T05:06:44Z siraben: Any books? 2018-08-09T05:07:02Z no-defun-allowed: can't say i look for those. not good with books. 2018-08-09T05:07:07Z orivej quit (Ping timeout: 268 seconds) 2018-08-09T05:07:15Z pjb joined #lisp 2018-08-09T05:07:22Z siraben: learnxinyminutes is a good resource but it's shallow 2018-08-09T05:07:28Z siraben: I started FORTH like that too 2018-08-09T05:11:30Z Bike quit (Quit: Lost terminal) 2018-08-09T05:11:45Z pjb quit (Read error: Connection reset by peer) 2018-08-09T05:13:14Z edgar-rft joined #lisp 2018-08-09T05:13:19Z pjb joined #lisp 2018-08-09T05:16:58Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-09T05:18:11Z uint_ is now known as uint 2018-08-09T05:19:31Z zigpaw: I liked the graphical side of squeak/pharo, all of the tools looked sleek and were snappy and also liked how you could query the documentation by providing the input and preferred output values (it wasn't that much useful but surprised me in a good way). 2018-08-09T05:19:48Z pjb quit (Ping timeout: 256 seconds) 2018-08-09T05:20:30Z zigpaw: siraben: Pharo have a nice and up to date section filled with books: http://books.pharo.org/ 2018-08-09T05:26:01Z siraben: zigpaw: thanks. I'll take a look. 2018-08-09T05:27:44Z anewuser quit (Ping timeout: 256 seconds) 2018-08-09T05:28:04Z pjb joined #lisp 2018-08-09T05:29:51Z kajo quit (Ping timeout: 240 seconds) 2018-08-09T05:29:54Z v0|d: no-defun-allowed: overslept? 2018-08-09T05:31:11Z sauvin joined #lisp 2018-08-09T05:31:16Z mrSpec` joined #lisp 2018-08-09T05:31:20Z kajo joined #lisp 2018-08-09T05:31:27Z mrSpec` is now known as mrSpec 2018-08-09T05:33:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-09T05:36:19Z groovy2shoes quit (Quit: moritura te salutat) 2018-08-09T05:37:22Z no-defun-allowed: beach wake up it's time to say "Good morning, everyone!" 2018-08-09T05:40:40Z groovy2shoes joined #lisp 2018-08-09T05:42:49Z pjb quit (Remote host closed the connection) 2018-08-09T05:47:03Z anewuser joined #lisp 2018-08-09T05:52:27Z shka_ quit (Ping timeout: 240 seconds) 2018-08-09T06:08:09Z equwal joined #lisp 2018-08-09T06:09:08Z vlatkoB joined #lisp 2018-08-09T06:13:53Z mindCrime joined #lisp 2018-08-09T06:15:39Z slyrus1 joined #lisp 2018-08-09T06:16:10Z Inline quit (Quit: Leaving) 2018-08-09T06:17:36Z slyrus quit (Ping timeout: 256 seconds) 2018-08-09T06:17:37Z slyrus1 is now known as slyrus 2018-08-09T06:21:52Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-09T06:28:17Z Kundry_Wag joined #lisp 2018-08-09T06:29:51Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-09T06:30:15Z shrdlu68 joined #lisp 2018-08-09T06:31:53Z heisig joined #lisp 2018-08-09T06:34:06Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-09T06:36:09Z pillton quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-09T06:36:55Z mathZ quit (Remote host closed the connection) 2018-08-09T06:39:08Z Oladon quit (Quit: Leaving.) 2018-08-09T06:45:27Z schweers joined #lisp 2018-08-09T06:50:02Z kerrhau joined #lisp 2018-08-09T06:58:15Z gravicappa joined #lisp 2018-08-09T07:00:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-09T07:06:38Z varjag joined #lisp 2018-08-09T07:22:48Z angavrilov joined #lisp 2018-08-09T07:26:18Z asarch quit (Quit: Leaving) 2018-08-09T07:28:57Z mange quit (Remote host closed the connection) 2018-08-09T07:44:23Z pierpal quit (Quit: Poof) 2018-08-09T07:44:42Z pierpal joined #lisp 2018-08-09T07:55:51Z siraben: Is Pushing Pixels with Lisp a good series to watch? 2018-08-09T07:57:12Z shrdlu68: Define good. 2018-08-09T07:57:50Z siraben: interesting, one learns things from it etc. 2018-08-09T07:59:11Z shrdlu68: There would be a lot to learn from it for me, but that field is not currenly within my realm of immediate interest. 2018-08-09T08:14:04Z beach: no-defun-allowed: Hello. 2018-08-09T08:14:13Z beach: I didn't feel like greeting everyone today. 2018-08-09T08:17:03Z tralala joined #lisp 2018-08-09T08:28:53Z djh_ joined #lisp 2018-08-09T08:41:34Z gpiero is now known as gpiero_ 2018-08-09T08:41:54Z clhsgang[m]: that's a shame 2018-08-09T08:41:55Z clhsgang[m]: sorry to hear that 2018-08-09T08:49:02Z no-defun-allowed: ): 2018-08-09T08:50:41Z shrdlu68 is now known as everyone 2018-08-09T08:50:52Z everyone: It's fine :( 2018-08-09T08:50:58Z everyone is now known as shrdlu68 2018-08-09T08:51:12Z no-defun-allowed: what 2018-08-09T08:57:57Z Kundry_Wag joined #lisp 2018-08-09T09:16:52Z anewuser quit (Ping timeout: 268 seconds) 2018-08-09T09:18:19Z no-defun-allowed: wait now i get it 2018-08-09T09:19:00Z no-defun-allowed: https://www.youtube.com/watch?v=I0e7V2hzqI0​ 2018-08-09T09:27:15Z eminhi quit (Quit: leaving) 2018-08-09T09:29:26Z unanimousarc joined #lisp 2018-08-09T09:30:05Z biopandemic quit (Ping timeout: 240 seconds) 2018-08-09T09:31:21Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-09T09:44:32Z Colleen joined #lisp 2018-08-09T09:46:05Z m00natic joined #lisp 2018-08-09T09:50:51Z hiroaki quit (Ping timeout: 240 seconds) 2018-08-09T09:53:28Z hiroaki joined #lisp 2018-08-09T09:55:32Z larme quit (Quit: WeeChat 2.1) 2018-08-09T09:57:58Z dddddd joined #lisp 2018-08-09T09:58:28Z orivej joined #lisp 2018-08-09T09:59:54Z dim left #lisp 2018-08-09T10:02:27Z test1600 joined #lisp 2018-08-09T10:07:21Z lavaflow quit (Ping timeout: 240 seconds) 2018-08-09T10:10:18Z kushal quit (Remote host closed the connection) 2018-08-09T10:10:35Z kushal joined #lisp 2018-08-09T10:11:20Z pjb joined #lisp 2018-08-09T10:12:58Z random-nick joined #lisp 2018-08-09T10:23:09Z kerrhau quit (Ping timeout: 244 seconds) 2018-08-09T10:32:20Z unanimousarc quit (Remote host closed the connection) 2018-08-09T10:40:45Z vlatkoB_ joined #lisp 2018-08-09T10:43:27Z vlatkoB quit (Ping timeout: 240 seconds) 2018-08-09T10:47:58Z anewuser joined #lisp 2018-08-09T11:03:17Z quipa joined #lisp 2018-08-09T11:07:13Z gravicappa quit (Ping timeout: 248 seconds) 2018-08-09T11:07:46Z v0|d quit (Remote host closed the connection) 2018-08-09T11:18:19Z kushal quit (Ping timeout: 250 seconds) 2018-08-09T11:18:32Z kdas_ joined #lisp 2018-08-09T11:26:55Z hiroaki quit (Ping timeout: 245 seconds) 2018-08-09T11:28:38Z Kundry_Wag joined #lisp 2018-08-09T11:31:38Z kajo quit (Ping timeout: 265 seconds) 2018-08-09T11:31:58Z ebzzry joined #lisp 2018-08-09T11:32:07Z pierpal quit (Quit: Poof) 2018-08-09T11:32:27Z pierpal joined #lisp 2018-08-09T11:34:29Z anewuser quit (Quit: anewuser) 2018-08-09T11:35:26Z ym joined #lisp 2018-08-09T11:35:51Z jsjolen joined #lisp 2018-08-09T11:48:17Z jsjolen left #lisp 2018-08-09T11:58:50Z kajo joined #lisp 2018-08-09T12:01:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-09T12:04:09Z lavaflow joined #lisp 2018-08-09T12:09:05Z lavaflow quit (Ping timeout: 248 seconds) 2018-08-09T12:16:21Z test1600 quit (Ping timeout: 240 seconds) 2018-08-09T12:19:16Z gpiero_ quit (Quit: Leaving.) 2018-08-09T12:21:16Z quipa: Pull request to add Lisp dialects support in geany https://github.com/geany/geany/pull/1922 2018-08-09T12:22:09Z quipa: Any changes are welcome! 2018-08-09T12:34:22Z Bike joined #lisp 2018-08-09T12:34:42Z housel quit (Remote host closed the connection) 2018-08-09T12:35:11Z housel joined #lisp 2018-08-09T12:37:13Z Kundry_Wag joined #lisp 2018-08-09T12:38:30Z kdas_ quit (Quit: ZNC 1.7.0 - https://znc.in) 2018-08-09T12:38:46Z kdas_ joined #lisp 2018-08-09T12:41:16Z test1600 joined #lisp 2018-08-09T12:41:59Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-09T12:42:38Z biopandemic joined #lisp 2018-08-09T12:46:14Z Kevslinger joined #lisp 2018-08-09T12:54:49Z zfree joined #lisp 2018-08-09T12:55:24Z test1600 quit (Ping timeout: 256 seconds) 2018-08-09T12:55:31Z gravicappa joined #lisp 2018-08-09T12:57:40Z jkordani joined #lisp 2018-08-09T13:05:05Z X-Scale joined #lisp 2018-08-09T13:09:05Z kdas_ is now known as kushal 2018-08-09T13:09:58Z patlv_ joined #lisp 2018-08-09T13:10:38Z Fare joined #lisp 2018-08-09T13:10:59Z patlv_ quit (Remote host closed the connection) 2018-08-09T13:14:10Z jackdaniel: quipa: that's good news, thank you 2018-08-09T13:14:31Z jackdaniel: is such session connected to lisp process while it runs? (i.e live function recompile) 2018-08-09T13:21:15Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-08-09T13:23:24Z Fare quit (Ping timeout: 260 seconds) 2018-08-09T13:23:42Z dvdmuckle joined #lisp 2018-08-09T13:24:07Z patlv joined #lisp 2018-08-09T13:24:58Z mindCrime joined #lisp 2018-08-09T13:26:22Z test1600 joined #lisp 2018-08-09T13:28:08Z quipa: you can setup it up to do that 2018-08-09T13:28:10Z quipa: I think 2018-08-09T13:28:18Z quipa: for common lisp I am not too sure 2018-08-09T13:28:24Z quipa: I mostly focused on scheme and racket 2018-08-09T13:28:41Z quipa: but you can setup quite easily all sorts of commands 2018-08-09T13:28:47Z quipa: for compile, execute etc 2018-08-09T13:29:24Z patlv quit (Remote host closed the connection) 2018-08-09T13:31:06Z quipa: I mean for [Common] Lisp I didn't do as many changes,just basically added the ctags parser (which to be honest is a bit basic) 2018-08-09T13:31:34Z mindCrime quit (Ping timeout: 260 seconds) 2018-08-09T13:33:04Z shlecta joined #lisp 2018-08-09T13:33:06Z quipa: I am still new too lisp, but from what I asked at #geany these changes were simple enough to work on so gave it a try 2018-08-09T13:34:00Z jackdaniel: sure, that's imo a very valuable work; improving non-emacs lisp toolset :) 2018-08-09T13:35:09Z pierpal quit (Quit: Poof) 2018-08-09T13:35:29Z pierpal joined #lisp 2018-08-09T13:35:59Z warweasle joined #lisp 2018-08-09T13:40:27Z mrcom quit (Quit: Leaving) 2018-08-09T13:41:51Z tralala quit (Ping timeout: 240 seconds) 2018-08-09T13:48:03Z zigpaw: emacs basically monopolized common-lisp development I think :) having something with smaller learning-curve will be beneficial. 2018-08-09T13:49:20Z shrdlu68: I doubt it. 2018-08-09T13:50:16Z shrdlu68: Emacs has a steep learning curve - if you're sitting down to read its entire user manual and use every single feature it offers. 2018-08-09T13:53:43Z pjb: shrdlu68: actually, emacs has a very (almost) flat learning curve. You learn it very slowly over a very long period. Count 50 or 100 years. 2018-08-09T13:54:21Z pjb: zigpaw: you want to aim at very steep learning curve: learn the whole editor in half a hour. 2018-08-09T13:54:35Z pjb: zigpaw: of course, that means that your editor will have a very small number of features. 2018-08-09T13:54:53Z pjb: zigpaw: but we don't need a lot of features to edit sexps agreably and efficiently. 2018-08-09T13:55:24Z pjb: zigpaw: have a look at https://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/sedit/index.html 2018-08-09T13:55:43Z shrdlu68: pjb: Precisely what I mean. 2018-08-09T13:55:56Z pjb: zigpaw: and Interlisp D. 2018-08-09T13:56:32Z pjb: shrdlu68: the point is that the learning curve steepness depends greatly on the learner :-) 2018-08-09T13:57:15Z pjb: zigpaw: eg. https://www.ics.uci.edu/~andre/ics228s2006/teitelmanmasinter.pdf 2018-08-09T13:57:32Z shrdlu68: pjb: Hence the "if" in my assertion. 2018-08-09T13:57:59Z unanimousarc joined #lisp 2018-08-09T13:59:20Z unanimousarc: How do I get sly to respect *print-circle* in the repl? 2018-08-09T13:59:32Z zigpaw: I was using vim for a long time so spacemacs and then doom-emacs give me a familiar environment and it got me past the 'first impression', but I think most younger people would compare it to something they got to know like atom or vs code and it gives very different feel (but that's just my opinion). 2018-08-09T14:00:15Z pjb: unanimousarc: what is sly? 2018-08-09T14:00:30Z unanimousarc: pjb: a SLIME alternative, I thought it was quite common but maybe not 2018-08-09T14:00:41Z pjb: unanimousarc: does it use swank? 2018-08-09T14:00:57Z unanimousarc: pjb: I have no idea 2018-08-09T14:01:35Z unanimousarc: https://github.com/joaotavora/sly 2018-08-09T14:01:41Z pjb: for slime/swank, there's swank:*swank-bindings* an a-list mapping *print-…* symbols to their values when evaluating expressions from slime. 2018-08-09T14:02:23Z pjb: sly is a fork of slime, so try swank:*swank-bindings* 2018-08-09T14:02:39Z pjb: (push '(*print-circle* . t) swank:*swank-bindings*) 2018-08-09T14:02:53Z unanimousarc: na, "package swank does not exist" 2018-08-09T14:03:25Z pjb: apparently it was renamed slynk 2018-08-09T14:03:50Z pjb: https://github.com/joaotavora/sly/blob/master/slynk/slynk.lisp#L41 2018-08-09T14:04:03Z pjb: you have several such variables, for different circumstances. 2018-08-09T14:04:13Z unanimousarc: aha yes I see, "slynk:*slynk-pprint-bindings*" I'll try that 2018-08-09T14:06:33Z test1600 quit (Quit: Leaving) 2018-08-09T14:07:05Z unanimousarc: Yep that worked, thanks! 2018-08-09T14:08:33Z unanimousarc: btw I've been learning common lisp through land of lisp and I've found it good so far, does anyone know if there's anything major missing from it or if there's a reason I should avoid it? 2018-08-09T14:08:40Z unanimousarc: I've noticed a lack of exercises 2018-08-09T14:09:19Z pjb: thre's no reason to avoid books, even bad books, as long as you keep a criticial mind about them, and read several of them. 2018-08-09T14:09:48Z pjb: If you read only the coran and assume it's God's word, then bad things occur… 2018-08-09T14:10:08Z shrdlu68: But it says so right on the first page... 2018-08-09T14:10:15Z unanimousarc: true, but I don't want to read too many books, as I get bored easy :) 2018-08-09T14:10:43Z unanimousarc: maybe this and practical common lisp 2018-08-09T14:10:46Z wigust quit (Read error: Connection reset by peer) 2018-08-09T14:10:53Z shrdlu68: Let your curiosity lead you. 2018-08-09T14:11:20Z pjb: unanimousarc: and more important that the general opinion about a book, to learn something, is the personal receiption you have of it. Whether your personality actual matches the teaching style of the book. 2018-08-09T14:12:13Z unanimousarc: I do enjoy this book because it is not shy to introduce a complicated topic concisely, which is what all papers are like (I am a physics phd student) 2018-08-09T14:12:57Z wigust joined #lisp 2018-08-09T14:14:49Z pjb: unanimousarc: PAIP contains a first part that is a summary of the CL specifications. You might like it. 2018-08-09T14:15:13Z heisig quit (Quit: Leaving) 2018-08-09T14:15:29Z unanimousarc: pjb: I'll take a look 2018-08-09T14:15:32Z shrdlu68: unanimousarc: ANSI Common Lisp by Graham is essentially a concise summary of the spec. 2018-08-09T14:16:05Z unanimousarc: so is the spec kind of like a standard library in other languages? Since there is so little syntax 2018-08-09T14:17:07Z pjb: unanimousarc: we could think of it like this. This reduces to the question of the "primitive" set. Unfortunately, there is no unique or specified primitive set. 2018-08-09T14:17:57Z pjb: CL distinguishes special operators, macros and functions. But special operators can be implemented as macros, and macros can be implemented as special operators. And functions from the CL package can be open coded (kind of inlined, or implemented as primitives). 2018-08-09T14:18:37Z pjb: And there are also some functions that cannot be implemented in terms of the other functions (they're really "primitive" functions of CL). 2018-08-09T14:18:55Z pjb: for example, funcall can be implemented in terms of apply, but the reverse cannot be. 2018-08-09T14:19:27Z shrdlu68: unanimousarc: Not quite, the spec if technical standard which conforming implementations ought to adhere to, including a "standard library". 2018-08-09T14:19:49Z pjb: (defun funcall (f &rest args) (apply f args)) (defun apply (f &rest arguments-and-arglist) (??? f (append (butlast arguments-and-arglist) (first (last (butlast arguments-and-arglist)))))) 2018-08-09T14:19:52Z unanimousarc: Yeah, of course there has to be some level of special forms, it said in this book that you can implement almost everything using just lambda, but I don't know anything about lambda calculus 2018-08-09T14:19:54Z shrdlu68: s/if/is a 2018-08-09T14:20:49Z pjb: There are other cases of "primitive" functions, eg. (setf gethash). So you cannot blindly say that functions and macros in CL are library. 2018-08-09T14:21:35Z unanimousarc: yes true, anyway I should get back to work :P 2018-08-09T14:21:40Z pjb: Event if a great part of them can be implemented in terms of the others. have a look at http://home.pipeline.com/~hbaker1/MetaCircular.html 2018-08-09T14:21:54Z pjb: https://dl.acm.org/citation.cfm?id=382662 2018-08-09T14:24:44Z FreeBirdLjj joined #lisp 2018-08-09T14:29:19Z rumbler31 joined #lisp 2018-08-09T14:33:21Z kajo quit (Ping timeout: 240 seconds) 2018-08-09T14:34:00Z rumbler31 quit (Ping timeout: 245 seconds) 2018-08-09T14:34:23Z Fare joined #lisp 2018-08-09T14:42:53Z sjl joined #lisp 2018-08-09T14:45:53Z shelvick joined #lisp 2018-08-09T14:46:35Z mindCrime joined #lisp 2018-08-09T14:50:23Z bbokser joined #lisp 2018-08-09T14:52:45Z Fare quit (Read error: Connection reset by peer) 2018-08-09T14:53:33Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-09T14:53:40Z Fare joined #lisp 2018-08-09T14:59:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-09T15:05:16Z Fare joined #lisp 2018-08-09T15:07:18Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-08-09T15:08:10Z LiamH joined #lisp 2018-08-09T15:11:23Z shlecta quit (Ping timeout: 255 seconds) 2018-08-09T15:12:23Z rippa joined #lisp 2018-08-09T15:12:58Z shlecta joined #lisp 2018-08-09T15:15:03Z nika joined #lisp 2018-08-09T15:19:36Z razzy quit (Read error: Connection reset by peer) 2018-08-09T15:24:51Z schweers quit (Ping timeout: 240 seconds) 2018-08-09T15:24:55Z Bronsa joined #lisp 2018-08-09T15:27:21Z zfree quit (Quit: zfree) 2018-08-09T15:32:48Z wheelsucker joined #lisp 2018-08-09T15:36:52Z Xof joined #lisp 2018-08-09T15:53:23Z orivej quit (Ping timeout: 268 seconds) 2018-08-09T15:54:45Z chipolux quit (Quit: chipolux) 2018-08-09T15:56:09Z cmatei quit (Remote host closed the connection) 2018-08-09T15:56:56Z chipolux joined #lisp 2018-08-09T16:02:33Z varjag joined #lisp 2018-08-09T16:06:27Z buffergn0me joined #lisp 2018-08-09T16:06:48Z Fare quit (Ping timeout: 256 seconds) 2018-08-09T16:16:17Z unanimousarc quit (Remote host closed the connection) 2018-08-09T16:16:29Z pierpal quit (Quit: Poof) 2018-08-09T16:16:48Z pierpal joined #lisp 2018-08-09T16:20:22Z Fare joined #lisp 2018-08-09T16:21:31Z aindilis quit (Remote host closed the connection) 2018-08-09T16:21:32Z shka_ joined #lisp 2018-08-09T16:22:48Z robotoad quit (Quit: robotoad) 2018-08-09T16:26:01Z robotoad joined #lisp 2018-08-09T16:27:04Z robotoad quit (Remote host closed the connection) 2018-08-09T16:27:43Z robotoad joined #lisp 2018-08-09T16:29:21Z bailon quit (Ping timeout: 256 seconds) 2018-08-09T16:30:30Z rumbler31 joined #lisp 2018-08-09T16:31:38Z ravndal quit (Remote host closed the connection) 2018-08-09T16:31:45Z robotoad quit (Client Quit) 2018-08-09T16:33:21Z robotoad joined #lisp 2018-08-09T16:33:31Z ravndal joined #lisp 2018-08-09T16:34:51Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-09T16:35:08Z rumbler31 quit (Ping timeout: 256 seconds) 2018-08-09T16:35:37Z aindilis joined #lisp 2018-08-09T16:36:41Z dyelar joined #lisp 2018-08-09T16:38:40Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-09T16:39:59Z random-nick quit (Ping timeout: 260 seconds) 2018-08-09T16:42:21Z lavaflow joined #lisp 2018-08-09T16:43:56Z Tristam quit (Remote host closed the connection) 2018-08-09T16:46:15Z Tristam joined #lisp 2018-08-09T16:49:27Z didi joined #lisp 2018-08-09T16:50:45Z didi: If I'm creating a new struct, is there a vantage of defining it as :type list? Let's say it have few slots, less than 6. 2018-08-09T16:50:54Z didi: s/have/has 2018-08-09T16:51:06Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-09T16:54:17Z Bike: Probably not. 2018-08-09T16:54:18Z light2yellow quit (Quit: light2yellow) 2018-08-09T16:54:36Z random-nick joined #lisp 2018-08-09T16:54:43Z didi: Bike: Thank you. 2018-08-09T16:55:31Z zigpaw: there is also gentle introduction to common lisp (which is actually really really gentle). 2018-08-09T16:57:03Z phoe: you don't have to know lambda calculus to use Lisp anonymous functions 2018-08-09T16:57:19Z phoe: it's just a matter of notation that anonymous functions in Lisp are invoked via the symbol LAMBDA 2018-08-09T16:57:31Z Bronsa quit (Ping timeout: 268 seconds) 2018-08-09T16:59:31Z razzy joined #lisp 2018-08-09T17:00:24Z FreeBirdLjj joined #lisp 2018-08-09T17:03:57Z Fare quit (Ping timeout: 240 seconds) 2018-08-09T17:08:18Z hiroaki joined #lisp 2018-08-09T17:09:53Z asarch joined #lisp 2018-08-09T17:19:59Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-09T17:20:47Z zxcvz joined #lisp 2018-08-09T17:21:44Z m00natic quit (Remote host closed the connection) 2018-08-09T17:23:59Z gpiero joined #lisp 2018-08-09T17:32:30Z random-nick quit (Ping timeout: 244 seconds) 2018-08-09T17:40:00Z Fare joined #lisp 2018-08-09T17:40:28Z nowhere_man joined #lisp 2018-08-09T17:43:19Z random-nick joined #lisp 2018-08-09T17:52:29Z razzy quit (Ping timeout: 255 seconds) 2018-08-09T17:54:57Z razzy joined #lisp 2018-08-09T17:57:41Z asarch quit (Remote host closed the connection) 2018-08-09T17:58:22Z asarch joined #lisp 2018-08-09T18:02:20Z nika quit (Quit: Leaving...) 2018-08-09T18:04:31Z Inline joined #lisp 2018-08-09T18:05:58Z gravicappa quit (Ping timeout: 268 seconds) 2018-08-09T18:07:41Z asarch quit (Remote host closed the connection) 2018-08-09T18:10:09Z Fare quit (Ping timeout: 248 seconds) 2018-08-09T18:11:03Z Fare joined #lisp 2018-08-09T18:12:39Z didi left #lisp 2018-08-09T18:27:58Z razzy quit (Read error: Connection reset by peer) 2018-08-09T18:28:57Z razzy joined #lisp 2018-08-09T18:29:59Z n3t joined #lisp 2018-08-09T18:40:30Z Fare quit (Ping timeout: 268 seconds) 2018-08-09T18:47:11Z kerrhau joined #lisp 2018-08-09T18:52:24Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-09T19:03:31Z housel quit (Read error: Connection reset by peer) 2018-08-09T19:03:59Z housel joined #lisp 2018-08-09T19:04:59Z hiroaki quit (Ping timeout: 276 seconds) 2018-08-09T19:19:16Z hiroaki joined #lisp 2018-08-09T19:27:28Z angavrilov quit (Remote host closed the connection) 2018-08-09T19:31:49Z NoNumber quit (Remote host closed the connection) 2018-08-09T19:42:45Z pjb: minion: memo for didi: there are downsides in using :type : then you won't be creating a new type, so it'll be harder to distinguish those structure instances from lists (or vectors). So you would do that, only when this would be the point. 2018-08-09T19:42:45Z minion: Remembered. I'll tell didi when he/she/it next speaks. 2018-08-09T19:44:10Z Zhivago joined #lisp 2018-08-09T19:45:01Z gypsydave5 joined #lisp 2018-08-09T19:47:14Z aeth: On the other hand, you can manually deftype, but that's only practical for specialized arrays, not lists. 2018-08-09T19:50:07Z zxcvz quit (Quit: zxcvz) 2018-08-09T20:01:42Z gypsydave5 quit (Remote host closed the connection) 2018-08-09T20:03:18Z pierpa joined #lisp 2018-08-09T20:07:58Z kajo joined #lisp 2018-08-09T20:09:00Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-09T20:16:44Z vlatkoB_ quit (Remote host closed the connection) 2018-08-09T20:20:35Z Fare joined #lisp 2018-08-09T20:30:20Z kdas_ joined #lisp 2018-08-09T20:31:06Z ym quit (Remote host closed the connection) 2018-08-09T20:31:15Z kushal quit (Ping timeout: 250 seconds) 2018-08-09T20:34:54Z shka_ quit (Ping timeout: 265 seconds) 2018-08-09T20:37:39Z makomo joined #lisp 2018-08-09T20:47:14Z NoNumber joined #lisp 2018-08-09T20:52:58Z hiroaki quit (Ping timeout: 256 seconds) 2018-08-09T20:54:44Z dented42 joined #lisp 2018-08-09T20:54:49Z dented42 quit (Client Quit) 2018-08-09T20:55:19Z dented42 joined #lisp 2018-08-09T20:59:06Z NoNumber quit (Quit: Gone.) 2018-08-09T21:02:44Z razzy quit (Read error: Connection reset by peer) 2018-08-09T21:03:17Z razzy joined #lisp 2018-08-09T21:03:35Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-09T21:04:22Z jfb4 joined #lisp 2018-08-09T21:10:04Z nowhere_man quit (Ping timeout: 260 seconds) 2018-08-09T21:14:32Z Fare quit (Ping timeout: 265 seconds) 2018-08-09T21:21:37Z shlecta quit (Ping timeout: 248 seconds) 2018-08-09T21:24:22Z kerrhau joined #lisp 2018-08-09T21:24:47Z shlecta joined #lisp 2018-08-09T21:26:24Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-09T21:26:53Z orivej joined #lisp 2018-08-09T21:27:25Z ym joined #lisp 2018-08-09T21:31:33Z hiroaki joined #lisp 2018-08-09T21:33:14Z Fare joined #lisp 2018-08-09T21:34:39Z Jesin quit (Read error: Connection reset by peer) 2018-08-09T21:36:40Z Jesin joined #lisp 2018-08-09T21:37:01Z hiroaki quit (Remote host closed the connection) 2018-08-09T21:39:07Z wheelsucker quit (Quit: Client Quit) 2018-08-09T21:42:56Z Xach joined #lisp 2018-08-09T21:50:51Z Bike quit (Ping timeout: 252 seconds) 2018-08-09T21:51:56Z mrcom joined #lisp 2018-08-09T21:54:12Z emacsomancer joined #lisp 2018-08-09T21:57:19Z ym quit (Remote host closed the connection) 2018-08-09T21:58:10Z LiamH quit (Quit: Leaving.) 2018-08-09T22:00:17Z dented42 joined #lisp 2018-08-09T22:22:25Z sjl quit (Ping timeout: 248 seconds) 2018-08-09T22:25:04Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-09T22:29:24Z Jesin quit (Read error: Connection reset by peer) 2018-08-09T22:41:30Z mindCrime joined #lisp 2018-08-09T22:44:05Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-09T22:45:30Z nckx joined #lisp 2018-08-09T22:47:35Z random-nick quit (Ping timeout: 240 seconds) 2018-08-09T22:49:57Z shlecta quit (Ping timeout: 240 seconds) 2018-08-09T22:51:52Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-09T22:53:14Z chipolux quit (Ping timeout: 256 seconds) 2018-08-09T22:53:35Z pierpa quit (Quit: Page closed) 2018-08-09T22:55:18Z chipolux joined #lisp 2018-08-09T22:57:12Z SaganMan quit (Ping timeout: 256 seconds) 2018-08-09T22:57:36Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-09T22:59:53Z Bike joined #lisp 2018-08-09T23:02:04Z robotoad quit (Quit: robotoad) 2018-08-09T23:08:05Z mange joined #lisp 2018-08-09T23:09:50Z light2yellow joined #lisp 2018-08-09T23:12:57Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-09T23:17:23Z kajo joined #lisp 2018-08-09T23:18:40Z shlecta joined #lisp 2018-08-09T23:18:41Z Kundry_Wag joined #lisp 2018-08-09T23:20:41Z SaganMan joined #lisp 2018-08-09T23:23:51Z shlecta quit (Ping timeout: 240 seconds) 2018-08-09T23:24:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-09T23:35:37Z Pixel_Outlaw joined #lisp 2018-08-09T23:35:41Z shlecta joined #lisp 2018-08-09T23:36:03Z emacsoma` joined #lisp 2018-08-09T23:40:04Z dented42 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-09T23:43:49Z dented42 joined #lisp 2018-08-09T23:49:35Z makomo quit (Ping timeout: 240 seconds) 2018-08-09T23:58:04Z chipolux quit (Quit: chipolux) 2018-08-10T00:00:05Z equwal quit (Ping timeout: 276 seconds) 2018-08-10T00:02:04Z shlecta quit (Ping timeout: 244 seconds) 2018-08-10T00:02:55Z asarch joined #lisp 2018-08-10T00:03:06Z asarch: What is?: bogus DEFPACKAGE option: (USE :CLIM... 2018-08-10T00:03:56Z asarch: This is the code: 2018-08-10T00:03:57Z asarch: http://paste.scsys.co.uk/581390 2018-08-10T00:04:57Z asarch: I'm trying to run the example from the "A Guided Tour of CLIM, Common Lisp Interface Manager" 2018-08-10T00:06:07Z asarch: If I remove the package options, (define−application−frame ...) cannot be evaluated 2018-08-10T00:06:21Z Bike: (:use :clim) 2018-08-10T00:08:00Z equwal joined #lisp 2018-08-10T00:10:56Z asarch: bogus DEFPACKAGE option: (USE :CLIM) 2018-08-10T00:10:58Z pjb: asarch: try: (in-package :keyword) (cl:defpackage "FOO" (use clim)) 2018-08-10T00:11:16Z Bike: put in a colon. (:use :clim) 2018-08-10T00:11:23Z Bike: see how there's a colon before the use 2018-08-10T00:11:29Z pjb: or read it (in-package "KEYWORD"). 2018-08-10T00:17:13Z asarch: http://paste.scsys.co.uk/581391 2018-08-10T00:17:57Z asarch: The function :USE is undefined. 2018-08-10T00:18:49Z v0|d joined #lisp 2018-08-10T00:18:54Z pjb: Yes, define it! (cl:defun use (cl:&rest packages) (cl:apply (cl:function cl:use-package) packages)) 2018-08-10T00:19:21Z asarch: ... 2018-08-10T00:19:23Z asarch: ? 2018-08-10T00:19:49Z pjb: What confuses you? 2018-08-10T00:19:56Z Bike: pjb, what the hell 2018-08-10T00:20:22Z Bike: asarch: (defpackage :wasser (:use :clim) (:use :clim-lisp)) 2018-08-10T00:20:31Z pjb: Bike: asarch has a problem understanding packages and keywords and qualified symbols. He needs some play and exercises wiht them. 2018-08-10T00:20:55Z asarch: The name :CLIM does not designate any package. 2018-08-10T00:21:03Z pjb: Define it! 2018-08-10T00:21:15Z Bike: you need to load clim first 2018-08-10T00:21:16Z pjb: (cl:defpackage "CLIM" (:use)) 2018-08-10T00:21:56Z asarch: As far I understand: (defpackage :wasser (:use :clim)) (in-package :wasser) ... ;The rest of the code of the example 2018-08-10T00:22:21Z Bike: yeah, but you don't have clim loaded in your lisp image 2018-08-10T00:22:26Z pjb: asarch: what symbol is read from "defpackage"? 2018-08-10T00:23:18Z asarch: (ql:quickload "clim") 2018-08-10T00:23:40Z energizer quit (Read error: Connection reset by peer) 2018-08-10T00:24:03Z asarch: What do you mean with "what symbol" pjb? 2018-08-10T00:24:17Z pjb: (type-of (read-from-string "defpackage")) #| --> symbol |# 2018-08-10T00:25:36Z pjb: (defpackage "TEST" (:use)) (remove-duplicates (list (read-from-string "defpackage") (read-from-string ":defpackage") (read-from-string "cl:defpackage") (read-from-string "keyword:defpackage") (read-from-string "test::defpackage"))) #| --> (defpackage :defpackage test::defpackage) |# 2018-08-10T00:26:40Z pjb: (let ((*package* (find-package "TEST"))) (read-from-string "defpackage")) #| --> test::defpackage ; 10 |# 2018-08-10T00:28:34Z pjb: (let ((*package* (find-package "KEYWORD"))) (read-from-string "(cl:defpackage \"FOO\" (use clim))")) #| --> (defpackage "FOO" (:use :clim)) ; 32 |# 2018-08-10T00:28:47Z pjb: (let ((*package* (find-package "CL"))) (read-from-string "(cl:defpackage \"FOO\" (use clim))")) #| --> (defpackage "FOO" (common-lisp::use common-lisp::clim)) ; 32 |# 2018-08-10T00:28:58Z pjb: (let ((*package* (find-package "CL"))) (read-from-string "(cl:defpackage \"FOO\" (:use #:clim))")) #| --> (defpackage "FOO" (:use #:clim)) ; 35 |# 2018-08-10T00:31:27Z asarch: This code evaluates fine: http://paste.scsys.co.uk/581392 2018-08-10T00:32:18Z asarch: No, it doesn't 2018-08-10T00:32:25Z asarch: This Emacs is broken 2018-08-10T00:33:04Z shlecta joined #lisp 2018-08-10T00:33:22Z pjb: asarch: try to add (print *package*) here and there. 2018-08-10T00:33:47Z pjb: asarch: didn't you notice the fucking importance of the *package* variable for the meaning of what is read? 2018-08-10T00:33:54Z pjb: Read again my examples above! 2018-08-10T00:34:04Z pjb: clhs in-package 2018-08-10T00:34:04Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_in_pkg.htm 2018-08-10T00:36:53Z asarch: One step at the time: 1. I start a fresh session of SBCL. 2. Load clim: (ql:quickload "clim") 3. Load the pure code of this example: (load "example-02.lisp") and I get: 2018-08-10T00:37:09Z pjb: asarch: don't load the example-02, it's wrong! 2018-08-10T00:37:45Z pjb: asarch: the stereotypical file will contain (defpackage "FOO" (:use "CL" "AND" "STUFF")) (in-package "FOO") … 2018-08-10T00:38:23Z sjl joined #lisp 2018-08-10T00:38:42Z pjb: if you want to type (use "CL"…) then you need *package* to be bound to the keyword package, so you need: (in-package "KEYWORD") (cl:defpackage "FOO" (use "CL" …)) (cl:in-package "FOO") … 2018-08-10T00:38:50Z asarch: http://paste.scsys.co.uk/581393 2018-08-10T00:39:34Z asarch: For every function? 2018-08-10T00:39:52Z pjb: asarch: again, read clhs in-package and clhs use-package closely, and underline each difference! 2018-08-10T00:39:56Z pjb: clhs use-package 2018-08-10T00:39:56Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_use_pk.htm 2018-08-10T00:40:04Z pjb: clhs in-package 2018-08-10T00:40:04Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_in_pkg.htm 2018-08-10T00:40:21Z pjb: You know, the basic 7 errors game, any 5 years old children can do. 2018-08-10T00:41:35Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-10T00:42:20Z asarch: Ok. How would you fix this code? How would you write something like: #include and voila! 2018-08-10T00:43:05Z pjb: help me help you! 2018-08-10T00:43:43Z asarch: If I (use-package :clim) I get: http://paste.scsys.co.uk/581394 2018-08-10T00:43:48Z pjb: I explained you above the stereotypical file structure. Why cannot you apply it to your file? What's wrong with the sentence "the stereotypical file will contain (defpackage "FOO" (:use "CL" "AND" "STUFF")) (in-package "FOO") …" ? 2018-08-10T00:44:07Z pjb: Can you not substitute the strings for your actual instance? 2018-08-10T00:44:11Z pjb: Why not? 2018-08-10T00:44:38Z pjb: What do you need to be told to be able to take a good example and reproduce it in your code? 2018-08-10T00:44:51Z asarch: http://paste.scsys.co.uk/581395 2018-08-10T00:45:03Z pjb: Yes, unsurprisingly. 2018-08-10T00:45:05Z pjb: BUT! 2018-08-10T00:45:11Z pjb: Have you READ this error message? 2018-08-10T00:45:19Z pjb: What does it tell you? 2018-08-10T00:45:53Z pjb: Note that if error messages are unclear or ambiguous, in general maintainers will take bug reports about them and clarify/correct them. 2018-08-10T00:46:10Z pjb: So what's wrong in this error message that you don't understand the problem? 2018-08-10T00:46:41Z asarch: I did, that was my first attemp, and this is what I get: 2018-08-10T00:46:43Z asarch: http://paste.scsys.co.uk/581396 2018-08-10T00:46:54Z megalography joined #lisp 2018-08-10T00:47:14Z pjb: Usually, where there are N questions, there should be N answers… 2018-08-10T00:53:05Z asarch: So far, I have this: 2018-08-10T00:53:07Z asarch: http://paste.scsys.co.uk/581397 2018-08-10T00:55:20Z dddddd quit (Remote host closed the connection) 2018-08-10T00:56:28Z energizer joined #lisp 2018-08-10T01:01:10Z asarch: And if I type the expression directly in the SBCL REPL I get the same errors: 2018-08-10T01:01:11Z asarch: http://paste.scsys.co.uk/581398 2018-08-10T01:01:21Z asarch: No matter if I loaded "clim" previously 2018-08-10T01:03:34Z asarch: The standard is broken 2018-08-10T01:04:19Z asarch: It's a lie :-P 2018-08-10T01:04:34Z Khisanth quit (Ping timeout: 260 seconds) 2018-08-10T01:05:06Z moei quit (Ping timeout: 244 seconds) 2018-08-10T01:07:18Z FreeBirdLjj joined #lisp 2018-08-10T01:09:09Z asarch: http://paste.scsys.co.uk/581399 2018-08-10T01:09:28Z asarch: You cannot use :clim package directly in the REPL 2018-08-10T01:13:04Z pjb: asarch: I cannot help you, since you don't answer to the questions. 2018-08-10T01:13:11Z rozenglass joined #lisp 2018-08-10T01:14:11Z pjb: FOr example, I could ask you what the standard says about a thing, but you wouldn't understand why I'm asking you about that thing, because you can't read an error message. 2018-08-10T01:14:44Z pjb: So you would probably not read the clhs about that thing anyways. 2018-08-10T01:15:43Z Jesin joined #lisp 2018-08-10T01:16:54Z pjb: asarch: for example, we gave you the clhs use-package to read, but you still don't understand that packages such as the :clim package are not used IN the REPL, but used BY other packages. 2018-08-10T01:17:24Z Fare quit (Ping timeout: 260 seconds) 2018-08-10T01:17:32Z pjb: (also incidently, you've been told from the start the solution, but you couldn't apply it). 2018-08-10T01:19:43Z asarch: I simply don't understand CLHS 2018-08-10T01:20:13Z asarch: I read it if it was a prescription from a doctor 2018-08-10T01:20:36Z asarch: I still don't have that level I need 2018-08-10T01:21:13Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-10T01:21:25Z Khisanth joined #lisp 2018-08-10T01:22:10Z asarch: So, an example would be fine. If I do: (defpackage :asarch (:use :common-lisp)) (in-package :asarch) I understand I am making available all the functions from :common-lisp plus the functions from :asarch, right? 2018-08-10T01:24:41Z asarch: Just like "using namespace std;" from C++, right? 2018-08-10T01:25:56Z asarch: Or maybe I am wrong. (That's the reason I am confused) 2018-08-10T01:26:20Z chamblin quit (Quit: Leaving) 2018-08-10T01:26:32Z slyrus quit (Quit: slyrus) 2018-08-10T01:26:47Z no-defun-allowed: you're making all the symbols from CL used in ASARCH, yes. 2018-08-10T01:27:11Z no-defun-allowed: IN-PACKAGE also means all new symbols in the file or REPL will be interned into ASARCH. 2018-08-10T01:29:53Z FreeBirdLjj joined #lisp 2018-08-10T01:37:15Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-10T01:37:52Z FreeBirdLjj joined #lisp 2018-08-10T01:42:18Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-10T01:48:04Z parjanya quit (Read error: Connection reset by peer) 2018-08-10T01:48:50Z phax joined #lisp 2018-08-10T01:48:53Z smokeink joined #lisp 2018-08-10T01:48:58Z Kundry_Wag joined #lisp 2018-08-10T01:49:10Z mathZ joined #lisp 2018-08-10T01:51:44Z Fare joined #lisp 2018-08-10T01:53:09Z shlecta quit (Ping timeout: 244 seconds) 2018-08-10T01:53:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T02:05:00Z Oladon joined #lisp 2018-08-10T02:09:54Z pjb: no-defun-allowed: no, using packages doesn't intern symbols. Symbols can be interned only in their home package. 2018-08-10T02:10:26Z pjb: symbols can be imported, or present (visible) in a package thru package use. 2018-08-10T02:11:00Z shlecta joined #lisp 2018-08-10T02:12:49Z pjb: notice however, that you can intern a symbol with more than one operator (intern, of course, but also import and shadow can intern a symbol). 2018-08-10T02:14:32Z pjb: Also, contrarily to intern and shadow, and import can intern an existing symbol (if it has no home package). 2018-08-10T02:15:51Z jfb4 quit (Ping timeout: 240 seconds) 2018-08-10T02:16:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-10T02:17:07Z quipa_ joined #lisp 2018-08-10T02:18:18Z quipa_ quit (Remote host closed the connection) 2018-08-10T02:18:36Z quipa_ joined #lisp 2018-08-10T02:19:21Z shlecta quit (Ping timeout: 240 seconds) 2018-08-10T02:20:11Z Kundry_Wag joined #lisp 2018-08-10T02:20:17Z quipa quit (Ping timeout: 248 seconds) 2018-08-10T02:21:52Z asarch: :-( 2018-08-10T02:24:28Z asarch: So, in the example, (I was re-reading all my notes): Instead of writing (clim:make−pane ...) I could do (use-package :clim), right 2018-08-10T02:24:28Z asarch: ? 2018-08-10T02:24:40Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-10T02:25:53Z pjb: yes. 2018-08-10T02:26:04Z asarch: However, if I do that, I get USE-PACKAGE # causes name-conflicts in # between the following symbols: COMMON-LISP:INTERACTIVE-STREAM-P, CLIM-LISP-PATCH:INTERACTIVE-STREAM-P 2018-08-10T02:26:17Z pjb: As long as you do that in a package that doesn't already have symbols with the same name as the symbols exported by the "CLIM" package. 2018-08-10T02:26:30Z pjb: What does clhs say about the CL-USER package? 2018-08-10T02:26:38Z asarch: However, I can ignore functions from packages... 2018-08-10T02:26:54Z pjb: This doesn't mean anything. 2018-08-10T02:27:02Z pjb: functions are not from packages. THis is meaningless. 2018-08-10T02:27:35Z JuanDaugherty joined #lisp 2018-08-10T02:28:03Z pjb: asarch: http://www.lispworks.com/documentation/HyperSpec/Body/11_abb.htm 2018-08-10T02:29:51Z Bike: maybe just use :clim-lisp? avoiding the conflict might be what it's for 2018-08-10T02:31:48Z asarch: :shadow :CLIM-LISP-PATCH:INTERACTIVE-STREAM-P 2018-08-10T02:32:39Z pjb: Bike: there's no conflit when you use it in a clean package! 2018-08-10T02:34:11Z Bike: i mean, use :clim-lisp and not :cl 2018-08-10T02:34:37Z robotoad joined #lisp 2018-08-10T02:34:45Z Kundry_Wag joined #lisp 2018-08-10T02:36:40Z quipa_ is now known as quipa 2018-08-10T02:38:25Z no-defun-allowed: pjb: i believe i said "new symbols ... [are] interned into ASARCH" and "all the symbols from CL [are] used in ASARCH" which is correct 2018-08-10T02:39:08Z robotoad quit (Ping timeout: 244 seconds) 2018-08-10T02:40:01Z robotoad joined #lisp 2018-08-10T02:40:14Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-10T02:45:23Z buffergn0me joined #lisp 2018-08-10T02:47:02Z asarch: :-( 2018-08-10T02:54:53Z asarch: But enough of chit-chat. How would you fix the package messing of this code? 2018-08-10T02:56:27Z asarch: This the code. Please help me with the package part: http://paste.scsys.co.uk/581400 2018-08-10T02:56:32Z mfiano: It is bad practice to use use-package a lot. The solution is to not use it, and allow your code to be more readable. Alternatively, shadow the exports or imports. 2018-08-10T02:58:05Z light2yellow quit (Quit: light2yellow) 2018-08-10T03:00:39Z beach: Good morning everyone! 2018-08-10T03:01:16Z asarch: Bingo! You were sent by Heaven! 2018-08-10T03:01:58Z asarch: beach, would you please help me with this code?. I have a mess with the package part: http://paste.scsys.co.uk/581400 2018-08-10T03:02:04Z beach: asarch: In your package FENSTER, you need to :USE something that contains Common Lisp symbols too. Either :COMMON-LISP or :CLIM-LISP. 2018-08-10T03:02:47Z beach: asarch: But as mfiano says, I recommend against :USE-ing packages other than :COMMON-LISP (or in this case :CLIM-LISP). 2018-08-10T03:03:02Z beach: asarch: Instead I prefix all my CLIM symbols. 2018-08-10T03:03:39Z beach: asarch: Also, the system to install from Quicklisp is not called CLIM, it is called MCCLIM. 2018-08-10T03:05:43Z beach: asarch: You will find a very small (but working) example of using CLIM here: https://github.com/robert-strandh/Compta 2018-08-10T03:05:55Z beach: 600 lines of code. 2018-08-10T03:06:09Z beach: 235 of which make up the GUI. 2018-08-10T03:06:38Z beach: But you can study the compta.asd file, the packages.lisp file, and you can look at how symbols are prefixed. 2018-08-10T03:08:05Z asarch: Thank you! 2018-08-10T03:08:09Z asarch: You're great! 2018-08-10T03:08:19Z beach: Thanks. Good luck. 2018-08-10T03:08:44Z quipa quit (Quit: Leaving) 2018-08-10T03:15:16Z Kundry_Wag joined #lisp 2018-08-10T03:15:30Z kdas_ is now known as kushal 2018-08-10T03:18:47Z Bike_ joined #lisp 2018-08-10T03:19:07Z Bike quit (Ping timeout: 268 seconds) 2018-08-10T03:19:51Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T03:20:05Z Kundry_Wag joined #lisp 2018-08-10T03:20:51Z slyrus joined #lisp 2018-08-10T03:21:57Z Bike_ is now known as Bike 2018-08-10T03:28:19Z rpg joined #lisp 2018-08-10T03:33:37Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-10T03:34:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-10T03:38:16Z asarch: How do you run the code? 2018-08-10T03:39:08Z beach: (compta-gui:compta) 2018-08-10T03:40:26Z ckonstanski joined #lisp 2018-08-10T03:43:07Z asarch: Thanks! 2018-08-10T03:48:41Z no-defun-allowed: hi beach 2018-08-10T03:48:49Z no-defun-allowed: yay, you're back to saying morning 2018-08-10T03:49:45Z beach: Indeed. 2018-08-10T03:52:11Z anewuser joined #lisp 2018-08-10T03:54:07Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-10T03:59:45Z megalography left #lisp 2018-08-10T04:04:42Z psq quit (Remote host closed the connection) 2018-08-10T04:20:17Z didi joined #lisp 2018-08-10T04:23:10Z didi: Sooo. I want to use `assert' within `defsetf'. The problem is, the place I use inside `assert' turns into an `undefined variable'. I can do it, if instead of `defsetf', I use `defun (setf ...) ...'. Is there a way to use `assert' within `defsetf'? 2018-08-10T04:23:10Z minion: didi, memo from pjb: there are downsides in using :type : then you won't be creating a new type, so it'll be harder to distinguish those structure instances from lists (or vectors). So you would do that, only when this would be the point. 2018-08-10T04:23:28Z didi: pjb: Thank you. 2018-08-10T04:23:41Z Bike: i don't understand what you mean. code? 2018-08-10T04:23:50Z Bike: defsetf is kind of like a macro definition, so maybe there are timing issues. 2018-08-10T04:23:53Z didi: Bike: Oh, sure. Let me cook something smallish. 2018-08-10T04:24:51Z v0|d: didi: cook us a new album :p 2018-08-10T04:25:18Z didi: And make it spicy. 2018-08-10T04:28:53Z didi: Bike: https://paste.debian.net/hidden/399d63a4 2018-08-10T04:30:15Z pjb: your only-number is a store variable. It's probably not set before you store it. 2018-08-10T04:30:25Z Bike: (assert (numberp ,only-number) (,only-number)), i guess? 2018-08-10T04:30:32Z pjb: the old value of th eplace is in your cons parameter. 2018-08-10T04:31:35Z didi: Bike: Then it evals to the constant. 2018-08-10T04:31:41Z Bike: does it? 2018-08-10T04:31:41Z Bike: in the expansion function, ONLY-NUMBER will be bound to a symbol. the expansion of setf will bind that symbol to whatever. so it names a place. 2018-08-10T04:31:45Z Bike: is my understanding. 2018-08-10T04:32:00Z didi: Let me try again. 2018-08-10T04:32:04Z Bike: oh, but it can optimize out bindings. 2018-08-10T04:32:13Z Bike: in that case there is no place at all, so assert can't work. 2018-08-10T04:32:19Z didi: Right. 2018-08-10T04:32:51Z didi: Wait wait. I think it worked. 2018-08-10T04:33:09Z didi: Hum. Crazy SBCL. I was macro expanding it and it tricked me. 2018-08-10T04:34:14Z didi: Oh well. I should have actually tried, instead of reading the macro expansion. Sorry for the noise. 2018-08-10T04:35:00Z didi: (but I think I've tried... /me scratches head) 2018-08-10T04:39:23Z Oladon quit (Quit: Leaving.) 2018-08-10T04:40:32Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T04:41:05Z didi: Ah, right. The trouble program is https://paste.debian.net/hidden/cf0b6b87 . The issue is with the function parameter, not with the new value. 2018-08-10T04:42:08Z didi: Now SBCL complains. If I try (setf (my-place 0 (list 1 2 3)) 42), "Variable name is not a symbol: 0." 2018-08-10T04:43:11Z didi: And if I take the comma from (,n): "undefined variable: N" 2018-08-10T04:44:15Z didi: I guess if I want to use `assert', I will have to live with the #'(setf ...) function call. 2018-08-10T04:44:38Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-10T04:45:58Z didi: Uuuh. Tho (let ((n ,n)) (assert ...) ...) makes it work. 2018-08-10T04:46:52Z didi: Hehe, nah. It get stuck. 2018-08-10T04:49:51Z didi: OK, `(let* ((n ,n)) (assert (numberp n) (n)) (setf (nth n ,list) ,value)) works, but at what cost? Maybe it's better to use (setf my-place) after all. 2018-08-10T04:50:36Z marusich joined #lisp 2018-08-10T04:50:46Z pjb: didi: I think that the point is that when you use defsetf it doesn't create a (setf foo) function, but setf expands the expression inline. 2018-08-10T04:50:47Z asarch: The code between #| ... |#, what is that for? 2018-08-10T04:50:53Z pjb: it's comment. 2018-08-10T04:50:58Z asarch: Thank you! 2018-08-10T04:51:27Z Bike quit (Quit: Lost terminal) 2018-08-10T04:51:29Z didi: pjb: Indeed. 2018-08-10T04:51:40Z pjb: #| it can #| be embedded |# into other coments |# 2018-08-10T04:52:11Z asarch takes notes... 2018-08-10T04:52:23Z pjb: or just read chapter 2. 2018-08-10T04:53:19Z didi: I also noted that (nth 42 '()) evals to NIL but (elt '() 42) signals a condition. Weird. 2018-08-10T04:53:40Z pjb: that's because elt works on vectors too. 2018-08-10T04:53:55Z pjb: (cdr nil) = nil so there's no problem repeating cdr 41 times. 2018-08-10T04:54:21Z jameser joined #lisp 2018-08-10T04:54:22Z didi: Right. Tho I would expect NTH and ELT behave the same when feeding them a list. 2018-08-10T04:54:39Z didi: Just my expectation. 2018-08-10T04:54:40Z pjb: It would be sad if they were identical. 2018-08-10T04:54:48Z didi: I see. 2018-08-10T04:54:55Z pjb: By being different, they justify their existence. :-) 2018-08-10T04:58:06Z aeth: Well I expect the main difference to be that NTH will have an error if not given a list and ELT will work fine if given certain non-lists 2018-08-10T04:58:31Z aeth: Saves a line of code, so that justifies its existence. 2018-08-10T05:02:58Z pjb: Well, one could expect that elt would still avoid calling length on lists. So it could return nil or signal an error at the same cost. 2018-08-10T05:03:18Z pjb: But since nth already returned nil, it was more interesting to return an error, just like in the case for vectors. 2018-08-10T05:05:10Z Kundry_Wag joined #lisp 2018-08-10T05:09:16Z Inline quit (Quit: Leaving) 2018-08-10T05:10:08Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-10T05:14:27Z phax quit (Ping timeout: 240 seconds) 2018-08-10T05:20:55Z vlatkoB joined #lisp 2018-08-10T05:21:19Z housel quit (Read error: Connection reset by peer) 2018-08-10T05:27:26Z phax joined #lisp 2018-08-10T05:30:49Z housel joined #lisp 2018-08-10T05:46:05Z anewuser quit (Ping timeout: 240 seconds) 2018-08-10T05:47:56Z sthalik joined #lisp 2018-08-10T05:48:21Z sthalik: hey 2018-08-10T05:48:51Z beach: Hello sthalik. 2018-08-10T05:49:22Z sthalik: did anything functionally a standard "extension" happen in the last few years? 2018-08-10T05:49:22Z Kundry_Wag joined #lisp 2018-08-10T05:49:42Z beach: An extension to the Common Lisp standard? No. 2018-08-10T05:49:44Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-10T05:50:04Z sthalik: well, it's not like one's obliged to use-package '#:cl 2018-08-10T05:50:21Z beach: I don't understand. 2018-08-10T05:50:36Z sthalik: things like generic sequences 2018-08-10T05:50:59Z asarch: Is there any way to know what a package is actually exporting? 2018-08-10T05:51:00Z beach: Yes, but I don't understand your first question. Mainly because I don't understand the grammar of the sentence. 2018-08-10T05:51:11Z beach: asarch: Sure. 2018-08-10T05:51:24Z asarch: How? 2018-08-10T05:51:37Z beach: clhs do-external-symbols 2018-08-10T05:51:37Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_do_sym.htm 2018-08-10T05:51:51Z buffergn0me joined #lisp 2018-08-10T05:51:59Z sthalik: beach, there was this basic idea that the standard's immaculate, and it doesn't need anything new ever, at all 2018-08-10T05:52:20Z sthalik: then there was NAMED-READTABLES being made, but then I quit 2018-08-10T05:52:37Z beach: Oh, so you want to know what happened after that? 2018-08-10T05:52:45Z beach: sthalik: Lots of stuff. 2018-08-10T05:52:50Z beach: For example first-class global environments. 2018-08-10T05:53:04Z sthalik: we've already had a portable code walker, didn't we? 2018-08-10T05:53:24Z sthalik: but you mean something else 2018-08-10T05:53:25Z beach: I don't see the relation. 2018-08-10T05:53:31Z beach: http://metamodular.com/environments.pdf 2018-08-10T05:54:07Z beach: sthalik: Also, fast portable sequence functions: http://metamodular.com/sequence-functions.pdf 2018-08-10T05:54:12Z anewuser joined #lisp 2018-08-10T05:54:16Z smokeink quit (Ping timeout: 256 seconds) 2018-08-10T05:54:35Z beach: sthalik: And fast generic dispatch: http://metamodular.com/generic-dispatch.pdf 2018-08-10T05:55:07Z beach: But I guess you want to know only about new features. 2018-08-10T05:55:16Z beach: So forget about the last two. 2018-08-10T05:56:01Z sthalik: no, these are significant in itself 2018-08-10T05:56:38Z buffergn0me: beach: Those three are really cool 2018-08-10T05:57:40Z dented42 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-10T05:58:42Z kerrhau joined #lisp 2018-08-10T06:01:29Z MichaelRaskin joined #lisp 2018-08-10T06:03:00Z MichaelRaskin quit (Client Quit) 2018-08-10T06:04:09Z MichaelRaskin joined #lisp 2018-08-10T06:06:02Z beach: buffergn0me: Thanks. 2018-08-10T06:14:06Z captgector quit (Ping timeout: 256 seconds) 2018-08-10T06:15:13Z captgector joined #lisp 2018-08-10T06:16:40Z sthalik: is SICL in use? 2018-08-10T06:16:49Z beach: It is not finished, so no. 2018-08-10T06:17:19Z beach: But the Cleavir compiler framework is used. 2018-08-10T06:17:33Z beach: Now it has three clients: SICL, Clasp, and CLISP. 2018-08-10T06:18:12Z sthalik: that's good to hear 2018-08-10T06:18:26Z sthalik: are there provably-exhaustible patterns now? 2018-08-10T06:18:50Z beach: I don't know what that means. 2018-08-10T06:19:21Z sthalik: beach, having passed some datum to the pattern-matching macro, have the compiler guarantee that all cases are taken care of 2018-08-10T06:19:37Z beach: Ah, OK. 2018-08-10T06:20:26Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-10T06:21:43Z phoe: sthalik: for what kinds of "patterns"? 2018-08-10T06:22:05Z phoe: as in pattern matching? that would be a question to the trivia/optima libraries 2018-08-10T06:22:33Z shrdlu68 joined #lisp 2018-08-10T06:22:47Z sthalik: phoe, yeah but provable exhaustibility 2018-08-10T06:22:51Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T06:24:31Z sthalik: optima throws a runtime error in the non-exhaustibility case. that's disappointing. 2018-08-10T06:26:06Z aeth: You can define a member type with a custom macro that also defines a custom ecase. The custom ecase can verify that every member in the member type foo is a clause in the foo-ecase macro and only members of that member type foo. At compile time. Afaik. It doesn't sound particularly hard, either. 2018-08-10T06:26:46Z sthalik: beach, thank you for the info and links 2018-08-10T06:26:59Z beach: Anytime! 2018-08-10T06:27:10Z sthalik: (I remember removing all dwarf-eh sections from built programs) 2018-08-10T06:27:13Z aeth: Now, that's just a tiny part of the problem, but I think the basic solution form would hold. Generate a function and a macro in a macro, and call that function in the macro to verify that the macro is valid 2018-08-10T06:28:02Z sthalik: aeth, compilers like SBCL have inference done on the matched datum. can you access that? 2018-08-10T06:28:49Z sthalik: e.g. assume some generic datum passed in, SBCL will assume there's no contradiction 2018-08-10T06:28:54Z aeth: I don't think you can access SBCL's type inference. At least, I haven't seen a library do that. You'd have to use type declarations if you can't. 2018-08-10T06:29:21Z didi quit (Ping timeout: 248 seconds) 2018-08-10T06:29:24Z sthalik: aeth, can a pattern-matching library like that access, say, CHECK-TYPE or DECLARE TYPE? 2018-08-10T06:30:06Z aeth: specialization-store, an otherwise wonderful library for type-based generic functions, cannot access anything other than type declarations from DECLARE as well as FTYPE declarations afaik. 2018-08-10T06:30:22Z aeth: If you haven't seen it, this is the library. https://github.com/markcox80/specialization-store/ 2018-08-10T06:30:35Z aeth: It uses https://github.com/Bike/introspect-environment 2018-08-10T06:31:03Z sthalik: aeth, but a pattern-matching library won't infer (or access the info from the compiler) whether the pattern is exhaustible, will it? 2018-08-10T06:32:32Z aeth: I don't think there's any more information available at compile time than the information that's in introspect-environment, but I could be wrong. If there is, it would be incredibly non-portable. 2018-08-10T06:33:14Z aeth: I'm guessing there isn't more because there are libraries that could benefit from more. 2018-08-10T06:33:56Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T06:34:01Z sthalik: I agree, about the lack of common denominator across compilers 2018-08-10T06:34:24Z Shinmera: You can do more, but it is highly implementation specific. 2018-08-10T06:34:49Z sthalik: then it's SB-PATTERN-MATCHING, sort of ruins the mood 2018-08-10T06:35:44Z sthalik: sorry, I'm being a pain in the butt on purpose, but the point stands nonetheless :| 2018-08-10T06:36:25Z aeth: If someone could port some of SBCL's behavior to CCL, it would no longer become implementation specific! 2018-08-10T06:36:34Z aeth: (Or vice versa) 2018-08-10T06:36:44Z pjb joined #lisp 2018-08-10T06:37:09Z sthalik: or maybe do an inference library 2018-08-10T06:37:24Z sthalik: in the type-reconstruction fashion, of course 2018-08-10T06:41:07Z aeth: sthalik: What do you have in mind? Can you put some invalid code in a pastebin that you wish would work? 2018-08-10T06:41:52Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T06:44:59Z sthalik: aeth, rather, what's potentially recognized as valid that ought be guaranteed recognized as invalid 2018-08-10T06:45:30Z sthalik: progn (+ datum expr_1) (aref datum . rest) 2018-08-10T06:46:22Z aeth: I think SBCL would catch that. 2018-08-10T06:46:28Z sthalik: yes, it would 2018-08-10T06:47:18Z sthalik: but it's not guaranteed, thus a pattern-matching library can't guarantee that 2018-08-10T06:47:47Z sthalik: you know how well doing matches structures program flow? 2018-08-10T06:49:02Z sthalik: now it's mainstream, C# took the good bits from F#. I had a brief stint with F#. 2018-08-10T06:49:53Z sthalik: you remember Jon Harrop on cll? 2018-08-10T06:51:26Z mathZ quit (Remote host closed the connection) 2018-08-10T06:52:02Z sthalik: damn arrogant guy was right so often 2018-08-10T06:52:30Z aeth: oh comp.lang.lisp 2018-08-10T06:55:20Z housel quit (Read error: Connection reset by peer) 2018-08-10T06:57:45Z marusich quit (Quit: Leaving) 2018-08-10T06:57:46Z schweers joined #lisp 2018-08-10T06:58:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-10T07:00:35Z pjb joined #lisp 2018-08-10T07:00:44Z lieven must have missed the many times Harrop was right. The arrogant part is spot on. 2018-08-10T07:03:04Z sthalik: lieven, people engaging in the arguments on Lisp's side made a straw man out of type systems so Harrop had an easy time 2018-08-10T07:04:28Z aeth: What was the argument? If I read it, it was so long ago that I don't recall 2018-08-10T07:04:53Z nowhere_man joined #lisp 2018-08-10T07:05:06Z sthalik: aeth, Lisp side: type systems peak at C89. pattern matching doesn't improve program flow 2018-08-10T07:05:56Z aeth: huh? CL has some types that are only recently fashionable, like (or null foo) 2018-08-10T07:06:08Z sthalik: aeth, DEFTYPE can't compare 2018-08-10T07:06:21Z kajo quit (Ping timeout: 240 seconds) 2018-08-10T07:06:48Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T07:06:52Z sthalik: I don't remember the syntax but this is invalid, as per stack overflow: 2018-08-10T07:07:26Z asarch quit (Quit: Leaving) 2018-08-10T07:07:40Z sthalik: deftype lets-crash (t) '(cons t (or null lets-crash)) 2018-08-10T07:07:50Z jackdaniel: sthalik: unless it is a type based on `satisfies', then function associated with it may compare object with anything 2018-08-10T07:08:30Z aeth: sthalik: The built in typed conses are... lacking in many ways. However, most implementations now (or hopefully soon) enforce :type in slots on structs, so you can create your own typed cons. 2018-08-10T07:08:31Z jackdaniel: or did I misunderstood the sentence? 2018-08-10T07:08:32Z jackdaniel: hum 2018-08-10T07:08:41Z sthalik: jackdaniel, recursive type definitions are explicitly disallowed 2018-08-10T07:08:42Z aeth: Typed conses are pretty trivial to write, only a few hundred lines. 2018-08-10T07:08:59Z aeth: (Oh, my implementation started at a few dozen and it'll probably end at a thousand) 2018-08-10T07:09:33Z sthalik: aeth, did you go for arbitrary-length typed lists? 2018-08-10T07:09:43Z lieven: the lisp side argument was mostly that lisp is a dynamic language and that so far attempts to mesh a static type system with it are clumsy. 2018-08-10T07:10:10Z aeth: sthalik: https://gitlab.com/zombie-raptor/zombie-raptor/blob/93ddd7250aba57a22817defadf6cc45176109926/util/util.lisp#L402-463 2018-08-10T07:10:32Z aeth: It's getting increasingly messy, though, so I might use inline specialization-store specializations instead of prefixes. 2018-08-10T07:11:17Z aeth: The core of it is just a three line defstruct to have a car of type and a cdr of (or null type-cons) 2018-08-10T07:11:37Z aeth: Yes, it's not as powerful as a Lisp cons and is only for lists. A separate kind of cons could be created for trees that has less guarantees. 2018-08-10T07:12:10Z aeth: An early version was benchmarked to only be a 30% performance loss in SBCL, iirc. 2018-08-10T07:13:35Z aeth: Now, there's lots of things about type systems that are lacking in CL, but typed conses via structs seem to be doable. Probably even immutable ones with :read-only, although probably not useful without the language itself optimizing them 2018-08-10T07:13:37Z sthalik: tag bits vs type info 2018-08-10T07:14:18Z rozenglass quit (Remote host closed the connection) 2018-08-10T07:14:36Z sthalik: technically one can "freeze" a definition but then it's the "sufficiently smart compiler" fallacy 2018-08-10T07:16:56Z mange quit (Remote host closed the connection) 2018-08-10T07:17:08Z sthalik: aeth, how much can the compiler infer in practice? 2018-08-10T07:17:27Z aeth: I do think that if CL has a weakness it's in its limited set of collections available, especially lacking in immutability and non-generic versions (except for specialized arrays). 2018-08-10T07:18:26Z aeth: e.g. If CL had built-in hash tables that could only hold type foo, then the compiler would know on the GETHASH what the type is (if it knew the type of the hash table), which would remove a lot of declare/the/check-type/etc. 2018-08-10T07:18:50Z sthalik: lieven, there was plenty of ignorance on modern type systems on the Lisp side 2018-08-10T07:19:38Z sthalik: aeth, OTOH arrays with element-type are good about not boxing 2018-08-10T07:20:14Z Fare quit (Ping timeout: 260 seconds) 2018-08-10T07:20:15Z aeth: Right, I just which :element-type would work on more things and in more make-foos 2018-08-10T07:20:26Z aeth: That would be 90% of the way to making CL "modern" imo. 2018-08-10T07:20:33Z sthalik: yeah, not user-defined types :| 2018-08-10T07:21:21Z aeth: One problem with :element-type is that you can't e.g. store (integer 0 10), it'll round it to probably (integer 0 15) or something. 2018-08-10T07:21:35Z sthalik: pack bits are worse 2018-08-10T07:21:50Z aeth: Sure, internally, it should round it, but it would be nice if it actually remembered you wanted to store (integer 0 10) so the type information isn't lost across the function boundary. 2018-08-10T07:22:12Z Kundry_Wag joined #lisp 2018-08-10T07:22:17Z sthalik: so much is lost across the function boundary 2018-08-10T07:23:11Z pjb joined #lisp 2018-08-10T07:23:29Z aeth: SBCL has sb-ext:*derive-function-types* which when enabled allows the non-standard behavior of assuming that the ftype of a function will never change. 2018-08-10T07:24:45Z aeth: It's good to have that option, but you still lose information in data structures like hash-tables and lists 2018-08-10T07:24:48Z sthalik: what's the purpose of statically-knowing the element type being fixnum between 0 and 10? 2018-08-10T07:25:08Z aeth: sthalik: Overflow 2018-08-10T07:25:42Z aeth: If for some reason you add (- most-positive-fixnum 20) or something, it knows it stays as a fixnum and so uses much faster arithmetic 2018-08-10T07:26:17Z sthalik: aeth, at some point we'd grow a tree shaker too 2018-08-10T07:26:27Z sthalik: I'm all for it 2018-08-10T07:26:31Z aeth: e.g. (defun foo (x) (declare ((integer 0 10) x)) (+ (- most-positive-fixnum 10) x)) 2018-08-10T07:26:32Z Kundry_Wag quit (Ping timeout: 255 seconds) 2018-08-10T07:26:43Z aeth: If you disassemble that on SBCL you get good disassembly. 2018-08-10T07:27:13Z Kundry_Wag joined #lisp 2018-08-10T07:27:16Z sthalik: what if you boilerplate-declaimed ftype and so on? 2018-08-10T07:27:32Z sthalik: is it any different than the extension? 2018-08-10T07:27:50Z sthalik: not that I'm partial for the boilerplate or anything! 2018-08-10T07:28:51Z aeth: I personally have a define-function macro, so in my game engine I would write it as (define-function foo ((x (integer 0 10))) (+ (- most-positive-fixnum 10) x)) 2018-08-10T07:29:32Z sthalik: wow, time for coffee, then pepper you with questions 2018-08-10T07:29:45Z aeth: Usually SBCL does a good job at deriving the return type and I don't think the other implementations have an ftype so I don't care about supporting return types. At some point I'd support it as an option 2018-08-10T07:30:37Z aeth: But I think that would require a third generated defun so I have been procrastinating that 2018-08-10T07:32:44Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T07:33:15Z sthalik: is a code walker with shadowed COMPILE remotely sensible? 2018-08-10T07:35:24Z sthalik: now that I think of, the argument-environment bits for a walker aren't even necessary 2018-08-10T07:36:12Z sthalik: aeth, how is GC for soft-realtime games? do you dynamic-extent the closures? 2018-08-10T07:37:17Z aeth: sthalik: Personally, I preallocate everything that I can and use dynamic-extent on the rest. This is a bit... eccentric and no one else in #lispgames has a game loop style remotely as restrictive as this. 2018-08-10T07:38:20Z aeth: This is for the engine's game loop only, though. I don't think I'd ever finish anything if I tried to use this style for the whole program. 2018-08-10T07:38:46Z sthalik: you mean for the render tick or for the update tick? 2018-08-10T07:39:08Z sthalik: do you have an asset-loading thread? 2018-08-10T07:39:34Z sthalik: from my experience, consing in the render tick is suicide 2018-08-10T07:40:09Z pjb joined #lisp 2018-08-10T07:40:18Z shrdlu68 wonders what the guys over at #lispgames are building. 2018-08-10T07:40:32Z aeth: Everything called from zombie-raptor/core/window::game-loop doesn't cons in SBCL. It's too hard to profile other implementations for this, and possibly impossible even if I could profile them. 2018-08-10T07:41:14Z aeth: (Obviously if I loaded assets while the game loop was running I wouldn't be able to keep this restriction to this extreme anymore.) 2018-08-10T07:41:55Z sthalik: that's not completely true 2018-08-10T07:42:28Z aeth: In CL it might be true, though. 2018-08-10T07:42:39Z sthalik: some FFI decompression code won't trigger CL collections 2018-08-10T07:43:15Z aeth: I currently only FFI SDL and OpenGL, and I'd like to keep it that way. 2018-08-10T07:43:31Z sthalik: then what about your image assets? 2018-08-10T07:43:55Z sthalik: ah, SDL_image 2018-08-10T07:44:07Z aeth: The way my engine is structured, it doesn't even load images! I have loaded images before in some of my unpublished tests, but I feed in the texture assets to the make-window function. 2018-08-10T07:44:45Z sthalik: it all gave me a horrible idea. 2018-08-10T07:45:12Z sthalik: why not jump-start the game project in Lisp 2018-08-10T07:45:41Z sthalik: it's not like proper type derivation is even necessary 2018-08-10T07:47:36Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T07:48:04Z sthalik: in multiple C++ projects I've hit a roadblock where there's a decent amount of top-down design that can't go away 2018-08-10T07:49:08Z light2yellow joined #lisp 2018-08-10T07:49:24Z ebrasca quit (Remote host closed the connection) 2018-08-10T07:51:29Z pjb joined #lisp 2018-08-10T07:51:44Z kajo joined #lisp 2018-08-10T07:53:06Z aeth: sthalik: What game project? 2018-08-10T07:53:20Z sthalik: even at this point there's no remote equivalent of lexical non-local return in fancy static languages 2018-08-10T07:53:33Z sthalik: I miss it more than even macros 2018-08-10T07:54:07Z airgapped joined #lisp 2018-08-10T07:54:16Z sthalik: aeth, what good are games if they're just iterative improvements? if it's ever done, it must transgress boundaries and do what was thought to be not feasible 2018-08-10T07:54:54Z airgapped quit (Client Quit) 2018-08-10T07:55:06Z sthalik: aeth, Falcon 4.0 included a persistent ground/air war simulation. post-mortem interviews explained "we didn't know any better" 2018-08-10T07:55:47Z sthalik: so why not an RPG-alike with decent Falcon 4.0 influence. remember Ultima 7? 2018-08-10T07:56:13Z sthalik: these professions not just window dressing, but something that uses resources. 2018-08-10T07:56:51Z pjb quit (Ping timeout: 240 seconds) 2018-08-10T07:56:52Z siraben quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-10T07:56:52Z sthalik: in the end, task it good enough to prevent everyone from dying out of thirst. 2018-08-10T07:57:24Z aeth: I think the limiting factor is normally art. When the game devs don't care about art (e.g. Dwarf Fortress) they can do ridiculous things 2018-08-10T07:58:01Z sthalik: aeth, bootstrap using a Qt window with unicode/24-bit color and tooltips 2018-08-10T07:58:03Z aeth: On the other hand, when something's AAA photorealistic, everything is so expensive to make *and* you don't want to increase the risk by venturing too far from the formula 2018-08-10T07:58:09Z kajo quit (Ping timeout: 260 seconds) 2018-08-10T07:58:27Z sthalik: the final plan is to do isometric, at least Arcanum-level 2018-08-10T07:59:13Z sthalik: I've done some baked sprites in Max, but then the amount of props is just too much 2018-08-10T07:59:40Z sthalik: lamps, bookshelves, beds, name it 2018-08-10T08:00:30Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-10T08:00:33Z aeth: I plan on doing space games, at least for now. Space is mostly empty. No, even more empty than that. 2018-08-10T08:00:35Z sthalik: Fallout-or-bust, an absolute prohibition on perspective projection 2018-08-10T08:00:56Z sthalik: aeth, read on Rogue System. it was also to be inspired by Falcon 4.0. 2018-08-10T08:01:50Z sthalik: there's a modern maintained F4 derivative based on stolen code. current copyright holders allow it as a gentleman's agreement. 2018-08-10T08:02:50Z sthalik: in fact it's in their own best interest. 2018-08-10T08:04:20Z aeth: We should probably take this to #lispgames before someone complains 2018-08-10T08:04:26Z sthalik: okay 2018-08-10T08:04:42Z aeth: (this is the strictest lisp channel as far as topic enforcement goes) 2018-08-10T08:07:51Z shrdlu68 quit (Ping timeout: 240 seconds) 2018-08-10T08:10:49Z pjb joined #lisp 2018-08-10T08:11:38Z Patzy quit (Ping timeout: 260 seconds) 2018-08-10T08:12:00Z robotoad quit (Quit: robotoad) 2018-08-10T08:13:11Z Patzy joined #lisp 2018-08-10T08:15:06Z zfree joined #lisp 2018-08-10T08:17:08Z pjb quit (Remote host closed the connection) 2018-08-10T08:18:37Z pjb joined #lisp 2018-08-10T08:22:34Z shrdlu68 joined #lisp 2018-08-10T08:22:50Z pjb quit (Remote host closed the connection) 2018-08-10T08:24:38Z pjb joined #lisp 2018-08-10T08:27:22Z makomo joined #lisp 2018-08-10T08:28:09Z bigfondue quit (Ping timeout: 256 seconds) 2018-08-10T08:28:51Z anewuser quit (Ping timeout: 240 seconds) 2018-08-10T08:29:21Z pjb quit (Ping timeout: 240 seconds) 2018-08-10T08:29:49Z edgar-rft quit (Remote host closed the connection) 2018-08-10T08:32:45Z kajo joined #lisp 2018-08-10T08:36:46Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-10T08:41:50Z emacsomancer quit (Ping timeout: 244 seconds) 2018-08-10T08:42:48Z kajo quit (Ping timeout: 265 seconds) 2018-08-10T08:43:13Z pjb joined #lisp 2018-08-10T08:48:32Z pjb quit (Ping timeout: 276 seconds) 2018-08-10T08:49:11Z bigfondue joined #lisp 2018-08-10T08:51:41Z kajo joined #lisp 2018-08-10T08:55:55Z Bronsa joined #lisp 2018-08-10T08:57:25Z pierpal quit (Quit: Poof) 2018-08-10T08:58:07Z pierpal joined #lisp 2018-08-10T09:02:31Z pjb joined #lisp 2018-08-10T09:06:23Z Guest25371 joined #lisp 2018-08-10T09:06:51Z figurelisp joined #lisp 2018-08-10T09:08:54Z angavrilov joined #lisp 2018-08-10T09:09:04Z sthalik quit (Quit: Lost terminal) 2018-08-10T09:09:46Z renzhi quit (Quit: WeeChat 2.1) 2018-08-10T09:11:20Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T09:11:38Z renzhi joined #lisp 2018-08-10T09:20:01Z pjb joined #lisp 2018-08-10T09:25:04Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T09:29:15Z unanimousarc joined #lisp 2018-08-10T09:30:02Z pjb joined #lisp 2018-08-10T09:30:31Z Kundry_Wag joined #lisp 2018-08-10T09:34:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T09:35:16Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T09:36:14Z p_l: lol @ strictest... 2018-08-10T09:39:44Z m00natic joined #lisp 2018-08-10T09:40:13Z shrdlu68 quit (Ping timeout: 268 seconds) 2018-08-10T09:42:19Z pjb joined #lisp 2018-08-10T09:45:42Z pjb quit (Remote host closed the connection) 2018-08-10T09:49:07Z aeth: p_l: Well, #lispcafe does a very bad job at enforcing off-topicness and is often about Lisp. 2018-08-10T09:49:20Z pjb joined #lisp 2018-08-10T09:49:24Z p_l: :D 2018-08-10T09:53:02Z pjb quit (Remote host closed the connection) 2018-08-10T09:57:46Z Kundry_Wag joined #lisp 2018-08-10T09:58:22Z pjb joined #lisp 2018-08-10T10:03:36Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T10:19:58Z pjb joined #lisp 2018-08-10T10:24:33Z anewuser joined #lisp 2018-08-10T10:27:17Z orivej joined #lisp 2018-08-10T10:27:24Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T10:30:24Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-10T10:31:22Z jameser quit (Ping timeout: 244 seconds) 2018-08-10T10:34:09Z pjb joined #lisp 2018-08-10T10:43:16Z doubledup joined #lisp 2018-08-10T10:43:27Z dddddd joined #lisp 2018-08-10T10:43:52Z razzy quit (Read error: Connection reset by peer) 2018-08-10T10:44:08Z razzy joined #lisp 2018-08-10T10:44:32Z varjag joined #lisp 2018-08-10T10:46:46Z thekolb: Xach: I have this weird situation where a dependency wants asdf3 but my quicklisp has asdf2? I did update-client but that didn’t upgrade asdf? 2018-08-10T10:47:05Z anewuser quit (Ping timeout: 240 seconds) 2018-08-10T10:47:20Z thekolb: (don’t ask me how I ended up with a dependency that wants asdf3 in the first place, good question though) 2018-08-10T10:48:43Z milanj joined #lisp 2018-08-10T10:51:45Z Shinmera: Quicklisp only ships ASDF2. 2018-08-10T10:51:59Z Shinmera: Update your implementation or download a recent ASDF 2018-08-10T10:52:22Z Shinmera: Also lots of dependencies require ASDF3 nowadays (for instance: all of my libraries) 2018-08-10T10:54:15Z thekolb: I am running the latest CCL from Nov2017?! 2018-08-10T10:54:57Z thekolb: why do I not have asdf3 (-: 2018-08-10T10:55:06Z thekolb: something wrong with my installation I suppose 2018-08-10T10:56:05Z thekolb: MichaelRaskin: any reason why the NixOs ccl wouldn’t come with asdf3? 2018-08-10T10:56:45Z random-nick joined #lisp 2018-08-10T11:00:19Z MichaelRaskin: I think the Nix package ships whatever upstream ships. 2018-08-10T11:00:42Z jackdaniel: thekolb: asdf is not part of the standard (given how it constantly changes that would mean that our standard is progressing!). You may download lastest asdf relase, compile it and put (load …) in your .cclrc before loading quicklisp 2018-08-10T11:00:53Z jackdaniel: that will give you whichever asdf you want to have 2018-08-10T11:01:15Z jackdaniel: you may compile it with (compile-file "asdf.lisp") 2018-08-10T11:01:25Z MichaelRaskin: Nixpkgs has various Lisp wrappers, these do use ASDF3 2018-08-10T11:06:24Z doubledup quit (Remote host closed the connection) 2018-08-10T11:06:38Z doubledup joined #lisp 2018-08-10T11:07:33Z rumbler31 joined #lisp 2018-08-10T11:08:04Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T11:08:53Z zfree quit (Quit: zfree) 2018-08-10T11:10:26Z Xach: thekolb: clozure cl has asdf 3! 2018-08-10T11:12:14Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-10T11:13:35Z pjb joined #lisp 2018-08-10T11:14:56Z zfree joined #lisp 2018-08-10T11:17:18Z JuanDaugherty quit (Quit: Exeunt) 2018-08-10T11:18:21Z pjb quit (Ping timeout: 240 seconds) 2018-08-10T11:19:36Z thekolb: MichaelRaskin: the ccl package on NixOS is broken (doesn’t set CCL_DEFAULT_DIRECTORY) 2018-08-10T11:21:34Z MichaelRaskin: Hm, we already set CCL_RUNTIME 2018-08-10T11:21:49Z MichaelRaskin: What should CCL_DEFAULT_DIRECTORY be in addition? 2018-08-10T11:22:09Z MichaelRaskin: Ah, it's only build-time 2018-08-10T11:22:20Z thekolb: MichaelRaskin: CCL_RUNTIME has no effect on ccl whatsoever and seems to be a variable introduced by the Nix expression for referencing the kernel 2018-08-10T11:22:40Z MichaelRaskin: Shoud CCL_DEFAULT_DIRECTORY point to the copied root? 2018-08-10T11:23:00Z thekolb: MichaelRaskin: CCL_DEFAULT_DIRECTORY is a variable used by ccl to refer t its installation destination 2018-08-10T11:23:00Z thekolb: yes 2018-08-10T11:23:08Z thekolb: see scripts/ccl 2018-08-10T11:23:34Z MichaelRaskin: Hmmm. Maybe scripts/ccl should be also wrapped or symlinked into bin/ 2018-08-10T11:23:46Z thekolb: MichaelRaskin: https://github.com/Clozure/ccl/blob/master/scripts/ccl64 2018-08-10T11:24:55Z thekolb: MichaelRaskin: Not really, you should make sure that $(which ccl) sets CCL_DEFAULT_DIRECTORY appropriately and execs the kernel 2018-08-10T11:25:04Z thekolb: the scripts are more of an example IMHO 2018-08-10T11:25:14Z Bronsa quit (Remote host closed the connection) 2018-08-10T11:25:32Z Bronsa joined #lisp 2018-08-10T11:25:58Z thekolb: I.e., set CCL_DEFAULT_DIRECTORY in https://github.com/NixOS/nixpkgs/blob/release-18.03/pkgs/development/compilers/ccl/default.nix#L79 2018-08-10T11:26:16Z thekolb: (and make sure it execs) 2018-08-10T11:26:31Z MichaelRaskin: I think (require :asdf) does work with the current CCL package 2018-08-10T11:26:36Z pjb joined #lisp 2018-08-10T11:26:46Z MichaelRaskin: Any simple test case to check that the fix works? 2018-08-10T11:27:11Z MichaelRaskin: Yes, L79 is my plan 2018-08-10T11:29:00Z thekolb: MichaelRaskin: ccl -e "(print (getf *features* :asdf3))" -e "(quit)" 2018-08-10T11:30:29Z thekolb: or alternatively ccl -e "(quit (or (getf *features* :asdf3) 1))" 2018-08-10T11:30:50Z MichaelRaskin: You meant find, not getf, right? 2018-08-10T11:31:38Z thekolb: yes right^^ 2018-08-10T11:31:48Z thekolb: also --no-init otherwise... 2018-08-10T11:31:50Z MichaelRaskin: env -i $(test-build -test ccl)/bin/ccl -e "(require :asdf)" -e "(print (find :asdf3 *features*))" -e "(quit)" 2018-08-10T11:31:54Z MichaelRaskin: Does say :asdf3 2018-08-10T11:32:00Z pjb quit (Ping timeout: 256 seconds) 2018-08-10T11:32:10Z MichaelRaskin: (pay no attention to my debug wrapper for nix-build) 2018-08-10T11:32:28Z thekolb: ccl -n -e "(quit (or (find :asdf *features*) 1))" 2018-08-10T11:32:44Z thekolb: try this one 2018-08-10T11:32:44Z MichaelRaskin: Works the same with or without CCL_DEFAULT_DIRECTORY 2018-08-10T11:33:00Z thekolb: I suspect you load asdf in your .ccl-init 2018-08-10T11:33:15Z MichaelRaskin: If I don't pre-require :asdf, it is not found — again, with or without CCL_DEFAULT_DIRECTORY 2018-08-10T11:33:54Z MichaelRaskin: I don't have .ccl-init 2018-08-10T11:34:11Z MichaelRaskin: I did paste the line that does pre-require :asdf 2018-08-10T11:34:48Z MichaelRaskin: Wait a minute 2018-08-10T11:34:56Z MichaelRaskin: Do you use stable channel for Nixpkgs? 2018-08-10T11:35:07Z thekolb: yes 2018-08-10T11:35:52Z MichaelRaskin: CCL 1.11.5 in master includes ASDF3 (even without CCL_DEFAULT_DIRECTORY variable set), maybe stable has an older one? 2018-08-10T11:36:06Z pjb joined #lisp 2018-08-10T11:38:47Z thekolb: MichaelRaskin: other things will break if CCL_DEFAULT_DIRECTORY isn’t set properly 2018-08-10T11:39:19Z MichaelRaskin: Yes, and I have the change and I want to test one of these things before pushing to master 2018-08-10T11:40:46Z MichaelRaskin: To check if I have made some silly mistake that makes the change useless 2018-08-10T11:41:14Z pjb quit (Ping timeout: 255 seconds) 2018-08-10T11:49:03Z unanimousarc: Hello, new person here, if I invoke (ql:quickload x) will that package remain installed for future sessions? 2018-08-10T11:49:11Z thekolb: MichaelRaskin: I did nix-env -f https://github.com/NixOS/nixpkgs/archive/master.tar.gz -i ccl and ccl -n -e "(ignore-errors (require 'asdf))" -e "(quit (or (find :asdf3 *features*) 1))"; echo $? 2018-08-10T11:49:14Z Xach: unanimousarc: no 2018-08-10T11:49:19Z thekolb: (no asdf) 2018-08-10T11:49:36Z Xach: unanimousarc: well, it's a bit more subtle than that 2018-08-10T11:49:38Z Shinmera: unanimousarc: It will remain /downloaded/ on disk, but not /loaded/ 2018-08-10T11:49:47Z unanimousarc: Xach: so I need to put the (ql:quickload) in my sbcl-init.lisp ? 2018-08-10T11:49:48Z Xach: unanimousarc: shinmera is right 2018-08-10T11:49:50Z MichaelRaskin: thekolb: I think CCL defaults to the image location if CCL_DEFAULT_DIRECTORY is unset; given the details of the Nix package that seems to mean the variable is irrelevant 2018-08-10T11:49:55Z phoe: unanimousarc: quicklisp fetches the dependencies from the network and then invokes ASDF to load the system into memory. 2018-08-10T11:49:59Z MichaelRaskin: Let me check with a fresh user and nix-env 2018-08-10T11:50:00Z Xach: unanimousarc: there are many options, that's one 2018-08-10T11:50:10Z phoe: the former is persistent, the latter needs to be done after each reload of the Lisp image. 2018-08-10T11:50:26Z unanimousarc: Okay cool, thanks 2018-08-10T11:50:36Z phoe: you can theoretically save the resulting Lisp image and then reload that one, but it's not commonly done during development - better to just #'ql:quickload things again. 2018-08-10T11:52:31Z DataLinkDroid quit (Ping timeout: 240 seconds) 2018-08-10T11:52:58Z Kevslinger joined #lisp 2018-08-10T11:56:17Z MichaelRaskin: thekolb: (quit :asdf3) doesn't work, a true if is needed there 2018-08-10T11:57:06Z MichaelRaskin: If you run «which ccl», do you actually get the version in the profile? If you just run CCL, what version is reported? 2018-08-10T12:00:19Z rpg joined #lisp 2018-08-10T12:03:20Z thekolb: MichaelRaskin: yes 2018-08-10T12:04:30Z pjb joined #lisp 2018-08-10T12:04:51Z unanimousarc quit (Remote host closed the connection) 2018-08-10T12:05:22Z thekolb: MichaelRaskin: Can you still not reproduce this? 2018-08-10T12:05:51Z jameser joined #lisp 2018-08-10T12:06:06Z MichaelRaskin: Well, in a fresh test account I use your installation command (well, with -p, I have a complicated non-default setup) — it gives CCL which loads ASDF3 2018-08-10T12:08:53Z thekolb: I don’t know what else to tell you... 2018-08-10T12:10:01Z thekolb: I have /nix/store/32xnrnrf399nxf616fxihx00qi6xb4mv-ccl-1.11.5 and its broken 2018-08-10T12:10:13Z MichaelRaskin: Well, I could try to pastebin a nix-expression that imports from a fixed revision and checks CCL in build-time — failure-or-success of Nix builds is less environment-dependent than installation 2018-08-10T12:10:15Z MichaelRaskin: Ah! 2018-08-10T12:11:38Z MichaelRaskin: I have the same path and it is not broken when I try to test it 2018-08-10T12:11:51Z orivej quit (Ping timeout: 240 seconds) 2018-08-10T12:12:10Z thekolb: If I run ccl -n and do (require 'asdf) I get an error 2018-08-10T12:12:21Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-10T12:12:25Z thekolb: is your pwd the ccl source tree by any chance?^^ 2018-08-10T12:12:34Z MichaelRaskin: Definitely not 2018-08-10T12:12:37Z phoe: thekolb: what kind of error? 2018-08-10T12:13:27Z MichaelRaskin: Does this also error: env -i /nix/store/32xnrnrf399nxf616fxihx00qi6xb4mv-ccl-1.11.5/bin/ccl -n -e '(require :asdf)' 2018-08-10T12:15:11Z thekolb: Ah! 2018-08-10T12:15:16Z thekolb: it doesn’t 2018-08-10T12:15:31Z MichaelRaskin: And the same without env -i ? 2018-08-10T12:16:25Z thekolb: omg I’m sorry, apparently there is a bogus CCL_DEFAULT_DIRECTORY in my environment 2018-08-10T12:16:33Z nowhere_man quit (Ping timeout: 248 seconds) 2018-08-10T12:18:16Z MichaelRaskin: Heh 2018-08-10T12:18:37Z ym joined #lisp 2018-08-10T12:18:47Z MichaelRaskin: That's why I sometimes test in an empty user 2018-08-10T12:19:16Z jameser quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-10T12:22:00Z flazh joined #lisp 2018-08-10T12:27:27Z Kundry_Wag joined #lisp 2018-08-10T12:27:37Z DataLinkDroid joined #lisp 2018-08-10T12:30:41Z kajo quit (Ping timeout: 256 seconds) 2018-08-10T12:33:47Z v0|d: nix-shell --pure might help. 2018-08-10T12:34:08Z v0|d: no need for a new user. 2018-08-10T12:44:08Z MichaelRaskin: v0|d: until I am reproducing a nix-env invokation 2018-08-10T12:45:39Z X-Scale joined #lisp 2018-08-10T12:46:51Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T12:47:05Z Kundry_Wag joined #lisp 2018-08-10T12:51:23Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-10T12:52:16Z pierpal quit (Quit: Poof) 2018-08-10T12:52:34Z pierpal joined #lisp 2018-08-10T12:54:30Z LiamH joined #lisp 2018-08-10T13:00:19Z Bike joined #lisp 2018-08-10T13:10:42Z Inline joined #lisp 2018-08-10T13:12:56Z AeroNotix: What's the cheapest / easiest way to represent infinity that allows me to compare it with numbers. 2018-08-10T13:13:20Z AeroNotix: I.e. I want to have a representation of infinite that I can do things like (< 123 +infinity+) 2018-08-10T13:13:30Z AeroNotix: (the above would return T 2018-08-10T13:13:32Z AeroNotix: ) 2018-08-10T13:14:04Z Shinmera: well, there's the IEEE float infinities, but they're not part of the standard :/ 2018-08-10T13:14:27Z Shinmera: I've been meaning to make a portability library for that 2018-08-10T13:15:14Z AeroNotix: yeah well get on that 2018-08-10T13:15:18Z AeroNotix: it's _important_ 2018-08-10T13:15:20Z AeroNotix: jk 2018-08-10T13:15:32Z Shinmera: Jeez I just published two libraries today 2018-08-10T13:15:35Z Shinmera: But fine 2018-08-10T13:15:42Z AeroNotix: Shinmera: only two? 2018-08-10T13:15:45Z Shinmera: Yes 2018-08-10T13:15:48Z AeroNotix: slacking 2018-08-10T13:16:11Z Shinmera: In Trial I've been doing https://github.com/Shirakumo/trial/blob/master/toolkit.lisp#L32-L38 so far 2018-08-10T13:16:27Z Shinmera: I'll see if I can be bothered to do a proper implementation survey later today 2018-08-10T13:16:34Z Shinmera: Right now I'm starving so I'll grab some grub 2018-08-10T13:17:12Z AeroNotix: cool 2018-08-10T13:18:37Z v0|d: AeroNotix: https://paste.debian.net/1037400/ 2018-08-10T13:20:03Z AeroNotix: v0|d: half of those are unbound for me. 2018-08-10T13:20:31Z v0|d: try (apropos 'most-) 2018-08-10T13:20:33Z makomo quit (Ping timeout: 248 seconds) 2018-08-10T13:20:42Z v0|d: maybe you'll get different ones. 2018-08-10T13:22:07Z makomo joined #lisp 2018-08-10T13:23:36Z AeroNotix: v0|d: I used the sb-ext ones for now. I'll find something more portable later. It's only for a debugging thing right now anyway 2018-08-10T13:25:42Z Kundry_Wag joined #lisp 2018-08-10T13:25:53Z orivej joined #lisp 2018-08-10T13:31:45Z mindCrime joined #lisp 2018-08-10T13:32:00Z renzhi quit (Ping timeout: 256 seconds) 2018-08-10T13:37:44Z foom2 is now known as foom 2018-08-10T13:38:07Z shlecta joined #lisp 2018-08-10T13:38:14Z orivej quit (Ping timeout: 256 seconds) 2018-08-10T13:41:54Z renzhi joined #lisp 2018-08-10T13:43:46Z v0|d quit (Remote host closed the connection) 2018-08-10T13:46:58Z unanimousarc joined #lisp 2018-08-10T13:48:54Z unanimousarc: anyone here got a lisp related blog? 2018-08-10T13:49:32Z random-nick: well, there's a blog aggregator at planet.lisp.org 2018-08-10T13:49:38Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-10T13:50:10Z unanimousarc: I'll take a look, but I would prefer personal recommendations :) 2018-08-10T13:52:53Z sjl_ joined #lisp 2018-08-10T13:53:24Z Fare joined #lisp 2018-08-10T13:54:36Z Shinmera: unanimousarc: It's not a recommendation, but here's mine. http://blog.tymoon.eu/tagged/common%20lisp 2018-08-10T13:55:35Z sjl quit (Ping timeout: 240 seconds) 2018-08-10T13:55:38Z unanimousarc: Shinmera: thanks ;) 2018-08-10T13:58:51Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T14:00:06Z Kundry_Wag joined #lisp 2018-08-10T14:04:13Z orivej joined #lisp 2018-08-10T14:05:05Z Kundry_Wag quit (Ping timeout: 276 seconds) 2018-08-10T14:05:40Z kajo joined #lisp 2018-08-10T14:06:36Z rippa joined #lisp 2018-08-10T14:08:22Z FreeBirdLjj joined #lisp 2018-08-10T14:09:08Z Kundry_Wag joined #lisp 2018-08-10T14:15:26Z LiamH: AeroNotix: If you don't mind loading a foreign library, GSLL has it: (< 1.0 gsl:+positive-infinity+) => T 2018-08-10T14:18:05Z sjl_: unanimousarc: I've written some CL-related entries on mine http://stevelosh.com/blog/ 2018-08-10T14:18:28Z unanimousarc: sjl_: thanks i'll take a look 2018-08-10T14:19:56Z unanimousarc: sjl_: definitely checking out that chip8 series 2018-08-10T14:27:45Z moei joined #lisp 2018-08-10T14:35:36Z renzhi quit (Ping timeout: 268 seconds) 2018-08-10T14:36:15Z Jesin quit (Remote host closed the connection) 2018-08-10T14:38:40Z orivej quit (Remote host closed the connection) 2018-08-10T14:38:42Z Xach must really fix his planet lisp twitter gateway again 2018-08-10T14:39:50Z orivej joined #lisp 2018-08-10T14:40:21Z makomo quit (Ping timeout: 240 seconds) 2018-08-10T14:40:43Z Jesin joined #lisp 2018-08-10T14:40:58Z JuanDaugherty joined #lisp 2018-08-10T14:43:38Z makomo joined #lisp 2018-08-10T14:44:58Z Shinmera: Speaking of twitter, there were some API deprecations regarding direct messages that I haven't had time to fix in Chirp. 2018-08-10T14:45:14Z Shinmera: Don't know when I can be bothered to fix them either 2018-08-10T14:45:52Z gravicappa joined #lisp 2018-08-10T14:45:53Z ckonstanski quit (Remote host closed the connection) 2018-08-10T14:47:25Z ckonstanski joined #lisp 2018-08-10T14:50:47Z nika_ joined #lisp 2018-08-10T14:54:59Z Josh_2 joined #lisp 2018-08-10T14:59:46Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-10T15:00:28Z drmeister: With asdf - is there a way to get a tree of dependencies from a system? I have a groveler that I use for finding all files required by a system in the order that they need to be loaded. 2018-08-10T15:00:44Z Shinmera: Ha ha, oh boy the CCL source for infinity-p has a comment: ; not sure this is right 2018-08-10T15:01:00Z drmeister: The groveler has a function that says it returns all of the systems required by given list of systems. I think this may be what I need. 2018-08-10T15:01:12Z drmeister: But I want to build the tree of dependencies. 2018-08-10T15:01:15Z renzhi joined #lisp 2018-08-10T15:01:30Z drmeister: I want to parallelize the building of the tree - so I need to know what it looks like first. 2018-08-10T15:01:50Z Shinmera: drmeister: Sure, holy on 2018-08-10T15:02:03Z Shinmera: *hold 2018-08-10T15:02:18Z drmeister: If it's a linear sequence - well - then I need to put some work into splitting things out a bit to make it a tree. 2018-08-10T15:02:48Z drmeister: Shinmera: Thank you - I'll keep spitting out what I'm looking for - maybe someone will have some thoughts on it. 2018-08-10T15:03:10Z pjb: AeroNotix: if you want to compare with numbers, you have a big problem: numbers are not ordered! 2018-08-10T15:03:22Z drmeister: Then I'll need to time how long each system needs to build it - then I want to organize the build so that it takes as little time as possible using multiple processes. 2018-08-10T15:03:30Z pjb: AeroNotix: in lisp, numbers include complex numbers, and complex numbers are not ordered. 2018-08-10T15:03:54Z Shinmera: drmeister: https://github.com/Shirakumo/radiance/blob/22cdcde8be60f5e49e90a59f7375ceea130358c7/migrate.lisp#L131-L150 2018-08-10T15:04:13Z drmeister: Basically - I want to parallelize the building of a large collection of asdf systems so they build as quickly as possible. Given that POIU is MIA for current versions of ASDF. 2018-08-10T15:04:22Z drmeister: AFAIK 2018-08-10T15:04:30Z pjb: AeroNotix: then if you want to restrict yourself to real, then in lisp we have most-positive-long-float that is bigger than all floats, but not to all integers. 2018-08-10T15:05:03Z AeroNotix: I just need something bigger than all integers 2018-08-10T15:05:38Z Fare quit (Ping timeout: 256 seconds) 2018-08-10T15:06:36Z pjb: AeroNotix: for integers, there's no such value. 2018-08-10T15:06:43Z drmeister: Shinmera: Thank you - I'll give it a whirl. 2018-08-10T15:06:58Z Fare joined #lisp 2018-08-10T15:07:01Z pjb: AeroNotix: at a given time, there's a maximum representable integer, but since it may depend on the available memory, it may grow later. 2018-08-10T15:07:11Z papachan joined #lisp 2018-08-10T15:07:19Z pjb: AeroNotix: so you have to use a symbol, and implement your own comparisons. 2018-08-10T15:07:45Z AeroNotix: Okay 2018-08-10T15:08:10Z pjb: (defun inferior (a b) (or (eql :-infinity a) (eql :+infinity b) …)) 2018-08-10T15:08:23Z vlatkoB quit (Remote host closed the connection) 2018-08-10T15:08:32Z zfree quit (Quit: zfree) 2018-08-10T15:09:41Z vlatkoB joined #lisp 2018-08-10T15:11:18Z figurelisp quit (Quit: Lost terminal) 2018-08-10T15:12:08Z pjb: AeroNotix: you may also shadow < <= etc. calling cl:< cl:<= etc when you only have numbers. 2018-08-10T15:13:02Z pjb: See for example: https://github.com/informatimago/lisp/blob/master/common-lisp/invoice/invoice.lisp#L366 2018-08-10T15:13:40Z pjb: (not real methods, just functions, since there are 0-n arguments. 2018-08-10T15:13:41Z pjb: ) 2018-08-10T15:14:01Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-10T15:15:17Z schweers quit (Ping timeout: 276 seconds) 2018-08-10T15:24:09Z drmeister: Shinmera: Is the information about system dependencies available after I load-asd - or do I need to load-system everything? 2018-08-10T15:24:16Z drmeister: I'm about to find out... 2018-08-10T15:25:14Z chipolux joined #lisp 2018-08-10T15:25:30Z jackdaniel: drmeister: you need to load all asd file (i.e by find-system), but there is no need to load systems into the image 2018-08-10T15:26:14Z jackdaniel: it is quite problematic as it is anyway, because asd files are programs, but not as bad as being forced to load all libraries to learn their dependencies 2018-08-10T15:26:31Z drmeister: Does find-system of the top asd load all dependent asd files? 2018-08-10T15:26:44Z Shinmera: jackdaniel: Does ECL have something similar to sb-int:with-float-traps-masked that allows you to mask which floating point traps signal conditions? 2018-08-10T15:26:47Z robotoad joined #lisp 2018-08-10T15:26:51Z jackdaniel: yes 2018-08-10T15:26:54Z drmeister: I'm trying to avoid doing more work than I need to do. 2018-08-10T15:26:57Z jackdaniel: I mean: yes to floats 2018-08-10T15:27:03Z jackdaniel: regarding asdf, I don't know 2018-08-10T15:27:12Z Shinmera: drmeister: No 2018-08-10T15:27:41Z Shinmera: drmeister: It only loads a system file if it has to due to :defsystem-depends-on or due to find-system 2018-08-10T15:27:46Z drmeister: And I have a relationship with asdf that is characterized by timidity. 2018-08-10T15:27:47Z jackdaniel: bugs everywhere http://i.imgur.com/sEgU8qk.png :) 2018-08-10T15:28:14Z drmeister: jackdaniel: And your scrollbars don't work. 2018-08-10T15:28:17Z Shinmera: jackdaniel: What is the functionality called in ECL? apropos is failing me. 2018-08-10T15:28:38Z drmeister has never seen a scrollbar that he hasn't tried to scroll with. 2018-08-10T15:28:57Z jackdaniel: drmeister: you mean that you can't scroll a png file? :-) 2018-08-10T15:30:22Z jackdaniel: Shinmera: it is obscure and not part of official API, careful 2018-08-10T15:30:24Z jackdaniel: si::trap-fpe 2018-08-10T15:30:29Z Shinmera: Thanks 2018-08-10T15:30:49Z Shinmera: I'm building another implementation wrapper layer, so I'll take the hit :) 2018-08-10T15:31:19Z edgar-rft joined #lisp 2018-08-10T15:32:31Z shka_ joined #lisp 2018-08-10T15:35:02Z quipa joined #lisp 2018-08-10T15:40:20Z rpg joined #lisp 2018-08-10T15:41:27Z JuanDaugherty quit (Quit: Exeunt) 2018-08-10T15:42:57Z housel joined #lisp 2018-08-10T15:44:44Z drmeister: How does one redirect the ~/.cache directory so that quicklisp/asdf drop the generated code somewhere else? 2018-08-10T15:46:52Z jackdaniel: drmeister: if you set XDG_CACHE_HOME (env var) it should help 2018-08-10T15:47:15Z jackdaniel: also (defvar *user-cache* nil 2018-08-10T15:47:16Z jackdaniel: "A specification as per RESOLVE-LOCATION of where the user keeps his FASL cache")(defvar *user-cache* nil 2018-08-10T15:47:19Z jackdaniel: "A specification as per RESOLVE-LOCATION of where the user keeps his FASL cache") 2018-08-10T15:47:24Z jackdaniel: ops, sorry 2018-08-10T15:48:28Z drmeister: asdf/interface:*user-cache* - I see that. 2018-08-10T15:49:02Z quipa quit (Quit: Leaving) 2018-08-10T15:49:33Z drmeister: And XDG_CACHE_HOME in asdf - thank you! 2018-08-10T15:54:54Z wigust quit (Ping timeout: 265 seconds) 2018-08-10T15:55:57Z Copenhagen_Bram joined #lisp 2018-08-10T15:58:46Z shlecta quit (Read error: Connection reset by peer) 2018-08-10T16:05:41Z fourier joined #lisp 2018-08-10T16:08:08Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T16:08:43Z Kundry_Wag joined #lisp 2018-08-10T16:13:04Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-10T16:14:14Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-10T16:16:38Z skidd0 joined #lisp 2018-08-10T16:17:38Z Kundry_Wag joined #lisp 2018-08-10T16:19:51Z fourier quit (Ping timeout: 240 seconds) 2018-08-10T16:20:54Z Shinmera: AeroNotix: https://shinmera.github.io/float-features 2018-08-10T16:21:09Z FreeBirdLjj joined #lisp 2018-08-10T16:23:50Z phoe: Shinmera: I read "infinite negativity" the first time and went "wait what" 2018-08-10T16:24:26Z Shinmera: infinite negativity is my middle name 2018-08-10T16:24:34Z skidd0: you've got a long name 2018-08-10T16:27:16Z jself quit (Quit: ZNC - 1.6.0 - http://znc.in) 2018-08-10T16:28:14Z Fare quit (Ping timeout: 256 seconds) 2018-08-10T16:28:16Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-10T16:32:42Z captgector quit (Read error: Connection reset by peer) 2018-08-10T16:33:08Z dwrngr` joined #lisp 2018-08-10T16:33:16Z captgector joined #lisp 2018-08-10T16:34:32Z Copenhagen_Bram joined #lisp 2018-08-10T16:36:08Z dwrngr quit (Disconnected by services) 2018-08-10T16:36:46Z dwrngr` is now known as dwrngr 2018-08-10T16:36:48Z jself joined #lisp 2018-08-10T16:37:13Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-10T16:39:16Z Copenhagen_Bram joined #lisp 2018-08-10T16:40:26Z mathrick quit (Ping timeout: 276 seconds) 2018-08-10T16:51:52Z theseb joined #lisp 2018-08-10T16:52:10Z light2yellow quit (Quit: light2yellow) 2018-08-10T16:52:31Z nika_ quit (Quit: Leaving...) 2018-08-10T16:53:26Z mathrick joined #lisp 2018-08-10T16:54:18Z theseb: You can really define the entire lang in terms of about 8 primitives? Why does that seem impossible to me? Think of how complex common lisp is 2018-08-10T16:55:39Z m00natic quit (Remote host closed the connection) 2018-08-10T16:56:04Z unanimousarc quit (Remote host closed the connection) 2018-08-10T16:57:33Z Jesin quit (Remote host closed the connection) 2018-08-10T16:58:14Z Xach: theseb: it's easy if one of the primitives is make-load-form-saving-slots. 2018-08-10T16:58:16Z Shinmera: The semantics, yes. But an implementation still needs to do a lot more -- like handling OPEN, I/O, etc. 2018-08-10T16:58:31Z Xach: sorry, joking around. 2018-08-10T16:59:02Z pjb: theseb: you only need one primitive. 2018-08-10T16:59:03Z theseb: Shinmera: aha! yes..i knew something was missing!!! All the //side effects// were not mentioned like I/O! 2018-08-10T16:59:10Z theseb: Paul Graham *lied* to me 2018-08-10T16:59:11Z theseb: dammit 2018-08-10T16:59:27Z theseb: srsly...someone should mention that 2018-08-10T16:59:34Z pjb: theseb: Von Neuman architecture only needs 1 microinstruction (conditional-move). 2018-08-10T16:59:49Z Fare joined #lisp 2018-08-10T16:59:55Z MichaelRaskin: Well, if you target Plan9 you don't need many I/O primitives, and then they cover all the OS interaction… 2018-08-10T17:00:03Z pjb: theseb: with lambda calculus, you can implement state and I/O by simulating the whole universe! 2018-08-10T17:00:20Z pjb: theseb: this is actually how our universe comes to be. 2018-08-10T17:02:38Z pjb: theseb: there's a "desire", or "universal love" or "god" that makes kinds of quantum fluctuations in the mathematical world generate random mathemathical objects. Functions and lambda calculus are actually very simple mathematical objects, and thus appear naturally, and "develop" (are "created") by themselves, until find this god lambda calculus program that decides to simulate the whole universe and to reproduce little simulatio 2018-08-10T17:03:55Z kajo joined #lisp 2018-08-10T17:03:57Z pierpal quit (Quit: Poof) 2018-08-10T17:04:15Z pierpal joined #lisp 2018-08-10T17:05:02Z Jesin joined #lisp 2018-08-10T17:07:57Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-10T17:08:28Z theseb: pjb: that was deep 2018-08-10T17:08:37Z theseb: thank i guess 2018-08-10T17:09:35Z pjb: theseb: also, it's not very hard to implement a hardware simulation to do I/O in pure lambda calculus. 2018-08-10T17:11:50Z theseb: pjb: imho..i think it best to just punt and define an abstract "input" and "output" primitive 2018-08-10T17:11:52Z housel: tedious, but not hard 2018-08-10T17:12:27Z theseb: pjb: both just accept and emit bit strings 2018-08-10T17:12:40Z pjb: theseb: of course, if you want to hook to other universes, such as ours, you can always branch out to primitives implemented in another system, eg. in electrons and silicium atoms. 2018-08-10T17:12:49Z nsrahmad joined #lisp 2018-08-10T17:13:28Z pjb: (but notice the funny nature of fermions and bosons that are both just probability wave functions, ie. not any more real than lambda calculus functions). 2018-08-10T17:13:38Z theseb: pjb: what the #$@#$? why are you making this so complicated? i'm suggesting a simple input and output primitive while you want to hook up to other universes!?!!? am i missing something? 2018-08-10T17:13:57Z pjb: theseb: our universe is one of those other universes. 2018-08-10T17:14:09Z pjb: maths is not in our universe. 2018-08-10T17:14:18Z emaczen quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-10T17:14:26Z pjb: I just explained that our unvierse was in maths. 2018-08-10T17:14:31Z Shinmera: Please >>##philosophy 2018-08-10T17:15:00Z pjb: Well, this is this infamous question about primitives. Forget them. 2018-08-10T17:15:16Z pjb: You can do metacircular definitions. 2018-08-10T17:15:38Z pjb: See: http://home.pipeline.com/~hbaker1/MetaCircular.html 2018-08-10T17:16:25Z pjb: Primives, like axioms, are your own totally and entirely subjective and arbitrary choice. 2018-08-10T17:18:42Z theseb: pjb: i like that link....avoid english and use lispy mini-langs instead to bootstrap 2018-08-10T17:19:27Z theseb: pjb: i think that is the "Lisp Way (TM)"...to define layers of langs 2018-08-10T17:19:36Z pjb: or realize that lisp was created 50 years ago, and that we don't need to bootstrap anymore: just write CL in CL. 2018-08-10T17:20:09Z pjb: You might need to bootstrap again if you go to Mars, and a meteor destroys all computing equipment. 2018-08-10T17:20:34Z pjb: Then you will have to mine metals, build a new computer, and program it, bootstrapping, hopefully, a new lisp system. 2018-08-10T17:20:58Z theseb: pjb: actually...imagine we worked in a sector where security was paramount.....i wonder if defining layers of langs somehow avoids potential security holes 2018-08-10T17:20:59Z pjb: (Assuming transport with Earth is not possible anymore). 2018-08-10T17:21:15Z pjb: theseb: yes, there's also this case. 2018-08-10T17:21:39Z theseb: pjb: my point is...going hardcore on the math and axioms has its uses 2018-08-10T17:22:42Z nanoz joined #lisp 2018-08-10T17:23:19Z kenster joined #lisp 2018-08-10T17:27:51Z varjag joined #lisp 2018-08-10T17:28:01Z theseb left #lisp 2018-08-10T17:29:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-10T17:32:34Z Fare joined #lisp 2018-08-10T17:39:42Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-10T17:40:19Z pierpal quit (Quit: Poof) 2018-08-10T17:41:13Z parjanya joined #lisp 2018-08-10T17:41:15Z pierpal joined #lisp 2018-08-10T17:41:59Z pierpal quit (Client Quit) 2018-08-10T17:42:50Z pierpal joined #lisp 2018-08-10T17:44:49Z nsrahmad quit (Remote host closed the connection) 2018-08-10T17:45:57Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-10T17:55:28Z nsrahmad joined #lisp 2018-08-10T17:57:17Z nowhere_man joined #lisp 2018-08-10T18:05:38Z nsrahmad quit (Quit: Leaving) 2018-08-10T18:13:03Z Copenhagen_Bram joined #lisp 2018-08-10T18:17:31Z danielxvu joined #lisp 2018-08-10T18:26:14Z shlecta joined #lisp 2018-08-10T18:27:45Z drmeister: Within clasp I am going (require :asdf) --> loads clasps shiped 3.3.1.2 version of ASDF 2018-08-10T18:28:07Z drmeister: Then I'm going (load "quicklisp:setup.lisp") (I set up a hostname for it) 2018-08-10T18:28:11Z drmeister: I get this warning... 2018-08-10T18:28:13Z drmeister: https://www.irccloud.com/pastebin/2oamoUiU/ 2018-08-10T18:29:08Z drmeister: Why is it telling me I have an older one registered at sys:modules;asdf;asdf.asd ? 2018-08-10T18:30:00Z danielxvu quit (Remote host closed the connection) 2018-08-10T18:30:08Z drmeister: There is an ASD file at that pathname. 2018-08-10T18:30:40Z danielxvu joined #lisp 2018-08-10T18:30:43Z drmeister: My *features* is 2018-08-10T18:30:44Z drmeister: https://www.irccloud.com/pastebin/9XUoInqY/ 2018-08-10T18:30:54Z drmeister: :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF 2018-08-10T18:31:13Z drmeister: Just pick one damnit - amiright? 2018-08-10T18:31:49Z kajo quit (Read error: Connection reset by peer) 2018-08-10T18:33:07Z Copenhagen_Bram quit (Quit: So long, and thanks for all the fish! 2.2 Weechat is best Weechat) 2018-08-10T18:34:21Z tralala joined #lisp 2018-08-10T18:36:19Z pjb: drmeister: not really. 2018-08-10T18:36:45Z pjb: drmeister: it helps testing for a version, or higher, since in general releases are backward compatible. 2018-08-10T18:36:55Z drmeister: Probably not - I don't know what all those features are for - they may not be related to the warning. 2018-08-10T18:37:00Z drmeister: Ok. 2018-08-10T18:37:17Z pjb: drmeister: ie. ASDF 4.0 will probably be compatible with asdf 3.3, asdf 3 and asdf 2, so all those features will have to be present. 2018-08-10T18:37:33Z pjb: It would be different in a *system-version-map* ;-) 2018-08-10T18:38:13Z drmeister: Do you know why the warning is being generated? I cloned quicklisp-client.git from github and I'm using that. When I load the quicklisp:setup.lisp I get that warning even after I've loaded an asdf. 2018-08-10T18:44:10Z quipa joined #lisp 2018-08-10T18:44:44Z kajo joined #lisp 2018-08-10T18:46:23Z Copenhagen_Bram joined #lisp 2018-08-10T18:47:23Z sauvin quit (Read error: Connection reset by peer) 2018-08-10T18:49:37Z X-Scale quit (Ping timeout: 248 seconds) 2018-08-10T18:50:24Z jackdaniel: drmeister: sys:modules;asdf;asdf is part of clasp core modules (build with it) 2018-08-10T18:50:46Z drmeister: Yes 2018-08-10T18:51:01Z jackdaniel: it is a logical pathname to something like /usr/lib/clasp-x.x.x/modules/asdf2.fasl 2018-08-10T18:51:56Z jackdaniel: and warning is being generated from ASDF itself, it doesn't like its previous incarnations. it is not about asdf2 being loaded, but mere about being present in the path 2018-08-10T18:52:14Z jackdaniel: s/path/location where asdf looks for asd files/ 2018-08-10T18:58:53Z nanozz joined #lisp 2018-08-10T19:00:27Z orivej quit (Ping timeout: 240 seconds) 2018-08-10T19:01:59Z nanoz quit (Ping timeout: 260 seconds) 2018-08-10T19:20:38Z Josh_2 quit (Ping timeout: 256 seconds) 2018-08-10T19:22:13Z Josh_2 joined #lisp 2018-08-10T19:25:36Z nanozz quit (Ping timeout: 244 seconds) 2018-08-10T19:26:29Z gravicappa quit (Ping timeout: 260 seconds) 2018-08-10T19:27:53Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-10T19:28:20Z jmercouris joined #lisp 2018-08-10T19:29:23Z razzy quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-08-10T19:32:01Z skidd0 quit (Quit: WeeChat 2.2) 2018-08-10T19:34:44Z Copenhagen_Bram joined #lisp 2018-08-10T19:37:43Z jasmith quit (Ping timeout: 265 seconds) 2018-08-10T19:47:22Z vlatkoB quit (Remote host closed the connection) 2018-08-10T19:54:16Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T19:54:47Z stylewarning quit (Ping timeout: 245 seconds) 2018-08-10T19:56:25Z stylewarning joined #lisp 2018-08-10T19:57:15Z X-Scale joined #lisp 2018-08-10T19:57:28Z kajo quit (Ping timeout: 256 seconds) 2018-08-10T20:05:30Z pierpal quit (Quit: Poof) 2018-08-10T20:05:50Z pierpal joined #lisp 2018-08-10T20:06:42Z asarch joined #lisp 2018-08-10T20:19:23Z pierpal quit (Quit: Poof) 2018-08-10T20:19:38Z pierpal joined #lisp 2018-08-10T20:21:22Z pierpa joined #lisp 2018-08-10T20:23:10Z Kundry_Wag joined #lisp 2018-08-10T20:26:27Z orivej joined #lisp 2018-08-10T20:32:06Z Bike quit (Ping timeout: 252 seconds) 2018-08-10T20:33:13Z Copenhagen_Bram quit (Ping timeout: 272 seconds) 2018-08-10T20:33:49Z tralala quit (Remote host closed the connection) 2018-08-10T20:33:58Z tralala joined #lisp 2018-08-10T20:34:13Z tralala quit (Client Quit) 2018-08-10T20:35:06Z light2yellow joined #lisp 2018-08-10T20:35:13Z shka_ quit (Ping timeout: 248 seconds) 2018-08-10T20:36:32Z Copenhagen_Bram joined #lisp 2018-08-10T20:40:16Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T20:42:49Z Kundry_Wag joined #lisp 2018-08-10T20:43:18Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-10T20:45:03Z Kundry_Wag joined #lisp 2018-08-10T20:47:50Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-10T20:49:14Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T20:49:34Z Kundry_Wag joined #lisp 2018-08-10T20:49:53Z Copenhagen_Bram joined #lisp 2018-08-10T20:57:36Z mason joined #lisp 2018-08-10T20:58:04Z acolarh quit (Ping timeout: 260 seconds) 2018-08-10T21:04:14Z shlecta quit (Ping timeout: 272 seconds) 2018-08-10T21:13:27Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-10T21:13:29Z rumbler31 joined #lisp 2018-08-10T21:17:16Z rumbler31 quit (Remote host closed the connection) 2018-08-10T21:21:34Z drmeister: asdf uses timestamps to figure out what it needs to build 2018-08-10T21:21:54Z Bike joined #lisp 2018-08-10T21:22:36Z dyelar quit (Quit: Leaving.) 2018-08-10T21:22:38Z ckonstanski quit (Remote host closed the connection) 2018-08-10T21:22:54Z drmeister: is that correct? 2018-08-10T21:23:12Z drmeister: I'm dropping source code and a cache directory full of compiled files into a docker image and then running code. 2018-08-10T21:23:38Z drmeister: asdf is rebuilding everything even though the timestamps are preserved - so I'm a bit puzzled. 2018-08-10T21:23:59Z Shinmera: Yes 2018-08-10T21:24:28Z Shinmera: At least as far as I know it uses mtime 2018-08-10T21:24:35Z kajo joined #lisp 2018-08-10T21:25:21Z papachan quit (Quit: WeeChat 2.2) 2018-08-10T21:26:42Z angavrilov quit (Remote host closed the connection) 2018-08-10T21:28:35Z Copenhagen_Bram joined #lisp 2018-08-10T21:30:55Z bbokser quit (Quit: Page closed) 2018-08-10T21:41:16Z LiamH quit (Quit: Leaving.) 2018-08-10T21:42:45Z sjl joined #lisp 2018-08-10T21:47:16Z drmeister: Is there a function like (asdf:why-the f*ck-are-you-rebuilding-everything system)? 2018-08-10T21:49:09Z Shinmera: You can manually build an ASDF action plan (I showed you how once before) -- the plan should only include things that need to be done, excluding already performed operations 2018-08-10T21:49:24Z Shinmera: Then you can try tracing select functions in ASDF to see where it's getting things from 2018-08-10T21:49:52Z drmeister: I'll try that. 2018-08-10T21:50:09Z drmeister: Do you have a link where you told me how to build an ASDF action plan? 2018-08-10T21:50:18Z Shinmera: No 2018-08-10T21:50:36Z amz31 joined #lisp 2018-08-10T21:50:39Z amz31: hey 2018-08-10T21:52:21Z Josh_2 quit (Ping timeout: 240 seconds) 2018-08-10T21:57:36Z sjl_ quit (Ping timeout: 256 seconds) 2018-08-10T22:04:53Z AeroNotix: is there an asdf function that can find the modules that the `:components` key describes. Alternatively, a function that gives me the asdf definition? 2018-08-10T22:05:47Z Shinmera: asdf:find-component, if I remember correctly 2018-08-10T22:06:05Z Shinmera: base being the system or other super-component. 2018-08-10T22:06:29Z Shinmera: Or what exactly do you want? re-reading the message I'm not so sure. 2018-08-10T22:07:23Z Shinmera: If you want the list of components in the system definition, asdf:component-children 2018-08-10T22:10:14Z acolarh joined #lisp 2018-08-10T22:10:58Z jmercouris quit (Remote host closed the connection) 2018-08-10T22:11:13Z danielxvu quit (Remote host closed the connection) 2018-08-10T22:14:47Z no-defun-allowed: Good morning everyone! 2018-08-10T22:15:35Z varjag quit (Ping timeout: 240 seconds) 2018-08-10T22:19:08Z Fare quit (Ping timeout: 256 seconds) 2018-08-10T22:20:00Z pierpa: hey antipodean! 2018-08-10T22:22:05Z Fare joined #lisp 2018-08-10T22:25:07Z no-defun-allowed: G'day mate 2018-08-10T22:25:33Z random-nick quit (Read error: Connection reset by peer) 2018-08-10T22:26:44Z wheelsucker joined #lisp 2018-08-10T22:28:46Z wheelsucker quit (Remote host closed the connection) 2018-08-10T22:29:26Z ebrasca joined #lisp 2018-08-10T22:37:07Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-10T22:37:23Z wheelsucker joined #lisp 2018-08-10T22:37:58Z Jesin quit (Remote host closed the connection) 2018-08-10T22:39:47Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-10T22:42:58Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-10T22:45:05Z nowhereman_ joined #lisp 2018-08-10T22:45:37Z dim joined #lisp 2018-08-10T22:45:46Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-10T22:48:16Z Jesin joined #lisp 2018-08-10T22:49:03Z dim quit (Quit: ZNC - http://znc.sourceforge.net) 2018-08-10T22:49:23Z parjanya quit (Read error: Connection reset by peer) 2018-08-10T22:49:34Z dim joined #lisp 2018-08-10T22:49:46Z dim: hi! 2018-08-10T22:49:50Z parjanya joined #lisp 2018-08-10T22:49:55Z dim: I think I fixed my IRC settings and am able to chat here again ;-) 2018-08-10T22:50:44Z robotoad quit (Quit: robotoad) 2018-08-10T22:52:22Z jgkamat: :D 2018-08-10T22:54:52Z Kundry_Wag quit (Remote host closed the connection) 2018-08-10T23:02:13Z dim: jgkamat: thanks for confirming it works (that's how I read it) 2018-08-10T23:02:44Z jgkamat reads dim loud and clear 2018-08-10T23:04:23Z asarch quit (Quit: Leaving) 2018-08-10T23:04:43Z lavaflow quit (Read error: No route to host) 2018-08-10T23:04:59Z aeth: dim: Idk, I think the most graceful way for an IRC client to fail is to pretend like it's working, complete with fake conversations. The conversations are even predictable: talk about how the IRC client is now working. 2018-08-10T23:05:57Z makomo quit (Ping timeout: 240 seconds) 2018-08-10T23:06:24Z makomo joined #lisp 2018-08-10T23:06:39Z jgkamat wonders if he is a robot 2018-08-10T23:12:52Z no-defun-allowed: jgkamat: [ ] I am not a robot 2018-08-10T23:13:54Z v0|d joined #lisp 2018-08-10T23:16:12Z robotoad joined #lisp 2018-08-10T23:18:39Z aeth: Well you don't have JS enabled so you can't check it 2018-08-10T23:18:52Z aeth: therefore, you are a robot 2018-08-10T23:20:53Z dwrngr quit (Disconnected by services) 2018-08-10T23:21:01Z jgkamat: ^ 2018-08-10T23:21:27Z dwrngr` joined #lisp 2018-08-10T23:22:46Z earl-ducaine joined #lisp 2018-08-10T23:26:04Z slyrus1 joined #lisp 2018-08-10T23:28:50Z makomo quit (Ping timeout: 256 seconds) 2018-08-10T23:30:07Z Kundry_Wag joined #lisp 2018-08-10T23:34:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-10T23:41:21Z acolarh quit (Ping timeout: 248 seconds) 2018-08-10T23:44:03Z acolarh joined #lisp 2018-08-10T23:51:49Z no-defun-allowed: ;-; 2018-08-10T23:56:02Z jgkamat: I cannot evaluate js, therefore I am turing complete? xD 2018-08-11T00:00:35Z no-defun-allowed: a turing complete machine might run JS 2018-08-11T00:00:36Z no-defun-allowed: but a smart machine would refuse to run it 2018-08-11T00:03:33Z dwrngr`: I think of it like the street slang of programming. It has a consistency to it and you have to keep up somewhat in order to fit in. But it gets in the way in a professional setting :P 2018-08-11T00:06:19Z dwrngr`: I guess Typescript is supposed to make it more tolerable there, but personally the limited times I have to use it I've found parenscript to make life a lot simpler 2018-08-11T00:06:59Z dwrngr`: different means to different ends I suppose 2018-08-11T00:09:35Z wheelsucker quit (Ping timeout: 240 seconds) 2018-08-11T00:32:45Z Kundry_Wag joined #lisp 2018-08-11T00:44:12Z aeth: note that even typescript can't give JS a sane type system 2018-08-11T00:44:37Z aeth: (And if you wanted to do a TypeScript-like-thing in CL all you'd need is a handful of macros) 2018-08-11T00:47:19Z siraben joined #lisp 2018-08-11T00:48:47Z chipolux quit (Quit: chipolux) 2018-08-11T01:06:00Z dwrngr` quit (Read error: Connection reset by peer) 2018-08-11T01:06:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-11T01:14:36Z kajo quit (Ping timeout: 265 seconds) 2018-08-11T01:15:58Z kajo joined #lisp 2018-08-11T01:19:46Z stardiviner joined #lisp 2018-08-11T01:34:32Z Kundry_Wag joined #lisp 2018-08-11T01:37:56Z fowlduck joined #lisp 2018-08-11T01:39:10Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-11T01:39:46Z allcr joined #lisp 2018-08-11T01:40:24Z jinkies joined #lisp 2018-08-11T01:47:16Z quipa_ joined #lisp 2018-08-11T01:48:03Z robotoad quit (Quit: robotoad) 2018-08-11T01:48:47Z chipolux joined #lisp 2018-08-11T01:49:21Z quipa quit (Ping timeout: 240 seconds) 2018-08-11T01:52:30Z buffergn0me joined #lisp 2018-08-11T01:53:27Z chipolux quit (Ping timeout: 240 seconds) 2018-08-11T01:54:47Z smokeink joined #lisp 2018-08-11T01:56:09Z sthalik joined #lisp 2018-08-11T02:00:55Z milanj quit (Quit: This computer has gone to sleep) 2018-08-11T02:01:22Z Kundry_Wag joined #lisp 2018-08-11T02:04:55Z sauvin joined #lisp 2018-08-11T02:09:37Z robotoad joined #lisp 2018-08-11T02:17:12Z allcr quit (Quit: Leaving) 2018-08-11T02:25:58Z quipa_ quit (Ping timeout: 272 seconds) 2018-08-11T02:27:29Z pierpa quit (Quit: Page closed) 2018-08-11T02:27:54Z kenster: doing some live lisp programming here: https://youtu.be/l4Uj13QLtpU or https://www.twitch.tv/kingherring 2018-08-11T02:31:39Z kerrhau joined #lisp 2018-08-11T02:32:54Z Kundry_Wag quit (Remote host closed the connection) 2018-08-11T02:33:28Z Kundry_Wag joined #lisp 2018-08-11T02:37:35Z Bike quit (Quit: Lost terminal) 2018-08-11T02:38:08Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-11T02:39:00Z pierpal quit (Quit: Poof) 2018-08-11T02:39:18Z pierpal joined #lisp 2018-08-11T02:44:15Z \u is now known as meowray 2018-08-11T02:45:09Z Kundry_Wag joined #lisp 2018-08-11T02:50:02Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-11T02:56:15Z Oladon joined #lisp 2018-08-11T03:05:32Z mason: kenster: What editor is that? 2018-08-11T03:05:46Z siraben: Emacs!!! 2018-08-11T03:05:56Z siraben: mason: The One True Editor 2018-08-11T03:06:10Z mason: Is it? No modeline, and I've never seen the left column. Interesting. 2018-08-11T03:06:38Z siraben: There is a modeline. 2018-08-11T03:06:42Z siraben: The left panel is probably neotree 2018-08-11T03:07:07Z mason: Interesting modeline then. SLIME or just editing? 2018-08-11T03:07:11Z siraben: You might see "Quit" in the minibuffer time to time when he presses C-g to cancel selection 2018-08-11T03:07:14Z siraben: No it's a theme probably 2018-08-11T03:07:23Z siraben: s/probably/definitely 2018-08-11T03:10:03Z mason: No respect for eighty columns. =scoffs= 2018-08-11T03:11:26Z chipolux joined #lisp 2018-08-11T03:11:30Z mason: The music is appealing. 2018-08-11T03:11:34Z Kundry_Wag joined #lisp 2018-08-11T03:12:06Z orivej quit (Ping timeout: 256 seconds) 2018-08-11T03:12:24Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-11T03:12:57Z mason: If you *really* want to achieve flow, though: https://www.youtube.com/watch?v=sBvt0lsoInc 2018-08-11T03:13:14Z Fare quit (Ping timeout: 256 seconds) 2018-08-11T03:14:40Z Fare joined #lisp 2018-08-11T03:19:45Z kenster: mason: sorry 2018-08-11T03:19:48Z kenster: spacemacs 2018-08-11T03:19:53Z kenster: focused af kek\ 2018-08-11T03:19:59Z mason: kenster: No worries. heh 2018-08-11T03:20:06Z mason: kenster: What was the music? 2018-08-11T03:20:21Z kenster: https://www.youtube.com/watch?v=aF6varY26rA 2018-08-11T03:20:25Z kenster: Roex : Dissension 2018-08-11T03:20:25Z mason: ty 2018-08-11T03:21:12Z orivej joined #lisp 2018-08-11T03:25:56Z mason: Hm, spacemacs seems like viper-mode, from their web site. 2018-08-11T03:29:11Z housel: Isn't it just viper-mode and a curated set of add-ons? 2018-08-11T03:30:18Z jkordani quit (Read error: Connection reset by peer) 2018-08-11T03:35:07Z kenster: It has a "layer" system 2018-08-11T03:35:14Z kenster: I myself don't use the vim keybindings as I use colemak 2018-08-11T03:35:22Z kenster: and vim keybindings are useless by default on colemak 2018-08-11T03:35:37Z kenster: but I find the preconfigured distribution to be nice 2018-08-11T03:36:32Z no-defun-allowed: cl-naive-bayes is fun 2018-08-11T03:43:05Z pjb quit (Remote host closed the connection) 2018-08-11T03:43:14Z Woodi joined #lisp 2018-08-11T03:45:05Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-11T03:48:12Z charh joined #lisp 2018-08-11T03:49:56Z pjb joined #lisp 2018-08-11T03:52:27Z aeth quit (Ping timeout: 240 seconds) 2018-08-11T03:52:35Z zianic joined #lisp 2018-08-11T03:53:29Z Fare quit (Ping timeout: 244 seconds) 2018-08-11T03:54:14Z pjb quit (Remote host closed the connection) 2018-08-11T03:54:19Z aeth joined #lisp 2018-08-11T03:55:54Z pjb joined #lisp 2018-08-11T04:00:09Z pjb quit (Remote host closed the connection) 2018-08-11T04:06:01Z _whitelogger quit (Remote host closed the connection) 2018-08-11T04:06:02Z chipolux quit (Ping timeout: 272 seconds) 2018-08-11T04:06:40Z Oladon quit (Quit: Leaving.) 2018-08-11T04:08:15Z _whitelogger joined #lisp 2018-08-11T04:09:42Z pjb joined #lisp 2018-08-11T04:14:03Z zianic quit (Remote host closed the connection) 2018-08-11T04:14:46Z Kundry_Wag joined #lisp 2018-08-11T04:15:16Z housel quit (Read error: Connection reset by peer) 2018-08-11T04:15:43Z housel joined #lisp 2018-08-11T04:17:50Z pjb quit (Ping timeout: 256 seconds) 2018-08-11T04:19:38Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-11T04:20:50Z chipolux joined #lisp 2018-08-11T04:21:23Z Khisanth quit (Ping timeout: 260 seconds) 2018-08-11T04:25:46Z smokeink quit (Ping timeout: 256 seconds) 2018-08-11T04:30:05Z aindilis quit (Ping timeout: 240 seconds) 2018-08-11T04:30:44Z beach: Good morning everyone! 2018-08-11T04:35:20Z no-defun-allowed: afternoon, beach 2018-08-11T04:36:23Z phax quit (Remote host closed the connection) 2018-08-11T04:41:38Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-11T04:43:15Z nowhereman_ joined #lisp 2018-08-11T04:43:27Z chipolux quit (Ping timeout: 240 seconds) 2018-08-11T04:44:01Z Khisanth joined #lisp 2018-08-11T04:45:31Z chipolux joined #lisp 2018-08-11T04:50:22Z chipolux quit (Ping timeout: 272 seconds) 2018-08-11T05:01:08Z smokeink joined #lisp 2018-08-11T05:06:10Z wxie joined #lisp 2018-08-11T05:09:50Z stardiviner quit (Remote host closed the connection) 2018-08-11T05:19:28Z renzhi quit (Ping timeout: 256 seconds) 2018-08-11T05:20:01Z renzhi joined #lisp 2018-08-11T05:22:22Z wxie quit (Ping timeout: 268 seconds) 2018-08-11T05:22:40Z wxie joined #lisp 2018-08-11T05:29:16Z wxie quit (Quit: Bye.) 2018-08-11T05:40:15Z Kundry_Wag joined #lisp 2018-08-11T05:46:06Z kenster quit (Ping timeout: 256 seconds) 2018-08-11T06:08:01Z orivej quit (Ping timeout: 248 seconds) 2018-08-11T06:12:52Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-11T06:13:14Z jusss joined #lisp 2018-08-11T06:13:23Z jusss quit (Client Quit) 2018-08-11T06:14:15Z vlatkoB joined #lisp 2018-08-11T06:15:51Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-11T06:17:21Z jusss joined #lisp 2018-08-11T06:22:43Z milanj joined #lisp 2018-08-11T06:23:00Z jusss quit (Quit: Mutter: www.mutterirc.com) 2018-08-11T06:37:12Z v0|d: beach: is there a way to make a very tiny lisp image that removes all the unused functions removed? 2018-08-11T06:37:21Z buffergn0me joined #lisp 2018-08-11T06:38:20Z v0|d: I mean, GHC can actually compile programs to a small binary w/o repls or anything but a main(). 2018-08-11T06:40:19Z Shinmera: it's called tree-shaking. Most implementations don't offer it because people have plenty of RAM and disk space now. 2018-08-11T06:40:21Z aeth: https://en.wikipedia.org/wiki/Tree_shaking 2018-08-11T06:40:31Z Shinmera: LispWorks has it, if I remember correctly 2018-08-11T06:40:33Z edgar-rft: v0|d: it's called a "tree-shaker" what you're looking for 2018-08-11T06:40:59Z v0|d: interesting:) 2018-08-11T06:41:36Z aeth: I think one problem is that large Lisp programs will probably use most of the language, especially if they're using dependencies that can be very stylistically different from each other. 2018-08-11T06:42:06Z edgar-rft: it sounds easier than it is because you need to remove all unused implementation-internals, too 2018-08-11T06:42:22Z aeth: Right, the implementation internals might also use stuff like e.g. structure-objects even if you don't use any 2018-08-11T06:44:25Z v0|d: any ideas on the size of the binaries? 2018-08-11T06:44:47Z Shinmera: SBCL with core compression on produces binaries around the 10MB range. 2018-08-11T06:44:53Z v0|d: Shinmera: lispworks is closed source, right? can't see the implementation. 2018-08-11T06:44:56Z edgar-rft: write an assembler in CL and you'' get really small binaries 2018-08-11T06:45:08Z Shinmera: It is a commercial implementation. 2018-08-11T06:45:13Z v0|d: Shinmera: I had ecl binaries under 1MB. 2018-08-11T06:45:27Z MichaelRaskin: Do they link against libecl.so, though? 2018-08-11T06:45:53Z v0|d: edgar-rft: how so? 2018-08-11T06:46:06Z v0|d: edgar-rft: would you mind elaborating. 2018-08-11T06:46:26Z v0|d: MichaelRaskin: nah, i can do static, strip etc. 2018-08-11T06:46:51Z smokeink quit (Ping timeout: 268 seconds) 2018-08-11T06:50:52Z MichaelRaskin: Nice 2018-08-11T06:52:35Z edgar-rft: v0|d: how so what? tree shaking implementation internals or writing a micro assembler 2018-08-11T06:53:53Z v0|d: edgar-rft: first one is interesting. 2018-08-11T06:55:13Z edgar-rft: every ANSI CL function must be defined from something. This "something" must be removed from the final binary, too. What "something" is depends on the Common Lisp implementation. 2018-08-11T06:56:30Z jackdaniel: edgar-rft: why it needs to be removed? 2018-08-11T06:57:40Z jackdaniel: (example: small forth interpreter written in C used to bootstrap some functions and target compiler may be a part of a final runtime too) 2018-08-11T06:58:17Z edgar-rft: jackdaniel: because you can't reduce the size of a binary by *adding* stuff 2018-08-11T06:58:36Z FreeBirdLjj joined #lisp 2018-08-11T06:58:57Z jackdaniel: hm, I must miss a context, I thought it is a general statement 2018-08-11T07:00:09Z edgar-rft: the question was howto reduce the size of a binary and the discussion was howto write a treeshaker 2018-08-11T07:00:25Z jackdaniel: OK, thank you (and sorry for being lazy with backlog) 2018-08-11T07:01:09Z reu quit (Ping timeout: 265 seconds) 2018-08-11T07:02:02Z edgar-rft: jackdaniel: but it was said that ECL produces small binaries, maybe you're the right man to help :-) 2018-08-11T07:02:44Z jackdaniel: sure, you can build a minimal statically linked program in around ~200KB 2018-08-11T07:03:15Z edgar-rft: v0|d: ^^ 2018-08-11T07:03:20Z jackdaniel: of course such runtime would only carry bytecodes compiler (but binary itself may be compiled to native beforehand), no ASDF etc 2018-08-11T07:04:31Z jackdaniel: needless to say, you may add module loading on demand (if present in form of fas files) - that way you may add compiled native module to a runtime 2018-08-11T07:04:49Z jackdaniel: [like asdf, C compiler etc) 2018-08-11T07:07:39Z makomo joined #lisp 2018-08-11T07:07:49Z jackdaniel: McCLIM aligning text to right, wrapping by word against a margin and aligned vertically *above* bottom margin: http://i.imgur.com/Vbnr6Qx.png 2018-08-11T07:10:23Z JuanDaugherty joined #lisp 2018-08-11T07:12:16Z argoneus quit (Quit: No Ping reply in 180 seconds.) 2018-08-11T07:13:24Z argoneus joined #lisp 2018-08-11T07:14:05Z iskander quit (Ping timeout: 240 seconds) 2018-08-11T07:16:51Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-11T07:19:38Z makomo quit (Ping timeout: 244 seconds) 2018-08-11T07:21:08Z dddddd quit (Remote host closed the connection) 2018-08-11T07:27:51Z jinkies quit (Ping timeout: 240 seconds) 2018-08-11T07:45:45Z JuanDaugherty quit (Quit: Exeunt) 2018-08-11T07:57:59Z angavrilov joined #lisp 2018-08-11T08:03:58Z funnel quit (Remote host closed the connection) 2018-08-11T08:04:14Z funnel joined #lisp 2018-08-11T08:06:21Z ebzzry quit (Ping timeout: 240 seconds) 2018-08-11T08:10:05Z Kundry_Wag joined #lisp 2018-08-11T08:10:18Z pierpal quit (Quit: Poof) 2018-08-11T08:10:36Z pierpal joined #lisp 2018-08-11T08:27:44Z funnel quit (Ping timeout: 256 seconds) 2018-08-11T08:28:46Z funnel joined #lisp 2018-08-11T08:30:27Z edgar-rft quit (Remote host closed the connection) 2018-08-11T08:32:48Z lel quit (Ping timeout: 260 seconds) 2018-08-11T08:33:43Z lel joined #lisp 2018-08-11T08:33:57Z funnel quit (Ping timeout: 272 seconds) 2018-08-11T08:33:59Z azimut quit (Ping timeout: 260 seconds) 2018-08-11T08:40:32Z funnel joined #lisp 2018-08-11T08:44:04Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-11T08:44:16Z mn3m joined #lisp 2018-08-11T08:48:43Z smokeink joined #lisp 2018-08-11T08:53:47Z mn3m quit (Quit: mn3m) 2018-08-11T08:54:12Z mn3m joined #lisp 2018-08-11T08:54:25Z azimut joined #lisp 2018-08-11T08:56:20Z ebzzry joined #lisp 2018-08-11T09:08:35Z Inline quit (Quit: Leaving) 2018-08-11T09:17:24Z smokeink quit (Remote host closed the connection) 2018-08-11T09:26:48Z robotoad quit (Quit: robotoad) 2018-08-11T09:26:52Z ebzzry quit (Read error: Connection reset by peer) 2018-08-11T09:28:23Z Inline joined #lisp 2018-08-11T09:38:37Z robotoad joined #lisp 2018-08-11T09:42:12Z schweers joined #lisp 2018-08-11T09:44:01Z varjag joined #lisp 2018-08-11T09:45:54Z varjag quit (Client Quit) 2018-08-11T09:46:19Z random-nick joined #lisp 2018-08-11T09:46:29Z varjag joined #lisp 2018-08-11T09:49:24Z smokeink joined #lisp 2018-08-11T09:50:14Z smokeink quit (Remote host closed the connection) 2018-08-11T09:50:57Z funnel quit (Ping timeout: 240 seconds) 2018-08-11T09:54:05Z ft quit (Remote host closed the connection) 2018-08-11T09:55:39Z mn3m quit (Ping timeout: 272 seconds) 2018-08-11T10:16:12Z robotoad quit (Quit: robotoad) 2018-08-11T10:17:27Z mkolenda quit (Remote host closed the connection) 2018-08-11T10:17:57Z mkolenda joined #lisp 2018-08-11T10:19:04Z dddddd joined #lisp 2018-08-11T10:19:24Z makomo joined #lisp 2018-08-11T10:37:00Z milanj quit (Quit: This computer has gone to sleep) 2018-08-11T10:40:56Z Kundry_Wag joined #lisp 2018-08-11T10:41:27Z schweers quit (Ping timeout: 240 seconds) 2018-08-11T10:41:44Z vlatkoB_ joined #lisp 2018-08-11T10:42:31Z makomo quit (Ping timeout: 272 seconds) 2018-08-11T10:42:46Z edgar-rft joined #lisp 2018-08-11T10:42:49Z hvxgr_ joined #lisp 2018-08-11T10:45:02Z vlatkoB quit (Ping timeout: 272 seconds) 2018-08-11T10:55:40Z makomo joined #lisp 2018-08-11T11:00:02Z funnel joined #lisp 2018-08-11T11:00:14Z Bike joined #lisp 2018-08-11T11:03:34Z kamog joined #lisp 2018-08-11T11:04:44Z thinkpad quit (Quit: lawl) 2018-08-11T11:07:13Z charh quit (Ping timeout: 272 seconds) 2018-08-11T11:08:17Z thinkpad joined #lisp 2018-08-11T11:13:12Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-11T11:23:59Z Kevslinger joined #lisp 2018-08-11T11:26:25Z mb01 joined #lisp 2018-08-11T11:37:34Z orivej joined #lisp 2018-08-11T11:38:11Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-11T11:51:39Z Inline quit (Quit: Leaving) 2018-08-11T11:54:36Z pjb joined #lisp 2018-08-11T12:08:54Z NoNumber joined #lisp 2018-08-11T12:11:12Z Inline joined #lisp 2018-08-11T12:11:44Z Inline quit (Remote host closed the connection) 2018-08-11T12:11:59Z Inline joined #lisp 2018-08-11T12:13:45Z Inline quit (Remote host closed the connection) 2018-08-11T12:14:00Z Inline joined #lisp 2018-08-11T12:17:26Z Inline quit (Read error: Connection reset by peer) 2018-08-11T12:17:41Z Inline joined #lisp 2018-08-11T12:18:25Z Inline quit (Read error: Connection reset by peer) 2018-08-11T12:22:23Z Inline joined #lisp 2018-08-11T12:24:57Z thinkpad quit (Quit: lawl) 2018-08-11T12:28:26Z thinkpad joined #lisp 2018-08-11T12:35:32Z trafaret1 joined #lisp 2018-08-11T12:35:34Z trafaret1: hi there 2018-08-11T12:35:38Z trafaret1: such quick question 2018-08-11T12:35:47Z trafaret1: is it possible with stat and lisp beat the bookies? 2018-08-11T12:36:08Z beach: I don't even parse your question. 2018-08-11T12:36:45Z trafaret1: I mean is it possible with statistic and lisp make bookies cry? 2018-08-11T12:37:07Z random-nick: what are bookies 2018-08-11T12:37:10Z beach: No more nor less than with statistics and any other programming language. 2018-08-11T12:37:18Z beach: I am guessing bookmakers. 2018-08-11T12:37:31Z trafaret1: bookmakers 2018-08-11T12:38:02Z trafaret1: I guess lisp better choice 2018-08-11T12:38:12Z trafaret1: because it good at processing lists of information 2018-08-11T12:49:16Z wigust joined #lisp 2018-08-11T12:51:03Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-11T12:52:13Z orivej joined #lisp 2018-08-11T13:00:17Z funnel quit (Ping timeout: 248 seconds) 2018-08-11T13:05:25Z pierpal: you aren't getting any replies because we are all busy making bookies cry 2018-08-11T13:07:14Z funnel joined #lisp 2018-08-11T13:07:21Z pierpal quit (Quit: Poof) 2018-08-11T13:07:41Z pierpal joined #lisp 2018-08-11T13:10:37Z Kundry_Wag joined #lisp 2018-08-11T13:13:03Z ebrasca quit (Remote host closed the connection) 2018-08-11T13:15:36Z trafaret1: pierpal: share your methods dont' be greedy 2018-08-11T13:15:48Z trafaret1: :) 2018-08-11T13:16:40Z pierpal: I could but then I'd have to kill you 2018-08-11T13:17:26Z trafaret1: pierpal: Stallman don't be proud of you 2018-08-11T13:18:42Z pierpal: let's move to lispcafe 2018-08-11T13:19:33Z trafaret1: pierpal: lispcave 2018-08-11T13:24:16Z pierpal: anyway I recommend you this book https://www.amazon.it/dp/B004IASVJK it's highly educational, as are the other books by the same author. 2018-08-11T13:28:33Z NoNumber quit (Ping timeout: 260 seconds) 2018-08-11T13:31:03Z omilu joined #lisp 2018-08-11T13:34:08Z quipa joined #lisp 2018-08-11T13:37:49Z pierpal quit (Quit: Poof) 2018-08-11T13:38:09Z pierpal joined #lisp 2018-08-11T13:38:13Z nika joined #lisp 2018-08-11T13:38:56Z thinkpad quit (Quit: lawl) 2018-08-11T13:42:36Z thinkpad joined #lisp 2018-08-11T13:44:01Z Kundry_Wag quit (Ping timeout: 248 seconds) 2018-08-11T13:48:30Z ym quit (Quit: Leaving) 2018-08-11T14:11:03Z kenster joined #lisp 2018-08-11T14:13:56Z nanoz joined #lisp 2018-08-11T14:19:30Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-11T14:31:10Z HighMemoryDaemon joined #lisp 2018-08-11T14:46:32Z kirkwood quit (Remote host closed the connection) 2018-08-11T14:52:47Z HighMemoryDaemon: What's a good site for pasting my Lisp code to share a link? Hastebin, my go-to, seems to be down. 2018-08-11T14:53:01Z Xach quit (Quit: leaving) 2018-08-11T14:53:08Z Xach joined #lisp 2018-08-11T14:53:33Z Shinmera: https://plaster.tymoon.eu 2018-08-11T14:54:26Z Oladon joined #lisp 2018-08-11T15:06:04Z pjb: yes, hastebin or github gists. 2018-08-11T15:07:00Z thinkpad quit (Quit: lawl) 2018-08-11T15:10:32Z thinkpad joined #lisp 2018-08-11T15:13:51Z mason: bpaste.net is my favourite 2018-08-11T15:14:32Z mason: or cat your-file.lisp | nc termbin.com 9999 2018-08-11T15:20:53Z mathrick quit (Ping timeout: 276 seconds) 2018-08-11T15:30:05Z Kundry_Wag joined #lisp 2018-08-11T15:33:28Z mathrick joined #lisp 2018-08-11T15:34:50Z kilimanjaro: what's the idiomatic way to get just the first value from a call which returns multiple values 2018-08-11T15:35:27Z kilimanjaro: e.g. i have a function which ends with (gethash foo frob), but i don't want the user to see the second value 2018-08-11T15:36:55Z beach: The user won't see it unless the user is using the REPL. 2018-08-11T15:37:52Z beach: But you can use nth-value. 2018-08-11T15:37:56Z beach: clhs nth-value 2018-08-11T15:37:56Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_nth_va.htm 2018-08-11T15:38:56Z kilimanjaro: right, thanks 2018-08-11T15:39:07Z beach: Anytime. 2018-08-11T15:52:58Z kenster: Streaming some lisp programming: https://youtu.be/ZYdsxGa78q4 or https://www.twitch.tv/kingherring 2018-08-11T15:59:24Z Kundry_Wag quit (Remote host closed the connection) 2018-08-11T15:59:38Z Kundry_Wag joined #lisp 2018-08-11T16:03:09Z HighMemoryDaemon quit (Remote host closed the connection) 2018-08-11T16:04:07Z Fare joined #lisp 2018-08-11T16:04:43Z Kundry_Wag quit (Remote host closed the connection) 2018-08-11T16:05:20Z Kundry_Wag joined #lisp 2018-08-11T16:09:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-11T16:20:33Z buffergn0me joined #lisp 2018-08-11T16:21:53Z sjl joined #lisp 2018-08-11T16:26:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-11T16:26:21Z MoziM joined #lisp 2018-08-11T16:33:16Z captgector quit (Read error: Connection reset by peer) 2018-08-11T16:33:58Z captgector joined #lisp 2018-08-11T16:43:20Z Kundry_Wag joined #lisp 2018-08-11T16:43:33Z pjb: kilimanjaro: (values (truncate 10 3)) #| --> 3 |# 2018-08-11T16:49:51Z Fare quit (Ping timeout: 240 seconds) 2018-08-11T16:56:56Z ft joined #lisp 2018-08-11T17:10:26Z Guest5800_ joined #lisp 2018-08-11T17:14:09Z buffergn0me joined #lisp 2018-08-11T17:15:52Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-11T17:18:40Z JuanDaugherty joined #lisp 2018-08-11T17:18:52Z Kundry_Wag joined #lisp 2018-08-11T17:22:36Z jinkies joined #lisp 2018-08-11T17:23:45Z Fare joined #lisp 2018-08-11T17:26:21Z on_ion joined #lisp 2018-08-11T17:26:59Z buffergn0me quit (Ping timeout: 276 seconds) 2018-08-11T17:27:53Z light2yellow quit (Quit: rebooting) 2018-08-11T17:35:51Z wigust quit (Ping timeout: 240 seconds) 2018-08-11T17:38:31Z jinkies left #lisp 2018-08-11T17:39:25Z Oladon quit (Quit: Leaving.) 2018-08-11T17:39:51Z jinkies joined #lisp 2018-08-11T17:40:03Z lnostdal quit (Quit: https://www.Quanto.ga/) 2018-08-11T17:40:22Z emaczen joined #lisp 2018-08-11T17:41:41Z emaczen: How do you tell hunchentoot to serve an image with define-easy-handler? To serve HTML the body is just an HTML string, and so I am confused about how you would serve an image? 2018-08-11T17:44:21Z shlecta joined #lisp 2018-08-11T17:46:02Z mindCrime_ joined #lisp 2018-08-11T17:46:27Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-11T17:47:38Z mindCrime__ joined #lisp 2018-08-11T17:47:58Z ym joined #lisp 2018-08-11T17:49:18Z renzhi quit (Ping timeout: 256 seconds) 2018-08-11T17:50:54Z kamog quit (Remote host closed the connection) 2018-08-11T17:51:38Z mindCrime_ quit (Ping timeout: 260 seconds) 2018-08-11T17:53:07Z Demosthenex: ok, wait. in CL (cdr nil) is nil instead of throwing an error? maybe it's my time spent in scheme, but i thought that'd throw an error 2018-08-11T17:53:50Z buffergn0me joined #lisp 2018-08-11T17:54:07Z pjb: Demosthenex: that's correct. 2018-08-11T17:54:21Z loli: in CL you can even do (car nil) 2018-08-11T17:54:25Z rozenglass joined #lisp 2018-08-11T17:54:40Z robotoad joined #lisp 2018-08-11T17:54:52Z Demosthenex: yeah, i just expected an error that i didn't give it a cell 2018-08-11T17:55:17Z Demosthenex: i always wrap assoc calls in (or (assoc :key alist) '(nil . nil)) so that i can safely cdr a default value when no key exists 2018-08-11T17:55:36Z Demosthenex: because i expect cdr to throw an exception if it doesn't receive a cons cell 2018-08-11T17:56:02Z pjb: Demosthenex: https://pastebin.com/wXFiC7a6 2018-08-11T17:58:26Z Demosthenex: pjb: epic. simply epic. 2018-08-11T17:58:31Z pjb left #lisp 2018-08-11T17:58:43Z pjb joined #lisp 2018-08-11T17:58:57Z Demosthenex: anyway, yeah, i'm enjoying common lisp. working with my son and trying to show him assoc lists.... but i guess we don't need that or for association lists ;] 2018-08-11T17:59:02Z pjb: For example (nth 42 '(a b c)) #| --> nil |# 2018-08-11T17:59:12Z pjb: But (elt '(a b c) 42) #| ERROR: 42 is not a valid sequence index for (a b c) |# 2018-08-11T17:59:34Z pjb: because elt works on vectors too: (elt #(a b c) 42). 2018-08-11T17:59:44Z kerrhau joined #lisp 2018-08-11T18:00:31Z Demosthenex: just amused that i was trying to show him a "TADAAAA" moment where it'd throw an error when we searched for a bad key, and.... instead it just returned nil. of course i was surprised l;] 2018-08-11T18:01:31Z Bike: assoc additionally allows nil elements, so ((a . b) nil (c . d)) is a valid alist. 2018-08-11T18:01:45Z JuanDaugherty quit (Quit: Exeunt) 2018-08-11T18:02:24Z pjb: Demosthenex: but since nil is both false, empty list, and no value, this is there reason why you can write (or (cdr (assoc key a-list)) "Hello") 2018-08-11T18:02:35Z pjb: ie. easily provide a default value if the value is absent or null. 2018-08-11T18:03:12Z pjb: Which doesn't prevent you to distinguish those cases (assoc key a-list) is true if it's present as `(,key . nil) 2018-08-11T18:04:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-11T18:04:31Z Demosthenex: yeah, i can still use the or for a nonnil default value 2018-08-11T18:04:35Z Demosthenex: but here, nil is enough 2018-08-11T18:04:57Z Demosthenex: just checking whether an exit is blocked in a room. he's chosen to keep his map data in a 2d array of alists 2018-08-11T18:05:10Z Demosthenex: i may show him structures soon too ;] 2018-08-11T18:05:59Z shlecta quit (Read error: Connection reset by peer) 2018-08-11T18:06:01Z slyrus2 joined #lisp 2018-08-11T18:06:13Z shlecta joined #lisp 2018-08-11T18:06:52Z emacsomancer joined #lisp 2018-08-11T18:07:27Z slyrus quit (Ping timeout: 240 seconds) 2018-08-11T18:07:27Z slyrus2 is now known as slyrus 2018-08-11T18:07:28Z slyrus is now known as 07EABUTV8 2018-08-11T18:07:28Z slyrus1 is now known as 17SAAN4EB 2018-08-11T18:13:46Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-11T18:15:21Z test1600 joined #lisp 2018-08-11T18:16:23Z renzhi joined #lisp 2018-08-11T18:18:03Z 07EABUTV8 is now known as slyrus 2018-08-11T18:19:23Z JuanDaugherty joined #lisp 2018-08-11T18:25:30Z JuanDaugherty quit (Quit: Exeunt) 2018-08-11T18:27:06Z aindilis joined #lisp 2018-08-11T18:28:14Z emacsomancer quit (Quit: b) 2018-08-11T18:43:08Z nika quit (Quit: Leaving...) 2018-08-11T18:44:34Z Kundry_Wag quit (Remote host closed the connection) 2018-08-11T18:45:10Z Kundry_Wag joined #lisp 2018-08-11T18:50:10Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-11T18:50:47Z fikka joined #lisp 2018-08-11T18:51:35Z robotoad_ joined #lisp 2018-08-11T18:53:17Z light2yellow joined #lisp 2018-08-11T18:53:54Z robotoad quit (Ping timeout: 268 seconds) 2018-08-11T18:54:53Z robotoad_ quit (Read error: Connection reset by peer) 2018-08-11T18:55:02Z robotoad joined #lisp 2018-08-11T18:55:39Z Kundry_Wag joined #lisp 2018-08-11T18:56:17Z trafaret1 left #lisp 2018-08-11T19:03:30Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-11T19:04:07Z FreeBirdLjj joined #lisp 2018-08-11T19:06:22Z narendraj9 joined #lisp 2018-08-11T19:08:03Z fikka quit (Ping timeout: 260 seconds) 2018-08-11T19:08:17Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-11T19:13:05Z kenster: hey, how do I convert a non list argument into a list, and evaluate that list? 2018-08-11T19:13:44Z kenster: i.e. (:id (get-id blah)) -> '(:id (get-id blah)) -> '(:id 1) 2018-08-11T19:14:01Z emacsomancer joined #lisp 2018-08-11T19:14:15Z kenster: I can't use eval because I need to use the lexical scope 2018-08-11T19:19:08Z Xach: you can't go from a symbol to the value of that symbol's lexical binding. 2018-08-11T19:19:41Z MichaelRaskin: Without implementation-specific magic at least 2018-08-11T19:19:44Z kenster: fug 2018-08-11T19:19:58Z kenster: I wanted to apply arguments to make-instance 2018-08-11T19:20:00Z Bike: if you explain your problem in more detail, it's possible someone could come up with another solution. 2018-08-11T19:20:52Z kenster: I'm doing an unwind-protect on a class initialization 2018-08-11T19:20:59Z kenster: I call it with-foreign-class 2018-08-11T19:21:13Z kenster: the first argument is the class and the second the params you want to pass into make-instance 2018-08-11T19:21:29Z Bike: with-foreign-class is a macro? 2018-08-11T19:21:32Z kenster: yes 2018-08-11T19:21:44Z kenster: (,params ',(second spec) 2018-08-11T19:21:55Z kenster: (apply 'make-instance ,c-class-name ,params) 2018-08-11T19:22:16Z kenster: but ,params is the quoted form of ' 2018-08-11T19:22:18Z kenster: (:id (gensym "HSESSION-") 2018-08-11T19:22:20Z kenster: :in-progress t 2018-08-11T19:22:21Z kenster: :content-file (make-instance 'hosted-content-file :id (b32c:b32c-decode content-id) :file-name filename)) 2018-08-11T19:22:30Z kenster: so the make-instance call gets the quoted values 2018-08-11T19:22:50Z iskander joined #lisp 2018-08-11T19:22:53Z Bike: Could you paste an example with-foreign-class form? If it's very long, on a pastebin site, please. 2018-08-11T19:22:59Z kenster: sure 2018-08-11T19:24:13Z razzy joined #lisp 2018-08-11T19:24:17Z narendraj9 quit (Ping timeout: 248 seconds) 2018-08-11T19:24:42Z kenster: https://hastebin.com/raw/luwexayize 2018-08-11T19:24:48Z kenster: Bike: ^ 2018-08-11T19:25:01Z fikka joined #lisp 2018-08-11T19:26:04Z Bike: I think you may be somewhat confused about how macros work. 2018-08-11T19:26:31Z kenster: okay 2018-08-11T19:26:57Z Bike: (defmacro with-foreign-class ((class-name &rest params) instance &body body) `(let ((,instance nil)) (unwind-protect-foreign-class ,instance (setf ,instance (make-instance ,class-name ,@params))) ,@body))) might be what you want? 2018-08-11T19:27:30Z Bike: You're the one doing quotation there, like in ',(second spec), but you don't actually want to, so... 2018-08-11T19:27:38Z kenster: hmmm 2018-08-11T19:27:50Z Bike: oh, and then you'd use it like (with-foreign-class (hosting-session :id (gensym ..) :in-progress t ...) ...) 2018-08-11T19:27:57Z kenster: very nice 2018-08-11T19:28:05Z kenster: I didn't really know you could have it like that 2018-08-11T19:28:24Z kenster: destructuring spec in the args 2018-08-11T19:28:33Z Bike: yeah, macro lambda lists can be nested like that. 2018-08-11T19:28:41Z kenster: wew 2018-08-11T19:29:01Z Bike: Anyway, the point is that you don't need to bind the params to a variable, or quote them, or anything. 2018-08-11T19:29:18Z Bike: If it gets confusing, try writing out a macro form you'd like to have, and then manually write what the expansion ought to be. 2018-08-11T19:29:27Z kenster: I know that 2018-08-11T19:29:29Z Bike: In this case, I think it's intuitive that we'd want a simple make-instance form like that. 2018-08-11T19:30:03Z kenster: I assembled the args like that because I didn't know about the args in the macro definition 2018-08-11T19:30:12Z kenster: so I manually car/cdr'd that 2018-08-11T19:30:16Z kenster: and it was messy 2018-08-11T19:30:21Z Bike: well, tha'ts not really the hproblem part 2018-08-11T19:31:07Z Bike: you could have (defmacro with-foreign-class (spec instance &body body) `(bla bla bla (make-instance ,(first spec) ,@(second specd)))) 2018-08-11T19:31:14Z Bike: second spec 2018-08-11T19:31:27Z kenster: ah right 2018-08-11T19:31:41Z Bike: the point is more that you had these let bindings with quotes and all 2018-08-11T19:33:35Z kenster: yeah I tend to get confused about that 2018-08-11T19:34:09Z kenster: thanks Bike! 2018-08-11T19:34:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-11T19:35:15Z Bike: no problem 2018-08-11T19:37:21Z Kundry_Wag quit (Remote host closed the connection) 2018-08-11T19:37:57Z Kundry_Wag joined #lisp 2018-08-11T19:38:57Z charh joined #lisp 2018-08-11T19:42:37Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-11T19:43:23Z nanoz quit (Ping timeout: 272 seconds) 2018-08-11T19:58:37Z X-Scale quit (Ping timeout: 244 seconds) 2018-08-11T19:59:09Z fikka joined #lisp 2018-08-11T20:07:26Z fikka quit (Ping timeout: 272 seconds) 2018-08-11T20:09:28Z emacsoma` quit (Ping timeout: 244 seconds) 2018-08-11T20:15:57Z pierpal quit (Quit: Poof) 2018-08-11T20:16:15Z random-nick quit (Read error: Connection reset by peer) 2018-08-11T20:16:17Z pierpal joined #lisp 2018-08-11T20:18:54Z random-nick joined #lisp 2018-08-11T20:19:25Z fikka joined #lisp 2018-08-11T20:19:49Z kajo joined #lisp 2018-08-11T20:23:53Z slyrus1 joined #lisp 2018-08-11T20:23:56Z slyrus quit (Ping timeout: 268 seconds) 2018-08-11T20:23:56Z 17SAAN4EB is now known as slyrus 2018-08-11T20:24:32Z fikka quit (Ping timeout: 272 seconds) 2018-08-11T20:36:57Z X-Scale joined #lisp 2018-08-11T20:38:13Z vlatkoB_ quit (Remote host closed the connection) 2018-08-11T20:51:26Z emacsomancer quit (Read error: No route to host) 2018-08-11T20:51:58Z pierpa joined #lisp 2018-08-11T20:56:13Z razzy quit (Read error: Connection reset by peer) 2018-08-11T20:56:46Z razzy joined #lisp 2018-08-11T20:58:39Z razzy quit (Read error: Connection reset by peer) 2018-08-11T20:59:43Z razzy joined #lisp 2018-08-11T21:00:25Z fouric quit (Quit: WeeChat 2.1) 2018-08-11T21:01:11Z test1600 quit (Quit: Leaving) 2018-08-11T21:12:54Z emacsomancer joined #lisp 2018-08-11T21:26:43Z kerrhau quit (Remote host closed the connection) 2018-08-11T21:27:17Z kerrhau joined #lisp 2018-08-11T21:27:31Z quipa quit (Quit: Leaving) 2018-08-11T21:44:51Z Kundry_Wag joined #lisp 2018-08-11T21:49:38Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-11T21:49:45Z fikka joined #lisp 2018-08-11T21:51:05Z White_Flame quit (Ping timeout: 240 seconds) 2018-08-11T21:51:39Z White_Flame joined #lisp 2018-08-11T21:54:32Z fikka quit (Ping timeout: 256 seconds) 2018-08-11T22:00:25Z angavrilov quit (Remote host closed the connection) 2018-08-11T22:00:43Z allcr joined #lisp 2018-08-11T22:01:27Z shlecta quit (Ping timeout: 240 seconds) 2018-08-11T22:03:39Z pierpal quit (Ping timeout: 244 seconds) 2018-08-11T22:03:50Z emacsoma` joined #lisp 2018-08-11T22:04:15Z emacsoma` quit (Remote host closed the connection) 2018-08-11T22:08:15Z emacsoma` joined #lisp 2018-08-11T22:12:23Z AeroNotix: can the setf place be a variable? E.g. (setf (foo bar) value) where foo and bar are symbols which have the values of what I want setf to operate on? 2018-08-11T22:13:21Z Shinmera: foo must either be the name of a setf-expander, or constitute the function name (setf foo) 2018-08-11T22:13:36Z Shinmera: So: no 2018-08-11T22:14:06Z AeroNotix: drats 2018-08-11T22:14:43Z Shinmera: If all your possible foo places are implemented via functions rather than setf expanders you can simply instead do (funcall `(setf ,foo) value bar) 2018-08-11T22:15:08Z AeroNotix: Yes, they're implemented as functions 2018-08-11T22:15:10Z AeroNotix: thanks 2018-08-11T22:26:57Z fikka joined #lisp 2018-08-11T22:31:38Z fikka quit (Ping timeout: 260 seconds) 2018-08-11T22:32:33Z equwal quit (Ping timeout: 248 seconds) 2018-08-11T22:35:54Z pjb: AeroNotix: you can (setf (values foo bar) (values 1 2)) 2018-08-11T22:36:09Z pjb: AeroNotix: if you insist, you can (setf (my-variables foo bar) value) 2018-08-11T22:36:41Z pjb: AeroNotix: the trick is to understand the basic feature of lisp which is taught in the 2nd part of the 5 minute introduction to lisp. 2018-08-11T22:37:00Z Shinmera: pjb: He means that foo should denote the place to pass bar and the value to, not foo being another variable to set. 2018-08-11T22:37:03Z pjb: That is: ALL lisp expressions are lists whose FIRST element is the name of the operator! 2018-08-11T22:37:29Z Shinmera: And that's also wrong. 2018-08-11T22:37:37Z Shinmera: All lisp /forms/ are lists whose first element is the operator 2018-08-11T22:37:40Z pjb: Oh, yes. 2018-08-11T22:38:03Z pjb: Then it can be written (funcall `(setf ,foo) value bar) 2018-08-11T22:38:15Z pjb: IF foo refers to a setf function. 2018-08-11T22:38:34Z pjb: otherwise: (funcall foo value bar) if foo is bound to the writer function. 2018-08-11T22:38:49Z equwal joined #lisp 2018-08-11T22:38:58Z equwal quit (Remote host closed the connection) 2018-08-11T22:39:23Z pjb: There may be a way to macroexpand if foo is bound to the name of a macro. 2018-08-11T22:39:24Z equwal joined #lisp 2018-08-11T22:39:48Z pjb: And finally if it's bound to the name of an implementation specific accessor, then you would have to use eval, which will be difficult. 2018-08-11T22:42:53Z random-nick: Shinmera: can't forms also be symbols and self-evaluating objects? 2018-08-11T22:43:39Z Shinmera: Yes 2018-08-11T22:44:14Z pjb: random-nick: there's no difference between the terms form, sexp, data, lisp object, expression, etc. 2018-08-11T22:44:17Z pjb: It's all the same. 2018-08-11T22:44:31Z pjb: (quote '(1 2 3)) (eval '(1 2 3)) 2018-08-11T22:44:38Z Shinmera: there is a difference. 2018-08-11T22:44:41Z pjb: Nope. 2018-08-11T22:44:42Z Shinmera: clhs glossary/form 2018-08-11T22:44:42Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_f.htm#form 2018-08-11T22:44:45Z Shinmera: clhs glossary/expression 2018-08-11T22:44:45Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_e.htm#expression 2018-08-11T22:44:51Z pjb: The glossary is not normative. 2018-08-11T22:45:05Z pjb: And furthermore, the CL implementation don't know anything about the glossary. 2018-08-11T22:45:06Z Shinmera: But it defines terms that we go by. 2018-08-11T22:45:12Z pjb: Again, see my code! 2018-08-11T22:45:24Z Shinmera: If you want to argue semantics, please do it somewhere else. 2018-08-11T22:45:35Z pjb: I'm starting to be fed up with natural languages and their idiosyncrasies. 2018-08-11T22:45:40Z no-defun-allowed: lists set up correctly can be used as code and data 2018-08-11T22:45:53Z no-defun-allowed: most of the meaning is just intention 2018-08-11T22:45:55Z pjb: lists and atoms. 2018-08-11T22:46:12Z no-defun-allowed: and atoms, yes those too. the only real difference between code/data is how they are used. 2018-08-11T22:47:13Z pjb: no-defun-allowed: I would even argue against that: (let ((x #(1 2 3))) (identity x) (eval x)) the same lisp object is being used as data AND as code! 2018-08-11T22:48:02Z pjb: no-defun-allowed: see it more like the dual nature of physics: particule & probability wave function. 2018-08-11T22:53:20Z no-defun-allowed: oh damn 2018-08-11T22:59:14Z razzy quit (Remote host closed the connection) 2018-08-11T23:00:03Z razzy joined #lisp 2018-08-11T23:12:17Z fikka joined #lisp 2018-08-11T23:17:01Z fikka quit (Ping timeout: 244 seconds) 2018-08-11T23:20:23Z jinkies quit (Ping timeout: 265 seconds) 2018-08-11T23:21:57Z v0|d quit (Ping timeout: 240 seconds) 2018-08-11T23:27:29Z acolarh quit (Ping timeout: 248 seconds) 2018-08-11T23:29:51Z varjag quit (Ping timeout: 240 seconds) 2018-08-11T23:32:34Z fikka joined #lisp 2018-08-11T23:35:59Z random-nick quit (Read error: Connection reset by peer) 2018-08-11T23:37:40Z sjl joined #lisp 2018-08-11T23:37:42Z fikka quit (Ping timeout: 272 seconds) 2018-08-11T23:39:11Z White_Flame: even more literally: (defmacro defun-with-source (name params &body body) `(progn (register-source-code ',name ',params ',body) (defun ,name ,params ,@body))) 2018-08-11T23:40:41Z asarch joined #lisp 2018-08-11T23:46:39Z cogbog joined #lisp 2018-08-11T23:50:57Z cogbog left #lisp 2018-08-11T23:51:08Z makomo quit (Ping timeout: 268 seconds) 2018-08-11T23:51:17Z danielxvu joined #lisp 2018-08-12T00:00:02Z kozy quit (Remote host closed the connection) 2018-08-12T00:00:50Z kozy joined #lisp 2018-08-12T00:03:45Z varjag joined #lisp 2018-08-12T00:08:10Z varjag quit (Ping timeout: 244 seconds) 2018-08-12T00:08:25Z v0|d joined #lisp 2018-08-12T00:16:27Z Fare quit (Ping timeout: 240 seconds) 2018-08-12T00:28:06Z emacsomancer quit (Read error: Connection reset by peer) 2018-08-12T00:29:22Z razzy quit (Ping timeout: 256 seconds) 2018-08-12T00:31:36Z razzy joined #lisp 2018-08-12T00:35:48Z Fare joined #lisp 2018-08-12T00:36:19Z pierpa quit (Quit: Page closed) 2018-08-12T00:39:45Z pjb: White_Flame: https://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/ibcl/index.html 2018-08-12T00:46:58Z pierpal joined #lisp 2018-08-12T00:48:47Z v0|d: i programmd this 2day :p https://en.wikipedia.org/wiki/Commodore_CBM-II 2018-08-12T00:49:22Z v0|d: can I have my lisp machine compld to basic please :0 2018-08-12T00:50:36Z White_Flame: nice, is it your own? 2018-08-12T00:51:03Z v0|d: no chance, not rich:( 2018-08-12T00:52:01Z v0|d: keyboard was working great though, very small design. 2018-08-12T00:54:55Z rozenglass quit (Remote host closed the connection) 2018-08-12T00:55:44Z White_Flame: I know there were some very simple Lisps for the C64; with that thing having much more ram it could have been more viable 2018-08-12T00:58:32Z emacsomancer joined #lisp 2018-08-12T01:01:07Z acolarh joined #lisp 2018-08-12T01:01:53Z lnostdal joined #lisp 2018-08-12T01:08:28Z v0|d: White_Flame: designing a board w/ more ram is painful w/o 4-6lyrs. Not sure they have the tech back in then. 2018-08-12T01:09:00Z v0|d: White_Flame: too many pins on the memory bus and assume it implements snooping. 2018-08-12T01:12:50Z Oladon joined #lisp 2018-08-12T01:15:45Z jasmith joined #lisp 2018-08-12T01:15:48Z danielxvu quit (Remote host closed the connection) 2018-08-12T01:16:50Z White_Flame: yeah, 32 ram chips on the mobo when fully populated 2018-08-12T01:17:42Z White_Flame: I don't know the details of boad design that affects it, but I'll take your word there 2018-08-12T01:17:45Z White_Flame: *board 2018-08-12T01:20:07Z v0|d: White_Flame: sry, I wasn't tryng to be right. Her eyou go https://www.youtube.com/watch?v=0YdLZAQSOa4 2018-08-12T01:20:10Z emacsomancer quit (Remote host closed the connection) 2018-08-12T01:21:40Z White_Flame: if it's about literal bus width, it's only 2 more lines than the C64 2018-08-12T01:21:46Z White_Flame: (and I noticed this isn't #lispcafe...) 2018-08-12T01:22:51Z v0|d: :) 2018-08-12T01:23:13Z no-defun-allowed: i made a lisp for c64 using cc65 but the GC is broken 2018-08-12T01:24:33Z no-defun-allowed: just get this running in cc65 and you'll have half a lisp https://raw.githubusercontent.com/8l/openvmtil/master/lib/sl3.c 2018-08-12T01:25:11Z v0|d: nice. 2018-08-12T01:26:15Z no-defun-allowed: i imagine you could pretend the c64 was a stack machine since there's few registers 2018-08-12T01:26:24Z no-defun-allowed: like the CADR almost: one accumulator and a stack 2018-08-12T01:28:37Z White_Flame: I made my own 16-bit environment for the purpose: https://acheronvm.github.io/acheronvm/ 2018-08-12T01:28:53Z pjb: Or you can use page-0 as 256 8-bit registers. 2018-08-12T01:29:18Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-12T01:30:34Z no-defun-allowed: smart 2018-08-12T01:31:44Z White_Flame: most forths put the operand stack in zeropage 2018-08-12T01:33:38Z allcr quit (Remote host closed the connection) 2018-08-12T01:40:09Z smokeink joined #lisp 2018-08-12T01:47:54Z black_13 joined #lisp 2018-08-12T01:48:01Z black_13: what is "inlet" 2018-08-12T01:48:36Z White_Flame: in what context? 2018-08-12T01:48:40Z pjb: Whatever you want. It's not predefined. You can define as you wish. 2018-08-12T01:48:55Z White_Flame: it's usually something that will Let something In 2018-08-12T01:49:39Z White_Flame: I think it's also a portion on a map that shows another map 2018-08-12T01:49:48Z White_Flame: can't think about a Lisp-related version of it 2018-08-12T01:50:14Z black_13: i dont where scheme begins and lisp ends 2018-08-12T01:50:16Z black_13: (inlet 'a 1 'b 2) 2018-08-12T01:50:41Z pjb: black_13: this is the Common Lisp channel; scheme is out of topic. 2018-08-12T01:50:59Z black_13: ill see my way out 2018-08-12T01:51:03Z black_13 left #lisp 2018-08-12T02:01:50Z on_ion quit (Quit: WeeChat 1.9.1) 2018-08-12T02:18:41Z Oladon quit (Quit: Leaving.) 2018-08-12T02:20:12Z potatonomicon quit (Read error: Connection reset by peer) 2018-08-12T02:21:01Z kerrhau joined #lisp 2018-08-12T02:24:07Z ebrasca joined #lisp 2018-08-12T02:28:43Z ebrasca quit (Remote host closed the connection) 2018-08-12T02:29:20Z ebrasca joined #lisp 2018-08-12T02:33:51Z LdBeth: morning 2018-08-12T02:34:02Z no-defun-allowed: hi LdBeth 2018-08-12T02:38:14Z robotoad quit (Quit: robotoad) 2018-08-12T02:44:57Z mindCrime joined #lisp 2018-08-12T02:45:23Z mindCrime__ quit (Ping timeout: 260 seconds) 2018-08-12T03:13:37Z jlarocco quit (Ping timeout: 248 seconds) 2018-08-12T03:23:24Z robotoad joined #lisp 2018-08-12T03:28:45Z lagagain joined #lisp 2018-08-12T03:29:58Z dddddd quit (Remote host closed the connection) 2018-08-12T03:40:25Z k-hos joined #lisp 2018-08-12T03:45:00Z clhsgang[m]: anyone know how to get POST data from woo? 2018-08-12T03:49:38Z beach: Good morning everyone! 2018-08-12T03:50:24Z v0|d: beach: morning' 2018-08-12T03:54:30Z smokeink quit (Ping timeout: 256 seconds) 2018-08-12T03:54:34Z clhsgang[m]: morning beach 2018-08-12T04:10:14Z Bike quit (Quit: Lost terminal) 2018-08-12T04:18:41Z FreeBirdLjj joined #lisp 2018-08-12T04:19:32Z hvxgr_ quit (Ping timeout: 272 seconds) 2018-08-12T04:25:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-12T04:42:32Z impulse quit (Ping timeout: 256 seconds) 2018-08-12T04:44:03Z impulse joined #lisp 2018-08-12T04:51:18Z mb01 quit (Ping timeout: 244 seconds) 2018-08-12T04:54:34Z orivej quit (Ping timeout: 256 seconds) 2018-08-12T05:08:05Z impulse quit (Ping timeout: 240 seconds) 2018-08-12T05:11:01Z housel quit (Read error: Connection reset by peer) 2018-08-12T05:14:36Z impulse joined #lisp 2018-08-12T05:22:03Z parjanya quit (Remote host closed the connection) 2018-08-12T05:24:45Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-12T05:30:04Z _whitelogger quit (Remote host closed the connection) 2018-08-12T05:31:16Z pjb quit (Remote host closed the connection) 2018-08-12T05:32:18Z _whitelogger joined #lisp 2018-08-12T05:32:18Z pjb joined #lisp 2018-08-12T05:33:56Z itruslove quit (Remote host closed the connection) 2018-08-12T05:33:56Z giraffe quit (Remote host closed the connection) 2018-08-12T05:36:30Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T05:42:52Z housel joined #lisp 2018-08-12T05:45:15Z zigpaw: morning :) 2018-08-12T05:50:25Z kenster quit (Ping timeout: 248 seconds) 2018-08-12T05:53:14Z pjb joined #lisp 2018-08-12T05:56:23Z asarch quit (Remote host closed the connection) 2018-08-12T05:56:50Z asarch joined #lisp 2018-08-12T05:56:57Z itruslove joined #lisp 2018-08-12T05:58:26Z lagagain quit (Quit: Connection closed for inactivity) 2018-08-12T05:58:36Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T05:59:16Z fikka joined #lisp 2018-08-12T05:59:41Z fikka quit (Read error: Connection reset by peer) 2018-08-12T06:09:22Z fikka joined #lisp 2018-08-12T06:13:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T06:16:30Z beach: Hello zigpaw. 2018-08-12T06:20:31Z vlatkoB joined #lisp 2018-08-12T06:25:39Z narendraj9 joined #lisp 2018-08-12T06:29:05Z pjb joined #lisp 2018-08-12T06:33:08Z pjb quit (Remote host closed the connection) 2018-08-12T06:36:02Z asarch: One stupid question: Is SB-EXT:SAVE-LISP-AND-DIE the same with Smalltalk about the images? 2018-08-12T06:37:04Z beach: I don't know about Smalltalk images, but it saves the entire image into a "core" file that can then be used as an argument to start up SBCL later. 2018-08-12T06:37:30Z pjb joined #lisp 2018-08-12T06:38:40Z beach: People complain that it creates a big file, but that is a problem only if you are planning to create thousands of small applications, or if you have an embedded system with very little memory. 2018-08-12T06:39:00Z asarch: I see 2018-08-12T06:39:04Z asarch: Thank you! :-) 2018-08-12T06:39:17Z beach: Oh, and there is an option to create an executable file too, so no core file required in that case. 2018-08-12T06:39:36Z asarch: I studied the log from the other day (when I did a mess with packages) and I found what went wrong 2018-08-12T06:39:40Z zigpaw: they are close enough, there are some limitations you'll see more limiting in SBCL than in Squeak/Pharo, the "one active thread only" will prevent you from having gui app dumped to image, in smalltalk you get that taken care of itself. 2018-08-12T06:40:08Z asarch: First of all, I would like to apologize with all of you 2018-08-12T06:40:46Z asarch: Since I was desperate to make my example to work, I couldn't read that :clim cannot be used it directly 2018-08-12T06:41:15Z asarch: And (use :clim) is actually (:use :clim) 2018-08-12T06:41:35Z beach: Yes, and the recommendation is not to :USE it. :) 2018-08-12T06:42:37Z pjb quit (Remote host closed the connection) 2018-08-12T06:42:43Z zigpaw: on the other hand, when learning sometimes it is good to do the not recommended, just to learn why it is so ;) 2018-08-12T06:43:51Z asarch: I found a working example at: /home/asarch/quicklisp/dists/quicklisp/software/mcclim-20180711-git/README.md 2018-08-12T06:43:58Z gravicappa joined #lisp 2018-08-12T06:44:09Z asarch: Yeah, it's kind of frustrating when you are still learning 2018-08-12T06:44:41Z beach: I am afraid we can't access your computer with that path. 2018-08-12T06:44:42Z asarch: So, I really sorry guys 2018-08-12T06:44:46Z pjb joined #lisp 2018-08-12T06:44:46Z asarch: I owe you some beers 2018-08-12T06:45:07Z asarch: Look at the same file at your quicklisp dir 2018-08-12T06:46:34Z beach: What do you mean by ":clim can not be used [] directly"? 2018-08-12T06:51:52Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T06:52:31Z asarch: Check the line #102: http://paste.scsys.co.uk/581412?ln=on&submit=Format+it%21 2018-08-12T06:53:17Z beach: Oh, "directly" means "in the REPL". I see. 2018-08-12T06:53:33Z asarch: Yeah, sorry. In the REPL 2018-08-12T06:53:53Z beach: That's a general rule for pretty much every package. 2018-08-12T06:54:50Z beach: But, in addition, it is recommended that you do not :USE packages other than a small number (I only ever :USE the COMMON-LISP package) that you trust not to change. 2018-08-12T06:58:24Z beach: Pretty much all I do from the REPL is to have ASDF compile a package, start an application, or run some tests. 2018-08-12T06:58:31Z zigpaw: when learning and writting throw-away code in repl, I think it is free-for-all if you know the rules/good-practices you are breaking ;-) 2018-08-12T07:00:17Z beach: Sure, but in this case, apparently asarch did not know what rules were not respected. 2018-08-12T07:00:55Z beach: And, yes, of course, you can't wait until you know all the rules before you start writing code. 2018-08-12T07:08:29Z aeth: I only :USE CL and my own libraries. If I broke something in the latter, I know it's my fault. 2018-08-12T07:14:45Z angavrilov joined #lisp 2018-08-12T07:15:20Z Kundry_Wag joined #lisp 2018-08-12T07:15:39Z asarch takes notes... 2018-08-12T07:16:04Z asarch: Anyway. Thank you very very much guys 2018-08-12T07:16:07Z asarch: Thank you 2018-08-12T07:16:18Z asarch: See you later :-) 2018-08-12T07:16:23Z asarch quit (Quit: Leaving) 2018-08-12T07:19:51Z zfree joined #lisp 2018-08-12T07:20:02Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-12T07:30:02Z pjb joined #lisp 2018-08-12T07:33:38Z igemnace joined #lisp 2018-08-12T07:34:22Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T07:42:04Z _whitelogger quit (Remote host closed the connection) 2018-08-12T07:44:17Z _whitelogger joined #lisp 2018-08-12T07:47:35Z pjb joined #lisp 2018-08-12T07:52:30Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T08:06:27Z grumble quit (Read error: Connection reset by peer) 2018-08-12T08:06:54Z beach: So the Common Lisp HyperSpec explicitly allows for the implementation to define additional options for DEFGENERIC and DEFCLASS. I am wondering how existing implementations take advantage of this liberty and what additional options would benefit SICL. 2018-08-12T08:07:23Z grumble joined #lisp 2018-08-12T08:25:19Z pjb joined #lisp 2018-08-12T08:28:13Z pierpal quit (Quit: Poof) 2018-08-12T08:28:30Z pierpal joined #lisp 2018-08-12T08:30:55Z jackdaniel: beach: ECL has a defclass "sealed" option 2018-08-12T08:31:40Z pjb quit (Remote host closed the connection) 2018-08-12T08:31:48Z jackdaniel: it allows inlining accesses such class (like for the structure) 2018-08-12T08:31:57Z beach: That's an interesting idea. 2018-08-12T08:32:01Z beach: Yes, I understand. 2018-08-12T08:35:17Z pjb joined #lisp 2018-08-12T08:39:24Z kajo quit (Ping timeout: 256 seconds) 2018-08-12T08:42:46Z narendraj9 quit (Ping timeout: 244 seconds) 2018-08-12T08:43:56Z pjb quit (Ping timeout: 256 seconds) 2018-08-12T08:53:22Z pierpal quit (Read error: Connection reset by peer) 2018-08-12T09:01:21Z siraben quit (Ping timeout: 248 seconds) 2018-08-12T09:09:26Z mindCrime quit (Ping timeout: 256 seconds) 2018-08-12T09:11:59Z broccolistem quit (Ping timeout: 265 seconds) 2018-08-12T09:13:07Z makomo joined #lisp 2018-08-12T09:15:23Z Kundry_Wag joined #lisp 2018-08-12T09:19:10Z housel quit (Read error: Connection reset by peer) 2018-08-12T09:20:19Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-12T09:23:49Z igemnace quit (Remote host closed the connection) 2018-08-12T09:35:03Z varjag joined #lisp 2018-08-12T09:48:12Z igemnace joined #lisp 2018-08-12T09:51:11Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-12T09:53:15Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-08-12T09:53:51Z FreeBirdLjj joined #lisp 2018-08-12T10:04:33Z rozenglass joined #lisp 2018-08-12T10:11:58Z light2yellow quit (Quit: light2yellow) 2018-08-12T10:21:42Z orivej joined #lisp 2018-08-12T10:34:37Z nowhereman_ quit (Remote host closed the connection) 2018-08-12T10:35:01Z nowhereman_ joined #lisp 2018-08-12T10:42:20Z vlatkoB_ joined #lisp 2018-08-12T10:45:53Z vlatkoB quit (Ping timeout: 272 seconds) 2018-08-12T10:52:31Z pierpal joined #lisp 2018-08-12T10:58:31Z random-nick joined #lisp 2018-08-12T11:03:29Z robotoad quit (Quit: robotoad) 2018-08-12T11:18:38Z random-nick quit (Ping timeout: 256 seconds) 2018-08-12T11:20:33Z makomo quit (Ping timeout: 248 seconds) 2018-08-12T11:22:22Z makomo joined #lisp 2018-08-12T11:27:26Z pierpal quit (Read error: Connection reset by peer) 2018-08-12T11:28:56Z pierpal joined #lisp 2018-08-12T11:32:27Z Bike joined #lisp 2018-08-12T11:33:52Z siraben joined #lisp 2018-08-12T11:37:26Z gigetoo joined #lisp 2018-08-12T11:39:07Z fikka joined #lisp 2018-08-12T11:40:27Z rozenglass quit (Remote host closed the connection) 2018-08-12T11:49:08Z nowhereman_ quit (Remote host closed the connection) 2018-08-12T11:49:22Z AeroNotix: "the trick is to understand the basic feature of lisp which is taught in the 2nd part of the 5 minute introduction to lisp." 2018-08-12T11:49:30Z AeroNotix: lord, such elitism 2018-08-12T11:49:32Z nowhereman_ joined #lisp 2018-08-12T11:49:35Z AeroNotix: gotta love IRC 2018-08-12T11:49:58Z beach: I always get nervous when I hear the word "elitism". 2018-08-12T11:50:14Z beach: Who are you quoting? 2018-08-12T11:50:54Z beach: I have been accused of elitism for saying that I think it would be a good idea for professional programmers to have some formal training in programming. 2018-08-12T11:51:22Z AeroNotix: pjb 2018-08-12T11:51:24Z Shinmera: beach: It's a quote from pjb of last night 2018-08-12T11:51:25Z AeroNotix: they're offline right now 2018-08-12T11:54:53Z jackdaniel: it could be understood, that formal education would be a formal requirement to be allowed to program professionally, that is a kind of elitism (not necessarily in bad sense, *but* we have many proficient programmers who are self-taught) 2018-08-12T11:56:08Z AeroNotix: Perhaps elitism is the wrong choice of word. I just found it unnecessary. 2018-08-12T11:56:25Z AeroNotix: pjb obviously misunderstood my question as well. 2018-08-12T11:56:43Z no-defun-allowed: Tomorrow I hope to publish cl-decentralise, my journey into decentralised information things. 2018-08-12T11:56:52Z AeroNotix: no-defun-allowed: what does it do? 2018-08-12T11:56:57Z no-defun-allowed: It's way faster than blockchains, syncing faster than I can watch a screen. 2018-08-12T11:57:02Z Shinmera: AeroNotix: pjb is often overbearing, yes. 2018-08-12T11:57:22Z AeroNotix: Nevermind, I'll leave it at that. 2018-08-12T11:57:28Z no-defun-allowed: It manages a table of blocks and versions which hold data and synchronise them over, aiming to hold the most blocks with the highest version numbers. 2018-08-12T11:57:45Z no-defun-allowed: It's glue for writing decentralised programs I guess 2018-08-12T11:57:47Z AeroNotix: I can't seem to get the form (funcall `(setf ,foo) value bar) working 2018-08-12T11:58:09Z AeroNotix: no-defun-allowed: sounds like another consensus protocol 2018-08-12T11:58:10Z Shinmera: AeroNotix: what's the problem? 2018-08-12T11:58:16Z AeroNotix: Shinmera: wait, cooking up an example 2018-08-12T11:58:44Z AeroNotix: Maybe I'll see the error when I make a small example 2018-08-12T12:00:00Z igemnace quit (Quit: WeeChat 2.2) 2018-08-12T12:00:27Z siraben quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-12T12:00:42Z no-defun-allowed: AeroNotix: probably, but I'm not trying to introduce anything new. 2018-08-12T12:01:02Z beach: jackdaniel: It seems like in software development we go to far the other direction. High-school drop-outs are considered heroes, and people with formal training are considered "elitist". 2018-08-12T12:01:05Z no-defun-allowed: There's no blockchain, smart contracts or any bullshit. It's a bullshit free backbone. 2018-08-12T12:01:10Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T12:02:06Z AeroNotix: no-defun-allowed: distributed consensus protocols aren't inherently required to be "blockchains" 2018-08-12T12:02:25Z no-defun-allowed: That is true, but most people go for them cause they sound nice. 2018-08-12T12:02:26Z AeroNotix: beach: I think there's a huge difference in academic programming and industry programming 2018-08-12T12:02:54Z no-defun-allowed: I'm only tying the developers to one assumption, that there is a definite "latest" state in their environment. 2018-08-12T12:03:21Z AeroNotix: beach: academics think their work is a superset of all of industry work, it's just not the case at all. I find a lot of elitism stems from the belief it is a superset and therefore where all of industry programming is heading and techniques learned in academia MUST eventually be used in industry 2018-08-12T12:03:23Z no-defun-allowed: The protocol is symmetrical, so you can have two REPLs connected to each other, with hooks to announce new information too. 2018-08-12T12:03:32Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-12T12:03:39Z AeroNotix: no-defun-allowed: colour me interested 2018-08-12T12:03:46Z jackdaniel: beach: as I said, I don't consider "elitism" a bad thing, I'm just saying that the quoted claim is elitist *and* that being "elitism" is not a drawback. also noted, that such status-based elitism may hurt people, who could be perceived as an elite from "skill" perspective. but I'm getting into offtopic, sorry :) 2018-08-12T12:04:02Z jackdaniel: s/being "elitism"/elitism/ 2018-08-12T12:04:03Z beach: jackdaniel: I understand. 2018-08-12T12:04:14Z no-defun-allowed: I'll release it tomorrow, I just have to make a synchronous-ish API for clients and do some final testing. 2018-08-12T12:04:28Z AeroNotix: no-defun-allowed: What kind of testing having you done on it? 2018-08-12T12:04:30Z beach: AeroNotix: I said absolutely nothing about academia. 2018-08-12T12:04:35Z no-defun-allowed: The whole thing was 240loc last time I checked, and it hopefully will stay under 400. 2018-08-12T12:04:44Z no-defun-allowed: It can synchronise between my laptop and desktop without complaints. 2018-08-12T12:04:54Z AeroNotix: beach: no, you didn't. I just brought it up because I find a lot of grating conversations appear at that boundary 2018-08-12T12:05:04Z no-defun-allowed: I also have a <20LOC example which uses two hash tables for data and versions. 2018-08-12T12:05:17Z AeroNotix: no-defun-allowed: it's starting to sound like a toy 2018-08-12T12:05:28Z AeroNotix: but looking foward to seeing it 2018-08-12T12:05:57Z no-defun-allowed: There are a few shortcomings, but I don't want to overcomplicate it. 2018-08-12T12:06:06Z AeroNotix: no-defun-allowed: I'm a huge fan of using jepsen/knossos for testing distributed consensus 2018-08-12T12:06:34Z no-defun-allowed: It's all textual for example, and the line `--EOF--` is reserved to denote end-of-files. 2018-08-12T12:06:39Z fikka joined #lisp 2018-08-12T12:06:50Z AeroNotix: no-defun-allowed: I don't get how that's relevant 2018-08-12T12:07:02Z no-defun-allowed: It only checks the version number is being incremented and you make the logic, blah blah. 2018-08-12T12:07:12Z no-defun-allowed: I'm half asleep honestly. That probably wasn't relevant 2018-08-12T12:07:12Z AeroNotix: no-defun-allowed: what happens during a net split? 2018-08-12T12:07:35Z no-defun-allowed: I'll have to find out. 2018-08-12T12:08:01Z AeroNotix: lets say you have a mesh of 4 servers running this protocol. You end up with two partitions. They each keep accepting writes on either side. What is the true version of the write after the partition heals? 2018-08-12T12:08:41Z no-defun-allowed: Unless one supersedes the other, nodes will only accept their own. 2018-08-12T12:09:00Z AeroNotix: no-defun-allowed: how will it know what supersedes the other? 2018-08-12T12:09:04Z no-defun-allowed: I have a line commented "we don't care" in the upload logic. It's literally (t nil). 2018-08-12T12:09:10Z AeroNotix: how are you encoding time into the protocol? 2018-08-12T12:09:20Z no-defun-allowed: The version number will be > to the others. 2018-08-12T12:09:28Z AeroNotix: same question remains 2018-08-12T12:09:37Z no-defun-allowed: Any sequence where a later number is > than the other works. 2018-08-12T12:09:57Z no-defun-allowed: Unix timestamps fit naturally to the problem but I still prefer revision numbers. 2018-08-12T12:10:03Z AeroNotix: if you have a (2)-(2) netsplit with 4 servers. During a split there are an equal number of writes on both sides. 2018-08-12T12:10:11Z AeroNotix: time is not absolute on all machines 2018-08-12T12:10:45Z pjb joined #lisp 2018-08-12T12:10:53Z no-defun-allowed: No, but the versioning number is and that's how the latest version is decided. 2018-08-12T12:11:27Z AeroNotix: how is the version number incremented? 2018-08-12T12:11:29Z no-defun-allowed: If both sides hold revision #3, neither will listen to the other even if they verify. Someone must come along and write #4 or greater. 2018-08-12T12:11:37Z no-defun-allowed: By the end user. 2018-08-12T12:11:38Z AeroNotix: so you will lose writes 2018-08-12T12:12:00Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T12:12:06Z no-defun-allowed: I'm only interested in the final state. 2018-08-12T12:12:17Z no-defun-allowed: If you want those, use a linked list of some form and make everything immutable. 2018-08-12T12:12:20Z AeroNotix: If both sides hold revision #3, before resolution, what is the read value? 2018-08-12T12:12:34Z no-defun-allowed: In that case, we're screwed and there isn't one. 2018-08-12T12:12:57Z no-defun-allowed: Alright, goodnight. I have fucking guitar ensemble in the morning. God vce music sucks 2018-08-12T12:13:45Z AeroNotix: Good luck. Ping me when cl-distribute is availiable, please. 2018-08-12T12:14:07Z no-defun-allowed: Thankyou. I will. 2018-08-12T12:14:45Z AeroNotix: right what was i doing 2018-08-12T12:14:57Z Shinmera: The setf thing 2018-08-12T12:16:33Z Shinmera: Bleh, only need to write some thousand lines of documentation more and I'll finally be rid of this damned library 2018-08-12T12:17:51Z AeroNotix: Shinmera: https://gist.github.com/AeroNotix/4b2a0f5ad6420ba184bb30cfaafee1ad 2018-08-12T12:18:09Z rozenglass joined #lisp 2018-08-12T12:18:27Z Shinmera: defsetf defines a setf expander 2018-08-12T12:18:39Z Shinmera: Why don't you just name your function (setf foo) instead of set-foo 2018-08-12T12:18:42Z Shinmera: and drop the defsetf 2018-08-12T12:18:54Z Shinmera: also switch the arguments from (x value) to (value x) 2018-08-12T12:19:15Z _death: the name of the setf function is (setf foo) not (setf #) 2018-08-12T12:19:25Z Shinmera: And that too 2018-08-12T12:19:26Z AeroNotix: wait, I think I've tried all these combinations as well 2018-08-12T12:20:30Z AeroNotix: Shinmera: https://gist.github.com/AeroNotix/4b2a0f5ad6420ba184bb30cfaafee1ad 2018-08-12T12:21:04Z trittweiler: clhs funcall 2018-08-12T12:21:04Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_funcal.htm 2018-08-12T12:21:20Z Shinmera: Ah balls I forgot funcall doesn't take a function name. -- needs to be (funcall (fdefinition `(setf ,foo)) ..) 2018-08-12T12:21:47Z trittweiler: yeah, /function designator/ is either symbol or function object 2018-08-12T12:21:53Z Shinmera: Really weird part of the spec 2018-08-12T12:22:04Z AeroNotix: Shinmera: that works 2018-08-12T12:22:15Z AeroNotix: trittweiler: Shinmera nie 2018-08-12T12:22:16Z AeroNotix: nice 2018-08-12T12:22:56Z beach: The other one is called "extended function designator" 2018-08-12T12:26:56Z fikka joined #lisp 2018-08-12T12:28:59Z cage_ joined #lisp 2018-08-12T12:29:16Z Fare joined #lisp 2018-08-12T12:32:06Z fikka quit (Ping timeout: 268 seconds) 2018-08-12T12:32:59Z lnostdal quit (Remote host closed the connection) 2018-08-12T12:33:34Z night29415 joined #lisp 2018-08-12T12:35:17Z random-nick joined #lisp 2018-08-12T12:46:50Z orivej quit (Ping timeout: 272 seconds) 2018-08-12T12:47:20Z fikka joined #lisp 2018-08-12T12:50:35Z orivej joined #lisp 2018-08-12T12:52:32Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T12:52:55Z ebzzry joined #lisp 2018-08-12T13:07:58Z fikka joined #lisp 2018-08-12T13:12:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T13:18:17Z mhd2018 joined #lisp 2018-08-12T13:18:23Z fikka joined #lisp 2018-08-12T13:19:27Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-08-12T13:20:34Z tralala joined #lisp 2018-08-12T13:20:35Z FreeBirdLjj joined #lisp 2018-08-12T13:22:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T13:23:52Z orivej quit (Ping timeout: 256 seconds) 2018-08-12T13:25:56Z lnostdal joined #lisp 2018-08-12T13:26:07Z lnostdal quit (Remote host closed the connection) 2018-08-12T13:28:25Z fikka joined #lisp 2018-08-12T13:29:18Z CrazyMonkey201 joined #lisp 2018-08-12T13:30:11Z lnostdal joined #lisp 2018-08-12T13:33:28Z fikka quit (Ping timeout: 260 seconds) 2018-08-12T13:33:52Z orivej joined #lisp 2018-08-12T13:38:08Z Fare quit (Ping timeout: 260 seconds) 2018-08-12T13:38:15Z fikka joined #lisp 2018-08-12T13:39:51Z pioneer42 joined #lisp 2018-08-12T13:40:16Z lnostdal quit (Quit: https://www.Quanto.ga/) 2018-08-12T13:43:08Z lnostdal joined #lisp 2018-08-12T13:47:29Z MinnowTaur joined #lisp 2018-08-12T13:47:47Z CrazyMonkey201 left #lisp 2018-08-12T13:48:39Z jmercouris joined #lisp 2018-08-12T13:50:23Z igemnace joined #lisp 2018-08-12T13:56:07Z night29415 left #lisp 2018-08-12T13:59:42Z fikka quit (Ping timeout: 256 seconds) 2018-08-12T14:01:42Z mb01 joined #lisp 2018-08-12T14:05:46Z shka_ joined #lisp 2018-08-12T14:15:44Z fikka joined #lisp 2018-08-12T14:19:22Z mb01 left #lisp 2018-08-12T14:19:48Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-12T14:20:40Z jmercouris quit (Ping timeout: 244 seconds) 2018-08-12T14:21:12Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T14:27:00Z light2yellow joined #lisp 2018-08-12T14:28:27Z dddddd joined #lisp 2018-08-12T14:35:58Z fikka joined #lisp 2018-08-12T14:39:05Z rozenglass quit (Remote host closed the connection) 2018-08-12T14:40:49Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T14:50:00Z pedh_ joined #lisp 2018-08-12T14:50:43Z pedh_ quit (Client Quit) 2018-08-12T14:52:36Z FreeBirdLjj joined #lisp 2018-08-12T14:56:19Z fikka joined #lisp 2018-08-12T15:01:20Z fikka quit (Ping timeout: 256 seconds) 2018-08-12T15:05:52Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-12T15:07:09Z fikka joined #lisp 2018-08-12T15:08:23Z Kevslinger joined #lisp 2018-08-12T15:11:49Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T15:13:19Z Shinmera 's ghost leaves him https://github.com/Shinmera/iclendar/blob/master/documentation.lisp 2018-08-12T15:14:24Z tralala quit (Ping timeout: 244 seconds) 2018-08-12T15:15:01Z Kundry_Wag joined #lisp 2018-08-12T15:15:34Z beach: Congratulations. 2018-08-12T15:15:47Z Shinmera: Still need to write the over-arching documentation in the README 2018-08-12T15:16:59Z fikka joined #lisp 2018-08-12T15:19:36Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-12T15:21:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T15:23:17Z pedh joined #lisp 2018-08-12T15:24:45Z Fare joined #lisp 2018-08-12T15:27:25Z fikka joined #lisp 2018-08-12T15:32:04Z fikka quit (Ping timeout: 256 seconds) 2018-08-12T15:37:29Z fikka joined #lisp 2018-08-12T15:37:40Z FreeBirdLjj joined #lisp 2018-08-12T15:39:47Z Oladon joined #lisp 2018-08-12T15:42:21Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T15:47:20Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-12T15:47:25Z fikka joined #lisp 2018-08-12T15:47:38Z FreeBirdLjj joined #lisp 2018-08-12T15:51:20Z orivej quit (Ping timeout: 256 seconds) 2018-08-12T15:52:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T15:54:09Z jeosol quit (Ping timeout: 252 seconds) 2018-08-12T15:54:20Z [X-Scale] joined #lisp 2018-08-12T15:54:21Z charh quit (Ping timeout: 240 seconds) 2018-08-12T15:54:27Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-12T15:54:53Z [X-Scale] is now known as X-Scale 2018-08-12T15:55:18Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-12T15:57:55Z fikka joined #lisp 2018-08-12T15:59:32Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-12T16:03:10Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T16:04:04Z pierpal quit (Quit: Poof) 2018-08-12T16:04:22Z pierpal joined #lisp 2018-08-12T16:07:42Z FreeBirdLjj joined #lisp 2018-08-12T16:08:08Z fikka joined #lisp 2018-08-12T16:12:51Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T16:18:27Z whartung_ joined #lisp 2018-08-12T16:18:35Z fikka joined #lisp 2018-08-12T16:19:00Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-12T16:22:03Z whartung quit (Ping timeout: 260 seconds) 2018-08-12T16:22:04Z whartung_ is now known as whartung 2018-08-12T16:23:26Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T16:26:11Z dim: Shinmera: I like the RDD approach (http://tom.preston-werner.com/2010/08/23/readme-driven-development.html), do you know about it? 2018-08-12T16:26:43Z Shinmera: I do 2018-08-12T16:27:23Z Shinmera: I don't follow it however because my design changes too much during development. Maintaining separate documentation would be too much overhead. 2018-08-12T16:28:00Z dim: that's what I like about the README first approach, you don't detail the design, but the end result: how to use what you're building as a user 2018-08-12T16:28:14Z dim: unless you're saying it's a lib and the API is the design then that's maybe different 2018-08-12T16:28:20Z Shinmera: I do brainstorming first on paper or in my mind to figure out a basic architecture, and then I implement it. Iterate on that a few times until it fits. Then I write documentation on it to shake out the last remaining problems. 2018-08-12T16:28:40Z Shinmera: Oh- of course I first try to think about how I'd use the tool/API 2018-08-12T16:29:07Z Shinmera: I just don't write it down in a README because again, it might change quite a bit while I face the harsh reality :) 2018-08-12T16:29:11Z dim: yeah, so that's what you put in the README right? what problem you're solving and how, as a user, what you're doing make sense 2018-08-12T16:29:34Z dim: yeah it needs maintenance, like the code… 2018-08-12T16:29:38Z nowhereman_ joined #lisp 2018-08-12T16:29:50Z Shinmera: Mh, in my readmes I describe what the library is, how to use it briefly, and if needed what the internal organisation is. 2018-08-12T16:30:02Z dim: my main problem with RDD is that I tend to not re-read the README often enough, unfortunately 2018-08-12T16:30:39Z dim: I think the README should be a conversation with the potential user, why would they be interested into what you did in the first place? 2018-08-12T16:38:40Z fikka joined #lisp 2018-08-12T16:40:46Z tsandstr quit (Quit: WeeChat 2.2) 2018-08-12T16:42:35Z Shinmera: And it's finally done, whew! https://shinmera.github.io/iclendar/ 2018-08-12T16:43:42Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T16:45:15Z cage_ quit (Quit: Leaving) 2018-08-12T16:52:42Z Oladon quit (Quit: Leaving.) 2018-08-12T16:58:51Z fikka joined #lisp 2018-08-12T17:03:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T17:05:46Z krwq joined #lisp 2018-08-12T17:06:35Z varjag quit (Ping timeout: 240 seconds) 2018-08-12T17:08:49Z krwq: Hello, has anyone used cl-who? I'm having some issues with the simplest examples: https://pastebin.com/u0Zq1Cm5 2018-08-12T17:10:54Z Kundry_Wag joined #lisp 2018-08-12T17:11:23Z krwq: I'm open for alternatives if this one has unresolved issues 2018-08-12T17:12:28Z Kundry_Wag quit (Remote host closed the connection) 2018-08-12T17:13:19Z orivej joined #lisp 2018-08-12T17:16:08Z drmeister: Can I get at the bytes for a cffi:foreign-string ? 2018-08-12T17:16:34Z igemnace quit (Quit: WeeChat 2.2) 2018-08-12T17:17:09Z krwq: drmeister: I think you can just use the pointer with cffi's aref equivalent (forgot the name) 2018-08-12T17:17:45Z drmeister: Thank you. 2018-08-12T17:18:47Z _death: krwq: you should use (cl-who:esc bar) 2018-08-12T17:19:31Z fikka joined #lisp 2018-08-12T17:20:11Z krwq: _death: I think this is even more broken: https://pastebin.com/0tskz7wL 2018-08-12T17:20:14Z _death: https://edicl.github.io/cl-who/#syntax .. personally I prefer yaclml (<:a :href foo (<:ah bar)) 2018-08-12T17:20:36Z krwq: _death: thanks, I'll try yaclml 2018-08-12T17:20:48Z mood: krwq: Only use (esc bar), not (esc foo) 2018-08-12T17:20:59Z mood: The rules for attribute values and tag content are different 2018-08-12T17:21:16Z krwq: mood: so how do I escape both? 2018-08-12T17:21:32Z krwq: (escape-string in the let?) 2018-08-12T17:21:42Z mood: I think so, yes 2018-08-12T17:21:57Z _death: usually you don't want to escape attribute values.. 2018-08-12T17:22:50Z krwq: _death: to ensure they are link and not something like "\">\"" 2018-08-12T17:24:21Z _death: this is a case where validation/sanitization should happen elsewhere 2018-08-12T17:24:24Z fikka quit (Ping timeout: 268 seconds) 2018-08-12T17:26:30Z fikka joined #lisp 2018-08-12T17:26:45Z mood: krwq: There is also spinneret, which has cl-who-like syntax but is, imo, a little more convenient 2018-08-12T17:27:03Z rippa joined #lisp 2018-08-12T17:28:54Z krwq: thanks guys, the non-escaping attributes seem to have worked correctly, I'll leave cl-who for now as I like that it writes to stream directly, if I have more issues and become too annoyed I'll try yaclml and spinnernet 2018-08-12T17:29:22Z MinnowTaur quit (Remote host closed the connection) 2018-08-12T17:29:56Z _death: yaclml needs html5 upgrades.. fortunately I've not really dealt with web stuff for years 2018-08-12T17:30:09Z varjag joined #lisp 2018-08-12T17:31:02Z krwq: _death: I just need that to generate simple e-mail - I've started with just cl-template which works ok but when I added some html this started to look really ugly 2018-08-12T17:32:31Z mood: krwq: spinneret can also write to a stream (though always *standard-output*), but cl-who is certainly a fine choice 2018-08-12T17:33:31Z krwq: mood: stdout is fine considering it's a non-issue in common lisp :) I don't want to spend too much time on learning it since I've already got it working and already spent like and hour or cl-who 2018-08-12T17:33:35Z mood: Actually, no, it prints to a stream called *html*, so you could bind that 2018-08-12T17:33:50Z mood: krwq: You'll be fine with cl-who :) 2018-08-12T17:34:37Z krwq: it has it's things that it sometimes generates not what i mean but I think I can live with that as long as it is fixable 2018-08-12T17:35:11Z krwq: + in most of the cases I'll likely wrap the codegen anyway and can add a simple testcase/assert 2018-08-12T17:39:30Z pjb: krwq: simple emails can be generated as pure text, you don't need html. 2018-08-12T17:40:52Z krwq: pjb: I wanted to add just - I did text gen first but it started getting ugly and I'm planning to add more complex html later 2018-08-12T17:42:38Z robotoad joined #lisp 2018-08-12T17:44:45Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T17:58:57Z orivej quit (Ping timeout: 248 seconds) 2018-08-12T18:00:46Z fikka joined #lisp 2018-08-12T18:05:21Z fikka quit (Ping timeout: 248 seconds) 2018-08-12T18:05:53Z phao joined #lisp 2018-08-12T18:12:06Z HighMemoryDaemon joined #lisp 2018-08-12T18:12:17Z phao left #lisp 2018-08-12T18:17:11Z HighMemoryDaemon: I have a pathnames package defined in another file. When I use Slime and try to compile, I get the error "The name "PATHNAMES" does not designate any package." However, when if I compile that load line separately and then compile the file, it works fine. My basic code: https://hastebin.com/duzaxajimi.lisp 2018-08-12T18:18:02Z Xach: HighMemoryDaemon: LOAD does not happen at compile time 2018-08-12T18:18:09Z Xach: HighMemoryDaemon: but you can make it happen by using eval-when 2018-08-12T18:18:21Z Xach: HighMemoryDaemon: better: define a system file and let asdf load things in the right order for hou 2018-08-12T18:18:24Z Xach: you, rather 2018-08-12T18:19:05Z HighMemoryDaemon: Thanks! I still have to learn ASDF. 2018-08-12T18:19:30Z Xach: HighMemoryDaemon: to do simple stuff it's not too tricky 2018-08-12T18:20:32Z panji joined #lisp 2018-08-12T18:21:03Z fikka joined #lisp 2018-08-12T18:23:27Z pierpal quit (Ping timeout: 240 seconds) 2018-08-12T18:24:33Z Xach: like, you could have something like myproject.asd containing: (defsystem #:myproject :serial t :components ((:file "pathname") (:file "spam-filter"))) and then use (asdf:load-system "myproject") will compile and load them in order of appearance 2018-08-12T18:25:51Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T18:26:26Z HighMemoryDaemon: That is pretty easy. Was just checking out this guide: https://common-lisp.net/~mmommer/asdf-howto.shtml 2018-08-12T18:27:01Z Xach: that is a little more involved than necessary to get started 2018-08-12T18:28:19Z Xach: HighMemoryDaemon: oh, here's something i made to help get started with stuff that requires other libraries: https://www.xach.com/tmp/quickstart.html 2018-08-12T18:28:21Z loli quit (Ping timeout: 240 seconds) 2018-08-12T18:28:23Z Xach: still a work in progress 2018-08-12T18:31:35Z fikka joined #lisp 2018-08-12T18:33:53Z HighMemoryDaemon: Oh, wow you're the creator of QuickLisp! That's impressive. 2018-08-12T18:35:19Z Xach lives to serve 2018-08-12T18:35:35Z Oladon joined #lisp 2018-08-12T18:36:13Z fikka quit (Ping timeout: 260 seconds) 2018-08-12T18:36:39Z HighMemoryDaemon: Thanks for the help! 2018-08-12T18:36:43Z HighMemoryDaemon quit (Remote host closed the connection) 2018-08-12T18:41:33Z fikka joined #lisp 2018-08-12T18:43:27Z captgector quit (Ping timeout: 240 seconds) 2018-08-12T18:43:38Z krwq quit (Remote host closed the connection) 2018-08-12T18:45:55Z doubledup quit (Remote host closed the connection) 2018-08-12T18:45:56Z captgector joined #lisp 2018-08-12T18:46:01Z mindCrime joined #lisp 2018-08-12T18:46:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T18:49:08Z igemnace joined #lisp 2018-08-12T18:51:57Z fikka joined #lisp 2018-08-12T18:54:34Z nowhere_man joined #lisp 2018-08-12T18:54:48Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-12T18:56:34Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T19:08:14Z asarch joined #lisp 2018-08-12T19:09:23Z jsnell joined #lisp 2018-08-12T19:10:57Z Khisanth quit (Ping timeout: 248 seconds) 2018-08-12T19:12:14Z fikka joined #lisp 2018-08-12T19:17:36Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T19:21:05Z loli joined #lisp 2018-08-12T19:21:25Z igemnace quit (Remote host closed the connection) 2018-08-12T19:23:47Z Khisanth joined #lisp 2018-08-12T19:26:38Z vlatkoB_ quit (Remote host closed the connection) 2018-08-12T19:27:11Z ramHero joined #lisp 2018-08-12T19:27:44Z ramHero quit (Client Quit) 2018-08-12T19:28:20Z ramHero joined #lisp 2018-08-12T19:30:50Z kerrhau quit (Quit: ZNC 1.7.1+deb1 - https://znc.in) 2018-08-12T19:32:31Z fikka joined #lisp 2018-08-12T19:37:23Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T19:47:35Z gravicappa quit (Ping timeout: 240 seconds) 2018-08-12T19:47:50Z dented42 joined #lisp 2018-08-12T19:48:19Z Arcaelyx joined #lisp 2018-08-12T19:53:10Z fikka joined #lisp 2018-08-12T19:57:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T20:01:45Z mhd2018 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-12T20:03:40Z fikka joined #lisp 2018-08-12T20:08:23Z fikka quit (Ping timeout: 244 seconds) 2018-08-12T20:13:28Z fikka joined #lisp 2018-08-12T20:17:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-12T20:18:55Z fikka quit (Ping timeout: 268 seconds) 2018-08-12T20:20:21Z pierpal joined #lisp 2018-08-12T20:23:59Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-12T20:27:21Z MoziM quit (Ping timeout: 240 seconds) 2018-08-12T20:29:52Z MoziM joined #lisp 2018-08-12T20:33:46Z fikka joined #lisp 2018-08-12T20:37:45Z klltkr joined #lisp 2018-08-12T20:37:48Z [X-Scale] joined #lisp 2018-08-12T20:38:39Z X-Scale quit (Ping timeout: 268 seconds) 2018-08-12T20:38:40Z [X-Scale] is now known as X-Scale 2018-08-12T20:38:43Z fikka quit (Ping timeout: 260 seconds) 2018-08-12T20:40:27Z kajo joined #lisp 2018-08-12T20:41:58Z Colleen quit (Remote host closed the connection) 2018-08-12T20:42:33Z Colleen joined #lisp 2018-08-12T20:42:48Z light2yellow quit (Quit: rebooting) 2018-08-12T20:44:12Z fikka joined #lisp 2018-08-12T20:46:52Z veinofstars joined #lisp 2018-08-12T20:49:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-12T20:50:16Z jack_rabbit joined #lisp 2018-08-12T20:54:54Z jack_rabbit: Is ECL still maintained? 2018-08-12T20:55:07Z orivej joined #lisp 2018-08-12T20:55:11Z Shinmera: Yes 2018-08-12T20:55:20Z jack_rabbit gives thumbs up 2018-08-12T20:57:43Z jmercouris joined #lisp 2018-08-12T21:03:28Z angavrilov quit (Remote host closed the connection) 2018-08-12T21:03:30Z loli quit (Remote host closed the connection) 2018-08-12T21:03:57Z loli joined #lisp 2018-08-12T21:04:15Z fikka joined #lisp 2018-08-12T21:08:09Z Pixel_Outlaw joined #lisp 2018-08-12T21:09:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-12T21:14:43Z fikka joined #lisp 2018-08-12T21:14:45Z pioneer42 quit (Quit: Leaving.) 2018-08-12T21:15:09Z dim: Xach: BTW there's now https://github.com/slyrus/abcl/tree/master/contrib/asdf-jar (which I'm yet to try), so that might be something for you to have a look at in the context of quicklisp bundles when using ABCL? 2018-08-12T21:16:04Z SaganMan quit (Ping timeout: 244 seconds) 2018-08-12T21:19:29Z fikka quit (Ping timeout: 248 seconds) 2018-08-12T21:21:21Z mathrick quit (Ping timeout: 240 seconds) 2018-08-12T21:23:45Z shka_ quit (Ping timeout: 248 seconds) 2018-08-12T21:25:11Z robotoad_ joined #lisp 2018-08-12T21:25:27Z Oladon quit (Quit: Leaving.) 2018-08-12T21:26:07Z charh joined #lisp 2018-08-12T21:27:14Z robotoad quit (Ping timeout: 256 seconds) 2018-08-12T21:31:59Z no-defun-allowed: Good morning everyone! 2018-08-12T21:32:50Z mathrick joined #lisp 2018-08-12T21:34:44Z fikka joined #lisp 2018-08-12T21:39:18Z klltkr: Morning no-defun-allowed 2018-08-12T21:39:54Z mood: The most confusing thing when writing macros must be double backquotes. I just don't have any intuition for them 2018-08-12T21:40:07Z fikka quit (Ping timeout: 272 seconds) 2018-08-12T21:40:38Z pjb: mood: you don't need them. Just use list append etc. 2018-08-12T21:41:52Z AeroNotix: mood: I like to think I'm entering a new "sublevel". It's quite synesthetic 2018-08-12T21:41:59Z mood: pjb: I'm writing a macro-defining macro, and using list, append and friends would obscure just how simple what's happening actually is. Except for the fact that double backquotes are even more confusing, so I guess I'll just do that. 2018-08-12T21:42:12Z AeroNotix: mood: example? 2018-08-12T21:42:16Z pjb: mood: also, use functions. 2018-08-12T21:42:37Z pjb: macros are functions like any other, don't forget to use abstractions and factorization. 2018-08-12T21:42:41Z mood: AeroNotix: Sure, but when you're two levels deep, how do you get back to the outer level? ,, produces all kinds of weird effects 2018-08-12T21:42:50Z mood: I'll make a quick example 2018-08-12T21:44:51Z fikka joined #lisp 2018-08-12T21:45:10Z jmercouris: is a macro writing macro considered a quine? 2018-08-12T21:46:22Z mood: AeroNotix: https://plaster.tymoon.eu/view/867#867 2018-08-12T21:47:30Z Shinmera: mood: ,@',(when has-thing (list ...)) 2018-08-12T21:49:48Z mood: Shinmera: That does work, but I don't *understand* it. My brain wants to just write ,,(when has-thing '(print "bar")) 2018-08-12T21:50:23Z Shinmera: Well first you need the ,@ in order to splice in a list that won't leave a NIL if your test is false 2018-08-12T21:50:48Z Shinmera: Then, since you don't want the code to be evaluated when the inner macro is called, you need the quote 2018-08-12T21:50:58Z Shinmera: finally you need another comma to evaluate in the current macro 2018-08-12T21:51:50Z Shinmera: Basically since each level of unquoting is going to try to evaluate the thing, you need to stop that from happening by intermittently adding quotes. 2018-08-12T21:51:52Z AeroNotix: But pjb is right, probably could turn the inner-macro into a function that returns that form 2018-08-12T21:52:07Z AeroNotix: Which may simplify thinking about it 2018-08-12T21:55:31Z mood: Shinmera: Thanks, I think that helps 2018-08-12T21:56:40Z mood: AeroNotix: I could generate the body of the inner macro using a function, yes. I'll see if that makes things clearer 2018-08-12T21:57:10Z aphprentice_ joined #lisp 2018-08-12T22:03:01Z equwal: Paul Graham has an interesting take on double quoted macros in On Lisp. He compares them to integrating (something you do in calculus). Essentially the reason it is difficult isn't because of the notation, it is because it is just a really complex problem. Just like integration though, there are tricks you can learn to make it easier. For example, when writing a macro-writing macro, you can write the inner macro separately, then write 2018-08-12T22:03:01Z equwal: the outer macro into it. You can then substitute in the code for the inner macro. The analogy is strong: substitution is one method of integration. There are other tricks you learn as you go along. 2018-08-12T22:03:47Z gurmble joined #lisp 2018-08-12T22:04:11Z grumble quit (Killed (rajaniemi.freenode.net (Nickname regained by services))) 2018-08-12T22:04:11Z gurmble is now known as grumble 2018-08-12T22:04:32Z mood: equwal: I'm not sure I understand what "write the outer macro into it" means 2018-08-12T22:07:12Z equwal: See the section on abbrev/abbrevs if you are interested. The book is free online. 2018-08-12T22:07:18Z Kundry_Wag joined #lisp 2018-08-12T22:07:38Z mood: equwal: Thanks, I'll take a look 2018-08-12T22:08:01Z equwal: (defmacro abbrev (short long) 2018-08-12T22:08:01Z equwal: `(defmacro ,short (&rest args) 2018-08-12T22:08:01Z equwal: `(,',long ,@args))) 2018-08-12T22:08:01Z equwal: (defmacro abbrevs (&rest names) 2018-08-12T22:08:04Z equwal: `(progn 2018-08-12T22:08:08Z equwal: ,@(mapcar #'(lambda (pair) 2018-08-12T22:08:11Z equwal: `(abbrev ,@pair)) 2018-08-12T22:08:14Z equwal: (group names 2)))) 2018-08-12T22:08:17Z equwal: Code dump. 2018-08-12T22:08:50Z Shinmera: ouch, that indentation 2018-08-12T22:09:20Z equwal: Yeah it is bad. 2018-08-12T22:09:42Z equwal: I must have been writing it with a 1/4 size emacs window. 2018-08-12T22:10:45Z equwal: I think he trys to explain once-only too, which is always fun. 2018-08-12T22:10:52Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-12T22:11:17Z mood: Shinmera: It looks quite alright in the logs: https://irclog.tymoon.eu/freenode/%23lisp?around=1534111681#1534111681 2018-08-12T22:11:52Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-12T22:14:03Z Shinmera: tabs are indistinguishable from evil 2018-08-12T22:15:07Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-12T22:15:57Z no-defun-allowed: should i still put #' before my lambda expressions? sbcl doesn't seem to care and it feels old 2018-08-12T22:16:22Z pierpa joined #lisp 2018-08-12T22:16:36Z Shinmera: No 2018-08-12T22:16:41Z no-defun-allowed: good 2018-08-12T22:16:47Z mood: no-defun-allowed: There is a macro named LAMBDA that expands to #'(lambda ...), so you don't have to, except in some circumstances 2018-08-12T22:16:54Z no-defun-allowed: even better 2018-08-12T22:18:21Z Shinmera: mood: Funnily enough #'(lambda ..) also doesn't work in some situations, like the :report of a condition. 2018-08-12T22:18:47Z Shinmera: In fact, in which situation do you think you have to add #', because I can't think of one 2018-08-12T22:19:33Z Shinmera: You also can't do (#'(lambda ..) ..), but you can do ((lambda ..) ..) 2018-08-12T22:19:54Z mood: Hmm, good question. I seem to remember finding something in the past, but I'm drawing a blank 2018-08-12T22:20:12Z Shinmera: Anyway, the short is: save yourself the two characters and the visual noise, and just use lambda. 2018-08-12T22:23:07Z panji quit (Quit: Leaving.) 2018-08-12T22:25:57Z Kundry_Wag joined #lisp 2018-08-12T22:35:01Z housel joined #lisp 2018-08-12T22:43:36Z equwal quit (Read error: Connection reset by peer) 2018-08-12T22:47:14Z equwal joined #lisp 2018-08-12T22:50:34Z chi91 joined #lisp 2018-08-12T22:50:37Z random-nick quit (Ping timeout: 268 seconds) 2018-08-12T22:50:53Z aeth: On the other hand, if you don't put the #' it won't run on Genera iirc. 2018-08-12T22:51:05Z chi91 left #lisp 2018-08-12T22:51:25Z aeth: (The strength of this argument asymptotically approaches 0 as t increases.) 2018-08-12T22:55:29Z Copenhagen_Bram quit (Ping timeout: 248 seconds) 2018-08-12T22:56:10Z jmercouris quit (Ping timeout: 268 seconds) 2018-08-12T22:56:48Z v0|d: why no dtors in clos? 2018-08-12T22:56:58Z Oladon joined #lisp 2018-08-12T22:57:26Z aeth: dtors? 2018-08-12T22:57:49Z v0|d: destructor. 2018-08-12T22:59:26Z Copenhagen_Bram joined #lisp 2018-08-12T23:03:47Z pierpa: what do you want to destroy? 2018-08-12T23:05:08Z v0|d: a block before GC. 2018-08-12T23:05:27Z pjb: aeth: #+genera (defmacro lambda ((&rest bindings) &body body) `(cl:function (cl:lambda ,bindings ,@body))) 2018-08-12T23:10:34Z sword` quit (Remote host closed the connection) 2018-08-12T23:10:58Z pierpa: v0|d: doesn't make any sense. Blocks are "destroyed" simply by exiting their scope. 2018-08-12T23:11:15Z kingcons joined #lisp 2018-08-12T23:11:46Z pierpa: I suspect you mean something else 2018-08-12T23:11:49Z Kundry_Wag quit (Remote host closed the connection) 2018-08-12T23:11:56Z sword` joined #lisp 2018-08-12T23:11:58Z v0|d: :) 2018-08-12T23:12:22Z Kundry_Wag joined #lisp 2018-08-12T23:15:34Z aeth: pjb: I think it was Genera. I'm not sure because it has been a few years. I think the proper way of doing it, though, is pushing it to *features* iirc. 2018-08-12T23:16:58Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-12T23:29:51Z kenster joined #lisp 2018-08-12T23:30:03Z kenster: my Common lisp/C++ CDN now successfully hosts files :D 2018-08-12T23:30:59Z no-defun-allowed: nice 2018-08-12T23:32:36Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-12T23:36:05Z Kaisyu joined #lisp 2018-08-12T23:39:27Z sabrac joined #lisp 2018-08-12T23:41:12Z sabrac: Hello all 2018-08-12T23:43:43Z nowhere_man joined #lisp 2018-08-12T23:46:36Z Kaisyu7 joined #lisp 2018-08-12T23:49:09Z Kundry_Wag joined #lisp 2018-08-12T23:49:28Z no-defun-allowed: hi sabrac 2018-08-12T23:52:05Z MetaYan quit (Ping timeout: 240 seconds) 2018-08-13T00:04:03Z fikka quit (Ping timeout: 260 seconds) 2018-08-13T00:10:14Z fikka joined #lisp 2018-08-13T00:15:08Z fikka quit (Ping timeout: 260 seconds) 2018-08-13T00:20:13Z fikka joined #lisp 2018-08-13T00:25:10Z fikka quit (Ping timeout: 244 seconds) 2018-08-13T00:28:03Z makomo quit (Ping timeout: 268 seconds) 2018-08-13T00:32:03Z skidd0 joined #lisp 2018-08-13T00:35:57Z Patzy quit (Ping timeout: 240 seconds) 2018-08-13T00:37:08Z Denommus joined #lisp 2018-08-13T00:37:55Z Patzy joined #lisp 2018-08-13T00:45:40Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-13T00:57:20Z jack_rabbit joined #lisp 2018-08-13T01:02:07Z rumbler31 joined #lisp 2018-08-13T01:04:00Z slyrus1: scymtym: if you've got a moment, can you take a look at https://github.com/sharplispers/closure-common/pull/2 ? thanks! 2018-08-13T01:11:09Z equwal quit (Ping timeout: 244 seconds) 2018-08-13T01:13:16Z equwal joined #lisp 2018-08-13T01:26:55Z pierpa quit (Quit: Page closed) 2018-08-13T01:29:45Z Fare joined #lisp 2018-08-13T01:34:28Z hvxgr_ joined #lisp 2018-08-13T01:37:41Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-13T01:39:27Z jinkies joined #lisp 2018-08-13T01:40:51Z Fare quit (Ping timeout: 240 seconds) 2018-08-13T01:46:25Z hvxgr_ quit (Quit: leaving) 2018-08-13T01:47:21Z Kundry_Wag quit (Remote host closed the connection) 2018-08-13T01:47:55Z Kundry_Wag joined #lisp 2018-08-13T01:48:43Z HighMemoryDaemon joined #lisp 2018-08-13T01:51:03Z mathZ joined #lisp 2018-08-13T01:51:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-13T01:56:03Z Denommus quit (Remote host closed the connection) 2018-08-13T01:56:59Z hvxgr_ joined #lisp 2018-08-13T02:04:02Z robotoad_ quit (Quit: robotoad_) 2018-08-13T02:08:40Z aphprentice_ quit (Quit: Connection closed for inactivity) 2018-08-13T02:10:43Z Oladon quit (Quit: Leaving.) 2018-08-13T02:20:23Z v0|d quit (Ping timeout: 244 seconds) 2018-08-13T02:26:01Z robotoad joined #lisp 2018-08-13T02:27:04Z HighMemoryDaemon quit (Remote host closed the connection) 2018-08-13T02:35:14Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-13T02:38:08Z Fare joined #lisp 2018-08-13T02:44:10Z beach: Good morning everyone! 2018-08-13T02:44:49Z jgkamat: good morning! 2018-08-13T02:46:08Z dented42 joined #lisp 2018-08-13T02:48:30Z jack_rabbit joined #lisp 2018-08-13T03:12:30Z kenster: Streaming some epic lisp and C++ programming: https://youtu.be/lEL0Nly2CE0 or https://www.twitch.tv/kingherring 2018-08-13T03:13:27Z asarch: If I have a git directory, how could I know the full address of it on the GitHub server? 2018-08-13T03:13:53Z rumbler31 quit (Remote host closed the connection) 2018-08-13T03:14:01Z Bike: git remote -v 2018-08-13T03:14:01Z Colleen: Bike: karlosz said 20 hours, 59 minutes ago: I found a possible cause. Code like this (let ((*x* (or ... ...)))) can introduce a lexical location that is defined in two branches. Thus, we have our no dominating definer case we were looking for. I generalized the code to handle placing it in the lowest common ancestor node in the dominance tree. 2018-08-13T03:14:01Z Colleen: Bike: karlosz said 20 hours, 57 minutes ago: i meant that the let can introduce a lexical location which can be captured and has no dominating definer. 2018-08-13T03:14:12Z asarch: Thank you! 2018-08-13T03:18:03Z _whitelogger quit (Remote host closed the connection) 2018-08-13T03:20:16Z _whitelogger joined #lisp 2018-08-13T03:21:40Z skidd0 quit (Quit: WeeChat 2.2) 2018-08-13T03:23:14Z captgector quit (Ping timeout: 256 seconds) 2018-08-13T03:25:44Z captgector joined #lisp 2018-08-13T03:31:08Z captgector quit (Ping timeout: 260 seconds) 2018-08-13T03:31:46Z Oladon joined #lisp 2018-08-13T03:32:02Z captgector joined #lisp 2018-08-13T03:36:21Z jinkies quit (Ping timeout: 240 seconds) 2018-08-13T03:36:48Z captgector quit (Read error: Connection reset by peer) 2018-08-13T03:38:13Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-13T03:38:25Z captgector joined #lisp 2018-08-13T03:39:33Z ym: There is a paper by Jogn Alan McDonald called "Object-oriented programming for linear algebra." and dated July 10, 1989. It tells about "a system for numerical linear algebra and optimization, implemented in Common Lisp[l3] and CLOS[l], called Cactus.". Cannot google this Cactus system location in the Internets. 2018-08-13T03:39:45Z ym: All I found is https://github.com/guillaumejounel/Cactus 2018-08-13T03:40:43Z ym: Maybe someone here more aware about this system? 2018-08-13T03:41:44Z asarch: One stupid question, does Scheme have an ANSI standard just like Common Lisp has (ANSI X3J13)? 2018-08-13T03:42:41Z no-defun-allowed: i think scheme goes by RnRS 2018-08-13T03:42:46Z no-defun-allowed: n<7 at the moment 2018-08-13T03:42:51Z no-defun-allowed: *n<=7 2018-08-13T03:44:14Z captgector quit (Remote host closed the connection) 2018-08-13T03:44:54Z captgector joined #lisp 2018-08-13T03:45:04Z asarch: But, is it an ANSI standard? 2018-08-13T03:46:09Z asarch: It isn't, is it? 2018-08-13T03:48:10Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-13T03:49:52Z Bike: there's an ieee standard. 2018-08-13T03:52:11Z beach: asarch: No, it's not an ANSI standard. But there is nothing special about ANSI. 2018-08-13T03:53:13Z beach: asarch: There are several standards organizations in the world. Each country typically has at least one. Then you have IEEE, ISO, ECMA, etc. 2018-08-13T03:55:18Z pierpal quit (Quit: Poof) 2018-08-13T03:55:37Z pierpal joined #lisp 2018-08-13T03:56:26Z beach: asarch: It is important to understand that a standards organization is not necessarily appointed by anyone in particular. It can be an association, or it can be a for-profit company. The important role of a standards organization, as far as programming languages are concerned, is that it is independent of the organizations that provide the implementations. 2018-08-13T03:57:27Z captgector quit (Ping timeout: 240 seconds) 2018-08-13T03:58:55Z dddddd quit (Remote host closed the connection) 2018-08-13T04:00:09Z Bike quit (Quit: Lost terminal) 2018-08-13T04:03:36Z asarch: I see 2018-08-13T04:03:54Z asarch: Thank you for the explanation 2018-08-13T04:05:10Z pjb quit (Ping timeout: 256 seconds) 2018-08-13T04:05:50Z beach: Sure. It's an important concept that is, unfortunately, often unknown to software developers. In fact, it is often unknown even to project leaders whose task it is to choose a programming language. The result is that they often choose programming languages that do not have an independent standard, with potentially dire consequences to the projects they are leaders of. 2018-08-13T04:05:51Z aindilis quit (Ping timeout: 240 seconds) 2018-08-13T04:08:13Z drmeister: If an array of unsigned byte8's only contains values between 0x01 and 0x7f inclusive - then it can be stored in a simple-base-string - correct? 2018-08-13T04:08:39Z pjb joined #lisp 2018-08-13T04:09:20Z beach: Nothing says that a simple base string can hold all the characters with those codes. 2018-08-13T04:10:44Z drmeister: I thought that might be the answer - so I asked. What about printable ascii characters? 0x20 to 0x7f? 2018-08-13T04:11:44Z beach: Are you asking about the standard or some typical implementation? 2018-08-13T04:11:53Z pjb quit (Remote host closed the connection) 2018-08-13T04:11:56Z beach: The standard says nothing about the encoding of characters. 2018-08-13T04:12:16Z beach: So there is no relation between ASCII and the character set. 2018-08-13T04:12:50Z beach: This is the point where I ask "what are you trying to do, and why?". 2018-08-13T04:12:51Z drmeister: Right - it says nothing about the encoding of characters. I need to decide if an array of bytes can be coerced into a simple-base-string. 2018-08-13T04:13:23Z drmeister: I have some arrays of bytes failing utf-8 encoding. 2018-08-13T04:13:52Z drmeister: I could coerce those to arrays of bytes - I was looking for some other way of testing rather than failing utf-8 encoding. 2018-08-13T04:14:03Z shlecta joined #lisp 2018-08-13T04:14:08Z White_Flame: " Whether a character is a base character depends on the way that an implementation represents strings, and not any other properties of the implementation or the host operating system." 2018-08-13T04:14:27Z beach: As far as I know, a UTF-8 string with bytes only between 0 and 127 contains only ASCII characters. 2018-08-13T04:15:06Z beach: drmeister: So if it contains only bytes like that, then it can't fail. 2018-08-13T04:15:16Z drmeister: I'm working on code that receives messages from the pzmq library - they are foreign-data. The foreign-data is being run through: (cffi:foreign-string-to-lisp (pzmq:msg-data msg) :count (pzmq:msg-size msg) :encoding cffi:*default-foreign-encoding*) - occasionally it fails. 2018-08-13T04:15:46Z beach: drmeister: I don't understand why you need to coerce an array of bytes into an array of bytes. 2018-08-13T04:15:47Z pjb joined #lisp 2018-08-13T04:15:58Z White_Flame: btw, why did you say 0x01 - 0x7f instead of including 0x00? 2018-08-13T04:16:36Z drmeister: I need to coerce the foreign data into strings when they can be and coerce them into arrays of bytes when they cannot be. 2018-08-13T04:17:02Z White_Flame: that seems fraught with ambiguity 2018-08-13T04:18:28Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-13T04:18:40Z drmeister: I'm trying to fix the cl-jupyter library. I has had a bug since its inception. 2018-08-13T04:19:09Z drmeister: When the cl-jupyter library reads a message using the pzmq library the message contains a part called the identity followed by the message. 2018-08-13T04:19:54Z drmeister: The very first message that is read has a pzmq supplied identity - which is a 5-byte array. Every other identity is a text uuid. 2018-08-13T04:20:35Z drmeister: The cl-jupyter library doesn't seem to be aware of this and tries to coerce every part of every message (including identities) into simple-base-string's 2018-08-13T04:22:02Z pjb quit (Ping timeout: 256 seconds) 2018-08-13T04:22:14Z drmeister: I believe that the only reason the cl-jupyter library has worked for the last two years is some fluke of the communication protocol that allows it to sync up with the server after many failed messages have gone back and forth. I believe it all comes down to this 5 byte array. 2018-08-13T04:23:10Z drmeister: So - to deal with it - I need to recognize when a foreign-data array of bytes can not be encoded as a simple-base-string and in that situation - encode it as an array of bytes. 2018-08-13T04:23:14Z JuanDaugherty joined #lisp 2018-08-13T04:24:08Z drmeister: I think I will apply the #'graphic-char-p predicate to every byte - and if they all pass - then I will convert it to a simple-base-string. 2018-08-13T04:24:27Z ft quit (Ping timeout: 240 seconds) 2018-08-13T04:26:09Z White_Flame: isn't this just a simple state machine, where the first message is binary and the rest are text? 2018-08-13T04:26:46Z drmeister: I don't think so. 2018-08-13T04:26:56Z drmeister: Each message has several parts. 2018-08-13T04:27:33Z drmeister: The first part of the first message is binary and all parts after that are text - as far as I understand. 2018-08-13T04:28:09Z pjb joined #lisp 2018-08-13T04:28:58Z drmeister: I'm not sure what I said is correct - I'm not sure if the identity should be considered part of the message. 2018-08-13T04:29:28Z drmeister: I'm still feeling my way around here. What I have figured out is if you treat all parts of all messages as strings - there is trouble. 2018-08-13T04:33:36Z pjb quit (Remote host closed the connection) 2018-08-13T04:43:48Z shlecta quit (Ping timeout: 272 seconds) 2018-08-13T04:44:31Z captgector joined #lisp 2018-08-13T04:45:13Z Oladon quit (Quit: Leaving.) 2018-08-13T05:01:13Z dented42 joined #lisp 2018-08-13T05:06:10Z dented42 quit (Ping timeout: 268 seconds) 2018-08-13T05:11:56Z Inline quit (Quit: Leaving) 2018-08-13T05:18:35Z jack_rabbit joined #lisp 2018-08-13T05:19:13Z mrcom quit (Read error: Connection reset by peer) 2018-08-13T05:22:15Z mrcom joined #lisp 2018-08-13T05:27:38Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-13T05:29:14Z zfree quit (Quit: zfree) 2018-08-13T05:36:12Z orivej quit (Ping timeout: 244 seconds) 2018-08-13T05:44:46Z energizer quit (Ping timeout: 256 seconds) 2018-08-13T05:45:30Z energizer joined #lisp 2018-08-13T05:50:20Z vlatkoB joined #lisp 2018-08-13T05:52:24Z v0|d joined #lisp 2018-08-13T06:05:03Z mathZ quit (Remote host closed the connection) 2018-08-13T06:05:37Z aindilis joined #lisp 2018-08-13T06:06:10Z impulse quit (Ping timeout: 244 seconds) 2018-08-13T06:06:43Z impulse joined #lisp 2018-08-13T06:08:25Z tralala joined #lisp 2018-08-13T06:09:10Z SaganMan joined #lisp 2018-08-13T06:10:27Z froggey quit (Ping timeout: 240 seconds) 2018-08-13T06:12:36Z froggey joined #lisp 2018-08-13T06:22:35Z equwal quit (Ping timeout: 240 seconds) 2018-08-13T06:26:41Z shrdlu68 joined #lisp 2018-08-13T06:35:23Z phoe: This doesn't sound right, drmeister 2018-08-13T06:35:43Z phoe: You have five bytes that are either a simple-base-string or binary data. 2018-08-13T06:35:46Z drmeister: What are you thinking? 2018-08-13T06:36:00Z phoe: These two aren't disjoint. There's binary data that also decodes to a simple-base-string. 2018-08-13T06:36:34Z phoe: I don't think a sane person would create a protocol based on guessing like that. 2018-08-13T06:36:53Z drmeister: I'm getting binary data that fails to decode to a simple-base-string 2018-08-13T06:37:39Z phoe: Yep. I'd dig into the code that sends this data and figure out what the hell it is. 2018-08-13T06:38:10Z drmeister: https://jupyter-client.readthedocs.io/en/stable/messaging.html#the-wire-protocol 2018-08-13T06:38:27Z drmeister: That is the wire protocol. 2018-08-13T06:38:32Z drmeister: This part... b'u-u-i-d', # zmq identity(ies) 2018-08-13T06:38:51Z phoe: Yes, I see. 2018-08-13T06:39:04Z drmeister: In every message except for the very first one - the identity(ies) is a uuid string. 2018-08-13T06:39:29Z drmeister: In the very first message - the identity isn't provided by the jupyter notebook framework. Ident = None 2018-08-13T06:39:35Z kenster quit (Ping timeout: 240 seconds) 2018-08-13T06:40:52Z drmeister: https://github.com/jupyter/jupyter_client/blob/master/jupyter_client/session.py#L598 2018-08-13T06:41:03Z drmeister: The serialize function is called with ident=None 2018-08-13T06:41:20Z drmeister: I spent the last two days digging into the zeromq documentation and code. 2018-08-13T06:41:57Z phoe: Yes, I see. 2018-08-13T06:42:11Z phoe: I'm looking at https://github.com/jupyter/jupyter_client/blob/master/jupyter_client/session.py now to see if the implementation shows anything to me. 2018-08-13T06:42:14Z drmeister: As a historical note, ZeroMQ v2.2 and earlier use UUIDs as identities. ZeroMQ v3.0 and later generate a 5 byte identity by default (0 + a random 32bit integer). There's some impact on network performance, but only when you use multiple proxy hops, which is rare. Mostly the change was to simplify building libzmq by removing the dependency on a UUID library. 2018-08-13T06:42:18Z drmeister: From this... 2018-08-13T06:42:36Z drmeister: http://zguide.zeromq.org/page:all#The-Extended-Reply-Envelope 2018-08-13T06:43:29Z drmeister: The very first message I'm getting has a 5-byte identity that can not be translated into a simple-base-string using the UTF8 encoder - in cl-jupyter it errors out saying this. 2018-08-13T06:44:31Z drmeister: cl-jupyter has been generating this error for two years - Fredrick Peschanski apologized to me about it two years ago when I started using cl-jupyter. I don't understand why cl-jupyter worked at all - but I suspect it was some fluke of the protocol. 2018-08-13T06:45:06Z phoe: I don't understand how the identities are generated and then how they are told apart after they are sent. 2018-08-13T06:45:14Z zfree joined #lisp 2018-08-13T06:45:24Z phoe: https://github.com/jupyter/jupyter_client/blob/master/jupyter_client/session.py#L615 2018-08-13T06:45:35Z phoe: The whole message looks like [ident1, ident2, ..., DELIM, HMAC, p_header, p_parent, p_metadata, p_content, buffer1, buffer2, ...] 2018-08-13T06:46:00Z phoe: So many identities can happen before DELIM(iter). 2018-08-13T06:46:14Z drmeister: A couple of weeks ago it stopped working. I've been debugging this for three days and it's pretty clear that because this first identity can't be encoded into a simple-base-string that the return message from the kernal is missing the identity and so zeromq is dropping it. 2018-08-13T06:47:03Z drmeister: Yes - the identities come before the DELIMiter. The DELIMiter is the string "" 2018-08-13T06:47:14Z drmeister: Which means IDS before and MSG parts after. 2018-08-13T06:48:00Z phoe: Yes, I see. 2018-08-13T06:48:21Z drmeister: So - if I were to store anything before the DELIM as (array (unsigned 8)) and pass that through to the return messages - everything would (hopefully) be fine. 2018-08-13T06:48:50Z drmeister: Most of the time though - the identity(ies) are text UUID's - so it's fine to store them in simple-base-strings. 2018-08-13T06:49:11Z phoe: Why is it encoding identities as strings at all? 2018-08-13T06:49:24Z heisig joined #lisp 2018-08-13T06:49:28Z phoe: "As a historical note, ZeroMQ v2.2 and earlier use UUIDs as identities. ZeroMQ v3.0 and later generate a 5 byte identity by default (0 + a random 32bit integer)." 2018-08-13T06:49:32Z phoe: via http://zguide.zeromq.org/page:all#The-Extended-Reply-Envelope 2018-08-13T06:49:38Z drmeister: The original cl-jupyter code converted every message part as a string - I think that was the problem. 2018-08-13T06:49:43Z phoe: These identities are NOT textual data. 2018-08-13T06:49:49Z phoe: They are arbitrary binary data. 2018-08-13T06:50:00Z phoe: It's a logical error to treat that as a string - that's what I see. 2018-08-13T06:50:11Z drmeister: https://github.com/fredokun/cl-jupyter/blob/master/src/message.lisp#L286 2018-08-13T06:50:31Z nirved joined #lisp 2018-08-13T06:51:45Z drmeister: Note how he uses (cffi:foreign-string-to-lisp (pzmq:msg-data msg) :count (pzmq:msg-size msg) :encoding encoding) to try to convert the foreign-string into a lisp string with the default encoding (UTF-8) and then if it fails it prints a warning and uses LATIN-1 and says it's ugly. 2018-08-13T06:51:54Z phoe: Yes, I see. 2018-08-13T06:52:03Z phoe: I don't know the full context, but now it smells to me that there was a type assumption that these identities are text. 2018-08-13T06:52:15Z phoe: And the spec itself proves that wrong. 2018-08-13T06:52:16Z drmeister: It's more than ugly - it's mangling the identity and then I can't send a response using the mangled identity because zeromq drops the message. 2018-08-13T06:52:45Z drmeister: There is a type assumption in cl-jupyter that everything is text - yes. 2018-08-13T06:52:46Z phoe: The first byte of zmq3.0 identity is #x00 - that's not a textual character in any charset I know. 2018-08-13T06:52:59Z phoe: Well then, that's a type bug that I see there. 2018-08-13T06:53:45Z drmeister: I am very grateful for your feedback - I am not at all convinced that I'm on the right track. 2018-08-13T06:53:52Z Shinmera: phoe: 0 is #\Nul. 2018-08-13T06:54:43Z gravicappa joined #lisp 2018-08-13T06:54:49Z phoe: Shinmera: #\Nul is not a standard character. 2018-08-13T06:54:57Z phoe: clhs 2.1.3 2018-08-13T06:54:58Z specbot: Standard Characters: http://www.lispworks.com/reference/HyperSpec/Body/02_ac.htm 2018-08-13T06:54:58Z Shinmera: Sure, but it is in ASCII and UTFs 2018-08-13T06:55:07Z phoe: Oh, I see now. 2018-08-13T06:55:20Z Shinmera: The standard's charset is pretty irrelevant to anything we do nowadays and have been doing for the past twenty years 2018-08-13T06:55:30Z phoe: Yes, but it would be absolutely weird for me to have a string containing NULs. 2018-08-13T06:56:03Z Shinmera: That much is true. 2018-08-13T06:56:27Z phoe: Theoretically, (flex:octets-to-string #(0)) doesn't error; in practice, I'd freak out seeing the resulting "^@" anywhere in my program. 2018-08-13T06:57:08Z drmeister: The tricky thing here is that zeromq switched to using these 5-byte 0x0 W X Y Z (where W X Y Z are 4 bytes of an int) identities when the user doesn't provide a UUID identity. UUID identities can be coerced to simple-base-string. 0x0 W X Y Z can not be - so I thought I would coerce it to an (array (unsigned 8)) 2018-08-13T06:57:24Z phoe: That sounds so much better. 2018-08-13T06:57:39Z phoe: This looks like a prime case for an (array (unsigned-byte 8) (5)) 2018-08-13T06:58:07Z phoe: Since the first byte is 0x0 and the rest are arbitarry bytes. 2018-08-13T06:58:26Z drmeister: But I would only coerce it to an (array (unsigned-byte 8)) if it contains any characters for which graphic-char-p is NIL. 2018-08-13T06:58:32Z phoe: In general, it seems that that identity may be completely arbitrary. 2018-08-13T06:58:49Z phoe: drmeister: I may sound radical, but it *does* look like a hack. 2018-08-13T06:59:00Z Shinmera: Why not just leave it as a byte array always? 2018-08-13T06:59:06Z phoe: You seem to be working around the problem that cl-jupyter treats binary data as text. 2018-08-13T06:59:12Z phoe: What Shinmera said. 2018-08-13T06:59:30Z drmeister: https://www.irccloud.com/pastebin/PHHt4I89/ 2018-08-13T07:00:05Z drmeister: Because the cl-jupyter code needs to work with simple-base-strings for everything that isn't this one identity. 2018-08-13T07:00:15Z phoe: Gaaah. 2018-08-13T07:00:27Z pacon_ quit (Ping timeout: 260 seconds) 2018-08-13T07:00:40Z drmeister: I don't think it ever looks into the contents of identities - it only passes them around and uses them to generate responses for requests 2018-08-13T07:00:45Z phoe: Then it seems that cl-jupyter was based on the false assumption that identities are strings. 2018-08-13T07:00:52Z phoe: Hm. 2018-08-13T07:01:20Z phoe: If it's just passing them around, then it doesn't seem that there are so many call sites that would need to be edited to make it work with arrays. 2018-08-13T07:01:22Z drmeister: Right. 2018-08-13T07:01:42Z phoe: Basically just encoding and decoding would need to be thrown out. 2018-08-13T07:02:03Z drmeister: It's easy to see why cl-jupyter believed this: b'u-u-i-d', # zmq identity(ies) 2018-08-13T07:02:12Z phoe: Yes, I can see that. 2018-08-13T07:02:32Z phoe: But, in their case, you could completely throw out the try-to-coerce-into-string-or-whatever functionality and go for a much simpler one: read five bytes, write five bytes. 2018-08-13T07:02:41Z phoe: And then pass this thing around, whatever it is. 2018-08-13T07:03:45Z drmeister: Well - it's ambiguous if I read it as "a byte literal that contains a u-u-i-d" 2018-08-13T07:04:05Z phoe: Yes, that's absolutely true. 2018-08-13T07:04:12Z drmeister: I think the big problem is that zeromq switched to these binary identities by default when previously they used uuid's 2018-08-13T07:04:19Z phoe: Ayup. 2018-08-13T07:04:24Z drmeister: Python handles it because it has the binary literal type. 2018-08-13T07:04:34Z drmeister: Common Lisp doesn't have a binary literal type - right? 2018-08-13T07:04:37Z asarch quit (Quit: Leaving) 2018-08-13T07:04:51Z phoe: Huh? (array unsigned-byte) is binary literal. 2018-08-13T07:05:06Z phoe: You mean something autoconvertible to strings or something? 2018-08-13T07:05:51Z drmeister: I think I mean something autoconvertible to strings. 2018-08-13T07:06:02Z Shinmera: "autoconvertible"? 2018-08-13T07:06:15Z drmeister: I'm a little confused by this. 2018-08-13T07:06:32Z phoe: I don't really know what I said, either. 2018-08-13T07:06:34Z drmeister: I'm a lot confused by this. These components of the wire protocol are converted to JSON. 2018-08-13T07:06:35Z shrdlu68: Do you mean #B? 2018-08-13T07:06:43Z phoe: Something that acts like a string but is binary stuff in reality. 2018-08-13T07:06:44Z drmeister: JSON doesn't have byte literals 2018-08-13T07:06:50Z drmeister: I meant byte literals - sorry. 2018-08-13T07:06:58Z pacon joined #lisp 2018-08-13T07:07:06Z drmeister: I didn't mean to say "binary literals". 2018-08-13T07:07:25Z phoe: Oh. Well, the closest thing in Lisp is an u8 vector, I think. 2018-08-13T07:08:12Z phoe: Oh yesss, I see now. 2018-08-13T07:08:25Z phoe: From Python docs: `Bytes literals are always prefixed with 'b' or 'B'; they produce an instance of the bytes type instead of the str type. They may only contain ASCII characters; bytes with a numeric value of 128 or greater must be expressed with escapes.` 2018-08-13T07:08:59Z phoe: So basically, 'asdf' in Python is "asdf" in Lisp, but b'asdf' in Python is (flex:string-to-octets "asdf") in Lisp. 2018-08-13T07:09:21Z Shinmera: Or, if your implementation supports it, a static-vector with element-type base-char. 2018-08-13T07:09:41Z phoe: Oh. I didn't know that trick. 2018-08-13T07:10:38Z shrdlu68: Do the python docs mean "octet" by "byte"? 2018-08-13T07:11:02Z phoe: AFAIK, octet == (unsigned-byte 8). 2018-08-13T07:11:39Z drmeister: Shinmera: What do you mean - a static-vector with element-type base-char? 2018-08-13T07:12:05Z Shinmera: Or, if you're SBCL, (sb-sys:with-pinned-objects (string) (.. (sb-sys:vector-sap string))) 2018-08-13T07:12:20Z Shinmera: drmeister: static-vectors is a library that implements lisp vectors for which you can retrieve a pointer that you can pass to C 2018-08-13T07:12:24Z phoe: drmeister: there's a library called STATIC-VECTORS that allocates Lisp vectors suitable for CFFI usage. 2018-08-13T07:12:27Z Shinmera: so you can exchange data without copying. 2018-08-13T07:12:35Z phoe: Exactly this, yes. 2018-08-13T07:13:14Z varjag joined #lisp 2018-08-13T07:13:44Z phoe: Basically, you get a chunk of memory that is guaranteed to act the same when read/written from Lisp (via Lisp primitives) and read/written from C (via pointers). It gets funny when the memory is allocated as a base-char vector, because in C you get bytes, but in Lisp you get base-chars. 2018-08-13T07:14:00Z phoe: But I don't really think this is what you want here. You don't have CFFI happening. 2018-08-13T07:14:17Z drmeister: I am using cffi here. 2018-08-13T07:14:31Z phoe: Oh. Wait a second. 2018-08-13T07:14:57Z pierpal quit (Quit: Poof) 2018-08-13T07:15:01Z drmeister: Rather, I started using cffi because pzmq only accepts lisp strings and foreign data objects. 2018-08-13T07:15:18Z pierpal joined #lisp 2018-08-13T07:16:36Z drmeister: I'm starting to think that the proper thing to do would be the following. 2018-08-13T07:17:14Z drmeister: The wire protocol dictates python byte arrays are used. So I send and receive (array (unsigned 8)) arrays. 2018-08-13T07:17:48Z drmeister: Rather - when I receive a message - I receive it as (array (unsigned 8)). 2018-08-13T07:18:14Z drmeister: Then I pass those parts to wire-deserialize - and it converts what it needs to into lisp strings. 2018-08-13T07:18:50Z phoe: Yep, that seems like the proper thing to do. 2018-08-13T07:18:55Z drmeister: Later I pass dictionaries containing lisp strings to wire-serialize - that converts the strings into (array (unsigned 8)) arrays and then I send those back to zeromq. 2018-08-13T07:20:15Z drmeister: Identities are not encoded by wire-serialize or wire-deserialize - they are only prefixed or removed from the start of the message. 2018-08-13T07:20:53Z phoe: Identities are basically tokens that you receive and send but don't anyhow interact with, right? 2018-08-13T07:21:06Z phoe: That's what I understood so far. 2018-08-13T07:21:07Z drmeister: I think that's correct. 2018-08-13T07:21:58Z phoe: So it would be sane to treat them as raw bytes that you only receive and send. 2018-08-13T07:23:03Z angavrilov joined #lisp 2018-08-13T07:24:34Z drmeister: I think my current approach will work - but it's weird because for one thing - it encodes strings immediately when things come in to recv - 2018-08-13T07:25:01Z SaganMan: Morning Folks 2018-08-13T07:27:53Z beach: Hello SaganMan. 2018-08-13T07:29:09Z unanimousarc joined #lisp 2018-08-13T07:29:13Z phoe: Hey hi 2018-08-13T07:29:21Z unanimousarc: hello 2018-08-13T07:30:03Z phoe: drmeister: that process is weird, yes. Instantly encoding everything into strings is weird, especially that these things aren't strings. 2018-08-13T07:30:31Z beach: Hello unanimousarc. 2018-08-13T07:30:58Z unanimousarc: I have a Q, I'm going through Land of Lisp and there's this part where the lisp reader creates an instance of a structure directly from the printed representation: "(defparameter *that-guy* #S(person :name "Bob" :age 35 :waist-size 32 :favorite-color "blue"))" However, I get an error when I do this in SBCL 2018-08-13T07:32:08Z beach: Did you define the structure type named PERSON? 2018-08-13T07:32:34Z unanimousarc: yes one sec 2018-08-13T07:32:50Z phoe: unanimousarc: what's the error that you get? 2018-08-13T07:32:50Z unanimousarc: (defparameter *bob* (make-person :name "Bob" 2018-08-13T07:32:50Z unanimousarc: :age 35 2018-08-13T07:32:50Z unanimousarc: :waist-size 32 2018-08-13T07:32:52Z unanimousarc: :favourite-colour "blue")) 2018-08-13T07:32:54Z unanimousarc: oops 2018-08-13T07:32:56Z unanimousarc: sorry 2018-08-13T07:32:58Z phoe: Use a service like https://plaster.tymoon.eu/edit for the future 2018-08-13T07:33:13Z unanimousarc: "don't know how to dump #S(person ...)" 2018-08-13T07:33:19Z beach: unanimousarc: My question was whether you have a (defstruct person...) 2018-08-13T07:33:22Z beach: in your code 2018-08-13T07:33:30Z beach: If not, it won't create a person for you. 2018-08-13T07:33:32Z unanimousarc: oh yes, one sec 2018-08-13T07:34:11Z unanimousarc: https://plaster.tymoon.eu/view/869#869 2018-08-13T07:34:45Z beach: It sounds like the error is when you are trying to compile the file. 2018-08-13T07:34:46Z phoe: Wrap DEFSTRUCT in (eval-when (:load-toplevel :compile-toplevel :execute) ...) 2018-08-13T07:34:57Z phoe: There's a subtle thing here. 2018-08-13T07:35:18Z beach: phoe: OK, I'll leave it to you. Thanks! 2018-08-13T07:35:31Z phoe: beach: no no, please don't leave yet! 2018-08-13T07:35:41Z beach: Too late. 2018-08-13T07:35:45Z phoe: I'll likely get the details wrong while explaining this. 2018-08-13T07:35:55Z phoe: :P 2018-08-13T07:36:14Z beach: I am not good with structs anyway. 2018-08-13T07:36:22Z unanimousarc: I wrapped the defstruct but that doesn't seem to change it, should I wrap everything in the eval-when? 2018-08-13T07:36:26Z phoe: Hm. 2018-08-13T07:36:29Z phoe: Gimme one second. 2018-08-13T07:36:38Z beach: I think it has to do with trying to save a struct to a FASL. 2018-08-13T07:37:32Z unanimousarc: I can just eval rather than compiling and loading, that works 2018-08-13T07:37:51Z phoe: beach: actually not. 2018-08-13T07:38:02Z phoe: That is related to the use of #S reader notation. 2018-08-13T07:38:12Z phoe: If we comment out the last line and compile the resulting file, it'll work. 2018-08-13T07:38:43Z beach: phoe: So why does it work when he evaluates it? And why does the error mention "dump"? 2018-08-13T07:38:51Z phoe: beach: SBCL-specific stuff. 2018-08-13T07:39:02Z beach: That has to do with a reader macro? 2018-08-13T07:39:04Z beach: Hmm. 2018-08-13T07:39:21Z phoe: https://plaster.tymoon.eu/view/869#870 2018-08-13T07:39:27Z trittweiler: Yes but it's still what beach hints at. In the case of #S(...) the person struct will be created at read time, and the object will have to be dumped into the fasl, to be bound to *that-guy* at load time 2018-08-13T07:39:38Z beach: phoe: OK, you go ahead and analyze it. 2018-08-13T07:39:56Z phoe: Oh right, that's correct. 2018-08-13T07:40:07Z beach: *sigh* 2018-08-13T07:41:14Z unanimousarc: I will take this as a subtlety right now :P 2018-08-13T07:41:36Z phoe: Well, actually 2018-08-13T07:43:26Z phoe: It is subtle. 2018-08-13T07:43:35Z trittweiler: unanimousarc, Yeah, there's a way around that involving make-load-form but it's really quite advanced,I would suggest you to just go with MAKE-PERSON instead of the #S(...) notation. Note that the #S(...) notation would also create a read-only object. 2018-08-13T07:44:07Z unanimousarc: okay cool, thanks :) 2018-08-13T07:45:26Z phoe: There are several "times" in Lisp that are basically reader/compiler/etc. passes from raw text to actual Lisp code and data. 2018-08-13T07:46:07Z phoe: The file compiler's role is to grab Lisp forms, turn them into code and dump all of the resulting code into compiled files. 2018-08-13T07:46:16Z phoe: (make-person ...) is Lisp code. 2018-08-13T07:46:55Z phoe: #S(person ...), when it's read, actually results in a Lisp *instance*. The reader turns it into an instance of PERSON. 2018-08-13T07:47:07Z phoe: Now, the file compiler needs to know how to dump that instance into a file. 2018-08-13T07:47:42Z phoe: The file compiler does just fine with lists, code, functions, and so on. But it chokes on actual instances of objects, for a good reason. 2018-08-13T07:47:57Z unanimousarc: hm, I'll have to read more about this compilation stuff eventually, for now I'll just treat lisp like an interpreter 2018-08-13T07:48:16Z phoe: Yes, it's complicated. 2018-08-13T07:48:39Z phoe: A good tl;dr is, use MAKE-PERSON inside your files instead of the #S notation. 2018-08-13T07:49:00Z phoe: You can use the #S notation inside the REPL just fine. 2018-08-13T07:51:40Z zxcvz joined #lisp 2018-08-13T07:59:55Z unanimousarc quit (Remote host closed the connection) 2018-08-13T08:03:47Z fikka joined #lisp 2018-08-13T08:14:48Z rumbler31 joined #lisp 2018-08-13T08:19:00Z unanimousarc joined #lisp 2018-08-13T08:20:19Z moei quit (Quit: Leaving...) 2018-08-13T08:20:49Z fikka quit (Ping timeout: 248 seconds) 2018-08-13T08:23:19Z MoziM quit (Quit: WeeChat 2.2) 2018-08-13T08:26:01Z fikka joined #lisp 2018-08-13T08:27:52Z no-defun-allowed tries to act fancy 2018-08-13T08:28:18Z no-defun-allowed: AeroNotix: [here is cl-decentralise in its god awful hackish form](https://gitlab.com/Theemacsshibe/cl-decentralise) 2018-08-13T08:29:14Z charh quit (Ping timeout: 256 seconds) 2018-08-13T08:29:54Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-13T08:31:32Z no-defun-allowed: i guess it will flow past 400 loc :c 2018-08-13T08:34:27Z araujo joined #lisp 2018-08-13T08:34:32Z MoziM joined #lisp 2018-08-13T08:36:43Z quipa joined #lisp 2018-08-13T08:37:33Z erratic joined #lisp 2018-08-13T08:42:20Z jack_rabbit joined #lisp 2018-08-13T08:45:01Z rumbler31 quit (Remote host closed the connection) 2018-08-13T08:53:18Z housel quit (Read error: Connection reset by peer) 2018-08-13T08:53:49Z housel joined #lisp 2018-08-13T09:15:19Z m3tti joined #lisp 2018-08-13T09:15:24Z m3tti quit (Remote host closed the connection) 2018-08-13T09:16:11Z moei joined #lisp 2018-08-13T09:26:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-13T09:38:47Z xificurC joined #lisp 2018-08-13T09:40:53Z random-nick joined #lisp 2018-08-13T09:53:28Z phoe: AeroNotix: you should make it possible to declare what the delimiter is. It should be possible to customize the delimiter, just like in HTTP content-type multipart/form-data. It has a custom boundary. 2018-08-13T10:06:07Z ft_ joined #lisp 2018-08-13T10:07:30Z v0|d: beach: why no dtors in CLOS? 2018-08-13T10:10:18Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-13T10:15:40Z nirved quit (Ping timeout: 272 seconds) 2018-08-13T10:17:06Z pierpal quit (Quit: Poof) 2018-08-13T10:17:26Z pierpal joined #lisp 2018-08-13T10:20:16Z beach: v0|d: Because most modern garbage collectors don't touch objects that are no longer live. Such collectors could not call any destructor for dead objects. 2018-08-13T10:21:30Z beach: v0|d: Some Common Lisp implementation have what is known as "finalizers" that can accomplish some of what a destructor does. However, it is still not predictable when the garbage collector will detect that an object is no longer live. 2018-08-13T10:21:32Z Zhivago: The more important point is that by the time the object is collected it is no-longer reachable by a destructor. If it were, it could be re-linked into the graph by the destructor. Leading to things like resurrecting objects from the dead (once only) in Java. 2018-08-13T10:22:55Z Zhivago: Finalizers get around this by not operating on the dead object, but usually share some (still live) substructure. 2018-08-13T10:24:56Z heisig: v0|d: You could, however, implement your own generic function (destroy-instance X), which would internally do a (change-class X 'destroyed). Then CLOS would have destructors :) Of course this would be unrelated to the GC. 2018-08-13T10:25:52Z fikka joined #lisp 2018-08-13T10:25:57Z emacsoma` quit (Ping timeout: 240 seconds) 2018-08-13T10:26:29Z milanj joined #lisp 2018-08-13T10:29:23Z v0|d: Interesting. 2018-08-13T10:30:04Z m00natic joined #lisp 2018-08-13T10:33:37Z phoe: v0|d: depends on what your destructor would do 2018-08-13T10:34:06Z phoe: the basic use case for a destructor is freeing resources - Lisp has garbage collection instead. 2018-08-13T10:34:27Z phoe: another basic use case is closing closeable resources when they are no longer used - Lisp has WITH-* macros for that. 2018-08-13T10:35:51Z phoe: yet another use case is closing closeable resources that isn't limited to the dynamic scope of an object, so WITH-* macros can't help you there - and, for that, you can write an ordinary function in Lisp. 2018-08-13T10:37:19Z heisig: You forgot another use case - accidentally breaking your program. That is why I proposed DESTROY-INSTANCE :) 2018-08-13T10:37:46Z phoe: heisig: I have no idea what you are talking aboSegmentation fault (core dumped) 2018-08-13T10:37:48Z v0|d: Zhivago: Is it possible to detect for a compiler that a user defined finalizer can ressurect objs? 2018-08-13T10:37:52Z makomo joined #lisp 2018-08-13T10:38:25Z v0|d: say just by static analysis. 2018-08-13T10:38:34Z quipa quit (Remote host closed the connection) 2018-08-13T10:39:28Z phoe: Lisp finalizers cannot resurrect objects. 2018-08-13T10:39:43Z phoe: A Lisp finalizer can't close over the object. It can't have a reference to it. 2018-08-13T10:39:55Z phoe: Therefore, there's no means of resurrecting it. 2018-08-13T10:40:07Z housel quit (Read error: Connection reset by peer) 2018-08-13T10:40:09Z Shinmera: If a lisp finalizer references the object itself, it is never freed. 2018-08-13T10:40:16Z phoe: because it's always alive, yep. 2018-08-13T10:40:24Z Shinmera: Because the finalizer stays alive due to the object and the object stays alive due to the finalizer 2018-08-13T10:40:56Z Shinmera: GCs protect against double frees and forgetting to free, but you can still create memory leaks. 2018-08-13T10:40:56Z phoe: Shinmera: it's a little bit more complicated than that, AFAIU 2018-08-13T10:41:27Z phoe: the finalizer must be registered in the GC-accessible location somewhere, so GC knows to fire it when the collection occurs 2018-08-13T10:41:42Z phoe: And if the finalizer is registered in a live location, then the object it closes over is also live 2018-08-13T10:41:52Z phoe: So the object is live, so the object won't ever die 2018-08-13T10:42:17Z phoe: if A closes over B and B closes over A, then both of them are dead if neither of them is accessible 2018-08-13T10:42:46Z phoe: so "the finalizer stays alive due to the object and the object stays alive due to the finalizer" is not enough to proclaim the object or the finalizer alive. 2018-08-13T10:42:53Z phoe: That's how I understand it. 2018-08-13T10:45:32Z rumbler31 joined #lisp 2018-08-13T10:45:57Z Shinmera: It's not necessarily the case that a finalizer is registered as a root, it just needs to be treated specially since, yes, usually cyclic references in objects are freed just fine. 2018-08-13T10:46:29Z v0|d: In C++, finalizer is not linked to the object itself right? (ie in vtable) 2018-08-13T10:46:49Z phoe: Yep - it doesn't really have to be registered anywhere, but the GC needs to know where it is and how to fire it. 2018-08-13T10:47:17Z v0|d: Interesting. 2018-08-13T10:47:29Z v0|d: So you say, a gf finalizer would be linked to the object. 2018-08-13T10:47:42Z v0|d: I didn't know that. 2018-08-13T10:47:45Z fikka quit (Ping timeout: 244 seconds) 2018-08-13T10:47:53Z Shinmera: GFs have nothing to do with it 2018-08-13T10:48:04Z Shinmera: If a function is called with an argument, that argument has to exist. 2018-08-13T10:48:13Z Shinmera: If it exists, it's not garbage. 2018-08-13T10:48:21Z Fare quit (Ping timeout: 240 seconds) 2018-08-13T10:49:34Z v0|d: This boils down to defining a separate environment for GC and migration objs to it. 2018-08-13T10:49:35Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-13T10:50:00Z v0|d: s/migration/migrating/g 2018-08-13T10:51:40Z JuanDaugherty quit (Quit: Exeunt) 2018-08-13T10:55:26Z hvxgr_ quit (Quit: leaving) 2018-08-13T10:55:42Z dddddd joined #lisp 2018-08-13T10:55:58Z hvxgr quit (Quit: leaving) 2018-08-13T10:57:38Z v0|d: Thnx for all the help. 2018-08-13T10:59:16Z makomo quit (Ping timeout: 256 seconds) 2018-08-13T10:59:48Z makomo joined #lisp 2018-08-13T11:06:17Z ofi joined #lisp 2018-08-13T11:06:25Z hvxgr joined #lisp 2018-08-13T11:08:35Z no-defun-allowed: I keep reading girlfriend finaliser. 2018-08-13T11:08:54Z phoe: oh gods no 2018-08-13T11:09:01Z no-defun-allowed: It's very odd. 2018-08-13T11:10:28Z beach: no-defun-allowed: It's because, for some reason, people don't use Emacs abbrevs. Don't ask me why. 2018-08-13T11:12:08Z no-defun-allowed: GF is also generic function I guess? 2018-08-13T11:12:19Z beach: You think? 2018-08-13T11:12:27Z no-defun-allowed: I do? 2018-08-13T11:14:18Z jackdaniel: beach: not everyone use emacs for irc, that could be the reason 2018-08-13T11:14:48Z heisig: From the spec: "A girlfriend is a function whose behavior depends on the classes or identities of the arguments supplied to it." Well put :) 2018-08-13T11:18:09Z fikka joined #lisp 2018-08-13T11:25:16Z phoe: No doubt that Lisp isn't all that popular if Lisp programmers finalize their girlfriends 2018-08-13T11:25:45Z beach: jackdaniel: Then they should use the equivalent of Emacs abbrevs in the IRC client they are using. 2018-08-13T11:27:02Z gravicappa quit (Ping timeout: 256 seconds) 2018-08-13T11:31:14Z unanimousarc quit (Remote host closed the connection) 2018-08-13T11:34:56Z heisig: Does anyone know a good library for type inference in Lisp? I'd like to have something like (infer-type 'cl:floor 'double-float) -> '(integer double-float). 2018-08-13T11:35:26Z no-defun-allowed: I can't convince my girlfriend to learn Lisp. 2018-08-13T11:35:58Z no-defun-allowed: There's a chatroom with two other lispers, me and her and she hasn't been converted yet. 2018-08-13T11:38:37Z v0|d: no-defun-allowed: according to the definition, try supplying a proper argument to her. 2018-08-13T11:39:20Z v0|d: sry for causing this nonsense, I'll be more careful next time. 2018-08-13T11:40:11Z no-defun-allowed: Interesting. 2018-08-13T11:40:45Z no-defun-allowed: Ooh I know. 2018-08-13T11:40:45Z no-defun-allowed: (coerce (get 'no-defun-allowed 'girlfriend) 'lisp-weenie) 2018-08-13T11:45:12Z MichaelRaskin quit (Quit: MichaelRaskin) 2018-08-13T11:45:26Z no-defun-allowed: COERCE isn't usually destructive so just imagine I setf (get ...) too. 2018-08-13T11:47:50Z schweers joined #lisp 2018-08-13T11:55:58Z scymtym quit (Remote host closed the connection) 2018-08-13T11:56:10Z TMA: no-defun-allowed: and then the old girlfriend would be garbage collected and possibly finalized. may I suggest CHANGE-CLASS instead? 2018-08-13T11:57:37Z no-defun-allowed: Alright 2018-08-13T11:57:39Z no-defun-allowed: (change-class girlfriend 'lisp-weenie) it is. 2018-08-13T11:57:41Z orivej joined #lisp 2018-08-13T12:00:28Z scymtym joined #lisp 2018-08-13T12:01:14Z no-defun-allowed: I'll try (funcall girlfriend '(lisp is way more fun than css)) actually 2018-08-13T12:05:17Z rumbler31 joined #lisp 2018-08-13T12:12:30Z rumbler31 quit (Remote host closed the connection) 2018-08-13T12:17:21Z rumbler31 joined #lisp 2018-08-13T12:24:57Z makomo quit (Ping timeout: 240 seconds) 2018-08-13T12:26:26Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-13T12:34:18Z pjb joined #lisp 2018-08-13T12:35:53Z Kevslinger joined #lisp 2018-08-13T12:40:48Z quipa joined #lisp 2018-08-13T12:41:05Z makomo joined #lisp 2018-08-13T12:47:40Z fikka quit (Ping timeout: 272 seconds) 2018-08-13T12:57:39Z Bike joined #lisp 2018-08-13T13:01:50Z hjudt: why do some programmers use keyword prefixes in loop? e.g. (loop :with manual-names...) 2018-08-13T13:03:59Z Shinmera: they think it looks better 2018-08-13T13:04:10Z hjudt: holy cow 2018-08-13T13:07:20Z shrdlu68: Such is man's perversity. 2018-08-13T13:09:00Z hjudt: lol 2018-08-13T13:11:15Z fikka joined #lisp 2018-08-13T13:13:09Z LiamH joined #lisp 2018-08-13T13:14:38Z phoe: heisig: hm 2018-08-13T13:14:39Z phoe: clhs floor 2018-08-13T13:14:39Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_floorc.htm 2018-08-13T13:15:19Z phoe: heisig: you basically want a mechanism for fetching ftypes, correct? 2018-08-13T13:15:40Z phoe: ...oh, not necessarily 2018-08-13T13:15:58Z fikka quit (Ping timeout: 256 seconds) 2018-08-13T13:15:59Z FreeBirdLjj joined #lisp 2018-08-13T13:16:47Z fikka joined #lisp 2018-08-13T13:17:23Z phoe: heisig: you could base one on top of some mechanism that is based on ftypes 2018-08-13T13:17:36Z phoe: SBCL has especially good inference, so it should be able to help you with that 2018-08-13T13:19:51Z rumbler31 quit (Remote host closed the connection) 2018-08-13T13:20:22Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-13T13:21:30Z heisig: phoe: I already considered using SBCL internals. But I also like to have things portable. Maybe a mix of both. 2018-08-13T13:22:52Z phoe: It seems that SBCL's mechanism is *highly* internal, at least judging by the name 2018-08-13T13:22:55Z phoe: #'sb-impl::%fun-type 2018-08-13T13:25:01Z pjb: hjudt: this is because loop keywords are not exported from CL. Therefore they can be exported from other packages. 2018-08-13T13:25:16Z pjb: hjudt: for example, you could have a package exporting for, while, collect, etc. 2018-08-13T13:26:06Z pjb: hjudt: in that case, if you write a loop in your package without using KEYWORD, you intern symbols with those names in your package. Then if you use-package the package that exports symbols with the same name, you get collisions! 2018-08-13T13:26:10Z phoe: hjudt: loop doesn't care which package its keywords come from 2018-08-13T13:26:19Z pjb: But use-package does. 2018-08-13T13:26:24Z phoe: these keywords aren't even exported from CL package 2018-08-13T13:26:34Z pjb: which is the problem. 2018-08-13T13:26:54Z phoe: (loop #:for i #:in '(1 2 3 4 5) #:do (print i)) is valid 2018-08-13T13:27:05Z pjb: but ugly. 2018-08-13T13:27:16Z phoe: (loop :for i :in '(1 2 3 4 5) :do (print i)) 2018-08-13T13:27:20Z phoe: the only difference is ### 2018-08-13T13:27:23Z pjb: is a good compomise. 2018-08-13T13:27:25Z pjb: +t 2018-08-13T13:27:28Z pjb: s/t/r/ 2018-08-13T13:28:20Z phoe: well 2018-08-13T13:28:24Z phoe: (loop #.(make-symbol "FOR") i #.(make-symbol "IN") '(1 2 3 4 5) #.(make-symbol "DO") (print i)) 2018-08-13T13:28:29Z pjb: and for the people who find that loop is not lispy enough, using KEYWORDS instead of symbols makes it look more or less like an operator with &key arguments :-) 2018-08-13T13:30:31Z pjb: (loop ⟳for i ⟳in '(1 2 3 4) ⟳do (print i)) 2018-08-13T13:30:51Z pjb: with ⟳ being an adequate reader macro. 2018-08-13T13:31:00Z mason: http://www.paulgraham.com/loop.html 2018-08-13T13:31:28Z MoziM quit (Quit: WeeChat 2.2) 2018-08-13T13:34:06Z kajo quit (Ping timeout: 256 seconds) 2018-08-13T13:34:10Z arbv joined #lisp 2018-08-13T13:34:53Z arkaros joined #lisp 2018-08-13T13:35:30Z igemnace joined #lisp 2018-08-13T13:38:32Z light2yellow joined #lisp 2018-08-13T13:38:56Z unanimousarc joined #lisp 2018-08-13T13:38:59Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-13T13:41:07Z phoe: Actually, does the exist a TRIVIAL-FTYPE library? 2018-08-13T13:41:20Z phoe: Something that would allow me to (trivial-ftype:function-ftype #'phase) ;=> (FUNCTION (T) (VALUES (OR (DOUBLE-FLOAT -3.141592653589793d0 3.141592653589793d0) SINGLE-FLOAT) &OPTIONAL)) 2018-08-13T13:42:01Z phoe: There is CL:TYPE-OF, but for functions, it returns the type, not the ftype. 2018-08-13T13:42:10Z phoe: and the type isn't all that interesting - it's FUNCTION 2018-08-13T13:42:22Z Shinmera: phoe: cltl2's function-information does what you want 2018-08-13T13:42:23Z phoe: s/the/there/ 2018-08-13T13:42:26Z phoe: Shinmera: ! 2018-08-13T13:43:25Z warweasle joined #lisp 2018-08-13T13:43:46Z AeroNotix: Using keywords in LOOP makes it more readable. Less symbol soup. 2018-08-13T13:44:05Z phoe: Shinmera: ...kinda. 2018-08-13T13:44:09Z phoe: (FTYPE FUNCTION (NUMBER) (VALUES NUMBER &OPTIONAL)) 2018-08-13T13:44:11Z AeroNotix: It's already one of the most unreadable forms you can use, anything to make it more readable helps 2018-08-13T13:44:24Z phoe: That's what it returns. That's the declared type, not the inferred type. 2018-08-13T13:46:17Z AeroNotix: heisig: out of interest what you are writing that will use the inferred types? 2018-08-13T13:50:37Z jackdaniel: AeroNotix: I suspect he investigates options to improve petalisp performance 2018-08-13T13:50:39Z jackdaniel: https://github.com/marcoheisig/Petalisp ← 2018-08-13T13:50:41Z heisig: AeroNotix: In Petalisp (https://github.com/marcoheisig/Petalisp), I JIT-compile array definitions to fast specialized code. To do so, I need to know that adding floats produces floats and so on. 2018-08-13T13:50:52Z jackdaniel: spot-on :-) 2018-08-13T13:51:36Z heisig: :) 2018-08-13T13:52:52Z heisig: Ideally, I could also use type inference to prevent code like (+ "foo" 5) from ever being run. Run-time errors in distributed systems are not pretty. 2018-08-13T13:54:44Z pierpal quit (Quit: Poof) 2018-08-13T13:55:00Z pierpal joined #lisp 2018-08-13T13:56:59Z Denommus joined #lisp 2018-08-13T13:57:31Z arkaros quit (Read error: Connection reset by peer) 2018-08-13T13:57:42Z arkaros joined #lisp 2018-08-13T14:00:36Z arkaros quit (Read error: Connection reset by peer) 2018-08-13T14:00:44Z Inline joined #lisp 2018-08-13T14:00:52Z arkaros joined #lisp 2018-08-13T14:02:26Z mindCrime quit (Ping timeout: 256 seconds) 2018-08-13T14:02:35Z tralala quit (Ping timeout: 240 seconds) 2018-08-13T14:03:35Z AeroNotix: heisig: very cool 2018-08-13T14:04:58Z heisig: AeroNotix: Thanks! 2018-08-13T14:08:24Z Bronsa joined #lisp 2018-08-13T14:12:30Z fikka quit (Ping timeout: 256 seconds) 2018-08-13T14:15:52Z heisig quit (Quit: Leaving) 2018-08-13T14:28:06Z charh joined #lisp 2018-08-13T14:29:58Z felideon left #lisp 2018-08-13T14:31:56Z fikka joined #lisp 2018-08-13T14:33:48Z FreeBirdLjj joined #lisp 2018-08-13T14:35:01Z quipa quit (Quit: Leaving) 2018-08-13T14:42:18Z mindCrime joined #lisp 2018-08-13T14:47:13Z Copenhagen_Bram quit (Ping timeout: 260 seconds) 2018-08-13T14:48:24Z ofi quit (Read error: Connection reset by peer) 2018-08-13T14:52:05Z jusss joined #lisp 2018-08-13T14:52:12Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-13T14:56:22Z jusss quit (Client Quit) 2018-08-13T14:58:47Z TMA quit (Ping timeout: 268 seconds) 2018-08-13T14:59:49Z jusss joined #lisp 2018-08-13T15:01:13Z arkaros quit (Ping timeout: 260 seconds) 2018-08-13T15:02:25Z jusss quit (Client Quit) 2018-08-13T15:07:24Z housel joined #lisp 2018-08-13T15:08:54Z fikka quit (Ping timeout: 272 seconds) 2018-08-13T15:11:41Z Copenhagen_Bram joined #lisp 2018-08-13T15:15:51Z schweers quit (Ping timeout: 240 seconds) 2018-08-13T15:20:21Z rumbler31 joined #lisp 2018-08-13T15:21:28Z Fare joined #lisp 2018-08-13T15:24:49Z rumbler31 quit (Ping timeout: 248 seconds) 2018-08-13T15:26:38Z dwrngr joined #lisp 2018-08-13T15:28:13Z rippa joined #lisp 2018-08-13T15:28:43Z arkaros joined #lisp 2018-08-13T15:30:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-13T15:32:30Z chipolux joined #lisp 2018-08-13T15:32:57Z arkaros quit (Ping timeout: 240 seconds) 2018-08-13T15:33:26Z yozefCatina joined #lisp 2018-08-13T15:33:26Z test1600 joined #lisp 2018-08-13T15:34:24Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-13T15:37:26Z ft_ is now known as ft 2018-08-13T15:43:48Z ym: Is there any tool to visualize AST/ASG of LISP code so that it would be displayed as interactive graph like in modern visual programming DSLs? 2018-08-13T15:43:48Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-08-13T15:44:32Z phoe: ym: which modern visual programming DSLs? 2018-08-13T15:45:38Z slyrus1: scymtym: thanks! do you have a preference for merging the PR vs just pushing a (cleaned up) commit to master? 2018-08-13T15:45:48Z phoe: ym: I somehow don't find the right side of https://raw.githubusercontent.com/cuichaox/visual-cells/master/demo/slime-screenshot.png readable at all 2018-08-13T15:45:49Z ym: phoe, AudioMulch for example. 2018-08-13T15:46:31Z phoe: it's not suitable for Lisp code. 2018-08-13T15:46:55Z phoe: it's a good way of turning four lines of readable code into half a screen of unreadable graph, as you can see above. 2018-08-13T15:47:21Z phoe: AudioMulch graphs look like https://dt7v1i9vyp3mf.cloudfront.net/styles/news_large/s3/imagelibrary/A/AudioMulch_02-gbYbMLm8pnWEMgVxdy.HhJMb4U0R8x_l.jpg - this looks not like Lisp code at all. 2018-08-13T15:47:34Z phoe: if anything, these are named boxes with some inputs and outputs. 2018-08-13T15:49:05Z pjb: ym: there were such tools in Genera, but currently, there's nothing interactive AFAIK. 2018-08-13T15:49:46Z JuanDaugherty joined #lisp 2018-08-13T15:49:46Z pjb: (at least, opensource). 2018-08-13T15:49:54Z pjb: https://www.youtube.com/watch?v=1bRFrXDriuo 2018-08-13T15:49:55Z ym: Yep, I also found only very old abandoned examples. 2018-08-13T15:50:54Z fikka joined #lisp 2018-08-13T15:51:07Z pjb: The thing is that things are un flux. There are various user interface toolkits, but they're usually hard to use natively (despite CL libraries). There's CLIM, but AFAIUI, McCLIM is being rewritten. 2018-08-13T15:51:41Z pjb: This should not prevent you to use it, but it probably means "batteries NOT included". 2018-08-13T15:52:25Z pjb: And if you wanted to put the GUI on a tablet, then we don't have many CL implementations running there either, and it's awkward. 2018-08-13T15:55:20Z FreeBirdLjj joined #lisp 2018-08-13T15:55:50Z ym: I'm aware of McCLIM. Don't like it's framework nature, too overthinked protocol. I want just zoom in/out the depth of code represented in network graph in respect to packages/function nesting for example. For me it's most comfortable way of getting a fast glance of system structure. 2018-08-13T15:55:54Z fikka quit (Ping timeout: 265 seconds) 2018-08-13T15:55:58Z scymtym: slyrus1: i think either is fine 2018-08-13T15:57:29Z slyrus1: scymtym: merged. thanks! 2018-08-13T15:58:25Z pjb: If you don't need sophiticated user interaction, people often use secundary programs to render the graph, such as GraphViz, displaying it as a bitmap. 2018-08-13T15:59:02Z cage_ joined #lisp 2018-08-13T16:02:35Z ym: Some good guy from here shared his graph visualization program (cl-frame.lisp). That's enough to start with, but I'm just can't get why such useful features aren't widespread. 2018-08-13T16:03:02Z shlecta joined #lisp 2018-08-13T16:04:20Z fikka joined #lisp 2018-08-13T16:09:18Z pjb: ym: that's because, as I've said, there has been and still is a lot of changes in the graphic and UI technologies. 2018-08-13T16:09:39Z pjb: So bit rot occurs quick. 2018-08-13T16:11:51Z pjb: Also, you'd have to choose a platform for it. (asuming you cannot write versions for all the platforms). A lot of lispers use macOS. Another big share use linux. 2018-08-13T16:12:26Z pjb: More of them use emacs. Perhaps this would be the right choice of a platform for such tools. 2018-08-13T16:12:32Z asarch joined #lisp 2018-08-13T16:12:44Z yozefCatina quit (Remote host closed the connection) 2018-08-13T16:16:56Z ym: Well, I don't get this software "evolution" tendency either. I thought that layers of abstraction should hide implementation details and provide simple interface. Like 20 years ago I was able to write SCREEN 12 CRICLE (320, 240), 32 in QBasic to ouput a circle. And now I have to struggle with X protocol, CLX, write over 20 SLOC to make the same. 2018-08-13T16:17:03Z fikka quit (Ping timeout: 260 seconds) 2018-08-13T16:18:29Z fouric joined #lisp 2018-08-13T16:20:48Z whartung quit (Quit: whartung) 2018-08-13T16:20:52Z fouric: would anyone happen to know how i can disable SBCL's automatic 80-column wrapping? 2018-08-13T16:21:47Z fouric quit (Quit: WeeChat 2.2) 2018-08-13T16:24:38Z fouric joined #lisp 2018-08-13T16:25:50Z edgar-rft: fouric: have you already tried to change *print-right-margin*? 2018-08-13T16:26:50Z ym: I think it's (defconstant default-line-length 80) in src/code/early-pprint.lisp. 2018-08-13T16:27:12Z phoe: yes, but AfAIK later that's customizable via *print-right-margin* 2018-08-13T16:28:25Z fouric: i did not! that works well enough for now, thanks! 2018-08-13T16:28:39Z fouric: (and yes i did google it but did not find that variable) 2018-08-13T16:29:52Z fouric sets to 1000 2018-08-13T16:30:13Z gendl: Hi, what different conditions or parameter settings can cause (format nil "~t" some-variable) to give different amounts of spacing? 2018-08-13T16:31:37Z gendl: I think wrapping (with-standard-io-syntax ...) around it will make it work the same in both cases I'm seeing. But without with-standard-io-syntax, the ~t seems to be generating different amounts of whitespace. 2018-08-13T16:32:51Z whartung joined #lisp 2018-08-13T16:33:01Z phoe: clhs ~t 2018-08-13T16:33:02Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/22_cfa.htm 2018-08-13T16:33:35Z pjb: ym: you're right but in the case of UI, there are yearly fads, it's not software, it's fashion. 2018-08-13T16:33:38Z phoe: gendl: different amounts of whitespace? could you provide a test case? 2018-08-13T16:34:08Z pjb: ym: I would be the last to reproach you to have an "ugly" or "dated" look in your app. 2018-08-13T16:34:40Z gendl: phoe: I'll try. I'm just looking at static customer code right now, without the ability to run it in their environment... 2018-08-13T16:35:04Z pjb: ym: strugglying with X11 would be nothing (and very dated!) Nowadays, you'd have to do this in 3D with OpenGL, etc… 2018-08-13T16:37:48Z ym: Oh, no. OpenGL is way more horrible thing in this perspective. There is known reason why CS/IT stuff getting worse, but that's off-topic. 2018-08-13T16:41:04Z pjb: gendl: the purpose of ~T is to generate different amounts of spaces! 2018-08-13T16:41:20Z pjb: If it generated always the same amount, it would be bad. 2018-08-13T16:42:06Z gendl: pjb: that's what I'm gathering... 2018-08-13T16:42:19Z gendl: it should go to the next "tab stop," right? 2018-08-13T16:42:48Z pjb: Yes, something like that (it doesn't assume tabs, but yes). 2018-08-13T16:43:27Z gigetoo quit (Ping timeout: 240 seconds) 2018-08-13T16:45:15Z slyrus1 quit (Quit: slyrus1) 2018-08-13T16:45:23Z gypsydave5 joined #lisp 2018-08-13T16:45:48Z varjag joined #lisp 2018-08-13T16:46:56Z slyrus1 joined #lisp 2018-08-13T16:47:19Z dkrm quit (Quit: WeeChat 2.2) 2018-08-13T16:48:33Z ft quit (Ping timeout: 260 seconds) 2018-08-13T16:49:32Z ft joined #lisp 2018-08-13T16:50:01Z gendl: Ok i have an example which shows different output with & without with-standard-io-syntax 2018-08-13T16:50:07Z gendl: how can i paste a code snippet here, I forgot... 2018-08-13T16:50:29Z gendl: https://www.irccloud.com/pastebin/kzZAZveR/ 2018-08-13T16:50:38Z gendl: ok looks like IRCCloud did it for me... 2018-08-13T16:51:55Z gendl: So when I wrap this with w-s-io-s, the output has more whitespace (I can post the actual output if that helps) 2018-08-13T16:51:59Z phoe: https://plaster.tymoon.eu/view/871#871 2018-08-13T16:52:08Z gravicappa joined #lisp 2018-08-13T16:52:39Z phoe: Can't see it just yet 2018-08-13T16:53:02Z gendl: phoe: So you're getting identical outputs with & without w-s-io-s, right? 2018-08-13T16:53:13Z phoe: gendl: yes, I am 2018-08-13T16:53:16Z gendl: so it means there's something non-standard in my environment. 2018-08-13T16:53:33Z phoe: These two strings are identical 2018-08-13T16:54:40Z gendl: https://www.irccloud.com/pastebin/x3y3WTOW/ 2018-08-13T16:55:12Z phoe: gendl: please post both resulting strings. 2018-08-13T16:55:27Z gendl: with w-s-io-s: 2018-08-13T16:55:33Z gendl: https://www.irccloud.com/pastebin/O65XmKoT/ 2018-08-13T16:55:37Z gendl: without w-s-io-s: 2018-08-13T16:55:49Z gendl: https://www.irccloud.com/pastebin/Wr6cUedO/ 2018-08-13T16:56:23Z test1600_ joined #lisp 2018-08-13T16:57:13Z chipolux quit (Ping timeout: 272 seconds) 2018-08-13T16:57:16Z dkrm joined #lisp 2018-08-13T16:57:40Z pjb: I don't see any difference: https://pastebin.com/wwaWzZDg 2018-08-13T16:57:57Z phoe: gendl: can you give me the result of (list *print-lines* *print-miser-width* *print-pprint-dispatch* *print-right-margin* *print-level* *print-length* *print-lines* *print-circle* *print-escape* *print-pretty*) ? 2018-08-13T16:58:01Z phoe: Both with w-s-io-s and without it. 2018-08-13T16:58:47Z pjb: gendl: on the other hand, you have newlines and tabs in your format strings. The newlines are ok but you may prefer explicit ~%. The tabs are bad since they're so implementation dependent. 2018-08-13T16:59:06Z gendl: https://www.irccloud.com/pastebin/cCuD2vsr/ 2018-08-13T16:59:42Z gendl: looks like *print-pretty* is different, and the *print-pprint-dispatch* is different. 2018-08-13T17:00:03Z phoe: The dispatch table is expected to be different. *print-pretty*, hmm. 2018-08-13T17:00:13Z test1600 quit (Ping timeout: 260 seconds) 2018-08-13T17:00:14Z gendl: let me try with setting *print-pretty* to nil. 2018-08-13T17:00:42Z pjb: gendl: In general, I would avoid with-standard-io-syntax. Instead, I would define my own macro setting all the variables as I want them. 2018-08-13T17:00:53Z phoe: gendl: what's your implementation? 2018-08-13T17:01:08Z gendl: Allegro CL 10.1 Windows. 2018-08-13T17:01:25Z gendl: customer is running ANSI mode, I happen to be running modern-mode here (probably bad, I know) 2018-08-13T17:02:17Z gendl: Looks like *print-pretty* is the culprit: 2018-08-13T17:02:23Z gendl: https://www.irccloud.com/pastebin/RAtNWHls/ 2018-08-13T17:03:07Z phoe: ...one more question. 2018-08-13T17:03:10Z gendl: The customer is comparing output from our previous version which was Allegro CL 9 (32-bit), vs. our new version they're trying to get into production, which is Allegro 10.1 (64-bit). 2018-08-13T17:03:17Z phoe: Why is your printed string so far to the right? 2018-08-13T17:03:27Z phoe: There's a *lot* of tabulation on its left side. 2018-08-13T17:03:29Z gendl: and their regression test is flagging these differences. 2018-08-13T17:04:16Z gendl: phoe: In my function `try' there is a lot of whitespace to the left of all but the first line. 2018-08-13T17:04:18Z pjb: also, why do you want to use so many format specifiers? https://pastebin.com/eZqM74JU 2018-08-13T17:04:49Z gendl: Should the ~1t force it into column 1, even with all the leading whitespace in the format string? 2018-08-13T17:05:00Z phoe: gendl: running your function produces no left-side whitespace here on SBCL. 2018-08-13T17:05:16Z Fare joined #lisp 2018-08-13T17:05:40Z gendl: Hmm. Well apparently on Allegro it does, even with w-s-io-s. 2018-08-13T17:06:26Z gendl: But you're right, that doesn't look right. The ======... should obviously be just below the title. 2018-08-13T17:06:34Z phoe: https://plaster.tymoon.eu/view/872#872 2018-08-13T17:07:21Z gendl: pjb: It's not a matter of what I want -- this is customer code, i have no control over it. (I can make recommendations to them, though). 2018-08-13T17:07:44Z phoe: Actually. 2018-08-13T17:08:00Z phoe: If the behavior of that code changed between different versions of Allegro CL, then I'd ask Franz for clarification. 2018-08-13T17:08:17Z phoe: This is 100% standard code. Its behavior should not change, other than for bugfixes. 2018-08-13T17:08:29Z housel quit (Read error: Connection reset by peer) 2018-08-13T17:08:37Z phoe: And bugfixes should be noted in some kind of release notes. 2018-08-13T17:08:56Z housel joined #lisp 2018-08-13T17:09:36Z pjb: gendl: the principle of software is that it should be soft and easily (cheaply) modifiable. 2018-08-13T17:10:23Z gendl: phoe: Before I go blaming Franz I have to make sure we didn't inadvertently change *print-miser-width* or *print-pretty* in our stuff. 2018-08-13T17:10:25Z pjb: gendl: otherwise, I would write the code to format tables from raw data and headers, without pre-conceived format. The format would be computed automatically from the data. 2018-08-13T17:10:31Z phoe: gendl: yes, that's correct. 2018-08-13T17:11:32Z Bike_ joined #lisp 2018-08-13T17:11:35Z pjb: gendl: notice in my example, that you only have 2 formats: ~A for strings, which should not depend on *print- vars, and ~6,3f. If you get your 6 characters, then this format should not depend on the other *print- variables either. 2018-08-13T17:11:48Z Bike quit (Disconnected by services) 2018-08-13T17:11:48Z phoe: gendl: nonetheless, neither SBCL or ECL show the left-side tabulation. 2018-08-13T17:11:51Z Bike_ is now known as Bike 2018-08-13T17:11:53Z pjb: What I'm saying, is patch your source, it's bad. 2018-08-13T17:12:30Z gendl: pjb: thanks, I'll tell them. 2018-08-13T17:12:32Z phoe: ...and if this is code written by the customer, make a shameless suggestion to them to patch it. 2018-08-13T17:12:51Z phoe: I'm still very curious about FORMAT behavior though. 2018-08-13T17:12:59Z phoe: It differs between SBCL/ECL and ACL here. 2018-08-13T17:13:50Z vibs29 quit (Ping timeout: 268 seconds) 2018-08-13T17:14:42Z gendl: https://www.irccloud.com/pastebin/156fOcoY/ 2018-08-13T17:15:47Z vibs29 joined #lisp 2018-08-13T17:16:22Z gypsydave5 quit (Remote host closed the connection) 2018-08-13T17:16:56Z pjb: gendl: since you only have absolute ~T directive, preceded only by literal strings (and absolute ~T directives), (apart for the ~F and ~A that are trivial), then I would say that if you get bad results, it's a bug in the implementation. 2018-08-13T17:18:53Z gendl: *print-pretty* is supposed to be nil by default, right? I'm noticing in Allegro CL 10.1, *print-pretty* is t, out of the starting gate. 2018-08-13T17:19:02Z AeroNotix: Better way to get parity than: (logxor 1 (logand 1 (logcount x))) ? 2018-08-13T17:19:11Z pjb: evenp 2018-08-13T17:19:14Z gendl: And the difference between having it t and nil is causing the differences which the customer is reporting. 2018-08-13T17:19:24Z gendl: Apparently *print-pretty* was defaulting to nil in Allegro 9. 2018-08-13T17:19:25Z m00natic quit (Read error: Connection reset by peer) 2018-08-13T17:19:34Z AeroNotix: duh 2018-08-13T17:19:50Z pjb: AeroNotix: and for oddness: oddp 2018-08-13T17:20:14Z AeroNotix: aye, understood. I've been stuck thinking in bits all day 2018-08-13T17:20:18Z gendl: Also *print-miser-width* looks like it was nil in Allegro 9 and 40 in Allegro 10.1. 2018-08-13T17:20:29Z gendl: Unless I'm doing something quite stupid or really missing something. 2018-08-13T17:21:01Z pjb: AeroNotix: So (evenp (logcount n)) 2018-08-13T17:21:28Z phoe: gendl: check ANSI mode. 2018-08-13T17:22:21Z gendl: https://www.irccloud.com/pastebin/3G46MC2q/ 2018-08-13T17:22:25Z phoe: The default values for *print-miser-width* and *print-pretty* are implementation-dependent. 2018-08-13T17:22:39Z gendl: That is starting alisp -qq to make sure no init files are loaded. 2018-08-13T17:22:39Z phoe: So they are allowed to change between implementation versions. 2018-08-13T17:23:15Z sjl joined #lisp 2018-08-13T17:23:22Z AeroNotix: pjb: thanks yeah 2018-08-13T17:23:48Z gendl: According to this: http://clhs.lisp.se/Body/m_w_std_.htm 2018-08-13T17:24:00Z gendl: the values are set out in the standard -- nil for both. 2018-08-13T17:24:26Z gendl: But if you look at the actual documentation for *print-pretty* and *print-miser-width*, they both do say the initial value is implementation-dependent. 2018-08-13T17:24:38Z gendl: That looks like kind of inconsistency in the hyperspec, is it? 2018-08-13T17:24:54Z trittweiler: standard != initial :) 2018-08-13T17:25:04Z laurus joined #lisp 2018-08-13T17:25:07Z gendl: trittweiler: Hrmp. I see. 2018-08-13T17:25:15Z laurus: Is there a lisp-friendly paste site? 2018-08-13T17:25:40Z trittweiler: there are more instances where that's the case. The initial readtable versus (copy-readtable nil), perhaps. (Haven't checked) 2018-08-13T17:26:00Z phoe: laurus: https://plaster.tymoon.eu/ 2018-08-13T17:26:02Z gendl: So 'standard' is what you get with with-standard-io-syntax, but any given vendor can ship an image with non-standard initial values. Got it. 2018-08-13T17:26:12Z laurus: Thank you phoe! 2018-08-13T17:26:20Z gendl: And no guaranteed that those values stay the same from release to release. 2018-08-13T17:26:28Z phoe: gendl: correct 2018-08-13T17:26:53Z phoe: (with-acl9-io-syntax ...) 2018-08-13T17:26:54Z phoe: (: 2018-08-13T17:27:51Z pjb: laurus: https://lpaste.net has a CL option. 2018-08-13T17:28:00Z laurus: Thanks pjb 2018-08-13T17:28:02Z laurus: :) 2018-08-13T17:29:45Z arkaros joined #lisp 2018-08-13T17:29:46Z pierpal quit (Quit: Poof) 2018-08-13T17:30:06Z pierpal joined #lisp 2018-08-13T17:31:00Z kajo joined #lisp 2018-08-13T17:33:33Z gendl: And Thanks pjb :). 2018-08-13T17:33:39Z gendl: and Thanks phoe. 2018-08-13T17:33:49Z gendl: and thanks trittweiler. 2018-08-13T17:34:34Z arkaros quit (Ping timeout: 272 seconds) 2018-08-13T17:37:56Z mindCrime_ joined #lisp 2018-08-13T17:38:57Z payphone_ joined #lisp 2018-08-13T17:39:36Z payphone quit (Read error: Connection reset by peer) 2018-08-13T17:40:30Z fikka joined #lisp 2018-08-13T17:40:49Z mindCrime quit (Ping timeout: 248 seconds) 2018-08-13T17:41:10Z phoe: no problem 2018-08-13T17:42:21Z laurus left #lisp 2018-08-13T17:45:51Z mathrick quit (Ping timeout: 240 seconds) 2018-08-13T17:45:54Z fikka quit (Ping timeout: 268 seconds) 2018-08-13T17:45:59Z snits joined #lisp 2018-08-13T17:46:50Z gendl: Disclaimer: it looks like those *print-pretty* and *print-miser-width* might not have changed between Allegro 9 and Allegro 10. I don't want to give wrong information here. 2018-08-13T17:47:54Z gendl: I have to sort out a few things to confirm (I don't have my Allegro 9 handy here) but it looks like (list *print-pretty* *print-miser-width*) have been (t 40) all along, in Allegro. 2018-08-13T18:00:18Z kajo quit (Ping timeout: 256 seconds) 2018-08-13T18:01:25Z fikka joined #lisp 2018-08-13T18:01:34Z pjb: gendl: https://lpaste.net/661814517117747200 2018-08-13T18:02:47Z gravicappa quit (Ping timeout: 244 seconds) 2018-08-13T18:03:38Z gendl: pjg: wow, thank you! May I pass this on to them (and mention your name of course) 2018-08-13T18:03:54Z gendl: pjb: typo, see above 2018-08-13T18:04:30Z pjb: Sure. 2018-08-13T18:05:30Z fzac joined #lisp 2018-08-13T18:05:51Z fikka quit (Ping timeout: 240 seconds) 2018-08-13T18:06:01Z mathrick joined #lisp 2018-08-13T18:06:15Z captgector quit (Ping timeout: 272 seconds) 2018-08-13T18:10:25Z gigetoo joined #lisp 2018-08-13T18:14:25Z klltkr: Word 2018-08-13T18:16:37Z arbxs quit (Ping timeout: 256 seconds) 2018-08-13T18:21:17Z arbxs joined #lisp 2018-08-13T18:21:43Z fikka joined #lisp 2018-08-13T18:22:31Z sauvin quit (Read error: Connection reset by peer) 2018-08-13T18:23:58Z Fare quit (Ping timeout: 272 seconds) 2018-08-13T18:26:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-13T18:27:32Z Fare joined #lisp 2018-08-13T18:32:11Z fikka joined #lisp 2018-08-13T18:37:03Z fikka quit (Ping timeout: 260 seconds) 2018-08-13T18:41:58Z fikka joined #lisp 2018-08-13T18:42:05Z test1600_ quit (Ping timeout: 240 seconds) 2018-08-13T18:46:54Z fikka quit (Ping timeout: 256 seconds) 2018-08-13T18:48:31Z DKTH joined #lisp 2018-08-13T18:52:48Z fikka joined #lisp 2018-08-13T18:54:08Z mingus quit (Ping timeout: 256 seconds) 2018-08-13T18:54:27Z gpiero quit (Ping timeout: 244 seconds) 2018-08-13T18:57:40Z fikka quit (Ping timeout: 256 seconds) 2018-08-13T19:02:40Z fikka joined #lisp 2018-08-13T19:05:53Z gurmble joined #lisp 2018-08-13T19:06:35Z grumble is now known as Guest76306 2018-08-13T19:06:35Z Guest76306 quit (Killed (weber.freenode.net (Nickname regained by services))) 2018-08-13T19:06:35Z gurmble is now known as grumble 2018-08-13T19:06:54Z cage_ quit (Quit: Leaving) 2018-08-13T19:07:44Z fikka quit (Ping timeout: 256 seconds) 2018-08-13T19:08:10Z arkaros joined #lisp 2018-08-13T19:10:42Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-13T19:10:42Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-13T19:11:18Z FreeBirdLjj joined #lisp 2018-08-13T19:12:27Z arkaros quit (Ping timeout: 240 seconds) 2018-08-13T19:13:06Z fikka joined #lisp 2018-08-13T19:15:36Z pjb: gendl: sorry, :center was wrong. Here's the correction: https://lpaste.net/4162159592878374912 2018-08-13T19:15:38Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-13T19:15:46Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-13T19:16:36Z gendl: ok! 2018-08-13T19:17:42Z fikka quit (Ping timeout: 244 seconds) 2018-08-13T19:18:11Z lonjil joined #lisp 2018-08-13T19:18:28Z Jesin quit (Remote host closed the connection) 2018-08-13T19:18:44Z grumble quit (Quit: It would appear there's a kernel update) 2018-08-13T19:19:13Z terrorjack_ joined #lisp 2018-08-13T19:20:34Z vlatkoB quit (Remote host closed the connection) 2018-08-13T19:21:21Z grumble joined #lisp 2018-08-13T19:22:58Z fikka joined #lisp 2018-08-13T19:23:51Z TheReal_aijony joined #lisp 2018-08-13T19:24:51Z spaceplu- joined #lisp 2018-08-13T19:25:18Z lonjil2 quit (*.net *.split) 2018-08-13T19:25:18Z Guest25371 quit (*.net *.split) 2018-08-13T19:25:18Z kqr quit (*.net *.split) 2018-08-13T19:25:18Z jasom quit (*.net *.split) 2018-08-13T19:25:18Z kjeldahl quit (*.net *.split) 2018-08-13T19:25:19Z Thorondor[m] quit (*.net *.split) 2018-08-13T19:25:19Z Jach[m] quit (*.net *.split) 2018-08-13T19:25:19Z PyroLagus quit (*.net *.split) 2018-08-13T19:25:20Z thekolb quit (*.net *.split) 2018-08-13T19:25:20Z d4gg4d_ quit (*.net *.split) 2018-08-13T19:25:20Z himmAllRight quit (*.net *.split) 2018-08-13T19:25:20Z terrorjack quit (*.net *.split) 2018-08-13T19:25:20Z aijony quit (*.net *.split) 2018-08-13T19:25:20Z alandipert quit (*.net *.split) 2018-08-13T19:25:20Z spacepluk quit (*.net *.split) 2018-08-13T19:25:21Z TheReal_aijony is now known as aijony 2018-08-13T19:25:21Z Jesin joined #lisp 2018-08-13T19:25:22Z spaceplu- is now known as spacepluk 2018-08-13T19:25:29Z terrorjack_ is now known as terrorjack 2018-08-13T19:26:05Z lavaflow joined #lisp 2018-08-13T19:26:31Z alandipert joined #lisp 2018-08-13T19:28:01Z fikka quit (Ping timeout: 248 seconds) 2018-08-13T19:29:07Z PyroLagus joined #lisp 2018-08-13T19:31:24Z jasom joined #lisp 2018-08-13T19:32:12Z kjeldahl joined #lisp 2018-08-13T19:32:35Z kqr joined #lisp 2018-08-13T19:43:15Z fikka joined #lisp 2018-08-13T19:48:13Z fikka quit (Ping timeout: 260 seconds) 2018-08-13T19:51:16Z jkordani joined #lisp 2018-08-13T19:51:38Z dented42 joined #lisp 2018-08-13T19:52:58Z dented42 quit (Client Quit) 2018-08-13T19:53:25Z dented42 joined #lisp 2018-08-13T19:54:04Z fikka joined #lisp 2018-08-13T19:57:43Z JuanDaugherty quit (Quit: Exeunt) 2018-08-13T19:58:59Z fikka quit (Ping timeout: 272 seconds) 2018-08-13T20:00:58Z MichaelRaskin joined #lisp 2018-08-13T20:02:17Z dented42 quit (Ping timeout: 240 seconds) 2018-08-13T20:03:02Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-13T20:07:02Z pierpal quit (Quit: Poof) 2018-08-13T20:07:22Z pierpal joined #lisp 2018-08-13T20:08:01Z dented42 joined #lisp 2018-08-13T20:10:04Z ebzzry quit (Ping timeout: 256 seconds) 2018-08-13T20:14:02Z fikka joined #lisp 2018-08-13T20:18:05Z fzac quit (Ping timeout: 240 seconds) 2018-08-13T20:19:27Z fikka quit (Ping timeout: 268 seconds) 2018-08-13T20:19:58Z pierpa joined #lisp 2018-08-13T20:22:46Z ebzzry joined #lisp 2018-08-13T20:23:09Z kajo joined #lisp 2018-08-13T20:24:03Z unanimousarc quit (Remote host closed the connection) 2018-08-13T20:34:24Z fikka joined #lisp 2018-08-13T20:34:26Z FreeBirdLjj joined #lisp 2018-08-13T20:34:46Z asarch quit (Quit: Leaving) 2018-08-13T20:38:39Z [X-Scale] joined #lisp 2018-08-13T20:39:20Z fikka quit (Ping timeout: 244 seconds) 2018-08-13T20:39:31Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-13T20:39:36Z [X-Scale] is now known as X-Scale 2018-08-13T20:45:35Z ceevusee joined #lisp 2018-08-13T20:54:59Z fikka joined #lisp 2018-08-13T20:57:50Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-13T20:58:21Z dwrngr quit (Remote host closed the connection) 2018-08-13T21:00:25Z fikka quit (Ping timeout: 272 seconds) 2018-08-13T21:04:36Z shlecta quit (Ping timeout: 256 seconds) 2018-08-13T21:04:50Z jmercouris joined #lisp 2018-08-13T21:06:31Z fikka joined #lisp 2018-08-13T21:09:12Z arkaros joined #lisp 2018-08-13T21:13:37Z arkaros quit (Ping timeout: 248 seconds) 2018-08-13T21:14:46Z AeroNotix: Soo. 2018-08-13T21:15:00Z AeroNotix: What are the chances of a new spec? 2018-08-13T21:15:54Z no-defun-allowed: Good morning everyone! 2018-08-13T21:17:20Z AeroNotix: no-defun-allowed: did you release cl-distribute? 2018-08-13T21:18:06Z Bike: approximately zero 2018-08-13T21:18:09Z ebrasca: Do you have some recomendations to lern programing with tcp? 2018-08-13T21:18:35Z AeroNotix: ebrasca: https://beej.us/guide/bgnet/ 2018-08-13T21:20:07Z _death: the Stevens book.. but if you're looking for a small tutorial, check iolib's 2018-08-13T21:20:08Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-13T21:21:57Z housel: ebrasca: Internetworking with TCP/IP Volume One (and Volume Two) by Douglas E. Comer 2018-08-13T21:25:24Z no-defun-allowed: AeroNotix: yes I did, it's on GitLab 2018-08-13T21:25:25Z ebrasca: I have read some chapters from TCP-IP Illustrated Vol 1.pdf . 2018-08-13T21:25:56Z no-defun-allowed: https://gitlab.com/Theemacsshibe/cl-decentralise 2018-08-13T21:27:17Z ebrasca: no-defun-allowed: I like decentralised programs. 2018-08-13T21:27:30Z no-defun-allowed: I still think there's a few edge cases and stuff that need cleaning up but I'm mostly there. 2018-08-13T21:28:10Z no-defun-allowed: For example, I forgot to respond with "ok ~a" if the versions are equal, which isn't an error but we ignore the "new" version 2018-08-13T21:30:34Z pjb: AeroNotix: the singularity is expected for before a new spec can be developped. 2018-08-13T21:31:00Z AeroNotix: no-defun-allowed: where are the tests? 2018-08-13T21:31:08Z pjb: AeroNotix: the only choice you have, is whether you want the singularity to occur with CL or with python? 2018-08-13T21:31:39Z AeroNotix: I gave up on Python being a good language roughly 1.513 years ago 2018-08-13T21:31:59Z fouric: it doesn't have to be good to be successful is the problem 2018-08-13T21:32:01Z fouric: see: c++ 2018-08-13T21:32:11Z no-defun-allowed: The tests will be surprisingly easy to write actually. 2018-08-13T21:32:25Z housel quit (Remote host closed the connection) 2018-08-13T21:32:51Z housel joined #lisp 2018-08-13T21:33:10Z AeroNotix: I really hate to sound rude but I really get the feeling you're misunderstanding how hard reliably distributing state, consistency and networking issues can be 2018-08-13T21:33:57Z no-defun-allowed: You're probably right. 2018-08-13T21:34:10Z AeroNotix: no-defun-allowed: suggestion: https://github.com/jepsen-io/jepsen 2018-08-13T21:34:54Z AeroNotix: This takes out a lot of the setup/teardown and writing of the actual distributed issues you will see and essentially you will receive just "your code breaks assumptions, xyz, during operations jki" 2018-08-13T21:35:12Z fouric: AeroNotix: i might be wrong, but it doesn't look like cl-decentralize actually handles synchronization? it looks like it's just allowing for message-sending 2018-08-13T21:35:29Z no-defun-allowed: No, it does perform synchronisation. 2018-08-13T21:36:07Z no-defun-allowed: When it finds a new node it asks it for any new messages it has, and compares it to its own. 2018-08-13T21:36:29Z AeroNotix: These two topics are really why I am interested in projects like cl-distribute. 2018-08-13T21:37:12Z AeroNotix: Personally, I find CL would be the perfect language for distributed programming but there are not many genuinely good libraries and some contracts/guarantees are very difficult to implement. 2018-08-13T21:37:16Z AeroNotix: See: erlang 2018-08-13T21:37:36Z no-defun-allowed: cl-decentralise doesn't do any verification or storage of its own, but it can be done trivially. See example.lisp. 2018-08-13T21:38:28Z igemnace quit (Remote host closed the connection) 2018-08-13T21:38:35Z aeth: AeroNotix: What contracts are difficult to implement? 2018-08-13T21:39:23Z AeroNotix: aeth: I'm talking in general of certain kinds of distributed models of programming 2018-08-13T21:39:41Z no-defun-allowed: Well, I had a project which used a simple interpreter which read distributed files to verify data 2018-08-13T21:40:15Z AeroNotix: aeth: oh, btw, I didn't mean difficult to implement *in CL*. I just meant in general 2018-08-13T21:40:20Z no-defun-allowed: Then I decided it was too big and messy so cl-decentralise was attempt at writing a distributing layer which was as small and as simple as possible 2018-08-13T21:40:36Z AeroNotix: no-defun-allowed: right, now prove it works :) 2018-08-13T21:40:41Z makomo: hello o/ 2018-08-13T21:40:53Z xristos quit (Quit: ZNC - http://znc.in) 2018-08-13T21:41:05Z AeroNotix: no-defun-allowed: I'm absolutely sure from reading it that it fails under many kinds of netsplits 2018-08-13T21:41:48Z AeroNotix: no-defun-allowed: though AS WELL, from the code, it looks as if a flavour of raft (et al) would be easily added on top, before reads/writes. 2018-08-13T21:42:02Z no-defun-allowed: Okay, please tell me how to resolve netsplits then. 2018-08-13T21:42:11Z AeroNotix: no-defun-allowed: you need a consensus protocol 2018-08-13T21:42:34Z AeroNotix: because currently, under netsplits your code will accept writes on both sides of the split. Leading to bad inconsistencies. It doesn't matter about versions 2018-08-13T21:42:57Z AeroNotix: imagine a situation where you have clients reading from cl-distribute, and a collection of servers running cl-distribute serving as the client's datastore. 2018-08-13T21:43:36Z jmercouris: you don't need a consensus protocol, you need to distribute the information in a fault tolerant way across the network 2018-08-13T21:43:48Z jmercouris: something like raid iv 2018-08-13T21:44:03Z AeroNotix: jmercouris: same difference 2018-08-13T21:44:05Z jmercouris: and then you need some sort of topology you can overlay on-top of the network to handle failure 2018-08-13T21:44:44Z AeroNotix: I mention raft because without googling I am sure there will be a CL library for it 2018-08-13T21:44:48Z jmercouris: and the topology has to be self-stabilizing, and acyclic 2018-08-13T21:44:50Z AeroNotix: enabling googlevision..... NOW 2018-08-13T21:45:45Z AeroNotix: wow, ok. I might've been wrong on that based on the 12 seconds of googling. Either way... 2018-08-13T21:45:48Z jmercouris: AeroNotix: you can see into the future, truly 2018-08-13T21:46:09Z jmercouris: https://github.com/commonlisp/logcabin 2018-08-13T21:46:32Z jmercouris: no wait, I take it back 2018-08-13T21:46:37Z jmercouris: the username is simply commonlisp lol 2018-08-13T21:46:55Z AeroNotix: hahaha 2018-08-13T21:46:57Z AeroNotix: Still 2018-08-13T21:47:04Z AeroNotix: there will be a C library that's useful. 2018-08-13T21:47:09Z AeroNotix: IT DOESN'T MATTER anyway 2018-08-13T21:47:16Z jmercouris: I personally think this should be handled by the OS 2018-08-13T21:47:21Z jmercouris: something like a cluster running dragonflybsd 2018-08-13T21:47:55Z jmercouris: I guess that is not always an option, say for example, if you are running on a provider cloud 2018-08-13T21:48:20Z AeroNotix: I'm not familiar with dragonflybsd at all. Will add it to the research pile 2018-08-13T21:48:47Z AeroNotix: LWKT, spicy. 2018-08-13T21:49:35Z AeroNotix: no-defun-allowed: the point is, GETTING the data to the various servers in your network is like 1% of the problem. 2018-08-13T21:50:11Z AeroNotix: the other 99% is making sure you provide reliable consistency guarantees. What parts of the CAP theorum do you provide, etc. 2018-08-13T21:50:14Z jmercouris: I think if we operate on the model of a system without faults, it is a relatively easy problem 2018-08-13T21:50:25Z jmercouris: just a simple synchronization that can be achieved by running a sweep through the system 2018-08-13T21:50:42Z jmercouris: as soon as we introduce failure modes of any kind, then the problem becomes infinitely more complex and expensive 2018-08-13T21:50:48Z AeroNotix: jmercouris: things fail 2018-08-13T21:51:03Z AeroNotix: I was running many distributed applications in AWS and I would experience a netsplit probably 1-2 a month 2018-08-13T21:51:11Z jmercouris: yeah, things fail indeed 2018-08-13T21:51:20Z jmercouris: AWS is the worst service the world has ever seen 2018-08-13T21:51:22Z no-defun-allowed: You can put verification in stop-put-p which could handle, for example, ECDSA. 2018-08-13T21:51:28Z jmercouris: the fact that one most get certified in it is evidence of how convoluted it is 2018-08-13T21:51:32Z jmercouris: s/most/must 2018-08-13T21:51:35Z slyrus quit (Quit: slyrus) 2018-08-13T21:51:36Z slyrus1 is now known as slyrus 2018-08-13T21:51:36Z AeroNotix: Well yeah, but AWS really taught me how to handle this kind of shit 2018-08-13T21:51:45Z AeroNotix: jmercouris: ignore the certification bullshite 2018-08-13T21:52:02Z slyrus1 joined #lisp 2018-08-13T21:52:05Z AeroNotix: It's genuinely good if someone else is paying for it 2018-08-13T21:52:33Z jmercouris: AeroNotix: maybe I should give it a try some day, though I'm quite satisfied with bare metal / digital ocean 2018-08-13T21:53:03Z AeroNotix: I've never lost a machine because of AWS' fuckup. I've lost three with DO. Anecdotal information but w/e 2018-08-13T21:53:38Z jmercouris: which datacenter were you using? 2018-08-13T21:53:53Z AeroNotix: various 2018-08-13T21:54:01Z slyrus1 quit (Client Quit) 2018-08-13T21:54:03Z AeroNotix: oh in DO. Amsterdam 2018-08-13T21:54:17Z slyrus1 joined #lisp 2018-08-13T21:54:43Z jmercouris: Hm, I've only been using Frankfurt and NYC, anyways this is a bit OT 2018-08-13T21:54:51Z housel quit (Read error: Connection reset by peer) 2018-08-13T21:55:42Z AeroNotix: aye. 2018-08-13T21:56:00Z AeroNotix: back to cl-distribute 2018-08-13T21:56:28Z AeroNotix: I think the idea of a "decentralised lisp term database" is a great idea. Not sure if one exists. 2018-08-13T21:56:39Z AeroNotix: no-defun-allowed: did you ever look at mnesia in Erlang? 2018-08-13T21:56:47Z AeroNotix: Think this would be right up CL's alley really. 2018-08-13T21:57:16Z jmercouris: I think what would be really cool would be an open source graph database implementation in lisp 2018-08-13T21:57:44Z AeroNotix: ,allegrograph 2018-08-13T21:57:46Z no-defun-allowed: Well, I can certainly make it read lisp forms instead. 2018-08-13T21:57:53Z AeroNotix: no-defun-allowed: no no you're not getting me 2018-08-13T21:58:05Z jmercouris: AeroNotix: Allegrograph is not free 2018-08-13T21:58:27Z no-defun-allowed: Okay, what do you mean by "lisp term database" then? 2018-08-13T21:58:30Z AeroNotix: ah missed the "open source" modifier 2018-08-13T21:58:56Z AeroNotix: no-defun-allowed: I just meant a distributed database that stored arbitrary terms. 2018-08-13T21:58:58Z AeroNotix: but in CL. 2018-08-13T21:59:01Z AeroNotix: ala mnesia 2018-08-13T21:59:19Z AeroNotix: because what's required to get mnesia working in CL would satisfy all my wants. 2018-08-13T21:59:22Z AeroNotix: It's just a large undertaking 2018-08-13T21:59:35Z White_Flame: do arbitrary terms include things like function closures? 2018-08-13T21:59:38Z AeroNotix: White_Flame: yes 2018-08-13T21:59:59Z White_Flame: that's an interesting serializatio problem 2018-08-13T22:00:13Z AeroNotix: make it so 2018-08-13T22:00:34Z AeroNotix: jk, functions aren't really required 2018-08-13T22:01:05Z AeroNotix: but many datatypes, sure. 2018-08-13T22:01:36Z SaganMan joined #lisp 2018-08-13T22:01:37Z jmercouris: can't functions just be stored as sexpr? 2018-08-13T22:01:53Z jmercouris: what would be the problem? capturing the value of a closure? 2018-08-13T22:01:57Z White_Flame: a closure itself can't 2018-08-13T22:02:07Z jmercouris: ah, so as I suspecte 2018-08-13T22:02:13Z White_Flame: and then you get into fun things like file handles, stream objects, etc 2018-08-13T22:02:24Z AeroNotix: No, they just fail 2018-08-13T22:02:41Z AeroNotix: you call a function with a serialized FD. The FD doesn't exist on the system being read- it fails. 2018-08-13T22:03:10Z White_Flame: huh, so you don't prevent the handle itself from serializing, you just assume its usage will break? 2018-08-13T22:03:17Z AeroNotix: pretty much 2018-08-13T22:03:19Z jmercouris: I wonder how hard it would be to write a graph database in CL 2018-08-13T22:03:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-13T22:03:32Z jmercouris: I guess you need to support two types of objects, a node object, and a vertex object 2018-08-13T22:03:33Z MichaelRaskin: Maybe only FASL-serialisable things would be used. 2018-08-13T22:03:59Z MichaelRaskin: Once I used CL-graph to run inferences on top of it 2018-08-13T22:04:04Z jmercouris: but of course the hard part is persistence of the graph database, loading it into memory, and searching it 2018-08-13T22:04:12Z Bike quit (Ping timeout: 252 seconds) 2018-08-13T22:04:15Z jmercouris: MichaelRaskin: like prolog? 2018-08-13T22:04:40Z _death: there's vivace-graph 2018-08-13T22:04:41Z MichaelRaskin: Maybe even closer to datalog or RDF inference engines 2018-08-13T22:05:50Z stylewarning: i love me some MAKE-LOAD-FORM-SAVING-SLOTS 2018-08-13T22:05:59Z jmercouris: _death: I saw it before, pretty poorly documented 2018-08-13T22:06:14Z mindCrime_ quit (Ping timeout: 256 seconds) 2018-08-13T22:06:33Z jmercouris: is there a standard method to serliaze and deserialize object instances? 2018-08-13T22:06:58Z stylewarning: jmercouris: READ and PRINT 2018-08-13T22:07:00Z jmercouris: or must you specialize print and read for them (or something like that)? 2018-08-13T22:07:15Z LiamH quit (Quit: Leaving.) 2018-08-13T22:07:22Z stylewarning: (or READ and PRINT-OBJECT if you must) 2018-08-13T22:07:25Z jmercouris: stylewarning: this works for any kind of object? what about objects that contain objects? 2018-08-13T22:07:46Z stylewarning: jmercouris: It works for objects that respect *PRINT-READABLY* 2018-08-13T22:08:02Z jmercouris: what if there is a cyclic relationship between two objects? 2018-08-13T22:08:12Z jmercouris: wouldn't that cause an unprintable loop? 2018-08-13T22:08:13Z stylewarning: jmercouris: Nested objects are fine. If *print-circle* is respected, then you'll even get proper references 2018-08-13T22:08:57Z stylewarning: CL-USER> (let ((x (cons 1 2))) 2018-08-13T22:08:57Z stylewarning: (rplacd x x) 2018-08-13T22:08:57Z stylewarning: (print x)) 2018-08-13T22:08:57Z stylewarning: #1=(1 . #1#) 2018-08-13T22:09:02Z jmercouris: Oh I see 2018-08-13T22:09:06Z jmercouris: you can set *print-circle* 2018-08-13T22:09:17Z stylewarning: (the above is with *print-circle* set to t) 2018-08-13T22:09:37Z jmercouris: so you can specialize print-object for any kind of class 2018-08-13T22:09:40Z stylewarning: yes 2018-08-13T22:09:49Z jmercouris: interesting, good to know 2018-08-13T22:10:11Z stylewarning: jmercouris: CL-STORE also is pretty useful to know about (https://common-lisp.net/project/cl-store/) 2018-08-13T22:10:19Z jmercouris: Yeah, I've seen it before 2018-08-13T22:10:33Z jmercouris: I was just thinking aloud about what one would need to do to make a graph database using CLOS 2018-08-13T22:11:01Z jmercouris: maybe you could even build it on top of an RBDMS to serve as your persistence mechanism 2018-08-13T22:11:09Z jmercouris: and then you only load parts of the graph in memory at a time 2018-08-13T22:12:13Z aeth: stylewarning: Use (setf cdr) instead of rplacd 2018-08-13T22:12:20Z stylewarning: no 2018-08-13T22:12:26Z aeth: They compile to the same thing but lispers can't read the old style 2018-08-13T22:12:49Z stylewarning: it's a standard function and I like the character it adds 2018-08-13T22:12:57Z stylewarning: reminds me of an old New England-style house 2018-08-13T22:13:04Z aeth: Might as well use setq, then 2018-08-13T22:13:09Z aeth: and eq 2018-08-13T22:13:18Z stylewarning: I do use EQ for reference-level equality. 2018-08-13T22:13:23Z stylewarning: EQ has no other equivalent. 2018-08-13T22:13:26Z jmercouris: What else would you use? 2018-08-13T22:13:31Z AeroNotix: stylewarning: EQ has no EQ 2018-08-13T22:13:52Z jmercouris: could you implement EQ or need it be provided by the distribution? 2018-08-13T22:14:00Z stylewarning: it needs to be provided 2018-08-13T22:14:18Z jmercouris: unless maybe there is some ext that can give you a unique identity hash or something for each object 2018-08-13T22:14:27Z jmercouris: in which case, it is still kind of being provided 2018-08-13T22:14:45Z aeth: stylewarning: EQ only differs from EQL with numbers and characters. In pratice, you'd only see EQ potentially differ in a 64-bit implementation for double floats and bignums and maybe characters. Where do you use this? 2018-08-13T22:15:09Z stylewarning: aeth: I use it when I want to indicate to the reader of my program that I care about equality of reference. 2018-08-13T22:15:12Z aeth: (I suppose certain kinds of complex numbers too) 2018-08-13T22:16:07Z AeroNotix: aeth: it's really not what stylewarning was even talking about 2018-08-13T22:16:28Z dented42 quit (Ping timeout: 244 seconds) 2018-08-13T22:18:35Z housel joined #lisp 2018-08-13T22:18:58Z dented42 joined #lisp 2018-08-13T22:19:47Z stylewarning: jmercouris: actually, you can abuse your way to defining eq. For instance, (defun my-eq (x y) (let ((l (list y t))) (getf l x))) 2018-08-13T22:19:51Z vibs29 quit (Ping timeout: 240 seconds) 2018-08-13T22:21:40Z stylewarning: boy doesn't it sound nice for EQ to cons 2018-08-13T22:21:53Z vibs29 joined #lisp 2018-08-13T22:23:01Z aeth: stylewarning: Problem solved: (defun my-eq* (x y) (let ((l (list y t))) (declare (dynamic-extent l)) (getf l x))) 2018-08-13T22:23:42Z aeth: 113 byte disassembly (and a call to getf) instead of 32 bytes (with no calls) in SBCL, though 2018-08-13T22:23:59Z jmercouris: lol 2018-08-13T22:24:53Z jmercouris: stylewarning: thats great 2018-08-13T22:24:57Z makomo quit (Ping timeout: 240 seconds) 2018-08-13T22:27:34Z Denommus quit (Remote host closed the connection) 2018-08-13T22:29:48Z Fare quit (Ping timeout: 260 seconds) 2018-08-13T22:39:56Z kajo quit (Read error: Connection reset by peer) 2018-08-13T22:41:16Z jmercouris quit (Ping timeout: 244 seconds) 2018-08-13T22:41:44Z random-nick quit (Ping timeout: 276 seconds) 2018-08-13T22:41:54Z makomo joined #lisp 2018-08-13T22:46:59Z angavrilov quit (Remote host closed the connection) 2018-08-13T22:59:43Z chipolux joined #lisp 2018-08-13T23:10:11Z Bike joined #lisp 2018-08-13T23:10:57Z Fare joined #lisp 2018-08-13T23:15:45Z Fare quit (Ping timeout: 248 seconds) 2018-08-13T23:21:17Z robotoad quit (Quit: robotoad) 2018-08-13T23:25:38Z rumbler31 joined #lisp 2018-08-13T23:25:57Z rumbler31 quit (Remote host closed the connection) 2018-08-13T23:30:46Z pierpa quit (Quit: Page closed) 2018-08-13T23:33:08Z aeth: Is atan with two arguments atan2? 2018-08-13T23:33:56Z aeth: Lots of formulas on the Internet reference atan2 2018-08-13T23:34:56Z housel: Yes 2018-08-13T23:35:11Z aeth: great 2018-08-13T23:35:22Z Bike: atan2(y,x) = atan(y/x), generally 2018-08-13T23:35:41Z Bike: usually with nice special cases for x=0 2018-08-13T23:37:08Z pjb: (atan 5 3) #| --> 1.0303768 |# 2018-08-13T23:37:28Z pjb: (atan 3/5) #| --> 0.5404195 |# 2018-08-13T23:37:39Z pjb: (atan 5/3) #| --> 1.0303768 |# 2018-08-13T23:39:04Z pjb: You can always (setf (fdefinition 'atan2) (fdefinition 'atan)) 2018-08-13T23:39:30Z Kundry_Wag joined #lisp 2018-08-13T23:41:27Z slyrus quit (Ping timeout: 240 seconds) 2018-08-13T23:41:27Z slyrus1 is now known as slyrus 2018-08-13T23:41:59Z slyrus1 joined #lisp 2018-08-13T23:59:38Z chipolux quit (Ping timeout: 272 seconds) 2018-08-14T00:00:54Z peccu joined #lisp 2018-08-14T00:03:59Z ceevusee quit (Remote host closed the connection) 2018-08-14T00:09:46Z sjl quit (Ping timeout: 272 seconds) 2018-08-14T00:10:48Z dented42_ joined #lisp 2018-08-14T00:11:05Z rumbler31 joined #lisp 2018-08-14T00:13:07Z rumbler31 quit (Remote host closed the connection) 2018-08-14T00:13:47Z dented42 quit (Ping timeout: 268 seconds) 2018-08-14T00:14:00Z milanj quit (Quit: This computer has gone to sleep) 2018-08-14T00:14:56Z dented42_ quit (Client Quit) 2018-08-14T00:27:17Z zxcvz_ joined #lisp 2018-08-14T00:29:14Z rumbler31 joined #lisp 2018-08-14T00:29:17Z Kundry_Wag quit (Remote host closed the connection) 2018-08-14T00:29:17Z aindilis quit (Read error: Connection reset by peer) 2018-08-14T00:29:38Z zxcvz quit (Ping timeout: 276 seconds) 2018-08-14T00:29:50Z Kundry_Wag joined #lisp 2018-08-14T00:30:25Z rumbler31 quit (Remote host closed the connection) 2018-08-14T00:32:50Z chipolux joined #lisp 2018-08-14T00:34:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-14T00:39:43Z Kundry_Wag joined #lisp 2018-08-14T00:48:53Z chipolux_ joined #lisp 2018-08-14T00:53:51Z PuercoPop quit (Quit: ZNC 1.6.3 - http://znc.in) 2018-08-14T00:55:20Z malm quit (Killed (tolkien.freenode.net (Nickname regained by services))) 2018-08-14T00:55:21Z malm joined #lisp 2018-08-14T00:56:19Z Lord_Nightmare2 joined #lisp 2018-08-14T00:57:09Z Kundry_Wag quit (*.net *.split) 2018-08-14T00:57:09Z chipolux quit (*.net *.split) 2018-08-14T00:57:09Z jasom quit (*.net *.split) 2018-08-14T00:57:09Z PyroLagus quit (*.net *.split) 2018-08-14T00:57:10Z erratic quit (*.net *.split) 2018-08-14T00:57:10Z klltkr quit (*.net *.split) 2018-08-14T00:57:10Z razzy quit (*.net *.split) 2018-08-14T00:57:10Z iskander quit (*.net *.split) 2018-08-14T00:57:10Z mkolenda quit (*.net *.split) 2018-08-14T00:57:10Z argoneus quit (*.net *.split) 2018-08-14T00:57:10Z sthalik quit (*.net *.split) 2018-08-14T00:57:11Z flazh quit (*.net *.split) 2018-08-14T00:57:11Z Zhivago quit (*.net *.split) 2018-08-14T00:57:11Z biopandemic quit (*.net *.split) 2018-08-14T00:57:11Z Lord_Nightmare quit (*.net *.split) 2018-08-14T00:57:11Z meowray quit (*.net *.split) 2018-08-14T00:57:11Z mrSpec quit (*.net *.split) 2018-08-14T00:57:11Z trittweiler quit (*.net *.split) 2018-08-14T00:57:12Z samebchase quit (*.net *.split) 2018-08-14T00:57:12Z msb quit (*.net *.split) 2018-08-14T00:57:12Z galdor quit (*.net *.split) 2018-08-14T00:57:12Z vhost- quit (*.net *.split) 2018-08-14T00:57:12Z sellout-1 quit (*.net *.split) 2018-08-14T00:57:26Z Lord_Nightmare2 is now known as Lord_Nightmare 2018-08-14T00:59:23Z vhost- joined #lisp 2018-08-14T00:59:27Z azrazalea quit (Ping timeout: 240 seconds) 2018-08-14T01:02:45Z mkolenda joined #lisp 2018-08-14T01:04:29Z jasom joined #lisp 2018-08-14T01:04:29Z PyroLagus joined #lisp 2018-08-14T01:04:29Z klltkr joined #lisp 2018-08-14T01:04:29Z razzy joined #lisp 2018-08-14T01:04:29Z 18WAA7WHD joined #lisp 2018-08-14T01:04:29Z argoneus joined #lisp 2018-08-14T01:04:29Z sthalik joined #lisp 2018-08-14T01:04:29Z flazh joined #lisp 2018-08-14T01:04:29Z Zhivago joined #lisp 2018-08-14T01:04:29Z biopandemic joined #lisp 2018-08-14T01:04:29Z mrSpec joined #lisp 2018-08-14T01:04:29Z meowray joined #lisp 2018-08-14T01:04:29Z trittweiler joined #lisp 2018-08-14T01:04:29Z msb joined #lisp 2018-08-14T01:04:29Z galdor joined #lisp 2018-08-14T01:04:31Z 18WAA7WHD quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-14T01:04:31Z klltkr quit (Remote host closed the connection) 2018-08-14T01:04:49Z klltkr joined #lisp 2018-08-14T01:05:16Z azrazalea joined #lisp 2018-08-14T01:06:44Z spacepluk quit (Ping timeout: 257 seconds) 2018-08-14T01:06:44Z thinkpad quit (Ping timeout: 257 seconds) 2018-08-14T01:06:44Z jself quit (Ping timeout: 257 seconds) 2018-08-14T01:07:24Z jself joined #lisp 2018-08-14T01:07:27Z vibs29 quit (Ping timeout: 240 seconds) 2018-08-14T01:07:56Z vibs29 joined #lisp 2018-08-14T01:08:49Z Fare joined #lisp 2018-08-14T01:09:20Z thinkpad joined #lisp 2018-08-14T01:09:40Z rumbler31 joined #lisp 2018-08-14T01:10:33Z housel quit (Remote host closed the connection) 2018-08-14T01:10:55Z spacepluk joined #lisp 2018-08-14T01:10:57Z chipolux_ quit (Ping timeout: 240 seconds) 2018-08-14T01:11:05Z housel joined #lisp 2018-08-14T01:13:19Z fikka joined #lisp 2018-08-14T01:15:02Z Kaisyu joined #lisp 2018-08-14T01:16:10Z chipolux_ joined #lisp 2018-08-14T01:18:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T01:25:51Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-14T01:31:49Z mathZ joined #lisp 2018-08-14T01:34:29Z fikka joined #lisp 2018-08-14T01:39:26Z fikka quit (Ping timeout: 256 seconds) 2018-08-14T01:42:19Z Oladon joined #lisp 2018-08-14T01:43:28Z Fare quit (Ping timeout: 260 seconds) 2018-08-14T01:49:09Z AeroNotix: With #'push & #'pop. The documentation suggests that it takes a `place' but I am kind of inferring it means a `place' that evaluates to a list. Am I wrong? 2018-08-14T01:49:25Z AeroNotix: Can I make something #'{push,pop}-able ? 2018-08-14T01:49:46Z Bike: it takes a place, and you might want to look at what that means 2018-08-14T01:49:51Z Bike: but they're both very simple macros 2018-08-14T01:50:06Z Bike: (push item list) expands to (setf list (cons item list)), basically 2018-08-14T01:50:17Z AeroNotix: Bike: I think I understand place 2018-08-14T01:50:27Z AeroNotix: which is part of my confusion actually 2018-08-14T01:50:31Z Bike: i called it "list" because that's usual, but it would work just as well with any other value 2018-08-14T01:50:34Z fikka joined #lisp 2018-08-14T01:50:43Z Bike: the arguments and values section even says "place---a place, the value of which may be any object." 2018-08-14T01:50:52Z AeroNotix: Yes 2018-08-14T01:51:00Z AeroNotix: Which is my confusion 2018-08-14T01:51:01Z no-defun-allowed: `place` is the name of something you give to setf to set the value of 2018-08-14T01:51:07Z Bike: what is confusing? 2018-08-14T01:51:22Z no-defun-allowed: eg (push 'thing (first my-stacks)) will push 'thing to the first item of my-stacks 2018-08-14T01:52:08Z AeroNotix: I just expect that `place' is anything that is setf-able. Not that `place' means that it is setf-able AND requires to be of a certain type 2018-08-14T01:52:23Z AeroNotix: Though: "push prepends item to the list that is stored in place, stores the resulting list in place, and returns the list." 2018-08-14T01:52:28Z Bike: it does pretty much mean setfable. 2018-08-14T01:52:41Z Bike: pop imposes an additional requirement since it returns the CAR of the value of the place. 2018-08-14T01:52:47Z Bike: push doesn't impose any additional requirement. 2018-08-14T01:53:05Z AeroNotix: Bike: "push prepends item to the list that is stored in place, stores the resulting list in place, and returns the list." 2018-08-14T01:53:14Z Bike: i read you the first time. 2018-08-14T01:53:33Z Bike: as you can see from my expansion, the new value will be a cons. 2018-08-14T01:53:38Z Bike: a list. though maybe not a proper list. 2018-08-14T01:53:39Z AeroNotix: I expect with `place' it is any http://www.lispworks.com/documentation/lw71/CLHS/Body/05_a.htm 2018-08-14T01:54:15Z AeroNotix: Guess just it's not documentated in reality to how I've come to understand it 2018-08-14T01:54:30Z Bike: don't take the description text too literally. the macroexpansion is the easiest way to understand it. 2018-08-14T01:54:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T01:54:48Z Bike: technically that's not how the conformance rules work, but it's true in this case. 2018-08-14T01:54:58Z AeroNotix: How can it say: "place---a place, the value of which may be any object." but then "push prepends item to the list that is stored in place, stores the resulting list in place, and returns the list." 2018-08-14T01:55:07Z AeroNotix: aren't those two things incongruent? 2018-08-14T01:55:12Z Bike: yeah. 2018-08-14T01:55:19Z Bike: clhs prog2 2018-08-14T01:55:19Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_prog1c.htm 2018-08-14T01:55:28Z Bike: check it out 2018-08-14T01:56:06Z AeroNotix: Bike: what about it? 2018-08-14T01:56:12Z Bike: it's wrong 2018-08-14T01:56:28Z AeroNotix: I try to avoid prog1/prog2, seem hacky 2018-08-14T01:57:12Z Bike: it says prog2 returns the value of the first form, which is obviously silly 2018-08-14T01:57:19Z Bike: you gotta apply a lil hermeneutics 2018-08-14T01:57:42Z AeroNotix: First time I've heard of hermeneutics 2018-08-14T01:57:43Z Bike: push has no reason to impose a restriction that the value of the place is a list, so it doesn't 2018-08-14T01:58:36Z AeroNotix: Really the reason I was looking at the docs so deeply when it said "place" is that I wanted to call a set of functions push/pop 2018-08-14T01:58:45Z AeroNotix: and thought I could make my type push/poppable 2018-08-14T01:59:09Z Bike: push is really dumb. it just conses. 2018-08-14T01:59:18Z Bike: it's not a generalizable operation like setf is. 2018-08-14T01:59:30Z Bike: so you're out of luck as far as that goes. 2018-08-14T01:59:32Z AeroNotix: I could imagine it working on a bunch of datastructures though 2018-08-14T01:59:41Z Bike: indeed, but it doesn't. 2018-08-14T01:59:49Z AeroNotix: oh well 2018-08-14T01:59:59Z Bike: Part of the issue with it doing so is that it is a macro 2018-08-14T02:00:09Z Bike: At macroexpansion time, it doesn't know the type of the value of the place (what a mouthful) 2018-08-14T02:00:28Z AeroNotix: good point 2018-08-14T02:00:52Z AeroNotix: though it could work similarly to setf 2018-08-14T02:00:59Z AeroNotix: where you would (defun (push foo)) 2018-08-14T02:01:09Z AeroNotix: (which, granted, is a niche use of a niche use) 2018-08-14T02:02:05Z Bike: setf works on information it has at macroexpansion time, stuff like the ltieral form of the place 2018-08-14T02:02:27Z Bike: for a customizable push, you couldn't take advantage except to do setf in the first place, so you'd have (push x y) expand into (setf y (push-function x y)) 2018-08-14T02:02:41Z Bike: and then push-function could be generic or whatever, but then you're missing out on some stuff 2018-08-14T02:03:19Z AeroNotix: think it'd work for most uses, though? 2018-08-14T02:03:32Z AeroNotix: academic question though, not really a big deal 2018-08-14T02:06:11Z Fare joined #lisp 2018-08-14T02:21:24Z aindilis joined #lisp 2018-08-14T02:29:43Z jeosol joined #lisp 2018-08-14T02:30:51Z orivej quit (Ping timeout: 240 seconds) 2018-08-14T02:31:18Z pjb: AeroNotix: pop on a non-list would signal an error thru car. But push wouldn't: it would just create a dotted-list. 2018-08-14T02:31:18Z fikka joined #lisp 2018-08-14T02:32:54Z Fare quit (Ping timeout: 272 seconds) 2018-08-14T02:34:46Z pjb: AeroNotix: remember that list = (or cons null), nothing more. 2018-08-14T02:35:05Z chipolux_ quit (Ping timeout: 240 seconds) 2018-08-14T02:36:17Z fikka quit (Ping timeout: 248 seconds) 2018-08-14T02:39:30Z Kundry_Wag joined #lisp 2018-08-14T02:40:33Z pierpal quit (Quit: Poof) 2018-08-14T02:40:51Z pierpal joined #lisp 2018-08-14T02:40:57Z AeroNotix: pjb: sure, I see the behaviour, it was the documentation that seemed that there was something more to it 2018-08-14T02:44:13Z chipolux_ joined #lisp 2018-08-14T02:44:18Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-14T02:45:53Z chipolux_ quit (Client Quit) 2018-08-14T02:46:32Z orivej joined #lisp 2018-08-14T02:47:39Z pjb: 0s 2018-08-14T02:50:19Z AeroNotix: ? 2018-08-14T02:50:37Z pjb: EWRWIN 2018-08-14T02:50:41Z pjb: wrong window error 2018-08-14T02:53:13Z sthalik: hey 2018-08-14T02:53:19Z sthalik: pjb, you awake? 2018-08-14T02:57:40Z buffergn0me joined #lisp 2018-08-14T03:02:58Z pjb: sthalik: apparently. 2018-08-14T03:03:18Z sthalik: pjb, I remember you briefly from comp.lang.lisp 2018-08-14T03:03:24Z sthalik: apparently the place is now full of spam 2018-08-14T03:05:06Z pjb: Happily, easily filtered out. 2018-08-14T03:06:40Z fikka joined #lisp 2018-08-14T03:10:35Z rumbler31 quit (Remote host closed the connection) 2018-08-14T03:13:49Z sthalik: pjb, are you saying that the group's not dead? 2018-08-14T03:13:57Z sthalik: that opens quite a lot of possibilities 2018-08-14T03:14:05Z fikka quit (Ping timeout: 272 seconds) 2018-08-14T03:15:13Z sthalik: pjb, will bayes (aka thunderbird's "adaptive filtering") suffice? 2018-08-14T03:23:15Z robotoad joined #lisp 2018-08-14T03:24:08Z White_Flame: AeroNotix: if you have a history in C, you can think of a 'place' sort of like an lvar 2018-08-14T03:24:52Z White_Flame: it's a syntactic expression that shows where to store something, not specifically evaluated for its value 2018-08-14T03:25:18Z White_Flame: (setf (car foo) 3) doesn't evaluate (car foo) and return its place, the shape of (car ) indicates where it's to be stored 2018-08-14T03:25:21Z buffergn0me quit (Ping timeout: 240 seconds) 2018-08-14T03:26:18Z White_Flame: (hmm, I'm wondering if I remember the term 'lvar' correctly. But basically whatever's to the left of the equals sign in C) 2018-08-14T03:26:43Z Bike: yeah, the main difference between lvalues and places in my mind is that i can understand places 2018-08-14T03:27:03Z White_Flame: ah, lvalue. that's it 2018-08-14T03:27:21Z Bike: C++ adds a bunch of wackiness like rwvalues or some shit 2018-08-14T03:27:33Z White_Flame: which is why I specifically stuck with C ;) 2018-08-14T03:28:00Z White_Flame: I'm getting too long out of that world to be fully confident in specific analogies from it 2018-08-14T03:28:45Z Bike: i think the main problem with the analogy is that an lvalue is still a value, which a place doesn't have to correspond to (e.g. multiple values), but that's not a huge deal 2018-08-14T03:29:46Z White_Flame: AeroNotix: also, have fun reading up on locatives. They're sort of a parallel to pointers, as in it's a reference to a slot you can dereference & store 2018-08-14T03:32:27Z gigetoo quit (Ping timeout: 240 seconds) 2018-08-14T03:35:49Z sthalik: what's the best way to treat denormalized floats as zero? 2018-08-14T03:37:37Z sthalik: i.e. canonical way to invoke machinery for given CPU arch 2018-08-14T03:37:55Z loke: sthalik: That depends on your Lisp implementation 2018-08-14T03:37:58Z gigetoo joined #lisp 2018-08-14T03:38:17Z sthalik: I see. it's rather trivial to port then 2018-08-14T03:39:03Z loke: sthalik: Well, maybe. Again, dpends on your particular implementation. 2018-08-14T03:49:49Z pjb: sthalik: yes, bayes will probably be helpful on cll. 2018-08-14T03:50:25Z dddddd quit (Remote host closed the connection) 2018-08-14T03:50:34Z loke: pjb: is cll actually useful anymore? I check there once in a while and there are like 3 people posting there (if you exclude wj :-) ) 2018-08-14T03:50:57Z aeth: Last time I looked there's too much noise 2018-08-14T03:51:13Z pjb: loke: it's asynchronous, and you can include lots of code in a single message. So it would be more efficient than irc for a lot of stuff we do here… 2018-08-14T03:51:37Z sthalik: I just noticed there's no basic math.h stuff in CL 2018-08-14T03:51:44Z sthalik: things like atan2 or copysign 2018-08-14T03:52:19Z aeth: atan supports atan2 through its optional second argument 2018-08-14T03:53:18Z pjb: (setf (car foo) 3) can expand to (let ((val 3)) (rplaca foo val) val) in ccl: (macroexpand-1 '(setf (car foo) 3)) #| --> (ccl::set-car foo 3) ; t |# 2018-08-14T03:53:35Z loke: sthalik: Also note that CL's maths spec is more thorough than C's. For example, it defines complex results for trignometric operations and also support rationals. 2018-08-14T03:53:43Z pjb: sthalik: read chapter 12. 2018-08-14T03:54:23Z loke: pjb: Well sure, I don't disagree with you there. But all the ability to type long messages aren't work much if there is no one read them. :-( 2018-08-14T03:54:32Z Bike quit (Quit: Lost terminal) 2018-08-14T03:54:39Z aeth: sthalik: I'm not sure if there's a copysign, but there's a signum, so you don't really need copysign 2018-08-14T03:55:11Z aeth: Something like this? (* (abs copy-this-magnitude) (signum copy-this-sign)) 2018-08-14T03:55:22Z aeth: Seems fair for something so rarely used 2018-08-14T03:56:50Z sthalik: aeth, can you paste the disassembly when specialized for float with speed no debug/safety+no prologue please? 2018-08-14T03:57:01Z sthalik: assume single-float on 64-bit plat 2018-08-14T03:58:17Z pjb: loke: come on, I paid one more year for write access to cll, make it worth my money! 2018-08-14T03:58:55Z aeth: It looks like the version of SBCL I'm using doesn't optimize signum for single-float (i.e. it calls the function, even though there's probably a simpler way) 2018-08-14T04:01:14Z loke: pjb: :-) 2018-08-14T04:02:42Z v0|d quit (Remote host closed the connection) 2018-08-14T04:04:51Z impulse quit (Remote host closed the connection) 2018-08-14T04:05:17Z impulse joined #lisp 2018-08-14T04:06:44Z arbxs quit (Ping timeout: 276 seconds) 2018-08-14T04:19:48Z orivej quit (Ping timeout: 260 seconds) 2018-08-14T04:22:23Z drmeister: Does anyone use the pzmq messaging library? I have some questions I'd like to ask offline. 2018-08-14T04:24:20Z drmeister: I've got some request/reply messages that I am certain are absolutely correct - but zeromq is dropping them with no feedback. 2018-08-14T04:24:23Z drmeister: It's maddening. 2018-08-14T04:29:18Z sthalik: aeth, https://pastebin.com/6z8Q9JMd 2018-08-14T04:29:29Z sthalik: this is copysignf intrinsic 2018-08-14T04:29:52Z sthalik: can we do a silly benchmark how this open-coded version performs against CL's? 2018-08-14T04:32:11Z sthalik: stupid C++ generates position-independent code, hence indirect addressing through rip 2018-08-14T04:35:44Z aeth: sthalik: bring this up in #sbcl when stassats is there and maybe stassats will do something about it 2018-08-14T04:36:23Z aeth: i.e. write something in CL (with type declarations) and disassemble it and complain about the resulting disassembly 2018-08-14T04:38:25Z test1600 joined #lisp 2018-08-14T04:39:01Z loke: aeth: Then, even better, is to use DEFOPTIMIZER and DEFINE-VOP to make it use the proper instructions. 2018-08-14T04:39:18Z loke: I've done that one, and it was kinda neat. 2018-08-14T04:45:00Z X-Scale quit (Quit: Want to be different? Try HydraIRC -> http://www.hydrairc.com <-) 2018-08-14T04:45:42Z sthalik: aeth, that is actually an excellent idea :-) 2018-08-14T04:46:57Z impulse quit (Ping timeout: 248 seconds) 2018-08-14T04:47:47Z impulse joined #lisp 2018-08-14T04:53:49Z fikka joined #lisp 2018-08-14T04:55:34Z housel quit (Remote host closed the connection) 2018-08-14T04:56:00Z housel joined #lisp 2018-08-14T04:57:41Z dented42 joined #lisp 2018-08-14T04:58:54Z fikka quit (Ping timeout: 256 seconds) 2018-08-14T05:19:11Z aeth: I think (defun copy-sign (magnitude sign) (declare (single-float magnitude sign)) (* (abs magnitude) (signum sign))) is the CL equivalent that is underoptimized but there might be something better. 2018-08-14T05:19:28Z aeth: (It's better with (optimize (speed 3)) too) 2018-08-14T05:24:50Z captgector joined #lisp 2018-08-14T05:31:45Z JuanDaugherty joined #lisp 2018-08-14T05:40:15Z sauvin joined #lisp 2018-08-14T05:41:51Z White_Flame: you can use ffi to bit-cast integer mask operations on top of the floats, to implement the C-like asm solution 2018-08-14T05:41:57Z White_Flame: that's what I did for float<->int conversion 2018-08-14T05:42:06Z White_Flame: erm, float<->bytes conversion 2018-08-14T05:45:21Z pjb: Yes, you can make your lisp program as brittle and erroneous and crash-prone as any C program. 2018-08-14T05:45:30Z pjb: How crazy do you need to be to do that? 2018-08-14T05:45:35Z pjb: Just use C! 2018-08-14T05:47:05Z DKTH quit (Ping timeout: 240 seconds) 2018-08-14T05:48:27Z fikka joined #lisp 2018-08-14T05:50:31Z White_Flame: it's not brittle. It's a word of lisp-owned foreign memory that always follows proper casting convention 2018-08-14T05:51:06Z White_Flame: certainly it demands some #+processor_model prefixing 2018-08-14T05:51:50Z igemnace joined #lisp 2018-08-14T05:52:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T05:53:01Z Inline quit (Quit: Leaving) 2018-08-14T05:56:50Z vlatkoB joined #lisp 2018-08-14T06:21:33Z mathZ quit (Remote host closed the connection) 2018-08-14T06:25:32Z tralala joined #lisp 2018-08-14T06:33:06Z zfree quit (Remote host closed the connection) 2018-08-14T06:37:51Z gpiero joined #lisp 2018-08-14T06:41:59Z schweers joined #lisp 2018-08-14T06:43:39Z test1600_ joined #lisp 2018-08-14T06:47:29Z test1600 quit (Ping timeout: 248 seconds) 2018-08-14T06:47:35Z shrdlu68 joined #lisp 2018-08-14T06:52:50Z fikka joined #lisp 2018-08-14T06:57:37Z fikka quit (Ping timeout: 248 seconds) 2018-08-14T07:00:19Z fikka joined #lisp 2018-08-14T07:08:40Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-08-14T07:20:34Z fikka quit (Ping timeout: 256 seconds) 2018-08-14T07:20:45Z beach quit (Disconnected by services) 2018-08-14T07:22:41Z shrdlu68 joined #lisp 2018-08-14T07:22:50Z fikka joined #lisp 2018-08-14T07:22:55Z beach joined #lisp 2018-08-14T07:23:02Z beach: Good morning everyone! 2018-08-14T07:23:22Z shrdlu68: Good morning! 2018-08-14T07:25:26Z no-defun-allowed: hi beach 2018-08-14T07:28:59Z phoe: heyyy 2018-08-14T07:35:58Z schweers: Morning! 2018-08-14T07:35:58Z heisig joined #lisp 2018-08-14T07:37:21Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T07:37:36Z doubledup joined #lisp 2018-08-14T07:53:58Z fikka joined #lisp 2018-08-14T07:58:45Z fikka quit (Ping timeout: 244 seconds) 2018-08-14T08:02:33Z scottj joined #lisp 2018-08-14T08:09:07Z lavaflow quit (Quit: WeeChat 2.2) 2018-08-14T08:13:52Z fikka joined #lisp 2018-08-14T08:22:40Z varjag joined #lisp 2018-08-14T08:25:57Z charh quit (Ping timeout: 240 seconds) 2018-08-14T08:28:37Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T08:31:39Z vlatkoB joined #lisp 2018-08-14T08:32:48Z pierpal quit (Quit: Poof) 2018-08-14T08:33:06Z pierpal joined #lisp 2018-08-14T08:41:17Z nowhere_man joined #lisp 2018-08-14T08:44:46Z housel quit (Read error: Connection reset by peer) 2018-08-14T08:45:05Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T08:45:12Z housel joined #lisp 2018-08-14T08:46:12Z tralala` joined #lisp 2018-08-14T08:46:25Z vlatkoB joined #lisp 2018-08-14T08:46:30Z vlatkoB_ joined #lisp 2018-08-14T08:47:51Z tralala quit (Ping timeout: 240 seconds) 2018-08-14T08:48:08Z tralala` is now known as tralala 2018-08-14T08:50:51Z vlatkoB_ quit (Client Quit) 2018-08-14T08:50:52Z vlatkoB quit (Client Quit) 2018-08-14T08:54:32Z vlatkoB joined #lisp 2018-08-14T08:54:34Z vlatkoB_ joined #lisp 2018-08-14T08:54:40Z vlatkoB__ joined #lisp 2018-08-14T08:55:49Z iskander joined #lisp 2018-08-14T09:01:04Z vlatkoB_ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:01:04Z vlatkoB__ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:01:04Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:01:31Z vlatkoB joined #lisp 2018-08-14T09:01:34Z vlatkoB_ joined #lisp 2018-08-14T09:01:42Z vlatkoB__ joined #lisp 2018-08-14T09:03:23Z milanj joined #lisp 2018-08-14T09:03:54Z vlatkoB___ joined #lisp 2018-08-14T09:15:59Z vlatkoB_ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:16:03Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:16:07Z vlatkoB___ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:22:51Z vlatkoB__ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:24:20Z vlatkoB joined #lisp 2018-08-14T09:24:32Z vlatkoB_ joined #lisp 2018-08-14T09:25:13Z Shinmera: Hoorah, Radiance 2.0 is now out. http://shirakumo.github.io/radiance/?t=2.0#1.0_-%3E_2.0 2018-08-14T09:31:33Z makomo quit (Ping timeout: 272 seconds) 2018-08-14T09:31:51Z pjb quit (Ping timeout: 240 seconds) 2018-08-14T09:33:39Z makomo joined #lisp 2018-08-14T09:48:21Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T09:48:31Z vlatkoB_ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:48:33Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T09:49:45Z vlatkoB joined #lisp 2018-08-14T09:50:42Z beach: Shinmera: Congratulations! 2018-08-14T09:50:48Z Shinmera: Thanks 2018-08-14T09:52:07Z vlatkoB quit (Client Quit) 2018-08-14T09:53:46Z vlatkoB joined #lisp 2018-08-14T09:57:17Z figurelisp joined #lisp 2018-08-14T09:58:02Z test1600 joined #lisp 2018-08-14T10:00:51Z test1600_ quit (Ping timeout: 268 seconds) 2018-08-14T10:03:12Z X-Scale joined #lisp 2018-08-14T10:04:27Z test1600_ joined #lisp 2018-08-14T10:08:05Z test1600 quit (Ping timeout: 240 seconds) 2018-08-14T10:09:49Z m00natic joined #lisp 2018-08-14T10:11:28Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-14T10:14:41Z housel quit (Remote host closed the connection) 2018-08-14T10:24:39Z fikka joined #lisp 2018-08-14T10:28:45Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T10:29:21Z impulse quit (Ping timeout: 240 seconds) 2018-08-14T10:30:08Z impulse joined #lisp 2018-08-14T10:31:20Z nowhere_man quit (Remote host closed the connection) 2018-08-14T10:31:41Z random-nick joined #lisp 2018-08-14T10:32:04Z vlatkoB joined #lisp 2018-08-14T10:32:13Z nowhere_man joined #lisp 2018-08-14T10:36:56Z makomo: Shinmera: neat, good job. :-) the "[SRC]" links seem to be broken though -- "file:///..."? 2018-08-14T10:38:51Z Shinmera: Oh boy-- thanks for noting 2018-08-14T10:39:13Z Shinmera: Looks like I forgot the homepage url in the ASD 2018-08-14T10:41:43Z Shinmera: Should be fixed now (might need to change the ?t= to flush the cache) 2018-08-14T10:42:18Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-14T10:45:01Z makomo: Shinmera: :-). also, nice work on the docs. i'm always pleasantly surprised whenever i find a project of yours, because it usually has a wall of text (in a good sense) accompanying it 2018-08-14T10:46:17Z Shinmera: Thanks, glad that my efforts don't go to waste 2018-08-14T10:46:25Z makomo: and it's not just the classical "here's an example" thing. you actually describe the concepts and introduce the terminology, i.e. give the person a theoretical understanding of the project 2018-08-14T10:46:36Z makomo: that's exactly what i want when reading about the project 2018-08-14T10:46:43Z makomo: s/the/a/ 2018-08-14T10:50:52Z vlatkoB quit (Remote host closed the connection) 2018-08-14T10:55:48Z vlatkoB joined #lisp 2018-08-14T10:56:32Z vlatkoB quit (Remote host closed the connection) 2018-08-14T10:56:53Z vlatkoB joined #lisp 2018-08-14T11:02:09Z kajo joined #lisp 2018-08-14T11:02:24Z hjudt: Shinmera: congrats! from a happy radiance user. 2018-08-14T11:02:43Z Shinmera: :) 2018-08-14T11:04:48Z orivej joined #lisp 2018-08-14T11:15:06Z arkaros joined #lisp 2018-08-14T11:15:15Z mgsk left #lisp 2018-08-14T11:23:07Z Fare joined #lisp 2018-08-14T11:30:32Z zfree joined #lisp 2018-08-14T11:30:39Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-14T11:31:35Z tralala quit (Ping timeout: 240 seconds) 2018-08-14T11:36:56Z Bronsa quit (Ping timeout: 272 seconds) 2018-08-14T11:48:27Z vlatkoB joined #lisp 2018-08-14T11:54:18Z makomo quit (Quit: WeeChat 2.0.1) 2018-08-14T11:54:43Z makomo joined #lisp 2018-08-14T11:55:02Z test1600 joined #lisp 2018-08-14T11:57:21Z test1600_ quit (Ping timeout: 240 seconds) 2018-08-14T12:00:50Z test1600_ joined #lisp 2018-08-14T12:02:04Z igemnace quit (Remote host closed the connection) 2018-08-14T12:02:09Z test1600 quit (Ping timeout: 248 seconds) 2018-08-14T12:04:08Z pierpal quit (Quit: Poof) 2018-08-14T12:04:26Z pierpal joined #lisp 2018-08-14T12:05:46Z dddddd joined #lisp 2018-08-14T12:06:36Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-14T12:15:57Z vmmenon joined #lisp 2018-08-14T12:19:23Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-14T12:19:35Z slyrus quit (Remote host closed the connection) 2018-08-14T12:19:35Z slyrus1 is now known as slyrus 2018-08-14T12:19:46Z slyrus1 joined #lisp 2018-08-14T12:21:19Z DataLinkDroid2 joined #lisp 2018-08-14T12:21:35Z arbv joined #lisp 2018-08-14T12:24:04Z DataLinkDroid quit (Ping timeout: 240 seconds) 2018-08-14T12:25:17Z vmmenon left #lisp 2018-08-14T12:25:35Z vmmenon joined #lisp 2018-08-14T12:26:41Z arkaros quit (Ping timeout: 248 seconds) 2018-08-14T12:30:35Z dented42 joined #lisp 2018-08-14T12:35:21Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-14T12:35:34Z JuanDaugherty quit (Quit: Exeunt) 2018-08-14T12:38:57Z arkaros joined #lisp 2018-08-14T12:40:10Z test1600 joined #lisp 2018-08-14T12:40:58Z marvin2 joined #lisp 2018-08-14T12:42:21Z test1600_ quit (Ping timeout: 240 seconds) 2018-08-14T12:43:35Z arkaros quit (Ping timeout: 240 seconds) 2018-08-14T12:44:11Z arkaros joined #lisp 2018-08-14T12:46:24Z shrdlu68 quit (Ping timeout: 256 seconds) 2018-08-14T12:55:41Z LiamH joined #lisp 2018-08-14T12:56:40Z Bike joined #lisp 2018-08-14T12:59:41Z fikka quit (Ping timeout: 268 seconds) 2018-08-14T13:05:14Z pierpal quit (Quit: Poof) 2018-08-14T13:05:31Z pierpal joined #lisp 2018-08-14T13:06:52Z test1600 quit (Ping timeout: 272 seconds) 2018-08-14T13:08:09Z fikka joined #lisp 2018-08-14T13:09:01Z Guest5800_ joined #lisp 2018-08-14T13:25:45Z mindCrime joined #lisp 2018-08-14T13:26:04Z fikka quit (Ping timeout: 256 seconds) 2018-08-14T13:30:02Z biopandemic quit (Ping timeout: 256 seconds) 2018-08-14T13:33:39Z fikka joined #lisp 2018-08-14T13:34:41Z rumbler31 joined #lisp 2018-08-14T13:39:05Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-14T13:41:04Z fikka quit (Ping timeout: 272 seconds) 2018-08-14T13:44:14Z Fare quit (Ping timeout: 272 seconds) 2018-08-14T13:46:11Z cage_ joined #lisp 2018-08-14T13:46:14Z nopolitica joined #lisp 2018-08-14T13:50:39Z fikka joined #lisp 2018-08-14T13:59:28Z Denommus joined #lisp 2018-08-14T14:01:38Z warweasle joined #lisp 2018-08-14T14:08:09Z random-nick quit (Remote host closed the connection) 2018-08-14T14:08:33Z fikka quit (Ping timeout: 248 seconds) 2018-08-14T14:09:33Z biopandemic joined #lisp 2018-08-14T14:09:43Z random-nick joined #lisp 2018-08-14T14:11:27Z asarch joined #lisp 2018-08-14T14:12:21Z fikka joined #lisp 2018-08-14T14:15:43Z heisig quit (Quit: Leaving) 2018-08-14T14:20:27Z narendraj9 joined #lisp 2018-08-14T14:22:01Z pierpal quit (Read error: Connection reset by peer) 2018-08-14T14:22:28Z pierpal joined #lisp 2018-08-14T14:25:24Z mindCrime quit (Ping timeout: 272 seconds) 2018-08-14T14:31:29Z pjb joined #lisp 2018-08-14T14:35:45Z pierpal quit (Ping timeout: 248 seconds) 2018-08-14T14:41:45Z Khisanth quit (Ping timeout: 244 seconds) 2018-08-14T14:42:10Z FreeBirdLjj joined #lisp 2018-08-14T14:46:18Z figurelisp quit (Ping timeout: 272 seconds) 2018-08-14T14:52:49Z ``Erik joined #lisp 2018-08-14T14:54:18Z Khisanth joined #lisp 2018-08-14T14:54:21Z pierpal joined #lisp 2018-08-14T14:55:01Z test1600 joined #lisp 2018-08-14T14:55:29Z housel joined #lisp 2018-08-14T14:56:46Z arrsim quit (Ping timeout: 260 seconds) 2018-08-14T14:58:05Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-08-14T15:00:12Z igemnace joined #lisp 2018-08-14T15:00:45Z FreeBirdLjj joined #lisp 2018-08-14T15:04:00Z Inline joined #lisp 2018-08-14T15:04:11Z narendraj9 quit (Remote host closed the connection) 2018-08-14T15:09:23Z fzac joined #lisp 2018-08-14T15:11:32Z robotoad quit (Quit: robotoad) 2018-08-14T15:16:17Z fikka quit (Ping timeout: 248 seconds) 2018-08-14T15:20:47Z Bronsa joined #lisp 2018-08-14T15:21:54Z edgar-rft quit (Quit: Leaving) 2018-08-14T15:24:39Z mindCrime joined #lisp 2018-08-14T15:25:47Z schweers quit (Ping timeout: 265 seconds) 2018-08-14T15:28:19Z asarch quit (Quit: Leaving) 2018-08-14T15:31:54Z robotoad joined #lisp 2018-08-14T15:35:50Z wheelsucker joined #lisp 2018-08-14T15:39:51Z chipolux joined #lisp 2018-08-14T15:39:51Z Fare joined #lisp 2018-08-14T15:40:58Z Shinmera: I'm also happy to announce that another Lisp website is finished: http://studio.tymoon.eu/ https://github.com/Shirakumo/studio 2018-08-14T15:43:50Z pierpal quit (Quit: Poof) 2018-08-14T15:44:08Z pierpal joined #lisp 2018-08-14T15:48:21Z FareTower joined #lisp 2018-08-14T15:50:28Z Fare quit (Ping timeout: 244 seconds) 2018-08-14T15:51:29Z dented42 joined #lisp 2018-08-14T15:54:36Z FareTower quit (Ping timeout: 244 seconds) 2018-08-14T15:58:03Z arkaros quit (Ping timeout: 260 seconds) 2018-08-14T15:59:17Z fikka joined #lisp 2018-08-14T16:00:02Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-14T16:03:44Z drmeister: Hi - has anyone worked with pzmq? 2018-08-14T16:03:59Z drmeister: I have a small test case where a message is being lost - I can't figure it out. 2018-08-14T16:05:31Z pjb: drmeister: using UDP or TCP? 2018-08-14T16:05:36Z drmeister: tcp 2018-08-14T16:05:49Z drmeister: I think its something to do with identities 2018-08-14T16:05:55Z pjb: drmeister: I'd suggest a network dump, to check if the message is transmitted (is it lost before sending or after receiving?) 2018-08-14T16:07:21Z drmeister: pjb: Great! How would I do that? 2018-08-14T16:08:04Z pjb: using tcpdump on the ports used my pzmq. 2018-08-14T16:08:19Z drmeister: I have a tiny example now of a python program that sends a request and waits for a response and a common lisp script that waits for a request and sends a response. The common lisp script sends the response but the python script doesn't receive it. 2018-08-14T16:08:41Z drmeister: The connect string is to tcp://127.0.0.1:9734 2018-08-14T16:08:45Z drmeister: This is macOS 2018-08-14T16:09:15Z housel quit (Remote host closed the connection) 2018-08-14T16:09:58Z drmeister: The common lisp script works in cando - I'm currently trying to get it to work in sbcl. 2018-08-14T16:10:14Z pjb: Something ilke: etcpdump -i lo0 port 9734 2018-08-14T16:10:16Z pjb: Something ilke: tcpdump -i lo0 port 9734 2018-08-14T16:10:33Z sjl joined #lisp 2018-08-14T16:11:57Z drmeister: Giving that a try... 2018-08-14T16:12:01Z drmeister: Thank you 2018-08-14T16:13:32Z housel joined #lisp 2018-08-14T16:20:11Z drmeister: pjb: There is a lot of output (I added -X) 2018-08-14T16:20:16Z drmeister: One of the packages is this: 2018-08-14T16:20:19Z drmeister: https://www.irccloud.com/pastebin/s8PVurFf/ 2018-08-14T16:20:24Z drmeister: packets - whatever 2018-08-14T16:21:05Z drmeister: That contains the stuff that I'm sending. What is the localhost.54007 ? Is that the python code sending this out on another port? 2018-08-14T16:21:37Z drmeister: I don't see anything that looks like the response. 2018-08-14T16:21:52Z drmeister: Here is the output of the Common Lisp script ( I can post the script as well - but it is longish) 2018-08-14T16:22:04Z drmeister: https://www.irccloud.com/pastebin/z40MU7qW/ 2018-08-14T16:22:34Z drmeister: The python is sending [ b'', b'a-request'] 2018-08-14T16:22:58Z drmeister: The CL script is responding with (list "" "response" "a-request") 2018-08-14T16:24:05Z FareTower joined #lisp 2018-08-14T16:24:21Z rippa joined #lisp 2018-08-14T16:30:08Z FareTower quit (Ping timeout: 260 seconds) 2018-08-14T16:30:35Z arbv quit (Ping timeout: 255 seconds) 2018-08-14T16:33:28Z ckonstanski joined #lisp 2018-08-14T16:37:33Z pjb: drmeister: this packet seems like the beginning of the python message. 2018-08-14T16:38:45Z arbv joined #lisp 2018-08-14T16:39:15Z pjb: If you don't seen any other packet, then it means the problem is on the sending lisp side. 2018-08-14T16:40:46Z test1600 quit (Quit: Leaving) 2018-08-14T16:40:56Z test1600 joined #lisp 2018-08-14T16:42:16Z arbv quit (Client Quit) 2018-08-14T16:42:37Z arbv joined #lisp 2018-08-14T16:44:11Z doubledup quit (Remote host closed the connection) 2018-08-14T16:49:20Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-14T16:49:49Z pierpal quit (Quit: Poof) 2018-08-14T16:50:07Z pierpal joined #lisp 2018-08-14T16:54:15Z Jesin quit (Remote host closed the connection) 2018-08-14T16:56:18Z nowhere_man joined #lisp 2018-08-14T16:56:26Z thawes joined #lisp 2018-08-14T17:03:29Z drmeister: I think you are correct. 2018-08-14T17:03:37Z drmeister: I have it working in sbcl now. 2018-08-14T17:03:43Z drmeister: Same issue 2018-08-14T17:04:02Z drmeister: https://www.irccloud.com/pastebin/1LMtfchQ/ 2018-08-14T17:04:08Z drmeister: That's the Common Lisp - it's longish 2018-08-14T17:04:15Z papachan joined #lisp 2018-08-14T17:04:24Z drmeister: Python... 2018-08-14T17:04:25Z drmeister: https://www.irccloud.com/pastebin/kGsLJHbv/ 2018-08-14T17:04:38Z drmeister: Python3 to be exact 2018-08-14T17:04:57Z drmeister: I run the Common Lisp script and then run the python in another terminal 2018-08-14T17:05:02Z drmeister: The Python code hangs with... 2018-08-14T17:05:21Z drmeister: https://www.irccloud.com/pastebin/1QOdesbr/ 2018-08-14T17:05:34Z drmeister: The Common Lisp output looks like... 2018-08-14T17:05:46Z drmeister: https://www.irccloud.com/pastebin/IWQJSayk/ 2018-08-14T17:06:48Z drmeister: I suspect the problem is the identities part - because I had to add code to deal with the non-string nature of zmq's default identities. 2018-08-14T17:06:59Z drmeister: #(0 214 243 47 67) 2018-08-14T17:07:38Z igemnace quit (Quit: WeeChat 2.2) 2018-08-14T17:08:27Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-14T17:12:30Z Jesin joined #lisp 2018-08-14T17:12:46Z meepdeew joined #lisp 2018-08-14T17:14:18Z trittweiler: drmeister: if you can't see any outgoing packet from 127.0.0.1:9734, then dive into pzmq:send. Does that have any kind of meaningful return value? Maybe the data is waiting in a buffer, and needs to be flushed out 2018-08-14T17:14:57Z drmeister: There doesn't appear to be any way to 'flush'. 2018-08-14T17:15:04Z drmeister: I did just read something interesting though... 2018-08-14T17:15:19Z drmeister: I am using a DEALER - ROUTER pair of sockets. 2018-08-14T17:15:20Z drmeister: http://zeromq.org/tutorials:dealer-and-router 2018-08-14T17:15:22Z drmeister: It says... 2018-08-14T17:15:48Z drmeister: The main detail to notice when reading the man page is the requirement for adding in a null (empty) message part between the identity routing information prepended to all messages and the message body containing the application-level data. This null message part is used as a delimiter to separate routing information from application-level data. When communicating to/from REQ/REP sockets, the routing information is silently 2018-08-14T17:15:48Z drmeister: processed by the framework up to the null message part; the framework then hands off the remaining message parts to your application for processing. 2018-08-14T17:16:03Z drmeister: I'm trying to figure out how to get a null (empty) message part 2018-08-14T17:17:09Z FareTower joined #lisp 2018-08-14T17:17:12Z trittweiler: presumably, the python side is doing that automatically? If that's the case you can inspect the request to get an idea how null/empty is supposed to look at the wire 2018-08-14T17:18:49Z pierpal quit (Quit: Poof) 2018-08-14T17:19:04Z drmeister: The python side isn't doing that - because I don't send an identity - my understanding is that the Python side will create an identity of the form #(0 w x y z) where w x y z are octets that code for a 4-byte random value integer. 2018-08-14T17:19:06Z pierpal joined #lisp 2018-08-14T17:19:21Z drmeister: I see that . 2018-08-14T17:19:37Z drmeister: I'm trying different combinations of null in the python and null in the Common Lisp. 2018-08-14T17:19:47Z drmeister: I'm not sure if an empty string "" counts as null. 2018-08-14T17:21:03Z drmeister: No combination of b'' in the python and "" in the common lisp appear to change the behavior. 2018-08-14T17:21:09Z drmeister: This is maddening. 2018-08-14T17:22:37Z m00natic quit (Remote host closed the connection) 2018-08-14T17:25:15Z jackdaniel: drmeister: alexandria has a predicate emptyp 2018-08-14T17:27:09Z drmeister: I'm worried about what zmq thinks is an null delimiter 2018-08-14T17:30:09Z Shinmera: Colleen: look up alexandria emptyp 2018-08-14T17:30:09Z Colleen: Function emptyp https://common-lisp.net/project/alexandria/draft/alexandria.html#index-emptyp-137 2018-08-14T17:36:35Z random-nick quit (Ping timeout: 240 seconds) 2018-08-14T17:48:00Z Arcaelyx joined #lisp 2018-08-14T17:48:58Z Arcaelyx quit (Client Quit) 2018-08-14T17:49:44Z dented42 joined #lisp 2018-08-14T17:54:44Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-14T17:57:17Z gitfaf joined #lisp 2018-08-14T18:00:58Z jeosol: vbotdmp76 2018-08-14T18:01:14Z jeosol: sorry guys, errory 2018-08-14T18:01:16Z jeosol: error 2018-08-14T18:01:53Z gitfaf quit (Remote host closed the connection) 2018-08-14T18:03:47Z JuanDaugherty joined #lisp 2018-08-14T18:04:35Z eschatologist quit (Ping timeout: 276 seconds) 2018-08-14T18:05:54Z gitfaf joined #lisp 2018-08-14T18:08:55Z eschatologist joined #lisp 2018-08-14T18:08:55Z random-nick joined #lisp 2018-08-14T18:11:26Z rozenglass joined #lisp 2018-08-14T18:17:05Z fikka quit (Ping timeout: 248 seconds) 2018-08-14T18:19:51Z edgar-rft joined #lisp 2018-08-14T18:20:31Z fikka joined #lisp 2018-08-14T18:27:17Z sauvin quit (Remote host closed the connection) 2018-08-14T18:33:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T18:36:21Z shka_ joined #lisp 2018-08-14T18:36:46Z shka_: hello 2018-08-14T18:37:03Z shka_: i'm having troubles installing cl-cuda on arch linux 2018-08-14T18:37:31Z shka_: grovel can't seem to find header file 2018-08-14T18:37:52Z shka_: i think that's because arch put it into /usr/include/hwloc/cuda.h instead of /usr/include/cuda.h 2018-08-14T18:38:48Z shka_: when i symlink this file, i am having other issues though 2018-08-14T18:39:54Z fikka joined #lisp 2018-08-14T18:45:56Z ckonstanski quit (Quit: bye) 2018-08-14T18:57:14Z meepdeew quit 2018-08-14T19:04:13Z chipolux quit (Ping timeout: 244 seconds) 2018-08-14T19:04:49Z papachan quit (Quit: WeeChat 2.2) 2018-08-14T19:06:10Z chipolux joined #lisp 2018-08-14T19:10:25Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-14T19:11:42Z arbv joined #lisp 2018-08-14T19:13:05Z pierpal quit (Quit: Poof) 2018-08-14T19:13:22Z pierpal joined #lisp 2018-08-14T19:25:36Z fikka quit (Ping timeout: 272 seconds) 2018-08-14T19:29:31Z papachan joined #lisp 2018-08-14T19:40:16Z lonjil quit (Quit: No Ping reply in 180 seconds.) 2018-08-14T19:40:39Z fikka joined #lisp 2018-08-14T19:40:44Z lonjil joined #lisp 2018-08-14T19:43:15Z captgector quit (Read error: Connection reset by peer) 2018-08-14T19:43:54Z captgector joined #lisp 2018-08-14T19:44:46Z shlecta joined #lisp 2018-08-14T19:45:59Z shka_ quit (Quit: Konversation terminated!) 2018-08-14T19:46:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T19:48:34Z arbv quit (Ping timeout: 256 seconds) 2018-08-14T19:52:09Z fikka joined #lisp 2018-08-14T19:54:56Z pierpal quit (Quit: Poof) 2018-08-14T19:55:16Z pierpal joined #lisp 2018-08-14T19:56:51Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T19:58:43Z shka_ joined #lisp 2018-08-14T20:01:05Z fzac quit (Remote host closed the connection) 2018-08-14T20:02:18Z fikka joined #lisp 2018-08-14T20:02:32Z cage_ quit (Quit: Leaving) 2018-08-14T20:03:18Z test1600 quit (Quit: Leaving) 2018-08-14T20:03:37Z arbv joined #lisp 2018-08-14T20:05:31Z phoe: shka_: what are the issues? 2018-08-14T20:05:53Z shka_: error: unknown type name ‘CUdevice’ 2018-08-14T20:06:54Z klltkr_ joined #lisp 2018-08-14T20:07:08Z fikka quit (Ping timeout: 260 seconds) 2018-08-14T20:08:16Z klltkr quit (Ping timeout: 256 seconds) 2018-08-14T20:11:26Z gitfaf quit (Remote host closed the connection) 2018-08-14T20:11:35Z shka_: phoe: works for you? 2018-08-14T20:12:12Z fikka joined #lisp 2018-08-14T20:13:38Z phoe: well 2018-08-14T20:13:42Z phoe: hmmm 2018-08-14T20:13:47Z phoe: that's not telling me anything at all 2018-08-14T20:14:28Z kerrhau joined #lisp 2018-08-14T20:16:22Z shka_: phoe: try ql:quickload :cl-cuda 2018-08-14T20:17:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T20:21:58Z pierpa joined #lisp 2018-08-14T20:22:24Z fikka joined #lisp 2018-08-14T20:22:52Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-14T20:27:24Z fikka quit (Ping timeout: 244 seconds) 2018-08-14T20:28:31Z light2yellow quit (Quit: light2yellow) 2018-08-14T20:29:48Z gitfaf joined #lisp 2018-08-14T20:30:05Z chipolux quit (Ping timeout: 240 seconds) 2018-08-14T20:31:56Z vlatkoB quit (Remote host closed the connection) 2018-08-14T20:33:02Z phoe: shka_: works on my machine 2018-08-14T20:33:09Z shka_: phoe: OS? 2018-08-14T20:33:13Z phoe: shka_: debian sid 2018-08-14T20:33:23Z phoe: fully upgraded as of today 2018-08-14T20:33:34Z shka_: right 2018-08-14T20:33:35Z chipolux joined #lisp 2018-08-14T20:33:47Z shka_: it works on ubuntu as well 2018-08-14T20:33:51Z shka_: but on arch no cigar 2018-08-14T20:35:21Z shka_: i will try to solve this tomorrow 2018-08-14T20:36:43Z dented42 joined #lisp 2018-08-14T20:41:31Z jxy quit (Quit: leaving) 2018-08-14T20:41:36Z pierpa quit (Ping timeout: 252 seconds) 2018-08-14T20:41:51Z pierpal quit (Ping timeout: 240 seconds) 2018-08-14T20:42:39Z fikka joined #lisp 2018-08-14T20:47:02Z jxy joined #lisp 2018-08-14T20:47:22Z gitfaf quit (Remote host closed the connection) 2018-08-14T20:47:47Z gitfaf joined #lisp 2018-08-14T20:47:56Z fikka quit (Ping timeout: 272 seconds) 2018-08-14T20:51:06Z shka_ quit (Ping timeout: 272 seconds) 2018-08-14T20:52:50Z fikka joined #lisp 2018-08-14T20:53:02Z gitfaf quit 2018-08-14T20:53:11Z asarch joined #lisp 2018-08-14T20:56:47Z emacsomancer joined #lisp 2018-08-14T20:56:51Z fikka quit (Ping timeout: 240 seconds) 2018-08-14T21:02:30Z Bike quit (Ping timeout: 252 seconds) 2018-08-14T21:04:48Z kerrhau quit (Read error: Connection reset by peer) 2018-08-14T21:05:14Z gitfaf joined #lisp 2018-08-14T21:05:38Z shlecta quit (Ping timeout: 256 seconds) 2018-08-14T21:06:46Z kerrhau joined #lisp 2018-08-14T21:08:04Z mindCrime quit (Remote host closed the connection) 2018-08-14T21:08:28Z mindCrime joined #lisp 2018-08-14T21:13:39Z mrottenkolber joined #lisp 2018-08-14T21:15:31Z asarch quit (Quit: Leaving) 2018-08-14T21:19:50Z dented42_ joined #lisp 2018-08-14T21:20:52Z thawes quit (Remote host closed the connection) 2018-08-14T21:21:59Z jeosol: shka_: if it helps, (ql:quickload :cl-cuda) also works on my machine. OpenSuse Leap 2018-08-14T21:23:25Z dented42 quit (Ping timeout: 272 seconds) 2018-08-14T21:28:03Z shlecta joined #lisp 2018-08-14T21:28:47Z chipolux quit (Quit: chipolux) 2018-08-14T21:32:50Z trittweiler quit (Ping timeout: 256 seconds) 2018-08-14T21:34:10Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-14T21:35:50Z Bike joined #lisp 2018-08-14T21:39:02Z ym quit (Quit: Leaving) 2018-08-14T21:39:40Z Denommus quit (Remote host closed the connection) 2018-08-14T21:45:40Z LiamH quit (Quit: Leaving.) 2018-08-14T21:48:56Z ntqz joined #lisp 2018-08-14T21:51:32Z makomo quit (Ping timeout: 256 seconds) 2018-08-14T21:59:04Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-14T22:00:25Z arbv joined #lisp 2018-08-14T22:06:07Z slyrus1: anyone know what's going with the nibbles/ironclad fixes for recent SBCLs? 2018-08-14T22:09:11Z no-defun-allowed: Good morning everyone! 2018-08-14T22:15:07Z cgay joined #lisp 2018-08-14T22:15:13Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-14T22:15:55Z sjl joined #lisp 2018-08-14T22:17:09Z makomo joined #lisp 2018-08-14T22:18:24Z stylewarning: hello folks 2018-08-14T22:20:02Z random-nick quit (Read error: Connection reset by peer) 2018-08-14T22:21:34Z FareTower quit (Ping timeout: 256 seconds) 2018-08-14T22:21:35Z varjag quit (Ping timeout: 244 seconds) 2018-08-14T22:23:50Z cgay: My CL is very rusty... Is there a standard way to break very long string constants across multiple lines? Do I need to use concatenate, or (format nil "firstline~\nsecondline") ? 2018-08-14T22:24:40Z Bike: you can just write them on multiple lines 2018-08-14T22:25:11Z cgay: I don't want any newlines in them. 2018-08-14T22:25:21Z Bike: oh, sorry, then yeah probably format it 2018-08-14T22:25:32Z cgay: ok, thanks 2018-08-14T22:27:01Z nowhere_man quit (Ping timeout: 268 seconds) 2018-08-14T22:27:20Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-14T22:27:57Z pjb: Or: (remove #\newline "foo 2018-08-14T22:27:57Z pjb: bar") 2018-08-14T22:28:16Z pjb: Possibly with a #. prefix. 2018-08-14T22:28:47Z cgay: format seems a bit better because it removes leading whitespace on continuation lines. 2018-08-14T22:28:49Z pjb: If you have several such strings, you could write a reader macro. 2018-08-14T22:28:58Z arbv joined #lisp 2018-08-14T22:29:02Z pjb: This depends on what you want, of course. 2018-08-14T22:29:44Z pjb: You could put a reader macro on #\" such as """ starts a string that can include newlines and indents that don't belong to the string. 2018-08-14T22:31:14Z cgay: format is fine 2018-08-14T22:31:32Z pjb: For one it's ok, but for more it's ugly. 2018-08-14T22:32:13Z Bike: oh, and to make it a constant do #.(format ...) so that it doesn't format at runtime 2018-08-14T22:32:29Z cgay: it's not performance critical. 2018-08-14T22:33:30Z charh joined #lisp 2018-08-14T22:36:28Z phoe: nonetheless 2018-08-14T22:36:40Z cgay: ...but it is in a macro that seems to want a read-time string there, so #. it is 2018-08-14T22:37:01Z phoe: the human reader will be able to infer that it's a constant if he sees #.(format nil ...) anywhere in the code 2018-08-14T22:37:21Z cgay: true 2018-08-14T22:37:25Z phoe: even better, (defparameter +my-string+ (format nil ...)) 2018-08-14T22:37:40Z pjb: Nope. 2018-08-14T22:37:46Z phoe: and then, if you want this to be usable inside macros, (eval-when always ...) 2018-08-14T22:37:49Z pjb: Never use + with defvar or defparameter. It's bad. 2018-08-14T22:38:13Z phoe: pjb: I want to avoid the quirkiness of defconstant. 2018-08-14T22:38:19Z pjb: (not as bad as not using *, but at least half as bad). 2018-08-14T22:38:32Z pjb: (defparameter *my-string* (format nil ...)) is perfectly good. 2018-08-14T22:38:52Z phoe: oh well, matter of taste 2018-08-14T22:39:05Z pjb: Nope. Matter of time spent debugging obscur bugs. 2018-08-14T22:39:29Z cgay: this string is used in one place (a command-line flag help string). i wouldn't want a separate constant for it. ideally there would be real string syntax for this, but oh well. 2018-08-14T22:39:51Z phoe: pjb: forms such as (setf +foo+ ...) should be flagged as a warning by the compiler 2018-08-14T22:39:51Z pjb: cgay: you can implement your ideal real string syntax. Reader macros are made for that! 2018-08-14T22:39:55Z Bike: you could make one if you want. format's always been fine for me, though. 2018-08-14T22:40:06Z pjb: phoe: nope. Only if defconstant. 2018-08-14T22:41:16Z cgay: lol 2018-08-14T22:41:57Z phoe: pjb: "should", as in, "I'd like it to work that way" 2018-08-14T22:42:15Z phoe: just as SBCL flags lexical variables that have names with earmuffs 2018-08-14T22:42:16Z pjb: phoe: it would not be a good idea. 2018-08-14T22:42:26Z pjb: You may use the + convention for other purposes. 2018-08-14T22:42:45Z phoe: I've seen it used in the Lisp world for denoting constants 2018-08-14T22:42:57Z phoe: it's not as popular as earmuffs for dynavars, but nonetheless 2018-08-14T22:43:04Z pjb: not constant. There are no constants in CL. 2018-08-14T22:43:09Z pjb: Only constant VARIABLES. 2018-08-14T22:43:17Z cgay: It sounds like a lint rule that certain organizations could turn on if they wanted to. 2018-08-14T22:43:19Z pjb: What is constant, is the binding (the variable). 2018-08-14T22:43:19Z phoe: right - for denoting constant variables. 2018-08-14T22:43:56Z pjb: (defconstant +foo+ (vector 1 2)) (setf (aref +foo+ 0) 3) +foo+ #| --> #(3 2) |# is perfectly conforming. 2018-08-14T22:44:10Z phoe: yep, that's correct 2018-08-14T22:44:12Z pjb: What is constant, is the binding between the symbol +foo+ and the pointer to the mutable vector. 2018-08-14T22:47:21Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-14T22:48:39Z arbv joined #lisp 2018-08-14T22:54:52Z quipa joined #lisp 2018-08-14T22:55:20Z NB0X-Matt-CA quit (Remote host closed the connection) 2018-08-14T22:55:35Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-14T22:56:24Z NB0X-Matt-CA joined #lisp 2018-08-14T22:59:50Z gitfaf_ joined #lisp 2018-08-14T23:00:16Z robotoad quit (Quit: robotoad) 2018-08-14T23:02:27Z gitfaf quit (Ping timeout: 240 seconds) 2018-08-14T23:05:27Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-14T23:06:51Z PuercoPop joined #lisp 2018-08-14T23:19:56Z quipa quit (Quit: Leaving) 2018-08-14T23:25:05Z AeroNotix quit (Ping timeout: 240 seconds) 2018-08-14T23:27:22Z AeroNotix joined #lisp 2018-08-14T23:28:15Z aeth: Would be nice to have immutability in CL. You can kind of fake that without optimizations with :read-only slots in structs assuming implementations respect that (idk if it's required), although it's only really easy to fake conses with structs 2018-08-14T23:28:46Z jasmith quit (Quit: Leaving) 2018-08-14T23:29:20Z aeth: idk if extending sequences for types/immutability or extensible sequences (and put this in a library) would be easier to get implementations to support 2018-08-14T23:29:43Z Bike: all :read-only does is leave the writer undefined. 2018-08-14T23:30:44Z aeth: Is directly accessing slots even portable on structs? That's probably good enough for having read-only 2018-08-14T23:31:13Z Bike: "directly" how, slot-value? no. standard-instance-access also no. 2018-08-14T23:31:59Z aeth: hmm, okay, so you at least can get immutable conses that way, assuming you can come up with a cons-as-struct representation that doesn't rely on writers (mine does) 2018-08-14T23:34:38Z asarch joined #lisp 2018-08-14T23:35:08Z makomo quit (Ping timeout: 272 seconds) 2018-08-14T23:37:35Z aeth: If I had to redesign CL I'd add optional immutability to conses and arrays (and hash-tables?) and :element-types for cars/cdrs (separately because you might want the cdrs to be (or null your-typed-cons) in the case of a linked list) and hash-table keys/values (again, separately) 2018-08-14T23:37:48Z aeth: I'd write a CDR for that but so few people respect CDRs that I think the site has been down for years at this point 2018-08-14T23:38:04Z arbv quit (Ping timeout: 256 seconds) 2018-08-14T23:38:18Z gendl: The CDR process needs to be revived. 2018-08-14T23:38:26Z gendl: by the way it seems nobody is awake in #abcl 2018-08-14T23:38:37Z Fare joined #lisp 2018-08-14T23:38:53Z gendl: I was just playing with getting the base systems of Gendl compiled in it. 2018-08-14T23:39:11Z arbv joined #lisp 2018-08-14T23:39:22Z gendl: And i'm running with Java 9 on my Mac. The ABCL docs say it only works through Java 1.8. Is it not supposed to work with Java 9? 2018-08-14T23:39:30Z aeth: Afaik current typed conses are O(n) since no type information is stored in the cons itself, so verification is done over the whole list. Instead of being able to say :car-type integer :cdr-type (or null cons-of-integers) and just getting a linked list that can only hold integers. Then you'd be able to verify instantly 2018-08-14T23:40:02Z Bike: this implies having multiple, possibly arbitrarily many, tags for conses 2018-08-14T23:43:22Z aeth: Yes, ideally arbitrarily many. I hate how :element-type in arrays has to be something like (unsigned-byte 8) or fixnum and can't just be (integer 0 42) separate of what's internally used to store them. 2018-08-14T23:43:54Z PuercoPop: aeth: yes, not having strings immutable by default is one of the criticisms Henry Baker makes to CL. Having them immutable by default would allow copy by reference in threads for example. 2018-08-14T23:44:13Z aeth: At the moment, type information is lost in data structures except for (maybe) :type in struct slots and (unportable except for bit and character/simple-character) specialized arrays 2018-08-14T23:44:34Z Bike: having arbitrarily many tags for conses is not a trivial change. 2018-08-14T23:44:57Z Bike: with arrays it wouldn't be quite as bad since using an extra word for the type isn't unexpected, but could still cause difficulties. 2018-08-14T23:45:20Z Fare quit (Ping timeout: 268 seconds) 2018-08-14T23:45:45Z aeth: PuercoPop: The two flaws I see in CL data structures are the lack of immutability and the loss of most type information 2018-08-14T23:46:00Z aeth: The more type information the data structures themselves remember, the less you have to use THE, DECLARE, etc. 2018-08-14T23:46:05Z Bike: there's no loss, it just doesn't exist to begin with. 2018-08-14T23:46:54Z aeth: Bike: The compiler knows 42 is an integer, a fixnum, an (integer 42 42), etc. until it's stored into a data structure 2018-08-14T23:47:01Z aeth: Or at least, possibly knows 2018-08-14T23:47:55Z Bike: you're talking about a RUNTIME tag. the compiler STILL wouldn't know if there were typed conses. the runtime could know that a slot is supposed to hold whatever type, but that would improve correctness, not efficiency. 2018-08-14T23:48:23Z no-defun-allowed: a friend asks why people should avoid SETF in lisp 2018-08-14T23:48:32Z Bike: they shouldn't. setf is great 2018-08-14T23:49:01Z Bike: unless they like, want a reason? i know a dude who's good at geas magic. 2018-08-14T23:49:06Z aeth: Bike: for numbers and sequences it improves efficiency because of type-generic functions like + and MAP. If it knows it's an (integer 42 42) then it will use efficient arithmetic for most +, -, /, *, etc. because it will (probably) stay a fixnum. If it knows foo is a list, it uses a more efficient LENGTH/MAP, etc. 2018-08-14T23:49:32Z Bike: it has to check that at runtime. 2018-08-14T23:49:57Z aeth: (+ 3 (gethash :foo hash-table-of-integers-up-to-42)) 2018-08-14T23:50:11Z aeth: If hash-tables had :element-type, that *could* be efficient 2018-08-14T23:50:21Z chipolux joined #lisp 2018-08-14T23:50:34Z Fare joined #lisp 2018-08-14T23:50:56Z aeth: SBCL doesn't check at runtime in (+ 3 (aref foo 42)) if it's arefing an (unsigned-byte 8) array that it knows the type of (it might do a bounds check if it doesn't know the full type, including the length) 2018-08-14T23:51:05Z aeth: It just uses more efficient + 2018-08-14T23:51:07Z Bike: if the hash-table doesn't have a compile time known element type, it's just as efficient either way: right now, the runtime checks whether the gethash result is a fixnum. in your version, the runtime checks the stored element type in the gethash, and dispatches with arithmetic based on that. 2018-08-14T23:51:43Z Bike: with completely arbitrary runtime element types it could be less efficient, since it has to compute subtypep or something. 2018-08-14T23:51:46Z aeth: (defun foo (a) (declare ((simple-array (unsigned-byte 8) (43)) a)) (+ 3 (aref a 42))) ; efficient + 2018-08-14T23:52:14Z Bike: that's a compile time declaration. that is a separate concern from run time type information. 2018-08-14T23:52:23Z aeth: Bike: You get efficiency sometimes, but reliability is the main case 2018-08-14T23:52:51Z aeth: If a have a linked list that can only store foos, I can trust the user's input to only have foos because the compiler or runtime will error before that list is given to me. 2018-08-14T23:52:59Z aeth: or hash-table or array 2018-08-14T23:53:25Z aeth: (Whether it's the compiler or the runtime depends on various factors) 2018-08-14T23:53:26Z Bike: like i said, it could improve correctness. but it would not be more efficient. 2018-08-14T23:54:23Z aeth: It wouldn't be more efficient in general, but there are cases where it would be more efficient, like iterating over an array whose bounds are carefully set so that the arithmetic is efficient. It checks the array's type once and the compiled arithmetic can be efficient. 2018-08-14T23:55:49Z aeth: This exists in a limited extent already, e.g. an array of 1,000,000 (unsigned-byte 8)s will have efficient (dotimes (i (expt 10 6)) (format t "~S~%" (1+ (aref foo i)))) 2018-08-14T23:56:16Z aeth: You check the type once, instead of having a generic 1+ called each iteration 2018-08-14T23:56:34Z Bike: it probably wouldn't be more efficient now, as it would require complicated coordination between aref and 1+. 2018-08-14T23:56:41Z Bike: i guess reduce or something could, hypothetically. 2018-08-14T23:57:28Z chipolux quit (Quit: chipolux) 2018-08-14T23:57:34Z aeth: But the main reason you'd want immutable and holds-only-certain-type things would be for correctness, yes. 2018-08-14T23:57:47Z chipolux joined #lisp 2018-08-14T23:58:17Z aeth: Well, efficient correctness checks :-) 2018-08-14T23:58:34Z aeth: Obviously you can check everything manually at the moment. 2018-08-14T23:59:31Z aeth: (It wouldn't always be more efficient, you could probably encode stuff in a SATISFIES type in a way that's bad) 2018-08-15T00:00:31Z Bike: what you're talking about is basically moving correctness checks up to when they're constructed or written to. (defstruct kons (type t) car cdr) (defun (setf kar) (v kons) (assert (typep v (kons-type kons))) (setf (kons-car kons) v)) etc 2018-08-15T00:00:43Z Bike: it should be obvious that this would not be fast 2018-08-15T00:02:04Z gitfaf_ quit (Remote host closed the connection) 2018-08-15T00:02:29Z gitfaf joined #lisp 2018-08-15T00:03:41Z aeth: Bike: Well at the moment I do something similar except it's closer to (defstruct kons () (car nil :type foo) (cdr nil :type (or null kons))) 2018-08-15T00:03:46Z Bike: then you could hypothetically have a reduce definition that does (cond ... ((and (eq function #'+) (typep sequence 'kons) (subtypep (kons-type sequence) 'fixnum)) (setq function #'fixnum-+)) ...))) bla bla bla. 2018-08-15T00:03:52Z Bike: that is completely different. 2018-08-15T00:03:57Z Bike: that is not a runtime tag. 2018-08-15T00:04:24Z aeth: Isn't it both? 2018-08-15T00:04:41Z Bike: no. foo is fixed at compile time. 2018-08-15T00:05:17Z aeth: Yes. 2018-08-15T00:05:53Z aeth: The conses I was proposing would be fixed at compile time as well. 2018-08-15T00:06:35Z aeth: You could have a foo-cons that can only hold foo in the car and (or null foo-cons) in the cdr, not suitable for arbitrary uses of conses, but suitable for typed singly linked lists 2018-08-15T00:06:54Z Bike: but with any arbitrary type foo. 2018-08-15T00:06:56Z aeth: Then the compiler can infer that every (foo-car my-foo-cons) will be of type foo 2018-08-15T00:07:54Z aeth: Right, because it's arbitrary there would have to be some generic name, such as (typed-car my-foo-cons) or (car* my-foo-cons) and so you'd need to inform the compiler that you know it's a foo-car. Perhaps with THE or DECLARE or CHECK-TYPE or maybe just because you created the foo-cons somewhere earlier in the function 2018-08-15T00:08:25Z Bike: so C++ templating. could be worse. 2018-08-15T00:08:25Z aeth: Otherwise you'd lose the efficiency, but you'd still be able to say some things as far as correctness goes 2018-08-15T00:09:03Z aeth: Bike: Yeah, basically some form of static-generic data structure like you'd see in the static languages 2018-08-15T00:09:29Z Bike: it doesn't have to be that complicated, really. 2018-08-15T00:09:52Z aeth: But that way you could just do (check-type something 'my-foo-cons) and then the compiler will know for the rest of the function that the cars of something have to be foo 2018-08-15T00:09:59Z Bike: as you're probably aware, you can declare the types of the car and cdr of a cons now. you'd just need a relatively small extension to declare proper list types. 2018-08-15T00:10:15Z dented42_ left #lisp 2018-08-15T00:11:00Z aeth: Bike: But can you define the CDR of that CONS to be the CONS you're defining? 2018-08-15T00:11:17Z Bike: extension, i said. 2018-08-15T00:11:24Z aeth: That's what you'd need to only have to verify the head. At the moment, I do that in structs 2018-08-15T00:11:38Z aeth: Would be nice to be able to use all the list operations and get all the type information 2018-08-15T00:11:44Z Bike: verification is a different question. 2018-08-15T00:12:00Z Bike: that's where you do need some kind of runtime type tag. 2018-08-15T00:12:15Z aeth: Bike: What kind of extension would hash-tables need? e.g. key-type KEYWORD and value-type (UNSIGNED-BYTE 8) 2018-08-15T00:12:53Z aeth: This seems even more useful than typed conses. 2018-08-15T00:13:29Z Bike: something like that. 2018-08-15T00:13:38Z aeth: Having e.g. an ub8 value-type seems like it could be allocated efficiently at the back end, too 2018-08-15T00:13:46Z aeth: closer to specialized arrays 2018-08-15T00:14:04Z Bike: it's important to separate the compile time and runtime parts. 2018-08-15T00:14:14Z Bike: the precedent of array types is bad. 2018-08-15T00:14:53Z Bike: there's no great reason to know that you declared an array to have element-type (integer 17 2083) at runtime, fixnum is fine for that, but the compiler might want to know that about an array. 2018-08-15T00:15:02Z Bike: but the array type declarations confuse this. 2018-08-15T00:15:17Z Bike: or confuse programmers, rather. seriously, it sucks 2018-08-15T00:16:41Z aeth: I disagree. (integer 17 2083) might be an important precondition for your function to work as expected, and you lose that precondition because e.g. on SBCL (upgraded-array-element-type '(integer 17 2083)) => (UNSIGNED-BYTE 15) 2018-08-15T00:16:49Z aeth: And the worst part is, you don't know what it's going to round to 2018-08-15T00:17:26Z Bike: it might be good for correctness. but it would be substantially slower correctness. and you can always do that precondition yourself. 2018-08-15T00:19:41Z aeth: It would check on write, assume on read (as long as it knows what the precondition is before AREF time), so there are situations where it could be faster. e.g. If you're subtracting 17 from the AREF, the compiler will know it stays unsigned 2018-08-15T00:20:21Z Bike: ok i just said separating runtime and compile time. 2018-08-15T00:20:45Z Bike: you can, right now, declare that an array has element type [whatever integer thing] and the compiler can take advantage of that if it wants. that's not the new part. 2018-08-15T00:20:52Z stylewarning: types-as-constraints, types-as-storage, types-as-identifiers 2018-08-15T00:21:01Z Bike: it's so confusing. 2018-08-15T00:21:20Z Bike: fucking types as identifiers. this sucks 2018-08-15T00:21:30Z aeth: types as identifiers as in member types? 2018-08-15T00:21:36Z Bike: coerce, map 2018-08-15T00:22:38Z Bike: and types-as-predicates, that was the fourth i identified when i thought about this too much 2018-08-15T00:22:48Z Bike: "unlike right now" 2018-08-15T00:24:02Z shlecta quit (Ping timeout: 244 seconds) 2018-08-15T00:24:49Z aeth: Well, at the moment types in CL are usually used either for correctness or for performance (sometimes both) 2018-08-15T00:25:39Z Bike: obviously 2018-08-15T00:26:28Z stylewarning: aeth: i would also say for documentation 2018-08-15T00:26:32Z stylewarning: at least that's a reason I use them 2018-08-15T00:26:55Z stylewarning: I don't load up a bunch of CHECK-TYPES because I want things to error, but just because I want to remember what I'm supposed to pass to a function (: 2018-08-15T00:26:56Z aeth: stylewarning: I would file that under correctness because you're assuming the user doesn't read the documentation :-) 2018-08-15T00:28:50Z stylewarning: i've been writing up a document about a tentative plan to implement a dialect of ML in Lisp because I want some clearer value coming from types 2018-08-15T00:30:34Z aeth: I've been writing a lot of my CL functions as essentially statically typed with type declarations. The type declarations are checked in SBCL and CCL and they're used for static typing in (at least) SBCL and for various reasons pretty much every other implementation doesn't run my code other than SBCL or CCL so I can rely on the type declaration behavior. 2018-08-15T00:31:21Z aeth: The problem with check-type is that SBCL correctly infers that the function arguments are of type T because the CHECK-TYPE will be happy to replace them with the correct types at runtime. 2018-08-15T00:32:07Z stylewarning: aeth: yeah but isn't it annoying that said code isn't polymorphic 2018-08-15T00:32:23Z aeth: In theory my macro that generates functions with type declarations in a slightly more convenient syntax can also generate check-types in other implementations just by pushing that to *features* and having a #+foo change the default behavior of define-function on those implementations 2018-08-15T00:33:07Z stylewarning: aeth: WITH-EXPECTATIONS: https://bitbucket.org/tarballs_are_good/policy-cond/src/568186761e1965dda952c129e3e92264c59389fe/README.txt?at=default&fileviewer=file-view-default 2018-08-15T00:33:26Z Bike: to elaborate on the compile/runtime thing. when you're talking about (check-type array '(array [integer nonsense])) not iterating, that's information thatll have to be stored in the array somehow. that stored information cannot do shit for the compiler. a check-type or declaration could, but that's actually orthogonal to the runtime information. 2018-08-15T00:35:29Z Bike: compiler extensions to the language would probably be easier in several ways 2018-08-15T00:35:52Z aeth: stylewarning: You can get type polymorphism with specialization-store 2018-08-15T00:36:20Z aeth: the only problem is that it relies on type declarations. It can't tap into the type inference 2018-08-15T00:36:24Z stylewarning: aeth: ad hoc polymorphism, not parametric polymorphism, right? 2018-08-15T00:36:26Z sjl quit (Ping timeout: 244 seconds) 2018-08-15T00:37:18Z Bike: i think it's ad hoc, yeah. 2018-08-15T00:37:41Z Bike: can't say i'm fond of that term 2018-08-15T00:37:49Z stylewarning: ad hoc polymorphism is nice with types/classes/CLOS/spec-store/whatever, but I meant parametric polymorphism above, where we define a function that's singly generically useful for many types 2018-08-15T00:38:57Z aeth: could you define it on top of specialization-store? 2018-08-15T00:39:25Z Bike: you'd probably have to specify the set of types you want to polymorph over ahead of time, which is kinda bleh. 2018-08-15T00:39:40Z stylewarning: if you did, it would look like a frankenstein dynamic version of C++ templates 2018-08-15T00:40:20Z Bike: i don't think it would be /that/ bad 2018-08-15T00:41:24Z stylewarning: I mean, supposing some function F was polymorphic over a type variable S, then calls to F would need to check if it was specialized for S's instantiation, and if not, generate that code 2018-08-15T00:41:54Z Bike: yeah, that's what i was getting at with the ahead of time bit. we can't do that now. 2018-08-15T00:41:58Z stylewarning: (F (alexandria:whichever "X" 1 'a nil)) 2018-08-15T00:42:18Z Bike: unfair! 2018-08-15T00:42:48Z stylewarning: (: 2018-08-15T00:43:03Z Bike: i would expect a compiler error. or warning and fallback to dynamism, i guess 2018-08-15T00:43:12Z stylewarning: I bet you could get something to work, but I don't think it's a good use of something like spec-store. 2018-08-15T00:43:37Z stylewarning: spec-store or my own worse version of it is good for when you---as you said---know types at compile time and want to specialize accordingly 2018-08-15T00:44:27Z Bike: the whole 'generate that code' bit implies a lot of crazy and yet extremely boring problems with compilation units. last time i asked C++ compiler people about it they went off to get blackout drunk 2018-08-15T00:46:05Z stylewarning: sounds like a reasonable response 2018-08-15T00:46:37Z Bike: i zoned out when the special elf flags came up 2018-08-15T00:47:02Z JuanDaugherty quit (Quit: Exeunt) 2018-08-15T00:49:34Z stylewarning: rambling about static types in lisp https://github.com/tarballs-are-good/coalton/blob/master/thoughts.md 2018-08-15T00:53:57Z aeth: I use static types (and similar things) a lot in my game engine. And there are drawbacks to static types, they just seem to make sense a lot in the core of a game engine. 2018-08-15T00:54:21Z aeth: on the other hand, in that same engine in functions called from defmacro everything's pretty dynamic 2018-08-15T00:58:13Z Fare quit (Ping timeout: 260 seconds) 2018-08-15T00:59:12Z allcr joined #lisp 2018-08-15T01:00:35Z aeth: What I like about CL is that it's a messy mix of everything all in one language, so you just use whatever's most convenient for the problem. 2018-08-15T01:01:20Z jack_rabbit joined #lisp 2018-08-15T01:01:52Z stylewarning: aeth: I have often said something like that, but I think that viewpoint would benefit from more refinement. 2018-08-15T01:05:20Z aeth: Well, I think the downside with CL is that its weaknesses are things that have gained popularity since the mid-90s. Stuff you see in Haskell or Rust or Go, etc. 2018-08-15T01:06:07Z mason: Like what? 2018-08-15T01:06:41Z stylewarning: aeth: I think a "weakness" that is present in the current ecosystem is just lack of completeness, comprehensiveness, or robustness. 2018-08-15T01:07:04Z aeth: You even see stuff in Java that CL is lacking, like a rich standard library full of lots of built-ins like queues, sets (other than the very weak lists-as-sets), etc. 2018-08-15T01:07:21Z stylewarning: Maybe I want to write in a functional fashion. What are my options? Use a mishmash of Alexandria, FSet, and a few other things? 2018-08-15T01:07:54Z aeth: What you miss with custom data structures is (1) whatever the library author (or you) forgot to add and (2) any kind of convenient way to use them 2018-08-15T01:08:40Z stylewarning: I think 1 and 2 are really, really important. 1/2 are the reasons people use a library/paradigm/whatever. 2018-08-15T01:09:26Z stylewarning: "You can do functional programming in Lisp because it has all of the fundamental primitives you need." -- generally not convincing enough for me to employ a functional paradigm, because it's asking me to roll out and "complete" the paradigm 2018-08-15T01:09:41Z aeth: Pure FP in CL is almost as bad as pure FP in JavaScript, btw. You lose any kind of efficiency that you'd have in a language like Haskell. 2018-08-15T01:10:04Z aeth: And things like lazy lists are just awkward to use in CL. 2018-08-15T01:10:20Z stylewarning: Anyway, this is the point I'm making and what I meant about refining that viewpoint. 2018-08-15T01:10:46Z stylewarning: You can access a lot of "primitives" to lots of paradigms/ways of doing things, but they're often just not full featured or complete or 100% integrated 2018-08-15T01:10:57Z aeth: Where CL implementations would need modernization are in FP, types, and concurrency. 2018-08-15T01:11:02Z stylewarning: But that's almost never Lisp's fault, and it's almost never the compiler writers' faults. 2018-08-15T01:11:19Z aeth: CL's pretty much still #1 in dynamic OOP, although that's kind of out of style at this point 2018-08-15T01:11:58Z rumbler31 joined #lisp 2018-08-15T01:14:08Z aeth: stylewarning: I'd go farther and say not only can you do lots, you can do pretty much anything in CL through elaborate enough macros (or reader macros), but it won't feel integrated and it probably will be via an undocumented, incomplete library 2018-08-15T01:14:58Z rumbler31 quit (Remote host closed the connection) 2018-08-15T01:15:03Z aeth: At a far extreme you could have a reader macro with a new syntax compile down to an implementation's inline-assembly or something. 2018-08-15T01:15:40Z milanj quit (Quit: This computer has gone to sleep) 2018-08-15T01:16:59Z stylewarning: lisp is a good substrate for all of that, i agree 2018-08-15T01:19:03Z aeth: at least at the state it's currently in, I'd personally say Lisp is more like a language for writing functional (or at least declarative) languages than a functional language 2018-08-15T01:19:57Z Kundry_Wag joined #lisp 2018-08-15T01:20:03Z Zhivago: Given that it's a procedural language, that seems likely. :) 2018-08-15T01:20:08Z aeth: I'm actually surprised there aren't more languages like Shen that have a CL backend. (Although, personally, I'd *just* have a CL backend rather than have like 20 backends like Shen does) 2018-08-15T01:20:54Z aeth: Perhaps CL is missing some features that modern language implementers want. 2018-08-15T01:21:25Z Zhivago: Common adoption? Thin implementations? 2018-08-15T01:21:38Z asarch: The function COMMON-LISP:INTEGER is undefined. <- ? 2018-08-15T01:21:47Z stylewarning: asarch: what context? 2018-08-15T01:22:05Z asarch: The default when you start SBCL 2018-08-15T01:22:16Z stylewarning: asarch: yes, but what code did you run? 2018-08-15T01:22:32Z asarch: (defparamter *beers* (integer 10)) 2018-08-15T01:22:38Z stylewarning: asarch: that's not valid code 2018-08-15T01:22:43Z stylewarning: why did you write (integer 10)? 2018-08-15T01:22:55Z stylewarning: you can just write (defparameter *beers* 10) 2018-08-15T01:23:47Z asarch: Well, I am reading at Sonja E. Keene's book (Object-Oriented Programming with CLOS) that for each Common Lisp data type, there is an equivalence CLOS class for that 2018-08-15T01:23:59Z asarch: I could: (defparamter *user* (string "asarch")) 2018-08-15T01:24:01Z renzhi quit (Quit: WeeChat 2.1) 2018-08-15T01:24:28Z asarch: But there is no INTEGER class :-( 2018-08-15T01:26:01Z Bike: yeeeah there is? 2018-08-15T01:26:11Z rumbler31 joined #lisp 2018-08-15T01:26:15Z Bike: there's just no function "integer" 2018-08-15T01:26:26Z Bike: calling "string" there is also completely pointless 2018-08-15T01:26:50Z asarch: ? 2018-08-15T01:27:11Z asarch: (defparameter *age* (make-instance 'integer)) 2018-08-15T01:27:18Z asarch: Cannot allocate an instance of #. 2018-08-15T01:27:26Z Bike: yeah, make-instance is for standard classes 2018-08-15T01:27:30Z Bike: fyi, 10 is an integer 2018-08-15T01:27:35Z Bike: so you can just (defparameter *age* 10) 2018-08-15T01:27:58Z asarch: How would you use INTEGER? 2018-08-15T01:28:06Z Bike: what, the class? 2018-08-15T01:28:10Z Bike: there's no function called that. 2018-08-15T01:28:16Z asarch: Oh :-( 2018-08-15T01:28:24Z asarch: I thought it was like with JavaScript 2018-08-15T01:28:24Z stylewarning: asarch: what about reading Practical Common Lisp first instead? 2018-08-15T01:28:48Z Bike: i'm... you don't have to do "Integer(10)" in javascript, do you? 2018-08-15T01:28:53Z Bike: you just do 10 + 17 and there ya go 2018-08-15T01:28:55Z asarch: You could in JavaScript: [1, 2, 3].forEach(...) or Arra(1, 2, 3).forEach(...); 2018-08-15T01:29:10Z stylewarning: asarch: It sounds like you have a wrong model of what Lisp is like or what its syntax is. You'd benefit from reading PCL. 2018-08-15T01:29:14Z Bike: you mean Array? that's like the cl function VECTOR, i guess 2018-08-15T01:29:18Z Bike: and stylewarning is correct 2018-08-15T01:29:34Z asarch: Yeah, I mean, Array(1, 2, 3).forEach(...); 2018-08-15T01:29:42Z asarch: Oh 2018-08-15T01:30:00Z asarch: So, what's the point of CLOS classes for each Common Lisp data type? 2018-08-15T01:30:04Z asarch takes notes... 2018-08-15T01:30:15Z Bike: you seem to be confusing classes with like, constructor functions. 2018-08-15T01:31:27Z asarch: In the book: (defmethod encode ((num integer) stream) ...) 2018-08-15T01:33:14Z asarch: When I was learning to develop web applications with Perl with Catalyst, I found that Catalyst uses the new object system of Perl called Moose which is based on Class::MOP which it uses the Meta-Object Protocol 2018-08-15T01:34:05Z asarch: When you declare a new class with Moose, you can actually define the data type for each slot: has 'x' => (is => 'rw', isa => 'Int'); 2018-08-15T01:34:27Z stylewarning: asarch: What's your goal with this discussion? :) 2018-08-15T01:34:52Z asarch: I thought the class was to "facilitate" operations on the slot variable 2018-08-15T01:35:28Z stylewarning: Are you talking about perl? lisp? what? 2018-08-15T01:35:50Z asarch: Common Lisp 2018-08-15T01:36:15Z stylewarning: Do you know what a "slot" is in Common Lisp? 2018-08-15T01:36:31Z asarch: Yeah, a variable member in other OOP languages 2018-08-15T01:37:09Z asarch: class point {integer x; ...}; // The 'x' variable member of the 'point' class in C++ 2018-08-15T01:37:11Z asarch: For example 2018-08-15T01:37:44Z asarch: Although C++ doesn't define an Integer class (I think Java actually does it) 2018-08-15T01:38:13Z stylewarning: asarch: so why would you suppose a class has anything to do with "facilitating" operations on a slot? 2018-08-15T01:39:01Z stylewarning: Shouldn't a class more so be for defining what slots are associated with some data structure you're creating? 2018-08-15T01:39:53Z Zhivago: A class need have no slots, per se. 2018-08-15T01:40:14Z Zhivago: Think of a class as a way to describe how something is represented. 2018-08-15T01:40:31Z Zhivago: That representation may be slot based or not. 2018-08-15T01:40:59Z asarch: (defclass point () (x :initvar 0 :accessor :x)) <- What is 'x' then? 2018-08-15T01:41:32Z stylewarning: x is the name of a slot 2018-08-15T01:41:50Z stylewarning: :x is an initarg keyword for the slot named x 2018-08-15T01:42:00Z asarch: In the book there is a table with the precedence of classes corresponding to Common Lisp types 2018-08-15T01:42:37Z stylewarning: asarch: Sorry, it just seems you're saying a collection of random things that you're maybe reading about. I'm not sure what you're actually trying to figure out / ask / discuss with the channel. 2018-08-15T01:43:13Z asarch: Yeah, yeah. My mistake: (defclass point () ((x :initarg :x initform 0 :accessor x))) 2018-08-15T01:43:20Z housel quit (Read error: Connection reset by peer) 2018-08-15T01:44:15Z asarch: Well, reading the book I thought I could use the class INTEGER just I could with the class String in Java 2018-08-15T01:44:32Z stylewarning: And why would you expect that? Because Lisp and Java both take 4 letters to spell? 2018-08-15T01:45:22Z stylewarning: Object orientation in Common Lisp is quite different from other languages. My advice to you (aside from reading PCL) would be to dispose of, or quarantine, what you know about object orientation from other languages while learning about it in Lisp. 2018-08-15T01:45:35Z renzhi joined #lisp 2018-08-15T01:46:01Z asarch: Oh :-( 2018-08-15T01:46:17Z stylewarning: Analogies are rarely going to carry over well. If you are a fan of analogies, then PCL would be a good book for you, since it was written by somebody who is incidentally also an experienced Java programmer. 2018-08-15T01:47:01Z asarch: Anyway, my mistake again 2018-08-15T01:47:05Z asarch: Thank you guys :-) 2018-08-15T01:47:43Z asarch: I'm still in the phase of do's and do not's of the language 2018-08-15T01:49:03Z asarch: 頑張ります! 2018-08-15T01:49:34Z stylewarning: You must recognize that Lisp is quite a unique and different language, and that you have to invest in learning it in its own right, and not be fooled into believing that understanding Lisp is merely a translation of some other language you're already familiar with. 2018-08-15T01:51:28Z asarch: Yeah, yeah 2018-08-15T01:51:47Z gitfaf quit (Remote host closed the connection) 2018-08-15T01:52:33Z asarch: This is one of them 2018-08-15T01:52:33Z gitfaf joined #lisp 2018-08-15T01:53:16Z asarch: All of its data types of Smalltalk are actually classes, right? 2018-08-15T01:53:34Z no-defun-allowed: yes 2018-08-15T01:55:07Z asarch: Since Lisp and Smalltalk both inspired each other, I thought with CLOS was the same :-( 2018-08-15T01:55:57Z Zhivago: All values in CL have a class. 2018-08-15T01:56:44Z Zhivago: But those classes describe rather than prescribe. 2018-08-15T02:01:26Z orivej quit (Ping timeout: 256 seconds) 2018-08-15T02:02:50Z asarch: I see 2018-08-15T02:04:09Z arbv quit (Quit: ZNC - https://znc.in) 2018-08-15T02:05:36Z arbv joined #lisp 2018-08-15T02:08:27Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-15T02:08:35Z arbv quit (Client Quit) 2018-08-15T02:08:38Z marvin2 quit 2018-08-15T02:09:52Z arbv joined #lisp 2018-08-15T02:10:36Z robotoad joined #lisp 2018-08-15T02:17:15Z equwal joined #lisp 2018-08-15T02:17:54Z Fare joined #lisp 2018-08-15T02:28:37Z dented42 joined #lisp 2018-08-15T02:32:43Z robotoad quit (Quit: robotoad) 2018-08-15T02:33:09Z robotoad joined #lisp 2018-08-15T02:33:21Z asarch quit (Remote host closed the connection) 2018-08-15T02:33:47Z asarch joined #lisp 2018-08-15T02:34:25Z robotoad quit (Client Quit) 2018-08-15T02:40:29Z Kundry_Wag quit (Remote host closed the connection) 2018-08-15T02:41:05Z Kundry_Wag joined #lisp 2018-08-15T02:42:08Z moei quit (Quit: Leaving...) 2018-08-15T02:42:15Z vmmenon quit (Quit: vmmenon) 2018-08-15T02:42:53Z robotoad joined #lisp 2018-08-15T02:43:21Z Kundry_Wag quit (Remote host closed the connection) 2018-08-15T02:43:35Z Kundry_Wag joined #lisp 2018-08-15T02:46:40Z fikka joined #lisp 2018-08-15T02:50:46Z fikka quit (Ping timeout: 244 seconds) 2018-08-15T02:52:52Z Bike quit (Quit: Lost terminal) 2018-08-15T02:56:41Z housel joined #lisp 2018-08-15T02:58:06Z quazimodo joined #lisp 2018-08-15T03:02:27Z Kundry_Wag quit (Remote host closed the connection) 2018-08-15T03:08:54Z loli quit (Quit: WeeChat 2.2) 2018-08-15T03:12:19Z loli joined #lisp 2018-08-15T03:13:26Z gitfaf quit 2018-08-15T03:13:57Z gitfaf joined #lisp 2018-08-15T03:14:22Z beach: Good morning everyone! 2018-08-15T03:14:55Z beach: I see another long and pointless discussion about what Common Lisp ought to have but it currently doesn't. 2018-08-15T03:15:13Z beach: It is pointless because of two things: 1. It is not going to happen. 2018-08-15T03:16:42Z beach: More importantly though: 2. Suggesting random changes to the language without knowing the consequences to implementations reminds me of how languages are designed by benevolent dictators. They often end up being impossible to implement efficiently. 2018-08-15T03:18:26Z beach: Designing a language requires deep knowledge about compiler design, garbage collection, object representation, generic dispatch, etc. 2018-08-15T03:18:45Z broccolistem joined #lisp 2018-08-15T03:19:44Z beach: And in the case of Common Lisp, it also requires deep knowledge about how ALL the current features fit together. Changing some random feature is very likely going to break many other things. 2018-08-15T03:23:05Z gitfaf quit (Remote host closed the connection) 2018-08-15T03:23:53Z broccolistem quit (Read error: Connection reset by peer) 2018-08-15T03:24:35Z asarch: Hi beach! 2018-08-15T03:24:38Z asarch: How are you? :-) 2018-08-15T03:24:48Z beach: I am fine. And you? 2018-08-15T03:26:04Z beach: Oh, wait! Crap! Now I am going to be accused of "elitism" again, i.e. requiring that people who design languages know something about language design. 2018-08-15T03:33:04Z _whitelogger quit (Remote host closed the connection) 2018-08-15T03:35:16Z _whitelogger joined #lisp 2018-08-15T03:35:18Z emaczen quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-15T03:39:38Z asarch: I'm fine. Thanks :-) 2018-08-15T03:39:56Z asarch: Don't be paranoic 2018-08-15T03:40:03Z asarch: You are a great person 2018-08-15T03:40:26Z asarch: And that's all matter 2018-08-15T03:41:17Z asarch: How can you load an account file in Compta? 2018-08-15T03:44:35Z captgector quit (Ping timeout: 240 seconds) 2018-08-15T03:51:22Z pjb quit (Ping timeout: 256 seconds) 2018-08-15T03:52:22Z beach: There is a command named "read organization". 2018-08-15T03:52:42Z beach: There is another "read organization default" for a default organization. 2018-08-15T03:52:58Z asarch: Thank you 2018-08-15T03:53:00Z beach: There is no command for loading a file containing only an account. 2018-08-15T03:53:50Z beach: You can add an account interactively and then use the command "write organization" to save the entire state of things. 2018-08-15T03:54:14Z stnutt quit (Ping timeout: 260 seconds) 2018-08-15T03:54:22Z captgector joined #lisp 2018-08-15T03:54:24Z edgar-rft: beach: ...about elitism - I found that it's important to be *aware* of my own stupidity because being aware of it it can include it into my planning, and my plans work *much* better since I take my own stupidity into account. That's one of the secret how life works. 2018-08-15T03:54:59Z beach: edgar-rft: Good advice. 2018-08-15T03:56:56Z beach: edgar-rft: Another trick I use: I am VERY careful about assuming that I know ANYTHING about a particular domain. That is why I rarely participate in discussions about isolated changes to the language. I must go away and think VERY HARD and for a VERY LONG TIME before I am convinced that some such suggestion is possible, let alone desirable. 2018-08-15T03:57:57Z beach: edgar-rft: Though perhaps you meant "ignorance" rather than "stupidity"? 2018-08-15T03:58:06Z edgar-rft: both :-) 2018-08-15T03:58:15Z beach: Heh, OK. 2018-08-15T04:01:40Z beach: I read somewhere that people with a low level of knowledge (or was it intelligence, I forget) often significantly overestimate their level, whereas people with a high level often underestimate theirs. This is statistics, of course, so no conclusion should be drawn with respect to an individual, nor should any causality be inferred. 2018-08-15T04:02:16Z edgar-rft: It's rarely never a good idea to think about isolated things, but the problem is that noone knows really *all* consequences, so the trick is to find a reasonable compromise. But judging is hard because we all have only partial knowledge. 2018-08-15T04:03:23Z beach: I agree. 2018-08-15T04:04:49Z Copenhagen_Bram quit (Ping timeout: 248 seconds) 2018-08-15T04:04:53Z beach: That is why, for language design, I have decided to limit myself to WSCL, i.e., I am just aiming for more specified behavior where the Common Lisp HyperSpec does not specify it. That way, I can leave features alone that I am not sure of, and only work on those that I am certain will work out. 2018-08-15T04:11:23Z Copenhagen_Bram joined #lisp 2018-08-15T04:15:35Z allcr quit (Ping timeout: 240 seconds) 2018-08-15T04:15:39Z pjb joined #lisp 2018-08-15T04:16:28Z emaczen joined #lisp 2018-08-15T04:17:06Z meepdeew joined #lisp 2018-08-15T04:22:43Z lemo joined #lisp 2018-08-15T04:22:57Z lemo left #lisp 2018-08-15T04:23:54Z sabrac: :beach I think you are referring to the Dunning-Kruger effect 2018-08-15T04:25:06Z no-defun-allowed: yeah that's the name of it 2018-08-15T04:26:26Z beach: sabrac: Oh, thanks for the information. 2018-08-15T04:27:52Z beach: sabrac: Yes, definitely that. Thanks! 2018-08-15T04:28:51Z jack_rabbit: Is it possible with sbcl to cross-compile an executable for arm on x86? 2018-08-15T04:29:00Z beach: I have recently taken an interest in phenomena in psychology and behavioral economics with respect to how these phenomena influence software development. 2018-08-15T04:31:48Z emacsoma` joined #lisp 2018-08-15T04:36:20Z edgar-rft quit (Quit: Leaving) 2018-08-15T04:45:34Z gitfaf joined #lisp 2018-08-15T04:46:42Z slyrus2 joined #lisp 2018-08-15T04:47:52Z jack_rabbit: hmmmm. :( 2018-08-15T04:47:57Z slyrus quit (Ping timeout: 240 seconds) 2018-08-15T04:47:58Z slyrus1 is now known as slyrus 2018-08-15T04:47:58Z slyrus2 is now known as slyrus1 2018-08-15T04:48:10Z jack_rabbit: I'm getting memory faults with the latest mcclim in quicklisp. 2018-08-15T04:48:21Z jack_rabbit: Not sure how to figure out where this is coming from. 2018-08-15T04:49:53Z no-defun-allowed: imho i'd start with any cee bindings 2018-08-15T04:49:59Z jack_rabbit: could also be my sbcl, which was updated. 2018-08-15T04:50:22Z jack_rabbit: I don't use any c bindings in *my* application. I can't speak to which libraries use them. 2018-08-15T04:50:35Z gitfaf quit (Ping timeout: 268 seconds) 2018-08-15T04:50:48Z kerrhau quit (Read error: Connection reset by peer) 2018-08-15T04:51:06Z jack_rabbit: There doesn't appear to be anything *funny* in the stack trace. 2018-08-15T04:51:39Z kerrhau joined #lisp 2018-08-15T04:52:43Z no-defun-allowed: mcclim uses cee, maybe something's up with how it's called 2018-08-15T04:53:24Z jack_rabbit: maybe... I'm just not sure how to begin debugging. 2018-08-15T04:54:43Z jack_rabbit: hmm. I think it's definitely in mcclim. The demos are faulting as well. 2018-08-15T04:55:15Z stnutt joined #lisp 2018-08-15T05:04:00Z beach: no-defun-allowed: In what way does McCLIM use C? 2018-08-15T05:05:23Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-15T05:06:39Z eschatologist quit (Ping timeout: 244 seconds) 2018-08-15T05:06:49Z eschatologist joined #lisp 2018-08-15T05:06:55Z quazimodo joined #lisp 2018-08-15T05:10:28Z pjb quit (Read error: Connection reset by peer) 2018-08-15T05:11:27Z Oladon quit (Quit: Leaving.) 2018-08-15T05:12:16Z pjb joined #lisp 2018-08-15T05:24:06Z Fare quit (Ping timeout: 272 seconds) 2018-08-15T05:27:30Z gitfaf joined #lisp 2018-08-15T05:29:00Z Inline quit (Quit: Leaving) 2018-08-15T05:29:53Z jackdaniel: McCLIM has a lot of letters #\c in its source code, maybe that's what he means? 2018-08-15T05:30:04Z jackdaniel: for instance: draw-reCtangle ;-) 2018-08-15T05:30:34Z jackdaniel: no-defun-allowed: McCLIM does not use C. some of it extensions might, but none of them is enabled by default 2018-08-15T05:30:54Z jackdaniel: communication with X server is done via clx, which talk through a socket 2018-08-15T05:31:58Z gitfaf quit (Ping timeout: 244 seconds) 2018-08-15T05:37:44Z no-defun-allowed: my bad, i thought it used cee xlib 2018-08-15T05:37:47Z no-defun-allowed: (also i use she/her pronouns thanks :) 2018-08-15T05:38:23Z beach: I knew that, but jackdaniel did not. 2018-08-15T05:38:51Z no-defun-allowed: huh, i thought that was the first time i brought it up. 2018-08-15T05:39:08Z beach: Nope. :) 2018-08-15T05:39:20Z no-defun-allowed: alright then 2018-08-15T05:39:55Z jackdaniel: regarding discussing changes (possibly unwise): it is one of many ways to learn to know better; that's more a question of curiosity not stupidity 2018-08-15T05:40:16Z jackdaniel: unless we take, that someone has to study for n years before he is allowed to have his own convictions about a subject (and they still may be wrong!) 2018-08-15T05:40:17Z beach: 18.05.04:05:43:21 * theemacsshibe[m] gives magic GNU🦄PONUT a vegetable burger she got from the barbeque 2018-08-15T05:40:31Z foom2 joined #lisp 2018-08-15T05:40:43Z no-defun-allowed: annoying things about computing classes: 1. python 2. it's an "all boys" class and if i dare say anything i'd be made fun of 2018-08-15T05:40:44Z no-defun-allowed: well that's all 2018-08-15T05:40:44Z no-defun-allowed: *old 2018-08-15T05:41:20Z beach: Sorry to hear that. 2018-08-15T05:41:26Z emaczen quit (Read error: Connection reset by peer) 2018-08-15T05:41:37Z megalography joined #lisp 2018-08-15T05:42:25Z JuanDaugherty joined #lisp 2018-08-15T05:42:53Z beach: no-defun-allowed: Did you see my quotation? 2018-08-15T05:42:59Z no-defun-allowed: yes 2018-08-15T05:43:11Z no-defun-allowed: my computing teacher is trying to learn FP through python 2018-08-15T05:43:18Z beach: Ouch! 2018-08-15T05:43:21Z foom quit (Ping timeout: 240 seconds) 2018-08-15T05:43:52Z no-defun-allowed: i used a lambda once with map cause [.. for x in ...] is too long for me and that led somewhere apparently 2018-08-15T05:43:56Z beach: You probably mean "teach" though. :) 2018-08-15T05:44:11Z no-defun-allowed: no, he's learning 2018-08-15T05:44:19Z beach: Wow! That's terrible. 2018-08-15T05:44:41Z no-defun-allowed: he does physics and maths so i might suggest ML to him, i know enough of it. he's seen lisp and he can't quite parse it yet 2018-08-15T05:44:58Z Fare joined #lisp 2018-08-15T05:45:13Z JuanDaugherty: good thing he doesn't do irc 2018-08-15T05:46:13Z no-defun-allowed: it's probably not english or mathy enough 2018-08-15T05:46:27Z beach: It is interesting to me that mathematicians and scientists, who are "perfection oriented" in their domains, are often "performance oriented' (or have a "closed mindset, as Carol Dweck says) when it comes to their computing tools. 2018-08-15T05:47:10Z no-defun-allowed: i'll be honest, sometimes what he knows is scary. for example, he knows tag bits are a thing 2018-08-15T05:47:38Z asarch quit (Quit: Leaving) 2018-08-15T05:47:44Z JuanDaugherty worked as a system programmer on the main mainframe with tag bits 2018-08-15T05:48:46Z no-defun-allowed: well, not hardware stuff. not sure how cpython does it but sometimes (especially on x86_64) you put it in the pointer and it's okay cause of address space and alignment trickery 2018-08-15T05:50:11Z JuanDaugherty: right in this time of the overwhelming predominance of commodity architectures there are no real machines with tag bits 2018-08-15T05:50:36Z no-defun-allowed: indeed. 2018-08-15T05:50:36Z JuanDaugherty: the one I referred to stopped being fabbed about a decade ago 2018-08-15T05:50:53Z no-defun-allowed: which one was it? 2018-08-15T05:51:00Z jackdaniel: [--> #lispcafe] 2018-08-15T05:51:10Z JuanDaugherty: burroughs 2018-08-15T05:53:05Z no-defun-allowed: hm, maybe i should push lisp on him more 2018-08-15T05:54:05Z renzhi quit (Ping timeout: 240 seconds) 2018-08-15T05:54:53Z aeth: no 2018-08-15T05:55:21Z aeth: People want a fun little toy program that they can write and see immediate results in and Lisp doesn't really have those frameworks yet. Work on helping one of those get mature. 2018-08-15T05:55:46Z no-defun-allowed: i thought that was the REPL 2018-08-15T05:55:52Z aeth: (Well, I mean, I can name half a dozen of them, but not ones I'd show to a stranger without spending a few weeks contributing documentation to first) 2018-08-15T05:55:56Z JuanDaugherty: haskell is the fp star of this time 2018-08-15T05:56:15Z JuanDaugherty: although I sense it has peaked 2018-08-15T05:56:17Z no-defun-allowed: if i do, he'll lose faith in python and there'll be 25 more newbies asking me crap though 2018-08-15T05:56:32Z aeth: no 2018-08-15T05:56:37Z aeth: newbies ask in #clschool 2018-08-15T05:56:59Z no-defun-allowed: these are 16 year olds. they don't use IRC. 2018-08-15T05:58:32Z no-defun-allowed: i already get enough "hey no-defun-allowed, please check my code" questions so for me, the selfish weenie, that's not convenient 2018-08-15T05:59:29Z aeth: when I was 12 I was in IRC. oh, a different era 2018-08-15T05:59:49Z sauvin joined #lisp 2018-08-15T05:59:51Z sauvin quit (Max SendQ exceeded) 2018-08-15T06:00:22Z jackdaniel: [--> #lispcafe] 2018-08-15T06:00:53Z no-defun-allowed: The variable [--> is unbound. 2018-08-15T06:00:55Z no-defun-allowed: fine i'll go 2018-08-15T06:01:18Z vlatkoB joined #lisp 2018-08-15T06:01:44Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-15T06:06:57Z Fare quit (Ping timeout: 248 seconds) 2018-08-15T06:09:44Z fikka joined #lisp 2018-08-15T06:12:57Z sauvin joined #lisp 2018-08-15T06:14:46Z fikka quit (Ping timeout: 272 seconds) 2018-08-15T06:16:35Z meepdeew quit (Remote host closed the connection) 2018-08-15T06:25:08Z fikka joined #lisp 2018-08-15T06:26:23Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-15T06:29:15Z gitfaf joined #lisp 2018-08-15T06:29:27Z gitfaf quit (Remote host closed the connection) 2018-08-15T06:32:19Z dddddd quit (Read error: Connection reset by peer) 2018-08-15T06:35:16Z meepdeew joined #lisp 2018-08-15T06:36:33Z gitfaf joined #lisp 2018-08-15T06:36:44Z gitfaf quit (Remote host closed the connection) 2018-08-15T06:37:39Z trittweiler joined #lisp 2018-08-15T06:38:52Z meepdeew quit (Read error: Connection reset by peer) 2018-08-15T06:39:36Z shka_ joined #lisp 2018-08-15T06:43:20Z dim: hi! 2018-08-15T06:43:27Z shka_: dim: good morning 2018-08-15T06:46:17Z schweers joined #lisp 2018-08-15T06:46:43Z gitfaf joined #lisp 2018-08-15T06:46:46Z no-defun-allowed: morning dim 2018-08-15T06:47:05Z gitfaf quit (Remote host closed the connection) 2018-08-15T06:49:00Z robotoad quit (Quit: robotoad) 2018-08-15T06:51:07Z ofi joined #lisp 2018-08-15T06:53:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-15T06:55:23Z quazimodo joined #lisp 2018-08-15T07:02:33Z robotoad joined #lisp 2018-08-15T07:03:24Z shka_: phoe: i solved my problem 2018-08-15T07:04:29Z megalography left #lisp 2018-08-15T07:04:43Z shka_: how can i set CPATH for asdf? 2018-08-15T07:14:50Z orivej joined #lisp 2018-08-15T07:15:52Z jackdaniel: shka_: do you mean groveller? 2018-08-15T07:16:15Z shka_: i actually don't know :( 2018-08-15T07:16:41Z shka_: groveller is on a stack trace, so i guess you are right 2018-08-15T07:17:00Z jackdaniel: you may modify various flags in c-toolchain from cffi (which is what groveller use) 2018-08-15T07:17:19Z shka_: ok, so i should check cffi manual, yes? 2018-08-15T07:17:29Z jackdaniel: find source of cffi-toolchain:*cc-flags* 2018-08-15T07:17:39Z jackdaniel: there you'll find other dynamic variables you may customize 2018-08-15T07:17:51Z shka_: ok 2018-08-15T07:17:53Z shka_: thanks 2018-08-15T07:17:54Z jackdaniel: afair when cffi adds its own flags it preserves ones already specified in dynamic variable 2018-08-15T07:18:57Z jackdaniel: also dare not doing (let ((*cc-flags* '(my-stuff))) …) 2018-08-15T07:19:02Z jackdaniel: always append previous *cc-flags* value 2018-08-15T07:19:07Z jackdaniel: otherwise it will fail miserably 2018-08-15T07:19:28Z jackdaniel: (let ((*cc-flags* (append (list my flags) *cc-flags*))) …) 2018-08-15T07:19:45Z jackdaniel: (of course this applies to ld-flags and others too 2018-08-15T07:19:47Z jackdaniel: ) 2018-08-15T07:21:38Z shka_: good tip 2018-08-15T07:22:35Z varjag joined #lisp 2018-08-15T07:26:01Z gitfaf joined #lisp 2018-08-15T07:26:35Z gitfaf quit (Remote host closed the connection) 2018-08-15T07:32:57Z gitfaf joined #lisp 2018-08-15T07:33:18Z gitfaf quit (Remote host closed the connection) 2018-08-15T07:33:34Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-15T07:35:00Z orivej joined #lisp 2018-08-15T07:45:34Z heisig joined #lisp 2018-08-15T07:46:29Z renzhi joined #lisp 2018-08-15T08:01:35Z Oddity quit (Ping timeout: 240 seconds) 2018-08-15T08:03:59Z gitfaf joined #lisp 2018-08-15T08:08:05Z gitfaf quit (Ping timeout: 240 seconds) 2018-08-15T08:09:52Z gitfaf joined #lisp 2018-08-15T08:12:08Z stnutt quit (Ping timeout: 244 seconds) 2018-08-15T08:13:32Z zfree quit (Quit: zfree) 2018-08-15T08:14:30Z stnutt joined #lisp 2018-08-15T08:15:59Z gitfaf quit (Remote host closed the connection) 2018-08-15T08:16:16Z kerrhau quit (Ping timeout: 244 seconds) 2018-08-15T08:18:11Z Oddity joined #lisp 2018-08-15T08:24:16Z angavrilov joined #lisp 2018-08-15T08:27:58Z robotoad quit (Quit: robotoad) 2018-08-15T08:35:17Z nopf quit (Ping timeout: 265 seconds) 2018-08-15T08:35:42Z cpape quit (Ping timeout: 256 seconds) 2018-08-15T08:55:22Z azimut_ joined #lisp 2018-08-15T08:58:11Z azimut quit (Ping timeout: 272 seconds) 2018-08-15T08:58:14Z meepdeew joined #lisp 2018-08-15T09:01:31Z pierpal joined #lisp 2018-08-15T09:02:24Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-15T09:02:35Z meepdeew quit (Ping timeout: 240 seconds) 2018-08-15T09:10:34Z Kundry_Wag joined #lisp 2018-08-15T09:13:45Z pierpal quit (Quit: Poof) 2018-08-15T09:14:01Z pierpal joined #lisp 2018-08-15T09:15:13Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-15T09:17:04Z XachX_ joined #lisp 2018-08-15T09:17:36Z spal quit (Ping timeout: 268 seconds) 2018-08-15T09:18:05Z XachX quit (Ping timeout: 245 seconds) 2018-08-15T09:18:05Z simplegauss quit (Ping timeout: 245 seconds) 2018-08-15T09:18:05Z Duns_Scrotus quit (Read error: Connection reset by peer) 2018-08-15T09:18:05Z nyaray quit (Read error: Connection reset by peer) 2018-08-15T09:18:05Z tfb quit (Read error: Connection reset by peer) 2018-08-15T09:18:06Z abbe quit (Ping timeout: 245 seconds) 2018-08-15T09:18:06Z XachX_ is now known as XachX 2018-08-15T09:18:13Z pyc quit (Ping timeout: 268 seconds) 2018-08-15T09:18:42Z simplegauss joined #lisp 2018-08-15T09:19:03Z abbe joined #lisp 2018-08-15T09:19:49Z pyc joined #lisp 2018-08-15T09:19:49Z spal joined #lisp 2018-08-15T09:20:28Z wheelsucker quit (Ping timeout: 260 seconds) 2018-08-15T09:23:15Z random-nick joined #lisp 2018-08-15T09:26:22Z makomo joined #lisp 2018-08-15T09:33:32Z renzhi quit (Read error: Connection reset by peer) 2018-08-15T09:33:46Z makomo quit (Ping timeout: 265 seconds) 2018-08-15T09:40:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T09:41:35Z fikka joined #lisp 2018-08-15T09:49:06Z igemnace joined #lisp 2018-08-15T09:56:03Z m00natic joined #lisp 2018-08-15T09:57:05Z fikka quit (Ping timeout: 272 seconds) 2018-08-15T10:02:39Z Kundry_Wag joined #lisp 2018-08-15T10:03:45Z fikka joined #lisp 2018-08-15T10:06:34Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-15T10:06:52Z Kundry_Wag quit (Ping timeout: 245 seconds) 2018-08-15T10:18:43Z fikka quit (Ping timeout: 244 seconds) 2018-08-15T10:24:28Z nopf joined #lisp 2018-08-15T11:04:42Z milanj joined #lisp 2018-08-15T11:04:42Z DataLinkDroid2 quit (Read error: Connection reset by peer) 2018-08-15T11:05:41Z Kundry_Wag joined #lisp 2018-08-15T11:10:23Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-15T11:10:44Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-15T11:12:10Z orivej joined #lisp 2018-08-15T11:14:21Z meepdeew joined #lisp 2018-08-15T11:17:41Z pierpal quit (Quit: Poof) 2018-08-15T11:17:55Z lyosha[m] quit (Quit: removing from IRC because user idle on matrix for 30+ days) 2018-08-15T11:18:02Z pierpal joined #lisp 2018-08-15T11:19:24Z meepdeew quit (Ping timeout: 272 seconds) 2018-08-15T11:35:40Z Kundry_Wag joined #lisp 2018-08-15T11:40:21Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-15T11:45:52Z fikka joined #lisp 2018-08-15T11:47:04Z moei joined #lisp 2018-08-15T11:47:05Z mrottenkolber: did anything change in the simple-date/cl-postgres integration? 2018-08-15T11:48:24Z mrottenkolber: For some reason I can’t get postmodern to print its timestamps in SQL statements anymore 2018-08-15T11:50:41Z fikka quit (Ping timeout: 244 seconds) 2018-08-15T11:51:49Z mrottenkolber: Seems I now have to manually load SIMPLE-DATE/POSTGRES-GLUE 2018-08-15T11:54:28Z mrottenkolber: Shinmera: while I am here, do I remember correctly that you have a lib for html sanitization I could use instead of sanitize? 2018-08-15T11:55:26Z figurelisp joined #lisp 2018-08-15T11:55:29Z Shinmera: You are correct in the sense that my HTML parser is lenient and will chug anything. It will always produce valid HTML or XML when serialising its dom, so you can use it to sanitise. 2018-08-15T11:55:59Z Shinmera: Note however that Plump does not follow the HTML5 spec on parsing invalidly formatted content, so the results might be slightly different from how a browser would interpret it. 2018-08-15T11:56:18Z igemnace quit (Remote host closed the connection) 2018-08-15T11:56:27Z figurelisp: Pardon my ignorance but where can i find how a function is internally implemented in Common lisp for ex let's say implementation of set-difference 2018-08-15T11:56:51Z Shinmera: Put your cursor over a call of the function and hit M-. 2018-08-15T11:58:19Z phoe: figurelisp: basically, if the function is from package COMMON-LISP, then it's implemented internally in CL. 2018-08-15T11:58:46Z figurelisp: I want to know how it is implemented 2018-08-15T11:58:52Z phoe: I see. How it is implemented will vary by implementation. 2018-08-15T11:59:01Z phoe: You can use slime, like Shinmera described 2018-08-15T11:59:24Z phoe: I also grep the sources. For SBCL, for example, https://github.com/sbcl/sbcl/search?q=%22defun+set-difference%22&unscoped_q=%22defun+set-difference%22 2018-08-15T11:59:39Z phoe: This gives me https://github.com/sbcl/sbcl/blob/aa8ddb5469ac3499d8a1bc6fd7a0555525046e6c/src/code/list.lisp#L1055 2018-08-15T11:59:47Z figurelisp: yes i used M- and it says (set-difference list1 list2 &key (test #'eql) test-not) 2018-08-15T11:59:58Z phoe: figurelisp: M-. 2018-08-15T12:00:25Z phoe: in non-emacs notation, move your point over the symbol in question, press alt, then hit period, release alt 2018-08-15T12:00:27Z figurelisp: although i don't understand, is this how the code of set-difference is written in implementation of common lisp? 2018-08-15T12:00:27Z Shinmera: + 2018-08-15T12:00:42Z figurelisp: oh 2018-08-15T12:00:45Z phoe: this is slime's key chord for "show this function's source" 2018-08-15T12:01:00Z phoe: or rather, show its definition 2018-08-15T12:01:02Z JuanDaugherty quit (Quit: Exeunt) 2018-08-15T12:01:30Z figurelisp: Shinmera: phoe Thank you, got it. I misunderstood Shinmera's comment 2018-08-15T12:02:41Z phoe: no problem 2018-08-15T12:02:56Z phoe: note that this only works if you have your implementation's sources downloaded. 2018-08-15T12:03:50Z mrottenkolber: Shinmera: amazing, thanks! might be able to drop the cl-xml2 dependency this way 2018-08-15T12:03:58Z figurelisp: ok, i am getting the path so then the source is downloaded right? 2018-08-15T12:04:09Z phoe: you shouldn't be getting the path 2018-08-15T12:04:25Z phoe: M-. should open a new buffer with the point being on the definition of the function 2018-08-15T12:04:25Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-15T12:04:41Z phoe: you should see (defun set-difference (list1 list2 &key (test #'eql) test-not) ...) 2018-08-15T12:05:05Z phoe: where ... is the actual implementation 2018-08-15T12:05:36Z figurelisp: ok, i'll doenload the source 2018-08-15T12:05:47Z Shinmera: mrottenkolber: Good luck! 2018-08-15T12:05:50Z xificurC joined #lisp 2018-08-15T12:05:53Z orivej joined #lisp 2018-08-15T12:06:50Z phoe: figurelisp: what's your OS? 2018-08-15T12:06:57Z figurelisp: ubuntu 2018-08-15T12:07:16Z phoe: where did your get your Lisp implementation from? 2018-08-15T12:07:22Z phoe: apt? 2018-08-15T12:08:25Z figurelisp: phoe: TBH i don't remember. I followed some guide online which told to download sbcl and slime 2018-08-15T12:08:57Z phoe: figurelisp: run `which sbcl` in terminal and tell me the output of that command 2018-08-15T12:09:24Z figurelisp: /usr/bin/sbcl 2018-08-15T12:09:59Z Shinmera: You may also be interested in https://portacle.github.io/ . It includes a reference page for keyboard shortcuts and Emacs explanations. 2018-08-15T12:10:47Z phoe: figurelisp: it seems you have your SBCL installed from apt. 2018-08-15T12:10:54Z phoe: `apt install sbcl-source` and you're good to go in that case 2018-08-15T12:11:02Z phoe: Shinmera: does Portacle contain sources for SBCL? 2018-08-15T12:11:39Z figurelisp: Shinmera: I looked into portacle but i wanted to install sbcl and slime by my own so I tried 2018-08-15T12:11:59Z figurelisp: phoe: ok will do that 2018-08-15T12:12:00Z Shinmera: phoe: yes 2018-08-15T12:12:21Z phoe: (incf Shinmera) 2018-08-15T12:12:27Z xificurC: phoe: minor nitpick, don't suggest which but `command -v`, the latter is faster and, more importantly, correct 2018-08-15T12:14:49Z phoe: xificurC: TIL 2018-08-15T12:15:36Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-15T12:15:53Z xificurC: what's a correct way to "rethrow" in (handler-case (foo) (error (c) (bar) ???)) 2018-08-15T12:15:57Z figurelisp: xificurC: So the command would be sbcl --version? 2018-08-15T12:16:31Z Shinmera: xificurC: Note that handler-case by necessity unwinds, and thus the original stack trace is lost. 2018-08-15T12:16:32Z xificurC: figurelisp: no, there's a command called command :) Don't use `which sbcl` but `command -v sbcl` 2018-08-15T12:16:42Z figurelisp: oh ok 2018-08-15T12:16:48Z Shinmera: xificurC: You can simply SIGNAL a condition, though. 2018-08-15T12:16:51Z phoe: xificurC: you want handler-bind 2018-08-15T12:16:53Z xificurC: Shinmera: I know but thanks for the tip 2018-08-15T12:17:00Z orivej joined #lisp 2018-08-15T12:17:35Z phoe: (handler-bind ((error (lambda (e) (bar) (error e))) (foo)) 2018-08-15T12:17:36Z xificurC: this isn't a spot where I care too much if the stack unwinds, I just need to do something before resignaling 2018-08-15T12:17:51Z phoe: oh, in that case, you can do another thing 2018-08-15T12:17:56Z Shinmera: I already said 2018-08-15T12:17:58Z phoe: you can do something and then decline handling it 2018-08-15T12:17:58Z Shinmera: clhs signal 2018-08-15T12:17:58Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_signal.htm 2018-08-15T12:18:11Z phoe: (handler-bind ((error (lambda (e) (bar))) (foo)) 2018-08-15T12:18:24Z phoe: when E is signaled, this will cause BAR to be executed 2018-08-15T12:18:36Z xificurC: phoe: ah, of course, thanks 2018-08-15T12:18:37Z phoe: and then the handler will decline to handle the condition, at which point the execution will continue 2018-08-15T12:18:44Z phoe: if the call was to SIGNAL, the program will continue 2018-08-15T12:18:54Z phoe: if the call was to ERROR, then thou shalt enter the debugger 2018-08-15T12:18:58Z xificurC: what I had to do was to not do 2018-08-15T12:19:10Z phoe: the tao of lisp 2018-08-15T12:20:23Z Shinmera: handler-bind and handler-case will have different semantics for the call to bar though 2018-08-15T12:21:18Z xificurC: you mean by unwinding the stack e.g. specials might have changed? right now bar is just (format *error-output* ...) 2018-08-15T12:21:21Z Shinmera: This can be important if BAR for instance assumes that cleanup or other actions have taken place that would happen during unwind. 2018-08-15T12:21:53Z phoe: handler-case always accepts to handle the condition 2018-08-15T12:21:54Z shka_: oh 2018-08-15T12:21:56Z shka_: Shinmera: hi! 2018-08-15T12:21:59Z Shinmera: Hello 2018-08-15T12:22:01Z xificurC: yeah, both work fine for this simple case handler-bind seams cleaner 2018-08-15T12:22:05Z phoe: handler-bind does not have to accept it, it may freely decline 2018-08-15T12:22:29Z phoe: handler-bind is a construct useful when you need to execute code when a condition is signaled 2018-08-15T12:22:39Z phoe: handler-case is a construct useful when you need to get the hell outta there when a condition is signaled 2018-08-15T12:23:25Z phoe: in yet other words, handler-case always transfers control outside of the signaling form, where handler-bind doesn't necessarily do that 2018-08-15T12:23:39Z trittweiler: Be aware that declining handling it means that another handler higher up the stack will be tried next. If you don't want that you need a continue or a muffle-condition restart and invoke that from the handler 2018-08-15T12:24:13Z xificurC: in other words handler-case is for those who only know exceptions from other languages and handler-bind is for the brave :) 2018-08-15T12:24:41Z phoe: more or less, yes 2018-08-15T12:24:49Z phoe: handler-case is analogous to try-catch 2018-08-15T12:24:51Z Shinmera: phoe: The important part is that handler-bind executes /on top of the stack/, while handler-case /unwinds the stack/ 2018-08-15T12:25:10Z phoe: Shinmera: yep, I'm describing the implications of that fact 2018-08-15T12:25:14Z xificurC: having the option to *not* unwind the stack is pretty neat 2018-08-15T12:25:18Z phoe: or rather 2018-08-15T12:25:29Z phoe: handler-case is analogous to try-catch if all of your conditions are signaled via #'ERROR 2018-08-15T12:26:15Z phoe: if you only use #'ERROR and HANDLER-CASE, then you have a dumb exception system like the one in Java or C++ 2018-08-15T12:41:33Z zfree joined #lisp 2018-08-15T12:41:50Z housel quit (Read error: Connection reset by peer) 2018-08-15T12:42:42Z rumbler31 quit (Remote host closed the connection) 2018-08-15T12:43:39Z orivej quit (Ping timeout: 272 seconds) 2018-08-15T12:48:01Z ym joined #lisp 2018-08-15T12:50:06Z Bike joined #lisp 2018-08-15T12:58:27Z Kevslinger joined #lisp 2018-08-15T13:00:48Z edgar-rft joined #lisp 2018-08-15T13:04:22Z igemnace joined #lisp 2018-08-15T13:04:59Z LiamH joined #lisp 2018-08-15T13:08:53Z gitfaf joined #lisp 2018-08-15T13:10:21Z fikka joined #lisp 2018-08-15T13:10:34Z scymtym: well, you cannot do something like try {} catch ((error and (not runtime_error)) e) {} in Java or C++ 2018-08-15T13:11:42Z shka_: true 2018-08-15T13:11:59Z shka_: lisp typesystem is quite flexible 2018-08-15T13:15:43Z Fare joined #lisp 2018-08-15T13:19:28Z kajo joined #lisp 2018-08-15T13:19:44Z Guest5800_ joined #lisp 2018-08-15T13:20:47Z light2yellow joined #lisp 2018-08-15T13:21:08Z dddddd joined #lisp 2018-08-15T13:22:52Z heisig quit (Quit: Leaving) 2018-08-15T13:22:53Z DGASAU joined #lisp 2018-08-15T13:23:49Z warweasle joined #lisp 2018-08-15T13:25:48Z mindCrime joined #lisp 2018-08-15T13:28:12Z tfb joined #lisp 2018-08-15T13:28:18Z mrottenkolber: What are the current options wrt to library vendoring. qlot? 2018-08-15T13:38:22Z FreeBirdLjj joined #lisp 2018-08-15T13:40:33Z JuanDaugherty joined #lisp 2018-08-15T13:42:48Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-15T13:43:13Z rumbler31 joined #lisp 2018-08-15T13:47:57Z beach: figurelisp: Did you find the code you were looking for? 2018-08-15T13:48:15Z nopolitica quit (Quit: WeeChat 2.2) 2018-08-15T13:48:57Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-15T13:50:54Z equwal quit (Ping timeout: 256 seconds) 2018-08-15T13:51:24Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-15T13:53:45Z figurelisp quit (Remote host closed the connection) 2018-08-15T14:09:45Z igemnace quit (Remote host closed the connection) 2018-08-15T14:17:06Z scottj quit (Quit: leaving) 2018-08-15T14:21:42Z quipa joined #lisp 2018-08-15T14:24:53Z FreeBirdLjj joined #lisp 2018-08-15T14:25:25Z quipa quit (Remote host closed the connection) 2018-08-15T14:27:01Z tralala joined #lisp 2018-08-15T14:28:57Z gitfaf quit (Remote host closed the connection) 2018-08-15T14:36:31Z Inline joined #lisp 2018-08-15T14:36:37Z ebrasca quit (Remote host closed the connection) 2018-08-15T14:38:20Z robotoad joined #lisp 2018-08-15T14:43:03Z ofi quit (Quit: rcirc on GNU Emacs 26.1) 2018-08-15T14:45:02Z housel joined #lisp 2018-08-15T14:53:54Z X-Scale joined #lisp 2018-08-15T14:56:51Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-15T14:57:20Z housel quit (Read error: Connection reset by peer) 2018-08-15T14:59:51Z housel joined #lisp 2018-08-15T15:00:22Z kajo quit (Remote host closed the connection) 2018-08-15T15:02:23Z robotoad quit (Quit: robotoad) 2018-08-15T15:05:31Z LoicBSD joined #lisp 2018-08-15T15:07:31Z nika joined #lisp 2018-08-15T15:08:44Z kajo joined #lisp 2018-08-15T15:08:52Z ceevusee joined #lisp 2018-08-15T15:09:03Z LoicBSD left #lisp 2018-08-15T15:26:57Z SaganMan quit (Ping timeout: 248 seconds) 2018-08-15T15:31:27Z xristos joined #lisp 2018-08-15T15:32:39Z ceevusee quit (Remote host closed the connection) 2018-08-15T15:33:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T15:34:35Z mindCrime joined #lisp 2018-08-15T15:35:15Z Denommus joined #lisp 2018-08-15T15:37:39Z quipa joined #lisp 2018-08-15T15:38:36Z quipa quit (Remote host closed the connection) 2018-08-15T15:40:12Z SaganMan joined #lisp 2018-08-15T15:44:29Z zfree quit (Quit: zfree) 2018-08-15T15:45:41Z rumbler31 joined #lisp 2018-08-15T15:45:52Z robotoad joined #lisp 2018-08-15T15:49:54Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-15T16:02:08Z DGASAU quit (Ping timeout: 268 seconds) 2018-08-15T16:02:48Z orivej joined #lisp 2018-08-15T16:03:31Z DGASAU joined #lisp 2018-08-15T16:04:09Z fikka joined #lisp 2018-08-15T16:07:12Z LiamH quit (Quit: Leaving.) 2018-08-15T16:08:55Z fikka quit (Ping timeout: 268 seconds) 2018-08-15T16:24:54Z sjl joined #lisp 2018-08-15T16:30:01Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-15T16:31:34Z orivej quit (Quit: No Ping reply in 180 seconds.) 2018-08-15T16:33:00Z orivej joined #lisp 2018-08-15T16:38:47Z JuanDaugherty quit (Quit: Exeunt) 2018-08-15T16:44:51Z kaun joined #lisp 2018-08-15T16:48:29Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-15T16:50:32Z Copenhagen_Bram joined #lisp 2018-08-15T16:53:36Z quipa joined #lisp 2018-08-15T16:54:17Z quipa: "The Logo Programming Language, a dialect of Lisp" http://el.media.mit.edu/logo-foundation/what_is_logo/history.html 2018-08-15T16:54:34Z quipa: does anyone know of an article that discusses logo as a lisp dialect? 2018-08-15T16:55:25Z quipa: I noticed the first implementation of Logo for Apple II was written by Hal Abelson one of the authors of SICP 2018-08-15T16:55:57Z aeth: So Logo was the first language to claim that it's secretly a Lisp for added prestige? 2018-08-15T16:56:11Z quipa: hehe probably 2018-08-15T16:56:15Z quipa: but beyond those references 2018-08-15T16:56:25Z quipa: I can't find a more explicit discussion on this 2018-08-15T16:56:27Z quipa: I work with NetLogo and I am learning a lot of Lisp/Scheme/RAcket 2018-08-15T16:56:31Z quipa: so I found the relationship interesting 2018-08-15T16:56:37Z quipa: I also noticed 2018-08-15T16:57:25Z quipa: Brian Harvey wrote both the three volume Computer Science Logo Style and Simply Scheme (a "prequel" for SICP) 2018-08-15T16:57:35Z emacsomancer quit (Ping timeout: 244 seconds) 2018-08-15T16:58:06Z emacsoma` quit (Ping timeout: 244 seconds) 2018-08-15T16:58:17Z aeth: The command followed by a number with ; as a comment makes it look a bit like Lisp, but it also makes it look a bit like ASM. 2018-08-15T16:58:36Z Bike: http://web.sonoma.edu/users/l/luvisi/logo/logo.memos.html but ftp is down. they're probably around somewhere. 2018-08-15T16:58:38Z quipa: I noticed he seems to he used a similar structure in the first volume of CSLS and Simply Scheme 2018-08-15T16:58:39Z aeth: It looks like it does use " like Lisp uses ' 2018-08-15T16:59:19Z Bike: https://dspace.mit.edu/handle/1721.1/6220 yeah, that's probably better. 2018-08-15T16:59:36Z quipa: cool :) thanks 2018-08-15T17:00:43Z Bike: it's from that whole papert minsky bla bla bla mit group 2018-08-15T17:01:22Z quipa: yeah it's funny I never realised these things were connected before 2018-08-15T17:03:34Z m00natic quit (Remote host closed the connection) 2018-08-15T17:05:35Z quipa: "[Misky] developed, with Seymour Papert, the first Logo "turtle". Minsky also built, in 1951, the first randomly wired neural network learning machine, SNARC. " 2018-08-15T17:05:37Z Fare quit (Ping timeout: 248 seconds) 2018-08-15T17:06:20Z quipa: hehe funny not coming from a CS background and knowing enough CS history I find these relationships really interesting 2018-08-15T17:06:21Z aeth: How is neural network support in Logo these days? 2018-08-15T17:06:49Z quipa: actually there is some basic exercises on implementing ANN in NetLogo 2018-08-15T17:06:52Z quipa: it's a bit bonkers 2018-08-15T17:06:56Z quipa: but :P 2018-08-15T17:07:03Z quipa: have a bookmark I think 2018-08-15T17:07:19Z quipa: it's only a proof of concept though 2018-08-15T17:07:40Z quipa: http://www.cs.us.es/~fsancho/?e=135 2018-08-15T17:08:32Z quipa: http://ccl.northwestern.edu/netlogo/models/ArtificialNeuralNet-Multilayer 2018-08-15T17:08:35Z kushal quit (Remote host closed the connection) 2018-08-15T17:08:36Z quipa: hehe crazy no? 2018-08-15T17:08:48Z kushal joined #lisp 2018-08-15T17:11:19Z Bike: "You can also run this model in your browser, but we don't recommend it "well, okay. 2018-08-15T17:13:20Z quipa: https://dspace.mit.edu/handle/1721.1/41158 2018-08-15T17:14:03Z quipa: hehe yeah I wouldn't either, NetLogo on web is more a proof of concept then anything else I think 2018-08-15T17:14:13Z quipa: it works with some simple examples like 100 boids 2018-08-15T17:14:14Z quipa: I think 2018-08-15T17:18:39Z quipa: anyways back to my reading thanks for the resources :) 2018-08-15T17:18:42Z underlifE joined #lisp 2018-08-15T17:21:47Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-15T17:22:31Z pierpal quit (Quit: Poof) 2018-08-15T17:22:51Z pierpal joined #lisp 2018-08-15T17:26:23Z doubledup joined #lisp 2018-08-15T17:26:38Z housel quit (Read error: Connection reset by peer) 2018-08-15T17:28:28Z quipa quit (Quit: Leaving) 2018-08-15T17:30:00Z housel joined #lisp 2018-08-15T17:34:07Z Fare joined #lisp 2018-08-15T17:42:02Z ntqz quit 2018-08-15T17:45:26Z kaun quit 2018-08-15T17:46:28Z rumbler31 joined #lisp 2018-08-15T17:48:51Z schweers quit (Ping timeout: 240 seconds) 2018-08-15T17:49:12Z graphene joined #lisp 2018-08-15T17:49:28Z nika quit (Quit: Leaving...) 2018-08-15T17:50:57Z rumbler31 quit (Ping timeout: 248 seconds) 2018-08-15T17:51:46Z housel quit (Read error: Connection reset by peer) 2018-08-15T17:52:14Z housel joined #lisp 2018-08-15T17:52:35Z fikka joined #lisp 2018-08-15T17:57:31Z fikka quit (Ping timeout: 244 seconds) 2018-08-15T18:05:04Z FreeBirdLjj joined #lisp 2018-08-15T18:14:24Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-15T18:20:25Z milanj quit (Quit: This computer has gone to sleep) 2018-08-15T18:21:50Z Bike: obscure question time. say i have a gf with two methods: (defmethod foo ((x integer) &rest r) ...) and (defmethod foo ((x string) &key ...) ...). is the call (foo 4 19) valid? My impression is yes 2018-08-15T18:26:08Z phoe: Bike: what's the GF lambda list? 2018-08-15T18:26:30Z sauvin quit (Remote host closed the connection) 2018-08-15T18:29:02Z Bike: say it's implicitly defined. or has &rest, i guess. 2018-08-15T18:29:26Z phoe: so, (defgeneric foo (x &rest r)). 2018-08-15T18:30:11Z Bike: sure 2018-08-15T18:30:54Z phoe: I think it's valid 2018-08-15T18:31:04Z phoe: the GF only cares for the required arguments for dispatching 2018-08-15T18:31:31Z phoe: and the whole remainder is passed to the method as-is. 2018-08-15T18:31:34Z Bike: the generic function also takes care of checking keyword argument validity, is why i'm asking. 2018-08-15T18:31:46Z phoe: The GF doesn't know anything about keywords. 2018-08-15T18:31:50Z Bike: it does 2018-08-15T18:32:03Z phoe: It doesn't have a &KEY in its lambda list. 2018-08-15T18:32:13Z phoe: All it has is a &REST, and it's always valid. 2018-08-15T18:32:24Z phoe: The keyword checking is delegated to the method in that case 2018-08-15T18:32:32Z Bike: No 2018-08-15T18:32:36Z phoe: ...wait, it's not 2018-08-15T18:32:44Z Bike: it's uh 2018-08-15T18:32:46Z Bike: clhs 7.6.4 2018-08-15T18:32:46Z specbot: Congruent Lambda-lists for all Methods of a Generic Function: http://www.lispworks.com/reference/HyperSpec/Body/07_fd.htm 2018-08-15T18:32:54Z Bike: "The checking of the validity of keyword names is done in the generic function, not in each method." 2018-08-15T18:32:59Z phoe: I was looking at 2018-08-15T18:33:01Z phoe: clhs 3.4.3 2018-08-15T18:33:01Z specbot: Specialized Lambda Lists: http://www.lispworks.com/reference/HyperSpec/Body/03_dc.htm 2018-08-15T18:33:07Z phoe: clhs 3.4.2 2018-08-15T18:33:07Z specbot: Generic Function Lambda Lists: http://www.lispworks.com/reference/HyperSpec/Body/03_db.htm 2018-08-15T18:33:31Z phoe: "3. If any lambda list mentions &rest or &key, each lambda list must mention one or both of them." 2018-08-15T18:33:34Z phoe: this one is taken care of 2018-08-15T18:33:56Z phoe: 4. doesn't apply because GF doesn't have &KEY 2018-08-15T18:34:19Z phoe: From 4, "The checking of the validity of keyword names is done in the generic function, not in each method." but this doesn't apply because 4 doesn't apply 2018-08-15T18:35:30Z phoe: It's literally "If the generic function lambda list mentions &key..." 2018-08-15T18:35:37Z phoe: (defgeneric foo (x &rest r)) doesn't have &key 2018-08-15T18:36:11Z phoe: But I'm surprised to see one thing 2018-08-15T18:36:53Z Bike: So, you'd expect (defgeneric foo (x &rest r)) (defmethod foo (x &key a)) (defmethod foo ((x string) &key b)) (foo "hello" :a 1 :b 2) to be an error? 2018-08-15T18:37:39Z phoe: https://plaster.tymoon.eu/view/884#884 2018-08-15T18:37:50Z phoe: I'm surprised that line 6 does not error 2018-08-15T18:38:02Z phoe: There's a keyword :B that's not defined anywhere, and I passed it to the GF 2018-08-15T18:38:28Z bars0 joined #lisp 2018-08-15T18:38:44Z phoe: Your case also mentions it - in the method defined on a string, keyword A is not defined anywhere 2018-08-15T18:39:11Z phoe: There's no &allow-other-keys anywhere 2018-08-15T18:39:25Z phoe: ...unless for some obscure reason &rest counts as an &allow-other-keys 2018-08-15T18:39:48Z phoe: That's an obscure question indeed 2018-08-15T18:40:12Z Bike: What I'm getting at is that that point doesn't depend on whether the gf lambda list has &key. 2018-08-15T18:40:21Z Bike: I'm reasonably confident about that. 2018-08-15T18:41:39Z phoe: My question is why passing an unknown keyword doesn't error in that case. 2018-08-15T18:41:42Z underlifE: I'm confused about when to use sharp quote: #'. for example, why do (funcall (lambda (x) (+ x x)) 1) and (funcall #'(lambda (x) (+ x x)) 1) both work? 2018-08-15T18:42:02Z Bike: underlifE: (lambda (x) (+ x x)) is a macro form expanding to #'(lambda (x) (+ x x)) 2018-08-15T18:42:03Z Bike: beb 2018-08-15T18:42:05Z Bike: brb* 2018-08-15T18:42:22Z underlifE: oh.. 2018-08-15T18:42:29Z phoe: underlifE: #'foo == (function foo) 2018-08-15T18:42:34Z phoe: the sharpquote is just notation 2018-08-15T18:42:41Z graphene quit (Remote host closed the connection) 2018-08-15T18:42:56Z phoe: and the macro (lambda ...) expands into (function (lambda ...)) which evaluates to a function object 2018-08-15T18:42:59Z phoe: that is then funcallable 2018-08-15T18:43:12Z underlifE: yes but why do I need to use (function ...) at all? 2018-08-15T18:43:37Z underlifE: ok so a function is only callable once its been passed through (function ...) ? 2018-08-15T18:44:08Z graphene joined #lisp 2018-08-15T18:44:34Z phoe: underlifE: it's a little bit more complicated 2018-08-15T18:44:54Z pjb: underlifE: function is the only operator that creates closure. 2018-08-15T18:45:05Z pjb: underlifE: so you use function when you want to create a closure. 2018-08-15T18:45:07Z phoe: basically, FUNCALL accepts one of two things - either a symbol that names a function, or a function object itself. 2018-08-15T18:45:20Z phoe: if you (defun foo ...), then you can (funcall 'foo ...) 2018-08-15T18:45:27Z phoe: because FOO is the symbol that names a function. 2018-08-15T18:45:29Z pjb: And notice that symbols can only name global functions, not local functions! 2018-08-15T18:45:46Z pjb: local functions have lexical bindings, so the symbol naming them is immaterial. 2018-08-15T18:46:12Z phoe: But, if you don't have a symbol naming a function, then you need the function object itself. 2018-08-15T18:46:17Z meepdeew joined #lisp 2018-08-15T18:46:17Z FreeBirdLjj joined #lisp 2018-08-15T18:46:23Z phoe: And you can fetch these objects in several ways. 2018-08-15T18:46:33Z phoe: The one that's the most basic one is FUNCTION - it's a special operator. 2018-08-15T18:46:46Z phoe: It accepts either a symbol, or a lambda form. 2018-08-15T18:46:49Z phoe: A symbol is, well, a symbol. 2018-08-15T18:47:08Z phoe: A lambda form is Lisp code that describes an anonymous function. 2018-08-15T18:47:30Z phoe: And, when FUNCTION returns, it returns a function object - literally an object that corresponds to a Lisp function. 2018-08-15T18:47:33Z phoe: And you can funcall that. 2018-08-15T18:47:57Z pjb: in general function return closures, not just the function! 2018-08-15T18:48:05Z underlifE: hmm okay. so I always want to end up "grabbing" the function object. If I don't use FUNCTION then I'm stuck with just a symbol or literal? 2018-08-15T18:48:17Z pjb: (let ((x 42)) (defun f () x)) (funcall (function f)) #| --> 42 |# 2018-08-15T18:48:19Z pjb: a closure! 2018-08-15T18:48:36Z phoe: underlifE: a symbol or literal? What do you mean? 2018-08-15T18:48:49Z pjb: If most global functions have empty closures, it's not the fault of the function special operator. 2018-08-15T18:49:24Z pjb: underlifE: not necessarily. Sometimes you want to be able to redefine the function (ie. update the fbinding) and call the new function, not the old one. 2018-08-15T18:49:33Z pjb: In these cases, you don't want to use function. 2018-08-15T18:50:09Z charh quit (Ping timeout: 248 seconds) 2018-08-15T18:51:30Z underlifE: ok thanks. don't understand it yet but I will keep reading 2018-08-15T18:52:03Z random-nick quit (Read error: Connection reset by peer) 2018-08-15T18:52:18Z aeth: If you use #'foo it can be stale if you recompile the DEFUN FOO, if you use 'foo it won't be. Most useful if you're passing in a data structure containing a bunch of functions, e.g. a bunch of actions to happen at key presses. 2018-08-15T18:52:51Z aeth: If you use 'foo instead of #'foo you can recompile the definition of foo while the graphical application is running and it will use the new definition 2018-08-15T18:54:44Z aeth: Lots of people put a lot of effort into hacking together hotloading for C or C++ so they can do something similar. In CL, it's just remove the "#" 2018-08-15T18:55:31Z fikka joined #lisp 2018-08-15T18:58:17Z aeth: e.g. the GUI code has (funcall (aref key-actions some-number-representing-the-key-W)) and if the array stores 'move-forward at that position in the array you can C-c C-c recompile the function move-forward and the next iteration what pressing W does will change. 2018-08-15T18:59:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T19:03:07Z charh joined #lisp 2018-08-15T19:04:24Z doubledup quit (Quit: Leaving) 2018-08-15T19:04:43Z trittweiler: underlifE, Common Lisp is what is usually referred to as a Lisp2 (or LispN) meaning it has more than 1 namespace. A bit akin to Perl $,@,% etc. in case you're familiar with that. #' is the way to look up a function in the local or global environment. So in Common Lisp, you can have a variable called LIST and still invoke the function called LIST. Study the stuttering definition of (defun ensure-list (list) (if (listp list) list (list list))) for exam 2018-08-15T19:04:43Z trittweiler: ple. (Note that "(F x y)" == "(funcall #'F x y)", so the last expression (list list) is actually (funcall #'list list)) 2018-08-15T19:04:56Z Bike: phoe: i'm also surprised that's not an error (on sbcl, anyway). mysteries abound 2018-08-15T19:05:45Z varjagg joined #lisp 2018-08-15T19:06:06Z fikka joined #lisp 2018-08-15T19:10:48Z fikka quit (Ping timeout: 260 seconds) 2018-08-15T19:12:30Z asarch joined #lisp 2018-08-15T19:14:41Z White_Flame: underlifE: (defun foo ...) and (defvar foo ...) don't clash. Variable access (+ foo 1) vs function access (foo 1 2) are unambiguous, due to position in the form 2018-08-15T19:15:20Z White_Flame: (setf myfun #'foo) access the function named FOO instead of the variable named FOO 2018-08-15T19:15:49Z fikka joined #lisp 2018-08-15T19:16:03Z White_Flame: *accesses 2018-08-15T19:18:13Z emaczen joined #lisp 2018-08-15T19:18:46Z aeth: trittweiler: I think (F x y) actually behaves like (funcall 'F x y) because you don't have to recompile the users of a function that's not inline 2018-08-15T19:19:03Z aeth: (if I'm mistaken I'll probably be corrected in 5 minutes) 2018-08-15T19:19:22Z graphene quit (Remote host closed the connection) 2018-08-15T19:19:29Z DGASAU quit (Ping timeout: 248 seconds) 2018-08-15T19:20:50Z graphene joined #lisp 2018-08-15T19:21:19Z fikka quit (Ping timeout: 268 seconds) 2018-08-15T19:21:42Z sjl: aeth: try (disassemble (lambda () (f 10))) versus (disassemble (lambda () (funcall #'f 10))) versus (disassemble (lambda () (funcall 'f 10))) 2018-08-15T19:21:47Z phoe: Bike: well, we might ask #sbcl 2018-08-15T19:21:54Z Bike: not i 2018-08-15T19:22:43Z Bike: (f x y) certainly doesn't behave like (funcall 'f x y), given that local functions exist 2018-08-15T19:22:55Z phoe: well, I did 2018-08-15T19:23:11Z mrottenkolber: So when CFFI loads a foreign library, and I then save the lisp image (CCL in my case, but should be broadly applicable), on loading the lisp image the .so gets (re)opened again (as observed via strace). I wonder how CFFI faciliates that? Can anyone shed some light? Is it the lisp implementation that closes/reopens files for it? 2018-08-15T19:23:30Z random-nick joined #lisp 2018-08-15T19:23:31Z shka_: mrottenkolber: yes 2018-08-15T19:23:54Z shka_: CFFI is compatibility layer over implementations 2018-08-15T19:24:23Z mrottenkolber: Guess I should ask further in #ccl 2018-08-15T19:24:38Z shka_: and at this moment de facto standard 2018-08-15T19:24:50Z shka_: akin to BT 2018-08-15T19:25:18Z trittweiler: aeth: Yeah what Bike said. (funcall 'foo x y) == (funcall (symbol-function 'foo) x y), i.e. a strictly-global lookup 2018-08-15T19:26:33Z Bike: but (f x y) and (funcall #'f x y) are identical if f is a function. i can't comprehend the inlining comment. 2018-08-15T19:26:43Z Bike: can be identical, i should say 2018-08-15T19:31:48Z fikka joined #lisp 2018-08-15T19:32:43Z Jesin quit (Remote host closed the connection) 2018-08-15T19:33:43Z kerrhau joined #lisp 2018-08-15T19:34:37Z mrottenkolber: (for anyone who wonders, the relevant call chain to my question in CCL are SAVE-IMAGE > RESTORE-LISP-POINTERS > REFRESH-EXTERNAL-ENTRYPOINTS > REVIVE-SHARED-LIBRARIES, long live slime-who-calls) 2018-08-15T19:34:52Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-15T19:35:56Z shka_: hmmmmmmm 2018-08-15T19:36:07Z Fare quit (Ping timeout: 268 seconds) 2018-08-15T19:36:34Z fikka quit (Ping timeout: 256 seconds) 2018-08-15T19:37:50Z shka_: hm 2018-08-15T19:38:10Z shka_: ccl save-application does not sound nearly as bad ass as save-lisp-and-die 2018-08-15T19:38:48Z mrottenkolber: shka_: matter of taste I guess, I always found save-lisp-and-die to be an unintuitive, weird name 2018-08-15T19:39:23Z shka_: heh, i giggle a little bit each time i type it 2018-08-15T19:39:27Z shka_: ;] 2018-08-15T19:42:14Z fikka joined #lisp 2018-08-15T19:44:10Z bars0 quit (Ping timeout: 272 seconds) 2018-08-15T19:44:56Z josemanuel joined #lisp 2018-08-15T19:47:20Z fikka quit (Ping timeout: 272 seconds) 2018-08-15T19:50:25Z FreeBirdLjj quit (Ping timeout: 248 seconds) 2018-08-15T19:51:03Z cpape joined #lisp 2018-08-15T19:57:12Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-15T20:02:35Z fikka joined #lisp 2018-08-15T20:06:40Z pjb: White_Flame: on the other hand, (defvar foo) and (let (foo) …) clash, if you expect (let (foo) …) to do a lexical binding! 2018-08-15T20:06:56Z pjb: never write a defvar or defparameter without stars! 2018-08-15T20:07:12Z fikka quit (Ping timeout: 244 seconds) 2018-08-15T20:08:10Z pjb: shka_: however, save-application does kill the current lisp image. 2018-08-15T20:08:24Z pjb: The only implementation that doesn't commit suicide AFAIK is clisp. 2018-08-15T20:10:56Z phoe: https://deplinenoise.wordpress.com/2010/11/13/sbcl-core-saving/ 2018-08-15T20:10:57Z shka_: why it is difficult to implement such functionality without killing yourself? 2018-08-15T20:11:13Z shka_: phoe: yeah, i know 2018-08-15T20:11:28Z shka_: sadly, won't work if more then one thread is running 2018-08-15T20:11:38Z shka_: which is the case if you are using swank 2018-08-15T20:11:40Z phoe: shka_: you can't save a core in general with multiple threads running 2018-08-15T20:11:59Z shka_: that as well 2018-08-15T20:12:17Z shka_: even if they are asleep 2018-08-15T20:12:48Z shka_: needless to say, just a little bit awkward 2018-08-15T20:13:19Z shka_: i assume it has to be like this 2018-08-15T20:13:45Z phoe: shka_: https://github.com/sbcl/sbcl/blob/master/src/code/save.lisp#L161 2018-08-15T20:14:18Z shka_: it does not provide me any information 2018-08-15T20:15:06Z Jesin joined #lisp 2018-08-15T20:15:10Z Shinmera: Colleen: tell mrottenkolber look up deploy 2018-08-15T20:15:10Z Colleen: mrottenkolber: About deploy https://shinmera.github.io/deploy#about_deploy 2018-08-15T20:15:21Z pjb: phoe: actually, the problem is that those implementation use the unix VM ie. the C VM (eg. the thread stacks are C stacks). Implementations that use a more lispy VM such as clisp don't have this problem. 2018-08-15T20:15:47Z Shinmera: mrottenkolber: Note that, in order to ensure that binaries still work on deployed systems, the libraries should be closed before dump and opened on boot, as otherwise absolute paths might get baked in. 2018-08-15T20:15:51Z pjb: With a pure lispy stack for processes, you can easily free the processes and safe them to an file. 2018-08-15T20:15:52Z phoe: pjb: oh! 2018-08-15T20:16:11Z shka_: pjb: now that sounds cool 2018-08-15T20:16:43Z pjb: Note that's not impossible either to save C threads, this is implemented in some extensions to linux to be able to migrate processes across nodes of clusters for example. 2018-08-15T20:16:56Z djeis joined #lisp 2018-08-15T20:17:04Z shka_: i actually looked into that 2018-08-15T20:17:09Z pjb: (just paginate out the whole process, and copy the swap file ;-) 2018-08-15T20:17:35Z shka_: but it was so hackish i decided to go for green threads instead 2018-08-15T20:17:38Z pjb: But we're not talking of unix process images there, but of lisp images… Hence the difficulty. 2018-08-15T20:17:45Z shka_: or fibers as they are called nowdays 2018-08-15T20:18:13Z pjb: Of course, green threads is a solution when you don't care for digging deep into the layers under the lisp layer. 2018-08-15T20:18:52Z shka_: yes, but they are not so trivial to implement anyway 2018-08-15T20:19:15Z pjb: I would say that things like green threads also demonstrate that despite having been historically distributed as sources, the unix system also had its share of difficulties due to privative/proprietary software and kernels… 2018-08-15T20:19:54Z djeis quit (Client Quit) 2018-08-15T20:20:00Z pjb: While some (or most) of the kernel was "documented" in the BSD book, the kernel sources weren't widely available before Minix/Linux (and even long after, hence the success of Linux). 2018-08-15T20:20:32Z pjb: So a lot of things that seem like black magic, would actually be rather trivial to implement in linux or on a lisp system (when we have all the sources). 2018-08-15T20:20:32Z FreeBirdLjj joined #lisp 2018-08-15T20:21:58Z tralala quit (Ping timeout: 260 seconds) 2018-08-15T20:22:17Z djeis97 joined #lisp 2018-08-15T20:22:46Z White_Flame: Shinmera: yeah, I've had that problem with quicklisp. If you want to load more libraries after deployment, it still has the old paths from the dev box 2018-08-15T20:22:53Z fikka joined #lisp 2018-08-15T20:23:03Z Shinmera: Yep. Deploy takes care of this (and other parts of the process) for you :) 2018-08-15T20:23:10Z White_Flame: (different than FFI obv, but still one that I tend to hit) 2018-08-15T20:23:39Z White_Flame: cool,l I hadn't seen it before 2018-08-15T20:23:42Z Shinmera: Well, actually it doesn't take care of ASDF paths yet, but I want to make it do that 2018-08-15T20:23:48Z Shinmera: It does take care of binary paths thoug 2018-08-15T20:23:50Z Shinmera: h 2018-08-15T20:23:52Z mrottenkolber: Shinmera: not sure this applies on CCL which seems to reopen shared objects by searching via the "so name", not its path. 2018-08-15T20:24:19Z Shinmera: It might not! 2018-08-15T20:24:21Z shka_: oh, one more thing 2018-08-15T20:24:33Z White_Flame: Shinmera: to be very specific, it re-finds the quicklisp directory on the deployment box as well? 2018-08-15T20:24:43Z shka_: or maybe some other time 2018-08-15T20:25:10Z Shinmera: White_Flame: No, I misread your message the first time around, sorry. It doesn't do anything ASDF/QL specific at the moment. 2018-08-15T20:25:15Z White_Flame: ah, k 2018-08-15T20:25:29Z Shinmera: But I'd like to add that to allow things like hot patches and plugins 2018-08-15T20:26:00Z Shinmera: Since it already takes care of precise path management for shared libraries that seems like it would be in the ballpark. 2018-08-15T20:26:20Z White_Flame: though I think that particular feature should probably be in QL itself, like (quicklisp:drive-changed-from-under-you) or something 2018-08-15T20:27:03Z mrottenkolber: White_Flame: note that what you ran into might have been different so versions. i.e., libfoo.2 on your dev box and libfoo.3 on the deploy box. In this case its arguable that it should fail. 2018-08-15T20:27:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T20:27:32Z mrottenkolber: AFAIU this is a general unix issue, nix(os) can help in this case 2018-08-15T20:27:59Z White_Flame: mrottenkolber: I'm not talking about FFI, I'm just talkign about plain lisp libs 2018-08-15T20:28:07Z mrottenkolber: Ah ok 2018-08-15T20:28:08Z White_Flame: separate but similar problems 2018-08-15T20:28:20Z m3tti joined #lisp 2018-08-15T20:30:00Z m3tti quit (Client Quit) 2018-08-15T20:30:56Z pjb: note that open files in unix imply a reference to the library, so it's not garbage collected by the file system! (even if you unlink it from the directory structure). 2018-08-15T20:30:58Z shka_ quit (Ping timeout: 244 seconds) 2018-08-15T20:31:24Z pjb: what this implies, is that to do it right, you should probably take a copy of all open libraries and files when saving an image. 2018-08-15T20:32:32Z pjb: Only in the case of sockets, there is an API for disconnections (SIGPIPE, etc). 2018-08-15T20:32:57Z pjb: For other IPC, this has to be studied. shared memory, pipes, etc… 2018-08-15T20:32:57Z djeis97 quit (Quit: ERC (IRC client for Emacs 25.3.50.2)) 2018-08-15T20:33:07Z m3tti joined #lisp 2018-08-15T20:33:29Z djeis joined #lisp 2018-08-15T20:33:45Z pjb: In any case, the point here is that the unix VM implies a lot of assumptions and dependencies that are not made explicit (this is an environment problem), hence the difficulty. 2018-08-15T20:33:59Z mrottenkolber: pjb: I don’t follow. The moment the lisp saves its image and the process exits all fds are closed by the OS. When the saved image is loaded it will try to open some .so files etc. 2018-08-15T20:34:15Z m3tti quit (Remote host closed the connection) 2018-08-15T20:34:48Z pjb: Making those dependencies explicit and configurable in an environment would make migration and freezing in images trivial. (cf. keykos, eros-os, etc). 2018-08-15T20:35:19Z pjb: mrottenkolber: well, currently implementations don't try to save threads in the lisp image. 2018-08-15T20:35:38Z pjb: mrottenkolber: so they only save the lisp heap and actually restart the lisp toplevel. 2018-08-15T20:35:43Z pjb: new stacks. 2018-08-15T20:36:18Z djeis quit (Client Quit) 2018-08-15T20:36:33Z pjb: Notice that in the current situation, any C object obtained thru FFI is thrown away in the lisp image! 2018-08-15T20:41:15Z fikka joined #lisp 2018-08-15T20:50:16Z nowhere_man joined #lisp 2018-08-15T20:50:27Z Oddity quit (Read error: Connection reset by peer) 2018-08-15T20:53:42Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-15T20:55:02Z rocx joined #lisp 2018-08-15T20:55:12Z Denommus quit (Remote host closed the connection) 2018-08-15T20:56:04Z rumbler31 joined #lisp 2018-08-15T20:56:40Z Denommus joined #lisp 2018-08-15T20:58:08Z rumbler31 quit (Remote host closed the connection) 2018-08-15T21:00:44Z Oddity joined #lisp 2018-08-15T21:01:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T21:06:26Z dented42 joined #lisp 2018-08-15T21:16:53Z mrottenkolber: Shinmera: right, so for example on Ubuntu libcrypto is installed as libcrypto.so and on Slackware its libcrypto.so.1. Lisp images saved on Slackware/CCL would look for a libcrypto.so.1 (the so name) and fail. Not sure if deploy can work around this (AFAIU loading i.e. lbcrypto.so.2 would be a bug.) 2018-08-15T21:16:56Z fikka joined #lisp 2018-08-15T21:17:36Z Shinmera: It's not a bug if your application only specifies libcrypto.so, and not libcrypto.so.1 2018-08-15T21:18:03Z Shinmera: Picking the correct version requirements is the application writer's job 2018-08-15T21:21:22Z mrottenkolber: I wonder how cl+ssl ended up picking .1 2018-08-15T21:21:58Z fikka quit (Ping timeout: 256 seconds) 2018-08-15T21:23:19Z asarch quit (Quit: Leaving) 2018-08-15T21:23:45Z p_l: mrottenkolber: because just .so without number is a bug, iirc 2018-08-15T21:24:23Z p_l: it got murkier with this-century's breakage with versioned symbols and the like, but traditionally the number specified ABI version 2018-08-15T21:24:34Z p_l: and unversioned was just a symbolic link to versioned 2018-08-15T21:24:48Z p_l: if you depend on unversioned name, you're on the hook when it inevitably goes wrong 2018-08-15T21:25:37Z mrottenkolber: p_l: my thinking exactly, but in this case Ubuntu seems to only provide an unversioned .so path :D 2018-08-15T21:25:51Z p_l: mrottenkolber: I'd check :) 2018-08-15T21:27:16Z mrottenkolber: anyways I am in the process of writing app my dependency management solution for a pet CL application I have been hacking on that ran into all sorts of issues. I ended up with a Makefile, vendored quicklisp, and Nix :D 2018-08-15T21:27:22Z fikka joined #lisp 2018-08-15T21:28:13Z mrottenkolber: *writing up 2018-08-15T21:28:22Z p_l: hmm, /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 <--- xenial (amd64) 2018-08-15T21:30:30Z pierpal quit (Quit: Poof) 2018-08-15T21:30:41Z mrottenkolber: Huh, my bad. No libcrypto.so.1 though. 2018-08-15T21:30:49Z pierpal joined #lisp 2018-08-15T21:30:58Z kajo joined #lisp 2018-08-15T21:31:09Z mrottenkolber: /usr/lib/x86_64-linux-gnu/libcrypto.so -> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 2018-08-15T21:31:10Z p_l: I don't think libcrypto.so.1 was in present for last decade or two 2018-08-15T21:31:19Z p_l: would make sense for Slackware to still have .1 then ;) 2018-08-15T21:31:27Z mrottenkolber: :D sure 2018-08-15T21:32:05Z p_l: the joys of hacking symlinks to point 0.9.5 at 0.9.8 and the like 2018-08-15T21:32:14Z p_l: it even worked, mostly 2018-08-15T21:32:40Z fikka quit (Ping timeout: 268 seconds) 2018-08-15T21:33:37Z no-defun-allowed: Good morning 2018-08-15T21:33:51Z klltkr_: Morning no-defun-allowed 2018-08-15T21:33:57Z mrottenkolber: So... CCL should know that libfoo.1 can be called libfoo.1.*? 2018-08-15T21:34:42Z bbokser joined #lisp 2018-08-15T21:35:21Z emacsomancer joined #lisp 2018-08-15T21:35:33Z fikka joined #lisp 2018-08-15T21:38:45Z p_l: mrottenkolber: there's a list of names (if not a function hook) to attempt different paths 2018-08-15T21:42:53Z pjb: mrottenkolber: I doubt it. You would rather write code to reload the foreign libraries at image start up… 2018-08-15T21:43:18Z bbokser quit (Ping timeout: 244 seconds) 2018-08-15T21:43:18Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-15T21:43:34Z mrottenkolber: Well, I would write a default.nix and never look back (-: 2018-08-15T21:45:51Z Bike quit (Ping timeout: 252 seconds) 2018-08-15T21:45:53Z pjb: mrottenkolber: security bugs. 2018-08-15T21:46:15Z pjb: updates, lead to upgrades, lead to incompatible libraries. 2018-08-15T21:46:33Z pjb: Distributions don't care if you have to rewrite your app for lib incompatibility. 2018-08-15T21:46:54Z pjb: They care not to lose popularity by providing always the latest fad and fashion of the quarter. 2018-08-15T21:47:52Z MichaelRaskin: Well, with Nix you can pick which library you import from master and which from stable that tries to track patchlevel releases, not the feature releases 2018-08-15T21:47:56Z random-nick quit (Read error: Connection reset by peer) 2018-08-15T21:48:07Z pjb: Clearly, if your job was to write the system and application for a space station or a Moon (or Mars) bas that should last 100 years, you wouldn't proceed the same, or even use the same systems and (written in c!) libraries… 2018-08-15T21:48:18Z pjb: I told you: don't use FFI: rewrite it in lisp! 2018-08-15T21:48:38Z MichaelRaskin: If it is a space station on Mars, you don't care as much about security bugs… 2018-08-15T21:48:46Z pjb: You bet! 2018-08-15T21:49:02Z FreeBirdLjj joined #lisp 2018-08-15T21:49:06Z pjb: Mars is in the IPN! 2018-08-15T21:49:12Z pjb: https://en.wikipedia.org/wiki/Interplanetary_Internet 2018-08-15T21:49:27Z mrottenkolber: MichaelRaskin: I got that default.nix for my CCL app working nicely btw, a bliss! 2018-08-15T21:49:36Z random-nick joined #lisp 2018-08-15T21:49:50Z Fare joined #lisp 2018-08-15T21:50:03Z MichaelRaskin: Well, simple library injection is simple. 2018-08-15T21:50:10Z SaganMan joined #lisp 2018-08-15T21:50:11Z pjb: which means that you don't even need direct access to a powerful antena to pirate them, you can just hack on the internet… 2018-08-15T21:50:50Z MichaelRaskin: pjb: when BGP starts doing anything remotely resembling proper sanity filtering, let alone security, I will believe Mars stations care about security 2018-08-15T21:51:35Z pjb: https://gatewayspaceport.com 2018-08-15T21:51:54Z MichaelRaskin: I guess with NAT any attack on Mars rovers would time out, and without NAT, the attacker will be more or less identifiable 2018-08-15T21:52:18Z pjb: You would send worms and viruses. 2018-08-15T21:52:39Z pjb: The eminently hackable police bodycam 2018-08-15T21:52:57Z MichaelRaskin: Well, sending requires a TCP connection, most of the time. Even if brief 2018-08-15T21:53:20Z pjb: MichaelRaskin: IPN is a DTN, so it works more like UUCP than like the Internet… 2018-08-15T21:53:34Z pjb: So thing Morris, more than DDOS. 2018-08-15T21:55:40Z MichaelRaskin: Doesn't change irrelevance of rover-side security 2018-08-15T21:56:25Z MichaelRaskin: You will need to take over enough of the Earth-side part, that you can just overwrite the next batch of commands sent to the rover 2018-08-15T21:56:51Z pjb: MichaelRaskin: say that, until somebody on Earth sends messages tot he rover to run against your airlock! 2018-08-15T21:57:30Z pjb: You can always set up your own antena. 2018-08-15T21:57:45Z bbokser joined #lisp 2018-08-15T21:57:49Z pjb: or hack some other node of the IPN. 2018-08-15T21:58:24Z MichaelRaskin: Yes. And the nodes do not have proper security inside IPN. And one of the nodes has root access to rover by design 2018-08-15T21:58:40Z MichaelRaskin: And you can spoof it because no real security 2018-08-15T21:59:09Z MichaelRaskin: Tell me again how vulnerabilities in libraries on the rover side matter in this situation 2018-08-15T22:00:26Z pjb: And the point here is that there is a much bigger computer systems that are life critical than on Earth. On Earth, when you hack a Pu factory, people can always run away. On Mars, if you hack an airlock, it's harder for people to survive. 2018-08-15T22:01:12Z pjb: MichaelRaskin: you never know, any bug can help. 2018-08-15T22:01:53Z Denommus quit (Remote host closed the connection) 2018-08-15T22:03:12Z pjb: Software Security Is a Programming Languages Issue !!! 2018-08-15T22:03:16Z MichaelRaskin: When someone hacks a hydroelectric dam to open the maximum flow (which is expected to be fearsomely easy), death count will probably be larger than the optimistic plan for the Mars colony size in the next twenty years. 2018-08-15T22:03:27Z kajo quit (Ping timeout: 244 seconds) 2018-08-15T22:03:57Z pjb: (Here advocating for rust, but lisp existed for 60 years, imagine the infrastructure if it had been used instead of C!). 2018-08-15T22:04:25Z zigpaw: we can only dream :/ 2018-08-15T22:04:32Z kajo joined #lisp 2018-08-15T22:04:50Z pjb: MichaelRaskin: perhaps, but again, it's easier to run away from a tsunami on Earth than most kinds of problems in space. 2018-08-15T22:06:00Z vlatkoB quit (Remote host closed the connection) 2018-08-15T22:07:14Z MichaelRaskin: Washing away a city always tends to collect a large body count anyway 2018-08-15T22:07:17Z p_l notes that safety features made for Ada make Rust look amateurish 2018-08-15T22:09:30Z pierpa joined #lisp 2018-08-15T22:11:02Z maarhart joined #lisp 2018-08-15T22:11:03Z maarhart quit (Excess Flood) 2018-08-15T22:11:25Z maarhart joined #lisp 2018-08-15T22:11:28Z maarhart quit (Excess Flood) 2018-08-15T22:11:51Z maarhart joined #lisp 2018-08-15T22:11:53Z maarhart quit (Excess Flood) 2018-08-15T22:12:11Z maarhart joined #lisp 2018-08-15T22:12:13Z maarhart quit (Excess Flood) 2018-08-15T22:12:36Z maarhart joined #lisp 2018-08-15T22:12:38Z maarhart quit (Excess Flood) 2018-08-15T22:14:57Z pjb: Indeed. [PR].* languages are clown languages. 2018-08-15T22:15:25Z papachan: :) 2018-08-15T22:15:54Z MichaelRaskin: Let me summon some Racket users 2018-08-15T22:18:16Z MichaelRaskin: Rust seems to be an attempt to fix a class of concurrency bugs without killing performance at the lowest possible cognitive cost. The costturned out to be quite high, so they didn't even look into additionally having Ada-level non-concurrency related safety improvements 2018-08-15T22:24:21Z p_l: umm, where does Rust tackle concurrency? 2018-08-15T22:24:52Z josemanuel quit (Quit: leaving) 2018-08-15T22:25:03Z bbokser quit (Ping timeout: 260 seconds) 2018-08-15T22:25:13Z p_l: Pretty much the main thing they are crowing about is memory safety, and mostly by rebranding compile-time (BDSM-level) GC as "non GC" because marketing 2018-08-15T22:29:24Z sjl quit (Ping timeout: 268 seconds) 2018-08-15T22:30:59Z no-defun-allowed: rust can't do shit 2018-08-15T22:31:25Z no-defun-allowed: it's got reference counting IIRC but that's about it 2018-08-15T22:31:40Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-15T22:31:45Z no-defun-allowed: https://doc.rust-lang.org/book/second-edition/ch15-06-reference-cycles.html 2018-08-15T22:31:47Z no-defun-allowed: "memory leaks are safe, kids" 2018-08-15T22:33:10Z p_l: it got some refcounting, but most of it is souped up not-so-new compile-time GC precomputation 2018-08-15T22:33:48Z no-defun-allowed: indeed. 2018-08-15T22:33:51Z pjb: Yeah, useless. 2018-08-15T22:33:55Z pjb: clown language. 2018-08-15T22:34:27Z no-defun-allowed: 12/10 shit language 2018-08-15T22:34:46Z p_l: maybe, maybe not, but for the few places where I might consider it, it disqualifies itself by lacking codegen for the platforms involved 2018-08-15T22:34:58Z no-defun-allowed: also rust macros suck 2018-08-15T22:35:33Z no-defun-allowed: they avoid running compile time code by using pattern matching and templates. they might add syntax parsing but you'd have to do the AST yourself 2018-08-15T22:35:38Z varjagg quit (Ping timeout: 256 seconds) 2018-08-15T22:35:54Z no-defun-allowed: you have a compiler with a perfectly fine AST but you have to roll your own? "duh it's a small core compiler, just use crates" 2018-08-15T22:36:54Z Bike joined #lisp 2018-08-15T22:37:08Z no-defun-allowed: more related to CL, is SBCL often slow at compilation? i can definitely feel it with macsyma and a friend says part of his game compiles faster with CCL 2018-08-15T22:37:49Z Bike: sbcl's compiler is slower than ccl, for sure 2018-08-15T22:37:51Z p_l: no-defun-allowed: SBCL is *infamously* slow at compile time 2018-08-15T22:37:53Z random-nick quit (Read error: Connection reset by peer) 2018-08-15T22:38:39Z no-defun-allowed: does (optimize (compilation-speed n)) change that? 2018-08-15T22:39:32Z p_l: not sure 2018-08-15T22:40:03Z p_l: SBCL's afaik does simply more work per form than other 2018-08-15T22:40:45Z no-defun-allowed: fair enough, sbcl is pretty fast at running the code afterwards 2018-08-15T22:42:01Z no-defun-allowed reads more rust book 2018-08-15T22:42:11Z no-defun-allowed: they don't have closures 2018-08-15T22:42:59Z sjl joined #lisp 2018-08-15T22:43:06Z no-defun-allowed: if you want to return one you have to put it in a box type, cause apparently fat pointers are too hard 2018-08-15T22:47:31Z sjl_ joined #lisp 2018-08-15T22:49:33Z sjl quit (Ping timeout: 260 seconds) 2018-08-15T22:51:07Z rocx quit (Remote host closed the connection) 2018-08-15T22:55:12Z White_Flame: Rust to me seems to be a different take than C++ at making a better C. But it's still at that low level. 2018-08-15T22:56:34Z angavrilov quit (Remote host closed the connection) 2018-08-15T22:57:29Z no-defun-allowed: C++ is an object oriented assembly language. 2018-08-15T22:58:39Z rumbler31 joined #lisp 2018-08-15T22:59:35Z p_l: no-defun-allowed: except it's not even close to the metal at all 2018-08-15T23:02:51Z robotoad quit (Quit: robotoad) 2018-08-15T23:03:56Z rumbler31 quit (Ping timeout: 268 seconds) 2018-08-15T23:05:32Z no-defun-allowed: whoosh 2018-08-15T23:07:43Z Bike: it's really nothing like assembly at all. it's just annoying in various ways because you have to be explicit about memory 2018-08-15T23:08:14Z Bike: calling something "assembly" for that reason is silly, and it's not missing any point to say so 2018-08-15T23:08:40Z no-defun-allowed: it's a joke. a terrible one maybe but don't take it so seriously please 2018-08-15T23:08:42Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-15T23:09:45Z p_l: Bike: it's funnier when you notice that C disallows direct memory manipulation 2018-08-15T23:09:59Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 25.3.2)) 2018-08-15T23:10:01Z p_l: it only defines access to "objects" 2018-08-15T23:10:02Z allcr joined #lisp 2018-08-15T23:10:28Z Bike: i guess you could hardly define any more semantics otherwise 2018-08-15T23:10:49Z Bike: "and this object will be like X, unless something elsewhere decides to write garbage into random addresses" 2018-08-15T23:11:54Z p_l: Well, you could describe a more global memory model 2018-08-15T23:12:02Z p_l: ZetaLisp arguably had one 2018-08-15T23:12:14Z p_l: (and all LispMachineLisps) 2018-08-15T23:12:23Z Bike: i know not of the zeta 2018-08-15T23:13:36Z p_l: the places mechanism in CL is partially descended from the locatives (kinda like pointers in C, kinda like raw addresses) in Zeta 2018-08-15T23:14:40Z Bike: so, what you could do arithmetic on them? 2018-08-15T23:15:31Z p_l: yes, unlike C pointers (which aren't actually supposed to support arithmetic) there were functions to modify locatives in all manner of ways 2018-08-15T23:15:52Z p_l: (well, you needed some support to implement the language after all) 2018-08-15T23:16:06Z Bike: my understanding of the C rules is you can do arithmetic as long as the answer isn't out of bounds of the object 2018-08-15T23:16:43Z Bike: and also taking the type size into account. riiiight yes. 2018-08-15T23:17:00Z Bike: probably not supposed to write things halfway into an int 2018-08-15T23:17:07Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-15T23:17:44Z robotoad joined #lisp 2018-08-15T23:18:33Z kajo joined #lisp 2018-08-15T23:18:34Z p_l: Bike: technically the arithmetic is supported only for "arrays" 2018-08-15T23:19:01Z Bike: you can't even use offsetof? 2018-08-15T23:19:21Z p_l: this is kinda why Go separated array offsets to different set of operations 2018-08-15T23:19:36Z p_l: Bike: well, the devil is in the details 2018-08-15T23:19:48Z Bike: spose that's natural 2018-08-15T23:20:06Z Bike: and c does have so many details 2018-08-15T23:20:10Z p_l: (n.b., Go is something akin to "original family" C version 5 or something) 2018-08-15T23:21:14Z White_Flame: the one thing that annoys me about doing bit manipulates in any HLL, coming from an 8-bit asm background, is that none of the languages that achieved any popularity ever expose the Carry flag in add/shift/roll operations 2018-08-15T23:21:21Z White_Flame: *bit manipulations 2018-08-15T23:21:36Z Bike: i remember baker complained about that in relation to lisp 2018-08-15T23:21:53Z White_Flame: yep, it's not excluded 2018-08-15T23:22:08Z White_Flame: however, arbitrary length integers mitigates it somewhat 2018-08-15T23:24:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-15T23:25:10Z FreeBirdLjj joined #lisp 2018-08-15T23:25:19Z Kaisyu joined #lisp 2018-08-15T23:27:44Z Fare quit (Ping timeout: 272 seconds) 2018-08-15T23:27:56Z Kaisyu7 joined #lisp 2018-08-15T23:28:25Z charh quit (Remote host closed the connection) 2018-08-15T23:29:17Z graphene quit (Remote host closed the connection) 2018-08-15T23:30:43Z graphene joined #lisp 2018-08-15T23:36:13Z Kundry_Wag joined #lisp 2018-08-15T23:40:05Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-15T23:41:33Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-15T23:44:40Z Copenhagen_Bram joined #lisp 2018-08-15T23:46:06Z ebrasca joined #lisp 2018-08-15T23:47:18Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-15T23:49:00Z ebrasca quit (Remote host closed the connection) 2018-08-15T23:49:42Z ebrasca joined #lisp 2018-08-15T23:53:54Z fikka joined #lisp 2018-08-15T23:58:46Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T00:01:10Z mange joined #lisp 2018-08-16T00:04:48Z underlifE quit (Ping timeout: 260 seconds) 2018-08-16T00:09:45Z Oladon joined #lisp 2018-08-16T00:14:52Z nanoz joined #lisp 2018-08-16T00:18:49Z dented42 quit (Ping timeout: 244 seconds) 2018-08-16T00:20:28Z dented42 joined #lisp 2018-08-16T00:20:34Z Bateman joined #lisp 2018-08-16T00:24:27Z Bateman: Hi, would anyone here happen to have experience using arc/anarki? 2018-08-16T00:27:13Z Bike: this channel is for common lisp. i'm afraid i don't know what channel arc or its forc use. 2018-08-16T00:28:36Z meepdeew quit (Remote host closed the connection) 2018-08-16T00:30:05Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-16T00:33:09Z nowhere_man quit (Remote host closed the connection) 2018-08-16T00:38:41Z FreeBirdLjj joined #lisp 2018-08-16T00:39:30Z aeth: You could try asking in ##lisp but you probably won't find anyone 2018-08-16T00:42:31Z aeth: Arc is used to implement Hacker News and has no other projects that I can find other than other implementations of Arc. 2018-08-16T00:42:39Z Kundry_Wag joined #lisp 2018-08-16T00:43:03Z nowhere_man joined #lisp 2018-08-16T00:43:06Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-16T00:45:24Z galdor quit (Ping timeout: 256 seconds) 2018-08-16T00:46:19Z equwal joined #lisp 2018-08-16T00:47:42Z blt quit (Ping timeout: 245 seconds) 2018-08-16T00:55:11Z rumbler31 joined #lisp 2018-08-16T00:55:35Z rumbler31 quit (Remote host closed the connection) 2018-08-16T00:55:48Z fikka joined #lisp 2018-08-16T01:00:12Z sjl_ quit (Ping timeout: 272 seconds) 2018-08-16T01:00:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T01:05:08Z pjb: Bateman: you could try to implement arc in CL perhaps? 2018-08-16T01:05:12Z aeth: Bateman: You could try asking questions on their forum at http://arclanguage.org/forum 2018-08-16T01:05:46Z pjb: (defpackage "FOO" (:use "ARC") #|instead of "CL"|#) (in-package "FOO") #| this would still be a "CL" program, even if actually an 2018-08-16T01:05:51Z pjb: arc program |# 2018-08-16T01:05:57Z aeth: It's incredibly dead, though. I went through a few dozen pages to see just how low volume it is and I got blocked. So apparently so few people go there that being active on their site is inherently suspicious. 2018-08-16T01:06:14Z fikka joined #lisp 2018-08-16T01:07:45Z fouric: lmao 2018-08-16T01:07:52Z fouric: that's pretty dead, even for a lisp 2018-08-16T01:08:13Z aeth: careful, once you hit 40-50 you get blocked so make your views matter 2018-08-16T01:09:58Z jgkamat: maybe they are really heavily anti-scraping or something 2018-08-16T01:10:35Z jack_rabbit joined #lisp 2018-08-16T01:10:54Z fikka quit (Ping timeout: 256 seconds) 2018-08-16T01:10:57Z aeth: What I was doing was going through the /new page, reading the titles, and watching posts get more frequent, although it was still pretty dead 10 years ago. Well, not quite 10. I got blocked before I got to 10. 2018-08-16T01:11:56Z fouric: makes me feel just a little bit bad for pg, given all the lisp evangelism he's done 2018-08-16T01:12:11Z aeth: I didn't get to the surge of activity that must've happened a while ago. Maybe 2006? That's what I really wanted to see, the initial enthusiasm and when it dropped off. There should be a /old 2018-08-16T01:12:36Z Bateman: Well 2018-08-16T01:12:49Z Bateman: This is the second lisp I've failed to get properly working 2018-08-16T01:12:53Z aeth: fouric: The problem with Arc is that it's the mix of Common Lisp, Scheme, and Perl that apparently only pg wanted. 2018-08-16T01:13:14Z aeth: Bateman: You could try asking in #racket because Anarki is ported to a more modern version of Racket than the ancient version that HN runs 2018-08-16T01:13:19Z fouric: "Perl" O.o 2018-08-16T01:13:39Z Bateman: Thanks for the tip 2018-08-16T01:13:51Z aeth: fouric: It has been years, maybe 2012 or so, since I read all the Arc stuff, but I think Perl was the other primary influence 2018-08-16T01:13:52Z fouric: unrelated: does anyone have a little bit of time to walk me through the process of getting SLIME's lambda-list display in the minibuffer to work when the associated inferior lisp is running a process 2018-08-16T01:14:07Z Bateman: Though at this point I'm wondering if I should just give up on arc and switch to a different lisp 2018-08-16T01:14:27Z aeth: fouric: Not like I'd be able to look things up now that I'm blocked from their website (not just the forum part) :-) 2018-08-16T01:14:28Z fouric: ostensibly it has to do something with the communication mode with said inferior lisp's swank server but i don't understand it very well 2018-08-16T01:14:32Z fouric: lol 2018-08-16T01:14:45Z fouric: aeth: yeah, that does seem to be sort of counterproductive on their end, doesn't it 2018-08-16T01:15:12Z fouric: maybe it's a feature 2018-08-16T01:15:21Z fouric: "we want more users, but only a *few* more" 2018-08-16T01:15:32Z aeth: fouric: I'm guessing the volume of illegitimate traffic to legitimate traffic is probably something ridiculous like 10000:1 because it gets several topics a month and spammers spam any website with input functionality several times a day. 2018-08-16T01:15:53Z fouric: is spam control really that hard? 2018-08-16T01:16:10Z fouric: why not just require all new posters to have their submissions explicitly approved by existing users 2018-08-16T01:16:18Z fikka joined #lisp 2018-08-16T01:20:02Z aeth: Bateman: From my personal observations, Arc is the deadest language I've seen that's still notable to some degree. It has to have fewer than 20 users. Well, direct users. It has quite a few indirect users through HN. At this point, it might as well be classified as historic because there's probably more active servers running historic Lisps than Arc programs. 2018-08-16T01:21:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T01:22:51Z aeth: e.g. In Github the only activity is various implementations, HackerNews (the repo probably includes the main implementation), and miscategorized projects that don't actually use Arc. https://github.com/trending/arc?since=monthly 2018-08-16T01:23:18Z Bateman: Oof 2018-08-16T01:23:34Z Bateman: I guess I'll just stick to racket then, thanks for the advice/info 2018-08-16T01:26:19Z fikka joined #lisp 2018-08-16T01:29:17Z mathZ joined #lisp 2018-08-16T01:29:55Z Zhivago: racket seems like a good choice, these days. 2018-08-16T01:30:00Z aeth: Bateman: If you're looking for a Lisp with an active community, you probably want to be using Common Lisp (this channel), Racket, or Clojure. Emacs Lisp is also active (but it's specific to the Emacs text editor) and various other Schemes are fairly active as well (in particular, Guile and Chicken). 2018-08-16T01:30:32Z Zhivago: Racket is pretty active, last I looked. 2018-08-16T01:30:33Z aeth: If you're looking for an up and coming Lisp/Scheme that has a smaller community, there are quite a few. Maybe half a dozen, if not more. Arc does not appear to be one, unfortunately. 2018-08-16T01:30:53Z Zhivago: Ah, you included it in your list -- nevermind. 2018-08-16T01:31:53Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T01:32:52Z Bateman: aeth: Do you have any experience with Racket? If so, are there any major reasons to pick common lisp over racket, or vis versa? 2018-08-16T01:33:04Z FreeBirdLjj joined #lisp 2018-08-16T01:33:23Z pjb: Pick Common Lisp. The major reason why, is because this is #lisp. 2018-08-16T01:33:34Z Kundry_Wag quit (Remote host closed the connection) 2018-08-16T01:33:36Z aeth: Bateman: Common Lisp is an industrial language and its focus is on having multiple implementations and writing portable libraries between them. The most popular tend to be very fast and with helpful error/warning messages. 2018-08-16T01:34:00Z aeth: Bateman: Every other Lisp is essentially a one-implementation scripting language except Shen, which seems to have a dozen or more language backends. 2018-08-16T01:34:09Z Kundry_Wag joined #lisp 2018-08-16T01:34:33Z aeth: So what you'll see is newer ideas and perhaps a more coherent and modern standard library, but you'll be restricted to one major implementation and the performance will probably be worse. 2018-08-16T01:37:26Z aeth: (By "newer ideas" I mean that newer Lisps might have pure FP, static typing, some means to avoid garbage collection, a focus on concurrency, etc. All the stuff that's trendy in the past 10 years that would be hard to implement in a Common Lisp portability library.) 2018-08-16T01:37:39Z Kundry_Wag quit (Remote host closed the connection) 2018-08-16T01:37:42Z pjb: Seriously, if you implement arc in CL, then each time a new version of CL is released, you get an automatic upgrade of arc! 2018-08-16T01:37:52Z pjb: Better compilers, more libraries, etc. 2018-08-16T01:37:53Z Kundry_Wag joined #lisp 2018-08-16T01:37:54Z pjb: new platforms. 2018-08-16T01:38:26Z pjb: We'd also need a r7rs implemented in CL. We have pseudo-scheme which is an old r4rs… 2018-08-16T01:38:30Z mindCrime joined #lisp 2018-08-16T01:41:30Z FreeBirdLjj quit (Ping timeout: 256 seconds) 2018-08-16T01:42:13Z Ober: all as additional layers, without clhs breaking change at the lower levels. 2018-08-16T01:42:29Z aeth: Bateman: I agree with pjb. If you're interested in Arc, you should try to implement it in CL and learn both languages. There's already an Arc in modern Racket (Anarki). 2018-08-16T01:43:15Z aeth: Implementing a language that uses s-expressions in a host Lisp is a fairly easy project because you avoid so many complicated steps. 2018-08-16T01:43:50Z Bateman: I think that task might be beyond my current abilities 2018-08-16T01:43:57Z buffergn0me joined #lisp 2018-08-16T01:45:04Z graphene quit (Remote host closed the connection) 2018-08-16T01:45:20Z bbokser joined #lisp 2018-08-16T01:46:29Z graphene joined #lisp 2018-08-16T01:46:35Z fikka joined #lisp 2018-08-16T01:47:49Z aeth: pjb: An r7rs isn't easy, unfortunately. 2018-08-16T01:49:06Z Bateman quit (Quit: Page closed) 2018-08-16T01:49:09Z aeth: To implement a Scheme, you need call/cc and you need hygienic macros. 2018-08-16T01:50:16Z Bike: you can write hygenic macros on top of unhygenic ones 2018-08-16T01:51:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T01:52:11Z bbokser quit (Ping timeout: 255 seconds) 2018-08-16T01:53:48Z aeth: The third issue I had was a mutable global lexical scope, at least for REPL use. In CL, global variables are dynamic so (define foo 42) or (define (bar x) (+ x 42)) in a running REPL would be hard. (In Scheme, there's no function namespace so bar would just be a lambda stored in the variable bar, except for a possible compatibility wrapper for calling-from-CL) 2018-08-16T01:54:54Z aeth: There are hacks around this but I'm waiting to think of an elegant solution here. 2018-08-16T01:55:49Z aeth: Perhaps I'll just use sb-ext:defglobal. Is there an equivalent in other implementations? 2018-08-16T01:56:08Z rumbler31 joined #lisp 2018-08-16T01:56:14Z pjb: aeth: symbol macros are globa lexical scope in CL. 2018-08-16T01:57:25Z fikka joined #lisp 2018-08-16T01:58:10Z aeth: What I'm considering doing for interoperability is defining an r7rs or scheme package and invert casing the symbols for seemless interoperability. So R7RS:CAR is a thin wrapper over CL:CAR rewritten in continuation passing style and with an error instead of returning NIL if you try to take the CAR of () 2018-08-16T01:59:03Z aeth: Except even that would probably be a bit too naive since I'd probably want to inline practically all of the Scheme standard library. 2018-08-16T02:00:02Z mrottenkolber quit (Quit: ZNC 1.6.3+deb1 - http://znc.in) 2018-08-16T02:01:11Z aeth: Well, Scheme's car would be a lambda stored in the lexical global R7RS:CAR. The function R7RS:CAR would call it, so you could do (r7rs:car '(1 2 3)) in CL and get 1 back. 2018-08-16T02:02:16Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T02:02:20Z aeth: Scheme-CLOS interoperability could be tricky. Interoperability with CL macros would be trickier. Interoperability with code-walking macros might be impossible. 2018-08-16T02:02:40Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-16T02:03:13Z Oladon quit (Quit: Leaving.) 2018-08-16T02:03:46Z sjl_ joined #lisp 2018-08-16T02:03:54Z aeth: Instead of invert-casing everything, I might just invert-case (or upcase but that could break some things) the function that you'd use to call from CL and keep the lexical global as |r7rs:car| 2018-08-16T02:04:02Z robotoad quit (Quit: robotoad) 2018-08-16T02:04:16Z aeth: s/r7rs/R7RS/ 2018-08-16T02:06:21Z Fare joined #lisp 2018-08-16T02:07:19Z fikka joined #lisp 2018-08-16T02:12:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T02:12:58Z robotoad joined #lisp 2018-08-16T02:17:45Z fikka joined #lisp 2018-08-16T02:22:28Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T02:24:36Z Kundry_Wag quit (Remote host closed the connection) 2018-08-16T02:25:10Z Kundry_Wag joined #lisp 2018-08-16T02:27:49Z fikka joined #lisp 2018-08-16T02:30:08Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T02:32:06Z dddddd quit (Remote host closed the connection) 2018-08-16T02:32:38Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T02:34:08Z bbokser joined #lisp 2018-08-16T02:35:20Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-16T02:37:38Z mindCrime quit (Ping timeout: 260 seconds) 2018-08-16T02:40:18Z mathZ quit (Remote host closed the connection) 2018-08-16T02:42:58Z pierpa quit (Quit: Page closed) 2018-08-16T02:45:29Z zooey joined #lisp 2018-08-16T02:47:57Z fikka joined #lisp 2018-08-16T02:50:04Z anewuser joined #lisp 2018-08-16T02:51:13Z pjb: aeth: before optimizing scheme->cl, you should check that the CL compiler doesn't already perform the optimization you would want to do manually… 2018-08-16T02:51:35Z buffergn0me quit (Ping timeout: 255 seconds) 2018-08-16T02:52:25Z pjb: aeth: the hypothesis here is a X to CL compiler, not a X to CL translator. 2018-08-16T02:52:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T02:52:36Z pjb: (member X '(scheme arc …)) 2018-08-16T02:55:48Z Khisanth quit (Ping timeout: 268 seconds) 2018-08-16T02:56:06Z nanoz quit (Ping timeout: 272 seconds) 2018-08-16T02:56:08Z Kundry_Wag joined #lisp 2018-08-16T02:57:02Z gabc joined #lisp 2018-08-16T02:58:43Z fikka joined #lisp 2018-08-16T02:59:01Z rumbler31 joined #lisp 2018-08-16T03:00:53Z Oladon joined #lisp 2018-08-16T03:03:38Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-16T03:03:40Z fikka quit (Ping timeout: 256 seconds) 2018-08-16T03:05:33Z bbokser quit (Read error: Connection reset by peer) 2018-08-16T03:08:15Z Khisanth joined #lisp 2018-08-16T03:08:45Z fikka joined #lisp 2018-08-16T03:11:39Z allcr quit (Remote host closed the connection) 2018-08-16T03:13:13Z JuanDaugherty joined #lisp 2018-08-16T03:13:48Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T03:18:44Z fikka joined #lisp 2018-08-16T03:20:07Z pierpal quit (Quit: Poof) 2018-08-16T03:20:22Z pierpal joined #lisp 2018-08-16T03:23:15Z Ober: can you even create compat for simple scheme like (def (foo bar) (baz))? 2018-08-16T03:23:58Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T03:24:54Z fikka joined #lisp 2018-08-16T03:27:32Z dented42 joined #lisp 2018-08-16T03:28:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-16T03:29:44Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-16T03:30:18Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T03:30:34Z emacsomancer quit (Read error: Connection reset by peer) 2018-08-16T03:33:04Z emacsomancer joined #lisp 2018-08-16T03:36:18Z dented42 quit (Read error: Connection reset by peer) 2018-08-16T03:36:49Z dented42 joined #lisp 2018-08-16T03:45:18Z fikka joined #lisp 2018-08-16T03:49:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T03:52:55Z pjb: Ober: it's trivial. 2018-08-16T03:53:17Z p_l recalls optimizing scheme compiler to be one chapter in PAIP 2018-08-16T03:53:26Z pjb: Ober: have a look at: https://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/intersection-r5rs-common-lisp-emacs-lisp/index.html 2018-08-16T03:55:45Z fikka joined #lisp 2018-08-16T03:57:09Z Ober: pjb thanks 2018-08-16T03:58:01Z JuanDaugherty quit (Quit: Exeunt) 2018-08-16T04:00:43Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T04:02:13Z Oladon quit (Quit: Leaving.) 2018-08-16T04:05:19Z Bike quit (Quit: Lost terminal) 2018-08-16T04:05:59Z fikka joined #lisp 2018-08-16T04:10:48Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T04:11:35Z emacsoma` joined #lisp 2018-08-16T04:11:50Z sjl_ quit (Ping timeout: 244 seconds) 2018-08-16T04:12:14Z emacsomancer quit (Ping timeout: 256 seconds) 2018-08-16T04:13:30Z equwal quit (Remote host closed the connection) 2018-08-16T04:13:58Z kerrhau joined #lisp 2018-08-16T04:20:51Z nydel quit (Read error: Connection reset by peer) 2018-08-16T04:26:19Z fikka joined #lisp 2018-08-16T04:30:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T04:40:46Z captgector quit (Ping timeout: 244 seconds) 2018-08-16T04:42:59Z captgector joined #lisp 2018-08-16T04:46:34Z fikka joined #lisp 2018-08-16T04:51:04Z aeth: Ober: the non-trivial parts are continuations and hygienic macros, mostly 2018-08-16T04:51:40Z aeth: there are little edge cases like Scheme having a separate '() and #f, but you can just (deftype scheme-boolean () `(member t :false)) or something 2018-08-16T04:52:00Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T04:52:51Z Kundry_Wag joined #lisp 2018-08-16T04:53:11Z aeth: For instance, Pseudoscheme follows R4RS *except* for call/cc and tail recursion (and R4RS is back when hygienic macros were in an optional appendix, so it probably doesn't have those either). http://mumble.net/~jar/pseudoscheme/ 2018-08-16T04:54:02Z bbokser joined #lisp 2018-08-16T04:55:41Z parjanya joined #lisp 2018-08-16T04:55:47Z shka_ joined #lisp 2018-08-16T04:57:04Z orivej quit (Ping timeout: 272 seconds) 2018-08-16T04:57:07Z orivej_ joined #lisp 2018-08-16T04:59:49Z rumbler31 joined #lisp 2018-08-16T05:02:50Z aeth: If you just wanted Scheme syntax you could probably do it in a few days. 2018-08-16T05:04:19Z graphene quit (Remote host closed the connection) 2018-08-16T05:04:41Z rumbler31 quit (Ping timeout: 268 seconds) 2018-08-16T05:05:44Z graphene joined #lisp 2018-08-16T05:07:17Z fikka joined #lisp 2018-08-16T05:07:45Z Inline quit (Quit: Leaving) 2018-08-16T05:08:06Z bbokser quit (Ping timeout: 260 seconds) 2018-08-16T05:10:21Z beach: Good morning everyone! 2018-08-16T05:11:15Z captgector quit (Ping timeout: 244 seconds) 2018-08-16T05:11:27Z clhsgang[m]: morning beach 2018-08-16T05:12:42Z fikka quit (Ping timeout: 268 seconds) 2018-08-16T05:17:45Z sauvin joined #lisp 2018-08-16T05:22:07Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-16T05:24:43Z stardiviner joined #lisp 2018-08-16T05:25:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-16T05:26:11Z captgector joined #lisp 2018-08-16T05:27:23Z renzhi joined #lisp 2018-08-16T05:27:36Z fikka joined #lisp 2018-08-16T05:31:34Z papachan quit (Ping timeout: 256 seconds) 2018-08-16T05:32:26Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T05:41:25Z anewuser quit (Ping timeout: 272 seconds) 2018-08-16T05:47:54Z fikka joined #lisp 2018-08-16T05:48:07Z Ober: aeth: I only write trivial scheme. so the prime issues won't be blockers for my stuff 2018-08-16T05:49:16Z vlatkoB joined #lisp 2018-08-16T05:53:06Z fikka quit (Ping timeout: 256 seconds) 2018-08-16T06:02:30Z Kundry_Wag joined #lisp 2018-08-16T06:07:22Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T06:08:40Z fikka joined #lisp 2018-08-16T06:13:33Z mkolenda quit (Remote host closed the connection) 2018-08-16T06:13:42Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T06:14:05Z mkolenda joined #lisp 2018-08-16T06:15:44Z fikka joined #lisp 2018-08-16T06:20:20Z moei quit (Quit: Leaving...) 2018-08-16T06:22:05Z shka_ quit (Ping timeout: 240 seconds) 2018-08-16T06:32:15Z igemnace joined #lisp 2018-08-16T06:48:23Z robotoad quit (Quit: robotoad) 2018-08-16T06:55:14Z dented42 joined #lisp 2018-08-16T07:00:08Z dented42 quit (Ping timeout: 260 seconds) 2018-08-16T07:08:57Z Kundry_Wag joined #lisp 2018-08-16T07:10:59Z dented42 joined #lisp 2018-08-16T07:14:00Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-16T07:14:48Z heisig joined #lisp 2018-08-16T07:22:28Z Kundry_Wag joined #lisp 2018-08-16T07:27:02Z galdor joined #lisp 2018-08-16T07:31:35Z dented42 quit (Ping timeout: 240 seconds) 2018-08-16T07:35:14Z stardiviner quit (Read error: Connection reset by peer) 2018-08-16T07:39:28Z DataLinkDroid joined #lisp 2018-08-16T07:39:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T07:42:01Z mange quit (Remote host closed the connection) 2018-08-16T07:42:54Z dented42 joined #lisp 2018-08-16T07:45:37Z LdBeth: Good afternoon 2018-08-16T07:45:47Z beach: Hello LdBeth. 2018-08-16T07:48:06Z dented42 quit (Ping timeout: 268 seconds) 2018-08-16T07:49:04Z LdBeth: Hi beach 2018-08-16T07:49:49Z LdBeth: Reading the intro to ACL2 theorem prover 2018-08-16T07:50:09Z moei joined #lisp 2018-08-16T07:50:27Z shrdlu68 joined #lisp 2018-08-16T07:55:40Z zxcvz_ quit (Quit: zxcvz_) 2018-08-16T07:56:06Z zxcvz joined #lisp 2018-08-16T07:56:08Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-16T07:59:41Z orivej_ quit (Ping timeout: 244 seconds) 2018-08-16T08:01:07Z fikka joined #lisp 2018-08-16T08:02:00Z no-defun-allowed: anyone have experience with cl-llvm? 2018-08-16T08:02:08Z pjb quit (Read error: Connection reset by peer) 2018-08-16T08:02:42Z pjb joined #lisp 2018-08-16T08:04:18Z flip214 quit (Ping timeout: 260 seconds) 2018-08-16T08:06:06Z beach: no-defun-allowed: What are you planning to do with it? 2018-08-16T08:06:39Z beach: no-defun-allowed: I am asking because Clasp generates code using LLVM, but does not use cl-llvm. 2018-08-16T08:07:06Z grumble quit (Remote host closed the connection) 2018-08-16T08:07:47Z Kundry_Wag joined #lisp 2018-08-16T08:08:36Z no-defun-allowed: i'm trying to load it on my desktop 2018-08-16T08:08:54Z no-defun-allowed: it gets confused between llvm3.9 and llvm6.0, loading 6.0 headers when compiling 2018-08-16T08:09:39Z no-defun-allowed: oh, i don't have them and apparently they dropped the headers for 3.9 in ubuntu 14.04 2018-08-16T08:10:00Z no-defun-allowed: *them=the headers for 3.9 2018-08-16T08:10:09Z grumble joined #lisp 2018-08-16T08:11:16Z no-defun-allowed quit (Remote host closed the connection) 2018-08-16T08:11:21Z katco[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:22Z spectrumgomas[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:23Z mhitchman[m] quit (Remote host closed the connection) 2018-08-16T08:11:24Z clhsgang[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:24Z dirb[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:25Z ritsch_master[m] quit (Remote host closed the connection) 2018-08-16T08:11:25Z HDurer[m] quit (Remote host closed the connection) 2018-08-16T08:11:25Z remix2000[m] quit (Remote host closed the connection) 2018-08-16T08:11:26Z plll[m] quit (Remote host closed the connection) 2018-08-16T08:11:28Z LdBeth quit (Remote host closed the connection) 2018-08-16T08:11:30Z drunk_foxx[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:30Z manila[m] quit (Remote host closed the connection) 2018-08-16T08:11:30Z wetha[m] quit (Remote host closed the connection) 2018-08-16T08:11:31Z kumori[m] quit (Remote host closed the connection) 2018-08-16T08:11:31Z eli_oat[m] quit (Remote host closed the connection) 2018-08-16T08:11:31Z z3r0d5y[m] quit (Read error: Connection reset by peer) 2018-08-16T08:11:39Z grumble quit (Quit: This XML file does not appear to have any style information associated with it. The document tree is shown below.) 2018-08-16T08:12:25Z Kundry_Wag quit (Ping timeout: 265 seconds) 2018-08-16T08:14:13Z pierpal quit (Ping timeout: 260 seconds) 2018-08-16T08:17:15Z Copenhagen_Bram quit (Remote host closed the connection) 2018-08-16T08:17:15Z mkolenda quit (Ping timeout: 265 seconds) 2018-08-16T08:18:27Z theemacsshibe joined #lisp 2018-08-16T08:18:31Z theemacsshibe: hi again 2018-08-16T08:18:41Z beach: Hey. 2018-08-16T08:18:57Z beach: theemacsshibe: Remind me, are you working on some project using Common Lisp? 2018-08-16T08:19:16Z Copenhagen_Bram joined #lisp 2018-08-16T08:19:27Z theemacsshibe: that's why i'm here, yes 2018-08-16T08:19:35Z theemacsshibe: apparently llvm3.9 and llvm-3.9 are different packages on ubuntu 2018-08-16T08:19:48Z beach: And what is the goal of the project? 2018-08-16T08:20:04Z theemacsshibe: just going to write a toy compiler since it seems easy enough. 2018-08-16T08:20:24Z beach: For Common Lisp in Common Lisp? 2018-08-16T08:20:47Z theemacsshibe: still waiting on my nickserv email, turns out someone does send out "you haven't logged in" mails on altervista. 2018-08-16T08:20:56Z theemacsshibe: *a* lisp, not CL. CL is kinda big. 2018-08-16T08:22:15Z beach: Is it in order to learn about compilers? 2018-08-16T08:22:31Z theemacsshibe: partially 2018-08-16T08:24:25Z beach: I am interested in knowing more, but if you don't want to talk about it, that's fine too. 2018-08-16T08:24:25Z theemacsshibe: hopefully it'll be clever and use llvm-3.9 now instead of llvm-6.0 2018-08-16T08:24:42Z theemacsshibe: i just want to write a very simple functional compiler, since it seems pretty easy 2018-08-16T08:25:06Z edgar-rft quit (Remote host closed the connection) 2018-08-16T08:25:19Z theemacsshibe: nope, it fucking blew it. 2018-08-16T08:25:47Z theemacsshibe: grovel, we are *not* trying to compile against "/usr/lib/llvm-6.0/include". 2018-08-16T08:27:41Z python476 joined #lisp 2018-08-16T08:27:43Z python476: hi 2018-08-16T08:27:43Z mkolenda joined #lisp 2018-08-16T08:27:57Z theemacsshibe: hi python476 2018-08-16T08:28:00Z python476: rms says lisp unwind-protect may come from TECO (https://www.gnu.org/gnu/rms-lisp.html) 2018-08-16T08:28:01Z beach: Hello python476. 2018-08-16T08:28:06Z python476: hi guys 2018-08-16T08:28:30Z python476: do you know anything about this ? I find it odd but .. I don't know enough history 2018-08-16T08:28:37Z theemacsshibe: i gave grovel every opportunity. i symlinked llvm-3.9 to 3.1 and 3.6 and it still chose llvm-6.0 2018-08-16T08:28:53Z theemacsshibe: hey there's someone else i know, hey Copenhagen_Bram 2018-08-16T08:29:45Z no-defun-allowed joined #lisp 2018-08-16T08:29:47Z python476: theemacsshibe: random suggestion, have you tried strace-ing your process ? 2018-08-16T08:30:03Z theemacsshibe: strace? this is lisp, buddy 2018-08-16T08:30:07Z theemacsshibe: we have tracers. 2018-08-16T08:30:08Z python476: often useful to find when/where/who links to something you don't want 2018-08-16T08:30:16Z python476: theemacsshibe: ltrace then :cough: 2018-08-16T08:30:47Z theemacsshibe: i need to figure out why grovel is telling GCC to use llvm-6.0 headers 2018-08-16T08:31:01Z python476: the joy of softeng 2018-08-16T08:31:09Z no-defun-allowed: cool, i'm back 2018-08-16T08:31:16Z theemacsshibe boops no-defun-allowed 2018-08-16T08:31:32Z gurmble joined #lisp 2018-08-16T08:31:33Z beach: python476: I don't know the history of UNWIND-PROTECT, but I know that condition system is inspired by Multics PL/I. 2018-08-16T08:31:59Z theemacsshibe: matrix.org still has huge lag so i won't change back for a while 2018-08-16T08:32:06Z gurmble is now known as grumble 2018-08-16T08:32:36Z theemacsshibe: hey there's a staff guy 2018-08-16T08:32:42Z theemacsshibe: hi gurmble 2018-08-16T08:33:33Z python476: beach: oh .. surprising 2018-08-16T08:33:51Z beach: A bit, yes. 2018-08-16T08:34:01Z python476: the so famous condition system was not fully lisped 2018-08-16T08:34:09Z python476: time to google 2018-08-16T08:34:48Z theemacsshibe: ooh i see a possible problem 2018-08-16T08:35:34Z theemacsshibe: cffi.lisp only looks for any version of llvm-___ instead of 3.x 2018-08-16T08:38:45Z theemacsshibe: nope, that was for the .so file, not headers 2018-08-16T08:40:49Z theemacsshibe: got it 2018-08-16T08:41:14Z theemacsshibe: beach: as well as adding libLLVM-3.9.so to the cffi library list, i also had to change `llvm-config` to `llvm-config-3.9` 2018-08-16T08:42:45Z dented42 joined #lisp 2018-08-16T08:44:23Z kajo quit (Ping timeout: 255 seconds) 2018-08-16T08:49:06Z schweers joined #lisp 2018-08-16T08:50:41Z theemacsshibe: cl-llvm doesn't seem to like ints here either 2018-08-16T08:50:58Z theemacsshibe: llvm:dump-value gives me a ppc_fp128 which i struggle to imagine compiling correctly 2018-08-16T09:03:21Z aeth quit (Ping timeout: 240 seconds) 2018-08-16T09:03:49Z aeth joined #lisp 2018-08-16T09:04:34Z theemacsshibe: hi aeth 2018-08-16T09:07:34Z ldb joined #lisp 2018-08-16T09:07:50Z ldb: so i got kicked out 2018-08-16T09:08:14Z theemacsshibe: same here. have you registered with nickserv? 2018-08-16T09:08:51Z ldb: now registered :) 2018-08-16T09:09:26Z LdBeth joined #lisp 2018-08-16T09:09:54Z no-defun-allowed: test 2018-08-16T09:10:00Z theemacsshibe: good enough. cya. 2018-08-16T09:10:03Z theemacsshibe left #lisp 2018-08-16T09:14:58Z ldb quit (Ping timeout: 260 seconds) 2018-08-16T09:15:35Z no-defun-allowed: cool, cl-llvm now loads without problems. 2018-08-16T09:16:17Z fikka quit (Ping timeout: 268 seconds) 2018-08-16T09:17:44Z no-defun-allowed: best part is sbcl handles C segfaults so i have a pretty nice C debugger :^) 2018-08-16T09:21:46Z kajo joined #lisp 2018-08-16T09:21:55Z orivej joined #lisp 2018-08-16T09:25:52Z dented42 quit (Ping timeout: 260 seconds) 2018-08-16T09:28:12Z zigpaw: I didn't know that, pretty cool! can you post a screenshot on how it looks? :-) 2018-08-16T09:29:07Z phoe: no-defun-allowed: show me! 2018-08-16T09:30:34Z phoe: minion: memo for theemacsshibe: matrix.org is updating, https://mastodon.matrix.org/@matrix/100559207263625726 2018-08-16T09:30:34Z minion: Remembered. I'll tell theemacsshibe when he/she/it next speaks. 2018-08-16T09:30:52Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-16T09:31:31Z beach: phoe: (EQ theemacsshibe no-defun-allowed) => T 2018-08-16T09:33:15Z phoe: beach: oh, thanks! 2018-08-16T09:39:32Z no-defun-allowed: I'm back. 2018-08-16T09:40:01Z no-defun-allowed: beach: that is true. 2018-08-16T09:40:43Z no-defun-allowed: zigpaw: if C code segfaults SBCL picks it up and raises an exception. 2018-08-16T09:40:52Z no-defun-allowed: This is normal behaviour. 2018-08-16T09:41:24Z beach: In Common Lisp we don't "raise exceptions", we "signal conditions". 2018-08-16T09:43:06Z cage_ joined #lisp 2018-08-16T09:51:12Z zigpaw: does it show any debugging info coming from C binary (if it does have debugging symbols)? or just shows the call from Lisp code? 2018-08-16T09:53:23Z Kundry_Wag joined #lisp 2018-08-16T09:54:09Z fikka joined #lisp 2018-08-16T09:54:10Z zigpaw: on the other had, we get an interactive debugger so we can tinker and call C code till it works ;) 2018-08-16T09:54:17Z zigpaw: s/had/hand/ 2018-08-16T09:57:18Z random-nick joined #lisp 2018-08-16T09:58:19Z Shinmera: zigpaw: SBCL can decode some C stack frame info so it will show function names if it can 2018-08-16T09:59:50Z zigpaw: wow, great :-) will have to play with it more. 2018-08-16T10:00:07Z Shinmera: I'd say the opposite. The less you have to see a C stack frame in the debugger the better 2018-08-16T10:12:23Z angavrilov joined #lisp 2018-08-16T10:14:07Z m00natic joined #lisp 2018-08-16T10:18:34Z gpiero quit (Ping timeout: 268 seconds) 2018-08-16T10:22:01Z zigpaw: true, but when you have a sigsegv it is better to see any info available. In most cases I recall (from other languages than common lisp) I didn't got any info about what went wrong. 2018-08-16T10:25:54Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-16T10:32:02Z Shinmera: That's less a language and more a runtime question. Your OS (C runtime) usually forfeits a debugger, so you don't get one. But if you attach GDB to your program you'll get it. 2018-08-16T10:38:07Z dented42 joined #lisp 2018-08-16T10:38:22Z jusss joined #lisp 2018-08-16T10:41:35Z jusss quit (Client Quit) 2018-08-16T10:42:26Z dented42 quit (Ping timeout: 244 seconds) 2018-08-16T10:44:06Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T10:44:09Z kolb joined #lisp 2018-08-16T10:45:34Z no-defun-allowed: My apologies, beach. I don't know if it's a condition honestly, but the SBCL debugger is invoked for an "unhandled memory fault". 2018-08-16T10:47:20Z jurov: Anyone please, how do I get format "~s" to not print package for symbols? it even spews out NIL as COMMON-LISP:NIL (sbcl) 2018-08-16T10:47:30Z beach: no-defun-allowed: I don't remember. 2018-08-16T10:47:50Z beach: jurov: Print the symbol-name 2018-08-16T10:48:09Z beach: jurov: Or, set the package before printing. 2018-08-16T10:49:30Z jurov: okay, but, I am printing lists (it can be done with conditional format?) and there are more packages involved 2018-08-16T10:50:02Z jackdaniel: use aesthetically, that is (format t "~A" nil) 2018-08-16T10:50:31Z jurov: okay, but there are strings too and I want to print them quoted 2018-08-16T10:52:33Z fikka joined #lisp 2018-08-16T10:55:03Z jurov: guess imma call it (with (*package* (find-package 'common-lisp)) to get the nil and live with the rest 2018-08-16T10:55:19Z jurov: er..s/with/let 2018-08-16T10:55:35Z kerrhau quit (Ping timeout: 240 seconds) 2018-08-16T11:00:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T11:02:29Z jurov: what's funny, in slime repl "~s" prints all symbols without packages 2018-08-16T11:05:52Z dented42 joined #lisp 2018-08-16T11:05:55Z dddddd joined #lisp 2018-08-16T11:06:58Z pjb: (with-standard-io-syntax (format t "~S" 'nil)) 2018-08-16T11:07:31Z ecraven: is there a way to nest presentations with slime? 2018-08-16T11:10:44Z fikka joined #lisp 2018-08-16T11:10:50Z Kundry_Wag joined #lisp 2018-08-16T11:15:32Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-16T11:17:24Z phoe: ecraven: nest? what do you mean? 2018-08-16T11:18:03Z ecraven: I want presentations inside presentations, like CLIM has 2018-08-16T11:18:27Z ecraven: (foo (bar)) should have at least 4 presentations, one for the outermost list, two for the symbols, and one for the cdar 2018-08-16T11:18:56Z ecraven: (a constructed example, this is mostly relevant for showing lists of objects, where I want to have the slot values be presentations, but also the entire object) 2018-08-16T11:21:07Z phoe: I don't think they can be nested. 2018-08-16T11:22:33Z ecraven: yea, that's what I thought :-/ would be nice though 2018-08-16T11:22:54Z pjb: Port slime to McCLIM! 2018-08-16T11:23:16Z ecraven: I'd rather add better presentations to slime, as I use slime with other languages (that would also profit ;D) 2018-08-16T11:24:19Z ecraven: but I should start seriously looking into McCLIM, lots of good things there 2018-08-16T11:24:23Z phoe: port McCLIM to slime? 2018-08-16T11:24:49Z pjb: to emacs lisp in general, then. 2018-08-16T11:25:31Z pjb: Or, update emacs-cl to emacs-25, so that McCLIM may run on emacs, and be used by slime! 2018-08-16T11:32:03Z ramHero quit (Remote host closed the connection) 2018-08-16T11:32:14Z wigust joined #lisp 2018-08-16T11:39:05Z dented42 quit (Ping timeout: 240 seconds) 2018-08-16T12:02:04Z TMA joined #lisp 2018-08-16T12:04:30Z Kundry_Wag joined #lisp 2018-08-16T12:09:38Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T12:16:11Z milanj joined #lisp 2018-08-16T12:16:44Z doubledup joined #lisp 2018-08-16T12:17:11Z milanj quit (Client Quit) 2018-08-16T12:18:33Z milanj joined #lisp 2018-08-16T12:19:45Z doubledup quit (Remote host closed the connection) 2018-08-16T12:20:26Z doubledup joined #lisp 2018-08-16T12:23:09Z Kundry_Wag joined #lisp 2018-08-16T12:32:38Z rumbler31 joined #lisp 2018-08-16T12:34:23Z quazimodo quit (Ping timeout: 260 seconds) 2018-08-16T12:36:15Z quazimodo joined #lisp 2018-08-16T12:38:47Z JuanDaugherty joined #lisp 2018-08-16T12:42:11Z hjudt: i have a question about testing (in general): i started writing some tests and put them in its own package/file, letting it :use the other package i want to test. when i want to test non-exported symbols/functions/etc., what am i supposed to do? reference them using package::symbol? or should i only write tests for non-exported symbols? how do other people tackle this? 2018-08-16T12:44:15Z LiamH joined #lisp 2018-08-16T12:46:42Z jackdaniel: what you do is fine imo. alternative approach is to define tests in the same package internal interfaces of you are testing 2018-08-16T12:46:48Z jackdaniel: erm, that sounds like yodaf 2018-08-16T12:46:49Z AroPar joined #lisp 2018-08-16T12:46:53Z jackdaniel: s/f// 2018-08-16T12:47:29Z beach: I don't hesitate using double package markers in my own test code. 2018-08-16T12:47:32Z Shinmera: hjudt: Since your tests are part of your project, using double colons just fine. 2018-08-16T12:47:47Z Shinmera: double colons are only an eyebrow-raiser if it's not your own stuff. 2018-08-16T12:48:26Z hjudt: Shinmera: that is good because then i do not have to :use my package and can avoid parachute name clashes like name, dependencies and parent ;-) 2018-08-16T12:48:50Z Shinmera: Well you don't need to :use parachute either 2018-08-16T12:49:32Z quazimodo quit (Ping timeout: 272 seconds) 2018-08-16T12:49:48Z hjudt: it is awful having to write package name of the test framework package all the time, or to import specific symbols. 2018-08-16T12:50:19Z Shinmera: Sure enough. 2018-08-16T12:50:24Z hjudt: i guess i'll simply use double-colons consistently. 2018-08-16T12:50:29Z Bike joined #lisp 2018-08-16T12:51:03Z Shinmera: That said that gives me an idea for a parachute-user package that only exports things like define-test, and the various testers 2018-08-16T12:51:17Z quazimodo joined #lisp 2018-08-16T12:51:53Z JuanDaugherty quit (Quit: Exeunt) 2018-08-16T12:55:52Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T12:58:27Z pjb quit (Remote host closed the connection) 2018-08-16T12:59:32Z charh joined #lisp 2018-08-16T12:59:52Z pjb joined #lisp 2018-08-16T13:01:05Z renzhi quit (Ping timeout: 240 seconds) 2018-08-16T13:01:37Z renzhi joined #lisp 2018-08-16T13:05:24Z mindCrime joined #lisp 2018-08-16T13:10:17Z PuercoPop: The CLHS entry of FIND seems not to specify the default :test function to use. Is that choice left up to the implementations? 2018-08-16T13:10:55Z Shinmera: No 2018-08-16T13:10:55Z mindCrime_ joined #lisp 2018-08-16T13:11:09Z Shinmera: There's a section somewhere that specifies the default test to be eql 2018-08-16T13:11:21Z Kundry_Wag joined #lisp 2018-08-16T13:11:41Z PuercoPop: http://www.lispworks.com/documentation/HyperSpec/Body/17_ba.htm 2018-08-16T13:12:06Z PuercoPop: Damn, I was reading this yesterday before I went to sleep and somehow missed it.Thanks Shinmera 2018-08-16T13:12:13Z Bike: yeah, that one.it probably ought to be linked from all the pages in the table, but aint 2018-08-16T13:12:25Z Shinmera: No problem. 2018-08-16T13:12:50Z mindCrime quit (Ping timeout: 256 seconds) 2018-08-16T13:16:08Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T13:16:54Z milanj quit (Quit: This computer has gone to sleep) 2018-08-16T13:18:57Z rumbler31 quit (Remote host closed the connection) 2018-08-16T13:26:01Z graphene quit (Remote host closed the connection) 2018-08-16T13:26:26Z Guest5800_ joined #lisp 2018-08-16T13:27:23Z graphene joined #lisp 2018-08-16T13:29:45Z Denommus joined #lisp 2018-08-16T13:30:55Z Kundry_Wag joined #lisp 2018-08-16T13:46:02Z Fare joined #lisp 2018-08-16T13:47:43Z AroPan joined #lisp 2018-08-16T13:50:20Z AroPar quit (Ping timeout: 272 seconds) 2018-08-16T13:50:58Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T13:54:00Z mindCrime_ quit (Quit: Leaving) 2018-08-16T14:02:56Z dented42 joined #lisp 2018-08-16T14:03:55Z heisig quit (Quit: Leaving) 2018-08-16T14:04:16Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-16T14:04:54Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-16T14:07:01Z jack_rabbit joined #lisp 2018-08-16T14:07:08Z mindCrime joined #lisp 2018-08-16T14:08:04Z Fare quit (Ping timeout: 272 seconds) 2018-08-16T14:10:24Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-16T14:10:48Z sthalik quit (Read error: Connection reset by peer) 2018-08-16T14:13:46Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-16T14:13:50Z fikka joined #lisp 2018-08-16T14:14:23Z Inline joined #lisp 2018-08-16T14:17:30Z igemnace quit (Remote host closed the connection) 2018-08-16T14:19:27Z rumbler31 joined #lisp 2018-08-16T14:23:17Z jusss joined #lisp 2018-08-16T14:24:05Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-16T14:26:04Z jusss quit (Client Quit) 2018-08-16T14:33:18Z FreeBirdLjj joined #lisp 2018-08-16T14:35:41Z DGASAU joined #lisp 2018-08-16T14:36:23Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-08-16T14:36:48Z FreeBirdLjj joined #lisp 2018-08-16T14:37:00Z warweasle joined #lisp 2018-08-16T14:47:49Z zooey quit (Ping timeout: 250 seconds) 2018-08-16T14:49:21Z zooey joined #lisp 2018-08-16T14:52:20Z [X-Scale] joined #lisp 2018-08-16T14:54:16Z X-Scale quit (Ping timeout: 256 seconds) 2018-08-16T14:54:17Z [X-Scale] is now known as X-Scale 2018-08-16T15:02:19Z Fare joined #lisp 2018-08-16T15:07:29Z dented42 quit (Ping timeout: 244 seconds) 2018-08-16T15:22:48Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T15:23:59Z robotoad joined #lisp 2018-08-16T15:26:15Z fluxit joined #lisp 2018-08-16T15:28:26Z shrdlu68 quit (Quit: WeeChat 2.0.1) 2018-08-16T15:45:17Z wigust quit (Quit: ZNC 1.7.1 - https://znc.in) 2018-08-16T15:46:21Z dented42 joined #lisp 2018-08-16T15:49:39Z rippa joined #lisp 2018-08-16T15:50:41Z pierpal joined #lisp 2018-08-16T15:51:06Z dented42 quit (Ping timeout: 265 seconds) 2018-08-16T15:52:01Z pjb quit (Read error: Connection reset by peer) 2018-08-16T15:52:04Z foom2 is now known as foom 2018-08-16T15:53:30Z pjb joined #lisp 2018-08-16T15:54:54Z varjag joined #lisp 2018-08-16T16:06:03Z pjb quit (Remote host closed the connection) 2018-08-16T16:06:30Z orivej quit (Ping timeout: 272 seconds) 2018-08-16T16:07:21Z dented42 joined #lisp 2018-08-16T16:07:29Z pjb joined #lisp 2018-08-16T16:11:58Z dented42 quit (Ping timeout: 260 seconds) 2018-08-16T16:13:41Z milanj joined #lisp 2018-08-16T16:14:26Z AroPan quit (Quit: Leaving) 2018-08-16T16:14:27Z Jesin quit (Remote host closed the connection) 2018-08-16T16:14:46Z AroPar joined #lisp 2018-08-16T16:14:47Z buffergn0me joined #lisp 2018-08-16T16:19:27Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-16T16:20:43Z rumbler31 joined #lisp 2018-08-16T16:23:22Z shka_ joined #lisp 2018-08-16T16:25:31Z pierpal quit (Quit: Poof) 2018-08-16T16:25:51Z pierpal joined #lisp 2018-08-16T16:26:12Z sjl joined #lisp 2018-08-16T16:26:32Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-16T16:28:21Z dented42 joined #lisp 2018-08-16T16:29:57Z Fare quit (Ping timeout: 240 seconds) 2018-08-16T16:33:30Z dented42 quit (Ping timeout: 268 seconds) 2018-08-16T16:36:52Z papachan joined #lisp 2018-08-16T16:39:12Z pjb quit (Remote host closed the connection) 2018-08-16T16:40:47Z pjb joined #lisp 2018-08-16T16:42:16Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-16T16:42:30Z stnutt quit (Ping timeout: 260 seconds) 2018-08-16T16:44:48Z Jesin joined #lisp 2018-08-16T16:47:59Z fikka joined #lisp 2018-08-16T16:49:12Z dented42 joined #lisp 2018-08-16T16:51:13Z Fare joined #lisp 2018-08-16T16:52:26Z stnutt joined #lisp 2018-08-16T16:52:48Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T16:53:15Z AroPar quit (Quit: Leaving) 2018-08-16T16:54:01Z dented42 quit (Ping timeout: 272 seconds) 2018-08-16T16:54:23Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-16T16:54:41Z SaganMan joined #lisp 2018-08-16T16:55:37Z m00natic quit (Remote host closed the connection) 2018-08-16T16:59:03Z fikka joined #lisp 2018-08-16T17:04:05Z fikka quit (Ping timeout: 265 seconds) 2018-08-16T17:06:03Z zooey quit (Ping timeout: 250 seconds) 2018-08-16T17:07:08Z zooey joined #lisp 2018-08-16T17:09:07Z fikka joined #lisp 2018-08-16T17:10:06Z dented42 joined #lisp 2018-08-16T17:12:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-16T17:13:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T17:16:43Z dented42 quit (Ping timeout: 260 seconds) 2018-08-16T17:19:04Z fikka joined #lisp 2018-08-16T17:24:24Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T17:35:27Z graphene quit (Remote host closed the connection) 2018-08-16T17:36:49Z graphene joined #lisp 2018-08-16T17:37:04Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-16T17:38:05Z schweers quit (Ping timeout: 255 seconds) 2018-08-16T17:39:23Z fikka joined #lisp 2018-08-16T17:44:08Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T17:46:01Z pjb quit (Remote host closed the connection) 2018-08-16T17:47:36Z pjb joined #lisp 2018-08-16T17:48:05Z Fare joined #lisp 2018-08-16T17:49:03Z pierpal quit (Quit: Poof) 2018-08-16T17:49:31Z pierpal joined #lisp 2018-08-16T17:49:49Z fikka joined #lisp 2018-08-16T17:52:52Z pjb quit (Remote host closed the connection) 2018-08-16T17:53:15Z shrdlu68 joined #lisp 2018-08-16T17:53:32Z Fare quit (Ping timeout: 272 seconds) 2018-08-16T17:54:20Z pjb joined #lisp 2018-08-16T17:54:38Z asarch joined #lisp 2018-08-16T17:54:48Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T17:57:23Z orivej joined #lisp 2018-08-16T17:58:04Z dented42 joined #lisp 2018-08-16T17:59:29Z narendraj9 joined #lisp 2018-08-16T18:00:06Z fikka joined #lisp 2018-08-16T18:00:38Z zxcvz_ joined #lisp 2018-08-16T18:01:11Z narendraj9 quit (Client Quit) 2018-08-16T18:02:24Z zxcvz quit (Ping timeout: 256 seconds) 2018-08-16T18:03:21Z milanj quit (Quit: This computer has gone to sleep) 2018-08-16T18:04:42Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T18:06:55Z Xof quit (Ping timeout: 265 seconds) 2018-08-16T18:17:18Z JuanDaugherty joined #lisp 2018-08-16T18:20:27Z fikka joined #lisp 2018-08-16T18:22:37Z rumbler31 joined #lisp 2018-08-16T18:25:04Z shrdlu68 quit (Read error: Connection reset by peer) 2018-08-16T18:25:33Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T18:27:30Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-16T18:30:06Z sauvin quit (Remote host closed the connection) 2018-08-16T18:30:47Z fikka joined #lisp 2018-08-16T18:32:15Z Fare joined #lisp 2018-08-16T18:40:35Z random-nick quit (Ping timeout: 240 seconds) 2018-08-16T18:46:01Z milanj joined #lisp 2018-08-16T18:48:52Z pjb quit (Remote host closed the connection) 2018-08-16T18:50:22Z jxy quit (Quit: leaving) 2018-08-16T18:50:30Z pjb joined #lisp 2018-08-16T18:51:49Z orivej quit (Ping timeout: 272 seconds) 2018-08-16T18:53:01Z orivej joined #lisp 2018-08-16T18:54:43Z parjanya quit (Ping timeout: 268 seconds) 2018-08-16T18:55:29Z cage_ quit (Remote host closed the connection) 2018-08-16T18:57:14Z rozenglass joined #lisp 2018-08-16T19:00:12Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-16T19:02:34Z dented42 joined #lisp 2018-08-16T19:03:01Z pjb quit (Read error: Connection reset by peer) 2018-08-16T19:03:11Z housel quit (Remote host closed the connection) 2018-08-16T19:04:11Z pjb joined #lisp 2018-08-16T19:09:45Z pjb quit (Ping timeout: 265 seconds) 2018-08-16T19:11:21Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T19:19:23Z mindCrime quit (Ping timeout: 268 seconds) 2018-08-16T19:22:33Z pierpal quit (Read error: Connection reset by peer) 2018-08-16T19:26:50Z fikka joined #lisp 2018-08-16T19:31:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T19:32:38Z shka_ quit (Ping timeout: 260 seconds) 2018-08-16T19:33:35Z doubledup quit (Quit: Leaving) 2018-08-16T19:36:10Z random-nick joined #lisp 2018-08-16T19:37:21Z fikka joined #lisp 2018-08-16T19:41:58Z fikka quit (Ping timeout: 260 seconds) 2018-08-16T19:43:10Z vlatkoB quit (Remote host closed the connection) 2018-08-16T19:47:22Z fikka joined #lisp 2018-08-16T19:52:41Z fikka quit (Ping timeout: 268 seconds) 2018-08-16T19:56:49Z kajo joined #lisp 2018-08-16T19:59:18Z pierpa joined #lisp 2018-08-16T20:02:15Z meepdeew joined #lisp 2018-08-16T20:02:32Z fikka joined #lisp 2018-08-16T20:08:52Z cmatei joined #lisp 2018-08-16T20:09:20Z fikka quit (Ping timeout: 268 seconds) 2018-08-16T20:14:02Z pjb joined #lisp 2018-08-16T20:18:20Z meepdeew quit (Remote host closed the connection) 2018-08-16T20:24:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-16T20:25:25Z fikka joined #lisp 2018-08-16T20:28:17Z AroPar joined #lisp 2018-08-16T20:28:32Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-16T20:30:03Z orivej joined #lisp 2018-08-16T20:30:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T20:32:30Z varjag quit (Ping timeout: 272 seconds) 2018-08-16T20:34:19Z varjag joined #lisp 2018-08-16T20:35:49Z fikka joined #lisp 2018-08-16T20:36:06Z AroPar quit (Quit: Leaving) 2018-08-16T20:36:32Z python476 quit (Ping timeout: 256 seconds) 2018-08-16T20:40:44Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T20:45:44Z fikka joined #lisp 2018-08-16T20:50:52Z fikka quit (Ping timeout: 272 seconds) 2018-08-16T20:51:36Z no-defun-allowed: Good morning everyone! 2018-08-16T20:55:28Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-16T20:56:05Z Ober: hi beach 2018-08-16T20:57:02Z nckx joined #lisp 2018-08-16T20:57:12Z orivej quit (Ping timeout: 272 seconds) 2018-08-16T20:58:58Z edgar-rft joined #lisp 2018-08-16T21:06:04Z fikka joined #lisp 2018-08-16T21:11:43Z kerrhau joined #lisp 2018-08-16T21:18:13Z angavrilov quit (Remote host closed the connection) 2018-08-16T21:21:08Z milanj quit (Quit: This computer has gone to sleep) 2018-08-16T21:30:59Z Jesin quit (Remote host closed the connection) 2018-08-16T21:32:33Z Bike quit (Ping timeout: 252 seconds) 2018-08-16T21:33:07Z Jesin joined #lisp 2018-08-16T21:36:40Z graphene quit (Remote host closed the connection) 2018-08-16T21:38:01Z graphene joined #lisp 2018-08-16T21:43:03Z JuanDaugherty quit (Quit: Exeunt) 2018-08-16T21:45:11Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-16T21:45:45Z sjl joined #lisp 2018-08-16T21:51:01Z housel joined #lisp 2018-08-16T21:53:54Z rumbler31 joined #lisp 2018-08-16T21:59:39Z graphene quit (Remote host closed the connection) 2018-08-16T22:00:57Z graphene joined #lisp 2018-08-16T22:02:20Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-16T22:05:58Z LiamH quit (Quit: Leaving.) 2018-08-16T22:22:55Z Denommus quit (Remote host closed the connection) 2018-08-16T22:25:39Z eddof13 joined #lisp 2018-08-16T22:26:01Z Bike joined #lisp 2018-08-16T22:27:47Z papachan quit (Quit: WeeChat 2.2) 2018-08-16T22:33:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-16T22:38:10Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-16T22:38:43Z sjl joined #lisp 2018-08-16T22:40:36Z python476 joined #lisp 2018-08-16T22:41:37Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-16T22:43:27Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-16T22:45:56Z random-nick quit (Read error: Connection reset by peer) 2018-08-16T22:47:16Z fikka joined #lisp 2018-08-16T22:51:27Z asarch quit (Quit: Leaving) 2018-08-16T22:51:58Z fikka quit (Ping timeout: 244 seconds) 2018-08-16T22:52:13Z rumbler31 quit (Remote host closed the connection) 2018-08-16T23:07:00Z robotoad quit (Quit: robotoad) 2018-08-16T23:07:21Z froggey quit (Ping timeout: 240 seconds) 2018-08-16T23:08:53Z mange joined #lisp 2018-08-16T23:13:22Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-16T23:14:44Z froggey joined #lisp 2018-08-16T23:17:19Z rumbler31 joined #lisp 2018-08-16T23:20:48Z robotoad joined #lisp 2018-08-16T23:21:58Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-16T23:24:40Z jack_rabbit joined #lisp 2018-08-16T23:30:33Z klltkr_: Morning no-defun-allowed 2018-08-16T23:34:25Z Ober: roswell is pretty useful 2018-08-16T23:40:33Z pierpa quit (Quit: Page closed) 2018-08-16T23:44:51Z anewuser joined #lisp 2018-08-17T00:10:35Z mange quit (Read error: Connection reset by peer) 2018-08-17T00:13:26Z pierpal joined #lisp 2018-08-17T00:18:28Z jinkies joined #lisp 2018-08-17T00:20:15Z fikka joined #lisp 2018-08-17T00:25:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T00:43:08Z rumbler31 joined #lisp 2018-08-17T00:48:08Z rumbler31 quit (Remote host closed the connection) 2018-08-17T00:49:34Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-17T00:52:06Z python476 quit (Ping timeout: 256 seconds) 2018-08-17T00:58:20Z Oddity quit (Read error: Connection reset by peer) 2018-08-17T01:02:26Z Kundry_Wag joined #lisp 2018-08-17T01:02:42Z stnutt quit (Ping timeout: 260 seconds) 2018-08-17T01:04:08Z stnutt joined #lisp 2018-08-17T01:08:35Z Oddity joined #lisp 2018-08-17T01:11:48Z charh quit (Ping timeout: 272 seconds) 2018-08-17T01:13:00Z charh joined #lisp 2018-08-17T01:14:49Z razzy quit (Read error: Connection reset by peer) 2018-08-17T01:14:54Z fikka joined #lisp 2018-08-17T01:15:05Z razzy joined #lisp 2018-08-17T01:19:52Z fikka quit (Ping timeout: 256 seconds) 2018-08-17T01:25:11Z jinkies quit (Ping timeout: 255 seconds) 2018-08-17T01:26:14Z Kaisyu joined #lisp 2018-08-17T01:26:53Z dale joined #lisp 2018-08-17T01:28:18Z emaczen quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-17T01:41:26Z Oladon joined #lisp 2018-08-17T01:49:47Z igemnace joined #lisp 2018-08-17T01:50:57Z acolarh quit (Ping timeout: 248 seconds) 2018-08-17T01:59:42Z Kundry_Wag quit (Remote host closed the connection) 2018-08-17T02:00:15Z Kundry_Wag joined #lisp 2018-08-17T02:05:09Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-17T02:06:52Z robotoad quit (Quit: robotoad) 2018-08-17T02:07:00Z Kundry_Wag joined #lisp 2018-08-17T02:09:15Z fikka joined #lisp 2018-08-17T02:11:58Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-17T02:13:56Z dale quit (Quit: dale) 2018-08-17T02:14:24Z fikka quit (Ping timeout: 268 seconds) 2018-08-17T02:17:56Z acolarh joined #lisp 2018-08-17T02:25:50Z robotoad joined #lisp 2018-08-17T02:40:38Z dddddd quit (Remote host closed the connection) 2018-08-17T03:00:31Z JuanDaugherty joined #lisp 2018-08-17T03:01:18Z arbv quit (Ping timeout: 256 seconds) 2018-08-17T03:07:46Z arbv joined #lisp 2018-08-17T03:15:42Z Kundry_Wag joined #lisp 2018-08-17T03:17:29Z Bike quit (Quit: Lost terminal) 2018-08-17T03:19:56Z meepdeew joined #lisp 2018-08-17T03:20:23Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-17T03:24:05Z meepdeew quit (Ping timeout: 240 seconds) 2018-08-17T03:25:08Z anewuser quit (Ping timeout: 260 seconds) 2018-08-17T03:28:59Z Oladon quit (Quit: Leaving.) 2018-08-17T03:29:09Z anewuser joined #lisp 2018-08-17T03:31:35Z amz31 quit (Ping timeout: 240 seconds) 2018-08-17T03:41:30Z emacsomancer joined #lisp 2018-08-17T03:43:48Z fikka joined #lisp 2018-08-17T03:48:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T03:52:05Z beach: Good morning everyone! 2018-08-17T04:05:06Z JuanDaugherty quit (Quit: Exeunt) 2018-08-17T04:14:52Z meepdeew joined #lisp 2018-08-17T04:16:22Z anewuser quit (Quit: anewuser) 2018-08-17T04:19:30Z meepdeew quit (Ping timeout: 256 seconds) 2018-08-17T04:19:57Z Fare quit (Ping timeout: 240 seconds) 2018-08-17T04:22:21Z housel quit (Read error: Connection reset by peer) 2018-08-17T04:22:48Z emaczen joined #lisp 2018-08-17T04:31:34Z beach: So I need an :AROUND method on SHARED-INITIALIZE but for a class that does not have a name in the global host environment. I could of course figure out how to build and add such a method programmatically. But it is probably easier to use (SETF FIND-CLASS) with a GENSYM, then do a DEFMETHOD, then use (SETF FIND-CLASS) again to remove the class from the global host environment. 2018-08-17T04:35:40Z Kundry_Wag joined #lisp 2018-08-17T04:38:24Z fikka joined #lisp 2018-08-17T04:40:12Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-17T04:40:28Z charh quit (Ping timeout: 256 seconds) 2018-08-17T04:42:41Z nanoz joined #lisp 2018-08-17T04:43:20Z fikka quit (Ping timeout: 272 seconds) 2018-08-17T04:45:33Z Fare joined #lisp 2018-08-17T04:45:45Z Kundry_Wag joined #lisp 2018-08-17T04:48:18Z nanoz quit (Read error: Connection reset by peer) 2018-08-17T04:50:01Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-17T04:58:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-17T04:59:15Z no-defun-allowed: morning beach 2018-08-17T05:06:05Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-17T05:13:24Z beach: no-defun-allowed: Hey, how is it going? 2018-08-17T05:17:56Z beach: So here is the plan for the metaobject initialization procedure: In the implementation of SICL CLOS, I have :AROUND methods on SHARED-INITIALIZE as suggested by the AMOP. But these methods trampoline to an ordinary function that does the real job, so the :AROUND method is trivial. 2018-08-17T05:17:58Z beach: At bootstrapping time, I use the host EVAL, passing it such a trivial DEFMETHOD form with a GENSYMed name of a class. The ordinary function is defined in the host global environment, thereby simplifying the bootstrapping procedure. 2018-08-17T05:19:42Z beach: I need the GENSYMed name of the class because I can't use the real name. After all, GENERIC-FUNCTION is one such name and I can't clobber the host initialization procedure. 2018-08-17T05:22:37Z captgector quit (Ping timeout: 272 seconds) 2018-08-17T05:23:48Z captgector joined #lisp 2018-08-17T05:23:59Z Fare joined #lisp 2018-08-17T05:27:06Z charh_ joined #lisp 2018-08-17T05:31:04Z asarch joined #lisp 2018-08-17T05:34:20Z Inline quit (Quit: Leaving) 2018-08-17T05:36:57Z captgector quit (Ping timeout: 240 seconds) 2018-08-17T05:39:25Z captgector joined #lisp 2018-08-17T05:42:55Z Tordek quit (Ping timeout: 256 seconds) 2018-08-17T05:44:56Z vert2 quit (Ping timeout: 256 seconds) 2018-08-17T05:47:12Z Copenhagen_Bram quit (Ping timeout: 256 seconds) 2018-08-17T05:50:05Z asarch quit (Ping timeout: 240 seconds) 2018-08-17T05:56:55Z Copenhagen_Bram joined #lisp 2018-08-17T06:04:02Z Kundry_Wag joined #lisp 2018-08-17T06:04:10Z housel joined #lisp 2018-08-17T06:06:54Z milanj joined #lisp 2018-08-17T06:08:11Z fikka joined #lisp 2018-08-17T06:09:01Z Kundry_Wag quit (Ping timeout: 265 seconds) 2018-08-17T06:12:04Z _whitelogger quit (Remote host closed the connection) 2018-08-17T06:14:17Z _whitelogger joined #lisp 2018-08-17T06:16:09Z Tordek joined #lisp 2018-08-17T06:16:29Z dented42 joined #lisp 2018-08-17T06:18:42Z milanj quit (Read error: Connection reset by peer) 2018-08-17T06:19:29Z milanj joined #lisp 2018-08-17T06:19:41Z graphene quit (Remote host closed the connection) 2018-08-17T06:21:09Z graphene joined #lisp 2018-08-17T06:21:52Z vlatkoB joined #lisp 2018-08-17T06:23:15Z mingus joined #lisp 2018-08-17T06:25:03Z pierpal quit (Quit: Poof) 2018-08-17T06:25:22Z pierpal joined #lisp 2018-08-17T06:31:02Z igemnace quit (Quit: WeeChat 2.2) 2018-08-17T06:35:41Z Kundry_Wag joined #lisp 2018-08-17T06:35:53Z cibs quit (Ping timeout: 260 seconds) 2018-08-17T06:40:38Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-17T06:54:15Z meepdeew joined #lisp 2018-08-17T06:58:50Z meepdeew quit (Ping timeout: 260 seconds) 2018-08-17T06:59:28Z python476 joined #lisp 2018-08-17T07:02:04Z sauvin joined #lisp 2018-08-17T07:03:36Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-17T07:05:48Z charh_ quit (Quit: leaving) 2018-08-17T07:07:42Z bigfondue quit (Ping timeout: 260 seconds) 2018-08-17T07:10:34Z charh joined #lisp 2018-08-17T07:13:28Z fikka quit (Ping timeout: 256 seconds) 2018-08-17T07:15:54Z fikka joined #lisp 2018-08-17T07:25:58Z varjag joined #lisp 2018-08-17T07:27:26Z bigfondue joined #lisp 2018-08-17T07:29:17Z charh quit (Ping timeout: 272 seconds) 2018-08-17T07:29:38Z Xof joined #lisp 2018-08-17T07:31:12Z fikka quit (Ping timeout: 260 seconds) 2018-08-17T07:35:03Z Kundry_Wag joined #lisp 2018-08-17T07:40:00Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-17T07:40:45Z fikka joined #lisp 2018-08-17T07:44:35Z pierpal quit (Read error: Connection reset by peer) 2018-08-17T07:44:39Z graphene quit (Remote host closed the connection) 2018-08-17T07:45:59Z graphene joined #lisp 2018-08-17T07:50:29Z milanj quit (Read error: Connection reset by peer) 2018-08-17T07:51:15Z milanj joined #lisp 2018-08-17T07:53:08Z kerrhau quit (Ping timeout: 256 seconds) 2018-08-17T08:02:12Z fikka quit (Ping timeout: 272 seconds) 2018-08-17T08:02:21Z pierpal joined #lisp 2018-08-17T08:10:19Z fikka joined #lisp 2018-08-17T08:12:52Z sariyar joined #lisp 2018-08-17T08:26:00Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-17T08:28:42Z night29415 joined #lisp 2018-08-17T08:31:09Z schweers joined #lisp 2018-08-17T08:35:37Z night29415 quit (Remote host closed the connection) 2018-08-17T08:35:39Z angavrilov joined #lisp 2018-08-17T08:47:35Z shka_ joined #lisp 2018-08-17T08:48:00Z heisig joined #lisp 2018-08-17T08:55:20Z nowhere_man joined #lisp 2018-08-17T08:57:35Z random-nick joined #lisp 2018-08-17T08:59:47Z nowhereman_ joined #lisp 2018-08-17T09:00:22Z orivej joined #lisp 2018-08-17T09:00:27Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-17T09:14:27Z Fare quit (Ping timeout: 240 seconds) 2018-08-17T09:24:41Z m00natic joined #lisp 2018-08-17T09:24:58Z MichaelRaskin quit (Quit: MichaelRaskin) 2018-08-17T09:25:30Z Fare joined #lisp 2018-08-17T09:31:04Z makomo joined #lisp 2018-08-17T09:40:17Z gigetoo quit (Ping timeout: 248 seconds) 2018-08-17T09:40:46Z Fare quit (Ping timeout: 260 seconds) 2018-08-17T09:43:13Z dmiles quit (Read error: Connection reset by peer) 2018-08-17T09:44:55Z igemnace joined #lisp 2018-08-17T09:45:13Z kajo quit (Remote host closed the connection) 2018-08-17T09:45:49Z milanj quit (Quit: This computer has gone to sleep) 2018-08-17T09:46:05Z kajo joined #lisp 2018-08-17T09:51:35Z kushal quit (Remote host closed the connection) 2018-08-17T09:53:21Z igemnace quit (Remote host closed the connection) 2018-08-17T09:53:54Z kushal joined #lisp 2018-08-17T09:53:54Z dmiles joined #lisp 2018-08-17T10:07:38Z Kundry_Wag joined #lisp 2018-08-17T10:11:36Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-17T10:12:25Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-17T10:12:26Z splittist: beach: why not MAKE-SYMBOL with "SICL-" appended to the real name? Or is all this so automated/general you don't need the debugging support? 2018-08-17T10:12:49Z edgar-rft quit (Remote host closed the connection) 2018-08-17T10:16:37Z pierpal quit (Quit: Poof) 2018-08-17T10:16:45Z splittist: (or is that what you meant, anyway) 2018-08-17T10:16:56Z pierpal joined #lisp 2018-08-17T10:18:24Z pierpal quit (Read error: Connection reset by peer) 2018-08-17T10:18:38Z pierpal joined #lisp 2018-08-17T10:21:35Z milanj joined #lisp 2018-08-17T10:23:37Z beach: Sure, I could do that in this case. 2018-08-17T10:23:55Z beach: Because it's just used to find a class, given a name. 2018-08-17T10:24:45Z beach: However, the class name is still correct (as returned by CLASS-NAME), i.e. CLASS or STANDARD-GENERIC-FUNCTION. 2018-08-17T10:25:02Z beach: And that's what shows up for debugging, so I am safe. 2018-08-17T10:26:30Z beach: The problem that is solved by my solution is that DEFMETHOD looks up the class using FIND-CLASS. 2018-08-17T10:32:30Z beach: Hmm, maybe that wasn't clear. There can be two distinct names associated with a class. One is the intrinsic name given to it when it is created (using MAKE-INSTANCE). There can be any number of classes in the system with the same name. This is the name returned by CLASS-NAME. 2018-08-17T10:32:31Z beach: Then there might be a name associated with the class in the global environment, possibly distinct from the previous one. That second name is what is used to find the class in the environment using FIND-CLASS. But there is no obligation for a class to have a name in the global environment. I take advantage of this fact by storing the class in a SICL first-class global environments instead. 2018-08-17T10:35:41Z graphene quit (Read error: Connection reset by peer) 2018-08-17T10:37:15Z graphene joined #lisp 2018-08-17T10:37:52Z orivej quit (Ping timeout: 260 seconds) 2018-08-17T10:43:46Z graphene quit (Remote host closed the connection) 2018-08-17T10:44:20Z nowhereman_ quit (Ping timeout: 272 seconds) 2018-08-17T10:45:08Z graphene joined #lisp 2018-08-17T10:45:41Z Kundry_Wag joined #lisp 2018-08-17T10:49:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-17T11:04:53Z graphene quit (Remote host closed the connection) 2018-08-17T11:06:15Z graphene joined #lisp 2018-08-17T11:06:31Z fikka quit (Ping timeout: 272 seconds) 2018-08-17T11:16:00Z pierpal quit (Remote host closed the connection) 2018-08-17T11:26:15Z graphene quit (Remote host closed the connection) 2018-08-17T11:27:40Z graphene joined #lisp 2018-08-17T11:34:21Z Kundry_Wag joined #lisp 2018-08-17T11:37:42Z graphene quit (Remote host closed the connection) 2018-08-17T11:39:07Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-17T11:39:10Z graphene joined #lisp 2018-08-17T11:43:14Z fikka joined #lisp 2018-08-17T11:44:21Z dddddd joined #lisp 2018-08-17T11:45:03Z charh joined #lisp 2018-08-17T11:47:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T11:55:03Z graphene quit (Remote host closed the connection) 2018-08-17T11:56:23Z graphene joined #lisp 2018-08-17T11:58:07Z fikka joined #lisp 2018-08-17T11:59:14Z nowhereman_ joined #lisp 2018-08-17T12:02:18Z gigetoo joined #lisp 2018-08-17T12:05:24Z random-nick quit (Ping timeout: 272 seconds) 2018-08-17T12:07:20Z no-defun-allowed: I might have a solution for solving netsplits with cl-decentralise. 2018-08-17T12:07:35Z graphene quit (Remote host closed the connection) 2018-08-17T12:08:47Z no-defun-allowed: If two objects have the same version ID, we can then compare them with a "most viable successor" comparison function which could do proof of work, deterministic randomness (ie comparing hashes) or some other stateless comparison between the two objects. 2018-08-17T12:08:56Z graphene joined #lisp 2018-08-17T12:11:40Z shka_: no-defun-allowed: if this boils down to hash, why not use hash as version ID? 2018-08-17T12:17:21Z no-defun-allowed: It might not be hashes though. 2018-08-17T12:18:13Z no-defun-allowed: You'd then have to make each successive hash smaller or larger than the last one, making this a CPU power game. 2018-08-17T12:18:40Z no-defun-allowed: For all I care, it's T if the new version is better and NIL if it's not. 2018-08-17T12:18:56Z random-nick joined #lisp 2018-08-17T12:19:33Z shka_: no-defun-allowed: well, you can simply approach this as git does 2018-08-17T12:19:50Z shka_: it is simple and proven approach 2018-08-17T12:20:50Z rumbler31 joined #lisp 2018-08-17T12:21:21Z NoNumber joined #lisp 2018-08-17T12:21:26Z no-defun-allowed: Git doesn't enforce a single definitive state over many nodes. 2018-08-17T12:22:11Z no-defun-allowed: From what I remember, Git is free for all in that regard. Any branch can be the canonical branch. 2018-08-17T12:25:20Z emaczen quit (Ping timeout: 255 seconds) 2018-08-17T12:26:28Z fikka quit (Ping timeout: 260 seconds) 2018-08-17T13:04:56Z random-nick quit (Ping timeout: 272 seconds) 2018-08-17T13:05:33Z edgar-rft joined #lisp 2018-08-17T13:05:56Z pjb quit (Ping timeout: 256 seconds) 2018-08-17T13:06:31Z rumbler31 quit (Remote host closed the connection) 2018-08-17T13:14:09Z LiamH joined #lisp 2018-08-17T13:14:56Z kolb: Looking at https://common-lisp.net/project/asdf/asdf.html#Controlling-where-ASDF-searches-for-systems is there a way to inhibit most/all of these heuristics? 2018-08-17T13:15:54Z kolb: Specifically I would like to stop it from querying the system wide configuration paths, i.e. /etc/common-lisp/source-registry.conf 2018-08-17T13:16:10Z Inline joined #lisp 2018-08-17T13:16:20Z Bike joined #lisp 2018-08-17T13:16:29Z kolb: > Each of these configurations is only used if the previous configuration explicitly or implicitly specifies that it includes its inherited configuration. 2018-08-17T13:25:30Z Guest5800_ joined #lisp 2018-08-17T13:28:08Z housel quit (Remote host closed the connection) 2018-08-17T13:30:50Z random-nick joined #lisp 2018-08-17T13:31:24Z kolb: Right, so it seems CL_SOURCE_REGISTRY="(:source-registry :ignore-inherited-configuration)" does what I want 2018-08-17T13:33:08Z SaganMan quit (Ping timeout: 256 seconds) 2018-08-17T13:34:42Z ft quit (Ping timeout: 272 seconds) 2018-08-17T13:37:02Z SaganMan joined #lisp 2018-08-17T13:42:25Z Denommus joined #lisp 2018-08-17T13:47:44Z fikka joined #lisp 2018-08-17T13:50:23Z ft joined #lisp 2018-08-17T13:52:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T13:52:07Z orivej joined #lisp 2018-08-17T13:52:12Z NoNumber quit (Remote host closed the connection) 2018-08-17T14:07:08Z rumbler31 joined #lisp 2018-08-17T14:08:11Z asarch joined #lisp 2018-08-17T14:10:24Z atgreen joined #lisp 2018-08-17T14:10:49Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-17T14:11:38Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-17T14:12:33Z wiselord joined #lisp 2018-08-17T14:25:48Z Xach: kolb: you can also frob asdf:*system-definition-search-functions* 2018-08-17T14:26:09Z dale_ joined #lisp 2018-08-17T14:26:27Z dale_ is now known as dale 2018-08-17T14:26:51Z xificurC quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2018-08-17T14:27:08Z razzy quit (Read error: Connection reset by peer) 2018-08-17T14:27:29Z razzy joined #lisp 2018-08-17T14:29:52Z FreeBirdLjj joined #lisp 2018-08-17T14:30:04Z random-nick quit (Read error: Connection reset by peer) 2018-08-17T14:32:10Z random-nick joined #lisp 2018-08-17T14:35:59Z JuanDaugherty joined #lisp 2018-08-17T14:50:15Z equwal joined #lisp 2018-08-17T14:54:31Z X-Scale quit (Ping timeout: 244 seconds) 2018-08-17T14:54:32Z python476 quit (Ping timeout: 260 seconds) 2018-08-17T14:54:35Z razzy quit (Ping timeout: 240 seconds) 2018-08-17T14:57:42Z heisig quit (Quit: Leaving) 2018-08-17T14:59:42Z graphene quit (Remote host closed the connection) 2018-08-17T14:59:47Z igemnace joined #lisp 2018-08-17T14:59:56Z igemnace quit (Client Quit) 2018-08-17T15:01:00Z graphene joined #lisp 2018-08-17T15:01:10Z Fare joined #lisp 2018-08-17T15:01:54Z housel joined #lisp 2018-08-17T15:04:15Z shka_ quit (Quit: Konversation terminated!) 2018-08-17T15:04:58Z razzy joined #lisp 2018-08-17T15:09:02Z eddof13 joined #lisp 2018-08-17T15:13:35Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-08-17T15:23:02Z rumbler31 joined #lisp 2018-08-17T15:27:00Z fikka joined #lisp 2018-08-17T15:28:57Z rumbler31 quit (Ping timeout: 260 seconds) 2018-08-17T15:29:35Z razzy quit (Remote host closed the connection) 2018-08-17T15:29:45Z kolb: Anyone feels like proof reading? Vendoring with Quicklisp, Make, Git, and Nix: http://mr.gy/blog/lisp-vendoring-quicklisp-nix.html 2018-08-17T15:30:23Z kolb: Xach: ^- might interest you (yep, still doing weird things with Quicklisp) 2018-08-17T15:30:26Z razzy joined #lisp 2018-08-17T15:32:42Z graphene quit (Remote host closed the connection) 2018-08-17T15:33:13Z razzy quit (Remote host closed the connection) 2018-08-17T15:33:30Z razzy joined #lisp 2018-08-17T15:33:58Z graphene joined #lisp 2018-08-17T15:34:35Z razzy quit (Read error: Connection reset by peer) 2018-08-17T15:35:26Z atgreen quit (Remote host closed the connection) 2018-08-17T15:36:00Z razzy joined #lisp 2018-08-17T15:36:18Z fikka quit (Ping timeout: 272 seconds) 2018-08-17T15:43:57Z igemnace joined #lisp 2018-08-17T15:44:50Z razzy quit (Remote host closed the connection) 2018-08-17T15:45:27Z m00natic quit (Ping timeout: 240 seconds) 2018-08-17T15:51:11Z dim: kolb: did you have a look at Guix yet? same idea as nix, written in scheme Guile! 2018-08-17T15:53:49Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-17T15:54:01Z dkmueller joined #lisp 2018-08-17T15:54:41Z graphene quit (Remote host closed the connection) 2018-08-17T15:56:01Z graphene joined #lisp 2018-08-17T15:58:12Z kolb: dim: superficially, I don’t think they provide a standalone cross-platform package manager though? 2018-08-17T15:58:58Z kolb: I got into Nix through work stuff and got convinced enough that I manage my dev boxes using it. Neat stuff! 2018-08-17T15:59:44Z kolb: Oh guix also offers its package manager standalone! 2018-08-17T16:01:02Z shka_ joined #lisp 2018-08-17T16:03:33Z dkmueller quit (Quit: Lost terminal) 2018-08-17T16:06:39Z night29415 joined #lisp 2018-08-17T16:12:58Z dim: yeah and you can even program a VM environment and boot it from your guile programs, etc, the demo we had at the ELS this year was very good 2018-08-17T16:18:27Z equwal quit (Ping timeout: 240 seconds) 2018-08-17T16:19:55Z razzy joined #lisp 2018-08-17T16:20:28Z razzy quit (Read error: Connection reset by peer) 2018-08-17T16:26:38Z nowhereman_ joined #lisp 2018-08-17T16:28:06Z JuanDaugherty quit (Quit: Exeunt) 2018-08-17T16:29:38Z zxcvz_ quit (Quit: zxcvz_) 2018-08-17T16:31:50Z razzy joined #lisp 2018-08-17T16:46:03Z vlatkoB quit (Remote host closed the connection) 2018-08-17T16:47:21Z vlatkoB joined #lisp 2018-08-17T16:54:27Z razzy quit (Read error: Connection reset by peer) 2018-08-17T16:54:35Z X-Scale joined #lisp 2018-08-17T16:54:55Z razzy joined #lisp 2018-08-17T16:57:39Z schweers quit (Ping timeout: 265 seconds) 2018-08-17T16:59:24Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-17T17:00:41Z graphene quit (Remote host closed the connection) 2018-08-17T17:02:06Z graphene joined #lisp 2018-08-17T17:04:36Z eddof13 joined #lisp 2018-08-17T17:06:02Z pjb joined #lisp 2018-08-17T17:06:33Z fikka joined #lisp 2018-08-17T17:11:43Z fikka quit (Ping timeout: 260 seconds) 2018-08-17T17:24:53Z rumbler31 joined #lisp 2018-08-17T17:26:45Z sjl joined #lisp 2018-08-17T17:29:32Z rumbler31 quit (Ping timeout: 268 seconds) 2018-08-17T17:31:38Z underlifE joined #lisp 2018-08-17T17:34:57Z rozenglass joined #lisp 2018-08-17T17:38:10Z ramus quit (Ping timeout: 260 seconds) 2018-08-17T17:38:26Z ramus joined #lisp 2018-08-17T17:40:52Z makomo: Eternal Flames aka God Wrote in Lisp: https://www.gnu.org/fun/jokes/eternal-flame.html 2018-08-17T17:40:57Z makomo: and the song: http://www.prometheus-music.com/audio/eternalflame.mp3 2018-08-17T17:41:10Z makomo: erm, https://www.gnu.org/fun/jokes/eternal-flame.ogg *** 2018-08-17T17:41:12Z makomo: enjoy :-) 2018-08-17T17:44:06Z varjagg joined #lisp 2018-08-17T17:47:13Z vlatkoB quit (Remote host closed the connection) 2018-08-17T17:49:05Z vlatkoB joined #lisp 2018-08-17T18:05:46Z Fare quit (Ping timeout: 272 seconds) 2018-08-17T18:07:13Z Fare joined #lisp 2018-08-17T18:13:37Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-17T18:20:16Z milanj quit (Quit: This computer has gone to sleep) 2018-08-17T18:20:43Z FreeBirdLjj joined #lisp 2018-08-17T18:23:46Z python476 joined #lisp 2018-08-17T18:26:23Z Combinatorialist joined #lisp 2018-08-17T18:28:19Z sauvin quit (Remote host closed the connection) 2018-08-17T18:29:14Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-17T18:35:56Z python476 quit (Remote host closed the connection) 2018-08-17T18:37:13Z zigpaw: what a lovely song :) 2018-08-17T18:42:33Z fikka joined #lisp 2018-08-17T18:46:01Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-17T18:47:25Z kajo joined #lisp 2018-08-17T18:47:58Z fikka quit (Ping timeout: 260 seconds) 2018-08-17T18:50:51Z night29415 quit (Read error: Connection reset by peer) 2018-08-17T18:50:55Z josemanuel joined #lisp 2018-08-17T18:53:30Z doubledup joined #lisp 2018-08-17T18:59:46Z fikka joined #lisp 2018-08-17T18:59:48Z milanj joined #lisp 2018-08-17T19:04:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T19:04:11Z random-nick quit (Read error: Connection reset by peer) 2018-08-17T19:15:48Z rumbler31 joined #lisp 2018-08-17T19:16:37Z zooey quit (Remote host closed the connection) 2018-08-17T19:17:24Z zooey joined #lisp 2018-08-17T19:17:25Z rumbler31 quit (Remote host closed the connection) 2018-08-17T19:17:47Z ravndal quit (Quit: WeeChat 2.2) 2018-08-17T19:18:07Z rumbler31 joined #lisp 2018-08-17T19:18:42Z earl-ducaine quit (Read error: Connection reset by peer) 2018-08-17T19:19:01Z Combinatorialist: Is LISP any faster than Scheme? 2018-08-17T19:19:07Z fikka joined #lisp 2018-08-17T19:19:30Z ravndal joined #lisp 2018-08-17T19:21:23Z otwieracz: Yes, exactly three point one times faster. 2018-08-17T19:21:46Z isBEKaml joined #lisp 2018-08-17T19:23:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-17T19:23:40Z rumbler31 quit (Ping timeout: 272 seconds) 2018-08-17T19:23:43Z pierpal joined #lisp 2018-08-17T19:24:06Z edgar-rft: Lisp can be spelled faster than Scheme because it has less letters. 2018-08-17T19:25:22Z otwieracz: And the spelling itself seems faster. 2018-08-17T19:25:39Z otwieracz: „s” is usually longer. 2018-08-17T19:25:51Z pjb: And furthermore, lisp has a short i, while in scheme, the first vowel is a long one (and there are two syllables). 2018-08-17T19:26:11Z vlatkoB quit (Remote host closed the connection) 2018-08-17T19:26:23Z otwieracz: So yeah, at least three times faster. 2018-08-17T19:26:29Z chipolux quit (Quit: chipolux) 2018-08-17T19:26:47Z chipolux joined #lisp 2018-08-17T19:26:53Z pjb: Not counting that in #lisp, lisp is spelled cl, which is even faster. 2018-08-17T19:29:14Z ym: Are there any impressive examples of automatic code synthesis with any sort of non-deterministic facility like screamer? I want to be impressed. 2018-08-17T19:32:44Z Jesin quit (Remote host closed the connection) 2018-08-17T19:33:31Z edgar-rft: Assuming Lisp is faster then Scheme, in what way is then Scheme looser than Lisp? 2018-08-17T19:34:26Z lel quit (Ping timeout: 272 seconds) 2018-08-17T19:37:22Z random-nick joined #lisp 2018-08-17T19:38:52Z lel joined #lisp 2018-08-17T19:39:41Z makomo: ym: probably not what you're looking for (although i might be wrong) but chris kohlhepp has an interesting blogpost or two on screamer 2018-08-17T19:40:02Z nowhereman_ joined #lisp 2018-08-17T19:40:43Z makomo: ym: https://chriskohlhepp.wordpress.com/, none of them have "screamer" in the title but look under the "Reasoning System Articles" category 2018-08-17T19:47:51Z aeth: Combinatorialist: The problem with very fast Schemes is that nobody uses them because Scheme is too small to write meaningful portable libraries in, so the ecosystems in Scheme are associated with individual implementations. That might change, though, because Chez Scheme was open sourced, so other implementations can incorporate its backend. I think Chez is a JIT, though, so it behaves differently from the fast CLs, which are AOT compiled. 2018-08-17T19:49:32Z aeth: Notice, though, that nothing makes Scheme the language inherently faster/slower or Common Lisp the language inherently faster/slower here. Performance is all about implementations. 2018-08-17T19:51:16Z kerrhau joined #lisp 2018-08-17T19:51:31Z ym: makomo, thanks, but nah, I'm more interested in automatic problem solving (constraint/relational programming), curious why systems with language specification (like OpenGL and ANSI Lisp for example) still can't be automatically coupled with some sort of automatic solving magic. 2018-08-17T19:52:22Z aeth: Combinatorialist: Since this is the Common Lisp channel, I can tell you that in general SBCL is the fastest CL implementation, followed by CCL. (CCL is faster in some areas, such as compilation time.) You can ask in #scheme for Scheme recommendations. 2018-08-17T19:52:49Z aeth: (Since anyone can optimize their implementation, this information may become out of date.) 2018-08-17T19:53:11Z makomo: ym: i thought that constraint programming was exactly what chris did in one of the blogposts. i think he even mentioned that term 2018-08-17T19:54:23Z graphene quit (Remote host closed the connection) 2018-08-17T19:55:49Z graphene joined #lisp 2018-08-17T19:58:29Z gpiero joined #lisp 2018-08-17T19:58:40Z Kundry_Wag joined #lisp 2018-08-17T19:58:41Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-17T19:58:55Z gpiero is now known as gpiero_ 2018-08-17T19:58:57Z NB0X-Matt-CA quit (Ping timeout: 248 seconds) 2018-08-17T19:59:31Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-17T19:59:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-17T20:00:08Z FreeBirdLjj joined #lisp 2018-08-17T20:00:18Z ym: makomo, yes, it is even screamer mentioned in context of project Euler contest. But implementation of constraint programming still rarely goes further than academic researches or stuff for fun. Robots, 3D-printing and such things are cool, but I don't get why such powerful facility as automatic problem solving not used to solve actual problems of programming ecosystem itself. 2018-08-17T20:00:59Z makomo: oh i see, so those techniques applied to programming itself? hm interesting 2018-08-17T20:01:30Z ym: They can be applied very easily to formalized systems. 2018-08-17T20:02:50Z Bike: wouldn't the halting problem and so on make it largely impossible? 2018-08-17T20:03:53Z Achylles joined #lisp 2018-08-17T20:04:07Z aeth: Isn't the general issue with these kinds of paradigms very unpredictable performance? 2018-08-17T20:04:56Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-08-17T20:07:47Z ym: How do you see halting problem in solving a task of coupling to finite systems? 2018-08-17T20:08:51Z ym: aeth, performance of resulting code or searching? 2018-08-17T20:09:02Z Bike: i thought you meant infinite systems like opengl or lisp 2018-08-17T20:10:10Z pjb: As O(.), the halting problem is a problem only in the most general form. But if you restrict the input, then the halting problem is not a problem anymore. 2018-08-17T20:10:58Z random-nick: hm, is there any CL implementation which does tracing JIT? 2018-08-17T20:11:56Z pjb: For example, if you follow NASA programming practices, where each loop is bounded: (while (and (plusp (decf max-loop-count)) (foop x)) …), then the halting problem become trivial to solve. 2018-08-17T20:12:15Z pjb: random-nick: clisp has a JITC option. I don't know if it's a tracking JIT. 2018-08-17T20:12:55Z ym: Bike, can't get what you mean. The language of both are consists of finite terms. What do you mean by infinite systems? 2018-08-17T20:13:23Z Bike: they describe infinite state machines. 2018-08-17T20:13:30Z ym: And? 2018-08-17T20:13:45Z Bike: it's possible i don't understand what you want. 2018-08-17T20:14:47Z pierpa joined #lisp 2018-08-17T20:15:46Z underlifE left #lisp 2018-08-17T20:16:14Z ym: Infinite possible states of systems generated by finite languages doesn't mean you can't automatically synthesize bindings from one language to another. There is autowrap, for example. 2018-08-17T20:16:16Z random-nick: hm, it seems that the SSL certificates for www.lisp.org and for planet.lisp.org have expired 2018-08-17T20:16:24Z random-nick: s/planet/paste/ 2018-08-17T20:16:32Z random-nick: planet.lisp.org is fine 2018-08-17T20:16:41Z Bike: i definitely misunderstood. 2018-08-17T20:16:49Z Bike: how would you use constraint programming to generate bindings? 2018-08-17T20:20:31Z ym: I'll take specifications of CL, CADR, OpenGL, stuff all these things to fooKanren and bush "do it" button. 2018-08-17T20:21:25Z Bike: so step one is formal specs of all of those? 2018-08-17T20:22:29Z ym: Convert specs to solver language, yep. Then, second step is to formalize the target. 2018-08-17T20:22:33Z meepdeew joined #lisp 2018-08-17T20:24:49Z Bike: a formal spec of any of those would be a daunting project. probably useful, but daunting 2018-08-17T20:25:44Z meepdeew: What's the best way to find what academic research is currently going on in the lisp-world? Searching publications? Would it usually be going on under the umbrella of `programming languages'? 2018-08-17T20:26:26Z aeth: https://european-lisp-symposium.org/ 2018-08-17T20:27:08Z ym: Perspective of writing code by hands to death is far more daunting for me. 2018-08-17T20:27:34Z shka_ quit (Ping timeout: 260 seconds) 2018-08-17T20:28:18Z doubledup quit (Remote host closed the connection) 2018-08-17T20:28:25Z aeth: ym: I'm guessing the generation would take a long time, not the programs themselves, so if you could actually get it to work, you could keep using the programs (assuming you don't need to make changes to the programs later on) 2018-08-17T20:30:37Z meepdeew: Interesting, thanks aeth. I'll dig around. Do you know if that's the biggest conference/event of the sort or whether there's anything less euro-centric? 2018-08-17T20:30:53Z Bike: it's not that eurocentric. 2018-08-17T20:31:00Z Bike: take it from me, an american who's attended twice 2018-08-17T20:31:04Z aeth: meepdeew: ELS is the biggest conference/event in #lisp 2018-08-17T20:31:19Z Bike: the other one is the uh... international....lisp... something 2018-08-17T20:32:23Z meepdeew: Gotcha. Neat 2018-08-17T20:39:28Z mason: ILC 2018-08-17T20:39:34Z aeth: The United States definitely is losing its strategic Lisp advantage to the Europeans in recent years, though. 2018-08-17T20:39:45Z mason: Didn't the ALU fall apart? 2018-08-17T20:42:45Z earl-ducaine joined #lisp 2018-08-17T20:44:50Z stnutt quit (Ping timeout: 260 seconds) 2018-08-17T20:46:19Z stnutt joined #lisp 2018-08-17T20:52:24Z Achylles quit (Quit: Leaving) 2018-08-17T20:54:37Z isBEKaml quit (Quit: leaving) 2018-08-17T20:55:36Z Bike quit (Ping timeout: 252 seconds) 2018-08-17T21:02:31Z angavrilov quit (Remote host closed the connection) 2018-08-17T21:15:45Z Shinmera: I've started indexing various projects' documentation into Colleen so that it can be linked to like the clhs. If you have/know a project that you think would benefit being in there, let me know. You can see the currently indexed libraries here https://github.com/Shirakumo/maiden/blob/master/agents/lookup/archives.lisp 2018-08-17T21:16:36Z Shinmera: For instance, 2018-08-17T21:16:47Z Shinmera: Colleen: look up bordeaux-threads make-thread 2018-08-17T21:16:47Z Colleen: Function make-thread make-thread https://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation#make-threadfunctionkeyname 2018-08-17T21:18:19Z fikka joined #lisp 2018-08-17T21:19:32Z josemanuel quit (Quit: leaving) 2018-08-17T21:25:04Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-17T21:29:21Z aeth: Colleen: look up cl-opengl compile-shader 2018-08-17T21:29:29Z kajo joined #lisp 2018-08-17T21:29:33Z Colleen: Unknown archive "cl-opengl". 2018-08-17T21:29:52Z aeth: no cl-opengl? 2018-08-17T21:30:21Z Shinmera: I don't think it has docs anyway 2018-08-17T21:31:00Z aeth: I wonder if it has a section for documentation in its defglfun/etc. macros. e.g. https://github.com/3b/cl-opengl/blob/de7377e4a428e805cf64e16901a20cf3ca2f677b/gl/funcs-gl-gles2.lisp 2018-08-17T21:31:21Z Shinmera: Well you should read the GL docs for those anyway 2018-08-17T21:31:31Z aeth: Would be nice if someone automatically translated the official GL documentation if the license works. 2018-08-17T21:31:41Z Shinmera: I think baggers might have done that 2018-08-17T21:31:56Z Shinmera: for some CEPL stuff 2018-08-17T21:32:14Z cgay: Colleen: look up pango-markup letter-spacing 2018-08-17T21:32:14Z Colleen: "letter-spacing" not found in PANGO-MARKUP. 2018-08-17T21:32:17Z aeth: Personally, I tend to use http://docs.gl/ and translate it in my head to CL 2018-08-17T21:33:04Z Shinmera: Hmm, why is it not finding that, hold on 2018-08-17T21:34:06Z Shinmera: Colleen: look up pango-markup letter-spacing 2018-08-17T21:34:06Z Colleen: Generic-function pango-markup:letter-spacing https://shinmera.github.io/pango-markup#GENERIC-FUNCTION%20PANGO-MARKUP%3ALETTER-SPACING 2018-08-17T21:34:13Z Shinmera: There we go, had outdated definitions 2018-08-17T21:37:29Z cgay: great to have something like that. 2018-08-17T21:37:49Z cgay: Now index the doc for everything in quicklisp? :) 2018-08-17T21:38:12Z Shinmera: Can't do that since a lot of projects don't have documentation, or need very manual dissecting of it to get the info out 2018-08-17T21:38:17Z LiamH quit (Quit: Leaving.) 2018-08-17T21:38:35Z Shinmera: Or rather, I'm not gonna invest the time to fix people's crappy docs. 2018-08-17T21:38:42Z cgay: yeah. need standards, i guess. 2018-08-17T21:38:52Z Bike joined #lisp 2018-08-17T21:39:33Z asarch_ joined #lisp 2018-08-17T21:39:50Z asarch quit (Ping timeout: 272 seconds) 2018-08-17T21:41:49Z cgay: it's a start. if it becomes useful to people maybe they'll be motivated to write some of their own docs. 2018-08-17T21:41:58Z Shinmera: Probably not 2018-08-17T21:45:17Z Denommus quit (Remote host closed the connection) 2018-08-17T21:49:57Z Fare: UIOP now has a manual! Yay! 2018-08-17T21:50:23Z aeth: Fare: great! 2018-08-17T21:50:28Z Shinmera: Speaking of manuals, I'd definitely like to add that to my index 2018-08-17T21:50:40Z aeth: Fare: Did you catch any bugs when you were documenting things? 2018-08-17T21:51:09Z Fare: I didn't... the "manual" was automatically produced by extracting docstrings :-/ 2018-08-17T21:52:01Z lacedaemon is now known as fe[nl]ix 2018-08-17T21:52:40Z Fare: The main thing is that there are few features that aren't exercised by ASDF (there is a strong presumption against implementing things not used by ASDF, except for API completeness purposes at times), so if ASDF still manages to build Quicklisp, it's a good sign. 2018-08-17T21:53:14Z Fare: "Our 68 file test suite is only the unit tests; then Quicklisp is our integration test." 2018-08-17T21:53:41Z Fare: fe[nl]ix, do you change name from lacedaemon when you feel like speaking? 2018-08-17T21:54:34Z fe[nl]ix quit (Read error: Connection reset by peer) 2018-08-17T21:54:35Z Fare: aeth, but I *did* find bugs in ASDF while explaining its self-upgrade issues. 2018-08-17T21:54:40Z Fare: (and fixed them) 2018-08-17T21:54:49Z Blkt joined #lisp 2018-08-17T21:54:55Z fe[nl]ix joined #lisp 2018-08-17T21:54:55Z ChanServ has set mode +o fe[nl]ix 2018-08-17T21:58:06Z orivej joined #lisp 2018-08-17T21:59:04Z random-nick quit (Read error: Connection reset by peer) 2018-08-17T22:01:26Z acolarh quit (Ping timeout: 256 seconds) 2018-08-17T22:02:53Z random-nick joined #lisp 2018-08-17T22:03:07Z pierpal quit (Ping timeout: 265 seconds) 2018-08-17T22:08:05Z graphene quit (Remote host closed the connection) 2018-08-17T22:09:26Z graphene joined #lisp 2018-08-17T22:11:45Z graphene quit (Remote host closed the connection) 2018-08-17T22:13:08Z graphene joined #lisp 2018-08-17T22:13:13Z graphene quit (Remote host closed the connection) 2018-08-17T22:14:33Z graphene joined #lisp 2018-08-17T22:15:27Z random-nick quit (Read error: Connection reset by peer) 2018-08-17T22:19:45Z fe[nl]ix: Fare: no, the backup nickname is just an artifact of server disconnects 2018-08-17T22:20:02Z fe[nl]ix: Fare: what's up ? 2018-08-17T22:20:58Z asarch_ quit (Quit: Leaving) 2018-08-17T22:22:14Z dale quit (Quit: dale) 2018-08-17T22:24:23Z fe[nl]ix quit (Remote host closed the connection) 2018-08-17T22:24:24Z Blkt quit (Read error: Connection reset by peer) 2018-08-17T22:24:40Z Blkt joined #lisp 2018-08-17T22:24:41Z fe[nl]ix joined #lisp 2018-08-17T22:24:41Z ChanServ has set mode +o fe[nl]ix 2018-08-17T22:34:18Z varjagg quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-17T22:49:01Z jqpl joined #lisp 2018-08-17T22:58:08Z graphene quit (Remote host closed the connection) 2018-08-17T22:59:34Z graphene joined #lisp 2018-08-17T23:00:05Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-17T23:07:44Z robotoad quit (Quit: robotoad) 2018-08-17T23:14:59Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-17T23:16:48Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-17T23:35:06Z fikka quit (Ping timeout: 272 seconds) 2018-08-17T23:41:07Z light2yellow quit (Quit: enough) 2018-08-17T23:44:05Z Oladon joined #lisp 2018-08-17T23:46:41Z jself quit (Ping timeout: 244 seconds) 2018-08-18T00:01:49Z pierpa quit (Quit: Page closed) 2018-08-18T00:09:40Z Kundry_Wag joined #lisp 2018-08-18T00:10:26Z pierpal joined #lisp 2018-08-18T00:14:22Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-18T00:26:24Z sjl quit (Ping timeout: 272 seconds) 2018-08-18T00:41:52Z acolarh joined #lisp 2018-08-18T00:50:20Z Kundry_Wag joined #lisp 2018-08-18T00:58:30Z Fare: fe[nl]ix, I'm back in Cambridge. 2018-08-18T01:10:38Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-18T01:12:33Z fikka joined #lisp 2018-08-18T01:12:34Z atgreen_ joined #lisp 2018-08-18T01:14:02Z jqpl quit (Quit: .) 2018-08-18T01:15:04Z atgreen_ quit (Quit: Leaving) 2018-08-18T01:15:31Z atgreen joined #lisp 2018-08-18T01:17:35Z fikka quit (Ping timeout: 268 seconds) 2018-08-18T01:30:01Z slyrus1 quit (Ping timeout: 244 seconds) 2018-08-18T01:32:13Z fikka joined #lisp 2018-08-18T01:32:23Z atgreen quit (Remote host closed the connection) 2018-08-18T01:32:44Z atgreen joined #lisp 2018-08-18T01:37:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-18T01:37:19Z milanj quit (Quit: This computer has gone to sleep) 2018-08-18T01:43:10Z mason: Fare: Which one? 2018-08-18T01:52:08Z fikka joined #lisp 2018-08-18T01:53:48Z makomo quit (Ping timeout: 272 seconds) 2018-08-18T01:56:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-18T01:59:22Z kozy quit (Quit: No Ping reply in 180 seconds.) 2018-08-18T02:00:30Z kozy joined #lisp 2018-08-18T02:02:02Z buffergn0me joined #lisp 2018-08-18T02:11:49Z fikka joined #lisp 2018-08-18T02:17:15Z fikka quit (Ping timeout: 272 seconds) 2018-08-18T02:18:07Z robotoad joined #lisp 2018-08-18T02:28:32Z Kundry_Wag joined #lisp 2018-08-18T02:30:07Z fikka joined #lisp 2018-08-18T02:34:36Z fikka quit (Ping timeout: 244 seconds) 2018-08-18T02:41:07Z dale joined #lisp 2018-08-18T02:50:05Z fikka joined #lisp 2018-08-18T02:55:01Z fikka quit (Ping timeout: 268 seconds) 2018-08-18T03:12:03Z ym quit (Quit: Leaving) 2018-08-18T03:15:10Z rozenglass joined #lisp 2018-08-18T03:19:39Z igemnace quit (Quit: WeeChat 2.2) 2018-08-18T03:30:02Z jkordani quit (Read error: Connection reset by peer) 2018-08-18T03:34:34Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-18T03:36:57Z Bike quit (Quit: Lost terminal) 2018-08-18T03:38:18Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-18T03:38:40Z robotoad quit (Ping timeout: 244 seconds) 2018-08-18T03:40:00Z robotoad joined #lisp 2018-08-18T03:45:27Z Kundry_Wag joined #lisp 2018-08-18T03:48:03Z Kundry_Wag quit (Read error: No route to host) 2018-08-18T03:48:56Z Kundry_Wag joined #lisp 2018-08-18T03:53:36Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-18T03:58:19Z asarch joined #lisp 2018-08-18T04:00:47Z Arcaelyx joined #lisp 2018-08-18T04:09:38Z troydm quit (Ping timeout: 256 seconds) 2018-08-18T04:13:35Z acolarh quit (Ping timeout: 240 seconds) 2018-08-18T04:14:09Z Fare: Mason, the one that was founded ~3hr away walking upstream and around from Boston. Today, the subway crosses the bridge in 2 minutes. 2018-08-18T04:22:35Z Kundry_Wag joined #lisp 2018-08-18T04:36:50Z troydm joined #lisp 2018-08-18T04:38:26Z meepdeew quit (Remote host closed the connection) 2018-08-18T04:45:37Z quazimod2 joined #lisp 2018-08-18T04:45:40Z quazimod2 quit (Remote host closed the connection) 2018-08-18T04:45:40Z quazimodo quit (Remote host closed the connection) 2018-08-18T04:49:27Z quazimodo joined #lisp 2018-08-18T04:55:13Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-18T05:00:28Z Kundry_Wag joined #lisp 2018-08-18T05:02:22Z dented42 joined #lisp 2018-08-18T05:05:45Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-18T05:07:49Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-18T05:08:50Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-18T05:10:27Z quazimodo joined #lisp 2018-08-18T05:16:22Z dddddd quit (Remote host closed the connection) 2018-08-18T05:21:02Z captgector quit (Read error: Connection reset by peer) 2018-08-18T05:21:32Z captgector joined #lisp 2018-08-18T05:28:33Z milanj joined #lisp 2018-08-18T05:33:05Z Fare quit (Ping timeout: 240 seconds) 2018-08-18T05:40:05Z orivej quit (Ping timeout: 244 seconds) 2018-08-18T05:48:22Z vlatkoB joined #lisp 2018-08-18T05:50:40Z rumbler31 joined #lisp 2018-08-18T05:51:34Z dale quit (Quit: dale) 2018-08-18T05:53:05Z buffergn0me joined #lisp 2018-08-18T05:55:35Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-18T06:00:49Z froggey quit (Ping timeout: 272 seconds) 2018-08-18T06:02:16Z froggey joined #lisp 2018-08-18T06:02:25Z graphene quit (Remote host closed the connection) 2018-08-18T06:03:54Z graphene joined #lisp 2018-08-18T06:04:53Z charh quit (Ping timeout: 244 seconds) 2018-08-18T06:05:57Z Kundry_Wag joined #lisp 2018-08-18T06:10:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-18T06:20:03Z mooshmoosh joined #lisp 2018-08-18T06:35:58Z asarch quit (Quit: Leaving) 2018-08-18T06:37:23Z beach: Good morning everyone! 2018-08-18T06:45:17Z no-defun-allowed: hi beach 2018-08-18T06:46:00Z beach: Hey no-defun-allowed. What are you working on today? 2018-08-18T06:46:20Z no-defun-allowed: what? i'm working on things? 2018-08-18T06:46:23Z no-defun-allowed: it's saturday 2018-08-18T06:46:38Z no-defun-allowed: i can't work on things, there's a giant midi keyboard on my desk 2018-08-18T06:46:49Z beach: Ah, I no longer pay attention to the day of the week. Sorry. 2018-08-18T06:47:02Z no-defun-allowed: it's alright, i'm in upsidedownland 2018-08-18T06:52:26Z Kundry_Wag joined #lisp 2018-08-18T06:52:30Z steiner joined #lisp 2018-08-18T07:04:34Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-18T07:06:53Z zfree joined #lisp 2018-08-18T07:11:50Z steiner quit (Remote host closed the connection) 2018-08-18T07:12:14Z steiner joined #lisp 2018-08-18T07:13:28Z mooshmoosh quit (Ping timeout: 260 seconds) 2018-08-18T07:15:06Z mooshmoosh joined #lisp 2018-08-18T07:25:07Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-18T07:52:07Z rumbler31 joined #lisp 2018-08-18T07:52:23Z sauvin joined #lisp 2018-08-18T07:54:41Z robotoad quit (Quit: robotoad) 2018-08-18T07:55:40Z zxcvz joined #lisp 2018-08-18T07:57:31Z rumbler31 quit (Ping timeout: 244 seconds) 2018-08-18T07:58:10Z FreeBirdLjj joined #lisp 2018-08-18T07:59:13Z mkolenda quit (Remote host closed the connection) 2018-08-18T08:00:06Z mkolenda joined #lisp 2018-08-18T08:03:42Z frgo joined #lisp 2018-08-18T08:08:16Z shka_ joined #lisp 2018-08-18T08:09:35Z acolarh joined #lisp 2018-08-18T08:20:37Z robotoad joined #lisp 2018-08-18T08:41:52Z edgar-rft quit (Remote host closed the connection) 2018-08-18T08:52:49Z igemnace joined #lisp 2018-08-18T09:12:22Z nowhereman_ joined #lisp 2018-08-18T09:17:05Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-18T09:19:41Z pierpal quit (Read error: Connection reset by peer) 2018-08-18T09:20:01Z pierpal joined #lisp 2018-08-18T09:21:04Z makomo joined #lisp 2018-08-18T09:21:23Z housel quit (Remote host closed the connection) 2018-08-18T09:22:01Z Kundry_Wag joined #lisp 2018-08-18T09:25:05Z zfree quit (Ping timeout: 240 seconds) 2018-08-18T09:30:54Z rozenglass joined #lisp 2018-08-18T09:33:57Z makomo quit (Ping timeout: 240 seconds) 2018-08-18T09:40:35Z mingus quit (Remote host closed the connection) 2018-08-18T09:55:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-18T09:55:58Z random-nick joined #lisp 2018-08-18T09:56:54Z SaganMan: Morning beach 2018-08-18T09:57:10Z SaganMan: beach: It's weekend 2018-08-18T09:58:22Z igemnace quit (Quit: WeeChat 2.2) 2018-08-18T10:01:19Z beach: So I hear. 2018-08-18T10:01:43Z p_l: beach: 'morning 2018-08-18T10:01:52Z beach: Hey p_l. 2018-08-18T10:03:07Z mingus joined #lisp 2018-08-18T10:06:37Z robotoad quit (Quit: robotoad) 2018-08-18T10:12:12Z pierpal quit (Quit: Poof) 2018-08-18T10:12:21Z Kundry_Wag joined #lisp 2018-08-18T10:12:33Z pierpal joined #lisp 2018-08-18T10:17:01Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-18T10:17:28Z FreeBirdLjj quit 2018-08-18T10:21:18Z FreeBirdLjj joined #lisp 2018-08-18T10:42:24Z cage_ joined #lisp 2018-08-18T10:43:55Z light2yellow joined #lisp 2018-08-18T10:49:59Z Oladon quit (Quit: Leaving.) 2018-08-18T10:52:57Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-18T10:58:23Z Arcaelyx quit (Ping timeout: 265 seconds) 2018-08-18T11:00:08Z JuanDaugherty joined #lisp 2018-08-18T11:00:35Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-08-18T11:25:42Z Oddity quit (Ping timeout: 272 seconds) 2018-08-18T11:31:49Z Oddity joined #lisp 2018-08-18T11:36:48Z steiner quit (Remote host closed the connection) 2018-08-18T11:41:32Z Kundry_Wag joined #lisp 2018-08-18T11:41:50Z sarkic joined #lisp 2018-08-18T11:44:51Z steiner joined #lisp 2018-08-18T11:45:56Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-18T11:49:54Z Fare joined #lisp 2018-08-18T11:52:56Z Kundry_Wag joined #lisp 2018-08-18T11:55:18Z sarkic quit (Remote host closed the connection) 2018-08-18T12:21:11Z dddddd joined #lisp 2018-08-18T12:23:09Z Arcaelyx joined #lisp 2018-08-18T12:25:26Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-18T12:26:16Z ym joined #lisp 2018-08-18T12:30:10Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-18T12:32:35Z igemnace joined #lisp 2018-08-18T12:35:17Z FreeBirdLjj joined #lisp 2018-08-18T12:40:01Z rocx joined #lisp 2018-08-18T12:40:08Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-08-18T12:44:20Z FreeBirdLjj joined #lisp 2018-08-18T12:51:13Z Fare quit (Ping timeout: 272 seconds) 2018-08-18T12:52:06Z Fare joined #lisp 2018-08-18T13:00:35Z JuanDaugherty quit (Ping timeout: 240 seconds) 2018-08-18T13:01:47Z random-nick quit (Read error: Connection reset by peer) 2018-08-18T13:03:41Z random-nick joined #lisp 2018-08-18T13:16:25Z kolb quit (Quit: ZNC 1.6.3+deb1ubuntu0.1 - http://znc.in) 2018-08-18T13:28:41Z atgreen_ joined #lisp 2018-08-18T13:30:18Z atgreen quit (Ping timeout: 260 seconds) 2018-08-18T13:35:29Z pioneer42 joined #lisp 2018-08-18T13:36:06Z mkolenda quit (Remote host closed the connection) 2018-08-18T13:36:24Z mkolenda joined #lisp 2018-08-18T13:45:52Z sarkic joined #lisp 2018-08-18T13:49:00Z random-nick quit (Read error: Connection reset by peer) 2018-08-18T13:52:10Z random-nick joined #lisp 2018-08-18T13:56:13Z Kundry_Wag joined #lisp 2018-08-18T13:57:42Z Fare quit (Ping timeout: 272 seconds) 2018-08-18T13:59:26Z orivej joined #lisp 2018-08-18T14:01:01Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-18T14:03:20Z sarkic quit (Remote host closed the connection) 2018-08-18T14:04:19Z JuanDaugherty joined #lisp 2018-08-18T14:05:23Z ramus quit (Ping timeout: 244 seconds) 2018-08-18T14:10:44Z steiner quit (Remote host closed the connection) 2018-08-18T14:11:09Z steiner joined #lisp 2018-08-18T14:13:11Z JuanDaugherty quit (Quit: Exeunt) 2018-08-18T14:15:16Z charh joined #lisp 2018-08-18T14:15:50Z graphene quit (Read error: Connection reset by peer) 2018-08-18T14:17:13Z graphene joined #lisp 2018-08-18T14:17:57Z Inline quit (Remote host closed the connection) 2018-08-18T14:19:18Z orivej quit (Ping timeout: 260 seconds) 2018-08-18T14:20:38Z edgar-rft joined #lisp 2018-08-18T14:20:58Z housel joined #lisp 2018-08-18T14:22:47Z Kundry_Wag joined #lisp 2018-08-18T14:27:10Z Fare joined #lisp 2018-08-18T14:31:47Z zfree joined #lisp 2018-08-18T14:32:18Z Inline joined #lisp 2018-08-18T14:36:34Z thekolb joined #lisp 2018-08-18T14:41:38Z varjagg joined #lisp 2018-08-18T14:42:28Z milanj quit (Quit: This computer has gone to sleep) 2018-08-18T14:55:12Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-18T14:58:07Z pierpal quit (Quit: Poof) 2018-08-18T14:58:27Z pierpal joined #lisp 2018-08-18T14:59:10Z quazimodo quit (Ping timeout: 256 seconds) 2018-08-18T15:02:47Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-18T15:09:42Z graphene quit (Remote host closed the connection) 2018-08-18T15:11:02Z graphene joined #lisp 2018-08-18T15:23:09Z pioneer42 left #lisp 2018-08-18T15:30:02Z ramus joined #lisp 2018-08-18T15:34:13Z Kundry_Wag joined #lisp 2018-08-18T15:36:10Z dented42 joined #lisp 2018-08-18T15:39:31Z zfree quit (Quit: zfree) 2018-08-18T15:41:00Z Kundry_Wag quit (Remote host closed the connection) 2018-08-18T15:42:12Z Fare quit (Ping timeout: 272 seconds) 2018-08-18T15:43:12Z FreeBirdLjj joined #lisp 2018-08-18T15:45:13Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-18T15:45:30Z FreeBirdLjj joined #lisp 2018-08-18T15:52:21Z asarch joined #lisp 2018-08-18T15:52:43Z asarch: Is there any way to short a^2?: (defun theorem (a b) (sqrt (+ (* a a) (* b b)))) 2018-08-18T15:54:58Z ebrasca quit (Remote host closed the connection) 2018-08-18T15:55:57Z random-nick quit (Read error: Connection reset by peer) 2018-08-18T15:57:24Z Shinmera: how much shorter do you want it to be? Even if you define a function that's only one character long you save a mere two characters in that example 2018-08-18T15:57:37Z Shinmera: well, per square anyway. 2018-08-18T15:59:06Z pierpal quit (Read error: Connection reset by peer) 2018-08-18T16:00:37Z stylewarning: asarch: (expt a 2) is the alternative 2018-08-18T16:01:02Z Shinmera: Or: (flet ((s (x) (* x x))) (+ (s a) (s b))) 2018-08-18T16:01:16Z Shinmera: But again, doesn't really save much and certainly doesn't improve readability 2018-08-18T16:03:39Z Fare joined #lisp 2018-08-18T16:07:22Z zfree joined #lisp 2018-08-18T16:10:04Z housel quit (Ping timeout: 272 seconds) 2018-08-18T16:18:25Z housel joined #lisp 2018-08-18T16:18:43Z Jachy joined #lisp 2018-08-18T16:18:44Z Jachy: asarch: You could always load an infix lib, e.g. https://github.com/rigetticomputing/cmu-infix 2018-08-18T16:20:03Z kushal quit (Ping timeout: 250 seconds) 2018-08-18T16:20:20Z Jachy: That would save what, 1 character from the example? 2018-08-18T16:20:39Z random-nick joined #lisp 2018-08-18T16:27:03Z pjb quit (Ping timeout: 265 seconds) 2018-08-18T16:27:23Z kushal joined #lisp 2018-08-18T16:36:29Z pjb joined #lisp 2018-08-18T16:41:17Z zfree quit (Quit: zfree) 2018-08-18T16:42:29Z pjb: asarch: (defun ² (x) (* x x)) (defun √ (x) (sqrt x)) (defun theorem (a b) (√ (+ (² a) (² b)))) 2018-08-18T16:43:07Z bars0 joined #lisp 2018-08-18T16:46:48Z igemnace quit (Read error: Connection reset by peer) 2018-08-18T16:47:44Z igemnace joined #lisp 2018-08-18T16:50:52Z equwal joined #lisp 2018-08-18T16:51:41Z equwal quit (Remote host closed the connection) 2018-08-18T16:54:01Z Jesin joined #lisp 2018-08-18T16:54:38Z Jesin quit (Remote host closed the connection) 2018-08-18T16:55:38Z X-Scale quit (Ping timeout: 260 seconds) 2018-08-18T16:58:02Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-18T16:59:44Z Jesin joined #lisp 2018-08-18T17:03:42Z LdBeth: RPN would be good in this case 2018-08-18T17:04:59Z pjb: Nope. lisp operators don't have arity. 2018-08-18T17:05:33Z rocx: makes it nice not having to make a `sum` function when you can just do (aply #'+ '(1 2 3)). 2018-08-18T17:05:40Z rocx: *apply 2018-08-18T17:05:54Z pjb: rocx: nothing, define it, put it in a nice library of such functions. 2018-08-18T17:06:09Z pjb: And don't use apply like this on random lists, use reduce. 2018-08-18T17:06:32Z pjb: (defun Σ (list) (reduce (function +) list)) 2018-08-18T17:07:01Z rocx: ah now i see the difference. 2018-08-18T17:07:10Z rocx: subtle but useful. 2018-08-18T17:08:22Z LdBeth: Just view #'+ as if it has implied reduce 2018-08-18T17:09:27Z pjb: No, it does not. 2018-08-18T17:09:45Z pjb: It is limited to call-arguments-limit which can be as low as 50. 2018-08-18T17:10:53Z LdBeth: But these arithmetic operators are natural binary 2018-08-18T17:12:24Z pjb: LdBeth: about RPN, just try to implement a macro (rpn c a ² b ² + √ +) -> (+ c (√ (+ (² a) (² b)))) 2018-08-18T17:12:53Z pjb: LdBeth: also, there would be a problem with side effects and left-to-right evaluation rule of lisp… 2018-08-18T17:15:47Z FreeBirdLjj joined #lisp 2018-08-18T17:16:47Z asarch takes notes... 2018-08-18T17:17:53Z LdBeth: It should be evaluated when passed to #'RPN 2018-08-18T17:18:22Z asarch: What does "arity" mean? 2018-08-18T17:19:17Z LdBeth: asarch (IRC): number of function args 2018-08-18T17:19:34Z asarch: I thought RPN was equal to S-Exp 2018-08-18T17:20:16Z asarch: You mean, variadic function? https://en.wikipedia.org/wiki/Variadic_function 2018-08-18T17:20:44Z LdBeth: (RPN c a #'^2 b #'^2 #'+ #'sqrt #'+) 2018-08-18T17:22:50Z LdBeth: asarch: it’s easy from sexp to RPN, but hard from RPN to sexp without prior knowledge about which are operator 2018-08-18T17:25:27Z LdBeth: So suppose RPN is a macro accepts only predefined + - * % and ** sqrt 2018-08-18T17:26:23Z LdBeth: Which I hope would cover most case. 2018-08-18T17:26:53Z Khisanth quit (Ping timeout: 244 seconds) 2018-08-18T17:28:03Z asarch: Wow! 2018-08-18T17:33:52Z zfree joined #lisp 2018-08-18T17:35:31Z pjb: asarch: arity = number of parameters. But in lisp, arithmetic operators take any number of arguments from 0 to call-arguments-limit, and in general, a macro cannot know how many mandatory argument are required for a given operator (function or macro), notably because it may be macroexpanded before the operator is defined! 2018-08-18T17:35:34Z slyrus1 joined #lisp 2018-08-18T17:35:57Z pjb: This is why we kept using lists: so that macros (and code walkers) could be implemented easily. 2018-08-18T17:38:46Z ebrasca joined #lisp 2018-08-18T17:39:39Z aeth: You could do a reverse s-expression, though. (((1 1 +) 2 *) 3 /) 2018-08-18T17:39:56Z Khisanth joined #lisp 2018-08-18T17:41:19Z LdBeth: What exactly kinds of data structures can be parsed from both start and end? 2018-08-18T17:41:52Z pjb: full bracketed structures. 2018-08-18T17:42:06Z aeth: The macro for an RPN-style s-expression would just do something like: `(,(car (last foo)) ,@(butlast foo)) 2018-08-18T17:42:19Z aeth: Except on every element 2018-08-18T17:42:22Z slyrus1 quit (Ping timeout: 256 seconds) 2018-08-18T17:42:47Z aeth: e.g. (let ((foo '(1 2 3 +))) `(,(car (last foo)) ,@(butlast foo))) 2018-08-18T17:43:55Z pjb: (defun rreverse (sexp) (if (atom sexp) sexp (mapcar (function rreverse) (reverse sexp)))) (rreverse '(+ c (√ (+ (² a) (² b))))) #| --> ((((b ²) (a ²) +) √) c +) |# 2018-08-18T17:44:07Z buffergn0me joined #lisp 2018-08-18T17:44:08Z pjb: (rreverse (rreverse '(+ c (√ (+ (² a) (² b)))))) #| --> (+ c (√ (+ (² a) (² b)))) |# 2018-08-18T17:44:10Z aeth: You don't want true RPN outside of a calculator imo so this is a better way of doing it. And it's not hard to apply to every element. Just every ,@(every #'my-transformation (butlast foo)) 2018-08-18T17:44:49Z aeth: (And have a case for atoms where it does nothing) 2018-08-18T17:45:18Z aeth: Or mapcar 2018-08-18T17:45:37Z aeth: Sorry, every is just for side effects 2018-08-18T17:45:52Z zfree quit (Quit: zfree) 2018-08-18T17:46:30Z LdBeth: Kick out side effects 2018-08-18T17:46:55Z aeth: CL's confusing because it has nicer named things that have no difference (like first) and nicer named things that are different 2018-08-18T17:47:07Z aeth: Always test in the REPL 2018-08-18T17:49:26Z aeth: (defun r-expression-to-s-expression (r) (typecase r (cons `(,(car (last r)) ,@(mapcar #'r-expression-to-s-expression (butlast r)))) (t r))) ; put this in a macro and add a special case for dotted lists if you want to support them in r-expressions 2018-08-18T17:49:59Z aeth: e.g. (r-expression-to-s-expression `(1 (2 3 *) 3 +)) => '(+ 1 (* 2 3) 3) 2018-08-18T17:50:33Z aeth: Much easier than going to/from infix. 2018-08-18T17:50:45Z ebrasca quit (Remote host closed the connection) 2018-08-18T17:50:47Z aeth: (Or real RPN) 2018-08-18T17:51:39Z pjb: Of course, you can implement a rpn language, but you will have to explicitely define all your rpn operators. You cannot just call random lisp functions. 2018-08-18T17:52:20Z pjb: (define-rpn-operator + 2 +) (define-rpn-operator - 2 -) (define-rpn-operator neg 1 -) etc… 2018-08-18T17:52:32Z pjb: Notice how rpn distinguishes - from neg. 2018-08-18T17:55:32Z rumbler31 joined #lisp 2018-08-18T17:58:07Z graphene quit (Remote host closed the connection) 2018-08-18T17:59:31Z graphene joined #lisp 2018-08-18T18:02:17Z rumbler31 quit (Remote host closed the connection) 2018-08-18T18:05:35Z aeth: pjb: Just one clarification. I don't think r-expressions would reverse everything, just put the first item last in an evaluated list (which means I need to add a special case for QUOTE (and FUNCTION), which I didn't do). If they're like RPN the only difference is that the operator is at the end, e.g. in my RPN calculator 4 2 / => 2 2018-08-18T18:06:18Z X-Scale joined #lisp 2018-08-18T18:07:04Z X-Scale quit (Excess Flood) 2018-08-18T18:07:25Z aeth: So going to an r-expression would be a bit trickier. Naively, this: (let ((foo '(+ 1 2 3))) (append (cdr foo) (list (car foo)))) 2018-08-18T18:07:29Z nullniverse joined #lisp 2018-08-18T18:07:44Z nanoz joined #lisp 2018-08-18T18:08:35Z nowhereman_ joined #lisp 2018-08-18T18:09:03Z X-Scale joined #lisp 2018-08-18T18:11:28Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-18T18:13:59Z housel quit (Remote host closed the connection) 2018-08-18T18:14:39Z pjb: aeth: well this means you have to delay the evaluation of variables. Usually in RPN, variables are evaluated and their value is stacked. If you want to use the quote operator after, unless you look ahead, you would have to let allt the operators evaluate the variables. I'd say this would set a bad precedent. 2018-08-18T18:14:53Z pjb: How would you distinguish between (symbol-name 'foo) and (symbol-name foo)? 2018-08-18T18:15:05Z pjb: Now quote needs to wrap the values! 2018-08-18T18:15:11Z pjb: It's silly. 2018-08-18T18:18:06Z LdBeth: (RPN 1 (+ 4 3) #'add) then 2018-08-18T18:18:12Z aeth: pjb: The main problem is that ((1 2 3) quote) becomes '(3 1 2) and another problem is that people are used to ' and #' as syntax, but they can't just write '(1 2 3) in r-expressions without a custom reader and writer. 2018-08-18T18:18:57Z aeth: You can do that, but you're still going to have to deal with QUOTE as a special case to avoid the '(3 1 2) problem 2018-08-18T18:19:01Z pjb: Sure, rreverse may be a little too brutal. You would have to code walk. 2018-08-18T18:19:08Z robotoad joined #lisp 2018-08-18T18:19:44Z pjb: But the point is that RPN is a new syntax, you have to parse it, and you cannot just convert a kind of rpn sexp into a sexp. It's antithetical to the S-exprs and lisp. 2018-08-18T18:19:55Z aeth: yes 2018-08-18T18:20:24Z pjb: And the Texas Instrument patent on parentheses in calculators is over since a long time. 2018-08-18T18:20:48Z aeth: Polish notation would have the same problem. * + 1 1 2 when you can just (* (+ 1 1) 2) 2018-08-18T18:20:59Z pjb: Absolutely. For the same reasons. 2018-08-18T18:21:08Z pjb: Only, quote would be easier :-) 2018-08-18T18:22:01Z aeth: RPN is a write-only language. A very useful one, but definitely write-only. That's why it's mainly used in calculators and programs like dc. And people accuse Perl of being write-only! 2018-08-18T18:22:48Z stylewarning: I disagree 2018-08-18T18:22:57Z stylewarning: Factor (a Lisp like language) is quite readable 2018-08-18T18:23:19Z stylewarning: Functions (known as “words”) are orders of magnitude shorter than their Lisp equivalents 2018-08-18T18:24:15Z lnostdal quit (Quit: https://www.Quanto.ga/) 2018-08-18T18:25:06Z LdBeth: Nested brackets on arithmetic look crappy 2018-08-18T18:26:13Z aeth: I use nested brackets even with my infix arithmetic. Never trust your knowledge of precedence to always work. And never trust the reader to understand all of those rules, too. And this example would need it in infix, anyway. (1 + 1) * 2 2018-08-18T18:26:49Z aeth: infix just removes the top level. 2018-08-18T18:27:09Z stylewarning: Mathematicians seem to get along just fine 2018-08-18T18:27:35Z pjb: C has 27 precedence levels. C++ even more. Smalltalk is quite unintuitive too. Infix is bullshit. 2018-08-18T18:27:35Z stylewarning: Brackets can also blur cases where you actually don’t care about order, as with associative operators 2018-08-18T18:27:52Z pjb: Hence (+ 1 2 3 4) 2018-08-18T18:28:00Z pjb: associative operators in lisp are n-ary. 2018-08-18T18:28:11Z aeth: Mathematics is two dimensional. It's a lot easier to express something clearly on paper or generated from LaTeX than it is to express it in one line of ASCII that pretends to be mathematics. 2018-08-18T18:28:19Z stylewarning: So are non associative operators, like #’/ 2018-08-18T18:28:22Z LdBeth: APL has infix without introduce precedence but implicit right to left order 2018-08-18T18:28:56Z LdBeth: So 5*3+2 is 25 2018-08-18T18:29:26Z pjb: and in smalltalk, 2+3*5 too. 2018-08-18T18:29:30Z graphene quit (Remote host closed the connection) 2018-08-18T18:29:41Z stylewarning: A reminder that there exists CMU-INFIX for Lisp https://github.com/rigetticomputing/cmu-infix 2018-08-18T18:29:44Z lnostdal joined #lisp 2018-08-18T18:30:00Z aeth: I'll wait for sb-infix. 2018-08-18T18:30:02Z robotoad quit (Quit: robotoad) 2018-08-18T18:30:07Z pjb: So when you're fed up with all this bullshit, you just write (+ 2 (* 3 5)) or (* 5 (+ 2 3)) and go on with your life. 2018-08-18T18:30:29Z stylewarning: aeth: haha 2018-08-18T18:30:47Z graphene joined #lisp 2018-08-18T18:30:50Z aeth: "CMU"? Really? The "SB" brand name is much stronger. 2018-08-18T18:31:32Z stylewarning: It was written by a chap at CMU. It has nothing to do with CMUCL. 2018-08-18T18:31:44Z aeth: If I met someone with a degree from "CMU" I'd say "When did you get that? 20 years ago? Should've gone to Steel Bank instead." 2018-08-18T18:32:39Z shka_: aeth: carnegie mellon uni 2018-08-18T18:32:59Z stylewarning: (: 2018-08-18T18:33:08Z aeth: shka_: Yeah, but it's not like it's one of the top computer science universities in the United States. 2018-08-18T18:33:47Z nowhereman_ quit (Ping timeout: 276 seconds) 2018-08-18T18:33:53Z shka_: i am not very familiar with top list of CS unis in USA 2018-08-18T18:34:14Z shka_: but CMU is well known in the lisp land 2018-08-18T18:34:25Z aeth: I think traditionally, MIT, CMU, Berkeley, and one other are considered "tied". Can't think of the last one at the moment. 2018-08-18T18:34:27Z shka_: kinda like Berkeley in unix land 2018-08-18T18:34:48Z shka_: right 2018-08-18T18:34:57Z shka_: those come to my mind as top tier 2018-08-18T18:35:26Z nanoz quit (Ping timeout: 268 seconds) 2018-08-18T18:35:34Z milanj joined #lisp 2018-08-18T18:36:09Z aeth: Oh, Stanford 2018-08-18T18:36:16Z aeth: e.g. https://www.usnews.com/best-graduate-schools/top-science-schools/computer-science-rankings 2018-08-18T18:36:53Z LdBeth: And Cornell 2018-08-18T18:37:02Z stacksmith joined #lisp 2018-08-18T18:38:16Z stacksmith: Good morning 2018-08-18T18:38:16Z Fare quit (Ping timeout: 272 seconds) 2018-08-18T18:38:31Z LdBeth: Morning 2018-08-18T18:38:34Z Demosthenex: wonder if anything happened with mcclim and charms (curses) 2018-08-18T18:41:49Z nalik89 joined #lisp 2018-08-18T18:42:02Z LdBeth: Continue figuring out how to fit a cons into 8 bits long word memory... 2018-08-18T18:42:22Z cage_ quit (Remote host closed the connection) 2018-08-18T18:42:33Z nullniverse quit (Read error: Connection reset by peer) 2018-08-18T18:42:39Z cage_ joined #lisp 2018-08-18T18:43:06Z stylewarning: Speaking of CL-CHARMS, I haven’t been a very good maintainer. 2018-08-18T18:43:37Z stylewarning: LdBeth: 4-bit pointers? 2018-08-18T18:43:58Z Oddity quit (Ping timeout: 272 seconds) 2018-08-18T18:44:55Z dale joined #lisp 2018-08-18T18:48:07Z LdBeth: So it’s untyped. 2018-08-18T18:49:14Z shka_: LdBeth: is it even possible? 2018-08-18T18:50:59Z buffergn0me quit (Ping timeout: 255 seconds) 2018-08-18T18:51:00Z stylewarning: LdBeth: it depends on your runtime 2018-08-18T18:51:04Z Oddity joined #lisp 2018-08-18T18:51:45Z stylewarning: LdBeth: if all pointers are 8 bits, then it’s a useless system anyway 2018-08-18T18:53:35Z araujo quit (Quit: Leaving) 2018-08-18T18:55:18Z aeth: This was just on HN, about the history of T, and one of the early points a few paragraphs in is that the move to 32-bit changed everything in how you represent your data. http://www.paulgraham.com/thist.html 2018-08-18T18:55:40Z aeth: If that's true, you'd have to look at very old solutions. Those were 16-bit, though. 2018-08-18T18:56:55Z LdBeth: The memory limit is 64k 2018-08-18T18:57:36Z LdBeth: Almost toy program 2018-08-18T18:58:16Z meepdeew joined #lisp 2018-08-18T18:58:48Z LdBeth: L seems interesting, but not much info I can find 2018-08-18T18:59:05Z aeth: The IBM PC (1981-1987) had 16-256 kB RAM according to Wikipedia 2018-08-18T18:59:29Z aeth: I'm not sure how anyone used computers before 1990. 2018-08-18T18:59:55Z LdBeth: Me neither 2018-08-18T19:01:33Z pjb: aeth: there was no 50 MB Firefox to run. 2018-08-18T19:02:41Z pjb: Spreadsheets, word processors, IDE including editors, compilers and debuggers all ran in 64 KB (actually usually much less, since some memory space was taken by devices or video memory). 2018-08-18T19:04:10Z pjb: Notice that the 7090 on which LISP 1.5 ran had only 32 KW of memory, so just a tad over twice that memory. (32 KW @ 36-bit = 144 KB). 2018-08-18T19:04:31Z aeth: pjb: but I want unboxed single-floats and large unboxed fixnums, so I wouldn't want to time travel to before 2003 or so. And this is 64-bit vs. 32-bit. 16-bit sounds like a nightmare. 2018-08-18T19:04:43Z nowhereman_ joined #lisp 2018-08-18T19:05:07Z aeth: (A Lisp system needs at least 36 bits or so.) 2018-08-18T19:05:26Z pjb: aeth: at the time, 64-bit DES was sufficient! 2018-08-18T19:05:44Z Kundry_Wag joined #lisp 2018-08-18T19:05:56Z pjb: If not just a 16-bit CRC… 2018-08-18T19:06:17Z aeth: Well, if you had expensive hardware you could probably get by in the past after 1985 or so. 2018-08-18T19:07:45Z LdBeth: I would just spend another few dollars for float point unit 2018-08-18T19:07:51Z pjb: But really, in 1975, you'd be happy with a 6502 and 1 KB of SRAM, and writing programs directly in hexadecimal… 2018-08-18T19:08:29Z pjb: The alternative was access to mainframes, which means, writing fortran or cobol on paper and waiting a day or two to know if you had compilation errors. 2018-08-18T19:08:53Z sauvin quit (Remote host closed the connection) 2018-08-18T19:10:13Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-18T19:10:31Z LdBeth: Well it’s 8102 now many can access a desktop computer for verifying. 2018-08-18T19:11:16Z aeth: pjb: In 1975 I wouldn't know what I was missing and I'd happily program in a high level language like Fortran. 2018-08-18T19:11:17Z LdBeth: And before goes bare metal one can run on an emulator for easier debugging 2018-08-18T19:15:36Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-18T19:17:20Z Jesin quit (Remote host closed the connection) 2018-08-18T19:17:37Z itruslove quit (Remote host closed the connection) 2018-08-18T19:19:07Z robotoad joined #lisp 2018-08-18T19:26:41Z housel joined #lisp 2018-08-18T19:36:46Z Fare joined #lisp 2018-08-18T19:44:13Z aeth: I wonder when Lisp became an acceptable Fortran. Or at least, close enough that with modern hardware we don't care. 2018-08-18T19:45:00Z p_l: aeth: 1970s or so? Then dropped for a time, but mostly because of other issues 2018-08-18T19:45:01Z aeth: When did people start doing non-symbolic numerical computations in Lisp? 2018-08-18T19:45:17Z p_l: Today people are surprised with how fast CL is 2018-08-18T19:45:35Z p_l: And some financial corps never really gave up lisp 2018-08-18T19:45:42Z Demosthenex: trip planners... 2018-08-18T19:45:58Z p_l: Though Jane Street switched, afaik, from Scheme to Ocaml pretty fast? 2018-08-18T19:46:20Z rocx: p_l: grammarly is the first major lisp user that comes to mind. 2018-08-18T19:47:07Z p_l: Used to be that ITA was the bóg name, ehh 2018-08-18T19:47:59Z p_l: AMEX was using Symbolics Common Lisp as dev platform and Allegro CL as late as around 2000 2018-08-18T19:49:09Z p_l: Raytheon was using CL Ain numeric heavy code in late 1990s and XXI century 2018-08-18T19:49:15Z aeth: Yeah, but big companies are always a decade behind in tech so that doesn't surprise me. 2018-08-18T19:49:27Z aeth: A nonzero number were probably using Windows 2000 in 2010. 2018-08-18T19:50:50Z p_l: Raytheon was using it for bleeding edge 2018-08-18T19:50:58Z p_l: So was ITA 2018-08-18T19:51:09Z aeth: AMEX was probably still following the 1990 trends. 2018-08-18T19:51:20Z Demosthenex: healthcare still uses MUMPS everywhere 2018-08-18T19:52:09Z p_l: They had a system built earlier with lisp and were supporting it 2018-08-18T19:52:18Z p_l: Like several Lisp systems at NASA 2018-08-18T19:52:23Z aeth: Demosthenex: This isn't a channel for horror that keeps people up at night. 2018-08-18T19:52:31Z Demosthenex: aeth: heh ;] 2018-08-18T19:52:32Z p_l: And finance world uses MUMPS as well 2018-08-18T19:52:36Z Demosthenex: just comparing historic notes 2018-08-18T19:53:10Z p_l: I know for a fact that Credit Suisse uses MUMPS as database as late as 2017 2018-08-18T19:53:20Z Demosthenex: funny, i teach my son lisp, and we compare it to python. i show him how he can edit "blocks" of code with emacs, and they snap together, but python you have to hand write and move everything. he says lisp is easier and makes more sense 2018-08-18T19:53:43Z rocx: Demosthenex: common lisp or scheme? 2018-08-18T19:54:00Z rocx: ...oh right duh forgot which channel i'm in. 2018-08-18T19:54:12Z Demosthenex: rocx: CL. using emacs and slime 2018-08-18T19:54:15Z aeth: Demosthenex: Yes, but you can teach a child Emacs. 2018-08-18T19:54:25Z p_l: Demosthenex: Python has the (general) advantage of providing what once commercial compilers arrived with - a complete teaching manual 2018-08-18T19:54:27Z rocx: and give them carpal tunnel at the age of 10? 2018-08-18T19:54:35Z Demosthenex: we've been working on a text mode game, and he was interested in the A* and dijkstra's pathing algos 2018-08-18T19:54:36Z rocx: i'll leave that job to their video games. 2018-08-18T19:54:44Z p_l: rocx: not if you use the modifiers right 2018-08-18T19:55:12Z aeth: Demosthenex: I probably already showed this to you, but have you seen this? https://borodust.org/projects/trivial-gamekit/ 2018-08-18T19:55:13Z rocx: my keyboard isn't where i can palm the control key. 2018-08-18T19:55:29Z Demosthenex: aeth: yep, i saw that one 2018-08-18T19:55:42Z Demosthenex: we're just doing a text game as a demo, interactive fiction style, like zork or a mud 2018-08-18T19:55:43Z cage_ quit (Quit: Leaving) 2018-08-18T19:55:45Z p_l: Unfortunately, the emacs manual doesn't explain how the original approach worked, so people do whatever... And it often leads to pain 2018-08-18T19:56:36Z Demosthenex: atm in my pet project, i'm outgrowing views to allow me to query json data in postgres. so i may have to remap and parse the json and use postmodern to maintain several other tables. fun stuff 2018-08-18T19:57:27Z Demosthenex: it's pretty sweet that postgres can read raw json in a column, and you can use views to create a "virtual" table from that... but the operations are slow, especially with numbers. 2018-08-18T19:57:38Z Demosthenex: you have to convert to numeric every call on every row 2018-08-18T19:57:44Z frgo quit (Remote host closed the connection) 2018-08-18T19:57:45Z troydm quit (Ping timeout: 244 seconds) 2018-08-18T19:58:06Z Demosthenex: postmodern includes the new upsert syntax, and i've already hacked it to do dynamic table creation with column dedup, so why not just spam into real tables ;] 2018-08-18T19:58:34Z Demosthenex: can't find a good reason to use the DAO though 2018-08-18T19:59:19Z bars0 quit (Quit: leaving) 2018-08-18T20:00:01Z Demosthenex: was nice to make a POC using 100 lines of CL with a rest api and postmodern though 2018-08-18T20:02:27Z lumm joined #lisp 2018-08-18T20:02:44Z vlatkoB quit (Remote host closed the connection) 2018-08-18T20:02:46Z rumbler31 joined #lisp 2018-08-18T20:08:12Z rumbler31 quit (Ping timeout: 272 seconds) 2018-08-18T20:11:35Z nalik891 joined #lisp 2018-08-18T20:13:58Z nalik89 quit (Ping timeout: 260 seconds) 2018-08-18T20:20:47Z slyrus1 joined #lisp 2018-08-18T20:25:18Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-18T20:25:18Z asarch quit (Ping timeout: 272 seconds) 2018-08-18T20:25:40Z [X-Scale] joined #lisp 2018-08-18T20:25:57Z [X-Scale] is now known as X-Scale 2018-08-18T20:29:44Z nowhereman_ quit (Ping timeout: 272 seconds) 2018-08-18T20:30:10Z itruslove joined #lisp 2018-08-18T20:34:09Z lumm quit (Quit: lumm) 2018-08-18T20:34:43Z lumm joined #lisp 2018-08-18T20:35:15Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-18T20:35:19Z aindilis quit (Remote host closed the connection) 2018-08-18T20:35:46Z kajo joined #lisp 2018-08-18T20:39:51Z housel quit (Read error: Connection reset by peer) 2018-08-18T20:41:23Z lumm quit (Remote host closed the connection) 2018-08-18T20:41:52Z lumm joined #lisp 2018-08-18T20:42:04Z aindilis joined #lisp 2018-08-18T20:42:24Z varjagg quit (Ping timeout: 272 seconds) 2018-08-18T20:57:55Z asarch joined #lisp 2018-08-18T20:58:45Z atgreen__ joined #lisp 2018-08-18T21:00:16Z slyrus1 quit (Quit: slyrus1) 2018-08-18T21:00:54Z slyrus1 joined #lisp 2018-08-18T21:01:35Z atgreen_ quit (Ping timeout: 265 seconds) 2018-08-18T21:05:00Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-18T21:05:12Z aeth quit (Ping timeout: 272 seconds) 2018-08-18T21:06:54Z aeth joined #lisp 2018-08-18T21:14:16Z graphene quit (Read error: Connection reset by peer) 2018-08-18T21:14:44Z Orion3k joined #lisp 2018-08-18T21:15:46Z graphene joined #lisp 2018-08-18T21:21:17Z zfree joined #lisp 2018-08-18T21:29:24Z nalik891 quit (Read error: Connection reset by peer) 2018-08-18T21:29:45Z nalik891 joined #lisp 2018-08-18T21:31:41Z pierpa joined #lisp 2018-08-18T21:34:22Z graphene quit (Read error: Connection reset by peer) 2018-08-18T21:35:47Z graphene joined #lisp 2018-08-18T21:39:02Z dented42 joined #lisp 2018-08-18T21:40:37Z varjagg joined #lisp 2018-08-18T21:46:36Z dale quit (Quit: dale) 2018-08-18T21:47:53Z atgreen__ quit (Ping timeout: 260 seconds) 2018-08-18T21:49:31Z troydm joined #lisp 2018-08-18T21:50:24Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-18T21:56:39Z random-nick quit (Read error: Connection reset by peer) 2018-08-18T21:59:11Z slyrus1 quit (Ping timeout: 276 seconds) 2018-08-18T22:00:25Z orivej joined #lisp 2018-08-18T22:04:17Z rumbler31 joined #lisp 2018-08-18T22:04:54Z groovy2shoes quit (Ping timeout: 265 seconds) 2018-08-18T22:05:11Z random-nick joined #lisp 2018-08-18T22:08:54Z housel joined #lisp 2018-08-18T22:09:35Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-18T22:16:19Z grumble quit (Remote host closed the connection) 2018-08-18T22:17:47Z emaczen joined #lisp 2018-08-18T22:18:46Z lumm_ joined #lisp 2018-08-18T22:20:02Z grumble joined #lisp 2018-08-18T22:21:12Z varjagg quit (Ping timeout: 272 seconds) 2018-08-18T22:21:56Z lumm quit (Ping timeout: 276 seconds) 2018-08-18T22:24:41Z lumm joined #lisp 2018-08-18T22:24:52Z lumm_ quit (Read error: Connection reset by peer) 2018-08-18T22:26:47Z DataLinkDroid quit (Quit: Alla prossima volta) 2018-08-18T22:29:47Z lumm quit (Read error: Connection reset by peer) 2018-08-18T22:30:13Z lumm joined #lisp 2018-08-18T22:33:45Z lumm quit (Client Quit) 2018-08-18T22:34:09Z lumm joined #lisp 2018-08-18T22:38:39Z lumm quit (Read error: Connection reset by peer) 2018-08-18T22:52:18Z dmiles quit (Read error: Connection reset by peer) 2018-08-18T22:54:08Z moei quit (Ping timeout: 272 seconds) 2018-08-18T22:54:31Z logicmoo joined #lisp 2018-08-18T22:56:31Z shka_ quit (Ping timeout: 244 seconds) 2018-08-18T23:05:14Z fikka joined #lisp 2018-08-18T23:05:42Z nalik891 quit (Remote host closed the connection) 2018-08-18T23:06:03Z nalik891 joined #lisp 2018-08-18T23:06:09Z m3tti joined #lisp 2018-08-18T23:12:16Z Kundry_Wag joined #lisp 2018-08-18T23:14:22Z housel quit (Remote host closed the connection) 2018-08-18T23:14:44Z random-nickname joined #lisp 2018-08-18T23:14:45Z moei joined #lisp 2018-08-18T23:14:49Z housel joined #lisp 2018-08-18T23:16:32Z zfree quit (Ping timeout: 276 seconds) 2018-08-18T23:16:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-18T23:16:57Z random-nick quit (Ping timeout: 240 seconds) 2018-08-18T23:20:07Z m3tti quit (Ping timeout: 272 seconds) 2018-08-18T23:22:05Z random-nickname quit (Ping timeout: 240 seconds) 2018-08-18T23:24:57Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-18T23:29:35Z nalik891 quit (Read error: Connection reset by peer) 2018-08-18T23:29:46Z nalik891 joined #lisp 2018-08-18T23:30:35Z Fare quit (Ping timeout: 240 seconds) 2018-08-18T23:31:17Z DataLinkDroid joined #lisp 2018-08-18T23:34:02Z Fare joined #lisp 2018-08-18T23:47:58Z Fare quit (Ping timeout: 272 seconds) 2018-08-19T00:00:02Z kozy quit (Remote host closed the connection) 2018-08-19T00:00:38Z fikka quit (Ping timeout: 272 seconds) 2018-08-19T00:00:48Z kozy joined #lisp 2018-08-19T00:07:28Z sauvin joined #lisp 2018-08-19T00:11:43Z quipa joined #lisp 2018-08-19T00:34:15Z buffergn0me joined #lisp 2018-08-19T00:39:22Z quipa quit (Quit: Leaving) 2018-08-19T00:43:44Z Oladon joined #lisp 2018-08-19T00:47:57Z zxcvz quit (Ping timeout: 240 seconds) 2018-08-19T00:52:29Z robotoad quit (Quit: robotoad) 2018-08-19T00:56:35Z mooshmoosh quit (Ping timeout: 240 seconds) 2018-08-19T00:57:27Z mooshmoosh joined #lisp 2018-08-19T00:59:48Z quazimodo joined #lisp 2018-08-19T01:00:03Z robotoad joined #lisp 2018-08-19T01:05:16Z trocado joined #lisp 2018-08-19T01:06:06Z eoli2580 joined #lisp 2018-08-19T01:06:21Z eoli2580 left #lisp 2018-08-19T01:06:30Z eoli2580 joined #lisp 2018-08-19T01:10:38Z Fare joined #lisp 2018-08-19T01:13:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-19T01:14:44Z dim: Demosthenex: do it the other way around, store data in a normalized relational design and build JSON as a query output 2018-08-19T01:15:04Z dim: easier, faster, much less storage needs, all round better approach 2018-08-19T01:15:38Z dim: Demosthenex: have a read of https://tapoueh.org/blog/2017/09/on-json-and-sql/ to see how to normalize JSON documents in a relational database 2018-08-19T01:15:38Z quazimodo joined #lisp 2018-08-19T01:17:03Z bbokser joined #lisp 2018-08-19T01:21:01Z trocado quit (Read error: Connection reset by peer) 2018-08-19T01:21:11Z bbokser quit (Ping timeout: 244 seconds) 2018-08-19T01:23:35Z eoli2580 quit (Quit: Leaving) 2018-08-19T01:28:03Z bbokser joined #lisp 2018-08-19T01:29:45Z nalik891 quit (Read error: Connection reset by peer) 2018-08-19T01:29:52Z nalik89 joined #lisp 2018-08-19T01:34:18Z nalik89 quit (Read error: Connection reset by peer) 2018-08-19T01:34:46Z ebrasca joined #lisp 2018-08-19T01:34:59Z buffergn0me quit (Ping timeout: 276 seconds) 2018-08-19T01:37:27Z Fare quit (Ping timeout: 240 seconds) 2018-08-19T01:38:56Z parjanya joined #lisp 2018-08-19T01:39:57Z bbokser quit (Ping timeout: 240 seconds) 2018-08-19T01:44:07Z graphene quit (Remote host closed the connection) 2018-08-19T01:44:55Z milanj quit (Quit: This computer has gone to sleep) 2018-08-19T01:45:32Z graphene joined #lisp 2018-08-19T01:50:50Z scymtym quit (Ping timeout: 272 seconds) 2018-08-19T01:56:06Z stardiviner joined #lisp 2018-08-19T01:56:55Z ebrasca quit (Read error: Connection reset by peer) 2018-08-19T02:08:02Z stardiviner quit (Remote host closed the connection) 2018-08-19T02:12:22Z mooshmoosh quit (Ping timeout: 256 seconds) 2018-08-19T02:14:18Z mooshmoosh joined #lisp 2018-08-19T02:19:07Z housel quit (Read error: Connection reset by peer) 2018-08-19T02:19:10Z svillemot quit (Ping timeout: 268 seconds) 2018-08-19T02:20:49Z svillemot joined #lisp 2018-08-19T02:20:49Z LdBeth: Morning everyone 2018-08-19T02:21:39Z pierpa quit (Quit: Page closed) 2018-08-19T02:29:14Z Fare joined #lisp 2018-08-19T02:35:04Z xristos quit (Quit: ZNC - http://znc.in) 2018-08-19T02:39:43Z pierpal joined #lisp 2018-08-19T02:43:50Z no-defun-allowed: hi LdBeth 2018-08-19T03:06:35Z Fare quit (Ping timeout: 244 seconds) 2018-08-19T03:17:14Z buffergn0me joined #lisp 2018-08-19T03:24:03Z _whitelogger quit (Remote host closed the connection) 2018-08-19T03:26:14Z _whitelogger joined #lisp 2018-08-19T03:27:57Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-19T03:30:51Z pierpal quit (Quit: Poof) 2018-08-19T03:31:12Z pierpal joined #lisp 2018-08-19T03:32:08Z Copenhagen_Bram joined #lisp 2018-08-19T03:43:46Z Oladon quit (Quit: Leaving.) 2018-08-19T03:44:28Z csgator joined #lisp 2018-08-19T03:51:03Z ebrasca joined #lisp 2018-08-19T03:57:54Z dddddd quit (Remote host closed the connection) 2018-08-19T04:03:56Z captgector quit (Ping timeout: 244 seconds) 2018-08-19T04:06:08Z captgector joined #lisp 2018-08-19T04:07:34Z Oladon joined #lisp 2018-08-19T04:07:43Z beach: Good morning everyone! 2018-08-19T04:09:12Z csgator: hi all, I am a young programmer and I want to learn lisp as a hobby project because I read about it in paul graham's book hackers and painters. The way he describes lisp it seems to be the holy grail of languages , what do you guys think does learning lisp make you a better programmer ? 2018-08-19T04:09:29Z beach: Of course. 2018-08-19T04:09:46Z beach: This is a channel dedicated to Common Lisp, so many of us are convinced about that. 2018-08-19T04:10:40Z csgator: haha fair point. I just want to know as an outsider why you guys think lisp is so good ? 2018-08-19T04:11:06Z beach: Because it has many more and better features than most languages. 2018-08-19T04:11:14Z beach: Like the best object system around, for instance. 2018-08-19T04:11:39Z beach: And homoiconicity makes it possible to write sane syntactic extensions. 2018-08-19T04:11:43Z no-defun-allowed: morning beach 2018-08-19T04:11:50Z beach: Hey no-defun-allowed. 2018-08-19T04:12:49Z housel joined #lisp 2018-08-19T04:12:56Z no-defun-allowed: learning lisp made my datefriend think about other languages weird, and they told me they couldn't stand C++ after. it likely will make you hate every other language on the planet but hey go for it. 2018-08-19T04:13:01Z fikka joined #lisp 2018-08-19T04:13:02Z beach: csgator: The condition system is also quite good. Much better than the exception feature of languages like Java. 2018-08-19T04:13:13Z no-defun-allowed: the OOP system is also better than java 2018-08-19T04:13:47Z csgator: so noob question here : let's say I want to build a REST API can I do it in lisp ? does it have enough libraries to do anything one would require in a normal application building ? what I am trying to ask maybe is can I use it to build stuff ? I am convinced that programming languages are increasingly becoming more lisp like 2018-08-19T04:13:47Z beach: Oh, sure, if you compare to a language without automatic memory management, Common Lisp looks even better. But most sane languages these days have that. 2018-08-19T04:14:13Z no-defun-allowed: the runtime is better than java 2018-08-19T04:15:24Z beach: csgator: Not my domain of expertise, but I am pretty sure there are libraries for that. Other languages won't become Common Lisp until they also look like it, and then they might as well *be* Common Lisp. 2018-08-19T04:16:02Z no-defun-allowed: not sure about REST specifically but there's more than one web framework 2018-08-19T04:16:06Z csgator: so what do you guys use lisp for ? just trying to gather info on where it is being used :) 2018-08-19T04:16:08Z beach: csgator: It is trues that for *almost* every feature of Common Lisp, you will find some language that has it. But you won't find a language other than Common Lisp that combines all those features. 2018-08-19T04:16:31Z no-defun-allowed: i use hunchentoot but caveman2 is also an option (if you can mind the god awful Python @tagging things) 2018-08-19T04:16:50Z steiner quit (Ping timeout: 276 seconds) 2018-08-19T04:17:06Z beach: csgator: Here is a nice quotation from Kent Pitman: https://www.wisdomandwonder.com/link/1018/please-dont-assume-lisp-is 2018-08-19T04:17:20Z csgator: beach : that is exactly the point paul graham mentions in his book which made me wonder, why is the software world going backward and if so why even bother with a fancy new language every year, we could just use lisp for everything 2018-08-19T04:17:33Z fikka quit (Ping timeout: 260 seconds) 2018-08-19T04:18:35Z beach: csgator: Because there are strong psychological forces at work. People are not rational and they are willing to waste arbitrary amounts of time not to learn Common Lisp. 2018-08-19T04:18:58Z beach: csgator: There is an entire domain now called "behavioral economics" that will explain such behavior. 2018-08-19T04:19:42Z beach: In the meantime, here is a short essay on the subject: http://metamodular.com/Essays/psychology.html 2018-08-19T04:20:58Z gitfaf joined #lisp 2018-08-19T04:21:03Z no-defun-allowed: still they don't quite get why we avoid SETF and friends when possible in lisps but they know a lot of CL and scheme 2018-08-19T04:21:09Z Pixel_Outlaw joined #lisp 2018-08-19T04:21:34Z beach: csgator: And when I say "strong", it's a serious understatement. 2018-08-19T04:21:58Z no-defun-allowed: i said it's easier to analyse since SETF can set whatever but they say understanding functional code is hard already 2018-08-19T04:22:18Z csgator: beach: got your point, thanks. I am going to spend the next few weeks learning lisp just for the fun of it and also because many smart people I know have suggested learning lisp. I'll be using this channel to get help when stuck 2018-08-19T04:22:35Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-19T04:22:46Z beach: csgator: Great! There is also #clschool for more basic questions. 2018-08-19T04:22:46Z csgator: that essay is so true 2018-08-19T04:22:52Z beach: Thanks! 2018-08-19T04:22:55Z steiner joined #lisp 2018-08-19T04:37:02Z gitfaf quit (Remote host closed the connection) 2018-08-19T04:37:23Z orivej quit (Ping timeout: 260 seconds) 2018-08-19T04:37:40Z gitfaf joined #lisp 2018-08-19T04:38:16Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-19T04:51:24Z FreeBirdLjj joined #lisp 2018-08-19T04:59:44Z asarch quit (Remote host closed the connection) 2018-08-19T05:00:24Z asarch joined #lisp 2018-08-19T05:23:52Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-19T05:24:25Z jack_rabbit joined #lisp 2018-08-19T05:24:37Z FreeBirdLjj joined #lisp 2018-08-19T05:26:38Z captgector quit (Remote host closed the connection) 2018-08-19T05:27:14Z captgector joined #lisp 2018-08-19T05:39:11Z gitfaf quit 2018-08-19T05:39:36Z gitfaf joined #lisp 2018-08-19T05:40:38Z gitfaf quit (Client Quit) 2018-08-19T05:42:29Z pjb quit (Remote host closed the connection) 2018-08-19T05:44:18Z pjb joined #lisp 2018-08-19T05:47:02Z pjb quit (Read error: Connection reset by peer) 2018-08-19T05:48:39Z pjb joined #lisp 2018-08-19T05:50:33Z nowhereman_ joined #lisp 2018-08-19T05:53:05Z dented42 joined #lisp 2018-08-19T06:04:42Z Kundry_Wag joined #lisp 2018-08-19T06:09:14Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-19T06:13:20Z Shinmera: csgator: Just to get you started, the typical recommendation nowadays is https://portacle.github.io for the IDE and http://www.gigamonkeys.com/book/ for the introductory text. 2018-08-19T06:16:47Z Shinmera: csgator: As for REST APIs, of course you can do that with Lisp. There's plenty of websites and services, both hobby and professional, running Lisp on the web. 2018-08-19T06:17:38Z csgator: Shinmera : Thanks! 2018-08-19T06:26:24Z csgator quit (Ping timeout: 252 seconds) 2018-08-19T06:26:41Z pjb quit (Remote host closed the connection) 2018-08-19T06:27:54Z pjb joined #lisp 2018-08-19T06:29:01Z buffergn0me quit (Ping timeout: 265 seconds) 2018-08-19T06:30:05Z Oddity quit (Ping timeout: 276 seconds) 2018-08-19T06:36:24Z Oddity joined #lisp 2018-08-19T06:56:01Z fikka joined #lisp 2018-08-19T07:00:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-19T07:08:56Z doubledup joined #lisp 2018-08-19T07:09:05Z doubledup quit (Max SendQ exceeded) 2018-08-19T07:09:27Z doubledup joined #lisp 2018-08-19T07:09:42Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-19T07:09:44Z zxcvz joined #lisp 2018-08-19T07:10:43Z graphene quit (Remote host closed the connection) 2018-08-19T07:12:04Z graphene joined #lisp 2018-08-19T07:12:38Z rozenglass joined #lisp 2018-08-19T07:13:31Z Oladon quit (Quit: Leaving.) 2018-08-19T07:25:52Z charh quit (Ping timeout: 272 seconds) 2018-08-19T07:27:09Z asarch quit (Quit: Leaving) 2018-08-19T07:33:29Z rippa joined #lisp 2018-08-19T07:35:58Z FreeBirdLjj joined #lisp 2018-08-19T07:38:24Z zfree joined #lisp 2018-08-19T07:45:10Z graphene quit (Remote host closed the connection) 2018-08-19T07:46:31Z graphene joined #lisp 2018-08-19T07:49:27Z emacsomancer quit (Ping timeout: 240 seconds) 2018-08-19T07:53:36Z zfree quit (Quit: zfree) 2018-08-19T07:54:27Z shka_ joined #lisp 2018-08-19T08:03:42Z rogersm joined #lisp 2018-08-19T08:10:24Z zfree joined #lisp 2018-08-19T08:10:53Z zfree quit (Client Quit) 2018-08-19T08:17:11Z bars0 joined #lisp 2018-08-19T08:30:32Z kerrhau quit (Ping timeout: 244 seconds) 2018-08-19T08:33:50Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-19T08:41:39Z pjb quit (Remote host closed the connection) 2018-08-19T08:43:04Z pjb joined #lisp 2018-08-19T08:44:40Z fikka joined #lisp 2018-08-19T08:45:27Z wiselord quit (Ping timeout: 240 seconds) 2018-08-19T08:45:51Z graphene quit (Remote host closed the connection) 2018-08-19T08:47:19Z graphene joined #lisp 2018-08-19T08:48:12Z pjb quit (Remote host closed the connection) 2018-08-19T08:48:12Z Fare joined #lisp 2018-08-19T08:49:43Z pjb joined #lisp 2018-08-19T08:51:12Z fikka quit (Ping timeout: 244 seconds) 2018-08-19T08:53:41Z graphene quit (Remote host closed the connection) 2018-08-19T08:54:39Z t3hyoshi joined #lisp 2018-08-19T08:55:07Z graphene joined #lisp 2018-08-19T08:55:35Z azimut joined #lisp 2018-08-19T08:56:51Z azimut_ quit (Ping timeout: 240 seconds) 2018-08-19T08:57:19Z cage_ joined #lisp 2018-08-19T08:57:32Z pjb quit (Ping timeout: 256 seconds) 2018-08-19T09:28:25Z quazimodo joined #lisp 2018-08-19T09:36:09Z quazimodo quit (Ping timeout: 244 seconds) 2018-08-19T09:38:16Z quazimodo joined #lisp 2018-08-19T09:48:04Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-19T09:57:25Z rozenglass quit (Read error: Connection reset by peer) 2018-08-19T10:04:08Z FreeBirdLjj joined #lisp 2018-08-19T10:09:59Z rumbler31 joined #lisp 2018-08-19T10:15:14Z rumbler31 quit (Ping timeout: 268 seconds) 2018-08-19T10:27:38Z robotoad quit (Quit: robotoad) 2018-08-19T10:30:52Z rozenglass joined #lisp 2018-08-19T10:32:25Z void_pointer joined #lisp 2018-08-19T10:34:43Z robotoad joined #lisp 2018-08-19T10:36:56Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-19T10:37:54Z random-nickname joined #lisp 2018-08-19T10:40:12Z varjagg joined #lisp 2018-08-19T10:41:01Z void_pointer: Out of SBCL, CCL, and ECL; which implementation is generally the strictest with requiring code to conform to the ANSI spec? 2018-08-19T10:42:53Z random-nickname is now known as random-nick 2018-08-19T10:43:51Z rogersm quit (Read error: Connection reset by peer) 2018-08-19T10:44:25Z rogersm joined #lisp 2018-08-19T10:48:01Z no-defun-allowed: SBCL likes complaining about it if you don't comply. 2018-08-19T10:51:08Z dddddd joined #lisp 2018-08-19T10:53:51Z FreeBirdLjj joined #lisp 2018-08-19T10:55:04Z Shinmera: void_pointer: What do you hope to determine with that information? 2018-08-19T10:55:56Z jackdaniel: I think that both CLISP and SBCL have a "strict ansi mode", but you'd have to verify that 2018-08-19T10:56:57Z Shinmera: Even if your code conforms to the ANSI spec doesn't mean it'll be portable for instance 2018-08-19T10:57:51Z Shinmera: Unless you eschew all parts that are defined as implementation dependant (pathnames, etc) 2018-08-19T10:59:55Z jackdaniel: it is a one tailed test, which may bring to your attention parts of code which could be improved (not always of course) 2018-08-19T11:02:09Z void_pointer: Well, my code won't be completely portable, but it tells me a bit of where to focus my testing activities since that would be where I would run into more of my ameteurish mistakes in writing valid common lisp code (things like assigning an incorrectly typed value to a slot) 2018-08-19T11:02:39Z void_pointer: The pathname issue is one of the big items, sadly 2018-08-19T11:02:50Z void_pointer: That and the implementation has to have FFI 2018-08-19T11:02:52Z Shinmera: SBCL is very anal about some details of CL, so probably your best bet for that 2018-08-19T11:04:13Z void_pointer: I've caught quite a few mistakes by making (safety 3) in all my code, but I suspect I have a lot more just basic mistakes in writing common lisp, let alone all the bugs from just misuing things, misdone algorithms, and other sorts of bugs that of course would not be caught by such means 2018-08-19T11:04:38Z void_pointer: Shinmera: that is good to know about SBCL 2018-08-19T11:04:45Z void_pointer: it is the sort of thing I am looking for 2018-08-19T11:05:42Z Kundry_Wag joined #lisp 2018-08-19T11:10:33Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-19T11:10:46Z void_pointer: Thank you Shinmera and jackdaniel 2018-08-19T11:12:51Z void_pointer: jackdaniel: just checked. Clisp does have such mode it looks like. SBCL doesn't appear to in the current version, though 2018-08-19T11:13:26Z void_pointer: sadly, I can't do testing in clisp due to issue with CFFI (same goes for abcl) 2018-08-19T11:13:37Z Shinmera: Clisp's mode is not really about checking your code as far as I understand, but rather about the implementation being ANSI compliant rather than doing its own (historical) divergences 2018-08-19T11:22:14Z igemnace quit (Remote host closed the connection) 2018-08-19T11:24:32Z kajo quit (Ping timeout: 276 seconds) 2018-08-19T11:26:21Z void_pointer: okay 2018-08-19T11:27:19Z void_pointer: I'm still rather new to common lisp. Only been doing it seriously since December or January (the little bit I did back in 2012 or 2013 doesn't really count) 2018-08-19T11:28:05Z void_pointer: and I came to it from scheme 2018-08-19T11:29:43Z LdBeth: void_pointer: do you intends to use CL on specific problems or as a general programming language? 2018-08-19T11:30:53Z void_pointer: Currently working on a project in one domain but hope to use CL for more general stuff later. But have ended up having to do more general stuff than originally planned hacking one of my project's dependencies as well as quicklisp itself 2018-08-19T11:32:21Z void_pointer: I will admit that CL isn't the ideal choice for the domain due to not having the widest range of library choices, but that is something I am OK with (have to spend more time writing various missing pieces or working around a choice that while possibly good isn't quite a perfect fit) 2018-08-19T11:33:22Z Shinmera: Tell me about it 2018-08-19T11:34:03Z beach: void_pointer: What's the domain? (You may have mentioned it, but if so I missed it). 2018-08-19T11:34:17Z void_pointer: game programming 2018-08-19T11:34:31Z LdBeth: GG 2018-08-19T11:34:33Z beach: You may want to chat with the people in #lispgames. 2018-08-19T11:34:42Z void_pointer: I do from time to time 2018-08-19T11:34:49Z beach: OK. 2018-08-19T11:35:43Z void_pointer: though mostly, my questions so far are not game programming specific for the most part (only had the one question with respect to SDL2 that one time) 2018-08-19T11:36:27Z random-nick quit (Ping timeout: 240 seconds) 2018-08-19T11:37:07Z gpiero_ is now known as gpiero 2018-08-19T11:39:54Z beach: Good, that increases the number of people who might be able to answer the questions. 2018-08-19T11:41:00Z LdBeth: how's the computer players' logic usually implemented? My specific interests is on how to make decisions in a typical game like "go fish". No needs to be detailed but plz give a general idea. 2018-08-19T11:41:20Z Shinmera: LdBeth: PAIP has a chapter on writing game AI 2018-08-19T11:41:24Z no-defun-allowed: Goodnight everybody! 2018-08-19T11:41:39Z no-defun-allowed: There's minimax for two player games. 2018-08-19T11:42:00Z void_pointer: yes, though one has to be careful for some games or you can easily make in invincible AI 2018-08-19T11:42:26Z void_pointer: and for others, one has to think of a reasonable depth and use some heuristics like with chess 2018-08-19T11:42:39Z no-defun-allowed: If the amount of moves into some amount of time is relatively small (can fit into memory), minimax should work. 2018-08-19T11:42:56Z no-defun-allowed: Go is one game which is not relatively small. Go boards are big. 2018-08-19T11:43:16Z void_pointer: and for a weak AI, one can make one that just randomly chooses one of the available moves 2018-08-19T11:43:27Z void_pointer: Go requires tricks 2018-08-19T11:43:42Z beach: no-defun-allowed: "number" of moves. Number of things, amount of stuff. 2018-08-19T11:43:54Z jackdaniel: sjl had a very good presentation at ELS about heuristics used in games for AI (it was based on monte carlo I think) 2018-08-19T11:43:55Z void_pointer: I don't know them. My guess is that they probably reduce the parameter space considerably by primarily focusing only on tiles bordering a piece already 2018-08-19T11:43:56Z no-defun-allowed: Off to bed I go now. 2018-08-19T11:45:53Z jackdaniel: here is a presentation: https://www.european-lisp-symposium.org/static/2017/losh.pdf 2018-08-19T11:45:58Z no-defun-allowed: beach: it's 9:45pm and my melatonin pills should be working now. My English gets increasingly horrid as t increases. 2018-08-19T11:47:15Z beach: no-defun-allowed: Sleep well. 2018-08-19T11:47:57Z shka_ quit (Ping timeout: 240 seconds) 2018-08-19T11:48:47Z LdBeth: be off 2018-08-19T11:48:54Z no-defun-allowed: Thankyou. 2018-08-19T11:48:56Z LdBeth: Will back later 2018-08-19T11:49:16Z LdBeth: #'no-defun-allowed: good night 2018-08-19T11:49:35Z no-defun-allowed: Nighty night, LdBeth and beach. 2018-08-19T11:49:47Z no-defun-allowed: May all your lists be proper. 2018-08-19T11:49:58Z cage_ quit (Ping timeout: 244 seconds) 2018-08-19T11:53:23Z rogersm quit (Read error: Connection reset by peer) 2018-08-19T11:54:00Z rogersm joined #lisp 2018-08-19T11:54:51Z nanoz joined #lisp 2018-08-19T12:07:41Z random-nick joined #lisp 2018-08-19T12:08:37Z Kundry_Wag joined #lisp 2018-08-19T12:08:42Z void_pointer: Oh, interesting thing that people might be interested in. I modified my version of quicklisp to actually check the md5sums of the package tarballs it downloads and well, if there is anyone between me and the quicklisp server that is diverting tarball requests, they are at least bothering to tamper them in a way that preserves both the filesize and the md5sum despite the latter not being checked yet. 2018-08-19T12:11:18Z rumbler31 joined #lisp 2018-08-19T12:11:35Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-08-19T12:12:48Z void_pointer: Unfortunately, I realize that my modifications are really ugly and I haven't been able to get a SHA1 check in there yet 2018-08-19T12:13:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-19T12:14:16Z Shinmera: Xach is working on pgp signing and verification, if I remember correctly 2018-08-19T12:15:56Z rumbler31 quit (Ping timeout: 272 seconds) 2018-08-19T12:20:58Z void_pointer: I remember hearing about that. Fundamentally for base level, the PGP signing and verification primarily has to be done for the client and dist updates as long as the dists themselves has sufficient hash information to verify the integrity of the downloads 2018-08-19T12:21:23Z smokeink joined #lisp 2018-08-19T12:21:35Z void_pointer: Right now, the dists have file size, md5sum, and sha1 sum of the contents (it isn't the sha1sum of the tgz or the uncompressed tar but something else) 2018-08-19T12:22:45Z void_pointer: which, if checked, would be safe enough for now. Making a file with a desired sha1sum isn't yet known to be doable, but it isn't that far away. md5sum is trivial. But all three combined is a bit harder than any one of them individually 2018-08-19T12:23:14Z nowhereman_ joined #lisp 2018-08-19T12:23:39Z Shinmera: sha1 was been broken last year, if I remember correctly 2018-08-19T12:23:43Z Shinmera: *-been 2018-08-19T12:24:00Z void_pointer: that was only a partial break 2018-08-19T12:24:14Z void_pointer: it is possible to generate two files with the same sha1 when one can modify both files as one sees fit 2018-08-19T12:24:40Z Shinmera: Anyway, just gotta wait for Xach to roll out the QL goodie 2018-08-19T12:24:41Z void_pointer: which is a lot easier than generating a file with a specific sha1 value 2018-08-19T12:24:42Z Shinmera: s 2018-08-19T12:24:49Z void_pointer: I do look forward to it 2018-08-19T12:25:27Z void_pointer: right now, I just go through quicklisp-projects and find the original source for each package I want and git clone (or download if they use something else) into local-packages 2018-08-19T12:28:30Z void_pointer: if the dists added sha3 of the tgz file, it would be pretty set (especially since there is some CL sha3 code with few dependencies out there) 2018-08-19T12:29:36Z Shinmera: cloning into local packages is not a very smart ideas since the projects might depend on specific versions between each other. 2018-08-19T12:29:47Z Shinmera: christ I'm typoing a lot today 2018-08-19T12:30:09Z jackdaniel: must be melatonine 2018-08-19T12:30:21Z jackdaniel: s/ine/in/ 2018-08-19T12:30:30Z void_pointer: that sometimes happens 2018-08-19T12:31:34Z void_pointer: haven't run into that too much yet (it will get really ugly as soon as I need something that incidentally needs one xml package) 2018-08-19T12:32:11Z void_pointer: another alternative is just to just take the http links that quicklisp would download and then use wget or curl to download the https version 2018-08-19T12:32:22Z void_pointer: did that with a few 2018-08-19T12:32:32Z Shinmera: Another alternative is to stop worrying 2018-08-19T12:33:14Z jackdaniel: curl http://not-suspicious-at-all.biz/script.sh | bash 2018-08-19T12:34:02Z Josh_2 joined #lisp 2018-08-19T12:34:39Z void_pointer: yeah, that is one possibility 2018-08-19T12:35:09Z void_pointer: other reason I download the source code is to make it easier to tinker and be able to unwind changes if I screw up or submit PRs 2018-08-19T12:35:27Z void_pointer: I definitely worry too much on it, though 2018-08-19T12:39:15Z atgreen__ joined #lisp 2018-08-19T12:45:49Z cage_ joined #lisp 2018-08-19T12:51:25Z igemnace joined #lisp 2018-08-19T12:52:39Z atgreen__ is now known as atgreen 2018-08-19T13:00:43Z groovy2shoes joined #lisp 2018-08-19T13:04:55Z Demosthenex: dim: nice article, thanks for the link! 2018-08-19T13:05:34Z Demosthenex: jackdaniel: you see that POC code to make a webserver return one script for a browser, and a malicious one for curl? 2018-08-19T13:06:08Z Demosthenex: based only on the timing data, not user agent ;] 2018-08-19T13:06:22Z jackdaniel: Demosthenex: interesting (no, I haven't seen it) 2018-08-19T13:06:26Z Demosthenex: apparently the pipe to bash causes blocking and timing that is readable by the remote 2018-08-19T13:07:44Z Demosthenex: jackdaniel: https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/ 2018-08-19T13:08:45Z jackdaniel: I like the demo :-) 2018-08-19T13:09:29Z Demosthenex: heh, yep 2018-08-19T13:11:56Z Demosthenex: oh, you had that cl-charms mcclim writeup. nice! i'm looking forward to your mcclim charms backend ;] 2018-08-19T13:13:49Z jackdaniel: right now I'm stuck on patterns (and consequency in framebuffer renderer) 2018-08-19T13:13:59Z jackdaniel: thanks 2018-08-19T13:14:24Z jackdaniel: I want to write it, because it will expose many weird corner-cases 2018-08-19T13:14:35Z jackdaniel: wrt displays with different units 2018-08-19T13:14:51Z jackdaniel: (1] terminal "pixels" are not rectangular, 2] they are very big) 2018-08-19T13:15:32Z smokeink quit (Remote host closed the connection) 2018-08-19T13:15:54Z smokeink joined #lisp 2018-08-19T13:15:56Z smokeink quit (Remote host closed the connection) 2018-08-19T13:17:13Z Demosthenex: true 2018-08-19T13:17:41Z Demosthenex: i've been looking for a TUI library for simple things... i recall using turbovision ages ago and can't seem to find anything like it 2018-08-19T13:18:10Z Demosthenex: but something you said in that article about "making 1/10th of clim in text" rings true... 2018-08-19T13:19:07Z jackdaniel: it was a pun at greenspoon's tenth rule :-) 2018-08-19T13:19:23Z jackdaniel: " Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. " 2018-08-19T13:19:46Z Demosthenex: that's true, but it also highlights the different between having curses level control (ala charms), vs a real UI library with event loops, widgets, and screen controls. 2018-08-19T13:20:51Z Demosthenex: i find it uniquely weird that something as simple as an AS/400 style full screen form should have zero open libraries nowadays 2018-08-19T13:21:25Z jackdaniel: from other fun useless things I want to do is adding libcaca extension to that charming-clim backend 2018-08-19T13:21:39Z orivej joined #lisp 2018-08-19T13:21:44Z jackdaniel: so one could "render" pictures and other patterns to some extent 2018-08-19T13:22:04Z jackdaniel: but not sure if I'll find enough time for such toy 2018-08-19T13:23:57Z random-nick quit (Read error: Connection reset by peer) 2018-08-19T13:27:10Z random-nick joined #lisp 2018-08-19T13:59:02Z void_pointer: Has anyone written a lisp implementation in Fortran yet? 2018-08-19T13:59:14Z void_pointer: Referring back to the greenspun mention 2018-08-19T13:59:53Z nowhereman_ quit (Ping timeout: 276 seconds) 2018-08-19T14:00:32Z quazimodo quit (Ping timeout: 276 seconds) 2018-08-19T14:01:04Z atgreen quit (Ping timeout: 272 seconds) 2018-08-19T14:05:56Z Kundry_Wag joined #lisp 2018-08-19T14:07:36Z LdBeth: of cause there should be one 2018-08-19T14:09:03Z Josh_2 quit (Ping timeout: 260 seconds) 2018-08-19T14:09:36Z void_pointer: if for no other reason that to implement the second oldest language family in the oldest 2018-08-19T14:10:34Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-19T14:12:51Z LdBeth: Early ALGOL's are on top of FORTRAN 2018-08-19T14:14:39Z void_pointer: Should be fairly easy to implement lisp 1.5 in fortran 95 or newer with no limitations other than available RAM. Fortran 77 would, if completely conformant, have a fixed at compile time limit on the number of conses 2018-08-19T14:15:35Z gpiero quit (Ping timeout: 240 seconds) 2018-08-19T14:18:04Z gpiero joined #lisp 2018-08-19T14:21:42Z beach: void_pointer: Yes, in fact, the first Lisp system I used was an implementation of Interlisp in Fortran. 2018-08-19T14:22:05Z fikka joined #lisp 2018-08-19T14:24:04Z Oladon joined #lisp 2018-08-19T14:24:25Z void_pointer: oh, cool 2018-08-19T14:25:46Z slyrus1 joined #lisp 2018-08-19T14:25:51Z Inline quit (Read error: Connection reset by peer) 2018-08-19T14:26:44Z Inline joined #lisp 2018-08-19T14:27:55Z Bike joined #lisp 2018-08-19T14:32:35Z Inline quit (Read error: Connection reset by peer) 2018-08-19T14:34:55Z Inline joined #lisp 2018-08-19T14:37:50Z shka_ joined #lisp 2018-08-19T14:42:51Z Inline quit (Read error: Connection reset by peer) 2018-08-19T14:43:21Z Inline joined #lisp 2018-08-19T14:48:47Z renzhi quit (Ping timeout: 265 seconds) 2018-08-19T14:54:56Z ebrasca quit (Ping timeout: 244 seconds) 2018-08-19T14:56:15Z ebrasca joined #lisp 2018-08-19T15:00:20Z fikka quit (Ping timeout: 276 seconds) 2018-08-19T15:05:44Z fikka joined #lisp 2018-08-19T15:11:22Z fikka quit (Ping timeout: 272 seconds) 2018-08-19T15:14:06Z undulate joined #lisp 2018-08-19T15:15:34Z renzhi joined #lisp 2018-08-19T15:18:50Z jmercouris joined #lisp 2018-08-19T15:23:04Z SaganMan is now known as blackadder 2018-08-19T15:23:21Z Fare quit (Ping timeout: 244 seconds) 2018-08-19T15:24:58Z nanozz joined #lisp 2018-08-19T15:27:38Z nanoz quit (Ping timeout: 276 seconds) 2018-08-19T15:33:51Z pedh quit (Quit: Connection closed for inactivity) 2018-08-19T15:36:56Z Kundry_Wag joined #lisp 2018-08-19T15:42:04Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-19T15:53:08Z jmercouris quit (Remote host closed the connection) 2018-08-19T15:56:57Z fikka joined #lisp 2018-08-19T15:57:05Z asarch joined #lisp 2018-08-19T15:58:52Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-19T16:06:19Z pjb joined #lisp 2018-08-19T16:07:16Z robotoad quit (Ping timeout: 244 seconds) 2018-08-19T16:11:55Z fikka quit (Ping timeout: 244 seconds) 2018-08-19T16:16:40Z jack_rabbit joined #lisp 2018-08-19T16:18:12Z zxcvz quit (Quit: zxcvz) 2018-08-19T16:18:54Z zxcvz joined #lisp 2018-08-19T16:19:16Z sjl joined #lisp 2018-08-19T16:24:55Z TMA quit (*.net *.split) 2018-08-19T16:24:55Z phadthai quit (*.net *.split) 2018-08-19T16:24:55Z rvirding quit (*.net *.split) 2018-08-19T16:24:55Z jgkamat quit (*.net *.split) 2018-08-19T16:24:56Z krator44 quit (*.net *.split) 2018-08-19T16:24:56Z jackdaniel quit (*.net *.split) 2018-08-19T16:24:56Z tokenrove quit (*.net *.split) 2018-08-19T16:24:56Z pok quit (*.net *.split) 2018-08-19T16:24:56Z sellout quit (*.net *.split) 2018-08-19T16:24:56Z Nikotiini quit (*.net *.split) 2018-08-19T16:24:56Z micro quit (*.net *.split) 2018-08-19T16:25:03Z phadthai joined #lisp 2018-08-19T16:27:34Z jgkamat joined #lisp 2018-08-19T16:30:19Z rvirding joined #lisp 2018-08-19T16:31:37Z Nikotiini joined #lisp 2018-08-19T16:32:45Z Fare joined #lisp 2018-08-19T16:33:57Z varjagg quit (Ping timeout: 240 seconds) 2018-08-19T16:35:41Z krator44 joined #lisp 2018-08-19T16:36:24Z steiner quit (Remote host closed the connection) 2018-08-19T16:36:49Z steiner joined #lisp 2018-08-19T16:37:37Z steiner quit (Remote host closed the connection) 2018-08-19T16:37:46Z Ricchi quit (Ping timeout: 260 seconds) 2018-08-19T16:38:00Z steiner joined #lisp 2018-08-19T16:38:40Z nanozz is now known as nanoz 2018-08-19T16:46:54Z jackdaniel joined #lisp 2018-08-19T16:49:35Z igemnace quit (Ping timeout: 240 seconds) 2018-08-19T16:50:17Z fikka joined #lisp 2018-08-19T16:57:06Z micro joined #lisp 2018-08-19T17:02:55Z trocado joined #lisp 2018-08-19T17:04:20Z nanoz quit (Quit: Leaving) 2018-08-19T17:05:13Z trocado: hi! i think my quicklisp configuration is broken... anything other than quickloading a specific dist gives an error. 2018-08-19T17:05:30Z trocado: for example: (ql:update-dist "alexandria") -> There is no applicable method for the generic function 2018-08-19T17:05:30Z trocado: # 2018-08-19T17:05:30Z trocado: when called with arguments 2018-08-19T17:05:30Z trocado: (NIL). 2018-08-19T17:05:45Z trocado: any ideas on how to fix this? 2018-08-19T17:06:45Z robotoad joined #lisp 2018-08-19T17:08:01Z housel quit (Remote host closed the connection) 2018-08-19T17:08:10Z Kundry_Wag joined #lisp 2018-08-19T17:08:28Z fikka quit (Ping timeout: 265 seconds) 2018-08-19T17:08:36Z trocado: same error on system-apropos-list, but list-local-projects works 2018-08-19T17:09:29Z pjb: Yep. Fetch it again and re-install it. 2018-08-19T17:11:17Z brkr joined #lisp 2018-08-19T17:12:07Z trocado: ok, do I need to clean something before? 2018-08-19T17:12:53Z Kundry_Wag quit (Ping timeout: 255 seconds) 2018-08-19T17:14:36Z pjb: I would just move away ~/quicklisp 2018-08-19T17:14:52Z pjb: before, you may collect the list of installed packages, if you want to re-install them. 2018-08-19T17:14:53Z trocado: when I try to reinstall it says "Quicklisp has already been installed." 2018-08-19T17:15:02Z trocado: ok 2018-08-19T17:20:03Z trocado quit (Remote host closed the connection) 2018-08-19T17:25:43Z patlv joined #lisp 2018-08-19T17:28:15Z emacsomancer joined #lisp 2018-08-19T17:31:30Z buffergn0me joined #lisp 2018-08-19T17:42:31Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-19T17:48:51Z patlv quit (Remote host closed the connection) 2018-08-19T17:52:51Z fikka joined #lisp 2018-08-19T17:53:34Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-19T17:54:12Z FreeBirdLjj joined #lisp 2018-08-19T17:54:44Z rozenglass quit (Ping timeout: 256 seconds) 2018-08-19T17:55:41Z asarch: Do you know a good ORM for PostgreSQL in Common Lisp? 2018-08-19T17:56:40Z edgar-rft quit (Remote host closed the connection) 2018-08-19T17:58:18Z Pixel_Outlaw joined #lisp 2018-08-19T17:58:40Z cage_ quit (Quit: Leaving) 2018-08-19T17:58:47Z FreeBirdLjj quit (Ping timeout: 260 seconds) 2018-08-19T18:01:27Z aindilis quit (Read error: Connection reset by peer) 2018-08-19T18:01:46Z Shinmera: Some say "good" and "ORM" are mutually exclusive 2018-08-19T18:03:06Z aindilis joined #lisp 2018-08-19T18:03:36Z pierpal quit (Quit: Poof) 2018-08-19T18:03:52Z pierpal joined #lisp 2018-08-19T18:04:05Z kerrhau joined #lisp 2018-08-19T18:05:36Z pjb: I agree. Mutually exclusive. 2018-08-19T18:07:32Z X-Scale quit (Ping timeout: 276 seconds) 2018-08-19T18:11:33Z Fare: asarch, I worked on QUAKE, though the backend was Oracle. 2018-08-19T18:11:45Z Fare: the code is available as free software, slowly bitrotting. 2018-08-19T18:12:49Z Fare: It's only as good as an ORM could be, but it did see industrial use. 2018-08-19T18:16:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-19T18:20:07Z Fade quit (Remote host closed the connection) 2018-08-19T18:22:50Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-19T18:24:26Z buffergn0me quit (Ping timeout: 276 seconds) 2018-08-19T18:28:50Z sabrac quit (Ping timeout: 244 seconds) 2018-08-19T18:29:16Z X-Scale joined #lisp 2018-08-19T18:36:14Z manumanumanu joined #lisp 2018-08-19T18:38:21Z manumanumanu: Anyone here familiar with the iter macro? I want to get the fibonacci numbers getting it, but all I am getting is powers of two :) 2018-08-19T18:39:06Z manumanumanu: which is because I don't know how to work around it's let*-style variable bindings 2018-08-19T18:41:33Z pjb: (loop :repeat 10 for a := 1 :then b :and b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 3 5 8 13 21 34 55 --> nil |# 2018-08-19T18:41:41Z pjb: (loop :repeat 10 for a := 1 :then b :for b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 4 8 16 32 64 128 256 --> nil |# 2018-08-19T18:42:01Z manumanumanu: exactly, but using the iterate macro :) 2018-08-19T18:42:08Z manumanumanu: I know how to do it using loop 2018-08-19T18:42:44Z manumanumanu: I am just curious to see how they compare, and I got stuck implementing my first test 2018-08-19T18:43:09Z pjb: I never used iter. I would have to download and read the doc to help you… 2018-08-19T18:43:19Z random-nick quit (Read error: Connection reset by peer) 2018-08-19T18:43:47Z pjb: manumanumanu: have you it already downloaded? 2018-08-19T18:43:53Z manumanumanu: of course 2018-08-19T18:44:02Z pjb: manumanumanu: have you located its documentation? 2018-08-19T18:44:35Z manumanumanu: they suggest working around the non-parallel bindings using iter's support for "previous x" 2018-08-19T18:44:50Z pjb: Seems like a good advice. 2018-08-19T18:45:01Z Bike: https://common-lisp.net/project/iterate/doc/Parallel-Binding-and-Stepping.html#Parallel-Binding-and-Stepping is what the manual says. 2018-08-19T18:45:08Z Bike: so yes, previous. 2018-08-19T18:45:31Z manumanumanu: (for (repeat 10) (for a previous b initially 0) (for b initially 1 then (+ a b)) (collect b)) still produces 0 1 2 4 8 16 ... 2018-08-19T18:45:39Z rogersm quit (Quit: rogersm) 2018-08-19T18:46:28Z manumanumanu: but replace for with iter* 2018-08-19T18:48:00Z fikka joined #lisp 2018-08-19T18:49:17Z pjb: (iter (repeat 10) (for a previous b initially 0) (for a_-1 previous a) (for b initially 1 then (+ a_-1 b)) (collect b)) #| --> (1 1 2 3 5 8 13 21 34 55) |# 2018-08-19T18:49:58Z manumanumanu: wow. that sucks. 2018-08-19T18:50:18Z manumanumanu: hanks 2018-08-19T18:50:19Z pjb: First time I write ITER, perhaps there's a better way. 2018-08-19T18:50:25Z manumanumanu: thanks 2018-08-19T18:52:54Z asarch: Oh 2018-08-19T18:53:33Z asarch: "Good" in the sense of SQLAlchemy and not just "an ORM" in the sense of SQLObject (both for Python) 2018-08-19T18:54:06Z asarch: But changing the question: any ORM for PostgreSQL in Common Lisp? 2018-08-19T18:55:26Z manumanumanu: pjb: I am implementing something similar myself, but I'll probably go with something more let and let* styled. Like for and for* 2018-08-19T18:55:32Z manumanumanu: thanks again 2018-08-19T18:56:44Z fikka quit (Ping timeout: 244 seconds) 2018-08-19T19:02:51Z zxcvz quit (Quit: zxcvz) 2018-08-19T19:03:15Z zxcvz joined #lisp 2018-08-19T19:06:02Z Fare quit (Ping timeout: 244 seconds) 2018-08-19T19:06:12Z dim: asarch: please don't use ORMs, really 2018-08-19T19:06:50Z dim: asarch: also Postmodern offers some high-level APIs to talk to PostgreSQL, that might be all you need here really 2018-08-19T19:15:08Z random-nick joined #lisp 2018-08-19T19:16:43Z charh joined #lisp 2018-08-19T19:32:33Z ckonstanski joined #lisp 2018-08-19T19:45:17Z doubledup quit (Quit: Leaving) 2018-08-19T19:51:31Z dolohov joined #lisp 2018-08-19T19:52:52Z Shinmera: manumanumanu: Like https://shinmera.github.io/for ? 2018-08-19T19:56:58Z dale joined #lisp 2018-08-19T19:57:38Z Copenhagen_Bram quit (Ping timeout: 272 seconds) 2018-08-19T20:02:35Z shka_ quit (Ping timeout: 276 seconds) 2018-08-19T20:04:21Z Copenhagen_Bram joined #lisp 2018-08-19T20:04:42Z asarch: Thank you dim, thank you very much 2018-08-19T20:05:21Z asarch: That's a very different perspective from Perl/Python where they use a lot of ORMs 2018-08-19T20:07:17Z undulate quit (Quit: WeeChat 2.1) 2018-08-19T20:07:48Z Shinmera: asarch: It's called the object-relational impedance mismatch. 2018-08-19T20:08:32Z asarch: ? 2018-08-19T20:08:40Z asarch takes notes... 2018-08-19T20:09:27Z Shinmera: There's lots of literature out there describing why ORMs are a bad idea. 2018-08-19T20:09:49Z asarch: Really?! 2018-08-19T20:09:51Z asarch: Wow! 2018-08-19T20:10:07Z asarch: They (people at Perl/Python) are wrong then 2018-08-19T20:14:22Z PuercoPop: asarch: Not really, SQLAlchemy provides an SQL Expression API for a reason 2018-08-19T20:14:46Z aeth: asarch: I'm sorry in advance if you're the person I said this to last time this subject came up, but... 2018-08-19T20:14:55Z aeth: asarch: The Common Lisp solution is usually a linguistic solution. 2018-08-19T20:15:33Z aeth: So people in CL normally want something like s-expressioned SQL so they can just treat SQL like a DSL 2018-08-19T20:17:05Z PuercoPop: minion: memo for Fare: I can't find any reference to the QUAKE ORM you mentioned. Do you happen to have a link? 2018-08-19T20:17:05Z minion: Remembered. I'll tell Fare when he/she/it next speaks. 2018-08-19T20:18:29Z asarch: What is "DSL"? 2018-08-19T20:18:39Z aeth: https://en.wikipedia.org/wiki/Domain-specific_language 2018-08-19T20:19:02Z dolohov quit (Quit: WeeChat 2.2) 2018-08-19T20:19:05Z aeth: Essentially, you want to build a language that solves your problem exactly, such as loop or format or cl-ppcre. 2018-08-19T20:19:11Z pjb quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-08-19T20:19:34Z pjb joined #lisp 2018-08-19T20:19:57Z aeth: If your language uses s-expressions it's very easy to integrate into CL. (Those examples don't.) 2018-08-19T20:20:15Z kajo joined #lisp 2018-08-19T20:20:19Z dolohov joined #lisp 2018-08-19T20:20:58Z light2yellow quit (Quit: light2yellow) 2018-08-19T20:21:10Z asarch: Oh :-( 2018-08-19T20:22:35Z asarch: Well, from the point of view of them (Perl/Python people), ORMs are for abstract SQL operations on queries and since (as the On Lisp book says) you can actually create your own programming language with Lisp, I thought this "step" was "natural" 2018-08-19T20:24:28Z aeth: If you can express an SQL query as an s-expression (which is then translated to a string), you can process it in Lisp. Even if this is done entirely at compile time (and at runtime you only have the SQL string), you can still do things with it in macros that generate that macro. 2018-08-19T20:24:35Z fikka joined #lisp 2018-08-19T20:28:24Z asarch: (select :from "users" :where :equal-p ("user" "~a") :and :less-p ("ages" 40)) 2018-08-19T20:28:42Z asarch: Roughly... 2018-08-19T20:28:48Z aeth: Even if you have a CL ORM at some point it's probably just going to be working on SQL-as-s-expressions. (And you could build one on top of such a system.) 2018-08-19T20:28:59Z asarch: I know, I know. It's a bad idea... :-( 2018-08-19T20:29:23Z aeth: http://marijnhaverbeke.nl/postmodern/s-sql.html 2018-08-19T20:29:38Z aeth: Looks like postmodern uses something similar, but they use :select 2018-08-19T20:30:03Z fikka quit (Ping timeout: 268 seconds) 2018-08-19T20:30:05Z aeth: Probably because even the select is a form within something and isn't itself a macro/function 2018-08-19T20:31:29Z aeth: It's not flat like your line, though, which makes sense. You'd want something like (:and (:= ...) (:< ...)) 2018-08-19T20:32:55Z asarch: Yeah, yeah. My code is a fake :-P 2018-08-19T20:33:06Z Copenhagen_Bram quit (Ping timeout: 272 seconds) 2018-08-19T20:35:46Z pierpa joined #lisp 2018-08-19T20:37:32Z Copenhagen_Bram joined #lisp 2018-08-19T20:40:23Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-19T20:42:23Z aeth quit (Ping timeout: 268 seconds) 2018-08-19T20:43:13Z jasmith joined #lisp 2018-08-19T20:43:48Z nowhereman_ joined #lisp 2018-08-19T20:44:00Z aeth joined #lisp 2018-08-19T20:44:51Z kajo joined #lisp 2018-08-19T21:00:58Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-19T21:07:31Z fikka joined #lisp 2018-08-19T21:17:28Z kerrhau quit (Read error: Connection reset by peer) 2018-08-19T21:23:16Z Oladon quit (Quit: Leaving.) 2018-08-19T21:46:26Z desku joined #lisp 2018-08-19T21:47:58Z dmh joined #lisp 2018-08-19T21:50:19Z desku quit (Quit: Leaving) 2018-08-19T21:50:38Z Oladon joined #lisp 2018-08-19T21:54:42Z housel joined #lisp 2018-08-19T21:55:37Z Fare joined #lisp 2018-08-19T22:02:45Z dented42 joined #lisp 2018-08-19T22:04:27Z mooshmoosh quit (Ping timeout: 240 seconds) 2018-08-19T22:06:26Z mooshmoosh joined #lisp 2018-08-19T22:07:09Z graphene quit (Remote host closed the connection) 2018-08-19T22:07:41Z Kundry_Wag joined #lisp 2018-08-19T22:08:27Z graphene joined #lisp 2018-08-19T22:12:02Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-19T22:12:37Z emacsomancer quit (Quit: #hindu) 2018-08-19T22:21:08Z rumbler31 joined #lisp 2018-08-19T22:21:32Z rumbler31 quit (Remote host closed the connection) 2018-08-19T22:34:15Z random-nick quit (Ping timeout: 244 seconds) 2018-08-19T22:35:16Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-19T22:41:02Z quazimodo joined #lisp 2018-08-19T22:41:03Z graphene quit (Remote host closed the connection) 2018-08-19T22:43:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-19T22:45:10Z Kundry_Wag joined #lisp 2018-08-19T22:49:45Z fikka joined #lisp 2018-08-19T22:54:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-19T22:54:19Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-19T22:55:19Z fikka joined #lisp 2018-08-19T22:55:42Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-19T22:59:53Z nckx joined #lisp 2018-08-19T23:11:09Z meepdeew quit (Remote host closed the connection) 2018-08-19T23:25:27Z emaczen quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-19T23:40:35Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-19T23:40:35Z slyrus1 quit (Ping timeout: 240 seconds) 2018-08-19T23:42:45Z emacsomancer joined #lisp 2018-08-19T23:44:45Z Copenhagen_Bram joined #lisp 2018-08-19T23:46:04Z Oddity quit (Ping timeout: 256 seconds) 2018-08-19T23:46:29Z rumbler31 joined #lisp 2018-08-19T23:48:40Z emacsomancer quit (Quit: WeeChat 2.2) 2018-08-19T23:50:03Z rumbler31 quit (Remote host closed the connection) 2018-08-19T23:51:08Z Arcaelyx joined #lisp 2018-08-19T23:52:40Z Oddity joined #lisp 2018-08-19T23:56:24Z Kaisyu joined #lisp 2018-08-19T23:57:30Z nebunez joined #lisp 2018-08-19T23:57:59Z marvin2 joined #lisp 2018-08-20T00:03:22Z ym quit (Ping timeout: 272 seconds) 2018-08-20T00:04:10Z housel quit (Remote host closed the connection) 2018-08-20T00:04:25Z ym joined #lisp 2018-08-20T00:04:37Z housel joined #lisp 2018-08-20T00:10:30Z Kundry_Wag quit (Read error: Connection reset by peer) 2018-08-20T00:16:53Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 25.3.2)) 2018-08-20T00:17:34Z dented42 joined #lisp 2018-08-20T00:20:19Z mason: (:< ...) applies a duck to ... 2018-08-20T00:23:52Z trocado joined #lisp 2018-08-20T00:25:00Z asarch: The "Homer Simpson" operator: ~(_8^(I) 2018-08-20T00:28:04Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T00:28:32Z asarch: People said that if you enter this operator at debug screen at work, you will enter to a hidden place with free beers and donuts 2018-08-20T00:31:19Z Kaisyu7 joined #lisp 2018-08-20T00:33:18Z fikka joined #lisp 2018-08-20T00:33:40Z emacsomancer joined #lisp 2018-08-20T00:38:34Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T00:40:48Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-20T00:41:49Z trocado quit (Quit: rcirc on GNU Emacs 26.1) 2018-08-20T00:42:19Z shifty joined #lisp 2018-08-20T00:43:21Z fikka joined #lisp 2018-08-20T00:46:08Z pierpa quit (Quit: Page closed) 2018-08-20T00:48:23Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T00:53:49Z fikka joined #lisp 2018-08-20T00:57:36Z drmeister: Does anyone know how to make slime change where it puts its cache directory from ~/.slime to somewhere else? 2018-08-20T00:58:27Z drmeister: This doesn't say AFAIK https://common-lisp.net/project/slime/doc/slime-1.0.pdf 2018-08-20T00:59:06Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T01:03:44Z fikka joined #lisp 2018-08-20T01:03:54Z emacsomancer quit (Quit: WeeChat 2.2) 2018-08-20T01:04:14Z stacksmith: drmeister: I use symbolic links 2018-08-20T01:05:34Z drmeister: Thank you. 2018-08-20T01:09:14Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T01:11:19Z Kundry_Wag joined #lisp 2018-08-20T01:13:54Z fikka joined #lisp 2018-08-20T01:18:14Z Kundry_Wag quit (Remote host closed the connection) 2018-08-20T01:18:33Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T01:23:59Z fikka joined #lisp 2018-08-20T01:26:01Z Oladon quit (Quit: Leaving.) 2018-08-20T01:28:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T01:33:56Z mooshmoosh quit (Ping timeout: 272 seconds) 2018-08-20T01:34:53Z fikka joined #lisp 2018-08-20T01:38:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-20T01:39:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T01:43:34Z dale quit (Quit: dale) 2018-08-20T01:44:56Z fikka joined #lisp 2018-08-20T01:49:38Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T01:53:01Z emacsomancer joined #lisp 2018-08-20T01:54:55Z fikka joined #lisp 2018-08-20T02:00:05Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T02:05:04Z fikka joined #lisp 2018-08-20T02:05:44Z Kundry_Wag joined #lisp 2018-08-20T02:09:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T02:10:27Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-20T02:12:00Z robotoad quit (Quit: robotoad) 2018-08-20T02:13:58Z dddddd quit (Remote host closed the connection) 2018-08-20T02:15:12Z fikka joined #lisp 2018-08-20T02:16:16Z no-defun-allowed: do cffi foreign objects get GCed? 2018-08-20T02:16:32Z Bike: no. 2018-08-20T02:17:11Z no-defun-allowed: damn. i have to use foreign-free. 2018-08-20T02:18:33Z no-defun-allowed: i want to pass foreign memory between functions to give to OpenCL as much as possible, and convert them should i need to use a CPU function so i guess i either have to write a GC (yeah no) or free everything naively after each frame of work 2018-08-20T02:18:37Z mason quit (Quit: leaving) 2018-08-20T02:19:50Z LdBeth: How about Boehm GC, #'no-defun-allowed 2018-08-20T02:20:08Z no-defun-allowed: in a lisp environment? sounds dangerous. 2018-08-20T02:20:19Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T02:20:52Z LdBeth: In C 2018-08-20T02:24:42Z Bike: if you use cffi's with-foreign-object or whatever it is, it'll take care of it 2018-08-20T02:25:22Z fikka joined #lisp 2018-08-20T02:26:12Z fikka quit (Read error: Connection reset by peer) 2018-08-20T02:30:41Z mason joined #lisp 2018-08-20T02:33:25Z edgar-rft joined #lisp 2018-08-20T02:35:50Z fikka joined #lisp 2018-08-20T02:36:03Z robotoad joined #lisp 2018-08-20T02:37:21Z no-defun-allowed: i can't pass around the objects if i do that. i'd like to use them as return values 2018-08-20T02:37:48Z robotoad quit (Client Quit) 2018-08-20T02:38:26Z no-defun-allowed: is there a portable type specifier i can use to check if an object is a pointer? 2018-08-20T02:38:38Z marvin2 quit (Ping timeout: 260 seconds) 2018-08-20T02:39:15Z no-defun-allowed: sbcl suggests system-area-pointer 2018-08-20T02:39:22Z Bike: cffi:pointerp function 2018-08-20T02:40:46Z no-defun-allowed: thanks 2018-08-20T02:41:10Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T02:41:35Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-20T02:46:20Z fikka joined #lisp 2018-08-20T02:48:18Z igemnace joined #lisp 2018-08-20T02:49:03Z beach: Good morning everyone! 2018-08-20T02:51:26Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T02:55:20Z slyrus1 joined #lisp 2018-08-20T02:56:22Z fikka joined #lisp 2018-08-20T03:01:34Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T03:02:46Z LdBeth: https://www.amazon.es/Clozure-CL-Lambert-M-Surhone/dp/6134588504 2018-08-20T03:03:00Z LdBeth: Does anyone know what this book talks about? 2018-08-20T03:05:05Z beach: It looks like a user manual for Clozure Common Lisp. 2018-08-20T03:06:20Z fikka joined #lisp 2018-08-20T03:06:35Z beach: https://www.betterworldbooks.com/product/detail/clozure-cl-6134588504 has a short description. 2018-08-20T03:08:23Z earl-ducaine quit (Remote host closed the connection) 2018-08-20T03:11:28Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T03:12:00Z LdBeth: Thanks 2018-08-20T03:16:29Z fikka joined #lisp 2018-08-20T03:18:05Z djinni` quit (Quit: Leaving) 2018-08-20T03:20:50Z nebunez quit (Ping timeout: 256 seconds) 2018-08-20T03:21:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T03:26:39Z fikka joined #lisp 2018-08-20T03:28:36Z jeosol quit (Quit: Page closed) 2018-08-20T03:28:48Z emacsomancer quit (Ping timeout: 260 seconds) 2018-08-20T03:30:04Z djinni` joined #lisp 2018-08-20T03:30:48Z pierpal quit (Quit: Poof) 2018-08-20T03:31:05Z pierpal joined #lisp 2018-08-20T03:32:22Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T03:37:10Z fikka joined #lisp 2018-08-20T03:37:51Z emacsomancer joined #lisp 2018-08-20T03:38:58Z asarch quit (Quit: Leaving) 2018-08-20T03:39:29Z Oladon joined #lisp 2018-08-20T03:41:44Z dingusman joined #lisp 2018-08-20T03:42:47Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T03:47:21Z fikka joined #lisp 2018-08-20T03:51:31Z Bike quit (Quit: Lost terminal) 2018-08-20T03:52:00Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T03:54:44Z dingusman quit (Remote host closed the connection) 2018-08-20T03:57:30Z fikka joined #lisp 2018-08-20T03:58:44Z moei quit (Quit: Leaving...) 2018-08-20T04:02:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T04:06:02Z ckonstanski quit (Remote host closed the connection) 2018-08-20T04:07:39Z fikka joined #lisp 2018-08-20T04:12:33Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T04:17:05Z housel quit (Remote host closed the connection) 2018-08-20T04:17:31Z housel joined #lisp 2018-08-20T04:17:50Z fikka joined #lisp 2018-08-20T04:20:23Z quazimodo joined #lisp 2018-08-20T04:20:53Z no-defun-allowed: morning beach 2018-08-20T04:23:05Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T04:26:07Z megalography joined #lisp 2018-08-20T04:27:58Z fikka joined #lisp 2018-08-20T04:28:50Z fikka quit (Read error: Connection reset by peer) 2018-08-20T04:31:16Z Fare quit (Ping timeout: 244 seconds) 2018-08-20T04:48:43Z fikka joined #lisp 2018-08-20T04:53:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T04:58:49Z fikka joined #lisp 2018-08-20T05:04:12Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T05:09:05Z fikka joined #lisp 2018-08-20T05:14:26Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T05:19:20Z fikka joined #lisp 2018-08-20T05:22:34Z housel quit (Ping timeout: 272 seconds) 2018-08-20T05:23:12Z shifty quit (Ping timeout: 272 seconds) 2018-08-20T05:24:50Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T05:28:52Z slyrus1 quit (Quit: slyrus1) 2018-08-20T05:29:18Z slyrus1 joined #lisp 2018-08-20T05:29:20Z fikka joined #lisp 2018-08-20T05:33:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T05:34:17Z Inline quit (Quit: Leaving) 2018-08-20T05:37:57Z slyrus1 quit (Ping timeout: 240 seconds) 2018-08-20T05:39:51Z fikka joined #lisp 2018-08-20T05:42:57Z dented42 joined #lisp 2018-08-20T05:44:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T05:48:08Z dented42 quit (Ping timeout: 268 seconds) 2018-08-20T05:49:31Z Oladon quit (Quit: Leaving.) 2018-08-20T05:49:58Z fikka joined #lisp 2018-08-20T05:54:41Z vlatkoB joined #lisp 2018-08-20T05:54:58Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T05:57:02Z slyrus1 joined #lisp 2018-08-20T05:57:17Z slyrus1 quit (Client Quit) 2018-08-20T05:57:37Z slyrus1 joined #lisp 2018-08-20T06:00:27Z fikka joined #lisp 2018-08-20T06:05:02Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T06:07:19Z megalography quit (Quit: Leaving.) 2018-08-20T06:10:22Z fikka joined #lisp 2018-08-20T06:15:14Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T06:16:07Z krwq joined #lisp 2018-08-20T06:20:31Z fikka joined #lisp 2018-08-20T06:25:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T06:30:37Z fikka joined #lisp 2018-08-20T06:31:30Z fikka quit (Read error: Connection reset by peer) 2018-08-20T06:35:06Z tralala joined #lisp 2018-08-20T06:38:20Z kajokajo joined #lisp 2018-08-20T06:39:12Z bars0 quit (Ping timeout: 272 seconds) 2018-08-20T06:41:10Z fikka joined #lisp 2018-08-20T06:42:10Z shrdlu68 joined #lisp 2018-08-20T06:42:11Z kajo quit (Ping timeout: 276 seconds) 2018-08-20T06:46:48Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T06:51:25Z fikka joined #lisp 2018-08-20T06:53:39Z schjetne joined #lisp 2018-08-20T06:56:29Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T07:00:35Z greaser|q quit (Remote host closed the connection) 2018-08-20T07:01:40Z fikka joined #lisp 2018-08-20T07:06:53Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T07:08:34Z Kundry_Wag joined #lisp 2018-08-20T07:11:39Z fikka joined #lisp 2018-08-20T07:13:20Z Kundry_Wag quit (Ping timeout: 265 seconds) 2018-08-20T07:17:12Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T07:17:55Z shifty joined #lisp 2018-08-20T07:19:38Z krwq quit (Remote host closed the connection) 2018-08-20T07:21:49Z fikka joined #lisp 2018-08-20T07:27:20Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T07:33:44Z angavrilov joined #lisp 2018-08-20T07:40:41Z Orion3k quit (Ping timeout: 276 seconds) 2018-08-20T07:42:30Z fikka joined #lisp 2018-08-20T07:47:50Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T07:52:41Z fikka joined #lisp 2018-08-20T07:57:43Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T07:58:05Z vlatkoB quit (Quit: No Ping reply in 180 seconds.) 2018-08-20T07:59:50Z vlatkoB joined #lisp 2018-08-20T08:02:49Z fikka joined #lisp 2018-08-20T08:03:05Z flamebeard joined #lisp 2018-08-20T08:08:07Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T08:08:14Z pierpal quit (Quit: Poof) 2018-08-20T08:08:31Z pierpal joined #lisp 2018-08-20T08:09:18Z marvin2 joined #lisp 2018-08-20T08:10:06Z moei joined #lisp 2018-08-20T08:11:40Z shrdlu68 quit (Ping timeout: 272 seconds) 2018-08-20T08:23:11Z fikka joined #lisp 2018-08-20T08:28:22Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T08:30:27Z troydm quit (Ping timeout: 240 seconds) 2018-08-20T08:38:50Z zfree joined #lisp 2018-08-20T08:41:50Z dim: it seems like a file I added to my pgloader.asd definition isn't getting loaded by ASDF, how does one go about debugging that? 2018-08-20T08:42:26Z dim: there's no error about the file at asdf:load-system time, only the definitions that the file should be providing are not provided... 2018-08-20T08:42:47Z logicmoo is now known as dmiles 2018-08-20T08:42:50Z dim: and the file begins with the expected in-package form 2018-08-20T08:43:52Z fikka joined #lisp 2018-08-20T08:49:03Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T08:51:32Z dim: (asdf:find-component "pgloader" '("src" "sources" "pgsql" "pgsql-cast-rules")) finds the component, after all 2018-08-20T08:54:00Z fikka joined #lisp 2018-08-20T08:54:26Z zfree quit (Remote host closed the connection) 2018-08-20T08:54:54Z _death: put (error "I got loaded") in the file to test this hypothesis 2018-08-20T08:59:07Z dim: I got loaded! [Condition of type SIMPLE-ERROR] 2018-08-20T08:59:09Z dim: nice 2018-08-20T08:59:20Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T09:00:29Z _death: if you're using quicklisp, may want to use :verbose t 2018-08-20T09:00:52Z dim: I've also been using asdf:load-system directly 2018-08-20T09:01:09Z dim: symptom is a defparameter that remains unset 2018-08-20T09:02:47Z _death: after the defparameter, (error "Here's the value ~S" *foo*) 2018-08-20T09:03:27Z impulse quit (Ping timeout: 240 seconds) 2018-08-20T09:04:07Z fikka joined #lisp 2018-08-20T09:06:32Z dim: found it: elsewhere it gets overloaded (defparameter *pgsql-default-cast-rules* '() "No transformation by default.") 2018-08-20T09:06:35Z dim: thanks! 2018-08-20T09:07:27Z troydm joined #lisp 2018-08-20T09:07:37Z shka_ joined #lisp 2018-08-20T09:07:56Z dim: once more the bug is that everything works as specified. 2018-08-20T09:08:28Z _death: ;) 2018-08-20T09:09:03Z dim: hehe, I might tweet that ;-) 2018-08-20T09:09:10Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T09:09:59Z random-nick joined #lisp 2018-08-20T09:11:51Z dim: context of my inquiry: https://github.com/dimitri/pgloader/commit/fc3a1949f74bbfbebdbc023d6e55dc15e5d6df33 2018-08-20T09:14:18Z fikka joined #lisp 2018-08-20T09:19:07Z schweers joined #lisp 2018-08-20T09:19:29Z fikka quit (Ping timeout: 265 seconds) 2018-08-20T09:24:29Z fikka joined #lisp 2018-08-20T09:26:26Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-20T09:28:01Z quazimodo joined #lisp 2018-08-20T09:29:23Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T09:45:11Z fikka joined #lisp 2018-08-20T09:50:30Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T09:54:02Z steiner quit (Remote host closed the connection) 2018-08-20T09:54:27Z steiner joined #lisp 2018-08-20T09:59:18Z dim: there, I now should have support for pg->pg and redshift->pg in pgloader ;-) 2018-08-20T10:05:27Z fikka joined #lisp 2018-08-20T10:06:59Z xsperry joined #lisp 2018-08-20T10:10:44Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T10:15:38Z fikka joined #lisp 2018-08-20T10:20:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T10:21:15Z xsperry quit (Quit: CGI:IRC (Ping timeout)) 2018-08-20T10:24:23Z atgreen joined #lisp 2018-08-20T10:25:47Z fikka joined #lisp 2018-08-20T10:30:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T10:30:59Z orivej quit (Ping timeout: 276 seconds) 2018-08-20T10:34:06Z charh quit (Remote host closed the connection) 2018-08-20T10:36:00Z fikka joined #lisp 2018-08-20T10:36:51Z fikka quit (Read error: Connection reset by peer) 2018-08-20T10:39:21Z abbe quit (Ping timeout: 240 seconds) 2018-08-20T10:41:02Z eschulte joined #lisp 2018-08-20T10:42:00Z abbe joined #lisp 2018-08-20T10:43:32Z beach: Talk to me about implementing TYPEP, specifically for SICL first-class global environments. 2018-08-20T10:45:06Z beach: Some atomic types expand to non-atomic ones, so those will be encoded as type expanders in the environment. 2018-08-20T10:45:37Z eschulte quit (Quit: leaving) 2018-08-20T10:46:24Z beach: Some might be names of classes. 2018-08-20T10:46:30Z fikka joined #lisp 2018-08-20T10:46:54Z eschulte joined #lisp 2018-08-20T10:46:56Z beach: In which case, the class needs to be a superclass of the CLASS-OF applied to the object that is being asked about, right? 2018-08-20T10:47:06Z steiner quit (Read error: Connection reset by peer) 2018-08-20T10:47:59Z m00natic joined #lisp 2018-08-20T10:50:40Z beach: What atomic type specifiers are neither system classes nor equivalent to some other type specifier? 2018-08-20T10:51:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T10:51:42Z beach: Are there any? 2018-08-20T10:51:55Z beach: Maybe it was designed so that there aren't any like that. 2018-08-20T10:53:57Z no-defun-allowed: Are structs equivalent to anything? 2018-08-20T10:54:07Z steiner joined #lisp 2018-08-20T10:54:11Z no-defun-allowed: I think structs aren't "system classes". 2018-08-20T10:54:22Z beach: Right they are structure classes. 2018-08-20T10:54:40Z beach: Or rather structure objects. 2018-08-20T10:54:49Z beach: clhs structure-object 2018-08-20T10:54:49Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_stu_ob.htm 2018-08-20T10:55:57Z bendersteed joined #lisp 2018-08-20T10:56:16Z no-defun-allowed: Structures aren't equivalent to structure-object, just subclasses. Same with CLOS objects too I believe. 2018-08-20T10:56:36Z fikka joined #lisp 2018-08-20T10:58:40Z jackdaniel: beach: I'm not sure if I understand the question, but single-float for instance is a type (subtype of float) designated by an atom. spec doesn't mandate single-float having its own class 2018-08-20T10:58:40Z beach: Sort of. STANDARD-OBJECT is the superclass of all classes defined using DEFCLASS. 2018-08-20T10:59:23Z beach: jackdaniel: Right you are. 2018-08-20T11:01:12Z beach: But isn't it either a class or it expands to (float low high)? 2018-08-20T11:01:54Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T11:02:29Z jackdaniel: in 16.1.3 single-float is a builtin-class, but before that it didn't expand to that, no 2018-08-20T11:02:33Z jackdaniel: in ECL 16.1.3 2018-08-20T11:02:45Z beach: no-defun-allowed: I haven't checked for structures, but I imagine there is something analogous to say about them. 2018-08-20T11:02:58Z steiner quit (Remote host closed the connection) 2018-08-20T11:03:11Z zxcvz quit (Quit: zxcvz) 2018-08-20T11:03:46Z zxcvz joined #lisp 2018-08-20T11:03:55Z jackdaniel: (or maybe it did but I remember wrong, I'm not 100% sure) 2018-08-20T11:04:04Z beach: jackdaniel: I am asking whether there are atomic type specifiers that must be neither. I.e., neither system classes nor equivalent to some compound type specifier. 2018-08-20T11:05:01Z beach: jackdaniel: Or, on the contrary, is it possible to implement the type system so that every atomic type specifier is either a class or it expands to some other type specifier. 2018-08-20T11:05:26Z Kundry_Wag joined #lisp 2018-08-20T11:06:50Z fikka joined #lisp 2018-08-20T11:06:58Z beach: no-defun-allowed: By the way, there is no definition of "CLOS class" in the Common Lisp HyperSpec. If there were, it would very likely be "any Common Lisp class", since every class is part of the Common Lisp object system. 2018-08-20T11:07:30Z no-defun-allowed: Fair enough. 2018-08-20T11:08:09Z no-defun-allowed: I had expected that they would have some special type as they have the wonderful SLOT-VALUE defined for them. 2018-08-20T11:08:57Z beach: They have a special name and it is "standard classes". 2018-08-20T11:09:10Z beach: clhs standard-class 2018-08-20T11:09:10Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm 2018-08-20T11:09:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-20T11:10:08Z steiner joined #lisp 2018-08-20T11:10:11Z no-defun-allowed: You learn something every day. Thanks. 2018-08-20T11:10:21Z beach: Anytime. 2018-08-20T11:10:33Z beach: jackdaniel: Maybe I am not expressing my question very well. 2018-08-20T11:11:08Z no-defun-allowed: Would you mind if I could ask you some questions about your work in PMs? 2018-08-20T11:11:36Z beach: Go ahead if you don't think it would interest #lisp. 2018-08-20T11:12:17Z no-defun-allowed: It's not exactly Lisp specific, more work ethic. 2018-08-20T11:12:23Z beach: OK then. 2018-08-20T11:12:35Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T11:12:42Z beach: Now supposing I am right, what if some atomic type specifier has both a type expansion associated with it AND it is a class named like that. Which one takes priority. 2018-08-20T11:15:34Z jackdaniel: whichever was defined later [with a warning]? 2018-08-20T11:15:45Z beach: Hmm. 2018-08-20T11:16:51Z TMA joined #lisp 2018-08-20T11:16:55Z fikka joined #lisp 2018-08-20T11:17:23Z zxcvz left #lisp 2018-08-20T11:18:15Z zxcvz joined #lisp 2018-08-20T11:19:38Z beach: So the algorithm would be: If it is a compound type specifier that is treated specially, like AND, OR, NOT, MEMBER, EQL, then do the special processing. 2018-08-20T11:20:04Z beach: If it is compound then first check that the object is of the type indicated by the CAR. 2018-08-20T11:21:04Z beach: Then check that the object corresponds to the rest of the type specifier. This processing is specific for each CAR. 2018-08-20T11:21:33Z beach: Otherwise, it is an atomic type specifier, so see if it expands to something, if so, recursively process the expansion. 2018-08-20T11:21:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T11:22:22Z beach: Otherwise, check that there is a class of the name, take the CLASS-OF the object and check that it is an instance of the class of that name. 2018-08-20T11:22:24Z beach: Simple. 2018-08-20T11:22:56Z schjetne quit (Ping timeout: 272 seconds) 2018-08-20T11:24:45Z rocx quit (Remote host closed the connection) 2018-08-20T11:25:18Z dddddd joined #lisp 2018-08-20T11:27:07Z fikka joined #lisp 2018-08-20T11:28:44Z kajokajo is now known as kajo 2018-08-20T11:30:19Z edgar-rft quit (Quit: Leaving) 2018-08-20T11:32:07Z pierpal quit (Quit: Poof) 2018-08-20T11:32:14Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T11:32:24Z pierpal joined #lisp 2018-08-20T11:36:16Z lumm joined #lisp 2018-08-20T11:37:19Z fikka joined #lisp 2018-08-20T11:38:07Z fikka quit (Read error: Connection reset by peer) 2018-08-20T11:42:06Z pierpal quit (Ping timeout: 268 seconds) 2018-08-20T11:43:37Z beach: So it sounds like two generic functions: (typep object type environment) and (typep-compound object atomic-type subsidiary-type-information environment) 2018-08-20T11:44:03Z ebrasca quit (Remote host closed the connection) 2018-08-20T11:47:50Z fikka joined #lisp 2018-08-20T11:48:27Z beach: Now, who is going to implement this for me? 2018-08-20T11:48:53Z atgreen quit (Ping timeout: 244 seconds) 2018-08-20T11:49:38Z beach: By the way CLASS-OF must also be a generic function (class-of object environment). That way, we can return FIXNUM in some environment and INTEGER is some other. 2018-08-20T11:50:08Z beach: I mean, we can return in some and in some other. 2018-08-20T11:52:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T11:52:43Z Arcaelyx_ joined #lisp 2018-08-20T11:54:05Z beach: No takers? 2018-08-20T11:54:07Z beach: Oh well. 2018-08-20T11:56:47Z Arcaelyx quit (Ping timeout: 276 seconds) 2018-08-20T11:58:00Z fikka joined #lisp 2018-08-20T11:58:46Z shka_: beach: sorry :( 2018-08-20T12:01:46Z atgreen joined #lisp 2018-08-20T12:03:17Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T12:03:34Z mkolenda joined #lisp 2018-08-20T12:08:12Z fikka joined #lisp 2018-08-20T12:09:07Z beach: It's OK. It is probably faster if I do it myself. 2018-08-20T12:09:43Z beach: But I need it soon, because my bootstrapping code needs to verify the type of things, and currently it calls the host TYPEP and that is just completely wrong. 2018-08-20T12:12:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T12:13:39Z lnostdal quit (Read error: Connection reset by peer) 2018-08-20T12:14:44Z orivej joined #lisp 2018-08-20T12:18:21Z fikka joined #lisp 2018-08-20T12:22:50Z lnostdal joined #lisp 2018-08-20T12:23:42Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T12:24:34Z Kundry_Wag joined #lisp 2018-08-20T12:27:41Z Kundry_Wag quit (Remote host closed the connection) 2018-08-20T12:28:30Z fikka joined #lisp 2018-08-20T12:33:50Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T12:38:37Z fikka joined #lisp 2018-08-20T12:39:00Z pierpal joined #lisp 2018-08-20T12:41:28Z pierpal quit (Remote host closed the connection) 2018-08-20T12:43:46Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T12:45:59Z pierpal joined #lisp 2018-08-20T12:49:07Z fikka joined #lisp 2018-08-20T12:54:15Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T12:58:16Z orivej quit (Ping timeout: 256 seconds) 2018-08-20T13:01:01Z lagagain joined #lisp 2018-08-20T13:03:37Z Bike joined #lisp 2018-08-20T13:09:28Z fikka joined #lisp 2018-08-20T13:11:18Z Kundry_Wag joined #lisp 2018-08-20T13:14:08Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T13:15:41Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-20T13:19:40Z fikka joined #lisp 2018-08-20T13:21:36Z Guest5800_ joined #lisp 2018-08-20T13:24:45Z shka_: beach: so you are working rather intensly on bootstraping? 2018-08-20T13:24:54Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T13:29:02Z light2yellow joined #lisp 2018-08-20T13:29:45Z beach: Yeah. I was not happy with the way I did it the first time. So I am doing it over again, this time taking my experience into account. 2018-08-20T13:29:52Z fikka joined #lisp 2018-08-20T13:30:29Z beach: And I noticed some holes in the system, like no TYPEP for first-class global environments. 2018-08-20T13:30:30Z milanj joined #lisp 2018-08-20T13:33:45Z Fare joined #lisp 2018-08-20T13:34:35Z beach: Fare: I think there is something wrong with the logs on Tunes. 2018-08-20T13:34:47Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T13:40:00Z fikka joined #lisp 2018-08-20T13:40:51Z fikka quit (Read error: Connection reset by peer) 2018-08-20T13:45:50Z Fare: beach, :-( 2018-08-20T13:45:50Z minion: Fare, memo from PuercoPop: I can't find any reference to the QUAKE ORM you mentioned. Do you happen to have a link? 2018-08-20T13:46:17Z Fare: PuercoPop, it's part of the QUUX tarball release of ITA Software code. 2018-08-20T13:46:49Z Fare: https://common-lisp.net/project/qitab/ 2018-08-20T13:49:35Z orivej joined #lisp 2018-08-20T13:50:30Z fikka joined #lisp 2018-08-20T13:55:44Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T13:55:57Z shka_: i am getting illegal terminating character after a colon: #\| 2018-08-20T13:56:01Z shka_: when loading postmodern 2018-08-20T13:56:07Z shka_: looks familiar? 2018-08-20T14:00:40Z fikka joined #lisp 2018-08-20T14:05:04Z flamebeard quit (Ping timeout: 272 seconds) 2018-08-20T14:05:13Z tralala quit (Ping timeout: 260 seconds) 2018-08-20T14:06:08Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T14:06:31Z edgar-rft joined #lisp 2018-08-20T14:08:47Z Inline joined #lisp 2018-08-20T14:10:16Z lel quit (Quit: lel) 2018-08-20T14:10:48Z fikka joined #lisp 2018-08-20T14:13:42Z bendersteed quit (Ping timeout: 260 seconds) 2018-08-20T14:16:28Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T14:18:14Z sjl joined #lisp 2018-08-20T14:19:07Z Fare quit (Ping timeout: 260 seconds) 2018-08-20T14:20:57Z fikka joined #lisp 2018-08-20T14:23:30Z Xach: shka_: i have not seen that. in what file? 2018-08-20T14:26:08Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T14:27:14Z orivej quit (Ping timeout: 256 seconds) 2018-08-20T14:31:11Z fikka joined #lisp 2018-08-20T14:32:51Z cage_ joined #lisp 2018-08-20T14:35:37Z schjetne joined #lisp 2018-08-20T14:36:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T14:39:05Z warweasle is now known as warweasle_afk 2018-08-20T14:39:44Z fikka joined #lisp 2018-08-20T14:45:07Z Arcaelyx_ quit (Remote host closed the connection) 2018-08-20T14:45:15Z housel joined #lisp 2018-08-20T14:56:00Z FreeBirdLjj joined #lisp 2018-08-20T14:56:05Z dale_ joined #lisp 2018-08-20T14:56:24Z dale_ is now known as dale 2018-08-20T15:01:38Z steiner quit (Remote host closed the connection) 2018-08-20T15:01:56Z steiner joined #lisp 2018-08-20T15:02:36Z jkordani joined #lisp 2018-08-20T15:02:59Z Copenhagen_Bram joined #lisp 2018-08-20T15:04:48Z fade joined #lisp 2018-08-20T15:11:03Z eddof13 joined #lisp 2018-08-20T15:11:31Z orivej joined #lisp 2018-08-20T15:15:40Z pierpal quit (Quit: Poof) 2018-08-20T15:15:57Z pierpal joined #lisp 2018-08-20T15:31:07Z Fare joined #lisp 2018-08-20T15:33:07Z pierpal quit (Quit: Poof) 2018-08-20T15:33:26Z pierpal joined #lisp 2018-08-20T15:40:51Z warweasle_afk is now known as warweasle 2018-08-20T15:40:55Z shka_: Xach: one second, let me check 2018-08-20T15:41:14Z rippa joined #lisp 2018-08-20T15:41:55Z cgay quit (Remote host closed the connection) 2018-08-20T15:43:11Z doubledup joined #lisp 2018-08-20T15:50:05Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-20T15:50:48Z cgay joined #lisp 2018-08-20T15:51:35Z nowhereman_ quit (Ping timeout: 240 seconds) 2018-08-20T15:56:09Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-20T15:58:13Z Copenhagen_Bram joined #lisp 2018-08-20T16:02:51Z shka_: Xach: after nuking cache and restarting sbcl, freshly loaded postmodern works just fine 2018-08-20T16:03:04Z shka_: so i guess this is a glitch in my setup 2018-08-20T16:03:31Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-20T16:04:02Z fikka quit (Ping timeout: 255 seconds) 2018-08-20T16:09:39Z fikka joined #lisp 2018-08-20T16:14:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T16:17:55Z fikka joined #lisp 2018-08-20T16:18:04Z pierpal quit (Quit: Poof) 2018-08-20T16:18:18Z nika joined #lisp 2018-08-20T16:18:20Z pierpal joined #lisp 2018-08-20T16:19:07Z vlatkoB quit (Remote host closed the connection) 2018-08-20T16:20:29Z vlatkoB joined #lisp 2018-08-20T16:20:42Z Xach: ok 2018-08-20T16:23:17Z housel quit (Read error: Connection reset by peer) 2018-08-20T16:25:11Z housel joined #lisp 2018-08-20T16:29:59Z dmiles: beach: what is the name of your lisp-in-lisp ? 2018-08-20T16:30:26Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T16:35:12Z beach: minion: Please tell dmiles about SICL. 2018-08-20T16:35:13Z minion: dmiles: 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 2018-08-20T16:35:19Z beach: minion: Please tell dmiles about Cleavir. 2018-08-20T16:35:19Z minion: dmiles: 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 2018-08-20T16:35:28Z beach: dmiles: Don't try it. It is not finished. 2018-08-20T16:36:24Z fikka joined #lisp 2018-08-20T16:36:26Z Fare quit (Ping timeout: 272 seconds) 2018-08-20T16:36:40Z dmiles: [09:27] <+dmiles> common lisp interpreter though is 90k lines of .lisp [09:27] <@naturalog> ok but is not 100% lisp [09:28] <@naturalog> is not a pure self interpretr [09:28] <+dmiles> i am refering to one lisp ... it has nothing but lisp code.. no other language 2018-08-20T16:36:59Z dmiles: wanted to pass the name to hime 2018-08-20T16:37:11Z beach: OK. 2018-08-20T16:37:38Z beach: dmiles: SICL is not a "Lisp interpreter" though. 2018-08-20T16:39:06Z Jesin joined #lisp 2018-08-20T16:39:15Z dmiles: #'eval will work at least in teh short term? 2018-08-20T16:39:33Z beach: Not for many months yet. 2018-08-20T16:39:46Z beach: But that's unrelated to the fact that it is not an interpreter. 2018-08-20T16:40:53Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-20T16:40:58Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T16:41:21Z beach: dmiles: Do you see what I am saying? 2018-08-20T16:42:24Z dmiles: is it not an interpreter in the way that SBCL is not an interpeter? 2018-08-20T16:42:30Z beach: Right. 2018-08-20T16:42:37Z dmiles: that is that it compiles every form first 2018-08-20T16:42:43Z beach: Correcct. 2018-08-20T16:42:47Z beach: Correct, even. 2018-08-20T16:46:29Z fikka joined #lisp 2018-08-20T16:48:09Z nowhereman_ joined #lisp 2018-08-20T16:49:08Z asarch joined #lisp 2018-08-20T16:51:40Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T16:53:40Z meepdeew joined #lisp 2018-08-20T17:04:23Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-20T17:06:35Z fikka joined #lisp 2018-08-20T17:07:22Z pjb: Let's correct correctly the word "correct". 2018-08-20T17:07:24Z varjagg joined #lisp 2018-08-20T17:11:34Z helloh0la joined #lisp 2018-08-20T17:12:02Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T17:14:22Z Jesin quit (Read error: Connection reset by peer) 2018-08-20T17:14:25Z FreeBirdLjj joined #lisp 2018-08-20T17:16:47Z fikka joined #lisp 2018-08-20T17:17:37Z dmh quit (Quit: Connection closed for inactivity) 2018-08-20T17:19:29Z helloh0la: hi im new in the channel 2018-08-20T17:21:46Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T17:22:36Z m00natic quit (Remote host closed the connection) 2018-08-20T17:25:33Z Fare joined #lisp 2018-08-20T17:25:35Z Bike: What is up. 2018-08-20T17:26:54Z fikka joined #lisp 2018-08-20T17:28:17Z Jesin joined #lisp 2018-08-20T17:32:22Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T17:33:40Z helloh0la left #lisp 2018-08-20T17:37:28Z fikka joined #lisp 2018-08-20T17:42:56Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T17:43:12Z blackadder is now known as SaganMan 2018-08-20T17:47:40Z fikka joined #lisp 2018-08-20T17:50:41Z Jesin quit (Remote host closed the connection) 2018-08-20T17:50:43Z igemnace quit (Quit: WeeChat 2.2) 2018-08-20T17:51:05Z dmiles quit (Ping timeout: 240 seconds) 2018-08-20T17:52:59Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T17:57:07Z Jesin joined #lisp 2018-08-20T17:57:45Z fikka joined #lisp 2018-08-20T17:58:49Z Khisanth quit (Ping timeout: 244 seconds) 2018-08-20T18:03:11Z Jesin quit (Read error: Connection reset by peer) 2018-08-20T18:03:23Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T18:04:27Z fourier joined #lisp 2018-08-20T18:05:44Z Kundry_Wag joined #lisp 2018-08-20T18:06:40Z fourier quit (Remote host closed the connection) 2018-08-20T18:07:58Z fikka joined #lisp 2018-08-20T18:09:56Z dmiles joined #lisp 2018-08-20T18:10:02Z mathrick quit (Ping timeout: 255 seconds) 2018-08-20T18:10:49Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-20T18:11:29Z Khisanth joined #lisp 2018-08-20T18:11:30Z meepdeew quit (Remote host closed the connection) 2018-08-20T18:12:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T18:15:46Z Jesin joined #lisp 2018-08-20T18:16:47Z Fare quit (Ping timeout: 255 seconds) 2018-08-20T18:18:10Z fikka joined #lisp 2018-08-20T18:20:38Z impulse joined #lisp 2018-08-20T18:21:33Z eschulte quit (Quit: leaving) 2018-08-20T18:21:38Z mathrick joined #lisp 2018-08-20T18:23:32Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T18:24:20Z meepdeew joined #lisp 2018-08-20T18:26:38Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-20T18:27:33Z Fare joined #lisp 2018-08-20T18:28:17Z fikka joined #lisp 2018-08-20T18:29:09Z fikka quit (Read error: Connection reset by peer) 2018-08-20T18:30:20Z X-Scale quit (Ping timeout: 268 seconds) 2018-08-20T18:31:07Z sauvin quit (Remote host closed the connection) 2018-08-20T18:31:58Z msb quit (Ping timeout: 256 seconds) 2018-08-20T18:33:10Z AeroNotix quit (Ping timeout: 256 seconds) 2018-08-20T18:34:46Z AeroNotix joined #lisp 2018-08-20T18:36:29Z milanj quit (Quit: This computer has gone to sleep) 2018-08-20T18:37:08Z marvin2 quit (Ping timeout: 256 seconds) 2018-08-20T18:37:34Z msb joined #lisp 2018-08-20T18:38:50Z fikka joined #lisp 2018-08-20T18:39:33Z jack_rabbit joined #lisp 2018-08-20T18:40:34Z random-nick quit (Read error: Connection reset by peer) 2018-08-20T18:43:09Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-20T18:44:20Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T18:44:43Z nika quit (Quit: Leaving...) 2018-08-20T18:48:57Z fikka joined #lisp 2018-08-20T18:53:09Z nowhereman_ quit (Ping timeout: 268 seconds) 2018-08-20T18:53:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-20T18:56:24Z orivej quit (Ping timeout: 272 seconds) 2018-08-20T18:57:57Z Denommus joined #lisp 2018-08-20T18:59:51Z fikka joined #lisp 2018-08-20T19:01:15Z eschulte joined #lisp 2018-08-20T19:01:18Z nowhereman_ joined #lisp 2018-08-20T19:04:54Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T19:09:11Z eddof13 quit (Ping timeout: 268 seconds) 2018-08-20T19:09:54Z fikka joined #lisp 2018-08-20T19:10:00Z meepdeew quit (Remote host closed the connection) 2018-08-20T19:10:30Z charh joined #lisp 2018-08-20T19:12:52Z Copenhagen_Bram quit (Ping timeout: 272 seconds) 2018-08-20T19:13:16Z al-damiri joined #lisp 2018-08-20T19:14:56Z random-nick joined #lisp 2018-08-20T19:14:57Z fikka quit (Ping timeout: 265 seconds) 2018-08-20T19:19:51Z fikka joined #lisp 2018-08-20T19:21:12Z milanj joined #lisp 2018-08-20T19:25:32Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T19:26:48Z ym quit (Quit: Leaving) 2018-08-20T19:27:07Z Copenhagen_Bram joined #lisp 2018-08-20T19:30:01Z fikka joined #lisp 2018-08-20T19:32:07Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-20T19:32:35Z cage_ quit (Quit: Leaving) 2018-08-20T19:33:47Z shifty quit (Remote host closed the connection) 2018-08-20T19:35:41Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T19:37:49Z X-Scale joined #lisp 2018-08-20T19:40:11Z fikka joined #lisp 2018-08-20T19:43:35Z Oddity quit (Ping timeout: 240 seconds) 2018-08-20T19:45:48Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T19:50:00Z Oddity joined #lisp 2018-08-20T19:50:52Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-20T19:54:12Z flazh1 joined #lisp 2018-08-20T19:55:29Z flazh quit (Ping timeout: 256 seconds) 2018-08-20T19:55:29Z Combinatorialist quit (Ping timeout: 256 seconds) 2018-08-20T19:55:29Z djinni` quit (Ping timeout: 256 seconds) 2018-08-20T19:55:30Z kozy quit (Ping timeout: 256 seconds) 2018-08-20T19:55:30Z mrSpec quit (Ping timeout: 256 seconds) 2018-08-20T19:56:39Z djinni` joined #lisp 2018-08-20T19:58:31Z dkmueller joined #lisp 2018-08-20T20:00:50Z fikka joined #lisp 2018-08-20T20:01:38Z kozy joined #lisp 2018-08-20T20:03:06Z vlatkoB quit (Remote host closed the connection) 2018-08-20T20:03:24Z jack_rabbit joined #lisp 2018-08-20T20:06:11Z fikka quit (Ping timeout: 265 seconds) 2018-08-20T20:08:59Z al-damiri quit (Ping timeout: 256 seconds) 2018-08-20T20:08:59Z cpape quit (Read error: Connection reset by peer) 2018-08-20T20:08:59Z Kevslinger quit (Ping timeout: 256 seconds) 2018-08-20T20:08:59Z pjb quit (Read error: Connection reset by peer) 2018-08-20T20:08:59Z Blkt quit (Ping timeout: 256 seconds) 2018-08-20T20:09:05Z grumble quit (Read error: Connection reset by peer) 2018-08-20T20:09:08Z gurmble joined #lisp 2018-08-20T20:09:22Z gurmble is now known as grumble 2018-08-20T20:09:34Z nowhereman_ joined #lisp 2018-08-20T20:11:01Z fikka joined #lisp 2018-08-20T20:11:33Z thinkpad quit (Ping timeout: 260 seconds) 2018-08-20T20:14:18Z thinkpad joined #lisp 2018-08-20T20:15:44Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T20:16:48Z cpape joined #lisp 2018-08-20T20:21:09Z fikka joined #lisp 2018-08-20T20:25:56Z fikka quit (Ping timeout: 256 seconds) 2018-08-20T20:31:30Z zotan joined #lisp 2018-08-20T20:31:37Z fikka joined #lisp 2018-08-20T20:34:28Z housel quit (Read error: Connection reset by peer) 2018-08-20T20:35:54Z dkmueller quit (Quit: Lost terminal) 2018-08-20T20:36:32Z fikka quit (Ping timeout: 260 seconds) 2018-08-20T20:37:00Z mrSpec joined #lisp 2018-08-20T20:41:31Z fikka joined #lisp 2018-08-20T20:46:13Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T20:51:39Z fikka joined #lisp 2018-08-20T20:52:57Z dmiles quit (Ping timeout: 272 seconds) 2018-08-20T20:54:22Z scymtym joined #lisp 2018-08-20T20:54:49Z housel joined #lisp 2018-08-20T20:57:06Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T20:57:41Z dmiles joined #lisp 2018-08-20T21:02:13Z fikka joined #lisp 2018-08-20T21:06:08Z light2yellow quit (Quit: >/dev/bed) 2018-08-20T21:06:53Z fikka quit (Ping timeout: 244 seconds) 2018-08-20T21:07:53Z doubledup quit (Remote host closed the connection) 2018-08-20T21:12:20Z fikka joined #lisp 2018-08-20T21:15:56Z rumbler31 joined #lisp 2018-08-20T21:17:38Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T21:18:59Z rumbler31 quit (Remote host closed the connection) 2018-08-20T21:19:59Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-20T21:22:15Z Jesin quit (Remote host closed the connection) 2018-08-20T21:22:30Z fikka joined #lisp 2018-08-20T21:24:41Z drmeister: Im thinking aloud here while I’m on my phone - can I define a method on finish-output for a stream? Python has a sys.displayhook() that I need to mimic so that cl-jupyter can display intermediate output 2018-08-20T21:24:52Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-20T21:27:21Z Shinmera: With gray streams, sure. 2018-08-20T21:28:09Z drmeister: Ok - I gotta do some homework before I can ask a better question. 2018-08-20T21:29:29Z Shinmera: https://github.com/trivial-gray-streams/trivial-gray-streams/blob/master/package.lisp#L36 2018-08-20T21:29:52Z Shinmera: subclass the appropriate output-stream class, and add a method to stream-finish-output 2018-08-20T21:30:08Z Shinmera: (and the other methods of course) 2018-08-20T21:34:58Z nowhereman_ joined #lisp 2018-08-20T21:35:59Z drmeister: Is there a gray equivalent to the string-output-stream ? 2018-08-20T21:36:22Z Shinmera: you can delegate to a string output stream 2018-08-20T21:36:39Z drmeister: Ok 2018-08-20T21:37:04Z Shinmera: You could base it on the redirect-stream for instance https://github.com/Shinmera/redirect-stream 2018-08-20T21:37:53Z varjagg quit (Remote host closed the connection) 2018-08-20T21:42:14Z Xach: k/win 3 2018-08-20T21:42:49Z ravndal quit (Quit: WeeChat 2.2) 2018-08-20T21:42:49Z no-defun-allowed: Good morning everyone! 2018-08-20T21:44:02Z rumbler31 joined #lisp 2018-08-20T21:44:46Z ravndal joined #lisp 2018-08-20T21:47:01Z rumbler31 quit (Remote host closed the connection) 2018-08-20T21:47:21Z Jesin joined #lisp 2018-08-20T21:47:48Z pierpal quit (Ping timeout: 260 seconds) 2018-08-20T21:48:40Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-20T21:48:54Z emacsoma` quit (Ping timeout: 268 seconds) 2018-08-20T21:55:35Z Fare: Good evening, no-defun-allowed 2018-08-20T21:56:14Z nebunez joined #lisp 2018-08-20T21:56:41Z Arcaelyx joined #lisp 2018-08-20T21:57:32Z mingus quit (Ping timeout: 272 seconds) 2018-08-20T21:58:00Z Bike quit (Ping timeout: 252 seconds) 2018-08-20T22:00:35Z Jesin quit (Quit: Leaving) 2018-08-20T22:02:36Z Jesin joined #lisp 2018-08-20T22:03:38Z Denommus quit (Ping timeout: 260 seconds) 2018-08-20T22:03:38Z atgreen quit (Ping timeout: 265 seconds) 2018-08-20T22:03:57Z rumbler31 joined #lisp 2018-08-20T22:04:04Z rumbler31 quit (Remote host closed the connection) 2018-08-20T22:04:37Z emacsoma` joined #lisp 2018-08-20T22:11:43Z ebrasca joined #lisp 2018-08-20T22:14:36Z random-nick quit (Read error: Connection reset by peer) 2018-08-20T22:16:02Z ebrasca quit (Remote host closed the connection) 2018-08-20T22:16:46Z ebrasca joined #lisp 2018-08-20T22:20:21Z eschulte quit (Ping timeout: 272 seconds) 2018-08-20T22:20:35Z asarch quit (Quit: Leaving) 2018-08-20T22:20:38Z Pixel_Outlaw joined #lisp 2018-08-20T22:25:11Z grobe0ba joined #lisp 2018-08-20T22:27:06Z grobe0ba: i am having issues running CCL. On Alpine, with MUSL libc, i'm missing symbols, which is to be expected, so i'm not bothering with that at the moment. however, since that fails, i have been attempting to run it in a docker container with centos, which fails with "Couldn't load lisp heap image from /home/grobe0ba/opt/ccl/lx86cl64.image: Operation not permitted". 2018-08-20T22:27:40Z grobe0ba: the container is privileged, using host networking, and has multiple add-caps, all apparently of no use. 2018-08-20T22:27:49Z grobe0ba: does anyone have any suggestions? 2018-08-20T22:27:57Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-20T22:31:59Z edgar-rft quit (Read error: Connection reset by peer) 2018-08-20T22:36:34Z angavrilov quit (Remote host closed the connection) 2018-08-20T22:37:30Z sjl_ joined #lisp 2018-08-20T22:40:56Z jack_rabbit joined #lisp 2018-08-20T22:41:37Z mange joined #lisp 2018-08-20T22:43:44Z marvin2 joined #lisp 2018-08-20T22:52:10Z atgreen joined #lisp 2018-08-20T22:52:39Z test1600 joined #lisp 2018-08-20T22:52:41Z anewuser joined #lisp 2018-08-20T22:54:53Z brkr quit (Ping timeout: 255 seconds) 2018-08-20T22:56:40Z pbadams joined #lisp 2018-08-20T23:00:59Z pillton joined #lisp 2018-08-20T23:01:35Z pillton: stylewarning: Regarding the conversation a while back where you said: "ad hoc polymorphism is nice with types/classes/CLOS/spec-store/whatever, but I meant parametric polymorphism above, where we define a function that's singly generically useful for many types" 2018-08-20T23:02:15Z pillton: stylewarning: I attempted to do that with https://github.com/markcox80/template-function which is built on top of specialization store. 2018-08-20T23:03:55Z quazimodo joined #lisp 2018-08-20T23:08:47Z anewuser quit (Ping timeout: 260 seconds) 2018-08-20T23:09:20Z nowhereman_ joined #lisp 2018-08-20T23:12:40Z Bike joined #lisp 2018-08-20T23:16:34Z anewuser joined #lisp 2018-08-20T23:18:02Z pierpa joined #lisp 2018-08-20T23:18:50Z Kaisyu joined #lisp 2018-08-20T23:19:58Z acolarh quit (Ping timeout: 260 seconds) 2018-08-20T23:25:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-20T23:26:57Z froggey quit (Ping timeout: 240 seconds) 2018-08-20T23:27:56Z quazimodo joined #lisp 2018-08-20T23:28:44Z fikka quit (Ping timeout: 272 seconds) 2018-08-20T23:28:58Z froggey joined #lisp 2018-08-20T23:32:05Z pbadams quit (Ping timeout: 265 seconds) 2018-08-20T23:33:28Z acolarh joined #lisp 2018-08-20T23:33:47Z dale quit (Quit: dale) 2018-08-20T23:33:59Z fikka joined #lisp 2018-08-20T23:35:31Z Fare: stylewarning, pillton, have you seen lisp-interface-library, for parametric polymorphism? 2018-08-20T23:36:57Z Fare: grobe0ba: can you strace the execution of lx86cl64 ? 2018-08-20T23:39:17Z fikka quit (Ping timeout: 268 seconds) 2018-08-20T23:41:58Z stylewarning: Fare: of course I have, I even re-read the ILC paper recently 2018-08-20T23:44:10Z fikka joined #lisp 2018-08-20T23:44:35Z Fare quit (Ping timeout: 272 seconds) 2018-08-20T23:49:50Z fikka quit (Ping timeout: 276 seconds) 2018-08-20T23:54:20Z fikka joined #lisp 2018-08-20T23:55:02Z acolarh quit (Ping timeout: 276 seconds) 2018-08-20T23:59:35Z fikka quit (Ping timeout: 276 seconds) 2018-08-21T00:03:21Z lnostdal quit (Read error: Connection reset by peer) 2018-08-21T00:04:29Z fikka joined #lisp 2018-08-21T00:08:05Z biopandemic quit (Quit: Quit.) 2018-08-21T00:09:46Z fikka quit (Ping timeout: 256 seconds) 2018-08-21T00:15:21Z orivej joined #lisp 2018-08-21T00:15:52Z Fare joined #lisp 2018-08-21T00:16:29Z pillton: Fare: I know of it but I had difficulty following the paper. 2018-08-21T00:21:02Z Fare quit (Ping timeout: 276 seconds) 2018-08-21T00:24:54Z dale joined #lisp 2018-08-21T00:27:30Z edgar-rft joined #lisp 2018-08-21T00:27:40Z meepdeew joined #lisp 2018-08-21T00:27:50Z sjl quit (Ping timeout: 260 seconds) 2018-08-21T00:33:13Z pillton: Actually, what I really mean, I had difficulty mapping lisp-interface-library to the problems I have. 2018-08-21T00:34:08Z stylewarning: LIL to me was the introduction of a new paradigm to Common Lisp, not a library to fulfill the needs of an existing paradigm 2018-08-21T00:35:11Z stylewarning: it does enable different sorts of polymorphism, but doesn't map syntactically to any usual way of thinking about polymorphism (imo) 2018-08-21T00:35:41Z stylewarning: Haskell type classes, for instance, eventually map to an interface-passing style mechanism under the hood, but it's not something you ever see or are exposed to as a user 2018-08-21T00:36:35Z housel quit (Read error: Connection reset by peer) 2018-08-21T00:37:36Z test1600 quit (Quit: Leaving) 2018-08-21T00:38:02Z housel joined #lisp 2018-08-21T00:51:42Z nowhereman_ quit (Ping timeout: 256 seconds) 2018-08-21T00:51:45Z nowhere_man joined #lisp 2018-08-21T00:56:20Z PuercoPop: Fare: looking into the quake source code I see some code for the alloy-mode, but I'm unsure what was the use case of alloy, to help model the DB? 2018-08-21T00:59:23Z nowhere_man quit (Ping timeout: 244 seconds) 2018-08-21T00:59:52Z dale quit (Quit: dale) 2018-08-21T01:10:43Z Kundry_Wag joined #lisp 2018-08-21T01:11:19Z Jesin quit (Quit: Leaving) 2018-08-21T01:14:44Z Jesin joined #lisp 2018-08-21T01:15:29Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-21T01:15:43Z Kundry_Wag joined #lisp 2018-08-21T01:24:03Z _whitelogger quit (Remote host closed the connection) 2018-08-21T01:25:22Z dieggsy left #lisp 2018-08-21T01:25:31Z dieggsy joined #lisp 2018-08-21T01:26:16Z _whitelogger joined #lisp 2018-08-21T01:28:13Z housel quit (Read error: Connection reset by peer) 2018-08-21T01:28:27Z housel joined #lisp 2018-08-21T01:45:06Z sabrac joined #lisp 2018-08-21T01:45:56Z sabrac: Hello all 2018-08-21T01:48:09Z renzhi quit (Quit: WeeChat 2.1) 2018-08-21T01:50:00Z acolarh joined #lisp 2018-08-21T01:58:30Z lumm quit (Read error: Connection reset by peer) 2018-08-21T02:00:27Z pierpal joined #lisp 2018-08-21T02:01:49Z Fare joined #lisp 2018-08-21T02:06:09Z Kundry_Wag quit (Remote host closed the connection) 2018-08-21T02:07:07Z Kundry_Wag joined #lisp 2018-08-21T02:08:34Z Oladon joined #lisp 2018-08-21T02:10:43Z torbo joined #lisp 2018-08-21T02:12:45Z Oladon quit (Ping timeout: 244 seconds) 2018-08-21T02:13:40Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-21T02:14:08Z quazimodo quit (Ping timeout: 276 seconds) 2018-08-21T02:27:00Z renzhi joined #lisp 2018-08-21T02:28:26Z igemnace joined #lisp 2018-08-21T02:39:29Z marvin2 quit (Ping timeout: 276 seconds) 2018-08-21T02:51:16Z pierpa quit (Quit: Page closed) 2018-08-21T02:54:26Z housel quit (Remote host closed the connection) 2018-08-21T02:54:28Z Kundry_Wag quit (Remote host closed the connection) 2018-08-21T02:55:00Z Kundry_Wag joined #lisp 2018-08-21T02:59:15Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-21T03:01:55Z dddddd quit (Remote host closed the connection) 2018-08-21T03:03:57Z torbo quit (Read error: Connection reset by peer) 2018-08-21T03:08:45Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-21T03:26:41Z PuercoPop: At long last my XCB client can send and read the setup request. Now I have to think how to reify the XCB types, probably as CLOS classes. I've seen the Elisp client uses the slots in a class as 'schema' but one can't assume the slot order is they are 'written in code' right? Plus I don't want to keep the padding bytes in slots if I can avoid it. 2018-08-21T03:31:42Z sabrac: Agree the slot order is not specified, so you cannot rely on the order in the written code 2018-08-21T03:33:14Z Kundry_Wag joined #lisp 2018-08-21T03:33:51Z PuercoPop: I've been thinking of maybe writing the schema filter padding fields before defining the corresponding class 2018-08-21T03:37:44Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-21T03:48:18Z kushal quit (Remote host closed the connection) 2018-08-21T03:49:20Z kushal joined #lisp 2018-08-21T03:54:48Z vtomole joined #lisp 2018-08-21T04:04:01Z milanj quit (Quit: This computer has gone to sleep) 2018-08-21T04:04:26Z meepdeew quit (Remote host closed the connection) 2018-08-21T04:05:45Z Kundry_Wag joined #lisp 2018-08-21T04:10:34Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-21T04:15:03Z _whitelogger quit (Remote host closed the connection) 2018-08-21T04:17:16Z _whitelogger joined #lisp 2018-08-21T04:32:21Z vtomole quit (Ping timeout: 252 seconds) 2018-08-21T04:34:39Z nebunez quit (Ping timeout: 265 seconds) 2018-08-21T04:40:02Z kirkwood joined #lisp 2018-08-21T04:44:05Z SaganMan quit (Ping timeout: 255 seconds) 2018-08-21T04:54:16Z orivej quit (Ping timeout: 272 seconds) 2018-08-21T04:58:19Z SaganMan joined #lisp 2018-08-21T04:58:36Z slyrus1 quit (Ping timeout: 244 seconds) 2018-08-21T04:58:39Z pillton quit (Ping timeout: 240 seconds) 2018-08-21T05:01:42Z slyrus1 joined #lisp 2018-08-21T05:03:13Z Kundry_Wag joined #lisp 2018-08-21T05:07:54Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-21T05:07:57Z robotoad joined #lisp 2018-08-21T05:09:38Z megalography joined #lisp 2018-08-21T05:16:25Z anewuser quit (Quit: anewuser) 2018-08-21T05:27:05Z captgector quit (Ping timeout: 268 seconds) 2018-08-21T05:28:22Z captgector joined #lisp 2018-08-21T05:31:19Z igemnace quit (Quit: WeeChat 2.2) 2018-08-21T05:34:25Z beach: Good morning everyone! 2018-08-21T05:38:57Z igemnace joined #lisp 2018-08-21T05:40:11Z no-defun-allowed: afternoon beach 2018-08-21T05:49:10Z sauvin joined #lisp 2018-08-21T05:50:59Z vlatkoB joined #lisp 2018-08-21T05:51:55Z Inline quit (Quit: Leaving) 2018-08-21T05:53:07Z housel joined #lisp 2018-08-21T05:56:55Z kdas_ joined #lisp 2018-08-21T05:58:07Z kushal quit (Ping timeout: 250 seconds) 2018-08-21T05:58:11Z dented42 joined #lisp 2018-08-21T06:01:24Z gigetoo quit (Ping timeout: 272 seconds) 2018-08-21T06:01:32Z funnel quit (Ping timeout: 256 seconds) 2018-08-21T06:01:57Z funnel joined #lisp 2018-08-21T06:06:25Z gigetoo joined #lisp 2018-08-21T06:07:13Z kdas_ is now known as kushal 2018-08-21T06:08:35Z tralala joined #lisp 2018-08-21T06:11:17Z beach quit (Disconnected by services) 2018-08-21T06:13:14Z beach joined #lisp 2018-08-21T06:14:34Z impulse quit (Ping timeout: 260 seconds) 2018-08-21T06:22:29Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-21T06:23:34Z Fare quit (Ping timeout: 272 seconds) 2018-08-21T06:32:33Z schweers: Good morning beach o/ 2018-08-21T06:33:23Z light2yellow joined #lisp 2018-08-21T06:35:30Z igemnace quit (Read error: Connection reset by peer) 2018-08-21T06:38:54Z zigpaw: morning :) 2018-08-21T06:40:42Z schweers sighs 2018-08-21T06:40:52Z schweers: I’m not sure it was a good idea to read the unix haters handbook 2018-08-21T06:41:47Z beach: Why? It is brilliant. 2018-08-21T06:42:12Z beach: I didn't read it for the longest time because I thought it would be something written by random complainers. 2018-08-21T06:42:31Z beach: But these guys are very knowledgeable and very smart. They know their computing history. 2018-08-21T06:42:32Z schweers: I’m not sure its brilliant, but it does shed some light on areas of unix which I previously did not critically examine 2018-08-21T06:43:04Z schweers: I sometimes wish for more commentary on how this should be instead, but nevertheless, it is an interesting read. 2018-08-21T06:43:15Z schweers: It just doesn’t make me a more happy person :D 2018-08-21T06:43:15Z beach: It is brilliant because it accurately points out many things that we knew how to do before Unix, and that are now done wrong. 2018-08-21T06:43:50Z schweers: I saw a talk yesterday (on youtube) about how to do privilige separation on unix 2018-08-21T06:43:59Z schweers: and my god is it horrible 2018-08-21T06:44:14Z schweers: and the guy didn’t seem to think it was /that/ bad. 2018-08-21T06:44:43Z beach: Oh, I agree that the book depressing in many ways. But the way the computing domain has turned out is depressing. That's why I am trying to do something about it. 2018-08-21T06:44:53Z schweers: I first heard of the book when I was starting out with linux. back then I came from windows, which I still find worse. 2018-08-21T06:45:05Z beach: Well, I won't be able to change anything, but at least I will know what should have been done instead. 2018-08-21T06:45:11Z schweers: I am very grateful for that. Thanks a lot! 2018-08-21T06:46:29Z mange quit (Ping timeout: 276 seconds) 2018-08-21T06:46:35Z schweers: you’re working on a Lisp based OS, right? 2018-08-21T06:46:41Z schweers: (among other things) 2018-08-21T06:47:07Z Fare joined #lisp 2018-08-21T06:49:01Z beach: Yes, among other things. :) 2018-08-21T06:49:22Z beach: A better Common Lisp implementation, a better debugger, a better editor, ... 2018-08-21T06:50:49Z schweers: I worry that even if your Lisp OS is the greatest thing ever, and it done by tomorrow, it won’t pick up much market share. Simply because our industry is already fubar :( 2018-08-21T06:51:24Z beach: That's what I meant when I said I won't be able to change things, but I will know what should have been done instead. 2018-08-21T06:51:38Z schweers: maybe you can change things for a few people 2018-08-21T06:52:16Z schweers: I wonder: how difficult would it be to run programs not written in lisp on such an OS? 2018-08-21T06:53:18Z Shinmera: Mezzano already runs Quake and Doom :) 2018-08-21T06:53:25Z schweers: please correct me if I’m wrong, but this is how I understand it: by focussing on C so much, unix became kind of language agnostic. I wonder how this would work an OS which focusses on any higher level language. 2018-08-21T06:53:40Z schweers: by some sort of emulation, or natively? 2018-08-21T06:53:49Z Shinmera: Unix is not language agnostic at all. It's very C-bound. 2018-08-21T06:53:56Z jackdaniel: schweers: check out https://github.com/froggey/Iota 2018-08-21T06:54:01Z schweers: „kind of“ 2018-08-21T06:54:04Z Fare quit (Read error: Connection timed out) 2018-08-21T06:54:16Z Shinmera: I object to the kind of. 2018-08-21T06:54:19Z schweers: jackdaniel: ah, thanks 2018-08-21T06:54:24Z Fare joined #lisp 2018-08-21T06:54:42Z jackdaniel: also from what I've heard old lisp oses had C compilers as well 2018-08-21T06:55:06Z jackdaniel: there was also vacietis (not sure if I didn't mix some letters) - C compiler written in CL 2018-08-21T06:55:24Z Shinmera: Then there was f2cl 2018-08-21T06:55:32Z Shinmera: And there's a python->cl thingy too 2018-08-21T06:55:35Z jackdaniel: https://github.com/vsedach/Vacietis 2018-08-21T06:55:35Z schweers: Well, you don’t have to program in C just to interact with the kernel. 2018-08-21T06:56:11Z Shinmera: No, but you don't need to program in Lisp to run a lisp routine either. It's all ASM at the bottom. 2018-08-21T06:56:17Z schweers: I wonder how to properly translate C to lisp, as C relies so heavily on the fact that memory is flat and has poor access restrictions. 2018-08-21T06:56:24Z jackdaniel: I'm working on an interesting problem: copying array region into itself (with possible overlap) 2018-08-21T06:56:43Z jackdaniel: implementation is not hard, but to have a proper test coverage is fun 2018-08-21T06:56:47Z lieven: symbolics came with a C compiler. it's often invoked in C standard debates to show that the NULL pointer isn't guaranteed to have all bits 0 and can't be initialized with calls to calloc 2018-08-21T06:56:48Z schweers: that I get, but how does one exchange data? in a simple format not unlike what is done in C-land? 2018-08-21T06:57:12Z Shinmera: You need conversion routines, just like you need for any kind of bridge. 2018-08-21T06:57:59Z schweers: This sounds a lot less scary than I initially thought. So thanks for the clarification :) 2018-08-21T06:58:12Z Shinmera: It's really astounding to me how ingrained this idea has become in people's minds that "C is simple" and that everything else is somehow special. 2018-08-21T06:58:34Z schweers: guilty as charged :/ 2018-08-21T06:58:40Z schweers: trying to break free of it though 2018-08-21T06:58:59Z lieven: schweers: for example, a lot of those poor access restrictions you're talk about in C aren't guaranteed by the standard 2018-08-21T06:59:02Z jackdaniel: I like C though I have one complaint – control of the function argument stack should be on the calee, not the caller 2018-08-21T06:59:06Z jackdaniel: then it would be a very acceptable assembler 2018-08-21T06:59:12Z lieven: schweers: try running C on an AS400 or whatever it's called nowadays 2018-08-21T07:00:06Z schweers: Ah yes, another problem: the C I have in my head is C on linux on x86, not the language standard. 2018-08-21T07:00:09Z jackdaniel: (and the programmer should have access to this part of the stack) 2018-08-21T07:00:13Z schweers: I guess I’m not the only one 2018-08-21T07:00:48Z schweers: I find it really weird that C does not have access even to very simple parts of the processor, like the carry flag 2018-08-21T07:01:04Z schweers: well, overflow would be more important, but you get the idea 2018-08-21T07:01:33Z schweers: I guess this is because I don’t know how other architectures worked 2018-08-21T07:01:53Z lieven: to be fair, most of these other architectures now are dead or very niche 2018-08-21T07:02:24Z schweers: nevertheless they were once relevant. And other architectures may become more relevant again in the future. 2018-08-21T07:02:28Z robotoad quit (Quit: robotoad) 2018-08-21T07:02:30Z lieven: C on VM/SP did not have a stack but as mandated by that system's ABI a chain of activation records 2018-08-21T07:03:07Z schweers: I guess this is why the standard does not mention the stack at all 2018-08-21T07:03:17Z igemnace joined #lisp 2018-08-21T07:03:20Z Shinmera: The PDP-11 did have an overflow flag 2018-08-21T07:03:30Z lieven: IBM's "lisp" implementation on VM/CMS was really a tentacled horred 2018-08-21T07:03:37Z lieven: *horror 2018-08-21T07:03:53Z Shinmera: Which IIRC is what C was initially conceived on? 2018-08-21T07:03:58Z beach: schweers: The way I see it is, in order to run a C program on the kind of OS I would like, it would have to behave like a single Common Lisp function, and it would have to communicate with other functions just like in Unix, i.e. with something like file descriptors. 2018-08-21T07:04:02Z schweers: Shinmera: I think so, yes 2018-08-21T07:07:13Z schweers: I’m beginning to understand what it is like to have drunk the kool-aid 2018-08-21T07:20:52Z xantoz quit (Ping timeout: 256 seconds) 2018-08-21T07:27:31Z impulse joined #lisp 2018-08-21T07:49:56Z Bike: learning hardly anything about Forth helped me with understanding C 2018-08-21T07:50:36Z schweers: forth is and was interesting to me because it induces a shift in perspective. Lisp obviously did too. 2018-08-21T07:51:18Z shka_ quit (Quit: Konversation terminated!) 2018-08-21T07:51:58Z shrdlu68 joined #lisp 2018-08-21T07:52:34Z Bike: i mean things like the create word. when i learned that i was like oh, that's "lower level" than C (not knowing about alloca at the time) 2018-08-21T07:53:57Z schweers: is alloca standard? 2018-08-21T07:54:00Z Shinmera: alloca isn't standard C anyway 2018-08-21T07:54:17Z Bike: see, there you go. 2018-08-21T07:54:31Z Shinmera: It's a GNU stdlib extension if I remember correctly. 2018-08-21T07:54:36Z Bike: not create. allot. whatever it is. i haven't actually USED much forth 2018-08-21T07:54:50Z sunset_NOVA joined #lisp 2018-08-21T07:55:34Z SaganMan quit (Ping timeout: 256 seconds) 2018-08-21T07:56:13Z varjag: Shinmera: dates back to bell labs unix 2018-08-21T07:56:26Z schweers: the “CONFORMING TO” section of the man page I have here on debian is scary. 2018-08-21T07:56:32Z orivej joined #lisp 2018-08-21T07:56:33Z shka_ joined #lisp 2018-08-21T07:57:52Z SaganMan joined #lisp 2018-08-21T07:58:30Z shka_ quit (Client Quit) 2018-08-21T07:59:20Z shka_ joined #lisp 2018-08-21T07:59:53Z lieven: Thinking Forth by Brodie is a great book even if you have no intention to ever use Forth 2018-08-21T08:01:03Z jdz: True story (I recently read it). 2018-08-21T08:01:07Z schweers: I believe I started reading that one, finding it really weird. 2018-08-21T08:01:16Z Bike quit (Quit: Lost terminal) 2018-08-21T08:01:29Z lieven: jdz: and how did you like it? 2018-08-21T08:05:28Z schweers: maybe it was because I was hoping for the book to be more about forth itself. 2018-08-21T08:05:38Z jdz: I quite liked it. The comments about size made me chuckle, reminded me of https://prog21.dadgum.com/116.html. 2018-08-21T08:05:57Z heisig joined #lisp 2018-08-21T08:06:26Z Jesin quit (Ping timeout: 276 seconds) 2018-08-21T08:06:37Z lieven: schweers: his other book teaches the language: Starting Forth 2018-08-21T08:07:19Z jackdaniel: while I admire forth very much (and rather like C), I'm afraid we stray from the channel topic forther and forther ;) 2018-08-21T08:07:38Z schweers: yeah, I know. I was having a hard time understanding the more interesting features of forth and was hoping for more (and different?) explanations. 2018-08-21T08:07:52Z jdz: I have not done any Forth programming, and cannot be considered a real programmer since I have not even implemented a Forth interpreter. 2018-08-21T08:08:05Z schweers: lol 2018-08-21T08:09:04Z lieven: jackdaniel: up to a point. in a way lisp and forth are two languages that very much support building up your language to address the problem domain. they're both programmable programming languages where you have (most of) the tools of the language implementor at hand for your own work 2018-08-21T08:09:34Z Shinmera: Regardless, it isn't Common Lisp. 2018-08-21T08:09:54Z jackdaniel: Imo if we refuse to talk scheme or clojure here, forth may be considered not common-lispy enough too :-) 2018-08-21T08:10:28Z shka_: good morning 2018-08-21T08:10:40Z schweers: we could discuss whether forth is closer to common lisp than scheme. Or we could simply not ;) 2018-08-21T08:17:56Z Jesin joined #lisp 2018-08-21T08:23:32Z aeth: eh, there's a loophole 2018-08-21T08:23:36Z aeth: write a Forth in CL 2018-08-21T08:24:46Z schweers: or the other way around? 2018-08-21T08:25:30Z aeth: If you write a Forth implementation in CL (or any language) you have to call it Firth of Forth. https://en.wikipedia.org/wiki/Firth_of_Forth 2018-08-21T08:26:38Z schweers: hehe 2018-08-21T08:29:49Z lumm joined #lisp 2018-08-21T08:30:48Z aeth: #lispcafe has talked about comparing Forth and CL before. It's on-topic there. 2018-08-21T08:31:33Z lieven: Henry Baker did some work on that. for example http://home.pipeline.com/~hbaker1/ForthStack.html 2018-08-21T08:34:21Z no-defun-allowed: hey where do we go to ask for quicklisp packages? 2018-08-21T08:35:45Z shka_: no-defun-allowed: quicklisp-projects 2018-08-21T08:35:48Z no-defun-allowed: i think cl-naive-bayes should go in, it's a very useful text analysis tool 2018-08-21T08:36:18Z no-defun-allowed: it's not my project though, can i still suggest it? 2018-08-21T08:36:40Z shka_: dunno 2018-08-21T08:38:10Z shka_: perhaps author had his reasons to not add into quicklisp 2018-08-21T08:38:29Z shka_: so i would rather attempt to conctact him before doing anything else 2018-08-21T08:38:46Z no-defun-allowed: it just says [it hasn't been submitted](https://github.com/eshamster/cl-naive-bayes) 2018-08-21T08:41:58Z lvo joined #lisp 2018-08-21T08:51:08Z nowhere_man joined #lisp 2018-08-21T08:55:05Z shifty joined #lisp 2018-08-21T08:57:05Z angavrilov joined #lisp 2018-08-21T08:58:02Z pierpal quit (Quit: Poof) 2018-08-21T08:58:26Z pierpal joined #lisp 2018-08-21T09:03:31Z pierpal quit (Quit: Poof) 2018-08-21T09:03:48Z pierpal joined #lisp 2018-08-21T09:20:06Z schweers: is it just my impression, or is compiling Lisp code really pretty fast, even with SBCL? 2018-08-21T09:20:16Z schweers: compared to other languages, of course 2018-08-21T09:20:40Z beach: Well, you don't have the problem that C++ does with huge header files. 2018-08-21T09:20:49Z beach: So it can very well be true. 2018-08-21T09:20:55Z schweers: well, C++ is probably the worst offender 2018-08-21T09:21:12Z dim: well it depends, I think the fact that we often compile a small chunk at a time interactively makes it for a very low-latency feedback loop and it then seems very fast 2018-08-21T09:21:27Z shka_: schweers: also, note that you usually compile just one piece of code at the time 2018-08-21T09:21:39Z dim: that said compiling pgloader sources to a binary image takes minutes, as you can see at https://travis-ci.org/dimitri/pgloader 2018-08-21T09:21:42Z Fare quit (Ping timeout: 256 seconds) 2018-08-21T09:21:55Z schweers: I find it quite fast even when I empty the cache (~/.cache/common-lisp) and load my whole system it is reasonably fast. 2018-08-21T09:21:57Z loke: Try clearing all the compile caches and then compile McCLIM on ECL. 2018-08-21T09:22:00Z dim: C/C++ is very stupid with the lack of “modules” 2018-08-21T09:22:01Z loke: That take sminutes 2018-08-21T09:22:04Z schweers: So it even builds all the libraries I depend on 2018-08-21T09:22:11Z shka_: there are a lot faster languages to compile anyway 2018-08-21T09:22:28Z shka_: but yeah, sbcl compilation speed is good enough most of the time 2018-08-21T09:22:34Z loke: But, on the other hand CCL, is very fast at compiling. 2018-08-21T09:23:35Z schweers: hm, so it seems my impression is only partly correct. Nevertheless, it’s not extremely slow as one might naively expect 2018-08-21T09:23:35Z dim: almost twice as fast as SBCL on my experience, with default settings 2018-08-21T09:23:50Z aeth: The problem with CL compilation is that it is not parallel and afaik that is a problem that would have to be solved by ASDF. 2018-08-21T09:23:57Z shka_: schweers: honestly, i don't think i can complain about sbcl compilation speed 2018-08-21T09:24:10Z schweers: it wasn’t meant to be a complaint. on the contrary 2018-08-21T09:24:11Z shka_: it is not super fast, sure, but it is not that slow either 2018-08-21T09:24:23Z shka_: it is just acceptable 2018-08-21T09:24:41Z schweers: I’d even continue using it if it were much slower 2018-08-21T09:24:45Z kdas_ joined #lisp 2018-08-21T09:24:47Z dim: schweers: I think most people attributes slowness to being “interpreted” languages and don't understand that a language isn't compiled or interpreted, the implementation is, and may be both (as in javascript), and also that the level of flexibility and dynamism we have in CL, people think it must cost a lot in perfs 2018-08-21T09:25:11Z schweers: dim: I was just talking about how long it takes to compile a program 2018-08-21T09:25:15Z kushal quit (Ping timeout: 250 seconds) 2018-08-21T09:25:32Z no-defun-allowed: if sbcl is a slow compiler, ccl sounds fun. 2018-08-21T09:25:42Z aeth: dim: It *does* costs a lot, it's just that on 2018 hardware those costs are usually laughable. 2018-08-21T09:25:46Z shka_: ccl is very swift 2018-08-21T09:25:53Z aeth: dim: I think the main cost is in RAM 2018-08-21T09:25:56Z dim: aeth: bazel might be an answer to that? (https://github.com/qitab/bazelisp) 2018-08-21T09:25:59Z loke: no-defun-allowed: CCL's code generation isn't as good as SBCL's but I've never really been in a situation where that matters. 2018-08-21T09:26:04Z shka_: aeth: lol, nope 2018-08-21T09:26:17Z schweers: loke: it matters for me 2018-08-21T09:26:21Z shka_: aeth: lisp programs are fairly compact on RAM nowdays 2018-08-21T09:26:54Z shka_: especially if you copmare with so called scripting languages like python 2018-08-21T09:27:16Z dim: CCL/SBCL: pgloader shows the difference quite clearly, CCL is far better at Garbage Collection and memory maintenance while SBCL produces code that can be twice as fast 2018-08-21T09:27:20Z schweers: the programs maybe, but it seems that the runtime is still often too large for “embedded” devices. Which is why I don’t like said devices 2018-08-21T09:27:21Z aeth: shka_: Only because programs are using a lot more RAM than they used to. I am running several daemons that have almost bloated to the starting RAM usage of SBCL (including systemd and Xorg, which probably surprises no one) 2018-08-21T09:27:53Z aeth: But most SBCL programs don't compare to the web browser and browser-based 'native' programs 2018-08-21T09:28:27Z shka_: exactly 2018-08-21T09:28:48Z shka_: i could imagine someone saying that lisp programs are resource hogs 10 years ago 2018-08-21T09:29:09Z shka_: but nowdays they are very compact 2018-08-21T09:29:47Z varjag: yeah not in the era of electron 2018-08-21T09:30:01Z shka_: and it is not because lisp programs changed in nature 2018-08-21T09:30:18Z schweers: ah, speaking of garbage collection; does anyone know for sure what SBCL uses on AMD64? The manual is not exactly clear on the distinction between 32 and 64 bit x86. 2018-08-21T09:30:26Z shka_: it is just because everything else became bloated to the extreme 2018-08-21T09:30:27Z schweers: at least it wasn’t the last time I checked 2018-08-21T09:30:53Z shka_: schweers: same as 32 bit 2018-08-21T09:31:00Z lnostdal joined #lisp 2018-08-21T09:31:10Z schweers: so it does not use a “state of the art” collector? 2018-08-21T09:31:21Z shka_: gengcc? 2018-08-21T09:31:22Z shka_: nope 2018-08-21T09:31:37Z kdas_ is now known as kushal 2018-08-21T09:31:47Z aeth: The state of the art for garbage collectors are made for Java and/or the JVM, in general. 2018-08-21T09:32:21Z schweers: wow. Now I’m even more impressed with GC. TIME in SBCL reports how much time was spent in GC and out of GC. I was always impressed by how little time the collector needed. Now that you’re telling me this could be even better, I’m even more impressed and convinced that GC is good for performance. 2018-08-21T09:32:44Z shka_: schweers: at least that's what i am getting from reading sbcl source code 2018-08-21T09:33:26Z aeth: schweers: The lowest hanging fruits in SBCL performance improvements are probably the GC and CLOS, at least based on stuff people say in #lisp 2018-08-21T09:34:01Z aeth: SBCL's CLOS implementation is apparently not even the fastest CLOS implementation 2018-08-21T09:34:40Z schweers: hmm. SB-EXT:GENERATION-MINIMUM-AGE-BEFORE-GC is a valid function on AMD64 2018-08-21T09:35:40Z schweers: which is available on gengc platforms only 2018-08-21T09:36:26Z shka_: sbcl folks are working hard on improving and maintaining it 2018-08-21T09:37:21Z shka_: schweers: perhaps i was wrong... 2018-08-21T09:40:31Z varjag: gencgc seems to be compiled in on x86-64 platforms, according to the runtime configs 2018-08-21T09:47:28Z random-nick joined #lisp 2018-08-21T09:48:18Z shrdlu68 quit (Ping timeout: 260 seconds) 2018-08-21T10:00:37Z Kundry_Wag joined #lisp 2018-08-21T10:05:08Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-21T10:20:27Z Kundry_Wag joined #lisp 2018-08-21T10:24:02Z _whitelogger quit (Remote host closed the connection) 2018-08-21T10:25:02Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-21T10:26:14Z _whitelogger joined #lisp 2018-08-21T10:31:13Z schjetne quit (Ping timeout: 272 seconds) 2018-08-21T10:31:29Z malm quit (Ping timeout: 248 seconds) 2018-08-21T10:31:52Z kdas_ joined #lisp 2018-08-21T10:32:51Z kushal quit (Ping timeout: 250 seconds) 2018-08-21T10:32:53Z malm joined #lisp 2018-08-21T10:34:09Z Colleen quit (Ping timeout: 248 seconds) 2018-08-21T10:34:29Z Colleen joined #lisp 2018-08-21T10:34:30Z Fare joined #lisp 2018-08-21T10:35:46Z milanj joined #lisp 2018-08-21T10:39:10Z Fare quit (Ping timeout: 260 seconds) 2018-08-21T10:40:02Z easye quit (Remote host closed the connection) 2018-08-21T10:40:10Z easye joined #lisp 2018-08-21T10:58:41Z marvin3 joined #lisp 2018-08-21T11:02:47Z mbrock_ quit (Quit: Connection closed for inactivity) 2018-08-21T11:02:54Z pierpal quit (Quit: Poof) 2018-08-21T11:03:17Z pierpal joined #lisp 2018-08-21T11:06:05Z ebzzry quit (Ping timeout: 240 seconds) 2018-08-21T11:09:01Z Kundry_Wag joined #lisp 2018-08-21T11:13:52Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-21T11:16:57Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-21T11:19:47Z zfree joined #lisp 2018-08-21T11:26:23Z rozenglass joined #lisp 2018-08-21T11:32:43Z ``Erik quit (Quit: leaving) 2018-08-21T11:37:49Z kdas_ is now known as kushal 2018-08-21T11:50:02Z orivej quit (Ping timeout: 276 seconds) 2018-08-21T11:52:51Z fikka joined #lisp 2018-08-21T11:58:18Z acolarh quit (Ping timeout: 260 seconds) 2018-08-21T12:03:49Z Kundry_Wag joined #lisp 2018-08-21T12:04:01Z dddddd joined #lisp 2018-08-21T12:06:41Z nowhere_man joined #lisp 2018-08-21T12:08:46Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-21T12:09:09Z pierpal quit (Quit: Poof) 2018-08-21T12:09:25Z pierpal joined #lisp 2018-08-21T12:16:02Z charh quit (Ping timeout: 276 seconds) 2018-08-21T12:30:02Z pierpal quit (Quit: Poof) 2018-08-21T12:30:21Z pierpal joined #lisp 2018-08-21T12:35:51Z steiner quit (Remote host closed the connection) 2018-08-21T12:39:23Z ebzzry joined #lisp 2018-08-21T12:39:58Z LdBeth: good evening 2018-08-21T12:40:13Z shka_: LdBeth: good evening to you 2018-08-21T12:40:28Z rozenglass quit (Ping timeout: 256 seconds) 2018-08-21T12:43:42Z steiner joined #lisp 2018-08-21T12:48:34Z LdBeth: is there *fast* approch to implement binary op so add #xFFFF and #x0123 is #x0122 and subtruact #x0123 form #x0121is #xFFFE 2018-08-21T12:54:13Z Bike joined #lisp 2018-08-21T12:54:24Z shka_: LdBeth: mostly implementation specific 2018-08-21T12:54:40Z shka_: for instance, on sbcl i like to use ldb 2018-08-21T12:55:31Z shka_: somehow sbcl seems to be able to infer that this operation is allowed to overflow and produces slightly different code 2018-08-21T12:56:36Z steiner quit (Remote host closed the connection) 2018-08-21T12:57:04Z steiner joined #lisp 2018-08-21T12:58:31Z shka_: https://gist.github.com/sirherrbatka/f56c5f5b142d69b2f592e01d7e197596 2018-08-21T12:58:45Z shka_: LdBeth: try checking dissasemble of this function 2018-08-21T12:59:02Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-21T13:00:31Z LdBeth: ok 2018-08-21T13:00:35Z charh joined #lisp 2018-08-21T13:04:03Z shka_: LdBeth: does it help? 2018-08-21T13:05:24Z charh quit (Ping timeout: 256 seconds) 2018-08-21T13:09:53Z LdBeth: sure, thank you shka_ 2018-08-21T13:10:09Z shka_: you are welcome, and awesome 2018-08-21T13:10:58Z Guest5800_ joined #lisp 2018-08-21T13:14:19Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-08-21T13:16:04Z dvdmuckle joined #lisp 2018-08-21T13:17:30Z steiner quit (Remote host closed the connection) 2018-08-21T13:19:13Z dingusman joined #lisp 2018-08-21T13:21:41Z acolarh joined #lisp 2018-08-21T13:22:31Z dingusman: anyone have experience running hunchentoot servers as systemd services? 2018-08-21T13:22:54Z Shinmera: What's up 2018-08-21T13:23:07Z steiner joined #lisp 2018-08-21T13:23:14Z dingusman: looking for a couple pieces of advice: 2018-08-21T13:23:28Z dingusman: any way to run the repl as a service without wrapping it in screen? 2018-08-21T13:23:37Z dingusman: how can I get server logs to journald? 2018-08-21T13:23:42Z dingusman: those are the big ones 2018-08-21T13:24:00Z Shinmera: well you won't get access to the repl if you run it under systemd 2018-08-21T13:24:20Z Shinmera: but the good news is you don't need to, just spawn a swank server and connect to it with slime (tunnelling the port through ssh for instance) 2018-08-21T13:24:46Z Shinmera: systemd will automatically log any stderr/stdout output to journald for all its services, so you don't need to do anything for that 2018-08-21T13:24:56Z housel quit (Ping timeout: 244 seconds) 2018-08-21T13:25:12Z dingusman: ok, yeah, if I didn't run screen I guess the second question is no longer relevant 2018-08-21T13:25:25Z dingusman: I'm already running a swank server + connecting with ssh tunnelling 2018-08-21T13:25:30Z dingusman: How can I do that without running the repl though? 2018-08-21T13:25:36Z Shinmera: http://plaster.tymoon.eu/view/886#886 2018-08-21T13:26:33Z Shinmera: put something like http://plaster.tymoon.eu/view/886#887 in your start script 2018-08-21T13:26:43Z dingusman: Does it matter what's in start.lisp in this example? seems to me this will still start sbcl in interactive mode 2018-08-21T13:28:09Z dingusman: I tried something like this already. But (IIUC) systemd points process' stdin at /dev/null 2018-08-21T13:28:15Z dingusman: so the repl immediately reads EOF and exits 2018-08-21T13:28:20Z Cymew joined #lisp 2018-08-21T13:28:38Z FreeBirdLjj joined #lisp 2018-08-21T13:30:43Z Shinmera: Oh, yeah, I just have a (loop (sleep 1)) or something like that 2018-08-21T13:30:49Z Shinmera: at the end 2018-08-21T13:31:15Z makomo joined #lisp 2018-08-21T13:32:15Z dingusman: Sure, that could work 2018-08-21T13:32:36Z dingusman: And I'd still be able to connect the swank server since it's running in a separate thread? 2018-08-21T13:32:38Z dingusman: makes sense 2018-08-21T13:32:41Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-21T13:33:52Z Cymew quit (Ping timeout: 256 seconds) 2018-08-21T13:37:02Z sjl joined #lisp 2018-08-21T13:38:06Z Shinmera: yes 2018-08-21T13:38:22Z dingusman: thanks - I'm trying it now 2018-08-21T13:42:24Z Cymew joined #lisp 2018-08-21T13:43:38Z light2yellow quit (Quit: irl > irc) 2018-08-21T13:48:11Z lvo quit (Ping timeout: 244 seconds) 2018-08-21T13:48:30Z sunset_NOVA quit (Quit: Leaving) 2018-08-21T13:48:39Z zfree quit (Quit: zfree) 2018-08-21T13:52:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-21T13:53:29Z dingusman: it works! awesome, thanks for the help 2018-08-21T13:53:57Z dingusman: It felt so wrong running screen in a service. much happier with this 2018-08-21T13:58:02Z dim: dingusman: you can also have a look at https://github.com/dimitri/pgcharts/blob/master/src/pgcharts.lisp if you want, for an alternative implementation, still with the idea of (loop :while *server-is-running* :do (sleep 1)) 2018-08-21T14:02:19Z cage_ joined #lisp 2018-08-21T14:03:08Z Bike: mop generic-function-name 2018-08-21T14:03:08Z specbot: http://metamodular.com/CLOS-MOP/generic-function-name.html 2018-08-21T14:04:59Z cage_ quit (Client Quit) 2018-08-21T14:05:05Z tralala quit (Ping timeout: 240 seconds) 2018-08-21T14:05:31Z dingusman: dim: thank you, that's helpful. I've been looking for some real-life hunchentoot server code. There's a lot for me to learn in there 2018-08-21T14:06:37Z heisig quit (Quit: Leaving) 2018-08-21T14:08:58Z Shinmera: Reminds me that I should write a tutorial/guide on running Radiance in production 2018-08-21T14:09:11Z Shinmera: So much to do! 2018-08-21T14:11:02Z dim: dingusman: the part I like a lot is the serving of static files from memory, and building a binary image that includes those static resources, so that you only have one file to deploy 2018-08-21T14:16:01Z dingusman: That is neat. I'm doing something pretty similar. Generate a ql dependency bundle, html/js with who/parenscript, then load it all in and dump it to a core image to deploy 2018-08-21T14:16:09Z fikka joined #lisp 2018-08-21T14:16:17Z dingusman: The really amazing part to me is the instant startup time 2018-08-21T14:17:07Z dim: hehe... do you compress the core? it might make the startup time a little longer, but gives a much smaller image 2018-08-21T14:18:22Z dingusman: No, I haven't tried that yet 2018-08-21T14:20:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-21T14:22:27Z dingusman quit (Ping timeout: 240 seconds) 2018-08-21T14:26:13Z dingusman joined #lisp 2018-08-21T14:26:38Z dale joined #lisp 2018-08-21T14:26:53Z dingusman: dim: managed to kill my emacs in the process, but compression makes a big difference 2018-08-21T14:26:58Z dingusman: 75M to 15M in my case 2018-08-21T14:27:07Z dingusman: and no noticeable difference in startup time 2018-08-21T14:29:26Z Shinmera: there's a noticeable difference if you want to do scripts and stuff but for a heavy-weight thing like a server or a gui it's perfectly fine. 2018-08-21T14:29:30Z Inline joined #lisp 2018-08-21T14:29:42Z Shinmera: even loading from FASLs can be acceptable. 2018-08-21T14:34:25Z fikka joined #lisp 2018-08-21T14:35:45Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-21T14:44:20Z FreeBirdLjj joined #lisp 2018-08-21T14:46:11Z Cymew quit (Ping timeout: 276 seconds) 2018-08-21T14:48:27Z ebrasca: Hi 2018-08-21T14:50:05Z schweers quit (Ping timeout: 276 seconds) 2018-08-21T14:52:05Z edgar-rft quit (Remote host closed the connection) 2018-08-21T14:55:44Z rippa joined #lisp 2018-08-21T15:01:25Z cage_ joined #lisp 2018-08-21T15:03:38Z meepdeew joined #lisp 2018-08-21T15:05:52Z meepdeew quit (Remote host closed the connection) 2018-08-21T15:12:13Z housel joined #lisp 2018-08-21T15:12:40Z orivej joined #lisp 2018-08-21T15:13:47Z shifty quit (Remote host closed the connection) 2018-08-21T15:14:13Z shifty joined #lisp 2018-08-21T15:18:58Z shifty quit (Ping timeout: 260 seconds) 2018-08-21T15:23:52Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-21T15:30:28Z Bronsa joined #lisp 2018-08-21T15:34:34Z robotoad joined #lisp 2018-08-21T15:34:34Z fikka quit (Ping timeout: 272 seconds) 2018-08-21T15:39:53Z zooey quit (Remote host closed the connection) 2018-08-21T15:40:39Z zooey joined #lisp 2018-08-21T15:41:52Z atgreen_ joined #lisp 2018-08-21T15:42:59Z robotoad_ joined #lisp 2018-08-21T15:44:51Z renzhi_ joined #lisp 2018-08-21T15:45:22Z atgreen quit (Remote host closed the connection) 2018-08-21T15:45:22Z cage_ quit (Read error: Connection reset by peer) 2018-08-21T15:45:22Z robotoad quit (Read error: Connection reset by peer) 2018-08-21T15:45:22Z emacsoma` quit (Remote host closed the connection) 2018-08-21T15:45:22Z steiner quit (Remote host closed the connection) 2018-08-21T15:45:23Z renzhi quit (Ping timeout: 256 seconds) 2018-08-21T15:51:52Z SaganMan joined #lisp 2018-08-21T15:55:18Z fikka joined #lisp 2018-08-21T15:58:14Z ebrasca: beach: Have you think about contributing in mezzano? 2018-08-21T16:00:27Z dingusman quit (Ping timeout: 244 seconds) 2018-08-21T16:18:19Z Fare joined #lisp 2018-08-21T16:21:40Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-21T16:22:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-21T16:25:08Z mindCrime joined #lisp 2018-08-21T16:25:41Z gigetoo quit (Ping timeout: 268 seconds) 2018-08-21T16:30:38Z emaczen joined #lisp 2018-08-21T16:32:03Z pjb joined #lisp 2018-08-21T16:32:07Z pjb quit (Remote host closed the connection) 2018-08-21T16:34:40Z pjb joined #lisp 2018-08-21T16:35:12Z zotan quit (Ping timeout: 256 seconds) 2018-08-21T16:36:10Z Ober quit (Quit: Emacs must have died) 2018-08-21T16:44:21Z Kevslinger joined #lisp 2018-08-21T16:47:12Z housel quit (Remote host closed the connection) 2018-08-21T16:48:20Z pierpal quit (Quit: Poof) 2018-08-21T16:48:38Z pierpal joined #lisp 2018-08-21T16:55:13Z light2yellow joined #lisp 2018-08-21T16:55:29Z Demosthenex quit (Ping timeout: 248 seconds) 2018-08-21T16:56:09Z housel joined #lisp 2018-08-21T16:57:42Z Demosthenex joined #lisp 2018-08-21T17:00:32Z fikka joined #lisp 2018-08-21T17:01:16Z Zhivago quit (Ping timeout: 256 seconds) 2018-08-21T17:03:26Z pierpal quit (Quit: Poof) 2018-08-21T17:03:51Z pierpal joined #lisp 2018-08-21T17:05:09Z thijso quit (Ping timeout: 268 seconds) 2018-08-21T17:05:56Z fikka quit (Ping timeout: 276 seconds) 2018-08-21T17:06:52Z shka_ joined #lisp 2018-08-21T17:07:06Z shka_: good evening 2018-08-21T17:10:06Z Demosthenex: evening! 2018-08-21T17:10:29Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-21T17:11:14Z Bronsa quit (Ping timeout: 244 seconds) 2018-08-21T17:14:23Z thawes joined #lisp 2018-08-21T17:14:35Z light2yellow quit (Ping timeout: 240 seconds) 2018-08-21T17:15:35Z fikka joined #lisp 2018-08-21T17:17:09Z light2yellow joined #lisp 2018-08-21T17:17:41Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-21T17:23:55Z FreeBirdLjj joined #lisp 2018-08-21T17:26:46Z makomo quit (Read error: Connection reset by peer) 2018-08-21T17:29:26Z sz0 joined #lisp 2018-08-21T17:29:55Z fikka quit (Ping timeout: 265 seconds) 2018-08-21T17:31:18Z charh joined #lisp 2018-08-21T17:32:19Z charh quit (Client Quit) 2018-08-21T17:35:36Z light2yellow quit (Read error: Connection reset by peer) 2018-08-21T17:39:44Z Fare quit (Ping timeout: 276 seconds) 2018-08-21T17:41:04Z Denommus joined #lisp 2018-08-21T17:45:37Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-21T17:46:09Z nowhere_man joined #lisp 2018-08-21T17:46:46Z makomo joined #lisp 2018-08-21T17:57:26Z milanj quit (Quit: This computer has gone to sleep) 2018-08-21T17:59:55Z edgar-rft joined #lisp 2018-08-21T18:01:10Z jkordani_ joined #lisp 2018-08-21T18:01:49Z Fare joined #lisp 2018-08-21T18:02:14Z fikka joined #lisp 2018-08-21T18:05:05Z jkordani quit (Ping timeout: 276 seconds) 2018-08-21T18:06:58Z fikka quit (Ping timeout: 260 seconds) 2018-08-21T18:07:41Z Fare quit (Ping timeout: 276 seconds) 2018-08-21T18:07:48Z makomo quit (Quit: WeeChat 2.2) 2018-08-21T18:08:11Z charh joined #lisp 2018-08-21T18:08:35Z fikka joined #lisp 2018-08-21T18:11:25Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-21T18:11:59Z FreeBirdLjj joined #lisp 2018-08-21T18:16:20Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-21T18:21:28Z pierpal quit (Quit: Poof) 2018-08-21T18:21:48Z pierpal joined #lisp 2018-08-21T18:21:50Z loli quit (Quit: WeeChat 2.2) 2018-08-21T18:22:27Z loli joined #lisp 2018-08-21T18:22:41Z meepdeew joined #lisp 2018-08-21T18:26:57Z meepdeew quit (Ping timeout: 240 seconds) 2018-08-21T18:27:35Z Demosthenex quit (Ping timeout: 240 seconds) 2018-08-21T18:28:59Z sauvin quit (Remote host closed the connection) 2018-08-21T18:31:32Z light2yellow joined #lisp 2018-08-21T18:33:23Z lisper29 joined #lisp 2018-08-21T18:34:11Z Jesin quit (Quit: Leaving) 2018-08-21T18:37:29Z stylewarning quit (*.net *.split) 2018-08-21T18:37:29Z gko quit (*.net *.split) 2018-08-21T18:37:30Z ircbrowse quit (*.net *.split) 2018-08-21T18:37:30Z voidlily quit (*.net *.split) 2018-08-21T18:37:30Z lieven quit (*.net *.split) 2018-08-21T18:37:30Z gz quit (*.net *.split) 2018-08-21T18:37:30Z antoszka quit (*.net *.split) 2018-08-21T18:37:30Z pchrist quit (*.net *.split) 2018-08-21T18:37:30Z Myon quit (*.net *.split) 2018-08-21T18:37:30Z umpc quit (*.net *.split) 2018-08-21T18:37:30Z gingerale quit (*.net *.split) 2018-08-21T18:37:30Z z0d quit (*.net *.split) 2018-08-21T18:37:31Z jurov quit (*.net *.split) 2018-08-21T18:37:37Z gko joined #lisp 2018-08-21T18:38:12Z pchrist_ joined #lisp 2018-08-21T18:40:59Z jurov joined #lisp 2018-08-21T18:41:00Z ircbrowse joined #lisp 2018-08-21T18:41:05Z fikka quit (Ping timeout: 240 seconds) 2018-08-21T18:41:17Z voidlily joined #lisp 2018-08-21T18:42:13Z l1x quit (*.net *.split) 2018-08-21T18:42:13Z shenghi quit (*.net *.split) 2018-08-21T18:42:14Z les quit (*.net *.split) 2018-08-21T18:42:14Z sigjuice quit (*.net *.split) 2018-08-21T18:42:14Z rann quit (*.net *.split) 2018-08-21T18:42:14Z gsl quit (*.net *.split) 2018-08-21T18:42:14Z trig-ger_ quit (*.net *.split) 2018-08-21T18:42:14Z bheesham quit (*.net *.split) 2018-08-21T18:47:59Z z0d joined #lisp 2018-08-21T18:48:02Z les joined #lisp 2018-08-21T18:48:07Z pierpal quit (Quit: Poof) 2018-08-21T18:48:12Z sigjuice joined #lisp 2018-08-21T18:48:25Z pierpal joined #lisp 2018-08-21T18:48:54Z umpc joined #lisp 2018-08-21T18:50:33Z random-nick quit (Read error: Connection reset by peer) 2018-08-21T18:51:13Z Xof quit (Ping timeout: 268 seconds) 2018-08-21T18:53:22Z |3b| quit (Remote host closed the connection) 2018-08-21T18:54:08Z |3b| joined #lisp 2018-08-21T18:56:02Z pierpal quit (Quit: Poof) 2018-08-21T18:56:21Z pierpal joined #lisp 2018-08-21T19:02:31Z jackdaniel: hey. I want to write a fast function which does alpha-composition between two rgba pixels, here's what I've got: http://ix.io/1kSL/lisp 2018-08-21T19:02:44Z jackdaniel: I'm not very good with bit fiddling so I'd appreciate any hints how I could improve this code 2018-08-21T19:03:38Z jackdaniel: (whole functions works on two arrays of course) 2018-08-21T19:04:03Z jkordani joined #lisp 2018-08-21T19:04:36Z Jesin joined #lisp 2018-08-21T19:07:26Z fikka joined #lisp 2018-08-21T19:07:35Z jkordani_ quit (Ping timeout: 240 seconds) 2018-08-21T19:08:45Z gigetoo joined #lisp 2018-08-21T19:08:46Z NB0X-Matt-CA joined #lisp 2018-08-21T19:09:02Z Fare joined #lisp 2018-08-21T19:12:53Z stylewarning joined #lisp 2018-08-21T19:19:47Z random-nick joined #lisp 2018-08-21T19:21:18Z Jesin quit (Quit: Leaving) 2018-08-21T19:21:35Z pierpal quit (Quit: Poof) 2018-08-21T19:21:51Z pierpal joined #lisp 2018-08-21T19:28:42Z fe[nl]ix: lisper29: that would be me 2018-08-21T19:30:04Z dented42 joined #lisp 2018-08-21T19:31:18Z X-Scale quit (Ping timeout: 256 seconds) 2018-08-21T19:31:26Z [X-Scale] joined #lisp 2018-08-21T19:32:08Z pierpa joined #lisp 2018-08-21T19:32:25Z Jesin joined #lisp 2018-08-21T19:32:50Z [X-Scale] is now known as X-Scale 2018-08-21T19:33:58Z light2yellow quit (Quit: WeeChat 2.2) 2018-08-21T19:34:00Z Jachy quit (*.net *.split) 2018-08-21T19:34:00Z creat quit (*.net *.split) 2018-08-21T19:34:01Z johs quit (*.net *.split) 2018-08-21T19:34:01Z ecraven quit (*.net *.split) 2018-08-21T19:34:01Z SlashLife quit (*.net *.split) 2018-08-21T19:34:23Z ecraven joined #lisp 2018-08-21T19:34:55Z SlashLife joined #lisp 2018-08-21T19:36:43Z warweasle quit (Quit: later) 2018-08-21T19:36:44Z creat joined #lisp 2018-08-21T19:38:08Z _death: jackdaniel: look-up tables would be an easy way, though not the fastest 2018-08-21T19:39:11Z pacon quit (*.net *.split) 2018-08-21T19:39:11Z n3t quit (*.net *.split) 2018-08-21T19:39:11Z djh_ quit (*.net *.split) 2018-08-21T19:39:11Z uint quit (*.net *.split) 2018-08-21T19:39:11Z zymurgy quit (*.net *.split) 2018-08-21T19:39:12Z trn quit (*.net *.split) 2018-08-21T19:39:12Z runejuhl quit (*.net *.split) 2018-08-21T19:39:12Z sakalli_ quit (*.net *.split) 2018-08-21T19:39:12Z bhyde quit (*.net *.split) 2018-08-21T19:39:12Z sukaeto quit (*.net *.split) 2018-08-21T19:39:12Z mikaelj quit (*.net *.split) 2018-08-21T19:39:12Z joga quit (*.net *.split) 2018-08-21T19:43:14Z jackdaniel: _death: thanks. it is internal function because I care about speed in there (it is for McCLIM framebuffer image rendering) 2018-08-21T19:43:26Z milanj joined #lisp 2018-08-21T19:43:40Z jackdaniel: I'll look up the look-up tables though, may be useful for testing if I didn't mess things up 2018-08-21T19:43:51Z trn joined #lisp 2018-08-21T19:47:18Z lumm quit (Ping timeout: 256 seconds) 2018-08-21T19:47:52Z rvirding quit (Ping timeout: 256 seconds) 2018-08-21T19:47:52Z PyroLagus quit (Ping timeout: 256 seconds) 2018-08-21T19:47:54Z lumm joined #lisp 2018-08-21T19:48:23Z sz0 quit (Quit: Connection closed for inactivity) 2018-08-21T19:48:26Z easye quit (Ping timeout: 256 seconds) 2018-08-21T19:48:26Z beach quit (Ping timeout: 256 seconds) 2018-08-21T19:48:27Z jasom quit (Ping timeout: 256 seconds) 2018-08-21T19:49:24Z uint joined #lisp 2018-08-21T19:50:23Z |3b|` joined #lisp 2018-08-21T19:53:59Z |3b| quit (Ping timeout: 255 seconds) 2018-08-21T19:54:00Z PyroLagus joined #lisp 2018-08-21T19:56:51Z shka_ quit (Ping timeout: 265 seconds) 2018-08-21T19:57:05Z fikka quit (Ping timeout: 244 seconds) 2018-08-21T20:00:43Z jasom joined #lisp 2018-08-21T20:02:04Z Xof joined #lisp 2018-08-21T20:03:05Z rvirding joined #lisp 2018-08-21T20:08:10Z aeth: pierpa: I'd handle binary infix like this. https://gitlab.com/snippets/1747127 2018-08-21T20:10:36Z dale_ joined #lisp 2018-08-21T20:10:50Z dale quit (Disconnected by services) 2018-08-21T20:10:56Z dale_ is now known as dale 2018-08-21T20:13:42Z argoneus_ joined #lisp 2018-08-21T20:13:49Z lacedaemon joined #lisp 2018-08-21T20:13:49Z ChanServ has set mode +o lacedaemon 2018-08-21T20:15:00Z funnel_ joined #lisp 2018-08-21T20:15:17Z froggey_ joined #lisp 2018-08-21T20:17:11Z torbo joined #lisp 2018-08-21T20:18:04Z detergnet joined #lisp 2018-08-21T20:18:27Z \u joined #lisp 2018-08-21T20:19:27Z dddddd quit (*.net *.split) 2018-08-21T20:19:28Z funnel quit (*.net *.split) 2018-08-21T20:19:28Z megalography quit (*.net *.split) 2018-08-21T20:19:28Z slyrus1 quit (*.net *.split) 2018-08-21T20:19:28Z froggey quit (*.net *.split) 2018-08-21T20:19:28Z cpape quit (*.net *.split) 2018-08-21T20:19:28Z djinni` quit (*.net *.split) 2018-08-21T20:19:28Z msb quit (*.net *.split) 2018-08-21T20:19:28Z fe[nl]ix quit (*.net *.split) 2018-08-21T20:19:28Z trittweiler quit (*.net *.split) 2018-08-21T20:19:28Z argoneus quit (*.net *.split) 2018-08-21T20:19:28Z meowray quit (*.net *.split) 2018-08-21T20:19:29Z fluxit quit (*.net *.split) 2018-08-21T20:19:29Z gabc quit (*.net *.split) 2018-08-21T20:19:34Z funnel_ is now known as funnel 2018-08-21T20:20:52Z Xach: jackdaniel: i like http://alvyray.com/Memos/MemosCG.htm 2018-08-21T20:21:00Z Xach: jackdaniel: not an instant or direct ref, sorry 2018-08-21T20:21:05Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-21T20:22:45Z antoszka joined #lisp 2018-08-21T20:24:06Z dddddd joined #lisp 2018-08-21T20:26:22Z megalography joined #lisp 2018-08-21T20:28:24Z lacedaemon is now known as fe[nl]ix 2018-08-21T20:29:14Z johs joined #lisp 2018-08-21T20:31:19Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-21T20:31:38Z torbo quit (Ping timeout: 252 seconds) 2018-08-21T20:36:19Z torbo joined #lisp 2018-08-21T20:37:18Z fikka joined #lisp 2018-08-21T20:37:52Z dented42 joined #lisp 2018-08-21T20:39:34Z dented42 quit (Client Quit) 2018-08-21T20:39:50Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-21T20:41:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-21T20:45:24Z vlatkoB quit (Remote host closed the connection) 2018-08-21T20:50:20Z light2yellow joined #lisp 2018-08-21T20:50:26Z lumm quit (Remote host closed the connection) 2018-08-21T20:52:19Z jack_rabbit joined #lisp 2018-08-21T20:54:03Z fouric: question: i have ``(foo ,,(+ 1 2)) which yields `(FOO ,3) but i want `(FOO 3), what do i need to do differently 2018-08-21T20:54:56Z fouric: for reasons beyond my ability to fathom, ``(foo ,(+ 1 2)) => `(FOO ,(+ 1 2)) 2018-08-21T20:55:28Z Shinmera: Just `(foo ,(+ 1 2)) ? 2018-08-21T20:55:33Z Shinmera: Why are you using double backquotes 2018-08-21T20:55:53Z fouric: `(foo ,(+ 1 2)) => (FOO 3) which is not what i need 2018-08-21T20:56:10Z Shinmera: `'(foo ,(+ 1 2)) then 2018-08-21T20:56:11Z fouric: i'm using double backquotes because it's part of a larger macro that i cut down 2018-08-21T20:56:32Z fouric: `'(foo ,(+ 1 2)) => '(FOO 3) which doesn't allow for more unquoting 2018-08-21T20:56:47Z Shinmera: Sigh 2018-08-21T20:56:51Z Shinmera: ``(foo ,',(+ 1 2)) then 2018-08-21T20:57:22Z Shinmera: `(FOO 3) and '(FOO 3) are equivalent. If you "Need more unquoting" you should post a better example 2018-08-21T20:57:42Z fouric: hm, ok 2018-08-21T20:58:02Z fouric: i was trying to be concise to save people time but i guess context is needed 2018-08-21T20:58:22Z ebrasca: Can I get donations for developing mezzano? 2018-08-21T20:58:57Z fouric: https://gist.github.com/fouric/6213a6046cfbe4aa213aef2f7dd66f1c 2018-08-21T20:59:22Z xantoz joined #lisp 2018-08-21T21:00:04Z Shinmera: You could use (list 'gethash ,keyword ,sym) or, as I pointed out above, `(gethash ,',keyword ,',sym) 2018-08-21T21:00:37Z Shinmera: mm, *(list 'gethash ',keyword ',sym) 2018-08-21T21:03:25Z fouric: neither of those work unfortunately - should i just give up on quasiquote and use LIST etc. instead? 2018-08-21T21:03:53Z fouric: that is, am i trying to do something that fundamentally cannot be done with quasiquote 2018-08-21T21:05:03Z Shinmera: It can be done and I told you how. Maybe you're asking the wrong question, and besides that your function looks really weird. How do you hope to gethash from a variable that you just gensym up? 2018-08-21T21:05:48Z Shinmera: Oh wait, you gensym-- ok 2018-08-21T21:06:21Z Shinmera: Hold on. 2018-08-21T21:08:14Z Shinmera: https://gist.github.com/fouric/6213a6046cfbe4aa213aef2f7 2018-08-21T21:08:35Z Shinmera: No wait, still not right. It's too late to do this. 2018-08-21T21:08:49Z fouric: sorry i'm a bad macro writer 2018-08-21T21:09:03Z fouric: still not used to thinking about multiple levels of syntax expansion at once 2018-08-21T21:09:45Z Shinmera: There we go, updated the comment. That should be right. 2018-08-21T21:10:48Z fouric: that is some LOOP black magic right there 2018-08-21T21:10:50Z fouric: thank you! 2018-08-21T21:10:59Z Shinmera: Not really 2018-08-21T21:11:15Z Shinmera: I just don't like mapcar for anything that isn't already a toplevel function 2018-08-21T21:11:46Z Pixel_Outlaw joined #lisp 2018-08-21T21:11:52Z Shinmera: You could also do this with an flet instead of a macrolet. 2018-08-21T21:11:54Z rumbler31 joined #lisp 2018-08-21T21:12:15Z fouric: oh, that makes sense 2018-08-21T21:12:26Z fouric: unfortunately the macro does not actually expand properly 2018-08-21T21:12:30Z fouric: flet... 2018-08-21T21:12:42Z Josh_2 joined #lisp 2018-08-21T21:13:07Z fouric: oh, the reason i was using macrolet was because i was going to SETF the resulting expansions 2018-08-21T21:13:51Z Shinmera: You can still do it with flet. And also the expansion of my version works just fine. 2018-08-21T21:14:47Z Shinmera: Here's an flet version. https://gist.github.com/fouric/6213a6046cfbe4aa213aef2f7dd66f1c#gistcomment-2685378 2018-08-21T21:16:35Z aeth: ebrasca: If you want money for Mezzano I'd recommend refocusing the project to be a cloud OS for deploying Lisp applications. e.g. https://en.wikipedia.org/wiki/Unikernel 2018-08-21T21:16:52Z fouric: you're right, it does work fine 2018-08-21T21:16:55Z fouric: totally my b 2018-08-21T21:17:05Z angavrilov quit (Remote host closed the connection) 2018-08-21T21:17:10Z fouric: i left some stuff around in the REPL i was testing it with 2018-08-21T21:17:11Z lumm joined #lisp 2018-08-21T21:17:22Z Josh_2: hey so neither slime or sly are connecting to the sbcl backend, although sbcl is launching in another buffer on my Emacs 2018-08-21T21:17:27Z fouric: ty Shinmera 2018-08-21T21:17:30Z Shinmera: sure 2018-08-21T21:17:31Z fouric: much appreciated 2018-08-21T21:17:47Z Josh_2: Getting this error (("Error in timer" sly-attempt-connection (# nil 3) (void-function set-up-sly-ac))) 2018-08-21T21:17:50Z aeth: ebrasca: e.g. get a server Mezzano running on a cloud provider and you just virtualize your Lisp server application on Mezzano. 2018-08-21T21:21:02Z fouric: ebrasca: do you have a bountysource thing set up or something? 2018-08-21T21:21:43Z lumm_ joined #lisp 2018-08-21T21:21:52Z ebrasca: fouric: I am contributor to mezzano. I don't think there is bountysource or sometink like this. 2018-08-21T21:22:39Z ebrasca: aeth: Mezzano can run on qemu , kvm and have single address space. 2018-08-21T21:22:42Z lumm quit (Read error: Connection reset by peer) 2018-08-21T21:22:43Z lumm_ is now known as lumm 2018-08-21T21:22:58Z charh quit (Ping timeout: 260 seconds) 2018-08-21T21:23:21Z no-defun-allowed: Good morning everyone! 2018-08-21T21:23:31Z ebrasca: aeth: Today I have fix problems with tcp ip in mezzano. 2018-08-21T21:23:58Z aeth: ebrasca: Does it run in a non-graphical mode? 2018-08-21T21:24:07Z aeth: ebrasca: And does it support SSH? 2018-08-21T21:24:15Z charh joined #lisp 2018-08-21T21:25:46Z aeth: ebrasca: I would go the Ubuntu route and have a Server version and a Desktop version. In fact, Ubuntu also has a Cloud edition, which is probably a modified Server edition that's tested on various cloud providers. 2018-08-21T21:25:46Z ebrasca: aeth: I can connect to it with slime. 2018-08-21T21:25:51Z ebrasca: aeth: froggey say it is relativeli easy to make it non-graphical. 2018-08-21T21:26:13Z meepdeew joined #lisp 2018-08-21T21:26:45Z aeth: ebrasca: You'd probably want to tunnel SLIME over SSH or something else that's encrypted. 2018-08-21T21:27:26Z aeth: ebrasca: If I were you I'd put together a list of proposed server/cloud features and see if anyone is interested in Mezzano as a server. 2018-08-21T21:27:34Z fouric raises hand 2018-08-21T21:28:46Z ebrasca: fouric: Do you have someting in mind? 2018-08-21T21:31:37Z mindCrime quit (Ping timeout: 260 seconds) 2018-08-21T21:31:55Z ebrasca: aeth: I can make this list. 2018-08-21T21:32:15Z ebrasca: aeth: How to find interested people in Mezzano as a server? 2018-08-21T21:33:02Z aeth: ebrasca: Make a blog post about Mezzano-as-a-server and see if it gets featured on Hacker News, /r/programming, comp.lang.lisp, etc. 2018-08-21T21:33:54Z aeth: You probably need two lists. What it does now and what it should do in the future. 2018-08-21T21:35:04Z aeth: You should probably have someone proofread a draft here first. 2018-08-21T21:36:28Z aeth: You should also try to get it running on a cloud platform if there are cloud platforms that let non-Linux OSes run on them. You'll need to have an encrypted way to connect to it first, though. 2018-08-21T21:38:26Z aeth: If it can run a CL web server you'd probably want to put the Mezzano web server behind another server that runs a mature web server like nginx. I'm not a cloud person, though, so I'm not sure how that works. 2018-08-21T21:39:20Z ebrasca: Mezzano have tcp/ip wichout retransmission. 2018-08-21T21:40:12Z ebrasca: It can read and write to fat32 (Probably not optimized). 2018-08-21T21:43:36Z asarch joined #lisp 2018-08-21T21:48:00Z Bike quit (Ping timeout: 252 seconds) 2018-08-21T21:48:15Z ebrasca: aeth: Do you mean someting like tcp with retransmission , ssh and hunchentoot ? 2018-08-21T21:49:56Z aeth: ebrasca: yes 2018-08-21T21:52:31Z aeth: ebrasca: If there's any money in Mezzano it's in servers and cloud. No one (or close enough to no one) is going to switch their client from Windows or Android. 2018-08-21T21:52:46Z aeth: But servers can run anything. 2018-08-21T21:53:51Z aeth: I would personally focus on the network stack and remote access for now. Linux was a stable server OS long before it was a stable desktop one. 2018-08-21T21:54:32Z rozenglass joined #lisp 2018-08-21T21:55:20Z ebrasca: aeth: Yea I am alredy focus in tcp/ip. 2018-08-21T21:55:26Z dented42 joined #lisp 2018-08-21T21:55:55Z aeth: Don't forget UDP. 2018-08-21T21:56:07Z aeth: Almost everything is either TCP or UDP afaik. 2018-08-21T21:56:50Z ebrasca: I have done some ARP. 2018-08-21T21:59:26Z dented42 quit (Client Quit) 2018-08-21T22:00:01Z dale quit (Quit: dale) 2018-08-21T22:00:02Z random-nick quit (Read error: Connection reset by peer) 2018-08-21T22:00:31Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-21T22:01:49Z mkolenda joined #lisp 2018-08-21T22:01:50Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-21T22:02:09Z light2yellow quit (Quit: light2yellow) 2018-08-21T22:02:58Z moei quit (Quit: Leaving...) 2018-08-21T22:04:10Z ebrasca: aeth: Thank you! 2018-08-21T22:04:32Z aeth: You're welcome. 2018-08-21T22:05:24Z aeth: ebrasca: I think the time to post about this is when you have a working proof of concept of Mezzano running as a server. 2018-08-21T22:06:26Z aeth: That's all but guaranteed to make it to the front of Hacker News and /r/lisp and has a decent chance of making it to /r/programming. Your pitch for donations or bug/feature bounties or Mezzano-as-a-service or whatever can go at the bottom of the post. 2018-08-21T22:07:43Z aeth: (If a web server is too hard you can think of something simpler. You're already almost there by having SLIME run.) 2018-08-21T22:08:06Z Denommus quit (Remote host closed the connection) 2018-08-21T22:08:35Z Josh_2 quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-21T22:13:43Z rocx joined #lisp 2018-08-21T22:18:03Z quazimodo joined #lisp 2018-08-21T22:30:34Z dented42 joined #lisp 2018-08-21T22:35:52Z moei joined #lisp 2018-08-21T22:40:11Z White_Flame: ebrasca: and you should set up the means for accepting donations (paypal button, patreon, etc) before such an announcement. 2018-08-21T22:41:34Z lavaflow joined #lisp 2018-08-21T22:42:46Z lumm_ joined #lisp 2018-08-21T22:43:30Z Bike joined #lisp 2018-08-21T22:43:42Z lumm quit (Ping timeout: 264 seconds) 2018-08-21T22:43:42Z lumm_ is now known as lumm 2018-08-21T22:44:07Z rumbler31 quit (Remote host closed the connection) 2018-08-21T22:50:21Z Guest5800_ quit (Quit: Connection closed for inactivity) 2018-08-21T22:51:36Z emaczen quit (Read error: Connection reset by peer) 2018-08-21T22:51:56Z emaczen joined #lisp 2018-08-21T22:59:48Z rumbler31 joined #lisp 2018-08-21T22:59:53Z jkordani_ joined #lisp 2018-08-21T23:03:48Z jkordani quit (Ping timeout: 252 seconds) 2018-08-21T23:04:05Z rumbler31 quit (Remote host closed the connection) 2018-08-21T23:04:27Z robotoad_ quit (Quit: robotoad_) 2018-08-21T23:06:56Z parjanya quit (Remote host closed the connection) 2018-08-21T23:07:04Z parjanya joined #lisp 2018-08-21T23:10:39Z anewuser joined #lisp 2018-08-21T23:23:19Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-21T23:24:07Z mkolenda joined #lisp 2018-08-21T23:25:08Z jkordani joined #lisp 2018-08-21T23:29:18Z jkordani_ quit (Ping timeout: 264 seconds) 2018-08-21T23:38:23Z torbo quit (Remote host closed the connection) 2018-08-21T23:46:09Z |3b|` is now known as |3b| 2018-08-21T23:57:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-22T00:01:51Z Kundry_Wag joined #lisp 2018-08-22T00:16:27Z Oladon joined #lisp 2018-08-22T00:17:47Z captgector quit (Read error: Connection reset by peer) 2018-08-22T00:18:34Z captgector joined #lisp 2018-08-22T00:29:00Z lumm quit (Quit: lumm) 2018-08-22T00:33:13Z lavaflow quit (Read error: Connection reset by peer) 2018-08-22T00:34:49Z panji` joined #lisp 2018-08-22T00:35:10Z lavaflow joined #lisp 2018-08-22T00:36:42Z nowhere_man quit (Ping timeout: 272 seconds) 2018-08-22T00:38:21Z rumbler31 joined #lisp 2018-08-22T00:41:39Z skidd0 joined #lisp 2018-08-22T00:46:17Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-22T00:46:40Z nckx joined #lisp 2018-08-22T00:57:26Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-22T01:03:56Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-22T01:15:48Z Oladon quit (Quit: Leaving.) 2018-08-22T01:18:40Z jack_rabbit joined #lisp 2018-08-22T01:18:47Z nckx joined #lisp 2018-08-22T01:19:08Z dale joined #lisp 2018-08-22T01:29:47Z nebunez joined #lisp 2018-08-22T01:33:39Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-22T01:34:02Z Pixel_Outlaw joined #lisp 2018-08-22T01:41:34Z rumbler31 quit (Remote host closed the connection) 2018-08-22T01:54:34Z earl-ducaine joined #lisp 2018-08-22T01:56:07Z Demosthenex joined #lisp 2018-08-22T01:56:33Z anewuser quit (Ping timeout: 260 seconds) 2018-08-22T01:57:49Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-22T01:58:12Z nckx joined #lisp 2018-08-22T02:02:17Z Oladon joined #lisp 2018-08-22T02:02:28Z Kundry_Wag quit (Remote host closed the connection) 2018-08-22T02:03:02Z Kundry_Wag joined #lisp 2018-08-22T02:05:34Z blt joined #lisp 2018-08-22T02:07:32Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-22T02:07:36Z milanj quit (Quit: This computer has gone to sleep) 2018-08-22T02:08:01Z dale quit (Quit: dale) 2018-08-22T02:14:16Z pierpa quit (Quit: Page closed) 2018-08-22T02:35:26Z Kundry_Wag joined #lisp 2018-08-22T02:46:08Z dddddd quit (Ping timeout: 260 seconds) 2018-08-22T02:47:13Z shifty joined #lisp 2018-08-22T02:51:38Z panji` quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2018-08-22T02:59:10Z dddddd joined #lisp 2018-08-22T03:05:43Z beach joined #lisp 2018-08-22T03:08:53Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-22T03:10:31Z Bike quit (Quit: Lost terminal) 2018-08-22T03:16:27Z flazh1 quit (Ping timeout: 240 seconds) 2018-08-22T03:23:17Z skidd0 quit (Quit: WeeChat 2.2) 2018-08-22T03:26:04Z Pixel_Outlaw quit (Remote host closed the connection) 2018-08-22T03:26:18Z Fare quit (Ping timeout: 264 seconds) 2018-08-22T03:40:08Z dddddd quit (Remote host closed the connection) 2018-08-22T03:40:32Z Oladon quit (Ping timeout: 244 seconds) 2018-08-22T03:41:39Z Kundry_Wag joined #lisp 2018-08-22T03:45:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-22T03:51:54Z nebunez quit (Ping timeout: 244 seconds) 2018-08-22T04:02:11Z Fare joined #lisp 2018-08-22T04:08:52Z Fare quit (Ping timeout: 272 seconds) 2018-08-22T04:15:57Z atgreen_ quit (Ping timeout: 240 seconds) 2018-08-22T04:15:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-22T04:19:31Z meepdeew quit (Remote host closed the connection) 2018-08-22T04:23:43Z smokeink joined #lisp 2018-08-22T04:27:43Z atgreen joined #lisp 2018-08-22T04:29:04Z metaYan joined #lisp 2018-08-22T04:33:02Z Fare joined #lisp 2018-08-22T04:34:04Z metaYan quit (Quit: leaving) 2018-08-22T04:38:22Z flazh1 joined #lisp 2018-08-22T04:38:25Z lisper29 left #lisp 2018-08-22T04:42:48Z \u is now known as meowray 2018-08-22T04:47:42Z Intensity quit (Ping timeout: 244 seconds) 2018-08-22T04:55:58Z flazh1 quit (Ping timeout: 244 seconds) 2018-08-22T04:59:04Z MetaYan joined #lisp 2018-08-22T04:59:27Z foom2 joined #lisp 2018-08-22T05:02:21Z foom quit (Ping timeout: 240 seconds) 2018-08-22T05:10:37Z slyrus1 joined #lisp 2018-08-22T05:14:30Z Inline quit (Quit: Leaving) 2018-08-22T05:15:28Z Kundry_Wag joined #lisp 2018-08-22T05:19:44Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-22T05:21:45Z shka_ joined #lisp 2018-08-22T05:28:26Z jackdaniel: Xach: looks interesting though, thank you. bookmarked for later read 2018-08-22T05:50:12Z aijony quit (Ping timeout: 272 seconds) 2018-08-22T05:51:43Z aijony joined #lisp 2018-08-22T05:56:40Z flazh1 joined #lisp 2018-08-22T05:58:17Z Kaisyu joined #lisp 2018-08-22T06:00:56Z shka_ quit (Read error: No route to host) 2018-08-22T06:01:46Z asarch quit (Quit: Leaving) 2018-08-22T06:03:16Z froggey_ quit (Ping timeout: 252 seconds) 2018-08-22T06:05:08Z froggey joined #lisp 2018-08-22T06:05:11Z n3t joined #lisp 2018-08-22T06:08:15Z vlatkoB joined #lisp 2018-08-22T06:15:18Z Kundry_Wag joined #lisp 2018-08-22T06:21:46Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-22T06:30:17Z tralala joined #lisp 2018-08-22T06:32:44Z dented42 joined #lisp 2018-08-22T06:35:39Z igemnace quit (Quit: WeeChat 2.2) 2018-08-22T06:37:46Z steiner joined #lisp 2018-08-22T06:37:55Z dented42 quit (Ping timeout: 268 seconds) 2018-08-22T06:37:58Z sauvin joined #lisp 2018-08-22T06:39:18Z milanj joined #lisp 2018-08-22T06:42:22Z rumbler31 joined #lisp 2018-08-22T06:48:28Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-22T06:52:05Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 25.3.2)) 2018-08-22T06:54:58Z Fare quit (Ping timeout: 252 seconds) 2018-08-22T06:57:41Z steiner quit (Remote host closed the connection) 2018-08-22T06:57:46Z trittweiler joined #lisp 2018-08-22T06:58:30Z Kaisyu7 joined #lisp 2018-08-22T07:01:30Z varjag joined #lisp 2018-08-22T07:07:23Z steiner joined #lisp 2018-08-22T07:07:46Z shrdlu68 joined #lisp 2018-08-22T07:09:04Z Kundry_Wag joined #lisp 2018-08-22T07:12:37Z rumbler31 quit (Remote host closed the connection) 2018-08-22T07:12:47Z dented42 joined #lisp 2018-08-22T07:13:39Z schweers joined #lisp 2018-08-22T07:14:00Z Kundry_Wag quit (Ping timeout: 265 seconds) 2018-08-22T07:15:45Z heisig joined #lisp 2018-08-22T07:16:37Z krwq joined #lisp 2018-08-22T07:17:35Z shifty quit (Ping timeout: 240 seconds) 2018-08-22T07:27:28Z joga joined #lisp 2018-08-22T07:31:14Z djh joined #lisp 2018-08-22T07:32:49Z shka_ joined #lisp 2018-08-22T07:33:05Z shka_: good morning 2018-08-22T07:36:10Z no-defun-allowed: afternoon shka_ 2018-08-22T07:37:59Z nsrahmad joined #lisp 2018-08-22T07:42:00Z orivej joined #lisp 2018-08-22T07:46:06Z dented42 quit (Ping timeout: 264 seconds) 2018-08-22T07:49:05Z pierpal quit (Quit: Poof) 2018-08-22T07:49:26Z pierpal joined #lisp 2018-08-22T08:00:08Z schjetne joined #lisp 2018-08-22T08:05:58Z nsrahmad quit (Read error: Connection reset by peer) 2018-08-22T08:15:38Z slyrus1: Xof: around? 2018-08-22T08:16:33Z light2yellow joined #lisp 2018-08-22T08:25:11Z mkolenda quit (Remote host closed the connection) 2018-08-22T08:25:41Z mkolenda joined #lisp 2018-08-22T08:33:52Z steiner quit (Remote host closed the connection) 2018-08-22T08:34:09Z steiner joined #lisp 2018-08-22T08:34:11Z kajo quit (Read error: Connection reset by peer) 2018-08-22T08:35:18Z Shinmera: Woo, got a complete, working implementation of geometry clipmaps in my Lisp game engine! https://www.youtube.com/watch?v=_qAARn1nOSw 2018-08-22T08:36:06Z shka_: Shinmera: oh, so that's what you were doing lately! 2018-08-22T08:37:17Z nowhere_man joined #lisp 2018-08-22T08:40:31Z Shinmera: Gonna write a continuation of the previous entry about geometry clipmaps later 2018-08-22T08:40:39Z Shinmera: On my blog I mean 2018-08-22T08:42:20Z light2yellow quit (Quit: light2yellow) 2018-08-22T08:43:24Z gigetoo quit (Read error: No route to host) 2018-08-22T08:43:59Z shka_: Shinmera: it looks very smooth 2018-08-22T08:44:07Z gigetoo joined #lisp 2018-08-22T08:44:45Z Shinmera: As it should. 2018-08-22T08:44:56Z shka_: indeed 2018-08-22T08:45:11Z Kundry_Wag joined #lisp 2018-08-22T08:47:06Z Shinmera: Still plenty to do though, especially in terms of optimisation. 2018-08-22T08:47:58Z Shinmera: As it is, the 2018-08-22T08:48:11Z Shinmera: re's absolutely no optimisation at all. 2018-08-22T08:48:54Z Shinmera: And by the way, my engine uses CLOS all over the place, and pays practically no attention to consing or anything, and it still runs just fine for pretty much everything I've done so far. 2018-08-22T08:49:52Z no-defun-allowed: but GCs are bad for games /s 2018-08-22T08:50:00Z shka_: honestly, that sums up my total expirience with clos as well 2018-08-22T08:50:16Z Shinmera: Just to give a counterpoint to all the games people (even in here) that constantly brag about how optimised their stuff is. 2018-08-22T08:50:33Z pierpal quit (Quit: Poof) 2018-08-22T08:50:50Z pierpal joined #lisp 2018-08-22T08:51:09Z shka_: To be fair, many people seems to complain about how costly generic functions are. 2018-08-22T08:51:32Z shka_: but for me, it never was any issue 2018-08-22T08:52:03Z Shinmera: It has been an issue for me in some cases, like real time audio processing, but most of the time it has not impacted me at all. 2018-08-22T08:52:25Z no-defun-allowed: i could do realtime synthesis with sbcl and clos 2018-08-22T08:52:52Z no-defun-allowed: lemme think, around 8 2 op FM at 44.1k/16bit channels 2018-08-22T08:53:05Z smokeink quit (Ping timeout: 240 seconds) 2018-08-22T08:54:05Z Shinmera: Sure, what I did was more heavy weight. 2018-08-22T08:54:21Z Shinmera: Sample conversion and interpolation, various effects and mixing of multiple channels, etc. 2018-08-22T08:54:41Z Shinmera: Anyway, now I've got Harmony and that problem is pretty much solved. 2018-08-22T08:54:57Z Shinmera: (except for the native Windows backend being broken) 2018-08-22T08:57:12Z shka_: Shinmera: what is harmony? 2018-08-22T08:57:26Z Shinmera: Colleen: tell shka_ look up harmony 2018-08-22T08:57:27Z Colleen: shka_: About harmony https://shirakumo.github.io/harmony#about_harmony 2018-08-22T08:57:44Z shka_: oh, ok 2018-08-22T08:58:22Z shka_: neat, guy at #lisp-pl is into sound/signal processing stuff 2018-08-22T08:58:37Z shka_: i will paste it to him 2018-08-22T08:59:29Z aindilis quit (Ping timeout: 276 seconds) 2018-08-22T08:59:32Z pierpal quit (Quit: Poof) 2018-08-22T08:59:49Z pierpal joined #lisp 2018-08-22T08:59:59Z dim: I think it boils down to not using generic function in your inner-loops processing, at least that's what I do in pgloader 2018-08-22T09:00:38Z DGASAU quit (Ping timeout: 260 seconds) 2018-08-22T09:00:39Z dim: I mean I use them extensively for preparing the catalogs and all, and not at all when actually reading and re-formating and writing bytes over the network 2018-08-22T09:01:41Z Shinmera: For my game engine I use GFs in the main draw and update steps all over. It's fine. 2018-08-22T09:02:03Z shka_: dim: unless those are functions you really want to inline, GF work just fine 2018-08-22T09:03:10Z shka_: i am under impression that notion about performance of GF is not relevant with current hardware 2018-08-22T09:03:21Z jackdaniel: benchmark everything if unsure. 2018-08-22T09:03:29Z Shinmera: It depends on the workload. There's definitely overhead and that can be enough to matter 2018-08-22T09:03:49Z shka_: yeah, sure 2018-08-22T09:03:58Z jackdaniel: if you process (say) images, you have loops going over each pixel, so even if gf gives you 1ms, you lose 1s etc 2018-08-22T09:04:24Z dented42 joined #lisp 2018-08-22T09:05:26Z jackdaniel: of course time values were totally made up :) 2018-08-22T09:06:26Z Bronsa joined #lisp 2018-08-22T09:06:48Z shka_: application is your ultimate benchmark anyway 2018-08-22T09:07:58Z jackdaniel: I don't know what's that supposed to mean: you start to implement fast methods only after you prove that you wrote a complete application which is painfully slow? 2018-08-22T09:09:54Z shka_: I mean: write prototype, benchmark it. Don't attempt to perform microbenchmarks because results are misleading 2018-08-22T09:14:31Z heisig: Oh, microbenchmarks can be quite enlightening. Otherwise I wouldn't have figured out that if you do certain MOP things (e.g., calling ADD-METHOD yourself) SBCL switches from fast methods to slow methods. 2018-08-22T09:15:09Z heisig: That can be an order of magnitude slower. Of course, whether that matters depends on your application. 2018-08-22T09:17:54Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-22T09:18:08Z lumm joined #lisp 2018-08-22T09:18:57Z shrdlu68 quit (Ping timeout: 244 seconds) 2018-08-22T09:28:08Z shifty joined #lisp 2018-08-22T09:30:08Z random-nick joined #lisp 2018-08-22T09:45:36Z cpape joined #lisp 2018-08-22T09:47:14Z dented42 quit (Ping timeout: 268 seconds) 2018-08-22T09:50:35Z CrazyEddy quit (Ping timeout: 240 seconds) 2018-08-22T09:53:09Z krwq quit (Remote host closed the connection) 2018-08-22T09:56:44Z tralala quit (Remote host closed the connection) 2018-08-22T09:56:51Z tralala joined #lisp 2018-08-22T10:01:54Z milanj quit (Quit: This computer has gone to sleep) 2018-08-22T10:13:18Z thawes quit (Remote host closed the connection) 2018-08-22T10:14:46Z thawes joined #lisp 2018-08-22T10:15:46Z CrazyEddy joined #lisp 2018-08-22T10:16:45Z thawes quit (Remote host closed the connection) 2018-08-22T10:17:03Z thawes joined #lisp 2018-08-22T10:17:15Z gpiero quit (Remote host closed the connection) 2018-08-22T10:17:39Z shka_: Shinmera: harmony looks rather cool! 2018-08-22T10:18:24Z shka_: you continue to amaze me with sheer volume of decent projects you created 2018-08-22T10:18:29Z Shinmera: Thanks 2018-08-22T10:18:50Z gpiero joined #lisp 2018-08-22T10:24:24Z gpiero quit (Quit: Leaving.) 2018-08-22T10:27:22Z gpiero joined #lisp 2018-08-22T10:28:27Z housel quit (Read error: Connection reset by peer) 2018-08-22T10:29:11Z dented42 joined #lisp 2018-08-22T10:33:18Z makomo joined #lisp 2018-08-22T10:34:11Z milanj joined #lisp 2018-08-22T10:34:43Z fikka joined #lisp 2018-08-22T10:45:26Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-08-22T10:55:07Z m00natic joined #lisp 2018-08-22T10:56:42Z jack_rabbit joined #lisp 2018-08-22T11:00:21Z rozenglass quit (Remote host closed the connection) 2018-08-22T11:03:50Z dented42 quit (Ping timeout: 244 seconds) 2018-08-22T11:08:08Z light2yellow joined #lisp 2018-08-22T11:15:07Z Kundry_Wag joined #lisp 2018-08-22T11:17:49Z dddddd joined #lisp 2018-08-22T11:24:03Z light2yellow quit (Ping timeout: 268 seconds) 2018-08-22T11:25:15Z light2yellow joined #lisp 2018-08-22T11:27:04Z ismdeep joined #lisp 2018-08-22T11:27:06Z ismdeep quit (Client Quit) 2018-08-22T11:29:53Z rocx quit (Remote host closed the connection) 2018-08-22T11:33:30Z light2yellow quit (Ping timeout: 264 seconds) 2018-08-22T11:39:48Z markoong joined #lisp 2018-08-22T11:48:43Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-22T11:48:58Z LdBeth: good evening 2018-08-22T11:49:52Z gaqwas joined #lisp 2018-08-22T11:50:12Z rumbler31 joined #lisp 2018-08-22T11:50:32Z no-defun-allowed: Hello LdBeth 2018-08-22T11:51:05Z LdBeth: today looked at Yale Haskell, which is written in Scheme flavored Common Lisp 2018-08-22T11:51:07Z rumbler31 quit (Remote host closed the connection) 2018-08-22T11:51:35Z LdBeth: sounds awkward. 2018-08-22T11:52:32Z no-defun-allowed: That's.... What the fuck 2018-08-22T11:52:50Z mishoo joined #lisp 2018-08-22T11:54:45Z beach: What could a "Scheme flavored Common Lisp" be? 2018-08-22T11:54:48Z antoszka: LdBeth: link please? 2018-08-22T11:55:13Z dented42 joined #lisp 2018-08-22T11:56:13Z dim: I can find https://github.com/haskell-lisp/yale-haskell which seems to be a project from 26 years ago 2018-08-22T11:57:53Z LdBeth: yes. many haskell implementations are deprecated. and i can't find one can be compiled without GHC 2018-08-22T11:58:32Z antoszka: > # This is a hack; we run Allegro on both sparc and next boxes, and 2018-08-22T11:58:38Z antoszka: Good times. Long gone. 2018-08-22T12:01:27Z LdBeth: beach: it's a compatblity layer made by wrapping a few CL utils and write the rest of world in Scheme style 2018-08-22T12:02:02Z rumbler31 joined #lisp 2018-08-22T12:06:28Z DGASAU joined #lisp 2018-08-22T12:14:00Z atgreen quit (Ping timeout: 268 seconds) 2018-08-22T12:15:24Z beach: I see. Thanks. 2018-08-22T12:22:34Z Bike joined #lisp 2018-08-22T12:27:56Z fikka quit (Ping timeout: 272 seconds) 2018-08-22T12:28:38Z Xof: slyrus1: hi 2018-08-22T12:29:46Z Josh_2 joined #lisp 2018-08-22T12:32:52Z fikka joined #lisp 2018-08-22T12:32:58Z light2yellow joined #lisp 2018-08-22T12:36:11Z smokeink joined #lisp 2018-08-22T12:37:48Z fikka quit (Ping timeout: 252 seconds) 2018-08-22T12:38:40Z dented42 quit (Ping timeout: 268 seconds) 2018-08-22T12:43:17Z fikka joined #lisp 2018-08-22T12:44:55Z smokeink quit (Remote host closed the connection) 2018-08-22T12:45:19Z smokeink joined #lisp 2018-08-22T12:46:03Z smokeink: does this look like the proper way to delete an object from the manardb database? http://pastecode.ru/944ee43/ 2018-08-22T12:48:04Z fikka quit (Ping timeout: 252 seconds) 2018-08-22T12:49:50Z random-nick quit (Remote host closed the connection) 2018-08-22T12:52:39Z random-nick joined #lisp 2018-08-22T12:53:06Z fikka joined #lisp 2018-08-22T12:54:08Z smokeink: by calling that (gc _everything_except_the_obj_I_don't_need_any_more :verbose t) ? that doesn't look right to me, I think I must be missing something 2018-08-22T12:54:45Z LdBeth: smokeink: does other objects holds the reference to it? 2018-08-22T12:55:00Z HarpoRoeder joined #lisp 2018-08-22T12:55:34Z LdBeth: ie, it's the CDR of anthor list which is in everything_except_the_obj_I_don't_need_any_more  2018-08-22T12:56:58Z smokeink: if other objects don't hold references to it, then that obj gets destroyed. I pushing adding that obj into a list but that doesn't make it count as "referenced" 2018-08-22T12:57:31Z smokeink: I don't (yet) know how to make an obj "referenced" 2018-08-22T12:58:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-22T13:00:32Z Bike: not that i'm familiar with this system, but if you deal with things through a garbage collector, is "delete this particular object" even a thing the system wants you to be able to do? 2018-08-22T13:01:02Z SaganMan joined #lisp 2018-08-22T13:01:45Z smokeink: I want to understand in such a system how am I supposed to delete a blog post from the db, for example 2018-08-22T13:03:36Z fikka joined #lisp 2018-08-22T13:03:41Z jdz: Which blog post? 2018-08-22T13:03:59Z jdz: In other words: how do you know which blog post you want to delete? 2018-08-22T13:04:14Z smokeink: http://git.elangley.org/edwlan/blogerate.git/blob/ef839cbf4d96b5ee4aa02ab6d82aa6bf64293301/blogerate.lisp 2018-08-22T13:05:00Z smokeink: this small app here can add blog posts, but shouldn't I also be able to delete them? (by ID for example, since each post has a unique ID) 2018-08-22T13:05:00Z jdz: That's not an answer. 2018-08-22T13:05:26Z jdz: Where do you get an ID of a blog post you want to delete? 2018-08-22T13:06:16Z rumbler31 quit (Remote host closed the connection) 2018-08-22T13:06:36Z smokeink: when I create a blog post, I create a unique ID for it. Then in the HTML I can output that ID for the action of a "delete" button for example 2018-08-22T13:06:56Z smokeink: and the ID can be stored in the db (it's a slot) 2018-08-22T13:07:01Z jdz: I may have come to the discussion at a wrong moment, but if you know what you want to delete, then obviously you have some kind of a reference, so it seems very wrong to want to "make object referenced". 2018-08-22T13:07:57Z smokeink: :) you'll have to explain why you think that if an object exists then it must be referenced by something else. 2018-08-22T13:08:28Z smokeink: it just exists by itself, it's there, floating in the database. And I want to delete it, since nobody wants it any more (and nobody actually rferences it ) 2018-08-22T13:08:38Z jdz: It's the old philosophical question: do you exist if you don't see you? 2018-08-22T13:08:58Z Shinmera: objects only exist if they can be referenced. 2018-08-22T13:09:23Z Bike: "you'll have to explain why you think that if an object exists then it must be referenced by something else" because otherwise the gc would delete it 2018-08-22T13:09:25Z Bike: no? 2018-08-22T13:09:43Z Shinmera: No, because if it's not referenced it simply doesn't exist by the programmer's view. 2018-08-22T13:09:53Z jdz: The issue here is multiple systems: the lisp system, and the database. 2018-08-22T13:10:06Z jdz: Seems to be the issue to me. 2018-08-22T13:10:19Z LdBeth: smokeink: if (1 2 3 FOO) is excluded then other references to FOO alse won't be wiped 2018-08-22T13:11:29Z LdBeth: since after save into db, the #'lisp-object-to-mptr to the save symbol will always return the same mptr 2018-08-22T13:11:41Z LdBeth: s/save/same 2018-08-22T13:14:23Z argoneus_ is now known as argoneus 2018-08-22T13:16:38Z Bike: i'm just saying, practically speaking, if the post isn't referenced from the database, surely gc will axe it 2018-08-22T13:17:24Z smokeink: you are right 2018-08-22T13:17:30Z smokeink: just tested that now 2018-08-22T13:18:35Z smokeink: if I make another class (let's call it posts) that references individual post objects, and I tell the gc that I don't want to gc posts, then it'll spare all the referenced individual post objs 2018-08-22T13:19:14Z smokeink: now, is that the right way to work? to have a class post and then another class posts that references post objects ?? 2018-08-22T13:20:00Z smokeink: is that the idiomatic way to do it ? 2018-08-22T13:20:14Z LdBeth: gc will with even circular reference, so don't worry 2018-08-22T13:20:24Z LdBeth: s/with/work 2018-08-22T13:20:32Z jdz: I'd expect "posts" to be a sequence, not a class [instance]. 2018-08-22T13:20:50Z Bike: the roots sequence you pass to gc, even 2018-08-22T13:22:11Z smokeink: I used a class with a slot of type sequence. I 'd like to use a simple sequence directly but I am not sure how to access it 2018-08-22T13:22:47Z smokeink: using a class I know I can do (first (manardb:retrieve-all-instancess 'posts)) 2018-08-22T13:23:17Z LdBeth: doesn't mmarry fit you need? 2018-08-22T13:24:12Z jdz: smokeink: why not (manardb:retrieve-all-instances 'post)? 2018-08-22T13:24:42Z smokeink: jdz: yes that's better 2018-08-22T13:24:48Z smokeink: LdBeth: I'll try it and see 2018-08-22T13:28:15Z smokeink: jdz: but what if I want to push a new post? For that I'll need access to posts 2018-08-22T13:31:26Z jdz: How did the old post get there? 2018-08-22T13:32:50Z smokeink: posts has a slot which is a list. I pushed the post into posts's slot 2018-08-22T13:33:25Z smokeink: (defparameter *posts* (make-instance 'posts)) 2018-08-22T13:33:33Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-22T13:34:10Z smokeink: but after I restart the lisp system I shouldn't call make-instance again, I should read it from the db 2018-08-22T13:37:12Z Denommus joined #lisp 2018-08-22T13:39:41Z jdz: How dit the POSTS instance get into the DB? 2018-08-22T13:40:08Z smokeink: when you (make-instance ) it just goes 2018-08-22T13:40:12Z smokeink: automatically 2018-08-22T13:40:36Z jdz: So why do POST instances not get into the DB automatically? 2018-08-22T13:40:37Z smokeink: posts is defined with (manardb:defmmclass 2018-08-22T13:40:50Z smokeink: instead of pure simple defclass 2018-08-22T13:41:22Z jdz: If you want to store posts in DB, they should also be defined similarly. 2018-08-22T13:41:24Z heisig quit (Quit: Leaving) 2018-08-22T13:43:32Z atgreen joined #lisp 2018-08-22T13:44:17Z smokeink: yes, sure. The issue was how to delete an individual post. It's solved. Now the second issue is whether it's possible to use make-marray for posts , instead of defmmclass 2018-08-22T13:44:33Z jdz: But why? 2018-08-22T13:44:52Z jdz: You don't need an array if the posts themselves are stored, right? 2018-08-22T13:45:21Z smokeink: you need an array or a class, that references those posts, otherwise you won't be able to delete individual posts 2018-08-22T13:46:01Z Kundry_Wag joined #lisp 2018-08-22T13:46:59Z smokeink: you'll be able to store post objects, ... and you'll be able to delete them all. But if you want to delete them individually, you need a parent structure that references them, and call (manardb:gc (list parent_struct1 parent_struct2) :verbose t) , and that will delete only those objects which are not referenced by these parent structures 2018-08-22T13:47:34Z jdz: Is there documentation for the project? 2018-08-22T13:47:54Z Fare joined #lisp 2018-08-22T13:48:00Z smokeink: very scarce. 1sec 2018-08-22T13:48:12Z jdz: Oh, I see there are HTML files in doc directory. 2018-08-22T13:48:41Z jdz: And of course not viewable through Github... 2018-08-22T13:48:46Z smokeink: https://www.quicklisp.org/beta/UNOFFICIAL/docs/manardb/doc/api.html 2018-08-22T13:50:48Z igemnace joined #lisp 2018-08-22T13:50:49Z fikka quit (Ping timeout: 268 seconds) 2018-08-22T13:51:05Z HarpoRoeder left #lisp 2018-08-22T13:53:20Z light2yellow quit (Ping timeout: 252 seconds) 2018-08-22T13:55:16Z smokeink: I also hoped for an elegant way... there shouldn't be a need to have both post and posts objects. And then user & users, comment & comments, and so on... 2018-08-22T13:57:45Z jdz: The documentation says "manardb is just starting out...", and some ways to improve it include the things you want. 2018-08-22T13:58:48Z smokeink: then I'll make a helper macro 2018-08-22T13:59:57Z atgreen quit (Ping timeout: 240 seconds) 2018-08-22T14:00:18Z dented42 joined #lisp 2018-08-22T14:00:50Z fikka joined #lisp 2018-08-22T14:01:34Z light2yellow joined #lisp 2018-08-22T14:06:05Z tralala quit (Ping timeout: 240 seconds) 2018-08-22T14:09:17Z jdz: Aren't there some more complete persistence libraries out there? 2018-08-22T14:10:19Z jdz: Any. 2018-08-22T14:11:36Z smokeink: do you have recommend any ? which one was good in your experience? 2018-08-22T14:12:06Z smokeink: I tried elephant and it was always crying and making things complicated, (I forgot the details) 2018-08-22T14:12:08Z jdz: I have not used any. 2018-08-22T14:12:10Z smokeink: postmodern sucks 2018-08-22T14:12:16Z Shinmera: Nah 2018-08-22T14:12:22Z jdz: What's wrong with postmodern? 2018-08-22T14:12:56Z smokeink: it has some stuff only half implemented 2018-08-22T14:13:05Z anewuser joined #lisp 2018-08-22T14:13:17Z jdz: At least the storage part is solid, though. 2018-08-22T14:13:23Z smokeink: also, I'd like not to depend on postgres or mysql 2018-08-22T14:13:51Z jdz: I personally would not like to not depend on postgres. 2018-08-22T14:16:48Z nowhere_man quit (Ping timeout: 252 seconds) 2018-08-22T14:17:10Z smokeink: :) 2018-08-22T14:17:29Z smokeink: for small to medium projects I'd rather depend only on lisp 2018-08-22T14:18:30Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-22T14:19:46Z DGASAU quit (Remote host closed the connection) 2018-08-22T14:23:46Z mishoo quit (Ping timeout: 252 seconds) 2018-08-22T14:24:29Z DGASAU joined #lisp 2018-08-22T14:24:58Z warweasle joined #lisp 2018-08-22T14:28:08Z sjl joined #lisp 2018-08-22T14:33:20Z dented42 quit (Ping timeout: 272 seconds) 2018-08-22T14:33:34Z FreeBirdLjj joined #lisp 2018-08-22T14:35:50Z steiner quit (Remote host closed the connection) 2018-08-22T14:36:09Z shenghi joined #lisp 2018-08-22T14:37:35Z dale_ joined #lisp 2018-08-22T14:37:54Z dale_ is now known as dale 2018-08-22T14:38:26Z smokeink: jdz Bike Shinmera LdBeth thanks for the help 2018-08-22T14:40:26Z housel joined #lisp 2018-08-22T14:42:06Z milanj quit (Read error: No route to host) 2018-08-22T14:42:22Z Inline joined #lisp 2018-08-22T14:42:28Z milanj joined #lisp 2018-08-22T14:45:29Z fikka quit (Ping timeout: 244 seconds) 2018-08-22T14:52:12Z smokeink quit (Ping timeout: 244 seconds) 2018-08-22T14:55:13Z Kundry_Wag joined #lisp 2018-08-22T14:56:02Z Denommus quit (Remote host closed the connection) 2018-08-22T14:58:06Z fikka joined #lisp 2018-08-22T14:58:46Z slyrus1: Xof: whatever happened to your McCLIM SVG backend? 2018-08-22T14:59:35Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-22T15:01:35Z MetaYan quit (Ping timeout: 240 seconds) 2018-08-22T15:02:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-22T15:11:18Z orivej quit (Ping timeout: 264 seconds) 2018-08-22T15:12:29Z Kundry_Wag quit (Remote host closed the connection) 2018-08-22T15:12:52Z Khisanth joined #lisp 2018-08-22T15:13:48Z milanj quit (Read error: No route to host) 2018-08-22T15:13:53Z stacksmith quit (Ping timeout: 276 seconds) 2018-08-22T15:14:34Z bateman joined #lisp 2018-08-22T15:16:02Z stacksmith joined #lisp 2018-08-22T15:17:27Z bateman: Hi guys, I'm having some trouble with a basic common lisp program. Could someone look at my code and tell me what I'm doing wrong? 2018-08-22T15:17:29Z bateman: https://pastebin.com/4AePJjWS 2018-08-22T15:18:17Z beach: bateman: What is it supposed to do? And what does it do instead? 2018-08-22T15:19:04Z beach: Oh, wait, you are using i outside its scope it looks like to me. 2018-08-22T15:19:08Z bateman: It's supposed to sum the multiples of 3 and 5 between 0 and LIM. Currently it gives an error when I try to run it. 2018-08-22T15:19:14Z beach: Oh, no just bad indentation. 2018-08-22T15:19:16Z jackdaniel: bateman: your indentation is all wrong, let doesn't require explicit progn,, you call reduce with an unbound symbol 2018-08-22T15:19:28Z beach: bateman: Start by indenting your code correctly. 2018-08-22T15:19:41Z bateman: Is there a lisp style guide I should use? 2018-08-22T15:19:54Z bateman: I have no idea what correct indentation is 2018-08-22T15:19:59Z beach: Use what Emacs and the SLIME indentation contribution does. 2018-08-22T15:20:42Z sabrac: For those of you who. like smokeink, think that postmodern has stuff half implemented, I am interested in hearing people's priorities. 2018-08-22T15:20:44Z jackdaniel: your question is probably about reduce, try (reduce #'+ mltlst), but this code is not very readable 2018-08-22T15:20:50Z jackdaniel: bateman: check out http://www.cs.umd.edu/~nau/cmsc421/norvig-lisp-style.pdf for style hints 2018-08-22T15:20:54Z meepdeew joined #lisp 2018-08-22T15:21:33Z Fare quit (Ping timeout: 260 seconds) 2018-08-22T15:21:39Z jackdaniel: as of learning CL from the level on which you are, you should read pcl 2018-08-22T15:21:43Z jackdaniel: minion: tell bateman about pcl 2018-08-22T15:21:43Z minion: bateman: 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). 2018-08-22T15:22:18Z beach: bateman: If you use incorrect indentation, you force the people reading your code to count parentheses, which is not what Common Lisp programmers do. They rely on correct indentation to understand the code. As you noticed I immediately though i was out of scope. 2018-08-22T15:22:30Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-22T15:22:57Z bateman: Alright, indentation is important, I'll learn how to correctly format my code 2018-08-22T15:23:02Z Shinmera: sabrac: It has everything I've ever needed so I don't have any suggestions :) 2018-08-22T15:23:19Z Shinmera: sabrac: By the way, how did your tour with Staple 2 turn out? 2018-08-22T15:23:45Z antoszka: > https://www.alu.org/ → It works. 2018-08-22T15:24:01Z antoszka: Certainly does, but isn't there anymore information we'd like to convey? 2018-08-22T15:24:11Z antoszka: s/anymore/any more/ 2018-08-22T15:25:02Z gaqwas left #lisp 2018-08-22T15:26:03Z orivej joined #lisp 2018-08-22T15:26:22Z sabrac: Shinmera: Still struggling a bit with method documentation. E.g. all those sql-ops in s-sql in postmodern. Otherwise, I like it. I need to find time to publish a review. 2018-08-22T15:26:52Z Shinmera: sabrac: I'm sorry-- I don't remember. What was the method documentation problem? 2018-08-22T15:41:52Z bateman: https://i.imgur.com/v34zFmk.png 2018-08-22T15:42:14Z bateman: This is how my code appears in emacs. Are there issues with the indentation still? 2018-08-22T15:42:23Z ebzzry quit (Ping timeout: 272 seconds) 2018-08-22T15:43:02Z Xof: slyrus1: hm. It might be on my last-but-one laptop somewhere? 2018-08-22T15:43:13Z Xof: I don't immediately know where it is 2018-08-22T15:44:00Z steiner joined #lisp 2018-08-22T15:45:06Z bateman: @beach 2018-08-22T15:45:44Z Shinmera: bateman: Indentation looks fine now. 2018-08-22T15:46:02Z papachan joined #lisp 2018-08-22T15:46:14Z bateman: Alright, thanks 2018-08-22T15:46:44Z bateman: "Evaluation aborted on #" 2018-08-22T15:47:30Z bateman: This is the error I'm getting. Any ideas where it's coming from? 2018-08-22T15:47:36Z Bike: what did you do to cause it? 2018-08-22T15:47:39Z Bike: like, what did you try to evaluate. 2018-08-22T15:47:41Z LdBeth: bateman: (reduce #'+ mltlst) 2018-08-22T15:47:47Z Bike: Oh. Yeah. 2018-08-22T15:47:48Z Bike: that'd do it 2018-08-22T15:48:21Z bateman: Thanks 2018-08-22T15:48:26Z bateman: That seemed to fix things 2018-08-22T15:48:56Z bateman: So is the rule with #' that you have to use it when you're using a function as an argument? 2018-08-22T15:49:20Z LdBeth: Weirdly, almost all other languages use same namespace for both functions and variables 2018-08-22T15:49:20Z ebzzry joined #lisp 2018-08-22T15:51:04Z LdBeth: so #' gets function definition of a symbol, otherwise use it's as a variable 2018-08-22T15:51:58Z dented42 joined #lisp 2018-08-22T15:53:03Z bateman: Do you ever need to do that with a symbol right after an open paren? (eg, (myfunc arg1 arg2) ) 2018-08-22T15:53:46Z Shinmera: #'foo is short for (function foo). ((function foo) ..) is not a valid form. 2018-08-22T15:54:22Z Shinmera: Note that not all paren pairs are forms. 2018-08-22T15:55:29Z Shinmera: Eg the first and second pairs of parens within this let are not forms, but expressions: (let ((foo 0))) 2018-08-22T15:56:02Z fikka joined #lisp 2018-08-22T15:57:50Z fouric: actually, on that note, why have i seen older code that has #'(lambda ...) instead of (lambda ...) in it? 2018-08-22T15:58:06Z fouric: i think the example was (mapcar #'(lambda ...)) 2018-08-22T15:58:12Z Shinmera: Because before CL got standardised, LAMBDA was not yet a macro that expanded to (function (lambda ...)) 2018-08-22T15:58:17Z fouric: o 2018-08-22T15:58:28Z slyrus1: Xof: would love to take a look at it if you can dig it up. Was thinking of starting my own, but, obviously, starting with yours would be preferable. 2018-08-22T15:58:38Z fouric: so what _was_ lambda? 2018-08-22T15:58:49Z Shinmera: Just a symbol, not fbound. 2018-08-22T15:59:50Z fouric: if it wasn't fbound and not a macro, would that make it a special form? 2018-08-22T15:59:57Z Shinmera: No 2018-08-22T16:00:02Z Shinmera: FUNCTION is the special form. 2018-08-22T16:00:03Z Shinmera: clhs function 2018-08-22T16:00:04Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 2018-08-22T16:00:27Z Shinmera: "If name is a lambda expression, then a lexical closure is returned. In situations where a closure over the same set of bindings might be produced more than once, the various resulting closures might or might not be eq." 2018-08-22T16:00:41Z fouric: oh! so plain (lambda ...) was not actually a valid form? 2018-08-22T16:00:45Z Jesin quit (Quit: Leaving) 2018-08-22T16:00:55Z Bike: it wasn't, back in the day 2018-08-22T16:01:08Z milanj joined #lisp 2018-08-22T16:01:10Z fouric: that's weird to think about, but it makes sense 2018-08-22T16:01:12Z fouric: ty 2018-08-22T16:01:55Z Shinmera: I actually consider #'(lambda ..) an anti-pattern nowadays because some things do expect lambda expressions, and not function expressions, so #'(lambda ..) does not work everywhere, while (lambda ..) does. 2018-08-22T16:02:23Z fikka quit (Ping timeout: 260 seconds) 2018-08-22T16:02:28Z Shinmera: Examples being a lambda-expression as the name of a form, and the condition report function. 2018-08-22T16:03:55Z Xof quit (Ping timeout: 272 seconds) 2018-08-22T16:03:59Z mindCrime joined #lisp 2018-08-22T16:07:23Z fouric: to clarify: not all expressions are valid forms, but all valid forms are expressions? 2018-08-22T16:07:38Z Shinmera: No, the distinction is that forms are expressions meant to be evaluated. 2018-08-22T16:07:45Z Shinmera: clhs glossary/form 2018-08-22T16:07:45Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_f.htm#form 2018-08-22T16:08:06Z Shinmera: Or rather, forms are objects meant to be evaluated. 2018-08-22T16:08:14Z Shinmera: clhs glossary/expression 2018-08-22T16:08:14Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_e.htm#expression 2018-08-22T16:08:36Z Shinmera: Whereas expressions are meant to emphasise being data 2018-08-22T16:08:58Z fouric: gotcha 2018-08-22T16:09:36Z Shinmera: So (let ((a b))) is a form, ((a b)) and (a b) are expressions and b is another form. 2018-08-22T16:09:54Z Jesin joined #lisp 2018-08-22T16:10:05Z Shinmera: well, let and a as symbols are also expressions in that example, just to be complete. 2018-08-22T16:12:26Z Shinmera: On a tangent, #' and ' are great ways to obfuscate your code! (let #'null (setf null 'null) (funcall null function)) 2018-08-22T16:16:14Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-22T16:20:04Z nika joined #lisp 2018-08-22T16:20:21Z light2yellow quit (Quit: WeeChat 2.2) 2018-08-22T16:22:14Z jkordani_ joined #lisp 2018-08-22T16:25:35Z jkordani quit (Ping timeout: 240 seconds) 2018-08-22T16:30:08Z FreeBirdLjj joined #lisp 2018-08-22T16:31:14Z schweers quit (Ping timeout: 276 seconds) 2018-08-22T16:33:25Z shka_ joined #lisp 2018-08-22T16:34:42Z housel quit (Read error: Connection reset by peer) 2018-08-22T16:35:45Z ebrasca quit (Read error: Connection reset by peer) 2018-08-22T16:41:16Z Copenhagen_Bram quit (Ping timeout: 272 seconds) 2018-08-22T16:41:17Z shka_ quit (Read error: No route to host) 2018-08-22T16:41:52Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-22T16:42:35Z shka_ joined #lisp 2018-08-22T16:42:40Z Arcaelyx joined #lisp 2018-08-22T16:44:34Z dented42 quit (Ping timeout: 252 seconds) 2018-08-22T16:55:00Z Fare joined #lisp 2018-08-22T16:56:17Z Kundry_Wag joined #lisp 2018-08-22T16:56:34Z ski joined #lisp 2018-08-22T16:57:52Z makomo: Shinmera: lol that's a very neat example :-D 2018-08-22T16:58:11Z zfree joined #lisp 2018-08-22T16:58:14Z _death: (let (''hi) quote) 2018-08-22T16:59:02Z Shinmera: _death: Why not (let* '''hi quote) 2018-08-22T17:01:06Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-22T17:03:27Z Denommus joined #lisp 2018-08-22T17:03:40Z orivej quit (Ping timeout: 265 seconds) 2018-08-22T17:04:52Z _death: how about (flet ((bar () 'hi)) (declare (ftype #'() bar)) (bar)) ;; or #'* ... 2018-08-22T17:05:58Z Posterdati quit (Ping timeout: 260 seconds) 2018-08-22T17:06:04Z Shinmera: It's a true shame you can't (flet #'foo) or (flet 'foo) 2018-08-22T17:06:36Z Shinmera: Clearly the ANSI committee had no concern for code obfuscators. We need a new standard to address this. 2018-08-22T17:08:29Z ebrasca joined #lisp 2018-08-22T17:08:59Z Fare quit (Ping timeout: 265 seconds) 2018-08-22T17:10:09Z _death: actually I think it's done work in that area.. see FORMAT 2018-08-22T17:10:24Z Shinmera: zing 2018-08-22T17:11:07Z nowhere_man joined #lisp 2018-08-22T17:12:23Z Fare joined #lisp 2018-08-22T17:13:40Z Shinmera: Here's another progress video from my clipmap implementation. https://www.youtube.com/watch?v=jv3SS_l6Q5I&feature=youtu.be 2018-08-22T17:14:04Z jackdaniel: CL is just Lisp-flavoured FORMAT 2018-08-22T17:14:12Z jackdaniel: or Lisp-flavoured LOOP if you like ;) 2018-08-22T17:15:30Z Copenhagen_Bram joined #lisp 2018-08-22T17:16:48Z Kundry_Wag joined #lisp 2018-08-22T17:16:49Z Kundry_Wag quit (Remote host closed the connection) 2018-08-22T17:19:03Z lumm_ joined #lisp 2018-08-22T17:19:09Z lumm quit (Read error: Connection reset by peer) 2018-08-22T17:19:39Z lumm_ is now known as lumm 2018-08-22T17:19:47Z cage_ joined #lisp 2018-08-22T17:20:17Z jasom: Shinmera: Lexical bindings of dynamically determined values doesn't make any sense IMO 2018-08-22T17:21:05Z jasom: You could imitate a dynamic binding of those via symbol-function and unwind-protect though. 2018-08-22T17:21:10Z jkordani joined #lisp 2018-08-22T17:21:53Z jasom: nevermind I misunderstood what you were getting at with that. 2018-08-22T17:22:23Z kajo joined #lisp 2018-08-22T17:25:13Z jkordani_ quit (Ping timeout: 260 seconds) 2018-08-22T17:25:24Z ski quit (*.net *.split) 2018-08-22T17:25:24Z FreeBirdLjj quit (*.net *.split) 2018-08-22T17:25:25Z steiner quit (*.net *.split) 2018-08-22T17:25:25Z anewuser quit (*.net *.split) 2018-08-22T17:25:25Z thawes quit (*.net *.split) 2018-08-22T17:25:26Z uint quit (*.net *.split) 2018-08-22T17:25:28Z ircbrowse quit (*.net *.split) 2018-08-22T17:25:30Z eschatologist quit (*.net *.split) 2018-08-22T17:25:30Z slyrus quit (*.net *.split) 2018-08-22T17:25:30Z vibs29 quit (*.net *.split) 2018-08-22T17:25:30Z vhost- quit (*.net *.split) 2018-08-22T17:25:32Z shelvick quit (*.net *.split) 2018-08-22T17:25:33Z crsc quit (*.net *.split) 2018-08-22T17:25:33Z dieggsy quit (*.net *.split) 2018-08-22T17:25:33Z joast quit (*.net *.split) 2018-08-22T17:25:35Z juristi quit (*.net *.split) 2018-08-22T17:25:35Z borodust quit (*.net *.split) 2018-08-22T17:25:36Z slyrus1 is now known as slyrus 2018-08-22T17:25:51Z uint joined #lisp 2018-08-22T17:26:37Z cgay: Is there a thing that takes a type, e.g. (member :a :b :c) or (integer 1), and turns it into an English description of the type? I imagine it being a format directive written by the same person who wrote ~@R, for example. 2018-08-22T17:27:01Z Bike: there is not. 2018-08-22T17:27:20Z Bike: check-type allows you to specify your own string, since it sometimes depends on context. 2018-08-22T17:28:18Z cgay: I have CL type specs leaking into command-line flag --help output and thought it would be fun if there were a converter. :) 2018-08-22T17:28:46Z jackdaniel: cgay: clon has automatic description of lisp arguments 2018-08-22T17:29:09Z jackdaniel: (clon is a library for command-line binaries) 2018-08-22T17:30:02Z cgay: Command-Line Options Nuker -- nice 2018-08-22T17:31:54Z ircbrowse joined #lisp 2018-08-22T17:31:58Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-08-22T17:34:49Z dlowe joined #lisp 2018-08-22T17:34:56Z dvdmuckle joined #lisp 2018-08-22T17:36:17Z joast joined #lisp 2018-08-22T17:38:50Z scottj joined #lisp 2018-08-22T17:44:28Z meepdeew quit (Remote host closed the connection) 2018-08-22T17:48:22Z Fare quit (Ping timeout: 252 seconds) 2018-08-22T17:49:19Z ski joined #lisp 2018-08-22T17:53:08Z pierpal quit (Quit: Poof) 2018-08-22T17:53:47Z DGASAU quit (Ping timeout: 276 seconds) 2018-08-22T17:55:20Z DGASAU joined #lisp 2018-08-22T17:57:35Z jasom: IIRC CLON's readme describes itself as "overengineered" 2018-08-22T17:57:47Z milanj quit (Quit: This computer has gone to sleep) 2018-08-22T17:58:42Z Shinmera: I found CLON to be much too heavy-weight. Fare's command-line-arguments is nice and simple. 2018-08-22T17:58:45Z jasom: I seem to not recall that correctly though 2018-08-22T18:00:56Z Dvarkin joined #lisp 2018-08-22T18:01:40Z jasom: for programs with a lot of arguments clon can be nice. If you consider "cat -v" harmful then you probably don't need it 2018-08-22T18:02:26Z Dvarkin quit (Remote host closed the connection) 2018-08-22T18:02:54Z nowhere_man quit (Ping timeout: 264 seconds) 2018-08-22T18:05:27Z shifty quit (Ping timeout: 240 seconds) 2018-08-22T18:06:35Z LdBeth: so once unpon time common lisp is capable for parallel data processing 2018-08-22T18:08:41Z LdBeth: http://www.softwarepreservation.org/projects/LISP/parallel#Connection_Machine_*Lisp_(StarLisp)_ 2018-08-22T18:14:32Z papachan quit (Ping timeout: 255 seconds) 2018-08-22T18:15:52Z m00natic quit (Ping timeout: 252 seconds) 2018-08-22T18:17:49Z igemnace quit (Quit: WeeChat 2.2) 2018-08-22T18:25:01Z housel joined #lisp 2018-08-22T18:25:59Z stylewarning: LdBeth: it's still capable 2018-08-22T18:28:59Z sauvin quit (Remote host closed the connection) 2018-08-22T18:29:05Z jdhorwitz joined #lisp 2018-08-22T18:30:56Z meepdeew joined #lisp 2018-08-22T18:32:49Z meepdeew quit (Remote host closed the connection) 2018-08-22T18:33:41Z dim: LdBeth: I like https://lparallel.org for that 2018-08-22T18:34:32Z dim: and rather than CLON I wrote my own simple stuff for parsing commands and subcommands ala git, but didn't separate it out from some of my stuff 2018-08-22T18:34:38Z milanj joined #lisp 2018-08-22T18:35:13Z dim: https://github.com/dimitri/pgcharts/blob/master/src/utils/cli-parser.lisp is used in https://github.com/dimitri/pgcharts/blob/master/src/pgcharts.lisp if you're curious 2018-08-22T18:37:42Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-22T18:41:53Z eschatologist joined #lisp 2018-08-22T18:50:53Z skidd0 joined #lisp 2018-08-22T18:54:06Z Josh_2 quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-22T18:59:01Z emaczen: How do we distinguish between C function names and lisp names with defcfun? For example, open and write? 2018-08-22T18:59:06Z emaczen: cffi defcfun 2018-08-22T18:59:39Z Shinmera: Colleen: look up cffi defcfun 2018-08-22T18:59:39Z Colleen: Macro defcfun https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcfun-1 2018-08-22T19:00:04Z jack_rabbit joined #lisp 2018-08-22T19:00:05Z Shinmera: the syntax tells you how. 2018-08-22T19:01:32Z orivej joined #lisp 2018-08-22T19:03:13Z emaczen: Ahhh I see 2018-08-22T19:05:37Z nika quit (Quit: Leaving...) 2018-08-22T19:12:38Z borodust joined #lisp 2018-08-22T19:17:11Z vlatkoB quit (Remote host closed the connection) 2018-08-22T19:22:27Z jkordani quit (Ping timeout: 240 seconds) 2018-08-22T19:25:27Z emaczen: how do you specify a union type in cffi:foreign-slot-value of cffi:with-foreign-slots? 2018-08-22T19:25:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-22T19:26:08Z aindilis joined #lisp 2018-08-22T19:29:18Z Bike: i think you just specify the actual type 2018-08-22T19:30:49Z jackdaniel: I've found CLON a very good library, definetely not overengineered 2018-08-22T19:31:03Z jackdaniel: and for once I've found lisp library with a good documentation 2018-08-22T19:31:05Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-22T19:31:15Z Bike: i mean, foreign-slot-value returns a value 2018-08-22T19:31:18Z jackdaniel: (usually I find libraries with no documentations, readmes or half-finished ones) 2018-08-22T19:31:32Z Bike: if you tell it "this thing is either an int or a char*" that doesn't really give cffi anything to work with 2018-08-22T19:31:51Z emaczen: Bike: Ok, so in the C code it object.union.field.field in lisp it would be (slot (slot object)) 2018-08-22T19:32:10Z Bike: yeah, i think so. 2018-08-22T19:32:31Z Bike: cffi is kind of apathetic about a lot of C stuff. it just takes memory and goes "that's a float? you got it, boss, float coming right up" 2018-08-22T19:32:38Z [X-Scale] joined #lisp 2018-08-22T19:33:11Z [X-Scale] is now known as X-Scale 2018-08-22T19:34:47Z emaczen: Bike: CFFI is pretty good, I like that approach. I only wish it was a bit more steamlined to find out the constants I need for me -- I don't want to mess around with the groveller 2018-08-22T19:35:03Z Bike: well, i mean 2018-08-22T19:35:07Z Bike: if you're talking about a #define 2018-08-22T19:35:15Z Bike: information about those literally does not exist in the object file 2018-08-22T19:35:26Z Bike: it's entirely a compile-time thing. that's why you have to use the groveler 2018-08-22T19:35:50Z emaczen: I wrote a macro that writes a c program that prints out the info I want in a plist, and then I compile it, run it and read it. 2018-08-22T19:36:29Z Bike: that's 2018-08-22T19:36:33Z Bike: what the groveler is? right? 2018-08-22T19:36:38Z Bike: i'm pretty sure that's what the groveler is 2018-08-22T19:36:42Z Shinmera: Yes. 2018-08-22T19:37:31Z emaczen: Bike: Oh, well I spent more time a few months ago looking at the groveller than an hour getting this to work 2018-08-22T19:37:43Z Bike: fair enough 2018-08-22T19:42:19Z cage_ quit (Quit: Leaving) 2018-08-22T19:46:48Z tralala joined #lisp 2018-08-22T19:48:47Z scottj left #lisp 2018-08-22T19:50:48Z makomo quit (Quit: WeeChat 2.2) 2018-08-22T19:53:58Z zooey quit (Remote host closed the connection) 2018-08-22T19:54:08Z emaczen: Bike: does clasp compile on non 12GB memory computers yet? 2018-08-22T19:54:30Z emaczen: Is there any reasonable way to get it on a rpi? 2018-08-22T19:55:42Z Shinmera: No, no. 2018-08-22T19:56:59Z shka_ quit (Ping timeout: 272 seconds) 2018-08-22T20:01:36Z Bike: what he said 2018-08-22T20:01:49Z Bike: it's x64 only for the forseeable future 2018-08-22T20:04:08Z tralala quit (Quit: out) 2018-08-22T20:04:34Z Jesin quit (Quit: Leaving) 2018-08-22T20:10:25Z jasom: I think you only need 12GB of virtual memory to compile clas 2018-08-22T20:10:44Z jasom: if you're willing to wait a couple of GB should be enough for it to make forward progress 2018-08-22T20:11:16Z jasom: (so long as swap is large enough) 2018-08-22T20:11:52Z dented42 joined #lisp 2018-08-22T20:12:47Z atgreen joined #lisp 2018-08-22T20:12:53Z atgreen quit (Remote host closed the connection) 2018-08-22T20:20:32Z Copenhagen_Bram quit (Ping timeout: 252 seconds) 2018-08-22T20:22:15Z papachan joined #lisp 2018-08-22T20:26:50Z mathrick quit (Ping timeout: 260 seconds) 2018-08-22T20:27:08Z Josh_2 joined #lisp 2018-08-22T20:29:44Z zooey joined #lisp 2018-08-22T20:30:36Z Jesin joined #lisp 2018-08-22T20:31:32Z kajo quit (Ping timeout: 252 seconds) 2018-08-22T20:32:21Z Achylles joined #lisp 2018-08-22T20:40:08Z jdhorwitz quit (Quit: Connection closed for inactivity) 2018-08-22T20:43:02Z rumbler31 joined #lisp 2018-08-22T20:44:00Z whartung: it can’t be cross compiled to an rpi? or does it simply not support ARM? 2018-08-22T20:45:38Z rumbler31 quit (Remote host closed the connection) 2018-08-22T20:45:59Z random-nick quit (Read error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number) 2018-08-22T20:46:22Z random-nick joined #lisp 2018-08-22T20:46:51Z Shinmera: It does not support anything that isn't AMD64 Linux/OS X 2018-08-22T20:47:05Z whartung: well then, that’s that :) 2018-08-22T20:47:53Z sukaeto joined #lisp 2018-08-22T20:49:05Z skidd0 quit (Quit: WeeChat 2.2) 2018-08-22T20:55:43Z Copenhagen_Bram joined #lisp 2018-08-22T20:58:33Z AroPar joined #lisp 2018-08-22T21:02:17Z rocx joined #lisp 2018-08-22T21:03:28Z mindCrime quit (Ping timeout: 272 seconds) 2018-08-22T21:03:48Z AroPar quit (Quit: Leaving) 2018-08-22T21:06:00Z milanj quit (Ping timeout: 272 seconds) 2018-08-22T21:14:21Z Bike quit (Ping timeout: 252 seconds) 2018-08-22T21:20:19Z rozenglass joined #lisp 2018-08-22T21:31:10Z no-defun-allowed: Hello everyone 2018-08-22T21:38:26Z slyrus2 joined #lisp 2018-08-22T21:39:05Z pjb: Hello one. 2018-08-22T21:41:35Z markoong quit (Ping timeout: 240 seconds) 2018-08-22T21:42:27Z markong joined #lisp 2018-08-22T21:55:53Z ski quit (Ping timeout: 260 seconds) 2018-08-22T21:57:17Z Cymew joined #lisp 2018-08-22T21:57:45Z Bike joined #lisp 2018-08-22T22:01:35Z Cymew quit (Ping timeout: 240 seconds) 2018-08-22T22:06:42Z rocx quit (Ping timeout: 260 seconds) 2018-08-22T22:07:27Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-22T22:07:47Z rocx joined #lisp 2018-08-22T22:08:47Z zotan joined #lisp 2018-08-22T22:17:12Z rocx quit (Quit: laptop's latch clicking, barstool screeching as he leaves, he hates these mornings. -- a haiku) 2018-08-22T22:17:55Z kajo joined #lisp 2018-08-22T22:19:38Z zxcvz quit (Quit: zxcvz) 2018-08-22T22:19:59Z ski joined #lisp 2018-08-22T22:20:07Z jack_rabbit joined #lisp 2018-08-22T22:30:30Z sjl quit (Ping timeout: 264 seconds) 2018-08-22T22:31:22Z Achylles quit (Quit: Leaving) 2018-08-22T22:33:30Z skidd0 joined #lisp 2018-08-22T22:34:24Z bateman quit (Quit: Page closed) 2018-08-22T22:37:18Z ebrasca quit (Ping timeout: 252 seconds) 2018-08-22T22:37:41Z xsperry joined #lisp 2018-08-22T22:38:13Z xsperry: hi. what would be the closest equivalent of list comprehensions in lisp? loop macro? 2018-08-22T22:38:31Z random-nick quit (Read error: Connection reset by peer) 2018-08-22T22:39:04Z xsperry: particularly in cases when you iterate over two or more lists. do I need nested loops for that? 2018-08-22T22:44:58Z shachaf: You can certainly write e.g. (loop for x in xs for y in ys collect (f x y)) 2018-08-22T22:45:37Z edgar-rft: a) what are "list comprehensions"? b) It's possible to iterate over several lists at once with the same pros and cons as in other languages. Nested loops are the simplest possibility. 2018-08-22T22:46:45Z Bike: list comprehensions are a syntactic construct in python and other languages that is indeed kind of like loop. 2018-08-22T22:48:51Z Bike: (loop for x in list when predicate collect (key x)) or so, i guess 2018-08-22T22:50:47Z no-defun-allowed: loop (and iterate) are certainly more powerful than python's for 2018-08-22T22:51:17Z xsperry: ok, here's a simple example that is very easy to express with list comprehensions. given two lists, '(1 2 3) and '(4 5 6), make a list of conses consisting of each element from list A and list B. so '((1 . 4) (1 . 5) (1 . 6) (2 . 4) (2 . 5) (2 . 6) (3 . 4) (3 . 5) (3 . 6)) 2018-08-22T22:51:44Z jasom: (loop for x in xs nconc (loop for y in ys collect (cons x y))) 2018-08-22T22:52:48Z xsperry: so you have to use nested loop - ok. that is what I was asking 2018-08-22T22:53:17Z jasom: xsperry: I believe that's a nested loop in python as well (unless you use itertools which has that function builtin IIRC) 2018-08-22T22:53:35Z Bike: it would have to be a nested loop under the hood since you're iterating over both lists independently, anyway. 2018-08-22T22:55:15Z xsperry: jasom I think you don't, but I am not 100% sure. it has been years since I used python, but python's list comprehensions were inspired by haskell's, and in haskell you don't need to nest list comprehensions for this 2018-08-22T22:55:48Z xsperry: I am actually trying to replicate this really elegant example from haskell tutorial in CL 2018-08-22T22:55:58Z aeth quit (Ping timeout: 260 seconds) 2018-08-22T22:56:01Z jasom: xsperry: how do you indicate that you want nesting rather than iterating in parallel 2018-08-22T22:56:26Z jasom: e.g. difference between what you want and (1 . 4) (2 . 5) (3 . 6) 2018-08-22T22:57:07Z jasom: as in (loop for x in xs for y in ys collect (cons x y)) would return just 3 items with your inputs. 2018-08-22T22:57:10Z xsperry: jasom, you would zip lists first, and then then pattern match on resulting list. but at that point you probably wouldn't be using list comprehension 2018-08-22T22:57:41Z shachaf: Oh, LOOP iterates through lists together instead of nesting? That's what I get for saying something in here. 2018-08-22T22:58:23Z shachaf: In GHC Haskell you can write [(x,y) | x <- xs, y <- ys] for nesting and [(x,y) | x <- xs | y <- ys] for zipping. But zipping seems to me like a much more unusual behavior. 2018-08-22T22:58:25Z xsperry: this is the example I'm trying to rewrite in CL. it takes first 10 right triangle that has integers for all sides 2018-08-22T22:58:32Z jasom: I see. Now I understand why so many people ask for a zip in lisp. 2018-08-22T22:58:36Z xsperry: take 10 [(a,b,c) | c <- [1..], b <- [1..c], a <- [1..b], c^2 == a^2 + b^2] 2018-08-22T22:58:40Z xsperry: [(3,4,5),(6,8,10),(5,12,13),(9,12,15),(8,15,17),(12,16,20),(15,20,25),(7,24,25),(10,24,26),(20,21,29)] 2018-08-22T22:58:57Z Bike: whoa, it's shachaf. 2018-08-22T22:59:22Z xsperry: [1..] would probably be hard to emulate, but what about the rest? three nested loops? what are the alternatives? 2018-08-22T22:59:25Z shachaf: Hike 2018-08-22T22:59:42Z Bike: I wrote some stupid garbage for this http://ix.io/1kZ1 2018-08-22T23:00:25Z shachaf: ineffable effable effanineffable 2018-08-22T23:00:30Z slyrus2: thanks xach! 2018-08-22T23:01:12Z ski idly thinks (do)/2 in ECLiPSe Prolog does it like CL `loop', here .. 2018-08-22T23:02:00Z jasom: xsperry: I'm not sure how the haskell example works; does it find all right triangles where the first side is of length "1" first? 2018-08-22T23:02:24Z jasom: actually it's unclear to me how it ever gets past (1,1,_) 2018-08-22T23:02:45Z jasom: oh, I see you have upper bounds on the second 2, I missed that. 2018-08-22T23:02:53Z jasom: yes, 3 nested loops is how it would be done in lisp 2018-08-22T23:03:10Z xsperry: jasom, [1..] is an infinite list of integers. take 10 drivers computation, and since haskell is lazy it will only compute enough to take first 10 such triangles 2018-08-22T23:03:33Z jasom: (loop for i from 1 ...) will give you [1..] as an iteration 2018-08-22T23:03:55Z jasom: the termination upon finding 10 items will need to be manually written though. 2018-08-22T23:04:11Z jasom: https://github.com/jasom/itertools defines a take, but I don't remember if it's lazy 2018-08-22T23:04:32Z jasom: I wrote it mainly as a toy to explore making SETF like generic macros. 2018-08-22T23:05:30Z mange joined #lisp 2018-08-22T23:06:25Z aeth_ joined #lisp 2018-08-22T23:06:27Z jasom: it is indeed lazy which is completely obvious from the source to anybody https://github.com/jasom/itertools/blob/master/itertools.lisp#L406 2018-08-22T23:06:37Z ratxue joined #lisp 2018-08-22T23:07:07Z ebrasca joined #lisp 2018-08-22T23:07:12Z pierpa joined #lisp 2018-08-22T23:07:12Z aeth_: Well, that was an incredible mess. nickserv and chanserv were down but nearly every channel was +r and in every other one you couldn't speak. So if your Internet went down in a period of about 4-5 hours or you tried to connect, you were out of luck, apparently. 2018-08-22T23:08:29Z ebrasca: aeth_: Now I understand my problems reconnecting to irc. 2018-08-22T23:09:22Z aeth_: And the best part is, when it forced my nick to Guest1234 or whatever when nickserv came back, it made my nick temporarily unavailable. 2018-08-22T23:09:37Z aeth_: Temporarily at this point is looking like 15 minutes to an hour 2018-08-22T23:10:32Z xsperry: jasom, ok, this is a lot more similar to the solution above than I imagined it to be. if I got it right, can I use loop to generate some lazy equivalent of a list (infinite list of right triangles), and then take first 10 such elements? 2018-08-22T23:10:35Z shachaf: As I'm trying to figure out some language ideas the language is becoming more and more like lisp. I guess this is an old story. 2018-08-22T23:10:47Z shachaf: Probably not quite enough like lisp to use S-expressions, though. 2018-08-22T23:11:28Z Bike quit (Quit: Lost terminal) 2018-08-22T23:11:39Z markong quit (Quit: Konversation terminated!) 2018-08-22T23:14:34Z no-defun-allowed: i'm sure ITERATE has some stuff for "when we have 10 elements" 2018-08-22T23:14:37Z no-defun-allowed: increment a counter when and only when we have a match? 2018-08-22T23:19:14Z meepdeew joined #lisp 2018-08-22T23:20:14Z charh quit (Read error: Connection reset by peer) 2018-08-22T23:20:35Z charh joined #lisp 2018-08-22T23:23:27Z dura joined #lisp 2018-08-22T23:26:27Z froggey quit (Ping timeout: 240 seconds) 2018-08-22T23:26:53Z lnostdal quit (Read error: Connection reset by peer) 2018-08-22T23:28:27Z froggey joined #lisp 2018-08-22T23:30:42Z dura is now known as Alcinous 2018-08-22T23:33:30Z eschatologist quit (Ping timeout: 264 seconds) 2018-08-22T23:33:51Z eschatologist joined #lisp 2018-08-22T23:33:57Z Alcinous quit (Quit: WeeChat 2.2) 2018-08-22T23:44:27Z ebrasca quit (Ping timeout: 240 seconds) 2018-08-22T23:46:38Z shifty joined #lisp 2018-08-22T23:52:31Z aeth_ is now known as aeth 2018-08-22T23:53:33Z _death: here's a low level attempt with series https://plaster.tymoon.eu/view/888#888 2018-08-22T23:54:39Z _death: (forgive stylistic inconsistencies ;) 2018-08-22T23:57:07Z skidd0 quit (Quit: \0) 2018-08-22T23:59:36Z _death: this can be thought as a macroexpansion of a form closer to yours.. 2018-08-23T00:00:40Z xsperry: _death, interesting, thanks. I wonder how close we can take it syntax wise with macros 2018-08-23T00:03:20Z jack_rabbit quit (Ping timeout: 272 seconds) 2018-08-23T00:03:22Z arbv quit (Ping timeout: 260 seconds) 2018-08-23T00:04:48Z dale quit (Quit: dale) 2018-08-23T00:04:51Z Kaisyu joined #lisp 2018-08-23T00:04:56Z troydm quit (Ping timeout: 276 seconds) 2018-08-23T00:05:09Z orivej joined #lisp 2018-08-23T00:07:00Z Kundry_Wag joined #lisp 2018-08-23T00:08:04Z troydm joined #lisp 2018-08-23T00:08:31Z matzy_ joined #lisp 2018-08-23T00:11:04Z _death: I guess something like this isn't too bad (take 10 (gen ((c (range 1)) (b (range 1 c)) (a (range 1 b))) (when (= (square c) (+ (square a) (square b))) (list a b c)))) 2018-08-23T00:11:50Z arbv joined #lisp 2018-08-23T00:12:44Z xsperry: what would range 1 return? 2018-08-23T00:13:33Z _death: a lazy list of integers from 1 to infinity 2018-08-23T00:14:00Z xsperry: I mean, is there already a list like that in some popular third party library 2018-08-23T00:14:05Z xsperry quit (Quit: CGI:IRC) 2018-08-23T00:14:42Z _death: sure, there are many libraries for that.. series is one.. clazy, pipes, etc. 2018-08-23T00:14:43Z xsperry joined #lisp 2018-08-23T00:14:47Z smokeink joined #lisp 2018-08-23T00:17:08Z jack_rabbit joined #lisp 2018-08-23T00:18:34Z captgector quit (Read error: Connection reset by peer) 2018-08-23T00:21:59Z rumbler31 joined #lisp 2018-08-23T00:22:17Z Demosthenex quit (Ping timeout: 268 seconds) 2018-08-23T00:23:27Z rumbler31 quit (Remote host closed the connection) 2018-08-23T00:23:53Z Demosthenex joined #lisp 2018-08-23T00:27:45Z fikka joined #lisp 2018-08-23T00:35:54Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T00:39:41Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-23T00:40:57Z Alcinous joined #lisp 2018-08-23T00:41:42Z sabrac: postmodern 2018-08-23T00:44:43Z shelvick joined #lisp 2018-08-23T00:48:38Z meepdeew quit (Remote host closed the connection) 2018-08-23T01:02:52Z Alcinous quit (Quit: WeeChat 2.2) 2018-08-23T01:03:48Z Kundry_Wag quit (Remote host closed the connection) 2018-08-23T01:06:16Z aindilis quit (Remote host closed the connection) 2018-08-23T01:06:21Z mindCrime joined #lisp 2018-08-23T01:06:52Z Kundry_Wag joined #lisp 2018-08-23T01:07:45Z fikka joined #lisp 2018-08-23T01:08:03Z aindilis joined #lisp 2018-08-23T01:11:18Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-23T01:12:30Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T01:16:11Z Denommus quit (Read error: Connection reset by peer) 2018-08-23T01:17:10Z meepdeew joined #lisp 2018-08-23T01:26:50Z Kundry_Wag joined #lisp 2018-08-23T01:28:44Z matzy_ left #lisp 2018-08-23T01:36:39Z Josh_2 quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-23T01:37:04Z ski quit (Ping timeout: 272 seconds) 2018-08-23T01:46:20Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-08-23T01:51:03Z ebzzry quit (Quit: WeeChat 2.1) 2018-08-23T01:52:40Z Oladon joined #lisp 2018-08-23T01:57:25Z dented42 joined #lisp 2018-08-23T01:57:40Z Cymew joined #lisp 2018-08-23T01:58:17Z jack_rabbit joined #lisp 2018-08-23T01:58:47Z lumm quit (Quit: lumm) 2018-08-23T02:02:24Z Cymew quit (Ping timeout: 272 seconds) 2018-08-23T02:04:13Z ratxue quit (Quit: ChatZilla 0.9.93 [SeaMonkey 2.49.4/20180713174829]) 2018-08-23T02:08:33Z LdBeth: morning 2018-08-23T02:10:36Z notyou joined #lisp 2018-08-23T02:19:06Z eschatologist quit (Ping timeout: 264 seconds) 2018-08-23T02:20:46Z orivej quit (Ping timeout: 272 seconds) 2018-08-23T02:21:09Z orivej joined #lisp 2018-08-23T02:21:30Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-23T02:22:14Z mathrick joined #lisp 2018-08-23T02:22:17Z koenig1 joined #lisp 2018-08-23T02:22:36Z XachX_ joined #lisp 2018-08-23T02:23:30Z lonjil2 joined #lisp 2018-08-23T02:24:22Z eschatologist joined #lisp 2018-08-23T02:25:10Z Patzy_ joined #lisp 2018-08-23T02:25:17Z cross_ joined #lisp 2018-08-23T02:27:27Z pierpa quit (Quit: Page closed) 2018-08-23T02:28:28Z bmansurov_ joined #lisp 2018-08-23T02:29:31Z emaczen quit (*.net *.split) 2018-08-23T02:29:32Z pjb quit (*.net *.split) 2018-08-23T02:29:33Z LdBeth quit (*.net *.split) 2018-08-23T02:29:33Z galdor quit (*.net *.split) 2018-08-23T02:29:33Z XachX quit (*.net *.split) 2018-08-23T02:29:33Z tfb quit (*.net *.split) 2018-08-23T02:29:33Z lonjil quit (*.net *.split) 2018-08-23T02:29:34Z Patzy quit (*.net *.split) 2018-08-23T02:29:34Z koenig quit (*.net *.split) 2018-08-23T02:29:34Z brandonz quit (*.net *.split) 2018-08-23T02:29:34Z cross quit (*.net *.split) 2018-08-23T02:29:34Z jerme quit (*.net *.split) 2018-08-23T02:29:34Z cyberlard quit (*.net *.split) 2018-08-23T02:29:35Z eMBee quit (*.net *.split) 2018-08-23T02:29:35Z bmansurov quit (*.net *.split) 2018-08-23T02:29:35Z XachX_ is now known as XachX 2018-08-23T02:31:57Z xsperry quit (Ping timeout: 240 seconds) 2018-08-23T02:33:50Z ratxue joined #lisp 2018-08-23T02:36:05Z brandonz joined #lisp 2018-08-23T02:37:00Z dddddd quit (Remote host closed the connection) 2018-08-23T02:37:12Z cyberlard joined #lisp 2018-08-23T02:37:22Z atgreen joined #lisp 2018-08-23T02:37:52Z mindCrime quit (Ping timeout: 265 seconds) 2018-08-23T02:39:10Z marvin3 quit (Remote host closed the connection) 2018-08-23T02:40:06Z Kundry_Wag quit (Remote host closed the connection) 2018-08-23T02:40:42Z Kundry_Wag joined #lisp 2018-08-23T02:40:59Z aindilis quit (Remote host closed the connection) 2018-08-23T02:42:30Z aindilis joined #lisp 2018-08-23T02:43:37Z fikka joined #lisp 2018-08-23T02:45:10Z igemnace joined #lisp 2018-08-23T02:45:13Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-23T02:48:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-23T02:54:45Z pierpal joined #lisp 2018-08-23T03:00:38Z Kundry_Wag joined #lisp 2018-08-23T03:04:57Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-23T03:05:54Z SaganMan quit (Ping timeout: 264 seconds) 2018-08-23T03:14:25Z Alcinous joined #lisp 2018-08-23T03:19:30Z SaganMan joined #lisp 2018-08-23T03:34:28Z krwq joined #lisp 2018-08-23T03:34:48Z Alcinous is now known as dura 2018-08-23T03:38:15Z krwq: how does slime figure out the arguments for macro/function? I tried to use function-lambda-expression but it seems it does something more clever 2018-08-23T03:38:25Z fikka joined #lisp 2018-08-23T03:40:12Z krwq: I think I found: swank-backend:arglist 2018-08-23T03:40:25Z Kundry_Wag joined #lisp 2018-08-23T03:43:45Z fikka quit (Ping timeout: 272 seconds) 2018-08-23T03:45:05Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-23T03:48:58Z dented42 joined #lisp 2018-08-23T03:51:16Z nsrahmad joined #lisp 2018-08-23T03:57:02Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-23T03:57:48Z nsrahmad quit (Remote host closed the connection) 2018-08-23T04:00:55Z nsrahmad joined #lisp 2018-08-23T04:06:48Z notyou quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-23T04:10:28Z Kundry_Wag joined #lisp 2018-08-23T04:10:42Z smokeink quit (Ping timeout: 264 seconds) 2018-08-23T04:11:46Z nsrahmad quit (Remote host closed the connection) 2018-08-23T04:14:34Z krator44 left #lisp 2018-08-23T04:15:22Z Kundry_Wag quit (Ping timeout: 256 seconds) 2018-08-23T04:19:19Z smokeink joined #lisp 2018-08-23T04:23:34Z pierpal quit (Quit: Poof) 2018-08-23T04:24:00Z pierpal joined #lisp 2018-08-23T04:24:33Z slyrus quit (Quit: slyrus) 2018-08-23T04:24:33Z slyrus2 is now known as slyrus 2018-08-23T04:27:58Z loli quit (Ping timeout: 260 seconds) 2018-08-23T04:27:58Z groovy2shoes quit (Ping timeout: 260 seconds) 2018-08-23T04:28:02Z koenig2 joined #lisp 2018-08-23T04:28:06Z koenig1 quit (Ping timeout: 264 seconds) 2018-08-23T04:29:43Z loli joined #lisp 2018-08-23T04:32:11Z groovy2shoes joined #lisp 2018-08-23T04:44:47Z dura is now known as Dura 2018-08-23T04:54:45Z krwq left #lisp 2018-08-23T04:57:32Z vlatkoB joined #lisp 2018-08-23T04:58:35Z Oladon quit (Quit: Leaving.) 2018-08-23T04:59:21Z slyrus1 joined #lisp 2018-08-23T05:09:04Z sabrac: Minion: memo for skidd0: See postmodern commit Aug 5 on deleting table with cascade 2018-08-23T05:09:05Z minion: Remembered. I'll tell skidd0 when he/she/it next speaks. 2018-08-23T05:10:20Z earl-ducaine: Use of the question mark (rather than -p) seems barbaric: https://gist.github.com/earl-ducaine/dd90263f81d44ab1de90c868bff86c1f 2018-08-23T05:10:28Z Kundry_Wag joined #lisp 2018-08-23T05:10:40Z earl-ducaine: Is there some convention I'm not aware of? 2018-08-23T05:11:34Z Arcaelyx quit (Ping timeout: 265 seconds) 2018-08-23T05:11:46Z Arcaelyx_ joined #lisp 2018-08-23T05:15:12Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-23T05:18:39Z sabrac: earl-ducaine: https://www.cliki.net/naming%20conventions indicates that scheme uses the question mark. 2018-08-23T05:18:55Z sabrac: Every common lisp style guide I have seen uses p or -p 2018-08-23T05:20:36Z sauvin joined #lisp 2018-08-23T05:21:17Z igemnace quit (Remote host closed the connection) 2018-08-23T05:25:23Z Manny8888 joined #lisp 2018-08-23T05:26:53Z fikka joined #lisp 2018-08-23T05:30:38Z ThUnD3R256 joined #lisp 2018-08-23T05:30:47Z no-defun-allowed: p for single words, -p for many words 2018-08-23T05:31:02Z mange: Yeah, I think CL and Emacs use p/-p, whereas Scheme and Clojure use a question mark. 2018-08-23T05:31:27Z fikka quit (Ping timeout: 240 seconds) 2018-08-23T05:35:20Z Inline quit (Quit: Leaving) 2018-08-23T05:35:47Z sabrac: https://google.github.io/styleguide/lispguide.xml#Predicate_names notes some existing CL packages use ? but recommends against it 2018-08-23T05:36:02Z ThUnD3R256 quit (Quit: Leaving) 2018-08-23T05:40:10Z earl-ducaine: The code in question was written by Mlynarik (mly), who was working at Xerox at the time. So, it might have been a Interlisp convention. 2018-08-23T05:48:38Z steiner joined #lisp 2018-08-23T05:51:03Z meepdeew quit (Remote host closed the connection) 2018-08-23T05:54:40Z smokeink quit (Ping timeout: 268 seconds) 2018-08-23T05:54:44Z SaganMan quit (Ping timeout: 255 seconds) 2018-08-23T05:58:59Z steiner quit (Ping timeout: 268 seconds) 2018-08-23T05:59:07Z steiner joined #lisp 2018-08-23T06:01:38Z aeth: The two main styles are either p for single words and -p for multiple words or -p for everything. -p for everything does have its users 2018-08-23T06:01:53Z aeth: Then ? is probably distant third 2018-08-23T06:07:06Z aeth: The original style is foop and foo-bar-p. foo-p came later, either to make it unambiguous or because someone misunderstood the rules (probably both, depending on the person) 2018-08-23T06:09:16Z SaganMan joined #lisp 2018-08-23T06:14:49Z atgreen quit (Remote host closed the connection) 2018-08-23T06:17:14Z atgreen joined #lisp 2018-08-23T06:21:03Z lieven joined #lisp 2018-08-23T06:21:38Z fikka joined #lisp 2018-08-23T06:21:47Z nsrahmad joined #lisp 2018-08-23T06:22:18Z edgar-rft: The question mark was used in the 1980s as the suffix for "unknown" variables in logical pattern matchers, while the p suffix was used for logical predicate functions. That was long before Scheme used ? for predicates. 2018-08-23T06:25:33Z aeth: I use the ? and ! conventions from Scheme from time to time. Interestingly enough, I don't use it in implementing my Scheme. If CL doesn't have a foop function and Scheme has a foo? procedure it seems clearest just to define a foop function and then use that as the implementation of Scheme's foo? procedure, especially when barp does exist in CL. 2018-08-23T06:25:55Z aeth: I'm fuly aware that if I use foo? somewhere, 90% of the readers will despise it, though :-p 2018-08-23T06:26:39Z aeth: foo! is trickier because there's no direct equivalent so it might be the best choice if you need to communicate mutation. The f in setf or incf doesn't mean the same thing. 2018-08-23T06:26:54Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T06:27:22Z orivej quit (Ping timeout: 252 seconds) 2018-08-23T06:27:31Z aeth: Any other Scheme naming convention will be unrecognizable by anyone. 2018-08-23T06:29:39Z edgar-rft: What I wanted to point out is that using ? for Common Lisp predicate functions is historically wrong. 2018-08-23T06:31:36Z aeth: The only wrong answer is some convention from another more distant language like is-foo (or get-foo) 2018-08-23T06:31:42Z nsrahmad quit (Ping timeout: 264 seconds) 2018-08-23T06:32:58Z edgar-rft: there had been so many obscure conventions in the past that "wrong" becomes rather blurry in this context 2018-08-23T06:34:09Z aeth: It's funny that get-foo is, in my opinion, incorrect CL style that I wouldn't accept in any of my projects (just call it foo), but cl:get-TAB produces 9 results. 2018-08-23T06:35:50Z tralala joined #lisp 2018-08-23T06:35:55Z aeth: Similarly, define-condition is there as a define-foo, even though the style many use is deffoo or defoo vs. define-foo-bar 2018-08-23T06:36:21Z aeth: I wouldn't consider define-foo wrong, though 2018-08-23T06:37:40Z nsrahmad joined #lisp 2018-08-23T06:38:16Z aeth: The standard doesn't have +foo+ for its constants, just foo. That one's annoying. e.g. this won't work in SBCL: (let ((most-positive-fixnum 42)) (1+ most-positive-fixnum)) 2018-08-23T06:40:07Z aeth: I wonder when +foo+ became the convention 2018-08-23T06:50:13Z _death: personally I stopped using +foo+ some years ago.. don't miss it 2018-08-23T06:51:26Z aeth: Instead of using +foo+ you can just take the convention from C and write it as FOO. e.g. (defconstant FOO 42) 2018-08-23T06:51:27Z SaganMan quit (Ping timeout: 240 seconds) 2018-08-23T06:51:42Z beach: Good morning everyone! 2018-08-23T06:53:19Z smokeink joined #lisp 2018-08-23T06:53:31Z no-defun-allowed: afternoon beach 2018-08-23T06:54:38Z jackdaniel: aeth: that C convention is broken for lisp, because default reader converts to upcase anyway 2018-08-23T06:54:47Z jackdaniel: and you still wouldn't be able to (let ((foo 3)) …) 2018-08-23T06:54:58Z aeth: jackdaniel: Yes 2018-08-23T06:55:09Z jackdaniel: I personally like the +convention+ 2018-08-23T06:55:13Z aeth: jackdaniel: I was joking 2018-08-23T06:55:31Z jackdaniel: OK, apparently my sense of humour didn't wake up yet ;) 2018-08-23T06:56:14Z aeth: jackdaniel: +foo+ is superior anyway even if you could write FOO because not every Unicode character that's valid for a symbol name has an upper case form (although some symbols have upper case forms if you trust IRC) 2018-08-23T06:58:00Z _death: if it's a church numeral, you can use ✝foo✝ 2018-08-23T06:59:12Z no-defun-allowed: 💩foo💩 also works 2018-08-23T07:00:02Z aeth: +🍪+ is unambiguously a constant. 2018-08-23T07:00:09Z aeth: try to have a constant 🍪 in C 2018-08-23T07:00:25Z Kundry_Wag joined #lisp 2018-08-23T07:00:32Z aeth: (defconstant +🍪+ 42) 2018-08-23T07:02:01Z aeth: And with the power of reader macros in CL you could even make it 🌘defconstant +🍪+ 42🌒 2018-08-23T07:05:18Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-23T07:08:17Z jackdaniel: my eyes hurt 2018-08-23T07:15:45Z SaganMan joined #lisp 2018-08-23T07:16:35Z heisig joined #lisp 2018-08-23T07:21:19Z light2yellow joined #lisp 2018-08-23T07:26:33Z fikka joined #lisp 2018-08-23T07:31:26Z fikka quit (Ping timeout: 256 seconds) 2018-08-23T07:36:59Z fikka joined #lisp 2018-08-23T07:39:16Z Kundry_Wag joined #lisp 2018-08-23T07:42:08Z fikka quit (Ping timeout: 260 seconds) 2018-08-23T07:43:03Z Cymew joined #lisp 2018-08-23T07:43:24Z schjetne: beach: good morning! I'm back from holiday now. 2018-08-23T07:44:00Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-23T07:44:55Z marvin2 joined #lisp 2018-08-23T07:45:32Z galdor joined #lisp 2018-08-23T07:47:07Z igemnace joined #lisp 2018-08-23T07:47:14Z nsrahmad quit (Ping timeout: 255 seconds) 2018-08-23T07:47:34Z SaganMan quit (Ping timeout: 272 seconds) 2018-08-23T07:48:13Z schweers joined #lisp 2018-08-23T07:50:56Z buffergn0me joined #lisp 2018-08-23T07:53:00Z Dura quit (Quit: WeeChat 2.2) 2018-08-23T08:01:06Z buffergn0me quit (Ping timeout: 264 seconds) 2018-08-23T08:08:09Z angavrilov joined #lisp 2018-08-23T08:11:54Z ratxue quit (Quit: ChatZilla 0.9.93 [SeaMonkey 2.49.4/20180713174829]) 2018-08-23T08:13:20Z White_Flame: aeth: https://i.imgur.com/8GoJkRr.png 2018-08-23T08:13:34Z shka_ joined #lisp 2018-08-23T08:15:55Z SaganMan joined #lisp 2018-08-23T08:16:48Z ratxue joined #lisp 2018-08-23T08:17:47Z loli quit (Quit: WeeChat 2.2) 2018-08-23T08:18:41Z loli joined #lisp 2018-08-23T08:22:38Z bendersteed joined #lisp 2018-08-23T08:24:08Z jack_rabbit quit (Ping timeout: 255 seconds) 2018-08-23T08:28:25Z aeth: White_Flame: Surprisingly readable 2018-08-23T08:29:22Z tfb joined #lisp 2018-08-23T08:33:53Z TMA quit (Ping timeout: 276 seconds) 2018-08-23T08:35:10Z TMA joined #lisp 2018-08-23T08:36:11Z runejuhl joined #lisp 2018-08-23T08:36:30Z jack_rabbit joined #lisp 2018-08-23T08:38:46Z mange quit (Remote host closed the connection) 2018-08-23T08:47:41Z pierpal quit (Quit: Poof) 2018-08-23T08:48:01Z pierpal joined #lisp 2018-08-23T08:52:51Z ratxue quit (Quit: ChatZilla 0.9.93 [SeaMonkey 2.49.4/20180713174829]) 2018-08-23T08:55:31Z azimut_ joined #lisp 2018-08-23T08:57:14Z azimut quit (Ping timeout: 272 seconds) 2018-08-23T09:02:29Z kajo quit (Ping timeout: 276 seconds) 2018-08-23T09:11:58Z beach: schjetne: Great! Remind me where you went. 2018-08-23T09:13:35Z schjetne: beach: I stayed at home (meant to get my PPL current again, but weather got in the way), but more importantly I want to discuss some consulting opportunities at my company. What do you prefer, email? 2018-08-23T09:14:53Z beach: Sure, let's start with that. 2018-08-23T09:15:13Z schjetne: They you'll hear from me some time this week. 2018-08-23T09:15:20Z beach: Sounds good. 2018-08-23T09:19:20Z nowhere_man joined #lisp 2018-08-23T09:21:52Z dim: when playing with unicode variable names, don't forget about the +​+ (using zero-width space) (you could use more than one) 2018-08-23T09:22:48Z aeth: dim: but at least it's clear that it's a constant 2018-08-23T09:23:07Z dim: (let ((a '​) (b '​​)) (eq a b)) is nil, of course 2018-08-23T09:23:44Z dim: there's also the invisible separator character: ⁣ 2018-08-23T09:23:59Z dim: and the invisible plus character: ⁤ 2018-08-23T09:23:59Z Cymew quit (Read error: Connection reset by peer) 2018-08-23T09:24:00Z dim: and more 2018-08-23T09:27:04Z lumm joined #lisp 2018-08-23T09:27:28Z pierpal quit (Read error: Connection reset by peer) 2018-08-23T09:31:34Z GreaseMonkey joined #lisp 2018-08-23T09:34:04Z jackdaniel: I can't see them 2018-08-23T09:34:16Z jackdaniel: probably that invisibility thing ;-) 2018-08-23T09:38:28Z orivej joined #lisp 2018-08-23T09:45:04Z _whitelogger quit (Remote host closed the connection) 2018-08-23T09:47:16Z _whitelogger joined #lisp 2018-08-23T09:49:45Z random-nick joined #lisp 2018-08-23T09:50:34Z m00natic joined #lisp 2018-08-23T09:53:30Z dim: I'm using rcirc in Emacs, so I can place my cursor and then use C-x = runs the command what-cursor-position to have information about the chars 2018-08-23T09:53:44Z dim: otherwise, yeah, the whole point is that we can't see them ;-) 2018-08-23T09:57:04Z smokeink: and what useful tricks can you do with them ? 2018-08-23T09:58:58Z fikka joined #lisp 2018-08-23T09:59:59Z dim: useful? I don't know about useful, I know about the dangers of using unicode symbols in variable names when programming… 2018-08-23T10:00:19Z dim: well symbols at large, even 2018-08-23T10:02:57Z jackdaniel: always stick to 16 bit numbers and 7 bit characters, that's what they say -) 2018-08-23T10:03:53Z m00natic quit (Ping timeout: 260 seconds) 2018-08-23T10:05:04Z Kundry_Wag joined #lisp 2018-08-23T10:05:35Z fikka quit (Ping timeout: 240 seconds) 2018-08-23T10:08:09Z quipa joined #lisp 2018-08-23T10:09:35Z Kundry_Wag quit (Ping timeout: 240 seconds) 2018-08-23T10:10:58Z igemnace quit (Quit: WeeChat 2.2) 2018-08-23T10:13:55Z zfree quit (Quit: zfree) 2018-08-23T10:16:52Z milanj joined #lisp 2018-08-23T10:20:19Z ebzzry joined #lisp 2018-08-23T10:21:55Z makomo joined #lisp 2018-08-23T10:25:53Z fikka joined #lisp 2018-08-23T10:26:45Z smokeink quit (Remote host closed the connection) 2018-08-23T10:31:53Z shka_: good day 2018-08-23T10:31:54Z ebrasca joined #lisp 2018-08-23T10:33:20Z fikka quit (Ping timeout: 256 seconds) 2018-08-23T10:41:25Z makomo: hello 2018-08-23T10:43:26Z makomo: Shinmera: https://github.com/Shinmera/dissect/blob/master/toolkit.lisp#L31 not sure if this was intentional, but this breaks on strings that contain parentheses 2018-08-23T10:43:52Z makomo: (with-input-from-string (str "(hello \"th)ere\")") (dissect::read-toplevel-form str)) ;; => "(hello \"th)" 2018-08-23T10:45:50Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-08-23T10:46:46Z ski joined #lisp 2018-08-23T10:46:50Z figurelisp joined #lisp 2018-08-23T10:49:21Z krator44 joined #lisp 2018-08-23T10:52:13Z fikka joined #lisp 2018-08-23T10:53:05Z ski quit (Ping timeout: 240 seconds) 2018-08-23T10:56:13Z Shinmera: It's extremely primitive, I know 2018-08-23T10:56:30Z Shinmera: I can't very well implement a full reader just for fallback form reading. 2018-08-23T10:57:33Z jack_rabbit joined #lisp 2018-08-23T10:57:48Z Shinmera: Could probably get a good bit farther by handling escapes and strings, but I don't have time at the moment. 2018-08-23T10:58:08Z fikka quit (Ping timeout: 260 seconds) 2018-08-23T11:01:33Z makomo: Shinmera: yeah, i thought that might be the reason. wanted to let you know just in case. 2018-08-23T11:01:55Z makomo: Shinmera: and you can't use READ because of #.? 2018-08-23T11:02:16Z no-defun-allowed: Can't you turn off *read-eval* or something similar? 2018-08-23T11:02:25Z no-defun-allowed: clhs read-eval 2018-08-23T11:02:25Z specbot: Couldn't find anything for read-eval. 2018-08-23T11:02:33Z Shinmera: You can, but I'd rather read primitively than to cause potentially undesired read effects 2018-08-23T11:02:43Z no-defun-allowed: clhs *read-eval* 2018-08-23T11:02:43Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_rd_eva.htm 2018-08-23T11:03:12Z makomo: yeah, you can, but then you get an error while READing 2018-08-23T11:03:36Z makomo: "can't read #. while *READ-EVAL* is NIL" 2018-08-23T11:03:41Z no-defun-allowed: What would you gain from a new parser then? 2018-08-23T11:03:51Z no-defun-allowed: If you have bad syntax, you're screwed either way. 2018-08-23T11:03:55Z Shinmera: Could do a whole bunch of hooey by depending on eclector, etc. 2018-08-23T11:04:03Z Shinmera: But I'd rather keep it simple. 2018-08-23T11:04:33Z makomo: Shinmera: maybe throw an error if LEVEL goes negative? 2018-08-23T11:05:15Z makomo: no-defun-allowed: yeah, but READ will try to evaluate #. or fail if it's disabled 2018-08-23T11:05:22Z makomo: this will "read" #. as well 2018-08-23T11:05:24Z Shinmera: How would that help? It terminates if the level goes to zero. 2018-08-23T11:05:31Z Shinmera: It should never go negative anyway. 2018-08-23T11:06:16Z makomo: Shinmera: er right, woops 2018-08-23T11:07:56Z Bronsa quit (Ping timeout: 268 seconds) 2018-08-23T11:09:39Z pierpal joined #lisp 2018-08-23T11:10:47Z Kundry_Wag joined #lisp 2018-08-23T11:14:53Z HarpoRoeder joined #lisp 2018-08-23T11:15:57Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-23T11:16:05Z pierpal quit (Ping timeout: 240 seconds) 2018-08-23T11:20:46Z Bronsa joined #lisp 2018-08-23T11:21:11Z HarpoRoeder left #lisp 2018-08-23T11:22:29Z fikka joined #lisp 2018-08-23T11:28:34Z fikka quit (Ping timeout: 265 seconds) 2018-08-23T11:39:38Z Patzy_ is now known as Patzy 2018-08-23T11:40:54Z fikka joined #lisp 2018-08-23T11:43:06Z lnostdal joined #lisp 2018-08-23T11:45:19Z eminhi joined #lisp 2018-08-23T11:51:29Z ski joined #lisp 2018-08-23T11:52:37Z razzy quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-08-23T11:56:21Z dddddd joined #lisp 2018-08-23T11:56:50Z rumbler31 joined #lisp 2018-08-23T11:59:03Z rumbler31 quit (Remote host closed the connection) 2018-08-23T12:02:18Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-23T12:02:46Z razzy joined #lisp 2018-08-23T12:05:05Z markong joined #lisp 2018-08-23T12:05:32Z markong quit (Client Quit) 2018-08-23T12:05:44Z markong joined #lisp 2018-08-23T12:07:18Z markong is now known as markoong 2018-08-23T12:14:02Z Xof joined #lisp 2018-08-23T12:19:46Z Kundry_Wag joined #lisp 2018-08-23T12:24:24Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-23T12:25:18Z eminhi quit (Quit: leaving) 2018-08-23T12:30:11Z mindCrime joined #lisp 2018-08-23T12:34:11Z Kundry_Wag joined #lisp 2018-08-23T12:38:52Z m00natic joined #lisp 2018-08-23T12:39:35Z Kundry_Wag quit (Ping timeout: 276 seconds) 2018-08-23T12:42:21Z Bike joined #lisp 2018-08-23T12:53:23Z fikka quit (Ping timeout: 268 seconds) 2018-08-23T12:53:42Z nowhere_man joined #lisp 2018-08-23T12:56:32Z justinmcp joined #lisp 2018-08-23T13:00:31Z pierpal joined #lisp 2018-08-23T13:01:49Z jkordani joined #lisp 2018-08-23T13:05:05Z heisig quit (Quit: Leaving) 2018-08-23T13:07:38Z pierpal quit (Ping timeout: 260 seconds) 2018-08-23T13:08:24Z fikka joined #lisp 2018-08-23T13:09:01Z koenig2 is now known as koenig 2018-08-23T13:09:44Z Denommus joined #lisp 2018-08-23T13:15:18Z thawes joined #lisp 2018-08-23T13:19:18Z fikka quit (Ping timeout: 260 seconds) 2018-08-23T13:29:07Z krator44 left #lisp 2018-08-23T13:29:10Z vlatkoB quit (Remote host closed the connection) 2018-08-23T13:31:16Z vlatkoB joined #lisp 2018-08-23T13:32:07Z tralala quit (Quit: out) 2018-08-23T13:34:12Z eminhi joined #lisp 2018-08-23T13:35:42Z lumm quit (Remote host closed the connection) 2018-08-23T13:36:21Z lumm joined #lisp 2018-08-23T13:41:50Z jkordani_ joined #lisp 2018-08-23T13:44:18Z jkordani quit (Ping timeout: 256 seconds) 2018-08-23T13:48:25Z pierpal joined #lisp 2018-08-23T13:56:49Z cage_ joined #lisp 2018-08-23T13:58:04Z marvin2 quit (Ping timeout: 272 seconds) 2018-08-23T14:07:56Z jack_rabbit quit (Ping timeout: 255 seconds) 2018-08-23T14:09:28Z atgreen quit (Ping timeout: 272 seconds) 2018-08-23T14:09:47Z crsc joined #lisp 2018-08-23T14:14:13Z fikka joined #lisp 2018-08-23T14:18:43Z atgreen joined #lisp 2018-08-23T14:19:30Z crsc quit (Quit: leaving) 2018-08-23T14:23:12Z Inline joined #lisp 2018-08-23T14:24:14Z dale_ joined #lisp 2018-08-23T14:24:33Z dale_ is now known as dale 2018-08-23T14:25:57Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-23T14:26:25Z crsc joined #lisp 2018-08-23T14:28:26Z sjl__ joined #lisp 2018-08-23T14:32:06Z steiner quit (Remote host closed the connection) 2018-08-23T14:35:50Z FreeBirdLjj joined #lisp 2018-08-23T14:38:06Z steiner joined #lisp 2018-08-23T14:43:37Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-23T14:51:55Z shymega joined #lisp 2018-08-23T14:52:08Z meepdeew joined #lisp 2018-08-23T14:52:52Z meepdeew quit (Remote host closed the connection) 2018-08-23T14:59:33Z easye joined #lisp 2018-08-23T15:05:28Z wheelsucker joined #lisp 2018-08-23T15:11:05Z loli quit (Quit: WeeChat 2.2) 2018-08-23T15:11:06Z mindCrime joined #lisp 2018-08-23T15:11:21Z MetaYan joined #lisp 2018-08-23T15:11:41Z lumm quit (Quit: lumm) 2018-08-23T15:14:28Z cgay quit (Remote host closed the connection) 2018-08-23T15:17:14Z fikka quit (Ping timeout: 256 seconds) 2018-08-23T15:20:32Z lumm joined #lisp 2018-08-23T15:20:57Z cgay joined #lisp 2018-08-23T15:24:08Z zigpaw quit (Ping timeout: 260 seconds) 2018-08-23T15:29:08Z fikka joined #lisp 2018-08-23T15:32:26Z quazimodo joined #lisp 2018-08-23T15:35:05Z nika joined #lisp 2018-08-23T15:35:22Z fikka quit (Ping timeout: 256 seconds) 2018-08-23T15:35:57Z MetaYan quit (Quit: leaving) 2018-08-23T15:36:25Z fikka joined #lisp 2018-08-23T15:38:49Z Achylles joined #lisp 2018-08-23T15:41:36Z nowhere_man quit (Ping timeout: 256 seconds) 2018-08-23T15:41:42Z mishoo joined #lisp 2018-08-23T15:53:18Z robotoad joined #lisp 2018-08-23T15:53:52Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-23T15:55:28Z quazimodo joined #lisp 2018-08-23T15:56:22Z Josh_2 joined #lisp 2018-08-23T15:57:43Z igemnace joined #lisp 2018-08-23T15:59:09Z remix2000 joined #lisp 2018-08-23T16:00:15Z varjag joined #lisp 2018-08-23T16:01:07Z meepdeew joined #lisp 2018-08-23T16:03:30Z figurelisp quit (Quit: Lost terminal) 2018-08-23T16:06:00Z meepdeew: Is parenscript the normal way to handle anything front-end from CL? 2018-08-23T16:08:41Z zfree joined #lisp 2018-08-23T16:09:06Z antoszka: not necessarily 2018-08-23T16:09:26Z Shinmera: I just don't use JS if I don't have to. 2018-08-23T16:09:35Z antoszka: you can write your frontends in whatever you like and just define protocols speaking to your backend 2018-08-23T16:09:39Z antoszka: as in the non-lisp world 2018-08-23T16:10:51Z meepdeew: M'okay 2018-08-23T16:12:02Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-23T16:13:48Z ebrasca quit (Ping timeout: 268 seconds) 2018-08-23T16:16:08Z phaecian joined #lisp 2018-08-23T16:16:11Z ebrasca joined #lisp 2018-08-23T16:17:57Z quipa quit (Ping timeout: 240 seconds) 2018-08-23T16:18:12Z Demosthenex: newbie question. which is better practice, (cdr (assoc ...)) or (alexandria:assoc-value ...) 2018-08-23T16:18:15Z Demosthenex: aside from the length ;] 2018-08-23T16:18:37Z Shinmera: whichever you prefer. 2018-08-23T16:21:09Z Demosthenex: given they are about the same lenght, i'd stick to (cdr (assoc)) just because there's an argument for staying at the low level when a lib isn't needed 2018-08-23T16:21:43Z Shinmera: Sure. On the other hand, a lot of people use alexandria anyway and if you depend on other libraries it's likely you'll have it in your tree already. 2018-08-23T16:22:00Z AeroNotix: Shinmera: have you had commonqt building on arch recently? 2018-08-23T16:22:11Z Shinmera: I don't build CommonQt, so no 2018-08-23T16:22:26Z fikka quit (Ping timeout: 265 seconds) 2018-08-23T16:22:31Z AeroNotix: Right 2018-08-23T16:22:33Z Jachy joined #lisp 2018-08-23T16:22:34Z Jachy: If you're using the same key over and over, perhaps a tactful function you define is in order too. 2018-08-23T16:22:59Z Shinmera: Qtools still works just fine. 2018-08-23T16:25:16Z AeroNotix: Looking into it 2018-08-23T16:25:52Z Shinmera: If you want to use just CommonQt, you should also be able to load qt+libs instead of commonqt 2018-08-23T16:25:58Z Shinmera: that's commonqt using qt-libs. 2018-08-23T16:27:40Z AeroNotix: the quicklisp package named "qt+libs"? 2018-08-23T16:27:55Z AeroNotix: Well, that QL'd 2018-08-23T16:27:56Z Shinmera: no, the quicklisp package is called commonqt, but the system is called qt+libs 2018-08-23T16:27:59Z AeroNotix: okay 2018-08-23T16:30:48Z buffergn0me joined #lisp 2018-08-23T16:31:16Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-23T16:32:08Z pjb joined #lisp 2018-08-23T16:33:16Z AeroNotix: I quickloaded qt+libs but the conv.lisp example claims the qt package is not available. Should the conv example work immediately after qt+libs? 2018-08-23T16:33:23Z AeroNotix: qt+libs being pulled in*] 2018-08-23T16:33:45Z Shinmera: Works for me. 2018-08-23T16:34:03Z Shinmera: as in, the QT package exists 2018-08-23T16:34:25Z AeroNotix: quickloading qt stumbles on compiling the so file. Running the commands in the commonqt directory tells me that smoke.h is unavailable but I'm unable to see which package on Arch brings that in. Hence my original question 2018-08-23T16:34:42Z Shinmera: qt+libs is literally just commonqt with precompiled libs. 2018-08-23T16:34:50Z nika quit (Quit: Leaving...) 2018-08-23T16:37:39Z AeroNotix: removing all the install Qt related librarys, running (ql:quickload :qt+libs) and running the conv.lisp example with `sbcl --load conv.lisp` tells me that QT is not a designated package 2018-08-23T16:37:46Z AeroNotix: libraries* 2018-08-23T16:38:38Z Shinmera: uh, if you just load a lisp file from the command line it won't magically load systems in for you 2018-08-23T16:38:54Z Shinmera: it's a fresh sbcl process. 2018-08-23T16:39:19Z AeroNotix: ah sorry derp, yeah. I assumed the conv.lisp file would've been doing it. 2018-08-23T16:41:07Z AeroNotix: Same difference. Fails to quickload qt: 2018-08-23T16:41:08Z Achylles quit (Remote host closed the connection) 2018-08-23T16:41:09Z AeroNotix: OPERATION-ERROR while invoking # on 2018-08-23T16:41:11Z AeroNotix: #SO "qt" "so" "commonqt"> 2018-08-23T16:41:27Z AeroNotix: running qmake/make in the qt directory fails with smoke.h not being found. 2018-08-23T16:41:43Z Shinmera: Don't load commonqt, load qt+libs as I've been saying! 2018-08-23T16:42:27Z AeroNotix: oh I get you. I thought you meant load qt+libs separately to pull in dependencies and then use the commonqt package going forward 2018-08-23T16:42:34Z Shinmera: No. 2018-08-23T16:42:44Z AeroNotix: OK 2018-08-23T16:43:37Z schweers quit (Remote host closed the connection) 2018-08-23T16:43:38Z slyrus1 quit (Ping timeout: 255 seconds) 2018-08-23T16:43:51Z AeroNotix: Right yeah works now 2018-08-23T16:48:13Z fikka joined #lisp 2018-08-23T16:52:15Z shifty quit (Ping timeout: 272 seconds) 2018-08-23T17:03:53Z buffergn0me quit (Ping timeout: 255 seconds) 2018-08-23T17:08:27Z papachan quit (Ping timeout: 240 seconds) 2018-08-23T17:09:37Z meepdeew quit (Remote host closed the connection) 2018-08-23T17:12:06Z fikka quit (Ping timeout: 252 seconds) 2018-08-23T17:17:49Z pierpal quit (Quit: Poof) 2018-08-23T17:18:06Z pierpal joined #lisp 2018-08-23T17:20:18Z atgreen quit (Remote host closed the connection) 2018-08-23T17:20:45Z atgreen joined #lisp 2018-08-23T17:22:07Z emaczen joined #lisp 2018-08-23T17:25:43Z emaczen: How do I open a jpeg file and read the bytes? When I open the file in emacs I see a bunch of bytes of the form \324\365 etc... and some occasional letters in between 2018-08-23T17:26:14Z emaczen: the :external-format parameter to #'open seems to be very limited 2018-08-23T17:26:39Z Shinmera: use :element-type (unsigned-byte 8) in open. 2018-08-23T17:27:01Z asarch joined #lisp 2018-08-23T17:27:07Z Shinmera: The external-format is for characters, not for byte streams. 2018-08-23T17:28:11Z housel quit (Remote host closed the connection) 2018-08-23T17:28:14Z emaczen: Shinmera: Thanks! I just glossed right over that keyword since I saw external-format.. 2018-08-23T17:30:27Z rozenglass quit (Ping timeout: 240 seconds) 2018-08-23T17:31:10Z rozenglass joined #lisp 2018-08-23T17:31:18Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-23T17:32:02Z meepdeew joined #lisp 2018-08-23T17:32:46Z Bronsa quit (Ping timeout: 272 seconds) 2018-08-23T17:33:43Z emaczen: would cffi:foreign-array-to-lisp be any faster than initializing an array, looping to evaluate (setf (aref ...) ...)? 2018-08-23T17:35:55Z phoe: emaczen: depends on what you want to do with it 2018-08-23T17:36:06Z phoe: foreign-array-to-lisp is copying 2018-08-23T17:36:12Z emaczen: phoe: I want to write it to a CCL socket 2018-08-23T17:36:24Z phoe: why use CFFI at all? 2018-08-23T17:37:04Z emaczen: phoe: because I have a foreign pointer from evaluating mmap 2018-08-23T17:37:21Z phoe: emaczen: oh, I see 2018-08-23T17:37:35Z troydm quit (Ping timeout: 240 seconds) 2018-08-23T17:37:57Z phoe: hm, foreign-array-to-lisp might be the best thing to do in that case 2018-08-23T17:38:15Z phoe: either that, or you somehow map that space to a Lisp static-vector 2018-08-23T17:38:24Z phoe: in which case you could avoid copying 2018-08-23T17:38:49Z Shinmera: static vectors only go Lisp->C not the other way around 2018-08-23T17:38:56Z phoe: I see 2018-08-23T17:39:12Z pierpal quit (Quit: Poof) 2018-08-23T17:39:24Z Shinmera: Or, more precisely, you can't create a static-vector from a pointer. 2018-08-23T17:39:30Z pierpal joined #lisp 2018-08-23T17:39:33Z phoe: I wonder if LOOP with CFFI:MEM-AREF wouldn't be the best 2018-08-23T17:40:03Z jkordani joined #lisp 2018-08-23T17:40:07Z phoe: if the overhead of repeating mem-aref wouldn't be smaller than the overhead of array copying 2018-08-23T17:40:08Z emaczen: So something like (loop (write-byte (mem-aref ...)......))? 2018-08-23T17:40:28Z phoe: emaczen: well, not an infinite loop, of course 2018-08-23T17:40:34Z emaczen: phoe: of course 2018-08-23T17:40:34Z phoe: but something like that, I think 2018-08-23T17:40:40Z phoe: check what's the fastest for you 2018-08-23T17:40:44Z phoe: benchmark and such 2018-08-23T17:41:35Z phoe: Shinmera: why is that so? I mean, what's the limitation? 2018-08-23T17:42:10Z phoe: Theoretically, if you have a foreign pointer and a length, that's theoretically enough for you to create an Lisp array object 2018-08-23T17:42:16Z Shinmera: uh, how would the lisp implementation form the vector structure around the pointer? It doesn't know what's before or after that piece of memory 2018-08-23T17:42:18Z phoe: It wouldn't be managed by GC, of course 2018-08-23T17:42:33Z ym joined #lisp 2018-08-23T17:42:40Z phoe: Shinmera: it would need to be something like a displaced array that just "points" to the storage there 2018-08-23T17:42:46Z pjb: emaczen: (subseq (com.informatimago.common-lisp.cesarum.file:binary-file-contents #P"/Users/pjb/Pictures/20180321--pascal-bourguignon--cropped.jpg") 0 10) #| --> #(255 216 255 224 0 16 74 70 73 70) |# 2018-08-23T17:42:56Z Shinmera: right, but such a functionality is simply not exposed by most implementations. 2018-08-23T17:43:10Z phoe: Shinmera: I see. 2018-08-23T17:43:30Z Shinmera: mostly because it's a headache and would require an entirely separate kind of structure of array. 2018-08-23T17:43:35Z jkordani_ quit (Ping timeout: 240 seconds) 2018-08-23T17:43:37Z Shinmera: You can't just re-use displaced arrays for it. 2018-08-23T17:44:12Z phoe: Yep, I see. 2018-08-23T17:44:21Z phoe: It's literally just a performance hack. 2018-08-23T17:46:20Z FreeBirdLjj joined #lisp 2018-08-23T17:46:22Z Shinmera: Plus C functions that return a chunk of memory (that isn't just static) are Bad and Not Good anyway. :) 2018-08-23T17:46:30Z phoe: (: 2018-08-23T17:47:17Z phoe: Though the best thing that could happen, I think, is an implementation compiling a LOOP over MEM-AREF to simple pointer dereference. 2018-08-23T17:47:22Z phoe: At least performance-wise. 2018-08-23T17:48:10Z phoe: We're using raw memory so all safety checks are off anyway. Segfaults can be caught and handled in the Lisp condition world. 2018-08-23T17:48:44Z Shinmera: segfaults can only be handled in the "pray not everything will burn in the next processor cycle" 2018-08-23T17:48:49Z Shinmera: way 2018-08-23T17:48:49Z phoe: ...given that we don't corrupt ourselves along the way, of course. 2018-08-23T17:48:59Z phoe: Yes. Exactly what I mean. 2018-08-23T17:50:34Z Shinmera: And sometimes memory doesn't burn, it just smoulders and things simply get weird. 2018-08-23T17:50:48Z Shinmera: Ah, fond times debugging Harmony.... 2018-08-23T17:50:53Z zooey quit (Ping timeout: 250 seconds) 2018-08-23T17:52:26Z phoe: Shinmera: I don't know what you're talking abCORRUPTION WARNING in SBCL pid 22144(tid 0x7ffff5527700): Memory fault at (nil) (pc=0x228c3f60, sp=0x7ffff5525d18) 2018-08-23T17:52:37Z igemnace quit (Quit: WeeChat 2.2) 2018-08-23T17:52:59Z Shinmera: Well I'm talking about not that happening, and instead things just going full schrödinger 2018-08-23T17:53:20Z phoe: oooh, sounds like interesting times 2018-08-23T17:54:06Z Shinmera: Writing to adjacent memory won't segfault after all. 2018-08-23T17:54:17Z ebrasca quit (Remote host closed the connection) 2018-08-23T17:54:44Z housel joined #lisp 2018-08-23T17:54:49Z fikka joined #lisp 2018-08-23T17:57:25Z zooey joined #lisp 2018-08-23T17:58:42Z phaecian quit (Ping timeout: 264 seconds) 2018-08-23T18:00:28Z Oddity quit (Ping timeout: 260 seconds) 2018-08-23T18:01:07Z phoe: that's correct 2018-08-23T18:02:56Z meepdeew quit (Remote host closed the connection) 2018-08-23T18:03:34Z troydm joined #lisp 2018-08-23T18:07:07Z Oddity joined #lisp 2018-08-23T18:07:34Z Duns_Scrotus joined #lisp 2018-08-23T18:11:18Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T18:12:34Z shka_ joined #lisp 2018-08-23T18:13:53Z milanj quit (Quit: This computer has gone to sleep) 2018-08-23T18:15:19Z fikka joined #lisp 2018-08-23T18:15:25Z gendl: Hi, with Slime/Swank, is there a named stream I can write to which is the *slime-repl ... * ? 2018-08-23T18:17:31Z phoe: gendl: *standard-output*, theoretically 2018-08-23T18:17:32Z Bike: *terminal-io* or *standard-output*? 2018-08-23T18:17:43Z phoe: the REPL as a whole is more complex than a simple mere stream 2018-08-23T18:18:14Z jackdaniel: gendl: in slime repl type (defvar *xxx* *standard-output*) 2018-08-23T18:18:19Z jackdaniel: and you may write to *xxx* 2018-08-23T18:18:25Z jackdaniel: and output will appear in slime repl 2018-08-23T18:18:38Z jackdaniel: (you may write to *xxx* from anywhere, like from inferior lisp) 2018-08-23T18:19:56Z jackdaniel: since you may have many swank connections at the same time, there is no single named "slime repl" 2018-08-23T18:19:57Z fikka quit (Ping timeout: 240 seconds) 2018-08-23T18:20:50Z gendl: jackdaniel: Thanks. Yes, i see *standard-input* and *standard-output* appears to be locally bound in each slime repl, as well as *inferior-lisp* 2018-08-23T18:21:41Z gendl: so that will work for *standard-input* as well -- but that initial defvar has to be entered somehow in the actual *slime-repl...* buffer that you want to target. 2018-08-23T18:21:47Z gendl: No way to get a list internally 2018-08-23T18:22:43Z gendl: I take it those are some kind of thread-local variables within each *slime-repl * ? 2018-08-23T18:23:54Z jackdaniel: there is *globally-redirect-io* in swank-repl but I don't know what it does and how it works exactly 2018-08-23T18:24:25Z fikka joined #lisp 2018-08-23T18:24:43Z SenasOzys joined #lisp 2018-08-23T18:25:09Z zigpaw joined #lisp 2018-08-23T18:28:28Z White_Flame: gendl: special variables are thread-local whenever they're locally bound 2018-08-23T18:28:46Z emaczen: pjb: Will you look at my question on #ccl? 2018-08-23T18:29:08Z Demosthenex: so i'm having a problem debugging in slime. it's throwing up a common error (typedef, not list) in a function, but slime isn't showing me any details of the calling point (ie: line number, etc). any hints? 2018-08-23T18:29:13Z White_Flame: so (let ((*print-pretty* nil)) (format t ...)) will disable pretty printing locally, even though *print-pretty* might still be true for all the other running threads 2018-08-23T18:29:26Z sauvin quit (Read error: Connection reset by peer) 2018-08-23T18:29:44Z jackdaniel: Demosthenex: you have frames listed 2018-08-23T18:29:48Z jackdaniel: which show backtrace 2018-08-23T18:30:02Z Demosthenex: yeah, function name, and then assoc-eq. no locals. 2018-08-23T18:30:02Z jackdaniel: if you type "v" on the frame which interests you, you'll get transferred to the source code 2018-08-23T18:30:11Z White_Flame: gendl: also, if you print to *standard-output* from new threads, the output tends to go into the emacs *inferior-lisp* buffer 2018-08-23T18:30:20Z jackdaniel: if you type tab, you'll get some details 2018-08-23T18:30:21Z Demosthenex: jackdaniel: v fails 2018-08-23T18:30:30Z SenasOzys quit (Ping timeout: 268 seconds) 2018-08-23T18:30:43Z jackdaniel: that's very descriptive 2018-08-23T18:30:56Z shka_: Demosthenex: you may need to optimize for debug in order for it work, but it should do something nonetheless 2018-08-23T18:31:06Z Demosthenex: Error: Failed to find the TRUENAME of SYS:SRC;CODE;LIST.LISP: No such file or directory. which is odd, because i have the code open in another buffer 2018-08-23T18:31:09Z shka_: it will certainly fail if file is not local 2018-08-23T18:31:20Z gendl: White_Flame: Yep I noticed that, e.g. from an AllegroServe thread. 2018-08-23T18:31:21Z jackdaniel: sorry, not tab but enter for details 2018-08-23T18:31:34Z jackdaniel: Demosthenex: you probably pressed v on first frame 2018-08-23T18:31:34Z Demosthenex: its a local file. and there are no details on enter. that's why i'm confused 2018-08-23T18:31:46Z jackdaniel: it tries to get you to the topmost level, which is in sbcl sources 2018-08-23T18:31:54Z jackdaniel: I take you don't have sbcl sources on your disk 2018-08-23T18:32:00Z shka_: Demosthenex: swank and slime are in the same version, right? 2018-08-23T18:32:05Z jackdaniel: navigate to something lower (i.e with recotnizable name) 2018-08-23T18:32:17Z jackdaniel: recognizable* 2018-08-23T18:32:29Z Demosthenex: shka_: its 2.1 vs 2.2, maybe that's my issue 2018-08-23T18:32:51Z gendl: But I can make one of the thread-local *standard-input* or *standard-output* to be global, by defvar'ing a new variable to it in the particular buffer which I want to read from, or target. Good trick. 2018-08-23T18:33:28Z gendl: well, not really making those variables global, but making new variables which are global, which point to those local ones. 2018-08-23T18:33:54Z jackdaniel: I see my advices are not really needed, then I'll get to my book and leave you in shka's hands. I told you: your problem is: a] lack of sbcl sources; b] trying to navigate wrong frame source 2018-08-23T18:34:01Z shka_: Demosthenex: unlikely, but i would rather attempt to eliminate this possiblity 2018-08-23T18:34:14Z White_Flame: gendl: when you launch a thread, there also might be options for which special variables to copy from the original thread 2018-08-23T18:34:20Z shka_: jackdaniel: the pressure! 2018-08-23T18:34:52Z White_Flame: gendl: though I don't know exactly where the IO special vars get bound on thread launch 2018-08-23T18:35:07Z jackdaniel: well, you'll certainly have fun, because you lead him to a wasteland (since nothing indicates problem with slime/swank mismatch). good night \o 2018-08-23T18:35:19Z Demosthenex: np, just looking for advice. i've read the help a few times and the bindings, and made little progress 2018-08-23T18:35:42Z White_Flame: gendl: I would assume that the SLIME REPL has its own local binding to the emacs connection, while the global *standard-output* is the plain one hitting the OS stream captured by *inferior-lisp* 2018-08-23T18:37:34Z nowhere_man joined #lisp 2018-08-23T18:37:43Z SenasOzys joined #lisp 2018-08-23T18:37:51Z shka_: Demosthenex: anyway, you are sure that you have that source file on the disk, right? 2018-08-23T18:39:45Z Demosthenex: yeah, its here. i'm looking at it and just... i'm doing a simple operating appending a few cons cells to a list :P 2018-08-23T18:39:53Z Demosthenex: and haven't put my finger on where or why the error 2018-08-23T18:40:09Z shka_: maybe you could show your source code? 2018-08-23T18:40:18Z Demosthenex: https://bpaste.net/show/f1d8a20fcc23 2018-08-23T18:40:55Z Demosthenex: https://bpaste.net/show/d8be2db5a532 2018-08-23T18:40:59Z Fare joined #lisp 2018-08-23T18:41:04Z shka_: ok 2018-08-23T18:41:11Z ebrasca joined #lisp 2018-08-23T18:41:44Z shka_: Demosthenex: that is actually quite easy to understand! 2018-08-23T18:41:50Z Demosthenex: basically i have an alist of decoded json data, and i need to add a few values to the alist before i convert it to a plist for postmodern to insert it 2018-08-23T18:42:09Z Demosthenex: and... i was using (cons (cons k v) oldlist) repeatedly, but i had several things to add 2018-08-23T18:42:13Z fikka quit (Ping timeout: 268 seconds) 2018-08-23T18:42:21Z Demosthenex: so append with a dynamically built list looked ok to me 2018-08-23T18:42:49Z random-nick quit (Read error: Connection reset by peer) 2018-08-23T18:43:01Z shka_: well, yeah 2018-08-23T18:43:45Z shka_: Demosthenex: the function is INSERT-JSON-MATCH 2018-08-23T18:43:46Z shka_: right? 2018-08-23T18:43:48Z cage_ quit (Quit: Leaving) 2018-08-23T18:43:51Z Demosthenex: and the frustrating thing is the functions over a screen page long, but slime's not showing the line. i've isolated it by cutting out code and adding log:infos.... which is barbaric. 2018-08-23T18:43:56Z Demosthenex: yep 2018-08-23T18:43:59Z shka_: ok 2018-08-23T18:44:00Z papachan joined #lisp 2018-08-23T18:44:24Z Demosthenex: slime jumping to code is also jumping into a cons definition, which... at first glance isn't a problem 2018-08-23T18:44:40Z shka_: so first of, adding optimize debug 3 declaration and recompiling should help with better stack trace 2018-08-23T18:44:57Z shka_: secondly, you should inspect not 0 stack frame but 1 2018-08-23T18:45:18Z shka_: 0 is just part of cl implementation 2018-08-23T18:46:22Z shka_: third of, you will not see this on stack trace, because assoc was clearly inline 2018-08-23T18:46:38Z shka_: but this stack trace is from ASSOC function 2018-08-23T18:46:59Z shka_: you have two calls to assoc here 2018-08-23T18:47:03Z Demosthenex: that was useful. i added the debug 3 and recompiled the function and now much more detail 2018-08-23T18:47:14Z shka_: i know, right? 2018-08-23T18:47:15Z shka_: anyway 2018-08-23T18:47:18Z shka_: check value of x 2018-08-23T18:47:18Z Demosthenex: that's why i ask her e;] 2018-08-23T18:47:58Z shka_: you can do that by pressing enter when cursor is over it in debbugr 2018-08-23T18:48:01Z shka_: text cursor 2018-08-23T18:48:37Z shka_: not mouse cursor :-) 2018-08-23T18:48:50Z Demosthenex: yeah, i have alot more data there now 2018-08-23T18:48:52Z shka_: i suspect that x is not well structured list 2018-08-23T18:48:53Z Demosthenex: i'm chewing on it ;] 2018-08-23T18:49:04Z Demosthenex: yeah, json crap 2018-08-23T18:49:05Z shka_: alist to be precise 2018-08-23T18:50:07Z shka_: so imho you should check if you have stray elements instead of (key . value) in there 2018-08-23T18:50:59Z shka_: you can do that manually, or by using eval functionality of debugger 2018-08-23T18:51:02Z flip214 joined #lisp 2018-08-23T18:51:14Z flip214 quit (Quit: leaving) 2018-08-23T18:51:16Z Demosthenex: yep, my fault, wrong list. just.... hard to dig it out until i had debug 3 2018-08-23T18:51:19Z Demosthenex: thanks! 2018-08-23T18:51:28Z shka_: you are welcome 2018-08-23T18:51:34Z Demosthenex: i mistakenly used the list of columns instead of the list of json 2018-08-23T18:51:45Z Demosthenex: but... it was opaque until i got debug 3 2018-08-23T18:51:49Z shka_: yes 2018-08-23T18:51:51Z Demosthenex: which i've added to my file permanently now ;] 2018-08-23T18:51:52Z shka_: that's how it works 2018-08-23T18:52:11Z shka_: well, that works 2018-08-23T18:52:34Z shka_: but adding declare optimized debug 3 in function definition is good as well 2018-08-23T18:52:54Z shka_: anyway, there are some useful video tutorials on slime debugger on youtube 2018-08-23T18:53:23Z shka_: slime debugger is quite good, but not that easy to use! 2018-08-23T18:53:33Z lavaflow quit (Ping timeout: 260 seconds) 2018-08-23T18:53:35Z shka_: so watching it may help if you are new 2018-08-23T18:53:49Z Demosthenex: i knew to chalk it up to my inexperience, it's just describing what i'm after is tough when you're new ;] 2018-08-23T18:55:20Z shka_: yeah 2018-08-23T18:55:26Z shka_: anyway, glad you solved it 2018-08-23T18:55:32Z Demosthenex: omg, (break) and single step mode is something i'd been looking for too 2018-08-23T18:55:42Z Demosthenex: thanks for your patience. 2018-08-23T18:55:48Z shka_: you are welcome 2018-08-23T18:56:02Z shka_: besides i could not disappoint jackdaniel 2018-08-23T18:56:08Z shka_: ;-) 2018-08-23T18:56:38Z AeroNotix: spite based help 2018-08-23T18:57:14Z shka_: Demosthenex: yes, slime debugger is fully featured and has everything you would expect nowdays 2018-08-23T18:57:44Z Demosthenex: shka_: i expect so. i've been using debuggers since... borland pascal on 8086? ;] 2018-08-23T18:57:56Z Demosthenex: just didn't understand why i had no depth. it was the debug option 2018-08-23T18:58:07Z shka_: yeah 2018-08-23T18:58:11Z shka_: good 2018-08-23T18:58:33Z shka_: AeroNotix: perhaps motivated would be a better way to phrase it :P 2018-08-23T18:59:53Z shka_: but i mostly got used to jackdaniel and simply wear fully sealed hazard suite each time i am talking with him so no worries 2018-08-23T19:00:18Z LdBeth joined #lisp 2018-08-23T19:01:04Z shka_: Demosthenex: anyway, good luck, obviously don't hesitate to ask your other questions here 2018-08-23T19:01:09Z LdBeth: GG, suddenly kicked out 2018-08-23T19:02:22Z flip214 joined #lisp 2018-08-23T19:03:55Z AeroNotix: jackdaniel: it used to be much friendler in here. Noticed a spike in flaming since I last was more active. 2018-08-23T19:05:11Z AeroNotix: meant for shka_ ^ 2018-08-23T19:05:11Z AeroNotix: off topic anyway 2018-08-23T19:05:11Z shka_: AeroNotix: hopefully is not my fault 2018-08-23T19:05:11Z shka_: i am trying to be helpful :( 2018-08-23T19:05:11Z dale_ joined #lisp 2018-08-23T19:05:11Z dale quit (Read error: Connection reset by peer) 2018-08-23T19:05:14Z lavaflow joined #lisp 2018-08-23T19:05:28Z dale_ is now known as dale 2018-08-23T19:08:10Z vlatkoB quit (Remote host closed the connection) 2018-08-23T19:08:35Z Demosthenex: either way i appreciate it ;] i'm really enjoying using CL to parse this mishmash of data... it's much more flexible than something like static coding in python would be 2018-08-23T19:08:50Z Demosthenex: now if i can get a few million league matches loaded in my db, i'll be really excited 2018-08-23T19:09:56Z kajo joined #lisp 2018-08-23T19:10:22Z shka_: Demosthenex: shouldn't be a problem 2018-08-23T19:10:31Z dim: what's the source format Demosthenex? 2018-08-23T19:10:34Z shka_: postmodern is pretty good 2018-08-23T19:10:38Z Demosthenex: dim: a restful json api from riot 2018-08-23T19:10:39Z dim: also to write to PostgreSQL, use the COPY support 2018-08-23T19:10:53Z shka_: dim: good point 2018-08-23T19:11:04Z dim: in Postmodern, that's well supported 2018-08-23T19:11:09Z shka_: yes 2018-08-23T19:11:10Z Demosthenex: meh, i have to make a call at a time to get the data, there's no bulk loading here with the rate limiter 2018-08-23T19:11:12Z dim: see the copier api 2018-08-23T19:11:42Z Demosthenex: so i did enjoy prototyping the DB using the json support in postgres, which worked great in postmodern 2018-08-23T19:12:06Z sabrac: ping me if you need any help with postmodern 2018-08-23T19:12:24Z Demosthenex: no, it's been sweet to use. 2018-08-23T19:12:31Z Demosthenex: well documented, and i love that huge page of examples 2018-08-23T19:12:45Z Demosthenex: though it had nothing on transactions, but that was documented in the postmodern code base 2018-08-23T19:13:01Z rozenglass quit (Remote host closed the connection) 2018-08-23T19:13:15Z Demosthenex: so i had GIN indexes on json data, and views into deep structures in this multilevel data... and it was ok for a few thousand records 2018-08-23T19:13:35Z Demosthenex: but i noticed that integer operations were really slow, so i think if i'm not indexing a field it has to parse integers from string in the json data every time. 2018-08-23T19:14:03Z Demosthenex: so summing or sorting on an embedded field was hugely slow compared to a native integer column 2018-08-23T19:14:38Z sabrac: working on transactions documentation. Also adding isolation level support, but probably not interesting to you 2018-08-23T19:14:41Z Demosthenex: so now i'm making traditional tables and inserts using postmodern s-sql. 2018-08-23T19:15:05Z aindilis quit (Ping timeout: 240 seconds) 2018-08-23T19:15:09Z Demosthenex: yeah my transaction is simply wrapping all the parts for a single data object across tables. if one fails all should fail. it's read only data for reporting 2018-08-23T19:15:34Z sabrac: At some point I want to add more support for json, but it is complicated because there are so many different cl libraries for json 2018-08-23T19:15:34Z shka_: sabrac: oh, so you are maintaining postmodern now days? 2018-08-23T19:15:41Z sabrac: yes 2018-08-23T19:15:53Z shka_: sabrac: awesome, i am using postmodern every day! 2018-08-23T19:16:07Z shka_: thanks for doing this! 2018-08-23T19:16:49Z Demosthenex: very nice 2018-08-23T19:16:58Z sabrac: shka: just sent you a pm 2018-08-23T19:17:12Z shka_: sabrac: got it 2018-08-23T19:20:39Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-23T19:21:50Z charh quit (Remote host closed the connection) 2018-08-23T19:24:53Z FreeBirdLjj joined #lisp 2018-08-23T19:26:43Z fikka joined #lisp 2018-08-23T19:29:40Z Posterdati joined #lisp 2018-08-23T19:29:58Z FreeBirdLjj quit (Ping timeout: 265 seconds) 2018-08-23T19:30:08Z zooey quit (Remote host closed the connection) 2018-08-23T19:30:32Z zooey joined #lisp 2018-08-23T19:31:40Z fikka quit (Ping timeout: 252 seconds) 2018-08-23T19:33:44Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-23T19:35:27Z random-nick joined #lisp 2018-08-23T19:37:09Z Demosthenex: ugh, i think my only complain atm is how sluggish emacs gets when long lines of json print into the comint buffer 2018-08-23T19:38:07Z fikka joined #lisp 2018-08-23T19:38:24Z shka_: eh, sadly, that's just emacs things 2018-08-23T19:41:51Z X-Scale joined #lisp 2018-08-23T19:43:10Z aeth: Accidentally print a line a million times? Oops, but emacs is okay. Accidentally print something ending in a space instead of a newline? Time to kill the SLIME REPL buffer. 2018-08-23T19:44:05Z fikka quit (Ping timeout: 268 seconds) 2018-08-23T19:45:59Z otwieracz: Well, I've already have a habit of clearing REPL buffer every ten seconds 2018-08-23T19:46:24Z otwieracz: Because emacs with any autocompletion is totally uncapable of any reasonibly-sized buffers. 2018-08-23T19:46:40Z Shinmera: Same :/ 2018-08-23T19:48:26Z otwieracz: Like, I feel nervous when REPL propmpt is below 1/2 of a screen 2018-08-23T19:50:18Z nowhere_man quit (Ping timeout: 264 seconds) 2018-08-23T19:50:50Z pierpal quit (Quit: Poof) 2018-08-23T19:51:08Z pierpal joined #lisp 2018-08-23T19:55:29Z rumbler31 joined #lisp 2018-08-23T19:57:06Z shka_: heh 2018-08-23T19:57:10Z shka_: it is not THAT bad 2018-08-23T19:57:53Z otwieracz: Really, I can't number all the times when emacs must have scanned my whole hard drive looking for this non-existant closing paren 2018-08-23T19:58:11Z fikka joined #lisp 2018-08-23T19:58:14Z otwieracz: It felt like it reached end of buffer and kept looking 2018-08-23T19:58:25Z aeth: I run paredit on my REPL buffer. 2018-08-23T19:58:38Z aeth: Sometimes it doesn't parse printed output correctly, though 2018-08-23T19:59:38Z rumbler31 quit (Remote host closed the connection) 2018-08-23T20:03:19Z fikka quit (Ping timeout: 265 seconds) 2018-08-23T20:07:37Z eminhi quit (Quit: leaving) 2018-08-23T20:09:17Z phaecian joined #lisp 2018-08-23T20:09:30Z random-nick quit (Ping timeout: 264 seconds) 2018-08-23T20:12:13Z Denommus quit (Remote host closed the connection) 2018-08-23T20:12:25Z dented42 joined #lisp 2018-08-23T20:13:40Z Bike_ joined #lisp 2018-08-23T20:14:59Z random-nick joined #lisp 2018-08-23T20:16:30Z Bike quit (Ping timeout: 252 seconds) 2018-08-23T20:18:05Z sjl__ quit (Ping timeout: 240 seconds) 2018-08-23T20:20:02Z Denommus joined #lisp 2018-08-23T20:20:04Z angavrilov quit (Remote host closed the connection) 2018-08-23T20:27:03Z pierpal quit (Quit: Poof) 2018-08-23T20:27:19Z pierpal joined #lisp 2018-08-23T20:28:43Z makomo quit (Quit: WeeChat 2.2) 2018-08-23T20:32:54Z shka_ quit (Ping timeout: 252 seconds) 2018-08-23T20:35:17Z sjl__ joined #lisp 2018-08-23T20:39:17Z Copenhagen_Bram quit (Ping timeout: 276 seconds) 2018-08-23T20:40:48Z fikka joined #lisp 2018-08-23T20:51:47Z dmiles quit (Read error: Connection reset by peer) 2018-08-23T20:53:40Z Copenhagen_Bram joined #lisp 2018-08-23T20:53:57Z atgreen quit (Ping timeout: 240 seconds) 2018-08-23T20:55:31Z borodust quit (Quit: Leavin') 2018-08-23T20:56:26Z dmiles joined #lisp 2018-08-23T20:59:28Z pierpa joined #lisp 2018-08-23T21:00:30Z Copenhagen_Bram quit (Ping timeout: 264 seconds) 2018-08-23T21:03:19Z Copenhagen_Bram joined #lisp 2018-08-23T21:07:05Z azimut_ quit (Ping timeout: 240 seconds) 2018-08-23T21:11:19Z Arcaelyx_ quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-23T21:14:57Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-23T21:15:50Z azimut joined #lisp 2018-08-23T21:15:57Z pjb: emaczen: done. 2018-08-23T21:16:37Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-23T21:17:41Z phaecian quit (Ping timeout: 255 seconds) 2018-08-23T21:17:58Z meepdeew joined #lisp 2018-08-23T21:24:09Z Bike_ quit (Ping timeout: 252 seconds) 2018-08-23T21:25:50Z Mon_Ouie quit (Ping timeout: 268 seconds) 2018-08-23T21:28:56Z azimut quit (Ping timeout: 255 seconds) 2018-08-23T21:29:12Z Firedancer quit (Quit: ZNC - 1.6.0 - http://znc.in) 2018-08-23T21:29:13Z light2yellow quit (Quit: light2yellow) 2018-08-23T21:29:26Z azimut joined #lisp 2018-08-23T21:30:33Z borodust joined #lisp 2018-08-23T21:37:41Z earl-ducaine quit (Read error: Connection reset by peer) 2018-08-23T21:39:09Z Mon_Ouie joined #lisp 2018-08-23T21:40:09Z Jesin quit (Quit: Leaving) 2018-08-23T21:50:45Z Jesin joined #lisp 2018-08-23T21:56:20Z dim: sabrac: thanks for maintaining Postmodern! 2018-08-23T21:56:57Z dim: Demosthenex: have a read of https://tapoueh.org/blog/2017/09/on-json-and-sql/ to see how to normalize JSON data in SQL directly 2018-08-23T21:57:16Z dim: Demosthenex: also it might be that you're using JSON instead of JSONB in PostgreSQL? 2018-08-23T21:59:04Z Bike joined #lisp 2018-08-23T22:00:55Z bendersteed quit (Remote host closed the connection) 2018-08-23T22:02:32Z AroPar joined #lisp 2018-08-23T22:03:03Z SenasOzys quit (Ping timeout: 252 seconds) 2018-08-23T22:04:02Z pierpal quit (Ping timeout: 255 seconds) 2018-08-23T22:06:46Z lnostdal quit (Read error: Connection reset by peer) 2018-08-23T22:10:08Z Denommus quit (Remote host closed the connection) 2018-08-23T22:18:35Z wheelsucker quit (Quit: Client Quit) 2018-08-23T22:23:47Z AroPar quit (Quit: Leaving) 2018-08-23T22:27:05Z mishoo quit (Ping timeout: 240 seconds) 2018-08-23T22:28:42Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T22:28:46Z makomo joined #lisp 2018-08-23T22:29:53Z random-nick quit (Read error: Connection reset by peer) 2018-08-23T22:33:02Z DGASAU quit (Read error: Connection reset by peer) 2018-08-23T22:33:45Z fikka joined #lisp 2018-08-23T22:33:51Z Fare quit (Ping timeout: 252 seconds) 2018-08-23T22:35:04Z DGASAU joined #lisp 2018-08-23T22:38:18Z fikka quit (Ping timeout: 264 seconds) 2018-08-23T22:39:41Z sjl_ is now known as sjl 2018-08-23T22:43:58Z sjl__ quit (Ping timeout: 260 seconds) 2018-08-23T22:44:46Z lavaflow quit (Ping timeout: 268 seconds) 2018-08-23T22:46:03Z DGASAU quit (Read error: Connection reset by peer) 2018-08-23T22:46:55Z DGASAU joined #lisp 2018-08-23T22:54:52Z Demosthenex: dim: no, jsonb 2018-08-23T22:54:53Z mange joined #lisp 2018-08-23T22:55:22Z Demosthenex: dim: and i saw that. i even considered using a virtual copy from my views into tables, but i thought i'd do it in lisp first instead of leaning on the DB 2018-08-23T22:56:18Z atgreen joined #lisp 2018-08-23T22:56:18Z Demosthenex: was there a flag somewhere to make postmodern print each query it executes? 2018-08-23T22:58:20Z Fare joined #lisp 2018-08-23T22:59:14Z Demosthenex: dim: in the case of numbers, i still had to type cast text to int for comparison constantly, and that was slow. 2018-08-23T23:03:40Z robotoad quit (Quit: robotoad) 2018-08-23T23:04:12Z SenasOzys joined #lisp 2018-08-23T23:08:27Z MetaYan joined #lisp 2018-08-23T23:09:24Z Fare quit (Ping timeout: 265 seconds) 2018-08-23T23:11:18Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-23T23:13:23Z quazimodo joined #lisp 2018-08-23T23:20:20Z robotoad joined #lisp 2018-08-23T23:32:23Z asarch quit (Quit: Leaving) 2018-08-23T23:33:35Z lavaflow joined #lisp 2018-08-23T23:36:28Z m00natic quit (Ping timeout: 256 seconds) 2018-08-23T23:40:30Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 25.3.2)) 2018-08-23T23:43:45Z Fare joined #lisp 2018-08-23T23:44:49Z Kundry_Wag joined #lisp 2018-08-23T23:44:50Z sabrac: Demosthenex: No flag in postmodern to force printing of each query. 2018-08-23T23:44:55Z aindilis joined #lisp 2018-08-23T23:49:26Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-23T23:54:56Z fikka joined #lisp 2018-08-23T23:59:54Z fikka quit (Ping timeout: 264 seconds) 2018-08-24T00:07:48Z meepdeew quit (Remote host closed the connection) 2018-08-24T00:10:21Z pierpal joined #lisp 2018-08-24T00:11:33Z AeroNotix: Is there anything in commonqt like the C++/python tools that will convert the .ui files into proper clos classes? 2018-08-24T00:11:46Z AeroNotix: adding widgets to a form is not the way I want to do it 2018-08-24T00:12:35Z AeroNotix: i.e. the uic tool 2018-08-24T00:13:56Z AeroNotix: seems like: https://en.wikipedia.org/wiki/List_of_language_bindings_for_Qt_4 the answer is no 2018-08-24T00:14:46Z AeroNotix: haha omg, seems like I made a vague attempt at this years ago though: https://github.com/AeroNotix/cluic 2018-08-24T00:14:58Z pierpal quit (Ping timeout: 260 seconds) 2018-08-24T00:15:23Z pierpal joined #lisp 2018-08-24T00:19:03Z Fare quit (Ping timeout: 260 seconds) 2018-08-24T00:25:20Z Kaisyu7 joined #lisp 2018-08-24T00:29:03Z dale quit (Quit: dale) 2018-08-24T00:32:00Z fikka joined #lisp 2018-08-24T00:32:19Z lnostdal joined #lisp 2018-08-24T00:37:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-24T00:43:30Z Fare joined #lisp 2018-08-24T00:43:54Z White_Flame quit (Quit: No Ping reply in 180 seconds.) 2018-08-24T00:45:18Z White_Flame joined #lisp 2018-08-24T00:51:03Z Kaisyu joined #lisp 2018-08-24T01:06:27Z mange quit (Ping timeout: 240 seconds) 2018-08-24T01:07:09Z housel quit (*.net *.split) 2018-08-24T01:07:09Z pjb quit (*.net *.split) 2018-08-24T01:07:09Z lumm quit (*.net *.split) 2018-08-24T01:07:09Z cgay quit (*.net *.split) 2018-08-24T01:07:15Z ebrasca quit (*.net *.split) 2018-08-24T01:07:15Z jkordani quit (*.net *.split) 2018-08-24T01:07:15Z zfree quit (*.net *.split) 2018-08-24T01:07:45Z housel joined #lisp 2018-08-24T01:07:45Z pjb joined #lisp 2018-08-24T01:07:45Z cgay joined #lisp 2018-08-24T01:08:13Z ebrasca joined #lisp 2018-08-24T01:08:13Z jkordani joined #lisp 2018-08-24T01:08:13Z zfree joined #lisp 2018-08-24T01:09:29Z Kundry_Wag joined #lisp 2018-08-24T01:12:57Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-24T01:14:28Z Kundry_Wag quit (Ping timeout: 260 seconds) 2018-08-24T01:15:12Z quazimodo joined #lisp 2018-08-24T01:26:00Z Pixel_Outlaw joined #lisp 2018-08-24T01:26:00Z Pixel_Outlaw quit (Client Quit) 2018-08-24T01:28:40Z Josh_2 quit (Ping timeout: 256 seconds) 2018-08-24T01:36:20Z makomo quit (Ping timeout: 276 seconds) 2018-08-24T01:38:06Z markoong quit (Read error: Connection reset by peer) 2018-08-24T01:40:34Z deba5e12 joined #lisp 2018-08-24T01:40:46Z buffergn0me joined #lisp 2018-08-24T01:41:39Z pierpa quit (Quit: Page closed) 2018-08-24T01:42:52Z earl-ducaine joined #lisp 2018-08-24T01:46:42Z DataLinkDroid quit (*.net *.split) 2018-08-24T01:46:43Z kjeldahl quit (*.net *.split) 2018-08-24T01:46:48Z Aritheanie quit (*.net *.split) 2018-08-24T01:46:49Z phenoble quit (*.net *.split) 2018-08-24T01:46:49Z luis` quit (*.net *.split) 2018-08-24T01:46:55Z mrcom quit (*.net *.split) 2018-08-24T01:46:55Z copec quit (*.net *.split) 2018-08-24T01:47:30Z Aritheanie joined #lisp 2018-08-24T01:48:04Z slyrus1 joined #lisp 2018-08-24T01:48:50Z phenoble joined #lisp 2018-08-24T01:48:57Z borodust quit (Ping timeout: 240 seconds) 2018-08-24T01:48:57Z luis joined #lisp 2018-08-24T01:49:23Z copec joined #lisp 2018-08-24T01:50:53Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-24T01:51:17Z asarch joined #lisp 2018-08-24T01:54:03Z robotoad quit (Quit: robotoad) 2018-08-24T01:55:55Z dura joined #lisp 2018-08-24T01:57:42Z DataLinkDroid joined #lisp 2018-08-24T01:58:04Z anewuser joined #lisp 2018-08-24T01:58:53Z shifty joined #lisp 2018-08-24T02:01:03Z Lord_Nightmare quit (Quit: ZNC - http://znc.in) 2018-08-24T02:02:35Z Lord_Nightmare joined #lisp 2018-08-24T02:08:06Z robotoad joined #lisp 2018-08-24T02:12:18Z red-dot joined #lisp 2018-08-24T02:12:26Z dura quit (Ping timeout: 252 seconds) 2018-08-24T02:19:48Z fikka joined #lisp 2018-08-24T02:20:57Z papachan quit (Ping timeout: 240 seconds) 2018-08-24T02:24:43Z fikka quit (Ping timeout: 268 seconds) 2018-08-24T02:28:44Z MetaYan quit (*.net *.split) 2018-08-24T02:28:44Z earl-ducaine quit (*.net *.split) 2018-08-24T02:28:44Z Mon_Ouie quit (*.net *.split) 2018-08-24T02:28:44Z emaczen quit (*.net *.split) 2018-08-24T02:28:45Z _whitelogger quit (*.net *.split) 2018-08-24T02:28:45Z TMA quit (*.net *.split) 2018-08-24T02:28:45Z mathrick quit (*.net *.split) 2018-08-24T02:28:45Z zotan quit (*.net *.split) 2018-08-24T02:28:45Z stacksmith quit (*.net *.split) 2018-08-24T02:28:45Z warweasle quit (*.net *.split) 2018-08-24T02:28:46Z antoszka quit (*.net *.split) 2018-08-24T02:28:47Z dlowe quit (*.net *.split) 2018-08-24T02:28:47Z sabrac quit (*.net *.split) 2018-08-24T02:28:47Z ravndal quit (*.net *.split) 2018-08-24T02:28:47Z thinkpad quit (*.net *.split) 2018-08-24T02:28:47Z kirkwood quit (*.net *.split) 2018-08-24T02:28:47Z lagagain quit (*.net *.split) 2018-08-24T02:28:48Z abbe quit (*.net *.split) 2018-08-24T02:28:48Z Nikotiini quit (*.net *.split) 2018-08-24T02:28:48Z micro quit (*.net *.split) 2018-08-24T02:30:06Z earl-ducaine joined #lisp 2018-08-24T02:30:06Z MetaYan joined #lisp 2018-08-24T02:30:06Z Mon_Ouie joined #lisp 2018-08-24T02:30:06Z emaczen joined #lisp 2018-08-24T02:30:06Z _whitelogger joined #lisp 2018-08-24T02:30:06Z TMA joined #lisp 2018-08-24T02:30:06Z mathrick joined #lisp 2018-08-24T02:30:06Z zotan joined #lisp 2018-08-24T02:30:06Z dlowe joined #lisp 2018-08-24T02:30:06Z stacksmith joined #lisp 2018-08-24T02:30:06Z warweasle joined #lisp 2018-08-24T02:30:06Z antoszka joined #lisp 2018-08-24T02:30:06Z kirkwood joined #lisp 2018-08-24T02:30:06Z sabrac joined #lisp 2018-08-24T02:30:06Z ravndal joined #lisp 2018-08-24T02:30:06Z thinkpad joined #lisp 2018-08-24T02:30:06Z lagagain joined #lisp 2018-08-24T02:30:06Z abbe joined #lisp 2018-08-24T02:30:06Z micro joined #lisp 2018-08-24T02:30:06Z Nikotiini joined #lisp 2018-08-24T02:31:01Z _whitelogger quit (Write error: Connection reset by peer) 2018-08-24T02:31:34Z pierpal quit (Quit: Poof) 2018-08-24T02:31:52Z pierpal joined #lisp 2018-08-24T02:31:56Z froggey quit (*.net *.split) 2018-08-24T02:31:57Z jurov quit (*.net *.split) 2018-08-24T02:31:57Z mrSpec quit (*.net *.split) 2018-08-24T02:31:57Z AeroNotix quit (*.net *.split) 2018-08-24T02:31:57Z jackdaniel quit (*.net *.split) 2018-08-24T02:31:57Z jgkamat quit (*.net *.split) 2018-08-24T02:31:57Z svillemot quit (*.net *.split) 2018-08-24T02:31:58Z Tordek quit (*.net *.split) 2018-08-24T02:31:58Z klltkr_ quit (*.net *.split) 2018-08-24T02:31:58Z snits quit (*.net *.split) 2018-08-24T02:31:58Z kingcons quit (*.net *.split) 2018-08-24T02:31:58Z Xach quit (*.net *.split) 2018-08-24T02:31:58Z Mandus quit (*.net *.split) 2018-08-24T02:31:59Z drot quit (*.net *.split) 2018-08-24T02:31:59Z hjudt quit (*.net *.split) 2018-08-24T02:31:59Z mulk quit (*.net *.split) 2018-08-24T02:31:59Z isoraqathedh quit (*.net *.split) 2018-08-24T02:31:59Z Patternmaster quit (*.net *.split) 2018-08-24T02:31:59Z ja-barr quit (*.net *.split) 2018-08-24T02:31:59Z stux|RC quit (*.net *.split) 2018-08-24T02:31:59Z renard_ quit (*.net *.split) 2018-08-24T02:32:01Z ebzzry quit (*.net *.split) 2018-08-24T02:32:01Z koenig quit (*.net *.split) 2018-08-24T02:32:01Z cyberlard quit (*.net *.split) 2018-08-24T02:32:02Z Patzy quit (*.net *.split) 2018-08-24T02:32:02Z Demosthenex quit (*.net *.split) 2018-08-24T02:32:02Z aijony quit (*.net *.split) 2018-08-24T02:32:02Z sukaeto quit (*.net *.split) 2018-08-24T02:32:03Z joga quit (*.net *.split) 2018-08-24T02:32:03Z sigjuice quit (*.net *.split) 2018-08-24T02:32:03Z shenghi quit (*.net *.split) 2018-08-24T02:32:03Z Colleen quit (*.net *.split) 2018-08-24T02:32:03Z malm quit (*.net *.split) 2018-08-24T02:32:03Z scymtym quit (*.net *.split) 2018-08-24T02:32:03Z kozy quit (*.net *.split) 2018-08-24T02:32:03Z mason quit (*.net *.split) 2018-08-24T02:32:03Z jasmith quit (*.net *.split) 2018-08-24T02:32:04Z remix2000 quit (*.net *.split) 2018-08-24T02:32:04Z nopf quit (*.net *.split) 2018-08-24T02:32:04Z spal quit (*.net *.split) 2018-08-24T02:32:04Z pyc quit (*.net *.split) 2018-08-24T02:32:04Z azrazalea quit (*.net *.split) 2018-08-24T02:32:04Z PuercoPop quit (*.net *.split) 2018-08-24T02:32:04Z fouric quit (*.net *.split) 2018-08-24T02:32:05Z sword` quit (*.net *.split) 2018-08-24T02:32:05Z omilu quit (*.net *.split) 2018-08-24T02:34:40Z shachaf quit (Quit: Reconnecting) 2018-08-24T02:35:12Z t3hyoshi quit (Quit: ZNC 1.6.6+deb1ubuntu0.1 - http://znc.in) 2018-08-24T02:36:33Z malm joined #lisp 2018-08-24T02:37:15Z Copenhagen_Bram quit (Remote host closed the connection) 2018-08-24T02:37:43Z spal joined #lisp 2018-08-24T02:44:29Z stux|RC joined #lisp 2018-08-24T02:47:05Z AeroNotix joined #lisp 2018-08-24T02:49:19Z jgkamat joined #lisp 2018-08-24T02:49:38Z dented42 joined #lisp 2018-08-24T02:52:09Z hjudt joined #lisp 2018-08-24T02:53:09Z ja-barr joined #lisp 2018-08-24T02:56:36Z dale joined #lisp 2018-08-24T03:01:57Z torbo joined #lisp 2018-08-24T03:05:12Z dddddd quit (Remote host closed the connection) 2018-08-24T03:05:50Z Kaisyu quit (*.net *.split) 2018-08-24T03:05:50Z lnostdal quit (*.net *.split) 2018-08-24T03:05:50Z lavaflow quit (*.net *.split) 2018-08-24T03:05:50Z steiner quit (*.net *.split) 2018-08-24T03:05:50Z justinmcp quit (*.net *.split) 2018-08-24T03:05:51Z runejuhl quit (*.net *.split) 2018-08-24T03:05:51Z brandonz quit (*.net *.split) 2018-08-24T03:05:51Z lonjil2 quit (*.net *.split) 2018-08-24T03:05:51Z XachX quit (*.net *.split) 2018-08-24T03:05:51Z tfb quit (*.net *.split) 2018-08-24T03:05:51Z galdor quit (*.net *.split) 2018-08-24T03:05:51Z shelvick quit (*.net *.split) 2018-08-24T03:05:52Z aeth quit (*.net *.split) 2018-08-24T03:05:52Z slyrus quit (*.net *.split) 2018-08-24T03:05:52Z thawes quit (*.net *.split) 2018-08-24T03:05:53Z Khisanth quit (*.net *.split) 2018-08-24T03:05:53Z CrazyEddy quit (*.net *.split) 2018-08-24T03:05:53Z cpape quit (*.net *.split) 2018-08-24T03:05:53Z mkolenda quit (*.net *.split) 2018-08-24T03:05:53Z beach quit (*.net *.split) 2018-08-24T03:05:53Z megalography quit (*.net *.split) 2018-08-24T03:05:54Z detergnet quit (*.net *.split) 2018-08-24T03:05:54Z fe[nl]ix quit (*.net *.split) 2018-08-24T03:05:54Z argoneus quit (*.net *.split) 2018-08-24T03:05:54Z rvirding quit (*.net *.split) 2018-08-24T03:05:54Z PyroLagus quit (*.net *.split) 2018-08-24T03:05:55Z SlashLife quit (*.net *.split) 2018-08-24T03:05:55Z slyrus1 is now known as slyrus 2018-08-24T03:05:56Z cyberlard joined #lisp 2018-08-24T03:05:58Z phenoble quit (*.net *.split) 2018-08-24T03:05:58Z Aritheanie quit (*.net *.split) 2018-08-24T03:05:58Z buffergn0me quit (*.net *.split) 2018-08-24T03:05:58Z Fare quit (*.net *.split) 2018-08-24T03:05:58Z DGASAU quit (*.net *.split) 2018-08-24T03:05:58Z Jesin quit (*.net *.split) 2018-08-24T03:05:59Z kajo quit (*.net *.split) 2018-08-24T03:05:59Z zigpaw quit (*.net *.split) 2018-08-24T03:05:59Z eschatologist quit (*.net *.split) 2018-08-24T03:06:00Z arbv quit (*.net *.split) 2018-08-24T03:06:00Z dvdmuckle quit (*.net *.split) 2018-08-24T03:06:00Z ircbrowse quit (*.net *.split) 2018-08-24T03:06:00Z uint quit (*.net *.split) 2018-08-24T03:06:01Z foom2 quit (*.net *.split) 2018-08-24T03:06:01Z meowray quit (*.net *.split) 2018-08-24T03:06:01Z jasom quit (*.net *.split) 2018-08-24T03:06:01Z |3b| quit (*.net *.split) 2018-08-24T03:06:01Z n3t quit (*.net *.split) 2018-08-24T03:06:01Z trn quit (*.net *.split) 2018-08-24T03:06:02Z creat quit (*.net *.split) 2018-08-24T03:06:02Z Jachy quit (*.net *.split) 2018-08-24T03:06:34Z slyrus is now known as 07IAAAFS9 2018-08-24T03:06:40Z Kaisyu joined #lisp 2018-08-24T03:06:40Z lnostdal joined #lisp 2018-08-24T03:06:40Z lavaflow joined #lisp 2018-08-24T03:06:40Z steiner joined #lisp 2018-08-24T03:06:40Z thawes joined #lisp 2018-08-24T03:06:40Z justinmcp joined #lisp 2018-08-24T03:06:40Z runejuhl joined #lisp 2018-08-24T03:06:40Z tfb joined #lisp 2018-08-24T03:06:40Z galdor joined #lisp 2018-08-24T03:06:40Z brandonz joined #lisp 2018-08-24T03:06:40Z lonjil2 joined #lisp 2018-08-24T03:06:40Z XachX joined #lisp 2018-08-24T03:06:40Z shelvick joined #lisp 2018-08-24T03:06:40Z aeth joined #lisp 2018-08-24T03:06:40Z slyrus joined #lisp 2018-08-24T03:06:40Z Khisanth joined #lisp 2018-08-24T03:06:40Z CrazyEddy joined #lisp 2018-08-24T03:06:40Z cpape joined #lisp 2018-08-24T03:06:40Z mkolenda joined #lisp 2018-08-24T03:06:40Z beach joined #lisp 2018-08-24T03:06:40Z megalography joined #lisp 2018-08-24T03:06:40Z detergnet joined #lisp 2018-08-24T03:06:40Z fe[nl]ix joined #lisp 2018-08-24T03:06:40Z argoneus joined #lisp 2018-08-24T03:06:40Z rvirding joined #lisp 2018-08-24T03:06:40Z PyroLagus joined #lisp 2018-08-24T03:06:40Z SlashLife joined #lisp 2018-08-24T03:06:40Z cherryh.freenode.net has set mode +o fe[nl]ix 2018-08-24T03:08:02Z phenoble joined #lisp 2018-08-24T03:08:02Z Aritheanie joined #lisp 2018-08-24T03:08:02Z buffergn0me joined #lisp 2018-08-24T03:08:02Z Fare joined #lisp 2018-08-24T03:08:02Z DGASAU joined #lisp 2018-08-24T03:08:02Z Jesin joined #lisp 2018-08-24T03:08:02Z kajo joined #lisp 2018-08-24T03:08:02Z zigpaw joined #lisp 2018-08-24T03:08:02Z Jachy joined #lisp 2018-08-24T03:08:02Z eschatologist joined #lisp 2018-08-24T03:08:02Z arbv joined #lisp 2018-08-24T03:08:02Z dvdmuckle joined #lisp 2018-08-24T03:08:02Z ircbrowse joined #lisp 2018-08-24T03:08:02Z uint joined #lisp 2018-08-24T03:08:02Z n3t joined #lisp 2018-08-24T03:08:02Z foom2 joined #lisp 2018-08-24T03:08:02Z meowray joined #lisp 2018-08-24T03:08:02Z jasom joined #lisp 2018-08-24T03:08:02Z |3b| joined #lisp 2018-08-24T03:08:02Z trn joined #lisp 2018-08-24T03:08:02Z creat joined #lisp 2018-08-24T03:10:50Z 07IAAAFS9 quit (Quit: 07IAAAFS9) 2018-08-24T03:11:11Z slyrus1 joined #lisp 2018-08-24T03:16:00Z fikka joined #lisp 2018-08-24T03:16:23Z Copenhagen_Bram joined #lisp 2018-08-24T03:20:40Z fikka quit (Ping timeout: 244 seconds) 2018-08-24T03:20:43Z DGASAU quit (Read error: Connection reset by peer) 2018-08-24T03:27:37Z DGASAU joined #lisp 2018-08-24T03:29:44Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-24T03:32:03Z mrcom joined #lisp 2018-08-24T03:35:03Z ahungry joined #lisp 2018-08-24T03:35:21Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-24T03:38:10Z ahungry quit (Client Quit) 2018-08-24T03:38:17Z _whitelogger joined #lisp 2018-08-24T03:38:51Z ahungry joined #lisp 2018-08-24T03:41:22Z charh joined #lisp 2018-08-24T03:45:38Z Kundry_Wag joined #lisp 2018-08-24T03:46:05Z jack_rabbit joined #lisp 2018-08-24T03:48:04Z Bike quit (Quit: Lost terminal) 2018-08-24T03:50:26Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-24T03:52:18Z beach: Good morning everyone! 2018-08-24T04:03:08Z ahungry: mornin 2018-08-24T04:13:27Z sabrac: morning beach 2018-08-24T04:15:04Z no-defun-allowed: afternoon beach 2018-08-24T04:18:09Z housel quit (Ping timeout: 252 seconds) 2018-08-24T04:21:11Z fikka joined #lisp 2018-08-24T04:25:03Z housel joined #lisp 2018-08-24T04:25:51Z fikka quit (Ping timeout: 252 seconds) 2018-08-24T04:30:02Z _whitelogger quit (Remote host closed the connection) 2018-08-24T04:31:37Z fikka joined #lisp 2018-08-24T04:32:16Z _whitelogger joined #lisp 2018-08-24T04:36:10Z fikka quit (Ping timeout: 252 seconds) 2018-08-24T04:36:29Z jackdaniel joined #lisp 2018-08-24T04:39:50Z asarch quit (Quit: Leaving) 2018-08-24T04:41:29Z fikka joined #lisp 2018-08-24T04:45:26Z Kundry_Wag joined #lisp 2018-08-24T04:46:44Z fikka quit (Ping timeout: 272 seconds) 2018-08-24T04:50:03Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-24T04:55:06Z buffergn0me quit (Ping timeout: 264 seconds) 2018-08-24T04:55:06Z Fare quit (Ping timeout: 264 seconds) 2018-08-24T05:01:51Z fikka joined #lisp 2018-08-24T05:07:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-24T05:09:47Z anewuser quit (Quit: anewuser) 2018-08-24T05:11:56Z vlatkoB joined #lisp 2018-08-24T05:12:14Z fikka joined #lisp 2018-08-24T05:17:46Z fikka quit (Ping timeout: 272 seconds) 2018-08-24T05:21:53Z sauvin joined #lisp 2018-08-24T05:22:28Z fikka joined #lisp 2018-08-24T05:27:08Z fikka quit (Ping timeout: 252 seconds) 2018-08-24T05:28:02Z red-dot quit (Quit: Going offline, see ya! (www.adiirc.com)) 2018-08-24T05:29:08Z Fare joined #lisp 2018-08-24T05:32:59Z fikka joined #lisp 2018-08-24T05:38:02Z fikka quit (Ping timeout: 272 seconds) 2018-08-24T05:38:46Z sjl_ joined #lisp 2018-08-24T05:42:57Z orivej quit (Ping timeout: 240 seconds) 2018-08-24T05:42:58Z ebrasca quit (Read error: Connection reset by peer) 2018-08-24T05:51:03Z _whitelogger quit (Remote host closed the connection) 2018-08-24T05:52:58Z fikka joined #lisp 2018-08-24T05:53:12Z smokeink joined #lisp 2018-08-24T05:53:16Z _whitelogger joined #lisp 2018-08-24T05:53:53Z stardiviner joined #lisp 2018-08-24T05:57:14Z stnutt quit (Ping timeout: 260 seconds) 2018-08-24T05:57:50Z smokeink: https://github.com/fukamachi/myway/blob/master/src/util.lisp what's the advantage of using collectors instead of ordinary lists? In this lib the use of collectors makes it very complicated to remove routes. One can just add url routes... ad infinitum until the collector fills the whole memory with junk ; or will the junk collector collect unused stuff automatically ? (I don't think so, because it can't know which routes you don't want any more ) 2018-08-24T05:58:05Z fikka quit (Ping timeout: 268 seconds) 2018-08-24T05:59:00Z stnutt joined #lisp 2018-08-24T05:59:47Z Colleen joined #lisp 2018-08-24T06:00:39Z lagagain quit (Quit: Connection closed for inactivity) 2018-08-24T06:01:34Z Shinmera: AeroNotix: When I was more active doing Qtools stuff I thought about doing that, but then I remembered that I hated UI designers with a raging passion so I dropped it. 2018-08-24T06:02:39Z smokeink: question for the web experts: https://github.com/fukamachi/myway/blob/master/src/mapper.lisp if there is an "add-route" function, shouldn't there also be a "del-route" counterpart? 2018-08-24T06:03:23Z Inline quit (Quit: Leaving) 2018-08-24T06:03:28Z Shinmera: One would think so. 2018-08-24T06:05:04Z smokeink: so I went along trying to patch one in.. but I was surprised to find that for some reason the authors chose to use collectors instead of lists. And you can't delete stuff from collectors 2018-08-24T06:05:50Z dale quit (Quit: dale) 2018-08-24T06:06:28Z Shinmera: Guess you gotta restart your lisp if you make a mistake :) 2018-08-24T06:07:09Z smokeink: yeah, restart the whole NASA center, it's safer and cleaner 2018-08-24T06:07:12Z borodust joined #lisp 2018-08-24T06:08:04Z Shinmera: Not to be a downer, but fukamachi code often has decisions I don't quite understand. 2018-08-24T06:08:53Z mrSpec joined #lisp 2018-08-24T06:09:06Z Fare quit (Ping timeout: 244 seconds) 2018-08-24T06:10:46Z smokeink: it happens to many of us.. no prob, I'll just fork his proj and hack the guts out of it until it works as I want it to. Just wanted to make sure it's not me who's missing something obvious. 2018-08-24T06:11:20Z Shinmera: Could also just use other alternatives. 2018-08-24T06:11:38Z smokeink: ok, what do you recommend 2018-08-24T06:11:55Z Shinmera: Well here's where I reveal my cunning ploy to advertise Radiance. 2018-08-24T06:12:39Z Shinmera: No, seriously though, even if you don't use Radiance, I assume there's other libraries that provide routing for Clack 2018-08-24T06:13:18Z fikka joined #lisp 2018-08-24T06:14:26Z atgreen quit (Remote host closed the connection) 2018-08-24T06:16:50Z atgreen joined #lisp 2018-08-24T06:18:07Z ski quit (Ping timeout: 265 seconds) 2018-08-24T06:18:26Z fikka quit (Ping timeout: 268 seconds) 2018-08-24T06:18:44Z jackdaniel: smokeink: collectors manage a simple list. removing thing from such collector is no more than a list operation. if you want to pop from it you'll have a little harder time though 2018-08-24T06:20:39Z jackdaniel: something like (rplaca (col) (cadr (col)) (rplacd (col) (cddr (col))) ; need to be tested™ 2018-08-24T06:20:59Z smokeink: yeah tried that, I'll show a snippet in a few mins 2018-08-24T06:21:22Z jackdaniel: (as of: how myway uses collectors is another story I have no clue about) 2018-08-24T06:21:36Z jackdaniel: sorry, I need to go to a dentist now, I'll try to help if I'll live :,( 2018-08-24T06:22:07Z smokeink: okay, have fun 2018-08-24T06:22:20Z smokeink: & thanks for the tip 2018-08-24T06:23:54Z smokeink: Shinmera: okay. Radiance is good when one wants a full-stack solution . Ningle is minimal, I tried it after tried a few other more complex alternatives and after Someone had told me that he just uses hunchentoot + his own macros, so I wanted to try such an approach. This approach suits me and is quite cool, you can implement on top of ningle's routing just what you need , and you don't clutter the app with stuff that you might never use, (or in the case 2018-08-24T06:23:54Z smokeink: of RESTAS , stuff which don't really work as you would want and are hard to be modified) 2018-08-24T06:24:17Z smokeink: *after had tried 2018-08-24T06:25:12Z robotoad quit (Quit: robotoad) 2018-08-24T06:25:22Z fikka joined #lisp 2018-08-24T06:29:21Z Shinmera: Well the thing with Radiance is that it isn't a full stack if you don't need it to be. 2018-08-24T06:29:55Z schweers joined #lisp 2018-08-24T06:30:46Z shifty quit (Ping timeout: 268 seconds) 2018-08-24T06:30:51Z Shinmera: But you are right in the sense that the advantages it offers are likely not going to benefit every kind of project. 2018-08-24T06:33:25Z smokeink: http://pastecode.ru/50e560/ 2018-08-24T06:34:03Z flamebeard joined #lisp 2018-08-24T06:35:26Z robotoad joined #lisp 2018-08-24T06:35:27Z Kundry_Wag joined #lisp 2018-08-24T06:39:44Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-24T06:44:23Z ahungry quit (Remote host closed the connection) 2018-08-24T06:47:00Z robotoad quit (Quit: robotoad) 2018-08-24T06:47:08Z torbo left #lisp 2018-08-24T06:48:46Z robotoad joined #lisp 2018-08-24T07:06:15Z igemnace joined #lisp 2018-08-24T07:07:17Z jlarocco joined #lisp 2018-08-24T07:21:29Z igemnace quit (Read error: Connection reset by peer) 2018-08-24T07:22:17Z igemnace joined #lisp 2018-08-24T07:23:18Z fikka quit (Ping timeout: 264 seconds) 2018-08-24T07:29:24Z fikka joined #lisp 2018-08-24T07:32:52Z nowhere_man joined #lisp 2018-08-24T07:34:34Z fikka quit (Ping timeout: 272 seconds) 2018-08-24T07:36:17Z shka_ joined #lisp 2018-08-24T07:36:22Z shka_: good morning 2018-08-24T07:36:37Z no-defun-allowed: hi shka_ 2018-08-24T07:36:50Z meepdeew joined #lisp 2018-08-24T07:36:57Z makomo joined #lisp 2018-08-24T07:41:20Z meepdeew quit (Ping timeout: 252 seconds) 2018-08-24T07:41:26Z beach: Hello shka_. 2018-08-24T07:42:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-24T07:42:58Z Kundry_Wag joined #lisp 2018-08-24T07:43:18Z robotoad quit (Quit: robotoad) 2018-08-24T07:43:18Z stardiviner quit (Ping timeout: 252 seconds) 2018-08-24T07:44:21Z fikka joined #lisp 2018-08-24T07:44:23Z quazimodo joined #lisp 2018-08-24T07:47:51Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-24T07:48:37Z flip214: when I have a GF, can I write a compiler macro that calls that function to evaluate the result for some constant inputs? 2018-08-24T07:49:07Z flip214: (define-compiler-macro foo (&whole form ...) (if (constantp ...) (foo ...))) 2018-08-24T07:49:33Z flip214: gives me "error while parsing arguments ... too many elements" 2018-08-24T07:49:53Z flip214: looks like the d-c-m has a binding for foo locally that doesn't take any arguments 2018-08-24T07:50:03Z varjag joined #lisp 2018-08-24T07:50:24Z Shinmera: Calling a function you're writing a compiler macro for is infinitely recursive. You can't do that. 2018-08-24T07:50:47Z Shinmera: Or rather, calling that function in its own compiler macro 2018-08-24T07:51:37Z Shinmera: That also sounds like a very nonsensical thing to do. 2018-08-24T07:51:41Z svillemot joined #lisp 2018-08-24T07:52:27Z Shinmera: After all, if you did that the function would sometimes act like a macro, sometimes like a function, depending on whether the compiler macro is expanded or not. 2018-08-24T07:53:06Z schjetne: Does Drakma work on Windows, with SSL and everything? 2018-08-24T07:53:18Z Shinmera: Yes, though you need the openssl dlls 2018-08-24T07:54:00Z schjetne: Nice, thanks. 2018-08-24T07:54:21Z flip214: Shinmera: so I'd need to provide a two-level function hierarchy? 2018-08-24T07:54:44Z Shinmera: flip214: I frankly don't know what you're misunderstanding about compiler macros, nor what you're trying to do, so 2018-08-24T07:55:20Z flip214: Shinmera: (defgeneric as-string (what &optional stream)) with a few methods. 2018-08-24T07:56:10Z flip214: for (CONSTANTP what) I'd like to just insert either (PRINC "string" stream) resp. "string" (if (NULL stream)). 2018-08-24T07:56:25Z Shinmera: (define-compiler-macro (&whole whole &environment env what &optional stream) (if (constantp what env) `(load-time-value ,whole) whole)) 2018-08-24T07:56:29Z flip214: so I thought I can write a compiler macro that just inserts either of these two in call sites. 2018-08-24T07:56:55Z flip214: ah, LOAD-TIME-VALUE might be the thing I need 2018-08-24T07:56:58Z Shinmera: constantp does not do what you think it does either. the `what` is a quoted form, not a value necessarily. 2018-08-24T07:57:14Z Shinmera: In compiler macros you pretty much always need to emit l-t-v forms if you want to constant-fold. 2018-08-24T07:57:46Z Shinmera: Also my above snippet is not quite right yet, you need to check the stream too, of course. 2018-08-24T07:57:59Z flip214: and L-T-V requires me to have all the methods in another file (ASDF-required) or to use an EVAL-WHEN to have them available at load-time of the compiler-macro, right? 2018-08-24T07:58:32Z Shinmera: load-time loads methods sequentially so if all methods happen before a call to your function you're fine. 2018-08-24T08:00:09Z flip214: ah, L-T-V was returned quoted, right 2018-08-24T08:00:21Z fikka quit (Ping timeout: 252 seconds) 2018-08-24T08:00:28Z Shinmera: It's a macro. 2018-08-24T08:00:35Z Shinmera: So you return forms. 2018-08-24T08:01:42Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-24T08:01:42Z flip214: yeah, I thought to return the form (princ "foo" stream) directly. 2018-08-24T08:01:53Z flip214: but L-T-V does that as well. 2018-08-24T08:01:55Z flip214: thanks a lot! 2018-08-24T08:02:51Z angavrilov joined #lisp 2018-08-24T08:03:06Z jlarocco quit (Ping timeout: 252 seconds) 2018-08-24T08:05:05Z zfree quit (Quit: zfree) 2018-08-24T08:08:37Z semz joined #lisp 2018-08-24T08:15:12Z jack_rabbit joined #lisp 2018-08-24T08:15:12Z igemnace quit (Ping timeout: 252 seconds) 2018-08-24T08:20:35Z igemnace joined #lisp 2018-08-24T08:34:00Z igemnace quit (Remote host closed the connection) 2018-08-24T08:37:26Z igemnace joined #lisp 2018-08-24T08:37:30Z Bronsa joined #lisp 2018-08-24T08:47:28Z cods joined #lisp 2018-08-24T08:49:29Z igemnace quit (Remote host closed the connection) 2018-08-24T08:50:22Z remix2000 joined #lisp 2018-08-24T08:57:04Z shrdlu68 joined #lisp 2018-08-24T08:58:00Z remix2000: Hello, What’s the difference between passing a lambda prefixed with #' or without that prefix to a function? 2018-08-24T08:58:39Z trittweiler: there's no difference 2018-08-24T08:58:53Z trittweiler: (lambda (...) ...) is a macro that expands to #'(lmbda (...) ...) 2018-08-24T08:59:48Z TMA: remix2000: there is a style difference -- some people prefer the #', some don't 2018-08-24T09:00:02Z SenasOzys quit (Remote host closed the connection) 2018-08-24T09:01:33Z smokeink: remix2000: https://letoverlambda.com/index.cl/guest/chap2.html "There are few good reasons to prefix your lambda forms with #' thanks to the lambda macro." 2018-08-24T09:04:42Z SenasOzys joined #lisp 2018-08-24T09:07:24Z drot joined #lisp 2018-08-24T09:08:13Z Shinmera: I'm astounded at how often this has come up recently 2018-08-24T09:08:36Z trittweiler: yeah 2018-08-24T09:08:41Z Shinmera: remix2000: http://irclog.tymoon.eu/freenode/%23lisp?around=1534953715#1534953715 2018-08-24T09:09:34Z edgar-rft: What Doug Hoyte wants to point out is that ((lambda (x) (+ 1 x)) 2) works but (#'(lambda (x) (+ 1 x)) 2) signals an error. 2018-08-24T09:09:56Z Shinmera: among other things 2018-08-24T09:10:05Z Shinmera: as I mention in the log I linked 2018-08-24T09:10:06Z shifty joined #lisp 2018-08-24T09:11:59Z random-nick joined #lisp 2018-08-24T09:13:52Z remix2000: Ok, thanks :) For me it looks more obvious without that prefix. I was only curious whether it’s permitted by ANSI standard or is there some performance overhead. 2018-08-24T09:19:58Z fikka joined #lisp 2018-08-24T09:26:05Z sveit quit (Quit: Bye) 2018-08-24T09:26:05Z simplegauss quit (Quit: Bye) 2018-08-24T09:27:37Z zfree joined #lisp 2018-08-24T09:30:33Z Shinmera: Hoorah for more portability. https://shinmera.github.io/mmap/ 2018-08-24T09:30:53Z Shinmera: XachX: Any news on when the next QL release cycle hits? I have quite a few things piled up now. 2018-08-24T09:50:17Z elfmacs joined #lisp 2018-08-24T09:56:57Z ym quit (Ping timeout: 240 seconds) 2018-08-24T09:58:47Z ebrasca joined #lisp 2018-08-24T10:04:25Z no-defun-allowed: okay so writing "concise code" is a terrible idea 2018-08-24T10:04:47Z no-defun-allowed: if you do it you tend to mash different components together which often is a pain in the ass to look at later 2018-08-24T10:05:17Z Shinmera: Speak for yourself 2018-08-24T10:06:04Z smokeink: is there a portable way to catch simple-parse-error exceptions thrown by (parse-integer)? When I catch sb-int:simple-parse-error inside handler-case it says style warning Undefined function:; SB-INT:SIMPLE-PARSE-ERROR , but it seems to work just fine 2018-08-24T10:06:16Z no-defun-allowed: yeah i can the old cl-decentralise "repl" was a 175LOC blob 2018-08-24T10:06:48Z no-defun-allowed: seems (bt:make-thread (lambda () ...)) is a little pattern of mine. 2018-08-24T10:07:00Z no-defun-allowed: would MAKE-THUNK-THREAD be a good name for a macro to do that? 2018-08-24T10:07:15Z Shinmera: WITH-THREAD or something would be better in my opinion 2018-08-24T10:07:23Z no-defun-allowed: fair 2018-08-24T10:07:45Z no-defun-allowed: that's very nice actually 2018-08-24T10:08:15Z White_Flame: smokeink: you probably have parens where you shouldn't, making an expression look like a function call 2018-08-24T10:08:16Z smokeink: oh I had some extra junk there. after removing it the style warning is gone 2018-08-24T10:08:58Z Shinmera: While you're at it you might also want to set the default-bindings to something like `((*standard-output* . ,*standard-output*) (*error-output* . ,*error-output*) (*trace-output* . ,*trace-output*) (*query-io* . ,*query-io*) ... etc) 2018-08-24T10:09:26Z no-defun-allowed: would it play nicer with SLIME then? 2018-08-24T10:09:40Z Shinmera: it causes the bindings to be inherited from the calling thread, so yes 2018-08-24T10:09:49Z no-defun-allowed: created threads sometimes write to inferior-lisp instead 2018-08-24T10:09:52Z Shinmera: Colleen: tell smokeink look up clhs parse-integer 2018-08-24T10:09:54Z Colleen: smokeink: Clhs: function parse-integer http://www.lispworks.com/documentation/HyperSpec/Body/f_parse_.htm 2018-08-24T10:09:56Z no-defun-allowed: that's also useful 2018-08-24T10:10:10Z no-defun-allowed: thanks c: 2018-08-24T10:10:10Z Shinmera: smokeink: "an error of type parse-error is signaled" 2018-08-24T10:10:24Z Shinmera: parse-error is a standard CL condition, no need to grab SBCL internals. 2018-08-24T10:10:32Z jdz: Or ASYNC instead of WITH-THREAD. 2018-08-24T10:10:32Z fikka quit (Read error: Connection reset by peer) 2018-08-24T10:11:08Z no-defun-allowed: how does [this](https://pastebin.com/e0zh31Cz) look then? 2018-08-24T10:11:22Z smokeink: Great, thank you 2018-08-24T10:11:35Z Kundry_Wag joined #lisp 2018-08-24T10:11:39Z no-defun-allowed: `async` looks like there is a procedure though (like, i dunno, a future) 2018-08-24T10:11:50Z no-defun-allowed: my code scans a list for nodes it doesn't have and forks off to probe new ones 2018-08-24T10:12:53Z Shinmera: no-defun-allowed: note that there's more IO bindings than I listed. 2018-08-24T10:13:11Z no-defun-allowed: that seems reasonable enough 2018-08-24T10:14:17Z White_Flame: you could loop over the common-lisp package symbols, test which ones are special, and copy them all :-P 2018-08-24T10:14:47Z no-defun-allowed: or we could not do that cause it was supposed to be a three line macro 2018-08-24T10:15:20Z White_Flame: technically a loop might be just as short as manualy listing cases... 2018-08-24T10:15:23Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-24T10:15:32Z no-defun-allowed: [i much prefered `(bt:make-thread (lambda () ,@body))`](http://people.cs.uchicago.edu/~wiseman/humor/large-programs.html) 2018-08-24T10:16:04Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-24T10:16:06Z Shinmera: no-defun-allowed: Regarding your convention of writing URLs into chat, please note that parens are valid constituents of URL parts, so some chats might invalidly think the closing paren is part of the URL. 2018-08-24T10:16:39Z no-defun-allowed: that's fair but my matrix client hates me and puts gibberish on non-fancy markdown URLs 2018-08-24T10:16:56Z no-defun-allowed: it's lose-lose until i find the source of the bug, sorry 2018-08-24T10:17:03Z Shinmera: Try maybe 2018-08-24T10:17:26Z no-defun-allowed: see, it'll pop a %thing on the end here: http://people.cs.uchicago.edu/~wiseman/humor/large-programs.html 2018-08-24T10:17:39Z Shinmera: I don't see it. 2018-08-24T10:17:40Z no-defun-allowed: oh good, it was fixed. 2018-08-24T10:17:54Z no-defun-allowed: never mind then - all that was unnecessary. 2018-08-24T10:18:16Z Shinmera: In Lisp graphics news, here's another short video of my clipmaps implementation. https://www.youtube.com/watch?v=dTRDlgw-C50 2018-08-24T10:18:30Z froggey joined #lisp 2018-08-24T10:18:54Z no-defun-allowed: wow 2018-08-24T10:19:02Z splittist: Shinmera: mmap looks great. Thanks for all your work! (The "No documentation provided." entry under the package name looks a bit out of place. It doesn't appear in your documentation for documentation-tools, for example. Which (doc...-tools) also looks very interesting.) 2018-08-24T10:19:16Z no-defun-allowed: that's really nice 2018-08-24T10:19:29Z Shinmera: splittist: It appears because packages can have docstrings, but I usually don't provide them. 2018-08-24T10:19:44Z Shinmera: and the docs for documentation-utils were generated before Staple was fixed to do that. 2018-08-24T10:20:07Z splittist: Shinmera: Ah. 2018-08-24T10:20:36Z Shinmera: no-defun-allowed: Thanks 2018-08-24T10:22:06Z Shinmera: It looks a bit cruddy right now due to low framerates and a bug in the terrain generator that makes the splatmaps too low res 2018-08-24T10:22:25Z Shinmera: But it's getting somewhere overall. 2018-08-24T10:22:45Z no-defun-allowed: it looks very promising 2018-08-24T10:25:21Z White_Flame: looks really smooth, at 2x speed ;) 2018-08-24T10:26:47Z Shinmera: When I booted it up today still FPS were ~50 while yesterday it was ~100. I don't remember changing anything so I don't know what's going on. 2018-08-24T10:27:04Z Shinmera: Moving FPS are slow because I'm doing stupid things. 2018-08-24T10:29:17Z Shinmera: It would be unbearably slow without mmapping though, I can tell you that 2018-08-24T10:29:37Z no-defun-allowed: heh, gitlab updates the "commited N seconds ago" counter 2018-08-24T10:31:04Z no-defun-allowed: i pushed the refactored stuff for cl-decentralise including a simple netsplit solution 2018-08-24T10:31:41Z _death: a lispy mmap would return an array.. but that's not trivial to achieve :/ 2018-08-24T10:32:03Z Shinmera: Right, we had the same talk about static-vectors yesterday. 2018-08-24T10:32:09Z no-defun-allowed: that's true, an array would make more sense 2018-08-24T10:34:17Z no-defun-allowed: can you turn off nayes algorithm for usocket servers? is it applicable? 2018-08-24T10:34:46Z no-defun-allowed: my cl-decentralise stress test gets only 20 synchronous ops/second, which i can't pin on any lisp functions 2018-08-24T10:35:23Z Shinmera: Do you mean nagle's algorithm? 2018-08-24T10:38:33Z no-defun-allowed: yes, my bad 2018-08-24T10:38:48Z Shinmera: Colleen: look up usocket socket-connect 2018-08-24T10:38:48Z Colleen: Function socket-connect https://common-lisp.net/project/usocket/api-docs.shtml#socket-connect 2018-08-24T10:39:02Z Shinmera: There's a :nodelay option for client connections. Not sure about server connections. 2018-08-24T10:39:21Z no-defun-allowed: yeah, i don't remember it coming up for server connections 2018-08-24T10:41:55Z light2yellow joined #lisp 2018-08-24T10:45:29Z Kundry_Wag joined #lisp 2018-08-24T10:46:30Z scymtym joined #lisp 2018-08-24T10:48:30Z flip214: Shinmera: got the new intel cpu firmware update? 2018-08-24T10:49:08Z Shinmera: Why? 2018-08-24T10:50:18Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-24T10:51:54Z flip214: you asked about a slowdown 2018-08-24T10:52:06Z flip214: and the update is reported to slow things down 2018-08-24T10:52:49Z Shinmera: No, I didn't update anything, it's probably some other fluke 2018-08-24T10:55:27Z flip214: there's no debian-stable or -security update yet, that might have come in automatically even 2018-08-24T10:56:00Z Xach joined #lisp 2018-08-24T10:58:30Z smokeink quit (Ping timeout: 272 seconds) 2018-08-24T11:06:20Z pierpal quit (Quit: Poof) 2018-08-24T11:06:37Z pierpal joined #lisp 2018-08-24T11:10:52Z schjetne: Hmm, turns out SSL in CL wasn't trivial on any platform when you want fancy stuff like TLS 1.2 2018-08-24T11:11:18Z Xach: schjetne: what are the sticking points? 2018-08-24T11:12:44Z schjetne: I just needed to write a quick command line tool that should also work on Windows in the least painless way possible. It needs to talk HTTPS with TLS 1.2 and I'd figured I'd take the chance to sneak in some CL in the project 2018-08-24T11:16:56Z SenasOzys quit (Ping timeout: 252 seconds) 2018-08-24T11:21:25Z SenasOzys joined #lisp 2018-08-24T11:23:49Z no-defun-allowed: You can't talk about Intel not being fast, they'll cease and desist you, flip214 and Shinmera!! 2018-08-24T11:23:54Z kajo quit (Ping timeout: 264 seconds) 2018-08-24T11:24:21Z no-defun-allowed: Because of that stupid requirement, I doubt it'll get into Debian soon 2018-08-24T11:24:57Z kajo joined #lisp 2018-08-24T11:31:47Z markoong joined #lisp 2018-08-24T11:39:18Z flazh1 quit (Ping timeout: 268 seconds) 2018-08-24T11:39:43Z makomo quit (Ping timeout: 268 seconds) 2018-08-24T11:44:56Z flazh1 joined #lisp 2018-08-24T11:45:30Z Bronsa quit (Ping timeout: 264 seconds) 2018-08-24T11:49:25Z Kevslinger joined #lisp 2018-08-24T11:49:46Z jdz: Does anybody know where's the source .org file Postmodern documentation is generated from? 2018-08-24T11:50:18Z jdz: All the .org files. 2018-08-24T11:51:56Z makomo joined #lisp 2018-08-24T11:52:42Z milanj joined #lisp 2018-08-24T11:58:24Z light2yellow quit (Quit: baie) 2018-08-24T12:01:17Z Xach: sabrac might know? 2018-08-24T12:04:40Z astalla joined #lisp 2018-08-24T12:05:47Z jdz: OK, updates will have to be coordinated through Github, then. 2018-08-24T12:10:02Z Bronsa joined #lisp 2018-08-24T12:12:29Z pierpal quit (Quit: Poof) 2018-08-24T12:12:47Z pierpal joined #lisp 2018-08-24T12:23:05Z nesomil joined #lisp 2018-08-24T12:23:50Z shrdlu68: schjetne: There is a TLS 1.2 implementation in CL. Alpha quality, though. 2018-08-24T12:24:18Z sabrac: jdz: Do you want me to put the postmodern underlying org files up on github? 2018-08-24T12:25:30Z jdz: sabrac: I'd expect the files to be included in the project, yes. 2018-08-24T12:25:36Z nesomil left #lisp 2018-08-24T12:25:46Z sabrac: jdz: OK 2018-08-24T12:25:50Z nesomil joined #lisp 2018-08-24T12:26:21Z schjetne: shrdlu68: I thought I might try seeing what version of OpenSSL CL+SSL links against and see if I can get it working that way. Or maybe just writing a script that calls cURL. 2018-08-24T12:26:32Z flazh1 quit (Ping timeout: 272 seconds) 2018-08-24T12:26:35Z jdz: sabrac: I need (well, want) prepared statements to work after DB reconnect, and I have it working locally. But bits of documentation need to be updated. 2018-08-24T12:28:48Z ramus quit (Ping timeout: 260 seconds) 2018-08-24T12:29:36Z nesomil left #lisp 2018-08-24T12:29:50Z nesomil joined #lisp 2018-08-24T12:30:42Z sabrac: jdz: org files now up on github 2018-08-24T12:31:45Z Fare joined #lisp 2018-08-24T12:36:00Z nesomil quit (Quit: Colloquy for iPhone - http://colloquy.mobi) 2018-08-24T12:38:26Z jdz: sabrac: thanks! 2018-08-24T12:46:59Z nesomil joined #lisp 2018-08-24T12:47:42Z ski joined #lisp 2018-08-24T12:50:18Z schweers quit (Ping timeout: 264 seconds) 2018-08-24T12:51:40Z nesomil quit (Client Quit) 2018-08-24T12:56:20Z AeroNotix: Shinmera: reason using the designer/ui files is that half of the application doesn't really need to be written. 2018-08-24T12:56:41Z AeroNotix: (imho) it's a better way to develop Qt applications. 2018-08-24T12:57:18Z Shinmera: :shrug: I just write code. 2018-08-24T12:57:30Z on_ion joined #lisp 2018-08-24T12:58:30Z AeroNotix: Exactly, that's what I want to do, write code, but relatively interesting code though. I find placing widgets/setting defaults etc is akin to writing html/css 2018-08-24T12:58:33Z AeroNotix: bores me to tears 2018-08-24T12:59:11Z AeroNotix: I'll have a play when I finish my current thing to pick up cluic again, clearly I didn't get very far. 2018-08-24T13:00:06Z AeroNotix: Shinmera: btw, when running commonqt code through slime if there's an exception in the Qt thread (it seems?) then I can't start an Qt application again in slime, needing a restart. I'm assuming there's some state left over somewhere that I need to clear. 2018-08-24T13:00:19Z AeroNotix: (with-main-window ..) is returning -1 after immediately closing the window 2018-08-24T13:00:37Z Shinmera: If the exception happens outside of a slot or override then Qt slits its throat and it's game over. 2018-08-24T13:00:51Z Shinmera: Nothing you can do but restart. 2018-08-24T13:01:05Z on_ion: hehe 2018-08-24T13:01:24Z AeroNotix: drats 2018-08-24T13:01:35Z Shinmera: My advice is to just not write code that crashes on start :) 2018-08-24T13:02:22Z AeroNotix: all code will crash eventually 2018-08-24T13:02:35Z Shinmera: Better step away from the computer then 2018-08-24T13:02:53Z AeroNotix: I'm fine thanks 2018-08-24T13:09:01Z LiamH joined #lisp 2018-08-24T13:11:51Z ramus joined #lisp 2018-08-24T13:12:40Z Kundry_Wag joined #lisp 2018-08-24T13:14:42Z light2yellow joined #lisp 2018-08-24T13:15:22Z steiner quit (Ping timeout: 252 seconds) 2018-08-24T13:16:06Z Bike joined #lisp 2018-08-24T13:16:54Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-24T13:18:15Z makomo quit (Ping timeout: 252 seconds) 2018-08-24T13:18:53Z kingcons joined #lisp 2018-08-24T13:20:18Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-24T13:22:54Z rippa joined #lisp 2018-08-24T13:23:23Z mason joined #lisp 2018-08-24T13:27:01Z mindCrime joined #lisp 2018-08-24T13:32:02Z jkordani_ joined #lisp 2018-08-24T13:32:09Z makomo joined #lisp 2018-08-24T13:32:35Z jack_rabbit joined #lisp 2018-08-24T13:36:16Z jkordani quit (Ping timeout: 268 seconds) 2018-08-24T13:37:28Z dddddd joined #lisp 2018-08-24T13:45:04Z makomo quit (Ping timeout: 272 seconds) 2018-08-24T13:45:31Z makomo joined #lisp 2018-08-24T13:57:51Z light2yellow quit (Ping timeout: 252 seconds) 2018-08-24T14:03:00Z Denommus joined #lisp 2018-08-24T14:03:06Z Inline joined #lisp 2018-08-24T14:06:32Z metallicus joined #lisp 2018-08-24T14:08:18Z metallicus quit (Remote host closed the connection) 2018-08-24T14:08:55Z Kundry_Wag joined #lisp 2018-08-24T14:09:05Z light2yellow joined #lisp 2018-08-24T14:10:40Z sabrac quit (Quit: Konversation terminated!) 2018-08-24T14:13:13Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-24T14:15:27Z light2yellow quit (Ping timeout: 252 seconds) 2018-08-24T14:18:30Z light2yellow joined #lisp 2018-08-24T14:18:45Z astalla quit (Ping timeout: 252 seconds) 2018-08-24T14:21:09Z flazh1 joined #lisp 2018-08-24T14:23:39Z housel quit (Read error: Connection reset by peer) 2018-08-24T14:23:44Z sjl__ joined #lisp 2018-08-24T14:23:58Z housel joined #lisp 2018-08-24T14:24:15Z light2yellow quit (Ping timeout: 252 seconds) 2018-08-24T14:24:51Z sjl___ joined #lisp 2018-08-24T14:26:45Z cage_ joined #lisp 2018-08-24T14:28:35Z dale_ joined #lisp 2018-08-24T14:28:39Z sjl__ quit (Ping timeout: 252 seconds) 2018-08-24T14:28:54Z dale_ is now known as dale 2018-08-24T14:29:47Z astalla joined #lisp 2018-08-24T14:32:23Z orivej joined #lisp 2018-08-24T14:37:30Z jdz: sabrac: my changes to Postmodern currently live here: https://github.com/jdz/Postmodern/tree/local 2018-08-24T14:40:20Z Lauven joined #lisp 2018-08-24T14:46:52Z jdz: This will need a bit more work, though... 2018-08-24T14:47:53Z jdz: Lazy statement parsing will not work with transactions. 2018-08-24T14:48:38Z jdz: There goes my shiny good idea! 2018-08-24T14:49:46Z on_ion: are we making science projects or money el oh el 2018-08-24T14:49:57Z sjl___ is now known as sjl__ 2018-08-24T14:50:04Z light2yellow joined #lisp 2018-08-24T15:00:41Z shrdlu68 quit (Quit: WeeChat 2.0.1) 2018-08-24T15:03:12Z v0|d joined #lisp 2018-08-24T15:09:21Z atgreen quit (Ping timeout: 252 seconds) 2018-08-24T15:15:57Z acolarh quit (Ping timeout: 240 seconds) 2018-08-24T15:16:44Z AeroNotix: on_ion: u bee en tee? 2018-08-24T15:17:18Z papachan joined #lisp 2018-08-24T15:18:22Z Lauven quit (Quit: leaving) 2018-08-24T15:18:31Z robotoad joined #lisp 2018-08-24T15:21:25Z FreeBirdLjj joined #lisp 2018-08-24T15:30:12Z jlarocco joined #lisp 2018-08-24T15:32:02Z eddof13 joined #lisp 2018-08-24T15:39:12Z joga joined #lisp 2018-08-24T15:41:03Z elfmacs quit (Ping timeout: 244 seconds) 2018-08-24T15:42:04Z meepdeew joined #lisp 2018-08-24T15:42:41Z d4ryus quit (Quit: WeeChat 2.2) 2018-08-24T15:48:28Z eddof13 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-24T15:57:49Z igemnace joined #lisp 2018-08-24T15:59:13Z flamebeard quit 2018-08-24T16:03:12Z d4ryus joined #lisp 2018-08-24T16:03:47Z DGASAU quit (Ping timeout: 244 seconds) 2018-08-24T16:04:18Z SenasOzys quit (Ping timeout: 244 seconds) 2018-08-24T16:05:07Z DGASAU joined #lisp 2018-08-24T16:09:10Z Kundry_Wag joined #lisp 2018-08-24T16:12:01Z random-nick: is there a standard function to determine if a character represents whitespace? 2018-08-24T16:13:54Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-24T16:14:09Z Bike: i don't think so 2018-08-24T16:14:19Z isoraqathedh joined #lisp 2018-08-24T16:14:31Z Bike: maybe not graphic-char-p? 2018-08-24T16:14:45Z Bike: er, nope. 2018-08-24T16:16:54Z beach: There is no such function. 2018-08-24T16:17:58Z jlarocco quit (Ping timeout: 252 seconds) 2018-08-24T16:18:26Z pjb: random-nick: there's only 1 standard whitespace character: #\space. There are a few semi-standard whitespace characters such as #\tab and #\page. But it's an application domain question whether #\return #\backspace and #\newline should be considered whitespaces or not. 2018-08-24T16:18:38Z pjb: random-nick: and then of course, there are a log of unicode whitespaces. 2018-08-24T16:18:52Z Bike: your implementation might have something about unicode whitespaces. sbcl does 2018-08-24T16:19:38Z pjb: Even while unicode specifies a whitespace character class, it's still application dependent what character should be considered whitespace! 2018-08-24T16:21:37Z fouric joined #lisp 2018-08-24T16:22:32Z quipa joined #lisp 2018-08-24T16:24:11Z fouric: is there a pattern to which quicklisp releases have system names prefixed with "cl-" and which do not? 2018-08-24T16:24:34Z Shinmera: The pattern is: "the author thought prepending cl- was a good idea" 2018-08-24T16:25:13Z Shinmera: A sub-pattern of that is: the library is a re-implementation or binding library to another, already existing algorithm/system/library 2018-08-24T16:28:03Z fouric: ah! i can see the sub-pattern 2018-08-24T16:28:13Z SenasOzys joined #lisp 2018-08-24T16:37:21Z shifty quit (Ping timeout: 252 seconds) 2018-08-24T16:46:12Z zfree quit (Quit: zfree) 2018-08-24T16:51:11Z flip214: which might not even that bad an idea -- at least looking for "cl-matlab" gives better matches than simply googling "matlab" ... 2018-08-24T16:56:28Z Bronsa quit (Ping timeout: 252 seconds) 2018-08-24T16:59:15Z dyelar joined #lisp 2018-08-24T17:00:18Z acolarh joined #lisp 2018-08-24T17:00:54Z Shinmera: if you're looking for cl systems you should just browse quickdocs or ql:system-apropos anyway 2018-08-24T17:02:17Z light2yellow quit (Quit: gl) 2018-08-24T17:14:19Z pierpal quit (Quit: Poof) 2018-08-24T17:14:36Z pierpal joined #lisp 2018-08-24T17:17:30Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-24T17:19:56Z Fare quit (Ping timeout: 252 seconds) 2018-08-24T17:20:44Z DGASAU quit (Read error: Connection reset by peer) 2018-08-24T17:22:19Z DGASAU joined #lisp 2018-08-24T17:23:47Z papachan quit (Quit: WeeChat 2.2) 2018-08-24T17:27:52Z FreeBirdLjj joined #lisp 2018-08-24T17:32:17Z quipa quit (Quit: Leaving) 2018-08-24T17:36:17Z DGASAU quit (Read error: Connection reset by peer) 2018-08-24T17:36:45Z DGASAU joined #lisp 2018-08-24T17:39:23Z papachan joined #lisp 2018-08-24T17:42:14Z Jesin quit (Quit: Leaving) 2018-08-24T17:47:19Z Jesin joined #lisp 2018-08-24T17:49:54Z meepdeew quit (Remote host closed the connection) 2018-08-24T17:53:46Z jasom: Shinmera: don't you have a cl system that's not in the ql main dist? 2018-08-24T17:56:32Z MetaYan quit (Ping timeout: 276 seconds) 2018-08-24T17:58:26Z sjl__ quit (Ping timeout: 252 seconds) 2018-08-24T18:05:58Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-24T18:12:11Z milanj quit (Quit: This computer has gone to sleep) 2018-08-24T18:12:57Z milanj joined #lisp 2018-08-24T18:15:40Z milanj quit (Client Quit) 2018-08-24T18:19:29Z DGASAU quit (Read error: Connection reset by peer) 2018-08-24T18:20:03Z Kundry_Wag joined #lisp 2018-08-24T18:20:15Z DGASAU joined #lisp 2018-08-24T18:21:41Z Kundry_Wag quit (Read error: No route to host) 2018-08-24T18:22:16Z Kundry_Wag joined #lisp 2018-08-24T18:25:54Z Kundry_Wag quit (Remote host closed the connection) 2018-08-24T18:26:19Z sauvin quit (Read error: Connection reset by peer) 2018-08-24T18:27:41Z Jesin quit (Quit: Leaving) 2018-08-24T18:28:02Z quazimodo quit (Remote host closed the connection) 2018-08-24T18:29:36Z kushal quit (Remote host closed the connection) 2018-08-24T18:29:59Z kushal joined #lisp 2018-08-24T18:30:23Z quazimodo joined #lisp 2018-08-24T18:30:31Z quazimodo quit (Client Quit) 2018-08-24T18:31:07Z Fare joined #lisp 2018-08-24T18:39:29Z DGASAU quit (Read error: Connection reset by peer) 2018-08-24T18:39:46Z DGASAU joined #lisp 2018-08-24T18:40:00Z Fare quit (Ping timeout: 252 seconds) 2018-08-24T18:47:10Z Demosthenex joined #lisp 2018-08-24T18:52:54Z sjl__ joined #lisp 2018-08-24T18:53:18Z quazimodo joined #lisp 2018-08-24T18:53:18Z quazimodo quit (Client Quit) 2018-08-24T18:59:40Z quazimodo joined #lisp 2018-08-24T18:59:40Z quazimodo quit (Client Quit) 2018-08-24T19:00:51Z rumbler31 joined #lisp 2018-08-24T19:02:29Z random-nick quit (Ping timeout: 268 seconds) 2018-08-24T19:03:41Z asarch joined #lisp 2018-08-24T19:07:08Z stacksmith: Good morning! Is anyone else here concerned with github being owned by msft? I am considering moving my repose elsewhere... 2018-08-24T19:07:09Z rumbler31 quit (Remote host closed the connection) 2018-08-24T19:11:20Z meepdeew joined #lisp 2018-08-24T19:11:37Z meepdeew quit (Remote host closed the connection) 2018-08-24T19:19:10Z White_Flame: certainly there was a sizeable exodus of people away from GH right after the announcement 2018-08-24T19:19:15Z pierpal quit (Quit: Poof) 2018-08-24T19:19:33Z pierpal joined #lisp 2018-08-24T19:20:27Z trittweiler quit (Ping timeout: 240 seconds) 2018-08-24T19:24:59Z Fare joined #lisp 2018-08-24T19:25:06Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-24T19:27:37Z AeroNotix: Not bothered by it whatsoever 2018-08-24T19:28:11Z AeroNotix: if you're so entrenched in github that microsoft taking it over is a problem. Did you ever really give a shit about the underlying reasons to be bothered by microsoft taking GH over? 2018-08-24T19:29:30Z [X-Scale] joined #lisp 2018-08-24T19:29:58Z X-Scale quit (Ping timeout: 260 seconds) 2018-08-24T19:30:30Z [X-Scale] is now known as X-Scale 2018-08-24T19:32:11Z v0|d: my I ask? whats the moral of this discussion other than emotional ups&downs? 2018-08-24T19:34:07Z v0|d: lets say Im interested in concrete repercussions. 2018-08-24T19:35:53Z josemanuel joined #lisp 2018-08-24T19:38:05Z flip214: v0|d: Microsoft isn't known for making bought software better, so one possible fear is that GH will slowly detoriate and so another hosting must be chosen at some time. 2018-08-24T19:40:05Z manumanumanu left #lisp 2018-08-24T19:40:44Z kajo quit (Ping timeout: 252 seconds) 2018-08-24T19:42:21Z kajo joined #lisp 2018-08-24T19:47:41Z atgreen joined #lisp 2018-08-24T19:50:11Z aeth: The main alternative, Gitlab, is perfectly fine as far as software goes, but is not a social network like Github. Very quiet. 2018-08-24T19:50:58Z drmeister: Hi lispers - does the CLHS say anywhere that structs are not allowed to be redefined? 2018-08-24T19:51:35Z aeth: drmeister: iirc, it's undefined 2018-08-24T19:51:38Z aeth: http://www.lispworks.com/documentation/HyperSpec/Body/m_defstr.htm 2018-08-24T19:51:46Z aeth: "The consequences of redefining a defstruct structure are undefined." 2018-08-24T19:52:26Z aeth: This generally means inline slot access and a more reliable :type for slots afaik 2018-08-24T19:52:34Z drmeister: Ah - there you go - thank you much. 2018-08-24T19:59:10Z warweasle is now known as warweasle_bbl 2018-08-24T20:00:38Z acolarh quit (Ping timeout: 272 seconds) 2018-08-24T20:01:41Z Fare quit (Ping timeout: 268 seconds) 2018-08-24T20:05:48Z zfree joined #lisp 2018-08-24T20:08:46Z random-nick joined #lisp 2018-08-24T20:10:29Z Shinmera: jasom: I do have a couple -- all my Radiance stuff. 2018-08-24T20:12:56Z Shinmera: They'd be in QL too if the loading behaviour wasn't disagreeable with QL's requirements :/ 2018-08-24T20:13:11Z Shinmera: Or rather, they'd be in the QL dist, to be precise 2018-08-24T20:13:20Z Denommus` joined #lisp 2018-08-24T20:15:12Z Denommus quit (Ping timeout: 272 seconds) 2018-08-24T20:15:13Z jasom: Shinmera: I just found it slightly humorous that you recommended searching QL to find things, when Radiance is the first thing I think of for a useful package not in QL. 2018-08-24T20:15:45Z Shinmera: Well, yes. Ideally Quickdocs should include other dists, too 2018-08-24T20:26:13Z v0|d: flip214: thnx. 2018-08-24T20:30:09Z Bike quit (Ping timeout: 252 seconds) 2018-08-24T20:37:17Z Fare joined #lisp 2018-08-24T20:39:32Z wigust joined #lisp 2018-08-24T20:39:42Z mason left #lisp 2018-08-24T20:40:39Z pierpa joined #lisp 2018-08-24T20:40:42Z m3tti joined #lisp 2018-08-24T20:41:13Z acolarh joined #lisp 2018-08-24T20:41:38Z m3tti quit (Remote host closed the connection) 2018-08-24T20:42:05Z m3tti joined #lisp 2018-08-24T20:44:15Z nikki93 joined #lisp 2018-08-24T20:44:53Z nikki93: hey all -- i just installed quicklisp and moved the ~/quicklisp directory to be ~/.quicklisp instead because i like it not showing up in my usual ~ directory listing and updated .sbclrc accordingly 2018-08-24T20:45:27Z nikki93: now i was wondering about the ql:*local-project-directories* thing -- do you usually set that in your .sbclrc too? and is it ok if that directory has non-lisp projects too? I like putting all of my projects as directories in ~/Development, whatever language they use 2018-08-24T20:46:03Z Shinmera: It can contain whatever, QL will just scan for *.asd files. 2018-08-24T20:46:38Z cage_ quit (Quit: Leaving) 2018-08-24T20:46:40Z nikki93: sweet thanks 2018-08-24T20:46:55Z pjb: stacksmith: I've always been concerned by github being a commercial operation (.com). This is why I have my own git repository. And then I used gitorious.org ; but gitorious.org, begin not a commercial operation had financial problems. Finally they've been rescued by gitlab.com a commercial operation (but European based instead of US, so closer to heart). 2018-08-24T20:47:19Z pjb: stacksmith: there's also framasoft.org, which is non-commercial and even closer (French). 2018-08-24T20:47:46Z nikki93: Shinmera: thanks -- do you recommend setting it in .sbclrc btw 2018-08-24T20:47:47Z pjb: https://framagit.org/public/projects 2018-08-24T20:47:49Z whartung: concerned about what? github just changing its terms? 2018-08-24T20:47:57Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-24T20:48:05Z Shinmera: nikki93: That's an easy way, sure. You could also symlink the default local-projects directory. 2018-08-24T20:48:20Z nikki93: Shinmera: interesting 2018-08-24T20:48:21Z pjb: stacksmith: and for enterprise git, I set up my own gitlab on enterprise owned servers. 2018-08-24T20:48:27Z Shinmera: nikki93: The latter has the advantage that it'll work with all implementations immediately, whereas otherwise you need to add the line to each init file. 2018-08-24T20:48:38Z nikki93: Shinmera: yeah i like the symlink idea 2018-08-24T20:48:45Z nikki93: are there any catches there or does that generally work 2018-08-24T20:48:51Z Shinmera: should just work 2018-08-24T20:48:55Z nikki93: sweet thanks 2018-08-24T20:49:24Z m3tti quit (Ping timeout: 272 seconds) 2018-08-24T20:49:42Z pjb: stacksmith: that said, better Microsoft than Facebook… 2018-08-24T20:50:05Z stacksmith: pjb: much appreciated. I actually started moving things to gitlab.com. While commercial, at least gitlab not invested in sinking open-source. 2018-08-24T20:50:54Z stacksmith: pjb: and all the evil ones put together does not even begin to approach Google... 2018-08-24T20:51:23Z Shinmera: Hating on companies is cool and all but it's off-topic. 2018-08-24T20:52:04Z stacksmith: Shinmera: true enough, although the subject of where to keep source is on-topic. 2018-08-24T20:54:00Z defaultxr joined #lisp 2018-08-24T20:56:13Z sjl__ quit (Ping timeout: 244 seconds) 2018-08-24T20:58:52Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-24T21:04:03Z defaultxr: does anyone know if there is some way to get output sent to the slime-repl buffer from a command run via uiop:run-program in real-time, as it's printed by the command? i wrote a basic shell script to test that just does 'echo hi' and then 'sleep 10', and while i see 'hi' right away when i run it from the command line, if i run (uiop:run-program "/path/to/test.sh" :output *standard-output*) in my lisp, i only 2018-08-24T21:04:04Z defaultxr: see 'hi' after the script exits, after the 'sleep 20' finishes. using SBCL 1.4.10, Emacs 26.1, Swank from Quicklisp, Slime from MELPA. already tried using (finish-output) in case that would have any effect but it doesn't seem to. 2018-08-24T21:04:43Z Shinmera: Colleen: tell defaultxr look up simple-inferiors 2018-08-24T21:04:43Z Colleen: defaultxr: About simple-inferiors https://shinmera.github.io/simple-inferiors#about_simple-inferiors 2018-08-24T21:08:15Z defaultxr: trying this, but unfortunately it has the same issue... running (simple-inferiors:run "/path/to/test.sh" :output t) and i don't get the output until the script finishes 2018-08-24T21:08:24Z pjb: stacksmith: there's of course https://gitlab.common-lisp.net/explore/projects?sort=latest_activity_desc 2018-08-24T21:09:07Z stacksmith: pjb: Oh, somehow I missed that one! 2018-08-24T21:09:57Z pjb: stacksmith: but of course, the question is that any of those repositories may fail or be bought by evil companies. The only solution is to clone your repositories on all of them… 2018-08-24T21:10:09Z Shinmera: defaultxr: Works for me 2018-08-24T21:10:15Z richardjdare joined #lisp 2018-08-24T21:10:44Z Shinmera: defaultxr: also, are you sure you pasted the right example? There's a second required argument to the function... 2018-08-24T21:11:00Z defaultxr: oops, yeah, i did include an empty list for the arguments 2018-08-24T21:11:24Z defaultxr: but yeah... it doesn't work for me. are you using sbcl 1.4.10 as well Shinmera ? 2018-08-24T21:11:33Z Shinmera: Yes. 2018-08-24T21:11:34Z stacksmith: pjb: I am not entirely paranoid yet - just don't want to waste time, support evil or eat animals, whenever possible. 2018-08-24T21:12:00Z vlatkoB quit (Remote host closed the connection) 2018-08-24T21:12:53Z pjb: stacksmith: it's not being paranoid. common-lisp.net has already been done. gitorius.org has been bought by gitlab.com, and github.com has been bought by microsoft. 2018-08-24T21:13:52Z pjb: stacksmith: so it WILL occur again, so you better clone your repositories. It's easy to push on all of them at once. cf. eg. https://github.com/informatimago/bin/blob/master/git-groups 2018-08-24T21:14:29Z semz quit (Quit: Leaving) 2018-08-24T21:14:49Z pjb: even github.com has already been down, several time (or if not specifically done, at least unaccessible for 24 hours from certain parts of the network). 2018-08-24T21:14:55Z Shinmera: Also useful: updating all git repositories in a directory with this Lisp snippet. http://plaster.tymoon.eu/view/650 2018-08-24T21:15:11Z torbo joined #lisp 2018-08-24T21:15:20Z stacksmith: what happened to common-lisp.net? 2018-08-24T21:15:52Z pjb: It was a DNS problem IIRC. Perhaps it was common-lisp.org and it became common-lisp.net ? 2018-08-24T21:16:39Z pjb: common-lisp.org is currently parked. 2018-08-24T21:16:42Z pjb: unused. 2018-08-24T21:20:14Z makomo quit (Quit: WeeChat 2.2) 2018-08-24T21:25:20Z papachan quit (Quit: WeeChat 2.2) 2018-08-24T21:25:35Z stacksmith: Shinmera: thanks. 2018-08-24T21:26:26Z stacksmith: pjb: thanks, very helpful. 2018-08-24T21:32:17Z jack_rabbit joined #lisp 2018-08-24T21:36:40Z Denommus` quit (Read error: Connection reset by peer) 2018-08-24T21:53:21Z richardjdare quit (Quit: Leaving) 2018-08-24T21:54:57Z LiamH quit (Quit: Leaving.) 2018-08-24T21:55:48Z Fare quit (Ping timeout: 252 seconds) 2018-08-24T21:56:24Z jkordani joined #lisp 2018-08-24T21:57:12Z josemanuel quit (Quit: leaving) 2018-08-24T21:59:46Z jkordani_ quit (Ping timeout: 244 seconds) 2018-08-24T22:00:14Z angavrilov quit (Remote host closed the connection) 2018-08-24T22:00:30Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-24T22:01:20Z asarch quit (Quit: Leaving) 2018-08-24T22:10:53Z dented42 joined #lisp 2018-08-24T22:20:59Z dale quit (Quit: dale) 2018-08-24T22:31:17Z random-nick quit (Ping timeout: 244 seconds) 2018-08-24T22:32:49Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-24T22:35:55Z Bike joined #lisp 2018-08-24T22:37:24Z nanoz joined #lisp 2018-08-24T22:48:41Z emacsomancer quit (Quit: WeeChat 2.2) 2018-08-24T22:51:45Z astalla quit (Quit: Leaving) 2018-08-24T22:52:06Z astalla joined #lisp 2018-08-24T22:52:45Z Fare joined #lisp 2018-08-24T23:01:24Z robotoad quit (Quit: robotoad) 2018-08-24T23:15:01Z robotoad joined #lisp 2018-08-24T23:25:30Z astalla quit (Ping timeout: 252 seconds) 2018-08-24T23:27:11Z dyelar quit (Remote host closed the connection) 2018-08-24T23:31:25Z caltelt joined #lisp 2018-08-24T23:52:33Z Roy_Fokker joined #lisp 2018-08-24T23:55:03Z makomo joined #lisp 2018-08-24T23:59:47Z markoong quit (Quit: Konversation terminated!) 2018-08-24T23:59:59Z markoong joined #lisp 2018-08-25T00:00:02Z Fare quit (Ping timeout: 272 seconds) 2018-08-25T00:00:40Z markoong quit (Read error: Connection reset by peer) 2018-08-25T00:02:18Z pierpal quit (Ping timeout: 252 seconds) 2018-08-25T00:08:32Z Kundry_Wag joined #lisp 2018-08-25T00:11:10Z torbo left #lisp 2018-08-25T00:11:59Z Ober joined #lisp 2018-08-25T00:21:40Z gector joined #lisp 2018-08-25T00:31:10Z nanoz quit (Ping timeout: 268 seconds) 2018-08-25T00:45:33Z Fare joined #lisp 2018-08-25T00:54:02Z elfmacs joined #lisp 2018-08-25T00:59:56Z dented42 joined #lisp 2018-08-25T01:00:04Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-25T01:08:14Z dale joined #lisp 2018-08-25T01:10:13Z moei quit (Ping timeout: 268 seconds) 2018-08-25T01:16:06Z n3t quit (Ping timeout: 264 seconds) 2018-08-25T01:19:53Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-25T01:23:59Z shifty joined #lisp 2018-08-25T01:25:10Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-25T01:39:52Z Fare quit (Ping timeout: 244 seconds) 2018-08-25T01:40:18Z Fare joined #lisp 2018-08-25T01:40:26Z makomo quit (Ping timeout: 252 seconds) 2018-08-25T01:50:54Z jlarocco joined #lisp 2018-08-25T01:51:36Z anewuser joined #lisp 2018-08-25T01:55:05Z nebunez joined #lisp 2018-08-25T01:57:00Z Kundry_Wag quit (Remote host closed the connection) 2018-08-25T01:57:31Z robotoad quit (Quit: robotoad) 2018-08-25T01:57:34Z Kundry_Wag joined #lisp 2018-08-25T02:02:16Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-25T02:07:27Z robotoad joined #lisp 2018-08-25T02:12:53Z buffergn0me joined #lisp 2018-08-25T02:15:30Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-08-25T02:16:58Z dvdmuckle joined #lisp 2018-08-25T02:17:26Z robotoad quit (Quit: robotoad) 2018-08-25T02:18:01Z ebzzry joined #lisp 2018-08-25T02:19:42Z Fare quit (Ping timeout: 268 seconds) 2018-08-25T02:20:04Z robotoad joined #lisp 2018-08-25T02:25:27Z pierpa quit (Quit: Page closed) 2018-08-25T02:31:15Z Fare joined #lisp 2018-08-25T02:31:25Z Kundry_Wag joined #lisp 2018-08-25T02:36:32Z Khisanth quit (Ping timeout: 252 seconds) 2018-08-25T02:42:13Z koenig joined #lisp 2018-08-25T02:48:33Z dddddd quit (Remote host closed the connection) 2018-08-25T02:53:51Z Khisanth joined #lisp 2018-08-25T02:55:42Z nebunez quit (Ping timeout: 264 seconds) 2018-08-25T02:58:50Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-25T03:04:54Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-25T03:14:07Z elfmacs joined #lisp 2018-08-25T03:19:06Z Copenhagen_Bram quit (Ping timeout: 264 seconds) 2018-08-25T03:21:57Z pjb quit (Ping timeout: 252 seconds) 2018-08-25T03:27:02Z _whitelogger quit (Remote host closed the connection) 2018-08-25T03:27:04Z Copenhagen_Bram joined #lisp 2018-08-25T03:29:16Z _whitelogger joined #lisp 2018-08-25T03:30:18Z jkordani quit (Read error: Connection reset by peer) 2018-08-25T03:31:20Z PuercoPop joined #lisp 2018-08-25T03:40:40Z Kundry_Wag joined #lisp 2018-08-25T03:40:42Z anewuser quit (Ping timeout: 264 seconds) 2018-08-25T03:41:48Z jlarocco quit (Ping timeout: 244 seconds) 2018-08-25T03:44:04Z anewuser joined #lisp 2018-08-25T03:54:39Z beach: Good morning everyone! 2018-08-25T03:55:40Z Ober: morning beach 2018-08-25T03:56:06Z dented42 joined #lisp 2018-08-25T04:02:04Z no-defun-allowed: morning beach 2018-08-25T04:13:06Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-25T04:24:18Z taof joined #lisp 2018-08-25T04:26:05Z earl-ducaine quit (Remote host closed the connection) 2018-08-25T04:27:18Z shifty quit (Ping timeout: 272 seconds) 2018-08-25T04:31:55Z gector quit (Ping timeout: 244 seconds) 2018-08-25T04:34:32Z gector joined #lisp 2018-08-25T04:37:18Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-25T04:44:00Z housel quit (Read error: Connection reset by peer) 2018-08-25T04:44:16Z housel joined #lisp 2018-08-25T04:47:37Z Kundry_Wag joined #lisp 2018-08-25T04:55:10Z Fare quit (Ping timeout: 272 seconds) 2018-08-25T04:56:45Z payphone_ is now known as payphone 2018-08-25T04:57:35Z dale quit (Quit: dale) 2018-08-25T05:02:36Z vlatkoB joined #lisp 2018-08-25T05:08:18Z buffergn0me quit (Ping timeout: 264 seconds) 2018-08-25T05:20:23Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-25T05:32:52Z trittweiler joined #lisp 2018-08-25T05:36:09Z charh quit (Remote host closed the connection) 2018-08-25T05:38:11Z kaun joined #lisp 2018-08-25T05:39:30Z kaun quit (Quit: IRC for Sailfish 0.9) 2018-08-25T05:42:26Z SaganMan quit (Ping timeout: 256 seconds) 2018-08-25T05:43:05Z jasmith joined #lisp 2018-08-25T05:44:46Z lavaflow quit (Read error: No route to host) 2018-08-25T05:50:08Z orivej quit (Ping timeout: 252 seconds) 2018-08-25T05:54:04Z Kundry_Wag joined #lisp 2018-08-25T05:55:54Z jlarocco joined #lisp 2018-08-25T06:00:55Z LdBeth: Hello 2018-08-25T06:01:02Z beach: Hello LdBeth. 2018-08-25T06:01:36Z no-defun-allowed: hi LdBeth 2018-08-25T06:05:18Z taof quit (Ping timeout: 264 seconds) 2018-08-25T06:07:58Z anewuser quit (Quit: anewuser) 2018-08-25T06:17:34Z m3tti joined #lisp 2018-08-25T06:19:59Z m3tti quit (Remote host closed the connection) 2018-08-25T06:21:10Z m3tti joined #lisp 2018-08-25T06:23:25Z Volt_ joined #lisp 2018-08-25T06:26:04Z mange joined #lisp 2018-08-25T06:26:25Z rippa joined #lisp 2018-08-25T06:27:38Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-25T06:31:47Z m3tti quit (Ping timeout: 244 seconds) 2018-08-25T06:32:36Z taof joined #lisp 2018-08-25T06:37:04Z taof quit (Ping timeout: 252 seconds) 2018-08-25T06:37:18Z shifty joined #lisp 2018-08-25T06:40:43Z sauvin joined #lisp 2018-08-25T06:41:30Z m3tti joined #lisp 2018-08-25T06:45:11Z m3tti quit (Remote host closed the connection) 2018-08-25T06:45:32Z m3tti joined #lisp 2018-08-25T06:47:31Z eMBee joined #lisp 2018-08-25T07:03:40Z m3tti quit (Remote host closed the connection) 2018-08-25T07:06:47Z Kundry_Wag joined #lisp 2018-08-25T07:08:57Z taof joined #lisp 2018-08-25T07:13:42Z taof quit (Ping timeout: 264 seconds) 2018-08-25T07:27:04Z mange quit (Ping timeout: 244 seconds) 2018-08-25T07:27:20Z itruslove quit (Remote host closed the connection) 2018-08-25T07:30:46Z LdBeth: Is there a CL lib dealing with ePub format? 2018-08-25T07:34:08Z caltelt quit (Ping timeout: 272 seconds) 2018-08-25T07:39:30Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-25T07:40:21Z LdBeth: I’m sure there’s a ZIP lib, but which XML/HTML parser should I use? 2018-08-25T07:41:20Z Shinmera: Whichever you like. 2018-08-25T07:42:31Z Shinmera: Some people like the one I wrote: Plump 2018-08-25T07:42:46Z no-defun-allowed: https://cliki.net/xml​ 2018-08-25T07:42:49Z nsrahmad joined #lisp 2018-08-25T07:43:18Z elfmacs joined #lisp 2018-08-25T07:43:53Z aindilis quit (Remote host closed the connection) 2018-08-25T07:45:41Z astalla joined #lisp 2018-08-25T07:45:46Z aindilis joined #lisp 2018-08-25T07:48:56Z orivej joined #lisp 2018-08-25T07:53:19Z LdBeth: Stared 2018-08-25T07:53:29Z aeth: of course Shinmera wrote one 2018-08-25T07:54:00Z Shinmera: What's that supposed to mean 2018-08-25T07:54:01Z aeth: Shinmera is prolific 2018-08-25T07:54:37Z Shinmera: Statistically, compared to the things I haven't written yet, I have not written anything at all :) 2018-08-25T07:54:39Z aeth: 158 repos. I would have guessed 400 2018-08-25T07:55:16Z LdBeth: #'no-defun-allowed: yes there are whole pages of them 2018-08-25T07:55:33Z Shinmera: aeth: It's missing the 59 repos from Shirakumo 2018-08-25T07:56:34Z jack_rabbit joined #lisp 2018-08-25T07:56:52Z aeth: Shinmera: did you write an infix library? it would be interesting to compare the various solutions people have for implementing one 2018-08-25T07:57:02Z Shinmera: I have no interest in infix, so no 2018-08-25T07:57:32Z Shinmera: glsl-toolkit parses infix formulas of course, but that's not for Lisp source. 2018-08-25T07:58:24Z aeth: I have no use for infix, but I got distracted by it because I think there can be some elegant solutions there. 2018-08-25T07:59:27Z cage_ joined #lisp 2018-08-25T08:00:38Z aeth: I made a solution that at the moment is only designed to work with binary operators with no precedence rules (it's an error to write 1 + 2 - 3 because there's no precedence). https://gitlab.com/snippets/1747132 2018-08-25T08:00:43Z aeth: e.g. (infix 1 + 2 + (3 - 4)) 2018-08-25T08:01:28Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-25T08:01:53Z DataLinkDroid quit (Ping timeout: 240 seconds) 2018-08-25T08:03:01Z aeth: Technically (infix 1 cons 2) would also work if someone wanted to create a monster. 2018-08-25T08:04:20Z Shinmera: I mean if all you're interested in is the parser logic, here you go I guess https://github.com/Shirakumo/glsl-toolkit/blob/master/grammar.lisp#L176-L238 2018-08-25T08:04:51Z aeth: you parse GLSL? 2018-08-25T08:05:28Z Shinmera: Yes. https://www.european-lisp-symposium.org/static/proceedings/2018.pdf#page=88 2018-08-25T08:07:55Z nsrahmad quit (Remote host closed the connection) 2018-08-25T08:08:09Z aeth: I do exactly the reverse 2018-08-25T08:08:54Z aeth: (I generate GLSL strings given s-expressions) 2018-08-25T08:09:47Z Shinmera: My approach allows me to copypasta shader files from the internet :) 2018-08-25T08:10:21Z Shinmera: Hopefully at some point I can convince Baggers to make Varjo output to glsl-toolkit's AST so that the two can be combined easily. 2018-08-25T08:11:56Z aeth: there are afaik two more mature attempts than mine at generating GLSL, if not three 2018-08-25T08:12:01Z aeth: including varjo 2018-08-25T08:12:21Z Shinmera: I don't doubt it. Writing an sexpr syntax is very tempting (and not too difficult) 2018-08-25T08:12:45Z Shinmera: I'm only really interested in Varjo because it does more than that 2018-08-25T08:13:23Z DataLinkDroid joined #lisp 2018-08-25T08:13:31Z aeth: The other GLSL generators' goals are actually to make it interchangeable with CL for easy refactoring afaik. 2018-08-25T08:14:25Z aeth: My goal is to eventually move my backend to SPIR-V and make it a proper language. 2018-08-25T08:16:58Z aeth: I can definitely see why Varjo's integration with a math library has it's users, though. 2018-08-25T08:26:37Z orivej quit (Ping timeout: 268 seconds) 2018-08-25T08:36:22Z aeth: Shinmera: was 2018 your first ELS? 2018-08-25T08:37:48Z Shinmera: I've been to ELS since 2015. 2018-08-25T08:38:47Z Ober images ELS to be the same crowd of folks who would rush to greet an Alien saucer landing. 2018-08-25T08:39:09Z Ober: .oO(are these the people we want the aliens to meet first...) 2018-08-25T08:40:35Z aeth: Ober: It's unlikely that an alien visitor to Earth would still be biological, so of course everyone would want to know what their source code looks like. 2018-08-25T08:41:06Z bendersteed joined #lisp 2018-08-25T08:45:12Z FreeBirdLjj joined #lisp 2018-08-25T08:48:25Z beach: Ober: Quite normal people if you ask me. Lots of variation though. 2018-08-25T08:51:08Z gitfaf joined #lisp 2018-08-25T09:01:08Z bendersteed quit (Remote host closed the connection) 2018-08-25T09:01:33Z housel quit (Read error: Connection reset by peer) 2018-08-25T09:04:51Z pierpal joined #lisp 2018-08-25T09:06:08Z gitfaf quit (Remote host closed the connection) 2018-08-25T09:06:49Z edgar-rft: Isn't anything a variation of normal? 2018-08-25T09:08:18Z smokeink joined #lisp 2018-08-25T09:09:40Z taof joined #lisp 2018-08-25T09:13:57Z taof quit (Ping timeout: 252 seconds) 2018-08-25T09:16:56Z mkolenda quit (Remote host closed the connection) 2018-08-25T09:17:38Z mkolenda joined #lisp 2018-08-25T09:23:26Z pierpal quit (Read error: Connection reset by peer) 2018-08-25T09:28:54Z random-nick joined #lisp 2018-08-25T09:33:30Z bendersteed joined #lisp 2018-08-25T09:34:02Z light2yellow joined #lisp 2018-08-25T09:34:48Z igemnace quit (Remote host closed the connection) 2018-08-25T09:36:39Z Kundry_Wag joined #lisp 2018-08-25T09:38:27Z makomo joined #lisp 2018-08-25T09:40:08Z orivej joined #lisp 2018-08-25T09:40:31Z gitfaf joined #lisp 2018-08-25T09:45:30Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T09:47:05Z moei joined #lisp 2018-08-25T09:48:30Z defaultxr quit (Ping timeout: 264 seconds) 2018-08-25T09:54:27Z vlatkoB quit (Remote host closed the connection) 2018-08-25T09:56:03Z vlatkoB joined #lisp 2018-08-25T10:01:59Z zfree quit (Quit: zfree) 2018-08-25T10:05:52Z vlatkoB quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-25T10:06:36Z vlatkoB joined #lisp 2018-08-25T10:07:08Z gitfaf joined #lisp 2018-08-25T10:08:04Z foom joined #lisp 2018-08-25T10:08:47Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-25T10:09:30Z foom2 quit (Ping timeout: 264 seconds) 2018-08-25T10:11:34Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-25T10:13:48Z moei quit (Read error: Connection reset by peer) 2018-08-25T10:15:11Z pjb joined #lisp 2018-08-25T10:16:43Z elfmacs quit (Quit: WeeChat 2.2) 2018-08-25T10:18:55Z steiner joined #lisp 2018-08-25T10:19:52Z pierpal joined #lisp 2018-08-25T10:36:37Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-25T10:37:40Z vlatkoB quit (Remote host closed the connection) 2018-08-25T10:44:06Z vlatkoB joined #lisp 2018-08-25T10:46:45Z mkolenda quit (Remote host closed the connection) 2018-08-25T10:47:19Z mkolenda joined #lisp 2018-08-25T10:48:27Z v0|d quit (Ping timeout: 268 seconds) 2018-08-25T10:49:33Z pierpal quit (Quit: Poof) 2018-08-25T10:49:51Z pierpal joined #lisp 2018-08-25T10:53:43Z dddddd joined #lisp 2018-08-25T11:00:39Z orivej quit (Ping timeout: 252 seconds) 2018-08-25T11:01:21Z robotoad quit (Quit: robotoad) 2018-08-25T11:01:53Z FreeBirdLjj joined #lisp 2018-08-25T11:04:31Z gitfaf joined #lisp 2018-08-25T11:07:34Z SenasOzys quit (Ping timeout: 268 seconds) 2018-08-25T11:08:54Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T11:10:37Z taof joined #lisp 2018-08-25T11:15:22Z taof quit (Ping timeout: 252 seconds) 2018-08-25T11:15:39Z gitfaf joined #lisp 2018-08-25T11:16:28Z steiner quit (Ping timeout: 252 seconds) 2018-08-25T11:20:27Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-25T11:20:36Z wigust quit (Ping timeout: 244 seconds) 2018-08-25T11:23:28Z makomo: what is the proper way to ensure a function is available at compile-time for a macro, *if* it's from another package you don't control? 2018-08-25T11:24:16Z makomo: i.e. you can't just add an EVAL-WHEN around the DEFUN because you don't control the source 2018-08-25T11:24:52Z bendersteed quit (Remote host closed the connection) 2018-08-25T11:25:02Z Shinmera: ? If you have a system as a dependency it's loaded before your system even starts compiling. 2018-08-25T11:25:30Z no-defun-allowed: Yeah, it'd be loaded first. 2018-08-25T11:26:47Z makomo: right, that's what i thought but are those DEFUNs from the loaded system required to be in the compilation environment? 2018-08-25T11:26:51Z gitfaf joined #lisp 2018-08-25T11:27:23Z makomo: i mean, what's the difference between those and anything i control/compile? i need an EVAL-WHEN, why don't they? 2018-08-25T11:27:47Z makomo: (i'm assuming they don't have an EVAL-WHEN) 2018-08-25T11:27:50Z _death: because you put your function in the same file and that file contains uses of the macro 2018-08-25T11:27:55Z Shinmera: Because if you have a single file that file is processed in multiple stages. 2018-08-25T11:28:04Z makomo: ohhh 2018-08-25T11:28:26Z makomo: so the point is the functions being in the same file as the macro 2018-08-25T11:28:31Z SenasOzys joined #lisp 2018-08-25T11:29:43Z _death: no, the point is the macro-using forms being in the same file as the macro and its dependencies.. 2018-08-25T11:30:03Z thawes quit (Remote host closed the connection) 2018-08-25T11:31:30Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-25T11:31:31Z makomo: well yes, of course 2018-08-25T11:31:35Z makomo: but it has to occur within the same file 2018-08-25T11:33:19Z thawes joined #lisp 2018-08-25T11:33:29Z gitfaf joined #lisp 2018-08-25T11:34:36Z _death: does it 2018-08-25T11:36:17Z Shinmera: It does not. Consider (compile-file "a.lisp") (compile-file "b.lisp") (load "a.lisp") (load "b.lisp") 2018-08-25T11:36:37Z Shinmera: err, (load "a.fasl") (load "b.fasl") 2018-08-25T11:37:21Z Shinmera: You're just "lucky" that ASDF compiles and then immediately loads everything sequentially. 2018-08-25T11:38:18Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T11:39:54Z _death: if b.lisp is dependent on definitions in a.lisp, then it means a.fasl must be loaded before compiling b.lisp 2018-08-25T11:41:37Z beach: Shinmera: And in fact, there was a version of ASDF that didn't do it that way. 2018-08-25T11:42:59Z pjb: If b.lisp needs at macroexpansion time functions defined in a.lisp, then use: (load (compile-file "a.lisp")) (compile-file "b.lisp") 2018-08-25T11:43:30Z pjb: makomo: the trick here, is that the compilation environment used by compile-file is the run-time environment where compile-file is called. 2018-08-25T11:43:46Z taof joined #lisp 2018-08-25T11:44:52Z pjb: See http://www.lispworks.com/documentation/HyperSpec/Body/03_ba.htm 2018-08-25T11:46:25Z gitfaf joined #lisp 2018-08-25T11:48:39Z makomo: but isn't that a separate problem? i guess i wasn't too clear. what i was getting at with "it must be in the same file" was for the case when all of the macro's dependencies are within the same file as that macro 2018-08-25T11:48:52Z makomo: that's when you need to use EVAL-WHEN 2018-08-25T11:49:06Z taof quit (Ping timeout: 264 seconds) 2018-08-25T11:49:35Z Shinmera: If the dependencies are in separate files, but the files are all compiled without being loaded, you still need to use eval-when. 2018-08-25T11:50:09Z makomo: ah, right, that's true 2018-08-25T11:50:10Z _death: again, no.. if you move the macro-using forms to another file that gets loaded afterwards, then you don't need eval-when 2018-08-25T11:50:33Z Shinmera: In the general case of an ASDF sequential-plan, this case won't occur, but it really has nothing to do with files, but simply with the order in which the phases happen to which parts of code. 2018-08-25T11:50:43Z makomo: _death: i'm talking about the macro itself and its dependencies, not the dependents 2018-08-25T11:51:30Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T11:51:35Z _death: makomo: me too. if you have a macro and a function that it calls when expanded, there's no need for eval-when if there's no expansion of it happening in the same file 2018-08-25T11:51:59Z Shinmera: defun is specified to only have load-time side-effects, so you need to eval-when it if you need it to have compile-time side-effects, that's all. 2018-08-25T11:52:14Z Shinmera: *load-time/execute 2018-08-25T11:52:40Z pjb: It's worse than that! If you compile the files without loading them, then it's possible that no compiled definition is known after compile-file returns! 2018-08-25T11:52:42Z makomo: Shinmera: yeah, true, it isn't intrinsically related to files. it's just that i think of it that way since the lisp compilation process specifically mentions files 2018-08-25T11:53:00Z makomo: _death: oh hm, i see what you mean 2018-08-25T11:53:16Z pjb: The compilation environment is not necessarily the same as the startup environment! It can be a new environment created by compile-file, and thrown away once compilation of the compilation-unit is finished. 2018-08-25T11:53:49Z random-nick quit (Ping timeout: 268 seconds) 2018-08-25T11:54:56Z pjb: (with-compilation-unit (compile-file "a.lisp")) (compile-file "b.lisp") would let the compiler know what has been compiled in a.lisp while compiling b.lisp, but it wouldn't be sufficient, since the result of that former compilation may be not available. You would still have to wrap the functions definition in a needed by b in an eval-when. 2018-08-25T11:59:49Z makomo: pjb: was that supposed to be (w-c-u () (c-f ...) (c-f ...))? 2018-08-25T12:00:33Z gitfaf joined #lisp 2018-08-25T12:05:20Z pjb: Exact. 2018-08-25T12:05:54Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T12:06:35Z Kundry_Wag joined #lisp 2018-08-25T12:07:15Z pjb: makomo: the thing is that even inside the compilation environment (and this is why it's a distinguished concept), compiling eg. a defun doesn't insert into the compilation environment the body of the function, but only the declaration that the name will be fbound at run-time (and possibly other notations such as types of arguments and results, etc). 2018-08-25T12:07:37Z pjb: This is why loading into the environment before calling compile-file, or using eval-when is required. 2018-08-25T12:08:48Z gitfaf joined #lisp 2018-08-25T12:08:54Z pjb: It may seem strange when you think about usual CL implementation, but consider ecl, where the compiler calls gcc to generate an object file. Without an explicit dynamic linking of those object files at run-time, there's no way the compiled definitions would be available in the lisp process. 2018-08-25T12:09:49Z pjb: This allows also the compiler to be non-atomic and to take its time to compile and optimize. Then loading a fasl can be made atomic, and replace in a consistent way a set of functions. 2018-08-25T12:10:20Z makomo: pjb: i'm half familiar with that. i read about the compilation environment being distinct and the various uses for EVAL-WHEN but have forgotten some of it by now. 2018-08-25T12:10:37Z makomo: pjb: that bit about ecl is pretty interesting 2018-08-25T12:10:58Z angeru joined #lisp 2018-08-25T12:11:05Z pjb: makomo: that's where asdf (or other system definition systems) come about. It manages the dependencies between the files, and ensure they're loaded before they're needed. 2018-08-25T12:13:42Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T12:15:22Z trittweiler quit (Ping timeout: 244 seconds) 2018-08-25T12:16:17Z makomo: when the spec says "The evaluation environment is a run-time environment ..." and "The run-time environment is the environment ...", are the uses of the word "run-time environment" here distinct? 2018-08-25T12:17:17Z makomo: the former is a characterization of the "evalution environment", while the latter is an actual name for a distinct environment? 2018-08-25T12:17:36Z makomo: so technically a run-time environment is a run-time environment too? :-D 2018-08-25T12:19:41Z pjb: Yes. 2018-08-25T12:20:25Z pjb: There's a category of environments called "run-time environment", and there is a current environment that is a "run-time environment" and that is called the run-time environment. 2018-08-25T12:20:45Z gitfaf joined #lisp 2018-08-25T12:21:06Z pjb: (There may be several run-time environments, but in usual implementations, they're all the same; but it's not necessary). 2018-08-25T12:21:11Z makomo: right. a bit convoluted but oh well. i have nothing against such terminology really because it's natural to overload words, but i don't like when it's not mentioned/clarified by a document 2018-08-25T12:21:53Z pjb: The important point here, is that the environment where macroexpansions are evaluated (which is a run-time environment), MAY BE DIFFERENT from the startup environment (which is a run-time environment). 2018-08-25T12:22:31Z pjb: This means that: (defvar *m* 0) (defmacro m () (incf *m*) nil) (m) *m* -> 0 is possible. 2018-08-25T12:22:42Z pjb: even at the REPL. 2018-08-25T12:22:48Z no-defun-allowed: Goodnight everyone! 2018-08-25T12:23:21Z makomo: no-defun-allowed: night 2018-08-25T12:23:22Z pjb: It will surely occur if you put (defvar *m* 0) (defmacro m () (incf *m*) nil) in a file and use compile-file, then load the fasl in a new image. 2018-08-25T12:23:32Z random-nick joined #lisp 2018-08-25T12:24:38Z pjb: I would advise in general, to replicate the side effects in the expansion: (defmacro m () (incf *m*) `(progn (incf *m*) nil)) 2018-08-25T12:25:12Z pjb: (like, when you want to store metadata in tables, that you want to be available both at compilation time and at run time). 2018-08-25T12:25:42Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T12:27:20Z moei joined #lisp 2018-08-25T12:27:32Z makomo: pjb: and could the same problem be solved using EVAL-WHEN? 2018-08-25T12:29:22Z pjb: Yes, in a way. But often the side effects are used by the macro itself to determine the expansion, so eval-when wouldn't do. 2018-08-25T12:29:44Z pjb: (defmacro m () `(eval-when (:compile-toplevel :execute) (incf *m*) nil)) 2018-08-25T12:30:36Z pjb: in practice you can also have the case: (defmacro m () (incf *m*) `(progn (incf *m*) ',*m*)) where (m) returns the value of *m* from macroexpansion time. 2018-08-25T12:31:07Z pjb: Of course, *m* is just an example, it could be some type information, some grammar rule compiled at macroexpansion time, real stuff. 2018-08-25T12:31:47Z gitfaf joined #lisp 2018-08-25T12:32:22Z pjb: Also, it is better if you can just define simplier macros and functions in separate files and load them and compile in the right order, rather than using eval-when and sophisticated plays between the environments like that. But it's not always possible. 2018-08-25T12:33:39Z pjb: From a software engineering point of view, I'm not saying that having a single environment and mutating at will at any time is worse. It can simplify things. But it is much less reproduceable, since dependencies can easily become circular. Nowadays, we prefer to have reproducible builds, where dependencies are clear and explicit. 2018-08-25T12:34:14Z pjb: So we can have automatic tests, Continuous Integrations, etc. 2018-08-25T12:36:36Z makomo: pjb: i see. and DEFVAR doesn't need any EVAL-WHEN treatment for this incrementing at compile-time? 2018-08-25T12:37:06Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T12:40:12Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-25T12:40:58Z makomo: so the relation between the environments is compilation >= evaluation >= startup. the fact that it's an inequality is where the portability issues appear 2018-08-25T12:41:02Z gitfaf joined #lisp 2018-08-25T12:44:02Z makomo: and how is the "startup environment" different from the "run-time environment"? the "startup environment" is a "snapshot" of the "run-time environment" before compilation took place, but can anything change the "run-time environment" during compilation? 2018-08-25T12:45:23Z pjb: makomo: defvar and defparameter initialize the variable at run-time. At compilation time, only the fact that those symbols are special (dynamic binding) is noted. 2018-08-25T12:46:06Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-25T12:46:10Z pjb: If a defvar or defparameter form appears as a top level form, the compiler must recognize that the name has been proclaimed special. However, it must neither evaluate the initial-value form nor assign the dynamic variable named name at compile time. 2018-08-25T12:46:56Z pjb: well the startup environment can be the run-time environment, or can be a copy of it. 2018-08-25T12:48:58Z pjb: For example, since any form can be evaluated at compilation time, it would be a perfectly good design, to fork a new unix process into a chroot jail at the beginning of compile-file. Then you could compile code obtained from the wild. In that case, the startup environment would technically be the runtime environment in the new unix process, but it would also be a clone of the original runtime environment in the calling image. 2018-08-25T12:49:35Z makomo: pjb: right, so with the first *m* example above, the name *m* is unbound at compile-time (assuming a clean startup environment, even if startup == compilation, *m* would still be unbound). how is the macro able to incf it then? 2018-08-25T12:49:40Z pjb: makomo: A lot of those definitions are actually legalese written to allow different kinds of implementations. 2018-08-25T12:50:15Z pjb: makomo: good point. It's bug, I would have to use eval-when :compile-toplevel around the defvar. 2018-08-25T12:50:24Z makomo: that's what i'm interested at 2018-08-25T12:50:40Z makomo: i didn't see how *m* could be available at compile-time 2018-08-25T12:50:58Z pjb: This is important. The problem is that it is not a problem until you use compile-file and a clean environment. 2018-08-25T12:51:18Z pjb: In the repl, or in slime, it would work, because we don't use compile-file. 2018-08-25T12:51:36Z makomo: right, because the compilation environment inherits stuff from the startup environment? 2018-08-25T12:51:43Z pjb: yep. 2018-08-25T12:52:13Z makomo: i was a bit thrown off by the "even at the REPL", because i thought that somehow the REPL case was the curious one 2018-08-25T12:52:45Z pjb: Interactively, it's COMPILE that's used, not COMPILE-FILE, and with slime if we use compile-file, it's called from the interactive runtime environment where such toplevel forms have already been evaluated. (C-x C-e or loading the file). 2018-08-25T12:52:52Z makomo: well both are, because you were demonstrating the relationship between the environments 2018-08-25T12:53:07Z pjb: makomo: in a way, yes, it's the curious one. But it's also the usual case for lispers. 2018-08-25T12:53:18Z makomo: mhm 2018-08-25T12:53:26Z pjb: We usually work at the repl (or in slime, same thing). 2018-08-25T12:53:55Z makomo: yeah, of course :-D 2018-08-25T12:55:04Z makomo: i still don't see the exact difference between "startup environment" and "runtime environment", or rather, i don't see how "startup environment" is a new "type" of environment when it's just a particular instance of the run-time environment 2018-08-25T12:55:09Z pjb: But when it's time to generate the application, I use a generate.lisp script that is loaded without the rc files, and that will load ~/quicklisp/setup.lisp and quickload the system to compile and load it (often after having cleaned up ~/.cache/common-lisp/ for a clean build), and to save the lisp image. This clean environment is quite different from the development repl/slime environment where we accumulate cruft. So often such 2018-08-25T12:56:06Z pjb: startup environment is the "runtime environment" where (compile-file …) is called. 2018-08-25T12:56:29Z pjb: It's just to distinguish it from eg. the "runtime environment" where macroexpansion occurs. 2018-08-25T12:56:45Z pjb: If they are different, then side effects from macroexpansion won't be seen after compilation. 2018-08-25T12:56:59Z pjb: If they're the same, then side effects from macroexpansion will be seen after compilation. 2018-08-25T12:59:48Z pjb: (defun compile-file (…) (let* ((startup-environment (current-environment)) (evaluation-environment (clone-environment startup-environment)) (compilation-environment (clone-environment evaluation-environment))) (compile-with-environments evaluation-enviroment #| = for macroexpansion |# compilation-environment #| for eval-when :compile-toplevel and compilation-time effects |# …))) 2018-08-25T13:00:24Z pjb: clone-environment can effectively duplicate the environment or can be identity, returning the same, depending on the implementation. 2018-08-25T13:08:36Z makomo: pjb: just to dig a little deeper: the fact that this potentially new environment inherits from the startup environment means that it shares the variables (the bindings). however, the name *m* exists in different namespaces (environments) so when (incf *m*) is done, it changes the binding only in this new environment? 2018-08-25T13:10:22Z makomo: a thing that ties into this and that's been bugging me for a while is how exactly "value cells" behave, namely how the assignment vs. binding thing fits into that picture 2018-08-25T13:10:54Z makomo: i know that "value cells" are traditional terminology and that the "cell" doesn't really belong to the symbol but to the environment, right? 2018-08-25T13:12:55Z makomo: but when you do (setf *m* 10), what exactly happens? is it even assignment if it changes the symbol-value of *m* which is supposedly part of the environment, not the symbol? 2018-08-25T13:17:05Z Patternmaster joined #lisp 2018-08-25T13:18:25Z makomo: why this confuses me is the fact that, if the environments share the bindings (assuming this is even correct) and point to the same integer 0, and if SETF does in fact assign (which it surely does, but i'm confused again) wouldn't SETF-ing either of the *m*s then change the underlying integer? 2018-08-25T13:18:39Z makomo: something in this picture is obviously wrong, but i don't know what exactly 2018-08-25T13:19:42Z makomo: (cont.) ... change the underlying integer? the side-effect would then surely be visible in both environments whether or not the environments were independent or not? 2018-08-25T13:22:28Z ebrasca quit (Ping timeout: 272 seconds) 2018-08-25T13:24:04Z bendersteed joined #lisp 2018-08-25T13:24:10Z makomo: were independent?* 2018-08-25T13:25:34Z trittweiler joined #lisp 2018-08-25T13:26:11Z mason joined #lisp 2018-08-25T13:26:24Z bendersteed quit (Remote host closed the connection) 2018-08-25T13:26:39Z beach: makomo: The standard is written so that it is possible to have a slot in the symbol for the global value as a special variable. 2018-08-25T13:27:00Z beach: makomo: If an implementation does that, then all global environments are basically the same. 2018-08-25T13:27:46Z beach: Put differently, there is only one global environment in the system. And it is "spread out" in that part of it is symbol slots, part of it in hash tables that are the values of global variables, etc. 2018-08-25T13:28:25Z beach: makomo: But, a better way of thinking about it is that there is some kind of first-class global environment object that contains the bindings. 2018-08-25T13:28:45Z beach: makomo: Then you could separate the compilation environment, the startup environment etc. 2018-08-25T13:29:22Z beach: makomo: And in fact that is precisely the point of this paper: http://metamodular.com/environments.pdf 2018-08-25T13:29:46Z razzy quit (Read error: Connection reset by peer) 2018-08-25T13:29:48Z beach: makomo: I invented it so that I could cross compile SICL in a "natural" way. 2018-08-25T13:29:55Z makomo: beach: what would be the difference between "symbol slots" and "the values of global variables"? aren't these values contained within these slots? 2018-08-25T13:30:10Z makomo: beach: that's exactly where i got the idea from :-), we mentioned it before 2018-08-25T13:30:12Z razzy joined #lisp 2018-08-25T13:31:13Z beach: makomo: In a system where symbols have slots for special variable values, the symbol slot would contain the global value of the variable. 2018-08-25T13:31:18Z Bike: if you write a simple metacircular lisp interpreter, you'll usually have a separate environment object with the values in it, rather than storing them in the symbol itself (since there's no way to do that yourself exactly) 2018-08-25T13:31:26Z Bike: same deal as that 2018-08-25T13:31:29Z SaganMan joined #lisp 2018-08-25T13:31:50Z beach: makomo: In a system like SICL, there is no slot in symbols that have anything to do with the global value of that symbol as a variable. 2018-08-25T13:32:22Z makomo: beach: right, so in a system like that you wouldn't have the hash tables? in other words, the slots and the hash tables can't coexist, right? 2018-08-25T13:32:28Z makomo: either you pick one or the other technique 2018-08-25T13:32:44Z beach: Oh, the environment contains hash tables instead. 2018-08-25T13:32:57Z beach: You still have to map a symbol name to a binding. 2018-08-25T13:33:25Z beach: So in fact, the first-class global environments of SICL contain several hash tables. 2018-08-25T13:33:38Z beach: One for mapping symbols to variable bindings. 2018-08-25T13:33:50Z beach: One for mapping symbols to type definitions. 2018-08-25T13:34:08Z beach: One for mapping symbols to method-combination objects. 2018-08-25T13:34:10Z beach: etc. etc. 2018-08-25T13:35:11Z makomo: ohhh, now i see. it never occured to me that you could have stuff other than variables/functions in the environment :-D 2018-08-25T13:35:18Z on_ion is now known as oni-on-ion 2018-08-25T13:35:57Z makomo: that's why it's spread out if you decide to use slots -- value/function cells as part of the symbols, but then the type definitions, etc. within the hash tables? 2018-08-25T13:36:11Z beach: Yeah, it's weird. 2018-08-25T13:36:34Z makomo: and i guess you could go full on with the "slot implementation" and for example store type definitions as part of the symbol too? 2018-08-25T13:36:49Z makomo: i understand it's purely an implementation thing, but you could do it theoretically i guess 2018-08-25T13:36:50Z beach: In some systems it is even the case that the function names corresponding to symbols have slots in the symbols, but the ones that have names like (setf ) are contained in a separate hash table. 2018-08-25T13:36:52Z Bike: you could, but then you start having a lot of empty slots in every symbol. 2018-08-25T13:37:00Z makomo: Bike: mhm 2018-08-25T13:37:21Z makomo: beach: oh interesting 2018-08-25T13:37:27Z kajo quit (Remote host closed the connection) 2018-08-25T13:37:37Z beach: In SICL, a symbol has only a PACKAGE slot and a NAME slot. 2018-08-25T13:38:03Z makomo: the confusing thing now is that thinking in terms of these "cells"/"slots" gives you a "location"/"place" to think about when talking about assignment 2018-08-25T13:38:21Z kajo joined #lisp 2018-08-25T13:38:23Z makomo: but when you get rid of these slots and go the "hash table way", what happens when you SETF a symbol? 2018-08-25T13:38:37Z makomo: the binding is replaced within the environment? 2018-08-25T13:38:37Z beach: Yes, it is not very good on the part of the Common Lisp HyperSpec to use terminology that suggests this kind of implementation. 2018-08-25T13:39:21Z beach: So, in SICL, the bindings associated with variables etc are "cells", mainly just an indirection. I use CONS cells for that. 2018-08-25T13:39:48Z beach: So when you SETF a variable or (setf (fdefinition ...)) of a function, then you change the contents of that cell. 2018-08-25T13:39:58Z makomo: i was thinking of that idea just a moment ago! 2018-08-25T13:40:04Z makomo: huh, wow 2018-08-25T13:40:09Z trittweiler: beach: No hash-code in a symbol? 2018-08-25T13:40:19Z beach: trittweiler: I may have to add that. 2018-08-25T13:40:30Z beach: makomo: Think of it as moving the slot in the symbol to the environment. 2018-08-25T13:40:46Z makomo: so something like " -> (the "cell") -> "? 2018-08-25T13:40:55Z beach: trittweiler: Then maybe not. 2018-08-25T13:41:03Z beach: I can use the address of the symbol. 2018-08-25T13:41:25Z beach: makomo: If someone asks for (symbol-value ), yes. 2018-08-25T13:41:46Z beach: makomo: But in code, if you just do *variable-name* then the first part is resolved at load time. 2018-08-25T13:41:56Z beach: So there is no loss of performance. 2018-08-25T13:42:03Z makomo: beach: i was going to ask about that. very nice 2018-08-25T13:42:39Z beach: trittweiler: The plan is to promote symbols used as hash keys to the global heap. 2018-08-25T13:42:44Z beach: ... where they won't move. 2018-08-25T13:42:50Z makomo: so then indeed SETF-ing a symbol is assignment and not some binding erasing sorcery 2018-08-25T13:43:02Z beach: No, no. 2018-08-25T13:43:07Z beach: Just change the contents of the slot. 2018-08-25T13:43:10Z Bike: binding erasing...? 2018-08-25T13:43:25Z makomo: beach: yes, "assigning that slot", is that not correct terminology? 2018-08-25T13:43:49Z beach: makomo: Assigning "to" a slot perhaps. 2018-08-25T13:44:35Z beach: Changing its contents sounds better. 2018-08-25T13:44:55Z taof joined #lisp 2018-08-25T13:46:43Z beach: makomo: There are probably two reasons that most existing implementations use the "spread out" environment. One is that they were implemented before the standard was finalized, so there was not the concept of compilation environment, etc. The other is that people probably couldn't figure out how to do it without doing a hash-table lookup for each variable reference. 2018-08-25T13:47:42Z beach: As I recall some implementations of environments in Scheme (where apparently performance is not essential) use a hash-table lookup on every reference. 2018-08-25T13:47:54Z makomo quit (Ping timeout: 252 seconds) 2018-08-25T13:47:58Z beach: It would slow things down by a factor 100 or so. 2018-08-25T13:48:38Z beach: Though maybe not compared to an interpreted implementation, as Bike explained. 2018-08-25T13:48:54Z beach: "metacircular" 2018-08-25T13:49:10Z makomo joined #lisp 2018-08-25T13:49:18Z makomo: finally! -- got disconnected 2018-08-25T13:49:25Z makomo: beach: reading the log 2018-08-25T13:49:27Z beach: I noticed. 2018-08-25T13:49:30Z taof quit (Ping timeout: 252 seconds) 2018-08-25T13:50:37Z makomo: Bike: if going the "hash table way" (and before i knew about beach's "trick" with using cons cells as "cells"/"slots") i thought of "value cells" as just bindings and therefore that SETF-ing a symbol just replaced that binding 2018-08-25T13:50:55Z Bike: that's not erasing though, it's just setf gethash 2018-08-25T13:51:56Z makomo: Bike: true i guess, replacing is a better name 2018-08-25T13:52:44Z beach: makomo: The hash table very likely contains "cells" as well. 2018-08-25T13:52:59Z beach: makomo: So you would just change the value of the cell in question. 2018-08-25T13:53:05Z makomo: beach: hm, so how exactly do you implement variable references? 2018-08-25T13:53:34Z makomo: beach: mhm. i've been looking at a hash table in a black box way 2018-08-25T13:53:39Z beach: I turn the reference into (car (load-time-value (find-variable-cell 'name))) 2018-08-25T13:54:17Z beach: Well, not quite, because there might be bindings on top. 2018-08-25T13:54:24Z beach: A better example would be a global function. 2018-08-25T13:55:07Z beach: A global function call turns into (funcall (car (load-time-value (find-function-cell '))) arg1 ...) 2018-08-25T13:56:48Z renzhi_ quit (Quit: WeeChat 2.1) 2018-08-25T13:57:02Z makomo: beach: cool, i'll have to read about load-time-value again :-). do you use the cdr for anything? 2018-08-25T13:58:13Z beach: Not at the moment. 2018-08-25T13:58:15Z Bike: it's only a cons cos there's no one-element structure built into lisp. could save some memory by making one, but that's about it 2018-08-25T13:58:17Z beach: But I could. 2018-08-25T13:58:30Z beach: makomo: What Bike said. 2018-08-25T13:58:41Z makomo: that's what i figured :-) 2018-08-25T13:58:52Z beach: But that would completely ruin my garbage collector. :) 2018-08-25T13:59:49Z beach: makomo: LOAD-TIME-VALUE just evaluates the form (or a pre-compiled version of it) at load-time and treats the result as a literal object. 2018-08-25T13:59:54Z makomo: the assignment/binding confusion is finally clear to me now. i think i also mixed up the specification and a hypothetical implementation which kept throwing me off -- i was thinking concretely instead of looking at what exactly the spec guaranteed about "cells" 2018-08-25T14:00:05Z quipa joined #lisp 2018-08-25T14:00:11Z angeru left #lisp 2018-08-25T14:00:21Z Bike: it's not like the implementation has any reaosn to mandate a memory layout or whatever 2018-08-25T14:00:31Z beach: Yeah, like I said, it's unfortunate that the standard kept that terminology. 2018-08-25T14:00:37Z makomo: but for that i would have to do a much more detailed reading of the spec so i never bothered, i guess? 2018-08-25T14:01:06Z beach: makomo: It would also take a lot of thinking. :) 2018-08-25T14:01:13Z makomo: yeah, exactly :D 2018-08-25T14:01:13Z beach: And then you would end up with SICL first-class global environments. 2018-08-25T14:03:05Z beach: makomo: I invented them for bootstrapping purposes. What SBCL does (for instance) is to use different package names at bootstrapping time so that there is no confusion between the host and the target. The Cleavir compiler does not access the host environment at all. It works with a first-class global environment to look up all the information it needs. 2018-08-25T14:04:43Z beach: makomo: In fact, I can even create a REPL that works in a particular environment, so I can execute SICL code inside SBCL. 2018-08-25T14:05:25Z beach: I can have part of the environment inherited from the host (like CONS, CAR, CDR) and the other defined by SICL-specific code. 2018-08-25T14:05:25Z smokeink quit (Ping timeout: 244 seconds) 2018-08-25T14:07:27Z Fare joined #lisp 2018-08-25T14:08:05Z makomo: beach: oh that's very nice 2018-08-25T14:08:27Z beach: Thanks. 2018-08-25T14:09:12Z beach: It allows me to debug SICL code without having a finished system yet. That makes the entire thing faster, because I can use SLIME, the inspector, etc. 2018-08-25T14:10:12Z makomo: pjb: what i wrote above is clear to me now but the run-time environment in which macroexpansion occurs is the evaluation environment, right? i was thinking of *the* run-time environment, but now it's clear to me also that compiled code doesn't have to be loaded within the same system that compiled it 2018-08-25T14:11:06Z beach: makomo: Actually, there are some severe restrictions to respect for that situation. 2018-08-25T14:11:09Z makomo: so the startup environment is the run-time environment which initiated the compilation, as you said, and the run-time environment is whichever environment the code is executed in (perhaps a completely different lisp image) 2018-08-25T14:12:17Z makomo: beach: hadn't thought of that. truly nice when you can steal parts from other implementations while you work on your own :-) 2018-08-25T14:12:17Z beach: As I recall there is some restriction that the environment into which a FASL file is loaded must be very similar to the one it was compiled in. 2018-08-25T14:12:19Z makomo: beach: oh? 2018-08-25T14:12:40Z Bike: clhs 3.2.2.3 2018-08-25T14:12:40Z specbot: Semantic Constraints: http://www.lispworks.com/reference/HyperSpec/Body/03_bbc.htm 2018-08-25T14:13:24Z makomo: i remember reading this when we had that discussion about clisp not compiling a function :-) 2018-08-25T14:13:34Z Bike: there's also a few implied by the externalization rules, like that packages have to still exist 2018-08-25T14:16:22Z makomo: so if compiling and loading within the same lisp image, are the startup environment and the run-time environment going to be the same thing (in the sense that they contain the equivalent bindings)? 2018-08-25T14:16:56Z beach: Not necessarily. 2018-08-25T14:16:56Z makomo: they're distinct environments, but since neither is modified during compilation, they're equivalent? 2018-08-25T14:17:02Z beach: I hope to make it that way in SICL. 2018-08-25T14:17:31Z beach: But in a typical system, compile-time evaluations may alter the global environment. 2018-08-25T14:17:36Z Roy_Fokker joined #lisp 2018-08-25T14:17:40Z makomo: how can that happen? can something modify the run-time environment during compilation? 2018-08-25T14:17:51Z makomo: hm, doesn't that happen in the "evaluation environment"? 2018-08-25T14:18:00Z beach: If (as is allowed) all environments are the same, yes. 2018-08-25T14:18:18Z makomo: ohh, right 2018-08-25T14:18:25Z makomo: i see, tricky 2018-08-25T14:18:42Z beach: clhs 3.2.1 2018-08-25T14:18:43Z specbot: Compiler Terminology: http://www.lispworks.com/reference/HyperSpec/Body/03_ba.htm 2018-08-25T14:19:00Z beach: Four different environments relevant to compilation are distinguished: the startup environment, the compilation environment, the evaluation environment, and the run-time environment. 2018-08-25T14:19:08Z makomo: yup, that's what i've been reading :-) 2018-08-25T14:19:25Z makomo: and the startup environment *is* the run-time environment before the compilation, not a copy of some sort? 2018-08-25T14:19:30Z beach: The compilation environment inherits from the evaluation environment, and the compilation environment and evaluation environment might be identical. The evaluation environment inherits from the startup environment, and the startup environment and evaluation environment might be identical. 2018-08-25T14:19:33Z makomo: i.e. it's just a synonym/term 2018-08-25T14:25:01Z housel joined #lisp 2018-08-25T14:28:23Z beach: makomo: So what made you contemplate all this stuff? 2018-08-25T14:30:51Z t3hyoshi joined #lisp 2018-08-25T14:37:15Z Kundry_Wag joined #lisp 2018-08-25T14:40:11Z makomo: beach: i asked a question an hour or more ago relating to EVAL-WHEN and then went to read about compiling again 2018-08-25T14:41:02Z makomo: i read about it before and formed an idea about the various environments but it wasn't completely fleshed out in my mind 2018-08-25T14:41:19Z makomo: so now i took to chance to do that 2018-08-25T14:42:32Z beach: I see. 2018-08-25T14:45:53Z nowhere_man quit (Remote host closed the connection) 2018-08-25T14:46:25Z nowhere_man joined #lisp 2018-08-25T14:46:42Z Fare quit (Ping timeout: 264 seconds) 2018-08-25T14:47:10Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-25T14:52:34Z makomo: beach: hah, it was actually more than 3 hours ago. oh well :-) 2018-08-25T14:53:40Z beach: It was a good exchange though. 2018-08-25T14:54:19Z SenasOzys quit (Ping timeout: 272 seconds) 2018-08-25T14:54:20Z makomo: yeah, definitely 2018-08-25T14:55:51Z Fare joined #lisp 2018-08-25T14:56:23Z pjb: Well, historically the additionnal bindings, such as types, etc, were stored in the symbol-plist. 2018-08-25T15:00:03Z SenasOzys joined #lisp 2018-08-25T15:10:54Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-25T15:14:03Z anewuser joined #lisp 2018-08-25T15:23:41Z orivej joined #lisp 2018-08-25T15:30:55Z beach: That's true. 2018-08-25T15:31:09Z beach: I have seen even functions stored there. 2018-08-25T15:31:16Z beach: And macros. 2018-08-25T15:36:18Z cage_ quit (Quit: Leaving) 2018-08-25T15:39:12Z quipa_ joined #lisp 2018-08-25T15:40:14Z AeroNotix: given a value, can I find what it is bound to? 2018-08-25T15:40:18Z edgar-rft quit (Remote host closed the connection) 2018-08-25T15:41:31Z quipa quit (Ping timeout: 244 seconds) 2018-08-25T15:42:23Z Bike: only by exhaustive search 2018-08-25T15:43:05Z AeroNotix: Okay 2018-08-25T15:43:12Z Bike: why do you want to do that? 2018-08-25T15:44:13Z itruslove joined #lisp 2018-08-25T15:44:45Z AeroNotix: Bike: I had redefined something but the symbol I had thought it should be bound to wasn't. I wanted to see what, if anything, the value was bound to 2018-08-25T15:45:07Z Bike: ah, yeah, thats hard to chec k 2018-08-25T15:45:17Z AeroNotix: a roundabout way of checking, I didn't really need it in this case but given the above discussion, thought I'd ask., 2018-08-25T15:45:53Z taof joined #lisp 2018-08-25T15:50:50Z taof quit (Ping timeout: 276 seconds) 2018-08-25T15:53:00Z doubledup joined #lisp 2018-08-25T16:17:39Z gitfaf joined #lisp 2018-08-25T16:18:33Z pierpal quit (Quit: Poof) 2018-08-25T16:18:49Z pierpal joined #lisp 2018-08-25T16:19:42Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-25T16:20:13Z quipa_ is now known as quipa 2018-08-25T16:20:19Z Kundry_Wag joined #lisp 2018-08-25T16:20:24Z quipa quit (Quit: Leaving) 2018-08-25T16:28:03Z Kundry_Wag quit (Remote host closed the connection) 2018-08-25T16:28:37Z Kundry_Wag joined #lisp 2018-08-25T16:33:30Z Kundry_Wag quit (Ping timeout: 264 seconds) 2018-08-25T16:33:38Z taof joined #lisp 2018-08-25T16:37:43Z Jesin joined #lisp 2018-08-25T16:38:02Z taof quit (Ping timeout: 252 seconds) 2018-08-25T16:39:02Z Oladon joined #lisp 2018-08-25T16:39:30Z astalla quit (Ping timeout: 264 seconds) 2018-08-25T16:39:39Z Inline quit (Read error: Connection reset by peer) 2018-08-25T16:39:56Z Jesin quit (Remote host closed the connection) 2018-08-25T16:40:15Z Inline joined #lisp 2018-08-25T16:45:15Z Jesin joined #lisp 2018-08-25T16:46:47Z jack_rabbit joined #lisp 2018-08-25T16:50:23Z cage_ joined #lisp 2018-08-25T16:52:08Z caltelt joined #lisp 2018-08-25T16:52:10Z pierpal quit (Quit: Poof) 2018-08-25T16:52:29Z pierpal joined #lisp 2018-08-25T16:56:30Z pjb quit (Ping timeout: 252 seconds) 2018-08-25T17:01:32Z razzy quit (Ping timeout: 268 seconds) 2018-08-25T17:02:16Z razzy joined #lisp 2018-08-25T17:08:34Z Kundry_Wag joined #lisp 2018-08-25T17:09:27Z dented42 joined #lisp 2018-08-25T17:17:35Z kristof joined #lisp 2018-08-25T17:17:49Z kristof: what does the standard say about redefinition of toplevel functions? 2018-08-25T17:18:00Z kristof: not symbols in the common-lisp package 2018-08-25T17:18:03Z kristof: user defined ones 2018-08-25T17:18:04Z dented42 quit (Ping timeout: 272 seconds) 2018-08-25T17:18:36Z ebrasca joined #lisp 2018-08-25T17:24:07Z anewuser quit (Quit: anewuser) 2018-08-25T17:25:19Z varjagg joined #lisp 2018-08-25T17:25:54Z beach: Mostly no problem. 2018-08-25T17:26:30Z beach: But if the existing function was inlined, or if it was part of some compilation unit that treated it specially, then things might not work as expected. 2018-08-25T17:27:14Z kristof: Can you elaborate? Does the standard say anything about, say... if g called f, and f was redefined, should g be expected to retain its semantics or is it "anything goes"? 2018-08-25T17:28:28Z acolarh quit (Ping timeout: 244 seconds) 2018-08-25T17:28:44Z beach: Let me check... 2018-08-25T17:29:53Z beach: clhs 3.2.2.3 2018-08-25T17:29:53Z specbot: Semantic Constraints: http://www.lispworks.com/reference/HyperSpec/Body/03_bbc.htm 2018-08-25T17:30:06Z beach: point 5. 2018-08-25T17:30:10Z beach: A call within a file... 2018-08-25T17:30:34Z kristof: Ah, there it is 2018-08-25T17:30:36Z beach: consequences are unspecified. 2018-08-25T17:31:18Z kristof: I gave the hyperspec a good end to end read a couple of months ago (minus the glossary and issues) and remembered something about this so I thought I would ask 2018-08-25T17:31:28Z beach: Sure. 2018-08-25T17:32:11Z beach: I suspect most implementations would either allow the redefinition, or the new version would only be visible when called from outside the compilation unit. 2018-08-25T17:32:33Z beach: I would be surprised if some implementation would crash or something like that. 2018-08-25T17:32:36Z kristof: The more I learn about common lisp the more I am impressed about the careful considerations for performance. It really grows on you, like a good wine. Or something. 2018-08-25T17:32:58Z beach: Yes, they were definitely concerned about performance. 2018-08-25T17:36:20Z taof joined #lisp 2018-08-25T17:38:06Z dieggsy joined #lisp 2018-08-25T17:39:50Z atgreen quit (Ping timeout: 244 seconds) 2018-08-25T17:41:54Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-25T17:45:30Z sjl_ is now known as sjl 2018-08-25T17:51:30Z taof quit (Ping timeout: 264 seconds) 2018-08-25T17:53:57Z azimut quit (Ping timeout: 240 seconds) 2018-08-25T17:54:36Z azimut joined #lisp 2018-08-25T17:57:06Z hifitim joined #lisp 2018-08-25T17:57:50Z Demosthenex: any tips on profiling in sbcl w/ slime/emacs? i've already found M-x slime-profile-package... but i'm not seeing enough information. 2018-08-25T17:58:42Z razzy quit (Ping timeout: 264 seconds) 2018-08-25T17:59:45Z _death: maybe you want the statistical profiler.. 2018-08-25T18:00:36Z Inline quit (Read error: Connection reset by peer) 2018-08-25T18:01:27Z Inline joined #lisp 2018-08-25T18:01:40Z Demosthenex: well, i'm trying to make sure i'm not wasting time in my list processing and data ordering... 2018-08-25T18:03:13Z Inline quit (Read error: Connection reset by peer) 2018-08-25T18:03:19Z razzy joined #lisp 2018-08-25T18:04:39Z Inline joined #lisp 2018-08-25T18:04:50Z Inline quit (Read error: Connection reset by peer) 2018-08-25T18:04:59Z Kundry_Wag joined #lisp 2018-08-25T18:05:20Z Inline joined #lisp 2018-08-25T18:06:41Z hifitim quit (Ping timeout: 276 seconds) 2018-08-25T18:08:16Z pjb joined #lisp 2018-08-25T18:09:20Z stacksmith: Demosthenex: If you have lots of small functions and let it run for like 10 seconds, the quality of information is more usable... 2018-08-25T18:12:30Z defaultxr joined #lisp 2018-08-25T18:18:25Z taof joined #lisp 2018-08-25T18:23:02Z froggey quit (Remote host closed the connection) 2018-08-25T18:23:16Z taof quit (Ping timeout: 252 seconds) 2018-08-25T18:24:59Z m3tti joined #lisp 2018-08-25T18:25:06Z gitfaf quit (Remote host closed the connection) 2018-08-25T18:26:54Z taof joined #lisp 2018-08-25T18:27:38Z Demosthenex: _death: thanks, once i had the name it was a fast find 2018-08-25T18:30:22Z doubledup quit (Remote host closed the connection) 2018-08-25T18:30:40Z doubledup joined #lisp 2018-08-25T18:31:56Z Demosthenex: haha, hairy-data-vector-ref 2018-08-25T18:37:34Z cage_ quit (Quit: Leaving) 2018-08-25T18:39:25Z nopolitica joined #lisp 2018-08-25T18:46:02Z gitfaf joined #lisp 2018-08-25T18:49:36Z danielxvu joined #lisp 2018-08-25T18:49:46Z danielxvu quit (Remote host closed the connection) 2018-08-25T18:51:12Z danielxvu joined #lisp 2018-08-25T18:52:26Z m3tti quit (Ping timeout: 272 seconds) 2018-08-25T18:53:41Z buffergn0me joined #lisp 2018-08-25T18:54:32Z AeroNotix: Is there anything to be done about typos in CLHS? 2018-08-25T18:55:02Z _death: you could modify your local copy 2018-08-25T18:55:33Z AeroNotix: right, I just mean there's probably nowhere that'll accept a PR or similar. It's set in stone at this point? 2018-08-25T18:56:29Z PuercoPop: https://www.cliki.net/ANSI%20Clarifications%20and%20Errata ? 2018-08-25T18:56:49Z danielxvu quit (Remote host closed the connection) 2018-08-25T18:57:04Z AeroNotix: it's not an error, just a typo 2018-08-25T18:57:17Z AeroNotix: http://clhs.lisp.se/Body/f_abortc.htm the example section has a spelling error. 2018-08-25T18:57:18Z PuercoPop: The page lists typo's 2018-08-25T18:57:26Z PuercoPop: *typos 2018-08-25T18:57:45Z PuercoPop: The first item is a typo esearch -> research 2018-08-25T18:58:07Z AeroNotix: oh neat 2018-08-25T18:58:20Z PuercoPop: phoe has a project to 'wikify'? the clhs (among other docs). If typos would be fixable there, but the CLHS is owned by Lispworks so we are not free to modify it afaik 2018-08-25T18:58:37Z AeroNotix: How much would they take for ownership? 2018-08-25T18:58:43Z _death: nowadays research begins with esearch rather than ends with it :) 2018-08-25T18:58:47Z AeroNotix: I've got half a box of celebrations I could put up for it 2018-08-25T19:00:19Z jackdaniel: AeroNotix: you may publish your own version based on dpans, clhs is just some domain with standard draft compiled to html 2018-08-25T19:01:03Z jackdaniel: here you may find some remarks and a nice compilation to pdf: http://cvberry.com/tech_writings/notes/common_lisp_standard_draft.html 2018-08-25T19:01:19Z jackdaniel: (with instructions how to build such pdf) 2018-08-25T19:01:36Z vlatkoB quit (Remote host closed the connection) 2018-08-25T19:03:25Z doubledup quit (Quit: Leaving) 2018-08-25T19:04:27Z AeroNotix: jackdaniel: I was just asking as really to inquire on how clhs itself would be, if ever, updated. 2018-08-25T19:04:32Z Roy_Fokker joined #lisp 2018-08-25T19:04:41Z pjb: AeroNotix: nope, never. 2018-08-25T19:04:48Z AeroNotix: I find clhs itself absolutely GARBAGE for documentation fwiw 2018-08-25T19:04:58Z pjb: It's not documentation. It's specification. 2018-08-25T19:05:21Z AeroNotix: pjb: okay. I appreciate there is a difference but even then. 2018-08-25T19:05:26Z pjb: Each implementation provides documentation. It's obliged, otherwise, it's not conforming. 2018-08-25T19:05:45Z AeroNotix: pjb: obliged to document what aspects of their implementation? 2018-08-25T19:05:48Z danielxvu joined #lisp 2018-08-25T19:05:50Z pjb: If you take the even then aproach then you are an idiot. 2018-08-25T19:06:10Z pjb: All, notably the divergent, and the underspecified and unspecified aspects. 2018-08-25T19:06:32Z AeroNotix: Colour me an idiot then 2018-08-25T19:06:36Z AeroNotix: have a nice evening 2018-08-25T19:06:44Z pjb: If you're given a gold ingot, you don't come back asking for dollar bills. You take the fucking gold ingot and do whatever you want with it! 2018-08-25T19:06:55Z makomo: you sell it for dollar bills :-D 2018-08-25T19:07:17Z random-nick quit (Read error: Connection reset by peer) 2018-08-25T19:08:26Z makomo: the clhs mentions an interpreter here and there but i can't find a section dedicated to it? is there one even? 2018-08-25T19:08:38Z pjb: makomo: there is. 2018-08-25T19:08:57Z pjb: http://www.lispworks.com/documentation/HyperSpec/Body/03_a.htm 2018-08-25T19:09:15Z makomo: that's what i was about to mention, but that's quite short as opposed to the description of the compiler 2018-08-25T19:09:26Z doubledup joined #lisp 2018-08-25T19:09:33Z makomo: or maybe there just isn't much to describe in the first place? 2018-08-25T19:09:39Z pjb: and see also http://www.lispworks.com/documentation/HyperSpec/Body/03_bbc.htm 2018-08-25T19:09:45Z makomo: yeah 2018-08-25T19:10:04Z pjb: makomo: well all of clhs is description of the interpreter! 2018-08-25T19:10:10Z makomo: hm yeah, i guess 2018-08-25T19:12:19Z makomo: so, since the compiler is formally specified, the spec basically requires the existance of a compiler. does the same hold for the interpreter? 2018-08-25T19:12:55Z makomo: from what i gathered, all of LOAD, COMPILE, EVAL, COMPILE-FILE and even the REPL can be implemented just by a lisp compiler 2018-08-25T19:13:02Z pjb: Actually, no. The specs only requires minimal compilation. Which is just macroexpanding the macros, basically. 2018-08-25T19:13:13Z pjb: What remains is of course the interpreter. 2018-08-25T19:14:06Z pjb: but the repl is (loop (print (eval (read)))) no compile in there. So the interpreter is EVAL. 2018-08-25T19:14:13Z pjb: Just implement EVAL and you're good to go. 2018-08-25T19:15:20Z makomo: yes, but isn't it true that the existance of a REPL doesn't necessarily imply the existance of an interpreter? 2018-08-25T19:16:11Z pjb: Of course, because you can also implement eval as (defun eval (form) (funcall (compile nil `(lambda () ,form)))) :-) 2018-08-25T19:16:13Z makomo: i mean, the code could be compiled and run on the fly, without direct interpretation 2018-08-25T19:16:16Z _death: http://www.lispworks.com/documentation/HyperSpec/Body/02_dhm.htm I'd think the remark about "the future" is an error, since a spec should not talk about the future ;) 2018-08-25T19:16:17Z makomo: right 2018-08-25T19:16:38Z loli joined #lisp 2018-08-25T19:17:11Z makomo: of course we're talking about the "lisp interpreter" specifically in this case. in the end the machine's processor still interprets and runs the machine code (or bytecode, etc.) 2018-08-25T19:17:40Z _death: that's also why the deprecation sections are errors 2018-08-25T19:18:01Z gitfaf quit (Read error: Connection reset by peer) 2018-08-25T19:18:30Z robotoad joined #lisp 2018-08-25T19:18:41Z pjb: _death: indeed, you can ignore this sentence. However, you may notice that implementations all print structures using keyword instead of symbols for the slot names. 2018-08-25T19:19:31Z _death: yes, because that's the specified behavior.. 2018-08-25T19:27:58Z buffergn0me quit (Remote host closed the connection) 2018-08-25T19:29:26Z random-nick joined #lisp 2018-08-25T19:31:42Z X-Scale quit (Ping timeout: 264 seconds) 2018-08-25T19:32:37Z shifty quit (Ping timeout: 268 seconds) 2018-08-25T19:39:06Z pierpal quit (Quit: Poof) 2018-08-25T19:39:25Z pierpal joined #lisp 2018-08-25T19:40:57Z nopolitica quit (Ping timeout: 252 seconds) 2018-08-25T19:54:24Z X-Scale joined #lisp 2018-08-25T19:55:05Z edgar-rft joined #lisp 2018-08-25T19:55:43Z kristof quit (Ping timeout: 244 seconds) 2018-08-25T19:58:39Z acolarh joined #lisp 2018-08-25T20:03:49Z kristof joined #lisp 2018-08-25T20:09:43Z jurov joined #lisp 2018-08-25T20:09:44Z emaczen: How do we use errno with CFFI? 2018-08-25T20:10:38Z Shinmera: Colleen: tell emaczen look up cffi defcvar 2018-08-25T20:10:39Z Colleen: emaczen: Macro defcvar https://common-lisp.net/project/cffi/manual/cffi-manual.html#defcvar-1 2018-08-25T20:11:39Z emaczen: Shinmera: Nice! 2018-08-25T20:13:29Z pierpa joined #lisp 2018-08-25T20:18:47Z housel quit (Read error: Connection reset by peer) 2018-08-25T20:23:33Z m3tti joined #lisp 2018-08-25T20:24:29Z emaczen: Shinmera: I can't get errno to work... I keep getting dropped into the CCL kernel debugger for some reason 2018-08-25T20:24:44Z emaczen: If I remove the defcvar form, my code runs like it was before 2018-08-25T20:29:03Z nopolitica joined #lisp 2018-08-25T20:31:59Z housel joined #lisp 2018-08-25T20:35:38Z m3tti quit (Remote host closed the connection) 2018-08-25T20:36:11Z jasmith quit (Quit: Leaving) 2018-08-25T20:42:00Z Fare quit (Ping timeout: 272 seconds) 2018-08-25T20:43:30Z Kundry_Wag quit (Remote host closed the connection) 2018-08-25T20:46:57Z kristof quit (Ping timeout: 252 seconds) 2018-08-25T20:53:43Z taof left #lisp 2018-08-25T20:56:06Z jinkies joined #lisp 2018-08-25T20:58:11Z kristof joined #lisp 2018-08-25T20:58:33Z Fare joined #lisp 2018-08-25T21:01:01Z Inline quit (Remote host closed the connection) 2018-08-25T21:01:32Z Inline joined #lisp 2018-08-25T21:07:01Z jlarocco quit (Ping timeout: 244 seconds) 2018-08-25T21:09:57Z maarhart joined #lisp 2018-08-25T21:09:58Z maarhart quit (Excess Flood) 2018-08-25T21:10:18Z maarhart joined #lisp 2018-08-25T21:10:20Z maarhart quit (Excess Flood) 2018-08-25T21:10:39Z maarhart joined #lisp 2018-08-25T21:10:40Z maarhart quit (Excess Flood) 2018-08-25T21:11:00Z maarhart joined #lisp 2018-08-25T21:11:01Z maarhart quit (Excess Flood) 2018-08-25T21:11:21Z maarhart joined #lisp 2018-08-25T21:11:22Z maarhart quit (Excess Flood) 2018-08-25T21:15:22Z Oladon quit (Quit: Leaving.) 2018-08-25T21:20:19Z pyx joined #lisp 2018-08-25T21:20:35Z astalla joined #lisp 2018-08-25T21:20:47Z pyx quit (Client Quit) 2018-08-25T21:22:36Z Volt_ quit (Quit: exit();) 2018-08-25T21:27:56Z varjagg quit (Ping timeout: 268 seconds) 2018-08-25T21:29:23Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-08-25T21:31:44Z nowhereman joined #lisp 2018-08-25T21:31:48Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-25T21:33:55Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-25T21:34:15Z Fare quit (Ping timeout: 252 seconds) 2018-08-25T21:44:48Z doubledup quit (Quit: Leaving) 2018-08-25T21:44:53Z FreeBirdLjj joined #lisp 2018-08-25T21:44:54Z jinkies quit (Ping timeout: 264 seconds) 2018-08-25T21:49:39Z FreeBirdLjj quit (Ping timeout: 252 seconds) 2018-08-25T21:52:01Z no-defun-allowed: Good morning 2018-08-25T21:55:58Z light2yellow quit (Quit: light2yellow) 2018-08-25T22:03:34Z zooey quit (Remote host closed the connection) 2018-08-25T22:04:26Z zooey joined #lisp 2018-08-25T22:04:28Z Pixel_Outlaw joined #lisp 2018-08-25T22:05:15Z pjb: emaczen: errno is not a variable nowadays. It's a thread-dependent function. In C, it's declared as macro. extern int * __error(void); #define errno (*__error()) 2018-08-25T22:05:15Z pjb: 2018-08-25T22:05:21Z pjb: have fun! 2018-08-25T22:05:30Z pjb: (Just say NO! to FFI!) 2018-08-25T22:06:51Z pjb: If you insist in FFI, you'll have learn way more about C and unix that you (should) care! 2018-08-25T22:24:10Z stylewarning: A little demo of Emacs and Common Lisp on a VT420 https://youtu.be/qE09ucrSx0k 2018-08-25T22:25:28Z jasmith joined #lisp 2018-08-25T22:27:48Z pjb: And for those who are not rich enough for a vt420 terminal, there's always Cathode.app on macOS… :-) 2018-08-25T22:28:59Z no-defun-allowed: *cool-retro-term 2018-08-25T22:29:47Z stylewarning: pjb: That won’t emulate the experience of getting RSI and burning sensations in your hands from the terrible LK201 keyboard! 2018-08-25T22:34:12Z aindilis quit (Ping timeout: 252 seconds) 2018-08-25T22:40:01Z random-nick quit (Ping timeout: 244 seconds) 2018-08-25T22:46:58Z johnsurprice joined #lisp 2018-08-25T22:49:18Z kristof quit (Ping timeout: 272 seconds) 2018-08-25T22:52:05Z froggey joined #lisp 2018-08-25T22:52:09Z AeroNotix: (eql '(#\A) '(#\A)) => NIL 2018-08-25T22:52:11Z AeroNotix: What gives^? 2018-08-25T22:52:36Z pierpa: it's undefined 2018-08-25T22:53:21Z pierpa: but NIL is the most obvious answer. Why are you surprised? 2018-08-25T22:53:59Z johnsurprice: hi lispers ! I'm benchmarking Hunchentoot with `ab` tool like that -- ab -s 60 -n100000 -c900 http://127.0.0.1:8888/. The default Hunchentoot page deployed at URL "/". Unfortunately, "ab" occasionally reports apr_socket_recv: Connection reset by peer (104) after 50000 requests. What could be the reason? PS. Node.js works without errors under similar load. :-( 2018-08-25T22:54:16Z AeroNotix: pierpa: nevermind 2018-08-25T22:54:24Z pierpa: k 2018-08-25T22:55:02Z pjb: AeroNotix: it depends, it could be T if you compile-file it, and the compiler performs the optimiation of coalescing literals. 2018-08-25T22:55:13Z AeroNotix: Interesting, ok 2018-08-25T22:55:52Z asarch joined #lisp 2018-08-25T22:57:41Z no-defun-allowed: That's a lot of connections. 2018-08-25T22:57:57Z no-defun-allowed: I remember I usually did -c4 2018-08-25T22:58:49Z no-defun-allowed: If you're going to put Lisp in production, you should put nginx in front of it, which will also handle compression, rate limits and static files faster. 2018-08-25T23:01:14Z jlarocco joined #lisp 2018-08-25T23:01:20Z johnsurprice: no-defun-allowed: I see. But I would like to fix it, but I don't know where to start. 2018-08-25T23:03:22Z AeroNotix: johnsurprice: are you running SBCL? 2018-08-25T23:03:33Z no-defun-allowed: If it's threaded, it might be failing to fork. 2018-08-25T23:03:41Z johnsurprice: AeroNotix: yes 2018-08-25T23:03:46Z no-defun-allowed: That's my first guess with no context. 2018-08-25T23:04:04Z AeroNotix: Just wanted to check 2018-08-25T23:05:02Z johnsurprice: no-defun-allowed: I'm creating Taskmaster in the following way: (make-instance 'hunchentoot:one-thread-per-connection-taskmaster :max-accept-count 30000 :max-thread-count 400) 2018-08-25T23:05:02Z AeroNotix: johnsurprice: https://edicl.github.io/hunchentoot/#taskmasters 2018-08-25T23:05:18Z johnsurprice: AeroNotix: tnx, I know 2018-08-25T23:06:22Z astalla quit (Ping timeout: 244 seconds) 2018-08-25T23:06:52Z AeroNotix: johnsurprice: how does it behave with -c400? 2018-08-25T23:07:01Z no-defun-allowed: I think it's out of threads. 2018-08-25T23:07:05Z AeroNotix: yeah^ 2018-08-25T23:08:17Z johnsurprice: But the documentation says: If both :max-thread-count and :max-accept-count are supplied, then max-thread-count must be less than max-accept-count; if more than max-thread-count requests are being processed, then requests up to max-accept-count will be queued until a thread becomes available. 2018-08-25T23:09:01Z johnsurprice: So, it's cannot be out of threads by definitions 2018-08-25T23:09:18Z no-defun-allowed: 50000 is almost double 30000. Maybe the queue is full. 2018-08-25T23:10:17Z johnsurprice: do you think that max-accept-count means the queue size? 2018-08-25T23:10:21Z johnsurprice: let me try 2018-08-25T23:10:27Z froggey quit (Remote host closed the connection) 2018-08-25T23:10:40Z no-defun-allowed: You're giving it around double the requests it can handle, so it will continue to accumulate. 2018-08-25T23:11:26Z johnsurprice: okay, I've tested with max-accept-count == 150000 2018-08-25T23:11:31Z johnsurprice: same error 2018-08-25T23:11:45Z AeroNotix: If both :max-thread-count and :max-accept-count are supplied, then max-thread-count must be less than max-accept-count 2018-08-25T23:12:15Z johnsurprice: AeroNotix: yes, max-thread-count == 400, max-accept-count == 150000 now 2018-08-25T23:12:33Z AeroNotix: sorry misclicked 2018-08-25T23:12:38Z AeroNotix: meant to paste something else 2018-08-25T23:13:28Z no-defun-allowed: I think the queue is being filled either way. Did it take longer to overwhelm? 2018-08-25T23:14:46Z johnsurprice: no, Total of 49342 requests completed 2018-08-25T23:15:42Z johnsurprice: I think there is a low level bug... 2018-08-25T23:16:08Z no-defun-allowed: I still think the queue is being flooded. 2018-08-25T23:17:25Z johnsurprice: but the queue size is now bigger than the total count of requests -- it's 150000 vs 100000 2018-08-25T23:17:34Z johnsurprice: how it can be flooded? 2018-08-25T23:18:27Z siraben joined #lisp 2018-08-25T23:18:41Z froggey joined #lisp 2018-08-25T23:24:50Z johnsurprice quit 2018-08-25T23:25:49Z no-defun-allowed: I'm not sure then. 2018-08-25T23:30:52Z aindilis joined #lisp 2018-08-25T23:42:40Z Fare joined #lisp 2018-08-26T00:00:49Z kozy joined #lisp 2018-08-26T00:22:13Z Ober: is cl+j the best option for accessing jni from sbcl? 2018-08-26T00:30:57Z froggey quit (Quit: Lost terminal) 2018-08-26T00:31:50Z PuercoPop: Ober: wouldn't ABCL be the better option for accessing jni from Lisp? 2018-08-26T00:32:13Z Arcaelyx joined #lisp 2018-08-26T00:32:37Z Ober: friends don't let friends use abcl 2018-08-26T00:35:43Z PuercoPop: Ober: Why? 2018-08-26T00:36:01Z no-defun-allowed: o.o 2018-08-26T00:37:49Z Ober wants to talk to java, not force my full program to run horribly slow. 2018-08-26T00:39:16Z pjb: just say no to FFI. This includes JNI. 2018-08-26T00:40:22Z no-defun-allowed: lol 2018-08-26T00:40:26Z Ober: sure if you just want an introverted image with no access to the outside :P 2018-08-26T00:40:38Z pjb: You can access the outside world thru sockets. 2018-08-26T00:40:45Z no-defun-allowed: my programming style matches my personality 2018-08-26T00:40:56Z no-defun-allowed: awfully introverted and uncomprehendible 2018-08-26T00:42:42Z Ober: something like http://www.lispworks.com/documentation/lw70/LW/html/lw-802.htm#88651 2018-08-26T00:42:58Z pjb: This is the week-end, but you can prepare for Monday: let's write Klingon programs at work! 2018-08-26T00:43:22Z pjb: http://www.shlomifish.org/humour/by-others/top-12-things-likely-to-be-overheard-if-you-had-a-klingon-programmer.html 2018-08-26T00:44:45Z Ober: funny, using jni to access a star trek game 2018-08-26T00:44:50Z pjb: For the record, I've already implemented points 12, 11, 9, 8, 7, 6, 4. I'm almost a beginner Klingon programmer :-) 2018-08-26T00:45:15Z Ober: Santa Claus was a klingon... 2018-08-26T00:45:22Z Ober: Hoh! Hoh! Hoh! 2018-08-26T00:45:31Z pjb: Point 8 in particular ;-) 2018-08-26T00:45:56Z froggey joined #lisp 2018-08-26T00:46:25Z pjb: After that, you have to hunt after your code to kill it before it ransacks the galaxy… 2018-08-26T00:46:28Z Ober: killing! killing! killing! 2018-08-26T00:47:10Z pjb: (Happily, I did it before the Internet, so it didn't go too far away (but farther than I expected)). 2018-08-26T00:49:03Z pjb: So in summary, make life of your coworker interesting: program like a Klingon! 2018-08-26T00:50:12Z AeroNotix: point 7 had me chuckling 2018-08-26T00:51:24Z pjb: You could architecture your applications like codewars. 2018-08-26T00:51:54Z pjb: The good working of the program would rely on parts of the code successfully killing other parts at the right time. 2018-08-26T00:54:15Z pjb: (bt:make-thread (lambda () (uiop:run-program "publish-to-appstore ~A" *myself*))) and have the test process kill the program before it can escape if it has any other bug… 2018-08-26T01:30:31Z jlarocco quit (Ping timeout: 244 seconds) 2018-08-26T01:35:23Z regreg joined #lisp 2018-08-26T01:46:02Z Oladon joined #lisp 2018-08-26T01:46:59Z Kundry_Wag joined #lisp 2018-08-26T01:47:24Z robotoad quit (Quit: robotoad) 2018-08-26T01:50:23Z krwq joined #lisp 2018-08-26T01:51:07Z pierpa quit (Quit: Page closed) 2018-08-26T01:53:39Z krwq: hey, do you perhaps know why doesn't ecl respect in-package inside of .eclrc? there seems to be noone active in #ecl 2018-08-26T01:56:54Z flazh1 quit (Ping timeout: 264 seconds) 2018-08-26T01:58:06Z Bike: doesn't respect? 2018-08-26T01:58:21Z Bike: like you do (in-package) but it doesn't change the file the rc is loaded in? 2018-08-26T01:59:45Z krwq: no, like I change package inside of rc but the package in repl is cl-user 2018-08-26T02:00:17Z Bike: it probably just LOADs the file, and changes to *package* are erased after a file is loaded. 2018-08-26T02:00:47Z krwq: do you know perhaps how to change package in repl then? 2018-08-26T02:00:58Z krwq: in sbcl I just change in rc file 2018-08-26T02:01:06Z Bike: in-package works in the repl too 2018-08-26T02:01:16Z krwq: yes but I would like it to be my default 2018-08-26T02:01:23Z krwq: not type it every single time by hand 2018-08-26T02:01:29Z Bike: if ecl is just LOADing then i don't know of any way 2018-08-26T02:01:42Z Bike: there might be an --eval flag you could use 2018-08-26T02:04:20Z krwq: will try, thanks 2018-08-26T02:04:38Z krwq: I just found C-c ~ by accident... pretty useful 2018-08-26T02:05:15Z krwq: (slime-sync-package-and-default-directory) 2018-08-26T02:07:32Z dddddd quit (Remote host closed the connection) 2018-08-26T02:08:26Z robotoad joined #lisp 2018-08-26T02:09:48Z froggey quit (Ping timeout: 252 seconds) 2018-08-26T02:12:16Z froggey joined #lisp 2018-08-26T02:12:33Z flazh1 joined #lisp 2018-08-26T02:21:13Z froggey quit (Remote host closed the connection) 2018-08-26T02:21:53Z noobly joined #lisp 2018-08-26T02:24:11Z noobly left #lisp 2018-08-26T02:24:37Z sz0 joined #lisp 2018-08-26T02:33:49Z NB0X-Matt-CA quit (Excess Flood) 2018-08-26T02:33:54Z shifty joined #lisp 2018-08-26T02:35:51Z NB0X-Matt-CA joined #lisp 2018-08-26T02:50:52Z dented42 joined #lisp 2018-08-26T02:52:07Z drmeister: Hello lispers - how do i read a width from the argument list in format? 2018-08-26T02:52:29Z drmeister: like (format t "~10a" "thing") - but I want to read the 10 from the argument list 2018-08-26T02:52:49Z Bike: what do you mean read? 2018-08-26T02:53:02Z Bike: oh, like the length is another argument? 2018-08-26T02:53:58Z drmeister: Yes - 'v' - right? 2018-08-26T02:54:09Z Bike: yeah 2018-08-26T02:54:33Z drmeister: I don't like the CLHS description of format. 2018-08-26T02:55:30Z drmeister: Thank you 2018-08-26T02:55:40Z dented42 quit (Ping timeout: 272 seconds) 2018-08-26T02:56:18Z Arcaelyx quit (Ping timeout: 264 seconds) 2018-08-26T03:00:13Z SenasOzys quit (Remote host closed the connection) 2018-08-26T03:00:19Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T03:00:34Z SenasOzys joined #lisp 2018-08-26T03:00:55Z Kundry_Wag joined #lisp 2018-08-26T03:02:02Z Arcaelyx joined #lisp 2018-08-26T03:04:33Z ebzzry quit (Ping timeout: 244 seconds) 2018-08-26T03:05:21Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-26T03:07:45Z drmeister: Bike: Remember when we were recently trying to run shebang scripts using sbcl - did you figure out why they stopped working? 2018-08-26T03:07:55Z Bike: nope. 2018-08-26T03:08:43Z drmeister: Well, all my profiling scripts stopped working - grrrrr. 2018-08-26T03:08:47Z jlarocco joined #lisp 2018-08-26T03:22:16Z jlarocco quit (Ping timeout: 252 seconds) 2018-08-26T03:37:40Z Kundry_Wag joined #lisp 2018-08-26T03:37:49Z beach: Good morning everyone! 2018-08-26T03:41:23Z FreeBirdLjj joined #lisp 2018-08-26T03:44:47Z FreeBirdLjj quit (Read error: Connection reset by peer) 2018-08-26T04:10:15Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-26T04:13:09Z no-defun-allowed: morning beach 2018-08-26T04:24:41Z FreeBirdLjj joined #lisp 2018-08-26T04:33:15Z sz0 quit (Quit: Connection closed for inactivity) 2018-08-26T04:41:39Z Kundry_Wag joined #lisp 2018-08-26T04:48:27Z drmeister: Does anyone use shebang scripts with sbcl? 2018-08-26T04:48:31Z drmeister: This doesn't work: 2018-08-26T04:48:32Z drmeister: https://www.irccloud.com/pastebin/D0ZCZcOx/ 2018-08-26T04:49:10Z drmeister: This says it should: https://www.cliki.net/Unix%20shell%20scripting 2018-08-26T04:49:17Z drmeister: So does the sbcl manual 2018-08-26T04:49:33Z drmeister: SBCL 1.4.10 2018-08-26T04:50:06Z Bike quit (Quit: Lost terminal) 2018-08-26T04:57:11Z Fare quit (Ping timeout: 244 seconds) 2018-08-26T05:05:28Z vlatkoB joined #lisp 2018-08-26T05:09:36Z Oladon quit (Quit: Leaving.) 2018-08-26T05:13:43Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-26T05:19:17Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-26T05:23:38Z mange joined #lisp 2018-08-26T05:30:28Z t3hyoshi: Huh, today, I learned Abuse is written in lisp. 2018-08-26T05:31:54Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-26T05:38:25Z stylewarning: Ask me a cool Lisp question 2018-08-26T05:43:51Z jerme_ joined #lisp 2018-08-26T05:44:39Z beach: Sorry, can't think of any right now. 2018-08-26T05:46:38Z lagagain joined #lisp 2018-08-26T05:47:09Z krwq quit (Remote host closed the connection) 2018-08-26T05:48:34Z shifty quit (Ping timeout: 272 seconds) 2018-08-26T05:49:07Z jlarocco joined #lisp 2018-08-26T05:52:51Z no-defun-allowed: stylewarning: how many cons could a conser cons if a conser could cons cons? 2018-08-26T05:53:16Z no-defun-allowed: actually, remove all `er`s from that 2018-08-26T05:57:55Z asarch quit (Quit: Leaving) 2018-08-26T06:01:06Z caltelt quit (Ping timeout: 264 seconds) 2018-08-26T06:03:01Z Lycurgus joined #lisp 2018-08-26T06:04:55Z rippa joined #lisp 2018-08-26T06:05:28Z nika joined #lisp 2018-08-26T06:16:44Z [6502] joined #lisp 2018-08-26T06:19:18Z [6502]: Hi... on CLHS description of unwind-protect it's written (second example) "If an exit occurs before completion of incf, the decf form is executed anyway, resulting in an incorrect value for *access-count*" 2018-08-26T06:19:53Z [6502]: what kind of non-local exit could happen before the INCF ? (except may be if *access-count* is indeed a symbol-macro) 2018-08-26T06:20:21Z trittweiler: it could be unbound 2018-08-26T06:20:27Z trittweiler: there could be an interrupt 2018-08-26T06:20:48Z trittweiler: it could be bound to a non-numerical value 2018-08-26T06:20:56Z jackdaniel: then decf would error too 2018-08-26T06:21:02Z jackdaniel: most likely reason is an interrupt indeed 2018-08-26T06:21:04Z trittweiler: yes sure, just enumerating 2018-08-26T06:21:12Z doubledup joined #lisp 2018-08-26T06:21:13Z jackdaniel: (i.e timeout) 2018-08-26T06:22:59Z trittweiler: it could be declared to have an upperbound (integer 0 100) and it has the value 100 before the incf. In that case the decf would work :) 2018-08-26T06:23:16Z [6502]: for unbound or non-numerical decf should be as fine (as bad, that is) 2018-08-26T06:23:23Z [6502]: what are interrupts in CL? 2018-08-26T06:26:31Z trittweiler: It's usually a condition object signalled asynchroneously. Think of Ctrl-c which would signal a user-interrupt error. Or a Unix signal. These things are outside the standard, but can be relevant in praxis 2018-08-26T06:26:35Z jackdaniel: your setf expansion may return error upon incf too 2018-08-26T06:26:39Z jackdaniel: signal* 2018-08-26T06:27:15Z stylewarning: no-defun-allowed: too many a cons 2018-08-26T06:27:23Z [6502]: oh ok... i'm reading now for example about sb-ext:with-timeout 2018-08-26T06:29:01Z stylewarning: no-defun-allowed: ask another 2018-08-26T06:29:10Z stylewarning: The wildest question you got 2018-08-26T06:29:56Z trittweiler: [6502], Yes. You usually want to avoid that one, too, precisely because the timeout will occur at a completely arbitrary point of execution. And writing code that is interrupt-safe is quite hairy and such code does not compose. Sb-sys:with-deadline is better in that it will trigger the "interrupt" at more or less well-defined places. 2018-08-26T06:30:04Z t3hyoshi: Here's one for you, what's the difference between setf and setq? 2018-08-26T06:31:13Z jackdaniel: t3hyoshi: easy, setq sets a symbol value, setf is almighty macro for setting anything (extensible) 2018-08-26T06:31:39Z t3hyoshi: jackdaniel: Thanks! 2018-08-26T06:32:05Z stylewarning: BUT WHAT ABOUT SYMBOL MACROS AND SETQ 2018-08-26T06:32:08Z stylewarning: jk 2018-08-26T06:33:56Z TMA: stylewarning: for what I know, the only thing is that it needs to be able to see through the symbol macro established by with-slots 2018-08-26T06:33:57Z [6502] quit (Ping timeout: 252 seconds) 2018-08-26T06:34:14Z stylewarning: (: 2018-08-26T06:34:15Z [6502] joined #lisp 2018-08-26T06:35:27Z [6502]: lisp garbage collector doesn't support the concept of finalizer (user-defined code that is executed on object memory recycling), correct? 2018-08-26T06:35:45Z jackdaniel: [6502]: that depends on the implementation 2018-08-26T06:35:46Z Lycurgus quit (Quit: Exeunt) 2018-08-26T06:35:56Z jackdaniel: CL spec doesn't say anything about how gc should work 2018-08-26T06:35:58Z jackdaniel: afaik 2018-08-26T06:35:59Z Shinmera: Colleen: tell [6502] look up trivial-garbage finalize 2018-08-26T06:35:59Z Colleen: [6502]: Function finalize https://common-lisp.net/project/trivial-garbage/#trivial-garbage__fun__finalize 2018-08-26T06:36:38Z Shinmera: The CL spec doesn't even say anything about memory. 2018-08-26T06:36:47Z jackdaniel: I have one question: if CL's reader is turing complete, does it mean that CL goes one step further with a stop problem by saying, that you can't decide whenever reading terminates? :) 2018-08-26T06:37:07Z [6502]: oh ok... i was wondering about how do generator implementations can handle unwind-protect 2018-08-26T06:37:26Z Shinmera: jackdaniel: Sure, especially with #. 2018-08-26T06:37:34Z stylewarning: This channel gives so many misleading unhelpful answers 2018-08-26T06:37:48Z jackdaniel: Shinmera: yes, that was a joke 2018-08-26T06:38:13Z Shinmera: stylewarning: ? 2018-08-26T06:38:32Z stylewarning: Stop just referring to normative behavior 2018-08-26T06:38:42Z stylewarning: Refer to in practice implementation 2018-08-26T06:39:11Z Shinmera: Implementations differ. It's perfectly fine to refer to what we at least can say about all conforming implementations. 2018-08-26T06:39:31Z trittweiler: [6502], generators are usually implemented as closures. Where in your mind does unwind-protect should come into play? 2018-08-26T06:39:37Z stylewarning: Bla bla bla 2018-08-26T06:39:48Z [6502]: a Python generator that has a try-finally clause executes the finally code if it's garbage collected before exhaustion 2018-08-26T06:39:53Z stylewarning: A new user wants to know that they can do in practice with popular implementations 2018-08-26T06:39:58Z stylewarning: Not what CLHS says 2018-08-26T06:40:13Z Shinmera: And we did say that, as well 2018-08-26T06:40:25Z Shinmera: Now quit your bickering because it's even less productive than what you were actually complaining about 2018-08-26T06:40:26Z jackdaniel: given Shinmera provided link to trivial-gc both angles were covered with answer, no? 2018-08-26T06:40:32Z stylewarning: Say the most useful thing first 2018-08-26T06:40:45Z Shinmera: stylewarning: Then /YOU/ say the most useful thing first. 2018-08-26T06:40:52Z Shinmera: Jesus christ. 2018-08-26T06:41:04Z [6502]: i personally find most bits coming out of this channel very informative 2018-08-26T06:41:12Z [6502]: (except may be the last few ones :-D ) 2018-08-26T06:41:35Z t3hyoshi: jackdaniel's answer to setq vs setf was educational. 2018-08-26T06:41:48Z Lycurgus joined #lisp 2018-08-26T06:41:58Z trittweiler: [6502], See the trivial-garbage library. trivial-foo projects is a naming conventions for library that provide a portability layer across implementations. In this case, for finalizers that are run when an object is gc'd. 2018-08-26T06:42:19Z jackdaniel: clearing misconceptions is an important task either (i.e there is no such thing as "lisp gc"), so clearing that first and then pointing to the solution seems like a reasonable action 2018-08-26T06:42:23Z stylewarning: Shinmera: I would if I see things first I suppose 2018-08-26T06:42:27Z jackdaniel: which could prevent further misconception 2018-08-26T06:42:42Z Lycurgus: neither https://irclog.whitequark.org/lisp,http://ccl.clozure.com/irc-logs/lisp/ nor http://tunes.org/~nef/logs/lisp/ are working 2018-08-26T06:42:46Z stylewarning: Hugging the standard does very few people well. 2018-08-26T06:43:04Z Shinmera: Lycurgus: https://irclog.tymoon.eu 2018-08-26T06:43:09Z Shinmera: stylewarning: Has done me perfectly fine. 2018-08-26T06:43:27Z jackdaniel steps away from drama to eat breakfast, have fun ;) 2018-08-26T06:43:51Z Lycurgus: Shinmera, acknowledged, ty. 2018-08-26T06:44:11Z Shinmera: Lycurgus: I believe the other loggers stopped working because the channel got set +R. 2018-08-26T06:44:27Z Lycurgus: Shinmera, yest that's what I thought too. 2018-08-26T06:44:44Z Lycurgus: -t 2018-08-26T06:45:41Z stylewarning: Shinmera: I’m happy for you, but many folks are not like you 2018-08-26T06:46:50Z Lycurgus quit (Quit: Exeunt) 2018-08-26T06:47:05Z [6502]: got so much to read about... thank you guys 2018-08-26T06:47:17Z [6502] quit (Quit: Page closed) 2018-08-26T07:11:37Z Kundry_Wag joined #lisp 2018-08-26T07:18:54Z X-Scale quit (Ping timeout: 252 seconds) 2018-08-26T07:32:53Z mange quit (Read error: Connection reset by peer) 2018-08-26T07:44:48Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-26T07:48:17Z jackdaniel: I'm looking at planet lisp and what I see? bunch of C-ish code in two first posts :-) 2018-08-26T07:49:36Z Shinmera: I already apologised in the post! 2018-08-26T07:53:59Z bendersteed joined #lisp 2018-08-26T07:58:20Z aeth: C, GLSL, VAX asm, no source, RISC V asm, and then a bunch of entires with no source until some CL half way down 2018-08-26T08:25:06Z Arcaelyx quit (Ping timeout: 264 seconds) 2018-08-26T08:28:48Z jasmith quit (Ping timeout: 272 seconds) 2018-08-26T08:38:52Z defaultxr quit (Ping timeout: 268 seconds) 2018-08-26T08:48:20Z Shinmera quit (Quit: しつれいしなければならないんです。) 2018-08-26T08:48:29Z Colleen quit (Remote host closed the connection) 2018-08-26T08:48:30Z isoraqathedh quit (Read error: Connection reset by peer) 2018-08-26T08:55:17Z Colleen joined #lisp 2018-08-26T08:56:33Z jack_rabbit quit (Ping timeout: 276 seconds) 2018-08-26T09:08:34Z jack_rabbit joined #lisp 2018-08-26T09:14:30Z random-nick joined #lisp 2018-08-26T09:18:50Z SenasOzys quit (Ping timeout: 272 seconds) 2018-08-26T09:21:02Z light2yellow joined #lisp 2018-08-26T09:24:18Z orivej quit (Ping timeout: 244 seconds) 2018-08-26T09:32:53Z void_pointer joined #lisp 2018-08-26T09:33:53Z robotoad quit (Quit: robotoad) 2018-08-26T09:34:30Z idurand joined #lisp 2018-08-26T09:38:17Z vaporatorius joined #lisp 2018-08-26T09:39:36Z nirved joined #lisp 2018-08-26T09:42:35Z Kundry_Wag joined #lisp 2018-08-26T09:44:35Z Colleen quit (Quit: Colleen) 2018-08-26T09:45:22Z robotoad joined #lisp 2018-08-26T09:48:05Z Lord_Nightmare: jackdaniel: don't scare off the newbies :P 2018-08-26T09:49:10Z nirved quit (Ping timeout: 268 seconds) 2018-08-26T09:49:36Z leo_song joined #lisp 2018-08-26T09:51:46Z nirved joined #lisp 2018-08-26T09:55:18Z jackdaniel: they will remember me as a bad dream ;-) 2018-08-26T09:55:48Z beach: So, I am attempting to implement a primitive version of Clordane. I figured out that it is fairly easy to do function tracing in a SICL extrinsic environment, i.e., I can trace SICL functions that run inside SBCL and that are defined in a SICL first-class global environment. Breakpoints might be a small next step [no pun intended]. 2018-08-26T09:58:15Z Shinmera joined #lisp 2018-08-26T10:00:31Z Colleen joined #lisp 2018-08-26T10:00:32Z gitfaf joined #lisp 2018-08-26T10:01:57Z isoraqathedh joined #lisp 2018-08-26T10:05:18Z Khisanth quit (Ping timeout: 264 seconds) 2018-08-26T10:08:51Z orivej joined #lisp 2018-08-26T10:10:57Z astalla joined #lisp 2018-08-26T10:12:45Z mange joined #lisp 2018-08-26T10:14:02Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-26T10:14:38Z FreeBirdLjj joined #lisp 2018-08-26T10:14:54Z Kundry_Wag quit (Ping timeout: 252 seconds) 2018-08-26T10:16:14Z cage_ joined #lisp 2018-08-26T10:18:08Z Khisanth joined #lisp 2018-08-26T10:18:40Z beach: In Bordeaux threads, if a thread executes THREAD-YIELD, how does it start up again? 2018-08-26T10:19:12Z Shinmera: Colleen: look up bordeaux-threads thread-yield 2018-08-26T10:19:12Z Colleen: Function thread-yield thread-yield https://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation#thread-yield 2018-08-26T10:19:18Z FreeBirdLjj quit (Ping timeout: 252 seconds) 2018-08-26T10:19:28Z beach: Or, rather, how does one make it start up again? 2018-08-26T10:19:28Z Shinmera: I would wager it's up to the OS/implementation scheduler. 2018-08-26T10:19:37Z beach: I see. 2018-08-26T10:19:50Z Shinmera: yield only means that the thread decides it isn't "currently important to run" 2018-08-26T10:19:55Z beach: So how does one make a tread stop? Make it hang on a lock? 2018-08-26T10:20:01Z beach: I see, yes. 2018-08-26T10:20:01Z Shinmera: Very often you won't get a significant pause out of it ime. 2018-08-26T10:20:33Z Shinmera: You make a thread stop by exiting it. If you want to suspend a thread you can use a condition variable. 2018-08-26T10:20:49Z beach: OK, thanks. I'll look into that. 2018-08-26T10:21:18Z beach: I see there are no semaphores in BT, and I have had a hard time in the past to understand condition variables. I'll read up. Thanks again. 2018-08-26T10:21:24Z Shinmera: Doing so is a bit involved. Something like this: https://github.com/Shinmera/simple-tasks/blob/master/runner.lisp#L106-L109 2018-08-26T10:21:45Z Shinmera: Condition variables make the thread sleep until the condition variable is signalled, or until the thread is awakened for another reason (that's the unless check in the snippet) 2018-08-26T10:22:04Z Shinmera: err, not signalled, but notified is the correct term 2018-08-26T10:22:40Z jackdaniel: beach: bordeaux threads have semaphores for a few months now 2018-08-26T10:22:51Z beach: jackdaniel: Oh, good. 2018-08-26T10:22:55Z beach: Those I understand. 2018-08-26T10:23:08Z beach: I should learn about condition variables as well though. 2018-08-26T10:23:17Z Shinmera: The BT thread docs on trac haven't been updated in a long time :/ 2018-08-26T10:23:27Z beach: OK :( 2018-08-26T10:23:36Z beach: Any more recent version? 2018-08-26T10:23:49Z FreeBirdLjj joined #lisp 2018-08-26T10:25:17Z beach: I guess not. 2018-08-26T10:25:20Z jackdaniel: we've added tests which cover semaphore api 2018-08-26T10:25:50Z beach: Don't worry about it. Thanks for the hints. 2018-08-26T10:25:50Z jackdaniel: also interfaces have reasonable docstrings. since documentation is not boundled with the source code there is no separate document 2018-08-26T10:26:05Z beach: Got it. 2018-08-26T10:29:18Z no-defun-allowed: what are some ways to control the time spent on evaluating some expression? 2018-08-26T10:29:47Z no-defun-allowed: i want to make a simple interpreter to decide on things for a cl-decentralise program which somehow terminates after N steps/evals have been done 2018-08-26T10:29:53Z Shinmera: regular checks on some predicate 2018-08-26T10:30:05Z Shinmera: or, more dangerously and less predictable: asynchronous interrupts 2018-08-26T10:31:42Z no-defun-allowed: i have control over this EVAL, could i add an "eval count" and (shit i forgot the CL terms) raise/throw an error when the count gets too high? 2018-08-26T10:31:55Z Shinmera: signal a condition 2018-08-26T10:32:15Z Shinmera: And sure. 2018-08-26T10:32:20Z no-defun-allowed: yeah, that's it thanks 2018-08-26T10:34:33Z no-defun-allowed: i'd have to change evlist a bit to increment the counter, or use a (simple-vector 1) to the counter so i can refer to it 2018-08-26T10:38:53Z pierpal quit (Quit: Poof) 2018-08-26T10:39:13Z pierpal joined #lisp 2018-08-26T10:40:48Z SenasOzys joined #lisp 2018-08-26T10:42:10Z SenasOzys quit (Remote host closed the connection) 2018-08-26T10:42:33Z SenasOzys joined #lisp 2018-08-26T10:44:51Z atgreen joined #lisp 2018-08-26T10:54:02Z _whitelogger quit (Remote host closed the connection) 2018-08-26T10:54:28Z orivej quit (Ping timeout: 272 seconds) 2018-08-26T10:54:43Z SenasOzys quit (Remote host closed the connection) 2018-08-26T10:56:04Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-26T10:56:16Z _whitelogger joined #lisp 2018-08-26T10:56:28Z SenasOzys joined #lisp 2018-08-26T10:57:11Z SenasOzys quit (Remote host closed the connection) 2018-08-26T10:57:36Z SenasOzys joined #lisp 2018-08-26T10:58:39Z nika quit (Quit: Leaving...) 2018-08-26T11:00:21Z gitfaf quit (Remote host closed the connection) 2018-08-26T11:02:23Z robotoad quit (Quit: robotoad) 2018-08-26T11:02:55Z fikka joined #lisp 2018-08-26T11:07:14Z robotoad joined #lisp 2018-08-26T11:08:48Z SenasOzys quit (Remote host closed the connection) 2018-08-26T11:09:23Z neuro_sys joined #lisp 2018-08-26T11:11:01Z pierpal quit (Quit: Poof) 2018-08-26T11:11:11Z SenasOzys joined #lisp 2018-08-26T11:11:17Z pierpal joined #lisp 2018-08-26T11:15:13Z robotoad quit (Quit: robotoad) 2018-08-26T11:15:44Z pjb: beach: I see bordeaux-threads:make-semaphore 2018-08-26T11:16:19Z pjb: in ccl; does bordeaux-threads export different APIs on different implementations? 2018-08-26T11:18:27Z Shinmera: No. 2018-08-26T11:18:37Z Shinmera: Jackdaniel already mentioned semaphores. 2018-08-26T11:20:21Z froggey joined #lisp 2018-08-26T11:21:33Z dddddd joined #lisp 2018-08-26T11:21:42Z neuro_sys quit (Ping timeout: 272 seconds) 2018-08-26T11:26:32Z orivej joined #lisp 2018-08-26T11:27:18Z Arcaelyx joined #lisp 2018-08-26T11:27:45Z igemnace joined #lisp 2018-08-26T11:28:33Z LdBeth: good evening 2018-08-26T11:29:35Z no-defun-allowed: Hi LdBeth 2018-08-26T11:33:58Z SenasOzys quit (Remote host closed the connection) 2018-08-26T11:35:32Z SenasOzys joined #lisp 2018-08-26T11:37:42Z idurand quit (Ping timeout: 268 seconds) 2018-08-26T11:38:16Z SenasOzys quit (Remote host closed the connection) 2018-08-26T11:41:10Z SenasOzys joined #lisp 2018-08-26T11:41:44Z atgreen quit (Ping timeout: 244 seconds) 2018-08-26T11:43:17Z fikka quit (Ping timeout: 244 seconds) 2018-08-26T11:54:14Z fikka joined #lisp 2018-08-26T12:04:21Z orivej quit (Ping timeout: 252 seconds) 2018-08-26T12:05:57Z igemnace quit (Remote host closed the connection) 2018-08-26T12:07:38Z orivej joined #lisp 2018-08-26T12:09:56Z nirved quit (Read error: Connection reset by peer) 2018-08-26T12:10:02Z nirved_ joined #lisp 2018-08-26T12:12:04Z gitfaf joined #lisp 2018-08-26T12:12:14Z ebzzry joined #lisp 2018-08-26T12:12:24Z gitfaf quit (Remote host closed the connection) 2018-08-26T12:12:34Z Kundry_Wag joined #lisp 2018-08-26T12:16:03Z shifty joined #lisp 2018-08-26T12:16:10Z fikka quit (Ping timeout: 272 seconds) 2018-08-26T12:18:39Z mange quit (Ping timeout: 252 seconds) 2018-08-26T12:19:53Z fikka joined #lisp 2018-08-26T12:21:04Z gitfaf joined #lisp 2018-08-26T12:25:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-26T12:25:40Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-26T12:26:30Z fikka joined #lisp 2018-08-26T12:29:21Z wiselord joined #lisp 2018-08-26T12:31:20Z fikka quit (Ping timeout: 244 seconds) 2018-08-26T12:44:15Z Bike joined #lisp 2018-08-26T12:44:46Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-26T12:44:58Z beach: pjb: Thanks. 2018-08-26T12:52:25Z nirved_ quit (Quit: Leaving) 2018-08-26T12:54:04Z v0|d joined #lisp 2018-08-26T12:58:26Z kamog joined #lisp 2018-08-26T13:13:17Z rann joined #lisp 2018-08-26T13:13:58Z doubledup quit (Remote host closed the connection) 2018-08-26T13:14:13Z doubledup joined #lisp 2018-08-26T13:14:23Z light2yellow quit (Quit: light2yellow) 2018-08-26T13:15:01Z doubledup quit (Remote host closed the connection) 2018-08-26T13:15:15Z doubledup joined #lisp 2018-08-26T13:16:53Z beach: I don't know whether a semaphore is the right thing though. Maybe if I describe what I want to do, someone can tell me. 2018-08-26T13:17:07Z gitfaf joined #lisp 2018-08-26T13:17:41Z beach: It's about Clordane, a debugger running in one thread, say D, debugging an application thread, say A. 2018-08-26T13:18:14Z bendersteed quit (Ping timeout: 272 seconds) 2018-08-26T13:18:20Z beach: A will check certain condition for stopping and when they are met, it will inform D that it has stopped, and then stop. 2018-08-26T13:18:52Z beach: D can examine the state of A in various ways, and the 2018-08-26T13:19:12Z beach: and then let it continue its execution. 2018-08-26T13:20:34Z beach: That's why I was thinking of a semaphore. A will WAIT on the semaphore when the conditions for stopping are met and D will SIGNAL the semaphore when it wants A to continue. 2018-08-26T13:47:17Z makomo quit (Ping timeout: 244 seconds) 2018-08-26T13:48:04Z gitfaf_ joined #lisp 2018-08-26T13:51:28Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-26T13:51:31Z jackdaniel quit (Ping timeout: 268 seconds) 2018-08-26T13:53:37Z pjb: beach: conditions seems to be perfectly adapted to this situation. You would just re-implement conditions with semaphores. 2018-08-26T13:54:08Z pjb: The only advantage of semaphores is that they can block multiple processes, and they can count more than 1 exclusive resources. 2018-08-26T13:54:22Z pjb: You could think of conditions as 1-semaphores. 2018-08-26T13:59:00Z zaquest joined #lisp 2018-08-26T14:01:50Z beach: I see. OK, I'll read up then. Thanks. 2018-08-26T14:02:38Z X-Scale joined #lisp 2018-08-26T14:04:48Z jackdaniel joined #lisp 2018-08-26T14:04:54Z pjb: After that, you might be interested in the comment in https://github.com/informatimago/lisp/blob/master/clext/gate.lisp and in https://github.com/informatimago/mclgui/blob/refacto-views/mailbox.lisp as a simple example. 2018-08-26T14:05:47Z beach: Yes, it looks useful. 2018-08-26T14:09:31Z doubledup quit (Quit: Leaving) 2018-08-26T14:19:18Z pierpal quit (Remote host closed the connection) 2018-08-26T14:20:55Z quazimodo joined #lisp 2018-08-26T14:38:31Z gitfaf_ quit (Remote host closed the connection) 2018-08-26T14:42:32Z Kundry_Wag joined #lisp 2018-08-26T14:43:10Z Jesin quit (Quit: Leaving) 2018-08-26T14:46:43Z beach: This is going much smoother than I had expected: http://metamodular.com/clordane-sicl-boot.png 2018-08-26T14:50:26Z Lycurgus joined #lisp 2018-08-26T14:52:01Z AeroNotix: beach: is Clordane a name you came up with for it? 2018-08-26T14:52:18Z beach: Yes. There is an insecticide named Chlordane. 2018-08-26T14:52:23Z AeroNotix: Yeah I was thinking that 2018-08-26T14:52:27Z AeroNotix: seems a weird name! 2018-08-26T14:52:35Z beach: For a debugger? 2018-08-26T14:52:38Z beach: Come on! 2018-08-26T14:52:42Z AeroNotix: Does anyone here own a proper lisp machine btw? I saw one in SF when I visited a few years ago but it wasn't running and also tucked away in a weird corner 2018-08-26T14:52:54Z AeroNotix: beach: it's also hazardous to humans 2018-08-26T14:53:10Z AeroNotix: it's not really an insecticide 2018-08-26T14:53:14Z beach: I am pretty sure most insecticides are. 2018-08-26T14:53:27Z AeroNotix: I forget the name of the most widely used one, let me look it up 2018-08-26T14:53:38Z AeroNotix: but it's not at all directly hazardous to humans 2018-08-26T14:53:48Z beach: It has to be possible to turn into something with "cl" in it. 2018-08-26T14:53:55Z AeroNotix: pyrethoid 2018-08-26T14:53:58Z beach: Otherwise, it won't be funny. 2018-08-26T14:54:00Z AeroNotix: pyrethroid 2018-08-26T14:54:12Z beach: So now turn that into something with "cl" in it? 2018-08-26T14:54:13Z AeroNotix: beach: yeah I get kind of why you chose it. Just was interested in the naming! 2018-08-26T14:54:39Z AeroNotix: haha clypermethrin ! 2018-08-26T14:54:42Z AeroNotix: joking 2018-08-26T14:54:51Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-26T14:55:01Z beach: People get used to names: Chaosnet, SLIME, etc. 2018-08-26T14:56:02Z AeroNotix: Clordane is quite good to be honest. I doubt many will pick up on the organic pollutant side of it 2018-08-26T14:56:13Z AeroNotix: At first I thought it was a woman's name. But then I remembered :) 2018-08-26T14:56:23Z AeroNotix: anyway, massively OT 2018-08-26T14:57:34Z beach: The point here is that with 89 lines of code, I can already load a SICL first-class global environment into Clordane, find a function in that environment, and show the source code of the file in which that function was defined. 2018-08-26T14:58:46Z AeroNotix: rad 2018-08-26T14:59:54Z shifty quit (Ping timeout: 264 seconds) 2018-08-26T14:59:56Z froggey quit (Quit: Lost terminal) 2018-08-26T15:01:37Z asarch joined #lisp 2018-08-26T15:01:49Z AeroNotix: beach: are you the SICL author btw? 2018-08-26T15:01:49Z Copenhagen_Bram quit (Ping timeout: 268 seconds) 2018-08-26T15:05:20Z k-stz joined #lisp 2018-08-26T15:07:29Z beach: I am. 2018-08-26T15:09:02Z Fare joined #lisp 2018-08-26T15:09:21Z Copenhagen_Bram joined #lisp 2018-08-26T15:09:23Z doubledup joined #lisp 2018-08-26T15:10:38Z fikka joined #lisp 2018-08-26T15:14:26Z makomo joined #lisp 2018-08-26T15:16:00Z fikka quit (Ping timeout: 268 seconds) 2018-08-26T15:16:00Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-26T15:17:48Z pjb: Alternative name for clordane: Baygon. Beach Against Yellow buG Or Nasties 2018-08-26T15:24:02Z _whitelogger quit (Remote host closed the connection) 2018-08-26T15:26:16Z _whitelogger joined #lisp 2018-08-26T15:28:22Z FreeBirdLjj joined #lisp 2018-08-26T15:30:46Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-26T15:30:55Z fikka joined #lisp 2018-08-26T15:31:01Z FreeBirdLjj joined #lisp 2018-08-26T15:33:06Z AeroNotix: regarding my comment about CLHS being bad "documentation" (and consequently being labelled an idiot, thanks pjb). What are some genuinely decent online resources for looking up functions and their arguments/use-cases? I get by with using CLHS but for functions I rarely use, I find CLHS's examples to be very unreadable. 2018-08-26T15:33:39Z AeroNotix: I have cltl in my desk drawer, mostly constantly open on the LOOP pages, but for quick lookups I want it to be online 2018-08-26T15:33:51Z beach: AeroNotix: The Common Lisp HyperSpec is mainly meant for people who implement Common Lisp systems, not so much for users. 2018-08-26T15:34:03Z Bike: cltl is online, isn't it? 2018-08-26T15:34:06Z AeroNotix: beach: Right and that's the reason I'm an idiot, apparently 2018-08-26T15:35:10Z light2yellow joined #lisp 2018-08-26T15:35:18Z AeroNotix: Bike: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html this? 2018-08-26T15:35:22Z Bike: yeah. 2018-08-26T15:35:39Z Oladon joined #lisp 2018-08-26T15:35:47Z fikka quit (Ping timeout: 244 seconds) 2018-08-26T15:35:48Z AeroNotix: Seems to be the same thing as my book, yeah 2018-08-26T15:37:20Z AeroNotix: Bike: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/index.html kind of "weird" the function links are labelled "nodeXXX.html" though 2018-08-26T15:38:35Z Roy_Fokker joined #lisp 2018-08-26T15:39:17Z Roy_Fokker quit (Client Quit) 2018-08-26T15:39:28Z Roy_Fokker joined #lisp 2018-08-26T15:50:21Z Roy_Fokker quit (Quit: Leaving) 2018-08-26T15:50:33Z Roy_Fokker joined #lisp 2018-08-26T15:51:08Z pjb: AeroNotix: the reason why you're an idiot is because when you're told that clhs is a specification, not a documentation, you keep calling it a documentation and insist on considering it as documentation. 2018-08-26T15:51:17Z pjb: Just forget it, it's NOT documentation! 2018-08-26T15:52:01Z fikka joined #lisp 2018-08-26T15:53:12Z pjb: Now, I would say that PHP (and possibly Python too) have documentations that are mainly written (and translated!) by their users. http://php.net/docs.php Notice the "Edit" and "Bug report" buttons in the upper right corner: http://php.net/manual/en/ 2018-08-26T15:53:29Z pjb: You can do the same on http://cliki.net or some other wiki. 2018-08-26T15:54:09Z pjb: Ie. don't keep treating clhs as documentation, set up a wikipedia, copy clhs to it, and start editing it to make it into a CL documentation! 2018-08-26T15:55:21Z ski quit (Ping timeout: 252 seconds) 2018-08-26T15:56:27Z fikka quit (Ping timeout: 252 seconds) 2018-08-26T15:59:20Z ym joined #lisp 2018-08-26T15:59:51Z ski joined #lisp 2018-08-26T16:00:25Z Kundry_Wag joined #lisp 2018-08-26T16:00:51Z Fare quit (Ping timeout: 252 seconds) 2018-08-26T16:02:40Z Fare joined #lisp 2018-08-26T16:09:47Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-26T16:12:05Z FreeBirdLjj joined #lisp 2018-08-26T16:14:20Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T16:17:03Z FreeBirdLjj quit (Ping timeout: 268 seconds) 2018-08-26T16:26:30Z drmeister: How would I specify in Common Lisp the unicode point for a happy face? 2018-08-26T16:32:16Z drmeister: (format t "~c~%" (code-char #x1f601)) 2018-08-26T16:32:26Z drmeister: But that doesn't work in an emacs shell. 2018-08-26T16:38:42Z nowhereman is now known as nowhere_man 2018-08-26T16:41:33Z AeroNotix: pjb: thanks, enjoy your day 2018-08-26T16:44:00Z caltelt joined #lisp 2018-08-26T16:45:25Z FreeBirdLjj joined #lisp 2018-08-26T16:47:36Z orivej quit (Ping timeout: 244 seconds) 2018-08-26T16:49:15Z pjb: drmeister: it works: (format nil "~c" (code-char #x1f601)) #| --> "😁" |# but you need to have a font with that character. 2018-08-26T16:49:33Z pjb: drmeister: have you updated your fonts since the last unicode update? 2018-08-26T16:49:37Z ebrasca quit (Remote host closed the connection) 2018-08-26T16:50:25Z drmeister: I'm a little more "out-there" - I'm trying to get progress bars with happy faces in jupyterlab. 2018-08-26T16:50:42Z drmeister: https://usercontent.irccloud-cdn.com/file/4qJ5UgND/Screen%20Recording.mov 2018-08-26T16:51:36Z drmeister: But the unicode has to go through several levels of encoding and decoding as well as to and from JSON - it's getting messed up somewhere. 2018-08-26T16:51:59Z drmeister: So I'm going to lower my expectations and be happy with asterisks for now. I have other fish to fry. 2018-08-26T16:52:57Z drmeister: Thank you for the feedback though. 2018-08-26T16:52:58Z fikka joined #lisp 2018-08-26T16:53:12Z pjb: In emacs, you can also display pictures. 2018-08-26T16:53:22Z pjb: Until the font is available. 2018-08-26T16:54:45Z drmeister: I can get a white happy face to display - but not the more colorful one. 2018-08-26T16:54:47Z drmeister: https://usercontent.irccloud-cdn.com/file/8GE6OHhx/image.png 2018-08-26T16:54:56Z drmeister: That's in an emacs shell. 2018-08-26T16:55:03Z pjb: Not the same unicode version… 2018-08-26T16:55:14Z drmeister: What's not the same unicode version? 2018-08-26T16:55:21Z pjb: those characters. 2018-08-26T16:55:33Z pjb: They're like sbcl, constantly making new versions. It's tiring. 2018-08-26T16:55:40Z drmeister: Oh - I thought there was just one "unicode". 2018-08-26T16:55:42Z pjb: So a quick hack would to substitute them. 2018-08-26T16:55:51Z pjb: Nope, current version is 6 or something. 2018-08-26T16:56:03Z drmeister: Not very "uni" then - is it? 2018-08-26T16:56:39Z pjb: Well, there's a reason why OSes keep getting updates every days, thru the Internet. 2018-08-26T16:57:07Z drmeister: It's because people don't have enough Common Lisp in their lives. 2018-08-26T16:57:45Z pjb: I'm very happy with a terminal and :-) or :-( 2018-08-26T16:58:06Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-26T16:58:14Z pjb: but people like to seem more hieroglyphs. 2018-08-26T16:58:22Z fikka quit (Ping timeout: 268 seconds) 2018-08-26T17:00:09Z drmeister: It worked out so well for the ancient Egyptians. 2018-08-26T17:00:12Z pjb: https://madfileformatscience.garymcgath.com/2016/09/25/klingon-emoji/ 2018-08-26T17:00:20Z pjb: Yep :-) 2018-08-26T17:00:41Z defaultxr joined #lisp 2018-08-26T17:02:12Z drmeister: Now they are tooling around the galaxy in their pyramid shaped space ships - and we are stuck here with our text based command line interfaces. 2018-08-26T17:04:28Z PuercoPop: AeroNotix: there is a http://lispcookbook.github.io/cl-cookbook/ 2018-08-26T17:06:01Z AeroNotix: PuercoPop: thanks, slightly different from what I'm after. 2018-08-26T17:06:16Z AeroNotix: I'm really wanting to integrate something nicely into emacs versus what's currently available. 2018-08-26T17:08:44Z Kundry_Wag joined #lisp 2018-08-26T17:13:19Z fikka joined #lisp 2018-08-26T17:14:12Z razzy: the unicode is one good standardisation thing to remember 2018-08-26T17:14:13Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T17:14:20Z quipa joined #lisp 2018-08-26T17:16:10Z random-nick quit (Read error: Connection reset by peer) 2018-08-26T17:17:23Z oni-on-ion: is there actually klingon in there 2018-08-26T17:18:34Z Bike: klingon isn't in unicode for a variety of reasons, including that it might be copyrighted 2018-08-26T17:18:48Z Bike: there's a part of the private use area less formally reserved for it, though 2018-08-26T17:18:54Z fikka quit (Ping timeout: 272 seconds) 2018-08-26T17:19:20Z razzy: japan, china moved the emoji/hyeroglyphs thing foward in interesting way 2018-08-26T17:20:10Z pjb: Perhaps the most objectionable part of it, is the use of color. It would give a much saner character list if we forbid the use of color. 2018-08-26T17:22:26Z random-nick joined #lisp 2018-08-26T17:22:42Z Arcaelyx quit (Ping timeout: 264 seconds) 2018-08-26T17:23:54Z razzy: pjb: most of the characters are redundant anyway. given enough intelectual and communication time, people would settle on very few symbols used in general communication 2018-08-26T17:24:00Z gitfaf joined #lisp 2018-08-26T17:26:41Z pjb: yes, also emojis are totally void of meaning. 2018-08-26T17:26:44Z kamog quit (Remote host closed the connection) 2018-08-26T17:27:24Z pjb: I mean, there are scientific papers demonstrating it. 2018-08-26T17:27:57Z razzy: pjb: ooooh, i very strongly disagree :D 2018-08-26T17:28:45Z pjb: https://www.lifewire.com/less-obvious-emoji-meanings-3485884 2018-08-26T17:28:58Z razzy: they are part of language as face expression 2018-08-26T17:29:06Z pjb: https://www.vox.com/2016/4/13/11422886/emoji-interpretation-different 2018-08-26T17:29:18Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-26T17:30:53Z gitfaf joined #lisp 2018-08-26T17:31:03Z edgar-rft quit (Remote host closed the connection) 2018-08-26T17:33:39Z fikka joined #lisp 2018-08-26T17:34:06Z razzy: pjb: what conclusion did you draw from those studies? 2018-08-26T17:35:54Z gitfaf quit (Ping timeout: 264 seconds) 2018-08-26T17:38:52Z AeroNotix: pjb: isn't the article asserting that they have meaning but altogether different from what they were intended to have? 2018-08-26T17:39:10Z fikka quit (Ping timeout: 272 seconds) 2018-08-26T17:41:09Z Kundry_Wag joined #lisp 2018-08-26T17:42:10Z razzy: and on different platforms(different groups of people) they have different meaning. which means they are overloaded with meaning. 2018-08-26T17:42:32Z random-nick quit (Read error: Connection reset by peer) 2018-08-26T17:43:29Z AeroNotix: http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0144296 pjb here's a paper proclaiming the opposite of what you were asserting, idiot. 2018-08-26T17:45:24Z beach: AeroNotix: Escalation is never a good idea. 2018-08-26T17:45:48Z razzy: AeroNotix, pjb, i was hoping not to see slander here. 2018-08-26T17:46:35Z AeroNotix: beach: trying to be playful 2018-08-26T17:46:54Z beach: Things like that are hard to communicate via IRC. 2018-08-26T17:47:23Z razzy: AeroNotix: without the smile, idiot :P 2018-08-26T17:48:14Z AeroNotix: razzy: my charset on this terminal doesn't have emojis :) 2018-08-26T17:48:23Z cage_ quit (Remote host closed the connection) 2018-08-26T17:48:34Z AeroNotix: also I despise the fact they've started being called "emojis" 2018-08-26T17:48:45Z AeroNotix: are emojis distinct enough from emoticons to warrant a different name? 2018-08-26T17:48:47Z razzy: AeroNotix: is :P understandable? 2018-08-26T17:48:56Z AeroNotix: razzy: reasonbly 2018-08-26T17:49:06Z AeroNotix: it has a de jure meaning in online text 2018-08-26T17:49:19Z AeroNotix: I meant de facto 2018-08-26T17:51:40Z AeroNotix: pjb: quite fitting for your position on unicode, https://xkcd.com/1726/ 2018-08-26T17:53:58Z fikka joined #lisp 2018-08-26T17:53:58Z razzy: i consider emoji and emoticons the same 2018-08-26T17:55:22Z AeroNotix: same. I just remember all of a sudden they were called "emojis" not "emoticons". Think it was even my Mum who corrected me one day. 2018-08-26T17:55:58Z gitfaf joined #lisp 2018-08-26T17:56:28Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T17:57:02Z Kundry_Wag joined #lisp 2018-08-26T17:58:36Z fikka quit (Ping timeout: 252 seconds) 2018-08-26T18:00:45Z gitfaf quit (Ping timeout: 252 seconds) 2018-08-26T18:01:49Z random-nick joined #lisp 2018-08-26T18:01:53Z Kundry_Wag quit (Ping timeout: 268 seconds) 2018-08-26T18:03:14Z azimut quit (Ping timeout: 272 seconds) 2018-08-26T18:06:45Z meepdeew joined #lisp 2018-08-26T18:07:41Z meepdeew quit (Read error: Connection reset by peer) 2018-08-26T18:10:26Z dura joined #lisp 2018-08-26T18:11:30Z Kundry_Wag joined #lisp 2018-08-26T18:13:15Z azimut joined #lisp 2018-08-26T18:14:16Z fikka joined #lisp 2018-08-26T18:14:26Z razzy: funny shit 2018-08-26T18:14:43Z housel quit (Read error: Connection reset by peer) 2018-08-26T18:14:50Z v0|d quit (Ping timeout: 268 seconds) 2018-08-26T18:15:13Z housel joined #lisp 2018-08-26T18:19:27Z fikka quit (Ping timeout: 252 seconds) 2018-08-26T18:19:37Z Arcaelyx joined #lisp 2018-08-26T18:23:33Z quipa quit (Quit: Leaving) 2018-08-26T18:24:29Z fikka joined #lisp 2018-08-26T18:26:30Z stylewarning: Emoticons aren’t a part of UNICODE 2018-08-26T18:27:09Z Lycurgus quit (Ping timeout: 252 seconds) 2018-08-26T18:29:50Z fikka quit (Ping timeout: 272 seconds) 2018-08-26T18:31:21Z jasmith joined #lisp 2018-08-26T18:31:53Z ebrasca joined #lisp 2018-08-26T18:35:14Z ebrasca quit (Remote host closed the connection) 2018-08-26T18:38:25Z gravicappa joined #lisp 2018-08-26T18:40:14Z neuro_sys joined #lisp 2018-08-26T18:42:01Z Fare: stylewarning, ... yet 2018-08-26T18:42:15Z stylewarning: (: 2018-08-26T18:44:55Z Fare: stylewarning, Unicode is the name of the consortium. The name of the character catalogue is Unicode's Monster. 2018-08-26T18:45:09Z fikka joined #lisp 2018-08-26T18:45:22Z orivej joined #lisp 2018-08-26T18:45:24Z quazimodo quit (Ping timeout: 244 seconds) 2018-08-26T18:47:06Z Fare: 👾 2018-08-26T18:47:26Z neuro_sys: Just started learning lisp, what's an idiomatic way to write this crude thing which happens to be my first lisp code? https://ideone.com/al6UFB 2018-08-26T18:48:48Z Bike: it's s upposed to return a list of six numbers between 0 and 41? 2018-08-26T18:48:55Z neuro_sys: Yes 2018-08-26T18:49:02Z Bike: with no repeats? 2018-08-26T18:49:12Z neuro_sys: That are unique, yes 2018-08-26T18:50:15Z azimut quit (Ping timeout: 252 seconds) 2018-08-26T18:50:18Z fikka quit (Ping timeout: 264 seconds) 2018-08-26T18:51:27Z Bike: i suppose i would write... (loop for num = (random 42) until (= (length list) 6) unless (find num list) collect num into list) 2018-08-26T18:51:48Z Bike: uh, and "finally (return list)" on the end there. 2018-08-26T18:52:51Z neuro_sys: Thanks 2018-08-26T18:53:13Z AeroNotix: neuro_sys: if you're just learning lisp, loop is a pretty ridiculous piece of functionality. It's like it's own sublanguage 2018-08-26T18:53:53Z neuro_sys: Yeah well, it seemed like it. I am only so early into Practical Common Lisp, which seems like a pretty good book so far. 2018-08-26T18:54:22Z neuro_sys: Loop constructs seemed like quite verbose and varied though. 2018-08-26T18:55:34Z fikka joined #lisp 2018-08-26T18:56:04Z AeroNotix: neuro_sys: I find PCL's section on LOOP probably one of it's few weaknesses to be honest. Common Lisp The Language has a good section on it. 2018-08-26T18:56:54Z dura quit (Ping timeout: 264 seconds) 2018-08-26T18:56:58Z edgar-rft joined #lisp 2018-08-26T18:57:43Z neuro_sys: Oh thanks, it's also free, great. 2018-08-26T18:58:39Z AeroNotix: yeah 2018-08-26T18:59:06Z AeroNotix: neuro_sys: haha, mine lives here though: https://photos.app.goo.gl/v4qVCdxnQ8TNpG2e8 2018-08-26T18:59:35Z aeth: The problem is the requirement for repeats. Otherwise you get a very simple loop. (loop for i from 0 below 6 collect (random 42)) 2018-08-26T18:59:38Z neuro_sys: Haha nice 2018-08-26T19:00:52Z fikka quit (Ping timeout: 272 seconds) 2018-08-26T19:01:05Z aeth: I'd say one of the flaws in the CL language is that if you need the functionality of (loop ... collect ...) there's no concise equivalent in the language itself. Usually you can get away with avoiding loop. 2018-08-26T19:01:58Z AeroNotix: aeth: I'm honestly not a fan of it 2018-08-26T19:02:02Z aeth: You could, however, take the simple loop and process it in CL afterwards 2018-08-26T19:02:56Z Bike: what would a "concise" version be, exactly 2018-08-26T19:02:56Z random-nick quit (Ping timeout: 268 seconds) 2018-08-26T19:03:04Z Bike: since mapcar apparently doesn't count 2018-08-26T19:03:13Z aeth: For this problem, the easiest solution is probably (let ((numbers (loop for i from 0 below 6 collect (random 42)))) (replace-duplicate-with-a-fresh-random numbers)) 2018-08-26T19:03:30Z aeth: At least, if you don't understand advanced loop 2018-08-26T19:03:51Z AeroNotix: does anyone have an example of the gnarliest LOOP they've encountered? 2018-08-26T19:04:33Z jinkies joined #lisp 2018-08-26T19:04:47Z Bike: i've written a few with nested conditionals. it's not graet, and also slime doesn't handle it even with the special indentation package 2018-08-26T19:05:31Z fikka joined #lisp 2018-08-26T19:09:22Z _death: (subseq (shuffle (iota 42)) 0 6) 2018-08-26T19:10:36Z fikka quit (Ping timeout: 252 seconds) 2018-08-26T19:10:44Z Bike: ha. 2018-08-26T19:11:00Z orivej quit (Ping timeout: 272 seconds) 2018-08-26T19:13:10Z pjb: neuro_sys: https://pastebin.com/qug0HGBT 2018-08-26T19:13:40Z aeth: As far as duplicate replacing, you'd iterate through list and each time check to see if its tail has a duplicate of it, so MAPLIST will work. (It goes over each sublist instead of each element like MAPCAR does) 2018-08-26T19:13:54Z pjb: neuro_sys: _death's solution is nice, but it may also be more costly, since shuffle will have to call random 42 times. 2018-08-26T19:14:05Z random-nick joined #lisp 2018-08-26T19:14:19Z aeth: This almost works, but you'd still risk having the new number be in the list, so you'd have to build up a history or something and check that. (maplist (lambda (numbers) (let ((number (car numbers))) (if (find number (cdr numbers)) (random 42) number))) numbers) 2018-08-26T19:14:35Z pjb: neuro_sys: also, you have to be careful when writing shuffle, to obtain an equiprobability for all combinations. 2018-08-26T19:14:43Z aeth: I'd say death's solution is much better 2018-08-26T19:14:48Z _death: alexandria contains shuffle/iota 2018-08-26T19:15:11Z _death: you could use reservoir sampling as well 2018-08-26T19:15:48Z vlatkoB quit (Remote host closed the connection) 2018-08-26T19:15:59Z fikka joined #lisp 2018-08-26T19:20:43Z neuro_sys: Good to learn about alexandria 2018-08-26T19:20:54Z fikka quit (Ping timeout: 264 seconds) 2018-08-26T19:22:06Z arbv quit (Ping timeout: 264 seconds) 2018-08-26T19:22:25Z pjb: Six times faster: https://pastebin.com/EFxiFRrJ 2018-08-26T19:22:39Z pjb: ie, only shuffle what you need. 2018-08-26T19:22:51Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T19:25:33Z ebrasca joined #lisp 2018-08-26T19:25:46Z orivej joined #lisp 2018-08-26T19:25:56Z froggey joined #lisp 2018-08-26T19:26:01Z fikka joined #lisp 2018-08-26T19:26:57Z _death: since shuffle uses the same algorithm, maybe a :count parameter is in order 2018-08-26T19:27:36Z pjb: It'd be nice, apparently. 2018-08-26T19:30:36Z robotoad joined #lisp 2018-08-26T19:30:57Z fikka quit (Ping timeout: 252 seconds) 2018-08-26T19:37:50Z azimut joined #lisp 2018-08-26T19:46:21Z orivej quit (Ping timeout: 252 seconds) 2018-08-26T19:50:42Z k-stz quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-26T19:51:10Z k-stz joined #lisp 2018-08-26T19:53:15Z light2yellow quit (Quit: WeeChat 2.2) 2018-08-26T20:07:14Z Kundry_Wag joined #lisp 2018-08-26T20:13:17Z loli quit (Quit: WeeChat 2.2) 2018-08-26T20:15:47Z loli joined #lisp 2018-08-26T20:20:09Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T20:20:18Z Arcaelyx quit (Ping timeout: 264 seconds) 2018-08-26T20:20:44Z Kundry_Wag joined #lisp 2018-08-26T20:25:44Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-26T20:28:49Z pierpa joined #lisp 2018-08-26T20:37:54Z Kundry_Wag joined #lisp 2018-08-26T20:42:28Z fikka joined #lisp 2018-08-26T20:44:15Z loli quit (Quit: WeeChat 2.2) 2018-08-26T20:44:31Z doubledup quit (Quit: Leaving) 2018-08-26T20:44:54Z gravicappa quit (Ping timeout: 264 seconds) 2018-08-26T20:51:03Z light2yellow joined #lisp 2018-08-26T20:56:29Z Arcaelyx joined #lisp 2018-08-26T20:56:42Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T20:57:14Z Kundry_Wag joined #lisp 2018-08-26T21:01:50Z Kundry_Wag quit (Ping timeout: 272 seconds) 2018-08-26T21:15:58Z sigjuice joined #lisp 2018-08-26T21:21:56Z froggey_ joined #lisp 2018-08-26T21:22:10Z Kundry_Wag joined #lisp 2018-08-26T21:32:31Z froggey quit (Disconnected by services) 2018-08-26T21:32:37Z froggey_ is now known as froggey 2018-08-26T21:36:18Z shifty joined #lisp 2018-08-26T21:48:08Z anewuser joined #lisp 2018-08-26T21:49:26Z Fare quit (Ping timeout: 268 seconds) 2018-08-26T21:51:54Z slyrus1 quit (Ping timeout: 268 seconds) 2018-08-26T21:52:08Z rippa quit (Quit: {#`%${%&`+'${`%&NO CARRIER) 2018-08-26T21:56:50Z X-Scale quit (Ping timeout: 268 seconds) 2018-08-26T21:59:53Z X-Scale joined #lisp 2018-08-26T22:01:45Z drmeister: Hello lispers - how do I indicate a positive float value as a type? 2018-08-26T22:02:09Z Shinmera: clhs float 2018-08-26T22:02:09Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_float.htm 2018-08-26T22:02:22Z Shinmera: there's a compound type specifier syntax. 2018-08-26T22:03:05Z drmeister: So just (float 0.0) 2018-08-26T22:03:20Z Shinmera: Yes. 2018-08-26T22:03:43Z emaczen quit (Remote host closed the connection) 2018-08-26T22:03:48Z slyrus1 joined #lisp 2018-08-26T22:04:27Z jack_rabbit joined #lisp 2018-08-26T22:04:42Z drmeister: Thank you. 2018-08-26T22:05:09Z light2yellow quit (Quit: light2yellow) 2018-08-26T22:06:21Z drmeister: I apologize for asking simple questions - but it could take me tens of minutes to figure out where to look and what to read. I appreciate it when people take a few moments out to toss back an answer at me. 2018-08-26T22:06:42Z Shinmera: No problem. 2018-08-26T22:07:35Z jinkies quit (Ping timeout: 276 seconds) 2018-08-26T22:08:39Z graphene joined #lisp 2018-08-26T22:09:07Z Shinmera: I may not remember anything else in my life but at least I know where to find things in the clhs 2018-08-26T22:11:32Z drmeister: My neurons are all tied up remembering important addresses in the TRS-80. 2018-08-26T22:11:51Z drmeister: 15360 - start of video memory! 2018-08-26T22:12:44Z drmeister: I've been waiting for a long time for someone to ask that. 2018-08-26T22:14:49Z AeroNotix: drmeister: what *exactly* does DAA do? :) 2018-08-26T22:15:30Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-26T22:16:06Z antoszka: lol @trs-80 2018-08-26T22:16:59Z drmeister: That's lost even to Google. 2018-08-26T22:17:33Z AeroNotix: is there a type specifier that states the minimum/max number of bits an integer should fit into? 2018-08-26T22:18:07Z Shinmera: clhs unsigned-byte 2018-08-26T22:18:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/t_unsgn_.htm 2018-08-26T22:18:29Z Shinmera: That gives you a max. You can use it together with AND and NOT to form a lower bound I guess. 2018-08-26T22:18:47Z AeroNotix: ok 2018-08-26T22:18:56Z Shinmera: Otherwise just use INTEGER and expand the values you need. 2018-08-26T22:19:13Z Shinmera: there's also signed-byte 2018-08-26T22:19:48Z AeroNotix: OK will use this 2018-08-26T22:19:52Z Shinmera: Though re-reading your question I'm not sure if you're asking about the maximum size that fits into an immediate? 2018-08-26T22:20:40Z robotoad quit (Read error: Connection reset by peer) 2018-08-26T22:20:45Z robotoad_ joined #lisp 2018-08-26T22:21:13Z AeroNotix: I just want to specify the max bit size of an integer as a type specifier 2018-08-26T22:21:26Z AeroNotix: I think your link solves it 2018-08-26T22:21:27Z Shinmera: Alright. 2018-08-26T22:21:53Z AeroNotix: trying it out now any way 2018-08-26T22:22:44Z pjb: Note that on current posix systems (unsigned-byte 8) is the only binary file external format that's expected to be portable across implementations (and to the foreign posix world). 2018-08-26T22:23:03Z pjb: (since posix files are sequences of bytes… 2018-08-26T22:23:05Z pjb: ) 2018-08-26T22:33:01Z [X-Scale] joined #lisp 2018-08-26T22:33:46Z X-Scale quit (Ping timeout: 244 seconds) 2018-08-26T22:33:47Z [X-Scale] is now known as X-Scale 2018-08-26T22:37:06Z random-nick quit (Ping timeout: 264 seconds) 2018-08-26T22:43:36Z AeroNotix: Are there any decent computer museums in europe? I went to the one in SF that had a bunch of cool machines like https://en.wikipedia.org/wiki/Connection_Machine and a couple Lisp ones (symbolics, but not running/displayed nicely) 2018-08-26T22:43:59Z AeroNotix: the one in warsaw here has some rad iron curtain pure polish ones 2018-08-26T22:45:47Z pjb: There was one in the cube in Paris. 2018-08-26T22:46:07Z pjb: https://fr.wikipedia.org/wiki/Musée_de_l%27informatique_(La_Défense) 2018-08-26T22:46:11Z quipa joined #lisp 2018-08-26T22:46:19Z AeroNotix: ah no, it was an LMI in the California one 2018-08-26T22:46:28Z AeroNotix: https://photos.app.goo.gl/N6h1jSkQKHHGQsk46 2018-08-26T22:46:45Z AeroNotix: https://photos.app.goo.gl/bmaMXkfVYHtJ5kSj9 the CM-2 2018-08-26T22:46:47Z pjb: https://www.museeinformatique.fr 2018-08-26T22:46:58Z AeroNotix: copyright, potato camera, AeroNotix 2018 btw!!!!!!!! 2018-08-26T22:48:43Z pjb: If you dare going into this building: https://fr.wikipedia.org/wiki/Arche_de_la_Défense 2018-08-26T22:51:23Z AeroNotix: god I really need to get unicode in my terminal 2018-08-26T22:53:00Z pjb: Yep, now build a big cube with one led for each GPU processor, and program it to light up when each GPU processor is active. 2018-08-26T22:54:52Z astalla quit (Ping timeout: 252 seconds) 2018-08-26T22:57:25Z AeroNotix: I don't get the reference 2018-08-26T22:58:39Z Kundry_Wag quit (Remote host closed the connection) 2018-08-26T22:58:47Z orivej joined #lisp 2018-08-26T22:59:15Z Kundry_Wag joined #lisp 2018-08-26T23:03:44Z Kundry_Wag quit (Ping timeout: 244 seconds) 2018-08-26T23:04:44Z siraben quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-26T23:05:55Z v0|d joined #lisp 2018-08-26T23:07:51Z quazimodo joined #lisp 2018-08-26T23:08:22Z fikka quit (Ping timeout: 268 seconds) 2018-08-26T23:08:42Z Kundry_Wag joined #lisp 2018-08-26T23:12:27Z eschatologist quit (Quit: ZNC 1.6.6+deb1 - http://znc.in) 2018-08-26T23:12:33Z pierpa: There's one in Pisa, I'm not sure if it is always open though 2018-08-26T23:13:16Z eschatologist joined #lisp 2018-08-26T23:13:34Z mange joined #lisp 2018-08-26T23:14:31Z pierpa: https://www.sma.unipi.it/museo-degli-strumenti-per-il-calcolo/ 2018-08-26T23:14:32Z AeroNotix: cool, doing another 10k trip soon. Trying to get an idea of some decent places to stop during a lull 2018-08-26T23:14:41Z JeromeLon joined #lisp 2018-08-26T23:14:53Z AeroNotix: pierpa: italy has a strong computing history from what I understand 2018-08-26T23:15:41Z AeroNotix: pierpa: https://www.sma.unipi.it/foto/ :( 2018-08-26T23:16:50Z JeromeLon: Hi #lisp! I am trying to get started with common lisp on MacOSX. I tried to follow the instructions given on http://lisp-lang.org/learn/getting-started/ but it quickly failed. First question: was it the correct set of instructions to follow, or did I pick an old unmaintained website? 2018-08-26T23:17:41Z AeroNotix: JeromeLon: which part failed? 2018-08-26T23:17:53Z AeroNotix: do you have any error messages? 2018-08-26T23:18:01Z pierpa: AeroNotix: not sure about this. Surely UK has been much stronger 2018-08-26T23:18:14Z AeroNotix: JeromeLon: The good thing is the only mac specific thing is the call to `brew` 2018-08-26T23:18:17Z AeroNotix: pierpa: Faggin 2018-08-26T23:18:28Z AeroNotix: dude practically brought computers to the masses 2018-08-26T23:18:29Z pierpa: ah,yes! 2018-08-26T23:18:48Z JeromeLon: AeroNotix: I am guessing that installing quicklisp worked (It displayed: ==== quicklisp installed ==== To load a system, use: (ql:quickload "system-name") etc) 2018-08-26T23:18:51Z pierpa: but he had to emigrate and do his work in the USA :( 2018-08-26T23:18:57Z AeroNotix: pierpa: as they all did/do 2018-08-26T23:19:09Z AeroNotix: JeromeLon: so where's the problem friend 2018-08-26T23:19:33Z JeromeLon: AeroNotix: but "sbcl --eval '(ql:quickload :quicklisp-slime-helper)' --quit" showed: "Package QL does not exist." 2018-08-26T23:19:38Z AeroNotix: JeromeLon: ah yes 2018-08-26T23:20:06Z AeroNotix: did you run #'ql:add-to-init-file ? 2018-08-26T23:21:00Z AeroNotix: the guide doesn't tell you to do that, weird. 2018-08-26T23:21:08Z JeromeLon: AeroNotix: no, there was no such instruction. At what point should I do that? now, just after install ql? 2018-08-26T23:21:50Z AeroNotix: JeromeLon: `sbcl --load /tmp/ql.lisp --eval '(ql:add-to-init-file)'` 2018-08-26T23:21:57Z AeroNotix: run that, everything should work after that 2018-08-26T23:22:46Z AeroNotix: reasoning: #'ql:add-to-init-file inserts some code into your ~/.sbclrc file that autoloads quicklisp functionality into every sbcl invocation 2018-08-26T23:23:10Z AeroNotix: otherwise, when you run sbcl it won't have the quicklisp code loaded 2018-08-26T23:25:31Z JeromeLon: AeroNotix: It still says "Package QL does not exist.". But quicklisp showed messages saying it was loaded before the error. 2018-08-26T23:26:14Z JeromeLon: AeroNotix: I tried replacing ql: with quicklisp: and quicklisp-quickinstall: but they didn't work either 2018-08-26T23:26:24Z gector quit (Ping timeout: 252 seconds) 2018-08-26T23:26:25Z AeroNotix: JeromeLon: `cat ~/.sbclrc`, please 2018-08-26T23:26:44Z JeromeLon: AeroNotix: cat: .sbclrc: No such file or directory 2018-08-26T23:26:53Z AeroNotix: Anyone know where it should go on a mac? 2018-08-26T23:26:58Z AeroNotix: No idea, never used a mac personally. 2018-08-26T23:27:41Z AeroNotix: JeromeLon: What was the output of running (ql:add-to-init-file) ? 2018-08-26T23:27:43Z no-defun-allowed: ~/.sbclrc\ 2018-08-26T23:27:46Z no-defun-allowed: no backslash, oops 2018-08-26T23:27:46Z gector joined #lisp 2018-08-26T23:27:47Z JeromeLon: AeroNotix: Sorry, I was not clear. The command you provided, which is supposed to add the line to the init file failed with the same message 2018-08-26T23:28:05Z AeroNotix: JeromeLon: did /tmp/ql.lisp still exist :) ? 2018-08-26T23:28:20Z JeromeLon: AeroNotix: yes. 2018-08-26T23:28:55Z JeromeLon: AeroNotix: you command line shows that quicklisp is loaded, and then that ql: does not exist. 2018-08-26T23:28:59Z JeromeLon: *your 2018-08-26T23:29:09Z AeroNotix: JeromeLon: uhm, dunno. try without the --eval section and run (ql:add-to-init-file) yourself, then 2018-08-26T23:29:13Z AeroNotix: in the repl 2018-08-26T23:29:44Z pierpa: what does (pathname "~") says on macs? 2018-08-26T23:29:56Z AeroNotix: good question^ 2018-08-26T23:30:34Z JeromeLon: #P"~" 2018-08-26T23:30:42Z pierpa: hmmm 2018-08-26T23:30:54Z pierpa: no joy :) 2018-08-26T23:30:57Z JeromeLon: found it 2018-08-26T23:31:12Z AeroNotix: pierpa: wait, no, mine does the same thing. 2018-08-26T23:31:18Z AeroNotix: It probably doesn't expand 2018-08-26T23:31:41Z pierpa: it depends from the implementation 2018-08-26T23:31:44Z AeroNotix: ah ok 2018-08-26T23:31:49Z pierpa: some expand and some don't 2018-08-26T23:31:55Z AeroNotix: gotcha 2018-08-26T23:33:06Z JeromeLon: AeroNotix: so, when I ran the line to install quicklisp, it showed that it was installed. But when I ran your command line, the --load was showing an extra hint that I missed: To continue with installation, evaluate: (quicklisp-quickstart:install) 2018-08-26T23:33:29Z Kundry_Wag quit (Quit: Leaving...) 2018-08-26T23:33:33Z pierpa: duh! 2018-08-26T23:33:42Z pierpa: clhs user-homedir-pathname 2018-08-26T23:33:42Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_user_h.htm 2018-08-26T23:33:50Z azimut quit (Ping timeout: 272 seconds) 2018-08-26T23:33:53Z JeromeLon: AeroNotix: everything seems to work now. And the .sbclrc file does contain the necessary lines. 2018-08-26T23:34:02Z JeromeLon: AeroNotix: Thanks for your help! 2018-08-26T23:35:18Z AeroNotix: JeromeLon: glad you got it working 2018-08-26T23:35:30Z AeroNotix: Enjoy programming in common lisp 2018-08-26T23:36:46Z emaczen joined #lisp 2018-08-26T23:37:02Z loli joined #lisp 2018-08-26T23:37:54Z orivej quit (Ping timeout: 252 seconds) 2018-08-26T23:40:12Z asarch quit (Quit: Leaving) 2018-08-26T23:45:30Z azimut joined #lisp 2018-08-26T23:46:11Z housel quit (Remote host closed the connection) 2018-08-26T23:46:40Z housel joined #lisp 2018-08-26T23:50:36Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-26T23:53:10Z Kaisyu7 quit (Remote host closed the connection) 2018-08-27T00:05:28Z Kaisyu7 joined #lisp 2018-08-27T00:05:51Z quipa quit (Quit: Leaving) 2018-08-27T00:09:24Z JeromeLon quit (Ping timeout: 252 seconds) 2018-08-27T00:11:35Z fikka joined #lisp 2018-08-27T00:16:42Z fikka quit (Ping timeout: 264 seconds) 2018-08-27T00:19:43Z Kaisyu joined #lisp 2018-08-27T00:23:02Z AeroNotix: https://github.com/fukamachi/shelly anyone use this? Any complaints/opinions? 2018-08-27T00:25:40Z Ober: opinions? here? you mad? :P 2018-08-27T00:26:03Z AeroNotix: Ober: yes I am asking a bit much for #lisp to have opinions 2018-08-27T00:26:12Z AeroNotix: they rarely have opinions about anything :) 2018-08-27T00:26:19Z Ober: like bringing sand to the beach 2018-08-27T00:27:00Z AeroNotix: innit 2018-08-27T00:31:28Z flazh1 quit (Ping timeout: 272 seconds) 2018-08-27T00:33:33Z no-defun-allowed: can someone ELI(1)5 how generational GCs work? 2018-08-27T00:33:47Z Bike: what does that verb mean 2018-08-27T00:34:35Z no-defun-allowed: explain-like-i'm-five (or fifteen) 2018-08-27T00:36:55Z Ober: no-defun-allowed: treat stuff that's been around longer as different from something just created. new kids, vs granpa 2018-08-27T00:37:08Z Ober: grandpa may not get gc'd as fast as say a new kid. 2018-08-27T00:37:29Z no-defun-allowed: i think there's two more or more lists of objects, and when a sweep is done surviving items move up to the next generation? 2018-08-27T00:37:41Z Ober: having different gc policies based on lifetime of an object 2018-08-27T00:37:51Z no-defun-allowed: then you can GC the older/higher generations less since they've been around a while so won't go away soon theoretically 2018-08-27T00:38:15Z Ober: yeah like sbcl tends to promote some garbage to perm gen 2018-08-27T00:38:24Z no-defun-allowed: i see 2018-08-27T00:45:09Z Jesin joined #lisp 2018-08-27T00:47:13Z no-defun-allowed: and that tends to make collection faster cause you don't have to mark-sweep old objects as much? 2018-08-27T00:50:32Z no-defun-allowed: also, will i lose too much by demoting gen1 objects with gen0 references back to gen0? 2018-08-27T00:53:18Z jlarocco quit (Ping timeout: 252 seconds) 2018-08-27T00:56:27Z AeroNotix: no-defun-allowed: kill things we don't need or know any more 2018-08-27T00:57:27Z pierpa quit (Quit: Page closed) 2018-08-27T00:57:28Z no-defun-allowed: A​eroNotix: just don't run any programs so you can't make garbage 2018-08-27T00:58:05Z AeroNotix: most programs are garbage themselves, don't even install them 2018-08-27T00:59:24Z no-defun-allowed: fun fact: loading all of ghc into memory would blow the default sbcl heap 2018-08-27T01:01:37Z AeroNotix: I run xmobar. I always chuckle when I see it using A WHOLE TERABYTE of virt 2018-08-27T01:01:57Z AeroNotix: ditto xmonad 2018-08-27T01:02:28Z graphene quit (Remote host closed the connection) 2018-08-27T01:02:59Z no-defun-allowed: xmonad can't even start anything, that'd be a side effect 2018-08-27T01:03:36Z no-defun-allowed: sbcl says 3.5gb virt on startup though 2018-08-27T01:03:53Z graphene joined #lisp 2018-08-27T01:03:59Z AeroNotix: pah, not even close to 1TB 2018-08-27T01:04:21Z no-defun-allowed: ghci uses 0gb cause it doesn't load on my laptop 2018-08-27T01:04:29Z no-defun-allowed: checkmate, CL users 2018-08-27T01:05:10Z AeroNotix: no-defun-allowed: again, 1TB of virt with just ghci. Wonder why it does that 2018-08-27T01:06:16Z fikka joined #lisp 2018-08-27T01:06:18Z azimut quit (Ping timeout: 272 seconds) 2018-08-27T01:06:22Z no-defun-allowed: idk, maybe GCed systems like grabbing lots of virt. python2.7 grabs 2.4gb at startup 2018-08-27T01:06:41Z no-defun-allowed: safari.app gets about 120gb of virt 2018-08-27T01:10:51Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T01:11:08Z Kaisyu7 quit (Remote host closed the connection) 2018-08-27T01:15:02Z _whitelogger quit (Remote host closed the connection) 2018-08-27T01:17:15Z _whitelogger joined #lisp 2018-08-27T01:20:06Z flazh1 joined #lisp 2018-08-27T01:21:00Z k-stz quit (Remote host closed the connection) 2018-08-27T01:22:08Z azimut joined #lisp 2018-08-27T01:23:42Z pierpal joined #lisp 2018-08-27T01:30:35Z no-defun-allowed: virt doesn't really matter though, does it? 2018-08-27T01:31:06Z makomo quit (Ping timeout: 264 seconds) 2018-08-27T01:37:27Z AeroNotix: nah not really. Just an interesting point 2018-08-27T01:38:00Z Pixel_Outlaw joined #lisp 2018-08-27T01:38:35Z no-defun-allowed: what's the difference between virt and physical though? i'm guessing mmap mostly. 2018-08-27T01:42:20Z Arcaelyx quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-27T01:52:55Z jlarocco joined #lisp 2018-08-27T01:53:49Z jack_rabbit joined #lisp 2018-08-27T01:54:35Z Fare joined #lisp 2018-08-27T01:56:50Z robotoad_ quit (Quit: robotoad_) 2018-08-27T01:57:22Z no-defun-allowed: AeroNotix: apparently that's a feature of ghc https://ghc.haskell.org/trac/ghc/ticket/14192 2018-08-27T02:05:54Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-27T02:06:39Z Kaisyu7 joined #lisp 2018-08-27T02:07:20Z no-defun-allowed: so back to actual lisp discussion instead of wannabe poser languages... 2018-08-27T02:07:55Z mathZ joined #lisp 2018-08-27T02:08:06Z no-defun-allowed: can gen1 objects be demoted back to gen0 when gen0 references are created without too much of a performance drop? 2018-08-27T02:08:26Z azimut quit (Ping timeout: 268 seconds) 2018-08-27T02:08:32Z no-defun-allowed: IMO it makes sense as old objects wouldn't be mutated much either 2018-08-27T02:08:59Z AeroNotix: no-defun-allowed: not sure if I'd agree with that last statment 2018-08-27T02:09:02Z AeroNotix: statement* 2018-08-27T02:09:09Z AeroNotix: How are your surmising that? 2018-08-27T02:09:33Z jack_rabbit joined #lisp 2018-08-27T02:10:05Z robotoad joined #lisp 2018-08-27T02:10:23Z dented42 joined #lisp 2018-08-27T02:10:25Z no-defun-allowed: except for some operations like SETF, NCONC and DELETE, a lot of objects aren't mutated very much in my opinion 2018-08-27T02:10:43Z mathZ left #lisp 2018-08-27T02:11:00Z AeroNotix: it doesn't explain why you think there's an inverse relationship between the age of an object and how much it is mutated 2018-08-27T02:11:15Z no-defun-allowed: i guess this means arrays and structs still are mutated a lot though 2018-08-27T02:11:34Z no-defun-allowed: honestly, it's just a guess 2018-08-27T02:11:52Z dented42 quit (Client Quit) 2018-08-27T02:12:30Z AeroNotix: it's why I disagree. If an object is referenced enough to stay around a long time. Surely those references are using it in some way. Potentially just reading. If most references are reads, it's either a constant or an object that updates itself. 2018-08-27T02:12:45Z AeroNotix: Therefore, I disagree with your idea that old objects don't get mutated 2018-08-27T02:13:03Z aeth: It seems very likely to me that there could be a lot of structure objects, standard objects, and/or arrays that are full of mutation in many, maybe even most programs. And a lot of them will last a long time. 2018-08-27T02:13:04Z holycow joined #lisp 2018-08-27T02:13:05Z AeroNotix: and suggest that older the object is, it is _more likely_ it is mutated 2018-08-27T02:13:17Z dented42 joined #lisp 2018-08-27T02:13:32Z no-defun-allowed: fair enough 2018-08-27T02:14:00Z aeth: In fact, a well-architectured program that can get away with it *will* probably allocate early and keep it and mutate it. The alternative probably floods the program with garbage. 2018-08-27T02:15:23Z no-defun-allowed: gen1->gen0 demotion seems like a simple way to handle cross-generation references though, like the gray set in incremental mark-sweep 2018-08-27T02:15:24Z aeth: CL isn't a language built for pure FP 2018-08-27T02:16:12Z AeroNotix: aeth: where does the myth that CL is pure FP perpetuate? 2018-08-27T02:16:22Z no-defun-allowed: i know, which is why the GC designer has to do something about it 2018-08-27T02:16:52Z aeth: AeroNotix: At one point "functional" meant "functions as first class objects" rather than "behaves like Haskell" afaik 2018-08-27T02:16:57Z buffergn0me joined #lisp 2018-08-27T02:17:31Z AeroNotix: well yes, I think defining FP is the first order of business :) 2018-08-27T02:17:36Z no-defun-allowed: yeah, now pure-functional languages are the ones with the "functional" name 2018-08-27T02:18:04Z no-defun-allowed: but then again: you can't process functions like you can data with haskell :P 2018-08-27T02:19:13Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-27T02:27:04Z _whitelogger quit (Remote host closed the connection) 2018-08-27T02:27:42Z azimut joined #lisp 2018-08-27T02:28:09Z dented42 joined #lisp 2018-08-27T02:28:28Z dented42 quit (Client Quit) 2018-08-27T02:29:17Z _whitelogger joined #lisp 2018-08-27T02:30:04Z jlarocco quit (Ping timeout: 252 seconds) 2018-08-27T02:30:21Z Oladon quit (Quit: Leaving.) 2018-08-27T02:34:01Z azimut quit (Ping timeout: 244 seconds) 2018-08-27T02:34:29Z azimut joined #lisp 2018-08-27T02:34:34Z Fare: AeroNotix, what's the higher order of business? 2018-08-27T02:41:26Z fikka joined #lisp 2018-08-27T02:45:00Z LdBeth: #'no-defun-allowed: please have a look at Templet Haskell. With lambda calculus function process is easier and more transparent in pure fp 2018-08-27T02:46:33Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T02:47:50Z AeroNotix: Fare: ? 2018-08-27T02:49:05Z copec: I realize much programming (enterprise or gov.) under a software engineered paradigm is well understood ahead of the actual implementation of said program. So knowing your types and producing mathematical-functional blocks works particularly well. However, if that is what you are attempting to figure out than it is an unnecessary burden. 2018-08-27T02:50:16Z AeroNotix: copec: I honestly doubt much of today's code is written like you describe 2018-08-27T02:50:49Z AeroNotix: a lot of it is just suits with their ties done up to eleven clicking their fingers to the lighthouse family screaming code, more code 2018-08-27T02:51:51Z copec: You're probably right. I'm an amateur armchair philosopher. 2018-08-27T02:52:29Z fikka joined #lisp 2018-08-27T02:52:39Z pacon joined #lisp 2018-08-27T02:55:51Z copec: The Monad implies that you already understand what you are trying to understand in the act of programming. So it is not nearly as interesting as an evolving lisp program to me. 2018-08-27T02:57:46Z fikka quit (Ping timeout: 272 seconds) 2018-08-27T02:57:48Z aeth: copec: If you use SBCL recompile your program with sb-ext:*derive-function-types* as T. This allows for it to spot some (but not all) type errors at compile time between files (normally it can only do it within one file or compilation-unit) at the expense of assuming that you don't change the function type in recompilation. 2018-08-27T02:58:54Z aeth: e.g. (defun foobar (x) (floor x 2)) in one file and (defun bar () (concatenate 'string (foobar 42) "hi")) in the other with that setting as T (default NIL because it violates the standard) gives me a compile time type warning (even though it's a "warning" the compilation fails) 2018-08-27T02:58:55Z copec: That's cool 2018-08-27T02:59:25Z aeth: copec: My point is that it's not an either/or thing. 2018-08-27T02:59:46Z aeth: (In fact, it's probably better when you start dynamic and later make your program concrete.) 2018-08-27T02:59:52Z copec: no, not in CL. That is my point too 2018-08-27T03:00:56Z aeth: SBCL doesn't catch everything that it should. I don't get a compilation warning with the returned number being fed into mapcar, which only wants a list 2018-08-27T03:02:21Z fikka joined #lisp 2018-08-27T03:03:55Z dddddd quit (Remote host closed the connection) 2018-08-27T03:04:44Z flazh1 quit (Ping timeout: 272 seconds) 2018-08-27T03:07:17Z jlarocco joined #lisp 2018-08-27T03:07:27Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T03:07:31Z buffergn0me quit (Read error: Connection reset by peer) 2018-08-27T03:12:49Z fikka joined #lisp 2018-08-27T03:18:02Z fikka quit (Ping timeout: 272 seconds) 2018-08-27T03:18:03Z _whitelogger quit (Remote host closed the connection) 2018-08-27T03:18:57Z asarch joined #lisp 2018-08-27T03:20:17Z _whitelogger joined #lisp 2018-08-27T03:24:04Z _whitelogger quit (Remote host closed the connection) 2018-08-27T03:26:18Z _whitelogger joined #lisp 2018-08-27T03:27:13Z anewuser quit (Quit: anewuser) 2018-08-27T03:28:56Z beach: Good morning everyone! 2018-08-27T03:29:18Z Fare: Hi! 2018-08-27T03:29:28Z Fare: What books or articles do you recommend about reflection? 2018-08-27T03:29:47Z beach: Fare: The log bot no longer works because participants have to be registered. 2018-08-27T03:29:58Z Fare: ouch 2018-08-27T03:30:08Z beach: Me? I can't remember any such books or articles. 2018-08-27T03:31:02Z beach: no-defun-allowed: The generational hypothesis says that objects either die young or survive for a long time. So generational collectors notice objects that have survived a certain time and promote them to an older generation where they are not considered for GC as often as the young generation. 2018-08-27T03:31:32Z beach: no-defun-allowed: It has nothing to do with mutation. So demoting an object would be a bad idea according to the hypothesis. 2018-08-27T03:32:44Z fikka joined #lisp 2018-08-27T03:34:37Z Roy_Fokker quit (Quit: Leaving) 2018-08-27T03:34:58Z omilu joined #lisp 2018-08-27T03:38:18Z fikka quit (Ping timeout: 272 seconds) 2018-08-27T03:41:43Z copec: Is that why there is a batch of really old people? 2018-08-27T03:42:30Z beach: Was that meant as a joke? 2018-08-27T03:42:52Z Oladon joined #lisp 2018-08-27T03:43:21Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-27T03:44:12Z copec: yeah :-/ 2018-08-27T03:47:38Z copec stops lurking and leaves again 2018-08-27T03:47:39Z housel quit (Remote host closed the connection) 2018-08-27T03:48:09Z housel joined #lisp 2018-08-27T03:53:28Z fikka joined #lisp 2018-08-27T03:58:42Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-27T03:58:49Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T04:05:36Z azimut quit (Ping timeout: 268 seconds) 2018-08-27T04:07:00Z Bike quit (Quit: Lost terminal) 2018-08-27T04:07:14Z azimut joined #lisp 2018-08-27T04:12:02Z _whitelogger quit (Remote host closed the connection) 2018-08-27T04:13:48Z fikka joined #lisp 2018-08-27T04:14:15Z _whitelogger joined #lisp 2018-08-27T04:19:10Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T04:20:49Z jinkies joined #lisp 2018-08-27T04:22:05Z buffergn0me joined #lisp 2018-08-27T04:23:50Z Fare: Yow, clog is an old perl script. It even smells more like perl4 than perl5. 2018-08-27T04:24:09Z Fare: Not sure I feel like editing it to play the nickserv game :-/ 2018-08-27T04:29:54Z zigpaw quit (Ping timeout: 264 seconds) 2018-08-27T04:31:16Z holycow quit (Quit: Lost terminal) 2018-08-27T04:33:35Z no-defun-allowed: > <@LdBeth:matrix.org> #'no-defun-allowed: please have a look at Templet Haskell. With lambda calculus function process is easier and more transparent in pure fp 2018-08-27T04:33:36Z no-defun-allowed: no. 2018-08-27T04:33:37Z no-defun-allowed: just no. 2018-08-27T04:34:08Z fikka joined #lisp 2018-08-27T04:36:02Z no-defun-allowed: i suppose when marking gen1 i'll also have to include references from gen0 and vice versa 2018-08-27T04:36:26Z no-defun-allowed: which, erm, would make generations pretty useless except for maybe splitting up sweep stops so i need to rethink this 2018-08-27T04:39:31Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T04:45:04Z shifty quit (Ping timeout: 268 seconds) 2018-08-27T04:46:56Z Hu0p joined #lisp 2018-08-27T04:47:10Z beach: no-defun-allowed: Yes, collecting an older generation usually means collecting the younger generations first, or at least tracing them. 2018-08-27T04:47:47Z beach: no-defun-allowed: Also, most generational collectors allow references from older generations to younger generations, and those have to be tracked separately when a younger generation is collected. 2018-08-27T04:48:37Z beach: no-defun-allowed: The point of it all is that you can continue collecting only young generations for quite some time, simply because objects die young, so every collection will recover most of the space. 2018-08-27T04:48:57Z beach: no-defun-allowed: Typically the objects surviving a collection in the young generation are promoted. 2018-08-27T04:49:42Z beach: no-defun-allowed: If you are lucky then (or rather, if the generational hypothesis is correct for your application) only very few objects are promoted each time, so you can wait quite some time to collect older generations. 2018-08-27T04:50:00Z beach: no-defun-allowed: I recommend "The Garbage Collection Handbook" by Jones. 2018-08-27T04:50:17Z no-defun-allowed: thankyou 2018-08-27T04:50:36Z no-defun-allowed: i have a copy but i haven't gotten very far into it 2018-08-27T04:54:47Z fikka joined #lisp 2018-08-27T04:57:25Z jinkies quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2018-08-27T04:58:29Z jinkies joined #lisp 2018-08-27T04:59:22Z flazh1 joined #lisp 2018-08-27T04:59:54Z fikka quit (Ping timeout: 264 seconds) 2018-08-27T05:05:15Z fikka joined #lisp 2018-08-27T05:08:08Z jinkies quit (Ping timeout: 276 seconds) 2018-08-27T05:09:32Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T05:11:10Z no-defun-allowed: i guess ref counting is used cause it's not a pain in the butt to understand 2018-08-27T05:11:51Z no-defun-allowed: anyways, the GC handbook says first-class functions are part of functional languages 2018-08-27T05:15:05Z fikka joined #lisp 2018-08-27T05:17:09Z dieggsy quit (Read error: Connection reset by peer) 2018-08-27T05:19:52Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T05:21:57Z p_l: no-defun-allowed: it's kinda the core requirement for FP 2018-08-27T05:25:35Z fikka joined #lisp 2018-08-27T05:29:33Z no-defun-allowed quit (Ping timeout: 255 seconds) 2018-08-27T05:30:08Z Inline quit (Quit: Leaving) 2018-08-27T05:30:12Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T05:32:51Z Manny8888 quit (Ping timeout: 240 seconds) 2018-08-27T05:33:31Z Jachy quit (Ping timeout: 264 seconds) 2018-08-27T05:33:50Z LdBeth quit (Ping timeout: 260 seconds) 2018-08-27T05:36:19Z Hu0p quit (Quit: See You Space Cowboy. . .) 2018-08-27T05:41:13Z theemacsshibe joined #lisp 2018-08-27T05:41:23Z theemacsshibe: i guess i have to go back to good ol irc again 2018-08-27T05:41:23Z minion: theemacsshibe, memo from phoe: matrix.org is updating, https://mastodon.matrix.org/@matrix/100559207263625726 2018-08-27T05:41:24Z zigpaw joined #lisp 2018-08-27T05:41:48Z theemacsshibe: well i can't check if that's *now* right now can i, minion? 2018-08-27T05:41:57Z theemacsshibe: i guess you were never taught context so don't worry 2018-08-27T05:45:34Z fikka joined #lisp 2018-08-27T05:45:35Z beach: theemacsshibe: phoe did not realize that you are no-defun-allowed are EQ. 2018-08-27T05:46:40Z theemacsshibe: phoe: (eq no-defun-allowed theemacsshibe) => T 2018-08-27T05:47:01Z theemacsshibe: i forgot where i got my "free" copy of the GC handbook 2018-08-27T05:50:40Z fikka quit (Ping timeout: 272 seconds) 2018-08-27T05:57:18Z vlatkoB joined #lisp 2018-08-27T06:00:41Z jack_rabbit joined #lisp 2018-08-27T06:03:27Z jack_rabbit quit (Max SendQ exceeded) 2018-08-27T06:05:02Z jack_rabbit joined #lisp 2018-08-27T06:07:43Z emaczen quit (Ping timeout: 264 seconds) 2018-08-27T06:08:24Z theemacsshibe quit (Remote host closed the connection) 2018-08-27T06:11:25Z d4ryus quit (Quit: WeeChat 2.2) 2018-08-27T06:11:54Z d4ryus joined #lisp 2018-08-27T06:14:42Z Shinmera: beach: The TyNET logs still work. http://irclog.tymoon.eu/freenode/%23lisp 2018-08-27T06:24:32Z CrazyEddy quit (Remote host closed the connection) 2018-08-27T06:45:09Z flamebeard joined #lisp 2018-08-27T06:46:54Z fikka joined #lisp 2018-08-27T06:47:40Z Fare quit (Ping timeout: 272 seconds) 2018-08-27T06:51:02Z theemacsshibe joined #lisp 2018-08-27T06:51:21Z theemacsshibe: so matrix is still broken apparently 2018-08-27T06:51:53Z theemacsshibe: i learnt how stop-copy GC works and it's actually really clever 2018-08-27T06:51:55Z shifty joined #lisp 2018-08-27T06:51:57Z theemacsshibe: are there any rooms for GC talk? 2018-08-27T06:53:16Z orivej joined #lisp 2018-08-27T06:53:27Z theemacsshibe: okay matrix isn't broken, hold up 2018-08-27T06:53:30Z theemacsshibe left #lisp 2018-08-27T06:55:09Z azimut quit (Ping timeout: 252 seconds) 2018-08-27T06:56:41Z buffergn0me quit (Ping timeout: 276 seconds) 2018-08-27T06:58:43Z azimut joined #lisp 2018-08-27T06:59:35Z stardiviner joined #lisp 2018-08-27T06:59:47Z igemnace joined #lisp 2018-08-27T07:03:57Z scymtym quit (Ping timeout: 252 seconds) 2018-08-27T07:05:03Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T07:05:36Z nowhere_man quit (Ping timeout: 252 seconds) 2018-08-27T07:06:21Z asarch quit (Quit: Leaving) 2018-08-27T07:07:40Z fikka joined #lisp 2018-08-27T07:08:18Z beach: Shinmera: Yes, I know, thanks. 2018-08-27T07:08:44Z beach: Shinmera: I am used to having a local file per day so that I can use my usual Unix tools on them. 2018-08-27T07:10:17Z Shinmera: Right. It's possible to have that with my logs too, it's just not convenient right now. 2018-08-27T07:10:25Z Shinmera: I could fix that though if I get some time today 2018-08-27T07:10:42Z beach: Oh, sure, that would be great. 2018-08-27T07:11:02Z beach: I suggested it in the past, and you weren't too enthusiastic, so I haven't brought it up since. 2018-08-27T07:11:17Z dkrm quit (Quit: WeeChat 2.2) 2018-08-27T07:12:29Z Shinmera: As far as I remember it I actually did implement the plaintext view for you, but I just never made it convenient. 2018-08-27T07:12:39Z Shinmera: But maybe my memory is wrong, that's all too possible 2018-08-27T07:12:49Z beach: I see. 2018-08-27T07:13:04Z beach: What I would really want is to use wget or some other command line tool. 2018-08-27T07:13:57Z beach: Like with Tunes I just do wget -N http://tunes.org/~nef/logs/lisp/18.08.{0,1,2,3}{0,1,2,3,4,5,6,7,8,9} 2018-08-27T07:16:19Z dented42 joined #lisp 2018-08-27T07:18:28Z dkrm joined #lisp 2018-08-27T07:26:04Z scymtym joined #lisp 2018-08-27T07:26:27Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T07:27:54Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-27T07:28:48Z beach: So if I have to click, then enter a URL, then click on forward/backward, then download then click on YES for overwrite the current one, then do it again for the other half day, and then repeat this exercise for every day of the month, I just give up. 2018-08-27T07:33:13Z fikka joined #lisp 2018-08-27T07:35:45Z azimut quit (Ping timeout: 244 seconds) 2018-08-27T07:37:44Z azimut joined #lisp 2018-08-27T07:39:04Z mange quit (Remote host closed the connection) 2018-08-27T07:40:44Z theemacsshibe joined #lisp 2018-08-27T07:40:51Z theemacsshibe: matrix is still still broken 2018-08-27T07:41:39Z shrdlu68 joined #lisp 2018-08-27T07:42:08Z azimut quit (Ping timeout: 252 seconds) 2018-08-27T07:42:23Z theemacsshibe left #lisp 2018-08-27T07:42:29Z shka_: good morning 2018-08-27T07:43:08Z azimut joined #lisp 2018-08-27T07:43:36Z Oladon quit (Quit: Leaving.) 2018-08-27T07:46:08Z graphene quit (Remote host closed the connection) 2018-08-27T07:46:20Z shrdlu68: Morning shka_ 2018-08-27T07:47:35Z graphene joined #lisp 2018-08-27T07:49:03Z megalography left #lisp 2018-08-27T07:50:41Z azimut quit (Ping timeout: 268 seconds) 2018-08-27T07:51:00Z caltelt quit (Ping timeout: 272 seconds) 2018-08-27T07:51:38Z azimut joined #lisp 2018-08-27T07:59:51Z quipa joined #lisp 2018-08-27T08:00:42Z quipa quit (Max SendQ exceeded) 2018-08-27T08:01:16Z quipa joined #lisp 2018-08-27T08:02:38Z quipa quit (Read error: Connection reset by peer) 2018-08-27T08:03:42Z bendersteed joined #lisp 2018-08-27T08:09:30Z azimut quit (Ping timeout: 264 seconds) 2018-08-27T08:12:52Z astalla joined #lisp 2018-08-27T08:13:25Z azimut joined #lisp 2018-08-27T08:17:38Z light2yellow joined #lisp 2018-08-27T08:33:04Z arbv joined #lisp 2018-08-27T08:40:19Z lagagain quit (Quit: Connection closed for inactivity) 2018-08-27T08:46:18Z graphene quit (Remote host closed the connection) 2018-08-27T08:47:44Z graphene joined #lisp 2018-08-27T08:50:56Z mingus joined #lisp 2018-08-27T08:52:06Z bendersteed quit (Remote host closed the connection) 2018-08-27T08:55:09Z graphene quit (Remote host closed the connection) 2018-08-27T08:55:46Z azimut_ joined #lisp 2018-08-27T08:57:15Z azimut quit (Ping timeout: 252 seconds) 2018-08-27T08:57:57Z foom2 joined #lisp 2018-08-27T08:58:27Z graphene joined #lisp 2018-08-27T08:58:36Z graphene quit (Read error: Connection reset by peer) 2018-08-27T09:00:45Z graphene joined #lisp 2018-08-27T09:01:06Z foom quit (Ping timeout: 264 seconds) 2018-08-27T09:02:18Z jdz: beach: you need logs by day (for how long back)? 2018-08-27T09:05:15Z beach: I have all the logs from Tunes since the beginning, but their bot stopped working a few days ago. 2018-08-27T09:06:04Z beach: 18.08.08 is definitely bad. Perhaps 18.08.07 as well. 2018-08-27T09:06:13Z jdz: I'm using ZNC, and I have all the logs by day for all August. 2018-08-27T09:06:28Z beach: Oh. What's ZNC? 2018-08-27T09:06:40Z jdz: IRC bouncer, like a proxy server. 2018-08-27T09:06:56Z jdz: It's always connected, and when I connect to it I get all the messages I have not read since I last connected. 2018-08-27T09:07:15Z beach: Is there a way to download the logs from ZNC? 2018-08-27T09:07:34Z jdz: Yes, it has a log module, and the logs are stored in the file system. 2018-08-27T09:07:53Z foom2 quit (Read error: Connection timed out) 2018-08-27T09:07:56Z beach: Sounds good. How do I do it? 2018-08-27T09:08:31Z foom2 joined #lisp 2018-08-27T09:09:16Z jdz: You install ZNC on your server, your Linux distribution should have it as a package. 2018-08-27T09:09:38Z beach: On my server? 2018-08-27T09:09:59Z jdz: Well, the machine that is always running. 2018-08-27T09:10:11Z beach: OK, and then what? 2018-08-27T09:10:26Z jdz: It has a web interface to configure it. 2018-08-27T09:10:56Z beach: Thanks. 2018-08-27T09:11:00Z jdz: This is the home page: https://wiki.znc.in/ZNC 2018-08-27T09:12:37Z defaultxr left #lisp 2018-08-27T09:13:40Z beach: I am not going to interrupt my current work to do all that, but I will consider doing it when I have some idle time. Thanks for the info. 2018-08-27T09:14:33Z azimut_ quit (Ping timeout: 268 seconds) 2018-08-27T09:14:43Z jdz: No problem. Feel free to ask me questions if it does not work the first time. 2018-08-27T09:15:00Z azimut joined #lisp 2018-08-27T09:22:15Z beach: Thanks, I might need that. 2018-08-27T09:22:20Z SumoSud0 joined #lisp 2018-08-27T09:22:47Z beach: I assume it works with any IRC client behind it, yes? 2018-08-27T09:26:08Z jdz: It should, yes. 2018-08-27T09:26:54Z jdz: From the perspective of the IRC client it's just an ordinary IRC server. 2018-08-27T09:33:45Z azimut quit (Read error: No route to host) 2018-08-27T09:38:25Z azimut joined #lisp 2018-08-27T09:39:13Z edgar-rft quit (Remote host closed the connection) 2018-08-27T09:47:19Z remix2000: Hello! Is the function `maptreet` from this paste tail recursive? https://hastebin.com/latugitunu.txt 2018-08-27T09:48:46Z beach: Wow, bad color scheme. 2018-08-27T09:48:56Z shka_: great 2018-08-27T09:48:59Z shka_: now i must chekc 2018-08-27T09:49:10Z shka_: if it is bad enough to trigger beach 2018-08-27T09:49:31Z shka_: beach: solarized, not a huge fan either 2018-08-27T09:50:04Z shka_: remix2000: first of, don't use defun in defun 2018-08-27T09:50:22Z beach: remix2000: That is a tough question to answer. 2018-08-27T09:50:38Z shka_: secondly, it is not 2018-08-27T09:50:49Z beach: Right, it is not. 2018-08-27T09:50:51Z shka_: 17 line 2018-08-27T09:51:11Z beach: It calls itself even though there is more work to be done. 2018-08-27T09:51:35Z remix2000: How can I make it tail recursive then? And what should I use instead of defun? 2018-08-27T09:51:59Z shka_: also, code is slightly horrible and people around all getting ready to roast you :D 2018-08-27T09:52:03Z beach: clhs labels 2018-08-27T09:52:03Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_flet_.htm 2018-08-27T09:52:16Z beach: remix2000: You should not care about tail recursion at all. 2018-08-27T09:52:33Z beach: remix2000: You should use recursion where necessary and iteration when possible. 2018-08-27T09:52:40Z arbv quit (Ping timeout: 252 seconds) 2018-08-27T09:52:55Z shka_: remix2000: thing is, it looks like you need stack to pull the thing you are doing 2018-08-27T09:53:02Z arbv joined #lisp 2018-08-27T09:53:13Z beach: remix2000: One reason not to care about tail recursion is that Common Lisp implementations are not required to optimize them into iteration. 2018-08-27T09:53:19Z shka_: so you are better of writing recursive function anyway 2018-08-27T09:53:56Z beach: remix2000: If it is a reasonably balanced tree, then the recursion depth should not be too bad anyway. 2018-08-27T09:54:21Z _death: remix2000: you can add another parameter that contains the "rest of the work" 2018-08-27T09:54:54Z remix2000: shka_: Why would they want to roast me? What is so bad in that code? 2018-08-27T09:55:15Z astalla quit (Ping timeout: 244 seconds) 2018-08-27T09:55:56Z beach: remix2000: Using nested DEFUNs is not typical and probably not what you want. 2018-08-27T09:55:57Z _death: remix2000: aside from the inner defun, the code isn't so bad.. it's not indented property and could use a better name for the inner function 2018-08-27T09:56:05Z _death: *properly 2018-08-27T09:56:25Z beach: remix2000: I would not put a newline after "(cond". 2018-08-27T09:56:35Z Lycurgus joined #lisp 2018-08-27T09:56:51Z _death: it also uses first/rest which is more suitable for dealing with lists than trees 2018-08-27T09:57:01Z beach: remix2000: And if a COND clause requires more than one line, I would put a newline after the condition, rather than in the middle of the function call. 2018-08-27T09:57:54Z beach: remix2000: In maptreeh I would not put a newline after (CONS or (COND. 2018-08-27T10:00:24Z stardiviner quit (Remote host closed the connection) 2018-08-27T10:02:09Z remix2000: _death: What should it use instead of first/rest? 2018-08-27T10:02:57Z beach: CAR and CDR if the CONS cells represent tree nodes. 2018-08-27T10:03:21Z beach: Using FIRST and REST suggests that you are processing lists. 2018-08-27T10:03:30Z remix2000: Aren't those synonyms? 2018-08-27T10:04:12Z beach: Semantically, yes. But not from the point of view of communicating with the person reading your code. 2018-08-27T10:04:37Z beach: remix2000: And since you asked people to read your code, that's the point of view you are getting. 2018-08-27T10:16:03Z michalisko quit (Quit: ZNC 1.6.3+deb1 - http://znc.in) 2018-08-27T10:17:18Z _death: remix2000: you could define your own names, say lhs/rhs 2018-08-27T10:17:22Z michalisko joined #lisp 2018-08-27T10:17:27Z azimut quit (Ping timeout: 268 seconds) 2018-08-27T10:17:52Z azimut joined #lisp 2018-08-27T10:23:00Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T10:24:19Z makomo joined #lisp 2018-08-27T10:24:28Z fikka joined #lisp 2018-08-27T10:28:32Z m00natic joined #lisp 2018-08-27T10:34:43Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T10:39:00Z zxcvz joined #lisp 2018-08-27T10:44:35Z CrazyEddy joined #lisp 2018-08-27T10:49:00Z random-nick joined #lisp 2018-08-27T10:49:59Z graphene quit (Remote host closed the connection) 2018-08-27T10:51:29Z graphene joined #lisp 2018-08-27T10:59:12Z quipa joined #lisp 2018-08-27T11:01:03Z fikka joined #lisp 2018-08-27T11:05:04Z quipa quit (Read error: Connection reset by peer) 2018-08-27T11:05:54Z orivej quit (Ping timeout: 264 seconds) 2018-08-27T11:10:31Z remix2000 left #lisp 2018-08-27T11:11:43Z SaganMan quit (Ping timeout: 268 seconds) 2018-08-27T11:13:35Z nowhere_man joined #lisp 2018-08-27T11:19:57Z dddddd joined #lisp 2018-08-27T11:24:25Z igemnace quit (Quit: WeeChat 2.2) 2018-08-27T11:25:29Z shka_: remix2000: what _death said makes the most sense 2018-08-27T11:26:05Z shka_: oh, you are gone 2018-08-27T11:36:26Z zfree joined #lisp 2018-08-27T11:41:02Z shka_: cl-json is way to go when dealing with json files? 2018-08-27T11:41:23Z Shinmera: Depends on what you like. 2018-08-27T11:41:31Z Shinmera: https://sites.google.com/site/sabraonthehill/home/json-libraries 2018-08-27T11:42:03Z remix2000 joined #lisp 2018-08-27T11:42:11Z shka_: i basicly want to serialize and deserialize lisp objects, with minimal ammount of extra work on my side 2018-08-27T11:42:15Z shka_: remix2000: welcome back! 2018-08-27T11:42:40Z remix2000: Hello 2018-08-27T11:43:57Z edgar-rft joined #lisp 2018-08-27T11:47:48Z lonjil2 quit (Ping timeout: 252 seconds) 2018-08-27T11:49:05Z shka_: ok, so cl-json seems to not handle dot pairs 2018-08-27T11:49:10Z shka_: which kinda makes sense 2018-08-27T11:49:26Z shka_: but i wonder how can i fix that... 2018-08-27T11:57:00Z atgreen joined #lisp 2018-08-27T11:57:16Z azimut quit (Quit: Adios) 2018-08-27T11:57:34Z light2yellow quit (Quit: light2yellow) 2018-08-27T11:57:39Z azimut joined #lisp 2018-08-27T11:58:49Z lonjil joined #lisp 2018-08-27T12:11:57Z azimut quit (Ping timeout: 252 seconds) 2018-08-27T12:12:57Z azimut joined #lisp 2018-08-27T12:16:23Z shrdlu68 quit (Ping timeout: 272 seconds) 2018-08-27T12:16:28Z SenasOzys quit (Ping timeout: 268 seconds) 2018-08-27T12:17:18Z zxcvz quit (Quit: zxcvz) 2018-08-27T12:21:10Z SenasOzys joined #lisp 2018-08-27T12:22:01Z fikka quit (Ping timeout: 268 seconds) 2018-08-27T12:23:41Z pierpal quit (Read error: Connection reset by peer) 2018-08-27T12:36:32Z Cymew joined #lisp 2018-08-27T12:39:19Z bmansurov_ is now known as bmansurov 2018-08-27T12:41:47Z heisig joined #lisp 2018-08-27T12:43:16Z mindCrime joined #lisp 2018-08-27T12:44:50Z nowhere_man quit (Ping timeout: 268 seconds) 2018-08-27T12:51:05Z pierpal joined #lisp 2018-08-27T12:56:07Z pierpal quit (Read error: Connection reset by peer) 2018-08-27T12:56:27Z pierpal joined #lisp 2018-08-27T12:57:49Z k-stz joined #lisp 2018-08-27T12:59:47Z fikka joined #lisp 2018-08-27T13:02:48Z orivej joined #lisp 2018-08-27T13:07:06Z kajo quit (Ping timeout: 264 seconds) 2018-08-27T13:08:52Z LiamH joined #lisp 2018-08-27T13:09:17Z Bike joined #lisp 2018-08-27T13:11:02Z arduo joined #lisp 2018-08-27T13:12:55Z SenasOzys quit (Quit: Leaving) 2018-08-27T13:17:33Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-27T13:17:50Z FreeBirdLjj joined #lisp 2018-08-27T13:19:20Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-27T13:33:47Z pierpal quit (Read error: Connection reset by peer) 2018-08-27T13:35:20Z pierpal joined #lisp 2018-08-27T13:38:50Z mindCrime joined #lisp 2018-08-27T13:41:50Z pierpal quit (Ping timeout: 252 seconds) 2018-08-27T13:42:23Z loke quit (Ping timeout: 268 seconds) 2018-08-27T13:43:08Z orivej quit (Ping timeout: 272 seconds) 2018-08-27T13:44:17Z pierpal joined #lisp 2018-08-27T13:44:42Z kushal quit (Remote host closed the connection) 2018-08-27T13:44:58Z kushal joined #lisp 2018-08-27T13:46:43Z elfmacs joined #lisp 2018-08-27T13:47:14Z makomo quit (Ping timeout: 244 seconds) 2018-08-27T13:48:50Z mindCrime quit (Ping timeout: 272 seconds) 2018-08-27T13:55:22Z AeroNotix: is there a reason #'disassemble on SBCL inserts NOPs? 2018-08-27T13:55:51Z flip214: AeroNotix: alignment for loop entry points and similar reasons 2018-08-27T13:57:07Z AeroNotix: flip214: ahhh makes sense 2018-08-27T14:05:03Z [X-Scale] joined #lisp 2018-08-27T14:05:15Z X-Scale quit (Ping timeout: 252 seconds) 2018-08-27T14:05:37Z [X-Scale] is now known as X-Scale 2018-08-27T14:19:02Z AeroNotix: given a CALL/JMP in the disassembly, can I find the function at that address? 2018-08-27T14:19:10Z AeroNotix: Using SBCL 2018-08-27T14:20:17Z Bike: doesn't the disassembly put the functions in comments 2018-08-27T14:20:24Z Bike: like, their names 2018-08-27T14:20:28Z flip214: AeroNotix: compile with a higher DEBUG setting to get ^^ 2018-08-27T14:20:34Z Bike: oh. 2018-08-27T14:20:59Z AeroNotix: oh okay, sorry, I'm compiling with different declaims yeah 2018-08-27T14:22:17Z flip214: AeroNotix: does your program already work flawlessly, for every input and in every case? 2018-08-27T14:22:39Z flip214: if not, why are you already optimizing things?? ;) 2018-08-27T14:23:21Z AeroNotix: flip214: please don't assume 2018-08-27T14:23:29Z AeroNotix: I'm just exploring what SBCL does with functions 2018-08-27T14:23:41Z AeroNotix: and how different lisp code is translated. 2018-08-27T14:24:02Z AeroNotix: I very much understand the premise of premature optimization 2018-08-27T14:24:59Z AeroNotix: I was interested in what SBCL does with calls like: (funcall (slot-accessor class) args) 2018-08-27T14:24:59Z danielxvu quit (Remote host closed the connection) 2018-08-27T14:25:23Z danielxvu joined #lisp 2018-08-27T14:25:30Z AeroNotix: i.e. I thought perhaps it would be able to compile that to a single CALL/JMP 2018-08-27T14:26:32Z Shinmera: generic functions typically don't have strict ftypes 2018-08-27T14:26:54Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-27T14:27:19Z flip214: AeroNotix: even if you see only a simple "CALL" in _your_ function, what the called function does might have quite some runtime impact. 2018-08-27T14:27:22Z Shinmera: So it'll do a check unless you make a promise about the return type 2018-08-27T14:27:27Z loke joined #lisp 2018-08-27T14:27:39Z flip214: but I understand what you're looking at -- good luck, and please report any interesting results! 2018-08-27T14:28:13Z mindCrime joined #lisp 2018-08-27T14:28:26Z AeroNotix: flip214: I'm just interested in how sbcl finds the function to call 2018-08-27T14:28:46Z Fare joined #lisp 2018-08-27T14:29:09Z loke quit (Remote host closed the connection) 2018-08-27T14:29:21Z dale joined #lisp 2018-08-27T14:29:34Z flip214: AeroNotix: also look for inlined generic functions 2018-08-27T14:29:38Z AeroNotix: flip214: okay 2018-08-27T14:29:53Z astalla joined #lisp 2018-08-27T14:30:38Z AeroNotix: It's not an issue now but I'm writing an emulator. The typical style to write an emulator is to have a massive switch in the inner loop to jump to handlers for opcodes. I've implemented it differently in that each instruction is an instance of some class with the "microcode" in a function on that type. The way I understand it the two approaches could behave similarly 2018-08-27T14:31:14Z AeroNotix: since if sbcl can understand that the handler is just a function at some offset, couldn't it compile to a simple jump? 2018-08-27T14:31:35Z AeroNotix: anyway, like I say, it's not important. I'm just procrastinating on actually getting the emulator finished :) 2018-08-27T14:32:08Z sjl__ joined #lisp 2018-08-27T14:32:34Z v0|d: AeroNotix: local funs are like that, the others, which have entry points are compiled with type checks. 2018-08-27T14:32:49Z loke joined #lisp 2018-08-27T14:33:23Z v0|d: try inlining or semi-inlining?. 2018-08-27T14:33:57Z AeroNotix: v0|d: I'll try that and see how it changes the assembly. I'm not looking for performance, just enlightenment 2018-08-27T14:34:54Z Bike: mm, the problem there is that generic functions can have methods added and removed after calls to them are compiled 2018-08-27T14:35:12Z Bike: on sbcl slot accessors have a cache so it should be pretty fast, but it probably won't be a computed goto 2018-08-27T14:36:18Z Bike: this has the advantage that you can add new instructions and so on without having to recompile your interpreter, which you may or may not care about. 2018-08-27T14:36:55Z AeroNotix: oh good point re methods being added/removed. Interesting. 2018-08-27T14:39:08Z Bike: slot accessor functions are just generic functions. you can have a gf that's a slot accessor for one class but has a whole regular defmethod body for some other specialization. 2018-08-27T14:39:48Z Bike: if you're feeling dangerous you could use mop:standard-instance-access which is the offset-into-the-object level of things, but there's a pretty good chance of explosion 2018-08-27T14:40:49Z flamebeard quit 2018-08-27T14:41:09Z AeroNotix: What's a gf? 2018-08-27T14:41:18Z Bike: generic function 2018-08-27T14:41:22Z AeroNotix: ah right, sorry 2018-08-27T14:41:24Z atgreen quit (Ping timeout: 272 seconds) 2018-08-27T14:45:37Z shifty quit (Ping timeout: 244 seconds) 2018-08-27T14:48:23Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-27T14:48:30Z loke quit (Ping timeout: 264 seconds) 2018-08-27T14:49:53Z Bike: AeroNotix: you might find https://github.com/kingcons/cl-6502/ interesting. If I'm reading correctly it uses a vector of "microcode" thunks. 2018-08-27T14:50:09Z Denommus joined #lisp 2018-08-27T14:50:47Z pierpal quit (Ping timeout: 244 seconds) 2018-08-27T14:51:43Z heisig quit (Quit: Leaving) 2018-08-27T14:52:35Z FreeBirdLjj joined #lisp 2018-08-27T14:53:31Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-27T14:54:05Z meepdeew joined #lisp 2018-08-27T14:54:12Z Fare quit (Ping timeout: 252 seconds) 2018-08-27T14:54:18Z elfmacs quit (Quit: WeeChat 2.2) 2018-08-27T14:55:38Z AeroNotix: Bike: indeed, I read that a while ago. I don't want to go too far into the code right now cause I want to develop my own ideas rather than risk "stealing" his 2018-08-27T14:56:55Z shka_: hello 2018-08-27T14:56:56Z orivej joined #lisp 2018-08-27T14:57:03Z shka_: so i have issue with cl-json 2018-08-27T14:57:42Z shka_: it is neat and cool but for some reason uses way to much memory when encoding objects 2018-08-27T14:58:15Z shka_: is there some sort of magic option for circularity checks or something? 2018-08-27T14:59:08Z meepdeew quit (Ping timeout: 272 seconds) 2018-08-27T15:00:00Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-27T15:00:16Z FreeBirdLjj joined #lisp 2018-08-27T15:07:26Z shka_: or should i just switch to yason? 2018-08-27T15:08:20Z shka_: yason does not look nearly as friendly as cl-json 2018-08-27T15:11:16Z swflint quit (Ping timeout: 265 seconds) 2018-08-27T15:12:04Z Inline joined #lisp 2018-08-27T15:13:34Z warweasle_bbl is now known as warweasle 2018-08-27T15:14:53Z swflint joined #lisp 2018-08-27T15:16:27Z Fare joined #lisp 2018-08-27T15:18:51Z SenasOzys joined #lisp 2018-08-27T15:20:13Z SenasOzys quit (Remote host closed the connection) 2018-08-27T15:20:26Z zooey quit (Remote host closed the connection) 2018-08-27T15:20:56Z zooey joined #lisp 2018-08-27T15:21:23Z SenasOzys joined #lisp 2018-08-27T15:21:24Z Denommus quit (Read error: Connection reset by peer) 2018-08-27T15:22:15Z nopolitica quit (Ping timeout: 252 seconds) 2018-08-27T15:22:17Z loke joined #lisp 2018-08-27T15:34:32Z random-nick: did the SSL certificate for planet.lisp.org expire? 2018-08-27T15:35:41Z SenasOzys quit (Remote host closed the connection) 2018-08-27T15:38:06Z SenasOzys joined #lisp 2018-08-27T15:38:19Z Fare quit (Ping timeout: 244 seconds) 2018-08-27T15:38:53Z Lycurgus: why do you think there ever was one? 2018-08-27T15:38:57Z graphene quit (Remote host closed the connection) 2018-08-27T15:39:10Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T15:40:21Z Fare joined #lisp 2018-08-27T15:40:27Z graphene joined #lisp 2018-08-27T15:47:54Z Fare quit (Ping timeout: 272 seconds) 2018-08-27T15:48:37Z Fare joined #lisp 2018-08-27T15:50:34Z shka_: jesus christ 2018-08-27T15:51:05Z shka_: yason attempts to print 320mb jason in repl buffer 2018-08-27T15:51:09Z shka_: inside emacs 2018-08-27T15:55:34Z nowhere_man joined #lisp 2018-08-27T15:59:25Z varjag joined #lisp 2018-08-27T16:00:22Z Lycurgus: it made you submit a 320mb file, right? 2018-08-27T16:01:09Z shka_: Lycurgus: i am not sure what happend here 2018-08-27T16:01:48Z Lycurgus: shka_, ah 2018-08-27T16:01:49Z nopolitica joined #lisp 2018-08-27T16:01:57Z Lycurgus quit (Quit: Exeunt) 2018-08-27T16:02:08Z shka_: i am using yason for the first time 2018-08-27T16:03:42Z steiner joined #lisp 2018-08-27T16:06:24Z asarch joined #lisp 2018-08-27T16:07:57Z varjag quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-27T16:08:17Z varjag joined #lisp 2018-08-27T16:08:17Z orivej quit (Ping timeout: 244 seconds) 2018-08-27T16:09:30Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-27T16:09:48Z zfree quit (Quit: zfree) 2018-08-27T16:09:55Z fikka joined #lisp 2018-08-27T16:13:26Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-27T16:13:58Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T16:15:30Z Fare quit (Ping timeout: 264 seconds) 2018-08-27T16:16:21Z SaganMan joined #lisp 2018-08-27T16:24:38Z astalla quit (Ping timeout: 272 seconds) 2018-08-27T16:25:24Z Oladon joined #lisp 2018-08-27T16:26:21Z pjb: AeroNotix: The only reason why disassemble would insert NOPs on sbcl that I can see, would be to prevent you to know the actual offset of instructions in the function. Perhaps it would be a security measure to prevent you to exploit the code generated by sbcl compiler. 2018-08-27T16:26:56Z doubledup joined #lisp 2018-08-27T16:27:11Z SumoSud0 quit (Read error: Connection reset by peer) 2018-08-27T16:34:19Z kdas_ joined #lisp 2018-08-27T16:34:29Z kushal quit (Ping timeout: 250 seconds) 2018-08-27T16:34:58Z fikka joined #lisp 2018-08-27T16:35:00Z SumoSud0 joined #lisp 2018-08-27T16:37:53Z kdas_ is now known as kushal 2018-08-27T16:40:24Z dyelar joined #lisp 2018-08-27T16:43:48Z phlm joined #lisp 2018-08-27T16:44:38Z phlm quit (Remote host closed the connection) 2018-08-27T16:50:18Z fikka quit (Ping timeout: 264 seconds) 2018-08-27T16:55:47Z tumdum joined #lisp 2018-08-27T16:55:51Z fikka joined #lisp 2018-08-27T16:57:17Z scymtym quit (Ping timeout: 276 seconds) 2018-08-27T16:58:51Z Kevslinger joined #lisp 2018-08-27T17:00:15Z shka_ joined #lisp 2018-08-27T17:08:47Z Ukari joined #lisp 2018-08-27T17:11:12Z m00natic quit (Remote host closed the connection) 2018-08-27T17:11:50Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T17:15:24Z Ukari quit (Remote host closed the connection) 2018-08-27T17:16:18Z Ukari joined #lisp 2018-08-27T17:17:29Z Jesin quit (Quit: Leaving) 2018-08-27T17:20:37Z adlai quit (Read error: Connection reset by peer) 2018-08-27T17:20:57Z adlai joined #lisp 2018-08-27T17:21:01Z dmiles quit (Read error: Connection reset by peer) 2018-08-27T17:21:13Z whartung quit (Ping timeout: 260 seconds) 2018-08-27T17:22:15Z Jesin joined #lisp 2018-08-27T17:23:16Z Ukari quit (Remote host closed the connection) 2018-08-27T17:23:55Z logicmoo joined #lisp 2018-08-27T17:24:08Z Ukari joined #lisp 2018-08-27T17:24:28Z kamog joined #lisp 2018-08-27T17:25:38Z logicmoo is now known as dmiles 2018-08-27T17:25:55Z pierpal joined #lisp 2018-08-27T17:27:43Z Ukari quit (Remote host closed the connection) 2018-08-27T17:28:45Z lonjil quit (Ping timeout: 252 seconds) 2018-08-27T17:28:48Z Ukari joined #lisp 2018-08-27T17:29:35Z emaczen joined #lisp 2018-08-27T17:31:37Z kristof joined #lisp 2018-08-27T17:32:58Z lonjil joined #lisp 2018-08-27T17:34:36Z fouric: AeroNotix: by any chance are you writing a CHIP-8 emulator 2018-08-27T17:34:52Z AeroNotix: fouric: I think I already wrote a chip8 emulator. I'm writing a Z80 emulator. 2018-08-27T17:35:00Z fouric: gotcha, gl 2018-08-27T17:35:24Z emaczen: https://pastebin.com/bbqHc33x -- any idea why this is eating up about 50MB/s ? 2018-08-27T17:35:35Z emaczen: display-jpeg is called in a loop of course 2018-08-27T17:35:36Z AeroNotix: dohhh, my chip8 emulator was on my previous job's laptop... 2018-08-27T17:40:35Z shka_: AeroNotix: i feel your sorrow 2018-08-27T17:41:24Z sjl__: rewrite it -- chip8 is pretty small and the second time around will be cleaner ;) 2018-08-27T17:43:50Z Ukari quit (Remote host closed the connection) 2018-08-27T17:44:27Z Ukari joined #lisp 2018-08-27T17:45:43Z Ukari quit (Remote host closed the connection) 2018-08-27T17:46:08Z Ukari joined #lisp 2018-08-27T17:46:28Z dieggsy joined #lisp 2018-08-27T17:46:55Z Ukari quit (Client Quit) 2018-08-27T17:48:16Z Ukari joined #lisp 2018-08-27T17:48:16Z Ukari quit (Client Quit) 2018-08-27T17:49:06Z Ukari joined #lisp 2018-08-27T17:50:39Z AeroNotix: yeah I could but honestly chip8 just isn't that interesting 2018-08-27T17:50:43Z AeroNotix: z80 is the new black 2018-08-27T17:51:04Z shka_: *new* 2018-08-27T17:54:53Z Fare joined #lisp 2018-08-27T17:56:37Z AeroNotix: http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/ 2018-08-27T17:56:43Z AeroNotix: not read it but seems a long read 2018-08-27T17:57:08Z Bike: z80 being new is a bit surreal 2018-08-27T17:57:27Z shka_: Bike: the only secure processor on the market! :D 2018-08-27T17:59:03Z Demosthenex: AeroNotix: enjoying it 2018-08-27T18:00:34Z tumdum quit (Ping timeout: 268 seconds) 2018-08-27T18:03:48Z AeroNotix: Demosthenex: I had to look at my dead tree copy to see if the "kludges 1-971" image wasn't a joke! It really has that in the index :) 2018-08-27T18:04:00Z AeroNotix: Bike: I was joking. I'm just pretending it's in vogue 2018-08-27T18:04:27Z graphene quit (Remote host closed the connection) 2018-08-27T18:05:52Z graphene joined #lisp 2018-08-27T18:06:58Z sjl__: AeroNotix: I mean, it *is* a joke 2018-08-27T18:07:15Z sjl__: just one by steele, not by me :) 2018-08-27T18:08:22Z AeroNotix: sjl__: you're the author of that article? 2018-08-27T18:08:27Z sjl__: yes 2018-08-27T18:08:30Z AeroNotix: ok 2018-08-27T18:08:36Z kristof: Which one? 2018-08-27T18:08:49Z AeroNotix: http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/ 2018-08-27T18:09:06Z AeroNotix: sjl__: a perfectly fine article 2018-08-27T18:10:12Z AeroNotix: my issue with articles like that (and I've had one "in progress" for literally years, but more comparing how Erlang can learn from CL) is that it simply doesn't matter to non-Lispers. I find people just have to experience the benefits for themselves. You can talk about all the rad features you want until you're blue in the face but rarely will anyone actually go out and decide to use Lisp based on that 2018-08-27T18:10:13Z logc joined #lisp 2018-08-27T18:10:28Z AeroNotix: I've spoke about CL to colleagues for years. I've had literally a single colleague try to pick it up 2018-08-27T18:10:37Z shka_: AeroNotix: typical 2018-08-27T18:11:00Z AeroNotix: maybe I express it poorly, but I don't feel I do. I just think the benefits don't immediately sound worth it when vocalized. They need to be experienced 2018-08-27T18:11:59Z dlowe: I think most people are unwilling to invest that kind of mental effort for uncertain gains. 2018-08-27T18:12:21Z AeroNotix: true as well yeah 2018-08-27T18:13:04Z logc quit (Client Quit) 2018-08-27T18:13:30Z dlowe: I love the learning itself, so I feel that new perspectives are valuable, even if not immediately practical. 2018-08-27T18:13:37Z Shinmera: I probably would never have learned Lisp if I hadn't just had a month of free time where I just decided to get into it on a whim. 2018-08-27T18:13:42Z kristof: That's not true, because it doesn't explain why things which have no benefits or negative benefits are readily adopted. Essays do work. 2018-08-27T18:13:49Z kristof: See: Paul Graham, whatever you might think of him. 2018-08-27T18:14:11Z dlowe: kristof: it can be true without being complete 2018-08-27T18:14:33Z sjl__ is now known as sjl_ 2018-08-27T18:15:02Z fikka joined #lisp 2018-08-27T18:15:18Z sjl_: I mostly wrote this so I can link people to it when they email me asking how to learn, not really to try to convince the masses. 2018-08-27T18:15:36Z dlowe: sjl_: oh, that was you! Lemonodor fame! 2018-08-27T18:15:39Z shka_: sjl_: i like font in this article 2018-08-27T18:15:42Z sjl_: lemonodor? 2018-08-27T18:15:48Z Shinmera: Not even a mention of Portacle? I am saddened 2018-08-27T18:15:55Z shka_: and text seems to be fine 2018-08-27T18:16:03Z dlowe: (that's the joke) http://lemonodor.com/ 2018-08-27T18:16:14Z shka_: it should be useful 2018-08-27T18:16:17Z dlowe: Lemonodor used to be a niche-famous blogger 2018-08-27T18:16:20Z sjl_: Shinmera: portacle is the new lisp in a box, right? I could add a link to it in the editor section 2018-08-27T18:16:20Z dlowe: for lisp 2018-08-27T18:16:28Z AeroNotix: sjl_: I enjoyed it +1 2018-08-27T18:16:32Z Shinmera: sjl_: Yes. https://portacle.github.io 2018-08-27T18:16:35Z sjl_: ah, I haven't seen this blog before 2018-08-27T18:16:44Z shka_: lemondor... now that's obscuer 2018-08-27T18:16:44Z dlowe: he doesn't post on lisp anymore 2018-08-27T18:17:07Z dlowe: When you start up slime, one of the encouragements it gives you is "Lemonodor fame awaits!" 2018-08-27T18:17:12Z SenasOzys quit (Ping timeout: 252 seconds) 2018-08-27T18:17:19Z kristof: sjl_: This is good, thank you for writing it. 2018-08-27T18:19:53Z sjl: Shinmera: I added it 2018-08-27T18:20:22Z Shinmera: Great! 2018-08-27T18:20:55Z sjl_: shka_: thanks. I honestly don't even remember what font I ended up with. for a while I was using some webfont so it'd look the same everywhere, but then I got a desire to pare things down and make the pages load as fast as possible 2018-08-27T18:21:17Z shka_: well, it looks pretty stylish! 2018-08-27T18:21:22Z sjl_: so I tried to pick a vanilla font stack that would work decently well everywhere and not butcher all the code too much 2018-08-27T18:21:47Z shka_: anyway, it looks like a fine article 2018-08-27T18:22:08Z shka_: it surely took some work to put it together 2018-08-27T18:22:10Z sjl_: removing jquery was the latest effort on the fast loading front. the final JS is to compensate for a missing feature in Hugo... I really don't want to have to write my own static site generator in CL 2018-08-27T18:22:25Z shka_: i will certainly spam it to everyone ;-) 2018-08-27T18:22:42Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T18:22:43Z sjl_: Yeah, though it was mostly done on airplanes because I've been flying between the east and west coasts a lot lately. 5 hours flights let you get a lot of writing done :) 2018-08-27T18:23:32Z shka_: i will add The Hamster Wheel of Backwards Incompatibility to my dictionary 2018-08-27T18:24:48Z doubledup quit (Read error: Connection reset by peer) 2018-08-27T18:25:04Z doubledup joined #lisp 2018-08-27T18:30:53Z sauvin quit (Read error: Connection reset by peer) 2018-08-27T18:32:46Z kajo joined #lisp 2018-08-27T18:34:10Z dlowe: sjl_: I do think it was really good writing and a compelling introduction. 2018-08-27T18:34:17Z sjl_: thanks 2018-08-27T18:34:28Z Fare quit (Ping timeout: 272 seconds) 2018-08-27T18:39:15Z eschulte joined #lisp 2018-08-27T18:41:59Z gravicappa joined #lisp 2018-08-27T18:41:59Z DataLinkDroid quit (Read error: Connection reset by peer) 2018-08-27T18:42:15Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-27T18:43:21Z eschulte quit (Remote host closed the connection) 2018-08-27T18:45:23Z kristof: sjl_: In your "shaving the editor yak", you omitted that Atom has a SLIME package. 2018-08-27T18:45:34Z sjl_: Oh, it does? Do you have a link? 2018-08-27T18:45:49Z kristof: sjl_: https://atom.io/packages/atom-slime 2018-08-27T18:46:47Z sjl_: I'll take a look later on after work and maybe add it in 2018-08-27T18:47:47Z sjl_: Hmm, no stack traces, inspector, compile file, find callers.... not sure it's quite up to even vlime's level, let alone slime 2018-08-27T18:47:55Z sjl_: it's a good start though! 2018-08-27T18:48:05Z kristof: You mean you'll check the package out? It works... mostly. I noticed when I select the wrong restart my repl process freezes up entirely and I have to restart. 2018-08-27T18:48:21Z kristof: Yeah, it's not perfect. But telling people that it exists is a way of improving this stuff ;) 2018-08-27T18:48:52Z kristof: sjl_: Do you know of a good guide to debugging in Lisp? You seem to be an expert in this. 2018-08-27T18:49:01Z SenasOzys joined #lisp 2018-08-27T18:49:48Z shka_: kristof: there are decent tutorials on youtube 2018-08-27T18:49:52Z fikka joined #lisp 2018-08-27T18:49:53Z sjl_: You mean using the slime/vlime debugger itself? I'm definitely not an expert in that. I only use probably half of its potential 2018-08-27T18:50:20Z sjl_: I never figured out how to use all the stepping stuff, for example 2018-08-27T18:50:24Z sjl_: maybe some day 2018-08-27T18:53:01Z void_pointer joined #lisp 2018-08-27T18:57:45Z eschulte joined #lisp 2018-08-27T18:57:51Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T18:59:21Z lavaflow joined #lisp 2018-08-27T18:59:30Z Fare joined #lisp 2018-08-27T19:08:53Z dented42 joined #lisp 2018-08-27T19:13:22Z logc joined #lisp 2018-08-27T19:16:04Z logc left #lisp 2018-08-27T19:18:20Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-27T19:20:07Z FreeBirdLjj joined #lisp 2018-08-27T19:25:39Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-27T19:26:52Z lonjil quit (Ping timeout: 252 seconds) 2018-08-27T19:27:50Z oni-on-ion: my interest in CL remains, exactly due to all the rad things you guys say about it =) 2018-08-27T19:28:10Z kristof quit (Remote host closed the connection) 2018-08-27T19:28:28Z kristof joined #lisp 2018-08-27T19:28:42Z robotoad quit (Ping timeout: 264 seconds) 2018-08-27T19:33:53Z Lycurgus joined #lisp 2018-08-27T19:37:04Z Lycurgus quit (Read error: Connection timed out) 2018-08-27T19:37:29Z Lycurgus joined #lisp 2018-08-27T19:44:39Z fikka joined #lisp 2018-08-27T19:48:30Z leo_song quit (Ping timeout: 264 seconds) 2018-08-27T19:49:36Z fikka quit (Ping timeout: 252 seconds) 2018-08-27T19:50:52Z leo_song joined #lisp 2018-08-27T19:51:48Z warex joined #lisp 2018-08-27T19:53:45Z _death: sjl: your sbcl link needs fixin' 2018-08-27T19:54:50Z sjl_: whops 2018-08-27T19:55:41Z sjl_: thanks 2018-08-27T19:57:26Z Fare quit (Ping timeout: 272 seconds) 2018-08-27T20:02:12Z shka_ quit (Ping timeout: 252 seconds) 2018-08-27T20:03:19Z pierpal quit (Read error: Connection reset by peer) 2018-08-27T20:04:00Z scymtym joined #lisp 2018-08-27T20:04:41Z pierpal joined #lisp 2018-08-27T20:11:20Z vlatkoB quit (Remote host closed the connection) 2018-08-27T20:12:12Z AeroNotix: sjl_: there's a static site generator in CL I use. I'm a fan of it. Coleslaw 2018-08-27T20:14:07Z sjl_: I think any generator I choose is always gonna have at least one thing missing for me 2018-08-27T20:14:30Z sjl_: Maybe the solution is a post processing step where I mangle the generated HTML in one final step 2018-08-27T20:14:37Z sjl_: rather than try to reimplement from scratch 2018-08-27T20:21:16Z AeroNotix: fair enough. I like coleslaw cause it comes built in with a "render on git push" script 2018-08-27T20:22:10Z dlowe: browsers support xslt. I'm gonna see if I can make a purely static website/blog work sometime. 2018-08-27T20:22:13Z kristof: sjl_ what was the feature missing in Hugo that you needed? 2018-08-27T20:22:52Z sjl_: kristof: putting the table of contents at a specific place inside the article itself, not before the whole thing. I really like writing a short introduction, then showing the table of contents, then the actual article 2018-08-27T20:23:43Z _death: cool post sjl :) 2018-08-27T20:23:48Z sjl_: _death: thanks! 2018-08-27T20:24:21Z sjl_: kristof: right now I render the hugo toc like normal, hide it with CSS, and then use JS to shove it into the correct place at runtime. it's gross. 2018-08-27T20:25:04Z sjl_: I could probably whip up something with plump/lquery/whatever to postprocess that 2018-08-27T20:25:12Z AeroNotix: sjl_: coleslaw uses markdown to write the blogs themselves 2018-08-27T20:25:29Z sjl_: yeah so does hugo, I do like that 2018-08-27T20:25:30Z pjb: sjl_: if you implement it yourself, you can easily modify it to add the last one thing missing for you. 2018-08-27T20:25:30Z kristof: sjl_ Can't you use {{.TableOfContents}} ? 2018-08-27T20:25:42Z gravicappa quit (Ping timeout: 264 seconds) 2018-08-27T20:25:48Z pjb: sjl_: alternatively, you can patch an existing one, but it's generally more work than to write your own. 2018-08-27T20:25:52Z sjl_: pjb: well yeah, but the hard part is that first step 2018-08-27T20:25:52Z Shinmera: sjl_: I actually use a quick lquery post-process in a few of my apps to "dynamicalise" cached pages. 2018-08-27T20:26:09Z pjb: If not work to understand it and patch it, work to make your patch acceptable to the upstream. 2018-08-27T20:26:31Z Lycurgus quit (Quit: Exeunt) 2018-08-27T20:26:42Z sjl_: kristof: that tag will only work in the template, but I want to put it in middle of the markdown file itself. last time I tried, that wouldn't work 2018-08-27T20:27:19Z kristof: sjl_ Gotcha. Yeah, the alternative is to write your intro separately from the markdown file but that partially defeats the point, doesn't it 2018-08-27T20:27:25Z sjl_: yeah 2018-08-27T20:28:50Z warex quit (Ping timeout: 252 seconds) 2018-08-27T20:28:58Z sjl_: pjb: I have to learn Go for my new job anyway, once I do that maybe I'll look at fixing it and contributing it upstream 2018-08-27T20:31:38Z asarch quit (Quit: Leaving) 2018-08-27T20:39:20Z fikka joined #lisp 2018-08-27T20:43:28Z quazimodo joined #lisp 2018-08-27T20:44:11Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T20:49:05Z Roy_Fokker joined #lisp 2018-08-27T20:55:07Z warex joined #lisp 2018-08-27T21:17:53Z Lycurgus joined #lisp 2018-08-27T21:20:26Z arduo quit (Remote host closed the connection) 2018-08-27T21:27:02Z Ukari quit (Ping timeout: 276 seconds) 2018-08-27T21:29:18Z papachan joined #lisp 2018-08-27T21:31:12Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-27T21:37:50Z LiamH quit (Quit: Leaving.) 2018-08-27T21:39:09Z Bike quit (Ping timeout: 252 seconds) 2018-08-27T21:42:31Z Ukari joined #lisp 2018-08-27T21:46:22Z doubledup quit (Quit: Leaving) 2018-08-27T21:50:10Z fikka joined #lisp 2018-08-27T21:54:54Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-27T21:54:58Z fikka quit (Ping timeout: 244 seconds) 2018-08-27T21:55:45Z graphene quit (Remote host closed the connection) 2018-08-27T21:56:27Z quazimodo joined #lisp 2018-08-27T21:57:23Z graphene joined #lisp 2018-08-27T21:58:39Z fikka joined #lisp 2018-08-27T22:09:24Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-27T22:09:28Z orivej joined #lisp 2018-08-27T22:13:06Z papachan quit (Quit: WeeChat 2.2) 2018-08-27T22:13:18Z stylewarning: sjl_: nice post 2018-08-27T22:14:25Z robotoad joined #lisp 2018-08-27T22:14:35Z dented42 joined #lisp 2018-08-27T22:15:19Z sjl_: stylewarning: thanks! 2018-08-27T22:15:53Z meepdeew joined #lisp 2018-08-27T22:18:28Z malbertife joined #lisp 2018-08-27T22:19:34Z dented42 quit (Ping timeout: 252 seconds) 2018-08-27T22:20:12Z dented42 joined #lisp 2018-08-27T22:23:23Z sjl_ quit (Ping timeout: 244 seconds) 2018-08-27T22:25:54Z jasom: sjl: FYI for the editor, note that most text editors cannot autoindent lisp code to even a mediocre standard (say vim's lisp mode as a lower bar). 2018-08-27T22:26:34Z sjl: I admit I haven't tried Atom/etc indenting. I could add a section about the lispindent program but didn't want to clutter :\ 2018-08-27T22:26:54Z jasom: sjl: actually I was surprised at how few programs can even shell out to lispindent. 2018-08-27T22:28:14Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-27T22:28:55Z sjl: the ideal solution is for someone (please god not just me) to make a CL LSP server happen, then every editor magically gets indentation and formatting for free 2018-08-27T22:30:38Z p_l: I think there's one going on already 2018-08-27T22:30:56Z v0|d quit (Ping timeout: 252 seconds) 2018-08-27T22:33:50Z sjl: there's https://github.com/cxxxr/cl-lsp but it has no license, so I don't want to look at the code to see how full featured it is 2018-08-27T22:34:55Z astalla joined #lisp 2018-08-27T22:42:06Z varjag quit (Ping timeout: 272 seconds) 2018-08-27T22:43:54Z malbertife quit (Ping timeout: 252 seconds) 2018-08-27T22:44:18Z quazimodo quit (Ping timeout: 264 seconds) 2018-08-27T22:46:35Z Mortir joined #lisp 2018-08-27T22:47:01Z Mortir: Hey 2018-08-27T22:47:30Z Mortir: Could somebody clarify to me what the "@" symbol mean? 2018-08-27T22:47:53Z Mortir: Like in this example: https://hastebin.com/epeyexovor.rb 2018-08-27T22:49:26Z troydm quit (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) 2018-08-27T22:49:39Z lavaflow quit (Read error: No route to host) 2018-08-27T22:50:18Z White_Flame: Mortir: this is a Common Lisp channel, so you'd have to go to whatever channel that language is supported 2018-08-27T22:50:27Z lavaflow joined #lisp 2018-08-27T22:50:34Z stacksmith: defn'tly not CL. 2018-08-27T22:50:50Z White_Flame: .rb = ruby? 2018-08-27T22:51:05Z stacksmith: rubout? 2018-08-27T22:51:13Z Mortir: I understand. 2018-08-27T22:51:17Z Mortir: It's clojure 2018-08-27T22:52:01Z stacksmith: If I had to guess I'd say 'value of?' 2018-08-27T22:52:20Z p_l: Mortir: #clojure might be better option, but I think @ was used to "force" the value of atom? 2018-08-27T22:53:26Z Mortir: @p_l: I'll check with them. 2018-08-27T22:53:56Z stacksmith: What's a good way to check if a symbol is a CLOS class? 2018-08-27T22:54:01Z Mortir: stacksmith: Thanks for the tip, I'll return when I discover. 2018-08-27T22:54:09Z caltelt joined #lisp 2018-08-27T22:54:22Z sjl: clhs find-class 2018-08-27T22:54:22Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_find_c.htm 2018-08-27T22:54:52Z sjl: assuming you mean "if a symbol names a CLOS class" because I don't think a symbol would ever BE a class itself 2018-08-27T22:55:03Z stacksmith: Well, yes. 2018-08-27T22:55:13Z sjl: yeah I think you want find-class then 2018-08-27T22:55:26Z pierpa joined #lisp 2018-08-27T22:55:36Z stacksmith: Is that slowish? find implies a search of some sort... 2018-08-27T22:56:45Z sjl: no idea. you could look at the source and/or benchmark/profile, but it's probably implementation dependent 2018-08-27T22:58:32Z makomo joined #lisp 2018-08-27T22:59:31Z Mortir: stacksmith: It's a dereference. I'm not a specialist on it but for what I searched about looks like you got it right. 2018-08-27T23:00:59Z sjl: I wouldn't assume it's slow because of the name. I can think of a couple of ways an implementation could implement it off the top of my head, and they could be fast. 2018-08-27T23:01:07Z graphene quit (Read error: Connection reset by peer) 2018-08-27T23:02:43Z graphene joined #lisp 2018-08-27T23:03:09Z stacksmith: sjl: thanks. 2018-08-27T23:06:09Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-27T23:06:54Z brettgilio joined #lisp 2018-08-27T23:08:54Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-27T23:09:09Z troydm joined #lisp 2018-08-27T23:13:25Z stardiviner joined #lisp 2018-08-27T23:13:25Z stardiviner quit (Client Quit) 2018-08-27T23:13:51Z nckx joined #lisp 2018-08-27T23:14:49Z sukaeto joined #lisp 2018-08-27T23:20:04Z nopolitica quit (Read error: Connection reset by peer) 2018-08-27T23:21:39Z specbot quit (Disconnected by services) 2018-08-27T23:21:43Z specbot joined #lisp 2018-08-27T23:22:00Z fikka quit (Ping timeout: 272 seconds) 2018-08-27T23:22:01Z nopolitica joined #lisp 2018-08-27T23:22:06Z minion quit (Disconnected by services) 2018-08-27T23:23:17Z knobo quit (Ping timeout: 268 seconds) 2018-08-27T23:24:07Z Roy_Fawlty joined #lisp 2018-08-27T23:24:17Z meepdeew quit (Remote host closed the connection) 2018-08-27T23:24:44Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-27T23:25:45Z shymega quit (Ping timeout: 268 seconds) 2018-08-27T23:26:34Z shymega joined #lisp 2018-08-27T23:29:13Z Fare joined #lisp 2018-08-27T23:32:08Z flazh1 quit (Ping timeout: 272 seconds) 2018-08-27T23:32:14Z Jesin quit (Quit: Leaving) 2018-08-27T23:32:40Z flazh1 joined #lisp 2018-08-27T23:33:15Z robotoad quit (Quit: robotoad) 2018-08-27T23:33:57Z pjb quit (Ping timeout: 252 seconds) 2018-08-27T23:34:56Z Jesin joined #lisp 2018-08-27T23:43:29Z brettgilio quit (Quit: Konversation terminated!) 2018-08-27T23:43:42Z Fare quit (Ping timeout: 264 seconds) 2018-08-27T23:44:18Z astalla quit (Ping timeout: 264 seconds) 2018-08-27T23:44:23Z brettgilio joined #lisp 2018-08-27T23:44:50Z Lycurgus quit (Quit: Exeunt) 2018-08-27T23:45:34Z aeth: interesting. https://old.reddit.com/r/Common_Lisp/comments/9as489/a_new_quickdist_distribution_ultralisporg/ 2018-08-27T23:45:41Z aeth: direct link: https://ultralisp.org/ 2018-08-27T23:45:47Z Mortir left #lisp 2018-08-27T23:45:52Z Fare joined #lisp 2018-08-27T23:46:54Z random-nick quit (Read error: Connection reset by peer) 2018-08-27T23:47:01Z jasom: aeth: it's everything bad about npm, but lisp flavored! 2018-08-27T23:47:17Z aeth: jasom: and without semver 2018-08-27T23:48:55Z housel quit (Read error: Connection reset by peer) 2018-08-27T23:49:31Z housel joined #lisp 2018-08-27T23:52:16Z Rawriful joined #lisp 2018-08-27T23:52:25Z aeth: jasom: quicklisp and ASDf aren't built for this kind of thing 2018-08-27T23:55:43Z brettgilio quit (Quit: Konversation terminated!) 2018-08-28T00:06:45Z Jesin quit (Quit: Leaving) 2018-08-28T00:13:33Z shifty joined #lisp 2018-08-28T00:13:42Z eschatologist quit (Ping timeout: 264 seconds) 2018-08-28T00:13:52Z eschatologist joined #lisp 2018-08-28T00:18:40Z Fare: aeth, what isn't ASDF built for? 2018-08-28T00:21:45Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-28T00:22:08Z oni-on-ion: whats 2018-08-28T00:22:54Z Fare quit (Ping timeout: 252 seconds) 2018-08-28T00:23:38Z gector quit (Read error: Connection reset by peer) 2018-08-28T00:23:51Z Copenhagen_Bram joined #lisp 2018-08-28T00:23:59Z gector joined #lisp 2018-08-28T00:24:15Z fikka joined #lisp 2018-08-28T00:25:46Z Jesin joined #lisp 2018-08-28T00:25:58Z dddddd quit (Ping timeout: 272 seconds) 2018-08-28T00:28:56Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T00:29:12Z Ober: Fare: you're back? 2018-08-28T00:33:23Z wiselord quit (Ping timeout: 268 seconds) 2018-08-28T00:38:31Z dddddd joined #lisp 2018-08-28T00:40:40Z thawes quit (Read error: Connection reset by peer) 2018-08-28T00:40:42Z kristof quit (Ping timeout: 264 seconds) 2018-08-28T00:41:42Z jinkies joined #lisp 2018-08-28T00:45:13Z fikka joined #lisp 2018-08-28T00:50:39Z fikka quit (Ping timeout: 268 seconds) 2018-08-28T00:54:21Z quazimodo joined #lisp 2018-08-28T00:58:58Z chipolux quit (Quit: chipolux) 2018-08-28T01:02:53Z Xach: cool 2018-08-28T01:02:58Z makomo: lol this is great http://stevelosh.com/media/images/blog/2018/07/lisp-kludge.jpeg 2018-08-28T01:03:02Z makomo: look at "kludge" 2018-08-28T01:03:15Z makomo: "kludges"* 2018-08-28T01:05:04Z oni-on-ion: lol all first 1k pages 2018-08-28T01:05:24Z chipolux joined #lisp 2018-08-28T01:05:35Z fikka joined #lisp 2018-08-28T01:05:53Z Lycurgus joined #lisp 2018-08-28T01:05:59Z makomo: (from this post: http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/) 2018-08-28T01:10:16Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T01:13:54Z mindCrime joined #lisp 2018-08-28T01:20:53Z Rawriful quit (Quit: WeeChat 1.4) 2018-08-28T01:23:16Z warex quit (Ping timeout: 252 seconds) 2018-08-28T01:24:46Z oni-on-ion: ah! i have that loaded up. perfect time to start going through it 2018-08-28T01:25:55Z fikka joined #lisp 2018-08-28T01:26:18Z pierpal quit (Ping timeout: 264 seconds) 2018-08-28T01:30:17Z edgar-rft quit (Remote host closed the connection) 2018-08-28T01:30:25Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T01:32:29Z edgar-rft joined #lisp 2018-08-28T01:32:46Z robotoad joined #lisp 2018-08-28T01:35:27Z graphene quit (Remote host closed the connection) 2018-08-28T01:36:07Z Ober: much nicer than some other efforts in this genre 2018-08-28T01:36:57Z Patzy joined #lisp 2018-08-28T01:37:04Z robotoad quit (Client Quit) 2018-08-28T01:37:10Z graphene joined #lisp 2018-08-28T01:38:18Z quazimodo quit (Ping timeout: 264 seconds) 2018-08-28T01:39:15Z buffergn0me joined #lisp 2018-08-28T01:45:06Z Oladon quit (Quit: Leaving.) 2018-08-28T01:46:35Z fikka joined #lisp 2018-08-28T01:47:00Z Bike joined #lisp 2018-08-28T01:51:27Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T01:57:10Z fikka joined #lisp 2018-08-28T02:00:20Z pierpal joined #lisp 2018-08-28T02:01:54Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T02:03:25Z makomo quit (Ping timeout: 268 seconds) 2018-08-28T02:06:55Z fikka joined #lisp 2018-08-28T02:08:28Z robotoad joined #lisp 2018-08-28T02:09:13Z DGASAU quit (Read error: Connection reset by peer) 2018-08-28T02:10:31Z rocx joined #lisp 2018-08-28T02:11:45Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T02:11:54Z slyrus1: scymtym: around? 2018-08-28T02:13:21Z k-stz quit (Remote host closed the connection) 2018-08-28T02:14:07Z DGASAU joined #lisp 2018-08-28T02:15:19Z DGASAU quit (Read error: Connection reset by peer) 2018-08-28T02:27:13Z fikka joined #lisp 2018-08-28T02:28:06Z Khisanth quit (Ping timeout: 264 seconds) 2018-08-28T02:32:24Z fikka quit (Ping timeout: 268 seconds) 2018-08-28T02:35:29Z kristof joined #lisp 2018-08-28T02:37:04Z pierpa quit (Quit: Page closed) 2018-08-28T02:40:18Z Zelmin joined #lisp 2018-08-28T02:40:29Z quazimodo joined #lisp 2018-08-28T02:41:01Z Khisanth joined #lisp 2018-08-28T02:41:53Z Zelmin: When I user cl-mysql I can't capture Ctrl-C anymore, anyone have an idea where to start debugging this? 2018-08-28T02:42:20Z Ober: Zelmin: sbcl? 2018-08-28T02:42:39Z Zelmin: yeah 2018-08-28T02:45:24Z orivej quit (Ping timeout: 252 seconds) 2018-08-28T02:47:48Z orivej joined #lisp 2018-08-28T02:47:57Z fikka joined #lisp 2018-08-28T02:52:44Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T02:54:40Z dale quit (Quit: dale) 2018-08-28T02:56:57Z xh4 joined #lisp 2018-08-28T02:57:14Z DGASAU joined #lisp 2018-08-28T02:57:41Z mindCrime quit (Ping timeout: 268 seconds) 2018-08-28T02:58:25Z fikka joined #lisp 2018-08-28T02:59:14Z orivej quit (Ping timeout: 272 seconds) 2018-08-28T03:02:57Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T03:08:28Z fikka joined #lisp 2018-08-28T03:11:35Z Zelmin quit (Remote host closed the connection) 2018-08-28T03:12:59Z asarch joined #lisp 2018-08-28T03:13:43Z fikka quit (Ping timeout: 268 seconds) 2018-08-28T03:14:55Z elem6 joined #lisp 2018-08-28T03:16:54Z bhrgunatha joined #lisp 2018-08-28T03:17:48Z bhrgunatha quit (Quit: ChatZilla 0.9.93 [Waterfox 56.0.4/20180202194147]) 2018-08-28T03:18:05Z orivej joined #lisp 2018-08-28T03:18:08Z dddddd quit (Remote host closed the connection) 2018-08-28T03:19:22Z Lycurgus quit (Quit: Exeunt) 2018-08-28T03:21:06Z beach: Good morning everyone! 2018-08-28T03:24:40Z Roy_Fawlty quit (Read error: Connection reset by peer) 2018-08-28T03:26:10Z Bike quit (Quit: Lost terminal) 2018-08-28T03:28:35Z fikka joined #lisp 2018-08-28T03:28:37Z Oladon joined #lisp 2018-08-28T03:32:57Z slyrus1: morning beach 2018-08-28T03:33:11Z jgkamat: morning :) 2018-08-28T03:33:45Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T03:36:01Z mange joined #lisp 2018-08-28T03:37:06Z SenasOzys quit (Ping timeout: 264 seconds) 2018-08-28T03:39:24Z fikka joined #lisp 2018-08-28T03:42:29Z xh4 quit (Remote host closed the connection) 2018-08-28T03:44:12Z fikka quit (Ping timeout: 272 seconds) 2018-08-28T03:44:50Z brettgilio joined #lisp 2018-08-28T03:48:58Z emaczen: How would we get milliseconds from (decode-universal-time (get-universal-time))? 2018-08-28T03:52:42Z pierpal quit (Quit: Poof) 2018-08-28T03:52:54Z emaczen: Or how would we just get milliseconds a different way? 2018-08-28T03:53:01Z pierpal joined #lisp 2018-08-28T03:57:30Z mingus quit (Ping timeout: 272 seconds) 2018-08-28T03:59:10Z gector quit (Read error: Connection reset by peer) 2018-08-28T03:59:24Z fikka joined #lisp 2018-08-28T04:01:19Z gector joined #lisp 2018-08-28T04:02:07Z graphene quit (Remote host closed the connection) 2018-08-28T04:03:22Z DGASAU quit (Read error: Connection reset by peer) 2018-08-28T04:03:53Z graphene joined #lisp 2018-08-28T04:04:28Z fikka quit (Ping timeout: 272 seconds) 2018-08-28T04:06:02Z jlarocco quit (Remote host closed the connection) 2018-08-28T04:07:19Z loke: emaczen: You need a different API 2018-08-28T04:07:22Z shifty quit (Ping timeout: 268 seconds) 2018-08-28T04:07:26Z DGASAU joined #lisp 2018-08-28T04:07:38Z buffergn0me: emaczen: anything UNIVERSAL-TIME is clock time in seconds. GET-INTERNAL-REAL-TIME can return time in higher resolution. INTERNAL-TIME-UNITS-PER-SECOND tells you how many internal ticks there are in a second 2018-08-28T04:07:56Z buffergn0me: On my machine rn SBCL GET-INTERNAL-REAL-TIME is in milliseconds 2018-08-28T04:08:04Z loke: I'd recommend using the LOCAL-TIME package 2018-08-28T04:09:08Z loke: (local-time:timestamp-millisecond (local-time:now)) 2018-08-28T04:13:14Z emaczen: anything in ccl? 2018-08-28T04:15:25Z tumdum joined #lisp 2018-08-28T04:16:46Z lonjil joined #lisp 2018-08-28T04:18:07Z loke: local-time works on all (most?) CL implementatiuons 2018-08-28T04:19:47Z fikka joined #lisp 2018-08-28T04:22:42Z jerme_ quit (Ping timeout: 264 seconds) 2018-08-28T04:24:46Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T04:29:54Z fikka joined #lisp 2018-08-28T04:32:50Z cpape quit (Ping timeout: 252 seconds) 2018-08-28T04:34:52Z fikka quit (Ping timeout: 272 seconds) 2018-08-28T04:35:21Z kristof quit (Ping timeout: 252 seconds) 2018-08-28T04:42:31Z caltelt quit (Ping timeout: 268 seconds) 2018-08-28T04:46:23Z igemnace joined #lisp 2018-08-28T04:50:38Z fikka joined #lisp 2018-08-28T04:56:05Z fikka quit (Ping timeout: 268 seconds) 2018-08-28T05:02:05Z DGASAU quit (Read error: Connection reset by peer) 2018-08-28T05:04:42Z buffergn0me quit (Ping timeout: 264 seconds) 2018-08-28T05:04:44Z beach quit (Ping timeout: 252 seconds) 2018-08-28T05:05:08Z DGASAU joined #lisp 2018-08-28T05:07:32Z aeth: Fare: ASDF doesn't enforce any kind of versioning system, so randomly downloading packages from the online git master branches sounds like a bad idea for a third party Quicklisp repository because A and B might require two different versions of the same dependency C. Xach avoids this conflict manually through Quicklisp's curation strategy. 2018-08-28T05:08:21Z Copenhagen_Bram quit (Ping timeout: 252 seconds) 2018-08-28T05:09:40Z aeth: I'm not sure how that could even work in CL because of package name conflicts. 2018-08-28T05:10:56Z fikka joined #lisp 2018-08-28T05:16:03Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T05:16:18Z beach joined #lisp 2018-08-28T05:19:48Z emaczen quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-28T05:20:08Z mange quit (Ping timeout: 252 seconds) 2018-08-28T05:20:38Z elem6 quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-28T05:21:25Z fikka joined #lisp 2018-08-28T05:22:25Z meepdeew joined #lisp 2018-08-28T05:24:57Z Copenhagen_Bram joined #lisp 2018-08-28T05:25:12Z buffergn0me joined #lisp 2018-08-28T05:26:01Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T05:27:04Z Inline quit (Quit: Leaving) 2018-08-28T05:30:36Z meepdeew quit (Ping timeout: 272 seconds) 2018-08-28T05:33:28Z oni-on-ion: aeth: hm good point. perhaps it can be done by choosing the higher versions based on number of dependencies; so lets say if alexandria has 1000 things depending on it at a particular version, cap the rest of the packages from there 2018-08-28T05:33:39Z oni-on-ion: (if it makes sense how i explained it, idk if thats how ultralisp does it) 2018-08-28T05:41:48Z fikka joined #lisp 2018-08-28T05:46:16Z asarch quit (Quit: Leaving) 2018-08-28T05:47:16Z fikka quit (Ping timeout: 268 seconds) 2018-08-28T05:49:07Z sauvin joined #lisp 2018-08-28T05:49:50Z orivej quit (Ping timeout: 252 seconds) 2018-08-28T05:53:19Z brettgilio quit (Quit: Konversation terminated!) 2018-08-28T05:53:32Z jackdaniel: getting software from master branches directly from github certainly makes sense 2018-08-28T05:53:42Z jackdaniel: it would be an "Unstable" repository counterpart 2018-08-28T05:54:00Z brettgilio joined #lisp 2018-08-28T05:54:16Z jackdaniel: so if someone is fine with breaking things in a private environment that has a cetain appeal 2018-08-28T05:56:30Z gector quit (Ping timeout: 244 seconds) 2018-08-28T05:57:10Z oni-on-ion: thats what julia does, it has builtin libgit2, and also encourages what npm does with local project dependencies ("./node_modules" iirc) 2018-08-28T05:57:48Z oni-on-ion: pulls packages straight from git and is quite fast and decently frugal with storage space and fragmentation unlike npm 2018-08-28T05:57:59Z brettgilio quit (Client Quit) 2018-08-28T06:02:05Z fikka joined #lisp 2018-08-28T06:05:46Z shka_ joined #lisp 2018-08-28T06:05:53Z shka_: good morning everyone! 2018-08-28T06:06:50Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T06:11:29Z gector joined #lisp 2018-08-28T06:11:38Z igemnace quit (Quit: WeeChat 2.2) 2018-08-28T06:14:01Z doubledup joined #lisp 2018-08-28T06:15:30Z pjb joined #lisp 2018-08-28T06:18:44Z SaganMan quit (Ping timeout: 272 seconds) 2018-08-28T06:21:34Z fikka joined #lisp 2018-08-28T06:21:37Z shrdlu68 joined #lisp 2018-08-28T06:21:54Z varjag joined #lisp 2018-08-28T06:23:18Z buffergn0me quit (Ping timeout: 264 seconds) 2018-08-28T06:26:03Z earl-ducaine joined #lisp 2018-08-28T06:31:29Z zfree joined #lisp 2018-08-28T06:34:55Z DGASAU quit (Read error: Connection reset by peer) 2018-08-28T06:35:22Z elfmacs joined #lisp 2018-08-28T06:37:14Z DGASAU joined #lisp 2018-08-28T06:43:26Z pierpal quit (Quit: Poof) 2018-08-28T06:43:42Z pierpal joined #lisp 2018-08-28T06:49:33Z shifty joined #lisp 2018-08-28T06:56:44Z quazimodo quit (Ping timeout: 272 seconds) 2018-08-28T06:58:18Z quazimodo joined #lisp 2018-08-28T07:08:45Z aeth: jackdaniel: the problem is that the next thing you want to do is use some unstable and some stable 2018-08-28T07:09:30Z aeth: it could be a good place for projects currently too incomplete for Quicklisp, though 2018-08-28T07:11:53Z doubledup quit (Quit: Leaving) 2018-08-28T07:13:16Z Kaisyu joined #lisp 2018-08-28T07:17:13Z housel quit (Read error: Connection reset by peer) 2018-08-28T07:20:43Z scymtym quit (Ping timeout: 244 seconds) 2018-08-28T07:20:54Z nowhere_man quit (Ping timeout: 252 seconds) 2018-08-28T07:25:50Z orivej joined #lisp 2018-08-28T07:29:14Z oni-on-ion: hmm, symbol-function and symbol-value on 'map is nonexistant, but package lock on (defclass map () ...) ? 2018-08-28T07:29:18Z jinkies quit (Ping timeout: 264 seconds) 2018-08-28T07:33:38Z jdz: oni-on-ion: CL:MAP definitely is a function. 2018-08-28T07:33:55Z graphene quit (Remote host closed the connection) 2018-08-28T07:34:39Z oni-on-ion: why does defclass need to take that over, if (make-instance) uses symbols ? 2018-08-28T07:35:07Z oni-on-ion: how many name spaces are there, actually? is print/princ method, or function ? this is funcusing 2018-08-28T07:35:38Z graphene joined #lisp 2018-08-28T07:36:46Z arduo joined #lisp 2018-08-28T07:37:49Z shka_: oni-on-ion: function,type,package,variable,setf-expander,method-combination,compiler-macro 2018-08-28T07:37:58Z shka_: as for namespaces 2018-08-28T07:38:03Z jdz: There's a FUNCALLABLE-STANDARD-CLASS metaclass. 2018-08-28T07:38:33Z jdz: So if you define a class named MAP with this metaclass, it becomes a function. 2018-08-28T07:38:36Z jackdaniel: there are as many namespaces as you like; you may create your own namespace 2018-08-28T07:39:04Z jackdaniel: so we have lisp-n and lisp-(1+ n) in fact 2018-08-28T07:39:19Z shka_: jackdaniel: well, there is a lower limit specified by the cl standard 2018-08-28T07:39:21Z Oladon quit (Quit: Leaving.) 2018-08-28T07:40:12Z jackdaniel: clhs lower-namespace-limit 2018-08-28T07:40:12Z specbot: Couldn't find anything for lower-namespace-limit. 2018-08-28T07:41:32Z shka_: eh 2018-08-28T07:44:03Z scymtym joined #lisp 2018-08-28T07:49:04Z beach: Hello shka_. 2018-08-28T07:52:29Z scymtym: slyrus1: hi 2018-08-28T07:55:45Z stnutt quit (Ping timeout: 264 seconds) 2018-08-28T07:57:29Z beach: It would be great if I could make sufficient progress on the SICL bootstrapping procedure to submit an ELS paper for Genoa. 2018-08-28T07:59:32Z beach: In the process of making progress on bootstrapping, I might also make progress on Clordane, so that could be a second submission. 2018-08-28T08:00:56Z shka_: what is clordane? 2018-08-28T08:02:09Z beach: http://metamodular.com/clordane.pdf 2018-08-28T08:02:58Z stnutt joined #lisp 2018-08-28T08:03:16Z kuribas joined #lisp 2018-08-28T08:03:30Z kuribas: How can I get the bytes from an utf-8 string? 2018-08-28T08:03:33Z kuribas: (in sbcl) 2018-08-28T08:03:52Z mrcom quit (Ping timeout: 272 seconds) 2018-08-28T08:03:54Z kuribas: or from a single unicode character 2018-08-28T08:04:02Z jackdaniel: kuribas: sb-ext:string-to-octets 2018-08-28T08:04:12Z kuribas: jackdaniel: thanks 2018-08-28T08:04:17Z jackdaniel: if you want to do this portably use babel:string-to-octets 2018-08-28T08:04:40Z shka_: beach: oh, debugger! :D 2018-08-28T08:04:42Z shka_: neat 2018-08-28T08:05:04Z beach: Duh! "Chlordane" is an insecticide. 2018-08-28T08:06:37Z shka_: beach: well, yes 2018-08-28T08:06:42Z shka_: is that any issue? 2018-08-28T08:07:01Z shrdlu68: It's an attempt at wit. 2018-08-28T08:07:08Z beach: Well, insecticides kind of kill bugs, no? 2018-08-28T08:07:23Z shrdlu68: Bug, euphemism for "programming error". 2018-08-28T08:07:57Z shrdlu68: Or perhaps "programmer error". 2018-08-28T08:08:14Z shka_: or "your failure" 2018-08-28T08:11:27Z shrdlu68: "Cognitive fault". 2018-08-28T08:11:45Z jackdaniel: or "a feature" ;-) 2018-08-28T08:13:23Z oni-on-ion: shka_: ahhh, hmm =) 2018-08-28T08:14:08Z oni-on-ion: beach: is it (TM) ? =) 2018-08-28T08:14:12Z shka_: oni-on-ion: makes sense? 2018-08-28T08:14:27Z NB0X-Matt-CA quit (Excess Flood) 2018-08-28T08:14:31Z oni-on-ion: shka_: yea it does, so class = type in this case ? 2018-08-28T08:14:45Z oni-on-ion: and does compiler-macro include readers ? 2018-08-28T08:15:13Z shka_: well, classes reside in the type namespace 2018-08-28T08:15:27Z shka_: so you can't have deftype and class with the same name 2018-08-28T08:15:36Z shka_: compiler-macro are just compiler-macro 2018-08-28T08:15:44Z shka_: not readers 2018-08-28T08:15:45Z oni-on-ion: not sure if 'bug' is a euphemism. there was a real bug in a system long ago.... 2018-08-28T08:16:05Z beach: oni-on-ion: But not in software. 2018-08-28T08:16:14Z oni-on-ion: shka_: right.. but i cannot have defclass/deftype named as a function ? is my current trouble 2018-08-28T08:16:34Z oni-on-ion: beach: ohh the name, okay =) 2018-08-28T08:16:38Z NB0X-Matt-CA joined #lisp 2018-08-28T08:16:45Z shka_: you can have function with the same name as type 2018-08-28T08:17:02Z orivej quit (Ping timeout: 244 seconds) 2018-08-28T08:17:07Z shka_: those are separate namespaces, yes? 2018-08-28T08:17:35Z beach: My favorite Common Lisp "pun" is (defmethod graft ((graft graft)) graft) in McCLIM. 2018-08-28T08:17:42Z aeth: function, type, and variable as separate namespaces makes a lot of sense. 2018-08-28T08:17:55Z NB0X-Matt-CA quit (Excess Flood) 2018-08-28T08:19:14Z oni-on-ion: shka_: ok, not sure how i get package lock error on (defclass map () ..) 2018-08-28T08:19:30Z shka_: ah, that is something completly different 2018-08-28T08:19:32Z oni-on-ion: perhaps map is a type. too noob to know how to find out 2018-08-28T08:19:39Z oni-on-ion: different? than what ? 2018-08-28T08:20:03Z NB0X-Matt-CA joined #lisp 2018-08-28T08:20:12Z oni-on-ion: it was mentioned just now that defclass uses type namespace ? 2018-08-28T08:20:28Z oni-on-ion: this is where i am funciuuuused 2018-08-28T08:20:33Z shka_: yes, but CL package is locked 2018-08-28T08:23:21Z light2yellow joined #lisp 2018-08-28T08:23:25Z shka_: oni-on-ion: you should consult sbcl manual for in depth explanation 2018-08-28T08:23:27Z beach: clhs 11.1.2.1.2 2018-08-28T08:23:27Z specbot: Constraints on the COMMON-LISP Package for Conforming Programs: http://www.lispworks.com/reference/HyperSpec/Body/11_abab.htm 2018-08-28T08:23:33Z beach: oni-on-ion: Have a look at that page. 2018-08-28T08:23:38Z shka_: or that 2018-08-28T08:24:14Z beach: 4. Defining it as a type specifier (via defstruct, defclass, deftype, define-condition). 2018-08-28T08:25:12Z oni-on-ion: no easy answer, it feels like i am going the wrong direction then 2018-08-28T08:25:13Z beach: shka_: No need to go to the implementation documentation for violations of a rule of the standard. 2018-08-28T08:25:24Z shka_: yes 2018-08-28T08:25:29Z oni-on-ion: shka_: ah, but i am in my own package, otherwise CL-USEr 2018-08-28T08:25:50Z beach: oni-on-ion: Why do you want to define a class that has the name of a standard Common Lisp function? 2018-08-28T08:25:56Z shka_: oni-on-ion: cl:map exists, cl is locked, and what beach just said 2018-08-28T08:26:03Z oni-on-ion: idk. is there a hierarchy to those namespaces? ie. are the type namespaces global, or per package or what 2018-08-28T08:26:23Z beach: oni-on-ion: Names are symbols and symbols are per-package. 2018-08-28T08:26:24Z oni-on-ion: beach: because i want to have a Map class/type. should i look up synonyms ? 2018-08-28T08:26:53Z oni-on-ion: does anyone know why a defclass type would be conflicting with a function > 2018-08-28T08:26:55Z beach: oni-on-ion: You just put the MAP symbol in your own package and shadow it when you import the Common Lisp package. 2018-08-28T08:27:18Z beach: oni-on-ion: They do not conflict. 2018-08-28T08:27:28Z oni-on-ion: beach: eh i dont see how the CL compiler couldnt tell i am not using a TYPE as a first element of a list. we have to funcall after all. 2018-08-28T08:27:37Z beach: oni-on-ion: See my example before (defmethod graft ((graft graft)) graft) 2018-08-28T08:27:58Z shka_: oni-on-ion: as i said, it has nothing to do if it is function or not, it has everything to do with package locks 2018-08-28T08:27:59Z beach: oni-on-ion: I don't understand what you mean by that. 2018-08-28T08:28:05Z oni-on-ion: beach: if no conflict, why cant i define a class that has the name of a standard Common Lisp function ? 2018-08-28T08:28:18Z beach: oni-on-ion: Because the standards says so. 2018-08-28T08:28:44Z beach: oni-on-ion: If you want to know WHY the standards says so, you need to ask the authors of it. 2018-08-28T08:29:03Z beach: oni-on-ion: But I still don't know why you insist on using standard Common Lisp symbols to name your classes. 2018-08-28T08:29:35Z oni-on-ion: a MAP is a fairly common object name. i dont know what to call it. what if i wanted to make a CAR class ? for vehicles. 2018-08-28T08:29:46Z beach: USE YOUR OWN PACKAGE! 2018-08-28T08:29:49Z oni-on-ion: this seems to have no purpose of a restriction 2018-08-28T08:29:52Z oni-on-ion: I AM !! 2018-08-28T08:29:52Z shrdlu68: beach: I think he seeks to understand what exactly prevents him from doing what he wants. 2018-08-28T08:29:53Z beach: That's how code is written. 2018-08-28T08:30:04Z beach: oni-on-ion: SHADOW THE SYMBOL MAP. 2018-08-28T08:30:19Z oni-on-ion: i am fully in my own package. im not that broken. 2018-08-28T08:30:28Z shka_: oni-on-ion: well, if you REALLY want to do that, there is a way 2018-08-28T08:30:39Z beach: (defpackage my-stuff (:use #:common-lisp) (:shadow #:map)) (defclass map ...) 2018-08-28T08:30:50Z oni-on-ion: why do i have to? when would i ever do something like (make-instance 'unwind-protect) or (my-class-name 4 5 3) 2018-08-28T08:30:56Z shka_: yup, as beach said 2018-08-28T08:30:57Z beach: oni-on-ion: Then you must have failed to shadow the symbol MAP. 2018-08-28T08:31:17Z shka_: oni-on-ion: because that's how things are designed 2018-08-28T08:31:35Z shrdlu68: oni-on-ion: Packages export symbols, the symbol 'map is exported from the package CL. 2018-08-28T08:31:36Z oni-on-ion: i am being told to just do what the standard says, if i dont understand why and if it not simple then whatever is going on is certain to arise again 2018-08-28T08:32:03Z oni-on-ion: shrdlu68: but its a symbol. arent the point of symbols that they are shared? ie (eq 'map 'map) 2018-08-28T08:32:24Z Shinmera: The point of symbols is to identify things. 2018-08-28T08:32:32Z oni-on-ion: if i shadow map then i would have to be doing (cl:map ..) now i may as well prefix everything and go back to emacs lisp 2018-08-28T08:33:13Z Shinmera: The reason why you're prevented from defining a class with a name from the CL package is because otherwise that definition would spill over to everything else that uses the CL package 2018-08-28T08:33:16Z oni-on-ion: perhaps i do not understand why defclass is trying to make its own symbol in the CL package or whatever ... 2018-08-28T08:33:32Z oni-on-ion: Shinmera: oh! thank you. now i understand a lot more. hmmm 2018-08-28T08:34:00Z beach: oni-on-ion: DEFCLASS doesn't make a symbol. The reader does. 2018-08-28T08:34:03Z Shinmera: Just name your thing something else, or shadow it as you've been told. 2018-08-28T08:34:07Z loke: oni-on-ion: Because you're importing the package CL, which means that when you specify ‘map’ you're using CL:MAP, not YOUR-PACKAGE:MAP 2018-08-28T08:34:35Z oni-on-ion: Shinmera: i am not sure if 'being told' was important to say there, but thank you for clarifying it for me. 2018-08-28T08:36:23Z shrdlu68: oni-on-ion: Human communication is suboptimal in many ways :) 2018-08-28T08:36:37Z Shinmera: ? It's factual that people told you to shadow the symbol or name it something else. 2018-08-28T08:37:03Z shka_: Shinmera: well, you explained motivation behind existance of package locks 2018-08-28T08:37:10Z oni-on-ion: Shinmera: remember that time i peed my pants in class? it was factual, let's talk about that too 2018-08-28T08:37:25Z Shinmera: Why are you being hostile to me about this? 2018-08-28T08:37:30Z Shinmera: What is this. Take your beef somewhere else. 2018-08-28T08:37:40Z shrdlu68: *sigh 2018-08-28T08:37:54Z beach: shka_: The motivation behind package locks is to try to tell the user when he or she is violating one of the rules in 11.1.2.1.2. 2018-08-28T08:38:02Z oni-on-ion: "as you've been told" where i come from is already a bit hostile. sorry if you did not intend it so 2018-08-28T08:38:10Z oni-on-ion: english 2018-08-28T08:38:31Z Shinmera: It was not meant to be hostile, but simply as a reiteration. 2018-08-28T08:38:51Z shka_: beach: well, Shinmera explained why violating those rules is bad idea 2018-08-28T08:38:54Z oni-on-ion: Yes sir. 10-4 acknowledged. Program execution complete. return code 0 2018-08-28T08:39:01Z shka_: to be ultra specific 2018-08-28T08:39:10Z oni-on-ion: i understand also now package locks, ty again shin and everyone 2018-08-28T08:40:13Z shrdlu68: Is 'foo implicitly '<*package*>:foo ? 2018-08-28T08:40:30Z light2yellow quit (Quit: light2yellow) 2018-08-28T08:41:02Z jackdaniel: rather '<*package*>::foo 2018-08-28T08:41:34Z trittweiler: 'foo is (intern "FOO" *package*) (details depend on readtable-case) 2018-08-28T08:42:36Z jackdaniel: 'bar::foo is the same thing, but in bar package, so these statements aren't XOR :) 2018-08-28T08:45:06Z trittweiler: It helps on why they are called package lock. A locked package is immutable, and intern is a mutating function :) 2018-08-28T08:45:50Z jackdaniel: right you are 2018-08-28T08:52:32Z robotoad quit (Quit: robotoad) 2018-08-28T08:54:18Z beach: Actually, I don't like the term "package lock" because it is not the package being mutated. 2018-08-28T08:54:21Z beach: It's the environment. 2018-08-28T08:54:57Z scymtym: i was going to say that the violation is not about mutating the package or the symbol in question 2018-08-28T08:55:07Z beach: Exactly. 2018-08-28T08:56:30Z scymtym: in fact, using a symbol's property list which is as close to mutating the symbol as it gets is permitted under package locks 2018-08-28T08:56:59Z scymtym: s/using/changing/ 2018-08-28T08:58:36Z oni-on-ion: =/ 2018-08-28T09:00:56Z trittweiler: It's a package lock not a symbol lock. But because packages, symbols, bindings (environments) are all a bit mixed up, some slots of symbols fall under the package lock (symbol-function, symbol-value), I guess. So beach is right, if there were first-class environment, it's those that would be locked :) 2018-08-28T09:01:39Z bendersteed joined #lisp 2018-08-28T09:08:17Z beach: trittweiler: And in SICL there are first-class global environments, so I am thinking about it that way automatically. 2018-08-28T09:10:42Z zxcvz joined #lisp 2018-08-28T09:11:38Z zxcvz quit (Client Quit) 2018-08-28T09:14:20Z random-nick joined #lisp 2018-08-28T09:16:17Z kuribas: jackdaniel: where can I find the documentation for sb-ext? 2018-08-28T09:16:44Z jackdaniel: I don't know, probably on sbcl.org/manual 2018-08-28T09:16:50Z jackdaniel: I just happen to remember that one function 2018-08-28T09:16:51Z beach: kuribas: In the SBCL manual I would guess. 2018-08-28T09:17:00Z kuribas: beach: it isn't 2018-08-28T09:17:07Z beach: :( 2018-08-28T09:17:17Z kuribas: sbcl.org is down 2018-08-28T09:17:20Z kuribas: with sourceforge 2018-08-28T09:17:30Z trittweiler: kuribas: you can inspect the package in Slime, go through all the exported functions and read their docstrings 2018-08-28T09:17:49Z beach: kuribas: I don't think the manual is organized by packages like that, though. 2018-08-28T09:18:09Z kuribas: beach: I searched recursively for that function 2018-08-28T09:18:18Z Shinmera: http://www.sbcl.org/manual/ loads just fine for me. 2018-08-28T09:18:30Z beach: Yeah, for me too. 2018-08-28T09:18:42Z kuribas: it does now 2018-08-28T09:20:20Z kuribas: but there's no string-to-octets 2018-08-28T09:21:44Z beach: So not every extension is documented. I am not that surprised. 2018-08-28T09:23:51Z jackdaniel: uh oh: Unhandled memory fault at #xD. 2018-08-28T09:24:12Z beach: SBCL or ECL? 2018-08-28T09:24:15Z jackdaniel: my lisp image decided to start acting funny 2018-08-28T09:24:16Z jackdaniel: sbcl 2018-08-28T09:24:45Z beach: That happened in a slightly older version of SBCL if you used FUNCALLABLE-STANDARD-OBJECT 2018-08-28T09:24:51Z jackdaniel: but I did something silly, so it doesn't count I suppose 2018-08-28T09:24:57Z beach: Oh, OK. 2018-08-28T09:25:17Z beach: For the longest time, I thought my computer had RAM problems. 2018-08-28T09:25:34Z shrdlu68: RAMiifications :) 2018-08-28T09:25:43Z jackdaniel: well, it should tell me something more sensible, but whatever 2018-08-28T09:25:59Z beach: I guess that shows how much I trust SBCL, or perhaps how few features I use. 2018-08-28T09:26:00Z jackdaniel: I just like the idea of teenager Lisp saying "xD" ;-) 2018-08-28T09:27:19Z jackdaniel: ah, so here it is: output is bound to a stream to whom writing causes a condition which ought to be printed 2018-08-28T09:27:26Z jackdaniel: on the said steram 2018-08-28T09:27:30Z jackdaniel: *stream 2018-08-28T09:52:26Z m00natic joined #lisp 2018-08-28T09:52:35Z fikka quit (Ping timeout: 276 seconds) 2018-08-28T09:56:58Z peccu quit (Ping timeout: 260 seconds) 2018-08-28T09:57:44Z peccu joined #lisp 2018-08-28T10:01:13Z shka_: how can i ask lparallel kernel to tell me how many tasks are scheduled? 2018-08-28T10:03:11Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-28T10:05:12Z fikka joined #lisp 2018-08-28T10:07:18Z quazimodo joined #lisp 2018-08-28T10:07:36Z lumm joined #lisp 2018-08-28T10:10:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-28T10:15:55Z dddddd joined #lisp 2018-08-28T10:16:54Z t3hyoshi quit (Ping timeout: 252 seconds) 2018-08-28T10:19:59Z Lycurgus joined #lisp 2018-08-28T10:24:26Z elfmacs quit (Ping timeout: 276 seconds) 2018-08-28T10:31:03Z scymtym: would people miss anything if SB-EXT:STRING-TO-OCTETS was documented like this https://techfak.de/~jmoringe/sbcl.html#External-Formats ? (modulo typos and polishing) 2018-08-28T10:32:40Z SaganMan joined #lisp 2018-08-28T10:34:01Z atgreen joined #lisp 2018-08-28T10:39:37Z kuribas: is there a map for side-effects which throws away the results? 2018-08-28T10:40:44Z orivej joined #lisp 2018-08-28T10:41:02Z loke: kuribas: MAPC or (MAP NIL ...) 2018-08-28T10:41:18Z loke: the former for lists, the latter if it can be either lists or vectors 2018-08-28T10:41:37Z kuribas: loke: the latter will not create an intermediate structure? 2018-08-28T10:41:49Z kuribas: scymtym: because it's not in my info file documentation 2018-08-28T10:42:41Z loke: kuribas: correct 2018-08-28T10:42:50Z kuribas: loke: ok, thanks! 2018-08-28T10:43:44Z jackdaniel: scymtym: looks OK. I don't know if it is not obvious, but in case it is not it could be worth mentioning, that one character may take many bytes 2018-08-28T10:44:44Z jackdaniel: (i.e there may be more octets than characters in the string) 2018-08-28T10:46:45Z scymtym: jackdaniel: good point, thank you 2018-08-28T10:47:26Z scymtym: kuribas: i'm proposing this for a future SBCL release 2018-08-28T10:55:34Z nowhere_man joined #lisp 2018-08-28T10:55:54Z rocx quit (Remote host closed the connection) 2018-08-28T11:06:11Z jdz: scymtym: octets-to-string also signals sb-int:character-decoding-error, should it also be brought to sb-ext package and documented? 2018-08-28T11:08:41Z jdz: Actually there's a whole bunch of conditions, subtypes of octet-encoding-error and octet-decoding-error. 2018-08-28T11:10:35Z jdz: All subtypes of character-coding-error. 2018-08-28T11:10:57Z scymtym: jdz: right. those probably warrant a separate sub-section 2018-08-28T11:11:13Z SenasOzys joined #lisp 2018-08-28T11:14:30Z SaganMan quit (Ping timeout: 272 seconds) 2018-08-28T11:18:54Z fikka joined #lisp 2018-08-28T11:20:34Z makomo joined #lisp 2018-08-28T11:27:59Z elfmacs joined #lisp 2018-08-28T11:32:02Z orivej quit (Ping timeout: 276 seconds) 2018-08-28T11:32:43Z makomo quit (Quit: WeeChat 2.2) 2018-08-28T11:35:01Z mange joined #lisp 2018-08-28T11:41:05Z SaganMan joined #lisp 2018-08-28T11:41:28Z Lycurgus quit (Quit: Exeunt) 2018-08-28T11:43:01Z bendersteed quit (Read error: Connection reset by peer) 2018-08-28T11:43:15Z atgreen_ joined #lisp 2018-08-28T11:43:21Z bendersteed joined #lisp 2018-08-28T11:45:15Z atgreen quit (Ping timeout: 244 seconds) 2018-08-28T11:54:11Z quazimodo quit (Ping timeout: 268 seconds) 2018-08-28T11:58:26Z White_Flame: jdz: is there an option to use dummy external format characters for unencodable internal string characters? 2018-08-28T12:01:02Z jdz: White_Flame: yes. What is "unencodable internal string characters"? 2018-08-28T12:01:06Z fikka quit (Ping timeout: 264 seconds) 2018-08-28T12:01:34Z scymtym: White_Flame: (sb-ext:string-to-octets "abö" :external-format '(:ascii :replacement #\?)) 2018-08-28T12:01:36Z White_Flame: you have a lisp string with character code values > 256 and you're encoding ASCII, for instance 2018-08-28T12:01:46Z White_Flame: ah, cool 2018-08-28T12:02:42Z scymtym: should work for external formats in general, that is also for streams associated with files, foreign strings, etc. 2018-08-28T12:03:20Z Xof: if you want fancier replacement, you can handle the condition and use-value a replacement programmatically. (At least in theory) 2018-08-28T12:03:34Z jdz: That's what SBCL does already. 2018-08-28T12:03:49Z Xof: yes, if it works! 2018-08-28T12:04:20Z jdz: Kudos to the smart person who wrote the functionality. 2018-08-28T12:11:35Z fikka joined #lisp 2018-08-28T12:16:15Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T12:18:49Z kajo quit (Quit: From my rotting body, flowers shall grow and I am in them and that is eternity. -- E. M.) 2018-08-28T12:20:58Z Xof: probably cliini 2018-08-28T12:23:35Z pierpal quit (Quit: Poof) 2018-08-28T12:23:50Z gector quit (Read error: Connection reset by peer) 2018-08-28T12:23:51Z pierpal joined #lisp 2018-08-28T12:24:24Z gector joined #lisp 2018-08-28T12:27:18Z nowhere_man quit (Ping timeout: 252 seconds) 2018-08-28T12:47:26Z SenasOzys quit (Ping timeout: 276 seconds) 2018-08-28T12:48:44Z fikka joined #lisp 2018-08-28T12:49:42Z mange quit (Ping timeout: 264 seconds) 2018-08-28T12:55:04Z SenasOzys joined #lisp 2018-08-28T12:55:04Z ebrasca quit (Read error: Connection reset by peer) 2018-08-28T12:56:28Z fikka quit (Ping timeout: 272 seconds) 2018-08-28T12:59:10Z ebrasca joined #lisp 2018-08-28T12:59:43Z figurelisp joined #lisp 2018-08-28T13:00:35Z orivej joined #lisp 2018-08-28T13:04:55Z astalla joined #lisp 2018-08-28T13:08:48Z kuribas quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-28T13:14:42Z Bike joined #lisp 2018-08-28T13:21:26Z mindCrime joined #lisp 2018-08-28T13:22:04Z quazimodo joined #lisp 2018-08-28T13:30:27Z graphene quit (Remote host closed the connection) 2018-08-28T13:32:02Z graphene joined #lisp 2018-08-28T13:32:05Z sjl_ joined #lisp 2018-08-28T13:43:20Z fikka joined #lisp 2018-08-28T13:43:41Z light2yellow joined #lisp 2018-08-28T13:53:49Z Bronsa joined #lisp 2018-08-28T13:57:03Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-28T14:02:00Z dyelar quit (Remote host closed the connection) 2018-08-28T14:02:58Z orivej quit (Ping timeout: 272 seconds) 2018-08-28T14:03:50Z Lycurgus joined #lisp 2018-08-28T14:06:46Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-28T14:12:46Z graphene quit (Remote host closed the connection) 2018-08-28T14:12:51Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T14:14:23Z graphene joined #lisp 2018-08-28T14:17:19Z Kevslinger joined #lisp 2018-08-28T14:19:54Z housel joined #lisp 2018-08-28T14:23:07Z Inline joined #lisp 2018-08-28T14:25:28Z graphene quit (Remote host closed the connection) 2018-08-28T14:27:03Z graphene joined #lisp 2018-08-28T14:27:34Z k-stz joined #lisp 2018-08-28T14:30:12Z FreeBirdLjj joined #lisp 2018-08-28T14:33:38Z Hu0p joined #lisp 2018-08-28T14:35:57Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-28T14:38:46Z X-Scale joined #lisp 2018-08-28T14:42:42Z papachan joined #lisp 2018-08-28T14:43:01Z edgar-rft quit (Remote host closed the connection) 2018-08-28T14:44:27Z bendersteed quit (Remote host closed the connection) 2018-08-28T14:44:56Z mrcom joined #lisp 2018-08-28T14:46:33Z sabrac joined #lisp 2018-08-28T14:48:37Z fikka joined #lisp 2018-08-28T14:52:11Z graphene quit (Remote host closed the connection) 2018-08-28T14:53:27Z eschulte_ joined #lisp 2018-08-28T14:55:13Z graphene joined #lisp 2018-08-28T14:56:18Z eschulte quit (Ping timeout: 264 seconds) 2018-08-28T15:01:37Z cage_ joined #lisp 2018-08-28T15:03:29Z cage_ quit (Client Quit) 2018-08-28T15:03:53Z atgreen__ joined #lisp 2018-08-28T15:06:35Z atgreen_ quit (Ping timeout: 268 seconds) 2018-08-28T15:10:06Z Lycurgus quit (Ping timeout: 264 seconds) 2018-08-28T15:11:28Z steiner quit (Remote host closed the connection) 2018-08-28T15:12:05Z steiner joined #lisp 2018-08-28T15:14:52Z atgreen__ quit (Remote host closed the connection) 2018-08-28T15:15:16Z atgreen__ joined #lisp 2018-08-28T15:16:42Z steiner quit (Remote host closed the connection) 2018-08-28T15:17:08Z steiner joined #lisp 2018-08-28T15:21:53Z ebrasca: weasdfcklñḉp 2018-08-28T15:23:00Z phoe: ebrasca: bless you 2018-08-28T15:24:13Z atgreen__ quit (Ping timeout: 245 seconds) 2018-08-28T15:25:03Z Bike quit (Ping timeout: 252 seconds) 2018-08-28T15:26:54Z dvdmuckle quit (Quit: Bouncer Surgery) 2018-08-28T15:27:48Z figurelisp left #lisp 2018-08-28T15:29:23Z dvdmuckle joined #lisp 2018-08-28T15:31:28Z graphene quit (Remote host closed the connection) 2018-08-28T15:33:01Z graphene joined #lisp 2018-08-28T15:35:25Z varjag joined #lisp 2018-08-28T15:46:31Z nowhere_man joined #lisp 2018-08-28T15:48:21Z nika joined #lisp 2018-08-28T15:56:09Z Oladon joined #lisp 2018-08-28T15:58:23Z dmiles quit (Ping timeout: 268 seconds) 2018-08-28T15:58:52Z meepdeew joined #lisp 2018-08-28T16:00:53Z lumm quit (Quit: lumm) 2018-08-28T16:00:58Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-28T16:01:12Z lumm joined #lisp 2018-08-28T16:02:42Z cage_ joined #lisp 2018-08-28T16:04:42Z lumm_ joined #lisp 2018-08-28T16:05:06Z shrdlu68 quit (Quit: WeeChat 2.0.1) 2018-08-28T16:05:50Z lumm quit (Ping timeout: 252 seconds) 2018-08-28T16:05:50Z lumm_ is now known as lumm 2018-08-28T16:06:34Z meepdeew quit 2018-08-28T16:11:46Z LiamH joined #lisp 2018-08-28T16:19:08Z quazimodo quit (Ping timeout: 272 seconds) 2018-08-28T16:20:42Z cage_ quit (Remote host closed the connection) 2018-08-28T16:21:17Z scymtym quit (Ping timeout: 276 seconds) 2018-08-28T16:24:32Z astalla quit (Ping timeout: 276 seconds) 2018-08-28T16:25:33Z cage_ joined #lisp 2018-08-28T16:28:21Z AeroNotix: ffs, I'm ill in bed reading cltl and had a question. Came into my office and now have completely forgotten what the question was 2018-08-28T16:30:02Z oni-on-ion: it will come to you if it was important 2018-08-28T16:31:27Z dented42 joined #lisp 2018-08-28T16:31:34Z russellw joined #lisp 2018-08-28T16:31:41Z pjb: AeroNotix: hence the centuries old advice to keep a notebook and pencil near your bed! 2018-08-28T16:31:57Z pjb: AeroNotix: How do you read cltl? Don't you use a tablet? There are note taking apps! 2018-08-28T16:32:25Z AeroNotix: pjb: I prefer real books when reading about Lisp 2018-08-28T16:32:30Z AeroNotix: just feels better 2018-08-28T16:32:30Z pjb: AeroNotix: we cannot recapitulate millenia of advices here! You need to know something already! 2018-08-28T16:33:06Z AeroNotix: plus I find absolutely zero tablets/ebooks can ever render code reliably. Almost all ebooks are machine translations of books rather than someone sitting down and laying books out for ebooks/tablets. 2018-08-28T16:33:34Z dlowe: or worse, pdf scans 2018-08-28T16:33:43Z dlowe: which an ebook reader utterly chokes on 2018-08-28T16:34:59Z easye: ironclad 0.40 has borked tests? I get a "KEYSTREAM-POSITION" not external in package CRYPTO in # 2018-08-28T16:37:23Z AeroNotix: easye: can you give me a snippet to try to reproduce? 2018-08-28T16:37:34Z AeroNotix: I can run it here to see if it's just your set up or not 2018-08-28T16:38:08Z AeroNotix: Also, I had a fever induced thought last night of questioning how easily it might be to introduce bad actor code into quicklisp. What kind of analysis/code review is done for packages in quicklisp? 2018-08-28T16:38:11Z easye: AeroNotix: (ql:quickload :ironclad/tests) 2018-08-28T16:38:18Z AeroNotix: I have a couple of packages there and I remember they were relatively easily accepted 2018-08-28T16:38:30Z fade: when I worked at Rakuten/Kobo, I had a feature request in to the development team to improve the rendering of code and math in greek in technical books that came about as the result of a 1-on-1 with the CEO. 2018-08-28T16:38:34Z fade is now known as Fade 2018-08-28T16:38:43Z steiner quit (Ping timeout: 244 seconds) 2018-08-28T16:39:02Z steiner joined #lisp 2018-08-28T16:39:03Z Fade: but as Don Knuth discovered the problem was non trivial; I doubt anybody is ever going to implement the feature. 2018-08-28T16:39:05Z AeroNotix: easye: that works for me 2018-08-28T16:39:45Z AeroNotix: Fade: I'm not asking for someone to write a program to do it I just would think with the pervasiveness of ebook readers that some authors would put actual effort into how their books render on ebooks. 2018-08-28T16:39:58Z oni-on-ion quit (Read error: No route to host) 2018-08-28T16:40:04Z dlowe: don't blame the authors here 2018-08-28T16:40:09Z AeroNotix: perhaps you're right 2018-08-28T16:40:17Z Fade: the renderers in all commercial ebook readers are actually just incapable of rendering the text. 2018-08-28T16:40:20Z dlowe: publishers decide that stuff 2018-08-28T16:40:20Z AeroNotix: I guess they have no idea sometimes if their books are being put into digital formats 2018-08-28T16:40:23Z Fade: when it looks right, it's an image. 2018-08-28T16:40:40Z Fade: the publisher agreements are profoundly onerous. 2018-08-28T16:40:43Z scymtym joined #lisp 2018-08-28T16:40:52Z AeroNotix: Fade: did Rakuten/Kobo use CL? 2018-08-28T16:41:15Z Fade: I wrote a lot of devops logic in CL at Kobo 2018-08-28T16:41:23Z Fade: but it wasn't officially sanctioned. 2018-08-28T16:41:46Z dlowe: I'm pretty sure there's a lot of unsanctioned CL floating around 2018-08-28T16:41:50Z AeroNotix: haha I managed to do that at my last place too :) 2018-08-28T16:41:52Z dlowe: I've written a bunch 2018-08-28T16:41:59Z AeroNotix: dlowe: did you work there too? 2018-08-28T16:42:17Z dlowe: No, I work at Google (via ITA) 2018-08-28T16:42:23Z Fade: when all they care about is that you do job A in N time, really what do they care? particularly in the kind of code that nobody will ever have to revisit. 2018-08-28T16:42:32Z Fade: cl-launch really made my life a lot better in that regard. 2018-08-28T16:42:33Z dlowe: well, the last bit is the important part 2018-08-28T16:42:45Z dlowe: if someone has to revisit it someday, the equation changes 2018-08-28T16:43:00Z Fade: yep 2018-08-28T16:43:12Z Bronsa quit (Ping timeout: 272 seconds) 2018-08-28T16:43:45Z dlowe: though if you do contract work for small businesses, they profoundly don't care 2018-08-28T16:43:53Z Fade: also true. 2018-08-28T16:43:54Z orivej joined #lisp 2018-08-28T16:44:00Z AeroNotix: I feel like that's somewhat unfair 2018-08-28T16:44:09Z Fade: which? 2018-08-28T16:44:25Z AeroNotix: Foisting CL onto small businesses without them fully understanding the consequences 2018-08-28T16:44:33Z steiner quit (Remote host closed the connection) 2018-08-28T16:44:49Z steiner joined #lisp 2018-08-28T16:44:53Z AeroNotix: dlowe: is flights.google.com part of ITA as well? 2018-08-28T16:45:06Z oni-on-ion joined #lisp 2018-08-28T16:45:06Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-28T16:45:09Z dlowe: Warning: Consumption of this program may lead to side effects such as: maintainability, stability, and ease of extension 2018-08-28T16:45:17Z easye: AeroNotix: Thanks for checking. Something to do with abcl-1.5.1-dev, I suppose. 2018-08-28T16:45:19Z dlowe: AeroNotix: yeah, it's the same code 2018-08-28T16:45:25Z dlowe: AeroNotix: we have a massive sbcl farm here 2018-08-28T16:45:45Z AeroNotix: dlowe: absolutely rad. Everytime a family member or friend uses flights.google.com I tell them it's Lisp. Good to have it confirmed :) 2018-08-28T16:45:54Z Fade: where I think the business could be impacted at a later date by the delivery, the proposal always lists various delivery environments at different price points. 2018-08-28T16:46:01Z dmiles joined #lisp 2018-08-28T16:46:02Z Fade: I find that CL usually wins in such cases. 2018-08-28T16:46:33Z dlowe: Fade: that's a very reasonable model 2018-08-28T16:46:35Z AeroNotix: dlowe: maintainability if the person is familiar with CL. I guess it really depends on what kind of money people tend to spend on your code when writing things for small businesses 2018-08-28T16:47:29Z dlowe: AeroNotix: the small business isn't going to be familiar with any tech more complex than an edit field and a button 2018-08-28T16:47:30Z AeroNotix: dlowe: can you share any information on the level of scale ITA/google flights run at? 2018-08-28T16:47:36Z dlowe: AeroNotix: sorry, no. 2018-08-28T16:47:45Z AeroNotix: Fair enough 2018-08-28T16:47:56Z dlowe: I think the official answer is "more than 7 computers" 2018-08-28T16:48:01Z AeroNotix: I've always been interested in any scaling issues SBCL has 2018-08-28T16:48:09Z Fade: i've made a practice out of saving projects that were proposed and fucked up in more mainstream languages with smaller dev teams in CL. when their hair is on fire, they're typically just glad to find out somebody has a plan. 2018-08-28T16:48:18Z dlowe: Ten years ago it was "more than 5 computers" 2018-08-28T16:48:21Z AeroNotix: Fade: are you hiring :) 2018-08-28T16:48:41Z dlowe: Fade: see, that's the sort of thing I want to get into 2018-08-28T16:49:18Z AeroNotix: Fade: what percentage of that plan is "write things properly" and which is "Use CL to solve the problem". The two can be related and unrelated at the same time 2018-08-28T16:49:18Z Fade: it's actually fairly high stress work, because the clients are at the table due to an ongoing failure. 2018-08-28T16:49:37Z AeroNotix: simply having a better plan/design than the previous iteration often wins out over platform choices. At least in my experience 2018-08-28T16:50:28Z Fade: AeroNotix: I find that environmental productivity and force amplification only really start to play out as a program moves from the land of the trivial to the non-trivial application. 2018-08-28T16:50:53Z Fade: architecture is always important, but that's tied to the deployment technology almost as much as the problem. 2018-08-28T16:50:58Z dlowe: am I wrong in remembering that tech.coop (now defunct) was at least partially a lisp shop? 2018-08-28T16:51:08Z AeroNotix: Fade: really agree with the amplification 2018-08-28T16:51:17Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-28T16:51:19Z AeroNotix: plus design choices rarely make an impact until you even reach a reasonable scale. 2018-08-28T16:51:24Z Fade: dlowe: it was indeed. that was drewc's baby, afair 2018-08-28T16:51:40Z dlowe: I need to bend his ear about what happened to it 2018-08-28T16:51:51Z dlowe: even better, he should write a blog post :D 2018-08-28T16:52:05Z Fade: I think he was the driving force, and when he got hurt, things trailed off. 2018-08-28T16:52:08Z orivej quit (Ping timeout: 245 seconds) 2018-08-28T16:52:15Z Fade: bus factor 2018-08-28T16:52:20Z meepdeew joined #lisp 2018-08-28T16:52:32Z dmiles quit (Read error: Connection timed out) 2018-08-28T16:52:42Z AeroNotix: damn I seem to remember reading an article years ago about running a high scale sbcl deployment and some insights into issues they ran into (ISTR they had issues with GC?). Does anyone remember that article? 2018-08-28T16:52:43Z dlowe: huh. 2018-08-28T16:52:58Z dlowe: Co-ops are supposed to be resilient to that. :/ 2018-08-28T16:53:38Z AeroNotix: https://tech.grammarly.com/blog/running-lisp-in-production might be this 2018-08-28T16:53:49Z Fade: they are, but I guess that depends on their resident cooperators. 2018-08-28T16:53:49Z doubledup joined #lisp 2018-08-28T16:54:12Z Fade: AeroNotix: vesedach rote about some stuff scaling sbcl at grammarly. 2018-08-28T16:54:46Z AeroNotix: might be the thing I linked 2018-08-28T16:55:28Z AeroNotix: "Yet another customization we had to make ??? a much less obvious one ??? was to run full GC programmatically every N minutes. " 2018-08-28T16:55:32Z AeroNotix: I had to do this with Erlang :( 2018-08-28T16:55:36Z Fade: when fe[nl]ix was visiting here a while ago, we got to talking about the GC in sbcl, which was (I think) related to that grammarly article. 2018-08-28T16:55:41Z orivej joined #lisp 2018-08-28T16:56:35Z dlowe: The Go gc is getting crazily good. I wonder if it'd be legal to steal it. :p 2018-08-28T16:56:47Z Fade: he mentioned the GC in the Azul system being 'state of the art' for large heaps. 2018-08-28T16:57:21Z dmiles joined #lisp 2018-08-28T16:57:31Z Lycurgus joined #lisp 2018-08-28T16:58:09Z Fade: maybe we can get pkhuong interested in leading a project. :) 2018-08-28T16:58:24Z zaquest quit (Ping timeout: 272 seconds) 2018-08-28T16:59:08Z dale_ joined #lisp 2018-08-28T16:59:22Z Fade: he also mentioned that the GC in clasp was interesting, but I can't remember the details. 2018-08-28T16:59:24Z AeroNotix: I'd love to read more articles like the above that go into issues and debugging running CL at scale in production. Love stories like that 2018-08-28T16:59:27Z dale_ is now known as dale 2018-08-28T16:59:45Z AeroNotix: I could write tomes on things I've encountered with Erlang 2018-08-28T16:59:54Z Fade: debugging CL in production is easier than other tech stacks, in my experience. 2018-08-28T17:00:01Z Fade: the picture in python is dire 2018-08-28T17:00:04Z AeroNotix: but they all boil down to essentially "most applications don't need or want how erlang's GC is designed" 2018-08-28T17:00:18Z dlowe: The picture in Rails is even worse. 2018-08-28T17:00:20Z AeroNotix: Fade: Erlang's live debugging rivals CL's 2018-08-28T17:00:32Z dlowe: which is what you'd expect from a system designed entirely around monkeypatching 2018-08-28T17:00:37Z AeroNotix: true 2018-08-28T17:00:43Z Fade: dlowe: truth 2018-08-28T17:00:44Z AeroNotix: and monkeypatching it does _very_ well 2018-08-28T17:01:03Z dlowe: it does, but when something goes wrong, it's worse than C++ template errors 2018-08-28T17:01:12Z AeroNotix: dlowe: do you have an example? 2018-08-28T17:01:19Z Fade: guys, you're trigginer ptsd over here. 2018-08-28T17:01:24Z Lycurgus quit (Client Quit) 2018-08-28T17:01:26Z Fade: er 'triggering' 2018-08-28T17:01:39Z AeroNotix: if you're doing monkeypatching you sure better test it. If you do releases properly then it's very simple to rollback "monkeypatching" 2018-08-28T17:01:45Z AeroNotix: hoping we're both still talking about erlang here 2018-08-28T17:01:56Z nika quit (Quit: Leaving...) 2018-08-28T17:02:05Z Fade: the external library story in python makes release management practically impossible. 2018-08-28T17:02:12Z Fade: you always own all the pieces 2018-08-28T17:02:19Z AeroNotix: Fade: python the language or python in SBCL? 2018-08-28T17:02:22Z phoe: AeroNotix: actually, how does live-debugging Erlang work without a condition system? You can livepatch the system just as well, but the error traces are very limited, from what I know. 2018-08-28T17:02:35Z Fade: i'm talking about python the language in the context of operations. 2018-08-28T17:02:41Z AeroNotix: phoe: I disagree. You can pattern match on trace arguments/returns to functions and to specific pids 2018-08-28T17:02:51Z AeroNotix: it's quite powerful 2018-08-28T17:03:22Z Oladon quit (Quit: Leaving.) 2018-08-28T17:03:33Z kjeldahl joined #lisp 2018-08-28T17:03:43Z AeroNotix: it's very easy to monkeypatch code to multiple servers in a single command 2018-08-28T17:03:46Z phoe: AeroNotix: do you have any reading material? I'd like to learn that stuff 2018-08-28T17:04:09Z AeroNotix: phoe: I've not written anything myself but Ferd/mononcqc did. Google "Erlang in Anger" 2018-08-28T17:04:33Z AeroNotix: I've had a blog post brewing for a few years arguing how Erlang NEEDS CL's condition system 2018-08-28T17:04:43Z lumm quit (Read error: Connection reset by peer) 2018-08-28T17:04:52Z AeroNotix: it boggles my mind how a language built around fault tolerance literally just uses typical exceptions to signal errors 2018-08-28T17:05:02Z FreeBirdLjj joined #lisp 2018-08-28T17:05:08Z Fade: I'd argue that the condition system and by implication, CLOS, are what is missing from most popular languages. 2018-08-28T17:05:15Z AeroNotix: agreed 2018-08-28T17:06:02Z Fade: the condition system is a lot of state that probably doesn't compose. ;) 2018-08-28T17:06:14Z lumm joined #lisp 2018-08-28T17:06:20Z Fade: is there a condition monad? 2018-08-28T17:07:15Z AeroNotix: in which language? 2018-08-28T17:07:18Z Fade: erlang 2018-08-28T17:07:44Z Fade: I just mean, given the design concerns in erlang, it might not be that surprising how they handle errors. 2018-08-28T17:07:45Z AeroNotix: Fade: erlang doesn't use monads at all really 2018-08-28T17:07:55Z Fade: isn't it all about 'fail fast'? 2018-08-28T17:08:00Z AeroNotix: yes 2018-08-28T17:08:04Z Fade: recovery doesn't really fit in that scene. 2018-08-28T17:08:13Z AeroNotix: It does and it doesn't 2018-08-28T17:08:24Z AeroNotix: The term used is "Let it crash" 2018-08-28T17:08:37Z AeroNotix: I argue that LIC is very, very misunderstood 2018-08-28T17:08:52Z Fade: I've only done a small bit of erlang; I remember thinking that it was both very weird and quite obvious that it was bootstrapped in lisp. 2018-08-28T17:09:02Z AeroNotix: Fade: it wasn't? 2018-08-28T17:09:07Z AeroNotix: It was initially wrote prolog 2018-08-28T17:09:09Z AeroNotix: in* 2018-08-28T17:09:32Z Fade: lisp -> prolog -> erlang 2018-08-28T17:09:34Z lumm quit (Client Quit) 2018-08-28T17:09:36Z Fade: but, okay. 2018-08-28T17:09:43Z oni-on-ion: prolog written in lisp, Fade ? 2018-08-28T17:09:47Z Fade: there were quite some lispisms in it. 2018-08-28T17:10:02Z Fade: the immutability really reset my margins. 2018-08-28T17:10:05Z lumm joined #lisp 2018-08-28T17:10:09Z oni-on-ion: i find erlang quite beautiful, but the mixing of (({[[{({({{[[({ was too much =) 2018-08-28T17:10:44Z AeroNotix: Fade: the funny thing is, there's immutability exactly in places where it's the least helpful 2018-08-28T17:10:46Z dlowe: I can't get over strings as lists of ints 2018-08-28T17:11:05Z oni-on-ion: dlowe: wasnt that haskell's thing for a bit before ByteString? =P 2018-08-28T17:11:07Z dlowe: and sometimes they might be interpreted as a string. Maybe. 2018-08-28T17:11:07Z Fade: it's a weird language. 2018-08-28T17:11:08Z AeroNotix: dlowe: use binaries is the answer, but that goes directly in the face of how the GC is designed and usually one of the bigger issues when running erlang in production 2018-08-28T17:11:20Z oni-on-ion: erlang has great support for binary , speaking of 2018-08-28T17:11:38Z Fade: that binary decomposition trick it does is very neat. 2018-08-28T17:11:45Z AeroNotix: I ran a relatively decent scale Erlang service for 5+ years. I loved and hated it. 2018-08-28T17:11:47Z dlowe: yeah, well, not much call for string munging when you're routing phone calls 2018-08-28T17:11:52Z oni-on-ion: i wrote an irc client in like half a day =p 2018-08-28T17:12:13Z m00natic quit (Remote host closed the connection) 2018-08-28T17:12:35Z oni-on-ion: it got me some work, doing erlang. but its a lot of things to keep in the mind, with all of the services and hierarchy of processes 2018-08-28T17:12:51Z dlowe: I suspect you probably could write an irc client in anything in half a day 2018-08-28T17:13:04Z oni-on-ion: true, but this was maybe my second networking app 2018-08-28T17:13:10Z AeroNotix: dlowe: that's what kind of annoys me now with how people are using it for things it typically wasn't designed for. Applications with lots of operations on data rather than simple routing of said data massively impact how the GC works. 2018-08-28T17:13:21Z oni-on-ion: (and i didnt know erlang that well) 2018-08-28T17:13:31Z oni-on-ion: AeroNotix: Wings3D ? =) 2018-08-28T17:13:45Z dlowe: AeroNotix: everyone wants to see how general purpose a tool can be :) 2018-08-28T17:13:45Z AeroNotix: oni-on-ion: oh yeah that's a thing 2018-08-28T17:13:57Z AeroNotix: dlowe: I've said this many times. Erlang is a DSL for networking protocols 2018-08-28T17:14:16Z oni-on-ion: "general" purpose. prostitution and software may not mix as well as we hope it to =P 2018-08-28T17:14:23Z AeroNotix: I'd love to port the binary pattern matching to CL though 2018-08-28T17:14:29Z AeroNotix: it's incredible 2018-08-28T17:14:37Z oni-on-ion: AeroNotix: seen optima ? 2018-08-28T17:14:55Z oni-on-ion: that is my main take away from erlang, aside from immutability, is the pattern matching. 2018-08-28T17:15:07Z AeroNotix: oni-on-ion: as far as I understand last time I looked at it, it doesn't attempt to do anything like binary pattern matching 2018-08-28T17:15:16Z oni-on-ion: oh and the nodes and VMs (swi-prolog and julia have this too though) 2018-08-28T17:15:18Z AeroNotix: oni-on-ion: OTP, screw everything else :) 2018-08-28T17:15:27Z gector quit (Ping timeout: 252 seconds) 2018-08-28T17:15:52Z oni-on-ion: ehhh OTP... too many files with very similar code. i lose track eassily 2018-08-28T17:16:02Z oni-on-ion: start_link etc etc 2018-08-28T17:16:09Z AeroNotix: Your editor should take care of all that 2018-08-28T17:16:20Z AeroNotix: Any way, erlang is probably quite OT :) 2018-08-28T17:16:24Z oni-on-ion: sure emacs/distel has templates. but thats still text that needs to be manhandled 2018-08-28T17:16:52Z oni-on-ion: scrollss.. how did it get to erlang ? ahh missing of CLOS. 2018-08-28T17:17:12Z oni-on-ion: afaik only CL julia and dylan have proper/mature multiple dispatch 2018-08-28T17:17:30Z AeroNotix: I saw a solution in the grammarly article that mentioned manually running GC in their SBCL deployment. Reminded me of a big issue with Erlang, think that's how we got on to it 2018-08-28T17:17:52Z Fade touches his nose and points to AeroNotix 2018-08-28T17:17:59Z oni-on-ion: ahh i see that now. i remember monocqc 2018-08-28T17:18:00Z oni-on-ion: l 2018-08-28T17:18:06Z AeroNotix: Based on my understanding of CLOS. I'm sure you could approximate it in Erlang. I need to see what Elixir does in this regard. 2018-08-28T17:18:25Z AeroNotix: *semi-troll-mode-engaged*: after all Erlang IS object oriented :) 2018-08-28T17:18:27Z oni-on-ion: what about LFE ? =) 2018-08-28T17:18:33Z AeroNotix: garbage language imho 2018-08-28T17:18:36Z oni-on-ion: actors are objects indeed 2018-08-28T17:18:43Z AeroNotix: worst of CL combined with the worst of Erlang 2018-08-28T17:18:45Z Fade: since there are erlang afficionadoes present, have either of you looked at cl-muproc? 2018-08-28T17:18:51Z oni-on-ion: but methods belonging to an object is a bit anti-multidispatch isnt it? 2018-08-28T17:19:36Z AeroNotix: Fade: looking at it now but I must ask one thing of all things that attempt to implement Erlang style concurrency: Can one actor kill another actor remotely without what the to-be-killed-actor being able to ignore that? 2018-08-28T17:20:00Z oni-on-ion: http://hyperpolyglot.org/logic -- heh, relevant. but speaking of that Fade , i have been watching this a little bit: https://github.com/Web-Prolog/swi-web-prolog 2018-08-28T17:20:12Z Fade: I guess that depends on how threading is handled. 2018-08-28T17:20:31Z zxcvz joined #lisp 2018-08-28T17:20:35Z AeroNotix: https://common-lisp.net/project/cl-muproc/#muproc-exit seemingly so 2018-08-28T17:20:56Z AeroNotix: I need to test how this behaves. This functionality is one of the subtle aspects that a lot of Erlang wannabes get wrong 2018-08-28T17:21:17Z AeroNotix: that and the Erlang scheduler is difficult to replicate without a lot of work 2018-08-28T17:21:27Z graphene quit (Remote host closed the connection) 2018-08-28T17:21:42Z dmiles quit (Read error: Connection reset by peer) 2018-08-28T17:21:44Z oni-on-ion: AeroNotix: yes, i think that is possible, for actor to kill remote actor 2018-08-28T17:21:51Z Fade: looks like muproc implements greenlets. 2018-08-28T17:22:17Z AeroNotix: Quite interesting. Need to have a play with this! 2018-08-28T17:22:22Z phoe: https://common-lisp.net/project/cl-muproc/ 2018-08-28T17:22:23Z phoe: hmmmm 2018-08-28T17:22:27Z oni-on-ion: the swi-web-prolog is the closest i've seen, ive been watching erlang style actors/otp/concurrency in several langs 2018-08-28T17:22:40Z AeroNotix: boo: "Although CL-MUPROC has been developed with distributed operation in mind, at this point all muprocs in a CL-MUPROC based system must execute within the same Lisp image." 2018-08-28T17:22:49Z oni-on-ion: D= 2018-08-28T17:22:53Z oni-on-ion: what use is that 2018-08-28T17:22:57Z Fade: oni-on-ion: the fact tht it's a perl project leads me to doubt the basic sanity of the project team. 2018-08-28T17:22:58Z AeroNotix: wait 2018-08-28T17:23:01Z graphene joined #lisp 2018-08-28T17:23:04Z groovy2shoes quit (Ping timeout: 265 seconds) 2018-08-28T17:23:26Z oni-on-ion: Fade: eh, swipl ??? i think github may be reporting "*.pl" files as PERL. when in fact that is also PROLOG extension. 2018-08-28T17:23:32Z AeroNotix: oni-on-ion: ime distributed erlang is often difficult to scale depending on the application and especially when out-of-band applications can handle the operations you're using disterl for better. 2018-08-28T17:23:43Z Fade laughs 2018-08-28T17:23:44Z oni-on-ion: lol yeah that is not perl. 2018-08-28T17:23:59Z oni-on-ion knows a coder doing a lot of prolog and perl and i question their sanity daily 2018-08-28T17:24:05Z AeroNotix: phoe: why hmm? 2018-08-28T17:24:15Z phoe: AeroNotix: I'm trying to find it on Quicklisp and it isn't there yet 2018-08-28T17:24:51Z phoe: doesn't build 2018-08-28T17:25:08Z phoe: it seems there is a "timer" dependency that collides with another package called "timer" in QL 2018-08-28T17:25:13Z AeroNotix: drats 2018-08-28T17:25:53Z AeroNotix: The documentation seems all good. Really interested in how this behaves. Might procrastinate on my current project in trying to get gen_supervisor and gen_server working with cl-muprocs 2018-08-28T17:26:11Z phoe: AeroNotix: it seems that the timer library needs some love 2018-08-28T17:26:27Z AeroNotix: especially interesting to me is how does blocking code effect the scheduling 2018-08-28T17:27:01Z Fade: AeroNotix: I'd be interested in what you think after you fool around with it a bit. 2018-08-28T17:27:19Z oni-on-ion: swipl and erlang are both so similar, both packaged with tons of tools and libs, docs, and great implementation. not sure if OTP "fail-first" and CL's condition system are compatible 2018-08-28T17:27:59Z AeroNotix: oni-on-ion: they absolutely are compatible 2018-08-28T17:28:20Z AeroNotix: I'd love to explain here why but it's quite an esoteric for #lisp 2018-08-28T17:28:28Z AeroNotix: an esoteric discussion* 2018-08-28T17:28:45Z AeroNotix: https://common-lisp.net/project/cl-muproc/eclm2006--cl-muproc--Klaus-Harbo.pdf 2018-08-28T17:28:48Z AeroNotix: interesting^ 2018-08-28T17:29:04Z oni-on-ion: ive never used CL conditions, but i know they are top class of the world; im sure they can be distributed or done remotely, maybe that is closer to OTP ? 2018-08-28T17:29:31Z oni-on-ion: as for pattern matching i cannot live without it so i virtually settled on optima 2018-08-28T17:32:25Z dmiles joined #lisp 2018-08-28T17:32:26Z graphene quit (Remote host closed the connection) 2018-08-28T17:33:59Z graphene joined #lisp 2018-08-28T17:35:15Z caltelt joined #lisp 2018-08-28T17:36:46Z AeroNotix: oni-on-ion: here's why I don't use optima: https://gist.github.com/AeroNotix/e98064d48abe7488fd6736e5adb8d694 2018-08-28T17:37:01Z AeroNotix: you can't seem to re-use matches within the match spec 2018-08-28T17:37:12Z AeroNotix: In Erlang, this is completely normal and very often used. 2018-08-28T17:37:56Z Fade: also interesting: https://github.com/flambard/cl-erlang-term 2018-08-28T17:38:13Z phoe: AeroNotix: you mean that (vector a a a) is a vector with three the same elements, right? 2018-08-28T17:38:21Z AeroNotix: phoe: yep 2018-08-28T17:38:34Z AeroNotix: Fade: that's useful for implementing a disterl node in a non-erlang language 2018-08-28T17:38:49Z phoe: there are Erlang nodes in CL 2018-08-28T17:39:00Z phoe: https://github.com/flambard/CLERIC 2018-08-28T17:39:09Z Oladon joined #lisp 2018-08-28T17:39:42Z AeroNotix: nice 2018-08-28T17:39:49Z AeroNotix: Wonder what limitations it has though 2018-08-28T17:40:17Z phoe: well, it likely can't execute Erlang funs coming from the network 2018-08-28T17:40:18Z Fade: cleric uses erlang-term 2018-08-28T17:41:32Z zfree quit (Quit: zfree) 2018-08-28T17:41:52Z AeroNotix: https://github.com/flambard/cl-erlang-term/blob/master/src/erlang-fun.lisp it tries to read/decode them. 2018-08-28T17:42:40Z AeroNotix: https://github.com/flambard/cl-erlang-term/blob/master/src/erlang-fun.lisp#L142-L169 turning it into an instance of a class. 2018-08-28T17:44:48Z zfree joined #lisp 2018-08-28T17:46:05Z phoe: Could someone support me at https://github.com/trivial-gray-streams/trivial-gray-streams/pull/6 ? 2018-08-28T17:46:16Z phoe: It's about (setf (foo) bar) always needing to return BAR 2018-08-28T17:46:30Z moei quit (Quit: Leaving...) 2018-08-28T17:48:03Z dlowe: I'm a little baffled at the pushback 2018-08-28T17:48:09Z orivej quit (Ping timeout: 268 seconds) 2018-08-28T17:48:21Z dlowe: WTF difference does it make to them 2018-08-28T17:51:10Z dlowe: I also agree that there probably shouldn't be a (setf file-position) function anyway, to match cl:file-position 2018-08-28T17:52:20Z phoe: I just need some support from #lisp there - I'm focused elsewhere at the moment and can't focus on that question 2018-08-28T17:52:33Z _death: it's just one more reason not to use gray streams 2018-08-28T17:52:43Z AeroNotix: Is there any consensus on what should be SETF'able and what shouldn't be? 2018-08-28T17:57:00Z meepdeew quit (Remote host closed the connection) 2018-08-28T17:57:19Z phoe: as far as I understand, the only setters that don't use SETF in Lisp are kept for legacy reasons 2018-08-28T17:57:27Z phoe: for example, FILE-POSITION 2018-08-28T17:57:33Z phoe: and RPLACA 2018-08-28T17:58:28Z AeroNotix: I can't get cl-erlang-term to decode anything at all 2018-08-28T17:58:48Z phoe: there is also mop:set-funcallable-instance-function which likely could have been a (setf (mop:funcallable-instance-function ...) ...) 2018-08-28T18:00:36Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T18:02:09Z phoe: hahaha 2018-08-28T18:02:10Z phoe: https://github.com/sbcl/sbcl/blob/master/src/pcl/low.lisp#L83 2018-08-28T18:02:12Z phoe: (; 2018-08-28T18:03:08Z AeroNotix: brilliant :) 2018-08-28T18:04:54Z random-nick quit (Ping timeout: 272 seconds) 2018-08-28T18:06:55Z pierpal quit (Quit: Poof) 2018-08-28T18:07:11Z pierpal joined #lisp 2018-08-28T18:07:51Z _death: clhs 5.1.2.9 2018-08-28T18:07:51Z specbot: Other Compound Forms as Places: http://www.lispworks.com/reference/HyperSpec/Body/05_abi.htm 2018-08-28T18:07:51Z _death: 2018-08-28T18:08:05Z _death: "A function named (setf f) must return its first argument as its only value in order to preserve the semantics of setf." 2018-08-28T18:08:10Z phoe: _death: Thanks! 2018-08-28T18:08:17Z phoe: Posting it now 2018-08-28T18:08:31Z _death: but, it may be worthwhile to look at the Gray proposal.. 2018-08-28T18:10:28Z _death: if LispWorks has that contradictory behavior documented.. there may be a good reason to keep it as-is 2018-08-28T18:17:21Z _death: something that's more often violated is print-object return value spec.. and print-unreadable-object's unhelpful return value contributes to that as well 2018-08-28T18:18:18Z phoe: _death: wtf 2018-08-28T18:18:21Z phoe: I just realized that, right 2018-08-28T18:18:47Z phoe: "The function print-object is called by the Lisp printer; it should not be called by the user." - then why specify its return value at all? 2018-08-28T18:19:12Z jasom: phoe: because it's a GF? 2018-08-28T18:19:19Z jasom: clhs print-object 2018-08-28T18:19:19Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_pr_obj.htm 2018-08-28T18:19:38Z dented42 joined #lisp 2018-08-28T18:19:43Z phoe: jasom: yes, I know that, it's just weird that this function is meant to return anything meaningful if it isn't meant to be called by the user 2018-08-28T18:19:46Z _death: a user can still c-n-m and such.. 2018-08-28T18:20:02Z phoe: it's literally only for side effects, just like print-unreadable-object 2018-08-28T18:22:05Z fikka joined #lisp 2018-08-28T18:22:29Z aeth: Return values can still have a use 2018-08-28T18:23:01Z aeth: Especially since everything's an expression 2018-08-28T18:25:37Z _death: I make a point of returning the object, but even print-object methods defined by SBCL don't.. 2018-08-28T18:26:15Z _death: (i.e. even those coming from PCL...) 2018-08-28T18:26:32Z phoe: _death: you aren't supposed to notice the difference, you're not meant to call the GF yourself anyway (: 2018-08-28T18:26:42Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T18:27:15Z sauvin quit (Read error: Connection reset by peer) 2018-08-28T18:27:37Z _death: like I said.. users may call-next-method 2018-08-28T18:28:10Z phoe: ...oh wait 2018-08-28T18:28:15Z phoe: that's right 2018-08-28T18:28:29Z aeth: It often saves 1-2 lines if you return something. Maybe _death can construct an example 2018-08-28T18:29:43Z phoe: It's kind of weird in that context, since (defmethod print-object (object stream) ...) binds OBJECT which is going to be the same as the return value of (call-next-method) in that environment 2018-08-28T18:30:00Z fikka joined #lisp 2018-08-28T18:31:24Z aeth: I only like returning NIL if the function is going to be called in a very specific place and the return value is known not to be used there because otherwise a function that mutates will possibly be used in the final position of a function and then you wind up with (defun foobar (foo) (bar foo) foo) instead of (defun foobar (foo) (bar foo)) 2018-08-28T18:31:48Z aeth: And at that point I might as well be using Java. 2018-08-28T18:33:03Z cpape joined #lisp 2018-08-28T18:33:09Z cods quit (*.net *.split) 2018-08-28T18:33:20Z _death: also, another reason we're not noticing the difference is because our implementations don't care about the return value ;) 2018-08-28T18:34:25Z kajo joined #lisp 2018-08-28T18:34:39Z _death: I see that for describe-object the return value is implementation-dependent.. 2018-08-28T18:34:40Z Guest29 quit (Read error: Connection reset by peer) 2018-08-28T18:38:50Z jasom: aeth: you use nil rather than (values)? 2018-08-28T18:40:58Z phoe: jasom: oh right, (values), yet another convention 2018-08-28T18:42:21Z SenasOzys quit (Ping timeout: 276 seconds) 2018-08-28T18:42:55Z Lycurgus joined #lisp 2018-08-28T18:44:51Z aeth: jasom: because unless it's in an flet or labels there's still a chance it might be called in the returning position somewhere 2018-08-28T18:45:26Z aeth: And even (values) becomes NIL if you use it as a value in most places. 2018-08-28T18:45:32Z random-nick joined #lisp 2018-08-28T18:45:38Z light2yellow quit (Quit: light2yellow) 2018-08-28T18:45:57Z aeth: My least favorite thing about Scheme is that its unspecified return values are taken literally. e.g. in Guile (display "Foo") returns # 2018-08-28T18:46:38Z aeth: Don't fight expressions in an s-expression language. 2018-08-28T18:47:29Z ecraven: aeth: that's the implementation's choice, it might as well return *no* value or something else 2018-08-28T18:48:27Z SenasOzys joined #lisp 2018-08-28T18:48:42Z aeth: What I think happens with (values) is that (nth-value 0 (values)) => NIL 2018-08-28T18:49:23Z aeth: because NTH-VALUES returns NIL for all of the values past the number of actual return values 2018-08-28T18:50:10Z aeth: Most things only care about the 0th value so that's why you get NIL printed for (format t "~S~%" (values)) 2018-08-28T18:51:54Z warweasle quit (Quit: rcirc on GNU Emacs 24.4.1) 2018-08-28T18:53:21Z aeth: There's only a few places where (values) would make a difference, like multiple-value-call (but not multiple-value-bind! that uses NIL defaults!) and probably setf 2018-08-28T18:54:05Z _death: if FIND returned (values) when the element was not found, it wouldn't break much code :d (still, not compliant..) 2018-08-28T18:54:23Z meepdeew joined #lisp 2018-08-28T18:55:28Z aeth: It looks like (at least in SBCL) setf treats (values) as NIL even though setf can handle multiple values. (let ((x (cons 1 2))) (setf (car x) (values)) x) 2018-08-28T18:56:04Z _death: well, (setf car) expects a value.. 2018-08-28T18:56:20Z orivej joined #lisp 2018-08-28T18:56:49Z aeth: I'll use my array-of-3, which expects 3 values. (let ((v (vector 1 2 3))) (setf (array-of-3 v) (values))) => #(NIL NIL NIL) 2018-08-28T18:57:23Z aeth: It looks like multiple-value-call might be the only place where NIL doesn't fill in the missing value(s) 2018-08-28T18:57:46Z cage_ quit (Quit: Leaving) 2018-08-28T18:57:58Z aeth: You can, of course, test for NIL in multiple-value-list as well if you want to detect (values). 2018-08-28T18:58:14Z _death: what is array-of-3 2018-08-28T18:58:32Z aeth: _death: (let ((v (vector 1 2 3))) (setf (array-of-3 v) (values 4 5 6))) => #(4 5 6) 2018-08-28T18:58:53Z _death: so it is a setf-expander, right? 2018-08-28T18:58:54Z aeth: _death: defsetf handles multiple values, so this is a good test of what happens when the wrong number of values is given 2018-08-28T18:59:25Z aeth: No, every time I think I need define-setf-expander, defsetf works 2018-08-28T18:59:38Z fikka quit (Ping timeout: 245 seconds) 2018-08-28T18:59:57Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-28T19:00:08Z _death: a setf-expander could distinguish.. 2018-08-28T19:00:27Z aeth: Most uses of multiple-values ignores all values beyond the requested and fills in the missing value(s) with NIL 2018-08-28T19:01:00Z aeth: multiple-value-call doesn't, and maybe define-setf-expander doesn't. Obviously values-list doesn't. 2018-08-28T19:01:40Z _death: you mean multiple-value-list 2018-08-28T19:02:15Z aeth: yes 2018-08-28T19:02:16Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-28T19:02:32Z aeth: I always confuse the two 2018-08-28T19:02:42Z _death: bad naming :) 2018-08-28T19:03:47Z fikka joined #lisp 2018-08-28T19:04:03Z Orion3k joined #lisp 2018-08-28T19:05:45Z Jesin quit (Quit: Leaving) 2018-08-28T19:06:07Z rpg_ joined #lisp 2018-08-28T19:06:11Z _death: (btw I mentioned FIND for its NIL element pitfall..) 2018-08-28T19:06:34Z rpg_ quit (Client Quit) 2018-08-28T19:07:53Z aeth: _death: (find nil '(nil)) 2018-08-28T19:08:07Z zaquest joined #lisp 2018-08-28T19:11:07Z _death: right, or (find-if #'null '(nil)) 2018-08-28T19:11:20Z mkolenda joined #lisp 2018-08-28T19:12:14Z kaun joined #lisp 2018-08-28T19:14:11Z dlowe: spoiler alert: the result of find nil is going to be nil. 2018-08-28T19:14:14Z dlowe: always. 2018-08-28T19:14:28Z dlowe: you're not going to find some special kind of nil 2018-08-28T19:14:44Z dlowe: so it's not much of a pitfall 2018-08-28T19:15:16Z quazimodo joined #lisp 2018-08-28T19:15:53Z Lycurgus quit (Ping timeout: 245 seconds) 2018-08-28T19:16:00Z phoe: dlowe: (define-compiler-macro (item sequence &rest rest) (if (null item) 'nil `(find ,item ,sequence ,@rest)) 2018-08-28T19:16:02Z AeroNotix: dlowe: wouldn't it have been better to return (VALUES VALUE-FOUND VALUE-FOUND-P) or something? 2018-08-28T19:16:03Z _death: it's a pitfall when you don't know what you're looking for beforehand 2018-08-28T19:16:16Z dlowe: You can use member for lists or position for sequences to test for membership 2018-08-28T19:16:32Z phoe: AeroNotix: it would have been better 2018-08-28T19:16:33Z _death: AeroNotix: yes, but I believe FIND predates multiple values.. 2018-08-28T19:16:39Z phoe: see return values of GETHASH 2018-08-28T19:17:05Z _death: dlowe: sure.. you just need to be aware of the issue 2018-08-28T19:19:10Z Jesin joined #lisp 2018-08-28T19:20:55Z dlowe: fair enough 2018-08-28T19:25:11Z loli quit (Read error: Connection reset by peer) 2018-08-28T19:25:21Z aeth: dlowe: (defun foo (sequence) (find nil sequence)) doesn't optimize to return NIL in SBCL. I'm disappointed. I thought that that was the best we have as far as optimizing compilers go 2018-08-28T19:25:36Z loli joined #lisp 2018-08-28T19:25:37Z aeth: It actually calls FIND for some strange reason 2018-08-28T19:25:45Z oni-on-ion quit (Quit: WeeChat 1.9.1) 2018-08-28T19:27:06Z dlowe: seems like a trivial compiler macro 2018-08-28T19:27:12Z Bike joined #lisp 2018-08-28T19:29:57Z _death: this issue also has a name by the way.. PAIP calls it "the semipredicate problem" 2018-08-28T19:30:18Z gravicappa joined #lisp 2018-08-28T19:32:02Z aeth: I'm surprised it wasn't solved in the same way as GETHASH 2018-08-28T19:34:50Z shifty quit (Ping timeout: 268 seconds) 2018-08-28T19:37:13Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-28T19:37:47Z gector joined #lisp 2018-08-28T19:37:55Z nopolitica quit (Ping timeout: 268 seconds) 2018-08-28T19:39:01Z mkolenda joined #lisp 2018-08-28T19:41:34Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-28T19:46:14Z fikka quit (Ping timeout: 272 seconds) 2018-08-28T19:52:41Z mkolenda quit (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) 2018-08-28T19:55:21Z mkolenda joined #lisp 2018-08-28T19:55:48Z charh joined #lisp 2018-08-28T19:56:27Z gurmble joined #lisp 2018-08-28T19:56:38Z grumble quit (Quit: The world could be such a nice place, if it weren't for its inhabitants.) 2018-08-28T19:58:16Z gurmble is now known as grumble 2018-08-28T20:00:05Z fikka joined #lisp 2018-08-28T20:04:21Z fikka quit (Ping timeout: 244 seconds) 2018-08-28T20:05:02Z kaun left #lisp 2018-08-28T20:12:35Z groovy2shoes joined #lisp 2018-08-28T20:14:00Z meepdeew quit (Remote host closed the connection) 2018-08-28T20:24:23Z jasom: I never understood the long form of defsetf, define-setf-expander is so much simpler imo 2018-08-28T20:24:54Z dlowe: maybe there for legacy code? 2018-08-28T20:25:25Z jasom: dlowe: I know that some people find defsetf to be easier to use, I'm just not one of them 2018-08-28T20:31:34Z kaun joined #lisp 2018-08-28T20:31:38Z kaun quit (Quit: IRC for Sailfish 0.9) 2018-08-28T20:33:08Z lonjil quit (Ping timeout: 252 seconds) 2018-08-28T20:33:32Z phoe: I always (defun (setf foo) ...) 2018-08-28T20:33:46Z phoe: unless there's a need for define-setf-expander 2018-08-28T20:35:34Z Shinmera: I think I have like a total of one project that uses defsetf and two that use define-setf-expander 2018-08-28T20:36:03Z Shinmera: But the majority of them just use setf function designators. 2018-08-28T20:45:29Z kamog quit (Quit: ERC (IRC client for Emacs 26.1)) 2018-08-28T20:45:53Z zfree quit (Quit: zfree) 2018-08-28T20:46:14Z pjb: phoe: there are cases when define-setf-expander is required. But they are rare. 2018-08-28T20:48:47Z gravicappa quit (Ping timeout: 244 seconds) 2018-08-28T20:49:16Z moei joined #lisp 2018-08-28T20:49:57Z kajo quit (Ping timeout: 252 seconds) 2018-08-28T20:51:25Z lonjil joined #lisp 2018-08-28T20:52:25Z aeth: defsetf is incredibly trivial for making a setf that takes in multiple values 2018-08-28T20:53:19Z Roy_Fokker joined #lisp 2018-08-28T20:54:04Z aeth: Something like this: (defsetf foo (bar) (value-0 value-1 value-2) `(progn (psetf (aref ,bar 0) ,value-0 (aref ,bar 1) ,value-1 (aref ,bar 2) ,value-2) ,bar)) 2018-08-28T20:54:37Z aeth: (Don't forget to add the final return value, though!) 2018-08-28T20:55:00Z neuro_sys quit (Ping timeout: 268 seconds) 2018-08-28T20:56:17Z aeth: Then you can do (let ((v (vector 1 2 3))) (setf (foo v) (values 4 5 6))) and get something similar to my array-of-3 from earlier. (I use macros so I don't have to repeat myself for every variation, of course.) 2018-08-28T20:58:42Z aeth: The non-setf version with the same name would return multiple values and you get an elegant composition. 2018-08-28T20:58:55Z zfree joined #lisp 2018-08-28T20:59:54Z mindCrime quit (Ping timeout: 252 seconds) 2018-08-28T21:00:11Z aeth: This trivial example is useless because copy-seq/replace/etc. exist, but you could do (setf (array-of-3 foo) (array-of-3 bar)) 2018-08-28T21:00:30Z aeth: So setf that take in multiple values are the natural counterpart to functions that return multiple values 2018-08-28T21:03:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-28T21:04:29Z brettgilio joined #lisp 2018-08-28T21:19:00Z mathrick quit (Ping timeout: 276 seconds) 2018-08-28T21:23:14Z warex joined #lisp 2018-08-28T21:27:01Z gector quit (Ping timeout: 244 seconds) 2018-08-28T21:27:06Z fikka joined #lisp 2018-08-28T21:31:06Z mathrick joined #lisp 2018-08-28T21:32:06Z razzy: .help 2018-08-28T21:33:58Z pjb: tell us more. 2018-08-28T21:34:26Z pjb: Are you drowning? (where?) Are you lost? (what is it like around you? where do you want to go?) What? 2018-08-28T21:35:15Z zfree quit (Quit: zfree) 2018-08-28T21:35:23Z aeth: 🐊 or 🦈? 2018-08-28T21:35:37Z pjb: If you're in a opening airlock to the empty space, don't hold your breath (literally). You've got 30 s to 3 mn for a spaceship to appear and catch you. 2018-08-28T21:35:47Z fikka quit (Ping timeout: 240 seconds) 2018-08-28T21:37:57Z Bike quit (Ping timeout: 252 seconds) 2018-08-28T21:38:01Z astalla joined #lisp 2018-08-28T21:38:11Z pjb: clall -r '(map (quote list) (function char-name) "🐊 or 🦈?")' # and the winner is clisp again. x years old, but it still knows the latest unicode! 2018-08-28T21:39:09Z aeth: SBCL knows the names too 2018-08-28T21:39:26Z pjb: Nope. It needs to be upgraded. my version doesn't know #\shark 2018-08-28T21:40:13Z aeth: sorry, I assumed it was a copy and paste error because my emacs doesn't know that character 2018-08-28T21:40:18Z aeth: you're right 2018-08-28T21:40:47Z aeth: Someone needs to inform the people at #sbcl that SBCL cannot currently identify sharks 2018-08-28T21:41:46Z aeth: I think we can assume that razzy didn't get help in time in either case, though. 2018-08-28T21:42:09Z fikka joined #lisp 2018-08-28T21:42:35Z pjb: Perhaps the Heart of Gold caught him. Since that seems highly improbable… 2018-08-28T21:47:22Z AeroNotix: pjb: what's that clall command? 2018-08-28T21:47:25Z AeroNotix: googling isn't helping 2018-08-28T21:47:46Z pjb: It's in https://github.com/informatimago/bin/ 2018-08-28T21:48:00Z pjb: https://github.com/informatimago/bin/blob/master/clall 2018-08-28T21:48:01Z graphene quit (Remote host closed the connection) 2018-08-28T21:48:34Z kajo joined #lisp 2018-08-28T21:49:10Z AeroNotix: rad 2018-08-28T21:49:46Z graphene joined #lisp 2018-08-28T21:50:04Z pjb: Somebody wrote a clone recently. Perhaps you'd want to compare them. 2018-08-28T21:50:27Z astalla quit (Ping timeout: 240 seconds) 2018-08-28T21:50:33Z Shinmera: https://gihub.com/Shinmera/cl-all 2018-08-28T21:50:43Z Shinmera: Bah, https://github.com/Shinmera/cl-all 2018-08-28T21:52:28Z scymtym: somebody will have to write cl-all-all to compare the cl-alls 2018-08-28T21:53:09Z jasom: sbcl autogenerates its names from the unicode data files, so it shouldn't be an issue 2018-08-28T21:54:37Z pjb: :-) 2018-08-28T21:55:05Z pjb: jasom: it's an issue, when uncode changes as often as it does. There's already version 11 and counting! 2018-08-28T21:58:18Z nopolitica joined #lisp 2018-08-28T22:01:54Z varjag quit (Remote host closed the connection) 2018-08-28T22:03:43Z razzy: pjb, aeth i was looking for plexi 2018-08-28T22:05:03Z slyrus quit (Quit: slyrus) 2018-08-28T22:05:03Z slyrus1 is now known as slyrus 2018-08-28T22:05:18Z sjl_ quit (Ping timeout: 268 seconds) 2018-08-28T22:05:22Z slyrus1 joined #lisp 2018-08-28T22:06:24Z varjag joined #lisp 2018-08-28T22:06:35Z slyrus1 quit (Client Quit) 2018-08-28T22:06:53Z slyrus1 joined #lisp 2018-08-28T22:08:21Z gector joined #lisp 2018-08-28T22:12:07Z brettgilio quit (Quit: Konversation terminated!) 2018-08-28T22:19:22Z emaczen joined #lisp 2018-08-28T22:22:17Z v0|d joined #lisp 2018-08-28T22:27:44Z LiamH quit (Quit: Leaving.) 2018-08-28T22:29:24Z gector quit (Ping timeout: 252 seconds) 2018-08-28T22:36:22Z slyrus1 quit (Quit: slyrus1) 2018-08-28T22:37:27Z jack_rabbit joined #lisp 2018-08-28T22:38:15Z meepdeew joined #lisp 2018-08-28T22:39:14Z doubledup quit (Quit: Leaving) 2018-08-28T22:39:47Z random-nick quit (Read error: Connection reset by peer) 2018-08-28T22:42:03Z varjag quit (Ping timeout: 252 seconds) 2018-08-28T22:56:00Z slyrus1 joined #lisp 2018-08-28T23:02:29Z gector joined #lisp 2018-08-28T23:05:41Z gigetoo quit (Ping timeout: 255 seconds) 2018-08-28T23:09:29Z AeroNotix: is there a library that authors a bunch of utilities when writing macros? E.g. var list separation, code walking 2018-08-28T23:09:49Z AeroNotix: I always find I have similar macros helpers in a few places 2018-08-28T23:11:00Z lnostdal quit (Quit: https://www.Quanto.ga/) 2018-08-28T23:11:45Z pjb: You're missing some verbs. But I guess you'd like com.informatimago.common-lisp.lisp-sexp 2018-08-28T23:12:20Z AeroNotix: pjb: which verbs am I missing? 2018-08-28T23:12:42Z pjb: I fail to see how "to author" can be the verb for "a library" so… 2018-08-28T23:13:04Z AeroNotix: did you understand what I meant? 2018-08-28T23:13:10Z AeroNotix: I've been ill in bed for two days 2018-08-28T23:13:10Z pjb: I guessed. 2018-08-28T23:13:21Z pjb: That's a good explaination :-) 2018-08-28T23:13:27Z pjb: Take care! 2018-08-28T23:13:35Z lnostdal joined #lisp 2018-08-28T23:14:46Z pierpal quit (Quit: Poof) 2018-08-28T23:14:57Z pjb: in com.informatimago.common-lisp.lisp-sexp.source-form there's a lambda-list parser, a body extractor (docstring, declarations, body). 2018-08-28T23:15:02Z pierpal joined #lisp 2018-08-28T23:15:21Z jasom: AeroNotix: alexandria has some 2018-08-28T23:15:50Z jasom: AeroNotix: note that properly doing code walking is non-trivial and requires implementation-specific code. 2018-08-28T23:16:11Z AeroNotix: jasom: yeah just finished reading the alexandria macros.lisp code. Doesn't have really what I need 2018-08-28T23:16:21Z AeroNotix: no bother 2018-08-28T23:16:53Z pjb: Actually, the only implementation that I know that requires implementation-specific code is sbcl, since it has some standard macro expanding to a non-standard special operator without a macro expanding to only standard special operators. 2018-08-28T23:16:57Z jasom: AeroNotix: https://common-lisp.net/project/parse-declarations/manual/parse-declarations.html maybe? 2018-08-28T23:17:13Z pjb: This can be easily circumvented, by providing a set of standard CL macros expanding only to standard special operators. 2018-08-28T23:17:27Z pjb: Have a look at cl-stepper. 2018-08-28T23:17:45Z Bike joined #lisp 2018-08-28T23:18:17Z AeroNotix: Okay, looking+reading 2018-08-28T23:21:32Z slyrus1 quit (Quit: slyrus1) 2018-08-28T23:21:47Z slyrus1 joined #lisp 2018-08-28T23:22:28Z rumbler31 joined #lisp 2018-08-28T23:22:45Z warex quit (Ping timeout: 252 seconds) 2018-08-28T23:26:34Z jasom: pjb: don't most implementations do non-standard expansions for quasiquotation? 2018-08-28T23:26:49Z jasom: nevermind, that won't include special forms I think, but rather functions 2018-08-28T23:27:13Z pjb: They can only expand to functions or standard special operators (or macros that expand ultimately to that). 2018-08-28T23:27:45Z pjb: The meaning of the subforms is given by those functions and special operators in this ultimate expansion. 2018-08-28T23:27:49Z jasom: I just remember that being an issue for e.g. pattern matching libraries, but those don't just need to walk the code, they need to know the semantics of the expansions. 2018-08-28T23:27:55Z Xach quit (Ping timeout: 244 seconds) 2018-08-28T23:28:46Z pjb: If you have a subform v, and the expansion is (let (v) (+ v 42)) then you can know that v is a variable. If the expansion is (tagbody (go v) v) then you know that v is a tagbody label. etc. 2018-08-28T23:29:19Z pjb: If the expansion contains an expression (v 42), then you can know that v must be the name of an operator. 2018-08-28T23:33:48Z pierpal quit (Ping timeout: 245 seconds) 2018-08-28T23:34:36Z lumm quit (Quit: lumm) 2018-08-28T23:37:22Z Oladon quit (Quit: Leaving.) 2018-08-28T23:40:52Z azimut quit (Ping timeout: 252 seconds) 2018-08-28T23:41:51Z azimut joined #lisp 2018-08-28T23:42:39Z fikka quit (Ping timeout: 252 seconds) 2018-08-28T23:43:40Z rumbler31 quit (Remote host closed the connection) 2018-08-28T23:45:14Z slyrus2 joined #lisp 2018-08-28T23:46:31Z slyrus quit (Ping timeout: 244 seconds) 2018-08-28T23:46:31Z slyrus1 is now known as slyrus 2018-08-28T23:46:31Z slyrus is now known as 7GHAAAC68 2018-08-28T23:46:31Z slyrus2 is now known as 17WAAAH49 2018-08-28T23:47:45Z dale quit (Quit: dale) 2018-08-28T23:54:39Z kajo quit (Ping timeout: 252 seconds) 2018-08-28T23:54:48Z jinkies joined #lisp 2018-08-28T23:55:54Z kajo joined #lisp 2018-08-28T23:58:53Z Arcaelyx joined #lisp 2018-08-29T00:07:48Z mrcom quit (Ping timeout: 272 seconds) 2018-08-29T00:09:30Z mange joined #lisp 2018-08-29T00:10:48Z mrcom joined #lisp 2018-08-29T00:15:38Z gigetoo joined #lisp 2018-08-29T00:19:20Z MetaYan joined #lisp 2018-08-29T00:19:44Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-29T00:37:34Z caltelt quit (Ping timeout: 272 seconds) 2018-08-29T00:43:40Z Kaisyu joined #lisp 2018-08-29T00:49:42Z shlemas joined #lisp 2018-08-29T00:54:49Z quazimodo joined #lisp 2018-08-29T00:55:31Z elfmacs joined #lisp 2018-08-29T00:57:22Z 7GHAAAC68 is now known as slyrus 2018-08-29T00:59:39Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-29T01:00:27Z mange quit (Ping timeout: 240 seconds) 2018-08-29T01:07:49Z fikka joined #lisp 2018-08-29T01:09:44Z anewuser joined #lisp 2018-08-29T01:10:30Z oni-on-ion joined #lisp 2018-08-29T01:12:51Z fikka quit (Ping timeout: 252 seconds) 2018-08-29T01:14:13Z 17WAAAH49 quit (Ping timeout: 245 seconds) 2018-08-29T01:14:50Z hifitim joined #lisp 2018-08-29T01:15:08Z hifitim quit (Remote host closed the connection) 2018-08-29T01:15:34Z steiner quit (Ping timeout: 272 seconds) 2018-08-29T01:19:20Z iskander quit (*.net *.split) 2018-08-29T01:19:20Z hvxgr quit (*.net *.split) 2018-08-29T01:19:20Z dim quit (*.net *.split) 2018-08-29T01:19:20Z sariyar quit (*.net *.split) 2018-08-29T01:19:21Z kbtr quit (*.net *.split) 2018-08-29T01:19:21Z esthlos quit (*.net *.split) 2018-08-29T01:19:21Z veinofstars quit (*.net *.split) 2018-08-29T01:19:21Z zagura quit (*.net *.split) 2018-08-29T01:19:33Z hvxgr joined #lisp 2018-08-29T01:19:46Z dtornabene joined #lisp 2018-08-29T01:22:40Z dim joined #lisp 2018-08-29T01:22:49Z hifitim joined #lisp 2018-08-29T01:23:58Z hifitim quit (Remote host closed the connection) 2018-08-29T01:26:25Z hifitim joined #lisp 2018-08-29T01:29:13Z nowhere_man quit (Remote host closed the connection) 2018-08-29T01:31:29Z slyrus1 joined #lisp 2018-08-29T01:34:40Z asarch joined #lisp 2018-08-29T01:34:43Z brettgilio joined #lisp 2018-08-29T01:35:36Z pierpal joined #lisp 2018-08-29T01:38:41Z nowhere_man joined #lisp 2018-08-29T01:40:15Z pierpal quit (Ping timeout: 252 seconds) 2018-08-29T01:41:18Z FreeBirdLjj joined #lisp 2018-08-29T01:41:37Z charh quit (Quit: leaving) 2018-08-29T01:42:17Z buffergn0me joined #lisp 2018-08-29T01:44:11Z rumbler31 joined #lisp 2018-08-29T01:45:53Z brettgilio quit (Read error: Connection reset by peer) 2018-08-29T01:46:34Z brettgilio joined #lisp 2018-08-29T01:46:50Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-29T01:48:39Z shlemas quit (Quit: shlemas) 2018-08-29T01:49:08Z Duns_Scrotus quit (*.net *.split) 2018-08-29T01:49:08Z lieven quit (*.net *.split) 2018-08-29T01:49:08Z gko quit (*.net *.split) 2018-08-29T01:49:08Z pchrist_ quit (*.net *.split) 2018-08-29T01:49:08Z GreaseMonkey quit (*.net *.split) 2018-08-29T01:49:08Z dolohov quit (*.net *.split) 2018-08-29T01:49:08Z banjiewen quit (*.net *.split) 2018-08-29T01:49:08Z kilimanjaro quit (*.net *.split) 2018-08-29T01:49:09Z karstensrage quit (*.net *.split) 2018-08-29T01:49:09Z adulteratedjedi quit (*.net *.split) 2018-08-29T01:49:09Z fowlduck quit (*.net *.split) 2018-08-29T01:49:09Z jyc quit (*.net *.split) 2018-08-29T01:49:09Z rumbler31 quit (Ping timeout: 252 seconds) 2018-08-29T01:51:46Z gko joined #lisp 2018-08-29T01:52:06Z dim quit (Ping timeout: 264 seconds) 2018-08-29T01:55:39Z dim joined #lisp 2018-08-29T01:56:00Z brettgilio quit (Excess Flood) 2018-08-29T01:56:36Z brettgilio joined #lisp 2018-08-29T02:00:23Z pierpal joined #lisp 2018-08-29T02:00:37Z brettgilio quit (Excess Flood) 2018-08-29T02:01:16Z brettgilio joined #lisp 2018-08-29T02:04:10Z meepdeew quit (Remote host closed the connection) 2018-08-29T02:05:18Z brettgilio quit (Remote host closed the connection) 2018-08-29T02:05:48Z brettgilio joined #lisp 2018-08-29T02:06:06Z karstensrage joined #lisp 2018-08-29T02:12:57Z rumbler31 joined #lisp 2018-08-29T02:13:02Z Kaisyu7 quit (Quit: ERC (IRC client for Emacs 25.3.2)) 2018-08-29T02:16:18Z gigetoo quit (Ping timeout: 245 seconds) 2018-08-29T02:17:26Z Arcaelyx quit (Read error: Connection reset by peer) 2018-08-29T02:17:42Z rumbler31 quit (Remote host closed the connection) 2018-08-29T02:17:46Z gigetoo joined #lisp 2018-08-29T02:17:57Z Arcaelyx_ joined #lisp 2018-08-29T02:27:08Z Louge joined #lisp 2018-08-29T02:30:03Z gigetoo quit (Ping timeout: 245 seconds) 2018-08-29T02:30:10Z Louge quit (Client Quit) 2018-08-29T02:32:18Z jack_rabbit quit (Ping timeout: 264 seconds) 2018-08-29T02:32:45Z brettgilio quit (Max SendQ exceeded) 2018-08-29T02:33:34Z brettgilio joined #lisp 2018-08-29T02:33:42Z pierpa joined #lisp 2018-08-29T02:33:57Z jack_rabbit joined #lisp 2018-08-29T02:38:49Z shifty joined #lisp 2018-08-29T02:41:24Z fikka joined #lisp 2018-08-29T02:42:49Z White_Flame quit (*.net *.split) 2018-08-29T02:42:49Z bmansurov quit (*.net *.split) 2018-08-29T02:42:50Z les quit (*.net *.split) 2018-08-29T02:42:50Z impulse quit (*.net *.split) 2018-08-29T02:42:51Z terrorjack quit (*.net *.split) 2018-08-29T02:42:51Z nikki93 quit (*.net *.split) 2018-08-29T02:42:51Z Woodi quit (*.net *.split) 2018-08-29T02:42:51Z drdo quit (*.net *.split) 2018-08-29T02:42:51Z tomaw quit (*.net *.split) 2018-08-29T02:42:51Z tazjin quit (*.net *.split) 2018-08-29T02:42:51Z gendl quit (*.net *.split) 2018-08-29T02:42:51Z starman_jr quit (*.net *.split) 2018-08-29T02:42:51Z otwieracz quit (*.net *.split) 2018-08-29T02:42:51Z gabot quit (*.net *.split) 2018-08-29T02:42:51Z tripty quit (*.net *.split) 2018-08-29T02:42:51Z Wojciech_K quit (*.net *.split) 2018-08-29T02:42:52Z angular_mike_2 quit (*.net *.split) 2018-08-29T02:42:52Z beaky quit (*.net *.split) 2018-08-29T02:42:52Z jdz quit (*.net *.split) 2018-08-29T02:42:52Z alphor quit (*.net *.split) 2018-08-29T02:42:52Z askatasuna quit (*.net *.split) 2018-08-29T02:42:52Z mood quit (*.net *.split) 2018-08-29T02:42:55Z tomaw joined #lisp 2018-08-29T02:44:57Z borodust quit (Ping timeout: 240 seconds) 2018-08-29T02:46:21Z fikka quit (Ping timeout: 252 seconds) 2018-08-29T02:46:26Z SenasOzys quit (Remote host closed the connection) 2018-08-29T02:51:16Z gabot joined #lisp 2018-08-29T02:51:56Z hifitim quit (Remote host closed the connection) 2018-08-29T02:53:37Z drdo joined #lisp 2018-08-29T02:54:39Z les joined #lisp 2018-08-29T02:55:38Z brettgilio quit (Ping timeout: 250 seconds) 2018-08-29T02:57:35Z White_Flame joined #lisp 2018-08-29T02:58:18Z bmansurov joined #lisp 2018-08-29T02:59:02Z tripty joined #lisp 2018-08-29T03:00:27Z Arcaelyx_ quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-29T03:05:03Z vaporatorius quit (Ping timeout: 252 seconds) 2018-08-29T03:08:18Z graphene quit (Remote host closed the connection) 2018-08-29T03:10:18Z graphene joined #lisp 2018-08-29T03:10:29Z pierpa quit (Quit: Page closed) 2018-08-29T03:13:41Z dddddd quit (Remote host closed the connection) 2018-08-29T03:18:03Z _whitelogger quit (Remote host closed the connection) 2018-08-29T03:18:18Z rumbler31 joined #lisp 2018-08-29T03:20:16Z _whitelogger joined #lisp 2018-08-29T03:24:04Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-29T03:28:31Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-29T03:33:27Z pierpal quit (Quit: Poof) 2018-08-29T03:33:48Z pierpal joined #lisp 2018-08-29T03:40:13Z Demosthenex: was there a simple format directive to do a newline when hitting edge of screen (ie: wrap), or do i need to calculate that? 2018-08-29T03:40:34Z fikka joined #lisp 2018-08-29T03:41:15Z igemnace joined #lisp 2018-08-29T03:42:41Z Bike: i think you do pprint stuff for that 2018-08-29T03:42:43Z Bike: clhs ~< 2018-08-29T03:42:43Z specbot: Matches: ~irc just silently dies if you need to re-enter your password. 2018-08-29T11:27:47Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-29T11:32:08Z mjanssen joined #lisp 2018-08-29T11:33:01Z lumm joined #lisp 2018-08-29T11:36:56Z MetaYan joined #lisp 2018-08-29T11:38:56Z m00natic joined #lisp 2018-08-29T11:38:58Z beach: Welcome back. Why are you using bad software? 2018-08-29T11:40:03Z fikka quit (Ping timeout: 245 seconds) 2018-08-29T11:44:16Z no-defun-allowed: I've had less than stellar experiences using IRC on my phone. 2018-08-29T11:44:42Z no-defun-allowed: Honestly the best solution was erc in Emacs but it's kinda slow and tedious to start Emacs. 2018-08-29T11:45:47Z no-defun-allowed: I wrote my copying GC too. I'm still sussing out the design but it happily collects conses and numbers. 2018-08-29T11:48:27Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-29T11:49:52Z mingus quit (Ping timeout: 246 seconds) 2018-08-29T11:51:17Z beach: On this 5 year old computer, Emacs starts (and stops) in less than a second. 2018-08-29T11:51:53Z jackdaniel: emacs is a painful experience on desktop; I can imagine how much worse it would be on a phone 2018-08-29T11:51:57Z light2yellow quit (Ping timeout: 252 seconds) 2018-08-29T11:52:24Z no-defun-allowed: (beach: obviously it's cause they wrote their complicated decentralised protocol using Python servers.) 2018-08-29T11:52:37Z beach: That is dwarfed by the time it takes to read a single off-topic utterance here. 2018-08-29T11:52:48Z no-defun-allowed: On this phone, it takes a few seconds, but I can imagine Termux fucked something up. 2018-08-29T11:53:14Z no-defun-allowed: I can't quite M-x slime either, there's only picolisp on Termux. 2018-08-29T11:53:35Z no-defun-allowed: So, um, garbage collection. It works, and I use a linked list of pointers to pointers that must be updated when stuff is compacted. 2018-08-29T11:56:15Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-29T11:56:33Z no-defun-allowed: An integer offset is used with pointer arithmetic to get cells relative to the heap. I don't like it as Cee wouldn't let you keep an "integer" which can't be mixed with an actual integer like Go does. 2018-08-29T11:56:52Z razzy: my emacs eat up too much imho. i bet it is by using non optimal packages 2018-08-29T11:58:12Z no-defun-allowed: I use rainbow parens, SLIME and company mode sometimes. (Never got company working with SLIME. It just falls back to "stupid symbol spotting mode" every time.) 2018-08-29T11:58:29Z jackdaniel: --->#emacs 2018-08-29T11:58:49Z no-defun-allowed: Okay, back to garbage collectors. 2018-08-29T11:59:17Z no-defun-allowed: (inb4 -->#cee) 2018-08-29T11:59:28Z mjanssen quit (Ping timeout: 250 seconds) 2018-08-29T11:59:57Z razzy: what is to upgrade on garbage collecting? 2018-08-29T12:00:01Z ebrasca quit (Read error: Connection reset by peer) 2018-08-29T12:00:10Z no-defun-allowed: Copying GC seems way easier to understand than mark and sweep. 2018-08-29T12:00:34Z no-defun-allowed: I don't think there's anything I can improve on, but it was an interesting project to write one. 2018-08-29T12:00:51Z beach: Except that you have to update every reference to an object that you moved. 2018-08-29T12:01:24Z no-defun-allowed: That's true, but the benefits are quite impressive for copying. 2018-08-29T12:01:48Z drmeister: no-defun-allowed: Try irccloud for your phone - I find it works pretty well. 2018-08-29T12:01:58Z zfree joined #lisp 2018-08-29T12:01:59Z fikka joined #lisp 2018-08-29T12:02:07Z drmeister: It gives me persistent IRC connections. 2018-08-29T12:02:18Z no-defun-allowed: My list of pointers mutates offsets with their copied places. 2018-08-29T12:03:23Z no-defun-allowed: I didn't know we were playing IRC kicking roulette. 2018-08-29T12:08:03Z razzy: no-defun-allowed: i think that obvious garbage collecting has beed done. and we can argue on heuristic how to choose most beneficial garbage collecting that differentiate because of hardware and software used. those heuristic could be interesting, but shoud be accesable for programmer 2018-08-29T12:08:46Z razzy: as libraries or something 2018-08-29T12:10:12Z light2yellow joined #lisp 2018-08-29T12:11:29Z Bronsa joined #lisp 2018-08-29T12:13:57Z shifty quit (Ping timeout: 252 seconds) 2018-08-29T12:15:01Z shifty joined #lisp 2018-08-29T12:15:32Z MetaYan quit (Read error: Connection reset by peer) 2018-08-29T12:17:42Z atgreen__ quit (Ping timeout: 252 seconds) 2018-08-29T12:20:18Z Copenhagen_Bram quit (Ping timeout: 264 seconds) 2018-08-29T12:20:22Z no-defun-allowed: Hi LdBeth 2018-08-29T12:22:37Z Copenhagen_Bram joined #lisp 2018-08-29T12:23:32Z hvxgr quit (Quit: leaving) 2018-08-29T12:23:53Z elfmacs joined #lisp 2018-08-29T12:29:34Z mood joined #lisp 2018-08-29T12:30:54Z MetaYan joined #lisp 2018-08-29T12:33:52Z hvxgr joined #lisp 2018-08-29T12:35:44Z Kevslinger joined #lisp 2018-08-29T12:36:10Z mood quit (Quit: Gone.) 2018-08-29T12:36:37Z mood joined #lisp 2018-08-29T12:37:35Z mood quit (Client Quit) 2018-08-29T12:38:37Z mood joined #lisp 2018-08-29T12:39:21Z mood quit (Client Quit) 2018-08-29T12:39:31Z mood_ joined #lisp 2018-08-29T12:39:43Z mood_ is now known as mood 2018-08-29T12:42:51Z developernotes joined #lisp 2018-08-29T12:42:52Z mep616 joined #lisp 2018-08-29T12:43:04Z mange quit (Ping timeout: 240 seconds) 2018-08-29T12:44:55Z developernotes quit (Client Quit) 2018-08-29T12:45:22Z serichsen joined #lisp 2018-08-29T12:45:36Z developernotes joined #lisp 2018-08-29T12:46:01Z serichsen: Hello 2018-08-29T12:47:30Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-29T12:49:13Z rumbler31 joined #lisp 2018-08-29T12:51:00Z MetaYan: Hey 2018-08-29T12:55:06Z lonjil quit (Ping timeout: 252 seconds) 2018-08-29T12:56:14Z mep616 quit (Remote host closed the connection) 2018-08-29T12:59:33Z Bike joined #lisp 2018-08-29T13:05:30Z dale_ joined #lisp 2018-08-29T13:05:49Z dale_ is now known as dale 2018-08-29T13:07:34Z random-nick quit (Ping timeout: 240 seconds) 2018-08-29T13:07:38Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-29T13:10:16Z quazimodo joined #lisp 2018-08-29T13:11:50Z fikka quit (Ping timeout: 250 seconds) 2018-08-29T13:14:14Z Ukari quit (Remote host closed the connection) 2018-08-29T13:20:15Z fikka joined #lisp 2018-08-29T13:22:47Z lonjil joined #lisp 2018-08-29T13:26:27Z mindCrime joined #lisp 2018-08-29T13:27:10Z steiner joined #lisp 2018-08-29T13:30:50Z random-nick joined #lisp 2018-08-29T13:31:45Z milanj quit (Quit: This computer has gone to sleep) 2018-08-29T13:33:07Z fikka quit (Ping timeout: 246 seconds) 2018-08-29T13:35:27Z random-nick quit (Ping timeout: 240 seconds) 2018-08-29T13:41:47Z developernotes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-29T13:47:27Z makomo quit (Ping timeout: 240 seconds) 2018-08-29T13:48:06Z random-nick joined #lisp 2018-08-29T13:48:28Z developernotes joined #lisp 2018-08-29T13:49:12Z rumbler31 quit (Remote host closed the connection) 2018-08-29T13:50:37Z gitfaf joined #lisp 2018-08-29T13:50:57Z random-nick quit (Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number) 2018-08-29T13:51:05Z developernotes quit (Client Quit) 2018-08-29T13:51:21Z random-nick joined #lisp 2018-08-29T13:51:53Z developernotes joined #lisp 2018-08-29T13:56:29Z Inline joined #lisp 2018-08-29T13:59:30Z matijja joined #lisp 2018-08-29T13:59:38Z zfree quit (Quit: zfree) 2018-08-29T14:00:00Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-29T14:04:04Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-29T14:04:13Z sjl_ joined #lisp 2018-08-29T14:04:28Z SaganMan joined #lisp 2018-08-29T14:04:57Z kushal quit (Remote host closed the connection) 2018-08-29T14:05:43Z kushal joined #lisp 2018-08-29T14:11:11Z [6502] joined #lisp 2018-08-29T14:15:53Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-29T14:16:35Z razzy quit (Ping timeout: 244 seconds) 2018-08-29T14:18:02Z [6502] quit (Quit: Page closed) 2018-08-29T14:21:32Z nowolfer joined #lisp 2018-08-29T14:22:29Z shka_ joined #lisp 2018-08-29T14:24:50Z emaczen: In what ways can a socket be closed without me explicitly calling #'close? 2018-08-29T14:25:48Z Bike: do you mean a stream? sockets are going to be a library interface thing 2018-08-29T14:26:27Z pierpal quit (Quit: Poof) 2018-08-29T14:26:47Z pierpal joined #lisp 2018-08-29T14:27:21Z emaczen: Bike: I'm pinging 192.168.1.* to search for services, and when I make a successful connection I store the address and the "BASIC-TCP-STREAM SOCKET" 2018-08-29T14:27:45Z emaczen: Once it is finished some of the BASIC-TCP-STREAM SOCKETS will be closed and others will not. 2018-08-29T14:28:32Z gitfaf_ joined #lisp 2018-08-29T14:29:38Z aindilis quit (Read error: Connection reset by peer) 2018-08-29T14:29:47Z FreeBirdLjj joined #lisp 2018-08-29T14:29:50Z emaczen: Here is what lisp prints and what I mean by socket: # 2018-08-29T14:30:34Z gitfaf quit (Ping timeout: 240 seconds) 2018-08-29T14:30:42Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-29T14:31:34Z jdz quit (Ping timeout: 250 seconds) 2018-08-29T14:32:58Z FreeBird_ joined #lisp 2018-08-29T14:33:47Z dlowe: emaczen: Unix sockets can be half-closed 2018-08-29T14:34:04Z MetaYan quit (Ping timeout: 240 seconds) 2018-08-29T14:34:12Z dlowe: but presumably the tcp-stream will close a socket fully when the stream is closed 2018-08-29T14:35:04Z FreeBirdLjj quit (Ping timeout: 240 seconds) 2018-08-29T14:35:31Z jkordani joined #lisp 2018-08-29T14:36:13Z X-Scale quit (Ping timeout: 244 seconds) 2018-08-29T14:36:49Z orivej quit (Ping timeout: 246 seconds) 2018-08-29T14:39:05Z jdz joined #lisp 2018-08-29T14:41:45Z LiamH joined #lisp 2018-08-29T14:45:48Z ebrasca joined #lisp 2018-08-29T14:47:08Z emaczen: I'll just make a paste... 2018-08-29T14:47:17Z emaczen: It makes no sense to me how these sockets are closing themselves.... 2018-08-29T14:47:27Z matijja quit (Ping timeout: 240 seconds) 2018-08-29T14:47:57Z emaczen: https://pastebin.com/cWmsrqXF -- here it is 2018-08-29T14:59:00Z jdz: emaczen: I suspect the services running on port 8081 are closing the connections. 2018-08-29T15:01:15Z jdz: Linux also has some parameters to control TCP connection keepalive (http://www.tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html). 2018-08-29T15:01:28Z emaczen: jdz: What doesn't make sense to me is that all services are in the same state as far as I can tell but they don't all end in the same state? 2018-08-29T15:04:12Z nika joined #lisp 2018-08-29T15:05:00Z aindilis joined #lisp 2018-08-29T15:05:55Z gitfaf_ quit (Remote host closed the connection) 2018-08-29T15:07:29Z pierpal quit (Quit: Poof) 2018-08-29T15:07:48Z pierpal joined #lisp 2018-08-29T15:10:17Z mindCrime joined #lisp 2018-08-29T15:10:37Z antoszka: emaczen: what's CO:SMAP? 2018-08-29T15:12:04Z antoszka: and CO:VALUE? 2018-08-29T15:12:12Z emaczen: just map but it is a defmethod so I can't have different datastructures be mappable and for this instance spawn a bunch of threads 2018-08-29T15:12:21Z cage_ joined #lisp 2018-08-29T15:12:40Z antoszka: was just curious whether it's some known library 2018-08-29T15:12:44Z antoszka: or your own code 2018-08-29T15:13:33Z emaczen: just my own 2018-08-29T15:13:43Z dolohov joined #lisp 2018-08-29T15:14:58Z astalla quit (Ping timeout: 246 seconds) 2018-08-29T15:15:28Z antoszka: ack 2018-08-29T15:16:22Z arduo quit (Ping timeout: 268 seconds) 2018-08-29T15:17:17Z gitfaf joined #lisp 2018-08-29T15:17:20Z gitfaf quit (Client Quit) 2018-08-29T15:21:52Z asarch joined #lisp 2018-08-29T15:27:24Z meepdeew joined #lisp 2018-08-29T15:34:52Z jkordani: emaczen: what does wireshark tell you? who throws the reset? 2018-08-29T15:36:09Z Khisanth quit (Ping timeout: 244 seconds) 2018-08-29T15:37:03Z Xof: slyrus: so, I powered up the most likely machine to have a mcclim/svg backend 2018-08-29T15:37:24Z Xof: I couldn't find one. I wonder whether it was a figment of my imagination. I *did* find a half-baked Canvas backend 2018-08-29T15:37:46Z Xof: (didn't get as far as accepting user input, I think) 2018-08-29T15:39:49Z P1RATEZ joined #lisp 2018-08-29T15:40:07Z Xof: sorry! (Also, the firmware for the network card on that machine appears not to be y2k18 compliant 2018-08-29T15:40:32Z X-Scale joined #lisp 2018-08-29T15:41:27Z graphene quit (Remote host closed the connection) 2018-08-29T15:41:45Z v0|d: Xof: wow, what are the symptoms of having such a card? 2018-08-29T15:42:09Z joe42 joined #lisp 2018-08-29T15:42:58Z Xof: a message to the console once a second 2018-08-29T15:43:15Z graphene joined #lisp 2018-08-29T15:43:16Z Xof: probably other things too. (I don't actually know what the problem is really) 2018-08-29T15:43:57Z joe42: Hello. Is there a 'preferred' way to use fastcgi & common lisp? Or basically 'which ever tool suits you'? 2018-08-29T15:48:57Z Khisanth joined #lisp 2018-08-29T15:50:56Z eddof13 joined #lisp 2018-08-29T15:51:08Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-29T15:53:15Z nowhere_man joined #lisp 2018-08-29T15:53:23Z serichsen: My preferred way would be not to use fastcgi. 2018-08-29T15:56:37Z trittweiler quit (Read error: Connection reset by peer) 2018-08-29T16:01:57Z trittweiler joined #lisp 2018-08-29T16:08:22Z milanj joined #lisp 2018-08-29T16:09:34Z shifty quit (Ping timeout: 240 seconds) 2018-08-29T16:09:42Z Xach: joe42: i'm not sure there are a lot of options regarding fastcgi. i do not think it is often used for lisp web apps. it is more typical to use a reverse proxy to a lisp web server. 2018-08-29T16:11:52Z joe42: Xach: what are ways to daemon-ize lisp? 2018-08-29T16:12:02Z p_l: joe42: don't 2018-08-29T16:12:07Z p_l: run it under a supervisor 2018-08-29T16:12:16Z p_l: do not "daemonize" 2018-08-29T16:12:50Z p_l: cheapest option if you really don't have anything else - /etc/inittab (better use runit there, though) 2018-08-29T16:13:00Z p_l: These days probably a systemd unit :/ 2018-08-29T16:13:42Z Xach: joe42: yes, there are 2018-08-29T16:13:44Z pierpal quit (Quit: Poof) 2018-08-29T16:14:03Z Xach: oh, i thought you wrote "are there ways", sorry 2018-08-29T16:14:03Z joe42: systemd not an option for me. I run openbsd, which is why I wanted fastcgi. 2018-08-29T16:14:15Z Xach: joe42: I use screen for that. it is not perfect but it is familiar. 2018-08-29T16:14:16Z pierpal joined #lisp 2018-08-29T16:14:27Z milanj quit (Read error: No route to host) 2018-08-29T16:14:48Z milanj joined #lisp 2018-08-29T16:15:03Z p_l: joe42: runit should work on OpenBSD, it's quite damn portable (except for writing to process name, but that's not critical feature) 2018-08-29T16:15:18Z phoe: I use tmux 2018-08-29T16:15:28Z phoe: I run a Lisp process in it and then, if required, I have access to its REPL 2018-08-29T16:16:43Z joe42: tmux is possible. What are some examples of supervisors, though? 2018-08-29T16:23:20Z AeroNotix: Are you joking? tmux/screen? 2018-08-29T16:23:33Z AeroNotix: Sorry for sounding brash but those are terrible options 2018-08-29T16:24:24Z AeroNotix: joe42: I'd recommend systemd, it solves 99% of issues but since you're on BSD and I'm not familiar at all with BSD. I don't know what to suggest. 2018-08-29T16:25:06Z AeroNotix: Seems it uses the typical https://www.freebsd.org/doc/en_US.ISO8859-1/articles/rc-scripting/index.html style though 2018-08-29T16:25:32Z swflint quit (Ping timeout: 252 seconds) 2018-08-29T16:25:49Z AeroNotix: also +1 for runit. 2018-08-29T16:25:53Z joe42: AeroNotix: yes. OpenBSD uses /etc/rc.d & rcctl 2018-08-29T16:27:11Z AeroNotix: not entirely sure what to suggest since, like I said, not familiar at all with bsd but if runit is available then that route is probably best. 2018-08-29T16:27:27Z doubledup joined #lisp 2018-08-29T16:27:32Z razzy joined #lisp 2018-08-29T16:27:40Z joe42: ok 2018-08-29T16:27:54Z doubledup quit (Max SendQ exceeded) 2018-08-29T16:28:10Z AeroNotix: joe42: but if you're running a web server in CL then perhaps nginx + proxy_pass and use the typical start up scripts you've probably already got for nginx 2018-08-29T16:28:17Z doubledup joined #lisp 2018-08-29T16:29:00Z AeroNotix: and just configure nginx to proxy to the CL application, and write a runit script to start the CL application before nginx. 2018-08-29T16:29:03Z doubledup quit (Max SendQ exceeded) 2018-08-29T16:29:09Z AeroNotix: really though, systemd would be quite helpful here haha :) 2018-08-29T16:29:25Z doubledup joined #lisp 2018-08-29T16:30:12Z joe42: yeah, that part seemed pretty strait forward, and I will be testing a web server written using ningle. Thanks 2018-08-29T16:31:04Z swflint joined #lisp 2018-08-29T16:32:04Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-29T16:32:56Z figurehe4d joined #lisp 2018-08-29T16:34:47Z pierpal quit (Ping timeout: 240 seconds) 2018-08-29T16:35:11Z AeroNotix: phoe: regarding the REPL. You can embed a slime listener into your application rather than needing to have access to the terminal it ran in. That's how I've always deployed CL applications. A slime repl on a non-exposed port. 2018-08-29T16:35:43Z pierpal joined #lisp 2018-08-29T16:36:18Z pierpal quit (Client Quit) 2018-08-29T16:36:20Z emaczen: jkordani: I'm downloading wireshark now. 2018-08-29T16:36:33Z pierpal joined #lisp 2018-08-29T16:37:32Z trittweiler: emaczen, you can just use tcpdump instead of wireshark. :) 2018-08-29T16:37:58Z phoe: AeroNotix: yep, I know; the built-in REPL is for simple cases. 2018-08-29T16:38:00Z emaczen: trittweiler: Anything inside emacs? 2018-08-29T16:38:02Z trittweiler: AeroNotix, it should be possible (perhaps it is even done by default), that the swank socket listens on localhost only 2018-08-29T16:38:15Z phoe: trittweiler: right, it is 2018-08-29T16:38:21Z AeroNotix: trittweiler: same difference 2018-08-29T16:38:32Z AeroNotix: I just meant "not exposed to the world" really 2018-08-29T16:39:18Z jkordani_ joined #lisp 2018-08-29T16:39:43Z trittweiler: yeah, but it means you need a firewall rule and so it's one more component that could fail, murphy's law etc. 2018-08-29T16:39:58Z AeroNotix: > I just meant "not exposed to the world" really 2018-08-29T16:40:06Z scymtym quit (Ping timeout: 260 seconds) 2018-08-29T16:40:21Z AeroNotix: take out the words "non-exposed port" and replace with "non-exposed listener" then 2018-08-29T16:40:40Z orivej joined #lisp 2018-08-29T16:40:53Z AeroNotix: The way I used to have to deploy it was listening on all interfaces and use AWS firewall rules to give me access via a bounce box 2018-08-29T16:41:36Z AeroNotix: previous work didn't allow access directly to all machines, only certain ones. We'd have to get to the SLIME port via another machine 2018-08-29T16:41:57Z AeroNotix: either way, the point was SLIME > tmux/screen repl 2018-08-29T16:43:10Z jkordani quit (Ping timeout: 246 seconds) 2018-08-29T16:48:32Z buffergn0me joined #lisp 2018-08-29T16:51:36Z joe42 left #lisp 2018-08-29T16:57:03Z rumbler31 joined #lisp 2018-08-29T16:57:24Z jkordani joined #lisp 2018-08-29T17:00:47Z jkordani_ quit (Ping timeout: 240 seconds) 2018-08-29T17:03:57Z scymtym joined #lisp 2018-08-29T17:06:16Z buffergn0me quit (Ping timeout: 250 seconds) 2018-08-29T17:07:18Z rumbler31 quit (Remote host closed the connection) 2018-08-29T17:10:34Z m00natic quit (Remote host closed the connection) 2018-08-29T17:11:37Z zooey quit (Remote host closed the connection) 2018-08-29T17:13:58Z zooey joined #lisp 2018-08-29T17:15:53Z kushal quit (Remote host closed the connection) 2018-08-29T17:15:57Z kdas_ joined #lisp 2018-08-29T17:16:43Z graphene quit (Remote host closed the connection) 2018-08-29T17:18:16Z graphene joined #lisp 2018-08-29T17:19:11Z dented42 joined #lisp 2018-08-29T17:22:02Z FreeBird_ quit (Remote host closed the connection) 2018-08-29T17:25:13Z FreeBirdLjj joined #lisp 2018-08-29T17:30:16Z fikka joined #lisp 2018-08-29T17:31:27Z graphene quit (Remote host closed the connection) 2018-08-29T17:33:08Z graphene joined #lisp 2018-08-29T17:34:46Z milanj quit (Quit: This computer has gone to sleep) 2018-08-29T17:35:03Z mrcom joined #lisp 2018-08-29T17:41:06Z Bronsa quit (Ping timeout: 252 seconds) 2018-08-29T17:46:34Z Denommus joined #lisp 2018-08-29T17:47:38Z meepdeew quit (Remote host closed the connection) 2018-08-29T17:47:39Z rjid joined #lisp 2018-08-29T17:48:03Z graphene quit (Remote host closed the connection) 2018-08-29T17:49:15Z rjid left #lisp 2018-08-29T17:50:03Z graphene joined #lisp 2018-08-29T17:50:17Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-29T17:56:24Z juristi joined #lisp 2018-08-29T17:58:22Z figurehe4d quit (Quit: Leaving) 2018-08-29T18:01:52Z AeroNotix: phoe: did you find that TIMER package that cl-muprocs wanted btw? 2018-08-29T18:02:10Z AeroNotix: was it this: https://www.cliki.net/TIMER ? 2018-08-29T18:02:59Z FreeBirdLjj joined #lisp 2018-08-29T18:08:45Z juristi quit (Quit: WeeChat 1.0.1) 2018-08-29T18:08:54Z Hu0p quit (Quit: Do Macbooks Dream of Electric Sheep?) 2018-08-29T18:10:52Z dented42 quit (Read error: Connection reset by peer) 2018-08-29T18:12:53Z phoe: AeroNotix: no no, that package is linked in the cl-muprocs repo 2018-08-29T18:13:10Z phoe: Read the comment at https://github.com/quicklisp/quicklisp-projects/issues/1273 though 2018-08-29T18:17:18Z graphene quit (Remote host closed the connection) 2018-08-29T18:17:56Z Oladon joined #lisp 2018-08-29T18:18:17Z Hu0p joined #lisp 2018-08-29T18:18:31Z juristi joined #lisp 2018-08-29T18:18:55Z graphene joined #lisp 2018-08-29T18:21:41Z nsrahmad joined #lisp 2018-08-29T18:24:15Z Hu0p quit (Quit: See You Space Cowboy. . .) 2018-08-29T18:26:54Z sauvin quit (Read error: Connection reset by peer) 2018-08-29T18:27:14Z makomo joined #lisp 2018-08-29T18:30:47Z fikka quit (Ping timeout: 240 seconds) 2018-08-29T18:33:27Z fikka joined #lisp 2018-08-29T18:35:36Z dyelar joined #lisp 2018-08-29T18:37:27Z graphene quit (Remote host closed the connection) 2018-08-29T18:38:34Z random-nick quit (Ping timeout: 240 seconds) 2018-08-29T18:39:05Z graphene joined #lisp 2018-08-29T18:44:01Z zfree joined #lisp 2018-08-29T18:44:12Z fikka quit (Ping timeout: 250 seconds) 2018-08-29T18:47:08Z anewuser quit (Ping timeout: 245 seconds) 2018-08-29T18:50:30Z mep616 joined #lisp 2018-08-29T18:52:48Z vlatkoB quit (Remote host closed the connection) 2018-08-29T18:53:25Z graphene quit (Remote host closed the connection) 2018-08-29T18:54:45Z AeroNotix: ah thanks for the link 2018-08-29T18:55:03Z graphene joined #lisp 2018-08-29T18:55:05Z atgreen__ joined #lisp 2018-08-29T18:55:18Z nowhere_man quit (Remote host closed the connection) 2018-08-29T18:55:42Z nowhere_man joined #lisp 2018-08-29T18:57:49Z mep616 t 2018-08-29T18:58:15Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-29T19:00:05Z anunnaki joined #lisp 2018-08-29T19:04:13Z shka_ quit (Ping timeout: 245 seconds) 2018-08-29T19:04:51Z nsrahmad quit (Remote host closed the connection) 2018-08-29T19:07:35Z random-nick joined #lisp 2018-08-29T19:09:21Z pierpal quit (Quit: Poof) 2018-08-29T19:09:41Z pierpal joined #lisp 2018-08-29T19:09:41Z nika quit (Quit: Leaving...) 2018-08-29T19:18:17Z astalla joined #lisp 2018-08-29T19:18:48Z cage_ quit (Quit: Leaving) 2018-08-29T19:21:53Z suskeyhose joined #lisp 2018-08-29T19:22:57Z mep616 quit (Ping timeout: 252 seconds) 2018-08-29T19:27:03Z kdas_ is now known as kushal 2018-08-29T19:28:37Z Oladon quit (Quit: Leaving.) 2018-08-29T19:28:57Z AeroNotix: phoe: timer is _in_ quicklisp? Is the one cl-muprocs dependant on different? 2018-08-29T19:30:22Z AeroNotix: ah wait, I'm picking one up that's part of a different system 2018-08-29T19:30:29Z AeroNotix: gendl-devo-0272a167-git/apps/timer/ 2018-08-29T19:31:59Z figurehe4d joined #lisp 2018-08-29T19:33:00Z sjl_ quit (Quit: WeeChat 2.2-dev) 2018-08-29T19:33:06Z mep616 joined #lisp 2018-08-29T19:35:42Z AeroNotix: What happens if there are two systems in QL that have the same system name? 2018-08-29T19:36:05Z Bike: i think xach tries to avoid that 2018-08-29T19:37:59Z anewuser joined #lisp 2018-08-29T19:38:36Z pierpal quit (Quit: Poof) 2018-08-29T19:38:54Z pierpal joined #lisp 2018-08-29T19:40:59Z mep616 quit (Remote host closed the connection) 2018-08-29T19:41:27Z mep616 joined #lisp 2018-08-29T19:41:27Z graphene quit (Remote host closed the connection) 2018-08-29T19:42:53Z AeroNotix: and Xach mentions here that his library is "not good" and "only works on SBCL": https://github.com/quicklisp/quicklisp-projects/issues/1273#issuecomment-286510639 2018-08-29T19:43:02Z graphene joined #lisp 2018-08-29T19:43:05Z phoe: AeroNotix: it's a differently named system 2018-08-29T19:43:09Z phoe: it's a name collision 2018-08-29T19:43:27Z graphene quit (Read error: Connection reset by peer) 2018-08-29T19:43:38Z Shinmera: You can't have two systems with the same name in QL. 2018-08-29T19:43:43Z Shinmera: It wouldn't know which to load. 2018-08-29T19:44:15Z Shinmera: You can have two systems with the same name in separate dists, in which case it will pick the one from the dist with a higher priority number. 2018-08-29T19:44:31Z Shinmera: (regardless of the version of the system, I might add :/) 2018-08-29T19:44:58Z AeroNotix: phoe: yes I can see that's a differently named system. I've locally renamed it. 2018-08-29T19:45:05Z AeroNotix: cl-muprocs passes 99% of tests. 2018-08-29T19:45:08Z graphene joined #lisp 2018-08-29T19:45:11Z AeroNotix: Shinmera: thanks 2018-08-29T19:45:59Z AeroNotix: Shinmera: since you're so prolific, don't you have a library which implements: https://www.xach.com/lisp/timer/doc.html (and may already be in quicklisp?) 2018-08-29T19:46:21Z brettgilio joined #lisp 2018-08-29T19:47:57Z Shinmera: I have a tiny task processor that could be used for something like this I suppose, but nothing that directly fits what you want. 2018-08-29T19:49:44Z Shinmera: Sorry! 2018-08-29T19:50:05Z AeroNotix: no worries, reason I ask is that yeah, the one that cl-muprocs depends on is SBCL only. 2018-08-29T19:50:25Z AeroNotix: which is weird af because the cl-muprocs library seems to have gone to some lengths to predicate certain forms on different implementations 2018-08-29T19:50:28Z Shinmera: Spawning a thread that calls sleep in a loop and compares time differences isn't a huge effort. 2018-08-29T19:50:36Z AeroNotix: Shinmera: it's more effort than zero :) 2018-08-29T19:50:53Z Shinmera: I probably would have written it in the time we've spent discussing libraries here :) 2018-08-29T19:50:56Z doubledup quit (Quit: Leaving) 2018-08-29T19:51:00Z AeroNotix: rad dude 2018-08-29T19:52:01Z papachan quit (Ping timeout: 268 seconds) 2018-08-29T19:56:18Z f1gurehead joined #lisp 2018-08-29T19:57:01Z aindilis quit (Remote host closed the connection) 2018-08-29T19:58:00Z f1gurehead quit (Remote host closed the connection) 2018-08-29T19:58:49Z aindilis joined #lisp 2018-08-29T20:00:26Z graphene quit (Remote host closed the connection) 2018-08-29T20:02:03Z graphene joined #lisp 2018-08-29T20:09:23Z dented42 joined #lisp 2018-08-29T20:12:03Z dueyfinster joined #lisp 2018-08-29T20:12:09Z figurehe4d quit (Remote host closed the connection) 2018-08-29T20:12:40Z figurehe4d joined #lisp 2018-08-29T20:13:00Z fikka joined #lisp 2018-08-29T20:17:21Z dented42 quit (Read error: Connection reset by peer) 2018-08-29T20:17:33Z fikka quit (Ping timeout: 245 seconds) 2018-08-29T20:23:13Z Roy_Fokker joined #lisp 2018-08-29T20:25:36Z mep616 quit (Ping timeout: 250 seconds) 2018-08-29T20:37:12Z serichsen quit (Ping timeout: 252 seconds) 2018-08-29T20:41:47Z azimut quit (Ping timeout: 240 seconds) 2018-08-29T20:43:31Z azimut joined #lisp 2018-08-29T20:47:22Z azimut quit (Read error: No route to host) 2018-08-29T20:48:26Z azimut joined #lisp 2018-08-29T20:52:43Z azimut quit (Ping timeout: 246 seconds) 2018-08-29T20:55:23Z earl-ducaine: CL macrologists! I'm trying to write a macro that transforms a lambda list into an alternate lambda list and function body wrapper, within the context of a macro. E.g. https://gist.github.com/earl-ducaine/f510eb0091d04e2d0131cffe080f5d28 2018-08-29T20:56:28Z earl-ducaine: I'm having that familiar feeling of having the macro 90% written, then 50%, then wondering whether what I'm attempting is possible at all. :) 2018-08-29T20:56:31Z fikka joined #lisp 2018-08-29T20:56:48Z Bike: do you mean (nth 1 rest), and so on 2018-08-29T20:57:40Z earl-ducaine: Oh whoops, yes. exactly 2018-08-29T20:57:58Z atgreen__ quit (Ping timeout: 246 seconds) 2018-08-29T20:59:41Z azimut joined #lisp 2018-08-29T21:00:34Z serichsen joined #lisp 2018-08-29T21:00:45Z aeth: earl-ducaine: I would use destructuring-bind here 2018-08-29T21:01:16Z figurehe4d quit (Remote host closed the connection) 2018-08-29T21:01:37Z aeth: earl-ducaine: Unless I'm reading your requirements wrong, destructuring-bind does everything you want for free (only downside is that it *might* be slower) 2018-08-29T21:02:23Z figurehe4d joined #lisp 2018-08-29T21:02:37Z aeth: (destructuring-bind (medium pathname options) list ...) 2018-08-29T21:03:45Z aeth: The only difference is that that would require the list to be of length 3 and using nth does not (your approach doesn't care about the tail). You can implement not caring about the tail in destructuring-bind with (medium pathname options &rest rest) (declare (ignore rest)) 2018-08-29T21:04:10Z earl-ducaine: Is there any way of doing that in the context of a macro? The reason for my need is that I'm trying to convert some old flavors code, and I'd like to rewrite the flavor defmethods into CLOS defmethods 2018-08-29T21:05:41Z aeth: I think it would look something like this: `(defun ,my-function (&rest rest) (destructuring-bind ,lambda-list rest (list ,@lambda-list)) 2018-08-29T21:06:13Z aeth: The only problem is that destructuring-bind's lambda list is very similar to a macro's lambda list, so it would permit nested things like (foo (bar baz)) 2018-08-29T21:06:34Z azimut quit (Ping timeout: 240 seconds) 2018-08-29T21:06:43Z phoe: earl-ducaine: https://plaster.tymoon.eu/view/896#896 2018-08-29T21:06:47Z earl-ducaine: aeth: Oh I see what you're trying to do now... Yes, that looks promising.... 2018-08-29T21:07:16Z serichsen quit (Quit: Bye) 2018-08-29T21:07:28Z aeth: and, yes, you'd want to use gensym instead of rest, even though it doesn't really matter because there's no ,@body and even if you had an internal rest in your lambda list, it would use the inner rest from the destructuring-bind, not the outer rest 2018-08-29T21:07:52Z serichsen joined #lisp 2018-08-29T21:08:08Z aeth: If you do have a ,@body you'd have to use gensym instead of rest 2018-08-29T21:08:44Z aeth: (let ((rest (gensym))) `(defun ,my-function (&rest ,rest) (destructuring-bind ,lambda-list ,rest (list ,@lambda-list))) 2018-08-29T21:09:26Z aeth: phoe's version is more complete because it does have a body 2018-08-29T21:09:32Z earl-ducaine: phoe: holy crap! that's exactly what I was looking for. 2018-08-29T21:10:28Z phoe: earl-ducaine: (: 2018-08-29T21:10:31Z aeth: The only thing you might want to do differently from phoe's version is (let ((rest (gensym "REST"))) ...) instead of (let ((gensym (gensym))) ...) 2018-08-29T21:10:41Z phoe: yeah, to get a better gensym name 2018-08-29T21:11:13Z azimut joined #lisp 2018-08-29T21:11:32Z phoe: my example isn't the best as I hacked it together in a minute 2018-08-29T21:11:54Z aeth: earl-ducaine: destructuring-bind is probably *the* most useful thing for macros 2018-08-29T21:11:57Z earl-ducaine: Truly awesome. Thanks again! Looking at it I can't even remember why I thought it was so difficult. :) 2018-08-29T21:13:31Z aeth: The one catch about destructuring-bind is that sometimes it's inconvenient, especially when combined with e.g. mapcar or defun, because you often want the function to have one, temporary argument. 2018-08-29T21:13:45Z phoe: hence the gensym 2018-08-29T21:13:47Z earl-ducaine: aeth: I've read that before.... Now I can see why. 2018-08-29T21:13:48Z aeth: For lambdas (e.g. use in mapcar) I wrote this: (defmacro destructuring-lambda (lambda-list &body body) (let ((expression (gensym))) `(lambda (,expression) (destructuring-bind ,lambda-list ,expression ,@body)))) 2018-08-29T21:14:05Z pierpal quit (Quit: Poof) 2018-08-29T21:14:22Z pierpal joined #lisp 2018-08-29T21:14:34Z aeth: Then I can (mapcar (destructuring-lambda (foo bar baz) `((,baz ,bar) ,foo))) some-part-of-a-macro) 2018-08-29T21:15:04Z aeth: It saves two lines and a temporary variable and is very similar to phoe's solution for defun 2018-08-29T21:15:50Z aeth: If you don't write macros to save yourself two lines (multiplied by dozens of times in a large program), you might as well be coding in Java. :-) 2018-08-29T21:18:31Z aeth: I personally find that most macros have some structure to their s-expressions, and you either want to transform that to another structure (e.g. maybe a series of function calls) or you want to create a data structure of standard-objects/structure-objects/arrays/etc. at compile time. So destructuring-bind is incredibly useful imo. 2018-08-29T21:19:49Z stylewarning: macros should reveal abstractions not save lines 2018-08-29T21:21:08Z aeth: stylewarning: Imo any pattern that repeats itself constantly (like a temporary variable for destructuring-bind in a one-argument lambda) is a place where bugs can easily happen. 2018-08-29T21:21:08Z ebrasca quit (Read error: Connection reset by peer) 2018-08-29T21:21:36Z no-defun-allowed: Good morning everyone! 2018-08-29T21:22:49Z aeth: stylewarning: This imo is no different than something like dolist. 2018-08-29T21:23:14Z earl-ducaine: The paragraph I was remembering was in cltl, related to parse-macro, a suggested function that didn't make it into the standard. https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node102.html 2018-08-29T21:23:39Z earl-ducaine: In particular: However, parse-macro is worth having anyway, since any program-analyzing program is going to need to define it, and the implementation isn't completely trivial even with destructuring-bind to build upon. 2018-08-29T21:25:31Z aeth: earl-ducaine: It looks like the function phoe wrote *is* parse-macro, but without the environment stuff? 2018-08-29T21:26:07Z Guest73516 joined #lisp 2018-08-29T21:26:46Z Duns_Scrotus joined #lisp 2018-08-29T21:27:11Z aeth: I'm surprised there isn't one for lambda, like the one I wrote. Happens all the time in mapcar. 2018-08-29T21:28:34Z anewuser quit (Ping timeout: 240 seconds) 2018-08-29T21:36:42Z Bike: parse-macro is more complicated because it handles &whole differently from destructuring-bind 2018-08-29T21:41:07Z aeth: ah 2018-08-29T21:41:09Z Bike quit (Ping timeout: 252 seconds) 2018-08-29T21:41:22Z jasmith quit (Quit: Leaving) 2018-08-29T21:51:15Z brettgilio quit (Quit: Konversation terminated!) 2018-08-29T21:56:57Z astalla quit (Ping timeout: 252 seconds) 2018-08-29T21:57:58Z whartung joined #lisp 2018-08-29T21:58:47Z light2yellow quit (Quit: privet_so_dna) 2018-08-29T21:58:48Z Duns_Scrotus: why does funcall look in the function namespace but apply looks in the value namespace 2018-08-29T21:59:21Z Duns_Scrotus: no wait 2018-08-29T21:59:33Z dented42 joined #lisp 2018-08-29T21:59:38Z graphene quit (Read error: Connection reset by peer) 2018-08-29T21:59:47Z sjl quit (Quit: WeeChat 2.2-dev) 2018-08-29T22:00:07Z Duns_Scrotus: nvm 2018-08-29T22:01:10Z graphene joined #lisp 2018-08-29T22:03:51Z LiamH quit (Quit: Leaving.) 2018-08-29T22:05:05Z kushal quit (Remote host closed the connection) 2018-08-29T22:05:22Z kushal joined #lisp 2018-08-29T22:07:41Z asarch quit (Quit: Leaving) 2018-08-29T22:09:18Z pierpa joined #lisp 2018-08-29T22:13:13Z kini joined #lisp 2018-08-29T22:17:06Z dueyfinster quit (Quit: My iMac has gone to sleep. ZZZzzz…) 2018-08-29T22:23:15Z kajo quit (Ping timeout: 252 seconds) 2018-08-29T22:24:18Z ebrasca joined #lisp 2018-08-29T22:25:15Z kajo joined #lisp 2018-08-29T22:25:42Z Bike joined #lisp 2018-08-29T22:28:24Z mange joined #lisp 2018-08-29T22:33:52Z mindCrime quit (Ping timeout: 246 seconds) 2018-08-29T22:38:25Z random-nick quit (Ping timeout: 246 seconds) 2018-08-29T22:46:12Z bradcomp joined #lisp 2018-08-29T22:50:07Z jack_rabbit joined #lisp 2018-08-29T22:52:56Z meepdeew joined #lisp 2018-08-29T22:54:24Z kirkwood quit (Remote host closed the connection) 2018-08-29T22:54:40Z Guest73516 quit (Quit: Textual IRC Client: www.textualapp.com) 2018-08-29T23:03:26Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-29T23:03:34Z pierpal quit (Ping timeout: 240 seconds) 2018-08-29T23:04:42Z anewuser joined #lisp 2018-08-29T23:06:36Z brettgilio joined #lisp 2018-08-29T23:08:35Z lumm quit (Quit: lumm) 2018-08-29T23:12:18Z flazh1 quit (Quit: flazh1) 2018-08-29T23:12:58Z sjl joined #lisp 2018-08-29T23:15:37Z flazh joined #lisp 2018-08-29T23:16:13Z kajo quit (Ping timeout: 246 seconds) 2018-08-29T23:18:05Z quazimodo joined #lisp 2018-08-29T23:27:01Z shlemas joined #lisp 2018-08-29T23:28:53Z kdas_ joined #lisp 2018-08-29T23:29:59Z kushal quit (Ping timeout: 250 seconds) 2018-08-29T23:32:40Z dale quit (Quit: dale) 2018-08-29T23:37:23Z figurehe4d quit (Quit: Leaving) 2018-08-29T23:39:48Z fikka quit (Ping timeout: 252 seconds) 2018-08-29T23:39:56Z Xach: Shinmera: staple doesn't build because of a 3bmd symbol error 2018-08-29T23:40:04Z Xach: (for me) 2018-08-29T23:40:08Z Xach: Do you know what might be up? 2018-08-29T23:40:24Z Xach: Shinmera: http://report.quicklisp.org/2018-08-29/failure-report/staple.html#staple-server has my log 2018-08-29T23:46:12Z meepdeew quit (Remote host closed the connection) 2018-08-29T23:46:46Z atgreen__ joined #lisp 2018-08-29T23:50:27Z kajo joined #lisp 2018-08-30T00:01:15Z bradcomp quit (Ping timeout: 252 seconds) 2018-08-30T00:06:45Z danielxvu quit (Remote host closed the connection) 2018-08-30T00:12:08Z suskeyhose quit (Ping timeout: 245 seconds) 2018-08-30T00:31:17Z Kaisyu joined #lisp 2018-08-30T00:35:21Z Pixel_Outlaw joined #lisp 2018-08-30T00:35:30Z suskeyhose joined #lisp 2018-08-30T00:39:58Z SaganMan quit (Ping timeout: 250 seconds) 2018-08-30T00:41:28Z jasmith joined #lisp 2018-08-30T00:53:22Z asarch joined #lisp 2018-08-30T00:56:48Z kajo quit (Ping timeout: 252 seconds) 2018-08-30T00:57:07Z eddof13 quit (Ping timeout: 240 seconds) 2018-08-30T01:08:36Z brettgilio quit (Quit: Konversation terminated!) 2018-08-30T01:19:25Z mindCrime joined #lisp 2018-08-30T01:20:56Z meepdeew joined #lisp 2018-08-30T01:40:08Z elfmacs joined #lisp 2018-08-30T01:42:21Z serichsen quit (Ping timeout: 252 seconds) 2018-08-30T01:42:27Z razzy quit (Ping timeout: 252 seconds) 2018-08-30T01:42:58Z foom2 quit (Remote host closed the connection) 2018-08-30T01:43:41Z foom joined #lisp 2018-08-30T01:48:38Z nullniverse joined #lisp 2018-08-30T01:57:46Z P1RATEZ quit 2018-08-30T01:59:32Z mindCrime_ joined #lisp 2018-08-30T02:02:34Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-30T02:02:55Z megalography joined #lisp 2018-08-30T02:09:50Z nowhere_man quit (Read error: Connection reset by peer) 2018-08-30T02:10:18Z nowhere_man joined #lisp 2018-08-30T02:12:02Z igemnace joined #lisp 2018-08-30T02:12:32Z slyrus1 joined #lisp 2018-08-30T02:13:20Z kdas_ is now known as kushal 2018-08-30T02:15:11Z nowhere_man quit (Remote host closed the connection) 2018-08-30T02:15:30Z pierpal joined #lisp 2018-08-30T02:16:42Z nowhere_man joined #lisp 2018-08-30T02:19:09Z lyf[kde] joined #lisp 2018-08-30T02:20:34Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-30T02:24:56Z megalography left #lisp 2018-08-30T02:25:14Z stylewarning: aeth: reducing repetition for the sake of it leads to very bad code 2018-08-30T02:27:53Z lyf[kde]: [style warning] 2018-08-30T02:28:22Z stylewarning: ;) 2018-08-30T02:30:24Z buffergn0me joined #lisp 2018-08-30T02:33:30Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-30T02:35:53Z mindCrime_ quit (Ping timeout: 245 seconds) 2018-08-30T02:37:29Z atgreen__ quit (Remote host closed the connection) 2018-08-30T02:37:49Z atgreen__ joined #lisp 2018-08-30T02:38:47Z shlemas quit (Quit: shlemas) 2018-08-30T02:40:44Z lyf[kde]: What are some ways to implement call/cc in a imperative language? 2018-08-30T02:41:21Z lyf[kde]: Using CSP, I can wrap the continuations, to implement event loops and to optimize tail calls, but CSP is handly only when it comes to tail calls. 2018-08-30T02:41:34Z lyf[kde]: s/CSP/Continuation Passing Style/ 2018-08-30T02:42:42Z housel: Have you seen http://agl.cs.unm.edu/~williams/cs491/three-imp.pdf ? 2018-08-30T02:44:11Z shifty joined #lisp 2018-08-30T02:44:13Z Pixel_Outlaw quit (Quit: Leaving) 2018-08-30T02:50:50Z atgreen__ quit (Ping timeout: 250 seconds) 2018-08-30T02:57:08Z meepdeew quit (Remote host closed the connection) 2018-08-30T03:00:22Z pierpa quit (Quit: Page closed) 2018-08-30T03:02:32Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-30T03:05:26Z brettgilio joined #lisp 2018-08-30T03:06:47Z caltelt joined #lisp 2018-08-30T03:15:27Z SaganMan joined #lisp 2018-08-30T03:17:59Z jack_rabbit joined #lisp 2018-08-30T03:20:20Z figurehe4d joined #lisp 2018-08-30T03:20:47Z jasmith quit (Quit: Leaving) 2018-08-30T03:22:05Z lyf[kde]: housel: no... any tl;dr? 2018-08-30T03:22:24Z pierpal quit (Quit: Poof) 2018-08-30T03:22:42Z pierpal joined #lisp 2018-08-30T03:25:06Z housel: sorry, no, it's been years since I read it 2018-08-30T03:26:42Z lyf[kde]: Here is one creative implementation: https://github.com/mystor/breaktarget/blob/master/src/lib.rs This library (in Rust) uses panic unwinding to its advantage. 2018-08-30T03:26:57Z anewuser quit (Ping timeout: 252 seconds) 2018-08-30T03:27:11Z Bike: can you rewind the stack? 2018-08-30T03:27:34Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-30T03:27:57Z no-defun-allowed: that looks hackish as all fuck 2018-08-30T03:29:00Z lyf[kde]: yeah... when programs panic they crash 2018-08-30T03:29:38Z lyf[kde]: compiling with optimization could break it 2018-08-30T03:32:17Z no-defun-allowed: panic! is pretty much "all shit went south" so it seems like a bad idea to reuse that for normal program flow 2018-08-30T03:32:26Z razzy joined #lisp 2018-08-30T03:32:49Z Bike: "Implementation Strategies for First-Class Continuations" is also informative 2018-08-30T03:32:58Z Bike: it basically amounts to what you can do with the stack 2018-08-30T03:33:28Z makomo quit (Ping timeout: 246 seconds) 2018-08-30T03:37:31Z lyf[kde]: I can use a stack (collection) explicitly 2018-08-30T03:37:48Z Bike: huh? 2018-08-30T03:38:10Z Bike: like, the call stack. languages don't usually let you fuck with it arbitrarily. 2018-08-30T03:38:49Z brettgilio quit (Read error: Connection reset by peer) 2018-08-30T03:39:28Z lyf[kde]: Stack as in BFS, DFS... In DFS you have a todo queue. In BFS you have a todo stack. You can also implement DFS as a recursive function without the todo collection. 2018-08-30T03:39:56Z ealfonso joined #lisp 2018-08-30T03:40:27Z Bike: you can use an explicit stack in a limited context to do something like continuations, s ure 2018-08-30T03:41:33Z ealfonso: is there a built-in "which" in CL/sbcl to find the absolute path to an executable given its name? I tried looking at SB-EXT:RUN-PROGRAM's implementation which accepts a :search flag: https://github.com/sbcl/sbcl/blob/e98378ca004ef6d101b384f6c3130f24b7a1bc1f/src/code/run-program.lisp but can't figure it out 2018-08-30T03:42:05Z Bike: there is not. 2018-08-30T03:47:10Z buffergn0me quit (Ping timeout: 250 seconds) 2018-08-30T03:49:19Z graphene quit (Read error: Connection reset by peer) 2018-08-30T03:50:55Z graphene joined #lisp 2018-08-30T03:56:46Z mange: lyf[kde]: If you're trying to implement call/cc in another language you could try something like http://www.schemeworkshop.org/2007/procPaper4.pdf, but it's pretty hard to do manually. 2018-08-30T03:59:56Z dddddd quit (Read error: Connection reset by peer) 2018-08-30T04:09:30Z warex joined #lisp 2018-08-30T04:14:39Z lrx33 joined #lisp 2018-08-30T04:18:37Z nullniverse quit (Ping timeout: 246 seconds) 2018-08-30T04:22:00Z eschulte_ quit (Ping timeout: 252 seconds) 2018-08-30T04:23:56Z Bike quit (Quit: Lost terminal) 2018-08-30T04:24:00Z ealfonso quit (Ping timeout: 250 seconds) 2018-08-30T04:26:06Z shifty quit (Remote host closed the connection) 2018-08-30T04:27:33Z igemnace quit (Remote host closed the connection) 2018-08-30T04:32:20Z lyf[kde] quit (Quit: Konversation terminated!) 2018-08-30T04:32:27Z razzy quit (Ping timeout: 240 seconds) 2018-08-30T04:35:43Z shka_ joined #lisp 2018-08-30T04:39:03Z _whitelogger quit (Remote host closed the connection) 2018-08-30T04:41:17Z _whitelogger joined #lisp 2018-08-30T04:52:16Z ealfonso joined #lisp 2018-08-30T05:10:12Z beach: Good morning everyone! 2018-08-30T05:10:48Z mathrick quit (Ping timeout: 250 seconds) 2018-08-30T05:11:46Z Inline quit (Quit: Leaving) 2018-08-30T05:23:34Z mathrick joined #lisp 2018-08-30T05:28:01Z sauvin joined #lisp 2018-08-30T05:30:06Z no-defun-allowed: Hi beach 2018-08-30T05:35:43Z brettgilio joined #lisp 2018-08-30T05:36:27Z graphene quit (Remote host closed the connection) 2018-08-30T05:37:54Z iskander joined #lisp 2018-08-30T05:38:04Z graphene joined #lisp 2018-08-30T05:47:04Z ebrasca: Hi beach 2018-08-30T05:48:26Z bigfondue quit (Ping timeout: 255 seconds) 2018-08-30T05:48:34Z brettgilio quit (Quit: Konversation terminated!) 2018-08-30T05:51:41Z graphene quit (Remote host closed the connection) 2018-08-30T05:55:31Z aeth: stylewarning: It depends. If it's something like shortening names to make them easier to type, that usually makes things worse, just get some form of autocomplete. But if it's removing a variable, that often makes the code clearer imo. 2018-08-30T05:56:46Z Shinmera: Xach: Yes, I'll fix once I'm out of bed 2018-08-30T06:00:01Z ealfonso quit (Remote host closed the connection) 2018-08-30T06:01:25Z sz0 joined #lisp 2018-08-30T06:01:53Z aeth: stylewarning: mapcar itself is sort of an example of this. It's basically just maplist where you're calling car on every variable. 2018-08-30T06:02:04Z aeth: a one variable version could be implemented as trivially as: (defun mapcar* (function list &rest more-lists) (declare (ignore more-lists)) (maplist (lambda (x) (funcall function (car x))) list)) 2018-08-30T06:03:08Z bigfondue joined #lisp 2018-08-30T06:04:07Z no-defun-allowed: Xach: who would win in a fight: you or xahlee? 2018-08-30T06:06:15Z montxero joined #lisp 2018-08-30T06:09:04Z figurehe4d quit (Quit: Leaving) 2018-08-30T06:12:57Z anunnaki is now known as vertigo 2018-08-30T06:14:59Z vlatkoB joined #lisp 2018-08-30T06:16:41Z Shinmera: Xach: Hopefully fixed now. 2018-08-30T06:18:29Z doubledup joined #lisp 2018-08-30T06:21:18Z housel quit (Remote host closed the connection) 2018-08-30T06:29:35Z asarch quit (Quit: Leaving) 2018-08-30T06:32:51Z suskeyhose quit (Remote host closed the connection) 2018-08-30T06:33:57Z Lord_Nightmare quit (Ping timeout: 252 seconds) 2018-08-30T06:47:35Z serichsen joined #lisp 2018-08-30T06:47:45Z serichsen: good morning 2018-08-30T06:49:16Z shka_ quit (Quit: Konversation terminated!) 2018-08-30T06:51:12Z phoe: morning 2018-08-30T06:53:53Z doubledup quit (Quit: Leaving) 2018-08-30T06:55:00Z elfmacs joined #lisp 2018-08-30T06:55:07Z Lord_Nightmare joined #lisp 2018-08-30T06:55:19Z beach: Hello serichsen. Hello phoe. 2018-08-30T06:59:30Z slyrus1: Shinmera: it's probably not relevant given iclendar, but did have you seen my https://github.com/slyrus/soiree/blob/master/icalendar.lisp 2018-08-30T06:59:54Z jackdaniel: (map-over-sheets (lambda (sheet) (repaint-sheet sheet 2018-08-30T07:00:02Z jackdaniel: ops, wrong button (sorry) 2018-08-30T07:01:34Z orivej quit (Ping timeout: 240 seconds) 2018-08-30T07:10:12Z light2yellow joined #lisp 2018-08-30T07:29:30Z doubledup joined #lisp 2018-08-30T07:29:51Z doubledup quit (Max SendQ exceeded) 2018-08-30T07:30:14Z doubledup joined #lisp 2018-08-30T07:31:09Z smokeink joined #lisp 2018-08-30T07:38:04Z orivej joined #lisp 2018-08-30T07:44:56Z buffergn0me joined #lisp 2018-08-30T07:45:21Z zfree quit (Ping timeout: 252 seconds) 2018-08-30T07:45:24Z zfree_ joined #lisp 2018-08-30T07:45:36Z shrdlu68 joined #lisp 2018-08-30T07:46:54Z doubledup quit (Quit: Leaving) 2018-08-30T07:52:36Z shrdlu68 quit (Ping timeout: 252 seconds) 2018-08-30T08:00:18Z orivej quit (Ping timeout: 252 seconds) 2018-08-30T08:00:18Z X-Scale quit (Ping timeout: 252 seconds) 2018-08-30T08:07:17Z crsc quit (Ping timeout: 268 seconds) 2018-08-30T08:10:33Z Shinmera: slyrus1: I had not seen it. 2018-08-30T08:10:33Z Shinmera: iclendar can't parse things as it is, only produce them, but I would certainly welcome a parser addition to it. 2018-08-30T08:10:33Z Shinmera: I won't do it myself any time soon as I have no need for it. 2018-08-30T08:10:59Z shka_ joined #lisp 2018-08-30T08:13:08Z mason quit (Remote host closed the connection) 2018-08-30T08:13:16Z mason joined #lisp 2018-08-30T08:13:19Z slyrus1: Shinmera: Ok. There's also https://github.com/davazp/cl-icalendar. 2018-08-30T08:14:09Z slyrus1: It would be great if all of these were combined into one library/suite that could read and write icalendar/vcard and talk to caldav/carddav servers. 2018-08-30T08:14:24Z Shinmera: I knew about that one, but it's incomplete and undocumented 2018-08-30T08:15:04Z Shinmera: Sure, PRs are welcome, of course 2018-08-30T08:17:43Z slyrus1: soiree does parsing but not serializing, iclendar looks like it does serialzing but not parsing... 2018-08-30T08:18:26Z Shinmera: iclendar also does validation 2018-08-30T08:20:03Z arbv quit (Read error: Connection reset by peer) 2018-08-30T08:24:31Z jack_rabbit quit (Ping timeout: 260 seconds) 2018-08-30T08:32:09Z mange quit (Remote host closed the connection) 2018-08-30T08:36:33Z jack_rabbit joined #lisp 2018-08-30T08:38:15Z scymtym quit (Ping timeout: 252 seconds) 2018-08-30T08:43:30Z Bronsa joined #lisp 2018-08-30T08:49:13Z caltelt quit (Ping timeout: 245 seconds) 2018-08-30T08:55:20Z astalla joined #lisp 2018-08-30T08:57:11Z buffergn0me quit (Ping timeout: 260 seconds) 2018-08-30T09:01:57Z scymtym joined #lisp 2018-08-30T09:13:53Z lieven joined #lisp 2018-08-30T09:21:43Z warex quit (Ping timeout: 245 seconds) 2018-08-30T09:24:45Z hjudt: i have a design question: i am developing a web application which reads data from a hash-table. The hash-table gets updated (on demand), this process is usually very fast. nothing else writes to that hash table except the update method. do i still need to protect the hash-table with locking in every place it gets accessed? is there a better solution? i need a data structe like a hashtable because lookup would 2018-08-30T09:24:50Z hjudt: otherwise be slow. 2018-08-30T09:25:46Z phoe: hjudt: what's your implementations? 2018-08-30T09:26:03Z makomo joined #lisp 2018-08-30T09:26:05Z phoe: some implementations have synchronized hash tables that are good for concurrent acccess. 2018-08-30T09:26:13Z hjudt: sbcl 2018-08-30T09:26:48Z phoe: (make-hash-table :synchronized t) 2018-08-30T09:27:03Z phoe: see http://www.sbcl.org/manual/#Hash-Table-Extensions 2018-08-30T09:27:12Z shka_: bt has function for that 2018-08-30T09:27:31Z phoe: shka_: oh, TIL 2018-08-30T09:28:07Z hjudt: so wich :synchronized t i don't have to care about locks anymore? 2018-08-30T09:28:25Z phoe: hjudt: T 2018-08-30T09:28:29Z hjudt: thanks 2018-08-30T09:28:41Z phoe: you can simply #'(SETF GETHASH) and all the synchronization is going to happen in the background 2018-08-30T09:31:22Z hjudt: that's great. 2018-08-30T09:33:27Z jackdaniel: mind that despite transparency you still hit the protection penalty 2018-08-30T09:33:35Z jackdaniel: so writes / reads will be a little slower 2018-08-30T09:34:25Z l1x joined #lisp 2018-08-30T09:35:43Z phoe: yep, nothing in the world is for free except for segfaults 2018-08-30T09:37:07Z zfree_ quit (Quit: zfree_) 2018-08-30T09:57:27Z smokeink quit (Ping timeout: 252 seconds) 2018-08-30T10:03:32Z kini quit (Remote host closed the connection) 2018-08-30T10:07:47Z lumm joined #lisp 2018-08-30T10:10:19Z kini joined #lisp 2018-08-30T10:14:50Z Kaisyu quit (Quit: Connection closed for inactivity) 2018-08-30T10:22:22Z razzy joined #lisp 2018-08-30T10:29:07Z serichsen quit (Ping timeout: 240 seconds) 2018-08-30T10:30:13Z random-nick joined #lisp 2018-08-30T10:38:16Z steiner quit (Remote host closed the connection) 2018-08-30T10:38:45Z steiner joined #lisp 2018-08-30T10:44:54Z Xach: Shinmera: very good 2018-08-30T10:51:17Z no-defun-allowed: Hi Xach 2018-08-30T10:54:26Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-30T10:55:12Z lavaflow quit (Ping timeout: 252 seconds) 2018-08-30T10:55:37Z no-defun-allowed: What do you think the odds are of you beating xahlee in a fight? 2018-08-30T10:56:36Z Xach: no-defun-allowed: I don't think that is a fruitful topic of discussion. 2018-08-30T11:01:55Z shka_: what is the best way to transfer error between threads? 2018-08-30T11:06:51Z phoe: shka_: you mean a condition? 2018-08-30T11:07:07Z phoe: what do you mean, transfer? 2018-08-30T11:07:12Z jack_rabbit joined #lisp 2018-08-30T11:07:16Z shka_: well, condition 2018-08-30T11:07:27Z phoe: so one thread blocks until the second thread handles the condition originating in the first thread? 2018-08-30T11:07:45Z phoe: or is it "fire and forget" where the thread does whatever after "sending" the condition object to a different thread? 2018-08-30T11:08:12Z shka_: phoe: thread1 waits for thread2 to finish, thread2 signals error, thread1 has logic to handle error 2018-08-30T11:08:37Z shka_: ideally thread2 should wait for thread1 to decide what it is supposed to do 2018-08-30T11:08:52Z phoe: shka_: any kind of message passing should do 2018-08-30T11:09:14Z shka_: that does not help to be honest, but ok 2018-08-30T11:09:36Z phoe: thread2 has a handler that sends the condition object to thread1 and blocks waiting for response, thread1 sends the "result" of how to handle error back to thread2, thread2 reacts accordingly 2018-08-30T11:09:42Z m00natic joined #lisp 2018-08-30T11:10:11Z shka_: phoe: eh 2018-08-30T11:10:18Z shka_: that is literally scenario i described 2018-08-30T11:10:21Z phoe: I don't recall any library that does that behavior 2018-08-30T11:10:24Z phoe: yep 2018-08-30T11:10:36Z phoe: I could imagine it implemented using some simple queues or something like that 2018-08-30T11:11:01Z shka_: i think i will just take lparallel queue for that 2018-08-30T11:11:18Z shka_: i am always using lparallel so it is loaded anyway 2018-08-30T11:14:22Z no-defun-allowed: Xach: I think it's an important question. 2018-08-30T11:14:42Z phoe: no-defun-allowed: it's pretty off-topic here, you could try #lispcafe 2018-08-30T11:14:49Z phoe: interpersonal brawls aren't Lisp-related in the slightest 2018-08-30T11:15:01Z no-defun-allowed: Xach isn't there though and I already asked there 2018-08-30T11:15:22Z Shinmera: Then you'll just have to put up with it. 2018-08-30T11:15:26Z phoe: you could always ask him in private. 2018-08-30T11:15:42Z phoe: and if he doesn't respond, well, no one forces him to. 2018-08-30T11:16:02Z no-defun-allowed: Fair enough 2018-08-30T11:19:06Z jackdaniel: shka_: I don't understand the use case here -- why would you handle error in parent thread instead of a child thread? 2018-08-30T11:20:38Z shka_: jackdaniel: because otherwise i will need user to know details about internal implementation 2018-08-30T11:20:48Z phoe: I still don't understand it 2018-08-30T11:21:08Z phoe: what is the user doing that they can't handle errors on their own? 2018-08-30T11:21:10Z zigpaw: maybe you could want to handle errors in an aggregate manner probably? (in some algorithms, where only a significant percent of errors require automatic reaction), but even then you can do it on the same thread and just pass the counter to error-handling thread (supervisor). 2018-08-30T11:21:47Z jackdaniel: I mean why do you want something like (handle-thread (fork (error "hi"))) instead of (fork (handle-thread (error "hi"))) ? 2018-08-30T11:21:51Z zigpaw: so having something like producer-consumer, between failing threads and error-handling thread? 2018-08-30T11:22:17Z shka_: jackdaniel: basicly 2018-08-30T11:22:48Z shka_: zigpaw: that's pretty strong assumption 2018-08-30T11:23:45Z orivej joined #lisp 2018-08-30T11:24:36Z shka_: i think that i can copy transfer-error restart from lparallel 2018-08-30T11:24:36Z shrdlu68 joined #lisp 2018-08-30T11:24:38Z jackdaniel wonders whenever "basicly" was an answer of something bigger is comming 2018-08-30T11:24:45Z jackdaniel: s/of/or/ 2018-08-30T11:25:10Z shka_: jackdaniel: answer, in summary this is what i want 2018-08-30T11:25:43Z jackdaniel: ah, so you are fixed on your left-grabbing-right-pocket mindset. in that case I won't interfere 2018-08-30T11:26:02Z zigpaw: shka_ : more like just an idea I got for such a use case, it is not exhaustive. In most cases I can think of I don't see such architecture needed. 2018-08-30T11:26:04Z shka_: *sigh* 2018-08-30T11:26:04Z rozenglass joined #lisp 2018-08-30T11:26:58Z shka_: anyway, i think lparallel has it all figured out so i will just check it out 2018-08-30T11:27:36Z shka_: zigpaw: essentially i have library that introduces RANGES (like iterators, just with few extra elements) 2018-08-30T11:27:57Z shka_: i have operations that can produce ranges, i have algorithms that work on those 2018-08-30T11:28:12Z shka_: i have ranges that alter how algorithm works (like group-by) 2018-08-30T11:29:00Z shka_: essentially this often boils down to constructing pipes out of ranges 2018-08-30T11:29:48Z shka_: if i could introduce way to allow part of pipe to run on separate thread, i could speed up few use cases 2018-08-30T11:30:11Z zigpaw: ah, I see. 2018-08-30T11:30:23Z zigpaw: if one fails everything fails? 2018-08-30T11:30:46Z shka_: well, yes 2018-08-30T11:30:51Z shka_: but there are restarts 2018-08-30T11:31:06Z shka_: so signaling condition may not lead to auto-fail 2018-08-30T11:31:52Z shka_: so ideally, i want transfer error to parent thread 2018-08-30T11:31:54Z pierpal quit (Quit: Poof) 2018-08-30T11:32:13Z pierpal joined #lisp 2018-08-30T11:32:19Z shka_: because range can be constructed by internal function and user can't do anything with that 2018-08-30T11:32:33Z shka_: and also it is slightly more convinient 2018-08-30T11:33:46Z Kevslinger quit (Quit: Connection closed for inactivity) 2018-08-30T11:36:45Z zigpaw: yeah, that seems a reasonable use-case. but probably you'll have to catch the condition on the failing thread and pass that somehow to the parent thread. That is the one thing I don't like in most impl of threads in various oses, the child doesn't know their parent. Some languages do have easier to use constructs for parent-child communication, lik 2018-08-30T11:36:45Z zigpaw: e erlang or go with their channels, I'm quite sure CL have those too but I'm not that good in CL to have any experience in this regard (and I don't know about overhead which it surely have). 2018-08-30T11:38:18Z steiner quit (Read error: Connection reset by peer) 2018-08-30T11:38:19Z shka_: well, condition is signalled there should not be extra cost involved 2018-08-30T11:38:31Z shka_: *if condition is not signalled 2018-08-30T11:39:34Z razzy quit (Ping timeout: 240 seconds) 2018-08-30T11:40:01Z zigpaw: I mean for inter-thread communication that you would probably need to establish for each and every thread. 2018-08-30T11:40:10Z steiner joined #lisp 2018-08-30T11:40:20Z zigpaw: or rather between parent and each thread. 2018-08-30T11:42:00Z mange joined #lisp 2018-08-30T11:42:41Z razzy joined #lisp 2018-08-30T11:45:04Z shka_: zigpaw: i already have a queue, i can transfer over it 2018-08-30T11:46:45Z zigpaw: great, then you are probably all set up :-) at the end you may even wrap it into a function/macro and have it ready as a multi-purpose thing? 2018-08-30T11:47:04Z zigpaw: maybe useful for others too :) 2018-08-30T11:48:30Z pierpal quit (Quit: Poof) 2018-08-30T11:48:49Z pierpal joined #lisp 2018-08-30T11:51:09Z shka_: eh, maybe 2018-08-30T11:51:56Z quazimodo joined #lisp 2018-08-30T11:53:28Z zfree joined #lisp 2018-08-30T11:59:52Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-30T12:00:37Z jack_rabbit joined #lisp 2018-08-30T12:04:13Z dddddd joined #lisp 2018-08-30T12:04:34Z Denommus` joined #lisp 2018-08-30T12:06:11Z scymtym quit (Ping timeout: 260 seconds) 2018-08-30T12:07:48Z Denommus quit (Ping timeout: 252 seconds) 2018-08-30T12:17:13Z trittweiler quit (Remote host closed the connection) 2018-08-30T12:17:16Z Kevslinger joined #lisp 2018-08-30T12:19:52Z nckx quit (Quit: Updating my GNU GuixSD server — gnu.org/s/guix) 2018-08-30T12:25:28Z brettgilio joined #lisp 2018-08-30T12:26:51Z nckx joined #lisp 2018-08-30T12:27:37Z Bike joined #lisp 2018-08-30T12:27:46Z lumm quit (Ping timeout: 260 seconds) 2018-08-30T12:28:04Z mange quit (Ping timeout: 240 seconds) 2018-08-30T12:28:38Z lumm joined #lisp 2018-08-30T12:31:17Z lumm quit (Client Quit) 2018-08-30T12:31:31Z Lycurgus joined #lisp 2018-08-30T12:31:45Z lumm joined #lisp 2018-08-30T12:38:48Z Bronsa quit (Remote host closed the connection) 2018-08-30T12:39:06Z Bronsa joined #lisp 2018-08-30T12:40:40Z Cymew quit 2018-08-30T12:51:24Z lavaflow joined #lisp 2018-08-30T12:56:12Z lavaflow quit (Ping timeout: 252 seconds) 2018-08-30T12:56:27Z orivej quit (Ping timeout: 240 seconds) 2018-08-30T12:59:28Z mindCrime_ joined #lisp 2018-08-30T13:02:41Z AeroNotix: First time thinking I might need eval-when. I have some constant values that are a pain to write out in full. I can write a small piece of code to create them instead. Do I want to use eval-when :compile to compute the constants at compile time or shall I choose a different method? 2018-08-30T13:04:52Z phoe: AeroNotix: are they very, very constant? 2018-08-30T13:05:03Z phoe: if yes, you might want to use the #. notation to evaluate them at read-time 2018-08-30T13:05:19Z AeroNotix: phoe: what's the english name of #. ? 2018-08-30T13:05:28Z phoe: read-time evaluation 2018-08-30T13:05:29Z phoe: clhs #. 2018-08-30T13:05:29Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/02_dhf.htm 2018-08-30T13:05:31Z AeroNotix: thanks 2018-08-30T13:05:47Z AeroNotix: looks like this is it! 2018-08-30T13:05:48Z dlowe: "hashdot" :) 2018-08-30T13:05:50Z AeroNotix: cheers 2018-08-30T13:06:08Z AeroNotix: Sharpsign (as in clhs) sounds like a bloody transformer or something 2018-08-30T13:06:13Z AeroNotix: SHARPSIGN, transform and ROLL OUT 2018-08-30T13:06:28Z phoe: (roll-out (transform #\#)) 2018-08-30T13:06:48Z AeroNotix: :) 2018-08-30T13:09:38Z anewuser joined #lisp 2018-08-30T13:12:02Z pjb quit (Remote host closed the connection) 2018-08-30T13:13:56Z pjb joined #lisp 2018-08-30T13:15:02Z mindCrime joined #lisp 2018-08-30T13:18:12Z mindCrime_ quit (Ping timeout: 252 seconds) 2018-08-30T13:25:15Z Copenhagen_Bram quit (Ping timeout: 252 seconds) 2018-08-30T13:26:06Z brettgilio quit (Quit: Konversation terminated!) 2018-08-30T13:26:47Z trittweiler joined #lisp 2018-08-30T13:31:51Z nowhere_man quit (Ping timeout: 252 seconds) 2018-08-30T13:39:34Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-30T13:39:39Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-30T13:40:20Z pjb quit (Remote host closed the connection) 2018-08-30T13:41:32Z quazimodo joined #lisp 2018-08-30T13:41:43Z gector quit (Ping timeout: 245 seconds) 2018-08-30T13:42:02Z pjb joined #lisp 2018-08-30T13:42:09Z gector joined #lisp 2018-08-30T13:44:01Z lrx33 quit (Remote host closed the connection) 2018-08-30T13:45:35Z makomo_ joined #lisp 2018-08-30T13:46:42Z sauvin quit (Ping timeout: 252 seconds) 2018-08-30T13:48:25Z makomo quit (Ping timeout: 246 seconds) 2018-08-30T13:49:00Z scymtym joined #lisp 2018-08-30T13:52:04Z lavaflow joined #lisp 2018-08-30T13:58:10Z lavaflow quit (Ping timeout: 250 seconds) 2018-08-30T14:09:32Z papachan joined #lisp 2018-08-30T14:10:28Z trittweiler quit (Ping timeout: 246 seconds) 2018-08-30T14:12:32Z jkordani_ joined #lisp 2018-08-30T14:14:30Z russellw: What's the naming convention for variants? Like if I have a function named foo, and I want to create another function similar to it but slightly different, so a slight variant of the name, that would be foo' in ML? 2018-08-30T14:15:27Z Xach: russellw: there is no standard convention. appending * is sometimes used sometimes. 2018-08-30T14:16:04Z jkordani quit (Ping timeout: 240 seconds) 2018-08-30T14:16:14Z russellw: Xach, thanks! 2018-08-30T14:16:31Z phoe: russellw: like let and let* 2018-08-30T14:16:57Z russellw: phoe, good point 2018-08-30T14:18:24Z pjb quit (Remote host closed the connection) 2018-08-30T14:19:50Z cage_ joined #lisp 2018-08-30T14:22:33Z Xach: Someone I know used unicode prime 2018-08-30T14:22:43Z Xach: It felt like a cheeky pun 2018-08-30T14:22:53Z russellw: :) 2018-08-30T14:22:58Z phoe: like, uh 2018-08-30T14:23:06Z phoe: unicode prime? 2018-08-30T14:23:24Z phoe: ... 2018-08-30T14:23:32Z phoe: let′ 2018-08-30T14:23:41Z phoe: this is absolute evil 2018-08-30T14:24:29Z phoe: `(let′.,@foo) 2018-08-30T14:24:34Z phoe: and suddenly we have perl 2018-08-30T14:25:54Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-30T14:27:10Z jtecca joined #lisp 2018-08-30T14:28:31Z Copenhagen_Bram joined #lisp 2018-08-30T14:28:36Z jtecca quit (Remote host closed the connection) 2018-08-30T14:33:13Z mindCrime joined #lisp 2018-08-30T14:33:33Z lumm quit (Quit: lumm) 2018-08-30T14:34:36Z jmercouris joined #lisp 2018-08-30T14:35:09Z steiner quit (Remote host closed the connection) 2018-08-30T14:35:24Z steiner joined #lisp 2018-08-30T14:36:55Z AeroNotix: https://ml.cddddr.org/quinquevirate/ the standardization process was so politicized 2018-08-30T14:38:32Z orivej joined #lisp 2018-08-30T14:39:12Z phoe: oh goodness 2018-08-30T14:39:23Z AeroNotix: https://ml.cddddr.org/quinquevirate/msg00287.html I love the anti european sentiment too. 2018-08-30T14:39:27Z AeroNotix: dicks 2018-08-30T14:40:02Z AeroNotix: It's filled with that kind of sentiment. Quite funny since nowadays I tend to see far more non-American lispers 2018-08-30T14:40:35Z AeroNotix: "If there is to be only one ISO Lisp, we could fight to make it Common 2018-08-30T14:40:37Z AeroNotix: Lisp (as defined by us), 2018-08-30T14:40:39Z AeroNotix: " 2018-08-30T14:40:41Z AeroNotix: lord almighty 2018-08-30T14:40:47Z phoe: "it didn't occur to me that the LeLisp and Cambridge Lisp people, with a combined user community of maybe 50 people, might have such an influence." 2018-08-30T14:40:51Z phoe: (; 2018-08-30T14:40:55Z AeroNotix: in that context us == americans 2018-08-30T14:41:04Z isoraqathedh: Yeah, nowadays Lispers seem to be mostly Europeans and surprisingly Japanese. 2018-08-30T14:41:19Z isoraqathedh: I have no idea how the latter came in. 2018-08-30T14:41:29Z Xach: AeroNotix: lots of money was at stake 2018-08-30T14:41:30Z jkordani_: hey there are like 5 US lispers come on now 2018-08-30T14:41:37Z shrdlu68: Well one of the very first implementations (albeit pre-ANSI) was Japanese. 2018-08-30T14:41:53Z AeroNotix: Who is this "RPG" guy? Sounds like an utter knob 2018-08-30T14:41:55Z Xach: Peter Seibel's talk on the topic remains a great resource 2018-08-30T14:42:07Z Xach: AeroNotix: richard p. gabriel 2018-08-30T14:42:48Z varjag: i'm afraid if rpg is not to your liking you are really in the wrong community :) 2018-08-30T14:43:40Z AeroNotix: varjag: the language exists separately from the community in most respects. I see a lot of rpg-isms in this channel regularly. I can ignore it. Though, despite ignoring it, I can still classify it=. 2018-08-30T14:44:06Z varjag: i think you read between the lines too hard 2018-08-30T14:44:07Z mason: AeroNotix: It shouldn't, but seeing what look like modern, well-formed emails from 1986 seems odd. :) 2018-08-30T14:44:47Z SaganMan quit (Ping timeout: 240 seconds) 2018-08-30T14:45:40Z varjag: like it or not, common lisp is a language out of darpa and american academia 2018-08-30T14:45:49Z varjag: iso lisp was utter failure as predicted in the email 2018-08-30T14:46:49Z dale_ joined #lisp 2018-08-30T14:47:08Z dale_ is now known as dale 2018-08-30T14:47:13Z Xach: https://soundcloud.com/zach-beane/peter-seibel-common-lisp <-- peter's talk about CL history, including these rivalries 2018-08-30T14:48:02Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-30T14:48:42Z AeroNotix: Something like CL was inevitable. No matter where it came from 2018-08-30T14:50:18Z russellw: You can read one thing from the current input stream with (read). But suppose what you want is to read as many things as are in the input stream, up to the end of file; how do you do that? Experiment so far says trying to read when there is end of file is an error 2018-08-30T14:50:27Z NB0X-Matt-CA quit (Excess Flood) 2018-08-30T14:50:42Z Xach: russellw: READ has an option to return a particular object rather than signal an error 2018-08-30T14:50:46Z shrdlu68: russellw: :eof-error nil 2018-08-30T14:50:58Z russellw: aha! thanks! 2018-08-30T14:51:17Z Xach: russellw: one trick is to use the stream object itself, which is something that READ would normally not return (NIL is usually a bad choice because NIL is a pretty normal thing to READ) 2018-08-30T14:51:21Z isoraqathedh: And then :eof-value would let you specify a sentinel value you want. 2018-08-30T14:51:34Z russellw: good point! 2018-08-30T14:51:44Z isoraqathedh: Honestly any unreadable object would do. 2018-08-30T14:52:00Z shrdlu68 left #lisp 2018-08-30T14:52:29Z NB0X-Matt-CA joined #lisp 2018-08-30T14:52:34Z chipolux quit (Quit: chipolux) 2018-08-30T14:52:53Z Xach: yes. the stream is simply conveniently close to hand. 2018-08-30T14:52:54Z chipolux joined #lisp 2018-08-30T14:55:08Z lavaflow joined #lisp 2018-08-30T14:55:29Z SaganMan joined #lisp 2018-08-30T14:55:50Z jkordani_: Xach: I like that 2018-08-30T14:59:34Z dlowe: it'd be neat if loop had an until-error clause that gracefully exited the loop. 2018-08-30T14:59:56Z dlowe: (loop until-error eof-error do collect (read stream)) 2018-08-30T15:00:05Z dlowe: er, s/do // 2018-08-30T15:00:07Z jackdaniel: mit-derived loop is extensible, go ahead! :-) 2018-08-30T15:00:23Z dlowe: would be easier to extend iterate 2018-08-30T15:01:10Z phoe: intercal-loop 2018-08-30T15:01:25Z phoe: (LOOP FOR i FROM 0 TO 40 PLEASE DO (print i)) 2018-08-30T15:02:34Z oni-on-ion: oh gosh, the ethics of programming, if computers and devs and runtimes etc had manners and forms of speech! 2018-08-30T15:03:01Z jackdaniel: there is shakespear language 2018-08-30T15:03:26Z oni-on-ion: if it would please you, sir, it would be best to create an object, and it would be especially convenient if this were an array of size 20, but thats cool if you can't 2018-08-30T15:03:50Z FreeBirdLjj joined #lisp 2018-08-30T15:04:20Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-30T15:04:35Z AeroNotix: oni-on-ion: not what I was even talking about. 2018-08-30T15:04:37Z oni-on-ion: some form of optimization too; hurry! sum this list asap! or else ur fired 2018-08-30T15:04:37Z FreeBirdLjj joined #lisp 2018-08-30T15:04:39Z lumm joined #lisp 2018-08-30T15:05:00Z oni-on-ion: AeroNotix: i didnt see what you were talking about sorry. im responding to phoe's code line there. 2018-08-30T15:05:12Z _death: save-lisp-and-rest 2018-08-30T15:05:16Z AeroNotix: oh right, seemed related. (declare (ignore what-i-said)) 2018-08-30T15:05:22Z oni-on-ion: -in-peace? =) 2018-08-30T15:05:31Z jkordani_: error: speech pattern mismatch ^but thats cool if you can't^ is too informal. Also you're missing an ' 2018-08-30T15:05:43Z oni-on-ion: AeroNotix: hehe. reading up, seeing RPG, maybe 2018-08-30T15:05:47Z phoe: save-10-percent-off-your-next-lisp-core 2018-08-30T15:10:02Z bradcomp joined #lisp 2018-08-30T15:11:05Z asarch joined #lisp 2018-08-30T15:20:20Z russellw: CCL when my program contains an error, spits out five screens of output when I really just want the first couple of lines. What's the best way to get just the first couple of lines? 2018-08-30T15:20:59Z jkordani_: russellw: got a paste? 2018-08-30T15:21:27Z Xach: russellw: are you using Clozure CL directly? (not mediated by slime or something like it) 2018-08-30T15:21:52Z russellw: jkordani_, one moment 2018-08-30T15:21:56Z russellw: Xach, yes 2018-08-30T15:23:49Z russellw: hmm, in the process of trying to capture the output for paste, I discovered it sends the first two lines to stderr and the rest to stdout. Which in itself suggests a way to separate them. But to proceed with paste anyway 2018-08-30T15:24:25Z Xach: The clozure cl debugger is usually not very verbose, so it may be something else producing a bunch of output. 2018-08-30T15:24:43Z russellw: first 2 lines (wanted output) https://pastebin.com/DCUxZQVz 2018-08-30T15:25:41Z russellw: rest (unwanted output) https://pastebin.com/t9jWUDRw 2018-08-30T15:26:27Z Xach: Oh, one option would be to not run things in batch, but interactively and iteratively develop things, and then (if needed) make changes for batch purposes. 2018-08-30T15:26:34Z Lycurgus quit (Quit: Exeunt) 2018-08-30T15:26:46Z Xach: russellw: I don't know the shortcut to get what you want right away 2018-08-30T15:27:08Z Xach: russellw: there may be one. but the reason it prints that stuff in batch mode is there is no way to get it in another way, because the program is over. 2018-08-30T15:27:08Z russellw: Xach, my number one criterion for choosing a programming language is ability to run things in batch; I find that so much more productive 2018-08-30T15:27:31Z Xach: russellw: more productive than interactively and incrementally? 2018-08-30T15:27:43Z russellw: yes 2018-08-30T15:27:58Z Xach: Ok. That's not my experience, and it isn't typical for Common Lisp development. 2018-08-30T15:28:32Z dlowe: russellw: can you expand on that? How batched are we talking here? 2018-08-30T15:28:38Z russellw: If you find interactive/incremental works better for you, then by all means you should do things the way you find best! 2018-08-30T15:28:56Z shka_: hmmm 2018-08-30T15:28:59Z Xach: Mikel Evins had an analogy that matched my experience - working with languages like Smalltalk or Common Lisp is like teaching an eager assistant how to get the job done. Other environments are more like developing a recipe or set of plans to hand off. 2018-08-30T15:29:24Z russellw: dlowe, I write my program as a set of text files, and each time I want to test it, I type a command in the command line 2018-08-30T15:29:39Z varjag joined #lisp 2018-08-30T15:29:40Z shka_: well, you kinda can use cl like it is C 2018-08-30T15:29:49Z Xach: russellw: what do you view as the opposite, unproductive mode? 2018-08-30T15:29:55Z russellw: shka_, yes that's exactly what I want to do 2018-08-30T15:29:56Z _death: Lisp programmers write their programs as a set of functions, and when they want to test them they type a form in the REPL 2018-08-30T15:29:57Z dlowe: russellw: I wrote CL like that for a while 2018-08-30T15:30:00Z russellw: Xach, yes 2018-08-30T15:30:29Z wigust joined #lisp 2018-08-30T15:30:41Z shka_: well, actually i do that as well, but just to run unit tests 2018-08-30T15:31:10Z shka_: so there will be no accidental passes 2018-08-30T15:31:56Z Xach: shka_: best to reboot first too. 2018-08-30T15:32:34Z elfmacs quit (Ping timeout: 240 seconds) 2018-08-30T15:32:57Z jackdaniel: unless you distribute binaries as if in save-lisp-and-die, it might be worth to restart image and try to load your application (even without reboot:) 2018-08-30T15:33:38Z jackdaniel: some could argue, that clean deployment should be done from environment, where asdf doesn't have access to personal repositories too 2018-08-30T15:34:35Z shka_: Xach: reboot is a joke, right? 2018-08-30T15:35:46Z Xach: shka_: yes. of course you use docker instead to weaponize rebooting. 2018-08-30T15:39:17Z housel joined #lisp 2018-08-30T15:39:40Z mason: Heh. Weaponized rebooting. /me squirrels it away. 2018-08-30T15:40:02Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-30T15:41:07Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-30T15:43:16Z quazimodo joined #lisp 2018-08-30T15:43:48Z astalla quit (Ping timeout: 245 seconds) 2018-08-30T15:54:07Z azimut quit (Ping timeout: 240 seconds) 2018-08-30T15:55:34Z Inline joined #lisp 2018-08-30T15:55:39Z FreeBirdLjj joined #lisp 2018-08-30T15:55:47Z makomo_ quit (Quit: WeeChat 2.2) 2018-08-30T15:56:08Z makomo joined #lisp 2018-08-30T15:57:10Z azimut joined #lisp 2018-08-30T16:02:50Z charh joined #lisp 2018-08-30T16:03:09Z razzy: Weaponised rebooting, Courtesy of microsoft. 2018-08-30T16:03:47Z LiamH joined #lisp 2018-08-30T16:05:44Z MetaYan joined #lisp 2018-08-30T16:05:50Z fouric: *ahem ahem*secure boot*ahem* 2018-08-30T16:09:38Z razzy: "in more ways than you can imagine" dam dam dam *sinister music playing* 2018-08-30T16:12:04Z azimut quit (Ping timeout: 240 seconds) 2018-08-30T16:19:47Z jmercouris quit (Ping timeout: 240 seconds) 2018-08-30T16:20:19Z wigust quit (Ping timeout: 246 seconds) 2018-08-30T16:22:03Z eddof13 joined #lisp 2018-08-30T16:23:34Z shka_: Xach: ok 2018-08-30T16:24:36Z scymtym quit (Ping timeout: 260 seconds) 2018-08-30T16:25:26Z blt quit (Quit: ZNC 1.7.0 - https://znc.in) 2018-08-30T16:26:07Z blt joined #lisp 2018-08-30T16:27:12Z meepdeew joined #lisp 2018-08-30T16:33:12Z meepdeew quit (Remote host closed the connection) 2018-08-30T16:36:00Z anewuser quit (Ping timeout: 272 seconds) 2018-08-30T16:48:18Z varjag quit (Ping timeout: 252 seconds) 2018-08-30T16:55:19Z shka_ quit (Quit: WeeChat 1.9.1) 2018-08-30T17:05:32Z karstensrage quit (Quit: ZNC - http://znc.in) 2018-08-30T17:05:33Z dueyfinster joined #lisp 2018-08-30T17:10:39Z sauvin joined #lisp 2018-08-30T17:15:36Z anewuser joined #lisp 2018-08-30T17:15:38Z anewuser quit (Read error: Connection reset by peer) 2018-08-30T17:20:13Z buffergn0me joined #lisp 2018-08-30T17:20:24Z oystewh joined #lisp 2018-08-30T17:20:52Z m00natic quit (Read error: Connection reset by peer) 2018-08-30T17:24:36Z Bronsa quit (Ping timeout: 252 seconds) 2018-08-30T17:33:32Z buffergn0me quit (Ping timeout: 250 seconds) 2018-08-30T17:36:36Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-30T17:40:07Z jmercouris joined #lisp 2018-08-30T17:40:09Z karstensrage joined #lisp 2018-08-30T17:43:06Z FreeBirdLjj joined #lisp 2018-08-30T17:43:12Z Denommus` quit (Ping timeout: 244 seconds) 2018-08-30T17:57:52Z shka_ joined #lisp 2018-08-30T18:00:26Z pjb joined #lisp 2018-08-30T18:01:07Z razzy: anyone tried hard-real-time scheduling with any lisp? 2018-08-30T18:04:04Z pjb: razzy: you ask this as if it was difficult. 2018-08-30T18:04:57Z jackdaniel: hard real time guarantees *are* difficult to achieve 2018-08-30T18:05:01Z jackdaniel: no matter the language 2018-08-30T18:05:37Z pjb: In lisp you would want an implementation that offers real-time guarantees with the garbage collector for example. 2018-08-30T18:05:43Z jackdaniel: if it is lisp, you have a gc puzzle to solve (though it's something possible to overcome from what I've heard) 2018-08-30T18:06:05Z pjb: Or at least, an implementation where you can disable (temporarily) the garbage collector. 2018-08-30T18:06:18Z pjb: The later is more common than the former. 2018-08-30T18:06:41Z pjb: You could become instant lisp hero, by implementing a real-time garbage collector in some CL implementation (eg. sbcl or ccl). 2018-08-30T18:07:11Z razzy: hmm :] 2018-08-30T18:07:21Z zfree quit (Quit: zfree) 2018-08-30T18:07:40Z pjb: Now, while there's little guarantee, you could study the GC algorithms used, and compute an upper limit to the time spent by the GC, given the memory size. 2018-08-30T18:08:02Z pjb: Say that a GC on a given system cannot take more than 2 seconds top. 2018-08-30T18:08:20Z pjb: Then you can giev hard-real-time guarantee, on the order of the minute. 2018-08-30T18:09:13Z razzy: I will add "becoming a hero" to the if-i-get-bored list thx all 2018-08-30T18:09:23Z pjb: The point here is that hard-real-time is parameterized by a response time, and this response time doesn't need to be small. 2018-08-30T18:09:47Z razzy: but you qarantee the response 2018-08-30T18:09:51Z pjb: Yes. 2018-08-30T18:10:23Z razzy: you typically decrease minimum time by adding computin power 2018-08-30T18:10:58Z pjb: For example, you get a telemetry packet from a sonde on Mars. You guarantee that you can answer back command in one hour ± 30 second. top 2018-08-30T18:11:14Z orivej quit (Ping timeout: 250 seconds) 2018-08-30T18:11:39Z razzy: or send back error message 2018-08-30T18:11:47Z pjb: Perhaps it would be better to ask for a given application. 2018-08-30T18:12:03Z pjb: We could tell if it would look hard or easy to achieve your time constraints. 2018-08-30T18:12:15Z razzy: i was loking for lisp schedulers in general 2018-08-30T18:12:42Z razzy: and if some are hard-real-time 2018-08-30T18:13:33Z razzy: i can get away without realtime, but it would make my life easier 2018-08-30T18:14:03Z pjb: Have a look at com.informatimago.common-lisp.cesarum.activity ; there are others in quicklisp too. 2018-08-30T18:15:08Z pjb: Notably, CL provides you with 3 time bases: universal-time, real-time and run-time. 2018-08-30T18:15:31Z pjb: So you can do scheduling in real-time. 2018-08-30T18:16:00Z razzy: wow, CL is a monster 2018-08-30T18:16:45Z razzy: pjb: link not working 2018-08-30T18:16:47Z jmercouris quit (Ping timeout: 240 seconds) 2018-08-30T18:16:51Z pjb: razzy: note that real-time and run-time are given in more precise increments than universal-time, but they're not based on a specific epoch. I have code to adjust them to the same epoch as universal-time. 2018-08-30T18:16:53Z pjb: Not a link. 2018-08-30T18:17:05Z pjb: It's the name of a package. It is assumed you already have installed my code. 2018-08-30T18:17:25Z pjb: https://github.com/informatimago/lisp 2018-08-30T18:18:01Z pjb: mkdir -p ~/quicklisp/local-projects/com ; git clone https://github.com/informatimago/lisp.git ~/quicklisp/local-projects/com/informatimago 2018-08-30T18:18:35Z pjb: (ql:quickload :com.informatimago.common-lisp.cesarum) 2018-08-30T18:19:10Z pjb: (ql:quickload :com.informatimago.common-lisp.interactive) (use-package :com.informatimago.common-lisp.interactive.interactive) 2018-08-30T18:19:20Z pjb: (lspack :com.informatimago.common-lisp.cesarum.activity t) 2018-08-30T18:20:23Z razzy: pjb: looking at it 2018-08-30T18:20:28Z razzy: thx for now 2018-08-30T18:21:02Z housel quit (Read error: Connection reset by peer) 2018-08-30T18:26:12Z rpg_ joined #lisp 2018-08-30T18:26:14Z pierpal quit (Quit: Poof) 2018-08-30T18:26:32Z pierpal joined #lisp 2018-08-30T18:26:45Z trittweiler joined #lisp 2018-08-30T18:28:21Z scymtym joined #lisp 2018-08-30T18:30:17Z housel joined #lisp 2018-08-30T18:33:49Z rpg_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-30T18:39:29Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-30T18:40:06Z FreeBirdLjj joined #lisp 2018-08-30T18:44:10Z FreeBirdLjj quit (Ping timeout: 244 seconds) 2018-08-30T18:45:44Z ealfonso joined #lisp 2018-08-30T18:46:04Z ealfonso: is there an easy way to get the parent of a pathname? 2018-08-30T18:46:36Z rpg joined #lisp 2018-08-30T18:46:57Z pierpal quit (Quit: Poof) 2018-08-30T18:47:16Z pierpal joined #lisp 2018-08-30T18:48:35Z jasom: ealfonso: uiop:pathname-parent-directory-pathname 2018-08-30T18:51:14Z cage_ quit (Quit: Leaving) 2018-08-30T18:51:14Z brettgilio joined #lisp 2018-08-30T18:55:28Z shka_ quit (Quit: Konversation terminated!) 2018-08-30T18:55:58Z shka_ joined #lisp 2018-08-30T19:01:18Z nowhere_man joined #lisp 2018-08-30T19:01:43Z charh quit (Ping timeout: 245 seconds) 2018-08-30T19:04:13Z quazimodo quit (Ping timeout: 245 seconds) 2018-08-30T19:08:35Z orivej joined #lisp 2018-08-30T19:09:18Z ealfonso quit (Ping timeout: 250 seconds) 2018-08-30T19:10:05Z varjag joined #lisp 2018-08-30T19:10:30Z pierpal quit (Quit: Poof) 2018-08-30T19:10:50Z pierpal joined #lisp 2018-08-30T19:11:13Z jasom: are there instructions for customizing the portacle emacs? 2018-08-30T19:11:44Z jasom: e.g. where is the init.el? 2018-08-30T19:16:09Z jasom: ah, found it; it's in the totally not obvious directory named "config" 2018-08-30T19:19:18Z charh joined #lisp 2018-08-30T19:20:51Z bars0 joined #lisp 2018-08-30T19:28:44Z lumm quit (Quit: lumm) 2018-08-30T19:29:17Z lumm joined #lisp 2018-08-30T19:29:18Z Denommus joined #lisp 2018-08-30T19:29:34Z lumm quit (Remote host closed the connection) 2018-08-30T19:29:35Z phoe: suspiciously named 2018-08-30T19:30:06Z lumm joined #lisp 2018-08-30T19:31:26Z lumm quit (Remote host closed the connection) 2018-08-30T19:31:55Z lumm joined #lisp 2018-08-30T19:35:40Z shka_: it's a trap, clearly 2018-08-30T19:35:47Z Denommus quit (Remote host closed the connection) 2018-08-30T19:36:27Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-30T19:37:05Z shka_: anyway, i think that there is no way to make handler-bind work with transfered errors 2018-08-30T19:37:20Z shka_: at least not in a portable way 2018-08-30T19:37:28Z serichsen joined #lisp 2018-08-30T19:37:33Z azimut joined #lisp 2018-08-30T19:38:10Z shka_: i think that i will simply resignal and terminate 2018-08-30T19:38:12Z pjb: shka_: would be be submarine? 2018-08-30T19:38:33Z dented42 joined #lisp 2018-08-30T19:38:35Z pjb: shka_: what do you want to do? 2018-08-30T19:38:44Z X-Scale joined #lisp 2018-08-30T19:38:54Z pjb: Yes, you can call signal, it's what it's for, once you've got a condition. 2018-08-30T19:39:04Z shka_: well, basicly have a thread, but handle signals on other thread 2018-08-30T19:39:18Z shka_: resignaling is easy, handler-bind seems to be impossible 2018-08-30T19:39:24Z pjb: Well, you can synchronize with other threads in a handler-bind handler. 2018-08-30T19:39:38Z pjb: you will just have to block the thread and wait for the answer. 2018-08-30T19:40:02Z lumm quit (Quit: lumm) 2018-08-30T19:40:07Z shka_: yeah, but thing is that handler-bind is around the wrong thread 2018-08-30T19:40:19Z pjb: (handler-bind ((error (lambda (err) (return (send-condition-to-other-trhread-and-get-answer err))))) (do-something)) 2018-08-30T19:40:19Z shka_: i don't know how can i bypass this 2018-08-30T19:40:35Z shka_: eeee? 2018-08-30T19:40:40Z pjb: inter-thread communications. 2018-08-30T19:40:48Z pjb: You can use queues, mailboxes, global variables, whatever. 2018-08-30T19:40:48Z shka_: ok, i think that i am missing something here 2018-08-30T19:41:44Z pjb: Now, in the other thread, dyou don't need a hander-bind, you can just handle the condition when you receive it. Since it must return the result and send it back to the original thread for handling by handler-bind. 2018-08-30T19:41:56Z jmercouris joined #lisp 2018-08-30T19:42:03Z shka_: pjb: just one question: do you think that i can make interactive restarts thread-transparent? 2018-08-30T19:42:05Z pjb: You cannot do the non-local jump in this other thread. 2018-08-30T19:42:06Z lumm joined #lisp 2018-08-30T19:42:19Z jmercouris quit (Remote host closed the connection) 2018-08-30T19:42:33Z shka_: oh, ok 2018-08-30T19:42:39Z shka_: so i was not wrong 2018-08-30T19:42:55Z pjb: Well, implementations usually do it the other way: they allow several thread to be in the debugger, and the user may switch the debugger UI from one thread to the other. 2018-08-30T19:43:28Z shka_: i should go to sleep 2018-08-30T19:43:46Z pjb: But you could do it like you want. You only would have to collect the restarts in the debugged thread,a nd pass them along with the condition, to let the debugger thread do the UI, and return back the decision. 2018-08-30T19:43:57Z pjb: shka_: have you read beach's document on debugger? 2018-08-30T19:44:05Z shka_: not yet 2018-08-30T19:44:14Z pjb: It may help. 2018-08-30T19:44:18Z shka_: right 2018-08-30T19:44:33Z shka_: collect-restarts trick is exactly what lparallel is doing 2018-08-30T19:45:06Z pjb: You must distinguish the debugged/handler-bind thread, and the debugger (UI) thread. 2018-08-30T19:45:34Z shka_: obviously 2018-08-30T19:46:36Z shka_: debugger shows up in slime-threads at the very least 2018-08-30T19:46:53Z shka_: or at least i think it does 2018-08-30T19:47:03Z shka_: eh, sorry i am a bit tired 2018-08-30T19:47:27Z shka_: pjb: thanks though, i will certainly read beach's paper 2018-08-30T19:47:27Z pjb: Now, if you want to use an existing debugger, you would have to restablish the restart names and resignal the condition, but you wouldn't have the same stack frames. 2018-08-30T19:48:17Z shka_: well, this is far to complex for my scope 2018-08-30T19:48:33Z shka_: pjb: good night 2018-08-30T19:48:43Z v0|d quit (Remote host closed the connection) 2018-08-30T19:50:39Z Lycurgus joined #lisp 2018-08-30T19:51:20Z masterdonx joined #lisp 2018-08-30T19:52:49Z pjb: Good night! 2018-08-30T19:55:59Z brettgilio quit (Quit: Konversation terminated!) 2018-08-30T19:57:32Z dueyfinster quit (Quit: My iMac has gone to sleep. ZZZzzz…) 2018-08-30T20:00:06Z grumble quit (Quit: brb) 2018-08-30T20:01:48Z orivej quit (Ping timeout: 252 seconds) 2018-08-30T20:03:14Z zfree joined #lisp 2018-08-30T20:04:05Z lumm quit (Quit: lumm) 2018-08-30T20:05:53Z lumm joined #lisp 2018-08-30T20:14:18Z grumble joined #lisp 2018-08-30T20:25:06Z asarch quit (Quit: Leaving) 2018-08-30T20:26:27Z Bronsa joined #lisp 2018-08-30T20:26:49Z rumbler31 joined #lisp 2018-08-30T20:27:38Z grumble quit (Quit: grumble) 2018-08-30T20:28:08Z grumble joined #lisp 2018-08-30T20:28:23Z Roy_Fokker joined #lisp 2018-08-30T20:29:07Z shka_ quit (Ping timeout: 240 seconds) 2018-08-30T20:29:09Z Roy_Fokker quit (Client Quit) 2018-08-30T20:29:45Z Roy_Fokker joined #lisp 2018-08-30T20:32:38Z rumbler31 quit (Remote host closed the connection) 2018-08-30T20:33:43Z AeroNotix: Shinmera: is QString not available in common qt? 2018-08-30T20:34:39Z AeroNotix: (qtapropos "QString") and (find-qtclass "QString") don't seem to have it. I've ensure-smoke'd everything possible 2018-08-30T20:38:07Z vlatkoB quit (Remote host closed the connection) 2018-08-30T20:40:14Z jmercouris joined #lisp 2018-08-30T20:40:51Z bars0 quit (Quit: leaving) 2018-08-30T20:41:31Z jxy joined #lisp 2018-08-30T20:42:22Z jxy quit (Client Quit) 2018-08-30T20:46:34Z Shinmera: No, cause they can't reach you. They're translated to lisp strings 2018-08-30T20:47:31Z mrcom_ joined #lisp 2018-08-30T20:49:58Z mrcom quit (Ping timeout: 272 seconds) 2018-08-30T20:50:27Z jxy joined #lisp 2018-08-30T20:52:18Z Bronsa quit (Ping timeout: 244 seconds) 2018-08-30T20:52:39Z Shinmera: As in, Lisp strings /are/ QStrings 2018-08-30T20:53:02Z AeroNotix: Shinmera: but there are static methods on QString that are useful 2018-08-30T20:53:08Z jxy quit (Client Quit) 2018-08-30T20:53:26Z AeroNotix: e.g. methods that operate with QByteArray /etc 2018-08-30T20:53:32Z Shinmera: Like what? 2018-08-30T20:53:59Z AeroNotix: converting between QByteArray to string, for example. 2018-08-30T20:54:13Z AeroNotix: parsing QByteArray contents as ASCII/Unicode 2018-08-30T20:54:34Z AeroNotix: seems like the class is in commonqt, but not exposed, right? 2018-08-30T20:55:04Z Shinmera: It's not exposed by Smoke, but the type information is there. 2018-08-30T20:55:16Z AeroNotix: alright, I'll think of a workaround for this bug ;) 2018-08-30T20:55:40Z phoe: AeroNotix: you can translate Lisp strings to octets, Qtools should be able to read a vector of ub8 as QByteArray 2018-08-30T20:55:44Z Shinmera: You can get the pointer to a QByteArray contents and use CFFI. 2018-08-30T20:56:03Z jxy joined #lisp 2018-08-30T20:56:18Z Shinmera: Oh, hm 2018-08-30T20:56:19Z AeroNotix: honestly it just seems weird to not expose QString 2018-08-30T20:56:27Z Shinmera: CommonQt unmarshal char * is already turned into a string 2018-08-30T20:56:33Z Shinmera: Nah, it's just never really needed. 2018-08-30T20:56:49Z AeroNotix: I get there is automatic marshalign between QString and lisp strings but it wouldn't hurt to have it available, surely? 2018-08-30T20:57:10Z Shinmera: *shrug* It's not CommonQt's decision. 2018-08-30T20:57:15Z AeroNotix: oh! 2018-08-30T20:57:17Z AeroNotix: I thought it was 2018-08-30T20:57:20Z AeroNotix: nevermind then 2018-08-30T20:57:23Z Shinmera: No, it's Smoke. 2018-08-30T20:57:35Z AeroNotix: gotcha 2018-08-30T20:57:51Z Shinmera: Anyway, it seems CommonQt unmarshals char* to String, so maybe just QByteArray::data will get you a string? 2018-08-30T20:58:18Z AeroNotix: very liekly 2018-08-30T21:00:01Z edgar-rft will write an interface to G by using g-strings 2018-08-30T21:00:25Z AeroNotix: I can't believe I ever started lispkit with gtk 2018-08-30T21:00:38Z AeroNotix: what an absolute waste of time. I should've used Qt from the beginning. 2018-08-30T21:00:50Z phoe: Is there some kind of Lisp library or interface to an English dictionary? 2018-08-30T21:00:59Z Shinmera: Well the problem with the QtWebKit bindings available from CommonQt is that they're real old by now :/ 2018-08-30T21:01:07Z Shinmera: Colleen: tell phoe look up oxenfurt 2018-08-30T21:01:07Z Colleen: phoe: About oxenfurt https://shinmera.github.io/oxenfurt 2018-08-30T21:02:05Z phoe: Shinmera: I'd prefer something offline - I'll be deploying an app and I don't want everyone to share the same key. 2018-08-30T21:02:08Z AeroNotix: Shinmera: yeah good call, I never actually l-ooked at the state of the bindings 2018-08-30T21:02:23Z AeroNotix: phoe: how big do you need? 2018-08-30T21:02:36Z phoe: AeroNotix: uh, what choices do I have? 2018-08-30T21:02:47Z AeroNotix: I dunno. I'm just trying to think of what you could use. 2018-08-30T21:03:15Z phoe: GCIDE, it seems 2018-08-30T21:03:17Z jmercouris: phoe: there's lots of english lang dictionaries 2018-08-30T21:03:17Z AeroNotix: phoe: cause there's stuff like /usr/share/dict 2018-08-30T21:03:19Z Shinmera: Someone supposedly ported Smoke to Qt5, but I haven't looked into it 2018-08-30T21:03:34Z jmercouris: phoe: look for stuff that is in public domain, I'm sure there is something on project gutenberg 2018-08-30T21:03:46Z jmercouris: then just store things in a dictionary/hash, key/value 2018-08-30T21:03:57Z AeroNotix: phoe: are you writing a translation application? 2018-08-30T21:04:07Z phoe: AeroNotix: nope, I'm writing an application for textual roleplayers. 2018-08-30T21:04:11Z AeroNotix: ah ok 2018-08-30T21:04:13Z Shinmera: That's a mail that's been rotting in my inbox for a long time :/ 2018-08-30T21:04:19Z phoe: I assume they'll need a spellchecker, a dictionary and a thesaurus handy 2018-08-30T21:04:33Z jmercouris: Maybe, maybe not 2018-08-30T21:04:43Z jmercouris: I usually wait until a feature is requested before implementation 2018-08-30T21:05:40Z Shinmera: phoe: bundle hunspell or something would be my suggestion, if that feature is really needed at all. 2018-08-30T21:06:18Z phoe: jmercouris: good point 2018-08-30T21:07:08Z Shinmera: Also, dictionary data can be surprisingly hard to get 2018-08-30T21:07:18Z edgar-rft: phoe: make creating a dictionary part of the game and let the users write it themselves 2018-08-30T21:07:35Z Shinmera: Unless you use an API that is 2018-08-30T21:07:55Z detectiveaoi joined #lisp 2018-08-30T21:08:17Z jmercouris: dictionary data is not surprisingly hard to get 2018-08-30T21:08:26Z jmercouris: there are several available on project gutenberg 2018-08-30T21:09:01Z jmercouris: I don't have a good internet connection at the moment, otherwise I would link a few 2018-08-30T21:09:08Z edgar-rft: dictionary data is dead easy to get but to sort out the unwanted stuff takes ages 2018-08-30T21:09:33Z jmercouris: maybe my opinion is a little different, but I find it not so difficult 2018-08-30T21:09:50Z Shinmera: I knew I should have added "good" 2018-08-30T21:09:51Z jmercouris: I've been working with NLP tools, and I think that the community has done a great deal to ensure quality, accessible data exists 2018-08-30T21:10:39Z jmercouris: also what is unwanted stuff? infrequently appearing definitions? very easy to remove them when you just do some simple statistics on a corpus 2018-08-30T21:12:35Z edgar-rft: jmercouris: dictionary data tends to be *huge*, rolplayers do not need to waste gigabytes of ram for dictionary data like NLP folks usually do. They often only need a subset of a big dictionary, therefore my suggestion to let the users write the dictionary themselves 2018-08-30T21:13:03Z makomo quit (Quit: WeeChat 2.2) 2018-08-30T21:13:21Z jmercouris: well, maybe you can scrape forums of roleplayers or their conversations on twitter, and then determine which words need to exist as definitions 2018-08-30T21:13:38Z jmercouris: then you could also automatically extract definitions from where they exist in the corpus by training a model 2018-08-30T21:13:45Z jmercouris: you could use a simple decision tree classifier 2018-08-30T21:14:00Z jmercouris: people generally start definitions in the same way, so you wouldn't need a very large training set to get meaningful results 2018-08-30T21:14:09Z phoe: I'm damn fine with not keeping it in memory at all 2018-08-30T21:14:10Z jmercouris: e.g. people will say "x means y" 2018-08-30T21:14:31Z phoe: Dictionary lookups are going to happen a few times per minute at most, I'm fine with accessing a flatfile and fseeking to it as long as I have an index 2018-08-30T21:14:32Z Shinmera: A lot of effort for a simple spellchecker feature 2018-08-30T21:14:34Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-30T21:14:39Z phoe: And it seems that GCIDE has an index 2018-08-30T21:15:42Z AeroNotix: phoe: out of interest could you describe what you are using a dictionary for? 2018-08-30T21:16:01Z AeroNotix: I don't understand what kind of game a "textual rolepaying" is 2018-08-30T21:17:30Z void_pointer joined #lisp 2018-08-30T21:18:25Z phoe: AeroNotix: cooperative storywriting 2018-08-30T21:18:31Z edgar-rft: As a non-english speaker I often skim dictionaries for learning interesting words, I assume phoe wants it for similar purposes 2018-08-30T21:18:52Z AeroNotix: ok 2018-08-30T21:21:07Z slyrus1 quit (Ping timeout: 240 seconds) 2018-08-30T21:24:49Z no-defun-allowed: Hi everyone 2018-08-30T21:27:10Z jmercouris: hi 2018-08-30T21:30:58Z v0|d joined #lisp 2018-08-30T21:31:16Z nowhere_man joined #lisp 2018-08-30T21:34:15Z jmercouris quit (Remote host closed the connection) 2018-08-30T21:36:39Z Bike quit (Ping timeout: 252 seconds) 2018-08-30T21:40:34Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-30T21:47:34Z azimut quit (Ping timeout: 240 seconds) 2018-08-30T21:49:09Z pierpal quit (Ping timeout: 252 seconds) 2018-08-30T21:49:19Z azimut joined #lisp 2018-08-30T21:55:20Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-30T22:03:42Z light2yellow quit (Quit: woosh) 2018-08-30T22:08:11Z brettgilio joined #lisp 2018-08-30T22:09:34Z varjag quit (Ping timeout: 240 seconds) 2018-08-30T22:16:10Z Bike joined #lisp 2018-08-30T22:27:07Z rozenglass quit (Ping timeout: 246 seconds) 2018-08-30T22:32:01Z quazimodo joined #lisp 2018-08-30T22:33:09Z rumbler31 joined #lisp 2018-08-30T22:33:37Z zooey quit (Ping timeout: 250 seconds) 2018-08-30T22:34:08Z zooey joined #lisp 2018-08-30T22:35:47Z jasom: AeroNotix: I've seen textual roleplaying done via forum, e-mail or in RP heavy MUDs 2018-08-30T22:37:04Z rumbler31 quit (Ping timeout: 240 seconds) 2018-08-30T22:39:07Z jasmith joined #lisp 2018-08-30T22:40:07Z random-nick quit (Ping timeout: 240 seconds) 2018-08-30T22:40:22Z nullniverse joined #lisp 2018-08-30T22:41:10Z lumm quit (Quit: lumm) 2018-08-30T22:42:13Z pierpal joined #lisp 2018-08-30T22:48:52Z aeth: or IRC 2018-08-30T22:49:05Z brettgilio quit (Quit: Konversation terminated!) 2018-08-30T22:49:27Z aeth: Who runs #lispcafe? There should be an official #lispcafe-rp channel 2018-08-30T22:51:32Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-30T22:51:51Z nullniverse quit (Ping timeout: 252 seconds) 2018-08-30T22:54:13Z AeroNotix: I put on my #'CAR and #'CDR hat 2018-08-30T22:57:33Z no-defun-allowed: I spend my unallocated memory to coerce my list to a vector. 2018-08-30T23:00:18Z ealfonso joined #lisp 2018-08-30T23:00:33Z ealfonso: jasom thanks 2018-08-30T23:02:38Z ealfonso: can I write a nested destructuring list macro argument as an &optional or &key argument? 2018-08-30T23:02:53Z Bike: yes. 2018-08-30T23:03:36Z Bike: you have to be careful since both of those can be lists though. 2018-08-30T23:03:47Z pierpal quit (Quit: Poof) 2018-08-30T23:04:06Z pierpal joined #lisp 2018-08-30T23:04:15Z Bike: like if you have (&key (x y)) it will interpret that as keyword :x, variable x, default y 2018-08-30T23:04:39Z Bike: in particular you'll have to explicitly specify the keyword 2018-08-30T23:06:58Z jasom: ealfonso: oh, be aware that (uiop:pathname-parent-directory-pathname #p"/foo/bar") => #p"/" because the parent directory of the file bar in the directory /foo is / 2018-08-30T23:07:19Z jasom: but (uiop:pathname-parent-directory-pathname "/foo/bar/") => #p"/foo/" 2018-08-30T23:08:17Z jasom: ealfonso: if you want to have the parameter always treated as a directory you can use uiop:ensure-directory-pathname on it first 2018-08-30T23:09:29Z SenasOzys joined #lisp 2018-08-30T23:12:32Z ealfonso: jasom thanks 2018-08-30T23:13:51Z ealfonso: Bike I want to allow the macro user to provide a two-type (sym form) where form uses sym. But I don't want to make them required 2018-08-30T23:14:37Z ealfonso: Bike what do you mean by explicitly specify the keywoard 2018-08-30T23:15:05Z jasom: clhs 3.4.1.4 2018-08-30T23:15:06Z specbot: Specifiers for keyword parameters: http://www.lispworks.com/reference/HyperSpec/Body/03_dad.htm 2018-08-30T23:15:44Z jasom: ealfonso: note from that link the example of: (&key ((:radix radix)) ((:type type) 'integer)) ...) 2018-08-30T23:17:07Z Jesin quit (Quit: Leaving) 2018-08-30T23:18:09Z ealfonso: I see. I guess I can replace :type with (var1 var2) and 'integer with the corresponding default to get nested destructuring? 2018-08-30T23:18:42Z lnostdal quit (Ping timeout: 252 seconds) 2018-08-30T23:20:05Z Bike: replace in what? 2018-08-30T23:20:21Z Bike: in the example? because then it's type you need to replace, not :type 2018-08-30T23:20:36Z ealfonso: yes 2018-08-30T23:21:07Z Bike: :type is the keyword you'll pass in for that 2018-08-30T23:21:38Z Bike: so like, if you have (&key ((:type (a b) '(x y)))), you could pass :type (3 4) or something. 2018-08-30T23:21:44Z Bike: er 2018-08-30T23:21:54Z Bike: (&key ((:type (a b)) '(x y))) 2018-08-30T23:22:36Z cgay quit (Read error: Connection reset by peer) 2018-08-30T23:25:48Z pierpa joined #lisp 2018-08-30T23:26:04Z LiamH quit (Quit: Leaving.) 2018-08-30T23:31:26Z lnostdal joined #lisp 2018-08-30T23:32:56Z it3ration joined #lisp 2018-08-30T23:33:06Z it3ration: Hey folks, is this the main channel for Common Lisp? 2018-08-30T23:33:12Z Bike: yes. 2018-08-30T23:33:40Z it3ration: great thanks - I had a question or two if anyone has a second 2018-08-30T23:33:57Z Bike: ask away. 2018-08-30T23:34:39Z it3ration: I use Clojure in my day job and have been an Emacs hacker for about a decade - I'm trying to understand how Common Lisp handles (or if it has) any similar way of namespacing the way Clojure does 2018-08-30T23:35:00Z AeroNotix: it3ration: quite similar 2018-08-30T23:35:04Z AeroNotix: but not the same 2018-08-30T23:35:12Z Bike: i don't know how clojure works, but in lisp the namespacing is "packages". 2018-08-30T23:35:13Z it3ration: Is there any way to have namespaced keywords? 2018-08-30T23:35:17Z AeroNotix: it3ration: yes 2018-08-30T23:35:25Z AeroNotix: keywords are in packages 2018-08-30T23:35:37Z it3ration: AeroNotix: ah ok, good to know 2018-08-30T23:35:41Z jack_rabbit joined #lisp 2018-08-30T23:35:44Z serichsen: Uhwat 2018-08-30T23:35:47Z lnostdal quit (Ping timeout: 240 seconds) 2018-08-30T23:35:57Z Bike: what do you mean by "keyword"? 2018-08-30T23:36:00Z serichsen: Keywords are symbols in the keyword package. 2018-08-30T23:36:28Z AeroNotix: Bike: clojure has :keywords, quite similar to CL's 2018-08-30T23:36:34Z rpg joined #lisp 2018-08-30T23:37:13Z Bike: those are used for more than one thing, is all 2018-08-30T23:37:24Z Bike: and like serichsen said, in cl "keyword" means symbols in a particular package 2018-08-30T23:37:32Z it3ration: specifically, in Clojure you can distinguish between the same keyword defined in separate namespaces, for example, :user/foobar 2018-08-30T23:37:41Z it3ration: where user is a namespace 2018-08-30T23:37:48Z AeroNotix: it3ration: no they are all in one package 2018-08-30T23:37:58Z serichsen: For that, I'd just use symbols. 2018-08-30T23:38:00Z AeroNotix: you can kind of get the same effect though by manually namespacing them 2018-08-30T23:38:01Z it3ration: Ah ok, good to know 2018-08-30T23:38:30Z it3ration: Are there any good libraries that introduce laziness in CL? 2018-08-30T23:38:34Z AeroNotix: it3ration: http://www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html 2018-08-30T23:38:45Z serichsen: it3ration: FSET 2018-08-30T23:39:11Z Bike: i mean, for example for &key parameters, you can use arbitrary symbols, so there's namespacing there 2018-08-30T23:39:41Z shlemas joined #lisp 2018-08-30T23:40:04Z it3ration: AeroNotix: oh that's PCL right, that's on my reading list actually 2018-08-30T23:40:30Z AeroNotix: it3ration: it's a good book. It doesn't treat CL as some kind of God Language like a lot of other SLW books do 2018-08-30T23:41:03Z serichsen: Ah sorry, FSET is not exactly right, but there are several hits for "common lisp lazy" on duckduckgo. 2018-08-30T23:42:47Z it3ration: I've been pretty spoiled by Clojure's immutability, concurrency primitives, laziness, and consistency - I've used Emacs Lisp for years but never played with CL, it's very different from Clojure 2018-08-30T23:43:34Z eddof13 quit (Ping timeout: 240 seconds) 2018-08-30T23:43:38Z AeroNotix: and Emacs Lisp 2018-08-30T23:44:15Z AeroNotix: it3ration: aside from core.async do you actually use the other primitives regularly? I wrote clojure for a couple of years professionally and none of my problems fit those use-cases 2018-08-30T23:44:38Z bradcomp quit (Ping timeout: 245 seconds) 2018-08-30T23:45:16Z figurehe4d joined #lisp 2018-08-30T23:45:30Z figurehe4d quit (Client Quit) 2018-08-30T23:46:09Z p_l: it3ration: you can write :ns/keyword style in CL, it will just bundle the whole thing after : as symbol name 2018-08-30T23:49:36Z it3ration: p_l: ah yeah ok 2018-08-30T23:49:56Z mindCrime joined #lisp 2018-08-30T23:51:28Z lnostdal joined #lisp 2018-08-30T23:51:39Z Jesin joined #lisp 2018-08-30T23:53:53Z dale quit (Quit: dale) 2018-08-30T23:53:59Z it3ration: AeroNotix: you mean concurrency primitives? 2018-08-30T23:54:22Z void_pointer quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2018-08-30T23:56:44Z AeroNotix: it3ration: yeah, just interested in what you actually use. I never found any of them fit many problems. ESPECIALLY the STM 2018-08-30T23:56:54Z AeroNotix: maybe atoms for shitty global values sometimes. 2018-08-30T23:57:01Z PuercoPop quit (Quit: ZNC 1.6.3 - http://znc.in) 2018-08-30T23:58:34Z it3ration quit (Ping timeout: 240 seconds) 2018-08-31T00:03:05Z Hu0p joined #lisp 2018-08-31T00:25:46Z quazimodo quit (Ping timeout: 246 seconds) 2018-08-31T00:26:04Z pjb quit (Ping timeout: 240 seconds) 2018-08-31T00:30:47Z it3ration joined #lisp 2018-08-31T00:36:04Z jasom: it3ration: series is a lazy-ish thing, but it doesn't seem to be very popular 2018-08-31T00:36:55Z jasom: It seems to be more common to explicitly iterate over a generator function rather than have a lazy list 2018-08-31T00:37:19Z jasom: (in common lisp that is) 2018-08-31T00:37:30Z Lycurgus quit (Quit: Exeunt) 2018-08-31T00:39:27Z it3ration quit (Ping timeout: 240 seconds) 2018-08-31T00:41:37Z aeth: What's the best way to assert two things? If you assert them separately, you risk the user correcting the 2nd assert by providing something that fails the 1st assert. If you assert them together, then the user does not know which of the two failed in particular. 2018-08-31T00:51:12Z ealfonso quit (Ping timeout: 250 seconds) 2018-08-31T00:52:04Z aeth: The only thing I can think of right now is doing the assertion test twice, once together in the assert and then again in the error message. 2018-08-31T00:56:01Z papachan quit (Quit: WeeChat 2.2) 2018-08-31T00:57:29Z elfmacs joined #lisp 2018-08-31T00:58:29Z quazimodo joined #lisp 2018-08-31T01:00:47Z mindCrime quit (Ping timeout: 240 seconds) 2018-08-31T01:05:12Z zxcvz quit (Ping timeout: 272 seconds) 2018-08-31T01:15:30Z shlemas quit (Quit: shlemas) 2018-08-31T01:15:56Z shlemas joined #lisp 2018-08-31T01:17:12Z SenasOzys quit (Ping timeout: 250 seconds) 2018-08-31T01:17:13Z JuanDaugherty joined #lisp 2018-08-31T01:23:22Z PuercoPop joined #lisp 2018-08-31T01:24:04Z charh quit (Ping timeout: 240 seconds) 2018-08-31T01:25:43Z zxcvz joined #lisp 2018-08-31T01:28:25Z zxcvz quit (Client Quit) 2018-08-31T01:28:37Z zxcvz joined #lisp 2018-08-31T01:30:46Z shlemas quit (Quit: shlemas) 2018-08-31T01:30:58Z JuanDaugherty quit (Quit: Exeunt) 2018-08-31T01:31:00Z SenasOzys joined #lisp 2018-08-31T01:31:25Z Lycurgus joined #lisp 2018-08-31T01:32:43Z v0|d quit (Remote host closed the connection) 2018-08-31T01:35:10Z dddddd quit (Remote host closed the connection) 2018-08-31T01:39:02Z papachan joined #lisp 2018-08-31T01:40:36Z serichsen quit (Ping timeout: 252 seconds) 2018-08-31T01:41:02Z mange joined #lisp 2018-08-31T02:00:27Z SenasOzys quit (Ping timeout: 240 seconds) 2018-08-31T02:17:27Z papachan quit (Ping timeout: 252 seconds) 2018-08-31T02:20:28Z jack_rabbit quit (Ping timeout: 250 seconds) 2018-08-31T02:22:03Z jack_rabbit joined #lisp 2018-08-31T02:24:59Z anewuser joined #lisp 2018-08-31T02:25:07Z buffergn0me joined #lisp 2018-08-31T02:25:19Z igemnace joined #lisp 2018-08-31T02:26:35Z zotan quit (Ping timeout: 276 seconds) 2018-08-31T02:29:07Z Lycurgus quit (Quit: Exeunt) 2018-08-31T02:31:06Z mindCrime joined #lisp 2018-08-31T02:35:47Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-31T02:35:48Z it3ration joined #lisp 2018-08-31T02:37:51Z quazimodo joined #lisp 2018-08-31T02:39:55Z renzhi joined #lisp 2018-08-31T02:40:31Z it3ration quit (Ping timeout: 246 seconds) 2018-08-31T02:41:48Z meepdeew joined #lisp 2018-08-31T02:43:19Z mindCrime quit (Ping timeout: 246 seconds) 2018-08-31T02:46:48Z papachan joined #lisp 2018-08-31T02:52:34Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-31T02:52:50Z quazimodo joined #lisp 2018-08-31T03:01:04Z danielxvu joined #lisp 2018-08-31T03:08:16Z lemonpepper24 joined #lisp 2018-08-31T03:23:33Z Roy_Fokker quit (Read error: Connection reset by peer) 2018-08-31T03:28:54Z Bike quit (Quit: Lost terminal) 2018-08-31T03:29:27Z jinkies joined #lisp 2018-08-31T03:30:19Z pierpa quit (Quit: Page closed) 2018-08-31T03:31:52Z caltelt joined #lisp 2018-08-31T03:37:58Z NB0X-Matt-CA quit (Ping timeout: 245 seconds) 2018-08-31T03:39:22Z earl-ducaine: A style question for Lispizens! I've always considered &aux barbaric. But I realize such conventions are usage driven more than from a perspective of practicality. 2018-08-31T03:39:24Z earl-ducaine: A quick survey of local ql seem to indicate that it's a rare usage, but not absent. Do people have strong personal preferences? Have they seen code where its usage is styalistically prefered in certain contexts? 2018-08-31T03:41:36Z elfmacs quit (Ping timeout: 252 seconds) 2018-08-31T03:41:56Z NB0X-Matt-CA joined #lisp 2018-08-31T03:48:11Z panji joined #lisp 2018-08-31T03:51:16Z asarch joined #lisp 2018-08-31T03:53:15Z it3ration joined #lisp 2018-08-31T03:54:03Z pierpal: nobody uses &aux. it's a fossil from prehistoric lisps. 2018-08-31T03:56:02Z drmeister: Say you are in the process of typing in form: (foo (bar "this is a" 1 2 3 . What libraries would help me find "bar"? 2018-08-31T03:57:10Z pierpal: to be more precise, it is there to allow some compatibility with interlisp 2018-08-31T03:58:33Z drmeister: I've used &aux in certain contexts. 2018-08-31T03:59:01Z pierpal: I knew someone would have objected :) 2018-08-31T04:00:07Z drmeister: Object? It's part of the standard - it's handy when you want to define a compact lambda. 2018-08-31T04:02:43Z pierpal quit (Quit: Poof) 2018-08-31T04:03:00Z pierpal joined #lisp 2018-08-31T04:08:00Z beach: Good morning everyone! 2018-08-31T04:08:06Z drmeister: Hi beach 2018-08-31T04:08:35Z drmeister: beach: Say you are in the process of typing in form: (foo (bar "this is a" 1 2 3 . Could eclector help me find "bar"? 2018-08-31T04:09:21Z beach: Sure. 2018-08-31T04:09:38Z beach: You need to parse the input, so it can be a "parse result" or a CST. 2018-08-31T04:10:01Z beach: I am not sure whether scymtym has finished the possibility of parsing incomplete input, but it is planned. 2018-08-31T04:10:12Z nanoz joined #lisp 2018-08-31T04:10:17Z beach: Then you need to know the position of in the parsed expression. 2018-08-31T04:10:35Z beach: Then you just ask the implementation for the definitio of BAR. 2018-08-31T04:10:39Z beach: definition 2018-08-31T04:11:46Z no-defun-allowed: morning beach 2018-08-31T04:11:49Z drmeister: I can get the position of point in the parsed expression by comparing the source location of each cst element to the position of the ? 2018-08-31T04:13:30Z beach: Definitely. 2018-08-31T04:14:48Z beach: You would probably do a tree search. Start with the root, figure out in which child it is, search that child recursively, until you are either in a leaf, or between two children. 2018-08-31T04:17:12Z pierpal quit (Quit: Poof) 2018-08-31T04:17:31Z pierpal joined #lisp 2018-08-31T04:23:17Z pierpal quit (Quit: Poof) 2018-08-31T04:23:37Z pierpal joined #lisp 2018-08-31T04:36:07Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-31T04:38:18Z quazimodo joined #lisp 2018-08-31T04:39:08Z jinkies quit (Ping timeout: 250 seconds) 2018-08-31T04:39:12Z gector quit (Remote host closed the connection) 2018-08-31T04:39:44Z gector joined #lisp 2018-08-31T04:41:30Z panji quit (Quit: Leaving) 2018-08-31T04:44:16Z orivej joined #lisp 2018-08-31T04:45:04Z no-defun-allowed: okay, very important style question here: should i spell quanti[zs]e and normali[zs]e with a Z or S? 2018-08-31T04:45:15Z no-defun-allowed: i'd assume CL uses american spelling 2018-08-31T04:48:49Z beach: Typically, yes. But I think as long as you are consistent, you should be fine. 2018-08-31T04:51:16Z quazimodo quit (Ping timeout: 250 seconds) 2018-08-31T04:53:16Z quazimodo joined #lisp 2018-08-31T04:54:34Z no-defun-allowed: i already went with "colours" too so i guess i'm stuck with british english 2018-08-31T04:54:45Z no-defun-allowed: at least i don't have to measure my images in inches 2018-08-31T04:55:32Z edgar-rft: amerian would be colorz :-) 2018-08-31T04:56:48Z no-defun-allowed: i'm working on a simple video effect processor cause kdenlive's green screen is horrid 2018-08-31T04:58:43Z edgar-rft: The CL ANSI spec is an american thing. The arpanet was too slow at that time so communicating with europe was abandoned (if I know that right). 2018-08-31T05:00:31Z jackdaniel: "arpanet was slow"? how long did email travel from us to europe? maybe they should use the postmail 2018-08-31T05:01:17Z jackdaniel: from what I've read (I don't remember the sources) they simply didn't include europe because were not interested in suchc cooperation 2018-08-31T05:02:37Z jackdaniel: but according to this you are right: http://www.nhplace.com/kent/Papers/cl-untold-story.html 2018-08-31T05:02:50Z oni-on-ion: prolog for europeans and asians 2018-08-31T05:03:01Z edgar-rft: jackdaniel: section 3.3 "The exclusion of Europe and Japan" in 2018-08-31T05:03:16Z jackdaniel: ditto 2018-08-31T05:03:27Z edgar-rft: you were faster than me :-) 2018-08-31T05:04:06Z oni-on-ion: ;p 2018-08-31T05:04:39Z jackdaniel: otoh one could argue, that Kent Pitman was one of these guys. who'd say: "because *we* didn't want to cooperate with them" ;-) 2018-08-31T05:04:47Z jackdaniel: ? 2018-08-31T05:04:57Z asarch_ joined #lisp 2018-08-31T05:05:01Z oni-on-ion: you had a link 2018-08-31T05:05:10Z anewuser quit (Read error: Connection reset by peer) 2018-08-31T05:05:12Z edgar-rft: ...and of course there was no arpanet outside of the US, but I don't know what else they used for email at taht time 2018-08-31T05:05:34Z asarch quit (Read error: Connection reset by peer) 2018-08-31T05:05:44Z oni-on-ion: we have lisp in prolog and prolog in lisp, in several ways. what about symbolics network, was it called ghost ? 2018-08-31T05:05:48Z PuercoPop: Is there a way to 'right align' with format when specifying a width? ej. "depth ~2A" where the A is going to be a number. I want the extra space to be at the before inserting the number if it is only a 1 digit one. 2018-08-31T05:06:20Z oni-on-ion: oh https://hanshuebner.github.io/lmman/chaos.xml 2018-08-31T05:06:53Z dmiles quit (Read error: Connection reset by peer) 2018-08-31T05:11:03Z dmiles joined #lisp 2018-08-31T05:11:17Z jackdaniel: PuercoPop: only for integers 2018-08-31T05:11:20Z anewuser joined #lisp 2018-08-31T05:12:53Z PuercoPop: So ~2<~A~> seems to do what I want. Not sure how exactly 2018-08-31T05:12:54Z PuercoPop: jackdaniel: yeah, there are integers in this cas 2018-08-31T05:12:54Z PuercoPop: *case 2018-08-31T05:13:42Z housel quit (Remote host closed the connection) 2018-08-31T05:13:51Z jackdaniel: after a thought, I'm wrong, you may do that with anything 2018-08-31T05:14:04Z jackdaniel: (format t "depth:~32t~a" "jackdaniel") 2018-08-31T05:14:12Z jackdaniel: with tabulate 2018-08-31T05:14:28Z jackdaniel: for decimals that would be (format t "depth:~32d" 234) 2018-08-31T05:15:04Z it3ration quit (Ping timeout: 240 seconds) 2018-08-31T05:16:04Z anewuser quit (Quit: anewuser) 2018-08-31T05:18:34Z nanoz quit (Ping timeout: 250 seconds) 2018-08-31T05:18:58Z no-defun-allowed tests her green screen implementation 2018-08-31T05:19:12Z no-defun-allowed: hey it almost worked 2018-08-31T05:19:32Z jackdaniel: the only problem is that it did turn out to be red? 2018-08-31T05:20:05Z no-defun-allowed: it's more like Photo Booth.app's thing actually 2018-08-31T05:20:17Z no-defun-allowed: it takes a "reference picture" and replaces everything different enough 2018-08-31T05:22:05Z no-defun-allowed: i can't find the picture that shows what it shouldn't look like 2018-08-31T05:22:15Z no-defun-allowed uploaded an image: foo.png (19KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/UxKpRUTiWQxnojQxWQCKBPqY > 2018-08-31T05:23:18Z no-defun-allowed: i guess the margin is set too high for black on brownish 2018-08-31T05:23:41Z no-defun-allowed: [the input images were these](https://imgur.com/a/gm0Au6w) 2018-08-31T05:25:14Z no-defun-allowed uploaded an image: foo.png (20KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/cXsPJSlBCUqrTjNLjKNvnDOl > 2018-08-31T05:36:18Z quazimodo quit (Ping timeout: 245 seconds) 2018-08-31T05:36:33Z gector quit (Read error: Connection reset by peer) 2018-08-31T05:37:29Z gector joined #lisp 2018-08-31T05:38:27Z quazimodo joined #lisp 2018-08-31T05:45:30Z it3ration joined #lisp 2018-08-31T05:46:57Z housel joined #lisp 2018-08-31T05:47:01Z meepdeew quit 2018-08-31T05:48:40Z azimut quit (Quit: Adios) 2018-08-31T05:49:47Z azimut joined #lisp 2018-08-31T05:50:13Z caltelt quit (Ping timeout: 246 seconds) 2018-08-31T05:50:42Z kilfer joined #lisp 2018-08-31T05:51:01Z kilfer left #lisp 2018-08-31T05:51:25Z jeosol joined #lisp 2018-08-31T05:51:25Z Inline quit (Quit: Leaving) 2018-08-31T05:51:52Z jeosol quit (Client Quit) 2018-08-31T05:53:42Z it3ration quit (Ping timeout: 252 seconds) 2018-08-31T06:03:36Z jack_rabbit quit (Ping timeout: 252 seconds) 2018-08-31T06:05:49Z jack_rabbit joined #lisp 2018-08-31T06:06:30Z vlatkoB joined #lisp 2018-08-31T06:10:42Z elfmacs joined #lisp 2018-08-31T06:15:04Z orivej quit (Ping timeout: 246 seconds) 2018-08-31T06:20:59Z Ober: wW 2018-08-31T06:23:01Z orivej joined #lisp 2018-08-31T06:28:51Z nydel joined #lisp 2018-08-31T06:38:02Z shrdlu68 joined #lisp 2018-08-31T06:41:22Z wodwos joined #lisp 2018-08-31T06:56:24Z asarch_ quit (Quit: Leaving) 2018-08-31T06:59:10Z scymtym quit (Ping timeout: 246 seconds) 2018-08-31T07:08:11Z steiner quit (Remote host closed the connection) 2018-08-31T07:08:44Z shka_ joined #lisp 2018-08-31T07:11:06Z dmiles quit (Read error: Connection reset by peer) 2018-08-31T07:12:18Z phoe: beach: Have you done any work on a spellchecker? I remembering you having such a project once. 2018-08-31T07:13:02Z beach: Yes, I did. 2018-08-31T07:13:08Z beach: Let me see what I have... 2018-08-31T07:13:22Z steiner joined #lisp 2018-08-31T07:14:35Z beach: Not much: https://github.com/robert-strandh/Spell 2018-08-31T07:14:49Z beach: You can't use a hash table, really. 2018-08-31T07:14:54Z beach: You need completion. 2018-08-31T07:15:00Z beach: So it is best to use a tree. 2018-08-31T07:15:29Z phoe: beach: yes, I know this much. 2018-08-31T07:15:34Z dmiles joined #lisp 2018-08-31T07:15:56Z beach: Having such a thing would be great. 2018-08-31T07:16:17Z beach: Also, if it includes the word categories possible for each one, that would help the future grammar checker. 2018-08-31T07:17:07Z varjag joined #lisp 2018-08-31T07:17:31Z phoe: Yes, I see. 2018-08-31T07:17:45Z phoe: I'll try munching on https://github.com/robert-strandh/Spell/blob/master/Lisp-Wordlist/spell.lisp in a spare while today. 2018-08-31T07:18:50Z scymtym joined #lisp 2018-08-31T07:19:30Z beach: Sounds good. 2018-08-31T07:26:33Z orivej quit (Ping timeout: 252 seconds) 2018-08-31T07:27:43Z zfree quit (Quit: zfree) 2018-08-31T07:28:13Z no-defun-allowed: i got cl-vep to render a video 2018-08-31T07:33:30Z detectiveaoi quit (Quit: Leaving...) 2018-08-31T07:36:52Z phoe: beach: it's not really a Lisp question, but, we have a tree (or even, a trie) of words like the ones that you have constructed. That way, we can look up words that are correct. 2018-08-31T07:37:32Z phoe: Now, based on that, we need an algorithm that will look up suggestion for words that were not found. For example, we have "across" in the example dictionary that you created, and we'd like it to turn up as a suggestion if we type "acros". 2018-08-31T07:37:49Z phoe: Or even, "akross". 2018-08-31T07:39:30Z phoe: I also assume that you want to be automatically able to parse the english-* files in your repository and create entries based on each line inside them. 2018-08-31T07:42:07Z shrdlu68: Levenshtein distance could help in the first case. 2018-08-31T07:43:06Z phoe: Yep, reading about it right now 2018-08-31T07:49:54Z it3ration joined #lisp 2018-08-31T07:50:06Z shka_: phoe: ues some metric and data structure for faster lookup 2018-08-31T07:50:17Z shka_: m-tree, egnat, whatever 2018-08-31T07:50:32Z shka_: cl-ds has egnat implementation 2018-08-31T07:50:58Z shka_: if you are doing java, go for elastic search 2018-08-31T07:51:16Z shka_: sort of overkill but it works well 2018-08-31T07:53:07Z shka_: if you need to find word with similar meaning, things are slightly more complicated 2018-08-31T07:53:28Z shka_: ok, time to get stuff done 2018-08-31T07:53:30Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-31T07:55:10Z it3ration quit (Ping timeout: 252 seconds) 2018-08-31T07:55:26Z quazimodo joined #lisp 2018-08-31T07:59:56Z dtornabene joined #lisp 2018-08-31T08:06:54Z panji joined #lisp 2018-08-31T08:14:30Z buffergn0me quit (Ping timeout: 250 seconds) 2018-08-31T08:16:55Z beach: phoe: What shrdlu68 said. There are algorithms for that kind of stuff. 2018-08-31T08:17:17Z xificurC joined #lisp 2018-08-31T08:17:44Z beach: shka_: Faster lookup won't be necessary. Most of the time, the exact match will be found, and when it is not, it is more important to get good advice that to get good performance. 2018-08-31T08:18:31Z xificurC: given this cl-i.asd file: http://ix.io/1lDG I can (asdf:load-system :cl-i) and get T but (asdf:test-sytem :cl-i) just returns T without actually running the tests. Is there some glaring error in the definitions of the systems? 2018-08-31T08:18:35Z shka_: beach: why not both? :-) 2018-08-31T08:18:58Z beach: shka_: Sure, with unlimited staff resources, that's a good plan. 2018-08-31T08:19:18Z beach: shka_: But we don't have that, so wee need to think about simplicity and maintainability. 2018-08-31T08:19:38Z xificurC: for the record I cannot (asdf:load-system :cl-i-tests) this way. I'm not sure what is the idiomatic way to organize a library and its tests 2018-08-31T08:19:41Z shka_: well, ok 2018-08-31T08:19:44Z jackdaniel: xificurC: shouldin't it be in :cl-itests definition 2018-08-31T08:20:00Z jackdaniel: :in-order-to (test-op (o c) (uiop:symbol-call :1am :run)) ; ? 2018-08-31T08:20:06Z mange quit (Remote host closed the connection) 2018-08-31T08:20:49Z beach: xificurC: What is the name of the file? 2018-08-31T08:21:13Z Shinmera: Here's a working example for tests https://github.com/Shinmera/3d-vectors/blob/master/3d-vectors-test.asd https://github.com/Shinmera/3d-vectors/blob/master/3d-vectors.asd 2018-08-31T08:22:13Z xificurC: jackdaniel: I'll try 2018-08-31T08:22:17Z beach: xificurC: ASDF finds the system based on the name of the file. So if the name of the file is not cl-i-tests.asd then it won't find your system. 2018-08-31T08:22:18Z xificurC: beach: cl-i.asd 2018-08-31T08:22:38Z jackdaniel: beach: in fact it will, because in order to find cl-i (which is tested) it must load whole asd 2018-08-31T08:22:40Z xificurC: as pasted there's 2 systems defined in 1 file 2018-08-31T08:22:44Z jackdaniel: so the side effect will be registering -test system 2018-08-31T08:23:08Z beach: jackdaniel: That works only if cl-i has been asked for first. 2018-08-31T08:23:25Z jackdaniel: yes, and it is called like (asdf:test-system :cl-i) 2018-08-31T08:23:37Z jackdaniel: so the direct reference is to :cl-i which must be found 2018-08-31T08:23:51Z beach: But nothing was said about cl-i having been requested first. 2018-08-31T08:24:19Z xificurC: beach: it was, read the first inquiry 2018-08-31T08:24:23Z jackdaniel: according to what I've read above (asdf:test-system :cl-i) is called 2018-08-31T08:24:43Z beach: Oh, sorry, missed it. 2018-08-31T08:25:15Z jackdaniel: not that depending on side-effects is wise 2018-08-31T08:25:31Z jackdaniel: xificurC: if you define it in the same file, way recommended by asdf authors is to name it cl-i/tests 2018-08-31T08:26:10Z svillemot quit (Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in) 2018-08-31T08:26:32Z xificurC: I was copying this - https://gitlab.common-lisp.net/asdf/asdf/blob/master/doc/best_practices.md#trivial-testing-definition 2018-08-31T08:26:53Z svillemot joined #lisp 2018-08-31T08:27:00Z xificurC: yes there's a slash, if that is part of the best practices advice I can rename it 2018-08-31T08:27:01Z svillemot quit (Client Quit) 2018-08-31T08:27:41Z jackdaniel: magic name conventions affecting library behavior are something what makes my day ;) 2018-08-31T08:27:52Z jackdaniel: (every time) 2018-08-31T08:28:21Z xificurC: you think renaming it will make it to work? haha 2018-08-31T08:28:41Z jackdaniel: no, I think that problem is soemthing else 2018-08-31T08:29:13Z jackdaniel: I'm just expressing my dissatisfaction with asdf 2018-08-31T08:29:30Z svillemot joined #lisp 2018-08-31T08:33:07Z scymtym: i guess the SYSTEM/SUB-NAME naming requirement for defining multiple systems in the same file was chosen because SYSTEM/SUB-NAME.asd would not be a valid filename 2018-08-31T08:33:44Z orivej joined #lisp 2018-08-31T08:34:06Z phoe: beach: just a minor finding, you defclass NODE but don't use it as a superclass of anything later on. 2018-08-31T08:34:13Z jackdaniel: I'm aware of that, still it is just one step from making comments affecting inner workings of your library 2018-08-31T08:35:09Z scymtym: that's an exaggeration but i'm not going to argue 2018-08-31T08:36:01Z xificurC: I have no idea why this isn't working. Before I had 2 asd files but I was the best practices page do it in 1 and thought it might be cleaner 2018-08-31T08:36:26Z xificurC: so now I'm in the stage where someone might say it's cleaner, but it's not working :) 2018-08-31T08:37:15Z beach: phoe: That's entirely possible. 2018-08-31T08:37:17Z beach: Thanks. 2018-08-31T08:38:27Z zfree joined #lisp 2018-08-31T08:39:10Z phoe: beach: I assume that I should, for now, focus on a way of parsing the english-* files, correct? 2018-08-31T08:39:33Z xificurC: the fact that it returns T is really strange though 2018-08-31T08:39:47Z phoe: And once that's done, I need to figure out how much memory the loaded dictionary uses. 2018-08-31T08:41:23Z beach: phoe: Probably so, yes. 2018-08-31T08:41:28Z scymtym: xificurC: your example seems to work here. it returns t as you observe, but i see "Success: 0 tests, 0 checks." being written to standard output 2018-08-31T08:41:43Z scymtym: (between asdf warnings, of course) 2018-08-31T08:41:53Z xificurC: what warnings 2018-08-31T08:42:24Z beach: phoe: If you store a single character per node, it may be a bit more expensive than necessary, but that might not be a problem. 2018-08-31T08:42:37Z scymtym: xificurC: about naming the secondary system "cl-i/test" 2018-08-31T08:43:12Z phoe: beach: your code seems to do exactly that, storing one character per node. 2018-08-31T08:43:16Z phoe: But I'll worry about optimization later. 2018-08-31T08:43:25Z beach: Yes, and I don't think it is a problem. 2018-08-31T08:43:49Z xificurC: I'm pushing a path to asdf:*central-registry* to get my asd found, can there be a difference in what asdf does with a system found this way? Before asking, yes, I have to. 2018-08-31T08:44:03Z beach: phoe: The total contents of all the files is a bit more than 5 MB. 2018-08-31T08:44:26Z Bronsa joined #lisp 2018-08-31T08:45:11Z beach: phoe: But many prefixes will be shared, and you don't have to store every basic form with every derived form. 2018-08-31T08:45:29Z beach: phoe: So I am willing to bet that you will be fine with the simple structure. 2018-08-31T08:45:35Z scymtym: xificurC: i don't know/use ASDF:*CENTRAL-REGISTRY*, sorry 2018-08-31T08:45:38Z phoe: beach: 5 MB? I don't understand just yet. 2018-08-31T08:45:54Z beach: Oh, sorry, much more. 2018-08-31T08:45:58Z beach: I misread the output. 2018-08-31T08:46:00Z phoe: The english-* files, when summed up, are hundreds of megabytes. 2018-08-31T08:46:06Z jdz: xificurC: asdf:*central-registry* is deprecated, btw. 2018-08-31T08:46:06Z beach: Yes, yes. 2018-08-31T08:46:07Z beach: Sorry. 2018-08-31T08:46:12Z beach: Not my day, apparently. 2018-08-31T08:46:41Z phoe: Three hundred megabytes. I assume the tree will compress it a little bit. 2018-08-31T08:46:49Z phoe: Again, I have enough RAM - I'll think about optimizing this later. 2018-08-31T08:46:54Z beach: phoe: So yes, try the simple thing and see how much space it takes. 2018-08-31T08:47:01Z phoe: Okiedokie. 2018-08-31T08:47:01Z beach: Exactly. 2018-08-31T08:47:49Z phoe: Also, one more thing - I don't even have to store the final forms of the words in the leaf nodes. The tree structure is enough. 2018-08-31T08:48:05Z shka_: obviously 2018-08-31T08:48:12Z phoe: Yep - beach's code is currently doing that. 2018-08-31T08:48:23Z phoe: So there's plenty of space for optimization. 2018-08-31T08:50:00Z phoe: I'll parse the dict files first and load them up second. 2018-08-31T08:55:18Z azimut_ joined #lisp 2018-08-31T08:57:24Z azimut quit (Ping timeout: 252 seconds) 2018-08-31T08:57:40Z phoe: beach: gan 2018-08-31T08:57:44Z phoe: woops, sorry 2018-08-31T08:57:45Z phoe: beach: gah 2018-08-31T08:57:57Z phoe: it seems that these english-* files contain a hell lot of repetition 2018-08-31T08:58:13Z phoe: they seem a little bit like they're one and the same file, but differently processed 2018-08-31T08:58:38Z phoe: like, english-1 contains words in some kind of dictionary notation where english-16 contains them in quasi-Lisp notation 2018-08-31T08:58:44Z phoe: with quoted strings and keyword arguments 2018-08-31T08:59:20Z phoe: https://plaster.tymoon.eu/view/901#901 2018-08-31T08:59:29Z beach: Oh, I see. 2018-08-31T09:00:02Z phoe: Does it mean that I can ignore the files english-[1,15]? 2018-08-31T09:00:09Z phoe: It absolutely seems so to me 2018-08-31T09:00:14Z beach: Try it. 2018-08-31T09:00:52Z shrdlu68 quit (Ping timeout: 250 seconds) 2018-08-31T09:01:32Z vlatkoB quit (Remote host closed the connection) 2018-08-31T09:03:01Z vlatkoB joined #lisp 2018-08-31T09:06:14Z nowhere_man joined #lisp 2018-08-31T09:07:35Z pierpal quit (Quit: Poof) 2018-08-31T09:07:55Z pierpal joined #lisp 2018-08-31T09:08:04Z igemnace quit (Read error: Connection reset by peer) 2018-08-31T09:09:38Z phoe: Hmmm. 2018-08-31T09:11:00Z beach: What? 2018-08-31T09:11:10Z phoe: (WORD :SPELLING "expostulated" :BASE "expostulate" :TENSE :PAST :STRENGH :WEAK) 2018-08-31T09:11:27Z phoe: Invalid initialization argument: :STRENGH in call for class # 2018-08-31T09:11:35Z xificurC: scymtym: in the end restarting emacs did the trick. 2018-08-31T09:11:53Z beach: phoe: Is this my code? 2018-08-31T09:11:55Z phoe: Should I just &allow-other-keys to ignore the unknown keywords? Or should I patch the classes to include the new arguments? 2018-08-31T09:12:06Z phoe: beach: no, it's the call I make. 2018-08-31T09:12:10Z beach: I see. 2018-08-31T09:12:30Z jdz: :STRENGH is a misspelling of :STRENGTH? 2018-08-31T09:12:30Z beach: It appears that the information is important, so patch the class, I would say. 2018-08-31T09:12:33Z phoe: english-16 contains lines like "expostulated" :type :verb :base "expostulate" :tense :past :strength :weak 2018-08-31T09:12:38Z phoe: jdz: ! 2018-08-31T09:12:41Z phoe: I didn't notice that 2018-08-31T09:12:48Z beach: Me neither. :( 2018-08-31T09:12:55Z phoe: that's right 2018-08-31T09:12:59Z splittist: you folks need a spell checker (: 2018-08-31T09:13:07Z beach: Heh. 2018-08-31T09:13:26Z phoe: splittist: I laughed so hard 2018-08-31T09:13:44Z jdz: The one word everybody should know, longest one with a single vowel. 2018-08-31T09:13:57Z jdz: As far as I know. 2018-08-31T09:14:28Z ogamita joined #lisp 2018-08-31T09:16:44Z Xof: twelfths 2018-08-31T09:17:00Z splittist: but strengths 2018-08-31T09:17:06Z splittist: also, schnapps 2018-08-31T09:17:32Z Xof: yeah 2018-08-31T09:18:18Z Xof: London placenames with six consecutive consonants? Countries (three of them) which share no letters with "mackerel"? 2018-08-31T09:18:31Z jackdaniel: do we count character width with no-monospace fonts? ;;) 2018-08-31T09:18:50Z phoe: beach: I have lines like 2018-08-31T09:18:51Z phoe: "underlet" :base "underlet" :type :verb :tense :past STR 2018-08-31T09:19:00Z phoe: I don't know what STR means in that context. 2018-08-31T09:19:32Z phoe: Inside english-1, the line is: 2018-08-31T09:19:32Z phoe: underlet underlet V PAST STR 2018-08-31T09:19:37Z beach: Yes, I see. 2018-08-31T09:20:14Z phoe: Maybe it's :strength :strong? 2018-08-31T09:20:21Z phoe: As opposed to WK, or :strength :weak ? 2018-08-31T09:20:49Z beach: "strong"? 2018-08-31T09:21:26Z phoe: beach: well, I have no idea what :strength means in linguistics 2018-08-31T09:21:34Z phoe: nor what's the opposite of :weak in that context 2018-08-31T09:21:41Z beach: Regular/irregular 2018-08-31T09:23:40Z splittist gets as far as Knightsbridge and then goes back to work 2018-08-31T09:24:05Z beach: phoe: http://learneasygrammer.blogspot.com/2010/12/strong-and-weak-verbs-12.html 2018-08-31T09:25:49Z nowhere_man quit (Ping timeout: 246 seconds) 2018-08-31T09:26:42Z phoe: beach: understood, thanks 2018-08-31T09:27:08Z ogamita quit (Ping timeout: 245 seconds) 2018-08-31T09:27:50Z shka_: phoe: what you are doing anyway? 2018-08-31T09:29:00Z beach: shka_: Spell checker. 2018-08-31T09:29:15Z shka_: cool 2018-08-31T09:30:02Z phoe: "'un" :base "him" :type :pronoun :person :third :number :singular acc :gender :masculine 2018-08-31T09:30:06Z phoe: I don't know what ACC means in there. 2018-08-31T09:32:38Z beach: Accusative case. 2018-08-31T09:32:53Z beach: https://en.wikipedia.org/wiki/Accusative_case 2018-08-31T09:32:56Z phoe: So, :case :accusative 2018-08-31T09:33:27Z no-defun-allowed sets up multithreading for cl-vep 2018-08-31T09:33:36Z no-defun-allowed: shite, i blew the heap 2018-08-31T09:34:13Z orivej quit (Ping timeout: 245 seconds) 2018-08-31T09:34:46Z no-defun-allowed: can i tell slime to give sbcl more heap? 2018-08-31T09:35:38Z scymtym: C-u M-x slime then edit the command accordingly, that is something like sbcl --dynamic-space-size 4000 2018-08-31T09:35:56Z jackdaniel: make it 4096 :-) 2018-08-31T09:36:17Z no-defun-allowed: 4096 it is. 2018-08-31T09:36:32Z no-defun-allowed: ah, i forgot to delhash 2018-08-31T09:36:58Z no-defun-allowed: *remhash 2018-08-31T09:38:32Z igemnace joined #lisp 2018-08-31T09:38:55Z no-defun-allowed: nice, i can get about 40fps now 2018-08-31T09:39:39Z no-defun-allowed: wait a minute the threads are still running -- shit. 2018-08-31T09:40:21Z quazimod1 joined #lisp 2018-08-31T09:40:28Z quazimodo quit (Ping timeout: 245 seconds) 2018-08-31T09:41:21Z phoe: beach: "yourselves" :base "yourselves" :type :pronoun :person :second :number :plural refl 2018-08-31T09:41:43Z phoe: REFL means reflexive, I remember as much - I just don't need how to classify it with a keyword 2018-08-31T09:44:13Z phoe: Oh wait a second - you have a separate class, REFLEXIVE-PRONOUN 2018-08-31T09:45:55Z ogamita joined #lisp 2018-08-31T09:50:53Z it3ration joined #lisp 2018-08-31T09:51:06Z elfmacs quit (Ping timeout: 260 seconds) 2018-08-31T09:54:05Z dtornabene quit (Remote host closed the connection) 2018-08-31T09:56:16Z it3ration quit (Ping timeout: 246 seconds) 2018-08-31T09:57:36Z no-defun-allowed: so now there is around a 1000 frame difference between my workers and ffmpeg 2018-08-31T09:58:28Z ogamita quit (Ping timeout: 272 seconds) 2018-08-31T09:59:23Z Hu0p quit (Quit: Do Macbooks Dream of Electric Sheep?) 2018-08-31T10:03:09Z zfree quit (Quit: zfree) 2018-08-31T10:04:47Z phoe: beach: woop, I found a stray NIL - "an" :base "an" :type :article :definite nil :number :singular 2018-08-31T10:05:29Z phoe: or, wait a second... 2018-08-31T10:05:31Z gravicappa joined #lisp 2018-08-31T10:05:55Z phoe: Nope, it's :DEFINITE that is an unknown keyword 2018-08-31T10:06:27Z phoe: Did you mean :DETERMINATE in there? 2018-08-31T10:08:32Z phoe: I think you did - fixed it in there. 2018-08-31T10:08:38Z panji quit (Remote host closed the connection) 2018-08-31T10:09:29Z jackdaniel: so many keywrods 2018-08-31T10:09:50Z beach: phoe: Yes, very likely. 2018-08-31T10:09:55Z jackdaniel: ops, spellchecker would fix that keywrods for sure, I need to look for one :) 2018-08-31T10:10:14Z beach: phoe: Rather INDEFINITE for "an". 2018-08-31T10:11:17Z scymtym: isn't :definite nil a way of saying indefinite? 2018-08-31T10:11:57Z phoe: beach: :DETERMINATE is the keyword that I have in the class - I'll stick to that one. 2018-08-31T10:12:04Z beach: scymtym: Ah, maybe so. 2018-08-31T10:12:27Z phoe: Once we have parsed the whole dictionary (I'm at 42% now), we can start thinking of refactoring the keywords and such. 2018-08-31T10:12:37Z beach: phoe: I don't think that's the right terminology. 2018-08-31T10:12:58Z beach: Oh, sure, OK. 2018-08-31T10:13:13Z phoe: beach: neither am I, but it works for now. (: 2018-08-31T10:13:16Z phoe: "theirs" :base "theirs" :type :possessive-pronoun ref3pl 2018-08-31T10:13:26Z phoe: Does it mean that it's reflexive? 2018-08-31T10:13:30Z phoe: As well as possessive? 2018-08-31T10:14:22Z beach: I don't know whether THEIRS is considered reflexive. 2018-08-31T10:14:26Z beach: Ask Xof. 2018-08-31T10:14:47Z light2yellow joined #lisp 2018-08-31T10:17:15Z random-nick joined #lisp 2018-08-31T10:19:06Z SaganMan quit (Quit: WeeChat 1.6) 2018-08-31T10:20:49Z dddddd joined #lisp 2018-08-31T10:21:02Z azimut_ quit (Read error: Connection reset by peer) 2018-08-31T10:21:59Z azimut joined #lisp 2018-08-31T10:23:32Z phoe: Hm. "theirs" isn't "themselves" or anything. 2018-08-31T10:23:59Z phoe: At which point, I have no idea what ref3pl means. 2018-08-31T10:25:03Z phoe: You have once translated it as 2018-08-31T10:25:04Z phoe: :number :any :person :third :refnumber :plural 2018-08-31T10:26:30Z phoe: Hm. I'm looking at ref1pl. I think I know how to translate ref3pl based on that. (I hope.) 2018-08-31T10:29:56Z phoe: Okay. Next. 2018-08-31T10:29:59Z phoe: "to" :base "to" :type :verb TO 2018-08-31T10:30:58Z no-defun-allowed: A SB-KERNEL::HEAP-EXHAUSTED-ERROR condition without bindings for heap statistics. (If you did not expect to see this message, please report it.​ 2018-08-31T10:31:04Z no-defun-allowed: i didn't expec that, no 2018-08-31T10:31:19Z phoe: ...if I understand it correctly, it means that "TO" is special, as in, it's a part of some kind of infinitive verb. "to write" 2018-08-31T10:31:28Z phoe: no-defun-allowed: sounds like #sbcl 2018-08-31T10:32:30Z no-defun-allowed: i can imagine how my stupidity caused that so it's probably not very interesting 2018-08-31T10:34:10Z housel quit (Read error: Connection reset by peer) 2018-08-31T10:34:41Z housel joined #lisp 2018-08-31T10:38:20Z no-defun-allowed: i blew the stack at least five times being stupid with bad parallelism 2018-08-31T10:38:36Z phoe: stack? or heap? 2018-08-31T10:38:47Z no-defun-allowed: my bad, heap 2018-08-31T10:38:48Z phoe: stack is per-thread, heap is per-process 2018-08-31T10:38:49Z phoe: yep 2018-08-31T10:38:58Z no-defun-allowed: used to blowing stacks instead of heaps 2018-08-31T10:39:07Z phoe: why not both? 2018-08-31T10:39:27Z no-defun-allowed: cause my genius solution to coordinating writes to one stream from twelve workers is through a counter and hashtable 2018-08-31T10:40:18Z no-defun-allowed: if the writer signals a condition, handler-case hopefully sets a kill flag and the threads return early 2018-08-31T10:40:41Z no-defun-allowed: since the writer is slow, workers wait if the difference between writer frame and workers frame is greater than 500 2018-08-31T10:40:53Z phoe: Yep, I see 2018-08-31T10:41:14Z m00natic joined #lisp 2018-08-31T10:41:23Z no-defun-allowed: that 500 frames is apparently 2.2gb so i might need to lower that further 2018-08-31T10:42:41Z orivej joined #lisp 2018-08-31T10:42:52Z no-defun-allowed: (the moral is: don't bother fuzz testing, just give me a keyboard and repl and i'll break shit somehow) 2018-08-31T10:44:39Z phoe: "born" :base "bear" :type :verb PASSIVE :tense :perfect-participle :strength :strong 2018-08-31T10:45:12Z earl-ducaine quit (Ping timeout: 252 seconds) 2018-08-31T10:45:15Z phoe: beach: there is only one word in the original english-1 dictionary that is PASSIVE and it seems that your VERB class does not have a slot for holding that information. Should I add a slot for that single word or should I convey this information in some other way? 2018-08-31T10:46:26Z no-defun-allowed: i really want to try getting opencl support in cl-vep cause it'd be much faster i think but i don't have any opencl gpus 2018-08-31T10:48:24Z phoe: beach: ....isn't "born" actually a perfect participle or something? Or is "passive verb" a thing in English? 2018-08-31T10:48:55Z Lycurgus joined #lisp 2018-08-31T10:52:06Z LdBeth quit (Remote host closed the connection) 2018-08-31T10:52:19Z no-defun-allowed quit (Read error: Connection reset by peer) 2018-08-31T10:52:59Z phoe: I'll just ignore that one. 2018-08-31T11:05:21Z igemnace quit (Quit: WeeChat 2.2) 2018-08-31T11:09:19Z phoe: I loaded the whole dictionary 2018-08-31T11:09:23Z phoe: And the RAM usage isn't all that scary 2018-08-31T11:13:25Z pierpal quit (Quit: Poof) 2018-08-31T11:13:42Z pierpal joined #lisp 2018-08-31T11:15:05Z nsrahmad joined #lisp 2018-08-31T11:16:04Z SenasOzys joined #lisp 2018-08-31T11:17:12Z dmiles quit (Ping timeout: 244 seconds) 2018-08-31T11:18:05Z no-defun-allowed joined #lisp 2018-08-31T11:18:23Z elfmacs joined #lisp 2018-08-31T11:20:24Z logicmoo joined #lisp 2018-08-31T11:21:27Z nowhere_man joined #lisp 2018-08-31T11:21:30Z beach: phoe: I have no preference what solution to take. 2018-08-31T11:22:48Z beach: phoe: And no, "born" in that sense is not the perfect participle of any verb in active form. 2018-08-31T11:24:13Z quazimod1 quit (Ping timeout: 245 seconds) 2018-08-31T11:25:09Z makomo joined #lisp 2018-08-31T11:26:20Z quazimodo joined #lisp 2018-08-31T11:27:48Z phoe: beach: I see. 2018-08-31T11:29:37Z gector quit (Read error: Connection reset by peer) 2018-08-31T11:30:03Z gector joined #lisp 2018-08-31T11:32:33Z phoe: oh boy, 347491 words loaded 2018-08-31T11:32:56Z phoe: beach: can I work on your repository, or should I fork it and work on my copy? 2018-08-31T11:33:31Z trocado joined #lisp 2018-08-31T11:34:21Z Bronsa quit (Ping timeout: 260 seconds) 2018-08-31T11:37:51Z trocado: hi all! commonqt/qtools question: is it possible to have qt *not* blocking the repl? 2018-08-31T11:38:16Z trocado: Shinmera: I saw your redefinition video, but couldn't reproduce... 2018-08-31T11:38:52Z trocado: it would be nice to be able to create a window with a simple gui to inspect some things, but keep working on the repl 2018-08-31T11:39:27Z Shinmera: Qt needs to be run from the same thread always. As long as that's ensured it's fine. 2018-08-31T11:39:55Z trocado: I tried making a new thread for it but then it complains that it's not running on the main thread 2018-08-31T11:40:12Z phoe: trocado: you have to run *ALL* of Qt on one thread 2018-08-31T11:40:24Z phoe: you can't make and run the QApplication in thread A and then execute stuff in thread B 2018-08-31T11:40:26Z shka_: trocado: it registers main thread during initialization 2018-08-31T11:40:31Z Shinmera: The keyword in what I wrote is always 2018-08-31T11:40:49Z trocado: i see 2018-08-31T11:41:02Z phoe: trocado: what do you need from the REPL though? 2018-08-31T11:41:13Z phoe: I do redefinition by C-c C-c inside emacs when I want it 2018-08-31T11:41:23Z phoe: this gets sent to a swank compilation thread and executed there 2018-08-31T11:41:26Z shka_: trocado: it is the best to build event loop for qt to run and simply post everything there 2018-08-31T11:42:08Z Shinmera: You can also eval things by C-c C-c if you need 2018-08-31T11:44:26Z trocado: yes, i'm thinking this over and maybe it's ok if I have to close the window to get back to the repl 2018-08-31T11:44:32Z SenasOzys quit (Remote host closed the connection) 2018-08-31T11:45:05Z SenasOzys joined #lisp 2018-08-31T11:47:13Z trocado: another thing: is it possible to create a window in the foreground (with focus)? it always goes immediately under emacs... 2018-08-31T11:49:35Z nsrahmad quit (Remote host closed the connection) 2018-08-31T11:50:07Z phoe: beach: I'm making a fork and a proper ASD system. How is your spell code licensed? 2018-08-31T11:52:04Z it3ration joined #lisp 2018-08-31T11:53:12Z edgar-rft quit (Remote host closed the connection) 2018-08-31T11:54:50Z TMA: phoe: born is indeed a perfect participle of bear, as is borne; the two are used for different senses of bear -- an oddity every bear can bear (and has borne since time immemorial) but no bear has born it 2018-08-31T11:56:38Z phoe: TMA: thanks 2018-08-31T11:56:47Z it3ration quit (Ping timeout: 240 seconds) 2018-08-31T11:57:22Z makomo quit (Ping timeout: 246 seconds) 2018-08-31T11:59:04Z beach: phoe: BSD as usual I think. 2018-08-31T11:59:34Z lavaflow quit (Ping timeout: 240 seconds) 2018-08-31T11:59:42Z rumbler31 joined #lisp 2018-08-31T12:00:29Z Bronsa joined #lisp 2018-08-31T12:01:17Z rumbler31 quit (Remote host closed the connection) 2018-08-31T12:07:40Z phoe: beach: it's working decently. 2018-08-31T12:08:12Z beach: Wow, that was fast. 2018-08-31T12:09:18Z phoe: The only thing I'll want to do is dumping the final tree structure into the FASL, so it is not regenerated on each load. 2018-08-31T12:09:40Z phoe: This means I'll need to write a bunch of MAKE-LOAD-FORM-SAVING-SLOTS I guess... 2018-08-31T12:11:44Z makomo joined #lisp 2018-08-31T12:18:15Z lieven: another case of different perfect participles is hanged vs hung 2018-08-31T12:18:54Z phoe: └─▪ ls -alh english.fasl 2018-08-31T12:18:54Z phoe: -rw-r--r-- 1 phoe phoe 37M sie 31 14:18 english.fasl 2018-08-31T12:19:18Z phoe: beach: that's 37M SBCL FASL, before any serious optimizations. 2018-08-31T12:19:57Z phoe: But (ql:quickload :spell) takes only 1 second instead of 18. 2018-08-31T12:23:25Z phoe: If I drop all :BASE strings, we trim this down to 23M. 2018-08-31T12:25:10Z beach: phoe: The :BASE should point to another occurrence, no? 2018-08-31T12:25:53Z phoe: beach: actually it does not, it contains a string. 2018-08-31T12:26:03Z beach: I know it does in the source. 2018-08-31T12:26:16Z phoe: Inside english-1, it points to a string. 2018-08-31T12:26:23Z phoe: There are often multiple words associated with a string. 2018-08-31T12:26:24Z beach: But in the final data structure, I think it should point to another occurrence. 2018-08-31T12:26:31Z beach: Oh, I see. 2018-08-31T12:26:39Z phoe: Like, if you get pointed to "horse", it's not obvious if it points to the verb "horse" or to the noun "horse". 2018-08-31T12:26:49Z phoe: The source does not make this clear in any way. 2018-08-31T12:26:51Z beach: Wow, that's no good. 2018-08-31T12:27:19Z beach: Yes, well, the base of a verb is (almost) always a verb in infinitive form. 2018-08-31T12:27:27Z beach: A noun is the singular form. 2018-08-31T12:27:31Z phoe: We need a better source for that kind of occurrences though. 2018-08-31T12:27:36Z beach: But hey, leave it like that for now. 2018-08-31T12:27:47Z phoe: That's what I am doing. (: 2018-08-31T12:28:03Z phoe: https://github.com/phoe-trash/Spell/ 2018-08-31T12:28:21Z steiner quit (Remote host closed the connection) 2018-08-31T12:28:23Z phoe: Right now only LOOKUP is exported, which I also modified to point at the English dictionary by default. 2018-08-31T12:28:37Z steiner joined #lisp 2018-08-31T12:28:40Z phoe: Compiling the English dictionary tends to exhaust the SBCL heap... sometimes. (; 2018-08-31T12:28:50Z beach: Heh, 2018-08-31T12:28:59Z beach: not on my machine. I use 10GB by default. 2018-08-31T12:29:14Z phoe: Yep, I can see. 2018-08-31T12:29:20Z beach: phoe: How do you represent an internal node? 2018-08-31T12:29:22Z phoe: Anyway - give it a try, if you have a while. 2018-08-31T12:29:26Z phoe: beach: I don't! 2018-08-31T12:29:28Z phoe: It's your code. 2018-08-31T12:29:36Z phoe: How do *you* represent an internal node? (: 2018-08-31T12:29:36Z beach: Yes, but I don't remember. 2018-08-31T12:29:50Z beach: Alright, I'll look myself. 2018-08-31T12:30:01Z phoe: https://github.com/phoe-trash/Spell/blob/master/spell.lisp#L40 2018-08-31T12:30:11Z phoe: It seems it's a class with a single slot. 2018-08-31T12:30:16Z phoe: The value of that slot is a list of children. 2018-08-31T12:30:46Z beach: Yes, I see. 2018-08-31T12:30:47Z phoe: You have interior-mixins and leaf-mixins. 2018-08-31T12:30:57Z phoe: Which is okay, I think. 2018-08-31T12:31:14Z beach: I think there might be more compact ways of representing that stuff. 2018-08-31T12:31:18Z beach: I'll look into it. 2018-08-31T12:31:40Z phoe: beach: yep. It seems we're going into the optimization phase now. 2018-08-31T12:32:30Z beach: It might not be worth the effort though. 2018-08-31T12:32:38Z beach: I am certainly willing to use it as it is. 2018-08-31T12:33:03Z shka_: hmm 2018-08-31T12:33:24Z phoe: beach: It will be worth the effort, definitely 2018-08-31T12:33:28Z phoe: Just not now, I guess 2018-08-31T12:33:43Z phoe: I'll eventually want to ship it with some application and that's when I'll be looking into making this stuff more compact. 2018-08-31T12:33:59Z beach: OK. 2018-08-31T12:34:13Z SenasOzys quit (Ping timeout: 245 seconds) 2018-08-31T12:34:16Z shka_: so interior-node is node of trie? 2018-08-31T12:34:26Z phoe: shka_: node is a node of a trie 2018-08-31T12:34:32Z phoe: there are two kinds of mixins in there 2018-08-31T12:34:37Z phoe: interior nodes, which have children 2018-08-31T12:34:46Z phoe: and leaf nodes, which contain words 2018-08-31T12:34:49Z shka_: phoe: yeah, but i want to figure out how trie is represented 2018-08-31T12:34:52Z phoe: there are of course interior leaf nodes 2018-08-31T12:34:59Z phoe: yep, interior nodes are the building blocks of the trie 2018-08-31T12:35:17Z shka_: uh, why two types of nodes? 2018-08-31T12:35:39Z shka_: just to preserve slot? 2018-08-31T12:35:48Z phoe: I guess 2018-08-31T12:35:53Z phoe: not all of them have to be interior 2018-08-31T12:35:59Z phoe: and not all of them have to be leaves 2018-08-31T12:36:07Z phoe: so I guess that a pair of mixins is a sane case in here 2018-08-31T12:36:19Z ebrasca: I can't load reblocks in debian. ( I can load it in my other distros ) 2018-08-31T12:36:32Z phoe: and a single preserved slot in 380K instances can sum up decently, I think 2018-08-31T12:37:07Z trocado quit (Ping timeout: 240 seconds) 2018-08-31T12:37:26Z gravicappa quit (Ping timeout: 272 seconds) 2018-08-31T12:37:46Z beach: phoe: One important question to answer is this: Is it OK to return different (in the sense of EQ) instances for two different queries for the same word? 2018-08-31T12:38:03Z shka_: well, i would make all nodes contain the same content: bitmask representing what children are present, another mask to represent what words are present, and vector of children 2018-08-31T12:38:15Z beach: phoe: If so, then one could represent the leaf information in a much more compact way. 2018-08-31T12:38:23Z phoe: beach: yes, I see. 2018-08-31T12:39:09Z phoe: beach: as long as we document it, we probably don't have to. 2018-08-31T12:39:17Z beach: shka_: What do you mean by "what words are present"? 2018-08-31T12:39:20Z shka_: not sure if bitmasks are better then ordered sequences here, though 2018-08-31T12:39:39Z phoe: bitmask of what? 2018-08-31T12:39:47Z beach: Exactly my question. 2018-08-31T12:39:51Z shka_: beach: not every prefix must be a word i think 2018-08-31T12:40:01Z phoe: yes, that's why not every node is a leaf node 2018-08-31T12:40:28Z orivej quit (Ping timeout: 245 seconds) 2018-08-31T12:41:04Z edgar-rft joined #lisp 2018-08-31T12:41:40Z beach: One important thing to measure is the total amount of space taken up by the leaves compared to the grand total size. It is entirely possible that the tree structure itself is a small part of the total size. 2018-08-31T12:41:42Z phoe: ......I completely forgot that #'ACONS was a thing 2018-08-31T12:41:55Z phoe: The tree is pretty sparse I think 2018-08-31T12:42:25Z beach: If that is the case, then the only way to decrease the space is to encode the words differently, possibly abandoning the EQ property. 2018-08-31T12:43:00Z beach: I invoke Ousterhout's article again. Measure before working to hard on the wrong part. 2018-08-31T12:43:07Z beach: too hard, even. 2018-08-31T12:43:25Z beach: phoe: That is not the point. 2018-08-31T12:43:58Z beach: phoe: The point is that if interior nodes are a small part of the total amount of space, then optimizations like the one shka_ suggests won't buy much. 2018-08-31T12:44:12Z phoe: beach: I see. 2018-08-31T12:44:14Z shka_: yes 2018-08-31T12:44:22Z shka_: luckly, it can be measured! 2018-08-31T12:44:28Z beach: So measure, measure, measure. 2018-08-31T12:44:33Z beach: And by all means, read the article. 2018-08-31T12:44:54Z phoe: Do you have a link to it? 2018-08-31T12:45:03Z shka_: anyway, once again: measure before optimize 2018-08-31T12:45:07Z beach: Probably not. 2018-08-31T12:45:07Z ebrasca: Here my error : http://termbin.com/0ahy 2018-08-31T12:45:31Z shka_: ebrasca: what if you load weblocks before 2018-08-31T12:45:32Z shka_: ? 2018-08-31T12:45:37Z francogrex joined #lisp 2018-08-31T12:46:15Z beach: phoe: https://dl.acm.org/citation.cfm?id=3213770 2018-08-31T12:46:21Z SenasOzys joined #lisp 2018-08-31T12:46:53Z phoe: beach: thanks. 2018-08-31T12:47:07Z beach: Not the full paper. You need to find a PDF somehow. 2018-08-31T12:47:18Z phoe: Now the question is, how can I measure the memory usage of all instances of class X? 2018-08-31T12:47:23Z beach: I am an ACM member (well worth it) so I can get the PDF. 2018-08-31T12:47:32Z ebrasca: shka_: here output http://termbin.com/s8kx 2018-08-31T12:47:57Z beach: phoe: You can count the number of instances and estimate the space per instance. 2018-08-31T12:48:13Z francogrex: in this post https://pastebin.com/0UL9APLq anyone have a clue why i am getting the error Attempt to call an undefined alien function? I am using sbcl 1.4.2 for x86 32 bit. could that be the problem, the 32 bit v of sbcl? 2018-08-31T12:48:25Z phoe: beach: you mean https://sci-hub.tw/https://dl.acm.org/citation.cfm?id=3213770 ? 2018-08-31T12:48:39Z ebrasca: shka_: It load in my main distro. 2018-08-31T12:49:56Z no-defun-allowed quit (Read error: Connection reset by peer) 2018-08-31T12:50:22Z shka_: ebrasca: i don't have debian machine so i can't help in that case 2018-08-31T12:51:41Z mindCrime joined #lisp 2018-08-31T12:52:13Z shrdlu68 joined #lisp 2018-08-31T12:52:21Z phoe: We have 347492 words and 639303 nodes. 2018-08-31T12:53:13Z LiamH joined #lisp 2018-08-31T12:54:02Z beach: That's the one. 2018-08-31T12:55:47Z DGASAU quit (Read error: Connection reset by peer) 2018-08-31T12:56:33Z lavaflow joined #lisp 2018-08-31T12:56:44Z DGASAU joined #lisp 2018-08-31T12:56:47Z nowhere_man quit (Ping timeout: 240 seconds) 2018-08-31T12:59:19Z Bike joined #lisp 2018-08-31T12:59:24Z Manny8888 joined #lisp 2018-08-31T12:59:27Z phoe: Well, I can't count the nodes by means of counting their initialize-instance :after. 2018-08-31T13:00:09Z beach: Can't you just traverse the tree once it is created? 2018-08-31T13:00:27Z phoe: I kind of can, but I'm lazy. 2018-08-31T13:00:46Z shka_: phoe: oh common 2018-08-31T13:00:49Z phoe: (list *word-count* *node-count* *leaf-count* *interior-count* *interior-leaf-count*) 2018-08-31T13:00:51Z beach: Laziness is a virtue in software development. 2018-08-31T13:00:52Z phoe: (347492 639303 230511 408792 133091) 2018-08-31T13:00:54Z shka_: those are literally two lines of code! 2018-08-31T13:01:01Z phoe: shka_: too late 2018-08-31T13:01:13Z shka_: ok 2018-08-31T13:01:16Z lavaflow quit (Ping timeout: 260 seconds) 2018-08-31T13:01:17Z phoe: hm, these figures are wrong though 2018-08-31T13:01:20Z phoe: (; 2018-08-31T13:01:25Z shka_: it looks like it 2018-08-31T13:01:29Z phoe: fine, let me traverse 2018-08-31T13:02:35Z francogrex quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2018-08-31T13:13:39Z Inline joined #lisp 2018-08-31T13:15:38Z phoe: Okay 2018-08-31T13:15:45Z phoe: (leaf-nodes interior-nodes interior-leaf-nodes words) 2018-08-31T13:15:52Z phoe: (184209 322003 133091 347491) 2018-08-31T13:16:27Z beach: So the words are probably dominating. 2018-08-31T13:16:28Z phoe: 639303 nodes in total. 2018-08-31T13:17:57Z phoe: beach: I know what we can do with regard to the bases. 2018-08-31T13:18:16Z beach: What's that? 2018-08-31T13:18:26Z phoe: We don't have to store the strings for bases - instead, we can point to the proper leaf node. 2018-08-31T13:18:53Z phoe: For example, if we have a word that has a base "horse", we can point to the leaf node for the final letter #\e. 2018-08-31T13:19:09Z phoe: And, from it, the dictionary could get the list of entries for that node. 2018-08-31T13:19:19Z phoe: I guess we can shave another 12M that way. 2018-08-31T13:19:37Z phoe: Except no, we're in trouble now. 2018-08-31T13:20:06Z phoe: We can't really travel upwards from the leaves, so if we point to the last letter, then we still have no idea what the base is. 2018-08-31T13:20:24Z phoe: We might know there's a verb and a noun there, but we have no means of figuring out the string for the base, "horse". 2018-08-31T13:20:52Z phoe: This means that we'll need a parent reference on each single node. 2018-08-31T13:21:30Z shka_: temporary path constructed when searching the tree won't do? 2018-08-31T13:21:40Z phoe: Not really 2018-08-31T13:21:45Z shka_: ah, right, eq thing 2018-08-31T13:21:55Z phoe: You have found your way to a word, for example, called "enhorsement" 2018-08-31T13:22:03Z phoe: That has a base called "horse" 2018-08-31T13:22:03Z beach: phoe: I have an idea... 2018-08-31T13:22:08Z phoe: It's in a completely different part of the tree. 2018-08-31T13:22:11Z phoe: beach: what is it? 2018-08-31T13:22:40Z beach: You don't have to return the word that was used in the query. 2018-08-31T13:22:45Z jackdaniel: I wonder if it is a bit too much to paste an "in motion" low-level application analysis on general #lisp channel 2018-08-31T13:22:46Z beach: The client knows it. 2018-08-31T13:23:22Z phoe: beach: Yes, I know. 2018-08-31T13:23:26Z trittweiler quit (Ping timeout: 260 seconds) 2018-08-31T13:23:29Z phoe: I don't mean that word though. 2018-08-31T13:23:34Z beach: phoe: If you remove the spelling from the word, lots of "words" will be identical. 2018-08-31T13:23:46Z beach: And you can share them. 2018-08-31T13:23:56Z beach: jackdaniel: Give us a few more minutes. 2018-08-31T13:24:02Z phoe: If the client searches for "enhorsement", the base for that word will be "horse". 2018-08-31T13:24:25Z jackdaniel: I'm not in position to give or take something, just a suggestion that this may be too cluttering for people who bother reading backlog 2018-08-31T13:24:36Z beach: OK, I'll be quiet. 2018-08-31T13:24:37Z phoe: Oh right. Sorry for that. 2018-08-31T13:27:27Z splittist: I was enjoying that. But I don't read logs, so the live experience means more to me than extracting information later. Back to your regular discussions about why scheme, clojure and emacs questions are off-topic. 2018-08-31T13:27:28Z SenasOzys quit (Ping timeout: 272 seconds) 2018-08-31T13:47:37Z steiner quit (Remote host closed the connection) 2018-08-31T13:48:20Z shka_: beach: neat idea though 2018-08-31T13:48:48Z milanj joined #lisp 2018-08-31T13:49:01Z beach: shka_: Watch us! We will squeeze it down to almost nothing. :) 2018-08-31T13:51:46Z steiner joined #lisp 2018-08-31T13:52:32Z phoe: hey, we're already diving into MOP territory 2018-08-31T13:52:48Z phoe: implementing storage for word metadata as bit vectors 2018-08-31T13:53:01Z it3ration joined #lisp 2018-08-31T13:53:31Z shka_: phoe: i was going to suggest that 2018-08-31T13:53:49Z shka_: though i have no idea why MOP 2018-08-31T13:54:00Z SenasOzys joined #lisp 2018-08-31T13:54:42Z shka_: i don't use bit vectors 2018-08-31T13:54:47Z shka_: like… ever 2018-08-31T13:55:09Z phoe: shka_: so you can have slots that read one of :foo :bar :baz ... 2018-08-31T13:55:16Z phoe: while you don't store a full pointer in a slot 2018-08-31T13:55:24Z phoe: merely a few bits in a bit vector 2018-08-31T13:55:30Z shka_: ok 2018-08-31T13:55:38Z shka_: well, i would simply stick to function 2018-08-31T13:55:39Z phoe: this way, if you have eight possibilities, you go from 64 bits (a full pointer) to 3 bits in a bit vector 2018-08-31T13:57:16Z lavaflow joined #lisp 2018-08-31T13:57:42Z it3ration quit (Ping timeout: 252 seconds) 2018-08-31T13:58:27Z quazimodo quit (Ping timeout: 240 seconds) 2018-08-31T13:59:02Z orivej joined #lisp 2018-08-31T14:00:10Z igemnace joined #lisp 2018-08-31T14:00:37Z quazimodo joined #lisp 2018-08-31T14:03:23Z lavaflow quit (Ping timeout: 245 seconds) 2018-08-31T14:04:25Z mindCrime quit (Ping timeout: 246 seconds) 2018-08-31T14:06:28Z AeroNotix: jackdaniel: booo 2018-08-31T14:09:07Z jackdaniel: AeroNotix: could you elaborate please? 2018-08-31T14:10:57Z zxcvz quit (Quit: zxcvz) 2018-08-31T14:14:12Z shrdlu68 quit (Ping timeout: 252 seconds) 2018-08-31T14:15:15Z cage_ joined #lisp 2018-08-31T14:15:51Z orivej quit (Ping timeout: 252 seconds) 2018-08-31T14:18:34Z elfmacs quit (Ping timeout: 240 seconds) 2018-08-31T14:21:44Z makomo: just my 2 cents: i enjoy reading discussions like those as well. i know why the "off-topic rule" exists, but sometimes an exception should be made imo, especially if the channel is quiet anyway 2018-08-31T14:21:59Z dlowe: as long as it's on a lisp project, I'm fine with it. 2018-08-31T14:22:22Z makomo: agreed 2018-08-31T14:23:47Z eschatologist quit (Ping timeout: 240 seconds) 2018-08-31T14:24:28Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2018-08-31T14:24:56Z jackdaniel: my point was not that it was offtopic but rather that it is to narrowed and makes reading other messages harder. imagine everyone talking about nitty-gritty details of projects they work on. but if this kind of moderation is not welcome, I'll just shut up and work on my own things 2018-08-31T14:24:57Z eschulte joined #lisp 2018-08-31T14:26:10Z eschatologist joined #lisp 2018-08-31T14:26:51Z jack_rabbit quit (Ping timeout: 252 seconds) 2018-08-31T14:26:56Z trittweiler joined #lisp 2018-08-31T14:27:30Z dale_ joined #lisp 2018-08-31T14:27:44Z phoe: jackdaniel: it's no easy task to figure that sort of thing out 2018-08-31T14:27:49Z dale_ is now known as dale 2018-08-31T14:28:01Z phoe: if it's already off-topic and/or if it should stay here or move elsewhere 2018-08-31T14:34:17Z AeroNotix: jackdaniel: my thinking is that if, during the discussion of minutiae of some topic that someone enters and asks something more related to the real topic of the channel, the in-flight discussion should drop/pause and focus on the more topic related discussion 2018-08-31T14:35:20Z AeroNotix: I missed the initial part of the discussion. It seemed like an interesting discussion on how to optimize storage/lookup of some kind of trie/tree datastructure related to phoe's queries last night on dictionaries. 2018-08-31T14:36:28Z AeroNotix: Anyway, I have a question that I think I already know the answer to: is defvar the ONLY way to allow dynamic binding? 2018-08-31T14:36:56Z joast quit (Quit: Leaving.) 2018-08-31T14:37:09Z phoe: AeroNotix: no 2018-08-31T14:37:13Z phoe: DECLARE SPECIAL 2018-08-31T14:37:19Z phoe: ......and also defparameter, obviously 2018-08-31T14:41:17Z makomo: AeroNotix: both defvar and defparameter unconditionally proclaim the given symbol (the variable's name) as special and then maybe do some binding/assigning of their own 2018-08-31T14:41:17Z shlemas joined #lisp 2018-08-31T14:41:27Z joast joined #lisp 2018-08-31T14:41:44Z AeroNotix: Thanks 2018-08-31T14:41:46Z makomo: AeroNotix: i'd suggest reading this discussion if you want more a couple more details https://groups.google.com/forum/#!topic/comp.lang.lisp/iLo1ti6rQIw 2018-08-31T14:41:53Z makomo: s/more// 2018-08-31T14:42:11Z AeroNotix: I've tried to avoid dynamic binding in the past. 2018-08-31T14:42:24Z AeroNotix: but I'm seeing a very dynamic binding shaped problem in my current project 2018-08-31T14:42:34Z phoe: it's a good tool for a certain class of problems 2018-08-31T14:42:47Z eschatologist quit (Ping timeout: 240 seconds) 2018-08-31T14:43:17Z makomo: AeroNotix: one thing to be aware of is the definition of the word "variable", which in CL is different from the definition in other languages 2018-08-31T14:43:35Z makomo: in CL "variable" means "the association between a name and a value", while in other languages it means "an abstract memory location" 2018-08-31T14:43:46Z AeroNotix: I understand that 2018-08-31T14:44:22Z AeroNotix: I was more asking about the methods possible to achieve dynamic binding. I misunderstood the differences between defvar and defparameter 2018-08-31T14:44:53Z makomo: ah :-) 2018-08-31T14:44:58Z phoe: Oh, the differences 2018-08-31T14:45:10Z phoe: Their only difference is, DEFVAR does not reinitialize an already initialized variable 2018-08-31T14:45:21Z phoe: and DEFVAR has an optional value where DEFPARAMETER has a mandatory one 2018-08-31T14:45:33Z phoe: With regard to dynamic binding, there's no difference between them 2018-08-31T14:45:35Z AeroNotix: Yeah for some reason I thought defvar was the form to set up a dynamic variable. I see now that I was wrong 2018-08-31T14:45:41Z phoe: both proclaim the name of the variable as globally special 2018-08-31T14:45:49Z AeroNotix: cool, sorted then 2018-08-31T14:45:50Z phoe: AeroNotix: in a way, it sets up a dynamic variable, yeah 2018-08-31T14:45:58Z phoe: globally 2018-08-31T14:46:16Z phoe: whereas (declare (special x)) "sets up a dynamic variable" locally 2018-08-31T14:46:17Z eschatologist joined #lisp 2018-08-31T14:46:26Z phoe: in a given dynamic scope 2018-08-31T14:46:45Z AeroNotix: interesting. I'll have a play around 2018-08-31T14:47:08Z scymtym: don't forget PROGV 2018-08-31T14:47:22Z eschatologist quit (Excess Flood) 2018-08-31T14:47:57Z eschatologist joined #lisp 2018-08-31T14:48:22Z AeroNotix: cheers 2018-08-31T14:48:51Z phoe: (defun foo () (let ((x 42)) (declare (special x)) (bar))) 2018-08-31T14:48:51Z phoe: (defun bar () (declare (special x)) x) 2018-08-31T14:48:55Z phoe: (foo) ;=> 42 2018-08-31T14:49:10Z phoe: also you can have an arbitrary number of functions between FOO and BAR 2018-08-31T14:49:36Z phoe: as long as they do not poke the special variable named X, the value will be transmitted all the way to the BAR call 2018-08-31T14:49:41Z phoe: untouched, and such 2018-08-31T14:50:09Z AeroNotix: jesus, ok. That's interesting behaviour (local special variables) 2018-08-31T14:50:16Z phoe: yep 2018-08-31T14:50:25Z phoe: note that you can get rid of the declarations and (defvar x) 2018-08-31T14:50:48Z phoe: which gives you (defun foo () (let ((x 42)) (bar))) and (defun bar () x) 2018-08-31T14:51:39Z eddof13 joined #lisp 2018-08-31T14:52:45Z oni-on-ion: i often feel that lisp can be lower level than C 2018-08-31T14:52:51Z beach: AeroNotix: It is not a "local special variable". It is just a declaration that tells the compiler to treat references to that variable in that scope as references to THE special variable. 2018-08-31T14:53:46Z AeroNotix: beach: thanks for the clarification 2018-08-31T14:54:31Z beach: Sure. 2018-08-31T14:55:03Z makomo: beach: regarding the value cells we talked about a few days ago, how do you represent the unbound state? using an internal symbol as a marker or something? 2018-08-31T14:55:15Z makomo: maybe you mentioned it as well, but i don't remember 2018-08-31T14:55:19Z FreeBirdLjj joined #lisp 2018-08-31T14:55:25Z beach: makomo: Yes, it is per environment. 2018-08-31T14:55:32Z Bike: (declare (special ...)) is itself lexical. isn't that nice 2018-08-31T14:56:08Z mindCrime joined #lisp 2018-08-31T14:57:39Z makomo: suppose i wasn't interested in LOAD-DICTIONARY and LOOKUP after compilation -- could i drop :LOAD-TOPLEVEL and :EXECUTE then? https://github.com/phoe-trash/Spell/blob/master/english.lisp 2018-08-31T14:59:04Z phoe: hm 2018-08-31T14:59:17Z makomo: but i would still need :LOAD-TOPLEVEL and :EXECUTE for the *english-dictionary* variable itself, right? 2018-08-31T14:59:20Z phoe: load-dictionary is literally only used during compilation time, it seems 2018-08-31T14:59:27Z phoe: yes, I think so 2018-08-31T14:59:32Z eschatologist quit (Excess Flood) 2018-08-31T14:59:37Z makomo: and you need :COMPILE-TOPLEVEL because the dictionary is constructed within the compiler's environment, by way of the eval read macro? 2018-08-31T14:59:43Z eschatologist joined #lisp 2018-08-31T14:59:43Z phoe: AFAIK, yes 2018-08-31T14:59:50Z makomo: neat :-) 2018-08-31T14:59:52Z lavaflow joined #lisp 2018-08-31T15:00:06Z makomo: it's pretty neat how you can use FASLs as a serialization format of sorts 2018-08-31T15:03:08Z lumm joined #lisp 2018-08-31T15:03:55Z pfdietz joined #lisp 2018-08-31T15:04:07Z lavaflow quit (Ping timeout: 240 seconds) 2018-08-31T15:04:59Z varjag joined #lisp 2018-08-31T15:05:27Z eschatologist quit (Ping timeout: 240 seconds) 2018-08-31T15:06:40Z lnostdal quit (Excess Flood) 2018-08-31T15:06:58Z lnostdal joined #lisp 2018-08-31T15:09:33Z russellw: The construct for implementation-specific code e.g. #+SBCL, what is that called so I can look up the documentation? 2018-08-31T15:09:51Z jdz: reader macros. 2018-08-31T15:10:28Z jdz: clhs 2.4.8.17 2018-08-31T15:10:29Z specbot: Sharpsign Plus: http://www.lispworks.com/reference/HyperSpec/Body/02_dhq.htm 2018-08-31T15:10:34Z slyrus1 joined #lisp 2018-08-31T15:11:04Z russellw: thanks! 2018-08-31T15:12:09Z jdz: russellw: if you're using SLIME you can get help on these using C-c C-d #. 2018-08-31T15:12:26Z russellw: not using SLIME, alas 2018-08-31T15:12:38Z jackdaniel: russellw: you may look up things on l1sp.org 2018-08-31T15:12:40Z jdz: You're missing out, then. 2018-08-31T15:12:52Z jackdaniel: it accepts fancy characters like #+ and looks in a few places (clhs included) 2018-08-31T15:13:06Z russellw: jackdaniel, great, thanks! 2018-08-31T15:13:23Z phoe: feature checks completely ignore the package of the symbol, correct? 2018-08-31T15:13:45Z phoe: so it doesn't matter if the symbol pushed into *features* is :foo, bar:foo, baz::foo or #:foo 2018-08-31T15:13:49Z jdz: phoe: they're read in the KEYWORD package, no? 2018-08-31T15:14:23Z jackdaniel: phoe: what jdz said, they are read in the keyword package 2018-08-31T15:14:31Z phoe: huh 2018-08-31T15:14:36Z jackdaniel: that does not mean, that if you look for phoe:foo it will look in keyword package 2018-08-31T15:14:38Z phoe: (remove-if #'keywordp *features*) 2018-08-31T15:14:38Z phoe: (CHIPZ-SYSTEM:GRAY-STREAMS CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 2018-08-31T15:14:39Z phoe: CFFI-FEATURES:UNIX CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA.0.DEV::SEQUENCE-EMPTYP) 2018-08-31T15:14:52Z phoe: there are features that are *not* in the keyword package 2018-08-31T15:15:04Z phoe: all pushed by third-party libraries... 2018-08-31T15:15:13Z jackdaniel: if you type #+flat-namespace , it will look in features for keyword:flat-namespace 2018-08-31T15:15:26Z jackdaniel: if you type #+cffi:flat-namespace, it will look in features for cffi:flat-namespace 2018-08-31T15:15:33Z phoe: ooh 2018-08-31T15:15:35Z phoe: #+CHIPZ-SYSTEM:GRAY-STREAMS 2018-08-31T15:15:40Z phoe: I understand it now - thanks 2018-08-31T15:16:02Z veinofsony joined #lisp 2018-08-31T15:16:29Z jdz: Right, the correct wording is: «While reading the test, the current package is the KEYWORD package.» 2018-08-31T15:16:42Z lavaflow joined #lisp 2018-08-31T15:18:19Z asarch joined #lisp 2018-08-31T15:18:49Z eschatologist joined #lisp 2018-08-31T15:23:20Z akovalenko` joined #lisp 2018-08-31T15:26:00Z bradcomp joined #lisp 2018-08-31T15:27:38Z akovalenko` quit (Remote host closed the connection) 2018-08-31T15:42:28Z shlemas quit (Quit: shlemas) 2018-08-31T15:46:35Z oni-on-ion: curious, what reason is tail-call optimisation excluded from CLTL? 2018-08-31T15:48:28Z trittweiler: It's not excluded as in prohibited, it's implementation-dependent 2018-08-31T15:48:33Z phoe: oni-on-ion: the ANSI CL standard doesn't mandate it 2018-08-31T15:48:45Z phoe: many implementations do TCO unless on high debug settings 2018-08-31T15:49:41Z oni-on-ion: ahh right, i see. its useful to not have it happening while debugging ? 2018-08-31T15:49:55Z phoe: yep - you want all calls on the stack 2018-08-31T15:50:07Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-31T15:50:38Z cgay joined #lisp 2018-08-31T15:50:39Z nika joined #lisp 2018-08-31T15:50:42Z oni-on-ion: i also notice, that when slime is running, emacs will highlight the code i've changed. i've been disabling that as it gets a bit laggy the more of these highlighted regions there are, but i've just read in this article here that one can send all of those edited lines into slime. anyone know how off hand? 2018-08-31T15:50:58Z oni-on-ion: phoe: ah right ok =) 2018-08-31T15:51:44Z phoe: oni-on-ion: never experienced this highlighting behavior 2018-08-31T15:51:47Z phoe: you're running some kind of custom config? 2018-08-31T15:52:41Z trittweiler: Once upon a time, I was thinking of writing a small TAILCALL that would expand to the right declarations depending on the implementation (and otherwise cause compilation to fail.) Not sure if (locally (declare ..magic..) (funcall ...)) is enough on all implementation; an implementation may need optimization settings at the start of the body of the function. 2018-08-31T15:53:09Z trittweiler: oni-on-ion, it's the slime-highlighting-edits contrib. Just remove that from your (slime-setup '(...)) list 2018-08-31T15:53:55Z it3ration joined #lisp 2018-08-31T15:54:11Z trittweiler: it would be nice to see if it can be sped up or where the bottleneck is, if you have the time anyway. 2018-08-31T15:54:20Z oni-on-ion: phoe: ah apparently, https://ptpb.pw/L5bg/elisp 2018-08-31T15:54:40Z phoe: well, there you are 2018-08-31T15:55:00Z oni-on-ion: trittweiler: i will start using it now, because i find it useful if even there is no way to "eval all highlighted edits into slime connection" 2018-08-31T15:55:28Z trittweiler: yeah I find it useful, too. :) 2018-08-31T15:57:00Z oni-on-ion: ah, i guess it is official, just need to do C-c C-c : https://common-lisp.net/project/slime/doc/html/Highlight-Edits.html 2018-08-31T15:57:39Z Copenhagen_Bram joined #lisp 2018-08-31T15:57:48Z oni-on-ion: i just read the whole elisp code for it, nothing seems obviously computationally demanding, i can only guess that multiple background faces make emacs slow on my system. will keep mind open on that 2018-08-31T15:59:28Z it3ration quit (Ping timeout: 272 seconds) 2018-08-31T16:00:07Z gendl joined #lisp 2018-08-31T16:00:51Z lnostdal quit (Ping timeout: 244 seconds) 2018-08-31T16:01:54Z AeroNotix: I'm not sure I understand why TCO was left up to the implementation. Relying on TCO makes your code non-portable. At the time of standardization was TCO rare/difficult/something else? 2018-08-31T16:03:04Z oni-on-ion: would it affect some code to rely on TCO optimization? would that really change semantics etc? 2018-08-31T16:03:25Z oni-on-ion: that is also what i am thinking and just why i asked, AeroNotix , maybe TCO was undeveloped at the time 2018-08-31T16:03:33Z AeroNotix: wait no 2018-08-31T16:03:47Z AeroNotix: reading wiki suggests Guy Steele wrote a paper on it in '77. 2018-08-31T16:04:21Z AeroNotix: Further muddying why its mention is suspiciously absent from the standard 2018-08-31T16:05:00Z Hu0p joined #lisp 2018-08-31T16:05:38Z Bike: the standard doesn't really mandate optimizations 2018-08-31T16:05:39Z oni-on-ion: i was going to say, just thought of scheme.. hmm. 2018-08-31T16:05:43Z Bike: so you can write pretty dumb implementations 2018-08-31T16:06:39Z oni-on-ion: fair enough reason, i cant see how tco would affect regular code though 2018-08-31T16:07:22Z AeroNotix: https://0branch.com/notes/tco-cl.html 2018-08-31T16:07:46Z oni-on-ion: heh, from a-road-to-common-lisp: "You don’t have to track down the bug from just a stack trace, like a detective trying to piece together what happened by the blood stains on the wall. You can examine the crime as it’s happening and intervene to save the victim." 2018-08-31T16:09:22Z Hu0p quit (Ping timeout: 246 seconds) 2018-08-31T16:09:22Z oni-on-ion: ohh, extensive =) 2018-08-31T16:10:50Z regreg quit (Quit: Konversation terminated!) 2018-08-31T16:14:13Z lnostdal joined #lisp 2018-08-31T16:21:58Z Hu0p joined #lisp 2018-08-31T16:24:51Z scymtym quit (Ping timeout: 260 seconds) 2018-08-31T16:31:45Z doubledup joined #lisp 2018-08-31T16:33:06Z akovalenko joined #lisp 2018-08-31T16:35:07Z Lycurgus quit (Quit: Exeunt) 2018-08-31T16:35:17Z Jesin quit (Quit: Leaving) 2018-08-31T16:36:39Z papachan quit (Ping timeout: 252 seconds) 2018-08-31T16:40:59Z scymtym joined #lisp 2018-08-31T16:42:36Z Jesin joined #lisp 2018-08-31T16:43:34Z MetaYan quit (Ping timeout: 240 seconds) 2018-08-31T16:47:21Z wodwos quit (Ping timeout: 244 seconds) 2018-08-31T16:48:20Z pjb joined #lisp 2018-08-31T16:57:37Z jasom: oni-on-ion: also, dynamic bindings can make things that look like tail-calls not actually tail calls 2018-08-31T16:59:37Z Bike: "affect regular code"? 2018-08-31T17:01:21Z pjb: and unwind-protect if that has not been mentionned yet. 2018-08-31T17:03:54Z oni-on-ion: Bike: hm, code that doesnt somehow depend on TCO for its functionality 2018-08-31T17:04:20Z oni-on-ion: im not smart enough to imagine any but i wont make the assumption that such code is possible/exists/isbenefitial 2018-08-31T17:04:31Z Bike: like, almost all existing code? 2018-08-31T17:04:43Z Bike: i thought you were talking about making TCO non optional 2018-08-31T17:04:50Z Bike: meaning the implementation has to recognize tail calls 2018-08-31T17:05:16Z oni-on-ion: yes. well im trying to figure out if TCO affects the actual execution/result of code with and without it 2018-08-31T17:05:24Z AeroNotix: The link I provided before suggests that most major/non-meme CL implementations have TCO. I wonder how SBCL deals with a (funcall dynamically-bound-function) in the tail call position 2018-08-31T17:05:32Z Bike: sure it does, isn't that why you're asking? 2018-08-31T17:05:34Z oni-on-ion: or if code and/or algorithms could or would depend on it being present or not 2018-08-31T17:05:57Z oni-on-ion: Bike: so its not just an optimization? it changes the resultant code? 2018-08-31T17:06:08Z Bike: (defun factorial (n &optional (acc 1)) (if (zerop n) acc (factorial (1- n) (* n acc)))) 2018-08-31T17:06:20Z Bike: with TCO, it works. without, it can hit stack limits for high n 2018-08-31T17:06:29Z Bike: that's the entire reason scheme mandates TCO 2018-08-31T17:06:49Z oni-on-ion: ahhh. forgot about stack things. just read that the stack frame is gone before the call rather than after, when TCO is happening 2018-08-31T17:06:53Z oni-on-ion: +() 2018-08-31T17:07:14Z Bike: tco means reusing the stack frame 2018-08-31T17:07:22Z shka_ quit (Ping timeout: 252 seconds) 2018-08-31T17:07:55Z Bike: if you're just talking about whether implementations CAN do TCO, there's nothing preventing it, and like aeronotix said it's pretty common 2018-08-31T17:07:57Z oni-on-ion: kk 2018-08-31T17:08:20Z oni-on-ion: yeah nah just wondering if tco affected the code (other than stack limit) 2018-08-31T17:08:21Z AeroNotix: I wonder how many libraries out there rely on TCO 2018-08-31T17:08:49Z oni-on-ion: its clear now ty for helping me understand 2018-08-31T17:09:00Z oni-on-ion: @all =) 2018-08-31T17:09:10Z Bike: lisp has other looping constructs, unlike scheme, and they're more commonly used 2018-08-31T17:10:07Z Bronsa quit (Ping timeout: 240 seconds) 2018-08-31T17:10:39Z AeroNotix: Bike: the issue for me is that, yeah, CL has other looping constructs but if an implementation/most implementations implement TCO then what's the point if it's not a portable construct? 2018-08-31T17:11:09Z Bike: well, for example, my factorial function 2018-08-31T17:11:14Z lumm quit (Remote host closed the connection) 2018-08-31T17:11:18Z dlowe: sbcl uses it depending on the speed optimization 2018-08-31T17:11:23Z Bike: practically speaking, you'd have to have n in the hundreds to bust up the stack 2018-08-31T17:11:33Z Bike: but if you feed a number that big to factorial it's going to be huge anyway 2018-08-31T17:11:40Z Bike: so it's fine to use most of the time 2018-08-31T17:11:46Z Bike: and if it is, with TCO it's more efficient 2018-08-31T17:12:27Z AeroNotix: Bike: but it's not portable, is my point 2018-08-31T17:12:32Z lumm joined #lisp 2018-08-31T17:12:35Z AeroNotix: it's kind of "de facto" portable 2018-08-31T17:12:35Z josemanuel joined #lisp 2018-08-31T17:12:52Z Bike: what i mean is if you treat it as an optimization it's not necessary for it to be portable 2018-08-31T17:13:11Z |3b|: well, arrays larger than 2^24 elements aren't portable either, but they are pretty useful too :) 2018-08-31T17:13:49Z AeroNotix: Bike: eh, I can agree with that but it still would make me uncomfortable about using it. 2018-08-31T17:13:56Z AeroNotix: For me, TCO is more than about being optimal. 2018-08-31T17:14:08Z AeroNotix: I find it cleans up some kinds of code to be more readable 2018-08-31T17:14:19Z |3b|: (or 2^16 technically, but 2^24 is a limit in actual implementations i can think of) 2018-08-31T17:15:04Z |3b|: TCO can be nice for state machines, which might be worth some non-portability 2018-08-31T17:16:04Z Hu0p quit (Ping timeout: 240 seconds) 2018-08-31T17:16:17Z Shinmera: While we're on that, how about call-arguments-limit only being required to be 50 2018-08-31T17:17:03Z AeroNotix: Shinmera: do you find yourself hitting that limit often? 2018-08-31T17:17:34Z Shinmera: If you think you can just apply away you might 2018-08-31T17:18:21Z shka_ joined #lisp 2018-08-31T17:18:22Z |3b|: yeah, not hard if you (mis)use apply where you should reduce 2018-08-31T17:18:32Z Shinmera: ABCL for instance has c-a-l on 50 2018-08-31T17:19:13Z |3b| has hit the "array indices are fixnums" a few times though, even on sbcl with relatively large fixnums, much less clisp with 24bit fixnums :) 2018-08-31T17:19:31Z |3b|: less of a problem since s3witching to 64bit though :) 2018-08-31T17:20:01Z m00natic quit (Remote host closed the connection) 2018-08-31T17:20:05Z phoe: hey, no one requires arrays to be greater than a kilobyte 2018-08-31T17:20:07Z phoe: clhs ARRAY-TOTAL-SIZE-LIMIT 2018-08-31T17:20:08Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/v_ar_tot.htm 2018-08-31T17:20:23Z pfdietz: I get annoyed when I see something like (apply #'+ x) instead of use of reduce. 2018-08-31T17:20:27Z |3b|: that too :) 2018-08-31T17:21:15Z shka_: i added that error resignaling 2018-08-31T17:21:25Z |3b|: though i probably wouldn't expect much of anything to work on an implementation with A-T-S-L = 1024 :) 2018-08-31T17:21:32Z shka_: it is a bit lame because restarts won't work 2018-08-31T17:22:14Z shka_: but at least my pipe runs 165% of normal speed and now i can use it whenever i want it with just one line of code so that's nice 2018-08-31T17:22:43Z shka_: a little bit hackish, but i guess this makes it worth it 2018-08-31T17:23:29Z pfdietz: call-arguments-limit is 64 in gcl. 2018-08-31T17:24:01Z pjb: pfdietz: (unless (< (length x) call-arguments-limit) (apply #'+ x)) is good though. 2018-08-31T17:24:27Z pjb: pfdietz: not that big; it could be smaller, down to 50. 2018-08-31T17:24:42Z pjb: s/unless/when/ sorry. 2018-08-31T17:24:53Z Shinmera: As I said, ABCL has it on 50 2018-08-31T17:24:53Z AeroNotix: pjb: why is that good? 2018-08-31T17:25:06Z pjb: AeroNotix: because it's guarded :-) 2018-08-31T17:25:13Z pjb: with when. 2018-08-31T17:25:21Z AeroNotix: pjb: so it returns NIL instead? 2018-08-31T17:25:38Z pjb: AeroNotix: yes. Or you can write: (if (< (length x) call-arguments-limit) (apply #'+ x) (reduce #'+ x)) 2018-08-31T17:25:57Z AeroNotix: pjb: why not just (reduce #'+ x) instead? 2018-08-31T17:26:14Z pjb: Because apply would be faster, and may give better results. 2018-08-31T17:26:29Z AeroNotix: What are those "better results"? 2018-08-31T17:26:38Z AeroNotix: If say, x is filled with floats or something? 2018-08-31T17:26:38Z pjb: apply may sort the arguments according to type or magnitude, so it may give more precise results than reduce. 2018-08-31T17:26:47Z pfdietz: Don't forget :initial-value 0 2018-08-31T17:27:23Z pjb: Yes, if (null x). 2018-08-31T17:27:37Z pjb: But it's actually not needed, because + takes 0 or 2 arguments. 2018-08-31T17:27:45Z pjb: (reduce #'+ '()) #| --> 0 |# 2018-08-31T17:28:03Z rumbler31 joined #lisp 2018-08-31T17:28:04Z pjb: (reduce (lambda (a b)(+ a b)) '()) #| ERROR: Too few arguments in call to #: 0 arguments provided, at least 2 required. |# 2018-08-31T17:28:12Z pjb: (reduce (lambda (a b)(+ a b)) '() :initial-value 0) #| --> 0 |# 2018-08-31T17:28:16Z pfdietz: (loop for x in y sum x) 2018-08-31T17:28:27Z pjb: same problem as with reduce. 2018-08-31T17:31:32Z rumbler31 quit (Remote host closed the connection) 2018-08-31T17:32:51Z |3b|: if order matters, i'd probably rather have it consistent than break when you add 1 more item to list :) 2018-08-31T17:33:22Z pjb: Clearly, if you use reduce, you must sort your values. 2018-08-31T17:34:33Z pjb: (values (+ 1e0 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6) (+ 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e-6 1e0)) #| --> 1.0000095 ; 1.00001 |# 2018-08-31T17:34:50Z pjb: An implementation is free to sort the arguments so that you get 1.00001 in both cases. 2018-08-31T17:35:02Z pjb: Apparently, ccl doesn't do it. 2018-08-31T17:35:12Z |3b|: also, some implementations set call-arguments-limit to values larger than you'd want to apply due to stack size limits anyway 2018-08-31T17:35:27Z pjb: Good point. 2018-08-31T17:35:43Z pjb: That said, functions taking &rest don't necessarily get the argument from the stack. 2018-08-31T17:36:13Z |3b|: true 2018-08-31T17:36:30Z pjb: (defun f (&rest args) args) (let ((list (list 1 2 3))) (eq (apply #'f list) list)) could return T. 2018-08-31T17:36:46Z pjb: IIRC. 2018-08-31T17:37:08Z |3b|: right, i think that was justification for saying not to modify &rest lists 2018-08-31T17:37:31Z pjb: 3.4.1.3 The value of a rest parameter is permitted, but not required, to share structure with the last argument to apply. 2018-08-31T17:38:40Z pierpal quit (Quit: Poof) 2018-08-31T17:38:57Z pierpal joined #lisp 2018-08-31T17:54:43Z it3ration joined #lisp 2018-08-31T17:56:36Z jasom: is it possible to query a stream for whether or not it is seekable? 2018-08-31T17:57:15Z jasom: (file-position s (file-position s)) is the best I have so far 2018-08-31T17:57:32Z oni-on-ion: Bike: i've just seen the library SERIAL, which led me to folio2 - im surprised i havent come across it before today! 2018-08-31T17:59:34Z it3ration quit (Ping timeout: 240 seconds) 2018-08-31T18:01:04Z Khisanth quit (Ping timeout: 240 seconds) 2018-08-31T18:12:33Z pjb: jasom: only file-streams are seekable, so (typep stream 'file-stream). 2018-08-31T18:13:31Z pjb: jasom: but otherwise, to determine it dynamically, I would write it more carefully… 2018-08-31T18:14:03Z jasom: pjb: not true; on some implementations string-input-streams are seekable 2018-08-31T18:14:16Z jasom: and not all file-streams are seekable I think 2018-08-31T18:14:17Z Khisanth joined #lisp 2018-08-31T18:15:07Z pjb: perhaps something like: https://pastebin.com/5QwxWvMY 2018-08-31T18:15:19Z pjb: ie. I'd would actually seek. 2018-08-31T18:15:53Z nika quit (Quit: Leaving...) 2018-08-31T18:15:57Z pjb: And thankfully, file-position returns nil when it cannot seek; but it still can signal an error when the position is too big or inappropriate. 2018-08-31T18:16:01Z jackdaniel: example of file-stream which wouldn't be seekable is a posix fifo file 2018-08-31T18:16:12Z pjb: The problem here is that we don't know if (1+ pos) or (1- pos) are appropriate positions. 2018-08-31T18:17:58Z pjb: Not in ccl: (with-open-file (stream "/tmp/foo") (typep stream 'file-stream)) --> nil 2018-08-31T18:18:39Z pjb: By definition, a file-stream is seekable. 2018-08-31T18:18:50Z pjb: Even a tape would be seekable. 2018-08-31T18:19:31Z mrcom_ quit (Quit: Leaving) 2018-08-31T18:19:50Z mrcom joined #lisp 2018-08-31T18:20:12Z jasom: pjb: file n. a named entry in a file system, having an implementation-defined nature. <-- I disagree that a posix named fifo is not a file 2018-08-31T18:20:17Z pjb: That said, you're right that file-position only specifies a STREAM, so it could work on other type of streams, and it could be possible to find file-streams that are not seekable for soem reason. 2018-08-31T18:20:23Z pjb: Yes. 2018-08-31T18:20:41Z pjb: It can be implemented as such. 2018-08-31T18:21:13Z jasom: also open is required to return an object of type file stream 2018-08-31T18:21:25Z pjb: Notably: (with-open-file (stream "/tmp/foo") (pathname stream)) could return #P"/tmp/foo" for fifos. 2018-08-31T18:21:25Z jasom: clhs open 2018-08-31T18:21:26Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_open.htm 2018-08-31T18:21:33Z jasom: "stream---a file stream or nil." 2018-08-31T18:21:38Z pjb: Then ccl is not conforming here… 2018-08-31T18:21:45Z pjb: Nice… 2018-08-31T18:22:09Z jasom: though I'm not sure what is appropriate for (open a-stream-that-is-not-a-file-stream) 2018-08-31T18:22:35Z jasom: oh, if it's not a file stream, then it's also probably not a pathname designator 2018-08-31T18:23:08Z pjb: Indeed. 2018-08-31T18:23:24Z jasom: unless it's a synonym stream to a file-stream 2018-08-31T18:24:06Z pjb: And there are people who would like to write a new CL standard, when 22 years later, we still haven't debugged all the implementations! 2018-08-31T18:25:08Z aeth: pjb: A new standard would only help portability. Right now, there are SBCL-only libraries that don't need to be. 2018-08-31T18:25:14Z nowhere_man joined #lisp 2018-08-31T18:26:24Z dlowe: I think a new standard would mostly be about removing things and making them more regular to make implementation simpler 2018-08-31T18:27:23Z edgar-rft quit (Remote host closed the connection) 2018-08-31T18:29:13Z aeth: dlowe: The not very controversial things I'd like to see are (1) lower the minimum requirements for short-float so IEEE half-precision floating-point can be used (short float was originally meant for unboxed float in 32-bit implementations) and (2) raise the minimum requirements for most other things, which seemed to have been written with 16-bit in mind (e.g. the 1024 minimum array size, which includes string length) 2018-08-31T18:29:46Z aeth: Ideally, the minimums would be different for 32-bit and 64-bit implementations and the implementation would say in some standard way which set of minimums it is following. Then a library that needs the higher minimums could choose to only support the 64-bit one, for instance. 2018-08-31T18:30:12Z pjb: aeth: just patch an implementation to do it. And make it compatible with cuda for a big win. 2018-08-31T18:30:25Z aeth: And finally, it would be very useful for the specialized-arrays that (almost) everyone implements to be part of the standard, not just bit and character arrays. This means (unsigned-byte 8) and single-float and a minimum. Ideally double-float, too. 2018-08-31T18:30:46Z aeth: Even Scheme has byte arrays now. 2018-08-31T18:31:07Z aeth: pjb: shrinking short-float is absolutely done with CUDE/OpenCL in mind 2018-08-31T18:31:13Z aeth: *CUDA 2018-08-31T18:32:29Z aeth: pjb: Anyway, these little things don't need to be part of a new standard, they could be their own independent standard. And the non-conforming short-float could be hid behind a flag that defaults to NIL, like some of SBCL's non-conforming behavior is 2018-08-31T18:32:42Z aeth: s/hid/hidden/ 2018-08-31T18:35:04Z kajo joined #lisp 2018-08-31T18:37:54Z jasom: dlowe: I'd also like a few hooks in the reader. Several things that are proposed new features could be done in libraries if the reader were just slightly more flexible 2018-08-31T18:38:19Z pjb: Yep. 2018-08-31T18:38:19Z pjb: 2018-08-31T18:38:29Z pjb: the readtable-parse-token hook. 2018-08-31T18:38:38Z jasom: yup 2018-08-31T18:39:00Z jasom: package-local-nicknames, for example is trivial with that. 2018-08-31T18:39:04Z dlowe sighs and opens a doc. 2018-08-31T18:40:19Z dlowe: I think package-local-nicknames should be a basic feature :p 2018-08-31T18:44:12Z SenasOzys quit (Quit: Leaving) 2018-08-31T18:46:17Z DGASAU: jasom: "what is file" is very famous discussion that happened back in FTN days in RU.OS.CMP :) 2018-08-31T18:47:15Z dlowe: I also think that proposed new features are still valuable even if they potentially could be implemented in libraries 2018-08-31T18:48:04Z dlowe: primarily because they communicate "these features are your toolset and should be everywhere." 2018-08-31T18:49:06Z jasom: dlowe: I agree. If we are only going to add new standard features every 30ish years though, then perhaps we should make sure that the standard allows for implementing some of those features as portable libraries 2018-08-31T18:49:25Z jasom: .. should have been a "but" or "however" after "I agree" there. 2018-08-31T18:49:27Z dlowe: oh, absolutely 2018-08-31T18:51:18Z dlowe: I mean, you can just look at the people who prefer to use loop over iterate and see the power of the standard library 2018-08-31T18:51:27Z trocado joined #lisp 2018-08-31T18:51:30Z dlowe: (I'm one of those people, though I like iterate in principle) 2018-08-31T18:51:58Z jasom: heh, I got a bad taste in my mouth because when iterate was introduced it used a very poorly written loop in one of its examples of why it is better than loop 2018-08-31T18:52:55Z aeth: I prefer to use anything in the standard other than loop if possible. I think collect is my main use of loop because I don't know of a simpler or even equivalent way to do it portably. 2018-08-31T18:53:14Z jasom: aeth: portably collect would be keeping a pointer to the tail of the list 2018-08-31T18:53:15Z aeth: Would be interesting to add a sexpy way to generate lists into the standard. 2018-08-31T18:53:40Z aeth: jasom: Yes, but once you're thinking about setfing the cdr of the list you're now writing something that's going to be at least twice as complicated, probably. 2018-08-31T18:54:00Z aeth: As much as I dislike loop, I'll use it when the alternative is more complicated. 2018-08-31T18:55:40Z dlowe: aeth: mapcan is often simpler 2018-08-31T18:55:44Z aeth: jasom: I've written that algorithm before for custom cons-like data structures and it's nowhere near as trivial as just using loop ... collect 2018-08-31T18:55:59Z aeth: (always keeping track of the last element) 2018-08-31T18:57:27Z jasom: yeah; off the top of my head: (let* ((head (cons nil nil)) (tail head)) (setf (cdr tail) (cons newitem nil) tail (cdr tail)) (cdr head)) 2018-08-31T18:58:27Z orivej joined #lisp 2018-08-31T18:59:06Z aeth: dlowe: Well, you can use the mapfoo for some, but not all, of the cases where collect works. They definitely won't work for e.g. collecting into two lists based on a conditional 2018-08-31T18:59:15Z jasom: shorter but perhaps less obvious using (list x) rather than (cons x nil) 2018-08-31T19:00:22Z Achylles joined #lisp 2018-08-31T19:01:19Z aeth: here's something that's not *quite* trivial, but you need loop to make it even this simple afaik: (loop for i from 0 below 42 if (evenp i) collect i into evens else collect i into odds finally (return (values evens odds))) 2018-08-31T19:02:30Z jasom: Turning this into a macro wouldn't be too hard: (let* ((head (list nil)) (tail head)) (flet ((collect (item) (setf (cdr tail) (list item) tail (cdr tail)))) ... (cdr head)) 2018-08-31T19:02:39Z Xach: there is a new quicklisp dist update this day 2018-08-31T19:02:52Z slyrus1: woo hoo! 2018-08-31T19:03:01Z slyrus1: new nibbles and ironclad, i hope? 2018-08-31T19:03:31Z slyrus1: scymtym: around? 2018-08-31T19:04:20Z trocado quit (Read error: Connection reset by peer) 2018-08-31T19:05:03Z DGASAU quit (Read error: Connection reset by peer) 2018-08-31T19:05:49Z DGASAU joined #lisp 2018-08-31T19:06:22Z buffergn0me joined #lisp 2018-08-31T19:07:36Z papachan joined #lisp 2018-08-31T19:08:35Z vsync joined #lisp 2018-08-31T19:08:53Z vsync: looking for more information about ASDF plans and why they be the way that it do 2018-08-31T19:09:34Z vsync: I'm building a system that has some similarity in terms of a hierarchical ordered set of operations and want to learn any lessons from it 2018-08-31T19:09:37Z jasom: aeth: https://pastebin.com/dFqXmixc <-- more complicated than loop, but not by much IMO. 2018-08-31T19:09:47Z aeth: jasom: What's probably needed is a library of minimal macros and/or higher order functions for iteration that look like they could have been in the standard. Most could be very trivial, e.g. do-hash-table (like dolist) is just a tiny wrapper on top of maphash 2018-08-31T19:10:10Z aeth: do-sequence could use map nil 2018-08-31T19:10:14Z jasom: I find loop to be 1000x more readable than dolist since I don't need to remember the order of parameters 2018-08-31T19:10:22Z phoe: jasom: oh boy, are you reinventing UIOP:WHILE-COLLECTING? 2018-08-31T19:10:23Z vsync: in particular why is a plan just a list of steps and not nested, and what were the tradeoffs of traverse to full depth before execute vs build a top level plan then go to execute and make little plans then 2018-08-31T19:10:41Z phoe: jasom: https://github.com/fare/asdf/blob/53f72684bbab75ae375673634e24305e0d276943/uiop/utility.lisp#L148 2018-08-31T19:10:42Z aeth: jasom: SLIME tells me 2018-08-31T19:10:57Z jasom: vsync: Fare has written a *lot* about this in various places 2018-08-31T19:10:59Z aeth: For loop I have to use online documentation 2018-08-31T19:11:38Z jasom: phoe: right, that's a nicer version of what I wrote 2018-08-31T19:11:55Z vsync: phoe jasom: PROG is the only acceptable control flow construct 2018-08-31T19:12:07Z phoe: jasom: the collecting macro has been invented countless times already 2018-08-31T19:12:09Z dlowe: TAGBODY + GOTO is the only acceptable control flow construct 2018-08-31T19:12:18Z trocado joined #lisp 2018-08-31T19:12:27Z vsync: dlowe: but then you have to allow LET 2018-08-31T19:12:32Z aeth: lambda is the ultimate goto 2018-08-31T19:12:47Z aeth: (goto is the ultimate lambda) 2018-08-31T19:12:51Z phoe: quick, somebody fetch the MOVfuscator 2018-08-31T19:14:57Z vsync: jasom: yeah, I have a memory of finding such, but all I can find presently is the manual and a few slide shows 2018-08-31T19:15:04Z vsync: there is half a page in this ILC 2010 paper 2018-08-31T19:15:38Z vsync: nothing I can find really goes into plan construction/concepts in any depth 2018-08-31T19:16:18Z vsync: hmm a little bit here http://fare.tunes.org/files/asdf3/asdf3-2014.html#(part._traverse) 2018-08-31T19:16:24Z pjb: vsync: planner ? 2018-08-31T19:16:48Z vsync: pjb? 2018-08-31T19:16:52Z pjb: https://medium.com/@kinwo/historical-development-of-ai-planning-and-search-a5e2b97b9483 2018-08-31T19:17:17Z pjb: https://machinelearnings.co/historical-intro-to-ai-planning-languages-92ce9321b538 2018-08-31T19:17:28Z vsync: yeah I've read about it in general... though will look at the refs refd there 2018-08-31T19:17:34Z vsync: meant in terms of ASDF 2018-08-31T19:17:51Z pjb: http://www4.ncsu.edu/~stamant/simple-planners/simple-planners.html 2018-08-31T19:17:57Z pjb: It's the same thing, really. 2018-08-31T19:18:24Z vsync: ooh socks and shoes 2018-08-31T19:18:28Z pjb: Here is what I had in mind: https://en.wikipedia.org/wiki/Planner_(programming_language) 2018-08-31T19:18:39Z vsync: think I may have seen that before some time ago... it pleases me regardless 2018-08-31T19:19:00Z vsync: did you have a list of those bookmarked or is it embarrassingly like page 1 of Web search "planning things" 2018-08-31T19:19:10Z pjb: The later. Sorry. 2018-08-31T19:19:31Z pjb: My name is google. 2018-08-31T19:19:46Z vsync: oh well, maybe I should see if I was thinking over-specifically 2018-08-31T19:19:53Z pjb: Search. Google Search. :-) 2018-08-31T19:20:10Z _sfiguser joined #lisp 2018-08-31T19:20:13Z vsync: and at least the simple-planners looks like I can shallowly exploit what I want quickly 2018-08-31T19:20:30Z vsync: and at least I found which page/doc of fare's I was thinking of 2018-08-31T19:20:33Z trocado quit (Ping timeout: 252 seconds) 2018-08-31T19:20:35Z _sfiguser: hello all, which are alive lisp languages? is common lisp and scheme still active projects and viable options ? 2018-08-31T19:20:36Z pjb: vsync: well, you might have a look at the system construction systems, things like make, scons, maven, ants, etc. You might find some more specific algorithms. 2018-08-31T19:20:39Z _sfiguser: i want to start with lisp 2018-08-31T19:21:22Z AeroNotix: _sfiguser: define alive 2018-08-31T19:21:50Z phoe: _sfiguser: actively developed and used? yep, both CL and Scheme fall into that category 2018-08-31T19:22:02Z Xach: _sfiguser: common lisp and scheme are still active and developed and used. 2018-08-31T19:22:10Z pjb: But really, what you have is the description of a hopefully acyclic graph, with labelled nodes and edges, and you have to determine goals (from the current state of the file system or other objects (eg. compiled functions and source sexp in a lisp image).), and then build a plan to obtain those goals by flowing the graph util you reach only existing nodes. 2018-08-31T19:22:14Z phoe: you've wandered into #lisp - a Common Lisp territory 2018-08-31T19:22:17Z vsync: oh man, MK-DEFSYSTEM... total classic 2018-08-31T19:22:34Z igemnace quit (Quit: WeeChat 2.2) 2018-08-31T19:22:40Z pjb: _sfiguser: yes, but here we will advise you to use Common Lisp, more survival stamina in there… 2018-08-31T19:22:57Z _sfiguser: pjb, what do you mean by survival stamina ? 2018-08-31T19:22:59Z AeroNotix: https://twitter.com/stevelosh/status/1035239632051613696 2018-08-31T19:24:10Z phoe: AeroNotix: please don't 2018-08-31T19:24:23Z phoe: fmakunbinding any symbol in CL is undefined behavior 2018-08-31T19:24:35Z AeroNotix: sure, I get that. Just gave me a chuckle 2018-08-31T19:24:42Z phoe: oh wait 2018-08-31T19:24:44Z pjb: _sfiguser: CL has older roots than scheme. It has more genes. It is and will be able to survive longer. Scheme is already at its 7th revision (ie. already 8 versions of the language!) while CL has a single standard and that's it. 2018-08-31T19:25:08Z pjb: _sfiguser: Furthermore, you can run in CL lisp programs that are more than 40 years old! 2018-08-31T19:25:20Z phoe: you kick five completely random functions/macros/specops out of the CL package 2018-08-31T19:25:24Z pjb: _sfiguser: https://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html 2018-08-31T19:25:34Z pjb: almost 60 year old! 2018-08-31T19:26:20Z pjb: So my bet is that it will be able to run the programs you write today in 60 years. Enough until you die programming or until the singularity whichever occurs first. 2018-08-31T19:26:24Z AeroNotix: phoe: I'm sure it could break things that depend on them 2018-08-31T19:26:38Z AeroNotix: but would be a fun little diversion trying to patch things back up 2018-08-31T19:26:38Z phoe: AeroNotix: I don't think so 2018-08-31T19:27:06Z phoe: inside implementation-defined functionality, they're likely baked into the code 2018-08-31T19:27:19Z phoe: also (fmakunbound 'cl:if) doesn't do a thing (: 2018-08-31T19:27:25Z phoe: (at least on SBCL) 2018-08-31T19:27:41Z _sfiguser: pjb, what are modern famous pieces of software written in lisp ? 2018-08-31T19:27:52Z edgar-rft joined #lisp 2018-08-31T19:27:59Z Xach: _sfiguser: wigflip.com 2018-08-31T19:28:10Z pjb: _sfiguser: https://franz.com/success/ 2018-08-31T19:28:11Z phoe: _sfiguser: grammarly 2018-08-31T19:28:24Z pjb: _sfiguser: for example: https://www.google.com/flights#flt=/m/05qtj..2018-09-16*./m/05qtj.2018-09-20;c:EUR;e:1;ls:1w;sd:0;t:h 2018-08-31T19:29:29Z pjb: phoe: the most difficult one AFAIK, would be (setf gethash), but since it fmakunbound only symbols, we're safe. 2018-08-31T19:29:58Z phoe: pjb: ayup 2018-08-31T19:30:12Z phoe: gethash itself is fixable, as long as you have with-hash-table-iterator 2018-08-31T19:30:19Z phoe: and/or maphash 2018-08-31T19:30:36Z pjb: phoe: indeed. 2018-08-31T19:30:49Z phoe: if all three are removed, well, you're out of hashtables. 2018-08-31T19:31:24Z oni-on-ion: _sfiguser: http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/ 2018-08-31T19:31:36Z phoe: oh right, that's a very recent and good article 2018-08-31T19:32:14Z sjl: I still haven't thought of a way to reimplement INPUT-STREAM-P 2018-08-31T19:32:20Z sjl: the others were fairly easy 2018-08-31T19:32:21Z aeth: _sfiguser: If you don't want famous but just want some examples, there are some games you can play right now. https://dto.itch.io/ 2018-08-31T19:32:31Z phoe: clhs input-stream-p 2018-08-31T19:32:31Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_in_stm.htm 2018-08-31T19:33:09Z phoe: sjl: it might not be possible to reimplement that one 2018-08-31T19:33:14Z sjl: can't just negate OUTPUT-STREAM-P because bivalent streams. there's no (portable) INPUT-STREAM type for TYPEP 2018-08-31T19:33:24Z sjl: phoe: yeah it stumped me 2018-08-31T19:36:05Z phoe: sjl: ooh 2018-08-31T19:36:10Z phoe: clhs make-concatenated-stream 2018-08-31T19:36:10Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mk_con.htm 2018-08-31T19:36:49Z phoe: (defun input-stream-p (stream) (handler-bind (progn (make-concatenated-stream stream) t) (error () nil))) 2018-08-31T19:36:57Z phoe: literally this 2018-08-31T19:37:11Z phoe: MAKE-CONCATENATED-STREAM has no side effects and only accepts input streams 2018-08-31T19:37:16Z phoe: so if it doesn't error, return T 2018-08-31T19:37:19Z phoe: if it errors, return NIL 2018-08-31T19:37:50Z FreeBirdLjj quit (Remote host closed the connection) 2018-08-31T19:39:11Z phoe: sjl: you know which one is irreplaceable? HANDLER-BIND 2018-08-31T19:39:17Z shka_: oni-on-ion: folio2 looks quite interesting! 2018-08-31T19:41:58Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-31T19:42:14Z Bike: irreplaceable? 2018-08-31T19:45:35Z phoe: Bike: if you accidentally (fmakunbound 'cl:handler-bind), other than it being UB, you have no portable means of reimplementing it 2018-08-31T19:45:47Z cage_ quit (Quit: Leaving) 2018-08-31T19:46:11Z Bike: you could just reimplement the whole condition system 2018-08-31T19:46:33Z Bike: how about, function 2018-08-31T19:47:49Z phoe: hm 2018-08-31T19:48:02Z phoe: wouldn't (compile nil ...) be kiiiinda equivalent? 2018-08-31T19:48:12Z phoe: wait, that's for lambdas 2018-08-31T19:48:18Z phoe: for global functions, you have fdefinition 2018-08-31T19:48:28Z phoe: for local functions... hm 2018-08-31T19:48:58Z phoe: you can't really return closures without FUNCTION specop 2018-08-31T19:49:51Z _sfiguser: aeth, all of them done in lis p ? 2018-08-31T19:50:53Z phoe: _sfiguser: Franz is a Lisp vendor 2018-08-31T19:51:06Z phoe: would be pointless for them to promote something not made in Lisp as a Lisp success story 2018-08-31T19:53:34Z v0|d joined #lisp 2018-08-31T19:54:42Z pjb: sjl: Well, for binary streams, input-stream-p is hard: you have to read a byte. For character streams, you can use peek-char. 2018-08-31T19:54:58Z pjb: Since there's no unread-byte… 2018-08-31T19:55:15Z phoe: sjl: what about my method? 2018-08-31T19:55:24Z phoe: uh I mean 2018-08-31T19:55:26Z phoe: pjb: ? 2018-08-31T19:55:38Z pjb: Yes, make-concatenated-stream is good. 2018-08-31T19:55:45Z it3ration joined #lisp 2018-08-31T19:56:03Z pjb: I thought it would be lazy, but not, it's specified to signal the type-error. 2018-08-31T19:58:18Z vlatkoB quit (Remote host closed the connection) 2018-08-31T19:58:46Z sjl: pjb: yeah not having peek-byte is unfortunate, but make-concatenated-stream would work 2018-08-31T19:58:51Z aeth: _sfiguser: Games generally use the host's OpenGL driver as well as some portability library like SDL to access windows/input/etc., so they can't really be done 100% in any language except C (and even that doesn't work because some drivers/libraries/etc. are C++) 2018-08-31T19:59:13Z aeth: _sfiguser: Afaik all of dto's games are written in xelf. https://gitlab.com/dto/xelf/ 2018-08-31T19:59:31Z oni-on-ion: shka_: yeah right? =) 2018-08-31T20:00:01Z _sfiguser: im just entering now the lisp world and everything seems cool 2018-08-31T20:00:17Z _sfiguser: what do you like about lisp that is not in other programming languages which are not lisp dialects ? 2018-08-31T20:00:28Z it3ration quit (Ping timeout: 245 seconds) 2018-08-31T20:00:29Z _sfiguser: or what do you think may be the advantages ? 2018-08-31T20:01:31Z pierpa joined #lisp 2018-08-31T20:02:47Z oni-on-ion: real live coding; ie. able to change everything in runtime, class definitions too. and real macros. the `, syntax is perfect for flipping modes which i think a lot of people dont realise is very important at least cognitively 2018-08-31T20:04:31Z oni-on-ion: Julia is my favorite, it is very close to perfect in most ways, it is a truly awesome language, but without those two specific things it can't be my number 1 tongue that lisp is 2018-08-31T20:04:48Z oni-on-ion: (for the current project) 2018-08-31T20:05:49Z Achylles quit (Quit: Leaving) 2018-08-31T20:06:23Z rpg joined #lisp 2018-08-31T20:06:38Z jasom: _sfiguser: SLIME is easily the most productive development environment I've used; really a focus on good development environments seems peculiar to the lisp and smalltalk communities 2018-08-31T20:07:49Z jasom: _sfiguser: Also, the language is malleable. I started using python in 2.2, and it's gotten a lot of useful features since then, but many of the things in python that had to be language features could be implemented as a library in lisp. 2018-08-31T20:08:38Z buffergn0me quit (Ping timeout: 250 seconds) 2018-08-31T20:10:10Z pjb: _sfiguser: have you have a look at http://cliki.net and http://cliki.net/Getting+Started already? 2018-08-31T20:10:26Z pjb: s/you have/you had/ 2018-08-31T20:13:03Z shka_: oni-on-ion: perhaps if i knew about folio before i would never start cl-ds 2018-08-31T20:14:58Z Blukunfando joined #lisp 2018-08-31T20:20:09Z Roy_Fokker joined #lisp 2018-08-31T20:23:10Z [X-Scale] joined #lisp 2018-08-31T20:23:50Z mindCrime quit (Ping timeout: 244 seconds) 2018-08-31T20:24:29Z doubledup quit (Quit: Leaving) 2018-08-31T20:24:41Z _sfiguser: pjb, no but thankks for the resource... 2018-08-31T20:24:46Z _sfiguser: what is SLIME ? 2018-08-31T20:25:07Z _sfiguser: oh ok emacs 2018-08-31T20:25:09Z _sfiguser: i'm used to vim 2018-08-31T20:25:16Z _sfiguser: but i like emacs 2018-08-31T20:25:27Z X-Scale quit (Ping timeout: 240 seconds) 2018-08-31T20:25:27Z [X-Scale] is now known as X-Scale 2018-08-31T20:25:32Z _sfiguser: the only thing i don't like is that since i'm used to vim i find editing slow in emacs 2018-08-31T20:25:56Z shka_: spacemacs is quick way for vimer to switch to emacs 2018-08-31T20:26:12Z jasom: _sfiguser: if you install evil-mode to emacs you are fairly vim compatible keystrokes 2018-08-31T20:26:14Z _sfiguser: shka_, really? why has it already the vi mode set ? 2018-08-31T20:26:22Z _sfiguser: jasom, ok i'll keep that in mind 2018-08-31T20:26:30Z _sfiguser: so clisp can also do concurrent stuff as clojure ? 2018-08-31T20:26:44Z jasom: _sfiguser: control-g intsead of escape is the only real difference at that point (i.e. C-g is what you want to do to cancel where you would hit escape in vim) 2018-08-31T20:27:13Z shka_: _sfiguser: it is a large cow, it has looooots of stuff 2018-08-31T20:27:34Z shka_: and during setup it allows you to choose vi style editing 2018-08-31T20:28:09Z jasom: _sfiguser: I prefer message-passing concurrency; IIRC clojure's is based upon STM; not sure if there is a library in lisp for it. 2018-08-31T20:28:32Z shka_: jasom: there is! for sbcl though 2018-08-31T20:28:36Z _sfiguser: lisp is also used for web programming and so on ? 2018-08-31T20:28:39Z _sfiguser: seems cool 2018-08-31T20:28:48Z orivej quit (Ping timeout: 245 seconds) 2018-08-31T20:28:50Z _sfiguser: why they call it the programmable programming language ? 2018-08-31T20:28:50Z shka_: https://github.com/cosmos72/stmx 2018-08-31T20:29:11Z jasom: _sfiguser: pretty much everything is used for web programming today, since the web is kind of taking over the world 2018-08-31T20:30:08Z shka_: _sfiguser: you can turn lisp into something else 2018-08-31T20:30:42Z jeosol joined #lisp 2018-08-31T20:30:52Z jeosol: morning guys 2018-08-31T20:30:53Z jasom: _sfiguser: you can easily make new control constructs in lisp, for example. 2018-08-31T20:31:15Z shka_: well, it is like common lisp is not programing language, but a building material 2018-08-31T20:31:52Z _sfiguser: shka_, what do you mean ? 2018-08-31T20:32:11Z _sfiguser: can you make an example in code for which something is really simple in lisp but owuld be complicated in other languages ? 2018-08-31T20:32:49Z jasom: python 2.2 did not have a with statement; you could not add it to python 2.2 with a library. Implementing a new statement like that in lisp is trivial 2018-08-31T20:33:21Z shka_: _sfiguser: well, it is difficult to explain, but mind set is that instead of writing something IN lisp you are writing it ON lisp 2018-08-31T20:34:29Z aeth: Does CLOS have alternatives to inheritance? 2018-08-31T20:34:44Z shka_: you made stuff that is essentially embedded into language 2018-08-31T20:35:06Z shka_: and oddly enough, lisp is sort of made this way 2018-08-31T20:35:20Z shka_: so most of lisp is actually written in lisp 2018-08-31T20:35:37Z shka_: it makes it very… bendable 2018-08-31T20:35:48Z shka_: aeth: what do you want to do? 2018-08-31T20:36:07Z pjb: aeth: you can just not include any superclass. 2018-08-31T20:36:13Z aeth: _sfiguser: CL has dolist but it doesn't have an equivalent for hash tables. That's as trivial as (defmacro do-hash-table ((key value hash-table &optional result) &body body) (let ((maphash `(maphash (lambda (,key ,value) ,@body) ,hash-table))) (if result `(progn ,maphash ,result) maphash))) 2018-08-31T20:36:32Z aeth: (It's harder than it would have been if dolist didn't have an optional return value for the result) 2018-08-31T20:38:19Z shka_: anyway, it is not even about macros 2018-08-31T20:38:31Z pjb: But you can avoid the test and always generate ,maphash ,result 2018-08-31T20:38:56Z Copenhagen_Bram quit (Read error: Connection reset by peer) 2018-08-31T20:39:00Z pjb: (defmacro do-hash-table ((key value hash-table &optional result) &body body) `(progn ,(maphash (lambda (,key ,value) ,@body) ,hash-table) ,result)) 2018-08-31T20:39:04Z kajo quit (Ping timeout: 240 seconds) 2018-08-31T20:39:19Z aeth: Similarly, CL doesn't have something like foreach (unless you count loop as one), but you can implement a do-sequence as easily as (defmacro do-sequence ((var sequence &optional result) &body body) (let ((map-nil `(map nil (lambda (,variable) ,@body) ,sequence))) (if result `(progn ,map-nil ,result) map-nil))) 2018-08-31T20:39:53Z aeth: (I'd count do-sequence as a true foreach and not count dolist because do-sequence will work on every sequence like MAP does) 2018-08-31T20:40:04Z _sfiguser: aeth, to me your code seems very unreadable at the moment XD 2018-08-31T20:40:06Z pjb: What I find more regretable in the dolist etc macros, is that there's a result expression, but no provision to bind a result variable. So you often have to (let (result) (do… (var … result) …(setf result …))) 2018-08-31T20:40:08Z Ober: but for-each is typically reduced right? 2018-08-31T20:40:14Z _sfiguser: why do you say you don't write things in LISP bu ON LISP ? 2018-08-31T20:40:30Z pjb: in which case, it would be as well to write (let (result) (do… (var …) …(setf result …)) result) 2018-08-31T20:40:42Z aeth: pjb: yes 2018-08-31T20:41:00Z aeth: _sfiguser: It's mostly unreadable because it's in one line 2018-08-31T20:41:23Z aeth: _sfiguser: you can read it in multiple lines here: https://gitlab.com/zombie-raptor/zombie-raptor/blob/2915b4e53ed1e5113e30348a2cb470329bedb727/util/util.lisp#L245-252 2018-08-31T20:41:24Z pjb: _sfiguser: I guess he means, metalinguistically. Have a look at Structure and Interpretation of Computer Programs http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ 2018-08-31T20:41:51Z pjb: of course, just copy and paste the expressions in an emacs lisp-mode buffer, insert a few new lines, and have emacs indent it. 2018-08-31T20:42:08Z ym: In what constraint logical programming system, implemented on top of CL I can use Prolog's CLPx libraries? 2018-08-31T20:42:09Z shka_: _sfiguser: kinda difficult to explain, but boils down to the fact that many lisp libs are more akin to language extensions 2018-08-31T20:42:13Z Copenhagen_Bram joined #lisp 2018-08-31T20:42:27Z shka_: at least to some degree 2018-08-31T20:43:04Z aeth: _sfiguser: For trivial macros like this, you just need to understand quasiquotation. Sometimes you don't even need that. You could just have (defmacro foo (&rest forms) (some-function-that-takes-in-a-list-and-returns-a-list forms)) 2018-08-31T20:43:11Z pjb: _sfiguser: the idea is that you make the language evolve toward your problem domain, at the same time you implement your solution, so in the end, your program is not so much written in CL as in a domain specific language implemented on CL. 2018-08-31T20:43:12Z shka_: postmodern, screamer, etc. are language extension to some degree 2018-08-31T20:43:17Z shka_: same for lparallel 2018-08-31T20:43:23Z pjb: _sfiguser: was soon as you write a macro, you're extending the programming language. 2018-08-31T20:43:46Z pjb: _sfiguser: and you can write macros, reader macros, and compiler macros in CL ! There are 3 different types of macros. 2018-08-31T20:44:48Z LiamH quit (Quit: Leaving.) 2018-08-31T20:45:49Z _sfiguser: pjb, wow that seeems really interesting... so why lisp is not so popular ? 2018-08-31T20:45:53Z _sfiguser: nowadays 2018-08-31T20:46:01Z _sfiguser: i have to learn emacs 2018-08-31T20:46:07Z _sfiguser: and of course lisp 2018-08-31T20:46:28Z ym: Ok, thanks, now I want comparison between screamer and miniKanren. 2018-08-31T20:46:30Z _sfiguser: do you think structure and interpretation of computer programs can be still considered a modern book? or it explains old concepts ? 2018-08-31T20:46:49Z shka_: ym: those are different things 2018-08-31T20:47:35Z russellw: _sfiguser, still modern, because the concepts it explains are timeless fundamentals, like algebra 2018-08-31T20:48:03Z ym: shka_, on what level? 2018-08-31T20:48:11Z aeth: _sfiguser: Lisp isn't popular for the same reason Google+ or Diaspora isn't popular. Network effects matter. 2018-08-31T20:48:30Z shka_: ym: one is logic programming and stuff, the other is constraints programming and stuff 2018-08-31T20:48:31Z aeth: For a programming language that matters on multiple levels. Resources, tooling, training, jobs, libraries, etc. 2018-08-31T20:49:09Z shka_: logic programming is constraints programming, but with it's own twist 2018-08-31T20:49:19Z shka_: for instance, database 2018-08-31T20:52:59Z ym: I thought both implement CLP. 2018-08-31T20:53:37Z ym: And so able to handle algorithm database with some term algebra magic. 2018-08-31T20:54:52Z ym: Oh, I fount YouTube lecture about Screamer. Nice. 2018-08-31T20:56:15Z ym: s/t/d/ 2018-08-31T20:56:22Z shka_: cool 2018-08-31T20:56:23Z shka_: good night 2018-08-31T20:58:03Z aeth: shka_: I saw https://news.ycombinator.com/item?id=17881197 and I was wondering what the equivalent in CL would be 2018-08-31T20:58:39Z aeth: i.e. https://en.wikipedia.org/wiki/Protocol_(object-oriented_programming) 2018-08-31T20:59:53Z shka_: aeth: what it has to do with inheritance? 2018-08-31T21:02:07Z shka_: aeth: i don't want to read whole blog post right now, but it does not look all that interesting 2018-08-31T21:02:18Z aeth: shka_: It's generally used as an alternative to inheritance afaik 2018-08-31T21:02:27Z shka_: protocol? 2018-08-31T21:02:31Z shka_: nooooooo 2018-08-31T21:02:58Z shka_: anyway, beach has this wonderful text on protocols that everybody should read 2018-08-31T21:03:01Z shka_: did you? 2018-08-31T21:03:34Z shka_: http://metamodular.com/protocol.pdf if you haven't 2018-08-31T21:04:02Z shka_: it is seriously, really really good 2018-08-31T21:04:32Z shka_: enlightening even! 2018-08-31T21:05:24Z shka_: aeth: ok, good night 2018-08-31T21:06:18Z shka_: btw, i really wish i could get whole book already :| 2018-08-31T21:09:47Z AeroNotix: _sfiguser: you seem obsessed with modernity and fashion 2018-08-31T21:11:26Z aeth: CL has some of the modern fashions. e.g. (deftype maybe (type) `(or null ,type)) 2018-08-31T21:11:27Z Copenhagen_Bram quit (Ping timeout: 240 seconds) 2018-08-31T21:12:47Z no-defun-allowed joined #lisp 2018-08-31T21:13:58Z oni-on-ion: _sfiguser: paredit goes nicely with emacs and slime 2018-08-31T21:14:52Z shka_ quit (Ping timeout: 272 seconds) 2018-08-31T21:15:14Z no-defun-allowed: Good morning everyone! 2018-08-31T21:15:28Z oni-on-ion: _sfiguser: http://danmidwood.com/content/2014/11/21/animated-paredit.html 2018-08-31T21:15:31Z oni-on-ion: good morning 2018-08-31T21:15:39Z oni-on-ion: aeth: what is cl-ds ? =) 2018-08-31T21:16:16Z _sfiguser: AeroNotix, no i'm not, if i were like that i was not here... just keep into account industry 2018-08-31T21:16:23Z oni-on-ion: aeth: also i think that inheritence in CLOS is using before/after method chaining isnt it ? can be entirely customized but that 'inheritence' is just the default. 2018-08-31T21:16:24Z _sfiguser: and want to know what's the place of lisp 2018-08-31T21:16:35Z AeroNotix: _sfiguser: fair enough 2018-08-31T21:17:24Z aeth: _sfiguser: I would check https://old.reddit.com/r/lisp/ and https://old.reddit.com/r/Common_Lisp/ as well as http://planet.lisp.org/ 2018-08-31T21:17:32Z sjl_ joined #lisp 2018-08-31T21:17:45Z aeth: _sfiguser: The important research usually ends up at https://www.european-lisp-symposium.org/ 2018-08-31T21:18:15Z aeth: Note that some things are Lisp family but majority CL and some of these things are strictly Common Lisp. 2018-08-31T21:18:54Z AeroNotix: _sfiguser: my suggestion is just learn CL and discover what it means for you and what place you find it useful. 2018-08-31T21:19:25Z aeth: _sfiguser: The most active subcommunity online is probably the Lisp games community with the IRC channel #lispgames and with regular game jams on itch.io such as https://itch.io/jam/lisp-game-jam-2018 2018-08-31T21:19:53Z aeth: _sfiguser: Most commercial activity is probably websites, but #lispweb is a dead channel. I guess it's not as fun to talk about. 2018-08-31T21:20:37Z oni-on-ion: lots of nice CL web frameworks though. radiance, weblocks, cowboy2 .... hunchentoot, cl-who, etc.. 2018-08-31T21:20:47Z aeth: The wiki can also be useful but it's a mix of up-to-date and things that are 10 years out of date ime. https://cliki.net/ 2018-08-31T21:20:50Z AeroNotix: and using lisp for web programming just seems an absolute waste, too. I think it was David Nolen who said "give someone the most powerful programming language and they'll make a web framework" 2018-08-31T21:21:00Z sjl quit (Ping timeout: 250 seconds) 2018-08-31T21:21:16Z oni-on-ion: i think CL is great for web programming. especially not having to restart the server, and a lot of work with textual data. 2018-08-31T21:21:43Z no-defun-allowed: Ooh, story time. 2018-08-31T21:21:53Z no-defun-allowed: I was working with a lisp web server once. 2018-08-31T21:22:12Z AeroNotix: sure, it's a reasonable language to do it in but I dunno, feels like a disservice to the language/environment if having lots of web frameworks is a selling point 2018-08-31T21:22:47Z no-defun-allowed: I'd run SBCL through tmux and rlwrap and copy paste fixes in. Now I know about remote SLIME but it worked 2018-08-31T21:22:49Z oni-on-ion: 'having lots of web frameworks as a selling point' ? maybe i am missing something herre. =) 2018-08-31T21:23:08Z aeth: Lisp is great at generating strings from s-expressions and using that as essentially an alternative to templates (e.g. for XML, HTML, CSS, JSON, SQL, and even JavaScript) 2018-08-31T21:23:17Z aeth: (several GLSL, too) 2018-08-31T21:23:21Z Bike quit (Ping timeout: 252 seconds) 2018-08-31T21:23:33Z oni-on-ion: im going to run the lisp image on my tablet win7.1 for gfx but i will use my desktop to swank/slime it from there. so its like having two screens. fwiw ^_^ 2018-08-31T21:23:45Z no-defun-allowed: It was very easy using format to convert internal data formats into text and html. Very pleasant experience. 2018-08-31T21:23:54Z oni-on-ion: aeth yea =) 2018-08-31T21:24:27Z no-defun-allowed: The server would also write out s expressions to a file to backup proxy lists. 2018-08-31T21:24:42Z AeroNotix: oni-on-ion: your the one who mentioned all the web frameworks :) 2018-08-31T21:24:50Z Copenhagen_Bram joined #lisp 2018-08-31T21:25:04Z oni-on-ion: if i really had to choose something else for webdev i would do node.js, but erlang or prolog for hardcore server stuff. i would choose CL for web sites and pages for sure. haskell was fun tho that one time =) 2018-08-31T21:25:26Z oni-on-ion: no-defun-allowed awesome ^_^ 2018-08-31T21:26:04Z no-defun-allowed: Talking about it isn't doing it justice. 2018-08-31T21:26:08Z oni-on-ion: AeroNotix: perhaps i should have aimed at aeth, now im not sure, i thought you talked about it first for some reason =) 2018-08-31T21:26:12Z no-defun-allowed: https://gitlab.com/Theemacsshibe/cl-pixelcanvas 2018-08-31T21:26:26Z no-defun-allowed: Look under bot/ for the server. 2018-08-31T21:27:25Z no-defun-allowed: Adding authentication was one time where lisp shined, I just wrapped everything in a with-authentication macro which checked for a cookie, or directed the user to log in. 2018-08-31T21:27:29Z AeroNotix: oni-on-ion: I wouldn't have talked about web frameworks. 2018-08-31T21:27:57Z oni-on-ion: " using lisp for web programming .... " 2018-08-31T21:28:06Z asarch quit (Quit: Leaving) 2018-08-31T21:28:12Z oni-on-ion: thats what i was responding to. thats all =) 2018-08-31T21:28:26Z no-defun-allowed: The bot uses hunchentoot for serving, drakma for remote calls, mini.css for aesthetics and some other stuff too. 2018-08-31T21:28:31Z AeroNotix: oni-on-ion: because YOU mentioned frameworks? 2018-08-31T21:28:34Z dented42 joined #lisp 2018-08-31T21:29:12Z no-defun-allowed: A list used as a stack was how the bot got big IMO. 2018-08-31T21:30:13Z no-defun-allowed: If you had a queue and something went wrong, the erroneous request would go to the back of the queue. The Lisp bot would put it to the front of the stack (just with CONS) which was much nicer given we're drawing pixels on a game board as quickly as possible. 2018-08-31T21:30:21Z Jachy joined #lisp 2018-08-31T21:30:22Z Jachy: Do many people put their lisp webservers behind apache with mod_proxy (or nginx)? 2018-08-31T21:30:52Z aeth: You absolutely shouldn't expose a Lisp web server directly to the public imo. 2018-08-31T21:31:11Z oni-on-ion: no-defun-allowed: cool beans =) also, pixelcanvas 2018-08-31T21:31:20Z no-defun-allowed: I put mine behind nginx. 2018-08-31T21:31:26Z oni-on-ion: AeroNotix: eh wot? i mentioned them after i read your comment about lisp web dev. idk homie 2018-08-31T21:31:32Z it3ration joined #lisp 2018-08-31T21:31:35Z jasom: I run behind mongrel2, but I'm the only one that does that AFAIK 2018-08-31T21:31:51Z kajo joined #lisp 2018-08-31T21:32:16Z no-defun-allowed: Yes, that steaming pile of shit, oni-on-ion 2018-08-31T21:32:17Z Jachy: aeth: I feel the same 2018-08-31T21:32:17Z no-defun-allowed: Redpixel had burnt me out in the end. Fuck them. 2018-08-31T21:32:19Z oni-on-ion: AeroNotix: nah i guess not. my bad; it should have indeed been aimed at aeth , my apologies 2018-08-31T21:32:27Z oni-on-ion: no-defun-allowed: but the art! =) 2018-08-31T21:32:30Z no-defun-allowed: I had to maintain a bot managing several bases and I only got to use it a few times to make the stupid ancap base say things like "USE EMACS" instead of "BUY BITCOIN" 2018-08-31T21:32:46Z no-defun-allowed: It's full of Nazis and 4channers. Enough said. 2018-08-31T21:33:16Z AeroNotix: oni-on-ion: np 2018-08-31T21:33:33Z oni-on-ion: no-defun-allowed: didnt realise that many are probably automating their efforts. hm. i remember the initial version from HN sometime ago 2018-08-31T21:33:51Z oni-on-ion: no-defun-allowed: aha =) 2018-08-31T21:33:54Z no-defun-allowed: There are very many bots. 2018-08-31T21:34:16Z no-defun-allowed: Some are more sophisticated, outsourcing captcha solving and whatnot. 2018-08-31T21:34:31Z Jachy: There must be some people who run under jetty/tomcat with abcl too.. 2018-08-31T21:34:57Z no-defun-allowed: My bot exposes an API for getting captcha tokens and also one for using a specific service too. We decided against using a captcha service cause they got expensive quickly and they weren't very humane. 2018-08-31T21:35:09Z AeroNotix: no-defun-allowed: humane? 2018-08-31T21:35:17Z oni-on-ion: eh smart tho, captcha solving =) i often forget how cunning we are. 2018-08-31T21:35:26Z no-defun-allowed: I have been experimenting with using pocketsphinx to solve audio captchas but it needs further training, and I'm getting into offtopic. 2018-08-31T21:35:29Z AeroNotix: "no captchas were harmed in the making of this sexp" 2018-08-31T21:35:53Z no-defun-allowed: AeroNotix: captcha solvers recruit third world people and pay em peanuts. 2018-08-31T21:36:02Z no-defun-allowed: They didn't seem to kind about how they kicked people out either. 2018-08-31T21:36:16Z it3ration quit (Ping timeout: 246 seconds) 2018-08-31T21:36:16Z random-nick quit (Ping timeout: 246 seconds) 2018-08-31T21:36:27Z oni-on-ion: chinese clickfarms are shops with walls full of connected registered cell phones. buy mindshare 2018-08-31T21:36:33Z Jachy: Some people in the states probably too, doubt mechanical turk cares much where you're from. 2018-08-31T21:36:45Z no-defun-allowed: https://www.theguardian.com/technology/2018/jul/06/artificial-intelligence-ai-humans-bots-tech-companies 2018-08-31T21:36:51Z aeth: [image] please enter the numbers in this image to prove that you're not a bot and continue using IRC 2018-08-31T21:36:58Z no-defun-allowed: This is as far as I'm going to talk about captchas. Back to Lisp on the web thanks. 2018-08-31T21:37:01Z AeroNotix: no-defun-allowed: I'm aware of those but are you saying you didn't include captchas on a service you expose because you knew people would use clickfarms against them? 2018-08-31T21:37:02Z aeth: (I actually had that happen to me earlier today, where there was no image) 2018-08-31T21:38:22Z no-defun-allowed: AeroNotix: we had to clear captchas ourselves for the linked bot to work effectively we didn't want to support clickfarms. 2018-08-31T21:38:55Z no-defun-allowed: Occasionally the server will request a captcha token, so we take one from a queue that's not too old. 2018-08-31T21:39:06Z AeroNotix: no-defun-allowed: ok 2018-08-31T21:39:43Z no-defun-allowed: We did use a two queue system for a service but that got expensive: $30 for the first day. 2018-08-31T21:40:32Z _sfiguser: AeroNotix, aeth thanks for all th great suggestion 2018-08-31T21:40:34Z no-defun-allowed: The bot in its final days controlled more than 2000 proxies on one server without breaking a sweat (as measured by htop). 2018-08-31T21:40:37Z no-defun-allowed: Try doing that with python. 2018-08-31T21:40:38Z _sfiguser: you are a very nice community 2018-08-31T21:41:07Z AeroNotix: no-defun-allowed: what does "controlling a proxy" in this bot mean? 2018-08-31T21:41:40Z no-defun-allowed: AeroNotix: it send requests out through several http proxies. 2018-08-31T21:41:57Z _sfiguser: also i think i should start learning emacs 2018-08-31T21:42:36Z AeroNotix: no-defun-allowed: right so it's an online game that allows you set a pixel or something and you were using a suite of bots to bypass rate limiting? 2018-08-31T21:45:40Z no-defun-allowed: Yes. 2018-08-31T21:45:49Z AeroNotix: ok 2018-08-31T21:46:46Z no-defun-allowed: So yes, lisp helped the bot certainly get big. Stacks are more aesthetically pleasing and lisp (on portacle) was much easier to set up. 2018-08-31T21:47:16Z AeroNotix: I'd've used multiple IPs but that's just me 2018-08-31T21:47:22Z AeroNotix: no idea why a proxy is required 2018-08-31T21:48:07Z jerme_ joined #lisp 2018-08-31T21:48:27Z _sfiguser: where is the development of common lisp done ? 2018-08-31T21:48:39Z pjb: _sfiguser: in the head of lisp programmers. 2018-08-31T21:48:41Z _sfiguser: like do the community have a github repo ? 2018-08-31T21:48:48Z _sfiguser: pjb, i mean source code 2018-08-31T21:48:49Z pjb: _sfiguser: sometimes, in the head of C programmers. 2018-08-31T21:49:03Z pjb: a lot on github, gitlab, a few remaining on sourceforge. 2018-08-31T21:49:12Z pjb: common-lisp.net has a gitlab. 2018-08-31T21:49:27Z pjb: Some remain in svn! 2018-08-31T21:50:24Z AeroNotix: _sfiguser: implementations of lisp or applications written on those implementations? 2018-08-31T21:50:25Z no-defun-allowed: Does oclcl support windows? 2018-08-31T21:51:12Z orivej joined #lisp 2018-08-31T21:52:20Z varjag quit (Read error: Connection reset by peer) 2018-08-31T21:54:20Z _sfiguser: AeroNotix, common lisp interpreter/compiler i meant 2018-08-31T21:54:48Z AeroNotix: _sfiguser: arguably the most popular implementation is sbcl, its development is over at https://github.com/sbcl/sbcl 2018-08-31T21:54:55Z light2yellow quit (Quit: light2yellow) 2018-08-31T21:54:59Z AeroNotix: oh I guess that's a mirror actually 2018-08-31T21:55:24Z no-defun-allowed: sbcl.org 2018-08-31T21:56:27Z aeth: AeroNotix: I don't think it's really arguable except that we don't have exact data. 2018-08-31T21:57:08Z aeth: SBCL is much more popular than CCL which is much more popular than any of the rest. The only thing that would be hard to determine is what the #3 implementation is. 2018-08-31T21:57:37Z AeroNotix: aeth: you mean that you're more sure that it is the most popular or that it isn't? 2018-08-31T21:58:17Z _sfiguser: AeroNotix, so they don't develop clisp anymore ? 2018-08-31T21:58:21Z aeth: AeroNotix: here's some data from Quicklisp. http://blog.quicklisp.org/2018/02/quicklisp-implementation-stats-for-2017.html 2018-08-31T21:59:16Z aeth: AeroNotix: It does match my expectations that SBCL is 10x CCL which is 10x the rest and you probably can't distinguish between the rest. Well, 10x seems a bit large for SBCL vs. CCL. I wouldn't be surprised if you did a survey of #lisp and it's only 3x more popular 2018-08-31T21:59:58Z aeth: But I would suspect that if you used many different ways to get incomplete data, you'd probably wind up with SBCL at #1 and CCL at #2. They're the fastest and they have the most helpful errors. 2018-08-31T22:00:41Z aeth: CLISP in 3rd wouldn't surprise me because so many outdated resources from more than 10 years ago recommended CLISP 2018-08-31T22:01:17Z no-defun-allowed: cough Land of Lisp cough 2018-08-31T22:01:33Z aeth: It's a shame that it'd probably be CLISP or a commercial Lisp in third because ECL really deserves the bronze medal there. 2018-08-31T22:02:20Z Jachy: How popular do each of the commercial lisps need to be to keep the companies afloat? 2018-08-31T22:02:39Z aeth: Jachy: If you're running something like Allegro or LispWorks you only really need one customer. 2018-08-31T22:02:51Z josemanuel quit (Quit: leaving) 2018-08-31T22:03:40Z White_Flame quit (Quit: No Ping reply in 180 seconds.) 2018-08-31T22:03:41Z Jachy: I mean e.g. Franz themselves, the ROI for you as a licensee is fast. 2018-08-31T22:03:42Z aeth: The people who do enterprise software love it because your customers are in the dozens instead of the millions. 2018-08-31T22:03:58Z White_Flame joined #lisp 2018-08-31T22:04:16Z aeth: Jachy: I mean if you're running a custom programming language project. 2018-08-31T22:04:47Z Jachy: But they're not even on annual subscription models like the rest seem to be, so I wonder how many licenses Franz needs to sell per year to stay healthy. 2018-08-31T22:04:58Z aeth: They're not subscriptions? Strange. 2018-08-31T22:05:11Z Jachy: You pay again for upgrades. 2018-08-31T22:05:14Z aeth: You generally want subscriptions. 2018-08-31T22:05:47Z aeth: I suspect they'll simply switch their business model to a subscription one if they start to have trouble. 2018-08-31T22:06:10Z Jachy: Yeah, I think IntelliJ boosted their revenue quite a bit moving to that model. 2018-08-31T22:08:58Z aeth: _sfiguser: CLISP is still being developed, but it is not actively developed to the point where they are pushing out new releases regularly. I think it has been at least 5 years since its last release. It's imo very far behind a more modern implementation at this point because of all of the optional things and extensions that an implementation like SBCL or CCL supports these days. 2018-08-31T22:10:09Z aeth: I think lots of libraries at this point use at least one dependency that doesn't support CLISP. 2018-08-31T22:13:27Z AeroNotix: what is Scienteer lisp? Googling about now there's quite a lot of dead links for it 2018-08-31T22:16:16Z pjb: It was an expensive high performance commercial implementation. notice that commercial software is out of topic on freenode. 2018-08-31T22:16:21Z Jachy: AeroNotix: IIRC that was a multi-core spinoff from CMUCL. 2018-08-31T22:16:47Z orivej quit (Ping timeout: 240 seconds) 2018-08-31T22:17:35Z Jachy: Is OpenLisp/ISLisp popular at all in europe? 2018-08-31T22:19:08Z pjb: I don't know of any program written in it. There are more than one implementation though. 2018-08-31T22:20:33Z _sfiguser: AeroNotix, what do you mean that is very far behind a more modern implementation? i mean does it lack stuff to make it a modern language ? 2018-08-31T22:20:38Z AeroNotix: pjb: sorry I just saw a reference to it in the quicklisp statistics linked above, had a question, asked a queston 2018-08-31T22:20:42Z _sfiguser: i mean is it considered a non viable dead language 2018-08-31T22:20:46Z AeroNotix: _sfiguser: I didn't say that 2018-08-31T22:20:58Z dale quit (Quit: dale) 2018-08-31T22:21:02Z _sfiguser: AeroNotix, sorry i wanted to call AeroNotix 2018-08-31T22:21:09Z AeroNotix: again 2018-08-31T22:21:13Z pjb: AeroNotix: My answer was to Jachy's question. 2018-08-31T22:21:13Z _sfiguser: again... aeth 2018-08-31T22:21:35Z AeroNotix: pjb: > notice that commercial software is out of topic on freenode. 2018-08-31T22:21:40Z pjb: ok. 2018-08-31T22:21:42Z AeroNotix: that's what I was referring to 2018-08-31T22:26:45Z AeroNotix: _sfiguser: I'll try to offer an answer 2018-08-31T22:27:10Z aeth: _sfiguser: There are lots of optional things in CL implementations that CLISP does not support, such as (afaik) single-float and double-float arrays, type checking in places where it is optional, and various popular extensions that are handled in portability libraries (you only really find out this third category if you try to test a large Lisp application in an unpopular implementation) 2018-08-31T22:27:15Z AeroNotix: oh wait, ^^ never mind 2018-08-31T22:27:52Z aeth: (The standard afaik only requires type checking in CHECK-TYPE or ASSERT with a typep) 2018-08-31T22:28:06Z quazimodo quit (Ping timeout: 252 seconds) 2018-08-31T22:28:30Z AeroNotix: and to be clear CLISP is a single implementation of common lisp out of many 2018-08-31T22:29:00Z aeth: Yes, that's the unforgivable thing, making a confusing name that makes it sound like it's a way of talking about the language. It's like if a C compiler was called Cee. 2018-08-31T22:29:26Z aeth: _sfiguser: On the other hand, CLISP does have some extensions that no one else supports, like arbitrary precision floating point. 2018-08-31T22:29:27Z vsync would never have thought of CLISP as abbreviation for Common Lisp.... seems obviously different 2018-08-31T22:29:42Z vsync: I assumed it was written in C or they liked the letter C or something 2018-08-31T22:30:00Z quazimodo joined #lisp 2018-08-31T22:30:11Z vsync used to be inordinately fond of CLISP, probably cuz of trying to run on odd architectures in the days when the choice was that or CMUCL and have fun bootstrapping CMUCL 2018-08-31T22:30:29Z vsync: haven't run it in a while... sometimes install it just so I can see the menorah for nostalgia 2018-08-31T22:30:47Z pjb: clisp is not an abbreviation of Common LISP, but of C lisp. Ie. a lisp implemented in C. 2018-08-31T22:30:49Z vsync: feels like I should care more about running different implementations but don't really 2018-08-31T22:30:51Z vsync: zactly 2018-08-31T22:33:15Z _sfiguser: any good extension to do data analysis in lisp ? like managing csv files cleaning data or machine learning? 2018-08-31T22:33:32Z _sfiguser: i come from a python background and work with data science that's why i'm asking 2018-08-31T22:34:39Z aeth: pjb: Yes, but enough people try to use clisp instead of cl as an abbreviation for Common Lisp so that makes me think that the name itself is problematic. 2018-08-31T22:34:56Z Jachy: Once I confused clisp with GCL. Clisp calls itself "gnu clisp" on its home page too, but it's not gnu common lisp. 2018-08-31T22:35:14Z vsync: that was because of readline 2018-08-31T22:35:15Z pierpal quit (Ping timeout: 252 seconds) 2018-08-31T22:35:29Z aeth: Jachy: GNU has Emacs Lisp, two Common Lisps (CLISP and GCL), and at least three Schemes (Guile, Kawa, and MIT/GNU Scheme). That's not confusing at all. 2018-08-31T22:35:30Z vsync: then I think it got adopted 2018-08-31T22:35:33Z trocado joined #lisp 2018-08-31T22:36:34Z _sfiguser: guys are there collection of exercises i can do to practice lisp ? 2018-08-31T22:37:43Z aeth: I did some of the https://projecteuler.net/ problems in Lisp but that's more about cleverly solving the problem mathematically/algorithmically than learning a language. 2018-08-31T22:37:58Z vsync: _sfiguser: I think many of the textbooks have exercises 2018-08-31T22:38:32Z aeth: Google has https://github.com/google/lisp-koans but I bet they're in a slightly archaic style because programming languages, even ones with no revision to the standard since 1994, change what's idiomatic over time 2018-08-31T22:38:55Z fikka joined #lisp 2018-08-31T22:38:59Z aeth: (An example of a style change over time: SETQ used to be about as popular as SETF, but SETF has clearly won at this point.) 2018-08-31T22:39:37Z pjb: _sfiguser: https://www.informatimago.com/develop/lisp/l99/index.html 2018-08-31T22:40:02Z Jachy: _sfiguser: http://stevelosh.com/blog/2018/08/a-road-to-common-lisp/ this was a recently popular post on getting started with CL 2018-08-31T22:40:49Z vsync: aeth: lots of those seem to be about things from the standard slowly increasing popularity 2018-08-31T22:41:11Z aeth: Yes. Archaic Lisps like Emacs Lisp still use SETQ 2018-08-31T22:41:20Z _sfiguser: anyone knows instead about data science or statistics/machine learning stuff with clisp ? 2018-08-31T22:41:42Z vsync: of course xemacs with cl-macs besides gets confusingly CLy 2018-08-31T22:41:55Z aeth: _sfiguser: CLISP refers to an implementation. CL is the correct short name for Common Lisp. 2018-08-31T22:41:56Z papachan quit (Quit: WeeChat 2.2) 2018-08-31T22:42:05Z aeth: (This name conflicts with OpenCL, unfortunately.) 2018-08-31T22:42:32Z Jachy: _sfiguser: also a useful resource is https://github.com/CodyReichert/awesome-cl#machine-learning 2018-08-31T22:43:15Z pjb: It's simple, in Common Lisp, there's a package named "COMMON-LISP" and it has a nickname "CL". 2018-08-31T22:43:45Z aeth: _sfiguser: if you want to visualize data you can use https://github.com/vydd/sketch or https://github.com/cbaggers/cepl or even use a graphics framework that's more game-oriented in its intent. 2018-08-31T22:43:53Z aeth: (There are probably a few more that I'm missing.) 2018-08-31T22:45:01Z aeth: Jachy: I'd be careful linking to awesome-cl. It's not curated 2018-08-31T22:45:15Z pjb: So it's Common Lisp, COMMON-LISP or CL, or ANSI Common Lisp, or perhaps X3J13 ;-) 2018-08-31T22:45:22Z joast quit (Quit: Leaving.) 2018-08-31T22:45:39Z aeth: Jachy: It seems to pretty much be a random list of things that people have submitted rather than something opinionated that someone new to CL should read. 2018-08-31T22:45:47Z joast joined #lisp 2018-08-31T22:46:25Z Jachy: aeth: It's curated, just not with any quality control, so definitely a buyer-beware. 2018-08-31T22:46:25Z pjb: So, it's lisp eternal september starting today? :-) 2018-08-31T22:46:34Z aeth: pjb: Or you can call it "Lisp" if you want to annoy Schemers 2018-08-31T22:46:59Z pjb: Notice that in pre-standard, there was also a nickname "LISP" for that package :-) 2018-08-31T22:47:08Z vsync: guis I got assigned CLisp and how do I write a LISP recursion plz 2018-08-31T22:47:33Z Lycurgus joined #lisp 2018-08-31T22:47:33Z aeth: vsync: Lisp doesn't do recursion, you want Scheme for that. 2018-08-31T22:47:35Z aeth: /s 2018-08-31T22:47:46Z pjb: vsync: like in any other programming language: by testing for the base case, and calling the function recursively in the general case. 2018-08-31T22:48:11Z aeth: pjb: I'm pretty sure vsync was joking 2018-08-31T22:48:33Z pjb: I know, but I amuse myself answering seriously to jokes. 2018-08-31T22:48:34Z AeroNotix: aeth: I'm pretty sure pjb was trying to joke as well 2018-08-31T22:48:58Z AeroNotix: The french sense of humour is much like the german's 2018-08-31T22:49:22Z pjb: Perhaps not in general, but I come from Lorraine, near Luxembourg and Germany. 2018-08-31T22:49:53Z no-defun-allowed: vsync: you must get one lisp and put it in the other lisp but then the first lisp must also be in the second lisp 2018-08-31T22:50:00Z Bike joined #lisp 2018-08-31T22:50:30Z no-defun-allowed: Your lisp image should now look like this: https://youtu.be/PD2XgQOyCCk 2018-08-31T22:50:32Z no-defun-allowed: Hi bike 2018-08-31T22:50:39Z pjb: In my father's village, in WWII when the germans arrived, they aligne people, and asked who wanted to be German and who wanted to stay French. All but two went for German (my grandfather stayed French). 2018-08-31T22:51:18Z Bike: hello. 2018-08-31T22:51:35Z Ober: yeah mine died fighting the Vichy french in NA 2018-08-31T22:51:44Z pjb: The lesson is that in Alsace-Lorraine, smart people know that it doesn't matter which, Berlin or Paris, they'll have to pay taxes all the same, so let's not contradict the current adminstration. 2018-08-31T22:52:25Z aeth: pjb: The lesson is that if I want to conquer anything I should start with Alsace-Lorraine, I guess. 2018-08-31T22:53:08Z pjb: Don't be so sure. We know the German, and we know the French (we're both), but it may be a different story with different people. 2018-08-31T22:53:41Z aeth: pjb: Well I'd conquer Alasce-Lorraine for Luxembourg 2018-08-31T22:53:48Z pjb: :-) 2018-08-31T22:54:02Z pjb: I'd be surprised if Luxembourg would want that :-) 2018-08-31T22:54:14Z aeth: It looks like it would make an interesting border as part of Luxembourg, and it would solve the French-German hostilities because they would no longer border each other. https://upload.wikimedia.org/wikipedia/commons/3/37/German_Empire_-_Alsace_Lorraine_%281871%29.svg 2018-08-31T22:54:28Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-31T22:56:27Z trocado quit (Ping timeout: 240 seconds) 2018-08-31T22:57:12Z AeroNotix: pjb: same happened with my wife's village during WWII 2018-08-31T22:59:36Z pjb: They did that everywhere in Alsace-Moselle, I assume. 2018-08-31T22:59:55Z AeroNotix: She's from the German/Poland border 2018-08-31T23:01:16Z X-Scale quit (Ping timeout: 272 seconds) 2018-08-31T23:01:25Z dale joined #lisp 2018-08-31T23:03:10Z X-Scale joined #lisp 2018-08-31T23:04:51Z lumm quit (Quit: lumm) 2018-08-31T23:05:11Z pjb: That's surprising. I would have expected more hostile takeover on this side… 2018-08-31T23:05:34Z lumm joined #lisp 2018-08-31T23:05:39Z AeroNotix: pjb: you're surprised Polish villages were taken by force? 2018-08-31T23:06:53Z pjb: No, that they asked people whether they wanted to become German. 2018-08-31T23:07:19Z pjb: For Alsace-Lorraine it was different since they already had been Germain before WWI. 2018-08-31T23:07:55Z pjb: from 1871 to 1914. 2018-08-31T23:08:03Z AeroNotix: Ditto for this area. Silesia. Not sure if there's an English name for the area but roughly equivalent to Prussia 2018-08-31T23:08:04Z dented42 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2018-08-31T23:08:24Z pjb: Right. The map above shows it. 2018-08-31T23:10:49Z Duns_Scrotus: silesia is the english name 2018-08-31T23:12:48Z AeroNotix: indeed, they seem to get used interchangably, at least by my wife's family. 2018-08-31T23:13:00Z AeroNotix: Slask in "pure" polish 2018-08-31T23:13:17Z Duns_Scrotus: i don't speak polish but i have only ever heard slask 2018-08-31T23:13:19Z Duns_Scrotus: i mean 2018-08-31T23:13:23Z Duns_Scrotus: i don't speak polish *much* 2018-08-31T23:13:45Z Duns_Scrotus: but i do speak it and i've only ever heard people call it slask 2018-08-31T23:14:05Z AeroNotix: I've definitely heard native poles use it 2018-08-31T23:14:16Z AeroNotix: ask phoe :) 2018-08-31T23:16:55Z aeth: https://en.wikipedia.org/wiki/Province_of_Silesia 2018-08-31T23:17:17Z aeth: And https://en.wikipedia.org/wiki/Alsace-Lorraine 2018-08-31T23:17:58Z nowhere_man quit (Ping timeout: 245 seconds) 2018-08-31T23:19:22Z trocado joined #lisp 2018-08-31T23:28:16Z fikka quit (Ping timeout: 246 seconds) 2018-08-31T23:28:37Z quazimodo quit (Ping timeout: 246 seconds) 2018-08-31T23:30:27Z gector quit (Read error: Connection reset by peer) 2018-08-31T23:30:35Z pierpal joined #lisp 2018-08-31T23:30:49Z quazimodo joined #lisp 2018-08-31T23:31:14Z gector joined #lisp 2018-08-31T23:32:31Z it3ration joined #lisp 2018-08-31T23:34:29Z bradcomp quit (Ping timeout: 244 seconds) 2018-08-31T23:36:34Z azimut quit (Ping timeout: 240 seconds) 2018-08-31T23:37:08Z makomo quit (Quit: WeeChat 2.2) 2018-08-31T23:37:24Z it3ration quit (Ping timeout: 252 seconds) 2018-08-31T23:40:34Z lnostdal quit (Ping timeout: 240 seconds) 2018-08-31T23:42:39Z azimut joined #lisp 2018-08-31T23:48:11Z lnostdal joined #lisp 2018-08-31T23:49:15Z no-defun-allowed: how could i smooth off the alpha channel for cl-vep's background replacement function? 2018-08-31T23:49:36Z no-defun-allowed: right now it's just a linear thing which doesn't look too great 2018-08-31T23:51:06Z no-defun-allowed: #'tanh looks reasonable but it takes a while to smooth off 2018-08-31T23:56:42Z azimut quit (Ping timeout: 244 seconds)