2015-03-07T00:01:11Z Bicyclidine joined #lisp 2015-03-07T00:02:11Z johann joined #lisp 2015-03-07T00:02:49Z stepnem quit (Ping timeout: 264 seconds) 2015-03-07T00:03:34Z tajjada quit (Quit: leaving) 2015-03-07T00:03:36Z jikanter quit (Quit: Leaving.) 2015-03-07T00:04:23Z badkins quit (Ping timeout: 240 seconds) 2015-03-07T00:04:26Z a2015 quit (Quit: Page closed) 2015-03-07T00:05:20Z zyaku joined #lisp 2015-03-07T00:12:37Z sol__ joined #lisp 2015-03-07T00:16:59Z nalssee joined #lisp 2015-03-07T00:22:01Z nalssee quit (Ping timeout: 264 seconds) 2015-03-07T00:22:32Z pillton: mop defmethod 2015-03-07T00:22:32Z specbot: Couldn't find anything for defmethod. 2015-03-07T00:22:47Z pillton: mop make-method-lambda 2015-03-07T00:22:47Z specbot: http://metamodular.com/CLOS-MOP/make-method-lambda.html 2015-03-07T00:28:43Z Ethan- joined #lisp 2015-03-07T00:28:43Z didpul_ quit (Ping timeout: 252 seconds) 2015-03-07T00:30:00Z didpul_ joined #lisp 2015-03-07T00:30:38Z vaporatorius quit (Remote host closed the connection) 2015-03-07T00:32:54Z boogie joined #lisp 2015-03-07T00:34:00Z Ethan- quit (Ping timeout: 252 seconds) 2015-03-07T00:34:02Z netABCs joined #lisp 2015-03-07T00:34:45Z yaewa joined #lisp 2015-03-07T00:35:05Z Ethan- joined #lisp 2015-03-07T00:35:28Z clop quit (Quit: Leaving) 2015-03-07T00:35:47Z cadadar quit (Quit: Leaving.) 2015-03-07T00:36:44Z moei quit (Ping timeout: 272 seconds) 2015-03-07T00:38:59Z linux_dream quit (Quit: Leaving) 2015-03-07T00:40:36Z Ethan- quit (Ping timeout: 252 seconds) 2015-03-07T00:40:37Z netABCs quit (Ping timeout: 252 seconds) 2015-03-07T00:41:23Z Ethan- joined #lisp 2015-03-07T00:41:33Z harish quit (Ping timeout: 265 seconds) 2015-03-07T00:43:13Z dziegler_ quit (Remote host closed the connection) 2015-03-07T00:45:09Z Mon_Ouie quit (Ping timeout: 250 seconds) 2015-03-07T00:45:27Z boogie quit (Remote host closed the connection) 2015-03-07T00:45:41Z a2015 joined #lisp 2015-03-07T00:48:16Z munksgaard quit (Ping timeout: 255 seconds) 2015-03-07T00:49:55Z rm200910 quit (Remote host closed the connection) 2015-03-07T00:50:01Z linux_dream joined #lisp 2015-03-07T00:50:48Z sebboh: re: picolisp on a microcontroller, search the web for "pilMCU". re: is picolisp a subset of common lisp, no. I am a newbie on this subject, but I think it's a little hand-optimized virtual machine that is ideal for running the opinionated lisp that was developed along side it. It's an absolute pleasure to work with. CL is a battleship; picolisp is a hang glider. The world needs both. 2015-03-07T00:51:37Z clintm: "Anyone who wants to learn CL well should read The Art of Metaobject Protocol." Confirm/Deny? $40 is a lot of money to me atm, but if the consensus is that it's worth it, then it's worth it. 2015-03-07T00:51:39Z sebboh: Oh, in addition to the pilMCU thing, there was somebody on the mailing list running picolisp on some.. AT mega thing? The whole interpreter, as I understand it. 2015-03-07T00:52:14Z d4ryus_ is now known as d4ryus 2015-03-07T00:52:23Z clintm: s/learn CL well/understand all that CL has to offer/ perhaps. 2015-03-07T00:53:02Z sebboh: clintm: sorry for burying your question, I was responding to an earlier conversation and didn't see you. :) 2015-03-07T00:53:18Z clintm: Not a problem. There's room for everyone :) 2015-03-07T00:53:32Z didpul_ quit (Ping timeout: 246 seconds) 2015-03-07T00:55:03Z pillton: clintm: I learnt a lot from the AMOP book. I would only recommend reading it if you are interested in developing a complicated syntax. 2015-03-07T00:56:27Z sol__: hi, i want to use clos objects as hash table keys - what should i provide as the :test function? 2015-03-07T00:56:56Z clintm: pillton: I sent the question, thought about it for a second, and then bought it. Hehe. 2015-03-07T00:58:09Z pillton: clintm: No worries. It is a good book. It will force you to ask a lot of questions. 2015-03-07T00:58:33Z pillton: clintm: Not all about CLOS. 2015-03-07T00:59:38Z pillton: pillton: Sorry, I didn't answer your question earlier. I was actually reading my copy. :) 2015-03-07T00:59:54Z pillton: Bah 2015-03-07T00:59:59Z pillton: That was for clintm. 2015-03-07T01:03:41Z linux_dream: hey guys. for common lisp under emacs+slime, is it possible to write CL code in a buffer and get the output/execution in the slime repl? or do I have to manually type the CL code in the slime repl? 2015-03-07T01:04:23Z isoraqathedh: C-c C-c will compile the current top-level form your cursor is on and put into the lisp, I think. 2015-03-07T01:05:00Z akkad: yeah it's weird 2015-03-07T01:05:06Z akkad: like slime-eval-buffer 2015-03-07T01:05:12Z akkad: vs C-c C-c 2015-03-07T01:05:22Z Karl_Dscc quit (Remote host closed the connection) 2015-03-07T01:07:13Z linux_dream: weird, I get ; compiling (+ 1 ...) in the repl 2015-03-07T01:07:23Z linux_dream: my test.lisp file is (+ 1 2) 2015-03-07T01:07:33Z linux_dream: it doesn't get evaluated 2015-03-07T01:09:04Z linux_dream: nevermind it actually does I Guess. just have to print it 2015-03-07T01:09:25Z didpul_ joined #lisp 2015-03-07T01:09:30Z nikki93_ joined #lisp 2015-03-07T01:10:41Z nikki93_ quit (Remote host closed the connection) 2015-03-07T01:10:50Z bgs100 joined #lisp 2015-03-07T01:14:42Z sol__ quit (Ping timeout: 252 seconds) 2015-03-07T01:15:53Z zyaku quit (Ping timeout: 240 seconds) 2015-03-07T01:16:32Z pjb: minion: memo for sol__: the three conforming hash-table tests functions possible resolve to the same semantics for CLOS objects. You may use any of them, but it'll be the same as the default of EQL. 2015-03-07T01:16:32Z minion: Remembered. I'll tell sol__ when he/she/it next speaks. 2015-03-07T01:24:47Z karswell quit (Remote host closed the connection) 2015-03-07T01:25:36Z karswell joined #lisp 2015-03-07T01:31:19Z mordocai joined #lisp 2015-03-07T01:32:52Z Bicyclidine quit (Quit: leaving) 2015-03-07T01:35:21Z ajtulloc_ joined #lisp 2015-03-07T01:38:23Z ajtulloch quit (Ping timeout: 252 seconds) 2015-03-07T01:49:32Z harish joined #lisp 2015-03-07T01:53:30Z jasom: How long will ql:update-dist take at 1.2kB/s 2015-03-07T01:54:41Z nikki93_ joined #lisp 2015-03-07T01:57:14Z johann quit (Remote host closed the connection) 2015-03-07T01:57:36Z linux_dream quit (Quit: Leaving) 2015-03-07T01:57:47Z johann joined #lisp 2015-03-07T02:01:16Z kbtr quit (Remote host closed the connection) 2015-03-07T02:02:17Z johann quit (Ping timeout: 250 seconds) 2015-03-07T02:02:50Z nikki93_ quit (Remote host closed the connection) 2015-03-07T02:03:25Z enn quit (Remote host closed the connection) 2015-03-07T02:05:17Z defaultxr joined #lisp 2015-03-07T02:06:04Z nalssee joined #lisp 2015-03-07T02:10:11Z nalssee quit (Ping timeout: 246 seconds) 2015-03-07T02:11:46Z modula joined #lisp 2015-03-07T02:13:44Z {0}grant joined #lisp 2015-03-07T02:14:13Z defaultxr quit (Ping timeout: 264 seconds) 2015-03-07T02:14:13Z modula is now known as defaultxr 2015-03-07T02:21:12Z eschatologist joined #lisp 2015-03-07T02:22:48Z Beetny_ joined #lisp 2015-03-07T02:24:26Z netABCs joined #lisp 2015-03-07T02:29:09Z netABCs quit (Ping timeout: 246 seconds) 2015-03-07T02:31:28Z netABCs joined #lisp 2015-03-07T02:42:46Z heurist`_ quit (Ping timeout: 272 seconds) 2015-03-07T02:48:34Z ajtulloc_ quit (Remote host closed the connection) 2015-03-07T02:49:44Z ajtulloch joined #lisp 2015-03-07T02:51:55Z jleija joined #lisp 2015-03-07T02:52:02Z a2015 quit (Quit: Page closed) 2015-03-07T02:54:24Z zyaku joined #lisp 2015-03-07T02:57:16Z ajtulloch quit (Read error: Connection reset by peer) 2015-03-07T02:57:40Z ajtulloch joined #lisp 2015-03-07T02:58:05Z johann joined #lisp 2015-03-07T03:02:50Z a2015 joined #lisp 2015-03-07T03:03:40Z johann quit (Ping timeout: 272 seconds) 2015-03-07T03:05:30Z paroneayea quit (Read error: Connection reset by peer) 2015-03-07T03:06:05Z paroneayea joined #lisp 2015-03-07T03:09:09Z axion: how can i loop through a list of integers collecting 3 of them, and repeat? 2015-03-07T03:09:24Z heurist`_ joined #lisp 2015-03-07T03:11:16Z j0nii quit (Ping timeout: 256 seconds) 2015-03-07T03:11:43Z qubitnerd joined #lisp 2015-03-07T03:12:36Z Xach: axion: (loop for (a b c) on list by #'cdddr collect (list a b c)) seems plausible 2015-03-07T03:13:33Z axion: thank you Xach 2015-03-07T03:16:59Z sysfault joined #lisp 2015-03-07T03:18:22Z ajtulloc_ joined #lisp 2015-03-07T03:19:51Z beach joined #lisp 2015-03-07T03:19:59Z beach: Good morning everyone! 2015-03-07T03:20:19Z axion: Xach: oops...i was wrong. a vector, not a list 2015-03-07T03:21:04Z axion: heya beach 2015-03-07T03:21:53Z sdothum quit (Remote host closed the connection) 2015-03-07T03:22:09Z ajtulloch quit (Ping timeout: 252 seconds) 2015-03-07T03:22:53Z ajtulloc_ quit (Ping timeout: 252 seconds) 2015-03-07T03:23:42Z drmeister: beach: Hi 2015-03-07T03:23:58Z drmeister: I can compile 7% of ASDF before it craps out with some problem or other. 2015-03-07T03:24:22Z beach: Is that good or bad? 2015-03-07T03:25:02Z drmeister: Well, I'm a file half compiled kind of guy. 2015-03-07T03:25:56Z drmeister: I'm just trying to sort out what the problem is. A function is being called with the incorrect number of arguments. 2015-03-07T03:26:12Z beach: I see. 2015-03-07T03:26:16Z drmeister: I'm not sure which one because my backtraces are less than illuminating some times. 2015-03-07T03:26:19Z beach: I'll study your questions (by email) in a minute. I am not quite awake yet. 2015-03-07T03:26:34Z beach: Yes, I think I have seen that in the past. 2015-03-07T03:26:39Z beach: (lambda (lambda (lambda ....) 2015-03-07T03:26:51Z drmeister: It seems to be when ASDF uses its DEFINE-PACKAGE macro for the first time - something to do with macro expansion I think. 2015-03-07T03:27:34Z beach: Hmm. OK. 2015-03-07T03:27:35Z drmeister: Yeah - I don't know what's up with that - I spent a couple of hours trying to track it down before I decided to just push forward - it seems harmless. 2015-03-07T03:28:03Z drmeister: Something wrong with the printer - it only shows up in those error messages. 2015-03-07T03:28:13Z beach: Weird. 2015-03-07T03:28:23Z mordocai quit (Ping timeout: 240 seconds) 2015-03-07T03:28:51Z drmeister: When the going gets weird the weird turn pro. 2015-03-07T03:29:34Z beach: So if you are attempting to compile ASDF with Clasp/Cleavir that means you are very close to a working compiler, right? 2015-03-07T03:29:43Z drmeister: Yes. 2015-03-07T03:30:06Z drmeister: I was able to compile the first Clasp Common Lisp source file "lsp/foundation.lsp" 2015-03-07T03:30:07Z zRecursive joined #lisp 2015-03-07T03:30:14Z drmeister: Then I tried "asdf.lisp" 2015-03-07T03:30:32Z beach: I consider that to be great progress. 2015-03-07T03:30:34Z drmeister: "asdf.lisp" is a beast - it uses almost every trick in the book. 2015-03-07T03:30:40Z beach: Yeah. 2015-03-07T03:30:48Z drmeister: I like to torture my code. 2015-03-07T03:31:07Z beach: Did you read the logs where I suggest you define multiple-value-call as a macro? 2015-03-07T03:31:34Z drmeister: Yes, but I liked your last idea better. 2015-03-07T03:31:39Z beach: OK. 2015-03-07T03:31:43Z drmeister: Allocate values arrays on the stack. 2015-03-07T03:31:57Z beach: You must be careful with that. 2015-03-07T03:32:19Z beach: There might be nested needs for multiple values, if you see what I mean. 2015-03-07T03:33:09Z drmeister: Your values-location(s) are unique aren't they? They have identity. 2015-03-07T03:33:18Z ggole joined #lisp 2015-03-07T03:33:20Z beach: Yeah, sure. 2015-03-07T03:33:46Z drmeister: So they should take care of nested needs for multiple values shouldn't they? 2015-03-07T03:33:51Z beach: As long as you keep track of that identity, you should be fine. 2015-03-07T03:34:37Z beach: But I am betting that in 99% of all cases, you could do something simpler. 2015-03-07T03:35:03Z drmeister: Yup, I do that. The problem with what I'm doing is it's probably copying values between the thread-local multiple-values array and these stack-frame allocated multiple-values more often than necessary. 2015-03-07T03:35:27Z beach: I see. 2015-03-07T03:35:50Z beach: You know, I have noticed something about the way you work... 2015-03-07T03:35:59Z drmeister: I'm going for correctness first. I'll optimize later. I'm starting to understand what you meant by using tail-calls. 2015-03-07T03:36:07Z drmeister: What is it about the way I work? 2015-03-07T03:36:19Z beach: The opposite of what you just said actually. :) 2015-03-07T03:36:29Z beach: You often go for the complex optimal solution immediately. 2015-03-07T03:37:07Z beach: ... additional instructions instead of macros+functions, stack rather than macro+function, etc, etc. 2015-03-07T03:37:17Z beach: It is fine with me if you want to do that. 2015-03-07T03:37:31Z zRecursive left #lisp 2015-03-07T03:37:36Z badkins joined #lisp 2015-03-07T03:37:41Z beach: But I am guessing you create more work for yourself, and you do that in places where it may not pay off. 2015-03-07T03:39:52Z wolf_mozart joined #lisp 2015-03-07T03:40:12Z wolf_mozart quit (Changing host) 2015-03-07T03:40:12Z wolf_mozart joined #lisp 2015-03-07T03:40:12Z wolf_mozart quit (Changing host) 2015-03-07T03:40:12Z wolf_mozart joined #lisp 2015-03-07T03:40:36Z Jesin quit (Quit: Leaving) 2015-03-07T03:40:45Z drmeister: Sorry - lost power - had to find charger, then cable 2015-03-07T03:40:50Z drmeister: Reading... 2015-03-07T03:41:24Z drmeister: As soon as I grasp what I think is the optimal solution I throw myself into it. 2015-03-07T03:41:24Z wolf_mozart: can neural networks predict random numbers made by a number generator? 2015-03-07T03:41:39Z beach: drmeister: Yeah, that's what I have observed. 2015-03-07T03:42:01Z drmeister: Dude, if I were satisfied with half-measures I'd be programming in Python. 2015-03-07T03:42:01Z beach: wolf_mozart: That would be something other than a Common Lisp question. 2015-03-07T03:42:07Z badkins quit (Ping timeout: 244 seconds) 2015-03-07T03:42:14Z beach: drmeister: Fair enough. 2015-03-07T03:42:33Z beach: drmeister: But take this MULTIPLE-VALUE-CALL thing for instance. It is entirely possible that it will be used extremely infrequently in the end. 2015-03-07T03:43:24Z beach: drmeister: And if so we have literally hundreds of things that are more important to performance, such as type inference. 2015-03-07T03:43:27Z drmeister: It may be, but alloc(ing) a structure on the stack and creating two functions that read and write values to it took me about 30 minutes to implement. Now multiple-values-call works. 2015-03-07T03:43:50Z beach: OK, like I said, fine with me. 2015-03-07T03:44:47Z beach: drmeister: Maybe you are a bit younger than I am so you still have more energy. 2015-03-07T03:44:48Z beach: :) 2015-03-07T03:45:23Z zyaku quit (Ping timeout: 246 seconds) 2015-03-07T03:45:25Z drmeister: Now, the downstream effects are hard to predict - it may be that now I have a headache optimizing this multiple-values coping when it may not have been a problem with your macros. 2015-03-07T03:45:32Z jjwatt joined #lisp 2015-03-07T03:46:28Z drmeister: I'll just blame you for saying (quoted): The "production" solution to your problem would probably be to store the VALUES-LOCATIONs on the stack. 2015-03-07T03:46:36Z drmeister: :-) 2015-03-07T03:46:52Z beach: Yeah, sorry, my fault. :) 2015-03-07T03:47:00Z beach: I have an answer for question number 2. 2015-03-07T03:47:26Z beach: In TAILCALL-INSTRUCTION the entire multiple-value thing disappears. 2015-03-07T03:47:28Z drmeister: Terms like "production" and "performance" and "slightly less stupid" are triggers for me. 2015-03-07T03:47:40Z beach: I'll try to remember that. 2015-03-07T03:49:09Z taylanub quit (Disconnected by services) 2015-03-07T03:49:27Z drmeister: Yeah, I see that. I still haven't figured out tail calls in LLVM. But I see what they do here. A funcall generates a multiple-value return. If the funcall is just before a return then there is no sense in copying the returned values into a stack-frame allocated multiple-values and then copying them back out for the return - correct? 2015-03-07T03:49:35Z taylanub joined #lisp 2015-03-07T03:50:00Z beach: Yes, and in fact the two call+return will be replaced by a single instruction. 2015-03-07T03:50:46Z beach: So there will no longer be a VALUES-LOCATION. 2015-03-07T03:50:48Z drmeister: Right, the single instruction would be a real tail-call, one where the callee overwrites the stack frame of the caller - correct? 2015-03-07T03:51:00Z beach: Yes. 2015-03-07T03:51:55Z drmeister: So I could do a half-measure here, I could have my tail-call-instruction generate a regular call followed by a return but skip the multiple-values manipulation - correct? 2015-03-07T03:52:08Z beach: I suppose that would work. 2015-03-07T03:52:32Z drmeister: I know that's a bit stupid but "it's slightly less stupid" than call...save-multiple-values...load-multiple-values...return 2015-03-07T03:52:42Z beach: Absolutely. 2015-03-07T03:53:20Z beach: In fact, in SICL, the caller allocates a stack frame for the callee, so for TAILCALLs, it just reuses its own frame for the callee rather than allocating a new one. 2015-03-07T03:53:29Z drmeister: Right and as we established "slightly less stupid" is a trigger for me. Especially since the real tail-call instruction, while it is supported by llvm, has some baggage associated with it that I haven't figured out yet. 2015-03-07T03:54:05Z drmeister: This is in a SICL backend? 2015-03-07T03:54:10Z beach: I can see how it would, given that the C calling convention is sort of by nature not good for tailcalls. 2015-03-07T03:54:16Z scottj joined #lisp 2015-03-07T03:55:18Z beach: drmeister: I wouldn't call SICL a "backend", but yeah, that is the way it is (or will be) done for the planned SICL backends, like x86-64, and ARM. 2015-03-07T03:56:09Z drmeister: This is where LLVM tail calls are described: http://llvm.org/docs/CodeGenerator.html#tail-call-optimization 2015-03-07T03:56:27Z drmeister: The way I read it - they aren't supported for the C calling convention. 2015-03-07T03:57:22Z beach: Looks that way, yes. 2015-03-07T03:57:37Z drmeister: It says they are only supported if: Caller and callee have the calling convention fastcc, cc 10 (GHC calling convention) or cc 11 (HiPE calling convention). 2015-03-07T03:57:44Z beach: Which is OK. You can use different calling conventions when you call C++. 2015-03-07T03:58:42Z beach: I should read up on "fastcc", "cc 10" and "cc 11" some day. 2015-03-07T03:58:43Z johann joined #lisp 2015-03-07T03:58:57Z drmeister: Maybe that's it, maybe I should use a different calling convention for Lisp and build new wrappers for the C++ functions from the Common Lisp side. 2015-03-07T03:59:53Z beach: That would be what I would be thinking of doing. 2015-03-07T04:00:23Z beach: The other way around (C++ calls Common Lisp) might need some special treatment as well. 2015-03-07T04:00:25Z jlongster joined #lisp 2015-03-07T04:01:19Z bgs100 quit (Quit: bgs100) 2015-03-07T04:01:24Z drmeister: That's done with FUNCALL and APPLY so that should be easier 2015-03-07T04:01:38Z beach: The main problem with the C calling convention is that only the caller knows how many arguments were passed, so only the caller can deallocate those arguments. But for tail calls, the callee needs to deallocate the arguments before making the tail call. 2015-03-07T04:02:02Z drmeister: I see - that makes sense. 2015-03-07T04:02:51Z nuy_19031046 joined #lisp 2015-03-07T04:03:28Z beach: The other problem you have to be careful about is that it is a performance catastrophe if you don't match up the CALLs and RETs in x86 machine code. 2015-03-07T04:03:35Z johann quit (Ping timeout: 252 seconds) 2015-03-07T04:03:44Z drmeister: The GHC calling convention says: On X86-64 only supports up to 10 bit type parameters and 6 floating point parameters. 2015-03-07T04:03:56Z rak[1] is now known as rak[f00d] 2015-03-07T04:04:36Z drmeister: What the fudge are "bit type parameters"? 2015-03-07T04:04:43Z beach: I was about to ask. 2015-03-07T04:04:45Z drmeister: I'm guessing machine word parameters. 2015-03-07T04:04:47Z ggole: Integers or pointers. 2015-03-07T04:05:07Z drmeister: ggole: Is that a common term somewhere? I've never heard it before. 2015-03-07T04:05:16Z beach: Moi non plus. 2015-03-07T04:05:28Z ggole: I haven't seen it before, but it's fairly clear from context 2015-03-07T04:06:01Z drmeister: beach: Say what? I only had 11 years of French. 2015-03-07T04:06:25Z beach: drmeister: Yeah, and you never listened to popular French music either. 2015-03-07T04:08:10Z drmeister: Ok, well, ten register pointers that's a lot for X86-64 isn't it? 2015-03-07T04:08:48Z badkins joined #lisp 2015-03-07T04:09:03Z ggole: There's 16 GP registers on that architecture. 2015-03-07T04:09:11Z badkins quit (Client Quit) 2015-03-07T04:09:12Z beach: drmeister: The problem I see is that you can't uniformly use such a calling convention for Common Lisp, because it may not work sometimes. 2015-03-07T04:09:32Z ggole: Reserving 6 of them for various purposes and leaving the rest for arguments seems reasonable enough. 2015-03-07T04:09:40Z drmeister: Why not? 2015-03-07T04:09:58Z beach: drmeister: When you have more than 10 arguments? 2015-03-07T04:10:22Z ggole: You can still have more than 10 arguments, it's just that such calls won't be tail calls (afaiu) 2015-03-07T04:10:29Z drmeister: It will be something like (closed-env,num-args,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) and the rest in the multiple-values array. 2015-03-07T04:10:38Z beach: ggole: Oh, OK. 2015-03-07T04:11:37Z drmeister: Tail-calls will work with the single multiple-values array - right? A tail-call means that the caller isn't returning anything itself, it returns what the callee returns - right? 2015-03-07T04:11:51Z ggole: drmeister: implementations sometimes cache the alloc-pointer in a register, too 2015-03-07T04:12:07Z drmeister: What's the alloc-pointer? 2015-03-07T04:12:08Z beach: drmeister: I think that's right. 2015-03-07T04:12:21Z ggole: The pointer that you increment to do bump-pointer allocation 2015-03-07T04:12:36Z ggole: If you have it in a register, the allocation fast-path is just a few instructions. 2015-03-07T04:14:00Z drmeister: Hmm, interesting - I'm using the Memory Pool System garbage collector - I wonder if I could do that with the most often used allocator. I thought it would be larger than a single word. 2015-03-07T04:15:08Z ggole: It could easily wait until you're further along, of course 2015-03-07T04:15:14Z ndrei quit (Ping timeout: 245 seconds) 2015-03-07T04:15:25Z ggole: I'm mainly pointing out that reserving registers for the system's is a common pattern 2015-03-07T04:15:28Z beach: ggole: Too late! :) 2015-03-07T04:15:34Z ggole: *system's use 2015-03-07T04:16:26Z eschatologist quit (Quit: Textual IRC Client: www.textualapp.com) 2015-03-07T04:17:19Z drmeister: Allocation points for MPS are quite large: 2015-03-07T04:17:23Z drmeister: https://www.irccloud.com/pastebin/PSr8wuCT 2015-03-07T04:17:34Z harish quit (Ping timeout: 256 seconds) 2015-03-07T04:18:43Z ggole: Right, you'd be able to cache a few fields at most 2015-03-07T04:21:01Z drmeister: Hmm, really? I thought a cache line was 64 bytes. That should put the entire allocator in one cache line if I align it to 64 bytes. 2015-03-07T04:21:38Z beach: drmeister: "to cache" is more general than "put it in a cache line". 2015-03-07T04:22:07Z ggole: By cache I mean load it into a register and do updates to it there 2015-03-07T04:22:22Z ggole: And only store it back to memory when it actually needs to be read from the struct by the GC code 2015-03-07T04:22:27Z drmeister: ggole: Oh - you mean I'd be able to pass a few fields of the allocator in registers at most. 2015-03-07T04:22:41Z ggole: Pretty much, yeah 2015-03-07T04:23:12Z manuel__ joined #lisp 2015-03-07T04:23:16Z drmeister: I see. 2015-03-07T04:24:04Z drmeister: That's an interesting idea - I'll file that away for now. 2015-03-07T04:24:42Z cluck quit (Remote host closed the connection) 2015-03-07T04:25:15Z ggole: The idea is that allocation can be something like sub r, K/cmp r, END/jl .gc/mov tmp, r 2015-03-07T04:25:36Z mj-0 joined #lisp 2015-03-07T04:25:39Z ggole: Which will be very, very cheap (the branch is easily predictable) 2015-03-07T04:26:51Z drmeister: But you are saying something like if "alloc" defines the pointer to where the next block of memory would be allocated and "limit" defines where the end of the current range of allocatable memory is then I could pass those two pointers and do allocations very quickly until I hit "limit" - then I would have to update the allocator in memory. 2015-03-07T04:27:08Z ggole: Yes 2015-03-07T04:27:51Z ggole: You can reasonably cache until some code, which should all be in the GC internals, depends on the values in memory being up-to-date. 2015-03-07T04:28:15Z mj-0 quit (Remote host closed the connection) 2015-03-07T04:28:22Z beach: It is particularly fast if the fast allocator is per-thread. 2015-03-07T04:28:48Z drmeister: I think these are per-thread. 2015-03-07T04:28:50Z sysfault_ joined #lisp 2015-03-07T04:28:59Z qubitnerd quit (Ping timeout: 245 seconds) 2015-03-07T04:29:32Z drmeister: I'd have to talk to the MPS folks about this. It's worth giving up two registers for each call? 2015-03-07T04:29:48Z ggole: Depends on how often you allocate, really 2015-03-07T04:30:16Z bb010g joined #lisp 2015-03-07T04:30:30Z drmeister: Right - profile, profile, profile. 2015-03-07T04:30:49Z drmeister: Does Java do this? 2015-03-07T04:30:57Z ggole: I think so 2015-03-07T04:31:01Z ggole: I know OCaml and Haskell do 2015-03-07T04:31:07Z sysfault quit (Ping timeout: 245 seconds) 2015-03-07T04:31:20Z drmeister: That's another trigger. 2015-03-07T04:31:21Z _pakchoi_ops joined #lisp 2015-03-07T04:31:33Z beach: "Java does it"? 2015-03-07T04:31:36Z ggole: (They have very different implementation concerns from Lisp, but share a high rate of allocation.) 2015-03-07T04:31:38Z drmeister: Yeah. 2015-03-07T04:31:50Z beach writes down those triggers. 2015-03-07T04:31:55Z ggole: For "Java" read "the usual Java implementations", of course 2015-03-07T04:32:45Z ajtulloch joined #lisp 2015-03-07T04:32:57Z drmeister: Ok, well this has been illuminating. 2015-03-07T04:35:55Z beach: drmeister: Will you be up for another few minutes? If so, can we discuss your email? I don't know how to answer the questions without more information. 2015-03-07T04:36:12Z drmeister: Coming back to the real world - I still have to figure out why this furshlugginer compile-file is failing when compiling asdf 2015-03-07T04:36:20Z drmeister: Sure. 2015-03-07T04:37:00Z drmeister: What questions do you have about the email? 2015-03-07T04:37:02Z beach: I am not sure what questions to ask... 2015-03-07T04:37:04Z mj-0 joined #lisp 2015-03-07T04:37:18Z drmeister: Well then the shoes on the other hand isn't it? 2015-03-07T04:37:26Z beach: I guess, first, are you planning to replace the current scheme with values on the stack? 2015-03-07T04:37:43Z Jesin joined #lisp 2015-03-07T04:37:51Z drmeister: I've added values on the stack to the current scheme. 2015-03-07T04:38:06Z beach: But do you still have the fixed single multiple value thing? 2015-03-07T04:38:30Z drmeister: My current scheme is I pass up to five arguments in registers and the rest in a fixed single multiple value thing. 2015-03-07T04:38:44Z beach: And you are planning to keep that? 2015-03-07T04:39:02Z beach: So the question is, what to do with those values? 2015-03-07T04:39:04Z drmeister: Then I added multiple values on the stack and I copy values from the fixed multiple value thing into and out of the stack based ones. 2015-03-07T04:39:13Z beach: OK, that answers my question. 2015-03-07T04:39:29Z drmeister: I'm not sure if I'll keep it this way - it seems like there is a lot of copying going on. 2015-03-07T04:39:48Z beach: It will almost never happen. 2015-03-07T04:40:38Z drmeister: What will almost never happen? Right now every time there is a V as the input or output of an instruction there is copying. 2015-03-07T04:40:47Z mj-0 quit (Remote host closed the connection) 2015-03-07T04:40:54Z beach: That's not a good assumption. 2015-03-07T04:41:05Z drmeister: I may be doing something stupid 2015-03-07T04:41:12Z drmeister: What is not a good assumption? 2015-03-07T04:41:28Z beach: OK, let's see... 2015-03-07T04:41:44Z beach: First, the VALUES-LOCATIONs will disappear when you have tail calls. 2015-03-07T04:41:52Z drmeister: Right - I get that. 2015-03-07T04:42:24Z beach: Then, if you have something like (multiple-value-bind (a b) (f x) ... then the situation is simpler. 2015-03-07T04:42:48Z drmeister: I transform that into a multiple-value-call 2015-03-07T04:42:49Z beach: Then (f x) will be called, and there would be (ultimately at least) a V-F immediately after. 2015-03-07T04:43:00Z scottj left #lisp 2015-03-07T04:43:20Z drmeister: What is V-F? M->F? 2015-03-07T04:43:25Z drmeister: Is it M->F? 2015-03-07T04:43:29Z beach: Sorry M->F. 2015-03-07T04:43:32Z drmeister: Multiple-to-fixed 2015-03-07T04:43:33Z drmeister: Right. 2015-03-07T04:43:46Z beach: So then you don't have to copy. 2015-03-07T04:44:21Z beach: The register allocator may even allocate A in the same register as the first return value, and B in the second. 2015-03-07T04:44:35Z drmeister: Right - but I have to recognize that situation. 2015-03-07T04:44:37Z beach: This is an important special case that needs to be handled separately. 2015-03-07T04:44:51Z beach: Otherwise, you will never get any performance with m-v-b. 2015-03-07T04:44:58Z beach: And m-v-b is quite common. 2015-03-07T04:45:48Z beach: So we should concentrate our effort on getting that special case handled efficiently, rather than attempting to optimize something that will almost never happen after that special case has been handled. 2015-03-07T04:46:02Z drmeister: Well, that may have to wait. The C calling convention only allows two pointers/integers to be returned in registers and I use one for a pointer and the second for the number of values being returned. 2015-03-07T04:46:47Z mj-0 joined #lisp 2015-03-07T04:46:50Z mj-0 quit (Remote host closed the connection) 2015-03-07T04:46:58Z beach: ... So what i am saying is that in almost all cases, the stack-allocated multiple values won't be used. 2015-03-07T04:47:17Z drmeister: I think I see. 2015-03-07T04:47:33Z beach: The fixed multiple-value return thingy will go directly into registers. 2015-03-07T04:47:42Z mj-0 joined #lisp 2015-03-07T04:47:44Z drmeister: I see the funcall...M->F case 2015-03-07T04:47:54Z beach: Right. 2015-03-07T04:48:10Z drmeister: But I have to recognize it don't I? 2015-03-07T04:48:20Z beach: You or me. 2015-03-07T04:48:27Z beach: Probably me. 2015-03-07T04:48:29Z drmeister: Better you than me. 2015-03-07T04:48:33Z drmeister: :-) 2015-03-07T04:48:34Z beach: ... i.e., Cleavir. 2015-03-07T04:48:50Z drmeister: Cleavir has smart brain thinking 2015-03-07T04:48:58Z beach: You can count on me not leaving that kind of inefficiency in Cleavir-generated code. 2015-03-07T04:49:19Z beach: Sooooo..... 2015-03-07T04:49:40Z drmeister: Excellent - so how will you manage it? What will the HIR look like? 2015-03-07T04:49:53Z beach: Too early in the morning for that. 2015-03-07T04:50:01Z drmeister: No "V" between funcall and M->F? 2015-03-07T04:50:01Z beach: Let me think for a minute... 2015-03-07T04:50:57Z beach: The MULTIPLE-VALUE-CALL-INSTRUCTION will have two inputs in that case. 2015-03-07T04:51:18Z beach: The function to call and a single VALUES-LOCATION. 2015-03-07T04:51:59Z beach: Sorry, can't think it through right now. 2015-03-07T04:52:09Z beach: Maybe it has to be taken care of before HIR is generated. 2015-03-07T04:52:18Z beach: Handling m-v-b specially. 2015-03-07T04:52:35Z drmeister: No problem. Take your time. What I have works now but is not optimal. 2015-03-07T04:52:54Z stardiviner quit (Ping timeout: 244 seconds) 2015-03-07T04:52:56Z ggole: Is the issue that "V" implies use of memory and you are trying to get rid of that? 2015-03-07T04:52:56Z beach: In that case, with (m-v-b (a b) (f x) ... there will be a call to F and then a M-F. 2015-03-07T04:53:30Z beach: ggole: In the most general case, V (VALUES-LOCATION) must be stored somewhere, yes. 2015-03-07T04:53:37Z drmeister: But what about (let ((r (foo x y z))) ...) That doesn't use multiple-value-bind or multiple-value-call but it does involve funcall...M->F doesn't it? 2015-03-07T04:53:39Z beach: But that case will almost never happen. 2015-03-07T04:53:51Z beach: drmeister: Correct. 2015-03-07T04:53:56Z ggole: It seems to me that standard promotion+DCE will avoid the intermediate structure easily enough 2015-03-07T04:54:07Z gaoyuehua225 joined #lisp 2015-03-07T04:54:16Z drmeister: "standard promotion+DCE"? 2015-03-07T04:54:22Z ggole: (But maybe you don't want to rely on heavy optimization passes.) 2015-03-07T04:54:24Z _5kg quit (Ping timeout: 256 seconds) 2015-03-07T04:54:52Z ggole: Promotion is moving values from fields of structures into temporaries 2015-03-07T04:55:14Z beach: ggole: The problem is that in general you don't know the number of values. 2015-03-07T04:55:37Z beach: But, again, that general case will almost never happen. 2015-03-07T04:55:58Z beach: drmeister: So, back to (m-v-b (a b) (f x) .... 2015-03-07T04:56:03Z ggole: If you 'have sight' of the origins of all the values in a structure, and the structure has no other uses, promotion will leave the structure dead and elidable by DCE 2015-03-07T04:56:19Z drmeister: It seems to me that the (let ((r (foo x y z))) ...) or (foo (bar x y z)) happens so often - why not have a single-value-funcall instruction? 2015-03-07T04:56:50Z drmeister: beach: Sure back to (m-v-b ... 2015-03-07T04:56:53Z ggole: beach: don't you (usually) know that from the arity of the m-v-b? 2015-03-07T04:57:12Z beach: ggole: Yes, m-v-b is the special case. 2015-03-07T04:58:06Z beach: The general case is (multiple-value-call (f x) (g y) (multiple-value-call (ff xx) (gg yy)) (h z) ...) 2015-03-07T04:59:19Z beach: drmeister: You can consider a funcall followed by a M-F with a single output as being such a special instruction. 2015-03-07T04:59:27Z beach: M->F. 2015-03-07T05:00:07Z beach: So (m-v-b (a b) (f x) will have a funcall to (f x) and then a M-F with two outputs. 2015-03-07T05:00:22Z drmeister: I'm following. 2015-03-07T05:00:56Z beach: So the values returned from (f x) will be checked and NIL might be filled in for the second value, and then you no longer have to store the multiple values with unknown count. 2015-03-07T05:01:08Z faheem_: drmeister: why not try something smaller than asdf.lisp. it probably has multiple issues, and they might be interacting 2015-03-07T05:01:08Z beach: ... which is what ggole is saying I think. 2015-03-07T05:02:33Z beach: drmeister: So now, we have removed 99% or so of all cases where the multiple values returned form some function call had to be stored together with the count of those values. 2015-03-07T05:02:39Z beach: from 2015-03-07T05:02:42Z drmeister: beach: I see. It's what my M->F instruction was doing before I added the stack-frame allocated multiple values. 2015-03-07T05:03:17Z drmeister: So should I just collapse funcall...M->F to a single funcall/M->F instruction? 2015-03-07T05:04:16Z beach: You can do that if you like. 2015-03-07T05:04:18Z drmeister: I can write a specialize method on funcall-instruction and check if its successor is an M->F instruction and collapse them into one instruction. 2015-03-07T05:04:31Z drmeister: Poof - a 98% solution. 2015-03-07T05:05:34Z drmeister: Do you want to do this or should I? It looks now like it makes more sense for me to do it as a MIR instruction. 2015-03-07T05:05:41Z fxer joined #lisp 2015-03-07T05:05:58Z beach: I am certainly not going to introduce a special instruction for that. 2015-03-07T05:06:04Z stardiviner joined #lisp 2015-03-07T05:06:10Z enaden joined #lisp 2015-03-07T05:06:30Z beach: ... in case that is what you are asking. 2015-03-07T05:07:48Z drmeister: I feel the same way about it. HIR has a purity to it. MIR is "Messy Intermediate Representation" 2015-03-07T05:08:08Z drmeister: No, don't add a new HIR instruction. 2015-03-07T05:08:13Z Xach: holy/messy? 2015-03-07T05:08:21Z drmeister: Excellent. 2015-03-07T05:08:41Z drmeister: Holy Intermediate Representation and Messy Intermediate Representation. 2015-03-07T05:08:57Z drmeister: I feel good about that. 2015-03-07T05:09:09Z beach: drmeister: So have I answered the questions in your email? 2015-03-07T05:09:26Z Oddity quit (Read error: Connection reset by peer) 2015-03-07T05:09:36Z drmeister: Uh. hang on 2015-03-07T05:10:04Z drmeister: What do these mean? ";;; Warning: Form compiled in a context requiring no value.” 2015-03-07T05:10:19Z Oddity joined #lisp 2015-03-07T05:10:36Z beach: drmeister: (progn 234 ...) 2015-03-07T05:11:18Z beach: drmeister: Is your last question related to mine? 2015-03-07T05:11:30Z zeitue joined #lisp 2015-03-07T05:11:45Z beach: I should remove that warning. It's annoying. 2015-03-07T05:11:51Z drmeister: I think I'm good for now. There's the THE-INSTRUCTION but let's leave that for now. 2015-03-07T05:11:59Z _pakchoi_ops quit (Read error: Connection reset by peer) 2015-03-07T05:12:07Z drmeister: Oh and you saw the error with (CONVERT ...) 2015-03-07T05:12:13Z beach: drmeister: That's a different email. 2015-03-07T05:12:13Z burtons: Xach: what networking libraries does quicklisp use? 2015-03-07T05:12:14Z _pakchoi_ops joined #lisp 2015-03-07T05:12:29Z beach: drmeister: I am trying to process and file the email about multiple values. 2015-03-07T05:12:45Z drmeister: faheem_: Thanks - I know but I'll have to compile asdf at some point. 2015-03-07T05:13:06Z drmeister: No problem. 2015-03-07T05:13:10Z faheem_: beach: how come you guys aren't talking about this on #clasp? 2015-03-07T05:13:24Z faheem_: beach: and you're going to London too? 2015-03-07T05:13:30Z beach: I am. 2015-03-07T05:13:52Z beach: faheem_: If we annoy people here with out discussion, we can move it. 2015-03-07T05:13:57Z drmeister: faheem_: ggole and nyef and others hang out here and they provide very valuable insight 2015-03-07T05:14:11Z beach: faheem_: I don't feel I am working with Clasp. I am working with Cleavir. 2015-03-07T05:14:27Z faheem_: beach: ok. just wondering. 2015-03-07T05:14:28Z faheem_: drmeister: ok 2015-03-07T05:14:36Z tooner quit (Ping timeout: 244 seconds) 2015-03-07T05:14:51Z faheem_: beach: you're presenting cleavir? 2015-03-07T05:15:03Z beach: faheem_: No. That would be premature. 2015-03-07T05:15:08Z faheem_: ok 2015-03-07T05:15:18Z beach: faheem_: I don't know what I am presenting because the referee period is not over yet. 2015-03-07T05:15:34Z beach: I may not be presenting anything at all, if they don't like my papers. 2015-03-07T05:16:00Z drmeister: So what happens? The referees select what is presented based on the abstracts? 2015-03-07T05:16:01Z Ralt quit (K-Lined) 2015-03-07T05:16:09Z faheem_: beach: oh 2015-03-07T05:16:12Z beach: drmeister: No. 2015-03-07T05:16:18Z drmeister: I just submitted one abstract. 2015-03-07T05:16:23Z beach: drmeister: Abstracts only are only for demonstrations. 2015-03-07T05:16:25Z drmeister: I'm a one trick pony. 2015-03-07T05:16:28Z faheem_: huh, so it is a refereed conference? 2015-03-07T05:16:39Z faheem_: like CS 2015-03-07T05:16:54Z drmeister: Ooops - did I not submit the right thing? 2015-03-07T05:16:55Z beach: faheem_: It *is* a CS conference. 2015-03-07T05:17:04Z faheem_: beach: oh. pardon me. 2015-03-07T05:17:27Z beach: drmeister: You submitted the right thing for a demo. Not for a paper. 2015-03-07T05:18:18Z gaoyuehua225 quit (Read error: Connection reset by peer) 2015-03-07T05:18:39Z gaoyuehua225 joined #lisp 2015-03-07T05:18:42Z drmeister: So the submissions were for papers and for demos? 2015-03-07T05:19:06Z drmeister: What does a demo mean? I demonstrate Clasp? 2015-03-07T05:19:07Z beach: "Papers: Technical papers of up to 8 pages that describe original results or explain known ideas in new and elegant ways. " 2015-03-07T05:19:25Z beach: "Demonstrations: Abstracts of up to 2 pages for demonstrations of tools, libraries, and applications. " 2015-03-07T05:19:35Z resttime quit (Quit: resttime) 2015-03-07T05:19:49Z drmeister: I guess a demo is more appropriate for me. 2015-03-07T05:20:10Z beach: I assumed that, since you submitted an abstract. 2015-03-07T05:20:51Z drmeister: I'm not sure there are any original ideas. Common Lisp that interoperates with C++? LLVM backend for CL? Automatic scraping of C++ code to build a garbage collector interface? Are any of these original? What the heck is original in CS? 2015-03-07T05:21:28Z beach: drmeister: I can't give you an exhaustive description of that. 2015-03-07T05:21:30Z drmeister: How about writing an entire freakin' compiler to build molecules 2015-03-07T05:21:41Z beach: drmeister: But you can read my two papers to get some examples. 2015-03-07T05:22:22Z beach: drmeister: In fact, you can read all the papers in the "Papers" subdirectory of SICL to get an idea. Some of them are just skeletons for now. 2015-03-07T05:22:37Z drmeister: How long is a demo talk? 2015-03-07T05:22:52Z beach: Don't know. Sorry. 2015-03-07T05:24:42Z beach: I am guessing 30 minutes. But that's just my guess. 2015-03-07T05:26:02Z beach: drmeister: The originality in many of my papers has to do with performance. Find a faster way of doing something that many people need. 2015-03-07T05:27:29Z beach: drmeister: The sliding-gc paper, the CLOS dispatch paper, the :from-end t paper. They are all about performance. 2015-03-07T05:27:43Z drmeister: Well, that's a metric I can work with. 2015-03-07T05:28:08Z beach: One just has to be careful measuring the right thing. 2015-03-07T05:28:40Z beach: drmeister: But there is also the "software engineering" argument: Find a way to do something with less code or more maintainable code. 2015-03-07T05:29:18Z beach: My first-class global environments paper is in that category I would say. 2015-03-07T05:30:53Z beach: drmeister: Recently, I discussed a faster bit-reversal (shuffle) algorithm with Quadrescence. That's another performance thing. 2015-03-07T05:31:18Z beach: drmeister: Now, I am working on a faster in-place stable sorting algorithm. 2015-03-07T05:31:24Z drmeister: What was the bit-reversal for? Convert 010000 to 000010 ? 2015-03-07T05:31:28Z beach: FFT 2015-03-07T05:32:07Z beach: The shuffle algorithm exchanges elements with indices like that. 2015-03-07T05:32:20Z corehello joined #lisp 2015-03-07T05:32:33Z stardiviner quit (Ping timeout: 246 seconds) 2015-03-07T05:32:34Z ajtulloc_ joined #lisp 2015-03-07T05:32:51Z corehello quit (Max SendQ exceeded) 2015-03-07T05:33:08Z beach: drmeister: The fast sorting algorithm is to be used with CL:STABLE-SORT. 2015-03-07T05:33:20Z drmeister: I see. 2015-03-07T05:33:33Z jeffrin joined #lisp 2015-03-07T05:33:38Z beach: drmeister: Does that give you an idea of what is original in CS? 2015-03-07T05:33:41Z johann joined #lisp 2015-03-07T05:33:48Z drmeister: Sure. 2015-03-07T05:33:49Z jeffrin: hello all 2015-03-07T05:33:56Z beach: Hello jeffrin. 2015-03-07T05:34:12Z drmeister: When I was in high school I had a Corona PC compatible that I wanted to play Ultima on. 2015-03-07T05:34:30Z drmeister: The problem was the video had a shift register that worked backwards. 2015-03-07T05:34:45Z jeffrin: beach : is there any certification program for Lisp ? 2015-03-07T05:34:46Z drmeister: So I cut the traces on the motherboard and rewired it. I got Ultima to work. 2015-03-07T05:34:50Z faheem_: performance is a big thing in C> 2015-03-07T05:34:53Z faheem_: CS 2015-03-07T05:35:10Z beach: drmeister: Good, but not CS. 2015-03-07T05:35:38Z beach: jeffrin: What is a "certification program"? 2015-03-07T05:35:41Z drmeister: Got it. 2015-03-07T05:35:59Z ajtulloch quit (Ping timeout: 252 seconds) 2015-03-07T05:36:03Z beach: jeffrin: There is the ANSI test suite by Paul Dietz if that is what you are referring to. 2015-03-07T05:36:49Z beach: drmeister: The first thing to realize is that computer science is not about computers and it is not a science. 2015-03-07T05:37:10Z faheem_: drmeister: so, one of these? 2015-03-07T05:37:14Z faheem_: http://en.wikipedia.org/wiki/Corona_Data_Systems 2015-03-07T05:37:20Z drmeister: faheem_: Yup 2015-03-07T05:37:31Z faheem_: beach: in fairness, some of the time it is science. 2015-03-07T05:37:43Z faheem_: depends on the area, I think. 2015-03-07T05:37:57Z beach: faheem_: Not the way I define "science", i.e., a discipline using the scientific method. 2015-03-07T05:37:59Z faheem_: I've seen abstract CS papers that were basically math 2015-03-07T05:38:12Z faheem_: and there is a big overlap with statistics these days. 2015-03-07T05:38:17Z faheem_: statistics/probability 2015-03-07T05:38:22Z beach: faheem_: I am one of those people who don't think "science" means "good stuff". 2015-03-07T05:38:29Z jeffrin: beach: anyway thanks 2015-03-07T05:38:37Z faheem_: beach: well, I don't either. 2015-03-07T05:38:46Z _5kg joined #lisp 2015-03-07T05:38:51Z faheem_: do you include math in science or not? 2015-03-07T05:38:59Z beach: jeffrin: If you could be more specific, it would be easier to answer your question. 2015-03-07T05:39:04Z beach: faheem_: definitely not. 2015-03-07T05:39:14Z beach: faheem_: Math is not using the scientific method. 2015-03-07T05:39:15Z faheem_: beach: oh. ok. fair enough. 2015-03-07T05:39:32Z faheem_: beach: yes, then CS probably doesn't come under science for you. 2015-03-07T05:39:33Z beach: Math is "good stuff" but it is not "science". 2015-03-07T05:39:40Z zeitue quit (Read error: Connection reset by peer) 2015-03-07T05:39:41Z faheem_: beach: ok 2015-03-07T05:40:32Z theseb joined #lisp 2015-03-07T05:41:30Z drmeister: beach: Would I use if I want to catch the CLEAVIR-ENVIRONMENT:NO-FUNCTION-INFO store it and then invoke the restart: CONSIDER-GLOBAL? 2015-03-07T05:41:35Z beach: jeffrin: A "certification program" could be a mandatory course for people to follow in order to become "certified Lisp programmers", which is why you need to explain a bit more. 2015-03-07T05:41:48Z corehello joined #lisp 2015-03-07T05:41:51Z drmeister: That's what I want to do to handle these NO-FUNCTION-INFO conditions isn't it? 2015-03-07T05:41:57Z beach: drmeister: Yes. 2015-03-07T05:42:05Z FederalAgent joined #lisp 2015-03-07T05:42:17Z drmeister: I haven't worked with restarts in any automated way. 2015-03-07T05:42:18Z FederalAgent: Oh my god finally 2015-03-07T05:42:30Z beach: drmeister: You need to use handler-bind and invoke-restart. 2015-03-07T05:42:38Z drmeister: handler-bind - got it. 2015-03-07T05:42:44Z FederalAgent: A room that understands that just because you have a lisp, it doesn't mean you're gay 2015-03-07T05:42:47Z FederalAgent: I'm home 2015-03-07T05:43:09Z beach: Zhivago: Around? 2015-03-07T05:43:38Z FederalAgent: I can't tell you all how much I've had to deal with over the years, just for having a lisp 2015-03-07T05:43:47Z FederalAgent: Girlfriends breaking up with you 2015-03-07T05:43:49Z jleija quit (Quit: leaving) 2015-03-07T05:43:52Z faheem_: FederalAgent: go away 2015-03-07T05:44:06Z FederalAgent: Other guys taunting you, snapping their fingers 2015-03-07T05:44:12Z FederalAgent: Why, faheem 2015-03-07T05:44:20Z FederalAgent: What's the matter with you, girlfriend 2015-03-07T05:44:40Z faheem_: where's a mod when you need one? 2015-03-07T05:44:42Z beach: faheem_: That strategy won't work. 2015-03-07T05:44:50Z faheem_: beach: i know. 2015-03-07T05:45:20Z beach: drmeister: There may be an example in SICL somewhere. 2015-03-07T05:45:44Z FederalAgent: Oh my god, the looks I get when I say thistle or Thursday 2015-03-07T05:46:10Z FederalAgent: Brb, I'll be back with two shakes of a tail feather 2015-03-07T05:46:15Z FederalAgent: Within* 2015-03-07T05:46:18Z FederalAgent: Silly me 2015-03-07T05:46:23Z FederalAgent: Heavens to betsy 2015-03-07T05:46:48Z corehello quit (Quit: Leaving) 2015-03-07T05:46:54Z beach: drmeister: In Cleavir/Generate-AST/minimal-compilation.lisp 2015-03-07T05:47:06Z corehello joined #lisp 2015-03-07T05:47:20Z beach: drmeister: The example is for unknown variable, but you can generalize it. 2015-03-07T05:47:21Z corehello quit (Max SendQ exceeded) 2015-03-07T05:48:23Z FederalAgent: Oh my god, I had it when people generalize me 2015-03-07T05:48:29Z FederalAgent: Hate* 2015-03-07T05:48:43Z FederalAgent: I am just all butter fingers today 2015-03-07T05:49:34Z FederalAgent: Just because I dress well and speak with a lisp does not make me gay! 2015-03-07T05:49:37Z FederalAgent: Right girls? 2015-03-07T05:49:50Z gingerale joined #lisp 2015-03-07T05:49:56Z jlongster quit (Ping timeout: 256 seconds) 2015-03-07T05:52:02Z sysfault_ quit (Quit: Leaving) 2015-03-07T05:53:31Z zeitue joined #lisp 2015-03-07T05:55:34Z zadock quit (Quit: Leaving) 2015-03-07T05:55:58Z drmeister: In the slime debugger is there a way to get a list of the current restarts that are available? 2015-03-07T05:56:18Z drmeister: I'm getting "Restart CONSIDER-GLOBAL is not active." 2015-03-07T05:56:58Z drmeister: Oh wait - I have to tell it what package it's in. Never mind 2015-03-07T05:58:10Z johann quit (Read error: Connection reset by peer) 2015-03-07T05:58:31Z johann joined #lisp 2015-03-07T05:59:05Z mj-0_ joined #lisp 2015-03-07T06:01:55Z mj-0 quit (Ping timeout: 250 seconds) 2015-03-07T06:02:23Z ajtulloc_ quit (Remote host closed the connection) 2015-03-07T06:02:35Z Zenleaf joined #lisp 2015-03-07T06:02:52Z gaoyuehu` joined #lisp 2015-03-07T06:03:42Z Zenleaf quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2015-03-07T06:04:35Z jeffrin quit (Quit: Leaving) 2015-03-07T06:04:40Z gaoyuehua225 quit (Ping timeout: 256 seconds) 2015-03-07T06:07:17Z gaoyuehu` quit (Ping timeout: 264 seconds) 2015-03-07T06:12:44Z qubitnerd joined #lisp 2015-03-07T06:12:45Z _5kg quit (Ping timeout: 256 seconds) 2015-03-07T06:13:21Z sunwukong joined #lisp 2015-03-07T06:13:22Z theos quit (Disconnected by services) 2015-03-07T06:13:52Z theos joined #lisp 2015-03-07T06:16:24Z stardiviner joined #lisp 2015-03-07T06:16:52Z theos quit (Disconnected by services) 2015-03-07T06:17:10Z tmh_ joined #lisp 2015-03-07T06:17:20Z theos joined #lisp 2015-03-07T06:18:29Z drmeister: beach: Would IN-PACKAGE do the right thing when Cleavir COMPILE-FILEs code? 2015-03-07T06:21:51Z beach: drmeister: I don't think it has anything to do with Cleavir, does it? 2015-03-07T06:22:09Z beach: IN-PACKAGE is your macro and COMPILE-FILE is your function. 2015-03-07T06:22:24Z stardiviner quit (Quit: Weird in coding now, or make love, only two things push me away from IRC.) 2015-03-07T06:23:17Z drmeister: Hmm. 2015-03-07T06:23:35Z beach: drmeister: COMPILE-FILE must bind *PACKAGE* to the value of itself, and it must process each top-level form before reading the next one. 2015-03-07T06:23:55Z _pakchoi_ops quit (Remote host closed the connection) 2015-03-07T06:24:06Z angavrilov joined #lisp 2015-03-07T06:24:08Z beach: IN-PACKAGE must have a compile-time side effect to modify *PACKAGE*. 2015-03-07T06:24:38Z theos quit (Ping timeout: 246 seconds) 2015-03-07T06:24:52Z mordocai joined #lisp 2015-03-07T06:25:10Z drmeister: Perhaps it's the top-level form processing - perhaps I'm not doing that properly. 2015-03-07T06:26:12Z beach: IN-PACKAGE should do something like (eval-when (:compile-toplevel ...) (setf *package* ...)) 2015-03-07T06:26:16Z guicho joined #lisp 2015-03-07T06:26:30Z beach: And cleavir-env:eval should be called with (setf *package* ...). 2015-03-07T06:26:55Z beach: You might want to trace cleavir-env:eval and see that it is called properly. 2015-03-07T06:27:35Z drmeister: I'm running into some problems compiling asdf.lisp with Cleavir/Clasp and I obviously haven't pinned them down. 2015-03-07T06:27:59Z zyaku joined #lisp 2015-03-07T06:29:20Z beach: Does what I said seem reasonable to you? 2015-03-07T06:29:49Z mordocai quit (Ping timeout: 264 seconds) 2015-03-07T06:30:12Z theos joined #lisp 2015-03-07T06:32:00Z drmeister: Yes. 2015-03-07T06:32:17Z drmeister: It works with the Clasp compiler. It should work with Cleavir/Clasp 2015-03-07T06:32:45Z beach: Does your method on CLEAVIR-ENV:EVAL do the right thing? 2015-03-07T06:32:52Z beach: ... and is it called? 2015-03-07T06:34:12Z johann quit (Remote host closed the connection) 2015-03-07T06:34:47Z johann joined #lisp 2015-03-07T06:35:23Z theos quit (Ping timeout: 240 seconds) 2015-03-07T06:38:23Z zeitue quit (Ping timeout: 240 seconds) 2015-03-07T06:39:35Z mj-0_ quit (Remote host closed the connection) 2015-03-07T06:39:39Z vdamewood joined #lisp 2015-03-07T06:39:40Z drmeister: I don't know. I'm pretty sure it does because lots of stuff is working. 2015-03-07T06:39:41Z johann quit (Ping timeout: 264 seconds) 2015-03-07T06:39:57Z drmeister: Right now it's premature to ask you anything. 2015-03-07T06:40:03Z beach: OK. 2015-03-07T06:40:11Z drmeister: I'll run it under lldb and see if I can figure out what is happening. 2015-03-07T06:40:12Z theos joined #lisp 2015-03-07T06:40:52Z drmeister: Right now I have the function bound to *macroexpand-hook* being called with two arguments rather than three. I don't know what macro it is trying to evaluate. 2015-03-07T06:41:15Z JuanDaugherty joined #lisp 2015-03-07T06:42:46Z mj-0 joined #lisp 2015-03-07T06:50:17Z alvis` quit (Ping timeout: 245 seconds) 2015-03-07T06:51:52Z kobain quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2015-03-07T06:52:07Z zeitue joined #lisp 2015-03-07T06:52:17Z beach: Does Andy Peterson hang out here? 2015-03-07T06:52:29Z mj-0 quit (Remote host closed the connection) 2015-03-07T06:53:10Z beach: I am getting pull requests from him, so I thought I would check. 2015-03-07T06:55:15Z enaden quit (Ping timeout: 256 seconds) 2015-03-07T06:55:43Z PinealGlandOptic joined #lisp 2015-03-07T06:56:53Z _5kg joined #lisp 2015-03-07T06:57:35Z guicho quit (Quit: guicho went back to his lisp repl for hacking) 2015-03-07T06:59:16Z beach: jackdaniel: Around? 2015-03-07T07:00:35Z beach: jackdaniel: I compiled ECL and there are quite a few warnings. Some of them, I know the reason for. Do you want me to report them, and if so, how? 2015-03-07T07:00:37Z johann joined #lisp 2015-03-07T07:05:49Z johann quit (Ping timeout: 255 seconds) 2015-03-07T07:07:01Z ndrei joined #lisp 2015-03-07T07:07:45Z echo-area joined #lisp 2015-03-07T07:09:34Z manuel__ quit (Quit: manuel__) 2015-03-07T07:10:07Z ajtulloch joined #lisp 2015-03-07T07:11:05Z PinealGlandOptic quit (Quit: Lost terminal) 2015-03-07T07:12:34Z ndrei quit (Ping timeout: 265 seconds) 2015-03-07T07:14:37Z ajtulloch quit (Ping timeout: 252 seconds) 2015-03-07T07:16:33Z manuel__ joined #lisp 2015-03-07T07:22:55Z theseb quit (Ping timeout: 255 seconds) 2015-03-07T07:26:39Z huza joined #lisp 2015-03-07T07:27:33Z joast quit (Ping timeout: 265 seconds) 2015-03-07T07:28:07Z qubitnerd quit (Ping timeout: 256 seconds) 2015-03-07T07:30:09Z devll quit (Remote host closed the connection) 2015-03-07T07:30:56Z zyaku quit (Ping timeout: 272 seconds) 2015-03-07T07:30:58Z a2015 quit (Quit: Page closed) 2015-03-07T07:31:00Z _5kg quit (Ping timeout: 244 seconds) 2015-03-07T07:33:30Z mrSpec joined #lisp 2015-03-07T07:33:34Z k-dawg joined #lisp 2015-03-07T07:33:53Z quazimodo quit (Ping timeout: 240 seconds) 2015-03-07T07:35:06Z yCrazyEdd joined #lisp 2015-03-07T07:35:25Z CrazyEddy quit (Remote host closed the connection) 2015-03-07T07:35:29Z yCrazyEdd is now known as CrazyEddy 2015-03-07T07:35:43Z Quadrescence joined #lisp 2015-03-07T07:36:07Z gabriel_laddel joined #lisp 2015-03-07T07:38:15Z Ven joined #lisp 2015-03-07T07:40:20Z gabriel_laddel quit (Remote host closed the connection) 2015-03-07T07:44:08Z gklimowicz quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-03-07T07:50:02Z quazimodo joined #lisp 2015-03-07T07:50:07Z bb010g quit (Quit: Connection closed for inactivity) 2015-03-07T07:51:13Z enaden joined #lisp 2015-03-07T08:00:33Z Shinmera joined #lisp 2015-03-07T08:00:54Z cadadar joined #lisp 2015-03-07T08:01:00Z attila_lendvai joined #lisp 2015-03-07T08:01:01Z joneshf-laptop quit (Ping timeout: 264 seconds) 2015-03-07T08:01:27Z johann joined #lisp 2015-03-07T08:03:45Z hitecnologys: minion: memo for Shinmera: Got it, thank you. 2015-03-07T08:03:45Z minion: Remembered. I'll tell Shinmera when he/she/it next speaks. 2015-03-07T08:03:56Z Shinmera: But I just woke up! 2015-03-07T08:03:56Z minion: Shinmera, memo from hitecnologys: Got it, thank you. 2015-03-07T08:04:05Z hitecnologys: Oh. 2015-03-07T08:04:14Z hitecnologys: Good morning then. 2015-03-07T08:04:23Z Shinmera: Thank you. Good morning, #lisp. 2015-03-07T08:04:45Z hitecnologys: I have leave-join messages disabled if user didn't speak recently, so I didn't notice. 2015-03-07T08:05:00Z Shinmera: I read everything in the logs anyway, so no need to memo me. 2015-03-07T08:05:02Z hitecnologys: Err... haven't spoken. 2015-03-07T08:05:10Z mishoo joined #lisp 2015-03-07T08:05:11Z hitecnologys: Oh, I see. 2015-03-07T08:05:31Z hitecnologys: I had bouncer for that purpose but it's down at the moment. 2015-03-07T08:06:22Z johann quit (Ping timeout: 240 seconds) 2015-03-07T08:08:15Z Mon_Ouie joined #lisp 2015-03-07T08:10:24Z gingerale quit (Ping timeout: 246 seconds) 2015-03-07T08:13:03Z qubitnerd joined #lisp 2015-03-07T08:14:05Z pt1 joined #lisp 2015-03-07T08:14:54Z _5kg joined #lisp 2015-03-07T08:17:45Z dmiles_afk quit (Ping timeout: 246 seconds) 2015-03-07T08:20:11Z beach: Hello Shinmera. 2015-03-07T08:21:10Z dmiles_afk joined #lisp 2015-03-07T08:21:33Z beach: Quadrescence: I implemented the bit-reversal algorithm in C and it is not significantly faster than the Common Lisp version, and it is because it is still allocating stack frames. A faster version would have to be written in assembler I think. 2015-03-07T08:21:59Z Quadrescence: beach, Of course, asm gives you the most precise control. :) 2015-03-07T08:22:31Z beach: Sure. But it might have been possible for the compiler to detect that no stack frame is required. 2015-03-07T08:22:35Z beach: But it didn't. 2015-03-07T08:23:07Z Quadrescence: It sounds like that shouldn't be a hard addition, but maybe I'm not thinking of all the corner cases of function calling. 2015-03-07T08:23:19Z beach: Addition to the compiler? 2015-03-07T08:23:21Z Quadrescence: yes 2015-03-07T08:23:25Z beach: I agree. 2015-03-07T08:23:55Z jtza8 joined #lisp 2015-03-07T08:24:05Z ggole quit (Read error: Connection reset by peer) 2015-03-07T08:24:09Z beach: Oh, and I have a slightly more complicated FFT already written. I think it uses radix 4 if possible. Do you want it, or do you want to wait for a simpler radix 2? 2015-03-07T08:24:38Z beach: I guess I am asking whether you just want a working FFT or you want something you can study and improve. 2015-03-07T08:25:04Z ggole joined #lisp 2015-03-07T08:25:55Z Quadrescence: beach, I have a couple working FFTs, I just really wanted an in-place recursive one that works. I don't have that. 2015-03-07T08:26:07Z beach: Yours are iterative? 2015-03-07T08:26:16Z Quadrescence: Yes. 2015-03-07T08:26:39Z beach: OK, sometime this weekend I'll send you what I have and I'll see about implementing a simpler one. 2015-03-07T08:26:52Z beach: Mine is definitely recursive. 2015-03-07T08:26:53Z Quadrescence: beach, https://bitbucket.org/tarballs_are_good/lisp-random/src/3a07e2c911680176f14abbd3226ab08b11c1d47d/number-theoretic-transform.lisp?at=default#cl-522 2015-03-07T08:28:16Z beach: What am I looking at? The iterative version? 2015-03-07T08:28:21Z Quadrescence: yes 2015-03-07T08:28:25Z beach: OK. 2015-03-07T08:29:03Z Quadrescence: I did think of something. If all one plans to do is a pointwise operation in the frequency domain, then really, bit reversal isn't necessary if you do a decimation-in-frequency transformation forward, and a decimation-in-time transformation backward. 2015-03-07T08:29:18Z ruste quit (Read error: Connection reset by peer) 2015-03-07T08:29:34Z k-dawg quit (Quit: This computer has gone to sleep) 2015-03-07T08:30:01Z beach: I don't know what that means, but I am willing to believe you. 2015-03-07T08:32:19Z Quadrescence: beach, DIF bit-reverses an input vector, DIT requires the input vector to be bit-reversed before being processed 2015-03-07T08:33:18Z Quadrescence: if DIF is going to bit-reverse your input as a part of the transformation, and in the end you just want to do the equivalent of a pure MAP operation, then you do a DIF without bit reversal at the end, and do the reverse transform using DIT, which---again---expects the data input to be in bit-reversed order already 2015-03-07T08:34:20Z fb8py joined #lisp 2015-03-07T08:34:27Z fb8py quit (Max SendQ exceeded) 2015-03-07T08:34:54Z ehu joined #lisp 2015-03-07T08:35:01Z oleo_ joined #lisp 2015-03-07T08:35:03Z fb8py joined #lisp 2015-03-07T08:35:54Z Quadrescence: (the difference computationally between DIF and DIT is whether you recurse then process, or process then recurse) 2015-03-07T08:36:22Z beach: I see. 2015-03-07T08:36:28Z dmiles_akf joined #lisp 2015-03-07T08:37:17Z oleo quit (Ping timeout: 252 seconds) 2015-03-07T08:38:59Z dmiles_afk quit (Ping timeout: 245 seconds) 2015-03-07T08:39:01Z ggole quit (Read error: Connection reset by peer) 2015-03-07T08:39:31Z stepnem joined #lisp 2015-03-07T08:40:03Z dmiles_afk joined #lisp 2015-03-07T08:40:12Z ggole joined #lisp 2015-03-07T08:40:51Z dmiles_akf quit (Ping timeout: 246 seconds) 2015-03-07T08:41:59Z ggole quit (Read error: Connection reset by peer) 2015-03-07T08:43:00Z ggole joined #lisp 2015-03-07T08:45:51Z fb8py quit (Quit: Leaving) 2015-03-07T08:46:13Z mj-0 joined #lisp 2015-03-07T08:50:02Z scymtym joined #lisp 2015-03-07T08:52:38Z dmiles_afk quit (Ping timeout: 244 seconds) 2015-03-07T08:52:54Z dmiles_afk joined #lisp 2015-03-07T08:53:28Z pt1 quit (Remote host closed the connection) 2015-03-07T08:57:39Z dmiles_afk quit (Ping timeout: 256 seconds) 2015-03-07T08:59:35Z jtza8 quit (Ping timeout: 250 seconds) 2015-03-07T09:02:10Z johann joined #lisp 2015-03-07T09:02:12Z huza quit (Ping timeout: 246 seconds) 2015-03-07T09:02:28Z sol__ joined #lisp 2015-03-07T09:03:09Z mj-0 quit (Remote host closed the connection) 2015-03-07T09:03:53Z manuel__ quit (Ping timeout: 240 seconds) 2015-03-07T09:06:29Z mj-0 joined #lisp 2015-03-07T09:06:38Z cyphase quit (Ping timeout: 265 seconds) 2015-03-07T09:06:57Z johann quit (Ping timeout: 245 seconds) 2015-03-07T09:08:28Z mishoo quit (Ping timeout: 272 seconds) 2015-03-07T09:11:41Z manuel__ joined #lisp 2015-03-07T09:12:59Z ecraven joined #lisp 2015-03-07T09:14:29Z attila_lendvai quit (Ping timeout: 264 seconds) 2015-03-07T09:15:49Z dmiles_afk joined #lisp 2015-03-07T09:16:23Z sol__ quit (Ping timeout: 240 seconds) 2015-03-07T09:17:11Z ovenpasta joined #lisp 2015-03-07T09:19:12Z ndrei joined #lisp 2015-03-07T09:19:20Z cyphase joined #lisp 2015-03-07T09:20:01Z dmiles_afk quit (Ping timeout: 244 seconds) 2015-03-07T09:20:30Z _5kg quit (Ping timeout: 272 seconds) 2015-03-07T09:21:08Z zeitue quit (Ping timeout: 272 seconds) 2015-03-07T09:24:25Z enaden quit (Ping timeout: 264 seconds) 2015-03-07T09:24:32Z pt1 joined #lisp 2015-03-07T09:24:49Z ovenpasta quit (Ping timeout: 245 seconds) 2015-03-07T09:30:19Z mj-0 quit (Remote host closed the connection) 2015-03-07T09:31:21Z harish joined #lisp 2015-03-07T09:33:49Z zeitue joined #lisp 2015-03-07T09:36:07Z cyphase quit (Ping timeout: 265 seconds) 2015-03-07T09:37:12Z Quadrescence: Is there any reason to use GENSYM over, say, #:G, when doing once-only variables? 2015-03-07T09:37:43Z dmiles_afk joined #lisp 2015-03-07T09:38:07Z kbtr joined #lisp 2015-03-07T09:38:29Z Quadrescence: (well, not just once-only, whatever gensym'd stuff you need in macros) 2015-03-07T09:38:36Z quazimodo quit (Ping timeout: 246 seconds) 2015-03-07T09:38:58Z nuy_19031046 left #lisp 2015-03-07T09:39:33Z quazimodo joined #lisp 2015-03-07T09:39:49Z beach: Nested macros. 2015-03-07T09:42:39Z devll joined #lisp 2015-03-07T09:44:02Z mvilleneuve joined #lisp 2015-03-07T09:44:50Z PinealGlandOptic joined #lisp 2015-03-07T09:45:53Z dmiles_afk quit (Ping timeout: 240 seconds) 2015-03-07T09:47:21Z dmiles_afk joined #lisp 2015-03-07T09:47:22Z didpul_ quit (Ping timeout: 240 seconds) 2015-03-07T09:48:34Z cyphase joined #lisp 2015-03-07T09:49:15Z selat joined #lisp 2015-03-07T09:52:16Z xificurC joined #lisp 2015-03-07T09:54:43Z vaporatorius joined #lisp 2015-03-07T09:55:11Z dmiles_akf joined #lisp 2015-03-07T09:57:09Z dmiles_afk quit (Ping timeout: 246 seconds) 2015-03-07T09:57:35Z dmiles_afk joined #lisp 2015-03-07T09:58:04Z dmiles_afk quit (Read error: Connection reset by peer) 2015-03-07T09:58:13Z dmiles_afk joined #lisp 2015-03-07T09:58:19Z Quadrescence: Yeah, I guess so. 2015-03-07T09:58:35Z pt1 quit (Remote host closed the connection) 2015-03-07T09:59:27Z dmiles_akf quit (Ping timeout: 245 seconds) 2015-03-07T10:01:23Z manuel__ quit (Quit: manuel__) 2015-03-07T10:01:42Z dmiles_akf joined #lisp 2015-03-07T10:02:14Z defaultxr quit (Quit: gnight) 2015-03-07T10:02:22Z dmiles_afk quit (Ping timeout: 240 seconds) 2015-03-07T10:03:37Z quazimodo quit (Ping timeout: 245 seconds) 2015-03-07T10:04:34Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-03-07T10:04:42Z _5kg joined #lisp 2015-03-07T10:05:46Z quazimodo joined #lisp 2015-03-07T10:11:05Z CrazyEddy quit (Remote host closed the connection) 2015-03-07T10:12:31Z gravicappa joined #lisp 2015-03-07T10:17:55Z bin7me joined #lisp 2015-03-07T10:21:38Z pt1 joined #lisp 2015-03-07T10:22:19Z Ukari joined #lisp 2015-03-07T10:22:29Z pyon quit (Quit: ##feminism,##politics Oh, you touch my tralala... Mmm, my ding-ding-pyon!) 2015-03-07T10:23:44Z beach left #lisp 2015-03-07T10:24:33Z monod joined #lisp 2015-03-07T10:25:44Z selat quit (Read error: Connection reset by peer) 2015-03-07T10:26:59Z selat joined #lisp 2015-03-07T10:28:42Z monod: lol guys, look what url this website has: http://www.lisperati.com/ 2015-03-07T10:30:01Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-03-07T10:30:43Z mj-0 joined #lisp 2015-03-07T10:31:00Z cyphase quit (Ping timeout: 256 seconds) 2015-03-07T10:31:07Z Quadrescence: aspergati 2015-03-07T10:32:11Z Ralt joined #lisp 2015-03-07T10:33:29Z monod: hehe 2015-03-07T10:34:28Z ChoHag joined #lisp 2015-03-07T10:34:53Z mj-0 quit (Ping timeout: 246 seconds) 2015-03-07T10:36:54Z ChoHag: I just installed sbcl, emacs & slime (slime from git, the rest from packages) and I can start them but don't get a repl buffer. 2015-03-07T10:37:23Z Quadrescence: ChoHag, did you type M-x slime ? 2015-03-07T10:37:45Z ChoHag: I get an *inferior-lisp* which I can type things in to, and loading slime-mode allows me to execute things in it. 2015-03-07T10:37:50Z ChoHag: Yes I did. 2015-03-07T10:38:17Z Quadrescence: there's no *slime-repl sbcl* buffer? 2015-03-07T10:38:30Z ChoHag: No, there is not. 2015-03-07T10:39:21Z Karl_Dscc joined #lisp 2015-03-07T10:40:18Z ChoHag: Clearing out .slime (I've been buggering about withthings) didn't change anything. 2015-03-07T10:40:47Z sz0 quit (Quit: My computer has gone to sleep. ZZZzzz…) 2015-03-07T10:41:03Z pt1 quit (Remote host closed the connection) 2015-03-07T10:41:13Z munksgaard joined #lisp 2015-03-07T10:41:54Z monod quit (Ping timeout: 245 seconds) 2015-03-07T10:43:31Z cyphase joined #lisp 2015-03-07T10:44:34Z ChoHag: Compilation (the contents of *inferior-lisp* include warnings and style-warnings (from swank-loader.lisp and swank-presentations.lisp) and a note (re. integer coercion). 2015-03-07T10:44:37Z ChoHag: No errors. 2015-03-07T10:45:00Z ChoHag: s/lisp./&)/ 2015-03-07T10:45:12Z Quadrescence: maybe it just cant connect via swank 2015-03-07T10:45:21Z Quadrescence: ChoHag, i recommend you install slime via quicklisp anyway 2015-03-07T10:46:20Z ChoHag: Hmm. I am extremely wary of magic. 2015-03-07T10:46:24Z cpc26 quit (Read error: Connection reset by peer) 2015-03-07T10:46:25Z ChoHag: Especially beta magic. 2015-03-07T10:46:58Z cpc26 joined #lisp 2015-03-07T10:47:08Z Shinmera: "beta" or not doesn't say anything about the maturity of a product. 2015-03-07T10:48:40Z ChoHag: It does. It says "I'm not even confident enough of this code to remove the 'beta' tag despite innate programmer bravado" 2015-03-07T10:48:49Z ChoHag: That or "I fear lawsuits" 2015-03-07T10:48:52Z Shinmera: It doesn't, though. 2015-03-07T10:49:19Z Shinmera: And confidence, again, does not say anything about the maturity of the product. 2015-03-07T10:49:33Z Shinmera: It says something about the writer of the software, maybe, but not the software itself. 2015-03-07T10:49:43Z ChoHag: Indeed. 2015-03-07T10:49:51Z _5kg quit (Ping timeout: 252 seconds) 2015-03-07T10:50:12Z ChoHag: But be that as it may, I'm loathe to add another system to my system just to apply the correct magic to the process of downloading files. 2015-03-07T10:50:20Z Shinmera: Quicklisp is used by lots of people every day and it works just fine. 2015-03-07T10:50:37Z ChoHag: So? Windows is used by lots of people every day and it works just fine. 2015-03-07T10:50:57Z johann joined #lisp 2015-03-07T10:51:10Z ChoHag: FSVO works, but therein lies the rub. 2015-03-07T10:51:10Z Shinmera: So I don't see why you should be worried about the beta part. 2015-03-07T10:51:11Z |3b|: ChoHag: quicklisp is 'beta' due to some missing features not quality 2015-03-07T10:51:53Z |3b|: and you need to configure slime (which quicklisp can help you with, among other things) 2015-03-07T10:51:55Z Davidbrcz joined #lisp 2015-03-07T10:52:12Z |3b| doesn't remember the specifics of configuring it, since i use "magic" things to do it for me 2015-03-07T10:52:15Z ChoHag: Luckily, however, this particular VM is easy to clear back to its current state, so I can perhaps use quicklisp to see what particular part of the install incantation slime's documentation is missing. 2015-03-07T10:52:23Z |3b|: in particular the REPL is a "contrib" in slime 2015-03-07T10:52:34Z dmiles_afk joined #lisp 2015-03-07T10:52:53Z Shinmera: probably just needs (slime-setup '(slime-fancy)) 2015-03-07T10:52:56Z ChoHag: Ah well that's probably it then. 2015-03-07T10:53:16Z Shinmera: Even if you get slime running you'll want Quicklisp to manage external libraries for you. 2015-03-07T10:53:29Z ChoHag: The documentation mentions contribs as an aside after I'm "up and running". 2015-03-07T10:53:41Z |3b|: you might also want to avoid lisp implementations from linux distro packages, very few distros have enough lisp users to get any sort of quality out of the pre-packaged binaries :( 2015-03-07T10:53:41Z ChoHag: Shinmera: Probably. But base system first. Magic second. 2015-03-07T10:53:53Z Shinmera: I consider quicklisp base system, not magic. 2015-03-07T10:53:54Z ChoHag: I'm not using linux. Linux sucks arse. 2015-03-07T10:54:11Z Shinmera: If you say so. 2015-03-07T10:54:16Z ChoHag: Actually that's not true, but I'm only using it as a glorified hypervisor. 2015-03-07T10:54:47Z |3b|: ah, if you meant binary from the upstream by "package" that should be OK 2015-03-07T10:55:17Z ChoHag: I mean I built my own package using openbsd's ports system. 2015-03-07T10:55:23Z dmiles_akf quit (Ping timeout: 240 seconds) 2015-03-07T10:55:46Z johann quit (Ping timeout: 255 seconds) 2015-03-07T10:55:58Z |3b|: if that gets current source or release, that should be good 2015-03-07T10:56:26Z |3b| ony has 3rd-hand knowledge of what ports does 2015-03-07T10:56:27Z ChoHag: 1.1.14 2015-03-07T10:57:05Z |3b|: ok, so same "pick a random version" as the linux distros :( 2015-03-07T10:57:14Z |3b|: current is 1.2.9 2015-03-07T10:57:50Z |3b|: probably good enough to get started, but expect "try current version" to be first troubleshooting step if you have problems :) 2015-03-07T10:59:23Z ChoHag: If necessary, but the more software I have which diverges from what's already packaged, the more annoying busywork I have to do to keep it all running. 2015-03-07T11:00:15Z ChoHag: So far, especially if this repl-in-contrib thing works out, I've yet to encounter a problem with this lisp. 2015-03-07T11:00:47Z mj-0 joined #lisp 2015-03-07T11:01:11Z |3b|: sure, if the bugs were that obvious they wouldn't have made it into a release :) 2015-03-07T11:01:49Z ehu quit (Quit: Leaving.) 2015-03-07T11:02:43Z ChoHag: In some cases, even that isn't true. 2015-03-07T11:02:57Z pt1 joined #lisp 2015-03-07T11:03:05Z ChoHag: With some software, I wonder if its developers even try to start it occasionally. 2015-03-07T11:04:03Z |3b|: true, and i guess you are using one of the less popular ports, so probably more risks of bugs in releases 2015-03-07T11:04:35Z fierydiarreha quit (Ping timeout: 256 seconds) 2015-03-07T11:05:32Z fierydiarreha joined #lisp 2015-03-07T11:05:34Z mj-0 quit (Ping timeout: 256 seconds) 2015-03-07T11:07:28Z Odin-: Wait ... you use OpenBSD and you're messing with Lisp? 2015-03-07T11:07:39Z ChoHag: YEs. 2015-03-07T11:08:43Z Odin-: Interesting. The only OpenBSD users I know are either C freaks from hell, or use it only on specific servers/gateways. :p 2015-03-07T11:09:12Z fierydiarreha quit (Remote host closed the connection) 2015-03-07T11:09:13Z ChoHag: OpenBSD certainly has its share of colourful characters. 2015-03-07T11:12:03Z Odin-: In any case, the reality of working with dynamic languages tends to be that OS-packaged libraries are a pain to work with and generally chosen only to serve the purposes of packaged end-user software. 2015-03-07T11:12:10Z zadock joined #lisp 2015-03-07T11:12:53Z Odin-: The only exception I know is OS X homebrew, and that's really because it's driven by developers who want to be on the bleeding edge... (And isn't really 'OS-packaged', but I digress.) 2015-03-07T11:13:26Z gravicappa quit (Ping timeout: 246 seconds) 2015-03-07T11:14:27Z devll quit (Remote host closed the connection) 2015-03-07T11:15:45Z ChoHag: There is a continuum, one end of which is managed by developers cutting themselves on the bleeding edge and the other by sysadmins with scar tissue in place of skin unwilling to use anything sharper than a sponge. 2015-03-07T11:18:12Z kcj quit (Remote host closed the connection) 2015-03-07T11:18:16Z ChoHag: I am considerably closer to the latter end than the former. 2015-03-07T11:19:17Z |3b|: yeah, using system packages is good when there are people behind them 2015-03-07T11:19:30Z |3b|: unfortunately that tends to be lacking with lisp :( 2015-03-07T11:20:22Z |3b|: so rather than some stable, tested release with backported bugfixes you just get whatever was current when they packaged it... no better than what you would get from git now, just less supported 2015-03-07T11:21:01Z |3b|: and thats assuming they didn't add any subtle bugs in the process of packaging it, which isn't that uncommon 2015-03-07T11:21:12Z Ven joined #lisp 2015-03-07T11:22:52Z Odin-: *cough*c-l-c*cough* 2015-03-07T11:23:22Z ChoHag: Well I have a system set up to automatically build and deploy boxes which is almost entirely vanilla. As far as possible I plan to keep it that way. 2015-03-07T11:23:51Z ChoHag: Though it's looking like a new sbcl might be on the cards. 2015-03-07T11:24:05Z Odin-: I didn't intend any slight on OS packaging. But it's a fact that it's more oriented towards sysadmin requirements than developer requirements - a sensible orientation. 2015-03-07T11:24:20Z ChoHag: <-- sysadmin 2015-03-07T11:25:06Z Ven quit (Read error: Connection reset by peer) 2015-03-07T11:25:16Z |3b| 's point is that it tends to not meet sysadmin requirements either, in the case of CL 2015-03-07T11:25:55Z Odin-: That's true enough. 2015-03-07T11:25:57Z ChoHag: Well it does and it doesn't. 2015-03-07T11:26:18Z ChoHag: Even if sbcl is too old, the fact that it's packaged means building a new version should be relatively easy. 2015-03-07T11:26:27Z ChoHag: Most of the kinks should be worked out already. 2015-03-07T11:26:47Z ChoHag: And the necessary libraries exist and are installable. 2015-03-07T11:26:56Z |3b|: yeah, that part helps 2015-03-07T11:28:14Z ChoHag: Hmm sbcl requires lisp to build. How does it bootstrap itself? 2015-03-07T11:28:33Z |3b|: same as C compilers that need C to build 2015-03-07T11:28:35Z gravicappa joined #lisp 2015-03-07T11:29:13Z ChoHag: Sorry I guess I should have asked whether not how. 2015-03-07T11:29:44Z |3b|: lots of lisps need a specific previous version of the same lisp to build themselves, at least sbcl tries to allow building with any good enough CL :) 2015-03-07T11:30:11Z |3b|: sbcl has a portable part that builds a compiler, then uses that to compile the full final sbcl 2015-03-07T11:31:17Z |3b|: most people just use a previous version of sbcl, but they try to keep it working on at least a few other implementations 2015-03-07T11:31:36Z ChoHag: Well we'll see shortly how well 1.2.9 does on openbsd+sbcl-1.1.14. 2015-03-07T11:32:01Z paradoja joined #lisp 2015-03-07T11:32:27Z mrSpec quit (Quit: mrSpec) 2015-03-07T11:33:04Z ebrasca joined #lisp 2015-03-07T11:34:01Z mrSpec joined #lisp 2015-03-07T11:34:09Z _5kg joined #lisp 2015-03-07T11:35:22Z mj-0 joined #lisp 2015-03-07T11:38:49Z pt1 quit (Remote host closed the connection) 2015-03-07T11:39:41Z Davidbrcz quit (Ping timeout: 264 seconds) 2015-03-07T11:42:27Z zadock quit (Quit: Leaving) 2015-03-07T11:46:14Z ehu joined #lisp 2015-03-07T11:46:17Z Ven joined #lisp 2015-03-07T11:47:06Z _5kg quit (Ping timeout: 265 seconds) 2015-03-07T11:47:25Z k-stz joined #lisp 2015-03-07T11:48:24Z liqu0rice joined #lisp 2015-03-07T11:48:44Z liqu0rice quit (Client Quit) 2015-03-07T11:49:02Z liqu0rice joined #lisp 2015-03-07T11:52:27Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-03-07T11:58:37Z munksgaard quit (Ping timeout: 245 seconds) 2015-03-07T11:58:44Z pt1 joined #lisp 2015-03-07T11:59:51Z sdothum joined #lisp 2015-03-07T12:03:32Z rszeno joined #lisp 2015-03-07T12:04:15Z oleo_ quit (Quit: Leaving) 2015-03-07T12:05:30Z oleo joined #lisp 2015-03-07T12:05:44Z munksgaard joined #lisp 2015-03-07T12:06:44Z johann joined #lisp 2015-03-07T12:07:08Z pt1 quit (Remote host closed the connection) 2015-03-07T12:07:58Z CrazyEddy joined #lisp 2015-03-07T12:11:29Z johann quit (Ping timeout: 246 seconds) 2015-03-07T12:17:33Z rszeno quit (Quit: Leaving.) 2015-03-07T12:26:02Z Beetny_ quit (Ping timeout: 256 seconds) 2015-03-07T12:29:27Z ebrasca quit (Read error: Connection reset by peer) 2015-03-07T12:29:50Z ebrasca joined #lisp 2015-03-07T12:30:17Z _5kg joined #lisp 2015-03-07T12:32:04Z {0}grant quit (Ping timeout: 255 seconds) 2015-03-07T12:34:20Z RvonMises joined #lisp 2015-03-07T12:34:39Z mj-0 quit (Ping timeout: 246 seconds) 2015-03-07T12:35:06Z mj-0 joined #lisp 2015-03-07T12:39:37Z Ukari quit (Quit: Leaving.) 2015-03-07T12:41:19Z monod joined #lisp 2015-03-07T12:45:18Z ktt9 joined #lisp 2015-03-07T12:46:29Z hiroakip joined #lisp 2015-03-07T12:51:02Z Xach: burtons: still curious? 2015-03-07T12:51:39Z wz1000 joined #lisp 2015-03-07T12:52:07Z resttime joined #lisp 2015-03-07T12:52:38Z vinleod joined #lisp 2015-03-07T12:54:17Z vdamewood quit (Ping timeout: 265 seconds) 2015-03-07T12:54:24Z Shinmera: Xach: did the xterm trick I mentioned on twitter work for you? 2015-03-07T12:54:43Z Xach: Shinmera: haven't tried yet. 2015-03-07T12:54:53Z devll joined #lisp 2015-03-07T12:55:03Z vinleod is now known as vdamewood 2015-03-07T12:55:15Z hiroakip quit (Remote host closed the connection) 2015-03-07T12:55:53Z hiroakip joined #lisp 2015-03-07T12:55:59Z paradoja quit (Ping timeout: 252 seconds) 2015-03-07T12:56:02Z Xach: Shinmera: nope. 2015-03-07T12:56:32Z Xach: I get different output, but not the expected output 2015-03-07T12:56:39Z Xach: different colors, too. 2015-03-07T12:56:48Z Shinmera: hmm, hold on. 2015-03-07T12:58:06Z Shinmera: I also have "term screen-256-color" in my .screenrc. Maybe both are required for it to work. 2015-03-07T12:58:20Z mj-0 quit (Remote host closed the connection) 2015-03-07T12:58:21Z Xach gives it a try 2015-03-07T12:59:14Z Shinmera: It might also depend on the terminal you're connecting with. I'm using xfce4-terminal here. I do recall having to spend some time looking around the net to find the right option to make the keys work in screen. When I reset the $TERM to its default screen doesn't work properly anymore at least. 2015-03-07T12:59:21Z Xach: Shinmera: that improves the situation for C-right, but M-right is still busted. 2015-03-07T12:59:22Z Shinmera: *having had 2015-03-07T12:59:29Z Xach: I use xterm 2015-03-07T12:59:42Z monod: Xach, can I ask you exactly what are you trying to achieve? 2015-03-07T13:00:03Z monod: also, be short, if you prefer to! It's just a curiosity of mine 2015-03-07T13:00:09Z Xach: monod: it is an extension of discussion from http://lispblog.xach.com/post/112939066338/using-paredit-within-screen 2015-03-07T13:00:20Z monod: Thanks 2015-03-07T13:00:22Z Xach: monod: getting paredit keys to work through screen properly 2015-03-07T13:00:30Z Shinmera: Xach: I'm not sure about M-, but M- certainly works for me. 2015-03-07T13:00:31Z monod: oh :) 2015-03-07T13:00:47Z Xach: Shinmera: same. 2015-03-07T13:00:53Z Shinmera: Strange. 2015-03-07T13:01:07Z FederalAgent quit (Ping timeout: 252 seconds) 2015-03-07T13:01:16Z jtza8 joined #lisp 2015-03-07T13:02:21Z RvonMises quit (Quit: Lost terminal) 2015-03-07T13:03:34Z Shinmera: I can't find a command bound to M-right on my end, only C-M-right, which I can't test, because my wm takes precedence. 2015-03-07T13:09:22Z EvW joined #lisp 2015-03-07T13:11:33Z CrazyEddy quit (Ping timeout: 252 seconds) 2015-03-07T13:13:17Z ggole: It's bound to right-word by default 2015-03-07T13:13:46Z ggole: (M-right, that is - C-M-right is bound to forward-sexp.) 2015-03-07T13:14:10Z Ralt: Xach: for the record, I used a simple trick to execute an sql "schema file" https://github.com/Ralt/groceries/blob/master/src/db.lisp#L58-L64 2015-03-07T13:15:41Z munksgaard quit (Ping timeout: 264 seconds) 2015-03-07T13:18:11Z kami joined #lisp 2015-03-07T13:18:16Z kami: Hello #lisp 2015-03-07T13:20:52Z k-stz: Is there an attempt at collecting, say from Eric Naggums posts, the repeated arguments 2015-03-07T13:20:52Z k-stz: involving Common Lisp. As an attempt at building a rhetoric for protecting and advocating 2015-03-07T13:20:52Z k-stz: it? 2015-03-07T13:21:32Z Shinmera: I just keep bookmarks to the posts I found interesting. Xach has an archive of all public posts. 2015-03-07T13:21:49Z Shinmera: http://www.xach.com/naggum/articles/index.html 2015-03-07T13:24:53Z ehu quit (Quit: Leaving.) 2015-03-07T13:25:37Z ehu joined #lisp 2015-03-07T13:26:44Z CrazyEddy joined #lisp 2015-03-07T13:27:48Z k-stz: Shinmera: thanks, I have the feeling that I can learn a lot from him, I only read a little but they usually involved interesting arguments and insights 2015-03-07T13:28:57Z cyphase quit (Ping timeout: 256 seconds) 2015-03-07T13:29:02Z Shinmera: Here's an article that showcases a few. http://www.loper-os.org/?p=165 2015-03-07T13:31:01Z Davidbrcz joined #lisp 2015-03-07T13:33:36Z dagnachewa joined #lisp 2015-03-07T13:33:47Z qubitnerd quit (Quit: WeeChat 1.1.1) 2015-03-07T13:41:32Z cyphase joined #lisp 2015-03-07T13:46:01Z gniourf quit (Ping timeout: 250 seconds) 2015-03-07T13:46:58Z monod quit (Ping timeout: 265 seconds) 2015-03-07T13:47:17Z cadadar: Shinmera: thanks 2015-03-07T13:47:36Z Shinmera: What for? 2015-03-07T13:50:18Z cadadar: For the link to Eric Naggum statements 2015-03-07T13:50:40Z Shinmera: Ah. Sure. 2015-03-07T13:50:57Z gniourf joined #lisp 2015-03-07T13:50:59Z zadock joined #lisp 2015-03-07T13:51:16Z Davidbrcz quit (Ping timeout: 255 seconds) 2015-03-07T13:52:51Z cpc26_ joined #lisp 2015-03-07T13:54:17Z cpc26 quit (Ping timeout: 252 seconds) 2015-03-07T13:55:30Z johann joined #lisp 2015-03-07T13:55:46Z bin7me quit (Quit: Leaving) 2015-03-07T14:00:09Z johann quit (Ping timeout: 252 seconds) 2015-03-07T14:00:40Z Petit_Dejeuner quit (Ping timeout: 256 seconds) 2015-03-07T14:03:50Z sz0 joined #lisp 2015-03-07T14:06:07Z k-stz: " second, an unskilled labor force will want job security more than intellectual challenges (to some the very antithesis of job security)." pithy and provocative 2015-03-07T14:06:45Z k-stz: Shinmera: yes nice read, thanks again 2015-03-07T14:08:36Z jtza8 quit (Ping timeout: 256 seconds) 2015-03-07T14:10:11Z monod joined #lisp 2015-03-07T14:10:32Z mishoo joined #lisp 2015-03-07T14:12:37Z k-stz: whenever I tend to agree a lot with someone I will search for the one disagreeing with him, after reading Paul Grahams essays I discovered Lisp, then I read someone disagreeing with him, Xah Lee, and discovered UseNet, and finally, in that local chain, Eric Naggum 2015-03-07T14:12:52Z Xach: the name is Erik 2015-03-07T14:19:34Z johann joined #lisp 2015-03-07T14:20:03Z LiamH joined #lisp 2015-03-07T14:20:13Z k-stz: oh right 2015-03-07T14:22:23Z cluck joined #lisp 2015-03-07T14:25:11Z pyon joined #lisp 2015-03-07T14:25:30Z qubitnerd joined #lisp 2015-03-07T14:29:08Z CrazyEddy quit (Remote host closed the connection) 2015-03-07T14:30:24Z CrazyEddy joined #lisp 2015-03-07T14:31:14Z EvW quit (Remote host closed the connection) 2015-03-07T14:31:24Z EvW joined #lisp 2015-03-07T14:36:11Z sz0 quit (Quit: My computer has gone to sleep. ZZZzzz…) 2015-03-07T14:38:19Z khisanth_ is now known as Khisanth 2015-03-07T14:40:47Z {0}grant joined #lisp 2015-03-07T14:41:06Z badkins joined #lisp 2015-03-07T14:42:31Z ndrei quit (Remote host closed the connection) 2015-03-07T14:42:48Z ajtulloch joined #lisp 2015-03-07T14:44:29Z hiroakip quit (Ping timeout: 244 seconds) 2015-03-07T14:45:19Z davazp joined #lisp 2015-03-07T14:47:44Z qlkzy joined #lisp 2015-03-07T14:51:48Z tooner joined #lisp 2015-03-07T14:56:23Z alvis` joined #lisp 2015-03-07T14:57:24Z {0}grant quit (Ping timeout: 244 seconds) 2015-03-07T14:57:54Z EvW quit (Ping timeout: 256 seconds) 2015-03-07T15:00:56Z zyaku joined #lisp 2015-03-07T15:03:30Z johann quit (Remote host closed the connection) 2015-03-07T15:04:03Z johann joined #lisp 2015-03-07T15:04:05Z sz0 joined #lisp 2015-03-07T15:06:07Z ChoHag: sbcl on openbsd doesn't support threads. When I connect slime and run clfswm in slime's repl, I can't send forms to sbcl or interact with *inferior-lisp* until clfswm quits, however when I run clfswm in *inferior-lisp*, I can interact with slime/sbcl (C-c C-c, C-x C-e, etc.) and the repl. 2015-03-07T15:07:44Z manuel__ joined #lisp 2015-03-07T15:08:37Z johann quit (Ping timeout: 245 seconds) 2015-03-07T15:10:03Z ChoHag: How can I either make sense of that, or instruct emacs from the command line to run a bunch of forms in the *inferior-lisp* buffer and pretend the problem doesn't exist? 2015-03-07T15:11:38Z gklimowicz joined #lisp 2015-03-07T15:12:40Z ggole: ChoHag: are you saying you'd like to run some code in the *inferior-lisp* buffer on each startup? 2015-03-07T15:12:50Z ChoHag: Yes. 2015-03-07T15:13:09Z ChoHag: That or work out what these non-threaded-threads are up to. 2015-03-07T15:13:31Z ggole: You can add an entry to inferior-lisp-mode-hook in .emacs 2015-03-07T15:13:46Z ggole: Are you an experienced emacs user? 2015-03-07T15:14:14Z ChoHag: The experience was a few years ago. 2015-03-07T15:14:23Z ChoHag: But yes. 2015-03-07T15:16:31Z ggole: It's possible that another hook variable would be more appropriate... 2015-03-07T15:17:58Z ChoHag: Do you ellipsise because you know but are afraid to suggest it, or because you're theorising? 2015-03-07T15:18:32Z ggole: The latter. 2015-03-07T15:18:53Z ChoHag: Right. :) 2015-03-07T15:19:10Z fantazo joined #lisp 2015-03-07T15:19:14Z ggole: The idea was that if you tried it and it didn't work, I would proceed to "Oh, hmm, what about slime-connected-hook?" 2015-03-07T15:19:22Z ggole: Or something along those lines 2015-03-07T15:19:29Z burtons quit (Ping timeout: 246 seconds) 2015-03-07T15:20:51Z pt1 joined #lisp 2015-03-07T15:24:32Z Ethan- quit (Ping timeout: 256 seconds) 2015-03-07T15:25:06Z devll quit (Remote host closed the connection) 2015-03-07T15:25:54Z Natch quit (Ping timeout: 264 seconds) 2015-03-07T15:28:29Z d4ryus_ joined #lisp 2015-03-07T15:29:50Z Natch joined #lisp 2015-03-07T15:31:51Z d4ryus quit (Ping timeout: 265 seconds) 2015-03-07T15:32:42Z clop joined #lisp 2015-03-07T15:34:32Z hiroakip joined #lisp 2015-03-07T15:35:28Z fxer quit (Ping timeout: 250 seconds) 2015-03-07T15:39:40Z Davidbrcz joined #lisp 2015-03-07T15:40:21Z drmeister: asdf is a beast - it has these huge eval-when forms - they are causing me grief. 2015-03-07T15:40:51Z drmeister: I think I'm getting recursive loops that are so deep that they are crashing my stack. 2015-03-07T15:41:04Z Shinmera: eval-when is a beast in itself. http://fare.livejournal.com/146698.html 2015-03-07T15:41:52Z drmeister: It's apropos that the person who wrote that is also partially responsible for the size of the eval-when forms I'm dealing with. 2015-03-07T15:44:49Z ndrei joined #lisp 2015-03-07T15:48:42Z johann joined #lisp 2015-03-07T15:50:54Z ebrasca quit (Remote host closed the connection) 2015-03-07T15:54:41Z hiyosi joined #lisp 2015-03-07T15:55:32Z qubitnerd is now known as Eru 2015-03-07T15:55:35Z ndrei quit (Ping timeout: 250 seconds) 2015-03-07T15:57:37Z Grue`: it's probably a consequence of the fact that asdf has to be in one file 2015-03-07T15:59:13Z pjb: - 2015-03-07T15:59:44Z Eru quit (Quit: WeeChat 1.1.1) 2015-03-07T16:05:32Z paroneayea quit (Read error: Connection reset by peer) 2015-03-07T16:05:55Z paroneayea joined #lisp 2015-03-07T16:08:20Z joneshf-laptop joined #lisp 2015-03-07T16:09:52Z alvis` quit (Ping timeout: 245 seconds) 2015-03-07T16:11:29Z Davidbrcz quit (Ping timeout: 265 seconds) 2015-03-07T16:13:23Z ndrei joined #lisp 2015-03-07T16:14:07Z kami: Anybody here who has used Allegro's DNS server or this: https://github.com/hanshuebner/ans ? 2015-03-07T16:17:48Z mega1 joined #lisp 2015-03-07T16:23:01Z isoraqathedh: Today: https://40.media.tumblr.com/52e44eecf3fb37bb82aa06670f786fe5/tumblr_nkun6t6lhC1r1bfb0o1_1280.jpg 2015-03-07T16:23:07Z isoraqathedh: Whoops wrong chat. 2015-03-07T16:23:08Z isoraqathedh: Sorry. 2015-03-07T16:26:21Z Vutral quit (Ping timeout: 250 seconds) 2015-03-07T16:28:14Z cpc26 joined #lisp 2015-03-07T16:28:36Z sol__ joined #lisp 2015-03-07T16:29:50Z ajtulloch quit (Remote host closed the connection) 2015-03-07T16:29:51Z clop quit (Ping timeout: 256 seconds) 2015-03-07T16:30:46Z ajtulloch joined #lisp 2015-03-07T16:31:24Z cpc26_ quit (Ping timeout: 256 seconds) 2015-03-07T16:34:17Z emaczen joined #lisp 2015-03-07T16:34:28Z kobain joined #lisp 2015-03-07T16:34:50Z kobain quit (Max SendQ exceeded) 2015-03-07T16:35:09Z kobain joined #lisp 2015-03-07T16:35:40Z kobain quit (Max SendQ exceeded) 2015-03-07T16:35:58Z kobain joined #lisp 2015-03-07T16:36:31Z kobain quit (Max SendQ exceeded) 2015-03-07T16:36:35Z alvin1 joined #lisp 2015-03-07T16:36:55Z kobain joined #lisp 2015-03-07T16:37:25Z kobain quit (Max SendQ exceeded) 2015-03-07T16:37:44Z kobain joined #lisp 2015-03-07T16:38:03Z alvin1 quit (Client Quit) 2015-03-07T16:38:12Z kobain quit (Client Quit) 2015-03-07T16:40:51Z emaczen: can I define a defmethod specializing on a class with the same name as a variable in the class even if I already have given this variable an accessor name? 2015-03-07T16:42:44Z emaczen: I don't think I can, I think the accessor already makes a defmethod with this name. 2015-03-07T16:42:50Z clop joined #lisp 2015-03-07T16:42:58Z emaczen: Is there anyway to "overload" this without keyed arguments 2015-03-07T16:43:03Z emaczen: My class has a table object 2015-03-07T16:43:04Z Pastaf joined #lisp 2015-03-07T16:43:16Z emaczen: the table is a 2 dimensional array 2015-03-07T16:43:35Z emaczen: I want to be able to write (tbl 0 0) and for it to be setfable 2015-03-07T16:44:49Z ``Erik quit (Ping timeout: 264 seconds) 2015-03-07T16:45:15Z splittist: emaczen: I'm only playing buzzword bingo here, but have you looked at funcallable classes? 2015-03-07T16:45:37Z cabaire joined #lisp 2015-03-07T16:45:58Z emaczen: splittist: I've never heard of that term. 2015-03-07T16:46:14Z ajtulloch quit (Remote host closed the connection) 2015-03-07T16:46:33Z fxer joined #lisp 2015-03-07T16:46:34Z emaczen: I'm only really looking to override an accessor so that I can get the entire object, or get indices in the entire object and have it be setfable 2015-03-07T16:47:48Z drmeister: emaczen: tbl is an object? You could define: (defun (setf table-set) (table x y) ...) Then (setf (table-set tbl 0 0) val) 2015-03-07T16:48:19Z Shinmera: your setf function is wrong 2015-03-07T16:48:28Z drmeister: Is it? 2015-03-07T16:48:33Z Shinmera: (defun (setf tbl) (value table x y) ...) 2015-03-07T16:48:36Z Shinmera: you forgot the value 2015-03-07T16:48:51Z emaczen: tbl is a field in a class 2015-03-07T16:49:04Z Shinmera: There are no fields, only slots. 2015-03-07T16:49:15Z emaczen: Yes, sorry I forgot the terminology 2015-03-07T16:49:22Z emaczen: tbl is a slot in a class 2015-03-07T16:49:31Z Shinmera: You don't need to define an accessor on a slot to get its value. 2015-03-07T16:49:47Z Shinmera: And if you want to you can just call it something else. 2015-03-07T16:50:08Z EvW joined #lisp 2015-03-07T16:50:28Z emaczen: Shinmera: I want one name to give me the entire table, as well as individual elements in the table 2015-03-07T16:50:50Z drmeister: Hmf - I'm not good at giving advice - ignore me. 2015-03-07T16:50:50Z emaczen: e.g. tbl would give me everything and (tbl 0 0) would give me the first entry 2015-03-07T16:50:57Z paradoja joined #lisp 2015-03-07T16:51:07Z davazp quit (Ping timeout: 245 seconds) 2015-03-07T16:51:08Z Natch quit (Ping timeout: 246 seconds) 2015-03-07T16:51:19Z drmeister: Anyway - just use AREF 2015-03-07T16:51:21Z Shinmera: Just use optional arguments 2015-03-07T16:51:29Z sol__ quit (Ping timeout: 246 seconds) 2015-03-07T16:51:45Z drmeister trundles off to write his own buggy software. 2015-03-07T16:51:48Z Shinmera: (defun tbl (thing &optional x y) (if x (aref (slot-value thing 'tbl) x y) (slot-value thing 'tbl))) 2015-03-07T16:51:51Z emaczen: drmeister: (aref (aref tbl i) j))) is ugly 2015-03-07T16:52:08Z ajtulloch joined #lisp 2015-03-07T16:52:16Z Shinmera: And similarly for the setf function 2015-03-07T16:52:18Z yeticry quit (Read error: Connection reset by peer) 2015-03-07T16:52:39Z keen__________81 joined #lisp 2015-03-07T16:52:56Z drmeister: I've spent a lot of time implementing Common Lisp features, less time using them. 2015-03-07T16:53:18Z Shinmera: drmeister: I've always found that a very problematic aspect of your endeavours, to be honest. 2015-03-07T16:53:30Z Octothorpe joined #lisp 2015-03-07T16:53:39Z keen__________80 quit (Ping timeout: 244 seconds) 2015-03-07T16:54:50Z drmeister: Shinmera: Well, the people who know Common Lisp cold seem to be very satisfied with it and haven't gotten around to making it talk to C++ or use LLVM so here I am. 2015-03-07T16:55:01Z edgar-rft quit (Quit: edgar-rft) 2015-03-07T16:55:13Z Natch joined #lisp 2015-03-07T16:55:19Z acieroid quit (Ping timeout: 255 seconds) 2015-03-07T16:55:37Z yeticry joined #lisp 2015-03-07T16:56:05Z drmeister: Case in point: If I define a function where I need to use: (require :asdf) followed by (asdf:load-system :clasp-cleavir) How would I do that? 2015-03-07T16:56:49Z drmeister: (defun compile-clasp-using-cleavir () (require :asdf) (asdf:load-system :clasp-cleavir) ...) 2015-03-07T16:56:56Z drmeister: Is not going to compile. 2015-03-07T16:56:57Z Shinmera: (funcall (find-symbol "LOAD-SYSTEM" "ASDF") :clasp-cleavir) 2015-03-07T16:57:06Z drmeister: Ok 2015-03-07T16:57:08Z Shinmera: caveat: requires :UPCASE readtable 2015-03-07T16:57:09Z drmeister: Thank you. 2015-03-07T16:57:33Z drmeister: That will be the default at this point - thank you. 2015-03-07T16:57:50Z Shinmera: I still worry about it a lot even though I never expect it to be anything but that 2015-03-07T16:58:02Z munksgaard joined #lisp 2015-03-07T16:58:17Z ovenpasta joined #lisp 2015-03-07T16:58:52Z Vutral joined #lisp 2015-03-07T16:58:57Z qubitnerd joined #lisp 2015-03-07T16:58:59Z monod quit (Ping timeout: 245 seconds) 2015-03-07T16:59:14Z drmeister: Since I'm having problems compiling ASDF I'll tackle compiling the Clasp Common Lisp source instead. 2015-03-07T16:59:15Z cadadar quit (Quit: Leaving.) 2015-03-07T16:59:44Z ovenpasta quit (Client Quit) 2015-03-07T16:59:45Z drmeister: Shinmera: I may not be really strong in Common Lisp yet but my code is. 2015-03-07T17:00:09Z drmeister: It does compile itself, ASDF, SLIME and Quicklisp and Cleavir. 2015-03-07T17:00:12Z ovenpasta joined #lisp 2015-03-07T17:00:24Z davazp joined #lisp 2015-03-07T17:00:55Z sol__ joined #lisp 2015-03-07T17:00:57Z joast joined #lisp 2015-03-07T17:01:01Z drmeister: Yes there will be corner cases that need to be ferreted out - but any differences between Clasp's behavior and the CLHS are considered bugs in Clasp. 2015-03-07T17:01:19Z Shinmera: Still, you wrote that code, and enough of the code responsible is in Common Lisp. So I'd be a lot more comfortable if I knew you had spent some time just writing "pure CL programs" outside of Clasp to get a better idea about CL itself. 2015-03-07T17:01:46Z drmeister: I yam what I yam. 2015-03-07T17:01:57Z H4ns: Shinmera: your point being? 2015-03-07T17:02:27Z splittist: a coding marathon at ELS? 2015-03-07T17:02:28Z drmeister: Don't worry about it - I'm in no way offended. 2015-03-07T17:02:39Z Shinmera: H4ns: My point isn't much beyond "I don't feel quite comfortable". 2015-03-07T17:02:46Z drmeister: I am painfully aware of my limitations. 2015-03-07T17:02:49Z munksgaard quit (Ping timeout: 264 seconds) 2015-03-07T17:03:24Z acieroid joined #lisp 2015-03-07T17:05:16Z Shinmera: I don't know. I just think getting a good feeling for the language you're targetting is a good idea before writing a compiler for it. But hey, Clasp proves me wrong in a sense, I suppose. 2015-03-07T17:05:32Z sol__ quit (Ping timeout: 244 seconds) 2015-03-07T17:05:32Z pt1 quit (Remote host closed the connection) 2015-03-07T17:05:33Z emaczen: what is clasp/ 2015-03-07T17:05:56Z Shinmera: codebrainz: tell emaczen about clasp 2015-03-07T17:05:59Z Shinmera: ech 2015-03-07T17:06:03Z Shinmera: Colleen: tell emaczen about clasp 2015-03-07T17:06:04Z Colleen: emaczen, look at "clasp": Clasp is a Common Lisp implementation that interoperates with C++ and uses LLVM for just-in-time (JIT) compilation to native code. https://github.com/drmeister/clasp 2015-03-07T17:06:16Z Shinmera shakes his fist at tab completion 2015-03-07T17:07:39Z emaczen: Can you give me some comparisons? Why is this compiler better than SBCL? 2015-03-07T17:08:02Z devll joined #lisp 2015-03-07T17:08:54Z Shinmera: Because it interoperates with C++ 2015-03-07T17:08:57Z ``Erik joined #lisp 2015-03-07T17:09:18Z Shinmera: That's its main feature and raison d'être 2015-03-07T17:09:38Z zacts joined #lisp 2015-03-07T17:10:12Z emaczen: How long as clasp been around? 2015-03-07T17:10:49Z Shinmera: Some years, or none at all, depending on what you mean by "being around" 2015-03-07T17:11:43Z pt1 joined #lisp 2015-03-07T17:12:24Z emaczen: Why would you want to interoperate with c++? 2015-03-07T17:13:00Z Shinmera: One reason is because there's a lot of applications and libraries written in C++ and it'd be nice to be able to use them from C++ 2015-03-07T17:13:06Z Shinmera: Is that really so hard to think of yourself? 2015-03-07T17:13:14Z Shinmera: *use them from CL 2015-03-07T17:13:20Z vdamewood quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-03-07T17:13:45Z emaczen: I already thought of that point, but I am thinking more along the lines of c++ dying? 2015-03-07T17:14:04Z emaczen: If this compiler is "new" then I would say it is a bit late... 2015-03-07T17:14:11Z Shinmera: C++ won't just vanish. 2015-03-07T17:14:29Z emaczen: Yeah, I don't really know of C++'s influence 2015-03-07T17:14:29Z H4ns: emaczen: c++ is dying? what do you mean by that? 2015-03-07T17:14:42Z Xof: it's a more refined version of "lisp is dying" 2015-03-07T17:14:45Z jackdaniel: what is ,memo syntax? or where i can find manual? 2015-03-07T17:15:00Z H4ns: ah, right. clasp is the perfect marriage then. 2015-03-07T17:15:04Z Shinmera: jackdaniel: minion: memo for PERSON: MESSAGE 2015-03-07T17:15:14Z jackdaniel: Shinmera: thanks 2015-03-07T17:15:59Z jackdaniel: minion: memo for beach: it would be great, thanks!, you can report it at http://sourceforge.net/p/ecls/_list/tickets, or mail me at jackdaniel@hellsgate.pl :-) 2015-03-07T17:15:59Z minion: Remembered. I'll tell beach when he/she/it next speaks. 2015-03-07T17:17:03Z emaczen quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-03-07T17:17:12Z oleo quit (Quit: Leaving) 2015-03-07T17:17:22Z hiroakip quit (Ping timeout: 245 seconds) 2015-03-07T17:18:23Z oleo joined #lisp 2015-03-07T17:18:31Z oleo quit (Changing host) 2015-03-07T17:18:31Z oleo joined #lisp 2015-03-07T17:18:50Z brian_o joined #lisp 2015-03-07T17:20:05Z johann quit (Remote host closed the connection) 2015-03-07T17:20:31Z oleo quit (Read error: Connection reset by peer) 2015-03-07T17:20:40Z johann joined #lisp 2015-03-07T17:23:53Z Shinmera is cursing at the size limitations of slides. Can't even put a minimal "hello world button" example on without it clipping 2015-03-07T17:25:16Z mj-0 joined #lisp 2015-03-07T17:25:17Z mj-0 quit (Remote host closed the connection) 2015-03-07T17:25:38Z johann quit (Ping timeout: 272 seconds) 2015-03-07T17:27:13Z oleo joined #lisp 2015-03-07T17:29:41Z davazp quit (Ping timeout: 246 seconds) 2015-03-07T17:29:46Z mj-0 joined #lisp 2015-03-07T17:32:16Z pt1 quit (Remote host closed the connection) 2015-03-07T17:32:50Z splittist: That's why God made ellipses ... 2015-03-07T17:33:40Z Shinmera: I managed to squeeze things in just barely by reducing variable name length 2015-03-07T17:34:25Z splittist: emoji vrbls! 2015-03-07T17:37:27Z splittist: Anyway, what with Goldsmiths being a world renowned arts institution I can only assume the presentations will be done in full 4k cinema projection with ground-breaking 3d sound 2015-03-07T17:37:42Z Shinmera: Here's a screenshot of the code in question so that this is relevant to CL rather than just a rant https://filebox.tymoon.eu/file/TkRNeg== 2015-03-07T17:39:44Z splittist: Shinmera: compelling 2015-03-07T17:41:42Z Shinmera: I hope it is! :) 2015-03-07T17:45:38Z mishoo quit (Ping timeout: 256 seconds) 2015-03-07T17:45:44Z boogie joined #lisp 2015-03-07T17:49:07Z cyphase quit (Ping timeout: 265 seconds) 2015-03-07T17:50:16Z splittist: Shinmera: Maybe it's not worth a slide - probably not - but a 'what Qt[ools] is good for; what Qt[ools] is not so good for' comment might help orient folks. 2015-03-07T17:51:14Z Shinmera: Yeah. If I had more time I'd definitely elaborate on that a lot, but I'll see what I can do with the little I have. 2015-03-07T17:52:19Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-03-07T17:52:30Z Grue`: damn, ppcre not accepting (:alternation ) of one element is really annoying 2015-03-07T17:55:53Z Vutral quit (Ping timeout: 240 seconds) 2015-03-07T17:59:52Z theseb joined #lisp 2015-03-07T18:00:53Z CrazyEddy quit (Remote host closed the connection) 2015-03-07T18:01:12Z zyaku quit (Ping timeout: 246 seconds) 2015-03-07T18:01:17Z CrazyEddy joined #lisp 2015-03-07T18:01:18Z paradoja quit (Ping timeout: 264 seconds) 2015-03-07T18:01:30Z cyphase joined #lisp 2015-03-07T18:02:04Z brucem quit (Quit: ZNC - http://znc.sourceforge.net) 2015-03-07T18:03:24Z clop quit (Ping timeout: 244 seconds) 2015-03-07T18:04:08Z Ven joined #lisp 2015-03-07T18:06:58Z jlongster joined #lisp 2015-03-07T18:08:04Z manuel__ quit (Quit: manuel__) 2015-03-07T18:08:24Z Octothorpe quit (Quit: leaving) 2015-03-07T18:09:25Z pyon is now known as continuous-pyon 2015-03-07T18:10:44Z Vutral joined #lisp 2015-03-07T18:13:17Z cabaire quit (Ping timeout: 265 seconds) 2015-03-07T18:13:33Z brian_o: (make-array '(2 2) :initial-contents '((vector a b) (vector c d))) 2015-03-07T18:13:42Z brian_o: malformed :INITIAL-CONTENTS: Dimension of axis 1 is 2, but (VECTOR 2015-03-07T18:13:42Z brian_o: A B) is 3 long. 2015-03-07T18:14:02Z brian_o: oh! nm. i see it 2015-03-07T18:14:08Z brian_o: stupid quote 2015-03-07T18:16:32Z mishoo joined #lisp 2015-03-07T18:16:52Z clop joined #lisp 2015-03-07T18:19:09Z paradoja joined #lisp 2015-03-07T18:20:12Z Vutral quit (Ping timeout: 256 seconds) 2015-03-07T18:20:20Z j0nii joined #lisp 2015-03-07T18:20:55Z johann joined #lisp 2015-03-07T18:21:09Z zadock quit (Quit: Leaving) 2015-03-07T18:23:41Z manuel__ joined #lisp 2015-03-07T18:25:57Z johann quit (Ping timeout: 250 seconds) 2015-03-07T18:26:05Z manuel__ quit (Client Quit) 2015-03-07T18:29:14Z arpunk quit (Ping timeout: 265 seconds) 2015-03-07T18:30:08Z continuous-pyon is now known as garbage-pyon 2015-03-07T18:31:08Z cadadar joined #lisp 2015-03-07T18:31:26Z erikc joined #lisp 2015-03-07T18:31:54Z Vutral joined #lisp 2015-03-07T18:31:54Z Vutral quit (Changing host) 2015-03-07T18:31:54Z Vutral joined #lisp 2015-03-07T18:32:29Z arpunk joined #lisp 2015-03-07T18:37:42Z jlongster quit (Read error: Connection reset by peer) 2015-03-07T18:37:55Z qubitnerd quit (Ping timeout: 255 seconds) 2015-03-07T18:38:04Z tharugrim joined #lisp 2015-03-07T18:38:05Z jlongster joined #lisp 2015-03-07T18:38:56Z defaultxr joined #lisp 2015-03-07T18:42:11Z kushal joined #lisp 2015-03-07T18:45:04Z oleo: dewwww, we fail deductively ? 2015-03-07T18:45:44Z oleo: http://en.wikipedia.org/wiki/Fixed-point_combinator 2015-03-07T18:46:54Z ChoHag: Well that works. 2015-03-07T18:47:40Z ChoHag: On a scale of 1 to bleugh, how dirty is '(switch-to-buffer "*inferior-lisp*") (insert-file-contents "~/bin/clfswm.lisp") (end-of-buffer) (comint-send-input)' in slime-connected-hook? 2015-03-07T18:51:30Z bb010g joined #lisp 2015-03-07T18:51:46Z jlongster quit (Ping timeout: 272 seconds) 2015-03-07T18:53:07Z Bike: ChoHag: very. maybe you can just put a cl:load in swankrc? 2015-03-07T18:53:27Z Bike: or whatever it is, some global init file 2015-03-07T18:54:28Z manuel__ joined #lisp 2015-03-07T18:54:43Z ChoHag: Maybe, but it apparently has to go via the *inferior-lisp* buffer, and it has to be conditional on emacs' invocation technique. Presently depending on an environment variable. 2015-03-07T18:54:50Z josemanuel joined #lisp 2015-03-07T18:55:00Z Bike: that's, um, pretty crazy. 2015-03-07T18:55:23Z Oladon: ChoHag: what're you trying to accomplish, exactly? Just load a file when you start SLIME? 2015-03-07T18:56:02Z ChoHag: Load a file which for some when executed reason blocks slime unless run by hand in *inferior-lisp*. 2015-03-07T18:56:20Z zyaku joined #lisp 2015-03-07T18:56:21Z ChoHag: Load a file which for some reason when executed blocks slime unless run by hand in *inferior-lisp*. 2015-03-07T18:56:38Z Oladon: Sounds like you should figure out why it blocks SLIME :P 2015-03-07T18:56:46Z ChoHag: That was plan A. 2015-03-07T18:57:26Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-03-07T18:57:30Z mj-0 quit (Remote host closed the connection) 2015-03-07T18:58:28Z josemanuel quit (Client Quit) 2015-03-07T18:59:15Z mj-0 joined #lisp 2015-03-07T19:03:23Z paradoja quit (Ping timeout: 240 seconds) 2015-03-07T19:09:30Z ggole quit 2015-03-07T19:09:43Z attila_lendvai joined #lisp 2015-03-07T19:14:34Z brian_o quit (Ping timeout: 272 seconds) 2015-03-07T19:18:09Z mj-0 quit (Remote host closed the connection) 2015-03-07T19:19:25Z zygentoma joined #lisp 2015-03-07T19:22:27Z zygentoma quit (Client Quit) 2015-03-07T19:23:39Z mj-0 joined #lisp 2015-03-07T19:25:56Z boogie quit (Remote host closed the connection) 2015-03-07T19:25:59Z zadock joined #lisp 2015-03-07T19:34:53Z paradoja joined #lisp 2015-03-07T19:35:52Z alvis` joined #lisp 2015-03-07T19:42:41Z Longlius quit (Remote host closed the connection) 2015-03-07T19:44:23Z Longlius joined #lisp 2015-03-07T19:45:02Z burtons` joined #lisp 2015-03-07T19:45:40Z burtons`: hello 2015-03-07T19:47:08Z rak[f00d] is now known as rak[1] 2015-03-07T19:47:40Z yaewa quit (Quit: Leaving...) 2015-03-07T19:47:51Z erikc quit (Quit: erikc) 2015-03-07T19:47:56Z moei joined #lisp 2015-03-07T19:47:57Z burtons` is now known as burtonmz 2015-03-07T19:49:53Z burtonmz: howdy 2015-03-07T19:50:13Z liqu0rice quit (Quit: leaving) 2015-03-07T19:50:49Z Patzy quit (Ping timeout: 264 seconds) 2015-03-07T19:51:30Z Patzy joined #lisp 2015-03-07T19:52:04Z emaczen joined #lisp 2015-03-07T19:52:40Z emaczen: how do you make a function setfable? 2015-03-07T19:52:50Z emaczen: sorry 2015-03-07T19:53:07Z emaczen: How do I make an object in which my function is currently only implemented to "get" setfable 2015-03-07T19:53:32Z Shinmera: Neither of your questions make sense. 2015-03-07T19:54:12Z emaczen: Shinmera: Do you know what I am trying to get at? 2015-03-07T19:54:45Z emaczen: I'll try explaining via example then. 2015-03-07T19:54:57Z Shinmera: I'm guessing you want to be able to do (setf (foo ..) .) 2015-03-07T19:54:58Z hiroakip joined #lisp 2015-03-07T19:55:12Z emaczen: Shinmera: correct 2015-03-07T19:55:29Z Shinmera: You can do this with either defsetf, define-setf-expander, or a setf-function. The latter of which was shown to you already before when you asked your last question. 2015-03-07T19:56:54Z emaczen: Shinmera: Ok, I'll look in the logs 2015-03-07T19:57:08Z Shinmera: the gist is (defun (setf foo) (value ..) ...) 2015-03-07T19:58:29Z emaczen: Shinmera: Can you do that on a defmethod? 2015-03-07T19:59:01Z Shinmera: A generic function is still a function. So yes. 2015-03-07T19:59:55Z emaczen: what is "value" function arguments correct? 2015-03-07T20:00:07Z Shinmera: What? 2015-03-07T20:00:31Z emaczen: the gist is "(defun (setf foo) (value .. " 2015-03-07T20:00:35Z Shinmera: yeah. 2015-03-07T20:00:51Z Shinmera: I don't know what you're asking me. 2015-03-07T20:01:05Z Longlius quit (Quit: Leaving) 2015-03-07T20:01:27Z emaczen: Where can I read more about setf functions then -- I think mine isn't working because I'm not returning things that are setfable 2015-03-07T20:01:47Z Shinmera: You don't return things that are setfable. You do the setting. 2015-03-07T20:02:03Z j0ni quit (Remote host closed the connection) 2015-03-07T20:02:10Z Shinmera: (setf (foo ..) .) => (foo . ..) 2015-03-07T20:03:03Z emaczen: Okay, and setf will return the value of whatever was set right? 2015-03-07T20:03:34Z Shinmera: In this case it will return whatever foo returns. 2015-03-07T20:03:42Z Shinmera: I have you the effective expansion above. 2015-03-07T20:03:44Z Shinmera: *gave 2015-03-07T20:05:03Z Shinmera: Just look at (macroexpand '(setf (foo 0 1) 2)) 2015-03-07T20:05:32Z Shinmera: It'll tell you exactly what happens and exactly what you need to do. It's very simple. 2015-03-07T20:05:50Z ben_vulpes joined #lisp 2015-03-07T20:07:18Z emaczen: (#:NEW924) what is that? 2015-03-07T20:07:29Z emaczen: That is right after a multiple-value-bind 2015-03-07T20:07:46Z Shinmera: #:NEW924 is an uninterned symbol with the name "NEW924" 2015-03-07T20:08:00Z akkad quit (Excess Flood) 2015-03-07T20:09:40Z johann joined #lisp 2015-03-07T20:10:12Z emaczen: (FUNCALL #'(SETF FOO) what does this mean? Call setf with argument foo? 2015-03-07T20:10:30Z Shinmera: What does #' read as? 2015-03-07T20:10:40Z emaczen: get the function stored in the symbol 2015-03-07T20:10:51Z Shinmera: No 2015-03-07T20:11:08Z Shinmera: #'. is read as (FUNCTION .) 2015-03-07T20:11:19Z Shinmera: So, it's (funcall (function (setf foo)) ..) 2015-03-07T20:12:08Z Shinmera: And now, the magic trick: 2015-03-07T20:12:11Z Shinmera: clhs glossary/function name 2015-03-07T20:12:12Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/26_glo_f.htm#function_name 2015-03-07T20:12:45Z Shinmera: (setf foo) in itself is a function name. Just as it says right in your defun form. 2015-03-07T20:13:02Z Shinmera: So, (function (setf foo)) returns the function object named by (setf foo) 2015-03-07T20:13:37Z akkad joined #lisp 2015-03-07T20:14:04Z Shinmera: Which in turn means that exactly what I said will happen: setf just calls your setf-function with the value as the first argument and the rest of the place arguments. 2015-03-07T20:14:23Z johann quit (Ping timeout: 240 seconds) 2015-03-07T20:14:40Z froggey quit (Ping timeout: 255 seconds) 2015-03-07T20:15:36Z Shinmera: Or rather setf expands to a call. 2015-03-07T20:15:40Z emaczen: (setf a b) -- sets a's value to b's value right? 2015-03-07T20:15:51Z Shinmera: Yes. 2015-03-07T20:16:28Z emaczen: I don't follow what you are saying in regards too: "setf just calls your setf-function with the value as the first argument and the rest of the place arguments" 2015-03-07T20:16:28Z froggey joined #lisp 2015-03-07T20:16:44Z Shinmera: What part of that is unclear? 2015-03-07T20:17:10Z emaczen: The entire sentence 2015-03-07T20:17:32Z Shinmera: You aren't telling me what you're confused about. 2015-03-07T20:17:55Z emaczen: My first question then is what "value" 2015-03-07T20:17:59Z burtonmz quit (Ping timeout: 265 seconds) 2015-03-07T20:18:16Z Shinmera: the value you want to set your place to. 2015-03-07T20:18:37Z Longlius joined #lisp 2015-03-07T20:18:48Z fierydiarreha joined #lisp 2015-03-07T20:19:01Z zeitue quit (Ping timeout: 264 seconds) 2015-03-07T20:19:15Z emaczen: In what context is 'setf' being used in "setf just calls ..." 2015-03-07T20:19:34Z Shinmera: As I corrected, setf expands to a call. 2015-03-07T20:19:43Z Shinmera: Which is also what you're seeing in the macroexpansion. 2015-03-07T20:21:11Z emaczen: Thanks, I'm seeing how the expansion works now 2015-03-07T20:21:16Z boogie joined #lisp 2015-03-07T20:24:05Z emaczen: Also, the "magic trick" -- I'm not sure what to look at in the link you posted 2015-03-07T20:24:16Z Shinmera: function name 2015-03-07T20:25:21Z j0ni joined #lisp 2015-03-07T20:25:39Z emaczen: So the magic is "or a list (setf symbol)" right? 2015-03-07T20:25:59Z Shinmera: Yeah. Function names can be either a symbol or a list of (setf symbol). 2015-03-07T20:26:12Z Shinmera: Which allows the duality necessary to have setf-functions. 2015-03-07T20:27:17Z ajtulloch quit (Remote host closed the connection) 2015-03-07T20:31:40Z zeitue joined #lisp 2015-03-07T20:32:09Z gravicappa quit (Remote host closed the connection) 2015-03-07T20:32:44Z johann joined #lisp 2015-03-07T20:32:47Z gklimowicz quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-03-07T20:35:51Z kushal quit (Quit: Leaving) 2015-03-07T20:37:43Z burtonmz joined #lisp 2015-03-07T20:37:57Z emaczen: Shinmera: what are setf-functions good for (I want to hear an experienced one's perspective) 2015-03-07T20:39:44Z angavrilov quit (Remote host closed the connection) 2015-03-07T20:40:17Z Shinmera: So that you can integrate with setf easily? 2015-03-07T20:40:47Z Shinmera: There's defsetf and define-setf-expander, sure, but they're much more cumbersome and less intuitive for the average case. 2015-03-07T20:42:51Z fantazo quit (Quit: Verlassend) 2015-03-07T20:43:36Z emaczen: Can you call just the function part of a setf function to just "get" rather than "set" 2015-03-07T20:44:01Z Shinmera: You are still confused. 2015-03-07T20:44:13Z Shinmera: A setf function is just a function that has a neat name. 2015-03-07T20:44:58Z Shinmera: And as long as functions have distinct names you can define however many of them you want. 2015-03-07T20:45:34Z emaczen: The use case I am looking for is a "getter" and a "setter" in one -- I had an elisp macro '(tbl i j)' that expanded to (aref (aref tbl i) j) 2015-03-07T20:45:45Z emaczen: I think aref is a little different in elisp than in common lisp 2015-03-07T20:45:48Z ben_vulpes: how do i interact with common lisp objects at the repl? 2015-03-07T20:45:58Z Shinmera: ben_vulpes: What do you mean? 2015-03-07T20:46:06Z ben_vulpes: f.ex: (stumpwm:current-group) returns a thing, but i don't know the CL semantics for inspecting it. 2015-03-07T20:46:22Z Shinmera: emaczen: You define two functions. A regular function that acts as the reader, and a setf-function that acts as the writer. 2015-03-07T20:46:23Z ben_vulpes: well, prints a thing to the repl that I suspect is shorthand for the data structure in question. 2015-03-07T20:46:45Z emaczen: But this macro gave me what I was looking for, I could just call (tbl 0 0) to get what I wanted, and then I could (setf (tbl 0 0) new-value) 2015-03-07T20:46:53Z Shinmera: ben_vulpes: you can use describe 2015-03-07T20:47:07Z emaczen: Shinmera: 2015-03-07T20:47:08Z mj-0 quit (Remote host closed the connection) 2015-03-07T20:47:10Z ben_vulpes: Shinmera: lovely, thank you. 2015-03-07T20:47:12Z ChoHag quit (Remote host closed the connection) 2015-03-07T20:47:28Z robot-beethoven joined #lisp 2015-03-07T20:47:33Z adlai: ben_vulpes: if you're at a compliant repl, you can use * ** and *** 2015-03-07T20:47:47Z Shinmera: adlai: those won't tell him about what the object contains 2015-03-07T20:47:51Z ben_vulpes: those'd be the last three return values if i recall correctly? 2015-03-07T20:47:55Z Shinmera: which is what he wants and what describe does 2015-03-07T20:47:58Z Shinmera: you are correct. 2015-03-07T20:48:24Z adlai: yes, but you can call (describe *) if you're connecting to stumpwm from slime 2015-03-07T20:48:25Z ben_vulpes: uh oh. 2015-03-07T20:48:31Z ben_vulpes: looks like i'm going to be learning CLOS. 2015-03-07T20:48:51Z ben_vulpes: thanks adlai, i get it. 2015-03-07T20:48:56Z Shinmera: Why the "uh oh"? You should be ecstatic! 2015-03-07T20:49:21Z Shinmera: emaczen: Well a macro just expands. If you're lucky and it expands to something that is an accessor then it'll work. 2015-03-07T20:49:41Z Karl_Dscc quit (Remote host closed the connection) 2015-03-07T20:49:49Z ben_vulpes: Shinmera: a few years of "object oriented programming" has built up quite the pavlovian response in me 2015-03-07T20:49:52Z j0nii quit (Ping timeout: 245 seconds) 2015-03-07T20:49:53Z ben_vulpes: perhaps CLOS will break me of it! 2015-03-07T20:50:02Z Shinmera: Rest assured, CLOS is quite different. 2015-03-07T20:50:07Z emaczen: Yeah the expansion was just (aref (aref tbl i) j) (which would be tbl[i][j] in C) 2015-03-07T20:50:21Z emaczen: aref is setfable 2015-03-07T20:50:34Z Shinmera: ben_vulpes: PCL's chapters on CLOS are quite a good introduction http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html 2015-03-07T20:51:46Z ben_vulpes: thank you, Shinmera. 2015-03-07T20:51:51Z emaczen: Shinmera: can accessor be macros? 2015-03-07T20:52:01Z Shinmera: no 2015-03-07T20:52:07Z Shinmera: macros only expand. 2015-03-07T20:52:12Z Shinmera: they are not functions. 2015-03-07T20:52:28Z emaczen: I guess my accessor could just expand a macro then 2015-03-07T20:52:40Z Shinmera: You won't be able to call it functionally then. 2015-03-07T20:52:53Z emaczen: YEah, I'm just thiknking that no 2015-03-07T20:52:55Z emaczen: now* 2015-03-07T20:53:05Z Shinmera: What's the problem with just defining a reader (defun tbl (..) ..) and a writer (defun (setf tbl) (..) ..) ? 2015-03-07T20:53:22Z selat quit (Ping timeout: 272 seconds) 2015-03-07T20:53:27Z emaczen: I liked my elisp solution that just does it once :) 2015-03-07T20:53:44Z adlai: emaczen: you can define a setf-expander, but that won't be funcallable (like a setf function) 2015-03-07T20:54:03Z Shinmera: adlai: that also won't give him both reader and writer "in one" as he wants. 2015-03-07T20:54:14Z emaczen: What is funcallable (sorry if someone said it before, there is just a ton of vocabulary...) 2015-03-07T20:54:25Z Shinmera: You can use funcall on it. 2015-03-07T20:54:30Z Shinmera: As in, a function object. 2015-03-07T20:54:36Z adlai: so it can be passed to eg mapcar 2015-03-07T20:55:04Z adlai: Shinmera: setf expansions implement both reader, writer, and more! 2015-03-07T20:55:07Z selat joined #lisp 2015-03-07T20:55:27Z hiyosi quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-03-07T20:57:16Z burtonmz: didi: what's wrong with the minibuffer? 2015-03-07T20:57:58Z emaczen: adlai: reading the hyperspec on define-setf-expander -- does look like a viable solution 2015-03-07T20:58:13Z burtonmz: d'oh, wrong channel 2015-03-07T20:58:18Z adlai: ben_vulpes: also http://www.adamtornhill.com/reviews/clos.htm 2015-03-07T20:58:27Z burtonmz: getting used to the mezzano irc client 2015-03-07T20:58:44Z emaczen: adlai: accessor-fn has to return valid places right? 2015-03-07T20:59:03Z emaczen: In the definition of defin-setf-expander 2015-03-07T20:59:36Z burtonmz quit (Remote host closed the connection) 2015-03-07T21:00:07Z bb010g quit (Quit: Connection closed for inactivity) 2015-03-07T21:01:39Z ben_vulpes: adlai: thanks for the suggestion. 2015-03-07T21:01:48Z emaczen: when are arguments optional and accessed by keywords? 2015-03-07T21:02:11Z selat quit (Ping timeout: 252 seconds) 2015-03-07T21:02:19Z ben_vulpes: by the way, what's the suggested way to get information from a live lisp into emacs for scripting? 2015-03-07T21:02:23Z adlai: emaczen: access-fn actually isn't required to be a valid function, although define-setf-expander establishes it as a place that can be set 2015-03-07T21:02:29Z adlai: slime! 2015-03-07T21:03:07Z ben_vulpes: adlai: right! i have a slime, and it's working. do i connect to the swank server from my elisp functions, and capture values by running common lisp over the wire basically? 2015-03-07T21:03:12Z ben_vulpes: keep in mind i have no idea what i'm doing. 2015-03-07T21:03:18Z ben_vulpes: (but am willing and eager to learn!) 2015-03-07T21:03:51Z Shinmera: If you're just starting out, reading PCL from the beginning is a good idea. 2015-03-07T21:03:58Z emaczen: ben_vulpes: checkout the elisp function slime-eval 2015-03-07T21:04:05Z adlai: i'd suggest connecting to the swank server, then calling eg slime-eval-save 2015-03-07T21:04:13Z emaczen: I've used slime-eval to send s-expression from emacs to be evaluated by common lisp 2015-03-07T21:04:34Z Shinmera quit (Quit: しつれいしなければならないんです。) 2015-03-07T21:04:42Z Shinmera joined #lisp 2015-03-07T21:04:54Z ben_vulpes: thanks, adlai, emaczen! 2015-03-07T21:06:46Z pjb: - 2015-03-07T21:08:27Z adlai: ben_vulpes: if you're eager to learn, get a copy of amop to learn clos the hard way (but ultimately most rewarding) 2015-03-07T21:09:17Z adlai: the norvig quote about lisp (that it'll make you a better programmer even if you don't use it directly) is true about amop as well 2015-03-07T21:10:56Z monod joined #lisp 2015-03-07T21:15:06Z adlai: https://www.dreamsongs.com/Files/amop-review.pdf < how have i never seen this story before? 2015-03-07T21:21:52Z ben_vulpes: adlai: i'm more eager to learn in the service of solving my own problems. 2015-03-07T21:23:24Z Bicyclidine joined #lisp 2015-03-07T21:27:06Z pjb: adlai: perhaps because it's so recent! 2010! 2015-03-07T21:27:29Z zeitue quit (Ping timeout: 252 seconds) 2015-03-07T21:27:29Z adlai: that is actually after i read amop 2015-03-07T21:27:32Z ben_vulpes: but on the topic of CLOS and SLIME, calling (slime-eval `(common-lisp:slot-value (stumpwm:current-group) `stumpwm:name)) doesn't return the value i expect, rather it complains that NAME isn't externally available. what would the right value of 'slot' be there? 2015-03-07T21:28:22Z adlai: try 'stumpwm::name 2015-03-07T21:28:53Z ben_vulpes: ah! 2015-03-07T21:29:04Z ben_vulpes: what does the double-colon indicate? 2015-03-07T21:29:19Z pjb: that you don't expect the symbol to be exported from the package. 2015-03-07T21:29:46Z adlai: (double colon also catches external symbols) 2015-03-07T21:29:55Z adlai: so it's the safer bet whenever you're unsure 2015-03-07T21:30:03Z pjb: I didn't say that you expected the symbol not to be exported. 2015-03-07T21:30:56Z oleo is now known as Guest76401 2015-03-07T21:30:56Z oleo_ joined #lisp 2015-03-07T21:33:42Z Guest76401 quit (Ping timeout: 264 seconds) 2015-03-07T21:36:26Z sol__ joined #lisp 2015-03-07T21:39:51Z zeitue joined #lisp 2015-03-07T21:41:52Z mj-0 joined #lisp 2015-03-07T21:44:41Z mj-0 quit (Remote host closed the connection) 2015-03-07T21:46:01Z zeitue quit (Read error: Connection reset by peer) 2015-03-07T21:47:07Z sol__ quit (Ping timeout: 244 seconds) 2015-03-07T21:56:41Z burtons joined #lisp 2015-03-07T21:57:05Z manuel__ quit (Quit: manuel__) 2015-03-07T22:01:06Z zeitue joined #lisp 2015-03-07T22:01:17Z emaczen: how can I get the first row and the first column from a 2 dimensional array? 2015-03-07T22:01:57Z AntiSpamMeta quit (Quit: some code improvements) 2015-03-07T22:02:00Z emaczen: I am looking for something that is setfable and I don't want to (loop or mapcar and just return the values) 2015-03-07T22:02:11Z AntiSpamMeta joined #lisp 2015-03-07T22:07:12Z pjb: rows can be obtained by a displaced vector. For columns there's nothing built-in. 2015-03-07T22:07:29Z pjb: Therefore since you don't want to loop, you cannot do it. Good bye. 2015-03-07T22:07:38Z emaczen: pjb: what is a displaced vector? 2015-03-07T22:07:51Z pjb: a displaced array of dimension 1. 2015-03-07T22:08:07Z pjb: obviously. 2015-03-07T22:08:29Z jlongster joined #lisp 2015-03-07T22:08:33Z emaczen: What is a displaced array 2015-03-07T22:09:25Z moei quit (Quit: Leaving...) 2015-03-07T22:09:27Z pjb: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_d.htm#displaced_array 2015-03-07T22:11:35Z moei joined #lisp 2015-03-07T22:11:48Z johann quit (Remote host closed the connection) 2015-03-07T22:12:20Z johann joined #lisp 2015-03-07T22:13:18Z mksan_ joined #lisp 2015-03-07T22:17:04Z johann quit (Ping timeout: 256 seconds) 2015-03-07T22:17:57Z Jesin quit (Quit: Leaving) 2015-03-07T22:18:12Z arpunk quit (Remote host closed the connection) 2015-03-07T22:19:15Z mksan_ quit (Quit: leaving) 2015-03-07T22:23:51Z RvonMises joined #lisp 2015-03-07T22:25:09Z emaczen: pjb: I don't see how I would setf a sequence type 2015-03-07T22:26:55Z zadock quit (Quit: Leaving) 2015-03-07T22:27:06Z pjb: this is meaningless. 2015-03-07T22:27:16Z pjb: what's your question? 2015-03-07T22:27:53Z emaczen: I want to be able to do something like (setf (some-array 0) (make-list 5 0)) 2015-03-07T22:28:13Z emaczen: here some-array would be 2D and the 0 would mean to get the first row 2015-03-07T22:31:15Z emaczen: does that make any sense? 2015-03-07T22:31:32Z garbage-pyon is now known as ordered-pyon 2015-03-07T22:31:50Z emaczen: Also, you coudl do (setf (some-array 0 0) 'L) and that would set the first element of the first row 2015-03-07T22:32:19Z emaczen: If you do (some-array 0) then it just returns 2015-03-07T22:32:34Z pjb: emaczen: it make sense. 2015-03-07T22:32:36Z emaczen: So I'm not just looking for a setf-function 2015-03-07T22:32:47Z burtons: emaczen: why not make a 1d array of sequences? 2015-03-07T22:33:17Z pjb: emaczen: no, you're not looking for a setf function. You're a programmer. You don't go shopping. You program! Write it! 2015-03-07T22:33:28Z pjb: It is perfectly possible, and easy to do in lisp. 2015-03-07T22:33:30Z Bicyclidine: you could have (setf (array-row array 0) (make-list 5)) 2015-03-07T22:34:29Z pjb: I'm not in the mood to steal your fun tonight. 2015-03-07T22:34:39Z pjb: Call me a satisfied lisper. 2015-03-07T22:34:43Z emaczen: haha 2015-03-07T22:35:02Z emaczen: pjb: I thought what I am looking for (the ability to set a row would be something that is built-in) 2015-03-07T22:35:36Z pjb: It is not. This is called lisp, not matp. 2015-03-07T22:35:41Z Bicyclidine: it's not, but at least it should be pretty easy to do yourself. 2015-03-07T22:39:07Z emaczen: I either don't know something or am not communicating this correctly 2015-03-07T22:39:21Z JuanDaugherty quit (Quit: Hibernate, etc.) 2015-03-07T22:39:33Z pjb: emaczen: http://paste.lisp.org/display/146134#1 2015-03-07T22:39:59Z emaczen: Can someone give me a pointer or two? (I'm also trying to make it in one function) and then be able to setf this function 2015-03-07T22:40:29Z pjb: ie. it's trivial, and you forced me to steal your fun. 2015-03-07T22:40:40Z gklimowicz joined #lisp 2015-03-07T22:40:52Z pjb: fuck! there's no pointer, it's a simple loop! Can't you write a simple loop? 2015-03-07T22:41:25Z burtons stands back 2015-03-07T22:41:35Z pjb: And the usual way is to have TWO functions, a setter and a getter. 2015-03-07T22:42:36Z RvonMises left #lisp 2015-03-07T22:42:42Z pjb: "emaczen can't program tonight" to the tune of "The Lion Sleeps Tonight"… 2015-03-07T22:42:55Z emaczen: pjb: Your first function is not setfable in terms of the original array 2015-03-07T22:43:03Z pjb: functions are not setfable! 2015-03-07T22:43:11Z pjb: this is a meaningless concept! 2015-03-07T22:43:16Z pjb: Only PLACES can be setfable. 2015-03-07T22:43:43Z emaczen: pjb: You just returned a new array that was a part of the original array 2015-03-07T22:43:52Z pjb: Yes. That's the getters. 2015-03-07T22:43:54Z emaczen: That is not my question at all 2015-03-07T22:43:55Z Beetny joined #lisp 2015-03-07T22:44:00Z emaczen: I also specified one function 2015-03-07T22:44:10Z emaczen: Of course I could make a getter and a setter 2015-03-07T22:44:11Z pjb: Yes, you're specifying impossible things. 2015-03-07T22:44:16Z pjb: impossible or meaningless. 2015-03-07T22:44:21Z pjb: What, are you a PHB? 2015-03-07T22:44:26Z emaczen: PHB? 2015-03-07T22:44:39Z pjb: http://en.wikipedia.org/wiki/Pointy-haired_Boss 2015-03-07T22:44:49Z pjb: there's even a wikipedial page for it… 2015-03-07T22:48:15Z emaczen: pjb: my language may not be 100% correct, but when I asked a similar question earlier today I at least got legitimate help that taught me about setf-functions and other tools that would lead me to a solution. 2015-03-07T22:48:20Z Bicyclidine: emaczen: pjb's right, it is just a loop. you can write (setf (row array 0) (make-list 5)) such that the actual row of the given array will be the list. having a separate object returned as a getter is a different question 2015-03-07T22:49:12Z Bicyclidine: emaczen: i'm not sure i understand what you want that isn't in this solution. 2015-03-07T22:49:54Z xificurC quit (Ping timeout: 272 seconds) 2015-03-07T22:53:23Z emaczen: I'm being a bit pedantic in what I want, but I was hoping to right one function that would get my row or column, then I wanted to be able to "setf" this row/column 2015-03-07T22:53:28Z emaczen: write* 2015-03-07T22:54:15Z Bicyclidine: for a row you could use a displaced array. for a column you'd have to do something kind of more difficult, i think. 2015-03-07T22:55:26Z Bicyclidine: you're sacrificing a lot of performance either way, too 2015-03-07T22:55:33Z kami quit (Ping timeout: 246 seconds) 2015-03-07T22:56:46Z ferada: emaczen: have you seen https://github.com/blindglobe/xarray already? 2015-03-07T22:56:54Z ferada: i'm sure there are other libraries as well 2015-03-07T22:57:14Z Bicyclidine: does this readme start with a todo for writing the readme 2015-03-07T22:58:06Z mrSpec quit (Remote host closed the connection) 2015-03-07T22:58:19Z ferada: the github support for org isn't the greatest as well 2015-03-07T22:59:02Z eschatologist joined #lisp 2015-03-07T23:00:24Z zymurgy quit (Quit: WeeChat 0.3.8) 2015-03-07T23:01:43Z jlongster quit (Ping timeout: 252 seconds) 2015-03-07T23:01:43Z emaczen: ferada: thanks, but I don't feel like using a library for something like this 2015-03-07T23:07:33Z pjb: emaczen: you can write a single function to both read and write a place, but then it won't be usable with setf directly. You will still have to write a defsetf, or define-setf-expander. 2015-03-07T23:08:03Z pjb: There's very little point of having this single function constraint, but as a way to demonstrate the theorical equivalence between closures and objects. ' 2015-03-07T23:09:59Z ruste joined #lisp 2015-03-07T23:12:02Z dagnachewa quit (Remote host closed the connection) 2015-03-07T23:12:39Z johann joined #lisp 2015-03-07T23:13:12Z cpc26_ joined #lisp 2015-03-07T23:13:17Z clintm quit (Remote host closed the connection) 2015-03-07T23:14:52Z cpc26 quit (Ping timeout: 256 seconds) 2015-03-07T23:15:37Z sol__ joined #lisp 2015-03-07T23:16:54Z sz0 quit (Ping timeout: 246 seconds) 2015-03-07T23:17:36Z johann quit (Ping timeout: 246 seconds) 2015-03-07T23:17:49Z pjb: emaczen: http://paste.lisp.org/+34RA/2 you can always put several functions inside a single one. but it's silly. And that doesn't remove the need to declare the setf-expander. 2015-03-07T23:27:19Z attila_lendvai quit (Ping timeout: 245 seconds) 2015-03-07T23:31:32Z hiyosi joined #lisp 2015-03-07T23:32:34Z guicho joined #lisp 2015-03-07T23:34:49Z manuel__ joined #lisp 2015-03-07T23:39:31Z monod quit (Quit: Sto andando via) 2015-03-07T23:40:45Z jlongster joined #lisp 2015-03-07T23:40:50Z edgar-rft joined #lisp 2015-03-07T23:42:52Z manuel__ quit (Quit: manuel__) 2015-03-07T23:45:48Z manuel__ joined #lisp 2015-03-07T23:47:10Z a2015_ joined #lisp 2015-03-07T23:49:45Z badkins_ joined #lisp 2015-03-07T23:51:42Z zymurgy joined #lisp 2015-03-07T23:52:15Z badkins quit (Ping timeout: 246 seconds) 2015-03-07T23:54:24Z Mon_Ouie quit (Ping timeout: 245 seconds) 2015-03-07T23:57:47Z jlongster quit (Ping timeout: 246 seconds)