2015-12-23T00:00:09Z ASau` joined #lisp 2015-12-23T00:00:20Z mordocai: Looks like that is all in the runtime folder? 2015-12-23T00:00:26Z dreamaddict: then the real question here is: why am I the only programmer that I know who has even heard of LISP and how awesome it is? 2015-12-23T00:00:34Z dreamaddict: (I do know multiple programmers) 2015-12-23T00:00:54Z Jesin quit (Quit: Leaving) 2015-12-23T00:00:58Z mordocai: dreamaddict: You hang out with the wrong programmers :P 2015-12-23T00:01:04Z dreamaddict: obviously 2015-12-23T00:01:31Z mordocai: Seriously though, most programmers with interest/knowledge in language design probably at least know about lisp. 2015-12-23T00:01:37Z Xach: phoe_krk: sbcl is derived from cmucl, which has a C runtime now, but it didn't start that way. 2015-12-23T00:01:40Z dreamaddict: when I first took coding back up a few years ago, it looked like “well, either you like JS or C++ or…tough crap, that’s what people use” 2015-12-23T00:02:02Z sp: i'd be worried about someone who designs a modern language without knowing lisp 2015-12-23T00:02:04Z phoe_krk: CMUCL was able to compile itself without C? 2015-12-23T00:02:25Z dreamaddict: and then I learned about this magical language where instead of going “aw shucks, looks like the language doesn’t do that”, you make the language do that, like a real programming language is supposed to be 2015-12-23T00:02:26Z Xach: phoe_krk: yes. 2015-12-23T00:02:28Z mordocai: Yeah, I actually had thought there was no C until you pointed out otherwise phoe_krk. 2015-12-23T00:02:28Z phoe_krk: I mean, was it pure Lisp? 2015-12-23T00:02:34Z mordocai: assembly -> lisp 2015-12-23T00:02:35Z Xach: phoe_krk: no 2015-12-23T00:02:42Z dreamaddict: and…no one I know has heard of it. Well, you’re probably right about not knowing the right programmers :P 2015-12-23T00:02:43Z mordocai: well python is in there (not THAT python) 2015-12-23T00:02:52Z Xach: phoe_krk: I can't reach cons.org right now, but it has a cmucl history page that explains it a bit. 2015-12-23T00:02:57Z phoe_krk: I see. 2015-12-23T00:02:58Z Xach: http://webcache.googleusercontent.com/search?q=cache:CjBK1-A0Xn4J:www.cons.org/cmucl/doc/cmucl-history.html+&cd=2&hl=en&ct=clnk&gl=us is the cache. 2015-12-23T00:03:07Z Xach: >> The first target machine was the Perq, which was a microcoded graphics workstation inspired by the Xerox Alto and D-machines. We wrote our own Lisp instruction set in microcode. 2015-12-23T00:03:11Z ASau` is now known as ASau 2015-12-23T00:03:16Z phoe_krk: Ooh, Lisp and assembly. 2015-12-23T00:03:30Z Xach: C is a lot newer than Lisp. 2015-12-23T00:04:02Z sp: Xach: did someone mention it isn't? 2015-12-23T00:04:02Z dreamaddict: if you can write a lisp in assembly…that’s as awesome as it gets 2015-12-23T00:04:13Z Jesin joined #lisp 2015-12-23T00:04:30Z phoe_krk: dreamaddict: Lisp is God damn easy to implement 2015-12-23T00:04:33Z sp: i think you mean if your lisp is the assembly 2015-12-23T00:04:36Z phoe_krk: compared to Java or even C 2015-12-23T00:04:41Z Bicyclidine: plus C makes more sense when you're on a C-based operating system, which the alto at least probably wasn't 2015-12-23T00:04:45Z Xach: sp: Not that I know of. But the notion of "sbcl happened when someone awesome at both Lisp and C did it" makes it seem like the skills are somehow related in time. 2015-12-23T00:04:53Z phoe_krk: Bicyclidine: C is a language for writing Unix. 2015-12-23T00:05:01Z phoe_krk: as someone said some time ago. 2015-12-23T00:05:10Z sp: Xach: oh okay 2015-12-23T00:05:26Z phoe_krk: someone called Lisp a high-level assembler sometime, too. 2015-12-23T00:05:33Z sp: phoe_krk: and for implementing linked lists yet again :) 2015-12-23T00:05:43Z phoe_krk: sp: :P 2015-12-23T00:06:04Z Bicyclidine: the old edition of TAOCP v. 1 i read included complaining about lisp, it was pretty good 2015-12-23T00:06:12Z Bicyclidine: dunno if they've kept that 2015-12-23T00:06:24Z sp: what? that sounds like a great read 2015-12-23T00:06:47Z dreamaddict: what’s that one quote I read…”Lisp programmers know the value of everything and the cost of nothing” 2015-12-23T00:07:46Z mvilleneuve quit (Quit: This computer has gone to sleep) 2015-12-23T00:07:54Z sp: dreamaddict: of course, the value of nothing is NIL 2015-12-23T00:08:02Z sp: no wait 2015-12-23T00:08:46Z dreamaddict: implying that since you don’t have to manually do all of the low-level buggery that you can’t know what it all means, or something like that 2015-12-23T00:08:46Z pillton hates people that make large sweeping generalisations. 2015-12-23T00:08:51Z phoe_krk: dreamaddict: that quote is bullshit. 2015-12-23T00:09:12Z sp: phoe_krk: judging by the endless declaim/declare statements i see in the average CL program, yeah 2015-12-23T00:09:15Z dreamaddict: the more I learn about this language, the more bullshit it seems 2015-12-23T00:09:17Z phoe_krk: and C programmers love giving each other pointers until one of them dies of a segfault. 2015-12-23T00:09:27Z sp: lolol 2015-12-23T00:10:14Z phoe_krk: sp: some of the good advice I got is, always keep unoptimized versions of your code 2015-12-23T00:10:18Z phoe_krk: because they're readable. 2015-12-23T00:10:40Z phoe_krk: heavily-optimized Lisp is just as readable as C. meaning, not much. 2015-12-23T00:10:57Z dreamaddict: yeah they seem to intersect on that front 2015-12-23T00:10:57Z sp: wouldn't it be pretty simple to keep a separate list of the optimizations you want, and automatically apply them at compile time? 2015-12-23T00:10:59Z phoe_krk: a clear algorithm will always read better than hundreds of (proclaim 'independence) 2015-12-23T00:11:20Z sp: i've never done a large scale CL project, so i wouldn't know 2015-12-23T00:11:24Z phoe_krk: sp: it is simple, it's called (declaim ((speed 3))) 2015-12-23T00:11:27Z dreamaddict: but what’s nice about LISP is that you can start at the easy-to-comprehend version and then optimize 2015-12-23T00:11:28Z phoe_krk: if I got that right 2015-12-23T00:11:35Z phoe_krk: dreamaddict: never the other way around. 2015-12-23T00:11:41Z dreamaddict: never 2015-12-23T00:11:57Z dreamaddict: that was pissing me off about making things in C 2015-12-23T00:11:58Z phoe_krk: trying to optimize something that doesn't work at all yet isn't a good idea. 2015-12-23T00:12:02Z Jonsky: Just saw this discussoin 2015-12-23T00:12:22Z Xach: It's not so much a discussion as random declarations by people who don't know much about what they're talking about. 2015-12-23T00:12:22Z Jonsky: Some of the 99 Lisp problems are covered in The Little Schemeer and The Seasoned Schemer. 2015-12-23T00:12:24Z Jonsky: So cute 2015-12-23T00:12:24Z sp: phoe_krk: yes, but that applies to the whole program, right? 2015-12-23T00:12:50Z phoe_krk: sp: yes. for manual optimizations, you could easily write a macro. 2015-12-23T00:13:02Z sp: yeah, that's in line with what i was thinking. i'm just wondering, is it done? 2015-12-23T00:13:02Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T00:13:14Z phoe_krk: I don't know. 2015-12-23T00:13:18Z phoe_krk: Possibly might be done. 2015-12-23T00:13:25Z sp: because i'm lazy enough that i would probably do that 2015-12-23T00:13:27Z phoe_krk: Possibly not. 2015-12-23T00:13:32Z phoe_krk: sp: good instinct. 2015-12-23T00:13:34Z kyfho joined #lisp 2015-12-23T00:13:38Z sp: :) 2015-12-23T00:14:28Z phoe_krk: But it would be easy to do something like (with-optimization :speed 3 (var1 fixnum) (var2 fixnum) ...) 2015-12-23T00:14:38Z phoe_krk: with your functions and whatever else going in the ... 2015-12-23T00:14:54Z phoe_krk: so the macro can automatically declaim things wherever necessary. 2015-12-23T00:15:05Z sp: yeah, that's how i imagine it 2015-12-23T00:15:34Z phoe_krk: but I'd wait for others' voice on that, because I have no idea whether it was done and, if not, why. 2015-12-23T00:16:15Z sp: true, but if it's a dead-end, that would (presumably) become obvious soon enough 2015-12-23T00:16:21Z Zhivago: with-xxx are generally for local things, in which case, you can just use (locally ...) 2015-12-23T00:16:37Z phoe_krk: Zhivago: yes, and we mean local optimizations by that. 2015-12-23T00:16:37Z k-stz quit (Remote host closed the connection) 2015-12-23T00:17:19Z Zhivago: In which case, have your macro expand into (locally ...) :) 2015-12-23T00:17:33Z Zhivago: But then you'd only have it apply to local functions ... 2015-12-23T00:19:01Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T00:20:07Z kyfho joined #lisp 2015-12-23T00:20:16Z sp: well, i'll play around with it if i ever see myself going optimization-crazy 2015-12-23T00:20:30Z jasom: what's the current status of lisp on mobile? 2015-12-23T00:20:38Z jasom: IIRC there are now options other than mocl? 2015-12-23T00:21:39Z Zhivago: Well, dynamic compilation is generally problematic on mobile systems. 2015-12-23T00:22:07Z jasom: Zhivago: because of a lack of execute permissions on the data segment? 2015-12-23T00:22:33Z kyfho: when lisp phone? 2015-12-23T00:22:48Z wildlander quit (Quit: Saliendo) 2015-12-23T00:23:23Z resttime: jasom: I believe it's just that though if it counts, Clojure 2015-12-23T00:23:47Z jasom: resttime: specifically talking about common lisp 2015-12-23T00:24:11Z kyfho: no java 2015-12-23T00:24:17Z kyfho: oracle must die 2015-12-23T00:24:30Z phoe_krk: kyfho: it won't. 2015-12-23T00:24:55Z sp: kyfho: why does oracle have to die? why do you have to use their products? 2015-12-23T00:25:04Z phoe_krk: Zhivago: only interpreting is left, then? 2015-12-23T00:25:18Z Zhivago: Or ahead-of-time compilation, or some combination. 2015-12-23T00:25:29Z Zhivago: Although I may be out of date or mistaken, so ymmv. 2015-12-23T00:25:48Z phoe_krk: Zhivago: you can't do ahead-of-time compilation while defining a function by a REPL, I believe. 2015-12-23T00:25:59Z jasom: sbcl struggles with AoT compilation, IIRC it does compilation, e.g. on any make-instance with unique arguments 2015-12-23T00:26:09Z Zhivago: Sure, but you can call an AOT compiled function from a REPL using an interpreter. 2015-12-23T00:26:19Z phoe_krk: Hmmm. 2015-12-23T00:26:42Z Zhivago: sbcl does AOT compilation, producing fasls. 2015-12-23T00:26:51Z phoe_krk: That's troublesome nevertheless if there's problems with execute permissions. 2015-12-23T00:26:55Z jasom: Zhivago: and then it does more compilation at runtime 2015-12-23T00:27:12Z Zhivago: Sure, but that doesn't mean that it struggles with AoT. 2015-12-23T00:27:47Z jasom: Zhivago: it has several places where compilation is delayed; IMO that counts as struggling with AoT 2015-12-23T00:28:08Z jasom: though I can avoid CLOS, which should prevent most, if not all, of that 2015-12-23T00:28:59Z phoe_krk: Okay! Sleep time for me. 2015-12-23T00:29:02Z phoe_krk: Night, #parens 2015-12-23T00:29:51Z karswell joined #lisp 2015-12-23T00:31:52Z sp: phoe_krk: see ya mate 2015-12-23T00:32:27Z jasom: wait, LuaJIT works on android and iOS; if JITing is possible, then dynamic compilation should be, right? 2015-12-23T00:33:11Z jasom: ah "Note: the JIT compiler is disabled for iOS, because regular iOS Apps are not allowed to generate code at runtime. You'll only get the performance of the LuaJIT interpreter on iOS. This is still faster than plain Lua, but much slower than the JIT compiler. Please complain to Apple, not me. Or use Android. :-p" 2015-12-23T00:33:32Z jasom: so a fast interpreter would be useful for ios 2015-12-23T00:34:19Z bcoburn_n joined #lisp 2015-12-23T00:34:49Z phoe_krk: or a way to avoid that with a jailbreak if possible. 2015-12-23T00:34:51Z phoe_krk: night 2015-12-23T00:36:05Z bcoburn quit (Ping timeout: 260 seconds) 2015-12-23T00:38:32Z attila_lendvai quit (Read error: No route to host) 2015-12-23T00:39:07Z phoe_krk: http://stackoverflow.com/questions/4733847/can-you-build-dynamic-libraries-for-ios-and-load-them-at-runtime ! 2015-12-23T00:39:16Z phoe_krk: "Apple doesn't want you doing this for App Store apps, but the operating system certainly allows it. Jailbreak apps use this technique all the time. You basically use a standard UNIX technique to dynamically open a framework/library, and then use stuff in it." 2015-12-23T00:39:31Z phoe_krk: Therefore, a jailbroken Lisp should be able to dynamically compile your code. 2015-12-23T00:39:38Z phoe_krk: okay, night, take three. xD 2015-12-23T00:40:32Z attila_lendvai joined #lisp 2015-12-23T00:40:32Z attila_lendvai quit (Changing host) 2015-12-23T00:40:32Z attila_lendvai joined #lisp 2015-12-23T00:42:04Z Petit_Dejeuner joined #lisp 2015-12-23T00:49:02Z Pittman quit (Quit: Leaving) 2015-12-23T00:52:08Z wolfcore quit (Read error: Connection reset by peer) 2015-12-23T00:55:08Z eazar001 joined #lisp 2015-12-23T00:58:01Z eazar001 quit (Client Quit) 2015-12-23T00:58:01Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-23T01:00:13Z eazar001 joined #lisp 2015-12-23T01:00:18Z harish quit (Ping timeout: 265 seconds) 2015-12-23T01:02:19Z stepnem quit (Ping timeout: 260 seconds) 2015-12-23T01:03:20Z wolfcore joined #lisp 2015-12-23T01:03:44Z wolfcore is now known as Guest1487 2015-12-23T01:05:35Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T01:06:06Z kyfho joined #lisp 2015-12-23T01:13:36Z karswell quit (Remote host closed the connection) 2015-12-23T01:24:46Z Jonsky left #lisp 2015-12-23T01:25:20Z Karl_Dscc quit (Remote host closed the connection) 2015-12-23T01:33:52Z iddqd quit (Quit: Connection closed for inactivity) 2015-12-23T01:38:07Z ajf- quit (Quit: Textual IRC Client: www.textualapp.com) 2015-12-23T01:39:30Z grouzen quit (Ping timeout: 256 seconds) 2015-12-23T01:41:28Z FreeBirdLjj joined #lisp 2015-12-23T01:50:12Z badkins quit (Remote host closed the connection) 2015-12-23T01:51:20Z gabriel_ joined #lisp 2015-12-23T01:56:49Z BitPuffin|osx quit (Ping timeout: 245 seconds) 2015-12-23T01:57:07Z meowmeowmeow joined #lisp 2015-12-23T01:58:05Z gabriel_: dude? 2015-12-23T01:58:18Z gabriel_: meowmeowmeow? are you the guy from SDF? 2015-12-23T01:58:27Z manuel_ quit (Quit: manuel_) 2015-12-23T01:58:38Z meowmeowmeow: no, don't believe so 2015-12-23T02:00:57Z gabriel_: similar nickname, my bad :) 2015-12-23T02:02:09Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T02:05:45Z devmau quit (Quit: devmau) 2015-12-23T02:08:52Z kyfho joined #lisp 2015-12-23T02:09:24Z dark_amok joined #lisp 2015-12-23T02:13:00Z dark_amok quit (Client Quit) 2015-12-23T02:14:37Z warweasle joined #lisp 2015-12-23T02:16:39Z aap_ joined #lisp 2015-12-23T02:16:39Z aap quit (Read error: Connection reset by peer) 2015-12-23T02:17:50Z badkins joined #lisp 2015-12-23T02:17:57Z pilne quit (Quit: Quitting) 2015-12-23T02:18:07Z Warlock[29A] joined #lisp 2015-12-23T02:18:33Z badkins quit (Remote host closed the connection) 2015-12-23T02:19:08Z meowmeowmeow quit (Remote host closed the connection) 2015-12-23T02:22:17Z harish joined #lisp 2015-12-23T02:23:25Z pilne joined #lisp 2015-12-23T02:23:59Z warweasle: Anyone know how to make a cffi c-struct which acts like a clos class? 2015-12-23T02:24:55Z psy_ quit (Ping timeout: 240 seconds) 2015-12-23T02:26:04Z arescorpio joined #lisp 2015-12-23T02:28:07Z Bicyclidine: warweasle: "acts like" in what senses? 2015-12-23T02:29:01Z FreeBird_ joined #lisp 2015-12-23T02:29:45Z warweasle: Bicyclidine: It would be simple to initialize-instance (or constructor), automaticlly create accessors, and translate properly from defcfun functions. 2015-12-23T02:30:07Z warweasle can't seem to get it to work with define-foreign-type 2015-12-23T02:31:48Z FreeBirdLjj quit (Ping timeout: 255 seconds) 2015-12-23T02:31:51Z Bicyclidine: cffi docs have a self contradictory example. nice. 2015-12-23T02:32:29Z Bicyclidine: well, more like the example is just describing something completely different. 2015-12-23T02:33:44Z warweasle: Bicyclidine: FOr one, there is a reference to a :class option in defcstruct...which isn't mentioned anywhere else. 2015-12-23T02:34:01Z duggiefresh quit (Remote host closed the connection) 2015-12-23T02:34:49Z Bicyclidine: this documentation is so messed up i don't want to go off it. well, whatever 2015-12-23T02:37:10Z warweasle: Oh well. I'll just keep trying different things until something works. 2015-12-23T02:40:06Z attila_lendvai quit (Ping timeout: 240 seconds) 2015-12-23T02:43:29Z EvW quit (Ping timeout: 255 seconds) 2015-12-23T02:48:25Z kdub_ joined #lisp 2015-12-23T02:51:07Z kdub_ left #lisp 2015-12-23T02:51:17Z kdub_ joined #lisp 2015-12-23T02:52:10Z defaultxr joined #lisp 2015-12-23T03:04:33Z pilne quit (Quit: Quitting) 2015-12-23T03:08:33Z pilne joined #lisp 2015-12-23T03:11:17Z Quadrescence: oh yeah, that undocumented :class option 2015-12-23T03:11:28Z Quadrescence: i ran across that & never figured it out 2015-12-23T03:20:23Z Guest66141 quit (Ping timeout: 255 seconds) 2015-12-23T03:24:25Z mordocai: If I don't need regular expressions should I still use cl-ppcre for replacing items in a string or replace all here http://cl-cookbook.sourceforge.net/strings.html#manip or something else? Strings will be relatively small, but I'd prefer a quicklisp library over cl-cookbook copy paste. 2015-12-23T03:24:53Z Xach: cl-ppcre is pretty good to use 2015-12-23T03:27:10Z kyfho: wha tabuot irregex 2015-12-23T03:29:37Z OrangeShark quit (Quit: Leaving) 2015-12-23T03:35:38Z dkcl joined #lisp 2015-12-23T03:43:44Z wz1000 quit (Read error: Connection reset by peer) 2015-12-23T03:52:34Z Niac joined #lisp 2015-12-23T03:52:40Z Petit_Dejeuner quit (Ping timeout: 256 seconds) 2015-12-23T03:54:39Z gabriel_ quit (Read error: Connection reset by peer) 2015-12-23T03:55:16Z gabriel_ joined #lisp 2015-12-23T03:58:09Z rtoym_ joined #lisp 2015-12-23T03:58:55Z rtoym quit (Ping timeout: 240 seconds) 2015-12-23T03:59:04Z rtoym_ is now known as rtoym 2015-12-23T04:00:14Z kdub_ quit (Quit: kdub_) 2015-12-23T04:01:58Z rme joined #lisp 2015-12-23T04:03:18Z Niac quit (Read error: Connection reset by peer) 2015-12-23T04:03:36Z kdub_ joined #lisp 2015-12-23T04:04:03Z dreamaddict quit (Quit: dreamaddict) 2015-12-23T04:04:54Z pilne quit (Quit: Quitting) 2015-12-23T04:05:10Z kdub_ left #lisp 2015-12-23T04:05:52Z duggiefresh joined #lisp 2015-12-23T04:10:00Z qubitnerd joined #lisp 2015-12-23T04:12:15Z duggiefresh quit 2015-12-23T04:12:55Z gabriel_ quit (Read error: Connection reset by peer) 2015-12-23T04:13:40Z gabriel_ joined #lisp 2015-12-23T04:14:22Z FreeBird_ quit (Read error: Connection reset by peer) 2015-12-23T04:15:18Z FreeBirdLjj joined #lisp 2015-12-23T04:27:54Z Mon_Ouie quit (Quit: WeeChat 1.3) 2015-12-23T04:38:38Z zdm quit (Read error: Connection reset by peer) 2015-12-23T04:39:39Z sjw joined #lisp 2015-12-23T04:41:27Z mordocai: Hey everyone! I'm having trouble with mel-base. It claims this maildir directory doesn't exist, but it does! Any ideas? http://paste.lisp.org/display/284875 2015-12-23T04:41:38Z mordocai: If no one knows i'll just start diving into the code 2015-12-23T04:42:50Z DeadTrickster quit (Ping timeout: 272 seconds) 2015-12-23T04:42:51Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T04:43:39Z kyfho joined #lisp 2015-12-23T04:43:40Z mordocai: ah nvm, I see. My maildir is malformed. That would be a better message 2015-12-23T04:45:29Z warweasle quit (Quit: That floating skull came back again...) 2015-12-23T04:45:37Z Bicyclidine: http://quickdocs.org/lambda-reader/api well, that's a tad unfortunate 2015-12-23T04:47:49Z kobain quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/) 2015-12-23T04:49:51Z mbuf joined #lisp 2015-12-23T04:53:34Z zacharias quit (Read error: Connection reset by peer) 2015-12-23T04:53:40Z zacharias_ joined #lisp 2015-12-23T04:55:08Z DeadTrickster joined #lisp 2015-12-23T04:57:43Z FreeBird_ joined #lisp 2015-12-23T04:59:16Z treaki__ joined #lisp 2015-12-23T04:59:44Z FreeBirdLjj quit (Ping timeout: 245 seconds) 2015-12-23T05:01:48Z gaya- quit (Ping timeout: 256 seconds) 2015-12-23T05:02:24Z scymtym quit (Ping timeout: 250 seconds) 2015-12-23T05:03:06Z treaki_ quit (Ping timeout: 272 seconds) 2015-12-23T05:05:20Z gaya- joined #lisp 2015-12-23T05:07:58Z p_nathan joined #lisp 2015-12-23T05:09:29Z beach joined #lisp 2015-12-23T05:09:36Z beach: Good morning everyone! 2015-12-23T05:09:41Z blub: hi beach 2015-12-23T05:19:59Z ThePhoeron quit (Ping timeout: 246 seconds) 2015-12-23T05:22:46Z eli joined #lisp 2015-12-23T05:24:15Z s00pcan quit (Remote host closed the connection) 2015-12-23T05:24:36Z ThePhoeron joined #lisp 2015-12-23T05:26:00Z s00pcan joined #lisp 2015-12-23T05:33:01Z Bahman joined #lisp 2015-12-23T05:35:47Z reactor joined #lisp 2015-12-23T05:41:28Z defaultxr quit (Quit: gnight.) 2015-12-23T05:56:24Z arescorpio quit (Quit: Leaving.) 2015-12-23T06:07:24Z harish quit (Remote host closed the connection) 2015-12-23T06:07:35Z adhoc quit (Ping timeout: 246 seconds) 2015-12-23T06:08:21Z harish joined #lisp 2015-12-23T06:08:35Z Bahman quit (Remote host closed the connection) 2015-12-23T06:09:40Z Bahman joined #lisp 2015-12-23T06:10:07Z Intensity quit (Remote host closed the connection) 2015-12-23T06:12:04Z Petit_Dejeuner joined #lisp 2015-12-23T06:12:04Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T06:12:19Z kyfho joined #lisp 2015-12-23T06:12:22Z malbertife joined #lisp 2015-12-23T06:12:39Z harish quit (Ping timeout: 245 seconds) 2015-12-23T06:14:14Z malbertife quit (Client Quit) 2015-12-23T06:24:24Z qwan joined #lisp 2015-12-23T06:25:16Z Intensity joined #lisp 2015-12-23T06:27:53Z quazimodo quit (Ping timeout: 246 seconds) 2015-12-23T06:31:23Z vlatkoB joined #lisp 2015-12-23T06:31:25Z dkcl quit (Remote host closed the connection) 2015-12-23T06:33:51Z kushal joined #lisp 2015-12-23T06:44:10Z s00pcan quit (Ping timeout: 260 seconds) 2015-12-23T06:45:34Z s00pcan joined #lisp 2015-12-23T06:46:56Z beach left #lisp 2015-12-23T06:47:44Z blub quit (Remote host closed the connection) 2015-12-23T06:48:57Z Intensity quit (Remote host closed the connection) 2015-12-23T06:49:51Z Davidbrcz quit (Read error: Connection reset by peer) 2015-12-23T06:52:09Z Davidbrcz joined #lisp 2015-12-23T06:58:24Z blub joined #lisp 2015-12-23T06:59:02Z guicho joined #lisp 2015-12-23T06:59:19Z dkcl joined #lisp 2015-12-23T07:04:05Z Intensity joined #lisp 2015-12-23T07:04:05Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T07:04:19Z gabot quit (Ping timeout: 245 seconds) 2015-12-23T07:04:21Z kyfho joined #lisp 2015-12-23T07:04:59Z eli quit (Ping timeout: 276 seconds) 2015-12-23T07:12:45Z ASau quit (Ping timeout: 260 seconds) 2015-12-23T07:17:47Z treaki__ quit (Quit: Leaving) 2015-12-23T07:20:02Z treaki joined #lisp 2015-12-23T07:20:46Z Intensity quit (Remote host closed the connection) 2015-12-23T07:20:55Z futpib joined #lisp 2015-12-23T07:22:06Z quazimodo joined #lisp 2015-12-23T07:25:55Z Intensity joined #lisp 2015-12-23T07:27:40Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T07:27:58Z kyfho joined #lisp 2015-12-23T07:29:42Z quazimodo quit (Read error: No route to host) 2015-12-23T07:32:52Z kushal quit (Quit: Leaving) 2015-12-23T07:32:53Z kdas_ joined #lisp 2015-12-23T07:34:57Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T07:35:21Z kyfho joined #lisp 2015-12-23T07:36:46Z Demosthenex quit (Ping timeout: 240 seconds) 2015-12-23T07:37:58Z Demosthenex joined #lisp 2015-12-23T07:46:35Z futpib quit (Ping timeout: 276 seconds) 2015-12-23T07:47:11Z kdas_ quit (Quit: Leaving) 2015-12-23T07:47:34Z kushal joined #lisp 2015-12-23T07:49:04Z mishoo_ joined #lisp 2015-12-23T07:49:57Z quazimodo joined #lisp 2015-12-23T07:55:30Z manuel_ joined #lisp 2015-12-23T07:57:26Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T07:57:58Z kyfho joined #lisp 2015-12-23T07:58:22Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T07:59:50Z manuel_ quit (Ping timeout: 255 seconds) 2015-12-23T08:01:32Z adhoc joined #lisp 2015-12-23T08:02:58Z kyfho joined #lisp 2015-12-23T08:03:15Z Mon_Ouie joined #lisp 2015-12-23T08:07:49Z MrWoohoo joined #lisp 2015-12-23T08:08:11Z cadadar joined #lisp 2015-12-23T08:11:51Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T08:12:20Z kyfho joined #lisp 2015-12-23T08:13:50Z obskyrslok joined #lisp 2015-12-23T08:14:36Z obskyrslok quit (Client Quit) 2015-12-23T08:14:51Z obskyrslok joined #lisp 2015-12-23T08:15:09Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T08:15:13Z obskyrslok quit (Client Quit) 2015-12-23T08:16:28Z blub quit (Remote host closed the connection) 2015-12-23T08:16:29Z xrash joined #lisp 2015-12-23T08:17:14Z obskyrslok joined #lisp 2015-12-23T08:17:20Z kyfho joined #lisp 2015-12-23T08:19:08Z quazimodo quit (Ping timeout: 250 seconds) 2015-12-23T08:19:41Z happy-dude quit (Quit: Connection closed for inactivity) 2015-12-23T08:26:20Z zacharias_ is now known as zacharias 2015-12-23T08:33:10Z Th30n joined #lisp 2015-12-23T08:38:07Z stepnem joined #lisp 2015-12-23T08:40:35Z synchromesh quit (Ping timeout: 240 seconds) 2015-12-23T08:44:11Z yenda joined #lisp 2015-12-23T08:48:44Z phoe_krk: morning 2015-12-23T08:57:10Z reactor quit (Ping timeout: 260 seconds) 2015-12-23T08:57:15Z znpy quit (Ping timeout: 240 seconds) 2015-12-23T08:58:15Z runciter joined #lisp 2015-12-23T09:00:02Z znpy joined #lisp 2015-12-23T09:01:25Z TMM quit (Quit: Ex-Chat) 2015-12-23T09:03:03Z mvilleneuve joined #lisp 2015-12-23T09:06:35Z rme quit (Quit: rme) 2015-12-23T09:08:29Z momonta joined #lisp 2015-12-23T09:14:20Z mishoo_ quit (Ping timeout: 276 seconds) 2015-12-23T09:14:41Z mishoo joined #lisp 2015-12-23T09:15:12Z Demosthenex quit (Ping timeout: 244 seconds) 2015-12-23T09:16:02Z Demosthenex joined #lisp 2015-12-23T09:22:25Z runciter quit (Quit: Lost terminal) 2015-12-23T09:24:07Z mvilleneuve quit (Quit: This computer has gone to sleep) 2015-12-23T09:24:35Z Bahman_ joined #lisp 2015-12-23T09:24:45Z Bahman quit (Read error: Connection reset by peer) 2015-12-23T09:27:44Z ebrasca joined #lisp 2015-12-23T09:29:12Z mvilleneuve joined #lisp 2015-12-23T09:33:46Z quazimodo joined #lisp 2015-12-23T09:34:15Z AlphaAtom joined #lisp 2015-12-23T09:35:44Z AlphaAtom quit (Client Quit) 2015-12-23T09:36:43Z ralt quit (Remote host closed the connection) 2015-12-23T09:37:44Z synchromesh joined #lisp 2015-12-23T09:43:23Z TMM joined #lisp 2015-12-23T09:56:49Z quazimodo quit (Ping timeout: 245 seconds) 2015-12-23T10:00:44Z Karl_Dscc joined #lisp 2015-12-23T10:04:21Z Bahman_ quit (Remote host closed the connection) 2015-12-23T10:05:05Z qubitnerd quit (Quit: WeeChat 1.3) 2015-12-23T10:05:08Z knobo joined #lisp 2015-12-23T10:07:28Z mvilleneuve quit (Quit: This computer has gone to sleep) 2015-12-23T10:08:09Z Bahman joined #lisp 2015-12-23T10:24:44Z resttime quit (Quit: Bye bye!) 2015-12-23T10:26:26Z gabriel_ quit (Remote host closed the connection) 2015-12-23T10:26:26Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T10:26:44Z kyfho joined #lisp 2015-12-23T10:30:58Z fourier joined #lisp 2015-12-23T10:32:51Z sjw quit (Quit: = "") 2015-12-23T10:33:13Z gravicappa joined #lisp 2015-12-23T10:34:01Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T10:35:07Z kyfho joined #lisp 2015-12-23T10:41:26Z yenda quit (Remote host closed the connection) 2015-12-23T10:44:06Z cmatei quit (Ping timeout: 240 seconds) 2015-12-23T10:45:34Z ramky joined #lisp 2015-12-23T10:49:53Z obskyrslok quit (Remote host closed the connection) 2015-12-23T10:56:55Z Th30n_ joined #lisp 2015-12-23T10:57:58Z prxq joined #lisp 2015-12-23T11:00:17Z Th30n quit (Ping timeout: 276 seconds) 2015-12-23T11:04:44Z loke quit (Ping timeout: 272 seconds) 2015-12-23T11:05:12Z loke joined #lisp 2015-12-23T11:09:16Z quazimodo joined #lisp 2015-12-23T11:09:39Z cmatei joined #lisp 2015-12-23T11:12:05Z DeadTrickster: what can be used as portable alternative to sb-concurrency? 2015-12-23T11:12:33Z Guest1487 left #lisp 2015-12-23T11:12:45Z DeadTrickster: I'm particularly interested in mailboxes and receive-message with timeout parameter 2015-12-23T11:13:39Z p_nathan quit (Ping timeout: 260 seconds) 2015-12-23T11:15:35Z phoe_krk: I believe you could spend a while and rewrite https://github.com/sbcl/sbcl/tree/master/contrib/sb-concurrency with things like bordeaux-threads, the code makes some use of sb-only packages but it's not a lot of code. 2015-12-23T11:15:46Z phoe_krk: But that's a thing I'd do as a last resort. 2015-12-23T11:16:04Z phoe_krk: Because I don't know any portable alternatives. 2015-12-23T11:16:40Z phoe_krk: Other than, um, basically implementing https://github.com/sbcl/sbcl/tree/master/contrib/sb-concurrency again with bordeaux-threads instead. 2015-12-23T11:19:22Z phoe_krk: Which would end up being about the same as what I mentioned in the first step. 2015-12-23T11:23:34Z mishoo quit (Quit: (save-lisp-and-die)) 2015-12-23T11:26:46Z DeadTrickster: well I actually thought about it, but it's just way too complex. for example bt has no semaphores 2015-12-23T11:27:28Z DeadTrickster: however I'll maybe try to cherry-pick needed parts 2015-12-23T11:27:39Z DeadTrickster: copy paste yea 2015-12-23T11:28:02Z flambard joined #lisp 2015-12-23T11:29:22Z iddqd joined #lisp 2015-12-23T11:29:33Z bcoburn joined #lisp 2015-12-23T11:30:11Z knobo quit (Ping timeout: 276 seconds) 2015-12-23T11:30:11Z bcoburn_n quit (Ping timeout: 264 seconds) 2015-12-23T11:30:36Z DeadTrickster: also semaphore impl now expects condition-wait to return timeout left 2015-12-23T11:30:53Z DeadTrickster: I'm sure there is no match on other platforms 2015-12-23T11:31:54Z grouzen joined #lisp 2015-12-23T11:33:25Z mishoo joined #lisp 2015-12-23T11:34:24Z Bahman quit (Read error: Connection reset by peer) 2015-12-23T11:34:37Z Karl_Dscc quit (Remote host closed the connection) 2015-12-23T11:34:45Z jtza8 joined #lisp 2015-12-23T11:34:54Z Bahman joined #lisp 2015-12-23T11:38:15Z tanuzzo joined #lisp 2015-12-23T11:42:41Z Bahman quit (Quit: Ave atque vale) 2015-12-23T11:44:36Z attila_lendvai joined #lisp 2015-12-23T11:44:36Z attila_lendvai quit (Changing host) 2015-12-23T11:44:36Z attila_lendvai joined #lisp 2015-12-23T11:45:52Z EvW joined #lisp 2015-12-23T11:46:46Z attila_lendvai quit (Read error: Connection reset by peer) 2015-12-23T11:46:46Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T11:47:30Z kyfho joined #lisp 2015-12-23T11:48:59Z attila_lendvai joined #lisp 2015-12-23T11:48:59Z attila_lendvai quit (Changing host) 2015-12-23T11:48:59Z attila_lendvai joined #lisp 2015-12-23T11:49:42Z rme joined #lisp 2015-12-23T11:53:08Z aap_ is now known as aap 2015-12-23T11:53:17Z bhajana joined #lisp 2015-12-23T11:54:42Z flambard quit (Quit: kthxbai) 2015-12-23T11:58:56Z sjw joined #lisp 2015-12-23T11:59:00Z sjw is now known as zdm 2015-12-23T11:59:20Z phoe_krk: DeadTrickster: semaphores are implementable using locks 2015-12-23T11:59:37Z phoe_krk: about condition wait, hm... that's implementable as well AFAIK 2015-12-23T12:00:49Z DeadTrickster: phoe_krk, everything is implementable :-) however I still not sure I want to do it myself. Moreover I still wonder why it wasn't done before 2015-12-23T12:01:30Z DeadTrickster: no one needs semaphores except sbcl users? 2015-12-23T12:05:13Z Th30n_ is now known as Th30n 2015-12-23T12:05:47Z Yuuhi joined #lisp 2015-12-23T12:05:58Z guicho: or everyone do it by themselves when they need it 2015-12-23T12:09:47Z scymtym joined #lisp 2015-12-23T12:13:27Z prxq quit (Remote host closed the connection) 2015-12-23T12:15:40Z dreamaddict joined #lisp 2015-12-23T12:16:04Z dreamaddict: finally finished the first part of 99 LISP problems 2015-12-23T12:16:50Z dreamaddict: anyone bored enough to critique some code? 2015-12-23T12:17:26Z flip214: dreamaddict: post away 2015-12-23T12:19:41Z moore33 joined #lisp 2015-12-23T12:19:50Z dreamaddict: http://paste.lisp.org/display/288144 2015-12-23T12:20:03Z dreamaddict: I was using a 4 line TAB and I don’t think it caught that properly 2015-12-23T12:20:53Z dreamaddict: also I am a bit proud of finding a completely recursive solution to the packing problem, since apparently that wasn’t easy…but the rest of it, is not the fastest way to handle it 2015-12-23T12:20:57Z dreamaddict: a 4 space TAB... 2015-12-23T12:23:05Z blt joined #lisp 2015-12-23T12:27:05Z flip214: dreamaddict: I'd suggest to break the lines, eg. "(if (cdr list)\n" etc. 2015-12-23T12:27:05Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T12:27:06Z brian joined #lisp 2015-12-23T12:27:25Z kyfho joined #lisp 2015-12-23T12:27:29Z brian is now known as Guest44155 2015-12-23T12:27:38Z dreamaddict: yeah I’m kind of formatting by hand 2015-12-23T12:27:43Z dreamaddict: always break? 2015-12-23T12:27:50Z dreamaddict: sometimes it all fits OK on one line 2015-12-23T12:28:16Z mbuf quit (Read error: Connection reset by peer) 2015-12-23T12:28:56Z flip214: dreamaddict: my-nth: don't know the definition, but *I* would not do "= 0" but use zerop. or even try to check for negative, too 2015-12-23T12:29:29Z flip214: my-length isn't tail-recursive. 2015-12-23T12:29:31Z cadadar quit (Quit: Leaving.) 2015-12-23T12:29:41Z dreamaddict: that is true 2015-12-23T12:29:49Z dreamaddict: I learned a LOT about recursion just doing these exercises 2015-12-23T12:30:12Z dreamaddict: so at the beginning…not that good…but knowing what I know now, yeah, I’d go back and tail-recurse these 2015-12-23T12:30:30Z flip214: my-flatten has too long lines, IMO 2015-12-23T12:31:25Z dreamaddict: put the two branches of the if statement below the if...? 2015-12-23T12:32:03Z flip214: yes. "(append (list (car elements))" => "(cons (car elements) ...)" 2015-12-23T12:32:25Z flip214: in my-compress you're using that already, but only in one branch 2015-12-23T12:32:34Z blt quit (Quit: WeeChat 1.3) 2015-12-23T12:33:05Z guicho: my graduate advisor, who is also a lisper, always put everything in 1 line, says its more compact and easy to read... 2015-12-23T12:33:09Z flip214: sorry, doing something else. 2015-12-23T12:33:41Z AlphaAtom joined #lisp 2015-12-23T12:37:06Z dreamaddict: reformatting them up right now 2015-12-23T12:40:01Z zdm: guicho: sounds awful 2015-12-23T12:40:23Z Zhivago: As with most things, it depends. 2015-12-23T12:40:41Z Zhivago: (if a b c) is reasonable, but as those expressions become larger ... 2015-12-23T12:43:02Z pjb: DeadTrickster: there are people who argue that semaphores are not a good abstraction. Actually, none are good abstraction for multithreading. Yes, it's a little sad to have to implement semaphores on conditions and mutexes, when the OS itself provides semaphores (but you don't know how the OS implements them anyways!). Turtles… 2015-12-23T12:44:16Z pjb: dreamaddict: I'm lazy to revise. You can compare your solutions with mine: http://informatimago.com/develop/lisp/l99/index.html 2015-12-23T12:44:19Z dreamaddict: generally it is bad form to include (&optional accum) in the main defun for a function that is even pretending to be used by someone else, right? 2015-12-23T12:44:33Z zdm quit (Quit: = "") 2015-12-23T12:44:39Z pjb: dreamaddict: I would say so. 2015-12-23T12:44:51Z pjb: dreamaddict: but you can use it in a Q&D "prototype" ;-) 2015-12-23T12:44:59Z sjw joined #lisp 2015-12-23T12:45:09Z sjw is now known as zdm 2015-12-23T12:45:20Z pjb: dreamaddict: also, sometimes it can be meaningful and useful to let the user specify an initial accumulator value. 2015-12-23T12:45:28Z dreamaddict: true 2015-12-23T12:45:45Z dreamaddict: and I did look at some of informatigo’s solutions 2015-12-23T12:45:57Z pjb: good. 2015-12-23T12:46:06Z attila_lendvai quit (Ping timeout: 240 seconds) 2015-12-23T12:46:16Z dreamaddict: I sort of wanted to practice recursion with these, instead of using the LOOP macro for everything 2015-12-23T12:46:24Z dreamaddict: so I tried to find ways to do them without using LOOP 2015-12-23T12:46:42Z pjb: Yes, using recursion is a nice excercise. 2015-12-23T12:46:54Z dreamaddict: of course, then I read about tail-recursion and why the best recursion is basically iteration, which is what the LOOP macro is for apparently 2015-12-23T12:47:23Z manuel_ joined #lisp 2015-12-23T12:47:27Z dreamaddict: so I guess my solutions aren’t all the most efficient ones, but as a mental flossing they are wonderful and no lie, I think way better recursively now than I did before I started them, by a long shot 2015-12-23T12:47:50Z pjb: It doesn't really matter, since you can always implement a named let in CL to have a tail recursive calls expanded into an jump. 2015-12-23T12:48:18Z pjb: There are several such example published eg. in cll. 2015-12-23T12:49:00Z pjb: Now, of course, the question is whether news.google and your google-fu is good enough to retrieve it… :-( 2015-12-23T12:49:35Z dreamaddict: google-fu is decent, I can find it :) 2015-12-23T12:50:04Z pjb: It's group.google.com, not news.google.com, I always mix them :-( 2015-12-23T12:52:20Z pjb: groups even. 2015-12-23T12:53:12Z ggole joined #lisp 2015-12-23T12:54:44Z myrkraverk quit (Remote host closed the connection) 2015-12-23T12:55:11Z dreamaddict: http://paste.lisp.org/display/288564 2015-12-23T12:55:14Z dreamaddict: more readable 2015-12-23T12:55:26Z dreamaddict: ok time to bone up on tail recursion 2015-12-23T12:56:23Z kushal quit (Ping timeout: 246 seconds) 2015-12-23T12:56:35Z dreamaddict: jesus you can disassemble any function 2015-12-23T12:56:47Z dreamaddict: the REPL is already cooler than 90% of IDEs I’ve ever used 2015-12-23T13:00:09Z Guest44155 quit (Ping timeout: 252 seconds) 2015-12-23T13:03:35Z PlasmaStar quit (Ping timeout: 240 seconds) 2015-12-23T13:05:12Z PlasmaStar joined #lisp 2015-12-23T13:07:48Z phoe_krk: dreamaddict: does it mean that you can disassemble the disassemble function. 2015-12-23T13:08:18Z dreamaddict: yup 2015-12-23T13:09:31Z phoe_krk: dreamaddict: also look up trace. 2015-12-23T13:09:34Z phoe_krk: if you haven't yet. 2015-12-23T13:10:17Z flip214: DISASSEMBLE will soon enough be seen as weapons-grade functionality, and therefore become illegal. 2015-12-23T13:10:34Z DeadTrickster: pjb, do you know protable sb-conurrency alternative? 2015-12-23T13:11:34Z dreamaddict: oh wow disassemble and trace are both heavenly 2015-12-23T13:11:59Z dreamaddict: no more wondering “does this actually optimize the function” 2015-12-23T13:12:05Z flip214: DeadTrickster: http://cliki.net/concurrency 2015-12-23T13:12:27Z DeadTrickster: flip214, unfortunately this page isn't that helpful 2015-12-23T13:12:44Z flip214: DeadTrickster: well, Bordeaux-Threads might do what you want. 2015-12-23T13:12:52Z flip214: which functions would you need? 2015-12-23T13:12:54Z DeadTrickster: sadly not 2015-12-23T13:13:11Z DeadTrickster: I need mailboxes and queues from sb-concurrency 2015-12-23T13:13:19Z DeadTrickster: not stuff from sb-thread 2015-12-23T13:13:41Z flip214: http://cl-cookbook.sourceforge.net/process.html#mailbox 2015-12-23T13:14:00Z DeadTrickster: moreover I want receive-message (or dequeue) to support timeout parameter 2015-12-23T13:15:01Z ramky quit (Remote host closed the connection) 2015-12-23T13:16:06Z xristos: DeadTrickster: lparallel is portable 2015-12-23T13:16:26Z xristos: lot more functionality than just mailboxes and queues tho 2015-12-23T13:16:44Z DeadTrickster: this: https://github.com/deadtrickster/safe-queue/tree/master/src was extracted from clws and basically has two parts - sbcl-specific and other chanl-based one 2015-12-23T13:16:55Z xristos: i wouldn't use chanl 2015-12-23T13:17:04Z xrash quit (Read error: Connection reset by peer) 2015-12-23T13:18:20Z DeadTrickster: xristos, mailboxes in lparallel? 2015-12-23T13:20:48Z xristos: DeadTrickster: well, sort of 2015-12-23T13:21:08Z nonopposition quit (Ping timeout: 244 seconds) 2015-12-23T13:21:17Z DeadTrickster: hm 2015-12-23T13:21:22Z DeadTrickster: try-pop-queue 2015-12-23T13:21:27Z DeadTrickster: has timeout param 2015-12-23T13:21:38Z DeadTrickster: might be actually what I'm looking for 2015-12-23T13:23:09Z DeadTrickster: haha 2015-12-23T13:23:39Z DeadTrickster: my lparallel version still unaware of recent addition to bt: :timout to condition-wait was added 2015-12-23T13:23:59Z DeadTrickster: just really sad sad this trivial-smth bullshit so popular 2015-12-23T13:26:04Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T13:26:35Z kyfho joined #lisp 2015-12-23T13:26:50Z Xach: DeadTrickster: why? 2015-12-23T13:26:55Z grouzen quit (Ping timeout: 240 seconds) 2015-12-23T13:27:39Z DeadTrickster: Xach, because they always represent lowest common denominator and constantly failed to catch up with updates 2015-12-23T13:27:47Z DeadTrickster: take bt for example 2015-12-23T13:27:53Z DeadTrickster: it wasn't updated for years 2015-12-23T13:27:59Z Xach: DeadTrickster: I think that's because trivial-* was a fad, and the people that created them moved on to other projects. 2015-12-23T13:28:05Z Xach: And other languages. 2015-12-23T13:28:32Z Xach: They were good enough for a while, then no new people updated them. 2015-12-23T13:28:35Z DeadTrickster: Xach, here I'm talking about all this portability libs in general 2015-12-23T13:28:47Z Xach: DeadTrickster: I think the situation is similar for every portability library. 2015-12-23T13:29:01Z Xach: They are good enough for a while, but keeping them up to date requires more effort than is easily available. 2015-12-23T13:29:48Z DeadTrickster: Xach, all they usually give is functional uniformity however they leave user with raw type system for example 2015-12-23T13:30:19Z Xach: I think it is just a simple problem of available resources, or lack thereof. 2015-12-23T13:30:28Z DeadTrickster: sure 2015-12-23T13:30:29Z Xach: It is bad that there aren't enough resources. 2015-12-23T13:30:59Z Xach: I do not think it is a lack of desire to create worthy and useful things. 2015-12-23T13:31:01Z kobain joined #lisp 2015-12-23T13:31:16Z DeadTrickster: yeah better write new shiny webframework 2015-12-23T13:31:17Z DeadTrickster: oh wait 2015-12-23T13:31:20Z DeadTrickster: json parser 2015-12-23T13:31:30Z Xach: Effort is also not fungible. 2015-12-23T13:31:43Z Xach: People work on what they want to work on. 2015-12-23T13:32:20Z DeadTrickster: btw when I'm talking about type systems I mean this: there is no usocket:socket-p 2015-12-23T13:32:36Z DeadTrickster: and nothing to use with typecase 2015-12-23T13:32:37Z DeadTrickster: etc 2015-12-23T13:33:08Z Xach: I think usocket is not a great example 2015-12-23T13:33:16Z xristos: you can always try and get patches of your own committed 2015-12-23T13:33:17Z Xach: I think if you bring that to the attention of the usocket maintainer, you may get an update 2015-12-23T13:33:35Z Xach: "I want this nice thing, please do it" is more likely to work for usocket than for many other abandoned or semi-abandoned projects 2015-12-23T13:33:36Z xristos: although i generally dislike having dependencies on portability libraries 2015-12-23T13:33:46Z xristos: i'd rather support one or two implementations myself and write the extra code 2015-12-23T13:34:09Z xristos: usocket for example, i'd never use 2015-12-23T13:34:32Z DeadTrickster: Xach, nah I just stick with IOLib 2015-12-23T13:34:32Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T13:34:35Z xristos: it's bad enough that sbcl sockets are not as lean as i'd want them and have performance implications 2015-12-23T13:34:56Z kyfho joined #lisp 2015-12-23T13:37:51Z flip214: always possible to use sb-unix and low-level read()/write() 2015-12-23T13:38:16Z kobain quit (Max SendQ exceeded) 2015-12-23T13:38:25Z contrapunctus joined #lisp 2015-12-23T13:39:25Z Xach: using sb-unix is a good way to get broken after an upgrade. 2015-12-23T13:39:51Z kobain joined #lisp 2015-12-23T13:40:33Z Xach: i made my own socket stuff, too, but i think today i'd try basic-binary-ipc 2015-12-23T13:41:56Z flip214: Xach: is sb-posix better? what gets broken about sb-unix, I thought that's just bindings to the libc functions? 2015-12-23T13:42:08Z Xach: flip214: sb-unix is a private package for sbcl internal use only 2015-12-23T13:42:13Z Xach: flip214: sb-posix is not 2015-12-23T13:42:18Z flip214: oh, okay. 2015-12-23T13:43:34Z eudoxia joined #lisp 2015-12-23T13:43:54Z iddqd quit (Quit: Connection closed for inactivity) 2015-12-23T13:46:07Z dreamaddict: hey, how is LISP for security? as in, say I make a…a…web server or something, it runs on the REPL or at least some part of it, how is it making that secure against hackers and whatnot? 2015-12-23T13:46:19Z ebrasca quit (Remote host closed the connection) 2015-12-23T13:46:40Z Zhivago: It depends on the dialect, but CL has no support for sandboxing, etc. 2015-12-23T13:46:54Z xristos: sandboxing isn't really relevant here 2015-12-23T13:47:10Z xristos: at least nowhere near as relevant as memory safety 2015-12-23T13:47:17Z jackdaniel: you cant overflow an array 2015-12-23T13:47:32Z Zhivago: There are quite a lot of ways to produce undefined behaviour in CL. 2015-12-23T13:47:35Z jackdaniel: you dont have pointer arithm etc 2015-12-23T13:47:44Z xristos: jackdaniel: well you can and you do 2015-12-23T13:47:47Z xristos: but optionally 2015-12-23T13:47:55Z jackdaniel: ? 2015-12-23T13:47:56Z Zhivago: (setf (first '(1)) 2), for example. 2015-12-23T13:48:12Z xristos: jackdaniel: you can turn off bounds checking and you can manipulate raw memory in CL 2015-12-23T13:48:30Z DeadTrickster: dreamaddict, just don't read user input 2015-12-23T13:48:33Z moore33: There isn't any bounds checking specified in CL. That I know of. 2015-12-23T13:48:39Z DeadTrickster: and do not intern random stuff 2015-12-23T13:49:19Z DeadTrickster: and do not set safety to 0 at least on sbcl 2015-12-23T13:50:07Z DeadTrickster: however you are not so specific on what aspect of security you are interested in 2015-12-23T13:50:12Z manuel_ quit (Quit: manuel_) 2015-12-23T13:52:29Z dreamaddict: eh I don’t know…I was just mentioning to my friend how you can hot-recompile LISP and it’s super awesome (apparently nice for server-side things), and he mentioned security concerns 2015-12-23T13:52:57Z dreamaddict: I had heard that if you tricked LISP into reading or eval-ing something that it isn’t supposed to, that there can be problems that way 2015-12-23T13:53:03Z xristos: sure 2015-12-23T13:53:12Z xristos: that's kind of hard to do though 2015-12-23T13:53:22Z xristos: unless you want to do it 2015-12-23T13:53:32Z z0d: dreamaddict: this is a problem in any langauge 2015-12-23T13:53:37Z dreamaddict: really I have no idea how hard it is to do any of it, just curious about…security and whatnot 2015-12-23T13:54:16Z dreamaddict: one of my favorite things so far about LISP is how easy it is to work with and prototype 2015-12-23T13:54:19Z bogdanm quit (Ping timeout: 245 seconds) 2015-12-23T13:54:26Z xristos: dreamaddict: it's harder than getting an arbitrary c++ program to accept arbitrary binary code and execute it 2015-12-23T13:54:58Z xristos: that doesn't seem to stop ppl from using c++ in security-critical applications 2015-12-23T13:55:07Z moore33: xristos: Unless you use those easy-prototyping features and forget to turn them off... 2015-12-23T13:55:07Z bogdanm joined #lisp 2015-12-23T13:55:20Z xristos: moore33: human factor ;p 2015-12-23T13:55:47Z dwchandler: for any lang, "be careful how you respond to outside input" 2015-12-23T13:56:08Z LiamH joined #lisp 2015-12-23T13:56:13Z dwchandler: having an attacker inject code is only one issue 2015-12-23T13:56:34Z dwchandler: if an attacker can get you to exhaust a resource you have a DoS, etc. 2015-12-23T13:56:50Z xristos: sure 2015-12-23T13:56:55Z dreamaddict: dwchandler: that sounds more like logistics that apply to any language more than just LISP 2015-12-23T13:56:56Z dwchandler: be careful about assymetric responses 2015-12-23T13:57:02Z xristos: also having an attacker man-in-the-middle your quicklisp downloads 2015-12-23T13:57:08Z dreamaddict: ^ 2015-12-23T13:57:10Z dreamaddict: there we go 2015-12-23T13:57:10Z dwchandler: dreamaddict: yes, not just LISP 2015-12-23T13:57:11Z xristos: *cough* 2015-12-23T13:57:14Z xristos looks at Xach 2015-12-23T13:57:34Z dwchandler: Ruby, Python, etc. have eval 2015-12-23T13:57:48Z Xach: xristos: next thing to fix. but time is scarce. 2015-12-23T13:57:55Z dwchandler: Lisp isn't especially vulnerable, AFAIK 2015-12-23T13:59:06Z dreamaddict: sounds about the same level of practicality for a web server kind of app as most other languages 2015-12-23T13:59:10Z xristos: i think CL strikes a good balance compared to C, C++ 2015-12-23T13:59:30Z Zhivago: Let us say instead that popular lisp implementations are not especial vulnerable. 2015-12-23T13:59:38Z xristos: it still gives you plenty of rope to hang yourself 2015-12-23T13:59:48Z xristos: but at least that is *explicit* 2015-12-23T13:59:53Z xristos: not implicit as in c,c++ 2015-12-23T13:59:54Z Zhivago: Having been developed by people who dislike crashing while doing stupid things in a repl. 2015-12-23T14:00:22Z Zhivago: There's plenty of implicit stuff as well in the CL spec -- it just tends to get papered over with sane implementations. 2015-12-23T14:00:51Z DeadTrickster: also since cl processes usually long lived one can extract sensitive information from memory dump 2015-12-23T14:01:24Z DeadTrickster: as well as simply iterate over all packages and symbols 2015-12-23T14:01:30Z eudoxia quit (Quit: Leaving) 2015-12-23T14:02:15Z bogdanm quit (Ping timeout: 240 seconds) 2015-12-23T14:03:29Z bogdanm joined #lisp 2015-12-23T14:07:42Z dwchandler: DeadTrickster: if an attacker is looking at a memory dump or iterating over stuff then you've lost already ;-) 2015-12-23T14:08:17Z zdm: To know your enemy you must become the enemy; become the hacker. 2015-12-23T14:08:24Z zdm: :P 2015-12-23T14:09:35Z gravicappa quit (Ping timeout: 260 seconds) 2015-12-23T14:10:03Z Zhivago: Then you can kill yourself, reducing the ranks of your enemy. 2015-12-23T14:10:50Z scymtym quit (Read error: Connection reset by peer) 2015-12-23T14:11:34Z dwchandler: zdm: I wish more people would understand that idea, really. 2015-12-23T14:12:01Z DeadTrickster: dwchandler, that is why iterating over packages is actually enough 2015-12-23T14:12:26Z zdm: dwchandler: A common saying is 'You cant know how to defend if you don't know how to attack'. 2015-12-23T14:12:35Z zdm: I imagine its helpful to know both sides. 2015-12-23T14:12:45Z DeadTrickster: dwchandler, also core dumps can be disabled 2015-12-23T14:12:56Z zdm: *I'm not recommending any illegal activities of course* 2015-12-23T14:14:18Z dwchandler: zdm: you don't have to go hack systems and become a blackhat. You *do* have to be able to put yourself into an attacker role and look at your own systems 2015-12-23T14:14:37Z zdm: Thats what I meant. 2015-12-23T14:14:53Z dwchandler: right :) 2015-12-23T14:17:38Z mtl_: if I were writing say a terminal in C, i would probably make/get a fuzzer to test for buffer overflows 2015-12-23T14:17:46Z mtl_: terminal app* 2015-12-23T14:18:14Z zdm: Wouldnt you do that for any programs in C, regardless of the use/medium? 2015-12-23T14:18:51Z zdm: And hey mtl_, hows it going 2015-12-23T14:19:05Z mtl_: I'm sure it's more relevant in some contexts than others, sure 2015-12-23T14:19:10Z vaporatorius quit (Ping timeout: 260 seconds) 2015-12-23T14:19:33Z mtl_: if you're taking in a lot user input or data from the network 2015-12-23T14:28:20Z dwchandler: first comes architecture/design, then comes good coding practices, then comes stuff like fuzzers :) 2015-12-23T14:28:38Z mtl_: true 2015-12-23T14:28:57Z dwchandler: afl is nice for C 2015-12-23T14:28:57Z xristos: dwchandler: even that isn't gonna save you these days 2015-12-23T14:29:24Z xristos: fuzzers only scratch the surface 2015-12-23T14:29:59Z xristos: i'd guess that a lot of the 0days nation states (and other actors with capability) are using, would never be discovered by fuzzing 2015-12-23T14:30:11Z dwchandler: afl is instrumented, and actively explores code paths 2015-12-23T14:30:30Z zdm quit (Read error: Connection reset by peer) 2015-12-23T14:30:30Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T14:30:35Z xristos: dwchandler: yet it's pretty much useless against stateful protocols 2015-12-23T14:30:37Z dwchandler: nothing's perfect, but sometimes stuff gets better 2015-12-23T14:30:43Z xristos: afl is nice vs dumb parsers 2015-12-23T14:30:56Z dwchandler: it would be nice to do something like that for CL 2015-12-23T14:30:58Z zdm joined #lisp 2015-12-23T14:31:04Z kyfho joined #lisp 2015-12-23T14:31:08Z xristos: but the "bad guys" are not using afl 2015-12-23T14:31:20Z stepnem quit (Ping timeout: 265 seconds) 2015-12-23T14:32:11Z bhajana quit (Quit: WeeChat 1.3) 2015-12-23T14:32:24Z joneshf-laptop joined #lisp 2015-12-23T14:37:22Z warweasle joined #lisp 2015-12-23T14:37:39Z TMM quit (Ping timeout: 255 seconds) 2015-12-23T14:37:39Z smokeink quit (Ping timeout: 255 seconds) 2015-12-23T14:38:48Z jtza8 quit (Ping timeout: 272 seconds) 2015-12-23T14:39:27Z smokeink joined #lisp 2015-12-23T14:39:34Z dwchandler: xristos: it doesn't matter if you and the bad guys use the same tools. what matters is that you stop them from getting in, and if they get in can you mitigate 2015-12-23T14:40:06Z zdm: Maybe a good place to ask about security issues is ##security as well. 2015-12-23T14:40:19Z xristos: my point is that for some significant percentage of bad guys, this will never happen 2015-12-23T14:40:48Z xristos: assumption of compromise is pretty much a given these days 2015-12-23T14:41:41Z xristos: we can't even trust the *hardware* that *software* we're arguing about runs on 2015-12-23T14:42:36Z dwchandler: you can't even trust the physical premisis where the server is running, but you have to get on with life 2015-12-23T14:46:05Z xristos: http://blog.invisiblethings.org/papers/2015/x86_harmful.pdf <-- great read 2015-12-23T14:47:09Z Th30n quit (Quit: leaving) 2015-12-23T14:50:15Z kushal joined #lisp 2015-12-23T14:51:39Z EvW quit (Remote host closed the connection) 2015-12-23T14:51:47Z EvW joined #lisp 2015-12-23T14:52:16Z TMM joined #lisp 2015-12-23T14:52:50Z jtza8 joined #lisp 2015-12-23T14:57:35Z Karl_Dscc joined #lisp 2015-12-23T14:59:13Z nzambe joined #lisp 2015-12-23T15:00:20Z Oladon quit (Quit: Leaving.) 2015-12-23T15:01:29Z FreeBird_ quit (Remote host closed the connection) 2015-12-23T15:03:30Z bogdanm quit (Ping timeout: 272 seconds) 2015-12-23T15:03:51Z badkins joined #lisp 2015-12-23T15:05:08Z bogdanm joined #lisp 2015-12-23T15:07:28Z pbgc joined #lisp 2015-12-23T15:08:08Z dreamaddict left #lisp 2015-12-23T15:11:50Z zdm: Can I do this for docstrings?: 2015-12-23T15:11:52Z zdm: "Return snake-eyes or boxcars if the throw is 2 or 12, 2015-12-23T15:11:52Z zdm: otherwise return the sum of the throw" 2015-12-23T15:12:04Z zdm: Start it on one line, continue on the next 2015-12-23T15:12:27Z Denommus joined #lisp 2015-12-23T15:13:39Z mtl_: zdm: yeah, I think so 2015-12-23T15:14:25Z zdm: Yeah I can, I dont know why I asked that since I could have tested that for myself lol.. 2015-12-23T15:15:06Z mtl_: that's the great thing about lisp 2015-12-23T15:15:12Z developernotes joined #lisp 2015-12-23T15:15:19Z mtl_: or any language with a repl 2015-12-23T15:16:52Z newdan joined #lisp 2015-12-23T15:19:14Z eudoxia joined #lisp 2015-12-23T15:26:07Z zacharias quit (Ping timeout: 260 seconds) 2015-12-23T15:28:02Z zupoman joined #lisp 2015-12-23T15:28:02Z zupoman quit (Changing host) 2015-12-23T15:28:02Z zupoman joined #lisp 2015-12-23T15:29:05Z drmeister: I've asked about this before but one thing that seems very UN-do-it-oncey in Common Lisp is exporting symbols from packages/systems. 2015-12-23T15:29:35Z drmeister: I have to constantly jump around from packages.lisp and source code to keep the list of exported symbols up to date. I constantly miss symbols or leave symbols in that I don't want to export. 2015-12-23T15:29:55Z eudoxia: eh, I like that it's explicit and all collected in one place 2015-12-23T15:30:12Z eudoxia: I hate, hate, hate languages where I have to prefix 'public' or some crap before a function or class 2015-12-23T15:30:24Z drmeister: Why? 2015-12-23T15:30:30Z oleo_: lol 2015-12-23T15:30:42Z Denommus quit (Quit: rebooting) 2015-12-23T15:30:46Z drmeister: I'm not trying to start an argument - I'm trying to feel good about this. 2015-12-23T15:30:59Z eudoxia: because it clutters the code, and if there is no documentation, I have to search all over the place for what is public and what isn't 2015-12-23T15:31:03Z Zhivago: As opposed to prefix with either one or two :'s? :) 2015-12-23T15:31:18Z eudoxia: but in CL i can just go over to the defpackage and see, well, here's the list of exported symbols 2015-12-23T15:32:20Z Zhivago: drmeister: Why are you changing the exports a lot? Is this to implement CL, or in user code? 2015-12-23T15:32:54Z drmeister: This is in user code. 2015-12-23T15:33:12Z drmeister: I write code and then rewrite code. 2015-12-23T15:33:17Z newdan: drmeister: I don't know if there's a way to do what you want, but personally I do like the exported symbol list. It makes it easy to see/think about just the public interface of your package at a glance 2015-12-23T15:34:48Z drmeister: Zhivago: That's an interesting idea - would it be bad to use (defun pkg:name (...) ...) 2015-12-23T15:36:04Z drmeister: Then I could grep for [^:]: and find every symbol to export - I could then easily collect them into the list of exported symbols 2015-12-23T15:36:51Z drmeister: Does this cause anyone fits? 2015-12-23T15:36:53Z drmeister: https://www.irccloud.com/pastebin/HwZnTiay/ 2015-12-23T15:37:04Z drmeister: This is (in-package :tags) 2015-12-23T15:37:49Z Zhivago: drmeister: I see no reason why that would be bad. 2015-12-23T15:38:40Z Zhivago: But I'd suggest that the export list is the module's external interface. It probably shouldn't be changing that much. 2015-12-23T15:39:12Z jtza8 quit (Ping timeout: 264 seconds) 2015-12-23T15:39:31Z zupomanek joined #lisp 2015-12-23T15:39:33Z zupomanek quit (Remote host closed the connection) 2015-12-23T15:39:51Z fiddlerwoaroof quit (Quit: Lost terminal) 2015-12-23T15:40:41Z drmeister: Yeah, I don't have a problem really with the export list. I guess I'm looking more for a simple way to maintain its correctness. 2015-12-23T15:41:09Z drmeister: Doing this: grep 'tags:[^:]' tags.lisp isn't too bad. 2015-12-23T15:42:58Z drmeister: I just don't want to do anything too weird that would upset other CL programmers. I'll adapt to community norms. 2015-12-23T15:46:37Z attila_lendvai joined #lisp 2015-12-23T15:46:37Z attila_lendvai quit (Changing host) 2015-12-23T15:46:37Z attila_lendvai joined #lisp 2015-12-23T15:47:02Z synchromesh: drmeister: That's laudable, but I offer the classic George Bernard Shaw quote as a counterpoint: "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." So if you come up with a better idea, that would be great! :) 2015-12-23T15:48:30Z drmeister: synchromesh: That's the motto I live by - I'm implementing a new Common Lisp because I am an unreasonable man. But I chose Common Lisp because it's really well thought out already - so I often have to relearn the better way to do things in Common Lisp. 2015-12-23T15:49:58Z synchromesh: drmeister: Truly you are the right man for the job. Keep up the great work! 2015-12-23T15:53:28Z jusss joined #lisp 2015-12-23T15:55:23Z eudoxia quit (Ping timeout: 264 seconds) 2015-12-23T15:56:41Z Th30n joined #lisp 2015-12-23T15:59:14Z jusss: is there call/cc in cl ? 2015-12-23T15:59:21Z Zhivago: No. 2015-12-23T16:00:44Z jusss: so can ask a call/cc question here ? 2015-12-23T16:00:50Z jusss: can I 2015-12-23T16:02:09Z newdan: jusss: Why not #scheme? 2015-12-23T16:02:25Z moore33: Or #call/cc? :) 2015-12-23T16:02:58Z jusss: newdan: I tried, but it seems like no one is on line 2015-12-23T16:03:39Z Oddity quit (Ping timeout: 265 seconds) 2015-12-23T16:03:59Z phadthai quit (Ping timeout: 246 seconds) 2015-12-23T16:04:08Z phadthai joined #lisp 2015-12-23T16:12:47Z happy-dude joined #lisp 2015-12-23T16:14:28Z Oddity joined #lisp 2015-12-23T16:14:28Z Oddity quit (Changing host) 2015-12-23T16:14:28Z Oddity joined #lisp 2015-12-23T16:15:12Z Mon_Ouie quit (Quit: WeeChat 1.3) 2015-12-23T16:15:54Z moore33: Very stupid question: How do you access the documentation of a slot? 2015-12-23T16:16:48Z jtza8 joined #lisp 2015-12-23T16:18:21Z kushal quit (Quit: Leaving) 2015-12-23T16:19:43Z moore33: Ack. Nevermind. 2015-12-23T16:21:04Z gaya- quit (Quit: Leaving.) 2015-12-23T16:21:16Z gaya- joined #lisp 2015-12-23T16:22:15Z gaya- quit (Client Quit) 2015-12-23T16:23:33Z moore33: Next question: do people find slot documentation useful? :) 2015-12-23T16:25:52Z zupoman is now known as szpieg 2015-12-23T16:25:58Z szpieg is now known as szpieg__ 2015-12-23T16:26:32Z zdm: lol 2015-12-23T16:30:21Z TMM quit (Quit: Ex-Chat) 2015-12-23T16:33:07Z nyef: drmeister: In regards to your export problem, have you considered one-package-per-file style? 2015-12-23T16:34:22Z drmeister: nyef: Yes - I like that style in beach's code. 2015-12-23T16:37:20Z prxq joined #lisp 2015-12-23T16:37:51Z xantoz: i'm intrigued, examples of one-package-per-file style done right? 2015-12-23T16:38:41Z EvW quit (Ping timeout: 255 seconds) 2015-12-23T16:39:18Z nyef: xantoz: I don't have any easily to hand that I can share, unfortunately. 2015-12-23T16:41:06Z nyef: It's something that I came up with a few years ago (reinvented, really) and found that I rather liked, but I've mostly been working on existing projects where it would directly oppose the prevailing style or closed-source projects since then. 2015-12-23T16:41:27Z Denommus joined #lisp 2015-12-23T16:44:00Z nyef: The basic idea is that each source file starts with a package definition, with the package named after the source file, which either :USEs or :IMPORT-FROMs other packages to register its immediate dependencies (:IMPORT-FROM with no symbols is legal, after all). 2015-12-23T16:44:47Z mordocai: I'm trying to use mel-base and make a function that I can use to apply regex over the entire raw message (headers + body) and see if it matches. I'm having a hard time even finding the implementation for the message class though. Can anyone point me in the right direction? https://github.com/neonsquare/mel-base 2015-12-23T16:45:38Z nyef: With the additional rules that you're not allowed to use an internal symbol of another package, that you're not allowed to use public symbols of packages not mentioned in your dependencies, and file length limits, it can help to maintain some level of conceptual cohesion within a system. 2015-12-23T16:46:02Z algae joined #lisp 2015-12-23T16:48:00Z mordocai: Oh, i guess it is in rfc2822.lisp actually. 2015-12-23T16:51:23Z manuel_ joined #lisp 2015-12-23T16:51:23Z manuel_ quit (Client Quit) 2015-12-23T16:52:37Z manuel_ joined #lisp 2015-12-23T16:55:25Z Yuuhi quit (Remote host closed the connection) 2015-12-23T16:55:35Z guicho quit (Quit: さようなら) 2015-12-23T16:58:06Z gravicappa joined #lisp 2015-12-23T16:58:39Z paradoja joined #lisp 2015-12-23T16:59:53Z grouzen joined #lisp 2015-12-23T16:59:55Z DGASAU quit (Ping timeout: 260 seconds) 2015-12-23T17:01:07Z DGASAU joined #lisp 2015-12-23T17:03:43Z cadadar joined #lisp 2015-12-23T17:04:00Z Oddity quit (Read error: Connection reset by peer) 2015-12-23T17:05:12Z akkad joined #lisp 2015-12-23T17:05:57Z vaporatorius joined #lisp 2015-12-23T17:08:04Z smokeink quit (Remote host closed the connection) 2015-12-23T17:08:18Z Nikotiini joined #lisp 2015-12-23T17:08:46Z karswell joined #lisp 2015-12-23T17:10:47Z badkins quit (Ping timeout: 276 seconds) 2015-12-23T17:11:40Z beach joined #lisp 2015-12-23T17:11:46Z manuel_ quit (Quit: manuel_) 2015-12-23T17:11:47Z nyef: Hello beach. 2015-12-23T17:11:51Z beach: Good evening everyone! 2015-12-23T17:11:54Z beach: :) 2015-12-23T17:12:08Z beach: drmeister: I definitely do not use one-package-per-file style. 2015-12-23T17:12:27Z drmeister: nyef: I see what you mean. 2015-12-23T17:13:00Z drmeister: beach: now that nyef has explained what it is I see that. 2015-12-23T17:13:13Z beach: OK. 2015-12-23T17:13:41Z nyef: drmeister: Also, I believe that this is what asdf's package-inferred-system or whatever it got called is for. 2015-12-23T17:16:14Z cadadar quit (Quit: Leaving.) 2015-12-23T17:16:34Z mordocai: I am simultaneously impressed in mel-base. On one hand, it is pretty hard to follow. On the other, it is 11 years+ old and still works. 2015-12-23T17:16:48Z mordocai: impressed and disappointed in mel-base* 2015-12-23T17:17:01Z beach: mordocai: It works, but as it turns out, it is not very modular. 2015-12-23T17:17:20Z beach: I tried to use parts of it, but that turned out to be very hard. 2015-12-23T17:18:24Z mordocai: Yeah, i'm using it for a script to run mailfilter rules on existing mail (instead of having to run my emails back through mailfilter) and am currently mildly stuck on how to run regexes on the entire message since it doesn't appear to have a "raw message" accessor. Should figure it out tonight though. 2015-12-23T17:18:51Z mordocai: beach: If you know of a cleaner alternative to use with maildir i'd be interested. 2015-12-23T17:18:59Z mordocai: I don't need imap/pop3 support for my use case 2015-12-23T17:19:09Z beach: I don't know of anything that exists. 2015-12-23T17:19:15Z akkad: is there a generic profiler to show how much time was spent in a given function/num calls 2015-12-23T17:19:15Z Oddity joined #lisp 2015-12-23T17:19:15Z Oddity quit (Changing host) 2015-12-23T17:19:15Z Oddity joined #lisp 2015-12-23T17:19:17Z beach: A more modular library for email would be great. 2015-12-23T17:19:48Z mordocai: I would write it but my motivation is focused elsewhere right now. Hence why i'm trying to just use mel-base :) 2015-12-23T17:19:52Z beach: mordocai: I am sure mel-base contains all the right functionality, but it needs to be organized differently. 2015-12-23T17:20:15Z beach: Right. 2015-12-23T17:20:41Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-23T17:21:49Z zdm: I keep seeing people come in here asking if there is a library for x, and being constantly turned down. Seems that common lisp is lacking libraries 2015-12-23T17:22:18Z mordocai: zdm: Symptom of a relatively small community I think. 2015-12-23T17:22:23Z beach: zdm: Yes, correct, there are basically no libraries. I think you had better abandon Common Lisp for something else. 2015-12-23T17:22:25Z mordocai: And the NIH syndrome common. 2015-12-23T17:22:42Z p_l: g/act 2015-12-23T17:23:07Z zdm: beach: Thanks for the fantastic response 2015-12-23T17:23:28Z p_l: zdm: it's quite common that writing your own library fitting your tasks is "good and quick enough", resulting in lots of "does what I need, never published" code 2015-12-23T17:23:29Z kyfho quit (Read error: Connection reset by peer) 2015-12-23T17:23:44Z p_l: it's a perverse case of ease of programming resulting in lower code sharing 2015-12-23T17:23:54Z mordocai: Yep 2015-12-23T17:24:07Z beach hopes at least *some* detected the irony. 2015-12-23T17:24:10Z kyfho joined #lisp 2015-12-23T17:24:22Z mordocai: Plus it is fun to write Common Lisp so it doesn't feel as much like work to write a library for what you are doing. 2015-12-23T17:24:33Z p_l: zdm: as for libraries - one of the reasons commercial implementations are still popular is because there's a lot of important batteries included 2015-12-23T17:25:03Z papachan quit (Read error: Connection reset by peer) 2015-12-23T17:25:14Z beach now fears nobody did. 2015-12-23T17:25:55Z badkins joined #lisp 2015-12-23T17:26:02Z zdm: mordocai: I'm having a lot of fun with common lisp, its my first language, heres my first small program (craps): https://pastee.org/ptxay 2015-12-23T17:26:13Z zdm: I know its crap code but I had so much fun doing that 2015-12-23T17:26:32Z blt joined #lisp 2015-12-23T17:26:41Z zdm: Only on chapter 5 of my book so I still dont really know the language and all its features 2015-12-23T17:26:49Z mordocai: zdm: Which book are you using? 2015-12-23T17:27:13Z zdm: Common Lisp - A Gentle Introduction To Symbolic Computation - David S. Touretzky 2015-12-23T17:27:36Z kushal joined #lisp 2015-12-23T17:27:46Z mordocai: zdm: Btw, throw is already in the standard. 2015-12-23T17:27:51Z mordocai tries to remember how to use the bot 2015-12-23T17:27:55Z zdm: Oh 2015-12-23T17:28:01Z beach: clhs throw 2015-12-23T17:28:01Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_throw.htm 2015-12-23T17:28:02Z zdm: I didnt know that 2015-12-23T17:28:03Z p_l: zdm: that book is great for learning your first language, IMO :) 2015-12-23T17:28:13Z mordocai: yeah, thanks beach 2015-12-23T17:28:33Z mordocai: Though due to the way Common Lisp works it'll be confusing but won't break anything. 2015-12-23T17:28:43Z mordocai: Since you are using it as a variable not a function 2015-12-23T17:28:56Z zdm has no idea what the documentation is talking about 2015-12-23T17:29:20Z mordocai: heh, yeah. The important thing there was just that that is a built-in function name. You don't need to worry about what it does yet 2015-12-23T17:29:34Z zdm: Im having problems coming up with good function names and variable names 2015-12-23T17:29:39Z zdm: I try to make them relevant 2015-12-23T17:29:43Z zdm: And descriptive 2015-12-23T17:29:46Z zdm: But its difficult 2015-12-23T17:29:48Z mordocai: Yep, one of the hardest problems in computer science/programming. 2015-12-23T17:30:52Z zdm: Also, I find that im repeating myself in a lot, too much repetitive 2015-12-23T17:30:56Z dkcl quit (Ping timeout: 276 seconds) 2015-12-23T17:31:13Z zdm: But I imagine when I figure out more of the languages features it'll but a lot better 2015-12-23T17:31:25Z beach: zdm: "I'm" with a capital I and an apostrophe between the two letters. 2015-12-23T17:31:50Z mordocai: zdm: I think that's a common problem, especially when starting out. It'll probably get better as you learn more, like you said. 2015-12-23T17:31:59Z mordocai: beach: Feeling trollish today? 2015-12-23T17:32:03Z zdm: beach: I could care less 2015-12-23T17:32:04Z zdm: im 2015-12-23T17:32:05Z zdm: im 2015-12-23T17:32:07Z zdm: :) 2015-12-23T17:32:20Z zdm: I couldnt care less 2015-12-23T17:32:24Z zdm: for the grammar nazis 2015-12-23T17:32:29Z beach: mordocai: I am in a rotten mood. 2015-12-23T17:33:22Z mordocai: beach: Ugh, sorry to hear that. 2015-12-23T17:33:31Z beach: zdm: It speaks to your attention to detail, and that, in turn, speaks to your ability to write the kind of programs that most people here on #lisp care about. 2015-12-23T17:33:35Z mordocai: Hope it gets better. 2015-12-23T17:33:54Z beach: mordocai: Absolutely. Don't worry. Thanks. 2015-12-23T17:33:58Z zdm: beach: Does it make you feel better taking your frustrations out on the way someone spells? 2015-12-23T17:34:24Z beach: Somewhat. Is your question the reason you came to #lisp today? 2015-12-23T17:34:49Z zdm: No, I came to talk about lisp but instead I'm having to deal with a cunt. 2015-12-23T17:34:55Z jasom: beach: ##c is the only channel in which I've seen native english speakers use a diaeresis on chat, so perhaps C programmers need to be even more detail oriented 2015-12-23T17:35:00Z zdm: But I'll /ignore 2015-12-23T17:35:05Z zdm shrugs 2015-12-23T17:35:29Z jackdaniel: that was at least rude zdm, please refrain yourself 2015-12-23T17:35:47Z zdm: jackdaniel: and beach hasnt been rude? 2015-12-23T17:35:48Z zdm: lol 2015-12-23T17:36:22Z qwan quit 2015-12-23T17:36:23Z mordocai: "Two wrongs don't make a right" :P 2015-12-23T17:36:32Z mordocai flashback to his mother telling him that. 2015-12-23T17:36:33Z beach: jasom: Not sure what you mean by "use a diaeresis on chat". 2015-12-23T17:37:38Z jasom: beach: as in used coördinate in a sentence 2015-12-23T17:37:46Z beach: Aha. Neat! :) 2015-12-23T17:38:46Z Jesin quit (Quit: Leaving) 2015-12-23T17:39:50Z dwchandler: zdm: that you noticed (and are presumably annoyed by) repeating yourself is a good sign 2015-12-23T17:41:18Z eudoxia joined #lisp 2015-12-23T17:42:03Z eudoxia: beach: re:email, I half-assed this https://github.com/eudoxia0/postmaster 2015-12-23T17:42:26Z eudoxia: it sends mail with cl-smtp, but I never got around to retrieving email through mel-base 2015-12-23T17:42:43Z eudoxia: I vaguely remember trying out some IMAP stuff on the REPL and having to use plenty of ::'s 2015-12-23T17:43:03Z beach: I am not surprised. 2015-12-23T17:43:10Z Jesin joined #lisp 2015-12-23T17:43:33Z beach: I don't want to complain about mel-base. He did a great job providing this. 2015-12-23T17:44:06Z eudoxia: sure I'm glad it exists and doesn't depend on iolib 2015-12-23T17:44:10Z beach: But it needs to be improved in order to be useful for software other than mel itself. 2015-12-23T17:44:44Z eudoxia: I would be satisfied with papering over the interface with Postmaster 2015-12-23T17:44:54Z eudoxia: maybe someday when I need to use it for something 2015-12-23T17:45:10Z beach: I understand. 2015-12-23T17:45:24Z mordocai: Yeah, i'm using it now but i'll be literally reading messages and moving them between folders and nothing else so i'm unlikely to need to improve it to scratch my itch. 2015-12-23T17:45:33Z moore33: beach: Do you have any opinion on the usefulness of slot documentation? 2015-12-23T17:45:40Z Lord_of_Life quit (Excess Flood) 2015-12-23T17:46:02Z beach: moore33: Since there is not useful way to access it, not terribly useful. 2015-12-23T17:46:06Z bcoburn quit (Ping timeout: 240 seconds) 2015-12-23T17:46:14Z beach: You need access to the slot object, as I recall. 2015-12-23T17:46:21Z moore33: beach: That what I'm finding... didn't realize that until now. 2015-12-23T17:46:51Z moore33: I guess that's doable with closer-mop and friends, but what a pain in the ass. 2015-12-23T17:46:52Z beach: It can be done, but (again, as I recall) you can't do that through CL:DOCUMENTATION. 2015-12-23T17:46:52Z blt quit (Quit: WeeChat 1.3) 2015-12-23T17:46:53Z nyef: I'd document the initargs and the accessors, but the slot itself? It shouldn't be part of the public interface, so there's not much point documenting it. 2015-12-23T17:47:08Z beach: Good point. 2015-12-23T17:47:24Z beach: Slots are "accidental". 2015-12-23T17:47:35Z eudoxia: sure it's useful 2015-12-23T17:47:38Z beach: Who came up with that terminology? Bertrand Mayer? 2015-12-23T17:47:50Z moore33: nyef: I think you're recommending that I explicitly define the generic function(s) for the slot accessor and document that? 2015-12-23T17:47:50Z eudoxia: e.g. http://commondoc.github.io/docs/nodes.html#basic-classes 2015-12-23T17:48:01Z moore33: My life is too short for that :) 2015-12-23T17:48:13Z nyef: Yes, that's what I'm recommending. 2015-12-23T17:48:13Z eudoxia: that big