2016-08-21T00:03:42Z rme: In http://funcall.blogspot.com/2016/01/alist-vs-hash-table.html, the author (Joe Marshall) talks about alist vs. hash-table tests he made (in MIT Scheme). His break-even point was about 25 elements. 2016-08-21T00:05:03Z mishoo quit (Ping timeout: 258 seconds) 2016-08-21T00:06:40Z MoALTz quit (Quit: Leaving) 2016-08-21T00:07:03Z DeadTrickster quit (Ping timeout: 240 seconds) 2016-08-21T00:15:04Z akkad: if I'm loading an array with index from a large db. would a alist be apropriate? or a hash? 2016-08-21T00:17:05Z dvxd: yeah, 25 elements sounds about right. or somewhere between 25 and 2000. I think Lutz Mueller found the breakeven point was more than 1000 2016-08-21T00:17:34Z dvxd: (in newLISP) 2016-08-21T00:18:04Z dvxd: I was totally stoked to find ulisp running on Arduino in 2k of ram. I didn't think it was possible. The source code is short and sweet too. 2016-08-21T00:18:31Z dvxd: after a certain point, I have trouble telling FORTH and LISP apart. 2016-08-21T00:19:37Z akkad: heh 2016-08-21T00:19:46Z akkad: cept no lisp boot loaders in eeprom here 2016-08-21T00:20:35Z dvxd: not yet.... ;) 2016-08-21T00:21:15Z dvxd: I talked to Chuck Moore, and he admitted that LISP and FORTH have common roots. Then last week I was reading the LISP 1.5 documentation, and it was like a gold mine. The link to FORTH was a lot stronger than I had suspected. 2016-08-21T00:21:37Z dvxd: LISP for embedded devices is bringing it more back to its common roots with FORTH. 2016-08-21T00:28:03Z sjl quit (Ping timeout: 264 seconds) 2016-08-21T00:29:07Z rszeno joined #lisp 2016-08-21T00:31:29Z M-Illandan joined #lisp 2016-08-21T00:32:13Z antonv joined #lisp 2016-08-21T00:35:24Z egorpe joined #lisp 2016-08-21T00:36:49Z oleo_ joined #lisp 2016-08-21T00:40:54Z oleo quit (Ping timeout: 276 seconds) 2016-08-21T00:41:38Z mastokley joined #lisp 2016-08-21T00:42:41Z MrWoohoo joined #lisp 2016-08-21T00:46:09Z pjb: dvxd: LISP 1.5 was in 1962. 2016-08-21T00:46:27Z pjb: Common Lisp is from 1994. 2016-08-21T00:46:34Z pjb quit (Quit: Good night!) 2016-08-21T00:46:57Z alphor: rme: wow that's a lot larger then I expected 2016-08-21T00:48:36Z alphor: I wonder how easy it would be to check out the break even points of various languages. Sounds like a decent project. 2016-08-21T00:48:39Z akkad: rme thanks for the link 2016-08-21T00:50:24Z rszeno quit (Quit: Leaving.) 2016-08-21T00:51:01Z akkad: did he publish the code for this test? 2016-08-21T00:56:23Z milanj quit (Quit: This computer has gone to sleep) 2016-08-21T01:04:53Z jleija joined #lisp 2016-08-21T01:14:53Z rme: akkad: Looks like http://funcall.blogspot.com/2016/01/race-results-are-in.html 2016-08-21T01:15:37Z zacts joined #lisp 2016-08-21T01:20:00Z scottj joined #lisp 2016-08-21T01:20:26Z Yuuhi` joined #lisp 2016-08-21T01:22:29Z BlueRavenGT quit (Ping timeout: 260 seconds) 2016-08-21T01:24:14Z Yuuhi quit (Ping timeout: 260 seconds) 2016-08-21T01:28:41Z wccoder joined #lisp 2016-08-21T01:28:46Z space_otter_ quit (Remote host closed the connection) 2016-08-21T01:31:05Z rumbler31: in slime, how do I inspect an object under the cursor? 2016-08-21T01:31:51Z akkad: i? 2016-08-21T01:33:13Z wccoder quit (Ping timeout: 258 seconds) 2016-08-21T01:33:38Z rumbler31: C-c C-v tab apparently 2016-08-21T01:33:49Z rumbler31: slime-inspect..-at-point 2016-08-21T01:42:24Z discarde` quit (Remote host closed the connection) 2016-08-21T01:49:52Z Yuuhi` quit (Remote host closed the connection) 2016-08-21T02:03:00Z rew joined #lisp 2016-08-21T02:09:48Z eSVG joined #lisp 2016-08-21T02:11:16Z MrWoohoo quit (Ping timeout: 244 seconds) 2016-08-21T02:13:51Z svgDelux joined #lisp 2016-08-21T02:14:17Z svgDelux quit (Max SendQ exceeded) 2016-08-21T02:14:44Z svgDelux joined #lisp 2016-08-21T02:16:35Z eSVG quit (Ping timeout: 250 seconds) 2016-08-21T02:20:01Z scymtym quit (Ping timeout: 265 seconds) 2016-08-21T02:25:19Z svgDelux quit (Read error: Connection reset by peer) 2016-08-21T02:25:59Z eSVG joined #lisp 2016-08-21T02:32:37Z zygentoma|2 joined #lisp 2016-08-21T02:32:39Z raydeejay: I don't suppose anyone has a reaaaaaally really barebones telnet-ish chat server that they can throw at me? I can't figure out where is the proper place to do whatever is the proper thing to keep things from exploding whenever a client closes the connection or anything similar 2016-08-21T02:35:51Z zygentoma quit (Ping timeout: 264 seconds) 2016-08-21T02:41:14Z rumbler31: so you are trying to see what happens when your code closes the client end of a telnet connection? 2016-08-21T02:41:41Z raydeejay: ideally, I'm trying to care the least possible about it 2016-08-21T02:41:54Z raydeejay: possibly do something when it happens, and then have the closed socket go away 2016-08-21T02:43:49Z alienbot joined #lisp 2016-08-21T02:44:19Z sellout- joined #lisp 2016-08-21T02:46:06Z rumbler31: well I imagine you have to track the results of read calls on the socket, depending on which one you use, the read should return an error after attempting to read from the socket with no more data left and with the socket in a closed state 2016-08-21T02:48:14Z raydeejay: that's pretty much what the C code I'm attempting to emulate does 2016-08-21T02:48:35Z raydeejay: I figured there's a more idiomatic way 2016-08-21T02:48:43Z alienbot quit (Remote host closed the connection) 2016-08-21T02:50:40Z kn-928 joined #lisp 2016-08-21T02:51:15Z kn-928 quit (Max SendQ exceeded) 2016-08-21T02:51:49Z kn-928 joined #lisp 2016-08-21T02:51:51Z wildlander quit (Quit: Saliendo) 2016-08-21T02:52:24Z kn-928 quit (Max SendQ exceeded) 2016-08-21T02:52:57Z kn-928 joined #lisp 2016-08-21T02:56:03Z yaewa joined #lisp 2016-08-21T02:56:12Z rumbler31: well this is left up to the implementation, at least for sockets 2016-08-21T02:56:46Z cibs quit (Ping timeout: 240 seconds) 2016-08-21T02:57:19Z moei quit (Ping timeout: 250 seconds) 2016-08-21T02:58:11Z rumbler31: so consult your docs regarding how closed sockets are reported to your code, then catch those 2016-08-21T02:58:55Z cibs joined #lisp 2016-08-21T02:59:19Z sellout- quit (Quit: Leaving.) 2016-08-21T03:01:51Z zacts quit (Ping timeout: 250 seconds) 2016-08-21T03:04:05Z Arathnim quit (Quit: Lost terminal) 2016-08-21T03:04:40Z micro` quit (Ping timeout: 264 seconds) 2016-08-21T03:04:58Z cods quit (Ping timeout: 265 seconds) 2016-08-21T03:05:20Z micro` joined #lisp 2016-08-21T03:05:25Z cods joined #lisp 2016-08-21T03:05:44Z micro` is now known as Guest55518 2016-08-21T03:11:37Z zygentoma|2 quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2016-08-21T03:19:04Z BlueRavenGT joined #lisp 2016-08-21T03:20:21Z d4ryus quit (Ping timeout: 265 seconds) 2016-08-21T03:20:42Z Trystam is now known as Tristam 2016-08-21T03:21:30Z beach: Good morning everyone! 2016-08-21T03:23:12Z d4ryus joined #lisp 2016-08-21T03:23:45Z swflint quit (Ping timeout: 250 seconds) 2016-08-21T03:24:02Z Moosef joined #lisp 2016-08-21T03:24:14Z svgDelux joined #lisp 2016-08-21T03:25:53Z swflint_away joined #lisp 2016-08-21T03:25:59Z swflint_away is now known as swflint 2016-08-21T03:28:05Z eSVG quit (Ping timeout: 250 seconds) 2016-08-21T03:28:11Z sebboh quit (Remote host closed the connection) 2016-08-21T03:29:22Z wccoder joined #lisp 2016-08-21T03:29:46Z sebboh joined #lisp 2016-08-21T03:30:06Z yaewa quit (Quit: Leaving...) 2016-08-21T03:30:25Z moei joined #lisp 2016-08-21T03:31:05Z Karl_Dscc joined #lisp 2016-08-21T03:31:24Z wccoder quit (Remote host closed the connection) 2016-08-21T03:31:45Z wccoder joined #lisp 2016-08-21T03:32:15Z alphor: morning! 2016-08-21T03:33:23Z wccoder quit (Remote host closed the connection) 2016-08-21T03:33:29Z Bike: morning. 2016-08-21T03:37:50Z rumbler31 quit (Ping timeout: 265 seconds) 2016-08-21T03:38:58Z eSVG joined #lisp 2016-08-21T03:42:23Z svgDelux quit (Ping timeout: 250 seconds) 2016-08-21T03:42:50Z beach: Bike: Did you do some more work on the type inferencer? 2016-08-21T03:43:56Z Bike: not much today, but i'm seeing if i can do things to THE to make it more helpful 2016-08-21T03:44:06Z beach: OK. 2016-08-21T03:45:25Z beach: I forget whether I told you, but doing backward propagation in addition to forward propagation is much harder, so I would prioritize forward propagation. Especially since backward propagation is useful only in unsafe code. 2016-08-21T03:46:01Z svgDelux joined #lisp 2016-08-21T03:46:37Z Bike: right, yeah, i thought about it more and given that code should have all the side effects it has before a type problem it might not be that useful anyway 2016-08-21T03:47:14Z beach: Bike: It is certainly contrary to the semantics of Common Lisp. But that is OK sometimes for unsafe code. 2016-08-21T03:47:27Z beach: I know Baker does it in his type inferencer. 2016-08-21T03:47:57Z Bike: which is why i'm messing with THE instead. right now even inlining doesn't help too much, like in the (car x) (cdr x) thing, all three possibilities of x : cons, x : null, x : (not list) have the same successive code 2016-08-21T03:48:40Z Bike: plus, yes, backwards propagation seems much harder and i am new to this 2016-08-21T03:48:50Z beach: That depends on what you want THE to do. 2016-08-21T03:48:57Z beach: And that is implementation dependent. 2016-08-21T03:49:15Z Karl_Dscc quit (Remote host closed the connection) 2016-08-21T03:49:19Z eSVG quit (Ping timeout: 250 seconds) 2016-08-21T03:49:42Z Bike: yeah, i was kind of wondering about the intended semantics... i was thinking that in safe code, you'd more or less replace THE with TYPEQs to an error branch, and in unsafe code you'd remove THEs after you type inferenced 2016-08-21T03:50:11Z beach: Yes, that's what I was planning for SICL. 2016-08-21T03:50:21Z beach: But who knows what drmeister wants for Clasp? 2016-08-21T03:50:47Z beach: So there needs to be an implementation-specific mechanism for doing that. 2016-08-21T03:51:11Z Bike: i suppose. i'm not totally sure how transformations work yet but i was thinking of both of those options as transformations you could run or not. 2016-08-21T03:51:27Z drmeister: Hello 2016-08-21T03:51:41Z beach: Bike: Good point. I think that sounds great. 2016-08-21T03:51:46Z beach: Hello drmeister. 2016-08-21T03:52:16Z Bike: but first i'd like to be able to excise NIL paths, and i think i need to rewrite several things to do that. 2016-08-21T03:52:30Z Bike: plus THE currently doesn't work with complex values types, which, luckily, nobody uses 2016-08-21T03:52:41Z beach: Heh! 2016-08-21T03:53:01Z beach: I remember THE is messy because of multiple values. 2016-08-21T03:53:52Z Bike: it really is. there's no actual way to say "this form returns EXACTLY two values", either. sbcl does this stupid thing with &optional to indicate that 2016-08-21T03:54:25Z beach: I see. 2016-08-21T03:56:08Z Bike: oh yeah, also THE currently has an option to have two successors? is it supposed to? 2016-08-21T03:56:52Z beach: I don't remember. :( 2016-08-21T03:57:01Z beach: Is there a THE-INSTRUCTION? 2016-08-21T03:57:07Z Bike: there is. 2016-08-21T03:58:02Z beach: It is probably too early in the morning for me. Let me investigate and get back to you. Today I am going to be busy with invited guests, but I'll investigate as soon as I can. 2016-08-21T03:58:11Z Bike: that's cool. have fun. 2016-08-21T03:58:28Z beach: Fun, but also more work. :) 2016-08-21T04:02:19Z alphor quit (Ping timeout: 250 seconds) 2016-08-21T04:03:06Z arescorpio joined #lisp 2016-08-21T04:03:18Z safe joined #lisp 2016-08-21T04:04:14Z alphor joined #lisp 2016-08-21T04:05:01Z taij33n quit (Ping timeout: 258 seconds) 2016-08-21T04:06:23Z phax joined #lisp 2016-08-21T04:07:05Z zacts joined #lisp 2016-08-21T04:11:07Z happy-dude quit (Quit: Connection closed for inactivity) 2016-08-21T04:14:04Z taij33n joined #lisp 2016-08-21T04:14:15Z toogley quit (Ping timeout: 264 seconds) 2016-08-21T04:14:23Z kn-928 quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2016-08-21T04:14:53Z zkat quit (Ping timeout: 250 seconds) 2016-08-21T04:14:54Z zkat_ joined #lisp 2016-08-21T04:16:18Z sharkteeth quit (Quit: Textual IRC Client: www.textualapp.com) 2016-08-21T04:19:12Z taij33n quit (Ping timeout: 258 seconds) 2016-08-21T04:21:44Z svgDelux quit (Read error: Connection reset by peer) 2016-08-21T04:22:12Z svgDelux joined #lisp 2016-08-21T04:24:38Z zacts quit (Ping timeout: 265 seconds) 2016-08-21T04:25:20Z reepca quit (Ping timeout: 258 seconds) 2016-08-21T04:26:50Z rumbler31 joined #lisp 2016-08-21T04:26:50Z rumbler31: if I want to sort a list, is setfing the result of the sort to the original binding redundant, as the spec says that sort is destructive? 2016-08-21T04:27:02Z rumbler31: if I want to sort a list, is setfing the result of the sort to the original binding redundant, as the spec says that sort is destructive? 2016-08-21T04:27:14Z Bike: no. it says sort is destructive, not that it is destroyed in a useful way. you need to change your binding. 2016-08-21T04:27:49Z rumbler31: ty 2016-08-21T04:33:58Z wccoder joined #lisp 2016-08-21T04:35:09Z egorpe quit (Quit: Textual IRC Client: www.textualapp.com) 2016-08-21T04:38:31Z wccoder quit (Ping timeout: 244 seconds) 2016-08-21T04:39:10Z Bike: oh, there's a comment on THE-INSTRUCTION saying it has only one successor. okay then. 2016-08-21T04:39:57Z beach: I still need to investigate, since I don't remember my thinking at the time. 2016-08-21T04:40:44Z gtdBFmKOXx quit (Remote host closed the connection) 2016-08-21T04:42:36Z toogley joined #lisp 2016-08-21T04:45:54Z phadthai quit (Ping timeout: 244 seconds) 2016-08-21T04:45:55Z EvW joined #lisp 2016-08-21T04:46:01Z PvLfNQxpCk joined #lisp 2016-08-21T04:46:32Z eivarv quit (Read error: Connection reset by peer) 2016-08-21T04:46:40Z deank quit (Ping timeout: 265 seconds) 2016-08-21T04:47:14Z eivarv joined #lisp 2016-08-21T04:50:27Z eSVG joined #lisp 2016-08-21T04:51:02Z eSVG quit (Max SendQ exceeded) 2016-08-21T04:51:09Z EvW quit (Ping timeout: 276 seconds) 2016-08-21T04:51:48Z eSVG joined #lisp 2016-08-21T04:52:21Z toogley quit (Ping timeout: 250 seconds) 2016-08-21T04:53:27Z phax quit (Quit: phax) 2016-08-21T04:53:27Z svgDelux quit (Ping timeout: 250 seconds) 2016-08-21T04:54:28Z smithzv quit (Ping timeout: 258 seconds) 2016-08-21T04:55:06Z smithzv joined #lisp 2016-08-21T04:55:30Z smithzv is now known as Guest93323 2016-08-21T04:56:37Z jleija quit (Quit: leaving) 2016-08-21T04:56:41Z oleo_ quit (Quit: Leaving) 2016-08-21T05:00:26Z MrWoohoo joined #lisp 2016-08-21T05:01:02Z toogley joined #lisp 2016-08-21T05:05:16Z oleo joined #lisp 2016-08-21T05:05:16Z oleo quit (Changing host) 2016-08-21T05:05:16Z oleo joined #lisp 2016-08-21T05:06:03Z rumbler31 quit (Ping timeout: 244 seconds) 2016-08-21T05:07:05Z rumbler31 joined #lisp 2016-08-21T05:07:42Z Bike: beach: by the way, say there's an (error ...) call in HIR - how would you indicate the lack of return value? funcall has to have one successor, right? do you put in a nop or something? 2016-08-21T05:08:01Z PvLfNQxpCk quit (Remote host closed the connection) 2016-08-21T05:08:29Z rumbler31 quit (Remote host closed the connection) 2016-08-21T05:09:24Z beach: I can see two solutions. The first one would be to allow funcall to have no successor. The second one would be to introduce an instruction for it, like no-return-funcall. 2016-08-21T05:10:39Z beach: It would certainly be extremely valuable to indicate such calls. It can make other transformations much more effective. 2016-08-21T05:12:46Z Bike: right... i guess that's probably about the only place you'd want no successors, with the primops if you determined they were impossible you'd just remove the whole thing. 2016-08-21T05:14:16Z beach: What do you mean? 2016-08-21T05:17:00Z Bike: i'm just thinking about how to prune paths will nil types. for something like (if (eq x nil) a b) if you can prove x is non-nil you'd just replace the whole thing with a. you probably only need to indicate no-successor for funcalls. 2016-08-21T05:17:31Z Bike: er, with b. double negatives. 2016-08-21T05:18:46Z beach: Yes, I see. 2016-08-21T05:22:03Z beach: I think there are only 3 cases with no successors: 1. return 2. tailcall and 3. calls to functions that don't return such as ERROR. 2016-08-21T05:22:50Z beach: And we certainly don't want to turn calls to ERROR into tailcalls because then the problematic situation will be removed from the call stack. Not very helpful to the programmer. :) 2016-08-21T05:23:22Z beach: Oh, and I believe that currently, tailcalls are just calls followed by return. 2016-08-21T05:23:44Z beach: The reason for that being the complication with multiple values, if I remember correctly. 2016-08-21T05:26:09Z Bike: calls followed by return? like the tailcall instruction has a successor to a/the return instruction? 2016-08-21T05:26:30Z BlueRavenGT quit (Ping timeout: 265 seconds) 2016-08-21T05:26:35Z beach: No, that the tailcall instruction is currently not generated. 2016-08-21T05:27:20Z Bike: oh. heh. how do multiple values interfere, exactly? 2016-08-21T05:27:59Z beach: It has to do with the special VALUES data type. 2016-08-21T05:28:40Z beach: But I don't remember the details. 2016-08-21T05:29:18Z beach: Oh, wait. I think it has to do with the combination of multiple values with non-local control transfers. 2016-08-21T05:29:33Z Bike: well, since so many of my present troubles are values-based i can certainly believe it 2016-08-21T05:29:52Z beach: As in (block bla .... (lambda (...) (return-from bla (values ...)))) 2016-08-21T05:31:05Z beach: Er... (block bla .... (lambda (...) (return-from bla (fun ...)))) 2016-08-21T05:31:12Z beach: where FUN may return multiple values. 2016-08-21T05:31:36Z beach: So you can't replace the call to FUN with a tailcall, because the stack needs to be unwound first. 2016-08-21T05:33:08Z Bike: hm. i haven't looked at the non local exit facilities at all 2016-08-21T05:33:21Z beach: It gets messy. 2016-08-21T05:33:28Z Bike: naturally. 2016-08-21T05:34:21Z Bike: GO has an instruction too, right? does that return nil? 2016-08-21T05:34:28Z Bike: and throw is... provided by the user, or something 2016-08-21T05:34:45Z beach: GO does not have an instruction. 2016-08-21T05:34:57Z beach: There is an UNWIND instruction. 2016-08-21T05:35:07Z beach: ... for cases like the one above. 2016-08-21T05:35:43Z Bike: isn't there a return-from instruction, though? 2016-08-21T05:35:53Z beach: There is a RETURN instruction. 2016-08-21T05:36:13Z beach: Which block is concerned has already been resolved. 2016-08-21T05:36:21Z beach: There are no blocks at the HIR level either. 2016-08-21T05:38:13Z vlatkoB joined #lisp 2016-08-21T05:38:55Z ghostlight joined #lisp 2016-08-21T05:41:46Z Moosef quit (Quit: Connection closed for inactivity) 2016-08-21T05:45:34Z arescorpio quit (Remote host closed the connection) 2016-08-21T05:46:54Z amokr joined #lisp 2016-08-21T05:46:59Z ggole joined #lisp 2016-08-21T05:48:15Z mastokley quit (Ping timeout: 265 seconds) 2016-08-21T05:48:40Z moore33 quit (Quit: Leaving) 2016-08-21T05:49:37Z ggole_ joined #lisp 2016-08-21T05:52:35Z ggole quit (Ping timeout: 250 seconds) 2016-08-21T05:53:04Z svgDelux joined #lisp 2016-08-21T05:56:43Z eSVG quit (Ping timeout: 250 seconds) 2016-08-21T05:58:27Z sebboh quit (Read error: Connection reset by peer) 2016-08-21T05:58:38Z ggole__ joined #lisp 2016-08-21T05:58:56Z sebboh joined #lisp 2016-08-21T06:00:11Z bPqArhZYBx joined #lisp 2016-08-21T06:01:23Z ggole_ quit (Ping timeout: 265 seconds) 2016-08-21T06:07:28Z ggole_ joined #lisp 2016-08-21T06:10:08Z ggole__ quit (Ping timeout: 244 seconds) 2016-08-21T06:29:13Z abbe_ is now known as abbe 2016-08-21T06:32:51Z froggey quit (Ping timeout: 264 seconds) 2016-08-21T06:34:42Z froggey joined #lisp 2016-08-21T06:34:43Z space_otter joined #lisp 2016-08-21T06:35:24Z tigg joined #lisp 2016-08-21T06:35:28Z wccoder joined #lisp 2016-08-21T06:36:09Z fourier quit (Ping timeout: 250 seconds) 2016-08-21T06:39:47Z ggole__ joined #lisp 2016-08-21T06:39:53Z wccoder quit (Ping timeout: 258 seconds) 2016-08-21T06:42:33Z ggole_ quit (Ping timeout: 240 seconds) 2016-08-21T06:44:27Z ggole_ joined #lisp 2016-08-21T06:47:24Z ggole__ quit (Ping timeout: 260 seconds) 2016-08-21T06:49:10Z Atarian joined #lisp 2016-08-21T06:49:24Z rme quit (Quit: rme) 2016-08-21T06:49:24Z rme quit (Quit: rme) 2016-08-21T06:52:41Z phadthai joined #lisp 2016-08-21T07:05:15Z wccoder joined #lisp 2016-08-21T07:09:35Z tmtwd joined #lisp 2016-08-21T07:09:56Z wccoder quit (Ping timeout: 265 seconds) 2016-08-21T07:21:56Z Guest55518 left #lisp 2016-08-21T07:22:29Z micro` joined #lisp 2016-08-21T07:23:16Z mishoo joined #lisp 2016-08-21T07:23:45Z beach: Bike: There still has to be a way to distinguish between a TYPEQ that was put in there as a result of (say) an explicit TYPEP in the source code, and a TYPEQ that was put in there as a result of a declaration or a THE form. The former can not be removed even in unsafe code. The solution may be as simple as sticking a flag in the TYPEQ instruction, though. 2016-08-21T07:24:37Z safe quit (Read error: Connection reset by peer) 2016-08-21T07:24:45Z gingerale joined #lisp 2016-08-21T07:27:53Z Bike: wait, removed by what? 2016-08-21T07:28:03Z Bike: the nil type pruner? 2016-08-21T07:28:29Z beach: By a transformation that you suggested as an alternative to backward propagation in order to make unsafe code faster. 2016-08-21T07:28:59Z pierpa joined #lisp 2016-08-21T07:29:06Z holly2 quit (Ping timeout: 276 seconds) 2016-08-21T07:29:07Z beach: NIL arcs can always be removed. 2016-08-21T07:30:35Z beach: I see I probably misunderstood what you suggested. You suggested replacing THE by TYPEQ only in safe code. 2016-08-21T07:30:37Z Bike: i suggested removing the-instructions 2016-08-21T07:31:04Z beach: I thought you meant always replacing THE by TYPEQ. Sorry. 2016-08-21T07:31:22Z beach: So THE becomes like a TYPEQ that can be removed in unsafe code. 2016-08-21T07:31:33Z beach: I think I got it. Sorry for the confusion. 2016-08-21T07:31:45Z Bike: ok, well, cool. 2016-08-21T07:32:34Z beach: It is time for me to start preparing lunch for my guests. I guess you will be asleep when I come back. 2016-08-21T07:32:41Z Bike: probably. seeya later. 2016-08-21T07:32:50Z beach: Yes, see you. Interesting discussion. 2016-08-21T07:35:28Z holly2 joined #lisp 2016-08-21T07:44:10Z tmtwd quit (Ping timeout: 244 seconds) 2016-08-21T07:45:49Z kolko_ quit (Read error: Connection reset by peer) 2016-08-21T07:45:49Z balle joined #lisp 2016-08-21T07:46:31Z Davidbrcz joined #lisp 2016-08-21T07:47:20Z tigg quit 2016-08-21T07:47:44Z toogley quit (Ping timeout: 258 seconds) 2016-08-21T07:48:30Z akkad: allegrocache has the support for concurrency of sqlite... 2016-08-21T07:49:15Z quazimodo joined #lisp 2016-08-21T07:50:26Z fourier joined #lisp 2016-08-21T07:52:44Z Davidbrcz quit (Ping timeout: 260 seconds) 2016-08-21T07:56:15Z quazimodo quit (Ping timeout: 264 seconds) 2016-08-21T07:58:55Z MoALTz joined #lisp 2016-08-21T08:03:40Z quazimodo joined #lisp 2016-08-21T08:03:51Z quazimod1 joined #lisp 2016-08-21T08:05:13Z Bike quit (Quit: disable) 2016-08-21T08:05:58Z wccoder joined #lisp 2016-08-21T08:07:35Z Davidbrcz joined #lisp 2016-08-21T08:08:17Z shka_ joined #lisp 2016-08-21T08:10:12Z ASau joined #lisp 2016-08-21T08:10:16Z wccoder quit (Ping timeout: 252 seconds) 2016-08-21T08:11:32Z quazimod1 quit (Ping timeout: 244 seconds) 2016-08-21T08:12:08Z DeadTrickster joined #lisp 2016-08-21T08:12:32Z quazimodo quit (Ping timeout: 250 seconds) 2016-08-21T08:14:03Z iskander quit (Max SendQ exceeded) 2016-08-21T08:14:21Z amokr quit (Quit: Connection closed for inactivity) 2016-08-21T08:15:21Z iskander joined #lisp 2016-08-21T08:18:11Z toogley joined #lisp 2016-08-21T08:18:11Z toogley quit (Excess Flood) 2016-08-21T08:19:48Z fourier quit (Ping timeout: 276 seconds) 2016-08-21T08:25:28Z Th30n joined #lisp 2016-08-21T08:28:19Z toogley joined #lisp 2016-08-21T08:30:22Z Th30n quit (Quit: leaving) 2016-08-21T08:31:00Z Th30n joined #lisp 2016-08-21T08:31:39Z Th30n quit (Client Quit) 2016-08-21T08:32:29Z Th30n joined #lisp 2016-08-21T08:36:17Z grimsley joined #lisp 2016-08-21T08:37:40Z toogley quit (Ping timeout: 264 seconds) 2016-08-21T08:44:18Z quazimodo joined #lisp 2016-08-21T08:50:51Z toogley joined #lisp 2016-08-21T08:53:03Z quazimodo quit (Ping timeout: 240 seconds) 2016-08-21T08:53:19Z [6502] joined #lisp 2016-08-21T08:54:02Z quazimodo joined #lisp 2016-08-21T08:54:30Z toogley quit (Excess Flood) 2016-08-21T08:54:58Z quazimod1 joined #lisp 2016-08-21T08:56:23Z [6502]: Hi... I probably asked before, but I don't remember the answer. Why isn't (let* ...) the default instead of (let ...) ? How much real-world code would break when replacing (let ...) with (let* ...)? In my experience not much... 2016-08-21T08:57:37Z Quadrescence: [6502], let will error in more circumstances than let* and that's good! 2016-08-21T08:58:52Z SumoSudo joined #lisp 2016-08-21T08:59:17Z pierpa: default? 2016-08-21T09:00:04Z [6502]: pierpa: that's how I interpret the star... i.e. (let ...) is the thing, (let* ...) the weirdo 2016-08-21T09:00:20Z pierpa: they are just two different special forms 2016-08-21T09:00:39Z pierpa: LET is more basic as it corresponds exactly to LAMBDA 2016-08-21T09:01:05Z pierpa: and LET* can espand easily to LETs 2016-08-21T09:01:09Z pierpa: *expand 2016-08-21T09:02:21Z pierpa: also, historically, LET has been invented first 2016-08-21T09:02:57Z pierpa: the people tired of writing nested LETs and invented LET* :) 2016-08-21T09:02:59Z pierpa: *then 2016-08-21T09:03:39Z [6502]: pierpa: this las phrase is the key of my question 2016-08-21T09:03:47Z [6502]: pierpa: last 2016-08-21T09:03:51Z pierpa: yes 2016-08-21T09:03:56Z [6502]: pierpa: let* is more useful than let 2016-08-21T09:04:23Z pierpa: You can use it as default. Don't let the * deter you. 2016-08-21T09:04:47Z [6502]: pierpa: I actually use (let** ...) :-D 2016-08-21T09:04:59Z pierpa: me too! 2016-08-21T09:05:15Z pierpa: what does your LET** do? 2016-08-21T09:05:23Z pierpa: mine handles multiple values 2016-08-21T09:06:19Z [6502]: pierpa: mine is a mix of labels+let* ... e.g. (let** ((#'square (x) (* x x)) (x 12) (y (square x))) y) ==> 144 2016-08-21T09:06:41Z pierpa: hmmm 2016-08-21T09:07:26Z pierpa: got it. 2016-08-21T09:08:12Z fluter quit (Ping timeout: 240 seconds) 2016-08-21T09:09:41Z [6502]: pierpa: basically allows creating a small environment with variables and functions to compute a value, without polluting 2016-08-21T09:10:07Z pierpa: yes 2016-08-21T09:19:34Z fluter joined #lisp 2016-08-21T09:21:37Z moei quit (Quit: Leaving...) 2016-08-21T09:23:06Z [6502] quit (Quit: Page closed) 2016-08-21T09:23:12Z moei joined #lisp 2016-08-21T09:24:23Z scymtym joined #lisp 2016-08-21T09:35:18Z akkad: in close are accessors automatically generated from class-slot? 2016-08-21T09:42:30Z Th30n quit (Quit: Bye everyone) 2016-08-21T09:42:50Z gravicappa joined #lisp 2016-08-21T10:05:03Z kolko joined #lisp 2016-08-21T10:06:14Z space_otter quit (Remote host closed the connection) 2016-08-21T10:08:50Z strelox joined #lisp 2016-08-21T10:18:38Z gravicappa quit (Ping timeout: 250 seconds) 2016-08-21T10:27:58Z fluter quit (Ping timeout: 258 seconds) 2016-08-21T10:38:35Z fluter joined #lisp 2016-08-21T10:41:50Z DeadTrickster quit (Ping timeout: 250 seconds) 2016-08-21T10:43:26Z smokeink joined #lisp 2016-08-21T10:48:35Z rme joined #lisp 2016-08-21T10:51:54Z smokeink quit (Read error: Connection reset by peer) 2016-08-21T10:57:49Z eivarv quit (Quit: Sleep) 2016-08-21T11:00:43Z M-moredhel quit (Remote host closed the connection) 2016-08-21T11:00:43Z M-Illandan quit (Remote host closed the connection) 2016-08-21T11:02:26Z Josh2 joined #lisp 2016-08-21T11:05:43Z zacharias joined #lisp 2016-08-21T11:14:14Z milanj joined #lisp 2016-08-21T11:24:22Z M-moredhel joined #lisp 2016-08-21T11:30:54Z sjl joined #lisp 2016-08-21T11:33:12Z milanj quit (Read error: Connection reset by peer) 2016-08-21T11:34:19Z deank joined #lisp 2016-08-21T11:48:23Z mishoo quit (Ping timeout: 244 seconds) 2016-08-21T11:50:27Z eivarv joined #lisp 2016-08-21T11:51:12Z Atarian quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2016-08-21T11:51:33Z EvW joined #lisp 2016-08-21T11:52:05Z Atarian joined #lisp 2016-08-21T11:54:18Z rew quit (Remote host closed the connection) 2016-08-21T11:56:15Z EvW quit (Ping timeout: 276 seconds) 2016-08-21T12:03:47Z knicklux joined #lisp 2016-08-21T12:07:34Z wccoder joined #lisp 2016-08-21T12:09:03Z Velveeta_Chef quit (Ping timeout: 244 seconds) 2016-08-21T12:11:58Z wccoder quit (Ping timeout: 250 seconds) 2016-08-21T12:12:43Z Velveeta_Chef joined #lisp 2016-08-21T12:13:37Z LiamH joined #lisp 2016-08-21T12:26:31Z CrLF0710 joined #lisp 2016-08-21T12:30:21Z M-Illandan joined #lisp 2016-08-21T12:38:30Z Guest93323 quit (Ping timeout: 276 seconds) 2016-08-21T12:39:15Z smithzv joined #lisp 2016-08-21T12:39:38Z smithzv is now known as Guest11415 2016-08-21T12:42:26Z mishoo joined #lisp 2016-08-21T12:46:47Z EvW joined #lisp 2016-08-21T12:53:17Z rme quit (Quit: rme) 2016-08-21T12:53:17Z Atarian quit (Read error: Connection reset by peer) 2016-08-21T12:55:00Z Atarian joined #lisp 2016-08-21T12:58:07Z Guest11415 is now known as smithzv` 2016-08-21T12:59:25Z smithzv` is now known as smithzv 2016-08-21T13:00:47Z Karl_Dscc joined #lisp 2016-08-21T13:02:51Z tigg joined #lisp 2016-08-21T13:05:12Z raydeejay: just making sure... anything which is not in the CL spec is out of bounds for this channel? 2016-08-21T13:05:53Z smithzv quit (Ping timeout: 244 seconds) 2016-08-21T13:08:09Z DeadTrickster joined #lisp 2016-08-21T13:08:40Z drdo: raydeejay: Yes, we check everything that is said and will crucify you if it deviates from the standard! 2016-08-21T13:10:00Z edgar-rft: raydeejay: anything that had *nothing* to do with Common Lisp (as opposed to other Lisp dialects like Scheme, Clojure, Emacs LIsp, Autolisp, etc) is off-topic here. 2016-08-21T13:10:49Z edgar-rft: but asking about Common Lisp libraries or how to solve something wirth Common Lisp is absolutely OK. 2016-08-21T13:11:30Z smithzv joined #lisp 2016-08-21T13:13:05Z przl joined #lisp 2016-08-21T13:13:36Z Velveeta_Chef quit (Ping timeout: 276 seconds) 2016-08-21T13:13:58Z Crescimmano joined #lisp 2016-08-21T13:14:01Z Crescimmano: hi 2016-08-21T13:14:24Z Crescimmano: is there anyone able to use iolib on openbsd? 2016-08-21T13:15:10Z raydeejay: in that case, is usocket the package of choice for working with Internet sockets? 2016-08-21T13:21:22Z edgar-rft: raydeejay: under "System and low level management -> Sockets" mentions usocket and iolib as currently recommended libraries. But better wait for answers from people who already used that stuff. 2016-08-21T13:28:23Z eivarv quit (Quit: Sleep) 2016-08-21T13:31:58Z hel-io joined #lisp 2016-08-21T13:35:26Z Crescimmano: is there the iolib maintainer? 2016-08-21T13:42:49Z zygentoma joined #lisp 2016-08-21T13:43:26Z Velveeta_Chef joined #lisp 2016-08-21T13:47:00Z zacts joined #lisp 2016-08-21T13:47:07Z attila_lendvai joined #lisp 2016-08-21T13:47:07Z attila_lendvai quit (Changing host) 2016-08-21T13:47:07Z attila_lendvai joined #lisp 2016-08-21T13:50:59Z InstaM00 joined #lisp 2016-08-21T13:51:42Z edgar-rft: Crescimmano: according to the user-list fe[nl]ix is online, but maybe not sitting in front of the computer right now. 2016-08-21T13:58:10Z iskander quit (Max SendQ exceeded) 2016-08-21T13:59:54Z iskander joined #lisp 2016-08-21T14:00:40Z Crescimmano: and I have got problem with antik too, seems that it is a unit called "tenth" which collide with reserved word "tenth" 2016-08-21T14:01:03Z EvW quit (Ping timeout: 276 seconds) 2016-08-21T14:01:42Z iskander quit (Max SendQ exceeded) 2016-08-21T14:02:38Z iskander joined #lisp 2016-08-21T14:03:39Z varjag joined #lisp 2016-08-21T14:05:12Z bPqArhZYBx quit (Remote host closed the connection) 2016-08-21T14:05:36Z iskander quit (Max SendQ exceeded) 2016-08-21T14:05:53Z iskander joined #lisp 2016-08-21T14:07:14Z zacts quit (Ping timeout: 258 seconds) 2016-08-21T14:09:18Z edgar-rft: Crescimmano: same answer as above, LiamH is online, but... 2016-08-21T14:10:09Z edgar-rft: Both are usually anwering rather quickly, but... :-) 2016-08-21T14:10:42Z svgDelux quit (Ping timeout: 250 seconds) 2016-08-21T14:13:13Z Crescimmano: ok 2016-08-21T14:13:28Z Crescimmano: strange that antik works on linux 2016-08-21T14:13:40Z Crescimmano: and not on openbsd 2016-08-21T14:16:05Z uvhrLnsaYG joined #lisp 2016-08-21T14:17:18Z przl quit (Ping timeout: 276 seconds) 2016-08-21T14:18:52Z EvW joined #lisp 2016-08-21T14:19:19Z uvhrLnsaYG quit (Remote host closed the connection) 2016-08-21T14:27:42Z Josh2 quit (Remote host closed the connection) 2016-08-21T14:28:01Z Josh2 joined #lisp 2016-08-21T14:29:12Z zacts joined #lisp 2016-08-21T14:35:18Z warweasle joined #lisp 2016-08-21T14:36:23Z hel-io quit (Remote host closed the connection) 2016-08-21T14:42:37Z hel-io joined #lisp 2016-08-21T14:43:00Z LiamH: Reserved word? 2016-08-21T14:47:14Z LiamH: Crescimmano: what CL implementation are you using? 2016-08-21T14:48:12Z pierpa quit (Ping timeout: 240 seconds) 2016-08-21T14:53:06Z wildlander joined #lisp 2016-08-21T14:56:54Z EvW quit (Remote host closed the connection) 2016-08-21T14:57:13Z EvW joined #lisp 2016-08-21T15:00:45Z InstaM00 quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2016-08-21T15:11:02Z lemoinem joined #lisp 2016-08-21T15:12:34Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-08-21T15:16:19Z warweasle quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2016-08-21T15:24:32Z prole joined #lisp 2016-08-21T15:25:40Z smokeink joined #lisp 2016-08-21T15:25:47Z hel-io quit (Remote host closed the connection) 2016-08-21T15:27:16Z sharkteeth joined #lisp 2016-08-21T15:27:45Z eivarv joined #lisp 2016-08-21T15:27:58Z Th30n joined #lisp 2016-08-21T15:29:13Z `lain quit (Quit: bye.) 2016-08-21T15:29:51Z EvW quit (Ping timeout: 264 seconds) 2016-08-21T15:31:34Z iskander quit (Ping timeout: 258 seconds) 2016-08-21T15:32:22Z harish joined #lisp 2016-08-21T15:32:22Z kobain joined #lisp 2016-08-21T15:37:11Z iskander joined #lisp 2016-08-21T15:38:26Z sjl quit (Ping timeout: 250 seconds) 2016-08-21T15:38:34Z alexherbo2 joined #lisp 2016-08-21T15:42:10Z emaczen joined #lisp 2016-08-21T15:42:45Z iskander quit (Ping timeout: 265 seconds) 2016-08-21T15:50:33Z zygentoma quit (Ping timeout: 240 seconds) 2016-08-21T15:52:58Z iskander joined #lisp 2016-08-21T15:55:17Z gravicappa joined #lisp 2016-08-21T15:55:25Z zygentoma joined #lisp 2016-08-21T16:02:50Z m00natic joined #lisp 2016-08-21T16:04:18Z Guest77375 joined #lisp 2016-08-21T16:06:42Z grimsley quit (Quit: Leaving) 2016-08-21T16:09:04Z wccoder joined #lisp 2016-08-21T16:10:06Z shka_ quit (Quit: Konversation terminated!) 2016-08-21T16:13:33Z wccoder quit (Ping timeout: 240 seconds) 2016-08-21T16:18:50Z shka joined #lisp 2016-08-21T16:20:03Z zacharias quit (Ping timeout: 265 seconds) 2016-08-21T16:20:28Z antonv quit (Ping timeout: 250 seconds) 2016-08-21T16:20:56Z zygentoma quit (Ping timeout: 265 seconds) 2016-08-21T16:26:38Z sjl joined #lisp 2016-08-21T16:29:04Z toogley joined #lisp 2016-08-21T16:29:17Z rme joined #lisp 2016-08-21T16:29:26Z zacts quit (Quit: WeeChat 1.5) 2016-08-21T16:34:32Z zacts joined #lisp 2016-08-21T16:39:12Z zygentoma joined #lisp 2016-08-21T16:46:02Z mastokley joined #lisp 2016-08-21T16:50:02Z sharkteeth quit (Quit: Textual IRC Client: www.textualapp.com) 2016-08-21T16:53:35Z Bike joined #lisp 2016-08-21T17:00:08Z phoe: Crescimmano: there is a function called TENTH. 2016-08-21T17:10:55Z emaczen quit (Ping timeout: 252 seconds) 2016-08-21T17:14:06Z DeadTrickster quit (Ping timeout: 276 seconds) 2016-08-21T17:34:15Z zygentoma quit (Ping timeout: 276 seconds) 2016-08-21T17:35:44Z kokonaisluku joined #lisp 2016-08-21T17:36:14Z emaczen joined #lisp 2016-08-21T17:37:42Z tigg quit 2016-08-21T17:37:48Z pierpa joined #lisp 2016-08-21T17:38:02Z zacts quit (Ping timeout: 250 seconds) 2016-08-21T17:38:27Z ghostlight quit (Ping timeout: 258 seconds) 2016-08-21T17:41:14Z ghostlight joined #lisp 2016-08-21T17:41:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:41:31Z Davidbrcz quit (Ping timeout: 250 seconds) 2016-08-21T17:41:44Z ghostlight joined #lisp 2016-08-21T17:41:44Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:42:14Z ghostlight joined #lisp 2016-08-21T17:42:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:42:40Z kokonaisluku quit (Remote host closed the connection) 2016-08-21T17:42:44Z ghostlight joined #lisp 2016-08-21T17:42:45Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:43:15Z ghostlight joined #lisp 2016-08-21T17:43:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:43:44Z ghostlight joined #lisp 2016-08-21T17:43:45Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:44:15Z ghostlight joined #lisp 2016-08-21T17:44:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:44:45Z ghostlight joined #lisp 2016-08-21T17:44:45Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:45:15Z ghostlight joined #lisp 2016-08-21T17:45:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:45:45Z ghostlight joined #lisp 2016-08-21T17:45:45Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:46:15Z ghostlight joined #lisp 2016-08-21T17:46:15Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:46:46Z ghostlight joined #lisp 2016-08-21T17:46:47Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:47:18Z ghostlight joined #lisp 2016-08-21T17:47:19Z ghostlight quit (Max SendQ exceeded) 2016-08-21T17:48:15Z ghostlight joined #lisp 2016-08-21T17:53:40Z frgo joined #lisp 2016-08-21T17:54:12Z svgDelux joined #lisp 2016-08-21T17:54:30Z zygentoma joined #lisp 2016-08-21T18:00:50Z frgo quit (Remote host closed the connection) 2016-08-21T18:02:32Z Velveeta_Chef quit (Ping timeout: 240 seconds) 2016-08-21T18:02:33Z mastokley quit (Ping timeout: 240 seconds) 2016-08-21T18:03:10Z tmtwd joined #lisp 2016-08-21T18:04:13Z raydeejay: how can I "catch" SB-INT:SIMPLE-STREAM-ERROR? 2016-08-21T18:04:41Z frgo joined #lisp 2016-08-21T18:05:01Z jackdaniel: raydeejay: maybe (handler-case (your-form) (sb-int:simple-stream-error () 'bah)) 2016-08-21T18:07:34Z raydeejay: nope... still https://gist.github.com/c8e899fb4b46b761de9e0fb236da5d06 :/ 2016-08-21T18:07:37Z Bike: though you may want to deal with the standard supreclass stream-error instead 2016-08-21T18:07:43Z attila_lendvai joined #lisp 2016-08-21T18:07:57Z Bike: what's your code look like 2016-08-21T18:08:03Z EvW joined #lisp 2016-08-21T18:09:03Z raydeejay: (defun write-to-socket (connection msg) 2016-08-21T18:09:04Z raydeejay: (handler-case (progn (format (usocket:socket-stream connection) msg) 2016-08-21T18:09:04Z raydeejay: (force-output (usocket:socket-stream connection))) 2016-08-21T18:09:04Z raydeejay: (sb-int:simple-stream-error () (close-connection connection)))) 2016-08-21T18:10:52Z przl joined #lisp 2016-08-21T18:11:23Z zacharias joined #lisp 2016-08-21T18:12:08Z Bike: it looks like it might be the socket closing that's signalling the error? 2016-08-21T18:13:00Z raydeejay: um... I didn't consider that... 2016-08-21T18:13:34Z frgo quit (Ping timeout: 250 seconds) 2016-08-21T18:13:46Z raydeejay: you are absolutely right 2016-08-21T18:13:50Z raydeejay: thanks 2016-08-21T18:14:54Z Bike: no prob 2016-08-21T18:15:13Z raydeejay: so what's the correct thing to do here... catch the error again while attempting to close the connection, and do nothing if it happens? 2016-08-21T18:15:49Z Velveeta_Chef joined #lisp 2016-08-21T18:15:49Z Velveeta_Chef quit (Changing host) 2016-08-21T18:15:49Z Velveeta_Chef joined #lisp 2016-08-21T18:16:29Z jackdaniel: I'd put it in the same progn as the main form 2016-08-21T18:16:35Z jackdaniel: or maybe not 2016-08-21T18:19:14Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-08-21T18:19:24Z raydeejay: (ignore-errors (close-connection connection)) perhaps? 2016-08-21T18:19:57Z jackdaniel: if you want to ignore this error then it sounds reasonable 2016-08-21T18:20:15Z jackdaniel: maybe something like (unwind-protect (progn …) (ignore-errors (close …)) 2016-08-21T18:20:22Z raydeejay: well, if I can't close the connection, I'm pretty much done with anything that could happen 2016-08-21T18:21:28Z raydeejay: after I read what unwind-protect does, it's not what I want for this 2016-08-21T18:22:03Z pareidolia joined #lisp 2016-08-21T18:31:02Z Davidbrcz joined #lisp 2016-08-21T18:32:35Z przl quit (Ping timeout: 244 seconds) 2016-08-21T18:33:27Z sellout- joined #lisp 2016-08-21T18:48:26Z smokeink quit (Ping timeout: 265 seconds) 2016-08-21T19:02:07Z akkad: allegrocache format seems easy enough to read/write 2016-08-21T19:03:52Z akkad: so if a function takes (functionBar 'someclass 'somename) and I've got (defun myfunc (myclass myname) (functionBar myclass myname)) how do I cast/coerce the myclass into the 'someclass it wants? e.g. dereference and quote 2016-08-21T19:05:09Z Bike: find-class 2016-08-21T19:06:14Z quazimod1 quit (Ping timeout: 265 seconds) 2016-08-21T19:06:33Z quazimodo quit (Ping timeout: 276 seconds) 2016-08-21T19:08:14Z axion: Hmmm I just found what I would call a bug in alexandria 2016-08-21T19:09:23Z Bike: What is it? 2016-08-21T19:10:13Z axion: LERP is numerically unstable. It does not guarantee that v1=1 when t=1. It uses the imprecise version of lerp 2016-08-21T19:10:34Z emaczen quit (Ping timeout: 260 seconds) 2016-08-21T19:11:40Z Bike: that sounds like something they'd accept a patch for 2016-08-21T19:13:47Z Th30n quit (Quit: leaving) 2016-08-21T19:14:08Z Bike: though i admit i don't understand what you mean. 2016-08-21T19:15:01Z Bike: like if v is one it might not return a because of floating point? 2016-08-21T19:15:16Z axion: M-. and then compare with https://en.wikipedia.org/wiki/Linear_interpolation#Programming_language_support 2016-08-21T19:15:20Z axion: Yes exactly 2016-08-21T19:16:28Z Bike: https://gitlab.common-lisp.net/alexandria/alexandria throw em a pull request i guess 2016-08-21T19:21:34Z pjb joined #lisp 2016-08-21T19:26:37Z DeadTrickster joined #lisp 2016-08-21T19:28:47Z strelox quit (Remote host closed the connection) 2016-08-21T19:32:30Z EvW quit (Ping timeout: 244 seconds) 2016-08-21T19:34:32Z jdtest quit (Ping timeout: 240 seconds) 2016-08-21T19:35:36Z scottj quit (Quit: leaving) 2016-08-21T19:35:38Z defaultxr joined #lisp 2016-08-21T19:37:57Z jdtest joined #lisp 2016-08-21T19:45:40Z svgDelux quit (Ping timeout: 250 seconds) 2016-08-21T19:49:19Z sjl: yeah the imprecise lerp saves you a multiply at the cost of not always returning precisely v when t=1 2016-08-21T19:49:27Z dmitigr joined #lisp 2016-08-21T19:52:38Z phoe: axion: sounds like ALEXANDRIA could use a PRECISE-LERP implementation then. 2016-08-21T19:52:54Z phoe: which should be easy enough to do. 2016-08-21T20:00:30Z M-Illandan quit (Remote host closed the connection) 2016-08-21T20:00:31Z M-moredhel quit (Remote host closed the connection) 2016-08-21T20:00:43Z gigetoo quit (Read error: Connection reset by peer) 2016-08-21T20:00:59Z gigetoo joined #lisp 2016-08-21T20:05:53Z eivarv quit (Excess Flood) 2016-08-21T20:07:09Z FlingItNow joined #lisp 2016-08-21T20:08:42Z knobo: So '(anything) should be the same as (quote anything)? 2016-08-21T20:09:30Z Bike: no, that's (quote (anything)) 2016-08-21T20:09:55Z knobo: aha. so stupid me... 2016-08-21T20:10:10Z Bike: (quote anything) = 'anything 2016-08-21T20:10:41Z wccoder joined #lisp 2016-08-21T20:11:23Z vlatkoB quit (Remote host closed the connection) 2016-08-21T20:14:22Z attila_lendvai joined #lisp 2016-08-21T20:14:22Z attila_lendvai quit (Changing host) 2016-08-21T20:14:22Z attila_lendvai joined #lisp 2016-08-21T20:14:37Z knobo: http://clhs.lisp.se/Body/26_glo_l.htm#literal says that "one" is a literal object. 2016-08-21T20:14:56Z knobo: Isn't it just a string that can be modified? 2016-08-21T20:15:14Z wccoder quit (Ping timeout: 258 seconds) 2016-08-21T20:15:21Z Bike: no, it's a literal object. modifying causes undefined behavior, same as modifying '(foo bar) 2016-08-21T20:16:18Z knobo: what makes "one" in to a literal? 2016-08-21T20:16:38Z Bike: it is "referenced directly in a program rather than being computed" 2016-08-21T20:17:12Z knobo: Is strings typed in like that literals? 2016-08-21T20:17:26Z eivarv joined #lisp 2016-08-21T20:17:34Z Bike: that question is ungrammatical enough that i'm not sure what you mean 2016-08-21T20:17:55Z shka quit (Ping timeout: 258 seconds) 2016-08-21T20:17:59Z cromachina: he means if you do (defun () "string") then modify that result, is it permanent 2016-08-21T20:18:06Z cromachina: defun func* 2016-08-21T20:18:22Z knobo: Any string in the code that is made double quotes 2016-08-21T20:18:41Z gravicappa quit (Remote host closed the connection) 2016-08-21T20:18:46Z knobo: "string" 2016-08-21T20:18:52Z Bike: well, yes, that's a literal string. 2016-08-21T20:19:05Z knobo: ok, I asked about that before. 2016-08-21T20:19:12Z knobo: Different answer now. 2016-08-21T20:19:18Z Bike: Um? 2016-08-21T20:19:19Z cromachina: it's pretty easy to test this in the repl 2016-08-21T20:19:30Z Bike: Maybe I misunderstood your question? 2016-08-21T20:19:36Z Bike: here's one way to think of it. since this is lisp, the compiler and evaluator don't deal with the written source code, they deal with conses and such. 2016-08-21T20:20:17Z Bike: when the reader sees (foo "string"), it returns a list of two elements, the first element of which is the symbol FOO, and the second of which is a string. 2016-08-21T20:20:34Z Bike: whenever the compiler or evaluator runs into anything that isn't a symbol or cons, it treats it as a literal object. 2016-08-21T20:20:48Z knobo: Or maybe I missunderstood the answer. 2016-08-21T20:23:19Z knobo: does map-into return a literal? like this: (map-into (make-string 3) 'identity "one") 2016-08-21T20:23:43Z knobo: and the result should not be modified? 2016-08-21T20:23:56Z phoe: clhs map-into 2016-08-21T20:23:56Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_map_in.htm 2016-08-21T20:23:57Z Bike: No, that is not a literal object, because it is computed. 2016-08-21T20:24:14Z phoe: "destructively modifies" 2016-08-21T20:24:20Z phoe: these words rule out a literal. 2016-08-21T20:24:48Z M-moredhel joined #lisp 2016-08-21T20:24:50Z quazimodo joined #lisp 2016-08-21T20:24:57Z Bike: phoe, by that logic (map-into "foo" ...) makes "foo" not a literal. don't be confusing. 2016-08-21T20:25:37Z phoe: Bike: then you're breaking stuff by destructively modifying literal sequences in Lisp. 2016-08-21T20:25:38Z knobo: so (map-into "foo" 'identity "bar") is wrong. 2016-08-21T20:25:44Z Bike: phoe: why, yes, i know 2016-08-21T20:25:45Z emaczen joined #lisp 2016-08-21T20:25:47Z Bike: knobo: yes 2016-08-21T20:26:22Z EvW joined #lisp 2016-08-21T20:26:30Z Bike: phoe: do you see how you just assumed in your retort that it was already understood what a literal was 2016-08-21T20:26:36Z knobo: Ok. It's clear now. I'll stop whining about this now. 2016-08-21T20:26:49Z Bike: it's not whining, nothing wrong with asking questions 2016-08-21T20:26:56Z knobo: :) 2016-08-21T20:26:59Z phoe: Bike: I don't understand what you just said so I guess that I *should* go to sleep now. 2016-08-21T20:27:06Z Bike: good night 2016-08-21T20:27:10Z phoe: but basically, MAP-INTO modifies its first argument in a destructive way. 2016-08-21T20:27:14Z Bike: yes 2016-08-21T20:27:23Z phoe: so you don't want to put things that should *not* be modified into that spot. 2016-08-21T20:27:35Z phoe: and literals are a category of such things. 2016-08-21T20:28:08Z Xizor joined #lisp 2016-08-21T20:28:43Z knobo: and sbcl complains about it. That's also a good thing. 2016-08-21T20:28:49Z phoe: and "foo" is a literal. you will want to COPY-SEQ it. 2016-08-21T20:28:55Z phoe: like, before you modify it. 2016-08-21T20:29:05Z phoe: night! 2016-08-21T20:29:37Z quazimod1 joined #lisp 2016-08-21T20:31:32Z emaczen quit (Ping timeout: 240 seconds) 2016-08-21T20:32:08Z svgDelux joined #lisp 2016-08-21T20:34:38Z francogrex joined #lisp 2016-08-21T20:35:36Z tmtwd quit (Ping timeout: 276 seconds) 2016-08-21T20:35:49Z knobo: slyrus: Can we make opticl read progressive DCT jpeg? 2016-08-21T20:36:40Z francogrex quit (Client Quit) 2016-08-21T20:39:24Z pjb: cromachina: there's no point in testing it in the REPL, since it will depend on the implementation and how you built your system! 2016-08-21T20:39:46Z knobo: slyrus: I also have a problem making jpg thumbnails with (opticl:write-image-file "thumb.jpg" (opticl:resize-image (opticl:read-image-file "file.jpg") 200 140)). I have to store them as png. Or else it will just be garbage. 2016-08-21T20:40:22Z varjag: update cl-jpeg version 2016-08-21T20:40:35Z pjb: Computing an object at read time can still make it literal for the compiler! 2016-08-21T20:41:08Z Bike: gimme a friggin break, it's from the glossary definition. 2016-08-21T20:41:28Z pjb: Compile: (defvar *foo* #.(make-string 3 :initial-character #\*)) (defvar *bar* "***") (defun f () (eq *foo* *bar*)) ; and (f) --> T is possible. 2016-08-21T20:44:21Z pjb: Bike: otherwise the glossary entry would be very strange, in that if you defined a reader macro on #\" it would have to produce literal object, but the same reader macro on #\! would not… 2016-08-21T20:44:31Z hel-io joined #lisp 2016-08-21T20:45:55Z knobo: varjag: but it looks like quicklisp has the latest one. 2016-08-21T20:46:24Z varjag: it should yes 2016-08-21T20:46:30Z varjag: 2.0 2016-08-21T20:46:37Z knobo: cl-jpeg-20160531-git 2016-08-21T20:48:01Z gingerale quit (Remote host closed the connection) 2016-08-21T20:48:03Z varjag: knobo: is it possible to send me an image where it fails? 2016-08-21T20:48:15Z knobo: yes 2016-08-21T20:48:20Z varjag: eugene@funcall.org 2016-08-21T20:48:59Z kamog joined #lisp 2016-08-21T20:49:27Z knobo: varjag: I'll just try it one more time to double check 2016-08-21T20:50:02Z kamog: Yay! A simple numeric function compiled with sbcl works exactly as fast as a C one. 2016-08-21T20:52:00Z hel-io quit 2016-08-21T20:54:10Z ggole_ quit 2016-08-21T20:58:37Z knobo: varjag: did you get it? 2016-08-21T20:59:43Z JuanDaugherty joined #lisp 2016-08-21T20:59:52Z knobo: Are there any plans for progressive dct? 2016-08-21T21:00:34Z varjag: i'll have a look 2016-08-21T21:00:57Z varjag: knobo: i had some, around 2001.. 2016-08-21T21:01:05Z varjag: but am easily distracted 2016-08-21T21:01:32Z kamog: hmm, even 20% faster. I don't understand how. 2016-08-21T21:01:47Z Bike: c has its own weird arithmetic rules to deal with 2016-08-21T21:01:48Z raydeejay: sounds like a smarter compiler to me 2016-08-21T21:01:52Z raydeejay: ^^ 2016-08-21T21:02:13Z varjag: knobo: which platform btw 2016-08-21T21:02:15Z pjb: kamog: theorically, almost any compiler from a different language than C, should be able to generate faster code than a C compiler. 2016-08-21T21:02:31Z knobo: sbcl, linux 2016-08-21T21:02:35Z pjb: kamog: the reason why, is because the C compilers have to work with their hands tied in their back. 2016-08-21T21:02:50Z kamog: pjb: what do you mean exactly? 2016-08-21T21:03:02Z pjb: kamog: the C compilers see a stream of token processed by the C-preprocessor. This loses a lot of information about the program. 2016-08-21T21:03:12Z varjag: 64 bit i assume 2016-08-21T21:03:17Z knobo: yes 2016-08-21T21:03:43Z knobo: Maybe I should try a 32 bit virtual machine. 2016-08-21T21:03:56Z pjb: kamog: using the new const vars or enum declarations could help a little (compared to #define), but there's still a ton of #define in a C source (in the includes). 2016-08-21T21:04:08Z knobo: if I have one... 2016-08-21T21:04:38Z pjb: kamog: plus, the problem of pointers and shadowing, which means that the C compilers are prevented to do almost any optimization. 2016-08-21T21:05:17Z kamog: Shadowing is? 2016-08-21T21:05:52Z pjb: That the same object can be referenced thru multiple pointer variables, and therefore the compiler must generate memory hiting instructions for all accesses. 2016-08-21T21:05:58Z knobo: I don't have one. 2016-08-21T21:06:05Z kamog: ah, aliasing problem. 2016-08-21T21:06:17Z varjag: knobo: don't bother yet 2016-08-21T21:06:39Z pjb: Sorry, yes, I meant aliasing. https://en.wikipedia.org/wiki/Pointer_aliasing 2016-08-21T21:07:28Z pjb: That said, you can also have it in lisp: (defun f (a b) (setf (field a) 42) (field b)) (let ((x (make-object))) (f x x)) 2016-08-21T21:08:27Z whiteline quit (Ping timeout: 244 seconds) 2016-08-21T21:09:19Z whiteline joined #lisp 2016-08-21T21:09:43Z cantstanya joined #lisp 2016-08-21T21:12:50Z MoALTz quit (Quit: Leaving) 2016-08-21T21:13:46Z kamog: pjb: so, what does it do with accesses to x during compilation? When it doesn't a setf, it always ensures that machine code is in sequence or like C tries to employ typing information? 2016-08-21T21:14:49Z Davidbrcz quit (Ping timeout: 260 seconds) 2016-08-21T21:15:22Z kamog: at least, lisp doesn't, probably, mark it undefined. 2016-08-21T21:17:51Z pjb: kamog: well, indeed, typing information can be used more easily in lisp than in C. In C, you can always cast the pointers, so you must consider more possible cases of aliasing. 2016-08-21T21:18:07Z attila_lendvai quit (Read error: Connection reset by peer) 2016-08-21T21:18:16Z pjb: On the other hand, it's easy to write generic functions in lisp, so type checking can only be done at run-time. 2016-08-21T21:18:33Z pjb: The function f above is entirely generic: it depend on the typing of the accessor FIELD. 2016-08-21T21:19:19Z pjb: So assuming that (setf field) and field accept parameters of the same type, F cannot exclude that A and B refer to the same object (or not). 2016-08-21T21:20:02Z attila_lendvai joined #lisp 2016-08-21T21:20:02Z attila_lendvai quit (Changing host) 2016-08-21T21:20:02Z attila_lendvai joined #lisp 2016-08-21T21:20:36Z pjb: kamog: also, depending on WHERE the accessor FIELD is defined, the compiler would have to assume it could change at run-time, this is a added complexitity for lisp compilers. 2016-08-21T21:21:32Z varjag: knobo: ok, i reproduce the issue using opticl 2016-08-21T21:21:37Z varjag: but not the codec directly 2016-08-21T21:21:55Z varjag: a simplified case is (opticl:write-image-file "/tmp/thumb.jpg" (opticl:read-image-file "1.jpg")) 2016-08-21T21:22:02Z varjag: no resize, still produces garbage 2016-08-21T21:22:23Z varjag: but straight recoding works if you invoke the codec directly 2016-08-21T21:24:01Z knobo: So the bug is in opticl not cl-jpeg 2016-08-21T21:24:05Z varjag: http://paste.lisp.org/+6XW6 2016-08-21T21:24:24Z varjag: if you do 'file 1.jpg' 2016-08-21T21:24:27Z SumoSudo quit (Ping timeout: 264 seconds) 2016-08-21T21:24:30Z varjag: you'll see tiff info is incorrect 2016-08-21T21:24:32Z varjag: resolution 2016-08-21T21:25:03Z knobo: aha... that may be produced by imagemagic 2016-08-21T21:25:14Z varjag: so it might complicate things 2016-08-21T21:26:48Z kamog: pjb: you mean whether it's defined at the top level? Would a decla(m/r)ation fix the type as a promise? I find the aliasing rule in C is quite complex. They've kinda solved the problem with casting pointer to some unrelated type. 2016-08-21T21:27:05Z knobo: or maybe not. 2016-08-21T21:27:10Z pjb: Yes, you could add declarations to help. 2016-08-21T21:27:34Z pjb: kamog: cf. compilation units. Basically, it's a single file, but it can cover several compile-file if you use with-compilation-unit. 2016-08-21T21:28:11Z varjag: knobo: i can look into what happens at cl-jpeg/opticl boundary tomorrow, gotta hit the sack soon 2016-08-21T21:28:22Z knobo: varjag: so the solution for me is to run all images through jpegtran or something. 2016-08-21T21:28:30Z knobo: varjag: ok, thank you :) 2016-08-21T21:31:07Z M-Illandan joined #lisp 2016-08-21T21:35:47Z varjag: just did a quick check, jpeg lib gets the correct dimensions from opticl - whatever botches up must be something else 2016-08-21T21:41:08Z varjag: knobo: found it 2016-08-21T21:42:23Z varjag: in opticl' own jpeg.lisp line 71 2016-08-21T21:42:38Z varjag: change to (let ((jpeg-array (make-array (* height width +ncomp-rgb+) :element-type '(unsigned-byte 8)))) 2016-08-21T21:42:38Z varjag: 2016-08-21T21:44:29Z akkad: with clos how do you typically access a slot of an object? 2016-08-21T21:44:36Z akkad: class-slotname? 2016-08-21T21:45:16Z varjag: ( object) 2016-08-21T21:45:30Z akkad: thanks. 2016-08-21T21:46:03Z varjag: the as defined via reader or accessor in the class 2016-08-21T21:46:20Z emaczen joined #lisp 2016-08-21T21:48:33Z Trystam joined #lisp 2016-08-21T21:49:14Z dmitigr quit (Ping timeout: 260 seconds) 2016-08-21T21:50:59Z Tristam quit (Ping timeout: 260 seconds) 2016-08-21T21:51:26Z akkad: k 2016-08-21T21:51:53Z akkad: is there a major difference in reader and accessor? I kept getting errors that ":accessor :myclass" was not an acceptable initarg 2016-08-21T21:54:10Z axion: an accessor defines both a reader and writer 2016-08-21T21:55:14Z akkad: oic. thanks 2016-08-21T21:55:43Z varjag: also, drop the 2nd colon 2016-08-21T21:56:49Z pareidolia quit (Ping timeout: 260 seconds) 2016-08-21T21:57:03Z varjag: akkad: you may want to skim thru http://www.gigamonkeys.com/book/object-reorientation-classes.html 2016-08-21T21:57:28Z eivarv quit (Quit: Sleep) 2016-08-21T21:58:20Z kamog: well, at least lisp version is 1.34% slower than fortran. 2016-08-21T21:58:52Z akkad: varjag: got that book. will do thanks. 2016-08-21T22:02:17Z akkad: No methods applicable for generic function # with args. (date class) seems to not work 2016-08-21T22:03:11Z knobo: varjag: works :) 2016-08-21T22:03:21Z knobo: varjag: thank you :) 2016-08-21T22:04:49Z varjag: wee 2016-08-21T22:04:52Z PosterdatiMobile quit (Ping timeout: 258 seconds) 2016-08-21T22:07:51Z eSVG joined #lisp 2016-08-21T22:08:36Z varjag: akkad: http://paste.lisp.org/+6XWC 2016-08-21T22:08:40Z varjag: does that fail? 2016-08-21T22:09:12Z prole quit (Remote host closed the connection) 2016-08-21T22:09:58Z svgDelux quit (Ping timeout: 250 seconds) 2016-08-21T22:10:10Z pierpa quit (Ping timeout: 250 seconds) 2016-08-21T22:13:23Z akkad: printer errors 2016-08-21T22:14:15Z emaczen quit (Ping timeout: 264 seconds) 2016-08-21T22:14:36Z akkad: varjag: that works fine. t 2016-08-21T22:14:48Z akkad: I'm just fighting allegrocache and class definitions 2016-08-21T22:19:40Z tmtwd joined #lisp 2016-08-21T22:20:55Z Leupold joined #lisp 2016-08-21T22:24:07Z pjb quit (Quit: good night) 2016-08-21T22:24:41Z emaczen joined #lisp 2016-08-21T22:29:02Z eSVG quit (Ping timeout: 250 seconds) 2016-08-21T22:40:34Z the_signalman quit (Ping timeout: 244 seconds) 2016-08-21T22:42:43Z Xizor quit 2016-08-21T22:43:17Z scottj joined #lisp 2016-08-21T22:54:02Z jokleinn quit (Quit: WeeChat 1.5) 2016-08-21T22:55:51Z DeadTrickster quit (Ping timeout: 258 seconds) 2016-08-21T22:56:24Z eSVG joined #lisp 2016-08-21T23:00:07Z nalik joined #lisp 2016-08-21T23:02:54Z LElemental joined #lisp 2016-08-21T23:03:46Z vydd quit (Remote host closed the connection) 2016-08-21T23:07:23Z slyrus: knobo: around? 2016-08-21T23:07:49Z knobo: yeltzooo9: 2016-08-21T23:07:51Z knobo: yes 2016-08-21T23:08:03Z knobo: sorry abut sayng yeltzooo9 2016-08-21T23:08:21Z slyrus: howdy. unfortunately recent SBCL changes have broken opticl's array type hackery :( 2016-08-21T23:09:26Z knobo: ok, so it's a sbcl bug, not opticl bug? 2016-08-21T23:09:41Z knobo: and the fix is not the right fix? 2016-08-21T23:09:52Z slyrus: umm... probably multiple problems here. 2016-08-21T23:10:03Z slyrus: looking at things now. 2016-08-21T23:10:54Z knobo: Anyway, I have it running in prodution now :) 2016-08-21T23:11:32Z slyrus: cool! I can't get coerce.lisp to compile without warnings. I'll look at that first and then the jpeg.lisp thingy. 2016-08-21T23:12:39Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-08-21T23:23:49Z mishoo quit (Ping timeout: 252 seconds) 2016-08-21T23:26:04Z rumbler31 joined #lisp 2016-08-21T23:26:16Z emaczen quit (Ping timeout: 265 seconds) 2016-08-21T23:26:58Z varjag quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2016-08-21T23:30:16Z jleija joined #lisp 2016-08-21T23:31:54Z slyrus: knobo: do you have a url for your production site? 2016-08-21T23:37:42Z Trystam is now known as Tristam 2016-08-21T23:46:12Z slyrus: OK, as I suspected, the culprit is: https://github.com/sbcl/sbcl/commit/2465433863464927e11dd9513979b4b6f1e884d5 2016-08-21T23:46:28Z slyrus: this breaks opticl's array type declaration hackery :( 2016-08-21T23:48:53Z slyrus: the problem is I have some code that calls (array-dimension 2) on a 2-d array, but the code should never get called with a 2-d array at runtime. the compiler now pukes though. 2016-08-21T23:49:12Z kundry_wag joined #lisp 2016-08-21T23:57:24Z wildlander quit (Quit: Saliendo)