2014-11-20T00:03:29Z k-dawg joined #lisp 2014-11-20T00:07:41Z Xach: pillton: fast now 2014-11-20T00:08:21Z slyrus_ joined #lisp 2014-11-20T00:09:35Z slyrus quit (Ping timeout: 264 seconds) 2014-11-20T00:09:47Z slyrus_ is now known as slyrus 2014-11-20T00:10:47Z usrj quit (Ping timeout: 264 seconds) 2014-11-20T00:13:42Z normanrichards joined #lisp 2014-11-20T00:15:00Z henesy joined #lisp 2014-11-20T00:15:54Z Ranis quit (Read error: Connection reset by peer) 2014-11-20T00:15:54Z Bicyclidine joined #lisp 2014-11-20T00:18:03Z corni quit (Ping timeout: 272 seconds) 2014-11-20T00:21:45Z k-dawg quit (Quit: This computer has gone to sleep) 2014-11-20T00:22:19Z meiji11 joined #lisp 2014-11-20T00:23:39Z manuel__ quit (Quit: manuel__) 2014-11-20T00:29:32Z dagnachew joined #lisp 2014-11-20T00:32:28Z JuanDaugherty quit (Remote host closed the connection) 2014-11-20T00:33:51Z harish_ quit (Ping timeout: 265 seconds) 2014-11-20T00:35:23Z cmatei quit (Ping timeout: 264 seconds) 2014-11-20T00:39:45Z modula joined #lisp 2014-11-20T00:40:05Z Grue` quit (Ping timeout: 264 seconds) 2014-11-20T00:40:41Z defaultxr quit (Ping timeout: 255 seconds) 2014-11-20T00:40:42Z modula is now known as defaultxr 2014-11-20T00:40:57Z BitPuffin joined #lisp 2014-11-20T00:45:20Z MrWoohoo quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-20T00:47:04Z ilhami quit (Quit: Bye!!!) 2014-11-20T00:47:41Z Grue` joined #lisp 2014-11-20T00:56:24Z vi1 quit (Remote host closed the connection) 2014-11-20T00:59:13Z ivan4th`` quit (Ping timeout: 272 seconds) 2014-11-20T00:59:59Z Bicyclidine quit (Ping timeout: 264 seconds) 2014-11-20T01:00:33Z bgs100 joined #lisp 2014-11-20T01:03:25Z Xach left #lisp 2014-11-20T01:04:47Z manuel__ joined #lisp 2014-11-20T01:05:30Z manuel__ quit (Client Quit) 2014-11-20T01:07:35Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T01:12:01Z jumblerg joined #lisp 2014-11-20T01:12:32Z zacharias joined #lisp 2014-11-20T01:15:22Z gingerale quit (Read error: Connection reset by peer) 2014-11-20T01:15:34Z jumblerg quit (Client Quit) 2014-11-20T01:20:15Z mishoo__ quit (Ping timeout: 265 seconds) 2014-11-20T01:23:45Z urandom__ quit (Quit: Konversation terminated!) 2014-11-20T01:27:30Z EvW quit (Ping timeout: 265 seconds) 2014-11-20T01:32:06Z Karl_Dscc quit (Remote host closed the connection) 2014-11-20T01:42:49Z manuel__ joined #lisp 2014-11-20T01:43:42Z pillton: Xach: Same here. Thanks. 2014-11-20T01:47:08Z alexey joined #lisp 2014-11-20T01:51:38Z alexey quit (Ping timeout: 250 seconds) 2014-11-20T01:54:23Z fragamus quit (Read error: Connection reset by peer) 2014-11-20T01:55:08Z ghard quit (Ping timeout: 244 seconds) 2014-11-20T01:57:09Z cmatei joined #lisp 2014-11-20T02:00:08Z manuel__ quit (Quit: manuel__) 2014-11-20T02:04:20Z ericmathison joined #lisp 2014-11-20T02:05:02Z harish_ joined #lisp 2014-11-20T02:07:21Z ghard joined #lisp 2014-11-20T02:08:33Z Poenikatu joined #lisp 2014-11-20T02:09:36Z Poenikatu: I've been trying all evening to get clfswm working, but now quicklisp says no clx component. Yet it's there in ~/quicklisp/dists/quicklisp/software. Anybody had any luck with this package? 2014-11-20T02:11:36Z slyrus quit (Ping timeout: 256 seconds) 2014-11-20T02:11:57Z hiyosi quit (Ping timeout: 240 seconds) 2014-11-20T02:14:34Z normanrichards quit 2014-11-20T02:19:11Z test1600 joined #lisp 2014-11-20T02:20:39Z Poenikatu: Sigh. must try with sbcl and the Debian pkg. Maybe that will work 2014-11-20T02:20:43Z Poenikatu left #lisp 2014-11-20T02:21:10Z Poenikatu|2 joined #lisp 2014-11-20T02:21:10Z Poenikatu|2 quit (Client Quit) 2014-11-20T02:24:29Z ananna quit (Remote host closed the connection) 2014-11-20T02:30:56Z Xach joined #lisp 2014-11-20T02:31:58Z kanru joined #lisp 2014-11-20T02:33:03Z wjiang joined #lisp 2014-11-20T02:33:43Z manuel__ joined #lisp 2014-11-20T02:37:24Z chu joined #lisp 2014-11-20T02:39:25Z theos quit (Disconnected by services) 2014-11-20T02:39:37Z itheos joined #lisp 2014-11-20T02:43:12Z BitPuffin quit (Ping timeout: 245 seconds) 2014-11-20T02:43:23Z ananna joined #lisp 2014-11-20T02:47:12Z jumblerg joined #lisp 2014-11-20T02:48:38Z beach joined #lisp 2014-11-20T02:48:47Z beach: Good morning everyone! 2014-11-20T02:56:32Z test1600 quit (Ping timeout: 245 seconds) 2014-11-20T02:56:49Z robot-beethoven joined #lisp 2014-11-20T02:57:57Z chu quit (Ping timeout: 255 seconds) 2014-11-20T03:04:07Z _5kg quit (Remote host closed the connection) 2014-11-20T03:06:26Z beach: Example number 6 here: http://metamodular.com/HIR-Examples/index.html is the example that |3b| gave me some 10 hours ago. 2014-11-20T03:08:52Z joneshf-laptop joined #lisp 2014-11-20T03:09:06Z hiyosi joined #lisp 2014-11-20T03:09:25Z drmeister: beach: Hello - what's a "fixed value"? 2014-11-20T03:09:29Z drmeister: Single value? 2014-11-20T03:09:34Z beach: Yes. 2014-11-20T03:09:48Z beach: The normal stuff. 2014-11-20T03:10:42Z drmeister: Got it. 2014-11-20T03:11:11Z drmeister: Would I be able to generate HIR at this point with the latest Cleavir? 2014-11-20T03:11:30Z drmeister: I can't do it tonight - my laptop is in the shop. 2014-11-20T03:11:34Z beach: That's a strange question. 2014-11-20T03:11:42Z beach: I am sure there are still bugs. 2014-11-20T03:11:44Z rtoym quit (Remote host closed the connection) 2014-11-20T03:11:48Z beach: But it's getting close. 2014-11-20T03:12:06Z beach: Also a few things missing like PROGV. 2014-11-20T03:12:35Z beach: And I haven't added &AUX yet. 2014-11-20T03:13:00Z drmeister: The first time I tried was a few days ago when you were doing some rewriting of the code dealing with multiple values. 2014-11-20T03:13:12Z beach: That rewrite is done. 2014-11-20T03:13:29Z beach: But I haven't written complete tests for it yet. 2014-11-20T03:13:42Z hiyosi quit (Ping timeout: 255 seconds) 2014-11-20T03:14:10Z drmeister: Excellent. I'll pull the latest repo tomorrow and try again. I'm eager to try converting some HIR to IR as I mentioned yesterday. 2014-11-20T03:14:22Z beach: Right. 2014-11-20T03:14:45Z drmeister: No problem on the &aux and progv. By the time I get to those you will have implemented them. 2014-11-20T03:14:57Z beach: Maybe so. 2014-11-20T03:19:44Z nyef: Hello beach. 2014-11-20T03:20:22Z nyef: Be careful with PROGV, it somewhat depends on if you use deep or shallow binding, and how you implement unwind. 2014-11-20T03:21:11Z beach: Yeah. I am trying to come up with something implementation independent. Not so easy. 2014-11-20T03:21:35Z beach: Same thing for binding a single special variable. 2014-11-20T03:21:55Z nyef: Yeah, though at least there you know how many bindings you're working with. 2014-11-20T03:21:56Z beach: I don't want to require a particular way of implementing it. 2014-11-20T03:22:08Z beach: True. It's a bit easier. 2014-11-20T03:22:51Z nyef: You might want to take a survey of the various ways that people HAVE implemented it, cover them, make a couple of recommendations for people designing new implementations, and call it good enough. 2014-11-20T03:22:57Z enitiz joined #lisp 2014-11-20T03:23:05Z beach: That's a possibility. 2014-11-20T03:23:13Z nyef: Though I'll admit that the survey bit would take some doing. 2014-11-20T03:23:57Z ericmathison quit (Quit: leaving) 2014-11-20T03:23:58Z beach: The other thing is that I probably still have to introduce an argument to the generic function that compiles ASTs called (say) IMPLEMENTATION. 2014-11-20T03:24:12Z beach: I could just require that the implementation supply a method on it. 2014-11-20T03:24:35Z beach: ... or I can provide a default one that can be overridden. 2014-11-20T03:24:49Z resttime joined #lisp 2014-11-20T03:25:11Z drmeister: It was the last special operator I implemented. I believe that I pushed the special values on a stack, bind the new values, evaluate the forms and restore the special values from the stack. 2014-11-20T03:25:20Z beach: I need that mechanism anyway, because I want to allow implementations to supply additional AST types and additional instruction types. 2014-11-20T03:25:54Z beach: drmeister: So how do you handle unwinds? 2014-11-20T03:26:07Z drmeister: C++ exception handling. 2014-11-20T03:26:23Z beach: So you must surround that push with some kind of handler. 2014-11-20T03:27:16Z drmeister: Yes. There's a cleanup clause that guarantees code will be run when an exception unwinds the stack. 2014-11-20T03:27:37Z beach: Right. 2014-11-20T03:28:16Z drmeister: The nice thing about what I did is that it's completely compatible with C++ so RAII works in C++ code that interleaves with Common Lisp code. I'm repeating myself. 2014-11-20T03:29:22Z resttime quit (Ping timeout: 240 seconds) 2014-11-20T03:29:33Z drmeister: I'm curious if I can use everything I've set up to translate HIR into LLVM-IR. 2014-11-20T03:30:39Z drmeister: What does the UNWIND HIR instruction mean? 2014-11-20T03:30:47Z beach: Unwind the stack. 2014-11-20T03:31:15Z beach: It indicates a non-local control transfer from one function to an enclosing function. 2014-11-20T03:31:29Z drmeister: Unwind how far? Up to the most recent ENTER? 2014-11-20T03:31:44Z beach: Up to the ENTER that is stored in the UNWIND instruction. 2014-11-20T03:31:48Z nyef: Typically, the target stack frame is an argument to UNWIND. 2014-11-20T03:32:15Z beach: If there is NIL in the UNWIND, it there is no outer ENTER. 2014-11-20T03:32:21Z beach: What nyef says. 2014-11-20T03:32:55Z nyef: Not the first time I've tangled with NLX. (-: 2014-11-20T03:33:05Z resttime joined #lisp 2014-11-20T03:33:21Z drmeister: the UNWIND instructions have one successor 2014-11-20T03:33:29Z beach: drmeister: Yes. 2014-11-20T03:34:04Z beach: nyef: What is NLX? 2014-11-20T03:34:14Z nyef: Non-Local eXit. 2014-11-20T03:34:24Z beach: Duh! :) 2014-11-20T03:35:56Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T03:38:34Z itheos is now known as theos 2014-11-20T03:39:36Z jumblerg joined #lisp 2014-11-20T03:44:23Z beach: drmeister: You do understand, though, that my next big step is to come up with an implementation-configurable protocol for translating HIR to MIR, and that there will be duplication with what you are planning to do here. 2014-11-20T03:45:49Z beach: Furthermore, MIR is where I do all the traditional optimizations such as value numbering, partial redundancy elimination, strength reduction, loop-invariant code motion, etc. 2014-11-20T03:47:50Z drmeister: Hmm, yes, that sounds like an issue. 2014-11-20T03:48:11Z alexey joined #lisp 2014-11-20T03:48:37Z drmeister: What would you recommend? 2014-11-20T03:50:02Z dagnachew quit (Quit: WeeChat 1.0.1) 2014-11-20T03:51:25Z drmeister: beach: How assured are you that it can be done in an implementation dependent way? I'm wracking my brain trying to figure out how to implement UNWIND given what is shown in that HIR example. 2014-11-20T03:52:30Z drmeister: I do it essentially with a try/catch/throw combo. I don't see where they fit in here. 2014-11-20T03:52:34Z alexey quit (Ping timeout: 258 seconds) 2014-11-20T03:53:17Z nyef: drmeister: What do you catch with your catch thing? A tag of some sort? Is there a way to conditionally catch based on a tag? 2014-11-20T03:53:23Z beach: drmeister: I don't have enough information to recommend anything. 2014-11-20T03:54:47Z beach: drmeister: The translation will not be implementation independent, but implementation-configurable. The implementation must provide information on how to translate almost each HIR instruction to MIR. 2014-11-20T03:54:48Z BlueRavenGT quit (Remote host closed the connection) 2014-11-20T03:55:22Z drmeister: I catch an exception object and I check a value that it contains, if it is not the one the catch expects I rethrow the exception. 2014-11-20T03:55:37Z BlueRavenGT joined #lisp 2014-11-20T03:55:43Z nyef: Sounds about right. Only you dynamically allocate and close over the catch tags. 2014-11-20T03:56:22Z nyef: The UNWIND operation grabs the closed-over tag and THROWs to it. 2014-11-20T03:56:36Z shifty`` joined #lisp 2014-11-20T03:56:55Z drmeister: nyef: Where's the catch? 2014-11-20T03:56:58Z nyef: And, plausibly, you use a separate exception type for it, so that you can't accidentally collide it with THROW/CATCH. 2014-11-20T03:57:03Z nyef: The CATCH is the BLOCK. 2014-11-20T03:57:28Z beach: nyef: He will have to rediscover block boundaries. 2014-11-20T03:58:03Z nyef: Mmm. Which is embedded in the scoping rules for any dynamic allocation or binding action. 2014-11-20T03:58:34Z nyef: Otherwise it doesn't matter where the start is, and the end is the control-flow join after the UNWIND. 2014-11-20T03:58:47Z shifty` quit (Ping timeout: 264 seconds) 2014-11-20T03:59:05Z beach: Yeah. The start has to be somewhere before the nested call is made. 2014-11-20T03:59:09Z drmeister: beach: Is that easy? Or could there be block boundary HIR instructions? I haven't sat down and thought this through yet. 2014-11-20T03:59:59Z nyef: ... Or, alternatively, if there's no actual JOIN there (because the block doesn't return normally), then the dynamic environment of the following operation is just past the end of the block. 2014-11-20T04:01:10Z beach: drmeister: An explicit block instruction doesn't sound right, though of course, Cleavir is made so that you can provide it, together with a method on how to translate the AST to HIR. 2014-11-20T04:02:01Z beach: drmeister: As soon as I stick in the additional IMPLEMENTATION argument to the AST-to-HIR conversion, you can adapt it how you see fit. 2014-11-20T04:04:34Z drmeister: Until I sit down and really think this through I shouldn't make recommendations. Your UNWIND may be perfectly fine - I just don't see immediately how to implement it. Actually, the UNWIND may be the easy part, it's almost certainly the "throw" part of the throw/catch. 2014-11-20T04:05:51Z drmeister: In LLVM-IR you use INVOKE, which is like a function CALL but it has label to jump to on normal return and another label to jump to with a "landing-pad" that checks the exception and has the unwind code. 2014-11-20T04:07:43Z drmeister: In our example 6 the call to (ff (lambda ...)) would be an INVOKE, and the BLOCK's would generate a linked chain of landing-pads . 2014-11-20T04:08:52Z drmeister: Maybe the flow-arrows that come out of the UNWIND instructions point to where the landing pads should be. 2014-11-20T04:11:02Z drmeister: I knew I was going to have to do some analysis of the HIR to convert it to LLVM-IR. I need to identify basic blocks. Maybe part of it is figuring out where landing-pad basic blocks are to be inserted and what order they should be linked to each other. 2014-11-20T04:11:20Z beach: I will do basic-block analysis soon. 2014-11-20T04:11:24Z drmeister: That doesn't seem that daunting. 2014-11-20T04:12:05Z rtoym joined #lisp 2014-11-20T04:12:08Z beach: Your catch or whatever needs to be established before the nested function is called. 2014-11-20T04:12:20Z drmeister: beach: You may have mentioned this but what is value numbering? 2014-11-20T04:12:56Z beach: It's a technique for avoiding recomputing values that have already been computed and that are in some lexical variable. 2014-11-20T04:13:15Z drmeister: Now that I think about it, at this point it's all about invoke instructions and landing-pads. 2014-11-20T04:13:35Z beach: But actually, the main use for value number that I see is different. 2014-11-20T04:13:50Z beach: On modern architectures, it is cheap to recompute and expensive to remember values. 2014-11-20T04:14:07Z beach: I intend to use it to avoid duplicate tests. 2014-11-20T04:16:55Z drmeister: Well, let's not waste too much brainpower on my off the cuff analysis. I'll think a lot more deeply when I'm faced with actually implementing something. Then it's going to require several nights of thinking and several "aha" moments in the shower. If there is something that I need that is difficult to recover from HIR then we can talk about new HIR 2014-11-20T04:16:55Z drmeister: instructions. 2014-11-20T04:17:32Z psy_ quit (Read error: Connection reset by peer) 2014-11-20T04:18:26Z psy_ joined #lisp 2014-11-20T04:19:09Z TDog joined #lisp 2014-11-20T04:19:18Z psy__ joined #lisp 2014-11-20T04:19:22Z beach: Sure. The basic idea here, though, is that implementations provide additional HIR instructions as they find fit, rather than Cleavir adding implementation-specific HIR instructions using #+... or something. 2014-11-20T04:19:49Z drmeister: Things that aren't immediately obvious to me are how I handle UNWIND and ENCLOSE and how work with lexical bindings that's compatible with my current way of dealing with lexical bindings (arrays of pointers on the heap and on the stack). 2014-11-20T04:20:29Z psy__ quit (Read error: Connection reset by peer) 2014-11-20T04:21:08Z kanru quit (Ping timeout: 250 seconds) 2014-11-20T04:21:13Z drmeister: Right - and I've read through your Sexp->AST code, it's very elegant and easy to follow. If AST->HIR works the same way then it should be straightforward. 2014-11-20T04:22:58Z drmeister: One thing I thought of - what do you think of storing the CONS of each Sexp with the AST node that is generated from it? I'm thinking for source code tracking. 2014-11-20T04:23:58Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T04:26:26Z cky joined #lisp 2014-11-20T04:26:38Z cky left #lisp 2014-11-20T04:27:22Z drmeister: I haven't completely thought this through but clang has tools for searching ASTs to look for patterns and then you can identify the source code ranges that gave rise to those AST nodes. Common Lisp is more complicated with all of it's macro expansions but if we could tie AST nodes back to source code ranges, it might be a really useful tool for Common Lisp 2014-11-20T04:27:22Z drmeister: refactoring. 2014-11-20T04:27:57Z katco` joined #lisp 2014-11-20T04:29:35Z ggole joined #lisp 2014-11-20T04:30:35Z _5kg joined #lisp 2014-11-20T04:30:53Z beach: drmeister: There will be some source information in the AST and in the instructions, but I won't decide its format. It will have to be supplied by the implementation. 2014-11-20T04:31:10Z drmeister: If I could say search for every variable assignment or every expression tested in an IF special operator - that would be really powerful. Macros really complicate things though - I'm not sure that it's possible for Common Lisp. 2014-11-20T04:31:18Z edgar-rft quit (Quit: session abandoned because no activity happened) 2014-11-20T04:31:20Z beach: drmeister: Other implementations might prefer a filename plus position in the file. 2014-11-20T04:32:00Z drmeister: I see. In Clasp I have a hash table of source code CONS that map to source file positions. 2014-11-20T04:35:13Z beach: In SICL, I might, for instance, read the entire source file into memory first and then provided pointers to that memory, in case the source file disappears or gets modified. 2014-11-20T04:37:53Z drmeister: In your example 4 - how does one determine from the HIR which bindings (from the source, x) go into a closure and which go on the stack (from the source, y)? 2014-11-20T04:38:59Z drmeister: Is it the bindings that are referred to by the enclosed function that are declared in the enclosing function? 2014-11-20T04:39:00Z beach: Fairly easy. 2014-11-20T04:39:04Z nyef: That's environment analysis, isn't it? 2014-11-20T04:39:09Z beach: Yes. 2014-11-20T04:39:28Z nyef: And then there's a further escape analysis on the closure to tell you if you can stack-allocate your closed-over variables anyway. 2014-11-20T04:40:21Z beach: drmeister: If a variable is used by a single function, then it has dynamic extent. 2014-11-20T04:40:50Z beach: drmeister: If it is referred to from a function and another one nested inside it, then it might have to be heap allocated. 2014-11-20T04:41:33Z drmeister: beach: I see that - and I know what dynamic extent means now. On the stack, and it lives as long as the stack frame for that function is on the stack. 2014-11-20T04:41:36Z nyef: You do your analysis for closed-over variables (environment analysis) before deciding if you can stack-allocate variables, but the "easy" rule is that you can stack allocate anything that isn't closed over. 2014-11-20T04:41:42Z beach: drmeister: As you can see in that example, X is used by the outermost "function" and by the nested function. 2014-11-20T04:42:01Z ggole: You can be arbitrarily clever about stack allocation, really 2014-11-20T04:42:41Z ggole: Depends how aggressive/insane a flow analysis you want to do (and how much redefinition would interfere with such an analysis). 2014-11-20T04:42:49Z drmeister: So in this case, "x" can be on the stack. 2014-11-20T04:42:49Z beach: drmeister: In the example, all the hexagons have dynamic extent, and so do Y and F. 2014-11-20T04:43:07Z beach: drmeister: It's the other way around. 2014-11-20T04:43:14Z beach: drmeister: X might have to be heap allocated. 2014-11-20T04:43:24Z beach: Further analysis will determine that. 2014-11-20T04:43:52Z drmeister: Oh, no - I see, because it returns #'f - x can not be on the stack. 2014-11-20T04:43:58Z beach: Exactly. 2014-11-20T04:45:31Z drmeister: If it were just (let ((x 10)) (flet ((f (y) (+ x y))) (f 5))) then "x" could be on the stack. 2014-11-20T04:45:58Z beach: Right, because then F has dynamic extent too. 2014-11-20T04:46:10Z nyef: If it were just that, you'd LET-convert F anyway. d-: 2014-11-20T04:46:30Z drmeister: So there is still a fair amount of analysis that needs to be done on the HIR? 2014-11-20T04:46:42Z ggole: What's let-convert? I assume it's an analogue of lambda lifting. 2014-11-20T04:46:48Z beach: drmeister: That's on purpose. 2014-11-20T04:47:00Z ggole: (eg, replacing the free variable with an argument.) 2014-11-20T04:47:01Z beach: drmeister: You can't trust the programmer to supply the "best" information. 2014-11-20T04:47:08Z nyef: ggole: Might be Python-specific terminology. Converting the funcall of a lambda into let-binding. 2014-11-20T04:47:25Z psy_ quit (Read error: No route to host) 2014-11-20T04:47:50Z beach: drmeister: Take the block boundaries for instance. The programmer might make it too big. By eliminating it in HIR, it can be inferred as smaller. 2014-11-20T04:48:00Z ggole: Oh, so ((lambda (arg) ...) x) => (let ((arg x)) ...) 2014-11-20T04:48:10Z nyef: Right. 2014-11-20T04:48:19Z psy_ joined #lisp 2014-11-20T04:48:57Z nyef: In SBCL, this would be in src/compiler/locall.lisp. It's pretty fundamental to Python, so the path would be very similar in CMUCL. 2014-11-20T04:49:16Z ggole: I guess I would mentally file that under inlining. 2014-11-20T04:49:23Z beach: drmeister: Another reason is that several different types of source constructs may map to the same HIR code. The analysis would then be shared in HIR as opposed to having analyses that are source specific. 2014-11-20T04:49:35Z ggole: But it's a very simple source-source transform, so maybe it's good to do it right there. 2014-11-20T04:50:14Z beach: I vote for doing it on the HIR level. :) 2014-11-20T04:50:26Z nyef: ggole: Yes, in fact Python does inlining by producing a local copy of the lambda for the called function, and let-converting it. 2014-11-20T04:50:32Z drmeister: beach: I see. I thought escape analysis was already complete when HIR is generated. Now it seems that it's only partially done. 2014-11-20T04:50:47Z beach: drmeister: It is not done at all. 2014-11-20T04:50:57Z nyef: A lot of source transforms are done by producing a suitable lambda to replace a given function call and allowing it to be let-converted. 2014-11-20T04:50:59Z Ethan- quit (Ping timeout: 265 seconds) 2014-11-20T04:51:13Z beach: drmeister: The yellow ellipses need to become hexagons or octagons. 2014-11-20T04:51:26Z ggole: Right, essentially casting inlining as a type of copy propagation. I'm familiar with that approach. 2014-11-20T04:51:53Z drmeister: Ah, is that part of the HIR->MIR? 2014-11-20T04:51:54Z p_nathan quit (Ping timeout: 250 seconds) 2014-11-20T04:52:06Z beach: drmeister: Definitely. 2014-11-20T04:52:21Z beach: drmeister: Actually, it could be done as HIR->HIR 2014-11-20T04:52:30Z beach: Just like type inference. 2014-11-20T04:53:09Z drmeister: I was always a question where Cleavir would stop and Clasp would come in. 2014-11-20T04:53:56Z beach: As nyef pointed out at some point, type inference may turn some octagons (potentially heap allocated variables) into hexagons (dynamic extent). 2014-11-20T04:54:30Z nyef: So might simple inlining. 2014-11-20T04:54:37Z beach: Indeed. 2014-11-20T04:54:51Z beach: I intend to do inlining at the HIR level too. 2014-11-20T04:55:39Z drmeister: Ok, it's coming into sharper focus. I still don't have the whole picture but sharper focus is good. The HIR graphs help a lot as well. 2014-11-20T04:55:58Z katco` left #lisp 2014-11-20T04:56:01Z beach: I agree. It's a great tool for giving a mental model of things. 2014-11-20T04:56:14Z manuel__ quit (Quit: manuel__) 2014-11-20T04:57:18Z beach: drmeister: By the way, did you see my internationalization of condition reporters? 2014-11-20T04:57:38Z BlueRavenGT quit (Ping timeout: 255 seconds) 2014-11-20T04:57:52Z hiyosi joined #lisp 2014-11-20T04:58:16Z beach: drmeister: I had to do it in order to provide condition reporters for the conditions you were thinking of supplying methods on PRINT-OBJECT for. 2014-11-20T04:58:30Z drmeister: beach: Not yet - I haven't pulled SICL since yesterday. 2014-11-20T04:58:31Z brucem: beach: one issue that might matter for drmeister is that if you do inlining at the HIR level, he'll have little to no way to adequately represent that in DWARF debug info. 2014-11-20T04:59:15Z beach: brucem: I don't see why that would be the case. 2014-11-20T04:59:22Z brucem: beach: unless you keep track of that inlining really well through source locations and the rest of everything that happens ... 2014-11-20T04:59:30Z bgs100 quit (Quit: bgs100) 2014-11-20T04:59:31Z beach: Of course. 2014-11-20T04:59:40Z beach: Every instruction will contain some source info. 2014-11-20T05:00:07Z drmeister: Yes, I'll have to be able to recover the source info. 2014-11-20T05:00:35Z beach: I think it will be adequate to copy the source information from the AST to the instructions generated from it. 2014-11-20T05:00:44Z p_nathan joined #lisp 2014-11-20T05:00:48Z enitiz quit (Remote host closed the connection) 2014-11-20T05:01:37Z beach: brucem: No? 2014-11-20T05:01:37Z theBlackDragon quit (Ping timeout: 265 seconds) 2014-11-20T05:02:18Z theBlackDragon joined #lisp 2014-11-20T05:02:43Z hiyosi quit (Ping timeout: 258 seconds) 2014-11-20T05:03:10Z brucem: beach: _maybe_ ... I know that I've run into some issues with this in Open Dylan where we don't have sufficient info available at all times. And I'm not sure if there was an issue in how this gets exposed to LLVM or not. 2014-11-20T05:03:18Z beach: Hmm, I should recompile those examples on the web page. The new way of doing things doesn't automatically do tail-call conversion. It will be an optional HIR->HIR transformation. 2014-11-20T05:03:36Z brucem: beach: Debug info is terrible stuff. :) 2014-11-20T05:03:43Z beach: Indeed. 2014-11-20T05:04:16Z beach: I am trying to keep it in mind as I make other decisions. I hope I am not overlooking anything. 2014-11-20T05:05:26Z nyef: Okay, as interesting as this conversation is, my brain is fried, and I have to be somewhat functional tomorrow. 2014-11-20T05:05:32Z nyef quit (Quit: G'night all) 2014-11-20T05:06:00Z beach: It's midnight where nyef is, yes? 2014-11-20T05:06:51Z jumblerg joined #lisp 2014-11-20T05:06:59Z drmeister: nyef and I are in the same timezone I believe - and if so - yes. It's midnight. 2014-11-20T05:07:30Z kirin` quit (Ping timeout: 250 seconds) 2014-11-20T05:08:26Z karswell quit (Read error: Connection reset by peer) 2014-11-20T05:09:01Z drmeister: beach: What is this next level of HIR called? 2014-11-20T05:09:24Z karswell joined #lisp 2014-11-20T05:09:46Z beach: There is no next level of HIR. 2014-11-20T05:10:00Z beach: There are just transformations that will improve things, but preserve the HIR-ness. 2014-11-20T05:10:13Z jleija joined #lisp 2014-11-20T05:10:31Z drmeister: There are the level 0 -> level 4 of MIR described in the Cleavir document. 2014-11-20T05:10:43Z drmeister: We haven't gotten to that yet then. 2014-11-20T05:11:01Z beach: That could very well be wrong now. 2014-11-20T05:11:08Z beach: I haven't updated the documentation for some time. 2014-11-20T05:11:43Z drmeister: Ok. How much time do you think it will take to get this next stage completed? 2014-11-20T05:11:55Z beach: What stage? 2014-11-20T05:11:58Z drmeister: And - can I provide any programming assistance? 2014-11-20T05:12:12Z drmeister: escape analysis, inlining, HIR->HIR 2014-11-20T05:12:54Z beach: Oh, don't think of that as a "stage". Like I said, HIR is valid as it is. Those transformations will only make it faster/better. 2014-11-20T05:13:15Z beach: I will let you know if I need any assistance. 2014-11-20T05:13:25Z beach: It might be harder to explain what to do than to do it. 2014-11-20T05:13:34Z beach: But I'll keep your offer in mind. 2014-11-20T05:13:43Z drmeister: I know what you mean. 2014-11-20T05:14:22Z beach: Also, in order to specify what needs to be done, I must understand the issues, and the way I do that is to implement it and see what happens. 2014-11-20T05:14:49Z drmeister: Well, at this point I'd be hard pressed to translate the HIR into LLVM-IR. I think the escape analysis would be good to have in place before I try to generate IR. 2014-11-20T05:14:53Z beach: But, again, if I identify a chunk that can be subcontracted, I'll let you know. 2014-11-20T05:15:15Z beach: drmeister: A very simple escape analysis is easy. 2014-11-20T05:15:28Z beach: It won't be optimal, but it will be safe. 2014-11-20T05:15:39Z kirin` joined #lisp 2014-11-20T05:15:45Z drmeister: That's a good point. It is a lot more clear now that I see the graphs. 2014-11-20T05:15:48Z beach: Anything shared between function => heap. 2014-11-20T05:16:20Z drmeister: Right, that's safe. 2014-11-20T05:16:57Z beach: And almost everything will have dynamic extent anyway. 2014-11-20T05:17:09Z beach: I mean, how many programs do you write where a variable is captured? 2014-11-20T05:17:23Z drmeister: How are special values represented in the graphs? 2014-11-20T05:17:58Z beach: References are symbol-value-instruction and assignments are set-symbol-value-instruction. 2014-11-20T05:18:18Z drmeister: Of course. 2014-11-20T05:18:20Z beach: I don't know about bindings yet, as nyef and I discussed in the beginning. 2014-11-20T05:18:22Z drmeister: Duh. 2014-11-20T05:20:37Z drmeister: Is unwind-protect represented yet in HIR? 2014-11-20T05:21:25Z beach: No. 2014-11-20T05:21:51Z beach: Same problem as special bindings. 2014-11-20T05:22:18Z drmeister: Got it. 2014-11-20T05:23:15Z henesy quit (Remote host closed the connection) 2014-11-20T05:23:17Z beach: I might have to leave it up to the implementation. 2014-11-20T05:23:30Z beach: It is very implementation-specific stuff. 2014-11-20T05:24:49Z drmeister: Yup. 2014-11-20T05:25:01Z drmeister: Ok, I better get to bed. Thanks for the education. 2014-11-20T05:25:11Z beach: Sure. Good night. 2014-11-20T05:25:19Z drmeister: Have a good day. 2014-11-20T05:25:29Z beach: Thanks. 2014-11-20T05:25:42Z drmeister: I'll be dreaming in HIR. 2014-11-20T05:27:51Z Pixel_Outlaw joined #lisp 2014-11-20T05:28:43Z Niac joined #lisp 2014-11-20T05:29:07Z Pixel_Outlaw: Hello all, I'm trying to use reduce to add a list of custom structs. However it seems to just return the initial list... 2014-11-20T05:29:08Z Pixel_Outlaw: http://pastebin.com/utawaEzu 2014-11-20T05:30:07Z Pixel_Outlaw: I thought reduce just takes two items of a list and preforms an operation yielding a new value until the list is exhausted. 2014-11-20T05:31:22Z pranavrc joined #lisp 2014-11-20T05:31:45Z Bike: how are you calling it? 2014-11-20T05:32:38Z Pixel_Outlaw: Well I'm using (sum-equipment my-equipment-list-here) 2014-11-20T05:33:09Z Pixel_Outlaw: Is that what you're asking? 2014-11-20T05:34:09Z Guest36389 quit (Ping timeout: 258 seconds) 2014-11-20T05:35:09Z Bike: Yes. I mean, the function looks fine, so I'm guessing 2014-11-20T05:35:47Z H4ns: Pixel_Outlaw: remove the &rest 2014-11-20T05:35:54Z Bike: (sum-equipment sword armor gun) should work fine. (sum-equipment sword) will probably give you the sword. 2014-11-20T05:36:07Z H4ns: Pixel_Outlaw: or call it with (apply #'sum-equipment my-equipment-list-here) 2014-11-20T05:36:42Z Pixel_Outlaw: OH! 2014-11-20T05:36:54Z Pixel_Outlaw: My tired eyes have been passing a list instead of the values within. 2014-11-20T05:37:17Z Pixel_Outlaw: Thanks guys. 2014-11-20T05:37:44Z kanru joined #lisp 2014-11-20T05:38:24Z Pixel_Outlaw: Ok working now. I needed APPLY. 2014-11-20T05:38:29Z Pixel_Outlaw: Second set of eyes helps. 2014-11-20T05:41:09Z Pixel_Outlaw: I'm writing an auto optimize routine for items in a role playing game. 2014-11-20T05:45:49Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T05:45:53Z nydel: is it possible to change the prompt inside a slime instance of sbcl? 2014-11-20T05:46:57Z nydel: i found setting sb-int:*repl-prompt-fun* to a function changes the prompt to whatever the function evaluates down to in sbcl by itself. but not in a slime in emacs. 2014-11-20T05:49:00Z alexey joined #lisp 2014-11-20T05:50:34Z Ranis joined #lisp 2014-11-20T05:51:08Z H4ns: nydel: there is no way 2014-11-20T05:51:33Z H4ns: see slime-repl-insert-prompt in contrib/slime-repl.el 2014-11-20T05:52:27Z Vutral quit (Ping timeout: 272 seconds) 2014-11-20T05:52:29Z psy_ quit (Remote host closed the connection) 2014-11-20T05:53:37Z nydel: H4ns: oh my. i'm better off writing a redundant repl if i wanna do this in slime. 2014-11-20T05:53:49Z alexey quit (Ping timeout: 265 seconds) 2014-11-20T05:54:52Z oleo__ joined #lisp 2014-11-20T05:55:11Z H4ns: why don't you just change slime the way you desire? it is open source after all 2014-11-20T05:55:26Z oleo is now known as Guest99873 2014-11-20T05:55:31Z H4ns: all it takes is add a hook for setting the prompt. 2014-11-20T05:55:57Z nydel: H4ns: if i can find a way to change it such that an easily-loadable file will make the changes to anyone else's slime, i'll go that way. 2014-11-20T05:56:28Z Guest99873 quit (Ping timeout: 250 seconds) 2014-11-20T05:56:34Z nydel: but i don't see it working that way. changes have to happen before compilation. 2014-11-20T05:57:51Z nydel: unless wait what if i create a macro that defines arbitrary packages, or a single one with a rotating nickname...grr 2014-11-20T05:58:10Z ndrei joined #lisp 2014-11-20T05:58:30Z echo-area joined #lisp 2014-11-20T05:58:37Z hiyosi joined #lisp 2014-11-20T05:59:46Z nydel: i wanna create a multi-user aspect for an repl. with many uses but one of which would be having someone socket in and work at the same repl with real-time terminal echo for both parties. 2014-11-20T06:02:21Z Vutral joined #lisp 2014-11-20T06:03:35Z hiyosi quit (Ping timeout: 264 seconds) 2014-11-20T06:04:47Z kcj joined #lisp 2014-11-20T06:06:27Z vinleod joined #lisp 2014-11-20T06:09:59Z alexey joined #lisp 2014-11-20T06:11:10Z jleija quit (Quit: leaving) 2014-11-20T06:11:52Z innertracks quit (Quit: innertracks) 2014-11-20T06:12:52Z resttime quit (Ping timeout: 258 seconds) 2014-11-20T06:14:15Z beach` joined #lisp 2014-11-20T06:15:42Z beach quit (Ping timeout: 245 seconds) 2014-11-20T06:16:51Z impulse quit (Ping timeout: 255 seconds) 2014-11-20T06:17:37Z Vivitron: nydel: redefining slime-repl-insert-prompt in my .emacs let me get a custom prompt, but one of my slime customizations causes intermittent hanging for me and I suspect it may be the slime-eval call I added to the prompt generation. 2014-11-20T06:18:27Z impulse joined #lisp 2014-11-20T06:23:08Z a20141119 quit (Quit: Page closed) 2014-11-20T06:26:54Z beach` left #lisp 2014-11-20T06:34:09Z The_Woodsman joined #lisp 2014-11-20T06:34:39Z zeitue joined #lisp 2014-11-20T06:35:21Z The_Woodsman: can someone help me understand the difference between using a function and using apply 'functionName to use that function? They seem like they should be identical but obviously they're not 2014-11-20T06:38:08Z Zhivago: The first is vague. 2014-11-20T06:38:30Z Zhivago: Do you mean (apply #'foo args) vs. (apply 'foo args)? 2014-11-20T06:39:00Z drdanmaku joined #lisp 2014-11-20T06:39:53Z ggole: The_Woodsman: apply is useful if you have a list and want to supply the elements as arguments. 2014-11-20T06:43:45Z oleo__ quit (Quit: Verlassend) 2014-11-20T06:45:34Z The_Woodsman: Zhivago: I meant the difference between, say, (+ 2 3), and (apply '+ '(2 3) ) - i know they're identical in this case, but in some other more complex cases differences arise 2014-11-20T06:46:27Z The_Woodsman: ggole: so i could think of it like it iterates over the list, applying the function? or is that not the best way to imagine it 2014-11-20T06:46:44Z antonv quit (Ping timeout: 250 seconds) 2014-11-20T06:47:33Z Bike: that's not a good way to think of it. 2014-11-20T06:47:47Z Bike: i mean, it works fine with any function, not just associative ones like + that you could also use reduce for. 2014-11-20T06:48:33Z ggole: The_Woodsman: if you're familiar with python, (apply #'f arg1 arg2 list) is much like f(arg1, arg2, *list) 2014-11-20T06:49:22Z ggole: The_Woodsman: there's no iteration really, it just passes the elements of the list as arguments 2014-11-20T06:50:38Z The_Woodsman: ggole: okay, so i think i understand 2014-11-20T06:50:57Z ggole: I'd suggest starting a repl and playing around with it. 2014-11-20T06:50:58Z The_Woodsman: ggole: thanks 2014-11-20T06:51:23Z The_Woodsman: ggole: what's a repl? and yeah i am playing with it in a clisp interpreter right now 2014-11-20T06:51:36Z Pixel_Outlaw: You've found the REPL then. :) 2014-11-20T06:51:47Z ggole: The place where you type lisp code and get back results, seems like you're in one already. 2014-11-20T06:52:05Z The_Woodsman: ggole: oh, i just didn't know the term for it. cool, thanks 2014-11-20T06:52:07Z ggole: (It stands for read-eval-print-loop.) 2014-11-20T06:52:49Z The_Woodsman: just out of curiosity, what do you guys like about lisp that you don't get in python or c++, for example? I'm finding lisp to be pretty tough to wrap my head around, coming from those languages 2014-11-20T06:53:43Z Pixel_Outlaw: I like that is is excellent for modifying collections without loops in single line statements, the CLOS object system, and also the functions that generate functions called macros. 2014-11-20T06:53:48Z kcj quit (Read error: Connection reset by peer) 2014-11-20T06:54:38Z ggole: Macros, a combination of a high-level language and respectable speed. 2014-11-20T06:54:47Z The_Woodsman: Pixel_Outlaw: so what kind of attributes of a project would make you think "ah, that seems like a LISP project?" 2014-11-20T06:55:04Z zacts joined #lisp 2014-11-20T06:55:13Z zacts: milesrout 2014-11-20T06:55:17Z Pixel_Outlaw: Anything where I need to have a collection of items that needs to be transformed through a series of steps. But the others here are more skilled. 2014-11-20T06:55:37Z Pixel_Outlaw: I've only got 2 years under my belt. 2014-11-20T06:55:40Z The_Woodsman: cool, thanks 2014-11-20T06:55:48Z The_Woodsman: i've got about 2 days so i appreciate the insight 2014-11-20T06:56:35Z Pixel_Outlaw: The key for me was to think of things not in terms of nested parens but of s-expressions. Once you learn the basic forms you don't get lost in the parens. 2014-11-20T06:56:46Z Pixel_Outlaw: Also one moment, I have a helpful video for you. 2014-11-20T06:56:59Z The_Woodsman: haha yeah, the parens are kind of problematic for me right now 2014-11-20T06:57:32Z Pixel_Outlaw: https://www.youtube.com/playlist?list=PL2VAYZE_4wRIoHsU5cEBIxCYcbHzy4Ypj 2014-11-20T06:57:48Z Pixel_Outlaw: Assuming you are using Emacs you can find some great help there. 2014-11-20T06:58:15Z The_Woodsman: i'm gonna bookmark that, thanks for the link 2014-11-20T07:00:37Z Pixel_Outlaw: yw 2014-11-20T07:00:41Z ggole: A good editor helps a lot with the parens 2014-11-20T07:01:00Z ggole: Matching them by hand will be a bit more painful than necessary. 2014-11-20T07:02:06Z Pixel_Outlaw: Even if The Sussman did it quite well on a chalkboard. 2014-11-20T07:02:21Z meiji11 quit (Remote host closed the connection) 2014-11-20T07:03:54Z zRecursive quit (Remote host closed the connection) 2014-11-20T07:05:32Z Petit_Dejeuner_ joined #lisp 2014-11-20T07:07:13Z Pixel_Outlaw: The_Woodsman, my first CL book was Common Lisp: A Gentle Introduction to Symbolic Computation but it is a fairly slow paced methodical read for programmers. If you want something a bit faster paced there is also Practical Common Lisp. If you want cartoons and games there is Land of Lisp. :D 2014-11-20T07:07:17Z Zhivago: These days, lisp has fewer compelling arguments in comparison to other languages. 2014-11-20T07:07:46Z Zhivago: Probably the main differentiating factor is pervasive macros, and a syntax that makes your syntactic extensions first class. 2014-11-20T07:08:23Z Zhivago: That is, your extensions to the language look like the language, rather than being limited to some special cases as with operator overloading, etc. 2014-11-20T07:08:27Z Petit_Dejeuner quit (Ping timeout: 258 seconds) 2014-11-20T07:08:53Z Zhivago: Also, note that macros need not generate functions. 2014-11-20T07:11:49Z munksgaard joined #lisp 2014-11-20T07:14:32Z ered quit (Quit: Leaving) 2014-11-20T07:15:57Z ered joined #lisp 2014-11-20T07:16:53Z P77CAAUFY joined #lisp 2014-11-20T07:18:15Z drl joined #lisp 2014-11-20T07:19:49Z keen___________5 joined #lisp 2014-11-20T07:20:49Z keen___________4 quit (Ping timeout: 265 seconds) 2014-11-20T07:24:41Z The_Woodsman quit (Ping timeout: 265 seconds) 2014-11-20T07:26:52Z Beetny joined #lisp 2014-11-20T07:29:36Z pranavrc quit (Remote host closed the connection) 2014-11-20T07:30:50Z mishoo__ joined #lisp 2014-11-20T07:33:06Z CrazyWoods joined #lisp 2014-11-20T07:39:02Z frkout_ joined #lisp 2014-11-20T07:39:03Z frkout quit (Read error: Connection reset by peer) 2014-11-20T07:41:58Z lemoinem quit (Ping timeout: 256 seconds) 2014-11-20T07:47:04Z tesuji joined #lisp 2014-11-20T07:47:47Z hiyosi joined #lisp 2014-11-20T07:49:00Z Pixel_Outlaw: Well I guess my little diversion is over. Rolls though all combinations of equipment and attempts to find the highest scoring combination. 2014-11-20T07:49:01Z Pixel_Outlaw: http://pastebin.com/Ybqfr6Xk 2014-11-20T07:49:21Z Pixel_Outlaw: I wish pastebin had better CL syntax highlighting. 2014-11-20T07:49:34Z H4ns: Pixel_Outlaw: use paste.lisp.org 2014-11-20T07:50:31Z H4ns: Pixel_Outlaw: (if (consp items) ...) is redundant 2014-11-20T07:50:47Z H4ns: Pixel_Outlaw: besides, use when if there is no else clause in an if. 2014-11-20T07:50:54Z TDog quit (Ping timeout: 255 seconds) 2014-11-20T07:51:31Z Harag joined #lisp 2014-11-20T07:51:57Z hiyosi quit (Ping timeout: 245 seconds) 2014-11-20T07:52:50Z Harag quit (Client Quit) 2014-11-20T07:53:55Z xorpse quit (Ping timeout: 244 seconds) 2014-11-20T07:53:56Z Pixel_Outlaw: I don't like my dolist clauses there. But I heard that you can end prematurely when using loop and nested lists. 2014-11-20T07:54:30Z Pixel_Outlaw: Before all combinations are processed. 2014-11-20T07:55:16Z H4ns: Pixel_Outlaw: dolist has an implicit tagbody 2014-11-20T07:55:36Z alpha- quit (Ping timeout: 258 seconds) 2014-11-20T07:55:57Z hitecnologys quit (Ping timeout: 240 seconds) 2014-11-20T07:55:58Z xorpse joined #lisp 2014-11-20T07:56:46Z lemoinem joined #lisp 2014-11-20T07:57:06Z hitecnologys joined #lisp 2014-11-20T07:57:28Z Pixel_Outlaw: H4ns, is there a multi list iteration feature? 2014-11-20T07:57:57Z Vutral quit (Ping timeout: 240 seconds) 2014-11-20T07:58:11Z H4ns: Pixel_Outlaw: not quite sure what you mean by that. 2014-11-20T07:58:27Z Pixel_Outlaw: Well a cleaner way than to nest 3 dolist expressions. 2014-11-20T07:58:33Z H4ns: Pixel_Outlaw: what is unclean about it? 2014-11-20T07:59:08Z H4ns: Pixel_Outlaw: i find it crystal clear 2014-11-20T07:59:10Z Pixel_Outlaw: It just borders on 3 nested for loops. Thought that there might be a high level function that produces a nested iteration. 2014-11-20T07:59:11Z Cymew joined #lisp 2014-11-20T07:59:23Z Harag joined #lisp 2014-11-20T07:59:36Z Pixel_Outlaw: I guess I could write a macro but I'm not that horrified. 2014-11-20T07:59:37Z stux|RC-only quit (Ping timeout: 240 seconds) 2014-11-20T07:59:37Z H4ns: Pixel_Outlaw: what would you want to achieve by using such a high-level function? would it be any easier to read? faster? 2014-11-20T08:00:18Z Pixel_Outlaw: (iterate-lists (lists1 var1 list2 var2 list3 var3) function) 2014-11-20T08:00:23Z Pixel_Outlaw: something to that effect. 2014-11-20T08:00:37Z vhost- quit (Ping timeout: 240 seconds) 2014-11-20T08:01:09Z H4ns: Pixel_Outlaw: you could use do for that, but i'd recommend against it. the dolist version is very easy to read and understand. 2014-11-20T08:01:10Z Pixel_Outlaw: If you say my style in code is OK I'm fine. :D 2014-11-20T08:01:17Z vhost- joined #lisp 2014-11-20T08:01:19Z Vutral joined #lisp 2014-11-20T08:01:24Z stux|RC-only joined #lisp 2014-11-20T08:01:44Z Pixel_Outlaw: I'm always second guessing because there are so many nice high level functions within the language. 2014-11-20T08:03:28Z Pixel_Outlaw: "Did I miss a function in the Hyperspec" 2014-11-20T08:07:49Z defaultxr quit (Quit: gnight) 2014-11-20T08:12:46Z Grue`: but why do you even need a 3 level loop for this? this problem is solved in O(n) time 2014-11-20T08:15:10Z Pixel_Outlaw: How should it be done? 2014-11-20T08:15:33Z Pixel_Outlaw: I guess that was my notion of producing the permutations. 2014-11-20T08:16:35Z arenz joined #lisp 2014-11-20T08:16:58Z Pixel_Outlaw: Player must have a weapon armor and accessory. I just group them get the total sum of the attributes then compare with the next possibility. 2014-11-20T08:17:08Z kuimacro joined #lisp 2014-11-20T08:17:19Z Grue`: it's inefficient because you're summing up the same values over and over again 2014-11-20T08:17:49Z Grue`: max(a+b+c) = max(a) + max(b) + max(c) 2014-11-20T08:18:07Z Grue`: because a, b and c are independent 2014-11-20T08:18:21Z H4ns: woha, coding replaced by thinking! blows my mind every time it happens! 2014-11-20T08:18:23Z H4ns: :) 2014-11-20T08:19:10Z Grue`: i just failed an interview the other day because i was "thinking" on questions instead of just saying some bullshit all the time 2014-11-20T08:19:35Z mvilleneuve joined #lisp 2014-11-20T08:19:50Z H4ns: one may want to assume that thinking trumps most other activities, but the sad reality is that doing is often appreciated much more. 2014-11-20T08:19:53Z stardiviner joined #lisp 2014-11-20T08:20:12Z H4ns: "let's install a mysql cluster and shard the data!1" 2014-11-20T08:20:30Z harish_ quit (Ping timeout: 256 seconds) 2014-11-20T08:22:54Z mrSpec joined #lisp 2014-11-20T08:23:05Z Lowl3v3l joined #lisp 2014-11-20T08:25:21Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-20T08:25:28Z munksgaard quit (Ping timeout: 255 seconds) 2014-11-20T08:26:13Z kanru quit (Remote host closed the connection) 2014-11-20T08:26:27Z alpha- joined #lisp 2014-11-20T08:27:22Z MrWoohoo joined #lisp 2014-11-20T08:29:07Z stepnem joined #lisp 2014-11-20T08:29:25Z kanru joined #lisp 2014-11-20T08:29:51Z echo-area quit (Remote host closed the connection) 2014-11-20T08:32:47Z Pixel_Outlaw: Grue`, what was the interview for? 2014-11-20T08:36:52Z Grue`: a job 2014-11-20T08:37:02Z pranavrc joined #lisp 2014-11-20T08:37:02Z pranavrc quit (Changing host) 2014-11-20T08:37:02Z pranavrc joined #lisp 2014-11-20T08:39:32Z Pixel_Outlaw quit (Quit: Leaving) 2014-11-20T08:41:38Z a20141120 joined #lisp 2014-11-20T08:41:42Z schjetne: Grue`: Lisp job, or Blub job? 2014-11-20T08:42:11Z InvalidCo: shard the data :D 2014-11-20T08:42:14Z InvalidCo: is that a real thing 2014-11-20T08:43:13Z mvilleneuve_ joined #lisp 2014-11-20T08:43:51Z tesuji quit (Read error: Connection reset by peer) 2014-11-20T08:43:52Z mvilleneuve quit (Ping timeout: 240 seconds) 2014-11-20T08:45:04Z ndrei_ joined #lisp 2014-11-20T08:49:15Z pppp2 joined #lisp 2014-11-20T08:53:56Z kcj joined #lisp 2014-11-20T08:54:12Z munksgaard joined #lisp 2014-11-20T09:02:59Z redeemed joined #lisp 2014-11-20T09:06:11Z zacharias quit (Ping timeout: 265 seconds) 2014-11-20T09:06:52Z munksgaard quit (Ping timeout: 255 seconds) 2014-11-20T09:07:41Z wooden quit (Ping timeout: 264 seconds) 2014-11-20T09:08:35Z munksgaard joined #lisp 2014-11-20T09:09:51Z kcj quit (Read error: Connection reset by peer) 2014-11-20T09:11:58Z prxq joined #lisp 2014-11-20T09:14:24Z prxq quit (Read error: Connection reset by peer) 2014-11-20T09:15:48Z prxq joined #lisp 2014-11-20T09:21:21Z vinleod joined #lisp 2014-11-20T09:23:26Z gingerale joined #lisp 2014-11-20T09:33:12Z attila_lendvai joined #lisp 2014-11-20T09:33:12Z attila_lendvai quit (Changing host) 2014-11-20T09:33:12Z attila_lendvai joined #lisp 2014-11-20T09:34:01Z harish_ joined #lisp 2014-11-20T09:34:04Z Niac quit (Remote host closed the connection) 2014-11-20T09:35:23Z ozzloy quit (Ping timeout: 264 seconds) 2014-11-20T09:36:16Z hiyosi joined #lisp 2014-11-20T09:38:05Z yeticry quit (Ping timeout: 265 seconds) 2014-11-20T09:39:08Z yeticry joined #lisp 2014-11-20T09:40:52Z whartung quit (Ping timeout: 244 seconds) 2014-11-20T09:40:58Z hiyosi quit (Ping timeout: 256 seconds) 2014-11-20T09:41:27Z kuimacro quit (Quit: Nettalk6 - www.ntalk.de) 2014-11-20T09:44:52Z whartung joined #lisp 2014-11-20T09:48:24Z alexey quit (Remote host closed the connection) 2014-11-20T09:49:02Z lommm joined #lisp 2014-11-20T09:49:48Z zacharias joined #lisp 2014-11-20T10:03:27Z attila_lendvai quit (Quit: Leaving.) 2014-11-20T10:06:53Z msmith joined #lisp 2014-11-20T10:09:24Z Nshag quit (Ping timeout: 245 seconds) 2014-11-20T10:09:46Z Nshag joined #lisp 2014-11-20T10:10:12Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-20T10:11:55Z kushal joined #lisp 2014-11-20T10:14:06Z vinleod joined #lisp 2014-11-20T10:14:24Z kushal left #lisp 2014-11-20T10:17:23Z _5kg quit (Ping timeout: 264 seconds) 2014-11-20T10:18:31Z _5kg joined #lisp 2014-11-20T10:19:15Z urandom__ joined #lisp 2014-11-20T10:19:25Z edgar-rft joined #lisp 2014-11-20T10:21:53Z alpert joined #lisp 2014-11-20T10:22:17Z alpert is now known as Guest69529 2014-11-20T10:22:31Z josemanuel joined #lisp 2014-11-20T10:35:33Z attila_lendvai joined #lisp 2014-11-20T10:37:59Z LoicLisp joined #lisp 2014-11-20T10:39:38Z rick-monster: just managed a very simple midi looping demonstration in sbcl using my alsa midi bindings! 2014-11-20T10:40:10Z rick-monster: The speed and ease of doing that immediately justified all the pain learning the ins and outs of cffi in order to create the bindings... 2014-11-20T10:41:06Z pjb: rick-monster: https://www.youtube.com/watch?v=oyFQVZ2h0V8 2014-11-20T10:43:37Z wjiang quit (Quit: Leaving) 2014-11-20T10:50:38Z emagdalenaC2C joined #lisp 2014-11-20T10:52:18Z H4ns: rick-monster: congrats! 2014-11-20T10:52:46Z H4ns: rick-monster: i find midi incredibly satisfying to play with. nothing can quite beat a computer playing a musical instrument :) 2014-11-20T10:53:08Z rick-monster: literally a 5 minute hack to get my feet wet with looping - excited what I can do with midi and lisp! 2014-11-20T10:54:50Z emagdalenaC2C quit 2014-11-20T10:58:36Z kanru quit (Ping timeout: 256 seconds) 2014-11-20T10:59:02Z Harag quit (Read error: Connection reset by peer) 2014-11-20T10:59:05Z rick-monster: reckon the way forward will be to sequence everything on the 24 ppqn midi tick clock, and also store offset as a fraction of midi ticks, then let the alsa sequencer take care of fine-grained timings. 2014-11-20T10:59:29Z Harag joined #lisp 2014-11-20T10:59:59Z nydel quit (Quit: WeeChat 0.4.2) 2014-11-20T11:01:10Z Karl_Dscc joined #lisp 2014-11-20T11:01:22Z nydel joined #lisp 2014-11-20T11:01:38Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T11:02:09Z rick-monster: or attempt to create a free-running higher resolution clock (maybe 96ppqn) which optionally syncs to incoming ticks. 2014-11-20T11:03:08Z pppp2 quit (Read error: Connection reset by peer) 2014-11-20T11:08:15Z test1600 joined #lisp 2014-11-20T11:08:57Z Karl_Dscc quit (Remote host closed the connection) 2014-11-20T11:09:06Z Cymew: Grue`: I've found speaking without hestiation makes you look "decisive". Then you can always append "But in real life I'd do some deeper analysis after that as well". Worked for me so far... 2014-11-20T11:09:47Z rick-monster: think option B would be best implemented with a separate thread for the 96ppqn clock. Is there an implementation that would support threads on a beaglebone black, raspberry pi or similar? 2014-11-20T11:22:10Z hiyosi joined #lisp 2014-11-20T11:24:43Z paul0 quit (Ping timeout: 244 seconds) 2014-11-20T11:24:50Z tkhoa2711 joined #lisp 2014-11-20T11:26:47Z hiyosi quit (Ping timeout: 244 seconds) 2014-11-20T11:28:17Z test1600 quit (Ping timeout: 240 seconds) 2014-11-20T11:28:54Z test1600 joined #lisp 2014-11-20T11:31:36Z [1]test1600 joined #lisp 2014-11-20T11:31:44Z attila_lendvai quit (Quit: Leaving.) 2014-11-20T11:32:32Z kbtr quit (Remote host closed the connection) 2014-11-20T11:33:29Z test1600 quit (Ping timeout: 264 seconds) 2014-11-20T11:34:30Z [1]test1600 is now known as test1600 2014-11-20T11:34:35Z attila_lendvai joined #lisp 2014-11-20T11:34:43Z attila_lendvai quit (Changing host) 2014-11-20T11:34:43Z attila_lendvai joined #lisp 2014-11-20T11:42:42Z test1600 quit (Ping timeout: 250 seconds) 2014-11-20T11:49:01Z alexey joined #lisp 2014-11-20T11:50:55Z rtra quit (Ping timeout: 272 seconds) 2014-11-20T11:51:29Z kbtr joined #lisp 2014-11-20T11:53:34Z alexey quit (Ping timeout: 256 seconds) 2014-11-20T11:54:09Z Ethan- joined #lisp 2014-11-20T11:55:50Z H4ns: rick-monster: ccl does it. 2014-11-20T11:56:55Z rtra joined #lisp 2014-11-20T12:02:19Z drl quit (Ping timeout: 272 seconds) 2014-11-20T12:03:07Z eudoxia joined #lisp 2014-11-20T12:04:08Z secondchoice joined #lisp 2014-11-20T12:04:18Z EvW joined #lisp 2014-11-20T12:07:26Z alexherbo2 joined #lisp 2014-11-20T12:07:48Z eudoxia quit (Client Quit) 2014-11-20T12:08:02Z eudoxia joined #lisp 2014-11-20T12:08:50Z secondchoice quit (Quit: Leaving) 2014-11-20T12:14:51Z TDog joined #lisp 2014-11-20T12:14:55Z drl joined #lisp 2014-11-20T12:16:21Z josemanuel quit (Quit: Saliendo) 2014-11-20T12:33:29Z tkhoa2711 quit (Ping timeout: 264 seconds) 2014-11-20T12:36:04Z cpt_nemo quit (Ping timeout: 256 seconds) 2014-11-20T12:36:12Z cpt_nemo joined #lisp 2014-11-20T12:39:14Z Harag1 joined #lisp 2014-11-20T12:39:16Z Harag quit (Ping timeout: 255 seconds) 2014-11-20T12:40:22Z usrj_ joined #lisp 2014-11-20T12:41:49Z alexey joined #lisp 2014-11-20T12:43:37Z Beetny quit (Ping timeout: 245 seconds) 2014-11-20T12:44:44Z hiyosi joined #lisp 2014-11-20T12:45:41Z Petit_Dejeuner__ joined #lisp 2014-11-20T12:46:39Z LoicLisp quit (Ping timeout: 272 seconds) 2014-11-20T12:49:49Z Petit_Dejeuner_ quit (Ping timeout: 272 seconds) 2014-11-20T12:50:55Z drdanmaku quit (Quit: Connection closed for inactivity) 2014-11-20T13:01:07Z BitPuffin joined #lisp 2014-11-20T13:02:34Z mockturtle joined #lisp 2014-11-20T13:06:00Z nyef joined #lisp 2014-11-20T13:06:12Z chu joined #lisp 2014-11-20T13:07:34Z nyef: G'morning all. 2014-11-20T13:07:43Z thawes joined #lisp 2014-11-20T13:08:07Z Karl_Dscc joined #lisp 2014-11-20T13:14:23Z yeticry quit (Ping timeout: 264 seconds) 2014-11-20T13:15:09Z yeticry joined #lisp 2014-11-20T13:15:48Z CrazyWoods quit (Ping timeout: 244 seconds) 2014-11-20T13:15:52Z pranavrc quit 2014-11-20T13:17:44Z CrazyWoods joined #lisp 2014-11-20T13:18:32Z drdanmaku joined #lisp 2014-11-20T13:18:52Z karswell quit (Ping timeout: 240 seconds) 2014-11-20T13:19:29Z eudoxia quit (Quit: Lost terminal) 2014-11-20T13:23:01Z kuimacro joined #lisp 2014-11-20T13:24:27Z LoicLisp joined #lisp 2014-11-20T13:25:15Z alexey quit (Remote host closed the connection) 2014-11-20T13:28:55Z manuel__ joined #lisp 2014-11-20T13:36:56Z lavokad joined #lisp 2014-11-20T13:38:23Z TDog quit (Ping timeout: 264 seconds) 2014-11-20T13:40:57Z vi1 joined #lisp 2014-11-20T13:41:30Z manfoo7 joined #lisp 2014-11-20T13:42:25Z duper quit (Quit: Leaving) 2014-11-20T13:44:13Z jusss joined #lisp 2014-11-20T13:47:53Z agumonkey quit (Ping timeout: 264 seconds) 2014-11-20T13:48:29Z thawes quit (Remote host closed the connection) 2014-11-20T13:49:43Z agumonkey joined #lisp 2014-11-20T13:50:45Z kuimacro quit (Quit: Nettalk6 - www.ntalk.de) 2014-11-20T13:54:17Z thawes joined #lisp 2014-11-20T13:58:41Z munksgaard quit (Ping timeout: 264 seconds) 2014-11-20T14:00:51Z lommm quit (Ping timeout: 250 seconds) 2014-11-20T14:10:38Z munksgaard joined #lisp 2014-11-20T14:11:19Z loke_ joined #lisp 2014-11-20T14:11:30Z mockturtle quit (Read error: Connection reset by peer) 2014-11-20T14:12:10Z mockturtle joined #lisp 2014-11-20T14:12:54Z wooden joined #lisp 2014-11-20T14:23:47Z kushal joined #lisp 2014-11-20T14:26:17Z kushal left #lisp 2014-11-20T14:27:43Z jumblerg joined #lisp 2014-11-20T14:28:09Z diginet quit (Ping timeout: 265 seconds) 2014-11-20T14:29:14Z oleo joined #lisp 2014-11-20T14:29:20Z jumblerg quit (Client Quit) 2014-11-20T14:29:51Z alexey joined #lisp 2014-11-20T14:30:30Z Ethan- quit (Ping timeout: 265 seconds) 2014-11-20T14:30:52Z diginet joined #lisp 2014-11-20T14:31:18Z Ethan- joined #lisp 2014-11-20T14:33:35Z cmack` joined #lisp 2014-11-20T14:33:52Z enitiz joined #lisp 2014-11-20T14:35:54Z wasamasa is now known as wasa 2014-11-20T14:36:29Z wasa is now known as wasamasa 2014-11-20T14:37:12Z cmack` is now known as tsuru 2014-11-20T14:38:20Z Shinmera joined #lisp 2014-11-20T14:39:37Z knobo joined #lisp 2014-11-20T14:39:47Z knobo: why does cl-json make 2014-11-20T14:39:50Z knobo: YASON is a Common Lisp library for encoding and decoding data in the JSON interchange format. JSON is used as a lightweight alternative to XML. YASON has the sole purpose of encoding and decoding data and does not impose any object model on the Common Lisp application that uses it. 2014-11-20T14:39:55Z knobo: opps.. 2014-11-20T14:39:59Z knobo: sorry... 2014-11-20T14:40:05Z kushal joined #lisp 2014-11-20T14:40:49Z knobo: why does cl-json make (cl-json:encode-json-alist '((id . (:body . (:und (1 2 3)))))) body in to an array? 2014-11-20T14:40:55Z ilhami joined #lisp 2014-11-20T14:41:51Z lempel joined #lisp 2014-11-20T14:42:23Z Shinmera: Because it can also be read as a list? 2014-11-20T14:42:24Z Xach: knobo: I don't know, but that is indistinguishable from '((id :body :und (1 2 3))). maybe that has something to do with it. 2014-11-20T14:42:32Z thawes quit (Ping timeout: 250 seconds) 2014-11-20T14:43:18Z thawes joined #lisp 2014-11-20T14:43:46Z Shinmera: If you want to ensure that it'll end up as a json object you'll have to use a hash-table. Any list structure is ambiguous. 2014-11-20T14:45:03Z knobo: ok. 2014-11-20T14:45:34Z madmalik quit (Quit: Connection closed for inactivity) 2014-11-20T14:46:23Z knobo: Shinmera: good to know. I've been trying to make sens of it. 2014-11-20T14:47:05Z CrazyWoods quit (Quit: leaving) 2014-11-20T14:47:32Z ndrei quit (Ping timeout: 256 seconds) 2014-11-20T14:47:37Z ndrei_ quit (Ping timeout: 272 seconds) 2014-11-20T14:47:40Z hardenedapple joined #lisp 2014-11-20T14:47:57Z test1600 joined #lisp 2014-11-20T14:48:08Z katco joined #lisp 2014-11-20T14:48:09Z Shinmera: I don't remember if cl-json has support for de/serialization of classes, but that might be an option with other otherwise. 2014-11-20T14:48:21Z Shinmera: *with other libs otherwise 2014-11-20T14:48:34Z lempel quit (Read error: Connection reset by peer) 2014-11-20T14:49:47Z gravicappa joined #lisp 2014-11-20T14:52:40Z pjb: knobo: 1. you should use a-list as values if you want to get dictionaries, instead of just a cons cell! 2. with cl-json you may need to add dummy field for it to understand it's a dictionary: (cl-json:encode-json-alist '((id . ((:body . ((:und (1 2 3)) (dummy . 2))))) (dummy . 1))) --> {"id":{"body":{"und":[[1,2,3]],"dummy":2}},"dummy":1} 2014-11-20T14:53:10Z CrazyWoods joined #lisp 2014-11-20T14:53:35Z pjb: or: (cl-json:encode-json-alist '((id . ((:body . ((:und . (1 2 3)) (dummy . 2))))) (dummy . 1))) --> {"id":{"body":{"und":[1,2,3],"dummy":2}},"dummy":1} 2014-11-20T14:54:52Z manuel__ quit (Quit: manuel__) 2014-11-20T14:57:05Z Ethan- quit (Ping timeout: 265 seconds) 2014-11-20T14:59:22Z mingvs quit (Ping timeout: 240 seconds) 2014-11-20T14:59:45Z usrj_ quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2014-11-20T15:01:19Z vaporatorius joined #lisp 2014-11-20T15:01:53Z TDog joined #lisp 2014-11-20T15:02:21Z jusss quit (Read error: Connection reset by peer) 2014-11-20T15:05:04Z knobo: json is a bit cumbersome to work with in lisp.. 2014-11-20T15:05:35Z knobo: it's a lot easier in javascript ;) 2014-11-20T15:05:48Z nyef: knobo: It's not particularly cumbersome as far as I see. 2014-11-20T15:07:00Z nyef: On the other hand, I use ST-JSON and have macros like BIND-JSO-FIELDS... 2014-11-20T15:07:14Z knobo: I'll try out st-json 2014-11-20T15:07:33Z Shinmera: the problem isn't so much working with json (you could add types that match perfectly with the ones from json) as it is mapping cl "standard" types to json ones. 2014-11-20T15:08:46Z schjetne: I've been struggling with the Lisp-JSON impedance mismatch for the last few months 2014-11-20T15:09:29Z schjetne: I've tended towards JSOWN, which makes it easy to build complex objects with backquote notation 2014-11-20T15:09:36Z knobo: what is impedance? 2014-11-20T15:10:21Z katco: knobo: no matter how many times you run something, you'll always get the same result 2014-11-20T15:10:41Z katco: knobo: i.e. the state is not leaky; one run doesn't affect another. 2014-11-20T15:10:55Z thawes quit (Quit: No Ping reply in 180 seconds.) 2014-11-20T15:11:01Z schjetne: knobo: it's an electrical engineering thing, but it's also used as a figure of speech when things don't line up properly 2014-11-20T15:11:23Z katco: knobo: oh gosh i am so sorry 2014-11-20T15:11:27Z katco: i read that as idempotent 2014-11-20T15:11:34Z katco goes for more coffee 2014-11-20T15:12:02Z schjetne: JSOWN doesn't fail very gracefully, though 2014-11-20T15:12:10Z thawes joined #lisp 2014-11-20T15:13:26Z rick-monster: schjetne have a look at YASON - there's a way there to map 1:1 from one of 2 possible lisp DSL to JSON 2014-11-20T15:13:28Z jlarocco_work quit (Remote host closed the connection) 2014-11-20T15:13:47Z schjetne: rick-monster: I use YASON for some things 2014-11-20T15:14:02Z rick-monster: hmm maybe to call it DSL is too strong? but yes one possiblity for alist and one for plist 2014-11-20T15:14:25Z schjetne: I use it when it makes the most sense to work with hash tables 2014-11-20T15:14:58Z ilhami quit (Ping timeout: 265 seconds) 2014-11-20T15:15:12Z schjetne: But I'm guessing JSOWN is faster when you just need to iterate over them 2014-11-20T15:15:13Z jl_2 joined #lisp 2014-11-20T15:15:19Z rick-monster: ok so yeah I guess things are only so simple if you don't care too much about speed :) 2014-11-20T15:16:01Z schjetne: I have a lot of cases where I parse some JSON, do some transformation using map or by walking the tree, then serializing it again and sending it off somewhere 2014-11-20T15:16:04Z ilhami joined #lisp 2014-11-20T15:17:12Z tsuru quit (Read error: Connection reset by peer) 2014-11-20T15:17:22Z schjetne: Right now I'm working with elasticsearch, whose DSL is a pain because of all the nested objects, I have to make a more Lispy DSL for that. 2014-11-20T15:17:26Z tsuru joined #lisp 2014-11-20T15:17:36Z kanru joined #lisp 2014-11-20T15:18:04Z ferada: schjetne: do you have a public repo for that? 2014-11-20T15:18:23Z ferada: oh right, i mean if you do, write it here please 2014-11-20T15:18:28Z henesy joined #lisp 2014-11-20T15:18:35Z duggiefresh joined #lisp 2014-11-20T15:18:49Z schjetne: ferada: I'm planning on releasing a library under the LGPL 2014-11-20T15:18:56Z ferada: great! 2014-11-20T15:19:13Z jumblerg joined #lisp 2014-11-20T15:19:30Z schjetne: are you working on a project with elasticsearch too? 2014-11-20T15:19:41Z ndrei joined #lisp 2014-11-20T15:19:42Z ndrei_ joined #lisp 2014-11-20T15:20:15Z ferada: yeah, my eyes bleed everytime i have to touch the queries 2014-11-20T15:20:43Z schjetne: It's great to hear there's interest 2014-11-20T15:21:25Z test1600 quit (Ping timeout: 258 seconds) 2014-11-20T15:21:32Z schjetne: Right now I'm only prototyping, writing queries by hand with JSOWN, I hope I'll be able to start working on it soon. 2014-11-20T15:21:47Z rick-monster: ok so I did submit a patch to YASON which improves its support for *nested* alist/plist 2014-11-20T15:21:59Z rick-monster: last month or 2 maybe... 2014-11-20T15:22:37Z rick-monster: if that is the issue it might still be worth checking the new feature 2014-11-20T15:22:56Z wasamasa is now known as wasa 2014-11-20T15:23:23Z schjetne: Speaking of which, I've also been working on JSOWN support for the Clack JSON middleware, but it's on the back burner due to an obscure bug. 2014-11-20T15:24:27Z wooden quit (Ping timeout: 244 seconds) 2014-11-20T15:24:30Z PuercoPop: schjetne: an obscure bug in clack or elseware? 2014-11-20T15:24:30Z test1600 joined #lisp 2014-11-20T15:24:43Z jtza8 joined #lisp 2014-11-20T15:25:11Z schjetne: PuercoPop: I don't know. Wait while I push to my repo 2014-11-20T15:26:18Z PuercoPop: I remember clack used to process json as a middleware but now I can't find the contrib 2014-11-20T15:27:22Z askatasuna joined #lisp 2014-11-20T15:27:29Z schjetne: PuercoPop: it's in core 2014-11-20T15:27:39Z wasa is now known as wasamasa 2014-11-20T15:28:07Z madmalik joined #lisp 2014-11-20T15:31:31Z PuercoPop: it was removed in cbba58e70fdb, because clack.request can parse json according to the commit it removed it. 2014-11-20T15:33:08Z mingvs joined #lisp 2014-11-20T15:34:18Z octophore joined #lisp 2014-11-20T15:34:55Z resttime joined #lisp 2014-11-20T15:35:14Z edran_ joined #lisp 2014-11-20T15:35:28Z schjetne: PuercoPop: hah, looks like it's back to the drawing board for me, then 2014-11-20T15:36:57Z attila_lendvai quit (Quit: Leaving.) 2014-11-20T15:37:14Z edran_ quit (Client Quit) 2014-11-20T15:37:20Z attila_lendvai joined #lisp 2014-11-20T15:37:20Z attila_lendvai quit (Changing host) 2014-11-20T15:37:20Z attila_lendvai joined #lisp 2014-11-20T15:37:34Z edran joined #lisp 2014-11-20T15:37:52Z test1600 quit (Ping timeout: 240 seconds) 2014-11-20T15:39:46Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T15:41:58Z khisanth_ joined #lisp 2014-11-20T15:42:08Z lavokad quit (Remote host closed the connection) 2014-11-20T15:43:51Z slyrus joined #lisp 2014-11-20T15:43:54Z jumblerg joined #lisp 2014-11-20T15:44:13Z cyphase quit (Ping timeout: 255 seconds) 2014-11-20T15:44:23Z Khisanth quit (Ping timeout: 264 seconds) 2014-11-20T15:45:09Z manuel__ joined #lisp 2014-11-20T15:46:02Z rick-monster: hmm - btw I just refactored my ceph code and came up with something called "trivial-character-stream" - you mixin the class on top of any binary stream, and hey presto you can read-line and all that good stuff 2014-11-20T15:46:09Z rick-monster: have I just reinvented the wheel? 2014-11-20T15:47:36Z Guest69529 quit (Read error: Connection reset by peer) 2014-11-20T15:47:52Z fantazo joined #lisp 2014-11-20T15:48:10Z Xach: I think flexi-streams does something like that, but I'm not sure. 2014-11-20T15:48:50Z attila_lendvai quit (Quit: Leaving.) 2014-11-20T15:51:06Z rick-monster: hmm I did *look* for that feature first in flexi-streams 2014-11-20T15:51:27Z rick-monster runs off to read the docs... 2014-11-20T15:53:59Z henesy quit (Ping timeout: 264 seconds) 2014-11-20T15:55:32Z slyrus quit (Ping timeout: 258 seconds) 2014-11-20T15:56:40Z tomwalker joined #lisp 2014-11-20T15:56:57Z henesy joined #lisp 2014-11-20T15:57:17Z kablaam joined #lisp 2014-11-20T15:58:18Z cyphase joined #lisp 2014-11-20T16:01:51Z tomwalker: hi guys, I have a problem I cannot figure out or find an answer with google 2014-11-20T16:01:58Z kablaam left #lisp 2014-11-20T16:02:02Z tomwalker: apologies in advance if its dumb... 2014-11-20T16:02:06Z rick-monster: bah - sure enough I could have saved myself a lot of time by just using flexi-streams properly in the first place... 2014-11-20T16:02:53Z mockturtle quit (Quit: mockturtle) 2014-11-20T16:03:09Z tomwalker: im trying to read in an adjacency list from a file and edges have weight. Example line: 1 2,8 3,10 7,7 2014-11-20T16:04:04Z tomwalker: I am getting a "comma not inside a backquote" error 2014-11-20T16:04:28Z H4ns: tomwalker: you should not try to use CL:READ to read non-lisp data 2014-11-20T16:04:41Z H4ns: tomwalker: use read-line and cl-ppcre:split, for example. 2014-11-20T16:05:11Z tomwalker: Thank you!! 2014-11-20T16:05:28Z rick-monster: well at least I've now factored out my 'ad hoc, informally-specified, bug-ridden, slow implementation of flexi-streams' from the useful part of the code... 2014-11-20T16:06:37Z tomwalker: H4ns: I was using (with-open-file (numbers "test1.txt" :direction :input) 2014-11-20T16:06:38Z tomwalker: (defparameter x (make-hash-table)) 2014-11-20T16:06:38Z tomwalker: (loop for line = (read-line numbers nil) 2014-11-20T16:06:38Z tomwalker: while line 2014-11-20T16:06:41Z tomwalker: do (let ((processed-line (with-input-from-string (s line) 2014-11-20T16:06:44Z tomwalker: (loop for y = (read s nil :end) 2014-11-20T16:06:46Z H4ns: tomwalker: don't paste here 2014-11-20T16:06:47Z tomwalker: until (eq y :end).... 2014-11-20T16:06:51Z H4ns: tomwalker: use paste.lisp.org 2014-11-20T16:06:54Z tomwalker: sorry 2014-11-20T16:07:18Z H4ns: tomwalker: "1,2" is not something that you can read with CL:READ 2014-11-20T16:10:36Z julianb joined #lisp 2014-11-20T16:11:15Z zacharias quit (Ping timeout: 258 seconds) 2014-11-20T16:12:00Z thawes quit (Ping timeout: 265 seconds) 2014-11-20T16:12:09Z thawes joined #lisp 2014-11-20T16:13:36Z pjb: tomwalker: this is not exact, 1,2 is something that you CAN read with CL:READ, but that you SHOULD probably NOT. 2014-11-20T16:19:33Z tomwalker: thanks guys, I am just playing around with cl-pprce:split now 2014-11-20T16:19:48Z mishoo joined #lisp 2014-11-20T16:20:03Z tomwalker: is a loop + read-line that "lisp" way to process a file as input or is there a more "lispy" way 2014-11-20T16:20:08Z tomwalker: ? 2014-11-20T16:20:17Z mishoo__ quit (Ping timeout: 245 seconds) 2014-11-20T16:20:20Z k-stz joined #lisp 2014-11-20T16:20:50Z H4ns: tomwalker: i like (loop (let ((line (or (read-line in nil) (return)))) ...)) 2014-11-20T16:20:54Z jtza8 quit (Ping timeout: 250 seconds) 2014-11-20T16:21:02Z H4ns: tomwalker: but i'm probably alone in that. 2014-11-20T16:21:10Z Xach: tomwalker: looping with read-line in some form is fine. 2014-11-20T16:21:17Z Xach: the specifics vary, the idea is sound 2014-11-20T16:22:49Z caps joined #lisp 2014-11-20T16:23:41Z caps left #lisp 2014-11-20T16:26:12Z pt1 joined #lisp 2014-11-20T16:26:32Z thawes quit (Ping timeout: 250 seconds) 2014-11-20T16:26:41Z mvilleneuve_ quit (Quit: This computer has gone to sleep) 2014-11-20T16:27:12Z pjb: tomwalker: http://paste.lisp.org/+33FV 2014-11-20T16:28:00Z knobo quit (Ping timeout: 244 seconds) 2014-11-20T16:32:18Z EvW quit (Ping timeout: 265 seconds) 2014-11-20T16:32:46Z thawes joined #lisp 2014-11-20T16:33:29Z tomwalker: thanks 2014-11-20T16:33:36Z redeemed quit (Quit: q) 2014-11-20T16:34:39Z tomwalker: I have a better idea now 2014-11-20T16:35:25Z tomwalker: I am working through an algorithm course. Tried to do Dijkstra's shortest path algorithm but couldnt get the adjaceny file read :S Just knocked it up in python 2014-11-20T16:35:32Z tomwalker: going to "convert" it to CL now 2014-11-20T16:36:10Z hiyosi quit (Ping timeout: 265 seconds) 2014-11-20T16:38:20Z CoverSlide quit (Remote host closed the connection) 2014-11-20T16:42:52Z pjb: Why not knock it up in lisp? It's much easier and no convertion needed. 2014-11-20T16:43:17Z Cymew quit (Ping timeout: 240 seconds) 2014-11-20T16:43:17Z Petit_Dejeuner_ joined #lisp 2014-11-20T16:43:52Z thawes quit (Ping timeout: 240 seconds) 2014-11-20T16:44:36Z Petit_Dejeuner__ quit (Ping timeout: 258 seconds) 2014-11-20T16:44:39Z psy_ joined #lisp 2014-11-20T16:44:54Z psy_ quit (Max SendQ exceeded) 2014-11-20T16:44:57Z henesy quit (Ping timeout: 240 seconds) 2014-11-20T16:45:29Z psy_ joined #lisp 2014-11-20T16:45:40Z tomwalker: pjb: just my lack of experience really 2014-11-20T16:46:10Z tomwalker: pjb: was busy with the family this week so I just quickly did it python 2014-11-20T16:46:37Z tomwalker: I am trying to "think" more lisp like, rather than write a python program in lisp! 2014-11-20T16:46:48Z innertracks joined #lisp 2014-11-20T16:48:13Z Xach: tomwalker: it helps to read lots of good lisp programs 2014-11-20T16:48:40Z Xach: of course, when you're starting, it's hard to find lisp code, and even harder to know what is good, but practice makes perfect 2014-11-20T16:50:42Z yrk joined #lisp 2014-11-20T16:51:15Z yrk quit (Changing host) 2014-11-20T16:51:15Z yrk joined #lisp 2014-11-20T16:57:40Z henesy joined #lisp 2014-11-20T16:57:43Z mingvs quit (Quit: leaving) 2014-11-20T16:58:28Z LiamH joined #lisp 2014-11-20T16:59:31Z mingvs joined #lisp 2014-11-20T17:03:23Z drl quit (Ping timeout: 258 seconds) 2014-11-20T17:04:11Z LiamH: I find that current cffi-libffi is unloadable (Debian/Ubuntu) SBCL: cc: error: NIL: No such file or directory 2014-11-20T17:05:21Z BlueRavenGT joined #lisp 2014-11-20T17:07:05Z julianb quit (Ping timeout: 264 seconds) 2014-11-20T17:08:31Z pt1 quit (Remote host closed the connection) 2014-11-20T17:10:14Z lavokad joined #lisp 2014-11-20T17:11:00Z beach joined #lisp 2014-11-20T17:11:09Z beach: Good evening everyone! 2014-11-20T17:11:50Z Xach: LiamH: i wonder if that's related to an earlier problem where it stuck "" in the run-program argument list 2014-11-20T17:11:58Z Xach: maybe it got fixed in a broken way 2014-11-20T17:12:10Z nyef: hello beach. 2014-11-20T17:13:22Z beach: All HIR examples updated here: http://metamodular.com/HIR-Examples/index.html 2014-11-20T17:13:35Z beach: The last one is the one that |3b| suggested the other day. 2014-11-20T17:13:40Z LiamH: Xach: I just bisected it tothe bad commit 4d5479d692f 2014-11-20T17:14:49Z beach: Also more suggested programming projects here: http://metamodular.com/Common-Lisp/suggested-projects.html 2014-11-20T17:16:17Z drl joined #lisp 2014-11-20T17:17:05Z henesy quit (Ping timeout: 272 seconds) 2014-11-20T17:17:20Z zeitue quit (Quit: Leaving) 2014-11-20T17:20:08Z henesy joined #lisp 2014-11-20T17:22:47Z ndrei quit (Ping timeout: 245 seconds) 2014-11-20T17:23:52Z ndrei_ quit (Ping timeout: 240 seconds) 2014-11-20T17:24:49Z tomwalker: hi beach 2014-11-20T17:27:11Z kennedyj joined #lisp 2014-11-20T17:28:15Z lavokad: after reading this post http://www.loper-os.org/?p=42 and its comments, i'd like to ask which are some big advantages of CL over clojure (clojure errors do not give any meaninful info, it is slower, no reader macros...)? 2014-11-20T17:29:19Z beach: lavokad: You won't find an objective opinion in #lisp because it is dedicated to Common Lisp. 2014-11-20T17:29:48Z wasamasa: lavokad: keep in mind the only thing the author holds up in high regard are lisp machines (which run CL and closely related dialects usually) 2014-11-20T17:30:41Z lavokad: beach, i dont get what u mean 2014-11-20T17:31:00Z wasamasa: lavokad: he even mentions it in the post 2014-11-20T17:31:20Z lavokad: i asked about important feature that are in CL and are not in Clojure 2014-11-20T17:31:41Z wasamasa: that's neither the point of that post nor the point of this channel 2014-11-20T17:31:49Z beach: lavokad: This is #lisp. It is a channel dedicated to Common Lisp. You can not expect people here to have an objective opinion comparing Common Lisp to other languages. Furthermore, such comparison is off-topic here. 2014-11-20T17:31:56Z wasamasa: lavokad: if you wish to discuss such stuff, you'll have more luck on ##lisp 2014-11-20T17:32:34Z hiyosi joined #lisp 2014-11-20T17:32:53Z mighta joined #lisp 2014-11-20T17:33:04Z lavokad: weird 2014-11-20T17:33:18Z Shinmera: I couldn't get myself to read more than two comments on that, dear lord. 2014-11-20T17:33:38Z Houl joined #lisp 2014-11-20T17:33:42Z lavokad: :) 2014-11-20T17:35:48Z Petit_Dejeuner_: Comments are that bad? 2014-11-20T17:37:59Z hiyosi quit (Ping timeout: 272 seconds) 2014-11-20T17:38:18Z Shinmera: Petit_Dejeuner_: see for yourself. 2014-11-20T17:40:26Z pt1 joined #lisp 2014-11-20T17:45:37Z zacharias joined #lisp 2014-11-20T17:47:53Z munksgaard quit (Ping timeout: 264 seconds) 2014-11-20T17:54:58Z PuercoPop: I found the reply of hype-master to be spot on, except it could it would be better said without the 'colors'. Lemeyerov wrote a paper about the factors that affect doption of PLs 2014-11-20T17:58:55Z beach: PuercoPop: Do you have a link to that paper? 2014-11-20T17:59:22Z Patzy quit (Ping timeout: 240 seconds) 2014-11-20T18:00:13Z innertracks quit (Quit: innertracks) 2014-11-20T18:00:16Z PuercoPop: yeah sec 2014-11-20T18:00:26Z Patzy joined #lisp 2014-11-20T18:00:34Z PuercoPop: http://www.eecs.berkeley.edu/~lmeyerov/projects/socioplt/papers/adoptquant.pdf vivek halder posted about it 2014-11-20T18:00:38Z innertracks joined #lisp 2014-11-20T18:00:51Z PuercoPop: plus I think he has 'socioplt' on his site 2014-11-20T18:00:57Z innertracks quit (Client Quit) 2014-11-20T18:01:07Z wasamasa: now, if only the link would work 2014-11-20T18:01:23Z beach: Yeah, I can't get it to work either. 2014-11-20T18:01:23Z innertracks joined #lisp 2014-11-20T18:03:14Z beach: This one? http://sns.cs.princeton.edu/docs/asr-oopsla13.pdf 2014-11-20T18:03:43Z pjb quit (Ping timeout: 255 seconds) 2014-11-20T18:03:46Z PuercoPop: yeah that one, sorry about that 2014-11-20T18:08:52Z kanru quit (Ping timeout: 240 seconds) 2014-11-20T18:09:42Z lavokad quit (Ping timeout: 258 seconds) 2014-11-20T18:13:23Z oleo__ joined #lisp 2014-11-20T18:13:57Z oleo is now known as Guest30194 2014-11-20T18:14:30Z oleo__ quit (Read error: Connection reset by peer) 2014-11-20T18:14:50Z pjb joined #lisp 2014-11-20T18:14:56Z Guest30194 quit (Ping timeout: 256 seconds) 2014-11-20T18:15:41Z innertracks quit (Quit: innertracks) 2014-11-20T18:16:08Z innertracks joined #lisp 2014-11-20T18:16:59Z psy_ quit (Remote host closed the connection) 2014-11-20T18:18:59Z psy_ joined #lisp 2014-11-20T18:19:58Z JuanDaugherty joined #lisp 2014-11-20T18:22:50Z gravicappa quit (Remote host closed the connection) 2014-11-20T18:30:57Z hardenedapple quit (Quit: WeeChat 1.0.1) 2014-11-20T18:34:22Z arenz quit (Ping timeout: 240 seconds) 2014-11-20T18:34:23Z pecg joined #lisp 2014-11-20T18:34:31Z pecg quit (Client Quit) 2014-11-20T18:34:38Z nyef: beach: Just got a couple of minutes to breathe, and I'm looking at your project pages again. Would your "library for manipulating figures" be a vector graphics library by any other name? 2014-11-20T18:35:24Z henesy quit (Ping timeout: 264 seconds) 2014-11-20T18:36:03Z pecg joined #lisp 2014-11-20T18:36:03Z pecg quit (Changing host) 2014-11-20T18:36:03Z pecg joined #lisp 2014-11-20T18:36:32Z _5kg quit (Ping timeout: 245 seconds) 2014-11-20T18:36:46Z nyef: beach: Also, not seeing any licensing information for CLIMatis in the repository. 2014-11-20T18:38:21Z _5kg joined #lisp 2014-11-20T18:39:36Z CrazyWoods quit (Ping timeout: 258 seconds) 2014-11-20T18:40:38Z CrazyWoods joined #lisp 2014-11-20T18:42:06Z thawes joined #lisp 2014-11-20T18:42:44Z ndrei joined #lisp 2014-11-20T18:42:45Z ndrei_ joined #lisp 2014-11-20T18:46:31Z madrik joined #lisp 2014-11-20T18:48:09Z jtza8 joined #lisp 2014-11-20T18:50:22Z The_Woodsman joined #lisp 2014-11-20T18:54:08Z oleo__ joined #lisp 2014-11-20T18:54:57Z oleo__ is now known as oleo 2014-11-20T18:55:11Z oleo quit (Read error: Connection reset by peer) 2014-11-20T18:56:04Z oleo joined #lisp 2014-11-20T18:56:31Z MightyJoe quit (Ping timeout: 272 seconds) 2014-11-20T18:57:02Z nyef: ... And now I'm out of time for the next two hours or so. /-: 2014-11-20T18:59:52Z MightyJoe joined #lisp 2014-11-20T19:00:24Z kcj joined #lisp 2014-11-20T19:01:12Z thawes quit (Ping timeout: 264 seconds) 2014-11-20T19:01:15Z thawes_ joined #lisp 2014-11-20T19:01:28Z thawes_ quit (Client Quit) 2014-11-20T19:01:48Z thawes joined #lisp 2014-11-20T19:03:24Z hiyosi joined #lisp 2014-11-20T19:05:13Z slyrus joined #lisp 2014-11-20T19:07:52Z hiyosi quit (Ping timeout: 240 seconds) 2014-11-20T19:10:28Z lommm joined #lisp 2014-11-20T19:11:26Z ggole quit 2014-11-20T19:19:25Z henesy joined #lisp 2014-11-20T19:21:17Z thawes quit (Ping timeout: 240 seconds) 2014-11-20T19:21:52Z thawes joined #lisp 2014-11-20T19:24:10Z joneshf-laptop quit (Remote host closed the connection) 2014-11-20T19:27:33Z xrash joined #lisp 2014-11-20T19:27:38Z xrash quit (Read error: Connection reset by peer) 2014-11-20T19:28:16Z xrash joined #lisp 2014-11-20T19:29:03Z Joreji joined #lisp 2014-11-20T19:30:39Z gingerale quit (Ping timeout: 255 seconds) 2014-11-20T19:31:24Z fragamus joined #lisp 2014-11-20T19:33:29Z edgar-rft quit (Ping timeout: 264 seconds) 2014-11-20T19:34:10Z Grue` quit (Ping timeout: 255 seconds) 2014-11-20T19:36:48Z hiyosi joined #lisp 2014-11-20T19:40:48Z pt1 quit (Remote host closed the connection) 2014-11-20T19:41:24Z pt1 joined #lisp 2014-11-20T19:41:57Z pnpuff joined #lisp 2014-11-20T19:45:32Z Grue` joined #lisp 2014-11-20T19:45:52Z pt1 quit (Ping timeout: 240 seconds) 2014-11-20T19:47:18Z slyrus quit (Ping timeout: 255 seconds) 2014-11-20T19:47:39Z alexey quit (Remote host closed the connection) 2014-11-20T19:48:34Z madrik quit (Ping timeout: 255 seconds) 2014-11-20T19:48:58Z fikusz quit (Quit: Leaving) 2014-11-20T19:50:24Z fragamus quit (Ping timeout: 264 seconds) 2014-11-20T19:51:38Z fikusz joined #lisp 2014-11-20T19:53:33Z corni joined #lisp 2014-11-20T19:53:33Z corni quit (Changing host) 2014-11-20T19:53:33Z corni joined #lisp 2014-11-20T19:55:05Z Xach left #lisp 2014-11-20T19:57:05Z pecg quit (Quit: WeeChat 1.0.1) 2014-11-20T19:57:14Z fantazo quit (Ping timeout: 265 seconds) 2014-11-20T19:57:25Z pecg joined #lisp 2014-11-20T19:57:25Z pecg quit (Changing host) 2014-11-20T19:57:25Z pecg joined #lisp 2014-11-20T19:57:42Z Cheatboy2 joined #lisp 2014-11-20T19:58:25Z fragamus joined #lisp 2014-11-20T20:02:57Z rhollor joined #lisp 2014-11-20T20:03:55Z lavokad joined #lisp 2014-11-20T20:04:18Z Patzy quit (Ping timeout: 256 seconds) 2014-11-20T20:04:46Z Patzy joined #lisp 2014-11-20T20:04:55Z Grue` quit (Ping timeout: 272 seconds) 2014-11-20T20:06:45Z edgar-rft joined #lisp 2014-11-20T20:07:52Z hiroakip joined #lisp 2014-11-20T20:08:06Z radioninja joined #lisp 2014-11-20T20:11:30Z Grue` joined #lisp 2014-11-20T20:18:56Z pt1 joined #lisp 2014-11-20T20:19:18Z pt1 quit (Remote host closed the connection) 2014-11-20T20:25:24Z Longlius quit (Ping timeout: 258 seconds) 2014-11-20T20:28:59Z The_Woodsman quit (Ping timeout: 272 seconds) 2014-11-20T20:29:59Z mockturtle joined #lisp 2014-11-20T20:30:45Z pnpuff quit (Quit: Lost terminal) 2014-11-20T20:31:27Z GlassOctober joined #lisp 2014-11-20T20:33:57Z ilhami quit (Ping timeout: 240 seconds) 2014-11-20T20:34:14Z GlassOctober is now known as cy 2014-11-20T20:34:58Z jtza8 quit (Remote host closed the connection) 2014-11-20T20:35:41Z tadni quit (Read error: Connection reset by peer) 2014-11-20T20:35:52Z askatasuna quit (Ping timeout: 240 seconds) 2014-11-20T20:38:37Z tadni joined #lisp 2014-11-20T20:39:12Z askatasuna joined #lisp 2014-11-20T20:47:09Z resttime: i'm curious if lisp has something like this: http://en.wikipedia.org/wiki/Fast_inverse_square_root 2014-11-20T20:47:34Z resttime: like some code that is equivalently magic like 2014-11-20T20:47:45Z resttime: "magic like" 2014-11-20T20:49:15Z a20141120 quit (Quit: Page closed) 2014-11-20T20:49:30Z mockturtle quit (Quit: mockturtle) 2014-11-20T20:49:57Z rhollor quit (Ping timeout: 244 seconds) 2014-11-20T20:52:27Z Patzy quit (Remote host closed the connection) 2014-11-20T20:52:35Z Patzy joined #lisp 2014-11-20T20:53:08Z mockturtle joined #lisp 2014-11-20T20:53:35Z innertracks quit (Quit: innertracks) 2014-11-20T20:55:34Z fantazo joined #lisp 2014-11-20T20:55:55Z mockturtle quit (Client Quit) 2014-11-20T20:56:31Z tomwalker: is there an easy way to get the smallest value in a hashtable? (I know I should be using a heap) 2014-11-20T20:57:14Z pjb: Yes. 2014-11-20T20:57:48Z pjb: (let ((minimum most-positive-long-float)) (maphash (lambda (k v) (if (< v minimum) (setf minimum v))) hashtable) minimum) 2014-11-20T20:57:51Z pjb: See, easy. 2014-11-20T20:57:54Z tomwalker: :D 2014-11-20T20:57:56Z tomwalker: wonderful 2014-11-20T20:58:43Z c74d is now known as Guest48047 2014-11-20T20:58:43Z Guest48047 quit (Killed (leguin.freenode.net (Nickname regained by services))) 2014-11-20T20:58:45Z PuercoPop quit (Ping timeout: 272 seconds) 2014-11-20T20:59:02Z hugoduncan joined #lisp 2014-11-20T20:59:36Z fragamus quit (Quit: My iMac has gone to sleep. ZZZzzz…) 2014-11-20T20:59:53Z PuercoPop joined #lisp 2014-11-20T21:00:39Z hugod quit (Ping timeout: 272 seconds) 2014-11-20T21:00:40Z nyef: tomwalker: Note that if the hash-table is empty then that example will lie. 2014-11-20T21:00:49Z c74d joined #lisp 2014-11-20T21:03:09Z Karl_Dscc quit (Remote host closed the connection) 2014-11-20T21:08:16Z misv_ is now known as misv 2014-11-20T21:09:20Z lavokad quit (Remote host closed the connection) 2014-11-20T21:11:40Z hiroakip quit (Ping timeout: 265 seconds) 2014-11-20T21:14:37Z Cheatboy2 left #lisp 2014-11-20T21:14:52Z CrazyWoods quit (Quit: leaving) 2014-11-20T21:17:44Z sol__ quit (Ping timeout: 250 seconds) 2014-11-20T21:18:44Z alexey joined #lisp 2014-11-20T21:22:28Z Houl quit (Quit: weil das Wetter so schön ist) 2014-11-20T21:22:41Z tomwalker: nyef: thank you 2014-11-20T21:22:53Z EvW joined #lisp 2014-11-20T21:25:12Z Shinmera: resttime: The entirety of ASDF? 2014-11-20T21:25:30Z theseb joined #lisp 2014-11-20T21:25:54Z Shinmera: (I'm not sure if 'magic' is supposed to be positive or negative here) 2014-11-20T21:26:08Z hiroakip joined #lisp 2014-11-20T21:26:16Z resttime: cool magic 2014-11-20T21:26:27Z theseb: style question.....writing a for loop macro invoked like this (for i '(3 4 5) do-something) .....simple question...shoudl i make var (the "i") need to be quoted? 2014-11-20T21:27:00Z theseb: a regular function would *need* to have 'i 2014-11-20T21:27:06Z bobbysmith007: theseb: (loop for i in '(3 4 5) do (stuff)) 2014-11-20T21:27:27Z bobbysmith007: theseb: http://www.gigamonkeys.com/book/loop-for-black-belts.html is a wonderful reference for such things 2014-11-20T21:27:48Z theseb: bobbysmith007: yea...see i read the CL docs on loop..i had a similar question about that....you didn't need to quote i 2014-11-20T21:27:51Z bobbysmith007: ahh sorry I see you are trying to write the macro, not use it appologies 2014-11-20T21:28:01Z theseb: bobbysmith007: that is fine (and useful!)..but isn't "proper" 2014-11-20T21:28:03Z theseb: right? 2014-11-20T21:28:10Z theseb: bobbysmith007: your example works fine for my question too 2014-11-20T21:28:21Z bobbysmith007: theseb: well proper is out the window with macros - macros change what is "proper" 2014-11-20T21:28:44Z theseb: bobbysmith007: no argument there...BUT!!!! how *should* i choose to design this macro? 2014-11-20T21:28:47Z bobbysmith007: in this case most lisp binding macros / operations do not require the name to be quoted, so for consistency the loop variable is not quoted 2014-11-20T21:29:22Z a20141120 joined #lisp 2014-11-20T21:29:38Z ivan4th joined #lisp 2014-11-20T21:29:41Z ilhami joined #lisp 2014-11-20T21:29:42Z theseb: bobbysmith007: yes but that violates the NORMAL way functions are evaluated!!!? 2014-11-20T21:29:49Z theseb: bobbysmith007: i know that is allowed 2014-11-20T21:29:58Z theseb: bobbysmith007: still...IT IS A GOOD IDEA TO DEVIATE? 2014-11-20T21:30:13Z theseb: i realize it is subjective 2014-11-20T21:30:29Z bobbysmith007: theseb: its not a deviation because that is how all bindings are typed in lisp, so its more a matter of convention 2014-11-20T21:30:53Z H4ns: it would be very unusual to require the quoting of a bound variable in a macro invocation. 2014-11-20T21:32:00Z theseb: H4ns: yes...but imagine some beginner is trying to learn CL....he won't KNOW or CARE that for or loop or whatever macro he/she wants to use is not a "regular" function 2014-11-20T21:32:13Z theseb: H4ns: see the problem? we are forcing that exception upon him? 2014-11-20T21:32:20Z theseb: how was that argument? 2014-11-20T21:32:29Z H4ns: theseb: it is not an argument. 2014-11-20T21:32:39Z bobbysmith007: theseb: well we also force let and lambda and many other "language" constructs 2014-11-20T21:33:15Z henesy quit (Ping timeout: 258 seconds) 2014-11-20T21:33:47Z bobbysmith007: theseb: its fundamental to common lisp that you must think about evaluation times, because you have more than one opportunity to evaluate something. Most languages give you one or the other (applicative or normal application) common lisp gives you both, so you will always have to think about it. I agree it is more overhead than languages that do not require this 2014-11-20T21:34:01Z theseb: bobbysmith007: i'm ok when we MUST deviate..e.g. short circuiting and and or macros are useful...but here we don't NEED to do it 2014-11-20T21:35:03Z bobbysmith007: theseb: well we do NEED to do it so that it matches the cultural conventions - a deviation form cultural norms is worse in my mind than trying to keep things "normal" 2014-11-20T21:35:10Z H4ns: theseb: there is no need to do anything, but if you deviate from the style that most people use, most people will not want to want to read your code. 2014-11-20T21:35:12Z bobbysmith007: however many people eschew loop for that reason 2014-11-20T21:35:27Z henesy joined #lisp 2014-11-20T21:35:43Z LoicLisp quit (Quit: Leaving) 2014-11-20T21:36:07Z theseb: bobbysmith007: i see your point about let 2014-11-20T21:36:14Z bobbysmith007: theseb: in this case, the convention of lisp is that binding new names does not require them to be quoted eg (lambda(x)...) (let ((a 1))...) 2014-11-20T21:36:22Z theseb: bobbysmith007: we do (let (a 4) a) instead of (let ('a 4) a) 2014-11-20T21:36:47Z theseb: bobbysmith007: or even worse...(let '(a 4) 'a) 2014-11-20T21:36:52Z bobbysmith007: the language could require those names to have quotes, but everyone decided that they could keep that rule in mind and thus quotes are not used in binding contexts (in general) 2014-11-20T21:37:11Z theseb: actually...(let '(a 4) 'a) would probably be the most "proper" for some def of proper even though it looks icky 2014-11-20T21:37:33Z bobbysmith007: theseb: nope, you would be returning "a" instead of "4" in that case 2014-11-20T21:38:25Z theseb: bobbysmith007: i don't know first invented let but i wonder if there was a debate back in lisp history about whether (let '(a 4) a) or (let (a 4) a) was better 2014-11-20T21:38:31Z theseb: s/know/know who/ 2014-11-20T21:38:42Z bobbysmith007: theseb: It would be more like (ye-olde-let (('a 4)) a) in order for a to evaluate correctly to 4. IE: bind the name "a" to 4 then evaluate the name "a" in that environment 2014-11-20T21:38:42Z H4ns: theseb: everything in lisp was debated to no end. 2014-11-20T21:39:27Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T21:39:52Z theseb: i still think one can make an argument for (let '(a 4) a) fwiw 2014-11-20T21:40:36Z bobbysmith007: theseb: they can, but they would be in the wrong time. That debate was concluded decades ago and at this point we accept the culture we are in. Also I would hate adding quotes everywhere when I know they are not needed 2014-11-20T21:41:25Z beach left #lisp 2014-11-20T21:41:36Z theseb: bobbysmith007: ok....thanks....now i know it is cultural why things are how they are 2014-11-20T21:42:27Z Harag1 quit (Ping timeout: 272 seconds) 2014-11-20T21:43:39Z joneshf-laptop joined #lisp 2014-11-20T21:43:59Z akkad left #lisp 2014-11-20T21:44:31Z bobbysmith007: theseb: fundamentally this probably arises from pure maths function notation: f(x) => x+1 where the argument list is implied to be literal. Lisp was written in a time when math can comp-sci were much closer together 2014-11-20T21:44:53Z bobbysmith007: theseb: for what its worth you can read the original lisp definition here: http://www-formal.stanford.edu/jmc/recursive.pdf 2014-11-20T21:46:16Z Posterdati: hi 2014-11-20T21:47:04Z drewc: (LET ...) = ((lambda (...) ...) ...)) 2014-11-20T21:47:19Z The_Woodsman joined #lisp 2014-11-20T21:47:47Z bobbysmith007: drewc: that just changes the issue to why is the arglist of lambda not quoted... but yes I agree 2014-11-20T21:48:53Z drewc: bobbysmith007: why is the arglist not quoted? that makes little sense to me ... why would it be so? 2014-11-20T21:50:02Z bobbysmith007: drewc: well I wouldn't argue that it should be, BUT because the names are not evaluated, I think a person feeling sufficiently feisty, probably could argue that the arglist should be quoted 2014-11-20T21:50:07Z drewc: ((lambda (a) a) 1) => 1 ... lambda is a special form 2014-11-20T21:50:52Z Bike: having to quote the lambda list would imply that it's evaluated. 2014-11-20T21:51:07Z slyrus joined #lisp 2014-11-20T21:51:40Z JuanDaugherty quit (Remote host closed the connection) 2014-11-20T21:51:43Z drewc: I could argue that PI = 3.14159 ... but why would it be correct? OR why would we make lambda a non special form, and how would we deal with compilation/lexical variables ? Fexprs? 2014-11-20T21:51:55Z munksgaard joined #lisp 2014-11-20T21:52:53Z drewc: OR (lambda (a) a) <--- at run time there is no symbol named A 2014-11-20T21:52:59Z hiyosi quit (Ping timeout: 244 seconds) 2014-11-20T21:54:24Z drewc: `(and, since we are looking back in time, m-expressions?) 2014-11-20T21:54:58Z edgar-rft quit (Quit: continuation lost because experience ended) 2014-11-20T22:02:34Z felideon quit (Quit: WeeChat 0.4.3) 2014-11-20T22:05:39Z tomwalker: Just implemented Dijkstra shortest path algorithm: http://paste.lisp.org/+33G2 any advice? 2014-11-20T22:06:46Z xrash quit (Ping timeout: 265 seconds) 2014-11-20T22:07:28Z alexey quit (Remote host closed the connection) 2014-11-20T22:07:54Z thawes quit (Remote host closed the connection) 2014-11-20T22:08:33Z Bike: defparameter inside a function is pretty weird. 2014-11-20T22:09:00Z askatasuna quit (Ping timeout: 244 seconds) 2014-11-20T22:09:01Z tomwalker: better to use let at that point? 2014-11-20T22:09:06Z Bike: yeah. 2014-11-20T22:09:17Z drewc: as is making "X" a special variable. 2014-11-20T22:09:18Z Bike: load_file would usually be load-file. split is an external symbol, so you can do cl-ppcre:split. or just ppcre:split i think. 2014-11-20T22:09:54Z zacts quit (Read error: Connection reset by peer) 2014-11-20T22:10:27Z zacts joined #lisp 2014-11-20T22:10:27Z zacts quit (Changing host) 2014-11-20T22:10:27Z zacts joined #lisp 2014-11-20T22:11:00Z Bike: instead of (if (...) (progn ...)) you can just do (when (...) ...). or you could merge the setfs. 2014-11-20T22:11:24Z drewc: there is a fundamental difference between dynamic and lexical scope, hence we usually use *earmuffs* to signify that this symbol is now a special (dynamic) variable. If it does not need to be, let (lexical) is the best bet, for a number of reasons. 2014-11-20T22:11:44Z xrash joined #lisp 2014-11-20T22:12:02Z Bike: and using an array instead of a hash might be more efficient, or not. other than that it seems fine though. 2014-11-20T22:12:18Z rhollor joined #lisp 2014-11-20T22:12:52Z BlueRavenGT quit (Remote host closed the connection) 2014-11-20T22:12:55Z rhollor: what this does is iterate through a file specified on a command line, then, for each line, if the string "rhollor" is anywhere in it, prints it 2014-11-20T22:14:04Z iqool joined #lisp 2014-11-20T22:14:40Z rhollor quit (Client Quit) 2014-11-20T22:14:55Z BlueRavenGT joined #lisp 2014-11-20T22:15:00Z rhollor joined #lisp 2014-11-20T22:16:32Z rhollor: http://paste.lisp.org/+33G3 2014-11-20T22:16:49Z rhollor: what is this program equivalent in lisp? 2014-11-20T22:17:33Z micahjam97 joined #lisp 2014-11-20T22:17:54Z rhollor: 2014-11-20T22:18:32Z siefca joined #lisp 2014-11-20T22:18:41Z Bike: (loop (let ((line (read-line))) (when (search "rhollor" line) (print line)))) 2014-11-20T22:19:18Z duggiefresh quit (Remote host closed the connection) 2014-11-20T22:19:40Z rhollor: Bike: how do I specify where read-line reads from? 2014-11-20T22:19:52Z duggiefresh joined #lisp 2014-11-20T22:20:08Z Bike: its first argument is an input stream. i just used the default, standard input. 2014-11-20T22:20:15Z Bike: (read-line stream) 2014-11-20T22:20:29Z rhollor: okay then 2014-11-20T22:20:38Z Bike: and if you want that stream to be from a file you'd use (with-open-file (stream-name filename) ...) around everything. 2014-11-20T22:24:02Z hitecnologys quit (Ping timeout: 250 seconds) 2014-11-20T22:24:02Z duggiefresh quit (Ping timeout: 245 seconds) 2014-11-20T22:25:46Z iqool quit (Remote host closed the connection) 2014-11-20T22:25:58Z tomwalker: Thanks for the help guys - I updated it with your suggestions http://paste.lisp.org/+33G2 2014-11-20T22:26:22Z siefca: Hi, I have a theoretical question: Is symbol a form? If yes, how do we call it? It's not normal form, it doesn't evaluate to itself. 2014-11-20T22:26:32Z hitecnologys joined #lisp 2014-11-20T22:26:49Z rhollor: Bike: thank you. I've been trying to learn Lisp, but I still rely heavily on perl 2014-11-20T22:27:46Z Grue`: most forms don't evaluate to themselves... 2014-11-20T22:27:59Z _death: siefca: "form" doesn't imply evaluation to self 2014-11-20T22:28:11Z _death: siefca: http://clhs.lisp.se/Body/26_glo_f.htm 2014-11-20T22:28:44Z ruste quit (Remote host closed the connection) 2014-11-20T22:29:52Z Grue`: siefca: also you can't call a symbol, as a symbol is not a function 2014-11-20T22:29:55Z octophore_ joined #lisp 2014-11-20T22:29:56Z octophore_ quit (Excess Flood) 2014-11-20T22:29:58Z siefca: _death: "normal form" implies 2014-11-20T22:30:03Z Bike: maybe siefca meant the term "normal form". dunno what that has to do with anything either though. 2014-11-20T22:30:03Z ruste joined #lisp 2014-11-20T22:30:05Z Grue`: siefca: you can however call a function named by the symbol 2014-11-20T22:30:20Z octophore_ joined #lisp 2014-11-20T22:30:21Z Grue`: with (funcall ...) 2014-11-20T22:30:21Z octophore_ quit (Excess Flood) 2014-11-20T22:30:52Z octophore_ joined #lisp 2014-11-20T22:30:53Z octophore_ quit (Excess Flood) 2014-11-20T22:31:12Z ruste quit (Remote host closed the connection) 2014-11-20T22:31:18Z siefca: Grue`: yeah, but symbol alone can be evaluated, it evaluates to something called "function type object" (if it points to a function) 2014-11-20T22:31:32Z drewc: siefca: generally, when looking for the definition of something, the CLHS glossary section is what we look at. Theory-wise, in CL, a form is "a symbol, a compound form, or a self-evaluating object" 2014-11-20T22:31:35Z ruste joined #lisp 2014-11-20T22:31:42Z octophore_ joined #lisp 2014-11-20T22:31:43Z octophore_ quit (Excess Flood) 2014-11-20T22:31:53Z siefca: Grue`: that's why I'm wondering if a symbol could be a kind of form 2014-11-20T22:32:12Z Bike: symbols are forms. i'm not sure what you're trying to get across, here. 2014-11-20T22:32:19Z nyef: I still maintain that not all symbols are legal forms. 2014-11-20T22:32:46Z Bike: really? what wouldn't be? 2014-11-20T22:32:46Z octophore quit (Ping timeout: 256 seconds) 2014-11-20T22:32:52Z octophore_ joined #lisp 2014-11-20T22:33:01Z drewc: nyef: legal in what sense? 2014-11-20T22:33:31Z josemanuel joined #lisp 2014-11-20T22:33:32Z Grue`: some symbols are illegal because they contain illegal prime number in their name ;) 2014-11-20T22:35:05Z drewc: does location matter? or: what /form/ does #:POT represent, and is it a legal form? 2014-11-20T22:35:06Z siefca: legalize symbols!! Go! be free! People will use them anyway! :)) 2014-11-20T22:35:50Z nyef: Any symbol which is not a symbol-macro, a constant variable, a lexical variable, or a special variable is not a form. 2014-11-20T22:36:41Z drewc: so, evaluation time chooses when it is a /legal/ form? 2014-11-20T22:37:00Z nyef: (Why? Because a form which is a symbol is one of the four, and the requirements for each do not form an exhaustive partition of the space of symbols.) 2014-11-20T22:37:23Z nyef: s/form an/comprise an/. 2014-11-20T22:37:28Z octophore_ quit (Ping timeout: 250 seconds) 2014-11-20T22:38:53Z drewc: wait ... symbol macro is not eval time is it... damnit, my head thought it was working there. 2014-11-20T22:39:07Z tomwalker quit (Ping timeout: 255 seconds) 2014-11-20T22:39:49Z drewc shakes his fist at the CL standard because it makes sense even though he does not understand /why/ it does. 2014-11-20T22:40:00Z ruste quit (Remote host closed the connection) 2014-11-20T22:40:22Z rhollor: what's wring with this? http://paste.lisp.org/+33G4 when I run it, it doesn't do anything. It doesn't even return 2014-11-20T22:40:25Z ruste joined #lisp 2014-11-20T22:40:32Z nyef: I still haven't found the sequence of interpretations that winds up with all symbols being required to be bound with themselves as values. 2014-11-20T22:40:55Z nyef: At least, I don't remember what it was. I ran into it twice, some years ago, though. 2014-11-20T22:40:57Z fantazo quit (Quit: Verlassend) 2014-11-20T22:41:00Z Grue`: rhollor: your loop doesnt have exit condition 2014-11-20T22:41:09Z k-stz quit (Remote host closed the connection) 2014-11-20T22:41:23Z drewc: rhollor: it does something. over and over and over and over [...] 2014-11-20T22:41:37Z ndrei quit (Ping timeout: 240 seconds) 2014-11-20T22:41:44Z Grue`: though wouldnt it signal EOF error? unless your file is very long 2014-11-20T22:41:52Z rhollor: shouldn't it at least print something though when it comes across the condition? 2014-11-20T22:42:03Z ndrei_ quit (Ping timeout: 265 seconds) 2014-11-20T22:42:16Z drewc: nyef: I really do remember PROG2 at this point, and shake my first at .... 2014-11-20T22:42:26Z drewc: s/first/fist 2014-11-20T22:42:26Z nyef: Heh. Yeah, PROG2 is fun. 2014-11-20T22:42:42Z rhollor: Grue`: it's only 1252 lines long 2014-11-20T22:42:46Z drewc: hmmm .... do I lisp more than english , writing wise? 2014-11-20T22:43:05Z attila_lendvai joined #lisp 2014-11-20T22:43:12Z nyef: rhollor: Output is line-buffered, and you're not outputting a line terminator, and your input doesn't look like it causes an error at EOF... 2014-11-20T22:43:35Z jpanest joined #lisp 2014-11-20T22:43:36Z Grue`: the real wtf is PROGV 2014-11-20T22:43:46Z octophore joined #lisp 2014-11-20T22:44:23Z rhollor: I've got to go now, I'll see about it later 2014-11-20T22:44:25Z rhollor quit (Quit: rhollor) 2014-11-20T22:44:51Z fantazo joined #lisp 2014-11-20T22:46:17Z nyef: Lovely. "man cp" refers me to "info cp" because I'm using linux. "info cp" defines the return code in terms of "success" and "failure" without defining what constitutes either. /-: 2014-11-20T22:46:36Z radioninja quit (Quit: :wq) 2014-11-20T22:47:00Z ruste quit (Remote host closed the connection) 2014-11-20T22:47:10Z micahjam97 quit (Ping timeout: 246 seconds) 2014-11-20T22:47:22Z ruste joined #lisp 2014-11-20T22:48:55Z askatasuna joined #lisp 2014-11-20T22:48:55Z josemanuel quit (Quit: Saliendo) 2014-11-20T22:49:49Z hiyosi joined #lisp 2014-11-20T22:50:36Z nyef: Okay, do it the other way, try to make debian-installer ignore the result of cp there. 2014-11-20T22:52:04Z Shinmera quit (Quit: しつれいしなければならないんです。) 2014-11-20T22:52:57Z TDog quit (Ping timeout: 240 seconds) 2014-11-20T22:53:04Z octophore quit (Read error: Connection reset by peer) 2014-11-20T22:53:51Z innertracks joined #lisp 2014-11-20T22:54:30Z hiyosi quit (Ping timeout: 255 seconds) 2014-11-20T22:55:03Z octophore joined #lisp 2014-11-20T22:59:03Z octophore_ joined #lisp 2014-11-20T22:59:43Z octophore quit (Ping timeout: 272 seconds) 2014-11-20T23:00:53Z jpanest quit (Quit: leaving) 2014-11-20T23:04:04Z hiyosi joined #lisp 2014-11-20T23:04:17Z octophore_ quit (Read error: Connection reset by peer) 2014-11-20T23:05:13Z Patzy quit (Ping timeout: 255 seconds) 2014-11-20T23:07:33Z mrSpec quit (Remote host closed the connection) 2014-11-20T23:08:05Z BitPuffin quit (Remote host closed the connection) 2014-11-20T23:10:01Z Lowl3v3l quit (Read error: Connection reset by peer) 2014-11-20T23:15:33Z karswell joined #lisp 2014-11-20T23:17:41Z karswell quit (Remote host closed the connection) 2014-11-20T23:17:52Z linux_dream joined #lisp 2014-11-20T23:18:34Z karswell joined #lisp 2014-11-20T23:19:40Z pjb: nyef: the minimum of the empty set is +infinity. 2014-11-20T23:20:01Z siefca: Thx guys for answers and hints about symbols! 2014-11-20T23:20:40Z nyef: pjb: I would argue that it's undefined. 2014-11-20T23:20:53Z wasamasa: nyef: success is usually a zero? 2014-11-20T23:20:57Z pjb: It's an obvious extension. 2014-11-20T23:21:01Z nyef: pjb: The smallest element of an empty set does not exist. 2014-11-20T23:21:07Z wasamasa: nyef: and failure non-zero? 2014-11-20T23:21:11Z pjb: +infinity neither :-) 2014-11-20T23:21:34Z nyef: wasamasa: Something like that. But what IS success? What does it mean when it returns a failure condition? 2014-11-20T23:21:44Z nyef: It's very carefully not defined in the documentation. 2014-11-20T23:21:54Z wasamasa: "Something went wrong 2014-11-20T23:21:55Z wasamasa: " 2014-11-20T23:22:26Z pjb: nyef: for example, if you take the set of singleton, the maximum minimum of a subset of the set of singleton will in general be greater than the maximum minimum of a subset of the set of pairs. 2014-11-20T23:22:41Z nyef: "Whatever ``went wrong'' doesn't seem important to me, I can see the results I want, why is it failing and how can I stop it?" 2014-11-20T23:22:41Z wasamasa: nyef: also 2014-11-20T23:22:49Z pjb: nyef: therefore to the limit, the minimum of the empty set is greater than any maximum minimum of any set. 2014-11-20T23:23:01Z wasamasa: nyef: "An exit status of zero indicates success, and a nonzero value indicates failure." 2014-11-20T23:23:10Z wasamasa: nyef: straight from the info manual 2014-11-20T23:23:19Z nyef: wasamasa: Again, there's no definition of SUCCESS or FAILURE. 2014-11-20T23:23:55Z nyef: "It's doing what I want it to do, and then it's returning a failure code which I don't want it to do. Why is it doing that?" 2014-11-20T23:24:11Z nyef: I see the copied files in the destination. 2014-11-20T23:24:17Z wasamasa: you're speaking of a tool used when scripting in a language that only knows of strings as data types 2014-11-20T23:24:29Z nyef: And is documented by bleeding idiots, yes. 2014-11-20T23:24:32Z wasamasa: what the hell do you expect, a CLHS-like documentation? 2014-11-20T23:25:03Z mishoo quit (Ping timeout: 272 seconds) 2014-11-20T23:26:23Z nyef: I expect enough information to allow me to be able to make a determination of WHY it failed. 2014-11-20T23:26:30Z fantazo quit (Ping timeout: 244 seconds) 2014-11-20T23:26:38Z siefca left #lisp 2014-11-20T23:26:38Z wasamasa: not in shell scripts 2014-11-20T23:27:52Z nyef: At which point the return value is useless. 2014-11-20T23:28:00Z wasamasa: no? 2014-11-20T23:28:13Z wasamasa: it is useful for interactive use 2014-11-20T23:28:30Z sheilong joined #lisp 2014-11-20T23:29:20Z nyef: No, it's not: the return value has no documented semantics. 2014-11-20T23:30:15Z nyef: "Success" obviously doesn't mean "copied files", because the files got copied. 2014-11-20T23:31:34Z hugoduncan is now known as hugod 2014-11-20T23:31:43Z nyef: There's no definition of success or failure in the documentation, the return value is defined in terms of success and failure, therefore there is no documented semantics for the return value. 2014-11-20T23:31:48Z Bike: http://stackoverflow.com/questions/23579492/all-possible-exit-codes-for-cp awesome. 2014-11-20T23:31:50Z askatasuna quit (Ping timeout: 265 seconds) 2014-11-20T23:32:34Z nyef: See? Even there, no definition for what success means. 2014-11-20T23:32:37Z wasamasa: let's write lisputils to replace these obviously inadequate tools made by GNU, BSD, 9plan, ... 2014-11-20T23:33:05Z wasamasa: and then use t and nil as return codes 2014-11-20T23:33:05Z nyef: I was thinking that subsistence farming might be a better use of my time. 2014-11-20T23:33:49Z pjb: Depends on your belief on after life. 2014-11-20T23:34:09Z pjb: If you believe in re-incarnation, you may want to improve things and leave breadcrumbs for you in your next live. 2014-11-20T23:34:31Z pjb: If you believe that it's one shot, then you could as well have as much fun as you can. 2014-11-20T23:37:08Z slyrus_ joined #lisp 2014-11-20T23:37:13Z nyef: Yeah, well, in this case I just changed a couple of occasions of && to ; in order to ignore the (useless) return codes. 2014-11-20T23:39:41Z linux_dream quit (Quit: Leaving) 2014-11-20T23:40:15Z slyrus quit (Ping timeout: 272 seconds) 2014-11-20T23:40:23Z slyrus joined #lisp 2014-11-20T23:43:55Z slyrus_ quit (Ping timeout: 255 seconds) 2014-11-20T23:45:51Z lommm quit (Ping timeout: 250 seconds) 2014-11-20T23:46:15Z yrk quit (Ping timeout: 255 seconds) 2014-11-20T23:47:21Z Ethan- joined #lisp 2014-11-20T23:48:29Z stepnem quit (Ping timeout: 264 seconds) 2014-11-20T23:52:34Z jumblerg joined #lisp 2014-11-20T23:54:29Z stardiviner quit (Ping timeout: 264 seconds) 2014-11-20T23:59:13Z Joreji quit (Ping timeout: 255 seconds)