2015-01-05T00:00:45Z nyef: If the sets differ, UNION and INTERSECTION are disjoint. If the sets are the same, they are conjoint. 2015-01-05T00:01:06Z nyef: And then there's the rather unfortunately named DIFFERENCE operation. 2015-01-05T00:01:41Z MoALTz joined #lisp 2015-01-05T00:03:19Z MoALTz_ quit (Ping timeout: 244 seconds) 2015-01-05T00:03:25Z kristof: Why is that unfortunate? 2015-01-05T00:03:34Z kristof: Does set difference not provide the difference of the two sets? 2015-01-05T00:03:45Z pawanspace joined #lisp 2015-01-05T00:04:21Z MoALTz__ quit (Ping timeout: 244 seconds) 2015-01-05T00:04:21Z nyef: What do you define it as? 2015-01-05T00:04:38Z kristof: The mathematical definition 2015-01-05T00:04:43Z nyef: ... which is? 2015-01-05T00:05:10Z nyef: As far as I'm concerned, the difference is all of those parts of the UNION that are not part of the INTERSECTION. 2015-01-05T00:05:26Z nyef: And that's not useful. 2015-01-05T00:05:27Z kristof: (set-difference A B) should return everything in A that is not in B. 2015-01-05T00:06:42Z attila_lendvai quit (Quit: Leaving.) 2015-01-05T00:07:07Z kristof: I mean, it's not useful until it's useful. 2015-01-05T00:07:23Z kristof: It's a faithful computational implementation of a mathematical set difference. 2015-01-05T00:07:28Z nyef: Is that, or is that not, the relative complement of B in A? 2015-01-05T00:07:46Z kristof: It's exactly as you said. 2015-01-05T00:07:55Z Baggers quit (Remote host closed the connection) 2015-01-05T00:08:11Z nyef: For DIFFERENCE, I expect "here's where these two sets differ". 2015-01-05T00:08:28Z kristof: Well, it almost is 2015-01-05T00:08:37Z pawanspace quit (Quit: Colloquy for iPhone - http://colloquy.mobi) 2015-01-05T00:08:41Z kristof: "This is how set A differs from B" 2015-01-05T00:08:53Z nyef: No, it isn't. 2015-01-05T00:09:04Z kristof: It is. If there's something in B that isn't in A, that isn't encapsulated by that question. 2015-01-05T00:09:18Z nyef: It's still a difference between the two sets. 2015-01-05T00:09:29Z kristof: "a difference", but not mathematical difference 2015-01-05T00:09:39Z kristof: In the same way that 5 - 3 =/= 3 - 5 2015-01-05T00:09:44Z kristof: It's relative 2015-01-05T00:09:47Z kristof: Which is why order matters 2015-01-05T00:09:55Z nyef: Hence "unfortunately named". 2015-01-05T00:10:14Z kristof: There are a lot of things in math that are unfortunately named, I guess. My biggest gripe is "normal" 2015-01-05T00:10:19Z kristof: /norm 2015-01-05T00:10:34Z nyef: Okay, yeah, normal vectors are a bit odd 2015-01-05T00:10:41Z zRecursive joined #lisp 2015-01-05T00:11:01Z kristof: It would be fine if it had one definition, I mean. But then some distributions are normal. And then there are a million other uses for the word normal. 2015-01-05T00:11:29Z nyef: Because it's an adjective, not a noun. 2015-01-05T00:11:53Z kristof: True, but I think it's the same as difference in that it's qualitative and relative 2015-01-05T00:12:28Z kristof: Anyway, I think it would be unfortunate if a set theoretic operation like SET-DIFFERENCE did anything except what has been mathematically standard for over 200 years 2015-01-05T00:13:26Z nyef: And I think that calling the operation RELATIVE-COMPLEMENT would be a lot less ambiguous, and a gratuitous incompatibility with the specification that I'm working with. /-: 2015-01-05T00:13:48Z nyef: Anyway, I have some failing test cases to make pass. 2015-01-05T00:13:58Z nyef: ... "to make a pass at"? 2015-01-05T00:14:01Z nyef: Something like that. 2015-01-05T00:15:51Z nyef: Ooh. Replacing the union operation with (constantly nil) puts me down to 4 failing cases from 9. (-: 2015-01-05T00:16:54Z dandersen quit (Quit: Leaving.) 2015-01-05T00:17:06Z dandersen joined #lisp 2015-01-05T00:18:24Z dandersen quit (Client Quit) 2015-01-05T00:19:42Z MoALTz_ joined #lisp 2015-01-05T00:20:42Z |3b|: so (if (< (random 1.0) 0.8) nil (union ...)) should be better on average? (assuming the equal sets weren't empty) 2015-01-05T00:21:33Z dandersen joined #lisp 2015-01-05T00:22:03Z nyef: Heh. 2015-01-05T00:22:41Z MoALTz quit (Ping timeout: 244 seconds) 2015-01-05T00:28:09Z pawanspace joined #lisp 2015-01-05T00:28:38Z Lowl3v3l quit (Ping timeout: 244 seconds) 2015-01-05T00:30:48Z harish quit (Ping timeout: 250 seconds) 2015-01-05T00:32:47Z pawanspace quit (Quit: Colloquy for iPhone - http://colloquy.mobi) 2015-01-05T00:35:42Z MoALTz__ joined #lisp 2015-01-05T00:37:24Z mishoo quit (Ping timeout: 264 seconds) 2015-01-05T00:38:34Z MoALTz_ quit (Ping timeout: 245 seconds) 2015-01-05T00:39:49Z MoALTz_ joined #lisp 2015-01-05T00:41:31Z MoALTz joined #lisp 2015-01-05T00:42:12Z hrs quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-01-05T00:43:10Z madalu joined #lisp 2015-01-05T00:43:27Z MoALTz__ quit (Ping timeout: 265 seconds) 2015-01-05T00:43:37Z Vutral quit (Ping timeout: 244 seconds) 2015-01-05T00:44:21Z MoALTz quit (Max SendQ exceeded) 2015-01-05T00:44:51Z MoALTz joined #lisp 2015-01-05T00:44:52Z MoALTz_ quit (Ping timeout: 240 seconds) 2015-01-05T00:46:40Z k-dawg joined #lisp 2015-01-05T00:47:01Z Ethan- joined #lisp 2015-01-05T00:49:09Z manuel__ joined #lisp 2015-01-05T00:52:01Z manuel__ quit (Client Quit) 2015-01-05T00:52:13Z oleo joined #lisp 2015-01-05T00:52:13Z jleija joined #lisp 2015-01-05T00:55:13Z exm quit (Quit: Leaving.) 2015-01-05T00:57:01Z manuel__ joined #lisp 2015-01-05T00:58:20Z Vutral joined #lisp 2015-01-05T01:03:57Z nyef: Heh. "Quickly learning that Node.js is just as big a pile of bad hacks as PHP... just different ones." I've got JUST the person to forward this to... (-:< 2015-01-05T01:04:43Z antonv quit (Ping timeout: 265 seconds) 2015-01-05T01:05:57Z meiji11 quit (Remote host closed the connection) 2015-01-05T01:06:21Z moei joined #lisp 2015-01-05T01:11:50Z akkad: nodejs is the most advanced technology 2015-01-05T01:12:22Z nyef: I'm reminded of "advanced" and "retarded" potentials. 2015-01-05T01:15:04Z akkad: delayed.. is what the french call it 2015-01-05T01:21:36Z antonv joined #lisp 2015-01-05T01:34:41Z rtra quit (Ping timeout: 265 seconds) 2015-01-05T01:38:33Z ejbs quit (Ping timeout: 265 seconds) 2015-01-05T01:39:29Z tadni joined #lisp 2015-01-05T01:39:35Z rtra joined #lisp 2015-01-05T01:39:37Z harish joined #lisp 2015-01-05T01:40:09Z nyef: Hunh. I think I may have things broken down to the point where I can pass a function such as (lambda (x y) (and x (not y))) and get the DIFFERENCE operation. 2015-01-05T01:41:07Z nyef: Or (lambda (x y) (and x y)) to get the INTERSECTION operation, or (lambda (x y) (or x y)) to get the UNION operation. 2015-01-05T01:42:28Z kpreid quit (Quit: Quitting) 2015-01-05T01:49:13Z pllx joined #lisp 2015-01-05T01:53:16Z stardiviner joined #lisp 2015-01-05T01:53:30Z pllx quit (Client Quit) 2015-01-05T01:53:57Z echo-area joined #lisp 2015-01-05T01:58:24Z t4intz joined #lisp 2015-01-05T02:03:24Z meiji11 joined #lisp 2015-01-05T02:03:27Z innertracks quit (Quit: innertracks) 2015-01-05T02:05:28Z frkout joined #lisp 2015-01-05T02:06:17Z zophy quit (Ping timeout: 244 seconds) 2015-01-05T02:13:22Z MrWoohoo joined #lisp 2015-01-05T02:16:11Z kristof quit (Quit: WeeChat 1.0.1) 2015-01-05T02:16:55Z edgar-rft joined #lisp 2015-01-05T02:17:52Z Ethan- quit (Ping timeout: 240 seconds) 2015-01-05T02:19:54Z Ethan- joined #lisp 2015-01-05T02:23:20Z stardiviner quit (Quit: my website: http://stardiviner.dyndns-blog.com/) 2015-01-05T02:23:38Z JokesOnYou77 quit (Quit: Ex-Chat) 2015-01-05T02:24:35Z innertracks joined #lisp 2015-01-05T02:25:08Z innertracks quit (Client Quit) 2015-01-05T02:25:48Z Hexstream joined #lisp 2015-01-05T02:27:04Z Quadrescence joined #lisp 2015-01-05T02:30:52Z stardiviner joined #lisp 2015-01-05T02:33:21Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T02:34:03Z devll joined #lisp 2015-01-05T02:45:27Z innertracks joined #lisp 2015-01-05T02:45:28Z kapil__ joined #lisp 2015-01-05T02:51:37Z innertracks quit (Quit: innertracks) 2015-01-05T02:52:12Z beach joined #lisp 2015-01-05T02:52:21Z beach: Good morning everyone! 2015-01-05T02:55:09Z nyef: Hello beach. 2015-01-05T02:55:33Z nyef: beach: I made a bit of progress today: https://github.com/abridgewater/nq-clim/blob/master/geometry/standard-rectangle-set.lisp 2015-01-05T02:55:59Z t4intz quit (Ping timeout: 256 seconds) 2015-01-05T02:56:33Z beach: Looks good. Congratulations! 2015-01-05T02:56:43Z nyef: Thank you. 2015-01-05T02:57:21Z beach: Er, why only 2 semicolons at the top-level comment? 2015-01-05T02:57:33Z nyef: By the time it's all done, I'm going to be passing things like #'intersection-operation to operate-on-y-span-sets, and it's going to work. 2015-01-05T02:57:39Z nyef: Umm... Good question. 2015-01-05T02:58:04Z Quadrescence: beach, are you going to add a semicolon checker to SICL 2015-01-05T02:58:37Z beach: Quadrescence: I think it will be a separate project. :) 2015-01-05T02:58:41Z Quadrescence: ;) 2015-01-05T02:58:48Z nyef: There's definitely a reason behind the way I do my comments, but I'm fairly sure that it doesn't match the usual convention. 2015-01-05T02:59:03Z Quadrescence: nyef, You're breaking the standard! 2015-01-05T02:59:29Z nyef: No, I'm breaking the convention. The standard doesn't actually say much about these things. d-: 2015-01-05T02:59:37Z Quadrescence: It does! 2015-01-05T02:59:51Z Quadrescence: http://www.lispworks.com/documentation/HyperSpec/Body/02_ddb.htm 2015-01-05T03:00:27Z nyef: ... Hunh. Neat. 2015-01-05T03:00:35Z nyef: At the same time, it's obviously not normative. 2015-01-05T03:00:44Z Quadrescence: Yes of course. :) 2015-01-05T03:01:01Z beach: If it were, you would get warnings from the compiler. 2015-01-05T03:01:49Z Bicyclidine: "FIXME should have three semicolons, as it applies to the entire block of functions, not this one line" 2015-01-05T03:01:54Z beach: Does it also say that class names should not be surrounded by <..>? :) 2015-01-05T03:01:57Z Quadrescence: :) 2015-01-05T03:02:15Z Xach: beach: krystof had a patch for sbcl that would give a notice of some sort when foo::bar was used when foo:bar would do 2015-01-05T03:02:16Z beach is referring to a heated discussion the other day. 2015-01-05T03:02:36Z beach: Xach: Oh, that's a neat one. I like it. 2015-01-05T03:02:54Z beach: Easy to implement too. 2015-01-05T03:03:05Z Quadrescence: I break the 4 semicolon rule a bit. I use 4 at the header to describe the file as a whole. I get a lot of flack for that. 2015-01-05T03:03:05Z t4intz joined #lisp 2015-01-05T03:04:50Z beach: I think there is room for a program that checks usual conventions, especially for newbies. It would cover semicolons, indentation, and spacing at least. 2015-01-05T03:04:58Z Ven: wow, reading that file I realized how crazy LOOP is... 2015-01-05T03:05:23Z shortymcgee joined #lisp 2015-01-05T03:05:27Z beach: Ven: Not crazy! Very handy. 2015-01-05T03:05:42Z Ven: beach: crazy *AND* handy, then maybe;)? 2015-01-05T03:05:57Z nyef: beach: I think my main question at this point is if I've gone overboard with the macrolet / symbol-macrolet / let stuff. 2015-01-05T03:06:16Z beach: Ven: I am currently implementing it for SICL. So far I have 4500 lines of code or so. It will be 6000 before I am done. :) 2015-01-05T03:06:34Z Ven: This is utterly crazy but... Could I see the code? 2015-01-05T03:06:37Z beach: nyef: Let me have a quick look. 2015-01-05T03:07:20Z beach: Ven: Sure, https://github.com/robert-strandh/SICL/tree/master/Code/Loop 2015-01-05T03:07:20Z nyef: beach: Towards the top of UNITE-Y-SPAN-SETS. 2015-01-05T03:07:29Z Ven: beach: amazing. thanks! 2015-01-05T03:07:33Z theos quit (Quit: i will be back...nvm) 2015-01-05T03:07:38Z Bicyclidine: not one, but two asdf systems 2015-01-05T03:07:54Z shortymcgee: Is there a reason why the car refers to the object and the cdr refers to the next node instead of the other way around? 2015-01-05T03:08:10Z Bicyclidine: historical reasons 2015-01-05T03:09:47Z beach: nyef: It's a bit strange to have macros used only once, but I often do similar things just to save on indentation. 2015-01-05T03:09:53Z shortymcgee: What historical reasons? 2015-01-05T03:10:10Z beach: shortymcgee: CAR = Contents of Address part of Register 2015-01-05T03:10:24Z beach: CDR = Contents of Decrement part of Register. 2015-01-05T03:10:31Z beach: IBM instructions. 2015-01-05T03:11:45Z shortymcgee: Are you saying that those names suggest using car for pointing to the object and cdr for pointing to the next node? Because if you are, I don't see how those names suggest that. 2015-01-05T03:12:00Z beach: No, they don't suggest anything like that. 2015-01-05T03:12:18Z beach: They just suggest which half of the register contains which field of a CONS cell. 2015-01-05T03:12:53Z beach: So the name is a direct result of the order in which the fields of the CONS cell happened to be implemented. 2015-01-05T03:13:43Z beach: nyef: In this case, not only do you save indentation, you also give those cryptic ECASE forms a name. I don't see a problem. 2015-01-05T03:14:00Z nyef: CAR and CDR are an aspect of a long-dead 36-bit computer immortalized in tradition. 2015-01-05T03:14:14Z shortymcgee: Ok, but I'm not asking where the names came from, I was wondering if there was a reason why one of them was used to store the object pointer and the other used to store a pointer to the next node. 2015-01-05T03:14:26Z beach: shortymcgee: No. 2015-01-05T03:14:44Z beach: shortymcgee: Pure accident, resulting from the order of the fields in a CONS cell. 2015-01-05T03:14:45Z nyef: beach: Okay. I still find it slightly over-the-top, but a lot of things are before they've settled in for a while. 2015-01-05T03:15:32Z nyef: shortymcgee: It was an arbitrary decision, somewhat like a turn-back command. 2015-01-05T03:15:58Z theos joined #lisp 2015-01-05T03:16:13Z beach: nyef: Yeah, no reason to worry about that at this point. 2015-01-05T03:17:17Z shortymcgee: nyef: What is a turn-back command? 2015-01-05T03:17:42Z nyef: shortymcgee: It's a reference to a science-fiction book. 2015-01-05T03:18:34Z nyef: ... Oddly enough, about creating an AI system. 2015-01-05T03:20:28Z devll quit (Remote host closed the connection) 2015-01-05T03:21:48Z enitiz quit (Quit: Leaving) 2015-01-05T03:22:18Z enitiz joined #lisp 2015-01-05T03:25:28Z beach: shortymcgee: Why are you so interested in the CAR/CDR question? Are you writing a book about Lisp history? 2015-01-05T03:26:18Z shortymcgee: No, I was writing a linked list implementation and was wondering which order I should put those pointers in. 2015-01-05T03:26:33Z loke: shortymcgee: There is no specific reason. 2015-01-05T03:26:46Z nyef: shortymcgee: Take your cue from Scheme: FIRST and REST. 2015-01-05T03:26:53Z loke: shortymcgee: They could have done it the other way, but that's just how it was implemented 2015-01-05T03:26:57Z Quadrescence: you could do either, your linked list just might not satisfy LISTP and may not be able to take advantage of CDR-coding. ;) 2015-01-05T03:27:36Z nyef: ... As if ANYBODY uses CDR-coding these days. 2015-01-05T03:27:38Z loke: besides, CAR sorts lexiographically before CDR, so it's an easy mnemonic. 2015-01-05T03:27:43Z Quadrescence: nyef, ;D 2015-01-05T03:28:17Z nyef: Didn't someone actually do the study to figure out how much benefit CDR-coding gives, and it turned out to be a wash at best? 2015-01-05T03:28:26Z tadni quit (Remote host closed the connection) 2015-01-05T03:28:42Z loke: nyef: what is cdr-coding? 2015-01-05T03:28:58Z beach: loke: On the Lisp machine, they represented a list as a vector. 2015-01-05T03:29:04Z beach: ... in some cases. 2015-01-05T03:29:11Z nyef: They COULD represent a list as a vector. 2015-01-05T03:29:29Z tadni joined #lisp 2015-01-05T03:29:34Z loke: beach: DId they have a vector type? 2015-01-05T03:29:38Z beach: loke: http://en.wikipedia.org/wiki/CDR_coding 2015-01-05T03:29:59Z meiji11 quit (Read error: Connection reset by peer) 2015-01-05T03:30:03Z beach: loke: I don't know, but I assume they did. 2015-01-05T03:30:13Z meiji11 joined #lisp 2015-01-05T03:31:17Z billstclair quit (Ping timeout: 240 seconds) 2015-01-05T03:31:26Z nyef: loke: http://bitsavers.trailing-edge.com/pdf/ti/explorer/SSDN2/sect07.txt might be of interest. 2015-01-05T03:31:48Z nyef: Wow, this is a blast from the past. 2015-01-05T03:32:27Z loke: nyef: woo. neat 2015-01-05T03:32:31Z loke: thanks 2015-01-05T03:33:00Z nyef: ... I'd forgotten about some of this stuff. 2015-01-05T03:33:14Z Quadrescence: nyef, my mX is sitting by my side waiting to be loved in better hands 2015-01-05T03:33:26Z loke: what's an mx? 2015-01-05T03:33:34Z Quadrescence: microexploder 2015-01-05T03:33:45Z nyef: Quadrescence: Is your side going to be in Cambridge on Thursday evening? 2015-01-05T03:33:47Z loke: what's that? 2015-01-05T03:34:03Z Quadrescence: nyef, no ): 2015-01-05T03:34:13Z nyef: Ah. How about Saturday evening? 2015-01-05T03:34:14Z Quadrescence: loke, an underappreciated piece of lisp work 2015-01-05T03:34:25Z nyef: (Did you get invited to that?) 2015-01-05T03:34:27Z Quadrescence: nyef, Right now I may or may not be on the other side of the planet 2015-01-05T03:34:31Z loke: Quadrescence: clearly, since I did not know anout it 2015-01-05T03:34:31Z nyef: Ah. 2015-01-05T03:35:30Z nyef: loke: A microExplorer is an expansion card for a NuBus mac, typically an IIfx, containing the CPU from an Explorer II. 2015-01-05T03:35:35Z loke: Quadrescence: not much information online about it 2015-01-05T03:36:40Z nyef: loke: We have all of the software and images for the lisp machine side of it, and the source code but not the binaries for the MacOS (system 6 or 7) side of it. We also lack an image of a 256x64 bit mask ROM that's part of the CPU itself. 2015-01-05T03:37:14Z nyef: (Well, we have binaries of the lisp machine side. We're missing the microcode source, the microcode assembler, and the system-build program.) 2015-01-05T03:37:46Z echo-area quit (Remote host closed the connection) 2015-01-05T03:38:33Z zRecursive left #lisp 2015-01-05T03:38:52Z echo-area joined #lisp 2015-01-05T03:42:29Z beach: shortymcgee: The only reason I can think of to prefer one over the other would be if you are going to examine memory dumps manually. Since people tend to mention CAR before CDR, and since that is also the lexicographical order, I would put the CAR field first in that case. 2015-01-05T03:43:42Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-01-05T03:44:34Z t4intz quit (Remote host closed the connection) 2015-01-05T03:44:49Z t4intz joined #lisp 2015-01-05T03:45:04Z shortymcgee: I was thinking that since traversing the list might be more common than examining the objects in the list, that putting the cdr pointer first might be more efficient because there would be no offset computation that needed to be done. 2015-01-05T03:45:32Z beach: shortymcgee: That used to be the case, but nowadays there is no difference because of pipelining. 2015-01-05T03:45:53Z beach: shortymcgee: Furthermore, pointers are typically tagged, so you need an offset in both cases. 2015-01-05T03:46:02Z loke: shortymcgee: I doubt it. How often do you traverse a list without looking at the elements? The only case I can think of is NTH, which is something that happens _very_ rarely. 2015-01-05T03:46:18Z beach: loke: LENGTH? 2015-01-05T03:46:25Z shortymcgee: So then it would be equal except when it had an advantage when you use a non-pipelineing processor. 2015-01-05T03:46:44Z loke: beach: Fair enough. You dodn't be calling LENGTH on lists in the general case though :-) 2015-01-05T03:46:55Z shortymcgee: loke: Yeah it's rare, but still. 2015-01-05T03:47:15Z shortymcgee: beach: What are they tagged for? 2015-01-05T03:47:29Z loke: shortymcgee: Remember that in the 704 the car and cdr was in the same register 2015-01-05T03:47:46Z loke: they had different instructions to access it, so there was no difference 2015-01-05T03:47:47Z beach: shortymcgee: Tag bits indicate that the pointer points to a CONS cell. 2015-01-05T03:48:37Z shortymcgee: loke: True. 2015-01-05T03:48:50Z beach: shortymcgee: So if CONS has (say) tag 001, then CAR would have an offset -1 and CDR an offset of 7 (on a 64-bit architecture). 2015-01-05T03:49:37Z beach: shortymcgee: And CONS cells don't have a tag 000 because that is "reserved" for FIXNUMS. 2015-01-05T03:49:50Z beach: [in case you were tempted to ask] 2015-01-05T03:51:09Z shortymcgee: What is the need for these tags? I'm not familiar with them in lisp. 2015-01-05T03:51:35Z Xach: implementation strategy 2015-01-05T03:51:39Z beach: shortymcgee: They are not mentioned in the language itself, but they are very often used to implement Lisp. 2015-01-05T03:52:34Z beach: shortymcgee: Since that seems to be what you are doing, you might want to know about such strategies. 2015-01-05T03:52:56Z shortymcgee: I agree. 2015-01-05T03:53:44Z Hexstream: shortymcgee: http://stackoverflow.com/questions/3773985/why-is-an-int-in-ocaml-only-31-bits/3774467#3774467 2015-01-05T03:54:19Z nyef: ... Heh. There was a proposal for 31-bit FIXNUMs in SBCL that never got implemented. 2015-01-05T03:54:48Z t4intz quit (Ping timeout: 264 seconds) 2015-01-05T03:54:53Z beach: nyef: Oh, I thought it did. Or maybe it was 63-bits on a 64-bit architecture. 2015-01-05T03:55:05Z nyef: Largely because it required some fairly hefty changes, including doubling the storage allocation granularity (although part of that could be won back for CONSes). 2015-01-05T03:55:17Z nyef: It was 64 bits on 64 that got implemented. 2015-01-05T03:55:24Z nyef: We had enough tags for that. 2015-01-05T03:55:26Z beach: I see. 2015-01-05T03:55:43Z nyef: In fact, n-fixnum-tag-bits on 64-bit systems is supposed to be build-time customizable between 1 and 3. 2015-01-05T03:55:55Z beach: OK. 2015-01-05T03:56:16Z nyef: (That actually took a bit of doing. Fun at times, but still took a bit of doing.) 2015-01-05T03:56:20Z beach: In SICL, since the granularity is 2 words anyway, I will do 31 bits on a 32-bit architecture. 2015-01-05T03:57:05Z beach: The CONS cell is 2 words, and so is the header for all other heap-allocated objects. 2015-01-05T03:58:14Z dandersen quit (Remote host closed the connection) 2015-01-05T03:58:20Z beach: In fact, the other day I considered having a tag for symbols, and making symbols headerless. 2015-01-05T03:58:25Z nyef: In SBCL, in order to be able to have 31-bit fixnums, we have to collapse two existing tags to create enough space. 2015-01-05T03:58:26Z beach: But I don't think I will do that. 2015-01-05T03:59:12Z stardiviner quit (Ping timeout: 265 seconds) 2015-01-05T03:59:21Z nyef: You might consider allocating a widetag to symbols and having their value be indexes into a set of arrays. 2015-01-05T03:59:41Z beach: I won't attempt such special cases. 2015-01-05T03:59:56Z beach: I don't have the manpower to maintain too much special-case code. 2015-01-05T03:59:56Z nyef: One for the name, two for the package, three for the value, and four to... Yeah, it's slightly off-the-wall, but still a plausible option. 2015-01-05T04:00:09Z cpc26 quit (Read error: Connection reset by peer) 2015-01-05T04:00:15Z cpc26_ joined #lisp 2015-01-05T04:00:33Z beach: What "value" are you talking about? 2015-01-05T04:00:47Z nyef: #'symbol-value 2015-01-05T04:00:58Z beach: Since I have first-class global environments, symbols won't have a value cell. 2015-01-05T04:01:34Z nyef: Basically instead of having symbols be contiguous in memory, break them up into arrays containing a single slot from EACH symbol. 2015-01-05T04:01:36Z nyef: What systems are you targeting, anyway? If I asked before, I forgot the answer. 2015-01-05T04:02:17Z beach: As in processors/OSes? x86, x86-64, ARM, Linux, Android I suppose. 2015-01-05T04:03:04Z beach: nyef: So in SICL, a symbol will just have two slots: NAME and PACKAGE. 2015-01-05T04:03:28Z beach: The "value cell" and the plist will be part of the environment. 2015-01-05T04:03:44Z nyef: Hrm. No MIPS, PPC, SPARC, HPPA, Alpha, 680x0, 65816...? 2015-01-05T04:04:15Z beach: I am not excluding anything. I just don't have a need for any of those. 2015-01-05T04:04:23Z nyef: Okay, fair enough. 2015-01-05T04:04:32Z beach: nyef: I am just one person. I must prioritize and simplify. 2015-01-05T04:04:35Z Bicyclidine: ooh, i could do mips. could be fun. 2015-01-05T04:04:40Z nyef: And ARM is bi-endian, and between x86 and x86-64 you cover 32 and 64 bits... 2015-01-05T04:04:58Z beach: Bicyclidine: That would be great! 2015-01-05T04:04:59Z nyef: Bicyclidine: What do you have for MIPS hardware? 2015-01-05T04:05:16Z Bicyclidine: a microcontroller. perhaps not the most useful 2015-01-05T04:05:19Z nyef: Ah. 2015-01-05T04:05:22Z beach: Nowadays there are some good emulators anyway. 2015-01-05T04:05:28Z beach: Who needs hardware? 2015-01-05T04:05:37Z nyef: I have a CI20 board on order, and an IP35 that needs Linux porting to it. 2015-01-05T04:05:43Z nyef: beach: Never trust an emulator. 2015-01-05T04:05:49Z drmeister: Hello beach. 2015-01-05T04:05:55Z tokenrove: i have a decstation. also, many routers and similar devices are mips devices running linux. 2015-01-05T04:05:56Z beach: Hello drmeister. 2015-01-05T04:06:05Z drmeister: I took a week off. 2015-01-05T04:06:09Z Bicyclidine: 512 kb of flash is enough for anyone, i say 2015-01-05T04:06:10Z drmeister: I needed a break. 2015-01-05T04:06:10Z beach: drmeister: Good for you. 2015-01-05T04:06:37Z beach: drmeister: I don't have time for breaks. But yeah, I need to be careful. 2015-01-05T04:07:00Z beach: nyef: Sure. But for initial development and debugging it is adequate. 2015-01-05T04:07:44Z nyef: Bicyclidine: 512 kb of flash? Sure, if you're an 8-bit CPU! 2015-01-05T04:07:46Z beach: tokenrove: Neat! 2015-01-05T04:08:02Z drmeister: How is cleavir/HIR/MIR going? 2015-01-05T04:08:21Z nyef: 16-bit in a pinch, but by the time you get to 32 bits you're looking at wanting a real amount of space. 2015-01-05T04:08:36Z Bicyclidine: plus 32 kb of ram. the world is mine. 2015-01-05T04:09:07Z beach: drmeister: Since you were away, I have been working exclusively on my "extrinsic HIR compiler" environment, and so I needed all macros implemented, including LOOP, which is what I have been doing for the past week or so. 2015-01-05T04:09:33Z beach: drmeister: But it means that I am giving HIR a good spin. 2015-01-05T04:09:55Z tokenrove: there was a time that i thought i'd maintain the sbcl parisc branch, but i couldn't keep my old hp712s alive. i've given up on such dreams now. 2015-01-05T04:10:08Z Bicyclidine: have you got pprint-logical-block? 2015-01-05T04:10:36Z beach: Bicyclidine: Who are you talking to? 2015-01-05T04:10:48Z Bicyclidine: you. just curious, it seems like a hard macro. 2015-01-05T04:10:53Z drmeister: I saw the beginning of that - why do you need to implement LOOP rather than using the MIT LOOP macro? 2015-01-05T04:10:54Z nyef: tokenrove: I've got an rp3440 that should still power up, and it has some version of debian installed. 2015-01-05T04:11:33Z beach: Bicyclidine: Oh. Sorry. No, I don't have it. I was going to put that off since there is a portable free implementation of it. 2015-01-05T04:11:47Z Bicyclidine: oh, well then. 2015-01-05T04:12:02Z shortymcgee: In Hexstream's link, what does this mean? "So, you can encode a 31-bit integer into a pointer, by simply shifting it 1 bit to the left and adding 1 to it." I understand what it says, but how would doing that to an integer turn it into a pointer? 2015-01-05T04:12:17Z tokenrove: nyef: nice. all the parisc machines i had were low-end workstations. 2015-01-05T04:12:27Z Xach: drmeister: i don't know the real answer, but personally, i'd like to see a LOOP that followed the spec more closely and could warn or error on undefined behavior. 2015-01-05T04:12:44Z akkad: tokenrove: what do you run on your pa risc boxen? 2015-01-05T04:12:47Z stardiviner joined #lisp 2015-01-05T04:12:58Z beach: drmeister: Part of my strategy to revisit all implementation decisions that date back more than a few years. In this case, I use combinatory parsing techniques, and standard classes to represent clauses. 2015-01-05T04:12:58Z Xach: drmeister: lisps that use MIT loop permit code that other Lisps (particularly clisp) reject 2015-01-05T04:13:07Z akkad still has a b120 parisc 2015-01-05T04:13:24Z Xach: I don't know if CLISP is more correct or not. 2015-01-05T04:13:31Z Bicyclidine: shortymcgee: probably means rather that you can then reliably distinguish pointers from fixnums even if they're not otherwise marked, based on the least significant bit. 2015-01-05T04:13:50Z tokenrove: akkad: nothing, anymore. i did use them as workstations and as testbeds for compiler experiments, at one time. 2015-01-05T04:15:07Z Xach: I wish I could load a stricter LOOP into SBCL when building all quicklisp libraries. Then I would be able to help people make projects a little more CLISP compatible. 2015-01-05T04:15:13Z shortymcgee: Bicyclidine: Hmm ok. 2015-01-05T04:15:36Z beach: Xach: SICL LOOP is not far from being complete at this point. 2015-01-05T04:15:46Z akkad: is there any need for testing modern sbcl on these other archs? 2015-01-05T04:17:24Z |3b|: Xach: some of the things clisp LOOP complains about and MIT LOOP doesn't are valid, don't know about general correctness though 2015-01-05T04:17:31Z beach: drmeister: Furthermore, SICL LOOP will have a well-defined API for adding extensions, and that includes an API to the combinatory parsing framework. 2015-01-05T04:17:52Z Xach: |3b|: meaning the code is valid and the complaints are invalid? 2015-01-05T04:18:17Z |3b|: no, CLISP correctly complains bout invalid code that MIT LOOP accepts 2015-01-05T04:18:32Z Xach: ok 2015-01-05T04:18:49Z |3b|: specifically that FOR/WITH clauses can't mix with others 2015-01-05T04:19:21Z |3b| has no idea if it does other things wrong though, so can't say which is overall more correct :) 2015-01-05T04:19:22Z beach: Variable clauses must precede main clauses. 2015-01-05T04:19:36Z |3b|: right 2015-01-05T04:20:45Z beach: drmeister: And remember that I am not doing SICL *just* in order to get a new implementation. It is a research vehicle as well. 2015-01-05T04:20:52Z |3b|: hmm, sbcl seems more picky about that than i remember, so it might have improved at some point 2015-01-05T04:21:08Z drmeister: I see 2015-01-05T04:21:36Z |3b|: ah, it accepts mixing WHILE in with FOR, though rejects some other combinations 2015-01-05T04:26:05Z pearle quit (Ping timeout: 256 seconds) 2015-01-05T04:26:26Z beach: drmeister: By the way, I am very happy with the way the extrinsic HIR compiler environment is turning out. Basically, I will be able to create a near-complete SICL environment running inside a host such as SBCL, using host data types and the host compiler, but using SICL functions and macros. 2015-01-05T04:27:42Z beach: drmeister: This means I can do A LOT of testing before I need to generate native code. I am even thinking I could port ASDF and SWANK to this environment, and perhaps write the debugger interface and all that. 2015-01-05T04:28:05Z beach: drmeister: So I will have a comfortable Common Lisp environment for doing all that. 2015-01-05T04:29:19Z Xach: I hope to announce the Corman Lisp source release in 8 hours or so. It's been interesting to browse the C++ sources of the compiler and gc, though I don't understand much of it. 2015-01-05T04:29:46Z beach: Xach: That's great news! 2015-01-05T04:29:47Z |3b| understood a bit at one point 2015-01-05T04:30:01Z drmeister: beach: I would be interested to see how that works - and how it will be extricated from the host Common Lisp environment. 2015-01-05T04:30:47Z beach: drmeister: It is all very straightforward, once first-class global environments are in place. 2015-01-05T04:31:45Z Xach: beach: I'm excited. I hope some will find it of practical use in addition to historically interesting. 2015-01-05T04:32:07Z beach: Xach: Yeah, that would be great. 2015-01-05T04:34:42Z shortymcgee quit 2015-01-05T04:37:15Z t4intz joined #lisp 2015-01-05T04:37:44Z jleija quit (Quit: leaving) 2015-01-05T04:48:26Z oleo: morning 2015-01-05T04:48:49Z nyef: Right, time for me to get some sleep. 2015-01-05T04:48:51Z nyef quit (Quit: G'night all.) 2015-01-05T04:50:04Z dmiles quit (Read error: Connection reset by peer) 2015-01-05T04:54:29Z manuel__ quit (Quit: manuel__) 2015-01-05T04:57:37Z Zamenhof quit (Quit: WeeChat 1.0.1) 2015-01-05T04:58:22Z quazimodo quit (Ping timeout: 240 seconds) 2015-01-05T05:08:28Z drl_ quit (Quit: Leaving) 2015-01-05T05:08:59Z beach: Hello oleo. 2015-01-05T05:09:09Z drl_ joined #lisp 2015-01-05T05:09:50Z oleo: hello beach 2015-01-05T05:10:11Z kuimacro joined #lisp 2015-01-05T05:10:14Z kuimacro left #lisp 2015-01-05T05:11:36Z oleo: how are you doin ? 2015-01-05T05:11:40Z phadthai joined #lisp 2015-01-05T05:12:02Z beach: oleo: Me? Excellent thank you. Making great progress with my projects. 2015-01-05T05:12:25Z t4intz quit (Ping timeout: 255 seconds) 2015-01-05T05:12:26Z oleo: that's good to hear :) 2015-01-05T05:13:33Z oleo: i'm more sidestepped into math nowadays..... 2015-01-05T05:13:35Z oleo: hahahahhaa 2015-01-05T05:14:28Z oleo: i left at, some tree stuff and intro to unification..... 2015-01-05T05:14:37Z chu quit (Quit: leaving) 2015-01-05T05:15:01Z chu joined #lisp 2015-01-05T05:15:45Z beach: That will keep you off the streets. 2015-01-05T05:16:13Z protist joined #lisp 2015-01-05T05:16:20Z oleo: nah, i'm working again.... today is the start..... 2015-01-05T05:16:28Z oleo: will be heavy month.... 2015-01-05T05:17:18Z bjorkbsd joined #lisp 2015-01-05T05:17:19Z dagnachew quit (Quit: WeeChat 1.0.1) 2015-01-05T05:17:23Z capcar quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-01-05T05:17:36Z bjorkintosh quit (Quit: Leaving) 2015-01-05T05:18:19Z bjorkbsd quit (Remote host closed the connection) 2015-01-05T05:19:02Z bjorkintosh joined #lisp 2015-01-05T05:21:08Z oleo quit (Quit: Verlassend) 2015-01-05T05:24:19Z beach: drmeister: Whether some version of the "extrinsic HIR compiler" environment can be directly cloned to obtain the native environment is not clear. But even so, having a Common Lisp system available when I write things like the debugger will be a huge advantage. 2015-01-05T05:24:33Z zRecursive joined #lisp 2015-01-05T05:25:08Z pranavrc joined #lisp 2015-01-05T05:32:08Z ggole joined #lisp 2015-01-05T05:32:34Z beach: Right now, Cleavir contains an "internationalization" package that I currently use for condition reporting. I am thinking of extracting that package to a separate project, because I need it for things other than SICL. 2015-01-05T05:35:18Z beach: In addition to languages, it would also contain things like showing temperature (with different ways if it is body temperature, oven temperature, temperature of liquid nitrogen, ambient temperature, etc.), speed (with different ways if it is wind speed, boat speed, automobile speed, rocket speed, speed of beard growth, etc.) and many other things. 2015-01-05T05:37:47Z beach: ... and of course different date formats. 2015-01-05T05:38:49Z ggole: Strange thing to have in an IR? 2015-01-05T05:39:21Z beach: IR as in Intermediate Representation? 2015-01-05T05:39:44Z anunnaki joined #lisp 2015-01-05T05:39:45Z ggole: Yeah, isn't that what cleavir is? 2015-01-05T05:39:47Z beach: Cleavir is much more than IR. It is a bunch of tools for writing compilers. 2015-01-05T05:39:56Z beach: But it is still the wrong place for it. 2015-01-05T05:39:57Z ggole: Ah, righto 2015-01-05T05:40:07Z beach: Which is why I am thinking of extracting it. 2015-01-05T05:40:16Z ggole: I can see date/time formatting coming into play there 2015-01-05T05:40:41Z beach: The original motivation was for condition reporting. 2015-01-05T05:41:15Z beach: Not that I take advantage of it (yet), but the mechanism is in place. 2015-01-05T05:41:44Z enitiz quit (Ping timeout: 244 seconds) 2015-01-05T05:42:58Z ggole: For things like formatting numbers as 1.000,23 vs 1,000.23, etc according to the users locale? 2015-01-05T05:43:27Z ggole: (I've never really considered the internationalization aspect.) 2015-01-05T05:43:29Z beach: That too, yes. 2015-01-05T05:44:40Z brucem: beach: in something like subseq, when the bounded indices are outside the bounds of the sequence ... should it signal a condition or return an empty sequence or ...? the CLHS didn't seem to indicate that to me. 2015-01-05T05:44:45Z beach: The problem is very noticeable to me because I live in France, English is now my main language, I want dates in ISO8601 always, and I want wind speed both in km/h and m/s. 2015-01-05T05:44:46Z haruyoshi joined #lisp 2015-01-05T05:45:37Z beach: brucem: I would say signal an error IF IT IS PRACTICAL for reasons of performance. 2015-01-05T05:45:44Z haruyoshi quit (Client Quit) 2015-01-05T05:46:33Z beach: brucem: For instance, if you do a FIND, and the object found is near the beginning of the list, but the :END bounding index is beyond the end, you don't want to go check for that. 2015-01-05T05:47:31Z brucem: beach: interesting view. (Not expressing any judgement.) 2015-01-05T05:47:41Z stardiviner quit (Ping timeout: 256 seconds) 2015-01-05T05:47:48Z beach: brucem: On the other hand, if the sequence is a vector you can always check it because it is cheap to do so. 2015-01-05T05:48:22Z beach: brucem: I think the Common Lisp HyperSpec actually mentions something with similar wording as mine, but perhaps only for checking whether the list is a proper list. 2015-01-05T05:49:16Z |3b|: http://www.lispworks.com/documentation/HyperSpec/Issues/iss332_w.htm at least some of them thought it should be an error 2015-01-05T05:50:44Z brucem: |3b|: thanks ... there are other interesting situations / edge cases as well with other functions and start/end values. 2015-01-05T05:50:55Z dmiles_afk joined #lisp 2015-01-05T05:51:11Z beach: Notice that all the examples are vectors there. 2015-01-05T05:51:13Z ggole: AFAICT subseq shouldn't be slower (other than actually performing the checks). 2015-01-05T05:51:43Z ggole: Because it doesn't short-circuit like find 2015-01-05T05:51:56Z drmeister: Excellent: (defun a () (let ((x 1) (y 2)) (let ((z 3)) (break)))) 2015-01-05T05:52:10Z drmeister: (a) --> sldb with backtrace 2015-01-05T05:52:23Z beach: ggole: What do you mean by "short-circuit"? 2015-01-05T05:52:38Z drmeister: https://www.irccloud.com/pastebin/fVPJRb24 2015-01-05T05:53:12Z ggole: find can save work by not looking at parts of the sequence after the first hit 2015-01-05T05:53:16Z beach: drmeister: Looks good. 2015-01-05T05:53:19Z drmeister: I have frame local variables. 2015-01-05T05:53:21Z fragamus joined #lisp 2015-01-05T05:53:41Z brucem: drmeister: nice. 2015-01-05T05:53:51Z ggole: Additional bounds checking induces looking at those parts of the sequence, losing the savings 2015-01-05T05:54:26Z beach: ggole: Right. 2015-01-05T05:54:29Z ggole: (Maybe "short-circuit" is not the best term for that.) 2015-01-05T05:55:55Z munksgaard joined #lisp 2015-01-05T05:56:35Z beach: brucem: The secret is in the wording "should be prepared to signal an error" of the Common Lisp HyperSpec. 2015-01-05T05:56:56Z brucem: beach: where was that? 2015-01-05T05:57:07Z beach: See for instance the entry for FIND. 2015-01-05T05:57:10Z beach: clhs find 2015-01-05T05:57:10Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_find_.htm 2015-01-05T05:57:27Z beach: The meaning is in here: 2015-01-05T05:57:31Z beach: clhs 1.4.2 2015-01-05T05:57:31Z specbot: Error Terminology: http://www.lispworks.com/reference/HyperSpec/Body/01_db.htm 2015-01-05T05:58:36Z beach: I consider checking for :end to be similar to checking for a proper list. 2015-01-05T05:58:44Z brucem: beach: ahh, but that's just about not being a proper sequence rather than a statement about the bounds. 2015-01-05T05:59:03Z beach: Yes, something to clarify in Common Lisp version 2. 2015-01-05T06:00:04Z beach: The spirit is that if you have a long list, you should not have to traverse it to the end just to check for errors if you can obtain a reasonable result anyway. 2015-01-05T06:00:50Z beach: Granted, it does not say that explicitly for the bounding indexes. 2015-01-05T06:01:29Z Zhivago quit (Changing host) 2015-01-05T06:01:29Z Zhivago joined #lisp 2015-01-05T06:02:05Z innertracks joined #lisp 2015-01-05T06:02:48Z beach: But I think your users would be unhappy if you traversed the entire list for (find x list :end ) and x is the first element. 2015-01-05T06:04:53Z brucem: yes. 2015-01-05T06:06:11Z brucem: beach, |3b|, ggole: thanks! 2015-01-05T06:06:20Z beach: So what I do in SICL is I check it as the list is traversed. If I reach the end of the list, and I have seen fewer elements than the value of :end, I signal an error, otherwise not. 2015-01-05T06:07:00Z banjara joined #lisp 2015-01-05T06:14:38Z banjara quit (Quit: Leaving.) 2015-01-05T06:15:22Z banjara joined #lisp 2015-01-05T06:17:26Z munksgaard quit (Quit: Lost terminal) 2015-01-05T06:21:16Z banjara quit (Quit: Leaving.) 2015-01-05T06:22:12Z banjara joined #lisp 2015-01-05T06:22:44Z dmiles_afk quit (Ping timeout: 245 seconds) 2015-01-05T06:25:38Z jasom: anyone know why loop requires the do keyword? Couldn't it just be implicit on any compound form? 2015-01-05T06:27:59Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-05T06:28:01Z jamesf joined #lisp 2015-01-05T06:28:28Z banjara quit (Quit: Leaving.) 2015-01-05T06:29:07Z |3b|: sounds confusing 2015-01-05T06:29:49Z jasom: well you can already have multiple compound forms under a single do keyword... 2015-01-05T06:29:49Z Zhivago: That is how the simple loop works. 2015-01-05T06:30:42Z Zhivago: consider the do as part of the operation it is contingent upon, perhaps. 2015-01-05T06:30:50Z stardiviner joined #lisp 2015-01-05T06:31:22Z Zhivago: for ... do 2015-01-05T06:31:26Z nikki93 quit (Remote host closed the connection) 2015-01-05T06:31:32Z |3b|: and loop 'could' do lots of things, hard to say why it doesn't... possibly to simplify parsing 2015-01-05T06:32:00Z nikki93 joined #lisp 2015-01-05T06:32:22Z gingerale quit (Ping timeout: 245 seconds) 2015-01-05T06:33:16Z |3b|: i guess you would need it to separate INITIALLY and DO if you have both with nothing else between them 2015-01-05T06:33:53Z Grue`: is (loop do ... ) legal? if yes then the fact that the first argument is loop keyword differentiates it from simple loop form 2015-01-05T06:34:16Z Grue`: otherwise you'd have to scan the entire body for loop keywords 2015-01-05T06:34:32Z |3b|: Grue`: notes says (loop do ...) is equivalent to simple loop, so no need to distinguish 2015-01-05T06:34:40Z dmiles_afk joined #lisp 2015-01-05T06:34:55Z jasom: Grue`: there are some places where do is necessary anyways, but it would be nice IMO to be implicit otherwise 2015-01-05T06:35:01Z |3b|: ah, i guess it says the other way around, so the bit about not checking for keywords might matter 2015-01-05T06:35:05Z Grue`: but there could be other keywords after the first do 2015-01-05T06:35:30Z jasom: e.g. (loop when x do (y) do (z)) is different from (loop when x do (y) (z)) 2015-01-05T06:36:46Z nikki93 quit (Ping timeout: 265 seconds) 2015-01-05T06:37:07Z Grue`: (let ((x 0)) (loop do (incf x) until (> x 10))) 2015-01-05T06:38:04Z Grue`: if this was parsed as a simple loop, it'll never end 2015-01-05T06:38:17Z |3b|: simple loop isn't allowed to have atoms in the body either 2015-01-05T06:38:33Z nikki93 joined #lisp 2015-01-05T06:38:53Z k-stz quit (Remote host closed the connection) 2015-01-05T06:38:57Z Grue`: but normally you only need to check the first argument 2015-01-05T06:39:38Z beach: It's a macro. You can afford to check them all. 2015-01-05T06:43:09Z ahungry: So, I've found an issue with hunchentoot - when running it behind apache as a proxypass, it seems to have trouble removing completed threads (requests) 2015-01-05T06:43:43Z ahungry: is that more likely an apache problem of not closing when receiving, what I believe is a 503 error from hunchentoot? 2015-01-05T06:43:44Z hvxgr quit (Ping timeout: 244 seconds) 2015-01-05T06:46:09Z npr joined #lisp 2015-01-05T06:47:28Z mishoo joined #lisp 2015-01-05T06:50:19Z innertracks quit (Quit: innertracks) 2015-01-05T06:53:59Z solomonchild joined #lisp 2015-01-05T06:56:43Z nell quit (Quit: WeeChat 1.1-rc1) 2015-01-05T07:03:52Z Quadrescence joined #lisp 2015-01-05T07:04:42Z zRecursive quit (Remote host closed the connection) 2015-01-05T07:06:11Z zRecursive joined #lisp 2015-01-05T07:06:58Z innertracks joined #lisp 2015-01-05T07:08:22Z EvW joined #lisp 2015-01-05T07:08:28Z zRecursive quit (Remote host closed the connection) 2015-01-05T07:11:43Z beach left #lisp 2015-01-05T07:12:18Z pnpuff joined #lisp 2015-01-05T07:12:37Z pnpuff left #lisp 2015-01-05T07:13:50Z kushal joined #lisp 2015-01-05T07:14:42Z hvxgr joined #lisp 2015-01-05T07:20:56Z H4ns: you have not provided enough detail for a judgement to be possible. 2015-01-05T07:21:32Z H4ns: both hunchentoot and apache are pretty old and well-debugged, but an apache bug is even more unlikely than a hunchentoot bug. 2015-01-05T07:27:48Z pt1 joined #lisp 2015-01-05T07:29:07Z nikki93 quit (Ping timeout: 256 seconds) 2015-01-05T07:32:38Z tesuji joined #lisp 2015-01-05T07:35:15Z ahungry: Thanks H4ns - I've been running more tests and I think the problem actually lies with datafly (or the dbi package it uses) - I'm guessing the jist of it is hunchentoot sending the max-thread header/message, but the database connection wanting to sit around and wait to be reused (hence keeping the HT thread around until it closes) 2015-01-05T07:35:41Z mrSpec joined #lisp 2015-01-05T07:36:06Z ahungry: I can't really reproduce it with a barebones hunchentoot easy-acceptor, but can with the database connection/query in place 2015-01-05T07:36:56Z gravicappa joined #lisp 2015-01-05T07:37:28Z H4ns: sounds like a likely hypotheses. hunchentoot's own thread management is rather primitive, for a more complex application with db connection pooling and such, you'll have to provide something better yourself. 2015-01-05T07:37:54Z H4ns: after all, hunchentoot is really just a http server, not an application server like tomcat or so. 2015-01-05T07:38:47Z ahungry: Yea, all of this (and my last week of github updates/pushes) have had to do with attempting to use caveman2 framework as a replacement for a heavily trafficked php web app I've had for a few years now 2015-01-05T07:39:19Z ahungry: Its a cool framework, but I don't think it has been well tested for high traffic use 2015-01-05T07:39:59Z solomonchild left #lisp 2015-01-05T07:40:02Z ahungry: and high being pretty low in real web traffic terms (about 300 simultaneous users making about 1 to 10 requests every 30 seconds) 2015-01-05T07:41:29Z ahungry: I have it now where it runs fine for quite awhile until eventually enough idle threads never close and I hit the thread cap, at which point I have to kill it and restart or they never close out 2015-01-05T07:41:32Z robot-beethoven quit (Ping timeout: 265 seconds) 2015-01-05T07:42:15Z ahungry: Just bumped threads from the 100 default to 600 and that helps, system can have around 15k threads max, so since I dont have much else running on the server maybe i'll just set the thread max to 10k and ignore the problem 2015-01-05T07:42:44Z H4ns: such a high number of threads for such a low number of requests, that does not sound right to me at all 2015-01-05T07:42:51Z H4ns: why do you need threads at all? 2015-01-05T07:43:05Z ahungry: Each time an http request comes in to caveman2 it spawns a thread for it by default 2015-01-05T07:43:14Z meiji11 quit (Remote host closed the connection) 2015-01-05T07:43:16Z ahungry: hunchentoot default behaviour does so as well 2015-01-05T07:43:22Z vinleod quit (Quit: Computer has gone to sleep.) 2015-01-05T07:43:49Z H4ns: in all higher-traffic sites based on hunchentoot, i have not used threads. 2015-01-05T07:44:04Z ahungry: What happens on the app, it grows throughout the day (threads that never close) - so after a fresh restart of it I'll have about ~30 threads going, when I check the site 8 hours later i'm up around 300 or so 2015-01-05T07:44:22Z ahungry: so something isn't closing right (and I'm not manually spawning any of my own #'make-thread at all) 2015-01-05T07:45:01Z H4ns: as a first step, you should solve the problem of threads not terminating. 2015-01-05T07:45:37Z bgs100 quit (Quit: bgs100) 2015-01-05T07:50:19Z scymtym joined #lisp 2015-01-05T07:50:51Z ahungry: In local testing, I have better results than on the server, in that if further requests stop entirely the queued up threads eventually wind down after about 5 minutes 2015-01-05T07:51:30Z ahungry: I guess I need to find a way to kill any related thread or database connection as soon as HT sends the 503 (it sends that even when at max-threads in about a tenth of a second) 2015-01-05T07:53:23Z ahungry: Hm, ok in local testing I was able to achieve a full thread lock again by running siege a few times with 300 concurrent users 2015-01-05T07:53:51Z H4ns: you cannot kill threads reliably and you should not attempt to. 2015-01-05T07:54:10Z H4ns: you need to figure out how to make your threads die properly 2015-01-05T07:56:04Z Grue`: you must be doing something weird because in my app the worker thread closes immediately after the request is done 2015-01-05T07:57:41Z ahungry: Its only when the load is greater than hunchentoot can serve out, even without hitting max-threads I can achieve the result 2015-01-05T07:58:10Z ahungry: Load my app, the page takes about 1 to 2 seconds to load (a very heavy database query is done on page load, may be able to cache it but the issue is still thread problem) 2015-01-05T07:58:14Z ahungry: Run something like 2015-01-05T07:58:24Z ahungry: siege -c http://localhost/ -t 10S 2015-01-05T07:58:31Z ahungry: with apache proxypassing localhost to localhost:5000 2015-01-05T07:58:39Z ahungry: siege receives 32 succesful responses 2015-01-05T07:59:01Z ahungry: but hunchentoot output continues on for about 5 minutes after siege is done, talking of broken stream pipes 2015-01-05T07:59:05Z ahungry: and then I use 2015-01-05T07:59:19Z ahungry: ps huH p $(ps -ef|grep com.ahu | grep -v grep | awk '{print $2}') | wc -l 2015-01-05T07:59:20Z banjara joined #lisp 2015-01-05T07:59:28Z banjara quit (Changing host) 2015-01-05T07:59:28Z banjara joined #lisp 2015-01-05T07:59:30Z ahungry: to check active threads spawned off my com.ahungry quickload 2015-01-05T07:59:44Z ahungry: and its still sitting at 260 much later 2015-01-05T08:00:03Z H4ns: you need to figure out why your threads are not dying at the end of a request. 2015-01-05T08:00:55Z ahungry: Guess i'll continue testing the database aspect 2015-01-05T08:01:06Z jtza8 joined #lisp 2015-01-05T08:01:12Z H4ns: this is not a "hunchentoot" or "apache" problem, it is a problem in your database access layer. and, as you have observed, it is not really a load related problem either. you are just not letting your threads die after the request has finished, causing them to be exhausted at some point. 2015-01-05T08:02:09Z Grue`: are you using clack by chance? 2015-01-05T08:03:22Z ahungry: yes, clack 2015-01-05T08:04:39Z Grue`: I just noticed the threads not dying thing with clack 2015-01-05T08:04:46Z ahungry: Ok, this is reproducible with just hunchentoot 2015-01-05T08:04:52Z ahungry: Define an easy-handler with something like (sleep 600) in it 2015-01-05T08:04:56Z Grue`: I don't have this on bare hunchentoot 2015-01-05T08:05:05Z ahungry: If you cause hunchentoot to hit max-threads the 503 is sent to client immediately 2015-01-05T08:05:11Z ahungry: but their request thread will still fully process 2015-01-05T08:05:17Z ahungry: and not close out until the end of those 600 seconds 2015-01-05T08:05:35Z ahungry: Wouldn't it make sense for the hunchentoot easy-handler to die immediately on 503? 2015-01-05T08:05:46Z ahungry: vs letting the thread process to completion 2015-01-05T08:06:19Z H4ns: that sounds wrong 2015-01-05T08:06:31Z |3b| would assume 503 are further connections, whle sleeping ones don't respond until they wake 2015-01-05T08:06:54Z ahungry: This can do it for you 2015-01-05T08:06:56Z ahungry: http://sprunge.us/GcgW 2015-01-05T08:07:09Z ahungry: then hit that with siege -c 300 or something similar (ab or whatever) 2015-01-05T08:07:10Z H4ns: ahungry: can you provide a test case that demonstrates that hunchentoot does not actually stop processing an incoming request after it has sent 503 for thread exhaustion? 2015-01-05T08:07:39Z ahungry: Well yes, run the sample sbcl call I sprunge linked, and then check the running threads with ps huH 2015-01-05T08:07:42Z ahungry: up to 10 minutes later 2015-01-05T08:07:45Z ahungry: they'll still be there 2015-01-05T08:07:53Z PuercoPop: If I want to run some code before loading my asdf system, should I just define a before method to load-op with an eql specilizing in the system symbol? 2015-01-05T08:08:37Z ahungry: So, I think my db layer issue is that those 503'd requests still sit around waiting to be processed as active threads (despite hunchentoot telling the client they're not getting that response) 2015-01-05T08:09:05Z Bicyclidine: PuercoPop: sounds fine to me. 2015-01-05T08:09:12Z ahungry: and in the case of never closing, it probably has to do with the db pooling dbi uses 2015-01-05T08:09:40Z H4ns: ahungry: if that'd be the case, it'd be a bug in hunchentoot, of course. 2015-01-05T08:09:43Z jtza8 quit (Ping timeout: 255 seconds) 2015-01-05T08:10:05Z jamesf quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-01-05T08:10:16Z H4ns: ahungry: but from looking at the source, i cannot see how that might happen. 2015-01-05T08:11:29Z H4ns: ahungry: where does the database connection allocation/setup happen? is any subclassing of hunchentoot's classes used for that? 2015-01-05T08:12:27Z defaultxr quit (Quit: gnight) 2015-01-05T08:13:07Z PuercoPop: Bicyclidine: thanks, it appears to work although with prepare-op 2015-01-05T08:13:14Z Bicyclidine: http://sprunge.us/GcgW doesn't involve databases or nuthin' 2015-01-05T08:13:28Z pragma- joined #lisp 2015-01-05T08:13:32Z ahungry: That sprunge illustrates the problem with just hunchentoot 2015-01-05T08:13:33Z pragma- left #lisp 2015-01-05T08:13:37Z ahungry: Start sbcl with that, then run 2015-01-05T08:13:49Z ahungry: siege -c 300 http://localhos:5000 -t 10S 2015-01-05T08:14:00Z ahungry: you'll see siege receives 0 successess, and over a thousand failures 2015-01-05T08:14:03Z ahungry: then run something like this 2015-01-05T08:14:14Z ahungry: ps huH p $(ps -ef|grep sleeper | grep -v grep | awk '{print $2}') | wc -l 2015-01-05T08:14:22Z ahungry: and you'll get 121 2015-01-05T08:14:36Z H4ns: ahungry: that is not the same problem at all. 2015-01-05T08:14:48Z ahungry: and any future hits to localhost:5000 will get the 503 service unavailable 2015-01-05T08:14:56Z ahungry: Well, hunchentoot max-thread-count is 100 by default 2015-01-05T08:14:59Z ahungry: max-accept-count is 120 2015-01-05T08:15:03Z akkad: pgrep 2015-01-05T08:15:14Z ahungry: If it was 503 terminating those last 20 hits 2015-01-05T08:15:16Z ahungry: why are they still sleeping 2015-01-05T08:15:54Z ahungry: Meaning, if it accepted only 100 threads, the ps huH should show 101 threads 2015-01-05T08:15:56Z ahungry: after the siege stops 2015-01-05T08:15:58Z ahungry: not 121 2015-01-05T08:16:04Z MutSbeta quit (Quit: Leaving.) 2015-01-05T08:16:36Z ahungry: Set max-accept-count to something high like 1000 and max-thread-count to 100 in a custom taskmaster, you'll probably see 1001 threads sitting around for the (sleep 600) 2015-01-05T08:17:00Z ahungry: Am I wrong in my conclusion? 2015-01-05T08:17:12Z H4ns: ahungry: i'm not saying that hunchentoot is bug free, but you are still approaching the problem from the wrong end. you need to solve your own problem, the thread limits in hunchentoot are not the cause. 2015-01-05T08:17:13Z |3b|: if max-accept-count > max-thread-count, it waits for a free connection instead of 503 2015-01-05T08:17:32Z |3b|: *waits for a request to finish 2015-01-05T08:17:33Z ahungry: No, it sent many 503s 2015-01-05T08:17:42Z H4ns: ahungry: you need to figure out why your threads are not dying. 2015-01-05T08:17:50Z abbe quit (Quit: “Everytime that we are together, it's always estatically palpitating!”) 2015-01-05T08:18:00Z ahungry: My issue is 503 threads are not terminated immediately 2015-01-05T08:18:02Z |3b|: it waits for up to max-accept-count, then sends 503 2015-01-05T08:18:05Z ahungry: if they were, this wouldn't be an issue 2015-01-05T08:18:09Z H4ns: ahungry: no. 2015-01-05T08:18:12Z |3b|: so you have 100 sleeping, 20 waiting, rest 503 2015-01-05T08:18:46Z H4ns: ahungry: your analysis is wrong. you need to look better. 2015-01-05T08:18:48Z |3b|: the 20 extra didn't 503, and would have probably started sleeping in 10 min if the client stayed 2015-01-05T08:19:04Z |3b|: the ones that 503 just got closed 2015-01-05T08:19:31Z ahungry: ok that makes sense, thanks for the help guys 2015-01-05T08:19:39Z akkad: does wrk get more connections than siege? 2015-01-05T08:21:28Z ahungry: You guys are awesome, have a good night, almost 3:30 am so I'll tackle the db issue tomorrow :) 2015-01-05T08:23:56Z munksgaard joined #lisp 2015-01-05T08:24:16Z pranavrc quit (Read error: No route to host) 2015-01-05T08:25:05Z pranavrc joined #lisp 2015-01-05T08:25:05Z pranavrc quit (Changing host) 2015-01-05T08:25:05Z pranavrc joined #lisp 2015-01-05T08:27:04Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T08:27:22Z stardiviner quit (Ping timeout: 240 seconds) 2015-01-05T08:34:06Z vinleod joined #lisp 2015-01-05T08:38:47Z abbe joined #lisp 2015-01-05T08:40:42Z tesuji quit (Ping timeout: 245 seconds) 2015-01-05T08:40:56Z stardiviner joined #lisp 2015-01-05T08:41:49Z Shinmera joined #lisp 2015-01-05T08:44:47Z loke: I think I know what he's seeing 2015-01-05T08:44:52Z loke: Similar to what I have 2015-01-05T08:44:52Z robot-beethoven joined #lisp 2015-01-05T08:45:14Z loke: Basically, if you implement a long-poll mechanism, and the client disconnects, your handler won't exit until it tried to write something 2015-01-05T08:45:46Z loke: My poll interval was 30 seconds, it could take up to 30 seconds before it was disconnected, during which time the connection was still open and the thread still alive 2015-01-05T08:46:24Z loke: I solved the issue as part of my multiplexing the connections 2015-01-05T08:46:37Z vinleod left #lisp 2015-01-05T08:48:15Z mvilleneuve joined #lisp 2015-01-05T08:53:49Z vdamewood joined #lisp 2015-01-05T08:54:27Z zacharias quit (Ping timeout: 244 seconds) 2015-01-05T08:54:30Z jtza8 joined #lisp 2015-01-05T08:55:27Z akkad: loke what does netstat -a show? many timewait 1 or 2s? 2015-01-05T08:56:07Z akkad: loke also is this behind another server like nginx as proxy? 2015-01-05T08:56:19Z loke: akkad: Probably. I haven't looked at it in a while since I changed the code to use multipexed IO instead 2015-01-05T08:56:41Z loke: akkad: Is your handler long-running? 2015-01-05T08:57:06Z akkad: I've soem that are 2015-01-05T08:57:24Z akkad: and I find nginx handles connections better than hunchentoot 2015-01-05T08:57:36Z loke: akkad: Do you expect them to exit when the client disconnects? 2015-01-05T08:57:39Z akkad: set nginx timeout lower if there are too many 2015-01-05T08:58:05Z akkad: well in this case nginx should terminate the connection to the backend 2015-01-05T08:58:16Z akkad: never checked threads on lisp to see if they were still around 2015-01-05T08:58:29Z vdamewood left #lisp 2015-01-05T08:58:30Z loke: akkad: Right, but the handler thread won't be killed just because your connection is terminated. 2015-01-05T08:58:35Z akkad: I imagine if they are reused they might have a shelf life 2015-01-05T08:58:50Z akkad: ahh so thread exhaustion? 2015-01-05T08:59:36Z loke: akkad: What happens is that once your handler tried to actually write some data to the output stream, that write will raise an error. But intil it tries to write, it will just sit there as there is nothing monitoring the connection while the trhead is running 2015-01-05T08:59:45Z loke: You have to do that yourself if it's important. 2015-01-05T09:00:40Z sol__ joined #lisp 2015-01-05T09:03:40Z akkad: yeah sounds like tcp 2015-01-05T09:03:44Z akkad: I've seen that happen in node 2015-01-05T09:03:58Z akkad: or shared memcache pools in rails 2015-01-05T09:05:18Z innertracks quit (Quit: innertracks) 2015-01-05T09:05:25Z Baggers joined #lisp 2015-01-05T09:05:38Z akkad: or shared resource connections over a vpn. almost need to setup a keep alive 2015-01-05T09:05:40Z akkad: noop 2015-01-05T09:06:32Z harish quit (Ping timeout: 244 seconds) 2015-01-05T09:09:25Z moei quit (Quit: Leaving...) 2015-01-05T09:11:55Z serichsen: Wasn't monkeylib-bcrypt in Quicklisp once? 2015-01-05T09:12:16Z akkad: chipz and salza2 2015-01-05T09:12:17Z akkad: :P 2015-01-05T09:14:40Z vdamewood joined #lisp 2015-01-05T09:19:54Z vdamewood is now known as vinleod 2015-01-05T09:21:21Z EvW joined #lisp 2015-01-05T09:26:01Z attila_lendvai joined #lisp 2015-01-05T09:26:01Z attila_lendvai quit (Changing host) 2015-01-05T09:26:01Z attila_lendvai joined #lisp 2015-01-05T09:26:37Z munksgaard quit (Quit: Lost terminal) 2015-01-05T09:27:00Z vinleod is now known as vdamewood 2015-01-05T09:27:31Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T09:28:52Z stardiviner quit (Ping timeout: 240 seconds) 2015-01-05T09:29:50Z adlai quit (Remote host closed the connection) 2015-01-05T09:30:17Z EvW joined #lisp 2015-01-05T09:32:42Z jtza8 quit (Ping timeout: 265 seconds) 2015-01-05T09:32:47Z adlai joined #lisp 2015-01-05T09:37:00Z pacon joined #lisp 2015-01-05T09:41:43Z stardiviner joined #lisp 2015-01-05T09:49:12Z attila_lendvai quit (Quit: Leaving.) 2015-01-05T09:49:42Z attila_lendvai joined #lisp 2015-01-05T09:49:48Z Baggers quit (Ping timeout: 250 seconds) 2015-01-05T09:50:27Z banjara quit (Ping timeout: 244 seconds) 2015-01-05T09:50:30Z banjara1 joined #lisp 2015-01-05T09:52:40Z jtza8 joined #lisp 2015-01-05T09:53:07Z loke: Wow. At this: http://www.lispworks.com/documentation/HyperSpec/Issues/iss345_w.htm 2015-01-05T09:53:36Z pjb: dim: int32 i=1; int8* little_endian_p=&i; *little_endian_p!=0 2015-01-05T09:53:43Z loke: some people wanted to get rid of -if-not so badly that they suggested implementing a #~ read macro that would be equivalent to (completent #'fn) 2015-01-05T09:53:56Z loke: complement even 2015-01-05T09:54:13Z munksgaard joined #lisp 2015-01-05T09:54:32Z protist: I'm considering writing a book on Common Lisp for fun. A short one that is intended to take someone from the level that uni courses drop them from (which isn't far), towards a little more proficiency. 2015-01-05T09:54:41Z protist: Does anyone have any thoughts? 2015-01-05T09:55:11Z Shinmera: protist: You might want to consider contributing to http://learnlispthehardway.org/ instead, or at least have a look at it. 2015-01-05T09:55:12Z loke: protist: So for people who don't know programming, basically? 2015-01-05T09:55:22Z Grue`: loke: well, :test-not _is_ quite inelegant... 2015-01-05T09:55:36Z protist: loke: yeah people who learned a little syntax but still try to use Common Lisp as if it were C 2015-01-05T09:55:48Z loke: Grue`: yes, but i'd take that before #~ :-) 2015-01-05T09:55:49Z protist: loke: or *shudder* Java 2015-01-05T09:56:06Z Grue`: I would've liked if there was a built-in COMPOSE function 2015-01-05T09:56:12Z loke: protist: (n my experience, people coming out of university are barely able to program their way out of a wet paper bag) 2015-01-05T09:56:21Z protist: Shinmera: yeah that might be helpful :)...still like making my own things 2015-01-05T09:56:25Z protist: Shinmera: thanks :) 2015-01-05T09:56:25Z loke: protist: That said, if they already know programming, isn't PCL the right book? 2015-01-05T09:56:55Z attila_lendvai quit (Quit: Leaving.) 2015-01-05T09:57:04Z protist: loke: never read that...I read some SICP then jumped to LoL and such 2015-01-05T09:57:20Z protist: loke: I was thinking something short, cheap, and unintimidating 2015-01-05T09:57:30Z loke: protist: PCL is the best book for anyone wanting to learn CL, imho 2015-01-05T09:57:39Z protist: loke: help them with some lessons that take time to learn, like proper use of apply vs funcall 2015-01-05T09:57:42Z loke: protist: if ytou want to write something, look at that first at least 2015-01-05T09:57:55Z _8hzp joined #lisp 2015-01-05T09:58:12Z protist: loke: I'll take a look :) 2015-01-05T09:58:17Z loke: protist: in PCL, that's explained here: http://www.gigamonkeys.com/book/functions.html 2015-01-05T09:58:37Z scymtym quit (Ping timeout: 255 seconds) 2015-01-05T09:59:30Z protist: loke: oh and I saw a library recently that uses macros for something functions could handle...what should I do? 2015-01-05T09:59:44Z protist: loke: on github...I'm not a big vc guy 2015-01-05T09:59:45Z loke: protist: which one? 2015-01-05T09:59:51Z protist: loke: cl-mongo 2015-01-05T10:00:00Z protist: loke: about 20 different macros 2015-01-05T10:00:11Z hiyosi joined #lisp 2015-01-05T10:00:21Z loke: which file? 2015-01-05T10:00:26Z Grue`: well at least it's web-scale 2015-01-05T10:00:28Z protist: loke: with names that contain prefixes that could be nice for read macros, like $<= 2015-01-05T10:00:48Z loke: I have absolutely no trust in mongo 2015-01-05T10:01:04Z stardiviner quit (Ping timeout: 250 seconds) 2015-01-05T10:01:14Z protist: loke: scroll down you will see a ton of macros: https://github.com/fons/cl-mongo 2015-01-05T10:01:30Z Grue`: a lot of macros could be rewritten as functions, except you'd have to use (lambda)s everywhere 2015-01-05T10:02:00Z hzp quit (Ping timeout: 264 seconds) 2015-01-05T10:02:35Z protist: loke: I was thinking I could assume the reader knows about functions, lists, and recursion 2015-01-05T10:02:45Z protist: loke: then explore the parts that make Lisp special 2015-01-05T10:02:53Z avawn_ quit (Remote host closed the connection) 2015-01-05T10:03:11Z protist: loke: classes seem to go only as deep as the syntax...no wonder people leave with a foul taste 2015-01-05T10:03:31Z attila_lendvai joined #lisp 2015-01-05T10:03:38Z protist: loke: and toy problems...classes do the same thing to Prolog 2015-01-05T10:03:48Z protist: loke: they are arguably worse about how they handle Prolog 2015-01-05T10:04:17Z loke: protist: I'm not sure classes is a good way of learning _any_ programming 2015-01-05T10:04:23Z banjara1 quit (Ping timeout: 256 seconds) 2015-01-05T10:04:24Z Grue`: wait, what book are you talking about now? 2015-01-05T10:04:30Z protist: loke: or anything at all for that matter 2015-01-05T10:04:40Z loke: protist: That's true 2015-01-05T10:04:42Z protist: Grue`: one I'm thinking about writing...something short 2015-01-05T10:04:42Z Grue`: ah, classes as in school classes 2015-01-05T10:04:58Z Grue`: i was thinking about classes as in object classes 2015-01-05T10:05:05Z Grue`: and it made no sense 2015-01-05T10:05:07Z protist: Grue`: ah :p 2015-01-05T10:05:07Z protist: brb 2015-01-05T10:05:53Z loke: protist: Unless the attendees are truly interested in the subject matter. I remember attending "Solaris internals for employees" when I was working for Sun. A one-week course on the Solaris kernel. It was a very useful class 2015-01-05T10:06:20Z attila_lendvai quit (Client Quit) 2015-01-05T10:06:33Z protist: loke: good :) 2015-01-05T10:06:52Z protist: loke: my class "taught" Prolog but didn't touch definite clause grammars 2015-01-05T10:07:03Z protist: loke: that is a crying shame 2015-01-05T10:07:19Z mrkkrp joined #lisp 2015-01-05T10:07:22Z loke: I know very little Prolog sadly 2015-01-05T10:08:11Z protist: I have accumulated a bit of knowledge in weird niche areas...and am starting to think making some e-books might be fun 2015-01-05T10:08:26Z protist: sorry if I'm rambling 2015-01-05T10:08:40Z pjb: minion: memo for shortymcgee: if it was the reverse, you would still ask if there's a reason why the cdr refers tot he obejct and the car refers to the next node instead of the other way around. Think about it! 2015-01-05T10:08:40Z minion: Remembered. I'll tell shortymcgee when he/she/it next speaks. 2015-01-05T10:08:40Z loke: protist: I've had the same thoughts, but then I realise that I'm too lazy to do that 2015-01-05T10:08:46Z Zhivago: To be successful avoid veracity. 2015-01-05T10:08:50Z loke: I think I'll make some youtube videos instead 2015-01-05T10:09:25Z protist: loke: look on Amazon...people are writing shitty 20 page books and charging people real money for them...they get bad reviews...but the number of reviews indicates it was quite profitable 2015-01-05T10:09:28Z Zhivago: Record yourself smoking a different pipe while doing lisp. 2015-01-05T10:10:08Z protist: Zhivago: what do you mean? 2015-01-05T10:10:49Z Zhivago: It's a proven strategy, except for the lisp bit. 2015-01-05T10:11:12Z protist: saw a lisp book that was 23 pages or so...assuming <= 1/50 people post reviews and it had >= 3 reviews....the person was charging $3 each....he made considerable money for nothing 2015-01-05T10:12:02Z protist: I'm thinkin 100 pages, well edited and formatted...with useful information 2015-01-05T10:12:48Z Zhivago: I suspect that the enthusiastic gloss of an ignorant author is what makes a popular book. 2015-01-05T10:13:34Z protist: Zhivago: I wont admit to ignorance, but I have a surplus of enthusiasm 2015-01-05T10:15:18Z Zhivago: Popular C books are riddled with wrrors, and that's a bigger sample space. 2015-01-05T10:15:38Z protist: Zhivago: nothing says I couldn't write 8 books :P 2015-01-05T10:15:52Z protist: Zhivago: I have a language obsession 2015-01-05T10:15:57Z Zhivago: Never let the truth get in the way of a good story, and you'll be set. :) 2015-01-05T10:16:11Z protist: Zhivago: I'll take that to heart :) 2015-01-05T10:16:16Z protist: lol 2015-01-05T10:17:46Z quazimodo joined #lisp 2015-01-05T10:18:40Z Shinmera: I don't think I could ever write a book, or if I did ever publish it because I'm way too afraid of writing something stupid or even incorrect. Ah well. 2015-01-05T10:18:52Z Bicyclidine quit (Ping timeout: 255 seconds) 2015-01-05T10:19:02Z protist: Shinmera: release a new edition 2015-01-05T10:19:42Z Shinmera: I'd have to release at all, first! 2015-01-05T10:19:45Z protist: Shinmera: "revised, updated, and made to suck less" 2015-01-05T10:19:50Z protist: Shinmera: lol 2015-01-05T10:21:29Z protist: Shinmera: I started writing a few paragraphs...and am noticing enough gaps to fill a few pages lol 2015-01-05T10:21:30Z kushal quit (Quit: Leaving) 2015-01-05T10:22:35Z protist: Shinmera: It should have a chapter on CLOS that says "no" 2015-01-05T10:23:59Z Grue`: are you paul graham? 2015-01-05T10:24:13Z protist: Grue`: I'm possibly worse 2015-01-05T10:24:28Z zacharias joined #lisp 2015-01-05T10:24:28Z zacharias quit (Changing host) 2015-01-05T10:24:29Z zacharias joined #lisp 2015-01-05T10:24:58Z protist: Grue`: I write interpreters for fun and write personal libraries when I don't like the ones available 2015-01-05T10:25:08Z protist: libraries when* 2015-01-05T10:25:28Z Shinmera: Arguably, PG's popularity is what makes him dangerous more than anything else. 2015-01-05T10:25:43Z protist: Doug Hoyte is the same way 2015-01-05T10:25:46Z protist: in LoL 2015-01-05T10:25:50Z stepnem joined #lisp 2015-01-05T10:25:52Z protist: LOL* 2015-01-05T10:25:56Z protist: Let Over Lambda 2015-01-05T10:26:01Z Hexstream: Dangerous? Honestly Paul Graham is fairly irrelevant these days, I thought. Doug Hoyte definitely is dangerous, however. ;P 2015-01-05T10:26:17Z protist: Hexstream: I'm on the same end of the spectrum 2015-01-05T10:26:33Z protist: Hexstream: I just need a book to prove it :p 2015-01-05T10:26:42Z Shinmera: Hexstream: We get people coming in here spilling PG's preachings everywhere almost daily. 2015-01-05T10:26:58Z Grue`: i doubt you can out-LoL LoL 2015-01-05T10:27:19Z Shinmera: Hexstream: He is sadly still very much relevant. 2015-01-05T10:27:22Z protist: Grue`: I might attempt it 2015-01-05T10:27:31Z protist: Grue`: but first I'm thinking something more general 2015-01-05T10:27:31Z Hexstream: Shinmera: Yes, but Paul Graham does 2 things, making people curious about lisp, which is relevant, and giving bad advice about it, which is irrelevant since easily repudiated. 2015-01-05T10:27:41Z jackdaniel: Shinmera: why sadly? 2015-01-05T10:28:00Z protist: Shinmera: I think arc was a big let-down, though 2015-01-05T10:28:00Z Hexstream: Well, mostly irrelevant. Those who come here faster after PG get corrected quicker. 2015-01-05T10:28:24Z protist: Shinmera: we had macros already...I don't get arc 2015-01-05T10:28:46Z Hexstream: Arc's biggest "contribution" seems to be stupid abbreviations, unfortunately. Definitely a let-down. 2015-01-05T10:29:26Z protist: Hexstream: agreed 2015-01-05T10:29:51Z huza joined #lisp 2015-01-05T10:30:15Z protist: Hexstream: wonder if he ever lurks in here 2015-01-05T10:30:27Z Hexstream: Paul Graham? Never. 2015-01-05T10:30:29Z pjb: - 2015-01-05T10:30:37Z protist: Hexstream: hard to imagine people like Paul Graham, Peter Norvig, etc don't lurk in the relevant channels 2015-01-05T10:30:38Z fragamus quit (Quit: Computer has gone to sleep.) 2015-01-05T10:30:48Z protist: Hexstream: or maybe they don't lurk....maybe we are among them 2015-01-05T10:31:01Z H4ns: "relavence" is a very relative term 2015-01-05T10:31:29Z H4ns: one could argue that this channel is either "the world of common lisp" or also "completely irrelevant" and be right in both cases. 2015-01-05T10:31:37Z protist: H4ns: I wanted it to apply to things like #perl → Larry Wall, #scheme → Sussman, etc 2015-01-05T10:31:57Z drdanmaku quit (Quit: Connection closed for inactivity) 2015-01-05T10:32:03Z protist: H4ns: or #python → forgothisname 2015-01-05T10:32:05Z Hexstream: Yes, Paul Graham is extra relevant with respect to newbies who had never heard about lisp before, for instance. But irrelevant for those who have known lisp for some time. 2015-01-05T10:32:32Z H4ns: Hexstream: i've been doing lisp for quite some time and find pg still relevant. 2015-01-05T10:33:13Z Hexstream: H4ns: Ah? Well, I'm out of many loops. What are particular areas where you think he's relevant with respect to lisp? 2015-01-05T10:33:16Z Grue`: his books are not that bad really, you just need to supplement them with other books 2015-01-05T10:33:31Z loke: Grue`: I find it bad. 2015-01-05T10:33:38Z loke: Grue`: Full of really bad practices 2015-01-05T10:33:55Z Hexstream: There's also the question of "being relevant" as in "saying relevant things" or as in "being taken seriously". 2015-01-05T10:34:02Z Grue`: you can only learn good practices from reading other people's code, not from textbooks 2015-01-05T10:34:14Z Shinmera: Textbooks contain code. 2015-01-05T10:34:22Z loke: Grue`: Textbooks contain code, that code should not have outright bad practices in them 2015-01-05T10:34:25Z aerique_ is now known as aerique 2015-01-05T10:34:35Z H4ns: i find on lisp instructive and would recommend it to anyone who has a brain and wants to know more about lisp 2015-01-05T10:34:41Z Grue`: textbooks contain code that is usually not according to best practices, but has pedagogical value 2015-01-05T10:34:43Z H4ns: it is adult reading material of course. 2015-01-05T10:34:56Z Hexstream: Yes, On Lisp is one still relevant thing I had forgotten about. 2015-01-05T10:35:00Z splittist: I think code examples can be cut a bit of slack in terms of industrial coding norms. 2015-01-05T10:35:23Z Mon_Ouie joined #lisp 2015-01-05T10:35:26Z loke: splittist: I don't. 2015-01-05T10:35:55Z antonv quit (Ping timeout: 244 seconds) 2015-01-05T10:36:03Z Hexstream: However, that's a fairly old Paul Graham thing. On Lisp is still relevant, but I'm not sure it means "Paul Graham is still being relevant with respect to lisp today" on its own... 2015-01-05T10:36:05Z Shinmera: I'd say text books should take even more care to show good code practises than anything else exactly because they are used as teaching material. 2015-01-05T10:37:14Z Karl_Dscc joined #lisp 2015-01-05T10:37:35Z splittist: loke: how do you choose 'meaningful variable names' for an example of usage? For reals you'd want to say INTERNAL-FURNACE-TEMPERATURE, but using that rather than X in an example is just going to be confusing. 2015-01-05T10:37:53Z Hexstream: It may be that textbooks have traditionally been terrible at teaching good lisp practices, but I don't think that's an inherent property. 2015-01-05T10:38:23Z pjb: Paul Graham is having fun with HackerNews, and the start ups he invests into. Compared to that, #lisp is rather irrelevant. 2015-01-05T10:38:27Z Zhivago: Education is mostly about telling useful lies without being dishonest. 2015-01-05T10:38:38Z Hexstream: It just so happens, I guess, that the intersection of those who write textbooks and those who really have a clue about the particular subject treated tends to be very small indeed. 2015-01-05T10:38:58Z loke: splittist: THat's not my concern 2015-01-05T10:38:58Z pjb: Peter Norvig is having fun writing Python AI at Google. If at all, he'd be on #python, but in any case, #lisp is irrelevant to that too. 2015-01-05T10:39:16Z Zhivago: The better you know, the harder it gets to write about. 2015-01-05T10:39:21Z loke: splittist: My issue is more with things like using recursion to iterate over a long list, which will exhaust the stack on half the CL implementations out there 2015-01-05T10:40:00Z splittist: loke: OK. 2015-01-05T10:40:54Z splittist: It's not like producing reliable and secure software that fulfils customer expectations on-time and on-budget is a solved problem, anyway. 2015-01-05T10:40:57Z Grue`: how do you teach recursion before first starting to recurse on lists? 2015-01-05T10:41:20Z Zhivago: Well, trees. 2015-01-05T10:41:21Z Grue`: (which is conceptually easier than recursing on trees) 2015-01-05T10:41:38Z Grue`: trees have too many branches for the puny beginner 2015-01-05T10:43:02Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-01-05T10:43:14Z Grue`: in academic environment there's no such thing as stack exhaustion 2015-01-05T10:43:44Z loke: Grue`: The code I'm referring to does not teach recursion 2015-01-05T10:43:53Z Zhivago: Binary trees have the same number as lists. :) 2015-01-05T10:44:53Z ggole: Building binary trees (properly) out of conses is trickier, though 2015-01-05T10:45:10Z stardiviner joined #lisp 2015-01-05T10:45:35Z Bicyclidine joined #lisp 2015-01-05T10:46:46Z jtza8 quit (Ping timeout: 255 seconds) 2015-01-05T10:47:38Z Zhivago: (cons 1 2) is pretty straight forward. 2015-01-05T10:47:45Z echo-area quit (Remote host closed the connection) 2015-01-05T10:48:24Z Zhivago: If we were talking of balances binary search trees, I'd agree. 2015-01-05T10:49:56Z ggole: The issue is that with a (single) cons there's nowhere to put an element where its position indicates it isn't tree structure 2015-01-05T10:50:21Z ggole: That means you can't have trees of arbitrary values - when you put conses in them, they will be confused for parts of the tree. 2015-01-05T10:50:31Z ggole: (You can do it with two conses, but that isn't exactly obvious.) 2015-01-05T10:51:03Z Zhivago: For teaching recursion, what does it matter? 2015-01-05T10:51:45Z ggole: Because it confuses beginners if they run into it. 2015-01-05T10:52:19Z josemanuel joined #lisp 2015-01-05T10:54:16Z pjb: Only if you are the confusing teacher type. 2015-01-05T10:54:53Z pjb: (defun label (cons) nil) (defun left (cons) (car cons)) (defun right (cons) (cdr cons)) (defun make-node (label left right) (cons left right)) 2015-01-05T10:55:33Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T10:59:28Z banjara joined #lisp 2015-01-05T10:59:28Z banjara quit (Changing host) 2015-01-05T10:59:28Z banjara joined #lisp 2015-01-05T10:59:36Z ggole: If you lead them through the two-cons solution using accessors, that works 2015-01-05T11:00:07Z ggole: Lists are still easier. No need to introduce accessors, and printing of the resulting structures won't seem funny. 2015-01-05T11:00:18Z pjb: Of course you need accessors: 2015-01-05T11:00:35Z kcj quit (Read error: Connection reset by peer) 2015-01-05T11:00:39Z pjb: (defun first (x) (car x)) (defun rest (x) (cdr x)) vs. (defun first (x) (cdr x)) (defun rest (x) (car x)) 2015-01-05T11:00:54Z ggole: Of course, but the accessors already exist. 2015-01-05T11:01:07Z protist: Zhivago: learning some latex 2015-01-05T11:01:12Z protist: Zhivago: gonna make this thing pretty 2015-01-05T11:01:33Z kapil__ quit (Quit: Connection closed for inactivity) 2015-01-05T11:02:07Z stardiviner quit (Ping timeout: 265 seconds) 2015-01-05T11:05:47Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-05T11:08:40Z milosn quit (Remote host closed the connection) 2015-01-05T11:09:34Z milosn joined #lisp 2015-01-05T11:11:34Z Hexstream left #lisp 2015-01-05T11:15:36Z stardiviner joined #lisp 2015-01-05T11:19:02Z EvW quit (Ping timeout: 265 seconds) 2015-01-05T11:21:21Z hardenedapple joined #lisp 2015-01-05T11:25:08Z theos quit (Quit: i will be back...nvm) 2015-01-05T11:26:38Z huza quit (Quit: WeeChat 0.3.8) 2015-01-05T11:27:04Z huza joined #lisp 2015-01-05T11:28:22Z Natch quit (Remote host closed the connection) 2015-01-05T11:29:37Z hardenedapple quit (Quit: WeeChat 1.0.1) 2015-01-05T11:30:45Z theos joined #lisp 2015-01-05T11:36:26Z stardiviner quit (Ping timeout: 265 seconds) 2015-01-05T11:36:36Z theos quit (*.net *.split) 2015-01-05T11:36:36Z anunnaki quit (*.net *.split) 2015-01-05T11:36:36Z bjorkintosh quit (*.net *.split) 2015-01-05T11:36:36Z MightyJoe quit (*.net *.split) 2015-01-05T11:36:36Z peccu2 quit (*.net *.split) 2015-01-05T11:36:36Z Zhivago quit (*.net *.split) 2015-01-05T11:36:37Z REPLeffect quit (*.net *.split) 2015-01-05T11:36:37Z wgslayer quit (*.net *.split) 2015-01-05T11:36:37Z spacebat quit (*.net *.split) 2015-01-05T11:36:37Z agumonkey quit (*.net *.split) 2015-01-05T11:36:37Z Posterdati quit (*.net *.split) 2015-01-05T11:36:37Z mikaelj quit (*.net *.split) 2015-01-05T11:36:37Z mingvs quit (*.net *.split) 2015-01-05T11:36:37Z schjetne quit (*.net *.split) 2015-01-05T11:36:37Z sigjuice quit (*.net *.split) 2015-01-05T11:36:37Z ZombieChicken quit (*.net *.split) 2015-01-05T11:36:37Z Rudolph-Miller_ quit (*.net *.split) 2015-01-05T11:36:37Z chrnybo` quit (*.net *.split) 2015-01-05T11:36:38Z jocuman quit (*.net *.split) 2015-01-05T11:36:38Z katco quit (*.net *.split) 2015-01-05T11:36:38Z mikaelj_ joined #lisp 2015-01-05T11:36:39Z sigjuice_ joined #lisp 2015-01-05T11:36:48Z spacebat joined #lisp 2015-01-05T11:36:48Z REPLeffect joined #lisp 2015-01-05T11:36:49Z chrnybo` joined #lisp 2015-01-05T11:36:50Z wgslayer joined #lisp 2015-01-05T11:36:54Z Posterdati joined #lisp 2015-01-05T11:36:57Z peccu2 joined #lisp 2015-01-05T11:37:00Z anunnaki joined #lisp 2015-01-05T11:37:10Z katco joined #lisp 2015-01-05T11:37:19Z mingvs joined #lisp 2015-01-05T11:37:32Z bjorkintosh joined #lisp 2015-01-05T11:37:37Z jackdaniel quit (Quit: leaving) 2015-01-05T11:37:46Z jackdaniel joined #lisp 2015-01-05T11:38:20Z MightyJoe joined #lisp 2015-01-05T11:38:29Z forgottenwizard joined #lisp 2015-01-05T11:38:37Z theos joined #lisp 2015-01-05T11:39:26Z Rudolph-Miller joined #lisp 2015-01-05T11:39:43Z nowhere_man quit (Remote host closed the connection) 2015-01-05T11:40:05Z nowhere_man joined #lisp 2015-01-05T11:40:48Z agumonkey joined #lisp 2015-01-05T11:45:08Z xyh joined #lisp 2015-01-05T11:46:11Z xyh: how many hooks does slime-mode has ? which should I use for re-binding a key ? 2015-01-05T11:47:13Z heurist quit (Ping timeout: 244 seconds) 2015-01-05T11:47:27Z soggybread quit (Quit: leaving) 2015-01-05T11:48:04Z wilfredh quit (Quit: Connection closed for inactivity) 2015-01-05T11:49:00Z Bicyclidine quit (Ping timeout: 265 seconds) 2015-01-05T11:50:42Z stardiviner joined #lisp 2015-01-05T11:50:56Z drl__ joined #lisp 2015-01-05T11:50:59Z heurist joined #lisp 2015-01-05T11:51:58Z scymtym joined #lisp 2015-01-05T11:53:02Z Ven joined #lisp 2015-01-05T11:53:26Z drl quit (Quit: Leaving) 2015-01-05T11:53:29Z drl_ quit (Quit: Leaving) 2015-01-05T11:53:41Z drl joined #lisp 2015-01-05T11:54:55Z banjara1 joined #lisp 2015-01-05T11:55:00Z Natch joined #lisp 2015-01-05T11:57:04Z xyh: oh! slime-mode-hook is ok 2015-01-05T11:58:56Z banjara quit (Ping timeout: 250 seconds) 2015-01-05T11:59:37Z Zhivago joined #lisp 2015-01-05T11:59:48Z Zhivago quit (Changing host) 2015-01-05T11:59:49Z Zhivago joined #lisp 2015-01-05T12:02:02Z hekmek joined #lisp 2015-01-05T12:02:17Z fantazo joined #lisp 2015-01-05T12:02:33Z pacon quit (Read error: Connection reset by peer) 2015-01-05T12:02:58Z soggybread joined #lisp 2015-01-05T12:03:33Z Karl_Dscc joined #lisp 2015-01-05T12:05:51Z Lowl3v3l joined #lisp 2015-01-05T12:06:19Z hekmek quit (Client Quit) 2015-01-05T12:09:01Z hardenedapple joined #lisp 2015-01-05T12:09:46Z stardiviner quit (Ping timeout: 250 seconds) 2015-01-05T12:12:28Z Xach: hmm 2015-01-05T12:16:25Z stassats joined #lisp 2015-01-05T12:17:28Z Hache joined #lisp 2015-01-05T12:18:02Z pnpuff joined #lisp 2015-01-05T12:19:03Z eudoxia joined #lisp 2015-01-05T12:21:40Z pnpuff left #lisp 2015-01-05T12:27:58Z araujo joined #lisp 2015-01-05T12:28:13Z Hache quit (Remote host closed the connection) 2015-01-05T12:28:58Z _m___ joined #lisp 2015-01-05T12:30:29Z Lowl3v3l quit (Quit: Leaving) 2015-01-05T12:34:56Z banjara1 quit (Quit: Leaving.) 2015-01-05T12:35:14Z drl__ quit (Quit: Leaving) 2015-01-05T12:37:33Z Hache joined #lisp 2015-01-05T12:38:51Z kushal joined #lisp 2015-01-05T12:38:53Z ered quit (Read error: Connection reset by peer) 2015-01-05T12:39:49Z Natch quit (Ping timeout: 245 seconds) 2015-01-05T12:39:51Z banjara joined #lisp 2015-01-05T12:41:57Z mrSpec quit (Ping timeout: 250 seconds) 2015-01-05T12:42:20Z mrSpec joined #lisp 2015-01-05T12:45:34Z hekmek joined #lisp 2015-01-05T12:45:41Z Bicyclidine joined #lisp 2015-01-05T12:47:01Z Beetny quit (Ping timeout: 256 seconds) 2015-01-05T12:49:46Z Natch joined #lisp 2015-01-05T12:50:02Z banjara quit (Quit: Leaving.) 2015-01-05T12:50:06Z psy quit (Remote host closed the connection) 2015-01-05T12:52:40Z xyh quit (Remote host closed the connection) 2015-01-05T12:52:49Z stardiviner joined #lisp 2015-01-05T12:56:23Z banjara joined #lisp 2015-01-05T12:57:20Z Hache quit (Read error: Connection reset by peer) 2015-01-05T12:59:03Z DeadTrickster joined #lisp 2015-01-05T13:00:17Z Hache joined #lisp 2015-01-05T13:00:40Z egp_ quit (Remote host closed the connection) 2015-01-05T13:04:24Z urandom__ joined #lisp 2015-01-05T13:08:27Z Grue`: so, what is the preferred way to map over slots of a structure? 2015-01-05T13:08:40Z stassats: not 2015-01-05T13:08:45Z Grue`: for example to print #S(TEST :X 100 :Y 200) 2015-01-05T13:09:03Z stassats: that'll happen automagically 2015-01-05T13:09:13Z Zhivago: With a list of accessor functions? 2015-01-05T13:09:16Z pranavrc quit 2015-01-05T13:09:22Z Grue`: but if i were to implement it from scratch 2015-01-05T13:09:35Z stassats: then you will know how to do that 2015-01-05T13:09:36Z Grue`: the actual problem is to convert it to plist 2015-01-05T13:10:16Z eudoxia: Grue`: https://github.com/Inaimathi/cl-mop 2015-01-05T13:10:17Z eudoxia: to-alist 2015-01-05T13:10:34Z capcar joined #lisp 2015-01-05T13:11:10Z quasisan1 quit (Ping timeout: 265 seconds) 2015-01-05T13:11:10Z Grue`: I assume this is unrelated to closer-mop? 2015-01-05T13:11:26Z thawes joined #lisp 2015-01-05T13:12:00Z theos quit (Disconnected by services) 2015-01-05T13:12:17Z eudoxia: it's a lighter, narrowed alternative 2015-01-05T13:12:28Z theos joined #lisp 2015-01-05T13:12:45Z antoszka: Will map-slots work with structures as well? 2015-01-05T13:12:55Z antoszka: (in cl-mop) 2015-01-05T13:12:56Z stassats: not really 2015-01-05T13:13:14Z Grue`: (cdr (read-from-string (subseq (format nil "~a" (make-test :x 100 :y 200)) 2))) it's even portable ;_; 2015-01-05T13:13:39Z stassats: Grue`: not really 2015-01-05T13:14:01Z serichsen: akkad: I was looking for the hashing algorithm. 2015-01-05T13:14:18Z ejbs joined #lisp 2015-01-05T13:14:32Z Grue`: assuming slot values are readable 2015-01-05T13:14:56Z stassats: (cdr (read-from-string (princ-to-string (make-test :x #'list :y 200)) nil nil :start 2)) wouldn't work 2015-01-05T13:15:14Z stassats: make that prin1-to-string 2015-01-05T13:15:32Z ejbs: On MOP: If I subclass funcallable-standard-class and make an instance object of this subclass, will I be able to FUNCALL it? 2015-01-05T13:16:13Z stassats: no, it's a metaclass 2015-01-05T13:16:14Z ejbs: Or more general: Can I make my own 'stuff' that can be FUNCAlled? 2015-01-05T13:17:16Z Grue`: you can subclass funcallable-standard-class and create a class which has it as a metaclass 2015-01-05T13:17:43Z stassats: you don't have to subclass it 2015-01-05T13:18:12Z ejbs: Right, with the :metaclass defclass-option? 2015-01-05T13:18:27Z huza quit (Quit: WeeChat 0.3.8) 2015-01-05T13:18:43Z Grue`: you don't have to subclass it, but you can 2015-01-05T13:18:45Z theos quit (Disconnected by services) 2015-01-05T13:19:13Z theos joined #lisp 2015-01-05T13:19:25Z stassats: i view funcallable instances as a mostly useless feature 2015-01-05T13:19:31Z Grue`: damn, cl-mop isn't even in quicklisp 2015-01-05T13:19:46Z Grue`: i'll just write it with closer-mop 2015-01-05T13:20:16Z eudoxia: Grue`: it will be in the next release, i just got it added 2015-01-05T13:20:34Z eudoxia: so you can safely clone it locally and expect people will have it within the month 2015-01-05T13:20:42Z stassats: Grue`: it wouldn't work with (defstruct (s (:type list))) in any case 2015-01-05T13:23:06Z stassats: eudoxia: protip: (map-slots (lambda (k v) (cons k v)) instance) => (map-slots #'cons instance) 2015-01-05T13:23:50Z vaporatorius quit (Ping timeout: 244 seconds) 2015-01-05T13:23:58Z ejbs: stassats: Why do you see them as useless? 2015-01-05T13:24:12Z eudoxia: stassats: i didn't write it 2015-01-05T13:24:39Z schjetne joined #lisp 2015-01-05T13:25:04Z stassats: ejbs: you can either closures or ordinary objects but with your own CALL method 2015-01-05T13:25:43Z stassats: eudoxia: ok, but you can keep it anyway 2015-01-05T13:26:03Z ejbs: stassats: Alright, so a funcallable instance does indeed work with FUNCALL, but it can't be in function position? As in (obj args) 2015-01-05T13:26:33Z stassats: if obj refers to it, it can be 2015-01-05T13:26:59Z stassats: via setf fdefinition 2015-01-05T13:27:35Z swflint is now known as swflint_away 2015-01-05T13:28:14Z stassats: and map-slots could be implemented in a faster way 2015-01-05T13:29:00Z ejbs: Ah, yeah. That makes sense 2015-01-05T13:29:03Z ejbs: Thank you 2015-01-05T13:31:16Z exm joined #lisp 2015-01-05T13:31:46Z stassats: it makes things look a bit simple when the generic function object can also be called, but it would work without it too 2015-01-05T13:34:47Z joneshf-laptop quit (Read error: Connection reset by peer) 2015-01-05T13:36:09Z Alfr joined #lisp 2015-01-05T13:36:38Z joneshf-laptop joined #lisp 2015-01-05T13:36:50Z acieroid` is now known as acieroid 2015-01-05T13:37:15Z harish joined #lisp 2015-01-05T13:43:27Z nell joined #lisp 2015-01-05T13:45:06Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T13:45:16Z banjara quit (Ping timeout: 250 seconds) 2015-01-05T13:53:31Z JuanDaugherty joined #lisp 2015-01-05T13:53:37Z stassats` joined #lisp 2015-01-05T13:53:45Z stassats quit (Remote host closed the connection) 2015-01-05T13:56:04Z kapil__ joined #lisp 2015-01-05T13:57:38Z Longlius quit (Read error: Connection reset by peer) 2015-01-05T13:58:46Z tadni quit (Ping timeout: 244 seconds) 2015-01-05T13:59:34Z Longlius joined #lisp 2015-01-05T14:00:52Z psy joined #lisp 2015-01-05T14:00:53Z tadni joined #lisp 2015-01-05T14:01:50Z Karl_Dscc joined #lisp 2015-01-05T14:03:55Z vaporatorius joined #lisp 2015-01-05T14:04:57Z banjara joined #lisp 2015-01-05T14:04:59Z nikki93 joined #lisp 2015-01-05T14:05:14Z banjara quit (Client Quit) 2015-01-05T14:11:16Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-01-05T14:12:36Z Xach: corman lisp is on github now 2015-01-05T14:13:35Z stassats`: link! 2015-01-05T14:13:49Z stassats`: i'm not curious enough to google it 2015-01-05T14:14:21Z Xach: https://github.com/sharplispers/cormanlisp 2015-01-05T14:14:27Z arrdem: https://github.com/sharplispers/cormanlisp 2015-01-05T14:14:36Z eudoxia: https://github.com/sharplispers/cormanlisp 2015-01-05T14:14:43Z eudoxia: just jumpin' on the bandwagon 2015-01-05T14:14:46Z stassats`: i trust Xach's link more 2015-01-05T14:15:07Z stassats`: ok, who'll port it to linux? 2015-01-05T14:15:33Z Xach volunteers nyef 2015-01-05T14:17:46Z antoszka: is it selfhosting, as in, can I check out and build it on windows without any external compilers? 2015-01-05T14:18:03Z stassats`: do you have msvs2005? 2015-01-05T14:18:06Z dlowe: Xach: awesome, thanks for the hard work. 2015-01-05T14:18:10Z antoszka: stassats`: nope 2015-01-05T14:18:13Z xristos: with ccl and sbcl already running on windows, is corman anything more than a gimmick at this point? 2015-01-05T14:18:26Z dlowe: build it without any external compilers at all? That'd be a neat trick. 2015-01-05T14:19:00Z Xach: The work was easy. It just took a while. 2015-01-05T14:19:11Z dlowe: persistence is hard :) 2015-01-05T14:19:27Z antoszka: dlowe: I'm justing thinking a small runnable lisp image might be included in the checkout for bootstrapping. 2015-01-05T14:19:28Z dlowe: as thousands of half-completed lisp projects can attest to 2015-01-05T14:20:17Z LiamH joined #lisp 2015-01-05T14:21:30Z clop2 joined #lisp 2015-01-05T14:21:43Z stassats`: https://github.com/sharplispers/cormanlisp/blob/master/Sys/arrays.lisp#L100 looks peculiar 2015-01-05T14:22:56Z nikki93 quit (Remote host closed the connection) 2015-01-05T14:23:08Z Xach: reminds me of the CLHS processing LOOP of DOOM from specbot 2015-01-05T14:23:19Z Grue`: what, did you never had to copy 7-dimensional arrays? 2015-01-05T14:24:33Z Grue`: row-major-aref would've been useful for this 2015-01-05T14:25:51Z stassats`: not particularly impressed with the way assembly routines are implemented 2015-01-05T14:26:01Z nikki93 joined #lisp 2015-01-05T14:26:58Z Grue`: was corman lisp one of the faster lisps back in the day? 2015-01-05T14:27:34Z Xach: it was the best option for windows for a while. 2015-01-05T14:27:38Z stassats`: i wouldn't think so, it looks like it will have ok performance 2015-01-05T14:27:56Z Ven joined #lisp 2015-01-05T14:28:01Z Grue`: i'd think something like lw or allegro would 2015-01-05T14:28:08Z Grue`: 've been best for windows 2015-01-05T14:28:13Z Xach: Not at the time. 2015-01-05T14:28:31Z Xach: Franz bought a third-party lisp and resold it as Allegro for Windows, and I've heard it wasn't very good. 2015-01-05T14:28:53Z Xach: LispWorks didn't support windows at all for a while 2015-01-05T14:29:44Z yauz quit (Ping timeout: 249 seconds) 2015-01-05T14:29:55Z yauz joined #lisp 2015-01-05T14:29:58Z Xach: http://lispblog.xach.com/post/107215169193/corman-lisp-sources-are-now-available has some context 2015-01-05T14:30:25Z dim: IIRC Corman includes a full native windows UI support, right? 2015-01-05T14:30:26Z dim: that's the part that seems not clear in the Open Sourcing of it... 2015-01-05T14:30:38Z hitecnologys: Oh, it's even MIT licensed. Great job, Xach. 2015-01-05T14:30:56Z MoALTz_ joined #lisp 2015-01-05T14:31:13Z Xach: dim: I don't know. 2015-01-05T14:31:49Z stassats`: it doesn't seem like porting corman to any other architecture would be possible 2015-01-05T14:32:03Z stassats`: not enough abstractions 2015-01-05T14:32:25Z Shinmera: It's not even portable between VS versions right now. 2015-01-05T14:32:56Z Xach: It might not be worth making it portable, either. But you never know. 2015-01-05T14:32:57Z hitecnologys: It doesn't even seem to support 64-bit systems fully. 2015-01-05T14:33:09Z jdz: or at all 2015-01-05T14:33:16Z hitecnologys: Probably. 2015-01-05T14:33:25Z hitecnologys: Still better than nothing. 2015-01-05T14:33:52Z MoALTz quit (Ping timeout: 240 seconds) 2015-01-05T14:34:45Z EvW joined #lisp 2015-01-05T14:35:45Z MoALTz_ quit (Ping timeout: 265 seconds) 2015-01-05T14:37:40Z keen__________23 joined #lisp 2015-01-05T14:38:35Z nyef joined #lisp 2015-01-05T14:38:45Z keen__________22 quit (Ping timeout: 244 seconds) 2015-01-05T14:39:00Z nyef: G'morning all. 2015-01-05T14:40:23Z hitecnologys: nyef: morning. 2015-01-05T14:40:40Z foom joined #lisp 2015-01-05T14:41:48Z MoALTz joined #lisp 2015-01-05T14:47:49Z gravicappa quit (Remote host closed the connection) 2015-01-05T14:52:45Z jack` joined #lisp 2015-01-05T14:57:40Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T14:57:56Z oleo joined #lisp 2015-01-05T14:58:36Z s00pcan_ joined #lisp 2015-01-05T14:58:41Z k-dawg quit (Quit: This computer has gone to sleep) 2015-01-05T15:04:06Z moei joined #lisp 2015-01-05T15:05:02Z exm quit (Quit: Leaving.) 2015-01-05T15:06:16Z exm joined #lisp 2015-01-05T15:11:49Z salv0 quit (Ping timeout: 244 seconds) 2015-01-05T15:12:47Z fragamus joined #lisp 2015-01-05T15:13:09Z jumblerg joined #lisp 2015-01-05T15:16:18Z protist: loke: Shinmera: I have 11 pages now :) 2015-01-05T15:16:36Z protist: loke: Shinmera: learned some LaTeX, looks spiffy 2015-01-05T15:17:10Z Shinmera: I don't care. 2015-01-05T15:17:25Z protist: Shinmera: meanie 2015-01-05T15:17:43Z quasisane joined #lisp 2015-01-05T15:17:50Z Shinmera: If you believe that I'm mean just for not caring about what you do you should readjust your expectations. 2015-01-05T15:18:37Z protist: Shinmera: eat me 2015-01-05T15:21:12Z bytecrawler joined #lisp 2015-01-05T15:25:24Z karswell quit (Remote host closed the connection) 2015-01-05T15:25:41Z Lowl3v3l joined #lisp 2015-01-05T15:25:57Z exm quit (Quit: Leaving.) 2015-01-05T15:25:58Z karswell` joined #lisp 2015-01-05T15:27:11Z hrs joined #lisp 2015-01-05T15:28:31Z nikki93 quit (Ping timeout: 256 seconds) 2015-01-05T15:30:24Z schoppenhauer quit (Write error: Connection reset by peer) 2015-01-05T15:30:38Z nikki93 joined #lisp 2015-01-05T15:30:40Z josemanuel quit (Quit: Saliendo) 2015-01-05T15:30:48Z salv0 joined #lisp 2015-01-05T15:34:02Z billstclair joined #lisp 2015-01-05T15:34:22Z nikki93 quit (Remote host closed the connection) 2015-01-05T15:35:04Z 18VABQA2V quit (Remote host closed the connection) 2015-01-05T15:36:07Z Ethan- quit (Ping timeout: 245 seconds) 2015-01-05T15:36:15Z schoppenhauer joined #lisp 2015-01-05T15:37:42Z jack` left #lisp 2015-01-05T15:38:45Z normanrichards joined #lisp 2015-01-05T15:38:54Z nikki93 joined #lisp 2015-01-05T15:39:13Z pegu quit (Remote host closed the connection) 2015-01-05T15:40:12Z kdas__ joined #lisp 2015-01-05T15:42:30Z nowhere_man quit (Read error: Connection reset by peer) 2015-01-05T15:42:56Z kushal quit (Ping timeout: 265 seconds) 2015-01-05T15:43:02Z pt1 quit (Remote host closed the connection) 2015-01-05T15:43:22Z tadni quit (Ping timeout: 240 seconds) 2015-01-05T15:43:26Z pt1 joined #lisp 2015-01-05T15:48:10Z pt1 quit (Ping timeout: 250 seconds) 2015-01-05T15:51:25Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T15:51:29Z tesuji joined #lisp 2015-01-05T15:56:55Z EvW joined #lisp 2015-01-05T16:01:01Z fantazo quit (Quit: Verlassend) 2015-01-05T16:01:33Z kapil__ quit (Quit: Connection closed for inactivity) 2015-01-05T16:04:00Z araujo quit (Ping timeout: 244 seconds) 2015-01-05T16:05:12Z Bor0 joined #lisp 2015-01-05T16:06:17Z araujo joined #lisp 2015-01-05T16:08:20Z Ainieco joined #lisp 2015-01-05T16:09:19Z Ainieco: will gethash return struct from string->struct hashmap by reference or by value? 2015-01-05T16:10:17Z Ainieco: i.e. i want to update one field in such struct and not sure if i should replace whole struct in hash or mutate what gethash has returned 2015-01-05T16:10:48Z Zhivago: You'll get an object reference by value. 2015-01-05T16:11:18Z sfa quit (Remote host closed the connection) 2015-01-05T16:11:28Z Zhivago: If you modify that object subsequent lookups will reflect those changes. 2015-01-05T16:11:37Z Ainieco: cool, thanks 2015-01-05T16:11:58Z theseb joined #lisp 2015-01-05T16:12:25Z Karl_Dscc joined #lisp 2015-01-05T16:13:44Z pearle joined #lisp 2015-01-05T16:17:06Z wheelsucker joined #lisp 2015-01-05T16:17:36Z stardiviner quit (Quit: my website: http://stardiviner.dyndns-blog.com/) 2015-01-05T16:18:19Z clop2: do any of the open source Lisps work well on Windows? (I don't know much about windows and need to make a recommendation to someone) 2015-01-05T16:18:34Z Bicyclidine quit (Ping timeout: 245 seconds) 2015-01-05T16:18:43Z stassats`: sbcl, clozure 2015-01-05T16:19:16Z Grue`` joined #lisp 2015-01-05T16:19:44Z Grue``: clop2: sbcl, ccl, clisp for various definitions of "work well" 2015-01-05T16:20:39Z Grue` quit (Ping timeout: 245 seconds) 2015-01-05T16:20:59Z Bor0 left #lisp 2015-01-05T16:21:42Z clop2: thanks 2015-01-05T16:21:55Z stassats`: corman, corman, what about corman? 2015-01-05T16:23:49Z joneshf-laptop quit (Quit: Leaving) 2015-01-05T16:26:03Z kdas__ quit (Quit: Leaving) 2015-01-05T16:26:31Z psy quit (Ping timeout: 255 seconds) 2015-01-05T16:26:50Z pjb: Grue``: have a look at http://www.informatimago.com/articles/usenet.html#Improved-DEFSTRUCT-macro--run-time-access-to-the-fields 2015-01-05T16:27:16Z eudoxia_ joined #lisp 2015-01-05T16:27:43Z egp_ joined #lisp 2015-01-05T16:28:14Z eudoxia_ quit (Client Quit) 2015-01-05T16:29:30Z Grue``: unfortunately it's not my code that's creating structures, personally I would've used classes; not that these don't need MOP for the same functionality of course... 2015-01-05T16:30:40Z pjb: Have a look at ibcl to see how you can conformingly define a package that will 2015-01-05T16:30:40Z pjb: shadow CL so that you may implement your own DEFSTRUCT for those libraries. 2015-01-05T16:30:54Z vaporatorius quit (Quit: Leaving) 2015-01-05T16:31:11Z eudoxia quit (Ping timeout: 244 seconds) 2015-01-05T16:34:45Z munksgaard quit (Quit: leaving) 2015-01-05T16:35:04Z munksgaard joined #lisp 2015-01-05T16:36:19Z munksgaard quit (Client Quit) 2015-01-05T16:36:31Z nyef: Of course, the real challenge comes when they use DEFSTRUCT and then proceed to use implementation internals to get runtime access to the fields and layout. 2015-01-05T16:36:32Z psy joined #lisp 2015-01-05T16:36:40Z yrk joined #lisp 2015-01-05T16:36:43Z munksgaard joined #lisp 2015-01-05T16:36:46Z urandom__ quit (Quit: Konversation terminated!) 2015-01-05T16:37:13Z yrk quit (Changing host) 2015-01-05T16:37:13Z yrk joined #lisp 2015-01-05T16:37:42Z sfa joined #lisp 2015-01-05T16:38:25Z sfa quit (Client Quit) 2015-01-05T16:38:33Z sfa joined #lisp 2015-01-05T16:39:05Z protist quit (Quit: Konversation terminated!) 2015-01-05T16:40:08Z hrs quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2015-01-05T16:52:07Z oudeis quit (Quit: This computer has gone to sleep) 2015-01-05T16:53:03Z xyh joined #lisp 2015-01-05T16:53:11Z vaporatorius joined #lisp 2015-01-05T16:53:14Z jasom: Xach: thanks for getting Corman Lisp out under MIT license; that's great! 2015-01-05T16:53:33Z stassats`: Xach: now do the same with OpenGenera 2015-01-05T16:53:51Z stassats`: maybe renaming it to OpenOpenGenera 2015-01-05T16:54:33Z Shinmera: TrulyOpenGenera 2015-01-05T16:54:34Z xyh: how to get current-path ?? 2015-01-05T16:54:35Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-01-05T16:54:47Z stassats`: clhs *d-p-d* 2015-01-05T16:55:01Z stassats`: specbot: wake up, you dummy 2015-01-05T16:55:06Z wasamasa: libregenera 2015-01-05T16:55:08Z wasamasa: freegenera 2015-01-05T16:55:10Z specbot: *default-pathname-defaults*: http://www.lispworks.com/reference/HyperSpec/Body/v_defaul.htm 2015-01-05T16:56:28Z xyh: thx 2015-01-05T16:56:31Z dim: clhs w-o-t-s 2015-01-05T16:56:31Z specbot: with-output-to-string: http://www.lispworks.com/reference/HyperSpec/Body/m_w_out_.htm 2015-01-05T16:56:44Z dim: I like that ;-) 2015-01-05T16:56:44Z dim: is it the same code as on l1sp.org? 2015-01-05T16:56:51Z stassats`: no 2015-01-05T16:57:07Z stassats`: i have no idea what code is on l1sp.org 2015-01-05T16:57:29Z munksgaard quit (Ping timeout: 256 seconds) 2015-01-05T16:57:35Z dim: fair enough, kind of a shame tho 2015-01-05T16:57:52Z stassats`: i have no shame 2015-01-05T16:57:53Z dim: well I'm not volunteering to fix that problem anyway 2015-01-05T16:58:18Z nyef: stassats`: NetGenera or FreeGenera? 2015-01-05T16:58:39Z stassats`: dim: which problem? 2015-01-05T16:59:11Z nikki93 quit (Ping timeout: 256 seconds) 2015-01-05T16:59:29Z nikki93 joined #lisp 2015-01-05T17:00:19Z normanrichards quit (Ping timeout: 256 seconds) 2015-01-05T17:00:51Z dim: code duplication 2015-01-05T17:01:27Z dim: would be bad that the same abbrev expands differently here and there, but not that bad that anyone would want to fix anyway 2015-01-05T17:03:13Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T17:05:05Z Xach: stassats`: the stories i've heard are not encouraging 2015-01-05T17:06:53Z nathanael joined #lisp 2015-01-05T17:07:04Z nathanael left #lisp 2015-01-05T17:09:05Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T17:11:29Z tharugrim quit (Ping timeout: 244 seconds) 2015-01-05T17:12:00Z gingerale joined #lisp 2015-01-05T17:12:01Z nowhere_man joined #lisp 2015-01-05T17:12:37Z jumblerg joined #lisp 2015-01-05T17:12:44Z mvilleneuve quit (Quit: This computer has gone to sleep) 2015-01-05T17:13:14Z tharugrim joined #lisp 2015-01-05T17:15:14Z Bicyclidine joined #lisp 2015-01-05T17:17:09Z drmeister: What's the best way to distribute SLIME with clasp? For now can I distribute SLIME as a submodule within clasp - or is that a bad idea? In the medium term I guess I should submit my swank/clasp.lisp file to the SLIME repo on github. 2015-01-05T17:17:32Z Xach: From the thinking that brought you the CL-HTTP license 2015-01-05T17:17:45Z stassats`: drmeister: submit swank/clasp.lisp now 2015-01-05T17:18:05Z stardiviner joined #lisp 2015-01-05T17:18:09Z stassats`: drmeister: do you need any modifications outside of swank/clasp.lisp? 2015-01-05T17:18:15Z drmeister: Nope. 2015-01-05T17:18:34Z drmeister: No, I don't need modifications outside of swank/clasp.lisp 2015-01-05T17:18:52Z stassats`: i gave you commit access to slime 2015-01-05T17:19:15Z drmeister: I'll give it a try now. 2015-01-05T17:19:54Z stassats`: because pull requests would slow you down at this stage and clasp.lisp doesn't affect anyone not using clasp 2015-01-05T17:20:30Z francogrex joined #lisp 2015-01-05T17:20:31Z stassats`: incidentally, i just noticed that |3b| has an unclaimed slime commit access invitation 2015-01-05T17:20:56Z stassats`: |3b|: do you want it or should i cancel it? 2015-01-05T17:21:33Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T17:22:06Z banjara joined #lisp 2015-01-05T17:22:07Z francogrex: good day. a question not about core lisp but still... it's about memory management. I have this code snipped: 2015-01-05T17:23:05Z akkad: 99$ windows tablet makes for true CL on a portable device :P 2015-01-05T17:24:41Z drmeister: Okay, I pushed my clasp.lisp file. 2015-01-05T17:25:11Z francogrex: http://paste.lisp.org/display/145082 the code processes about a billion lines to insert into a database. The memory keeps growing until the program crashes... I notioced that even after running through a few million lines and (exiting the plain-odbc package), sbcl growing memory does not come back to baselines only an exit and restrart would do 2015-01-05T17:25:12Z beach joined #lisp 2015-01-05T17:25:20Z beach: Good evening everyone! 2015-01-05T17:25:29Z samebchase: evening beach 2015-01-05T17:25:29Z drmeister: Hello beach 2015-01-05T17:25:31Z akkad: hi beach 2015-01-05T17:25:36Z ejbs: Poor protist :( 2015-01-05T17:25:40Z francogrex: Good evening 2015-01-05T17:25:41Z ejbs: Evening 2015-01-05T17:25:43Z drmeister: stassats`: I suppose I should do the same with ASDF 2015-01-05T17:26:11Z drmeister: Submit my changes that is - that's a little tricker because they aren't as localized as they were in SLIME. 2015-01-05T17:26:15Z stassats`: drmeister: can't help with ASDF 2015-01-05T17:26:26Z drmeister: No problem. 2015-01-05T17:26:28Z H4ns: francogrex: looks like a very inefficient way to insert a billion records. 2015-01-05T17:26:29Z francogrex: it's probably related to that specific package, not expecting a solution fropm this rude description I gave, but an indication for investigation? 2015-01-05T17:26:40Z francogrex: like H4ns just did 2015-01-05T17:26:44Z stassats` didn't infiltrate enough key CL infrastructures 2015-01-05T17:26:53Z H4ns: francogrex: i'd suspect that the problem to be in exec-command 2015-01-05T17:27:28Z francogrex quit (Remote host closed the connection) 2015-01-05T17:28:22Z francogrex joined #lisp 2015-01-05T17:28:36Z jumblerg joined #lisp 2015-01-05T17:28:39Z slyrus quit (Ping timeout: 256 seconds) 2015-01-05T17:28:49Z akkad: yeah some sort of DB specific "load from file" 2015-01-05T17:28:50Z francogrex: probably with exec-command but strange that even after a clean package delete still sbcl is mem hyperactive 2015-01-05T17:29:06Z francogrex: doesn't grow in memory anymore but doesn't (free) either 2015-01-05T17:29:31Z s00pcan_ quit (Ping timeout: 255 seconds) 2015-01-05T17:29:40Z francogrex: I tried (gc :full t) but that's not the way 2015-01-05T17:29:45Z madalu quit (Remote host closed the connection) 2015-01-05T17:29:50Z francogrex quit (Remote host closed the connection) 2015-01-05T17:29:57Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T17:30:02Z stassats`: "More Information can be found at the project page." => "This is an automatically generated placeholder page: this project has not yet created a website." 2015-01-05T17:30:05Z stassats`: right. 2015-01-05T17:30:13Z nikki93 joined #lisp 2015-01-05T17:30:29Z drdanmaku joined #lisp 2015-01-05T17:30:39Z xyh quit (Remote host closed the connection) 2015-01-05T17:30:44Z francogrex joined #lisp 2015-01-05T17:30:50Z ejbs` joined #lisp 2015-01-05T17:30:58Z francogrex left #lisp 2015-01-05T17:31:03Z francogrex joined #lisp 2015-01-05T17:31:11Z francogrex: damn network keeps dropping 2015-01-05T17:31:14Z dlowe: francogrex: it's possible that the problematic data is simply tenured and no longer checked for gc 2015-01-05T17:31:21Z innertracks joined #lisp 2015-01-05T17:31:22Z Quadrescence joined #lisp 2015-01-05T17:31:29Z dlowe: not sure if :full t touches that 2015-01-05T17:31:39Z H4ns: francogrex: the memory might be leaking in the ffi 2015-01-05T17:31:44Z stassats`: full t should account for that 2015-01-05T17:31:48Z Xach: Is anyone here on the boston-lisp list? Did my message today come through? 2015-01-05T17:31:57Z stassats`: unless it's conservatively pinned, or just pinned 2015-01-05T17:32:11Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T17:32:30Z dlowe: Xach: I didn't get anything. 2015-01-05T17:32:31Z nikki93 joined #lisp 2015-01-05T17:32:43Z H4ns: i have not seen anything either 2015-01-05T17:32:47Z ejbs quit (Ping timeout: 245 seconds) 2015-01-05T17:33:16Z Xach: I wonder what's up. 2015-01-05T17:33:23Z Xach: People keep asking me the details and I keep posting them. 2015-01-05T17:33:50Z Joreji joined #lisp 2015-01-05T17:33:50Z dim: is there a facility like with-output-to-string for bytes? 2015-01-05T17:34:03Z stassats`: flexi-streams 2015-01-05T17:34:12Z Xach: dim: not built-in, but flexi-streams provides it 2015-01-05T17:34:28Z slyrus joined #lisp 2015-01-05T17:34:34Z dim: francogrex: if using PostgreSQL, use the COPY protocol 2015-01-05T17:34:57Z dim: I don't even see how to make a binary stream 2015-01-05T17:35:25Z francogrex: ok 2015-01-05T17:35:45Z dim: maybe vector-push-extend is what I need? or maybe flexi-streams 2015-01-05T17:35:55Z dim: francogrex: also, if using PostgreSQL, see pgloader (quicklisp) 2015-01-05T17:36:11Z dim: the current git version is more easily usable from lisp btw 2015-01-05T17:36:17Z francogrex: it's sqlite i am using 2015-01-05T17:36:40Z dim: oh I think they don't have a bulk insert facility, not even mentionning protocol 2015-01-05T17:36:49Z dim: but they might, as they modeled against pg 2015-01-05T17:36:55Z francogrex: i could simply import the file... but was curious about that weird observation of memory 2015-01-05T17:37:08Z francogrex: they have 2015-01-05T17:37:16Z H4ns: francogrex: what you observe is a plain old memory leak 2015-01-05T17:37:17Z stassats`: dim: i wouldn't use either 2015-01-05T17:37:48Z francogrex: H4ns: i will look into the package to see where it may be then 2015-01-05T17:38:41Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T17:38:48Z gravicappa joined #lisp 2015-01-05T17:38:57Z lemoinem quit (Ping timeout: 272 seconds) 2015-01-05T17:38:58Z nikki93 joined #lisp 2015-01-05T17:39:23Z hekmek quit (Ping timeout: 244 seconds) 2015-01-05T17:39:25Z dim: stassats`: what would you use then? 2015-01-05T17:39:34Z stassats`: something 2015-01-05T17:40:09Z dim: I'm in the glossary of chapter 21 (streams) of the HS not finding what I want 2015-01-05T17:40:22Z stassats`: what do you want? 2015-01-05T17:40:22Z dim: I'm obviously not searching the right thing ;-) 2015-01-05T17:40:25Z heurist quit (Ping timeout: 244 seconds) 2015-01-05T17:40:45Z dim: a facility to add bytes to a binary stream (a sequence of unsigned bytes would do fine) 2015-01-05T17:40:56Z H4ns: dim: flexi-streams, why not? 2015-01-05T17:41:01Z dim: when it's done I could then compute its size and prepare a packet to be sent on the network 2015-01-05T17:41:06Z stassats`: dim: write-byte adds bytes to a binary stream 2015-01-05T17:41:28Z ejbs`` joined #lisp 2015-01-05T17:41:58Z stassats`: you want to make a buffer? 2015-01-05T17:42:16Z munksgaard joined #lisp 2015-01-05T17:42:48Z oudeis joined #lisp 2015-01-05T17:43:05Z dim: I'm not seeing how you create the stream in the first place... 2015-01-05T17:43:05Z dim: must be blind 2015-01-05T17:43:15Z ejbs` quit (Ping timeout: 264 seconds) 2015-01-05T17:43:25Z stassats`: using streams for buffers is a bad idea 2015-01-05T17:43:36Z Xach: dim: OPEN is one way 2015-01-05T17:43:39Z k-stz joined #lisp 2015-01-05T17:44:01Z pjb: dim: check com.informatimago.common-lisp.cesarum.stream:with-output-to-byte-vector 2015-01-05T17:44:23Z heurist joined #lisp 2015-01-05T17:44:28Z heurist quit (Changing host) 2015-01-05T17:44:28Z heurist joined #lisp 2015-01-05T17:44:46Z francogrex quit (Quit: Page closed) 2015-01-05T17:44:53Z serichsen quit (Quit: Lisp HH Stammtisch) 2015-01-05T17:45:55Z dim: stassats`: so what is a good way to fill-in a buffer you don't know the size of in advance? 2015-01-05T17:46:27Z BlueRavenGT joined #lisp 2015-01-05T17:46:35Z stassats`: just split it into several packets 2015-01-05T17:46:47Z stassats`: measure which buffer size provides the best performance 2015-01-05T17:47:23Z dim: build a list of small known-size vectors and concatenate them at the end? like we did in qmynd? 2015-01-05T17:47:56Z stassats`: you clearly don't want to disclose your specification 2015-01-05T17:48:51Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T17:49:03Z Bicyclidine quit (Ping timeout: 256 seconds) 2015-01-05T17:50:31Z dim: I don't want to bother everybody here 2015-01-05T17:50:51Z dim: but actually I'm making it worse, sorry 2015-01-05T17:50:53Z dim: I'm working on a subset of a MSSQL driver in pure CL 2015-01-05T17:51:06Z dim: I'm quite dissatisfied from the existing cl-mssql one, a CFFI over FreeTDS 2015-01-05T17:51:18Z dim: the shape of the protocol's documentation is... inexistant? 2015-01-05T17:52:54Z dim: my motivation is in two parts: 1. the ffi seems to get each resultset in memory before allowing me to proceed (might be a problem with SBCL tho), which is untenable as I will have tables bigger than memory to process and 2. the FreeTDS driver is lacking support for the Bulk COPY Query protocol, and hacking it looks more complex than writing login+BCP from scratch 2015-01-05T17:53:06Z EvW joined #lisp 2015-01-05T17:53:49Z dim: so I'm now working on the mssql login part, without docs, with only freetds implementation in C and packet capture 2015-01-05T17:54:31Z hekmek joined #lisp 2015-01-05T17:56:35Z nikki93_ joined #lisp 2015-01-05T17:56:39Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T17:56:47Z Xach: dim: http://msdn.microsoft.com/en-us/library/dd304523.aspx isn't any good? 2015-01-05T17:57:45Z Karl_Dscc joined #lisp 2015-01-05T17:58:01Z tkd quit (Quit: WeeChat 0.4.2) 2015-01-05T17:58:20Z tkd joined #lisp 2015-01-05T17:58:50Z nell quit (Quit: WeeChat 1.1-rc1) 2015-01-05T17:59:01Z Joreji quit (Ping timeout: 264 seconds) 2015-01-05T17:59:09Z dim: oh wow, failed to find that, might be exactly what I wanted, thanks 2015-01-05T18:00:04Z pt1 joined #lisp 2015-01-05T18:00:07Z Xach: I'm genuinely curious if it's any good. The html sucks a bit, hard to navigate. The PDF seems better. 2015-01-05T18:02:05Z Patzy quit (Ping timeout: 256 seconds) 2015-01-05T18:02:32Z dagnachew joined #lisp 2015-01-05T18:02:41Z Patzy joined #lisp 2015-01-05T18:03:48Z TrystamWrk is now known as TristamWrk 2015-01-05T18:04:23Z stassats`: make sure it supports all the versions 2015-01-05T18:04:31Z dim: yeah PDF is way better 2015-01-05T18:04:41Z antonv joined #lisp 2015-01-05T18:05:02Z ejbs``` joined #lisp 2015-01-05T18:05:22Z dim: stassats`: apparently the client can choose which version of the protocol it wants to speak, and then the server might be able to cope (or not), I'm yet to understand/find if a server typically has support for more than a single protocol version 2015-01-05T18:06:52Z ejbs`` quit (Ping timeout: 240 seconds) 2015-01-05T18:07:06Z dim:  » If the TDSVersion value sent by the client is lower than the highest TDS version the server recognizes, the server MUST use the TDS version sent by the client 2015-01-05T18:07:23Z dim: ok, so I can just implement the lowest protocol version and be done 2015-01-05T18:07:50Z pegu joined #lisp 2015-01-05T18:08:28Z Hache quit (Remote host closed the connection) 2015-01-05T18:10:17Z rtoym quit (Read error: Connection reset by peer) 2015-01-05T18:10:29Z Joreji joined #lisp 2015-01-05T18:10:31Z abbe quit (Read error: Connection reset by peer) 2015-01-05T18:10:33Z nell joined #lisp 2015-01-05T18:10:46Z rtoym joined #lisp 2015-01-05T18:10:55Z abbe joined #lisp 2015-01-05T18:11:29Z splittist quit (Read error: Connection reset by peer) 2015-01-05T18:11:48Z NhanH quit (Ping timeout: 265 seconds) 2015-01-05T18:11:48Z dxtr quit (Ping timeout: 265 seconds) 2015-01-05T18:11:54Z gluegadget quit (Read error: Connection reset by peer) 2015-01-05T18:11:54Z drmeister quit (Read error: Connection reset by peer) 2015-01-05T18:12:05Z superjudge quit (Read error: Connection reset by peer) 2015-01-05T18:12:05Z aksatac quit (Read error: Connection reset by peer) 2015-01-05T18:12:06Z drdanmaku quit (Read error: Connection reset by peer) 2015-01-05T18:12:07Z bb010g quit (Read error: Connection reset by peer) 2015-01-05T18:12:07Z Amaan quit (Read error: Network is unreachable) 2015-01-05T18:12:07Z ggherdov quit (Read error: Connection reset by peer) 2015-01-05T18:12:17Z chameco quit (Ping timeout: 265 seconds) 2015-01-05T18:12:24Z guaqua` joined #lisp 2015-01-05T18:12:30Z Xach: dim: now that i've browsed the doc, it seems like it would be pretty tricky to do it blind 2015-01-05T18:12:38Z lonjil quit (Quit: No Ping reply in 180 seconds.) 2015-01-05T18:12:46Z GGMethos quit (Ping timeout: 265 seconds) 2015-01-05T18:12:53Z stassats`: no braille? 2015-01-05T18:13:01Z dim: well I had the C implementation that I know works 2015-01-05T18:13:01Z dim: that's far from blind 2015-01-05T18:13:54Z dim: it might even be better than the docs, as I don't see anywhere in the docs the DB_QUERYOUT description of the protocol (like BCP but for select rather than insert) 2015-01-05T18:13:56Z lonjil joined #lisp 2015-01-05T18:14:12Z dim: docs are useful for the prelogin and login messages tho 2015-01-05T18:14:13Z foom quit (Ping timeout: 265 seconds) 2015-01-05T18:14:13Z rtra quit (Ping timeout: 265 seconds) 2015-01-05T18:14:13Z Riviera quit (Ping timeout: 265 seconds) 2015-01-05T18:14:13Z pchrist quit (Ping timeout: 265 seconds) 2015-01-05T18:14:17Z drdanmaku joined #lisp 2015-01-05T18:14:27Z dim: it's all a giant mess anyway 2015-01-05T18:14:42Z victor_lowther quit (Ping timeout: 265 seconds) 2015-01-05T18:14:48Z dim: (saith the trapped developper who didn't want to do that) 2015-01-05T18:15:02Z splittist joined #lisp 2015-01-05T18:15:02Z pt1 quit (Remote host closed the connection) 2015-01-05T18:15:07Z Joreji quit (Ping timeout: 256 seconds) 2015-01-05T18:15:10Z NhanH joined #lisp 2015-01-05T18:15:23Z gluegadget joined #lisp 2015-01-05T18:15:40Z guaqua quit (Ping timeout: 265 seconds) 2015-01-05T18:16:22Z Joreji joined #lisp 2015-01-05T18:16:27Z Riviera joined #lisp 2015-01-05T18:16:41Z rtra joined #lisp 2015-01-05T18:16:44Z victor_lowther joined #lisp 2015-01-05T18:16:48Z aksatac joined #lisp 2015-01-05T18:16:54Z superjudge joined #lisp 2015-01-05T18:17:06Z devon quit (Ping timeout: 244 seconds) 2015-01-05T18:17:06Z larme quit (Ping timeout: 244 seconds) 2015-01-05T18:17:37Z nightshade427 quit (Ping timeout: 244 seconds) 2015-01-05T18:17:38Z chameco joined #lisp 2015-01-05T18:18:28Z luis: drmeister: Hmm. If you're having git issues, maybe you should use pull requests instead. 2015-01-05T18:18:33Z reb joined #lisp 2015-01-05T18:18:46Z GGMethos joined #lisp 2015-01-05T18:18:48Z drmeister_ joined #lisp 2015-01-05T18:18:51Z foom joined #lisp 2015-01-05T18:19:00Z luis: And I or other SLIME maintainers can take care of merging and whatnot. 2015-01-05T18:19:06Z dxtr joined #lisp 2015-01-05T18:19:21Z ejbs```` joined #lisp 2015-01-05T18:19:54Z Amaan joined #lisp 2015-01-05T18:19:55Z pt1_ joined #lisp 2015-01-05T18:20:00Z stassats`: the merge didn't go well, but now drmeister_ doesn't need any more merges 2015-01-05T18:20:15Z bb010g joined #lisp 2015-01-05T18:20:22Z drmeister_ is now known as drmeister 2015-01-05T18:20:35Z ejbs``` quit (Remote host closed the connection) 2015-01-05T18:20:47Z attila_lendvai joined #lisp 2015-01-05T18:20:49Z luis: Hmm, OK... 2015-01-05T18:20:53Z Joreji quit (Read error: Connection reset by peer) 2015-01-05T18:20:56Z slyrus quit (Remote host closed the connection) 2015-01-05T18:21:03Z stassats`: it should be easily reverted 2015-01-05T18:21:14Z drmeister: stassats`: Did I do something wrong? Do you need anything from me at this point? 2015-01-05T18:21:39Z theseb quit (Quit: Leaving) 2015-01-05T18:22:02Z stassats`: you should have rebased first 2015-01-05T18:22:15Z scharan quit (Quit: WeeChat 0.4.2) 2015-01-05T18:22:18Z stassats`: but, one merge commit shouldn't be a problem 2015-01-05T18:22:18Z ered joined #lisp 2015-01-05T18:23:22Z nightshade427 joined #lisp 2015-01-05T18:23:28Z drmeister: Ah sh*t - sorry. 2015-01-05T18:23:34Z zacharias quit (Ping timeout: 245 seconds) 2015-01-05T18:23:37Z luis: I guess... It seemed more serious when looking at github's commit log. 2015-01-05T18:23:54Z stassats`: the diff for the merge commit is confusing 2015-01-05T18:24:17Z luis: Yep. 2015-01-05T18:24:31Z luis: Is it too late to rebase and force fush? 2015-01-05T18:24:43Z drmeister: When I work with git I feel sometimes like I'm driving a kit car, sitting on the engine, controlling the accelerator by pinching a hose. 2015-01-05T18:25:14Z stassats`: luis: i wouldn't bother 2015-01-05T18:25:14Z ggherdov joined #lisp 2015-01-05T18:25:26Z stassats`: it's been two hours 2015-01-05T18:25:47Z luis tries to control his OCD 2015-01-05T18:25:57Z luis: Okey. :-) 2015-01-05T18:26:01Z stassats`: force push should be against OCD 2015-01-05T18:26:09Z Joreji joined #lisp 2015-01-05T18:26:12Z drmeister: I just rebased slime on my end - is there anything I can do to help? 2015-01-05T18:26:26Z stassats`: drmeister: it's a minor "issue" 2015-01-05T18:26:57Z stassats`: so, don't worry about it, now you only need to modify the clasp.lisp, which shouldn't affect any other code 2015-01-05T18:27:10Z luis: But don't try to push that rebased branch! 2015-01-05T18:27:26Z stassats`: it'll fail to push 2015-01-05T18:27:48Z luis: And the natural action will be to git pull... 2015-01-05T18:27:50Z josemanuel joined #lisp 2015-01-05T18:28:12Z luis: (for a git newbie) 2015-01-05T18:28:24Z stassats`: drmeister: so, can i build clasp now and get slime working? 2015-01-05T18:29:04Z Joreji quit (Read error: Connection reset by peer) 2015-01-05T18:30:27Z luis: drmeister: so, get rid of that rebased branch, and create a new one based on origin/master 2015-01-05T18:30:32Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T18:30:57Z Bicyclidine joined #lisp 2015-01-05T18:31:56Z drmeister: luis: Can I achieve that by wiping out my submodule and then creating a new one? 2015-01-05T18:32:01Z nikki93_ quit (Read error: Connection reset by peer) 2015-01-05T18:32:05Z innertracks1 joined #lisp 2015-01-05T18:32:20Z nikki93 joined #lisp 2015-01-05T18:32:30Z drmeister: I should be able to do that. 2015-01-05T18:33:24Z dagnachew quit (Quit: WeeChat 1.0.1) 2015-01-05T18:34:08Z innertracks quit (Ping timeout: 250 seconds) 2015-01-05T18:35:08Z oudeis quit (Quit: This computer has gone to sleep) 2015-01-05T18:36:43Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-05T18:36:51Z innertracks joined #lisp 2015-01-05T18:36:55Z drmeister: Maybe you should disable my ability to push changes to SLIME and I'll fork it and submit pull requests. I don't want the damage anything. 2015-01-05T18:37:13Z stassats`: it's hard to damage things with git 2015-01-05T18:38:12Z dlowe: permanently, at least 2015-01-05T18:38:17Z innertracks1 quit (Ping timeout: 244 seconds) 2015-01-05T18:38:33Z stassats`: just don't forget to pull things before committing, or rebase when a push fails 2015-01-05T18:39:09Z stassats`: having several different repositories would be counterproductive 2015-01-05T18:40:12Z beach left #lisp 2015-01-05T18:40:49Z karswell` quit (Read error: Connection reset by peer) 2015-01-05T18:40:52Z innertracks quit (Ping timeout: 244 seconds) 2015-01-05T18:42:39Z nell quit (Quit: WeeChat 1.1-rc1) 2015-01-05T18:44:01Z pchrist joined #lisp 2015-01-05T18:44:16Z kcj joined #lisp 2015-01-05T18:44:29Z kcj quit (Changing host) 2015-01-05T18:44:30Z kcj joined #lisp 2015-01-05T18:44:30Z drmeister: Ok. 2015-01-05T18:44:34Z larme joined #lisp 2015-01-05T18:44:37Z innertracks joined #lisp 2015-01-05T18:44:44Z zadock joined #lisp 2015-01-05T18:45:39Z oudeis joined #lisp 2015-01-05T18:45:51Z dandersen joined #lisp 2015-01-05T18:46:03Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T18:51:43Z jdz quit (Ping timeout: 244 seconds) 2015-01-05T18:53:44Z jdz joined #lisp 2015-01-05T18:53:46Z |3b|: stassats`: i don't see anything about slime access anywhere in my account, so doesn't look like i can do anything with it either way 2015-01-05T18:54:01Z stassats`: ok, i'll cancel it then 2015-01-05T18:55:30Z stassats`: but did you want a commit bit or something? 2015-01-05T18:56:09Z adlai quit (Ping timeout: 250 seconds) 2015-01-05T18:57:30Z |3b| didn't ask for it, and not sure if i'd use it much... though i think i do have a few unmerged pull requests, so maybe i would if i ever got back to the code that used them 2015-01-05T18:59:18Z aleamb joined #lisp 2015-01-05T19:00:43Z jumblerg joined #lisp 2015-01-05T19:01:15Z s00pcan_ joined #lisp 2015-01-05T19:01:56Z s00pcan quit (Remote host closed the connection) 2015-01-05T19:02:46Z minion quit (Remote host closed the connection) 2015-01-05T19:03:09Z s00pcan joined #lisp 2015-01-05T19:03:23Z minion joined #lisp 2015-01-05T19:04:18Z Ainieco quit (Remote host closed the connection) 2015-01-05T19:05:15Z s00pcan__ joined #lisp 2015-01-05T19:05:20Z s00pcan quit (Read error: Connection reset by peer) 2015-01-05T19:08:20Z s00pcan__ quit (Remote host closed the connection) 2015-01-05T19:09:00Z karswell joined #lisp 2015-01-05T19:09:36Z josemanuel quit (Quit: Saliendo) 2015-01-05T19:10:17Z dagnachew joined #lisp 2015-01-05T19:10:20Z adlai joined #lisp 2015-01-05T19:14:30Z s00pcan joined #lisp 2015-01-05T19:18:18Z s00pcan quit (Remote host closed the connection) 2015-01-05T19:18:51Z hiyosi quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T19:19:44Z s00pcan joined #lisp 2015-01-05T19:20:59Z exm joined #lisp 2015-01-05T19:21:29Z kcj quit (Remote host closed the connection) 2015-01-05T19:23:41Z tesuji quit (Ping timeout: 256 seconds) 2015-01-05T19:24:25Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T19:28:45Z pnpuff joined #lisp 2015-01-05T19:30:02Z aleamb quit (Quit: Exiting...) 2015-01-05T19:31:05Z psy quit (Disconnected by services) 2015-01-05T19:31:09Z s00pcan quit (Remote host closed the connection) 2015-01-05T19:31:49Z psy_ joined #lisp 2015-01-05T19:33:14Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T19:33:30Z nikki93 joined #lisp 2015-01-05T19:37:01Z pnpuff left #lisp 2015-01-05T19:37:15Z s00pcan joined #lisp 2015-01-05T19:37:51Z s00pcan quit (Read error: Connection reset by peer) 2015-01-05T19:38:08Z s00pcan joined #lisp 2015-01-05T19:39:49Z bgs100 joined #lisp 2015-01-05T19:41:52Z mrkkrp left #lisp 2015-01-05T19:42:52Z TristamWrk quit (Quit: Some days you're the pigeon, some days the statue...) 2015-01-05T19:43:10Z EvW joined #lisp 2015-01-05T19:43:47Z s00pcan_ quit (Read error: No route to host) 2015-01-05T19:43:55Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T19:45:48Z jumblerg joined #lisp 2015-01-05T19:46:07Z dagnachew quit (Quit: WeeChat 1.0.1) 2015-01-05T19:48:55Z s00pcan_ joined #lisp 2015-01-05T19:49:02Z TristamWrk joined #lisp 2015-01-05T19:49:55Z zadock quit (Quit: Leaving) 2015-01-05T19:52:07Z Karl_Dscc joined #lisp 2015-01-05T19:52:14Z eudoxia joined #lisp 2015-01-05T19:56:47Z pt1_ quit (Remote host closed the connection) 2015-01-05T19:57:21Z pt1 joined #lisp 2015-01-05T19:57:46Z exm quit (Quit: Leaving.) 2015-01-05T19:58:49Z drmeister: stassats`: Give me another two days to get out a new release of clasp that supports SLIME. 2015-01-05T19:58:59Z stassats`: ok 2015-01-05T20:02:00Z pt1 quit (Ping timeout: 265 seconds) 2015-01-05T20:03:11Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T20:04:50Z alejandrozf joined #lisp 2015-01-05T20:06:07Z pnpuff joined #lisp 2015-01-05T20:06:26Z dagnachew joined #lisp 2015-01-05T20:07:04Z _m___ quit (Remote host closed the connection) 2015-01-05T20:09:22Z ebrasca joined #lisp 2015-01-05T20:11:31Z oudeis quit (Quit: This computer has gone to sleep) 2015-01-05T20:13:01Z alejandrozf left #lisp 2015-01-05T20:14:53Z banjara quit (Quit: Leaving.) 2015-01-05T20:15:53Z banjara joined #lisp 2015-01-05T20:16:43Z nell joined #lisp 2015-01-05T20:17:37Z banjara quit (Client Quit) 2015-01-05T20:19:25Z jumblerg joined #lisp 2015-01-05T20:21:48Z rpg joined #lisp 2015-01-05T20:23:22Z stassats` quit (Ping timeout: 244 seconds) 2015-01-05T20:25:06Z JuanDaugherty quit (Remote host closed the connection) 2015-01-05T20:26:46Z theseb joined #lisp 2015-01-05T20:27:09Z urandom__ joined #lisp 2015-01-05T20:28:16Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-01-05T20:28:19Z dagnachew quit (Quit: WeeChat 1.0.1) 2015-01-05T20:29:35Z innertracks quit (Quit: innertracks) 2015-01-05T20:30:20Z fragamus quit (Quit: Computer has gone to sleep.) 2015-01-05T20:31:12Z exm joined #lisp 2015-01-05T20:34:42Z oudeis joined #lisp 2015-01-05T20:39:05Z Beetny joined #lisp 2015-01-05T20:41:51Z vdamewood quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-01-05T20:42:39Z ebrasca: Why is better write "first,second..." than "car,cdr..."? 2015-01-05T20:43:19Z pnpuff left #lisp 2015-01-05T20:43:20Z Bicyclidine: makes more sense to readers, if you really mean second 2015-01-05T20:45:56Z aftershave quit (Quit: Textual IRC Client: www.textualapp.com) 2015-01-05T20:46:41Z karswell quit (Read error: Connection reset by peer) 2015-01-05T20:47:35Z karswell joined #lisp 2015-01-05T20:47:53Z ebrasca: How to decide whether to use "car" or "fisrt"? 2015-01-05T20:48:08Z Bicyclidine: whether you're dealing with conses as conses or as lists 2015-01-05T20:48:29Z Grue`` quit (Ping timeout: 244 seconds) 2015-01-05T20:51:18Z pjb quit (Ping timeout: 265 seconds) 2015-01-05T20:52:53Z PuercoPop: ebrasca: btw second is not equivalent to cdr but the cadr 2015-01-05T20:57:25Z jtza8 joined #lisp 2015-01-05T20:58:56Z Ethan- joined #lisp 2015-01-05T20:59:38Z ebrasca: What Coding Conventiond is better(http://www.cliki.net/coding%20convention)? 2015-01-05T21:00:05Z pjb joined #lisp 2015-01-05T21:00:23Z ggole quit 2015-01-05T21:00:36Z ebrasca: One say 70 caracter for line and google say 100 2015-01-05T21:04:34Z ebrasca: Bicyclidine: thx for help 2015-01-05T21:08:57Z hiroakip joined #lisp 2015-01-05T21:10:07Z ebrasca: PuercoPop: Thanks for the warning 2015-01-05T21:12:46Z jtza8 quit (Remote host closed the connection) 2015-01-05T21:14:00Z fiveop joined #lisp 2015-01-05T21:15:52Z EvW quit (Ping timeout: 244 seconds) 2015-01-05T21:15:55Z jackdaniel: ebrasca: 70-80 is agreed in most languages 2015-01-05T21:15:59Z jackdaniel: i would stick to 70 2015-01-05T21:16:37Z jackdaniel: and i can put two buffers with 76 characters side by side on my tf101 ;-) 2015-01-05T21:17:23Z dlowe: 100 works fine, especially with long lispy names for things 2015-01-05T21:17:27Z nikki93: what's the convention on docstring format? do you use CAPS in docstrings when referring to variables? 2015-01-05T21:17:33Z Shinmera: I don't understand this 70 characters rule when all screens support much bigger lengths nowadays. 2015-01-05T21:17:37Z Xach: nikki93: I do. 2015-01-05T21:17:38Z foom: Small #s of columns is more annoying to write (unless you have an code auto-formatter, e.g. clang-format for C++). 2015-01-05T21:17:53Z nikki93: Xach: is there a place with these guidelines somewhere 2015-01-05T21:18:01Z Xach: nikki93: I don't think so. 2015-01-05T21:18:14Z nikki93: Xach: did you just pick that up from the CLHS or such 2015-01-05T21:18:15Z Xach: nikki93: embedded in source code, I guess. 2015-01-05T21:18:24Z Xach: nikki93: I don't remember where I picked it up, sorry. 2015-01-05T21:18:37Z nikki93: hehe 2015-01-05T21:18:39Z Shinmera: Symbols being uppercase by default might be it. 2015-01-05T21:19:43Z foom: The google style guide does contain that docstring convention (probably inserted by scott mckay). It's a long-standing convention in CL, at least for some. 2015-01-05T21:25:33Z dagnachew joined #lisp 2015-01-05T21:25:59Z AeroNotix: Shinmera: a convention is better than no convention 2015-01-05T21:26:58Z Shinmera: AeroNotix: In the case of line widths, I disagree. 2015-01-05T21:27:12Z AeroNotix: Shinmera: ok 2015-01-05T21:28:28Z nikki93: 80 is nice because I can put many columns of code next to each other 2015-01-05T21:28:54Z nikki93: on a laptop like the macbook air or such 2015-01-05T21:30:06Z Xach prints code out to read, often four pages to a page 2015-01-05T21:33:28Z fiveop quit (Remote host closed the connection) 2015-01-05T21:34:02Z minion quit (Ping timeout: 245 seconds) 2015-01-05T21:34:08Z xyh joined #lisp 2015-01-05T21:34:22Z specbot quit (Ping timeout: 240 seconds) 2015-01-05T21:34:48Z xyh: I should change current-path by (setf *default-pathname-defaults* ...) ? 2015-01-05T21:35:31Z Shinmera: What do you mean by "current path"? 2015-01-05T21:35:41Z Shinmera: Current path of what? 2015-01-05T21:37:10Z xyh: of repl 2015-01-05T21:39:14Z Xach: xyh: that will affect how relative names are resolved, yes. 2015-01-05T21:39:38Z fantazo joined #lisp 2015-01-05T21:40:46Z xyh: ok, I ll try to write a shell in common lisp, and switch to it when I need to change current path, and switch back to relp after then. 2015-01-05T21:42:44Z Xach: *default-pathname-defaults* is not like a unix process's working directory. 2015-01-05T21:43:08Z Xach: it similar, but not the same, i guess. 2015-01-05T21:43:16Z tadni joined #lisp 2015-01-05T21:43:46Z Shinmera: If you want to change the actual working directory of the process, look at UIOP:CHDIR (and UIOP:GETCWD) 2015-01-05T21:44:50Z xyh: sure, thx 2015-01-05T21:47:01Z nikki93 quit (Ping timeout: 264 seconds) 2015-01-05T21:50:35Z ehu joined #lisp 2015-01-05T21:51:37Z Xach: xyh: that is an interesting project. what prompted the idea? 2015-01-05T21:52:51Z Shinmera: I made some shell-like functions out of boredom at some point. http://plaster.tymoon.eu/view/5D 2015-01-05T21:54:18Z nikki93 joined #lisp 2015-01-05T21:54:37Z Lowl3v3l quit (Ping timeout: 244 seconds) 2015-01-05T21:55:32Z ejbs````` joined #lisp 2015-01-05T21:57:06Z gravicappa quit (Remote host closed the connection) 2015-01-05T21:57:22Z ejbs```` quit (Ping timeout: 240 seconds) 2015-01-05T22:00:33Z xyh: Xach: it ll be something like eshell, but much better :) I ll push it to github when I complete a baby version. I would like to re-use Shinmera's code if needed. 2015-01-05T22:00:50Z xyh: Shinmera: ok ? 2015-01-05T22:01:10Z Xach: darn, i don't know anything about eshell. 2015-01-05T22:01:12Z Shinmera: Well it's not really code I'd recommend just taking over as it was quickly thrown together, but sure, take what you find useful. 2015-01-05T22:02:18Z xyh: Xach: eshell is a shell in emacs, writen in emacs lisp 2015-01-05T22:02:39Z pt1 joined #lisp 2015-01-05T22:02:57Z Krystof: eshell is wiegleyware 2015-01-05T22:03:09Z Krystof: fun and challenging 2015-01-05T22:06:07Z xyh: Krystof: I know wiegley, but wiegleyware is an adjective !!?? 2015-01-05T22:06:45Z drmeister: Xach: Sorry, quicklisp in implementation "Clasp" is not supported yet 2015-01-05T22:07:11Z drmeister: Xach: May I pick your brains for a few minutes? 2015-01-05T22:07:21Z drmeister: Or some other time is fine as well. 2015-01-05T22:07:48Z hekmek quit (Quit: Verlassend) 2015-01-05T22:08:33Z Krystof: noun, as in "stuff made by wiegley" 2015-01-05T22:10:15Z hiroakip quit (Ping timeout: 264 seconds) 2015-01-05T22:11:12Z drmeister: Xach: To add support for clasp within quicklisp - would it work to just duplicate everything in quicklisp.lisp that refers to "ecl" and change it to "clasp"? I've worked hard to make clasp present a lot of the same implementation dependent functionality as ecl to facilitate the use of the ecl Common Lisp source code within clasp. 2015-01-05T22:11:30Z dim: Wiegleyware, nice, didn't realize the guy was that prolific 2015-01-05T22:11:33Z thawes quit (Remote host closed the connection) 2015-01-05T22:11:39Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T22:11:54Z nikki93 joined #lisp 2015-01-05T22:14:10Z hiroakip joined #lisp 2015-01-05T22:15:26Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T22:15:38Z nikki93 joined #lisp 2015-01-05T22:18:11Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T22:18:20Z nikki93 joined #lisp 2015-01-05T22:19:42Z keen__________23 quit (Read error: Connection reset by peer) 2015-01-05T22:22:38Z Quadrescence joined #lisp 2015-01-05T22:22:39Z keen__________23 joined #lisp 2015-01-05T22:25:52Z hardenedapple quit (Quit: WeeChat 1.0.1) 2015-01-05T22:26:36Z jumblerg joined #lisp 2015-01-05T22:28:12Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T22:29:12Z nikki93 joined #lisp 2015-01-05T22:30:34Z vaporatorius quit (Quit: Leaving) 2015-01-05T22:31:37Z nikki93 quit (Read error: Connection reset by peer) 2015-01-05T22:31:42Z nikki93_ joined #lisp 2015-01-05T22:31:44Z Xach: drmeister: yes, that should do. 2015-01-05T22:33:58Z Xach: drmeister: you might check the git history for a patch from the mkcl fella. it would probably be a very similar operation. 2015-01-05T22:35:14Z gingerale quit (Ping timeout: 245 seconds) 2015-01-05T22:43:09Z robot-beethoven joined #lisp 2015-01-05T22:43:31Z francogrex joined #lisp 2015-01-05T22:46:29Z ejbs````` quit (Ping timeout: 244 seconds) 2015-01-05T22:50:55Z Adlai` joined #lisp 2015-01-05T22:51:28Z Xach: unexpected benefit of the corman news today: got word from the chestnut lisp maintainer that he would very much like to do the same in the near-ish future 2015-01-05T22:53:01Z ehu quit (Ping timeout: 264 seconds) 2015-01-05T22:53:11Z adlai quit (Ping timeout: 250 seconds) 2015-01-05T22:56:40Z dandersen quit (Read error: Connection reset by peer) 2015-01-05T22:56:46Z dandersen joined #lisp 2015-01-05T22:59:54Z wheelsucker quit (Quit: Client Quit) 2015-01-05T23:01:53Z dim: oh wow 2015-01-05T23:02:11Z dim: it used to be so easy picking an implementation... (*cough*) 2015-01-05T23:02:56Z LiamH: What is chestnut lisp? 2015-01-05T23:03:07Z exm: https://groups.google.com/forum/#!msg/comp.lang.lisp/nYMJWmpkToY/fgtu8zkHxYgJ 2015-01-05T23:03:11Z Xach: LiamH: it's a Lisp->C translator that has been used for some large projects 2015-01-05T23:04:04Z Xach: neat, i worked with andy latto for a while, didn't know he did chestnut lisp stuff 2015-01-05T23:05:04Z LiamH: Subset of ANSI CL? 2015-01-05T23:05:17Z nyef: ... This rings a vague bell. Neat. 2015-01-05T23:06:17Z LiamH: If I read that post correctly, Oracle owns the rights to it. I'm skeptical that they would release it as open source. 2015-01-05T23:07:07Z LiamH: But the concept is really appealing, produce a readable/maintainable C translation of Lisp code. 2015-01-05T23:08:58Z francogrex quit (Remote host closed the connection) 2015-01-05T23:09:55Z Xach: LiamH: that post is old. i have new info from the horse's mouth. 2015-01-05T23:10:05Z Xach: no timetable, but encouraging info 2015-01-05T23:10:22Z hiroakip quit (Ping timeout: 240 seconds) 2015-01-05T23:11:24Z LiamH: Xach: well, good. It seems you are the coordinator of lisp project reanimation. 2015-01-05T23:12:35Z Xach wonders about gold hill 2015-01-05T23:13:31Z hiroakip joined #lisp 2015-01-05T23:14:28Z LiamH: Symbolics would be fun to have, but imagine no one would be up to porting that to modern hardware. 2015-01-05T23:14:52Z nyef: LiamH: Already been done, remember the VLM and snap4? 2015-01-05T23:15:06Z LiamH: nyef: no, I'm out of the loop 2015-01-05T23:15:22Z nyef: This is a fairly long loop, then. 2015-01-05T23:16:05Z LiamH lost track of Symbolics software after hauling his 3650 to the dump more than a decade ago. 2015-01-05T23:16:25Z nyef: Symbolics themselves ported their system to Alpha CPUs. More recently (eight years ago or so?) someone (Brad Parker?) took their translator and bodged together an x86-64/linux version. 2015-01-05T23:17:05Z LiamH: I was aware of the alpha port, but didn't know about the other x86-64 version. 2015-01-05T23:17:31Z arrdem: nyef: any details on that x86 version? I was aware of the alpha port but nothing more recent. 2015-01-05T23:17:34Z nikki93_ quit (Remote host closed the connection) 2015-01-05T23:17:34Z LiamH: er, choose one of "other" or "x86-64" 2015-01-05T23:18:11Z nikki93 joined #lisp 2015-01-05T23:18:51Z ejbs joined #lisp 2015-01-05T23:18:56Z LiamH: I still have one full three-foot bookshelf with Symbolics manuals on it. Can't bring myself to chuck them. 2015-01-05T23:19:19Z nyef: LiamH: Chuck 'em to a software preservationist with a book scanner? 2015-01-05T23:19:39Z LiamH: nyef: ... and a lot of time 2015-01-05T23:19:50Z nyef: Good book scanners are automated. 2015-01-05T23:20:11Z LiamH: There are PDF versions of them somewhere, but I don't have them. 2015-01-05T23:20:21Z nyef: Okay, fair enough then. 2015-01-05T23:21:49Z LiamH: Now I'm thinking that we did have a CD with manuals on it, but that has certainly been lost in multiple building moves. Yet I moved the paper manuals. Grrr. 2015-01-05T23:22:36Z nyef: CDs are easier to lose track of. 2015-01-05T23:22:44Z nikki93 quit (Ping timeout: 250 seconds) 2015-01-05T23:22:47Z nyef: Unless you have far, far more books than you have CDs. 2015-01-05T23:23:00Z LiamH: Yes, precisely. I was going to say "Paper wins because of bulk" but that sounds so odd. 2015-01-05T23:23:58Z rme joined #lisp 2015-01-05T23:23:59Z LiamH: I do have many more books than CDs, but CDs are still losable. 2015-01-05T23:24:16Z foom: aren't they already online in PDF form? 2015-01-05T23:24:17Z foom: surely? 2015-01-05T23:24:27Z ejbs: Let's say that I create some new funcallable instance, defined by utilising the MOP, and I try to FUNCALL it. Do I have to define myself what kind of lambda list the instance accepts or is that fixed? 2015-01-05T23:24:38Z ejbs is unsure if the question even makes sense 2015-01-05T23:25:26Z nikki93 joined #lisp 2015-01-05T23:25:44Z LiamH: So it looks like symbolics.com is just a generic advertising site, nothing about Symbolics or manuals. 2015-01-05T23:25:56Z rme: try symbolics-dks.com 2015-01-05T23:26:12Z LiamH: don't tell me, ... 2015-01-05T23:26:34Z LiamH: Hah! it is, David Schmidt, our former sales rep. 2015-01-05T23:26:40Z rme: It totally is. 2015-01-05T23:27:38Z foom: symbolics.com isn't *quite* a generic advertising site; it does pay homage to the original symbolics in the about page 2015-01-05T23:28:00Z LiamH: foom: true 2015-01-05T23:28:11Z WarWeasle joined #lisp 2015-01-05T23:28:19Z ejbs: Disreard my question, read this: http://www.alu.org/mop/concepts.html#funcallable-instances 2015-01-05T23:28:42Z Shinmera: ejbs: I was about to link you that, but hesitated because I assumed you had already read it. 2015-01-05T23:29:13Z LiamH: The symbolics-dks site looks old. They still sell software that runs on Alpha based workstations running Tru64 Unix? 2015-01-05T23:29:52Z rme: We (Clozure) have actually done some work on an x86-64 VLM. (I don't think that's a secret.) You might be able to buy it from Symbolics for some high price. 2015-01-05T23:30:37Z urandom__ quit (Quit: Konversation terminated!) 2015-01-05T23:30:38Z ejbs: Shinmera: Yeah, I was stuck looking through the dictionary. Sloppy of me :/ 2015-01-05T23:31:12Z LiamH: rme: Interesting, is it Symbolics CL, or CCL, or neither? 2015-01-05T23:31:57Z cods quit (Ping timeout: 245 seconds) 2015-01-05T23:32:44Z rme: It's the VLM that ran on the Alpha, ported to run on x86_64. (It's not based on the snap4 thing that's running around out there.) 2015-01-05T23:32:46Z foom: http://www.cliki.net/VLM_on_Linux 2015-01-05T23:33:01Z foom: i guess that's the old one that isn't the one you're talking about. ;0 2015-01-05T23:33:08Z hiroakip quit (Ping timeout: 250 seconds) 2015-01-05T23:33:22Z Karl_Dscc quit (Remote host closed the connection) 2015-01-05T23:35:04Z rme can't decide how to write x86-64, x86_64, x8664, ... 2015-01-05T23:35:08Z foom: amd64 2015-01-05T23:36:15Z WarWeasle quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2015-01-05T23:36:15Z hiroakip joined #lisp 2015-01-05T23:36:17Z ejbs` joined #lisp 2015-01-05T23:36:21Z slyrus joined #lisp 2015-01-05T23:37:03Z WarWeasle joined #lisp 2015-01-05T23:37:49Z rpg quit (Quit: rpg) 2015-01-05T23:38:11Z eudoxia quit (Quit: Leaving) 2015-01-05T23:38:20Z ejbs quit (Ping timeout: 250 seconds) 2015-01-05T23:40:24Z defaultxr joined #lisp 2015-01-05T23:41:50Z mrSpec quit (Remote host closed the connection) 2015-01-05T23:42:16Z dandersen1 joined #lisp 2015-01-05T23:42:55Z innertracks joined #lisp 2015-01-05T23:43:22Z dandersen quit (Read error: Connection reset by peer) 2015-01-05T23:43:47Z rk[1] quit (Read error: Connection reset by peer) 2015-01-05T23:45:08Z hiyosi joined #lisp 2015-01-05T23:45:37Z rpg joined #lisp 2015-01-05T23:46:40Z yrk quit (Quit: ERC (IRC client for Emacs 25.0.50.1)) 2015-01-05T23:57:44Z jleija joined #lisp