2015-12-27T00:02:08Z yuankode quit (Ping timeout: 276 seconds) 2015-12-27T00:03:35Z funnel quit (Ping timeout: 260 seconds) 2015-12-27T00:04:43Z funnel joined #lisp 2015-12-27T00:06:18Z kobain joined #lisp 2015-12-27T00:08:01Z reb`` joined #lisp 2015-12-27T00:08:32Z jsgrant joined #lisp 2015-12-27T00:09:19Z jsgrant: So, I just discovered the "LLGPL". Is there a real reason why this isn't more popular, besides network effect working against it? http://opensource.franz.com/preamble.html 2015-12-27T00:09:50Z ivan\_ joined #lisp 2015-12-27T00:11:19Z ferada_ joined #lisp 2015-12-27T00:11:31Z yauz_2 joined #lisp 2015-12-27T00:11:44Z jsgrant: I guess too, reading said preamble, it doesn't do that great of a job in classifying "data" non-trivially which is relatively/notably different than in most other langs. 2015-12-27T00:11:49Z dlowe_ joined #lisp 2015-12-27T00:11:55Z SlashLife_ joined #lisp 2015-12-27T00:12:08Z jeaye_ joined #lisp 2015-12-27T00:12:10Z MoALTz_ joined #lisp 2015-12-27T00:12:11Z vh0st- joined #lisp 2015-12-27T00:12:55Z theBlack1ragon joined #lisp 2015-12-27T00:13:47Z pjb: jsgrant: IMO, it doesn't matter. The only question that matter in those license questions, is whether the judge will consider your work is a derived work of the original software. How the original software is distributed (binary, source, library, whatever), and how your software is integrated with the original software just doesn't matter for the question of derived work or not. 2015-12-27T00:13:48Z nisstyre_ joined #lisp 2015-12-27T00:14:27Z pjb: jsgrant: for example, the first point is that a translation IS a derived work. If you take a source, or a reverse-engineered binary, and you translate (rewrite) it in another language, it still is a derived work. 2015-12-27T00:15:15Z jsgrant: pjb: Oh wow, didn't know that counts as such. 2015-12-27T00:15:22Z pjb: jsgrant: that said, there are jurisprudence in both directions: in some case some uses (that a programmer would have thought is derived work) is not considered a derived work by a judge, and some cases are the reverse. 2015-12-27T00:15:27Z pjb: Si it really is up to the judge. 2015-12-27T00:15:45Z phoe_krk: jsgrant: GPL was written with C in mind. 2015-12-27T00:15:50Z pjb: Then of course, as a copyright owner, you get to decide on the conditions of the license. (price or GPL-virality, etc). 2015-12-27T00:15:53Z phoe_krk: you don't really have a linker in Lisp. 2015-12-27T00:15:58Z pjb: phoe_krk: but this doesn't matter. 2015-12-27T00:16:03Z pjb: See the actual judgements. 2015-12-27T00:16:09Z phoe_krk: therefore Franz clarified a few things there in LLGPL. 2015-12-27T00:16:18Z phoe_krk: pjb: I know, that's why it's stated clearer in LLGPL. 2015-12-27T00:17:06Z jsgrant: So what would something that most other programming languages would count as "seperate data"? I guess my concern is that somehow it could/would be argued that the data dervived from a specialized dsl/set of macros in a lisp program would be sucessfully argued as "seperate". 2015-12-27T00:17:09Z pjb: The technicalities that are written in the licenses are only to impress programmers. You can consider them as a gentleman agreement between programmers. But they're of no worth once it goes to court. 2015-12-27T00:17:34Z jsgrant needs to look into the more finetune bits of copyright in this area, he is very ignorant generally. 2015-12-27T00:17:40Z pjb: jsgrant: clearly, even if you ran the original software on another computer in another country, your software could still be considered derived work! 2015-12-27T00:17:52Z pjb: and some web service licenses are clearly based on that! 2015-12-27T00:18:38Z phryk_ joined #lisp 2015-12-27T00:18:40Z ivan\ quit (Ping timeout: 246 seconds) 2015-12-27T00:18:40Z BitPuffin|osx quit (Ping timeout: 246 seconds) 2015-12-27T00:18:41Z ivan\_ is now known as ivan\ 2015-12-27T00:18:58Z dlowe quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z troydm quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z MoALTz quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z eMBee quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z nisstyre quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z reb` quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z ferada quit (Ping timeout: 246 seconds) 2015-12-27T00:18:58Z jeaye quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z SlashLife quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z yauz quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z theBlackDragon quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z vhost- quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z ck_ quit (Ping timeout: 246 seconds) 2015-12-27T00:18:59Z phryk quit (Ping timeout: 246 seconds) 2015-12-27T00:19:00Z theBlack1ragon is now known as theBlackDragon 2015-12-27T00:19:00Z SlashLife_ is now known as SlashLife 2015-12-27T00:19:04Z dlowe_ is now known as dlowe 2015-12-27T00:19:21Z eMBee joined #lisp 2015-12-27T00:19:28Z BitPuffin|osx joined #lisp 2015-12-27T00:19:38Z troydm joined #lisp 2015-12-27T00:19:51Z phryk_ is now known as phryk 2015-12-27T00:22:00Z sgt_baker quit (Ping timeout: 265 seconds) 2015-12-27T00:23:46Z ck_ joined #lisp 2015-12-27T00:24:57Z EvW joined #lisp 2015-12-27T00:25:18Z jsgrant wonders if someone is ddos'n Freenode again. 2015-12-27T00:25:29Z sgt_baker joined #lisp 2015-12-27T00:25:55Z sgt_baker quit (Remote host closed the connection) 2015-12-27T00:31:10Z lisper29 joined #lisp 2015-12-27T00:34:38Z grouzen quit (Ping timeout: 276 seconds) 2015-12-27T00:42:55Z PlasmaStar quit (Ping timeout: 240 seconds) 2015-12-27T00:45:50Z lisse joined #lisp 2015-12-27T00:46:03Z PlasmaStar joined #lisp 2015-12-27T00:47:57Z phoe_krk: wow, Lisp is wonderful. 2015-12-27T00:48:27Z phoe_krk: I've set it to proxy all my connections and collect all data sent between the client and server. 2015-12-27T00:48:55Z phoe_krk: so now I have them collected and I can manipulate them as I see fit. all along the course of the (main) function I let run for a few days. 2015-12-27T00:49:01Z phoe_krk: and me forgetting about it. 2015-12-27T00:58:44Z AntiSpamMeta quit (Quit: going down to complete migration. /msg icxcnika I saw your bot's quit message :)) 2015-12-27T00:58:46Z kobain quit (Ping timeout: 240 seconds) 2015-12-27T00:59:57Z lisse left #lisp 2015-12-27T01:00:50Z Guest59198 joined #lisp 2015-12-27T01:08:16Z ajf- quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T01:09:30Z ajf- joined #lisp 2015-12-27T01:10:00Z Einwq quit (Ping timeout: 250 seconds) 2015-12-27T01:12:30Z lisper29 left #lisp 2015-12-27T01:14:30Z jeaye_ is now known as jeaye 2015-12-27T01:14:44Z varjagg quit (Ping timeout: 256 seconds) 2015-12-27T01:21:05Z Nikotiini quit (Remote host closed the connection) 2015-12-27T01:22:14Z quazimodo quit (Ping timeout: 245 seconds) 2015-12-27T01:22:15Z puchacz quit (Quit: Konversation terminated!) 2015-12-27T01:22:44Z quazimod1 quit (Ping timeout: 276 seconds) 2015-12-27T01:23:10Z PuercoPop: minion: memo for attila_lendvai: I was wondering what is(will be?) the differente between cl-sdl2 and hu.dwim.sdl? 2015-12-27T01:23:11Z minion: Remembered. I'll tell attila_lendvai when he/she/it next speaks. 2015-12-27T01:23:51Z treaki quit (Ping timeout: 260 seconds) 2015-12-27T01:34:43Z cmack joined #lisp 2015-12-27T01:35:07Z AntiSpamMeta joined #lisp 2015-12-27T01:36:38Z AntiSpamMeta quit (Read error: Connection reset by peer) 2015-12-27T01:38:42Z Guest59198 quit (Ping timeout: 255 seconds) 2015-12-27T01:39:11Z AntiSpamMeta joined #lisp 2015-12-27T01:39:28Z cmack quit (Ping timeout: 250 seconds) 2015-12-27T01:45:26Z EvW quit (Ping timeout: 255 seconds) 2015-12-27T01:51:14Z oleo_ joined #lisp 2015-12-27T01:54:05Z oleo quit (Ping timeout: 260 seconds) 2015-12-27T01:54:35Z manuel_ quit (Quit: manuel_) 2015-12-27T01:59:02Z Tyrius quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T02:01:55Z fantazo quit (Ping timeout: 240 seconds) 2015-12-27T02:05:01Z AntiSpamMeta quit (Remote host closed the connection) 2015-12-27T02:05:14Z AntiSpamMeta joined #lisp 2015-12-27T02:09:31Z p_l: someone asked recently about ELS'15 talks here, right? 2015-12-27T02:10:22Z phoe_krk: ELS'16 I presume? 2015-12-27T02:10:24Z phoe_krk: Or '15? 2015-12-27T02:10:35Z phoe_krk: If they're archived '15 and earlier talks, I'd be up for them myself! 2015-12-27T02:11:27Z p_l: https://www.youtube.com/watch?v=njfyWgqZmkI <--- just one which I have stumbled upon due to unrelated search 2015-12-27T02:11:38Z aap quit (Read error: Connection reset by peer) 2015-12-27T02:11:42Z p_l: it's about some low-level, escape-the-GC stuff 2015-12-27T02:12:00Z aap joined #lisp 2015-12-27T02:12:22Z Petit_Dejeuner joined #lisp 2015-12-27T02:12:27Z smokeink joined #lisp 2015-12-27T02:13:03Z p_l: (in this case, used by Franz in their database work) 2015-12-27T02:20:02Z troydm quit (Ping timeout: 246 seconds) 2015-12-27T02:27:50Z IvarC joined #lisp 2015-12-27T02:53:16Z learning joined #lisp 2015-12-27T03:04:23Z arescorpio joined #lisp 2015-12-27T03:16:08Z AntiSpamMeta quit (Quit: brb code update) 2015-12-27T03:16:22Z AntiSpamMeta joined #lisp 2015-12-27T03:16:38Z beach: Good morning everyone! 2015-12-27T03:18:27Z antonv: hello, brother 2015-12-27T03:18:51Z phoe_krk: morning, beach 2015-12-27T03:20:39Z ajf- quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T03:34:08Z LiamH quit (Ping timeout: 256 seconds) 2015-12-27T03:35:29Z cmack joined #lisp 2015-12-27T03:40:15Z cmack quit (Ping timeout: 260 seconds) 2015-12-27T03:47:28Z quazimodo joined #lisp 2015-12-27T03:47:29Z quazimod1 joined #lisp 2015-12-27T03:47:54Z jsgrant quit (Ping timeout: 272 seconds) 2015-12-27T03:51:00Z mrcom joined #lisp 2015-12-27T03:51:01Z OrangeShark quit (Quit: Leaving) 2015-12-27T04:00:02Z learning quit (Remote host closed the connection) 2015-12-27T04:00:34Z learning joined #lisp 2015-12-27T04:05:38Z learning quit (Ping timeout: 272 seconds) 2015-12-27T04:16:50Z p_nathan quit (Ping timeout: 245 seconds) 2015-12-27T04:28:44Z mbuf joined #lisp 2015-12-27T04:32:06Z araujo quit (Read error: Connection timed out) 2015-12-27T04:33:25Z araujo joined #lisp 2015-12-27T04:35:00Z araujo quit (Max SendQ exceeded) 2015-12-27T04:35:51Z araujo joined #lisp 2015-12-27T04:37:57Z FreeBirdLjj joined #lisp 2015-12-27T04:42:12Z learning joined #lisp 2015-12-27T04:49:02Z emacsomancer joined #lisp 2015-12-27T04:57:53Z IvarC quit (Quit: Leaving) 2015-12-27T05:04:30Z AntiSpamMeta quit (Remote host closed the connection) 2015-12-27T05:08:14Z zaquest quit (Quit: Leaving) 2015-12-27T05:09:56Z wildlander quit (Quit: Saliendo) 2015-12-27T05:10:55Z ecraven quit (Ping timeout: 240 seconds) 2015-12-27T05:11:35Z micro_ quit (Ping timeout: 260 seconds) 2015-12-27T05:11:48Z Subfusc quit (Ping timeout: 250 seconds) 2015-12-27T05:12:38Z Subfusc joined #lisp 2015-12-27T05:12:39Z kbtr quit (Ping timeout: 245 seconds) 2015-12-27T05:12:45Z surrounder quit (Ping timeout: 250 seconds) 2015-12-27T05:12:50Z chavezgu quit (Ping timeout: 276 seconds) 2015-12-27T05:15:25Z mrcom quit (Quit: Leaving) 2015-12-27T05:26:25Z arescorpio quit (Quit: Leaving.) 2015-12-27T05:27:06Z PlasmaStar quit (Ping timeout: 240 seconds) 2015-12-27T05:30:39Z PlasmaStar joined #lisp 2015-12-27T05:30:46Z brucem quit (Changing host) 2015-12-27T05:30:46Z brucem joined #lisp 2015-12-27T05:32:27Z zaquest joined #lisp 2015-12-27T05:32:41Z Subfusc quit (Ping timeout: 255 seconds) 2015-12-27T05:36:09Z Subfusc joined #lisp 2015-12-27T05:36:20Z cmack joined #lisp 2015-12-27T05:36:34Z k-stz quit (Remote host closed the connection) 2015-12-27T05:40:35Z cmack quit (Ping timeout: 240 seconds) 2015-12-27T05:44:16Z Bahman joined #lisp 2015-12-27T05:49:24Z MrWoohoo quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-12-27T05:49:24Z MrWoohoo2 quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-12-27T05:51:59Z defaultxr quit (Quit: gnight) 2015-12-27T05:54:16Z AntiSpamMeta joined #lisp 2015-12-27T05:54:34Z BitPuffin|osx quit (Ping timeout: 272 seconds) 2015-12-27T05:56:10Z antonv quit (Ping timeout: 260 seconds) 2015-12-27T05:57:02Z zacharias_ quit (Ping timeout: 276 seconds) 2015-12-27T05:57:31Z kushal joined #lisp 2015-12-27T05:58:07Z fantazo joined #lisp 2015-12-27T06:08:16Z schaueho joined #lisp 2015-12-27T06:08:39Z ecraven joined #lisp 2015-12-27T06:11:38Z Petit_Dejeuner: Am I right in assuming a typical CLIM transformation implementation is matrices underneath? 2015-12-27T06:12:24Z White_Flame: semantically, or literally? I'd assume flexibility to have optimized forms which skip general matrix operations 2015-12-27T06:13:02Z Petit_Dejeuner: literally 2015-12-27T06:14:12Z ecraven quit (Ping timeout: 272 seconds) 2015-12-27T06:14:50Z PlasmaStar quit (Ping timeout: 260 seconds) 2015-12-27T06:14:53Z Petit_Dejeuner: White_Flame: It's weird though. It's possible to make uninvertable translations. 2015-12-27T06:14:59Z Subfusc quit (Ping timeout: 255 seconds) 2015-12-27T06:15:00Z pchrist quit (Ping timeout: 255 seconds) 2015-12-27T06:15:20Z Petit_Dejeuner: ...although (I think) it would always be possible to invert each single operation in reverse order. 2015-12-27T06:15:22Z White_Flame: sure, scaling X by zero, etc 2015-12-27T06:15:55Z PlasmaStar joined #lisp 2015-12-27T06:15:57Z Petit_Dejeuner: But that seems like an error. 2015-12-27T06:15:59Z White_Flame: though I think you could have a limited vocabulary of transformations that are always reversible 2015-12-27T06:16:43Z Petit_Dejeuner: I mean, that might work (I have to check now), but I can't imagine scaling by zero having any useful result. 2015-12-27T06:17:16Z nyef: Semantically, CLIM transformations are matrixes of a particular form. But certain transformations may be represented more explicitly in terms of scale factors, rotation angles, and so on. 2015-12-27T06:18:39Z Subfusc joined #lisp 2015-12-27T06:19:14Z White_Flame: I could see scaling by zero being part of an appear/disappear animatin 2015-12-27T06:19:20Z White_Flame: ...animation 2015-12-27T06:19:48Z Petit_Dejeuner: Yeah, you're right. 2015-12-27T06:19:55Z beach: Petit_Dejeuner: Yes, I think the CLIM standard even mentions matrices. 2015-12-27T06:20:16Z nyef: Absolutely the standard mentions matrixes. 2015-12-27T06:20:29Z nyef: matrices. 2015-12-27T06:20:31Z nyef: Whichever. 2015-12-27T06:20:36Z Petit_Dejeuner: beach: There was something mentioned about zero determinants causing uninvertable-errors in the documentation I'm reading. 2015-12-27T06:20:48Z vlatkoB joined #lisp 2015-12-27T06:20:49Z madalu quit (Read error: Connection reset by peer) 2015-12-27T06:21:31Z beach: It is definitely possible to make one-way transformations. 2015-12-27T06:21:36Z nyef: Petit_Dejeuner: IIRC, you can only trigger that with the general translation, where you specify each matrix parameter directly, or a three-point translation with collinear points. 2015-12-27T06:21:43Z nyef: (co-linear?) 2015-12-27T06:22:01Z nyef: clim invertible-transformation-p 2015-12-27T06:22:04Z nyef: Hrm. 2015-12-27T06:22:23Z kushal quit (Ping timeout: 276 seconds) 2015-12-27T06:22:24Z nyef: Must have been removed from specbot. 2015-12-27T06:22:34Z beach: I think so yes. 2015-12-27T06:22:42Z White_Flame: nyef: what about scale by zero, as mentioned? 2015-12-27T06:22:49Z beach: http://bauhh.dyndns.org:8000/clim-spec/5-3.html#_195 2015-12-27T06:22:52Z nyef: Okay, maybe that as well. 2015-12-27T06:22:59Z pchrist joined #lisp 2015-12-27T06:22:59Z kazlock joined #lisp 2015-12-27T06:23:21Z kazlock quit (Client Quit) 2015-12-27T06:23:47Z kazlock joined #lisp 2015-12-27T06:26:11Z kazlock quit (Remote host closed the connection) 2015-12-27T06:29:18Z kazlock joined #lisp 2015-12-27T06:29:19Z extrn joined #lisp 2015-12-27T06:29:22Z ACE_Recliner quit (Ping timeout: 250 seconds) 2015-12-27T06:30:50Z heurist quit (Ping timeout: 276 seconds) 2015-12-27T06:31:31Z AntiSpamMeta quit (Quit: brb bugfix) 2015-12-27T06:31:56Z AntiSpamMeta joined #lisp 2015-12-27T06:32:11Z heurist joined #lisp 2015-12-27T06:32:14Z mordocai: What's a good "deep" profiler for sbcl common lisp? What I mean by deep is that it can show me what lower level functions are performing badly, not just the top level like time. 2015-12-27T06:32:15Z lisse` joined #lisp 2015-12-27T06:34:05Z PlasmaStar quit (Ping timeout: 260 seconds) 2015-12-27T06:34:49Z extrn is now known as RV522 2015-12-27T06:34:59Z pchrist quit (Ping timeout: 264 seconds) 2015-12-27T06:35:26Z kushal joined #lisp 2015-12-27T06:35:52Z lisse` quit (Read error: Connection reset by peer) 2015-12-27T06:36:00Z pchrist joined #lisp 2015-12-27T06:37:03Z White_Flame: mordocai: the statistical profiler in sbcl, sprof, like any standard profiler shows the cumulative time including child calls, as well as just the 'self' time 2015-12-27T06:37:23Z White_Flame: just have to figure out what the labels in the report mean 2015-12-27T06:37:41Z PlasmaStar joined #lisp 2015-12-27T06:37:44Z White_Flame: or do you mean something else by "top level like time"? 2015-12-27T06:38:15Z mordocai: White_Flame: Child calls is what I meant I think. 2015-12-27T06:38:22Z mordocai: So sprof sounds promising 2015-12-27T06:38:34Z White_Flame: I haven't used the instrumented profiler, only the sampling profiler 2015-12-27T06:40:56Z mordocai: Cool, trying it now 2015-12-27T06:41:21Z RV522 quit (Ping timeout: 252 seconds) 2015-12-27T06:42:11Z kushal quit (Ping timeout: 246 seconds) 2015-12-27T06:44:43Z moore33 joined #lisp 2015-12-27T06:51:34Z ACE_Recliner joined #lisp 2015-12-27T06:52:22Z mordocai: noooo paste.lisp.org is down 2015-12-27T06:55:23Z Warlock[29A] joined #lisp 2015-12-27T06:58:58Z |3b|: mordocai: slime's sprof contrib's output is a bit easier to interpret than raw sprof 2015-12-27T07:01:02Z kushal joined #lisp 2015-12-27T07:03:38Z kushal quit (Read error: Connection reset by peer) 2015-12-27T07:10:45Z ecraven joined #lisp 2015-12-27T07:12:59Z AntiSpamMeta quit (Quit: one more update, brb) 2015-12-27T07:13:35Z AntiSpamMeta joined #lisp 2015-12-27T07:15:08Z ecraven quit (Ping timeout: 256 seconds) 2015-12-27T07:23:39Z AntiSpamMeta quit (Remote host closed the connection) 2015-12-27T07:23:47Z AntiSpamMeta joined #lisp 2015-12-27T07:23:48Z AntiSpamMeta quit (Excess Flood) 2015-12-27T07:26:11Z AntiSpamMeta joined #lisp 2015-12-27T07:26:11Z AntiSpamMeta quit (Excess Flood) 2015-12-27T07:26:49Z AntiSpamMeta joined #lisp 2015-12-27T07:26:49Z AntiSpamMeta quit (Excess Flood) 2015-12-27T07:31:47Z kazlock: What would be a good/simple implementation of a prime? function? 2015-12-27T07:33:43Z blub: what is a prime number 2015-12-27T07:33:49Z pjb: erastostene sieve is nice and simple. 2015-12-27T07:33:56Z Subfusc quit (Ping timeout: 250 seconds) 2015-12-27T07:34:18Z kazlock: I just want to see a simple iterative approach, I'm trying to get a feel for lisp 2015-12-27T07:34:20Z White_Flame: 3 2015-12-27T07:34:25Z pjb: Otherwise there exist statistical prime tests for very big numbers. 2015-12-27T07:34:30Z Bicyclidine: yeah, sieve is easiest to write. 2015-12-27T07:34:39Z pchrist quit (Ping timeout: 255 seconds) 2015-12-27T07:35:02Z Bicyclidine: and then you can do AKS! which is pretty easy to write but i haven't a damn clue why it works. 2015-12-27T07:35:43Z pjb: kazlock: (defun primep (x) (or (= 2 x) (and (< 2 x) (oddp x) (loop for d :from 3 :to (isqrt x) :by 2 :always (plusp (mod x d)))))) 2015-12-27T07:36:12Z Subfusc joined #lisp 2015-12-27T07:36:52Z pchrist joined #lisp 2015-12-27T07:37:12Z cmack joined #lisp 2015-12-27T07:37:29Z kazlock: is ending the function in p some common convention? 2015-12-27T07:37:35Z kazlock: function name, that is 2015-12-27T07:37:43Z pjb: yes, in lisp, predicates end with p or -p not in ? 2015-12-27T07:38:17Z blub: ? is a scheme thing 2015-12-27T07:38:35Z kazlock: i like p better 2015-12-27T07:38:49Z White_Flame is a rebel and often uses is- or ? suffix in Lisp 2015-12-27T07:38:54Z pjb: If it's a single-word name, then just p, if it's multiple-word, then -p. But then, the predicate may be prefixed giving things like string-lessp (it's the lessp predicate for strings, not the string-less predicate. (that would be stringless, then). 2015-12-27T07:39:01Z mordocai: White_Flame: How DARE you think for yourself? :P 2015-12-27T07:39:44Z vaporatorius quit (Ping timeout: 276 seconds) 2015-12-27T07:40:15Z kazlock: pjb: Instead of testing oddp could you just start your loop from 2? 2015-12-27T07:40:34Z Bicyclidine: the point of pjb's list is that it only tests odd factors. 2015-12-27T07:40:44Z Bicyclidine: which is why it's from 3 by 2 2015-12-27T07:40:58Z kazlock: ohh 2015-12-27T07:41:01Z Bicyclidine: and well, ok, aks isn't that easy to write, but it's not too bad. you need a totient function. i'm not actually sure how to write that well off the top of my head. 2015-12-27T07:41:04Z Bicyclidine: pjb's loop* 2015-12-27T07:41:22Z pjb: kazlock: 5-3 = 2, 7-5 = 2, 13-11 = 2 therefore all odd numbers are prime candidates. But the only prime that's even is 2. 2015-12-27T07:41:44Z cmack quit (Ping timeout: 250 seconds) 2015-12-27T07:41:47Z Bicyclidine: you can get additional speedup by doing 2 and 3 specially and then doing 5,7,11,13,17,19, etc, going up by 2 and then 4. and then more complicated ones. they're in TAOCP somewhere. 2015-12-27T07:41:53Z pjb: kazlock: and that's why when you implement the eratostene sieve, you allocate a bit array only for odd numbers from 3. 2015-12-27T07:41:55Z kazlock: pjb: the "by 2" part went over my head 2015-12-27T07:43:07Z kazlock: :always is a kwarg for loop? 2015-12-27T07:43:22Z Bicyclidine: no, loop just has a special syntax. 2015-12-27T07:44:46Z Bicyclidine: it checks by symbol-name, so you don't even have to use keywords, though people like to sometimes 2015-12-27T07:44:52Z JuanDaugherty quit (Quit: Hibernate, reboot, etc.) 2015-12-27T07:45:00Z kazlock: ok this is looking less and less intimidating as I try to understand it 2015-12-27T07:45:28Z White_Flame: loop is a language unto itself 2015-12-27T07:45:43Z kazlock: is it a special function? 2015-12-27T07:45:46Z Bicyclidine: macro. 2015-12-27T07:45:53Z kazlock: oh 2015-12-27T07:46:15Z kazlock: the arguments look like a property list 2015-12-27T07:46:46Z Bicyclidine: only in this case. 2015-12-27T07:46:50Z Bicyclidine: If you want to use just simple loop, it would be, let's see.... (and (< 2 x) (oddp x) (let ((d 3)) (loop (unless (plusp (mod x d)) (return nil)) (if (> d (isqrt x)) (return t) (incf d 2))))) 2015-12-27T07:49:04Z kazlock: i think pjb's is more elegent 2015-12-27T07:49:20Z Bicyclidine: it's easier to read, for sure 2015-12-27T07:49:47Z Bicyclidine: but this is the simple case of loop, where it just runs the forms repeatedly until you exit, so it might be easier to understand at times. 2015-12-27T07:51:18Z kazlock: return is a special operator right? 2015-12-27T07:51:52Z Bicyclidine: it's a macro that expands into return-from, which is a special operator. 2015-12-27T07:52:00Z Bicyclidine: (return foo) = (return-from nil foo) 2015-12-27T07:52:23Z kazlock: how does return-from behave when you pass it nil? 2015-12-27T07:52:34Z Bicyclidine: clhs return-from 2015-12-27T07:52:35Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_ret_fr.htm 2015-12-27T07:52:41Z Bicyclidine: first argument is a name of a block. second is the return value. 2015-12-27T07:53:19Z White_Flame: certain forms have a named returnable block called NIL 2015-12-27T07:53:34Z White_Flame: which RETURN then finds 2015-12-27T07:53:54Z kazlock: White_Flame: in the case it is returning from the defun block? 2015-12-27T07:54:00Z fantazo quit (Ping timeout: 260 seconds) 2015-12-27T07:54:01Z Bicyclidine: from the loop, actually 2015-12-27T07:54:05Z Bicyclidine: for more information contact your local M-x slime-macroexpand-1 2015-12-27T07:54:24Z White_Flame: DEFUN creates a block named the same as your function. so (defun foo () ... (return-from foo 3) ...) 2015-12-27T07:54:33Z Bicyclidine: and the clhs 2015-12-27T07:54:37Z White_Flame: if you try to have return-from nil, it'll die 2015-12-27T07:54:43Z AntiSpamMeta joined #lisp 2015-12-27T07:54:44Z pchrist quit (Ping timeout: 250 seconds) 2015-12-27T07:54:44Z White_Flame: (without some other form creating a nil block) 2015-12-27T07:55:47Z kazlock: oh so it propagates through loop, then and, and finally the function block 2015-12-27T07:56:12Z pchrist joined #lisp 2015-12-27T07:57:21Z White_Flame: the return doesn't, but the overall flow does 2015-12-27T07:57:45Z White_Flame: return only causes the loop to exit. THen the normal non-RETURN evaluation finishes off the other forms 2015-12-27T07:58:46Z kazlock: clhs and 2015-12-27T07:58:47Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_and.htm 2015-12-27T07:59:33Z White_Flame: it's a short-circuiting form, so it's equivalent to (when (< 2 x) (when (oddp x) (let ...))) 2015-12-27T08:00:05Z kazlock: that's very cool. 2015-12-27T08:00:21Z kazlock: I'm used to and evaluating only to true or false 2015-12-27T08:00:24Z kazlock: this is much more useful 2015-12-27T08:01:12Z kazlock: lisp is the coolest thing I've seen in awhile 2015-12-27T08:01:39Z White_Flame: yep 2015-12-27T08:01:52Z White_Flame: it's pure nested syntactic evaluation 2015-12-27T08:04:43Z kazlock: the thing that excites me most is the macro system 2015-12-27T08:05:54Z beach: That's probably because you do not yet know about CLOS. :) 2015-12-27T08:07:00Z White_Flame is a rebel and doesn't really use classes 2015-12-27T08:07:09Z White_Flame: though multimethods are cool 2015-12-27T08:07:49Z kazlock: is practical common lisp enough to get started? 2015-12-27T08:08:16Z kazlock: I will probably have to read the whole thing 10 times before it starts to sink in I feel like 2015-12-27T08:08:19Z White_Flame: I tend to find that just structs, lists, functions, and macros let me make code that does what I want, whereas CLOS classes tend to be more verbose and narrow-tracked in order to accomplish the same thing 2015-12-27T08:09:01Z White_Flame: but I also tend to turn towards knowledge-base style storage instead of explicit objects 2015-12-27T08:09:11Z mbuf quit (Ping timeout: 264 seconds) 2015-12-27T08:09:44Z PlasmaStar quit (Ping timeout: 255 seconds) 2015-12-27T08:11:24Z micro_ joined #lisp 2015-12-27T08:11:39Z ecraven joined #lisp 2015-12-27T08:11:49Z micro_ is now known as Guest2230 2015-12-27T08:14:10Z PlasmaStar joined #lisp 2015-12-27T08:15:55Z pchrist quit (Ping timeout: 240 seconds) 2015-12-27T08:16:25Z pwnie joined #lisp 2015-12-27T08:16:30Z ecraven quit (Ping timeout: 255 seconds) 2015-12-27T08:16:41Z Guest2230 quit (Ping timeout: 246 seconds) 2015-12-27T08:19:23Z emacsoma` joined #lisp 2015-12-27T08:20:33Z Subfusc quit (Ping timeout: 255 seconds) 2015-12-27T08:21:11Z emacsomancer quit (Ping timeout: 264 seconds) 2015-12-27T08:22:36Z mbuf joined #lisp 2015-12-27T08:23:36Z shka joined #lisp 2015-12-27T08:29:42Z happy-dude quit (Quit: Connection closed for inactivity) 2015-12-27T08:32:05Z beach: minion: memo for jsgrant: With respect to your wishing for more CLIM applications, here is a complete accounting system in a bit more than 400 lines of code, half of which is a CLIM GUI. 2015-12-27T08:32:05Z minion: Remembered. I'll tell jsgrant when he/she/it next speaks. 2015-12-27T08:32:32Z mac_ified quit 2015-12-27T08:32:50Z beach: minion: memo for jsgrant: https://github.com/robert-strandh/Compta 2015-12-27T08:32:50Z minion: Remembered. I'll tell jsgrant when he/she/it next speaks. 2015-12-27T08:35:38Z yaewa joined #lisp 2015-12-27T08:36:27Z moei quit (Ping timeout: 265 seconds) 2015-12-27T08:43:03Z MrWoohoo2 joined #lisp 2015-12-27T08:43:05Z MrWoohoo joined #lisp 2015-12-27T08:45:06Z lisse joined #lisp 2015-12-27T08:45:44Z Guest20174 quit (Ping timeout: 255 seconds) 2015-12-27T08:45:52Z schaueho quit (Ping timeout: 250 seconds) 2015-12-27T08:53:20Z Guest20174 joined #lisp 2015-12-27T08:55:44Z mishoo joined #lisp 2015-12-27T09:08:24Z surrounder joined #lisp 2015-12-27T09:09:11Z ecraven joined #lisp 2015-12-27T09:09:13Z Subfusc joined #lisp 2015-12-27T09:11:49Z pchrist joined #lisp 2015-12-27T09:13:05Z micro___ joined #lisp 2015-12-27T09:13:16Z yuankode joined #lisp 2015-12-27T09:16:04Z shka quit (Remote host closed the connection) 2015-12-27T09:16:34Z shka joined #lisp 2015-12-27T09:18:31Z surrounder quit (Quit: WeeChat 1.3) 2015-12-27T09:18:44Z surrounder joined #lisp 2015-12-27T09:18:46Z learning quit (Remote host closed the connection) 2015-12-27T09:19:11Z chavezgu joined #lisp 2015-12-27T09:25:09Z mishoo quit (Remote host closed the connection) 2015-12-27T09:25:14Z mishoo_ joined #lisp 2015-12-27T09:26:36Z mikaelj joined #lisp 2015-12-27T09:29:17Z Tyrius joined #lisp 2015-12-27T09:33:31Z Seteeri joined #lisp 2015-12-27T09:36:20Z MoALTz_ is now known as MoALTz 2015-12-27T09:36:27Z Seteeri: hello 2015-12-27T09:36:33Z blub: hi seteeri 2015-12-27T09:36:56Z hitecnologys: Does lucerne has portable way to handle file uploads? Or is it clack's job? 2015-12-27T09:37:00Z Seteeri: I was wondering if I could get some help on something 2015-12-27T09:37:43Z blub: what do you want help with 2015-12-27T09:37:51Z hitecnologys: Seteeri: don't ask to ask, just ask. 2015-12-27T09:38:03Z cmack joined #lisp 2015-12-27T09:38:23Z Seteeri: Is there a common lisp version of pythons itertools accumulate function? 2015-12-27T09:39:04Z hitecnologys: clhs loop 2015-12-27T09:39:04Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/m_loop.htm 2015-12-27T09:39:20Z hitecnologys: (loop for elt in list summing elt) 2015-12-27T09:39:42Z hitecnologys: Err, wait. 2015-12-27T09:39:51Z Seteeri: I know I could do it iteratively but I was wondering if it was possible to do it in a more functional/recursive manner 2015-12-27T09:40:21Z hitecnologys: Recursion is bad. 2015-12-27T09:40:43Z hitecnologys: Not all compilers can to tail call optimization. 2015-12-27T09:40:53Z Seteeri: Just to be pedantic, an example would be, (1 2 3) -> (1 3 6) 2015-12-27T09:41:06Z Seteeri: Hmm 2015-12-27T09:41:10Z hitecnologys: Yeah, that's what I noticed about my code. 2015-12-27T09:41:23Z dkcl joined #lisp 2015-12-27T09:42:08Z hitecnologys: More correct version would be (loop for elt in (list 1 2 3) summing elt into acc collecting acc). 2015-12-27T09:42:28Z hitecnologys: Abstract it into function/macro depending on your needs and you should be good. 2015-12-27T09:43:05Z cmack quit (Ping timeout: 260 seconds) 2015-12-27T09:43:08Z Seteeri: alright thanks! 2015-12-27T09:43:40Z hitecnologys: If you're seeking extensible LOOP, then you might want to check "iter" out. 2015-12-27T09:43:48Z hitecnologys: minion: tell Seteeri about iter 2015-12-27T09:43:48Z minion: Sorry, I couldn't find anything in the database for ``iter''. 2015-12-27T09:43:52Z hitecnologys: Bleh. 2015-12-27T09:43:58Z hitecnologys: It doesn't do cliki lookup. 2015-12-27T09:43:59Z quazimodo quit (Ping timeout: 264 seconds) 2015-12-27T09:44:07Z quazimod1 quit (Ping timeout: 265 seconds) 2015-12-27T09:44:19Z hitecnologys: Seteeri: https://common-lisp.net/project/iterate/ 2015-12-27T09:44:24Z hitecnologys: iterate that was. 2015-12-27T09:44:30Z hitecnologys: Silly hitecnologys. 2015-12-27T09:45:31Z Seteeri: cool 2015-12-27T09:46:27Z blub: seteeri: http://pastie.org/10654819 2015-12-27T09:47:13Z Seteeri: It's funny, as a newcomer to lisp from a C/Python background, I actually find the syntax and parentheses easier to read. 2015-12-27T09:47:40Z hitecnologys: blub: you could have accomplished the same thing without reversal in the end. 2015-12-27T09:47:57Z mordocai: Is there someone to notify that paste.lisp.org is down? It is making me sad. 2015-12-27T09:48:15Z hitecnologys: Woah. 2015-12-27T09:48:18Z hitecnologys: Indeed. 2015-12-27T09:48:28Z blub: i didnt put much thought into it :) 2015-12-27T09:48:44Z mordocai: Its been down for several hours now 2015-12-27T09:48:51Z Seteeri: thanks for the pastie 2015-12-27T09:48:59Z hitecnologys: blub: since you example is destructive anyway, you can modify CDR of cons cells, growing list, until you run out of data. 2015-12-27T09:49:44Z manuel_ joined #lisp 2015-12-27T09:49:59Z hitecnologys: blub: it will be iterative as well and probably cleaner than you recursive call. 2015-12-27T09:50:27Z hitecnologys: Actually, I think most compilers will optimize straightforward approach without argument used as accumulator. 2015-12-27T09:50:51Z Seteeri: I think most CL implementations implement TCO? 2015-12-27T09:50:57Z hitecnologys: Right. 2015-12-27T09:51:04Z hitecnologys: It's just that sometimes TCO fails. 2015-12-27T09:51:19Z hitecnologys: When program logic is too complicated, compilers back off. 2015-12-27T09:51:38Z blub: if i were writing it for real i would use loop like you did, i was just showing a straightforward recursive version 2015-12-27T09:51:45Z hitecnologys: This is why LOOP variant is better. Write what you mean. 2015-12-27T09:52:49Z hitecnologys: blub: yes, I see that. Just noticed another approach to problem which I wasn't sure you just missed or missed on purpose. 2015-12-27T09:53:19Z pwnie: blub: could you paste the contents of http://pastie.org/10654819 to some other pastebin that doesnt use cloudfare as being tor user I'm being blocked. 2015-12-27T09:53:33Z pwnie: Maybe pastee.org 2015-12-27T09:53:50Z hitecnologys: How many paste services there actually is..? 2015-12-27T09:53:57Z mordocai: A billion 2015-12-27T09:54:00Z pwnie: A lot thankfully 2015-12-27T09:54:19Z hitecnologys: Sometimes it seems like all variations of "paste" have already been used at least once. 2015-12-27T09:54:28Z hitecnologys: Does this even make sense? 2015-12-27T09:54:49Z hitecnologys: ...and it's off topic so I shut up. 2015-12-27T09:56:08Z Tyrius quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T09:59:58Z Subfusc quit (Ping timeout: 250 seconds) 2015-12-27T10:01:13Z Subfusc joined #lisp 2015-12-27T10:01:34Z quazimodo joined #lisp 2015-12-27T10:01:37Z quazimod1 joined #lisp 2015-12-27T10:06:14Z quazimodo quit (Ping timeout: 246 seconds) 2015-12-27T10:06:21Z quazimod1 quit (Ping timeout: 265 seconds) 2015-12-27T10:06:48Z learning joined #lisp 2015-12-27T10:07:00Z PuercoPop quit (Ping timeout: 260 seconds) 2015-12-27T10:08:06Z failproofshark quit (Ping timeout: 255 seconds) 2015-12-27T10:08:29Z Robdgreat quit (Ping timeout: 245 seconds) 2015-12-27T10:08:44Z cyberlard quit (Ping timeout: 244 seconds) 2015-12-27T10:08:49Z quazimodo joined #lisp 2015-12-27T10:08:55Z quazimod1 joined #lisp 2015-12-27T10:09:15Z xristos quit (Ping timeout: 244 seconds) 2015-12-27T10:09:25Z PuercoPop joined #lisp 2015-12-27T10:10:59Z blub: pwnie: https://pastee.org/keqnw 2015-12-27T10:11:14Z learning quit (Ping timeout: 250 seconds) 2015-12-27T10:13:50Z PuercoPop quit (Ping timeout: 250 seconds) 2015-12-27T10:14:48Z FreeBirdLjj quit (Remote host closed the connection) 2015-12-27T10:18:56Z PuercoPop joined #lisp 2015-12-27T10:19:24Z xristos joined #lisp 2015-12-27T10:19:32Z xristos is now known as Guest27240 2015-12-27T10:20:04Z cyberlard joined #lisp 2015-12-27T10:20:09Z Bahman quit (Quit: Ave atque vale) 2015-12-27T10:21:39Z sweater joined #lisp 2015-12-27T10:22:03Z sweater is now known as Guest61679 2015-12-27T10:22:06Z vaporatorius joined #lisp 2015-12-27T10:22:12Z Robdgreat joined #lisp 2015-12-27T10:22:35Z malbertife joined #lisp 2015-12-27T10:22:35Z adhoc quit (Ping timeout: 240 seconds) 2015-12-27T10:24:06Z failproofshark joined #lisp 2015-12-27T10:24:53Z adhoc joined #lisp 2015-12-27T10:26:06Z quazimodo quit (Ping timeout: 256 seconds) 2015-12-27T10:26:08Z quazimod1 quit (Ping timeout: 276 seconds) 2015-12-27T10:26:43Z Tyrius joined #lisp 2015-12-27T10:26:59Z hitecnologys: Never mind the upload question. I dug into sourced and wrote a wrapper myself. 2015-12-27T10:28:02Z cadadar joined #lisp 2015-12-27T10:28:26Z quazimodo joined #lisp 2015-12-27T10:28:27Z quazimod1 joined #lisp 2015-12-27T10:34:21Z beach: Is there a way to make SLIME output presentations rather than just text for trace output? 2015-12-27T10:34:51Z kazlock quit (Remote host closed the connection) 2015-12-27T10:36:22Z PuercoPop quit (Ping timeout: 250 seconds) 2015-12-27T10:37:14Z atgreen quit (Ping timeout: 245 seconds) 2015-12-27T10:37:26Z Robdgreat quit (Ping timeout: 240 seconds) 2015-12-27T10:37:26Z cyberlard quit (Ping timeout: 240 seconds) 2015-12-27T10:37:40Z failproofshark quit (Ping timeout: 250 seconds) 2015-12-27T10:38:11Z Guest27240 quit (Ping timeout: 244 seconds) 2015-12-27T10:40:52Z dkcl quit (Remote host closed the connection) 2015-12-27T10:41:28Z PuercoPop joined #lisp 2015-12-27T10:45:24Z futpib joined #lisp 2015-12-27T10:50:11Z TMM quit (Ping timeout: 276 seconds) 2015-12-27T10:52:49Z atgreen joined #lisp 2015-12-27T10:54:37Z FreeBirdLjj joined #lisp 2015-12-27T10:59:55Z earl-ducaine quit (Read error: Connection reset by peer) 2015-12-27T11:02:15Z jtza8 joined #lisp 2015-12-27T11:07:13Z lnostdal joined #lisp 2015-12-27T11:10:10Z mishoo_ quit (Ping timeout: 250 seconds) 2015-12-27T11:10:59Z emacsoma` quit (Ping timeout: 246 seconds) 2015-12-27T11:12:09Z hitecnologys: No, do mind upload question. My method involves extensive use of unexported flexi-streams symbols and doesn't seem to be very elegant… 2015-12-27T11:14:15Z fantazo joined #lisp 2015-12-27T11:15:11Z AntiSpamMeta quit (Quit: brb) 2015-12-27T11:17:16Z AntiSpamMeta joined #lisp 2015-12-27T11:19:13Z puchacz joined #lisp 2015-12-27T11:20:35Z dkcl joined #lisp 2015-12-27T11:20:59Z Nikotiini joined #lisp 2015-12-27T11:27:57Z Warlock[29A] quit (Read error: Connection reset by peer) 2015-12-27T11:28:14Z Warlock[29A] joined #lisp 2015-12-27T11:34:31Z xristos joined #lisp 2015-12-27T11:34:35Z xristos is now known as Guest96329 2015-12-27T11:37:02Z ACE_Recliner quit (Remote host closed the connection) 2015-12-27T11:38:38Z Guest96329 quit (Ping timeout: 244 seconds) 2015-12-27T11:38:49Z cmack joined #lisp 2015-12-27T11:42:09Z hitecnologys: "The value 265 is not of type (UNSIGNED-BYTE 8)" with woo as server. So much for backend-agnostic. 2015-12-27T11:42:46Z hitecnologys: I'm not sure how it ended up like that while parsing headers. 2015-12-27T11:43:35Z cmack quit (Ping timeout: 240 seconds) 2015-12-27T11:44:50Z hitecnologys: Oh come one, it works with curl! 2015-12-27T11:45:05Z hitecnologys: Firefox, what are you doing with my headers? 2015-12-27T11:46:34Z PuercoPop quit (Ping timeout: 250 seconds) 2015-12-27T11:46:59Z theBlackDragon quit (Ping timeout: 264 seconds) 2015-12-27T11:50:16Z prxq joined #lisp 2015-12-27T11:54:55Z lnostdal_ joined #lisp 2015-12-27T11:55:31Z learning joined #lisp 2015-12-27T11:56:20Z Seteeri quit (Remote host closed the connection) 2015-12-27T11:56:29Z ft quit (Quit: leaving) 2015-12-27T11:56:50Z ft joined #lisp 2015-12-27T11:58:29Z lnostdal quit (Ping timeout: 245 seconds) 2015-12-27T11:59:56Z learning quit (Ping timeout: 265 seconds) 2015-12-27T12:05:34Z xristos_ joined #lisp 2015-12-27T12:06:07Z Einwq joined #lisp 2015-12-27T12:06:23Z Mon_Ouie joined #lisp 2015-12-27T12:06:34Z PuercoPop joined #lisp 2015-12-27T12:10:54Z theBlackDragon joined #lisp 2015-12-27T12:10:54Z Robdgreat joined #lisp 2015-12-27T12:11:14Z failproofshark joined #lisp 2015-12-27T12:12:14Z cyberlard joined #lisp 2015-12-27T12:13:00Z dkcl quit (Ping timeout: 250 seconds) 2015-12-27T12:16:21Z xristos_ quit (Ping timeout: 244 seconds) 2015-12-27T12:16:28Z resttime quit (Quit: Leaving) 2015-12-27T12:16:36Z xristos_ joined #lisp 2015-12-27T12:17:15Z schaueho joined #lisp 2015-12-27T12:18:11Z EvW joined #lisp 2015-12-27T12:18:41Z manuel_ quit (Quit: manuel_) 2015-12-27T12:20:02Z znpy joined #lisp 2015-12-27T12:23:34Z mbuf quit (Quit: Ex-Chat) 2015-12-27T12:23:49Z mishoo_ joined #lisp 2015-12-27T12:31:04Z Joreji joined #lisp 2015-12-27T12:33:56Z atgreen quit (Ping timeout: 246 seconds) 2015-12-27T12:34:45Z cadadar quit (Quit: Leaving.) 2015-12-27T12:37:26Z schaueho quit (Ping timeout: 276 seconds) 2015-12-27T12:38:46Z Karl_Dscc joined #lisp 2015-12-27T12:38:51Z ajf- joined #lisp 2015-12-27T12:39:06Z atgreen joined #lisp 2015-12-27T12:41:51Z pwnie quit (Quit: = "") 2015-12-27T12:43:07Z zupoman joined #lisp 2015-12-27T12:43:43Z hardenedapple joined #lisp 2015-12-27T12:43:49Z attila_lendvai joined #lisp 2015-12-27T12:43:49Z attila_lendvai quit (Changing host) 2015-12-27T12:43:49Z attila_lendvai joined #lisp 2015-12-27T12:47:14Z znpy quit (Ping timeout: 245 seconds) 2015-12-27T12:47:18Z Ven joined #lisp 2015-12-27T12:48:00Z atgreen quit (Ping timeout: 260 seconds) 2015-12-27T12:53:17Z kenanb joined #lisp 2015-12-27T12:54:34Z Einwq quit (Quit: Leaving) 2015-12-27T12:55:07Z dkcl joined #lisp 2015-12-27T12:55:32Z ebrasca joined #lisp 2015-12-27T12:55:34Z shka: hitecnologys: did you compared requests? 2015-12-27T12:57:19Z beach: Good afternoon everyone! 2015-12-27T12:58:57Z blub: hi beach 2015-12-27T12:59:29Z kenanb: good afternoon beach 2015-12-27T12:59:30Z minion: kenanb, memo from PuercoPop: check also wookie's plugin system https://github.com/orthecreedence/wookie/blob/master/plugin.lisp 2015-12-27T13:01:22Z Joreji quit (Ping timeout: 256 seconds) 2015-12-27T13:01:47Z kenanb: so I have this #'GENERATE which dispatches on PROJECT, generating ASSETs, I want ASSET subclasses to be loaded as plugins, telling #'GENERATE to create subclass X if P is true. Currently I implemented a registry, each plugin defines an ASSET subclass and also registers its corresponding P to the registry, #'GENERATE, when called, evals all P's in registry to find a matching subclass, makes an instance of the first match. 2015-12-27T13:03:12Z kenanb: is there an even convenient and at the same time still extensible way adding conditional "make an instance of subclass X if P is true" to generate 2015-12-27T13:03:15Z hitecnologys: shka: compare with what? 2015-12-27T13:03:33Z hitecnologys: blub: good afternoon! 2015-12-27T13:03:41Z hitecnologys: eh, beach ^ 2015-12-27T13:03:48Z blub: hi hitecnologys 2015-12-27T13:04:11Z hitecnologys: blub: hi to you too! 2015-12-27T13:04:19Z beach: kenanb: I am not quite sure what you are trying to accomplish. Why would it ever be interesting not to create the subclass? And why is it that the code for all the "plugins" is not always loaded? 2015-12-27T13:05:17Z beach: kenanb: Why is it that it is not up to the "plugin" itself to create the subclass? 2015-12-27T13:06:00Z kenanb: I think Filtered Functions Pascal Costanza released some years ago is a perfect match, but I don't think people used it much, so it might be a little rough on edges 2015-12-27T13:06:02Z jself quit (Ping timeout: 276 seconds) 2015-12-27T13:06:16Z axion quit (Ping timeout: 240 seconds) 2015-12-27T13:06:16Z mwehner quit (Ping timeout: 240 seconds) 2015-12-27T13:06:16Z ec quit (Ping timeout: 240 seconds) 2015-12-27T13:06:18Z briankrent quit (Ping timeout: 250 seconds) 2015-12-27T13:06:35Z beach: A perfect match for what? 2015-12-27T13:06:40Z luis quit (Ping timeout: 260 seconds) 2015-12-27T13:06:44Z mtl_ quit (Ping timeout: 250 seconds) 2015-12-27T13:07:01Z nonopposition is now known as CrazEd 2015-12-27T13:07:02Z j0ni quit (Ping timeout: 256 seconds) 2015-12-27T13:07:06Z darlinger quit (Ping timeout: 240 seconds) 2015-12-27T13:07:08Z dlowe quit (Ping timeout: 272 seconds) 2015-12-27T13:07:15Z nicdev quit (Ping timeout: 260 seconds) 2015-12-27T13:07:30Z CrazEd is now known as Guest34080 2015-12-27T13:07:39Z kenanb: beach: for each plugin to add its own condition to the GENERATE function in a modular way, as an alternative to using a registry for predicates 2015-12-27T13:07:59Z emma quit (Ping timeout: 276 seconds) 2015-12-27T13:09:03Z yaewa quit (Quit: Leaving...) 2015-12-27T13:10:24Z beach: kenanb: I am lost. Sorry. If I understand you correctly, you are saying that Filtered Functions are a perfect match for what I am suggesting, but somehow your system is not. Yet you do not want to explain why your system can not benefit from the same technique. Am I right so far? 2015-12-27T13:10:32Z moei joined #lisp 2015-12-27T13:11:06Z kenanb: beach: Consider the case that all possible asset types are loaded as plugins, not touching the base system. you want the ASSET subclass VIDEO to be instanced if the extension of input string is an mp4 or avi, you want ASSET subclass TEXT to be created if it is "txt", you want no instance to be created if there is no match in extension predicates of any of the loaded plugins 2015-12-27T13:12:29Z beach: kenanb: Let me read the backlogs and try to understand. Give me a minute. 2015-12-27T13:12:47Z kenanb: beach: no I was saying Filtered Functions seems to be a perfect match for what I had in mind. Pardon me, I lost sync of my timing with answers so it became confusing :) 2015-12-27T13:13:01Z beach: kenanb: Before you were talking about subclasses, now you are talking about instances. I am more confused than ever. 2015-12-27T13:13:50Z Nikotiini quit (Ping timeout: 246 seconds) 2015-12-27T13:13:57Z kenanb: I asked the first question after you joined btw, just to save you time from reading backlogs 2015-12-27T13:14:02Z beach: kenanb: Believe it or not. I am not pretending to be dense here. I always have a hard time trying to understand what people mean. 2015-12-27T13:15:11Z kenanb: beach: no no, I know you don't, I have been in the channel for more than 10 years in total now, even though not frequently. So I am perfectly aware of your good intentions in conversation :) 2015-12-27T13:15:52Z beach: Whew! Thanks. 2015-12-27T13:15:53Z kenanb: beach: actually, thank you for trying to help, in advance 2015-12-27T13:16:38Z beach: OK, let's start from the beginning. Why is it that you would sometimes not want a SUBCLASS of ASSET. I.e., why does it hurt to have all subclasses always created? 2015-12-27T13:16:52Z ggole joined #lisp 2015-12-27T13:16:53Z Nikotiini joined #lisp 2015-12-27T13:17:39Z kenanb: beach: I am not trying to create subclasses, subclasses are always defined if the plugin that defines it is loaded when program started. I probably used "create" instead of "instance" somewhere by mistake 2015-12-27T13:17:57Z beach: kenanb: Also, it is not just that I am trying to help this time. It is also that I need to understand the idea of plugins in the context of a LispOS. 2015-12-27T13:18:26Z mwehner joined #lisp 2015-12-27T13:18:27Z beach: OH!!! 2015-12-27T13:18:28Z shka: what filtered functions even are? 2015-12-27T13:18:38Z beach: That changes everything. 2015-12-27T13:18:40Z kenanb: beach: subclasses are always there, GENERATE checks their corresponding predicates one by one to find which one of them to MAKE-INSTANCE. 2015-12-27T13:18:47Z beach: Now I have to re-read what you wrote. 2015-12-27T13:19:01Z beach: Hold on... 2015-12-27T13:20:28Z beach: OK, now it makes MUCH more sense. 2015-12-27T13:21:19Z kenanb: shka: they let you use abstract predicates in method definition as parameter specializer name, so your generic tries to dispatch on those filtered functions first, then checks the usual methods. 2015-12-27T13:21:29Z kenanb: beach: great! :) 2015-12-27T13:22:56Z kenanb: beach: pardon me for my terminology. I am originally an architect, my lack of proper CS education bites good people trying to help even more than it bites me. 2015-12-27T13:23:56Z beach: kenanb: It is more likely that it is my extremely literal interpretation of what people write that bites; and that problem is due to my training as a scientist. 2015-12-27T13:24:50Z beach: ... so you want to call GENERATE with an instance of PROJECT, and depending on what the project decides, GENERATE should call MAKE-INSTANCE, but which class should it instantiate? 2015-12-27T13:25:03Z beach: i.e., how does GENERATE "know" what class to instantiate? 2015-12-27T13:26:55Z beach: Let me know if you get tired of my lack of understanding and want to give up trying to explain to me. I fully understand how that could happen. 2015-12-27T13:26:57Z kenanb: exactly 2015-12-27T13:27:01Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-12-27T13:27:29Z kenanb: no no I am very cool with trying to explain the idea :) 2015-12-27T13:27:41Z beach: Great! 2015-12-27T13:28:06Z beach: So how does GENERATE "know" what class to instantiate? 2015-12-27T13:28:07Z NeverDie quit (Quit: http://radiux.io/) 2015-12-27T13:28:08Z Ven joined #lisp 2015-12-27T13:28:21Z hitecnologys: shka: ah, you mean Firefox's and curl's? No, I freaked out and changed file upload to text area, then decided no to change backends until I figure out how exactly this works, maybe even rewrite the thing. 2015-12-27T13:30:14Z kenanb: beach: currently, each plugin defines a subclass, and registeres a predicate to a variable, the predicates in that variable are checked one by one by GENERATE 2015-12-27T13:30:44Z hitecnologys: s/no to change/to not change/ 2015-12-27T13:31:16Z beach: kenanb: OK, so that predicate returns NIL or a class to instantiate? 2015-12-27T13:34:39Z kenanb: beach: so there is a *REGISTRY* with '((VIDEO . ("\\.mp4$" "\\.avi$")) (TEXT . ("\\.txt$")) (IMAGE . ("\\.png$" "\\.jpg$"))) the CDR's are not actually predicates, but a regexp list to be fed to the actual generic predicate, but you can imagine they all are individual predicate lambdas instead. 2015-12-27T13:36:40Z beach: Makes sense. 2015-12-27T13:37:13Z beach: kenanb: Why is it that the predicate does not instantiate the class (or return NIL). Presumably, the predicate has better knowledge of how to instantiate the class, since they belong in the same plugin. 2015-12-27T13:37:40Z shka: kenanb: clever! 2015-12-27T13:37:42Z kenanb: beach: GENERATE loops over the *REGISTRY*, inputs each CDR and FILENAME to MATCH-P, when the first one returns T, the ASSET subclass corresponding to the CAR of the item is instanced 2015-12-27T13:38:49Z beach: How do you find the corresponding subclass, given the CAR? 2015-12-27T13:39:23Z ggole_ joined #lisp 2015-12-27T13:39:59Z cmack joined #lisp 2015-12-27T13:40:16Z beach: I mean, the CAR looks like a symbol. 2015-12-27T13:40:26Z lurker joined #lisp 2015-12-27T13:40:32Z beach: Is that symbol just the name of the class? 2015-12-27T13:41:01Z kenanb: beach: the CAR of each CONS in *REGISTRY* is actually the name of the subclass. so if its CDR fed to MATCH-P returns true, VIDEO subclass will be created 2015-12-27T13:41:21Z beach: OK, got it. 2015-12-27T13:41:35Z mwehner quit (Ping timeout: 264 seconds) 2015-12-27T13:41:42Z beach: Looks like a reasonable solution to me. 2015-12-27T13:41:59Z beach: And thanks for the explanation! 2015-12-27T13:42:36Z ggole quit (Ping timeout: 272 seconds) 2015-12-27T13:42:46Z beach: So each plugin registers the name of a class and a list of filename extensions? 2015-12-27T13:43:08Z kenanb: beach: I didn't actually implement this CLOS code btw, the whole thing is written in a functional style right now, I am going to convert the suitable parts to CLOS now, so my namings accidentally change time to time in discussion, because they don't yet exist, sorry for that 2015-12-27T13:43:44Z kenanb: beach: they do exactly that, also they actually define the subclass ofcourse 2015-12-27T13:43:52Z beach: Sure. 2015-12-27T13:44:10Z beach: Presumably, several different plugins can register the same filename extensions? 2015-12-27T13:44:12Z angavrilov_ is now known as angavrilov 2015-12-27T13:44:15Z cmack quit (Ping timeout: 240 seconds) 2015-12-27T13:44:49Z voidengineer quit (Remote host closed the connection) 2015-12-27T13:46:25Z kenanb: yes, the complications of such scenarios will not be handled by the actual system, the first match will be created, that is the reason they are regexps instead of simply extensions, so people who write plugins can go more specific than only extension, or the user can modify it to be more specific. 2015-12-27T13:47:14Z beach: kenanb: Alternatively, instantiating the class could be done by the plugin itself, so that the registry contains functions. GENERATE would just call each function with the filename extension, and if the function returns something other than NIL, then it is the class instance to use. And the central logic would not have to care about subclass names and such. 2015-12-27T13:48:15Z MoALTz quit (Ping timeout: 240 seconds) 2015-12-27T13:50:42Z kenanb: beach: yes, you are right. and that is the reason I was asking the question, to learn if there is already a suitable mechanism for such alternative. 2015-12-27T13:50:51Z lisse left #lisp 2015-12-27T13:54:45Z kenanb: beach: I already implemented the registry, and it works, but I want to do the most suitable way, so I was thinking maybe there already is a mechanism that can do what my registry does. registering lambdas that makes instances if their corresponding predicates are true is looking very much like HOOKS kind of system. 2015-12-27T13:56:23Z luckyLuke joined #lisp 2015-12-27T13:56:24Z setheus quit (Ping timeout: 245 seconds) 2015-12-27T13:56:34Z kenanb: beach: sometimes there is this thing everybody use for such functionality but I am unaware of it so I implement it myself, I felt this might be one of those times, so I asked. :) But I think CL doesn't provide something exactly like hooks by default. 2015-12-27T13:56:42Z EvW quit (Ping timeout: 255 seconds) 2015-12-27T13:57:23Z beach: That's true. And it would probably be hard to define exactly what a "hook" is, which is probably why there is no general mechanism. 2015-12-27T13:58:40Z setheus joined #lisp 2015-12-27T13:59:03Z Guest34080 is now known as CrazEd 2015-12-27T13:59:32Z CrazEd is now known as Guest6223 2015-12-27T14:00:34Z atgreen joined #lisp 2015-12-27T14:01:36Z kenanb: beach: yeah, it is kind of an adhoc idea itself. I don't know much about them but maybe I can exploit condition system :D 2015-12-27T14:02:25Z beach: My first reaction is that such a solution would be overkill. 2015-12-27T14:02:34Z AlphaAtom joined #lisp 2015-12-27T14:02:38Z kenanb: or maybe I have no idea what I just said, I will read about conditions now 2015-12-27T14:03:03Z darlinger joined #lisp 2015-12-27T14:03:08Z kenanb: beach: then I will probably stick to the current registry solution or your alternative. 2015-12-27T14:03:11Z luis joined #lisp 2015-12-27T14:03:21Z jself joined #lisp 2015-12-27T14:03:26Z beach: kenanb: A similar problem exists in (for instance) McCLIM when we want to read an image file and associated a file reader with it. My memory is that the solution that was chosen is quite ad hoc as well. 2015-12-27T14:03:32Z dlowe joined #lisp 2015-12-27T14:06:07Z EvW joined #lisp 2015-12-27T14:06:57Z mtl joined #lisp 2015-12-27T14:07:07Z ec joined #lisp 2015-12-27T14:07:44Z jself quit (Ping timeout: 246 seconds) 2015-12-27T14:07:55Z darlinger quit (Ping timeout: 260 seconds) 2015-12-27T14:07:57Z kenanb: beach: wow, nice real life example, I will check that as well, thank you :) your alternative gives more flexibility, putting slightly extra work on the shoulders of the plugin writer in return. I will use yours if I realize plugin writers will actually use that extra bit of flexibility. 2015-12-27T14:08:05Z luis quit (Ping timeout: 246 seconds) 2015-12-27T14:08:26Z beach: Sounds quite reasonable to me. 2015-12-27T14:08:26Z dlowe quit (Ping timeout: 246 seconds) 2015-12-27T14:11:15Z ec quit (Ping timeout: 240 seconds) 2015-12-27T14:11:16Z kenanb: beach: btw this is a convenience tool, generating dummy assets on the fly, I wrote a whole Emacs Lisp version of this thing besides the CL version, thinking it would not be convenient for an interactive convenience tool to constantly try to interact with an outside program to do its work 2015-12-27T14:11:59Z Jesin quit (Quit: Leaving) 2015-12-27T14:12:00Z mtl quit (Ping timeout: 260 seconds) 2015-12-27T14:12:44Z kenanb: beach: then after I am finished, I realized I have been interacting with that exact outside program from inside Emacs the whole time I have been developing the thing, we have SLIME! 2015-12-27T14:13:16Z beach: I see, yes. 2015-12-27T14:14:16Z kenanb: so now I will strip the ELisp version from the duplicated functionality, just leaving the interface code, and use slime to interact with CL version. 2015-12-27T14:14:19Z beach: I know what you mean. Very very often I only realize a better solution after I have put in a considerable amount of work on a lesser one. 2015-12-27T14:14:33Z pwnie joined #lisp 2015-12-27T14:16:46Z Petit_Dejeuner: Oh, now http://bauhh.dyndns.org/ is down. 2015-12-27T14:17:43Z Petit_Dejeuner: Guess I should have downloaded all the CLIM documentation while I had the chance. 2015-12-27T14:18:16Z kenanb: beach: yes, with CL, there is always area for improvement. :) Anyway, thank you very much for all the pointers and help, and especially for really trying to help. 2015-12-27T14:19:31Z cadadar joined #lisp 2015-12-27T14:20:46Z ajf- quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T14:23:02Z BitPuffin|osx joined #lisp 2015-12-27T14:24:46Z pwnie quit (Ping timeout: 240 seconds) 2015-12-27T14:25:38Z pwnie joined #lisp 2015-12-27T14:27:34Z beach: Petit_Dejeuner: I have a copy somewhere, but it does not have the annotation extension that gilberth's version does. 2015-12-27T14:28:02Z beach: kenanb: Sure. And thanks for your patience. 2015-12-27T14:28:11Z Guest61679 quit (Ping timeout: 255 seconds) 2015-12-27T14:28:42Z Petit_Dejeuner: beach: I guess I'll just take a break then. Thanks anyway. 2015-12-27T14:29:04Z beach: OK, good. :) We'll follow that option if it is going to be down a long time. 2015-12-27T14:29:41Z Petit_Dejeuner: Now I'm worried. 2015-12-27T14:29:59Z beach: No reason a priory. 2015-12-27T14:34:30Z beach: Petit_Dejeuner: The TeX source code for the spec is in the McCLIM distribution. You can generate a PDF from that while waiting. 2015-12-27T14:36:27Z Petit_Dejeuner: thanks 2015-12-27T14:37:29Z learning joined #lisp 2015-12-27T14:38:58Z LiamH joined #lisp 2015-12-27T14:42:08Z pwnie quit (Ping timeout: 255 seconds) 2015-12-27T14:42:55Z learning quit (Ping timeout: 240 seconds) 2015-12-27T14:44:27Z fantazo quit (Quit: Verlassend) 2015-12-27T14:46:45Z Joreji joined #lisp 2015-12-27T14:47:02Z darlinger joined #lisp 2015-12-27T14:47:12Z luis` joined #lisp 2015-12-27T14:47:15Z jself joined #lisp 2015-12-27T14:47:31Z dlowe joined #lisp 2015-12-27T14:48:11Z briankrent joined #lisp 2015-12-27T14:48:24Z ec joined #lisp 2015-12-27T14:49:08Z beach: Is there a technical reason why TRACE doesn't produce presentations when printing stuff to a SLIME REPL buffer? 2015-12-27T14:49:11Z axion joined #lisp 2015-12-27T14:49:33Z mtl joined #lisp 2015-12-27T14:50:11Z BitPuffin|osx: what's the difference in meaning between (mapcar (lambda (x) (princ x)) '(1 2 3)) and (mapcar #'(lambda (x) (princ x)) '(1 2 3)) 2015-12-27T14:50:51Z emma joined #lisp 2015-12-27T14:50:51Z emma quit (Changing host) 2015-12-27T14:50:51Z emma joined #lisp 2015-12-27T14:50:51Z beach: BitPuffin|osx: (LAMBDA ...) is a macro that expands to #(LAMBDA ...) 2015-12-27T14:51:07Z j0ni joined #lisp 2015-12-27T14:51:17Z beach: Er, #'(LAMBDA ...) 2015-12-27T14:52:14Z beach: BitPuffin|osx: You can consider #'(LAMBDA ...) as being something internal to the implementation and never use it. 2015-12-27T14:52:16Z BitPuffin|osx: oh.. 2015-12-27T14:52:32Z BitPuffin|osx: but yeah :' gives you the function namespace 2015-12-27T14:52:35Z BitPuffin|osx: but lambdas are unnamed 2015-12-27T14:53:02Z BitPuffin|osx: #' I mean 2015-12-27T14:53:19Z beach: There is no such thing as "a lambda". The form (LAMBDA ...) is a function constructor. 2015-12-27T14:53:19Z BitPuffin|osx: beach: but yeah I saw #'(lambda ..) in onlisp 2015-12-27T14:53:51Z mwehner joined #lisp 2015-12-27T14:54:17Z BitPuffin|osx: beach: okay, so it generates a name for the function? 2015-12-27T14:54:25Z beach: BitPuffin|osx: #' is a reader macro that turns #'X into (FUNCTION X) for an expression X. 2015-12-27T14:55:05Z beach: No, just like (cons 1 2) constructs a cons cell with no name, (lambda ...) constructs a function with no name. 2015-12-27T14:55:43Z beach: The idea that functions must have names is a strange one, and probably due to exposure to languages where this somehow is necessary. 2015-12-27T14:55:51Z Mandus quit (Ping timeout: 260 seconds) 2015-12-27T14:56:21Z Mandus joined #lisp 2015-12-27T14:56:29Z BitPuffin|osx: beach: no I am quite used to unnamed functions 2015-12-27T14:56:50Z BitPuffin|osx: but I thought #' or (function ...) was meant to access things in the function namespace 2015-12-27T14:57:17Z beach: It does, when the argument is something other than (LAMBDA ...). 2015-12-27T14:57:19Z BitPuffin|osx: so that (lambda ..) expands to #'(lambda ...) made me confused 2015-12-27T14:57:36Z BitPuffin|osx: hm 2015-12-27T14:57:44Z beach: The special operator FUNCTION has a special case, namely when the argument is a lambda expression. 2015-12-27T14:57:52Z beach: clhs function 2015-12-27T14:57:52Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/a_fn.htm 2015-12-27T14:58:05Z sbryant quit (Ping timeout: 245 seconds) 2015-12-27T14:58:16Z BitPuffin|osx: function isn't a macro is it? 2015-12-27T14:58:18Z beach: "name---a function name or lambda expression." 2015-12-27T14:58:32Z theBlackDragon quit (Ping timeout: 250 seconds) 2015-12-27T14:58:32Z beach: No, it is a special operator. 2015-12-27T14:58:37Z BitPuffin|osx: yeah I see 2015-12-27T14:58:49Z theBlackDragon joined #lisp 2015-12-27T14:58:50Z zbigniew quit (Ping timeout: 246 seconds) 2015-12-27T14:58:55Z sshirokov quit (Ping timeout: 245 seconds) 2015-12-27T14:59:04Z BitPuffin|osx: interesting 2015-12-27T14:59:15Z mordocai quit (Ping timeout: 260 seconds) 2015-12-27T14:59:16Z beach: Consider it a kludge, and forget that special case and always use (LAMBDA ...) 2015-12-27T14:59:30Z beach: ... as if LAMBDA were not a macro but a special operator. 2015-12-27T14:59:53Z Jesin joined #lisp 2015-12-27T15:00:30Z BitPuffin|osx: yeah that's what I've been doing so far 2015-12-27T15:00:36Z beach: Good! :) 2015-12-27T15:00:42Z BitPuffin|osx: I guess I don't exactly understand why it needs the special case 2015-12-27T15:00:48Z beach: And be careful with the style of Paul Graham. 2015-12-27T15:01:03Z beach: For hysterical reasons. :) 2015-12-27T15:01:04Z BitPuffin|osx: oh? 2015-12-27T15:01:14Z BitPuffin|osx: I thought he was well regarded 2015-12-27T15:01:29Z beach: His style is very strange. And he doesn't like CLOS. 2015-12-27T15:01:49Z beach: But, if you take that into account, he can teach you lots of things. 2015-12-27T15:02:52Z Mon_Ouie quit (Ping timeout: 250 seconds) 2015-12-27T15:02:58Z BitPuffin|osx: I don't know if I like clos 2015-12-27T15:03:03Z BitPuffin|osx: I don't know it well enough 2015-12-27T15:03:13Z BitPuffin|osx: I'm not a big oop guy though 2015-12-27T15:03:18Z beach: You will once you do. 2015-12-27T15:03:28Z kenanb: BitPuffin|osx: might be a misleading idea, pardon me if so, but probably it doesn't actually need that special case. Did you try running code without it? 2015-12-27T15:03:30Z BitPuffin|osx: but it's probably better OOP than what you found in the typical languages we use 2015-12-27T15:03:54Z BitPuffin|osx: kenanb: no I didn't try changing my common lisp implementation to not have that special case 2015-12-27T15:04:33Z kenanb: BitPuffin|osx: no I mean the code example will probably work with just (lambda () ...) without the #' 2015-12-27T15:05:29Z BitPuffin|osx: oh yeah, no it probably does, I was just trying to figure out the difference 2015-12-27T15:06:53Z EvW quit (Ping timeout: 255 seconds) 2015-12-27T15:08:56Z kenanb: BitPuffin|osx: IMHO OOP is just a tool, as all tools. There are cases it fits perfectly, and there are cases others paradigms fit better. The good thing is CL doesn't mandate a particular paradigm, it rather provides you with really powerful versions of all general use paradigms, and lets you decide. 2015-12-27T15:10:39Z BitPuffin|osx: yeah I agree with that 2015-12-27T15:11:01Z BitPuffin|osx: although it doesn't let you do data oriented without calling out to C 2015-12-27T15:11:14Z fourier quit (Remote host closed the connection) 2015-12-27T15:11:45Z Petit_Dejeuner: SICP does the best job of explaining what OOP is of anything I've read. 2015-12-27T15:12:08Z malbertife quit (Ping timeout: 276 seconds) 2015-12-27T15:12:37Z BitPuffin|osx: didn't know that sicp covered oop? 2015-12-27T15:12:51Z Petit_Dejeuner: The chapter on data abstraction, chapter II IIRC. 2015-12-27T15:13:12Z Petit_Dejeuner: I'm not even sure they ever use the term OOP. 2015-12-27T15:13:19Z beach: The problem here is that there is not general agreement about the definition of object-oriented programming. I consider it a mistake to go from CLOS to object-oriented programming, only to then have negative opinions of CLOS based on some more restricted definition of object-oriented programming. 2015-12-27T15:13:48Z Petit_Dejeuner: Right. 2015-12-27T15:14:13Z BitPuffin|osx: I guess whatever smalltalk does is oop 2015-12-27T15:14:14Z kenanb: And also these paradigms are designed in CL to work pretty nicely together. So I don't see much reason to not like a particular paradigm provided in CL. People's dislike of paradigms usually are rooted in constantly seeing their misuse by other people, usually because a particular language mandates users to do so, and they bring those habits to everywhere. 2015-12-27T15:14:44Z Petit_Dejeuner is reminded that some poor soul is taking a AP highschool class or undergraduate computer science course and is being forced to remember "definitions" of terms like "OOP" and "scripting language". 2015-12-27T15:16:23Z beach: kenanb: Right, and also because what is mandated comes with restrictions based on some conviction by the author and those restrictions are not necessarily intrinsic. 2015-12-27T15:16:44Z Petit_Dejeuner: BitPuffin|osx: The OOP SICP teaches is universal. "Hey, working directly with bytes/cons/arrays is a pain. Lets define some functions/procedures/methods/subroutines and use them to operate on the data exclusively. Now we never have to worry about the implementation ever again. 2015-12-27T15:16:46Z Petit_Dejeuner: " 2015-12-27T15:16:54Z mood: BitPuffin|osx: Could you explain Data Oriented Programming? What I find on the web seems very vague and doesn't show anything you couldn't do in CL 2015-12-27T15:18:07Z kenanb: beach: exactly. 2015-12-27T15:18:57Z ggole__ joined #lisp 2015-12-27T15:19:03Z Petit_Dejeuner wonders how many books there are that write about the THREE PILLARS OF OOP; encapsulation, inheritance, and polymorphism 2015-12-27T15:19:33Z ggole_ quit (Ping timeout: 265 seconds) 2015-12-27T15:19:39Z FreeBirdLjj quit (Remote host closed the connection) 2015-12-27T15:20:52Z ajf- joined #lisp 2015-12-27T15:21:35Z BitPuffin|osx: mood: basically have very good control over data layout and where in memory something lives. So for example creating a big array of things that you can iterate over in a cache friendly way. And also be able to get a pointer to an element from there 2015-12-27T15:22:57Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T15:23:07Z BitPuffin|osx: Petit_Dejeuner: yeah, still need to read sicp 2015-12-27T15:23:11Z schaueho joined #lisp 2015-12-27T15:26:43Z AlphaAtom joined #lisp 2015-12-27T15:27:00Z Petit_Dejeuner quit (Ping timeout: 256 seconds) 2015-12-27T15:27:35Z atgreen quit (Quit: Leaving) 2015-12-27T15:27:36Z kenanb: Language designers design languages with particular motivations even though they are usually called general purpose in marketing stage. Being as powerful as it can be and very expressive is not usually the main motivation, making them trivial to make decisions in terms of so the development can be done quickly with fair flexibility, or making them as fast as possible, are more common. Then the userbase makes the language they spent 2015-12-27T15:27:36Z kenanb: years learning part of their identity, and don't accept any labels to be absent from their identity so they argue it is "really powerful" or "fast" while it is not, which is not necessarily a bad thing. Programming language is a tool itself. 2015-12-27T15:28:28Z atgreen joined #lisp 2015-12-27T15:29:44Z mikaelj quit (Remote host closed the connection) 2015-12-27T15:30:55Z Zhivago: More to the point, language design is overwhelmingly reactionary. 2015-12-27T15:31:28Z beach: kenanb: And if the users in the user base should be exposed to something more powerful, they then must reject it as "too powerful", "dangerous", "kitchen sink", "weird syntax", or whatever. 2015-12-27T15:31:38Z Zhivago: Designers are usually motivated to try to fix some problem that occurs in the languages they work with. 2015-12-27T15:32:00Z kenanb: CL is incredibly powerful and expressive, and fast. But it puts the burden of chosing the most suitable tool in the toolbox on your shoulders. If you need those properties and can live with constantly making decisions among a big toolset, it is great, otherwise, there are also fairly powerful alternatives that doesn't make you decide, mandating a particular approach. And there are also alternatives that just prevent you from making 2015-12-27T15:32:00Z kenanb: decisions by mandating on tools that actually literally suck, but I will stop ranting now. 2015-12-27T15:32:42Z beach: Zhivago: Interesting insight. 2015-12-27T15:32:43Z Zhivago: Actually, CL has relatively few positive distinguishing features, these days. 2015-12-27T15:33:25Z beach: Zhivago: Only if you allow yourself to compare it to the union of several other languages. 2015-12-27T15:33:56Z beach: X has this, Y has that, Z has something else, but the combination of features is still unique. 2015-12-27T15:34:40Z Zhivago: And those probably fall into a few baskets -- macros, generic functions, conditions, special variables. 2015-12-27T15:35:17Z beach: First-class packages, exact rational arithmetic. 2015-12-27T15:35:53Z kenanb: beach: I was just going to say what makes CL still an incredibly good alternative is the synergy emerging from providing a very good combination of them, but you said it already :) 2015-12-27T15:35:54Z Zhivago: Packages as realized in CL are pretty dodgy. 2015-12-27T15:36:27Z beach: kenanb: Yeah. 2015-12-27T15:36:36Z Joreji quit (Ping timeout: 272 seconds) 2015-12-27T15:37:23Z Zhivago: The export of names rather than identifiers is particularly problematic, and then there's the flatness, and so on. 2015-12-27T15:37:53Z ssake joined #lisp 2015-12-27T15:38:04Z Zhivago: I'd put them under 'expedient hack' rather than 'good idea'. 2015-12-27T15:38:04Z wildlander joined #lisp 2015-12-27T15:38:05Z wildlander quit (Max SendQ exceeded) 2015-12-27T15:38:44Z wildlander joined #lisp 2015-12-27T15:39:03Z BitPuffin|osx: gotta go! thanks for the talk 2015-12-27T15:39:22Z Zhivago: Anyhow, I'd put all talk of 'power' or 'expressivity' under 'propaganda' and move on. 2015-12-27T15:40:15Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T15:40:28Z cmack joined #lisp 2015-12-27T15:41:00Z Bicyclidine quit (Ping timeout: 250 seconds) 2015-12-27T15:43:59Z BitPuffin|osx quit (Ping timeout: 276 seconds) 2015-12-27T15:45:20Z cmack quit (Ping timeout: 250 seconds) 2015-12-27T15:48:03Z AlphaAtom joined #lisp 2015-12-27T15:48:04Z kenanb: Zhivago: Well, I said there are also good alternatives if your needs are different, and I didn't say CL is the only alternative that excels on those points, I didn't even check the alternatives thoroughly, I just said CL is really good in its own area, which is probably why we are all here. But I am in favor of putting them under propoganda, too, so I don't accidentally flame the channel. 2015-12-27T15:51:47Z dkcl quit (Read error: Connection reset by peer) 2015-12-27T15:52:11Z dkcl joined #lisp 2015-12-27T15:53:05Z cadadar left #lisp 2015-12-27T15:54:48Z prxq: kenanb: i disagree. Zhivago has a lot of dodgy thoughths and weird points of view. It's ok to talk about the power and expresivity of lisp, as it really is not only propaganda. 2015-12-27T15:55:05Z mordocai joined #lisp 2015-12-27T15:55:32Z k-stz joined #lisp 2015-12-27T15:56:14Z sshirokov joined #lisp 2015-12-27T15:56:17Z sbryant joined #lisp 2015-12-27T15:57:10Z zbigniew joined #lisp 2015-12-27T16:01:50Z Zhivago: Sure -- so what are your metrics for power and expressivity? :) 2015-12-27T16:02:22Z pjb: You can have a script: #!/bin/sh \n cat - | curl -F 'sprunge=<-' http://sprunge.us 2015-12-27T16:02:53Z pjb: so you may easily send sources or pasteboards to sprunge: paste | sprunge ; sprunge < example.lisp 2015-12-27T16:02:59Z Petit_Dejeuner joined #lisp 2015-12-27T16:03:22Z ajf- quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T16:03:34Z kenanb: prxq: It actually felt good to be labeled as a CL propagator, because tomorrow I have a meeting where they will ask me to write Python for the next 6 months or so. So thanks Zhivago :) 2015-12-27T16:03:49Z ajf- joined #lisp 2015-12-27T16:04:06Z Petit_Dejeuner: "labeled as a CL propogator" Does that mean "lisp weenie"? 2015-12-27T16:04:11Z Zhivago: Well, at least it isn't ruby. 2015-12-27T16:04:31Z pjb: kenanb: you can spend new year even writing a sexpified python layer (cf. eg. liskell). 2015-12-27T16:04:45Z pjb: s/even/eve/ 2015-12-27T16:06:05Z Petit_Dejeuner: Include lots of superflous parens to mess with them. https://www.refheap.com/7845b6ca0a698113d5e372cac 2015-12-27T16:08:24Z kenanb: pjb: actually, people already did that. It is called Hy, and I mainly work on systems that heavily rely on Blender 3D, so I once wrote a Hy plugin for Blender, so I can script it with Lisp instead of Python, but that was not the most feasible of production ideas really, as you geniunely pointed out with sarcasm :) 2015-12-27T16:10:02Z kenanb: Zhivago: well, I am totally ok with writing Python as long as it fits the job. I can't say much about ruby. 2015-12-27T16:10:47Z lurker left #lisp 2015-12-27T16:11:35Z harish joined #lisp 2015-12-27T16:11:36Z attila_lendvai quit (Read error: Connection reset by peer) 2015-12-27T16:12:40Z moore33: The divide between scripting and "hard core" implementation languages in projects like Blender and Freecad is what is motivating me to do graphics work in Lisp. 2015-12-27T16:12:45Z attila_lendvai joined #lisp 2015-12-27T16:12:45Z attila_lendvai quit (Changing host) 2015-12-27T16:12:45Z attila_lendvai joined #lisp 2015-12-27T16:13:53Z pjb: beach: It looks like only the results of expressions evaluated by slime REPL will be made into presentations: it has nothing to do with printing AFAICS. 2015-12-27T16:14:39Z pjb: kenanb: I didn't mean a lisp implemented in python. 2015-12-27T16:15:42Z beach: pjb: Right, I was wondering whether the SLIME people didn't make trace output turn into presentations for some technical reason, or whether it is just the case that nobody thought about it. 2015-12-27T16:15:56Z pjb: kenanb: sexpifying a languages means that you define a sexp form for that language, and write a lisp too to convert this sexp form into the original syntax. This allows lispers to write code for that language using the familiar sexp forms and lisp-mode editing. Additionnaly, this may allow using macros (and full lisp in macros) to generate code for that language. 2015-12-27T16:16:16Z pjb: kenanb: an example is parenscript -> javascript; another liskell -> haskell; etc. 2015-12-27T16:17:14Z pjb: beach: also, TRACE is implementation specific, it would be difficult to make the wanted presentations. They could provide a swank:trace instead. 2015-12-27T16:18:18Z kenanb: moore33: Well, for most automation functionality you quickly want to add to Blender, Python works fairly well, and the API is good. The problem arises when you actually want to process model data, textures or similar media inside Blender, which occasionally happens, and then you experience what a scripting language really means in terms of performance. 2015-12-27T16:18:27Z schaueho quit (Ping timeout: 260 seconds) 2015-12-27T16:18:59Z pjb: beach: since we have full bidirectional RPC between CL and emacs lisp with slime/swank, we could create and insert slime presentations from any CL function. The first time it might be tedious. 2015-12-27T16:19:14Z moore33: kenanb: It's not just the performance, it's also the conceptual load of switching between different languages. 2015-12-27T16:20:18Z znpy joined #lisp 2015-12-27T16:20:25Z pjb: beach: the only function/closure contructor is actually CL:FUNCTION, (it's not lambda). 2015-12-27T16:20:58Z kenanb: pjb: ah, I see. Yeah, you are right, Hy directly translates to Python AST, it doesn't generate Python code. 2015-12-27T16:21:08Z beach: kenanb: I think that is a general problem with writing software using one static language and one slow dynamic language. 2015-12-27T16:22:12Z beach: pjb: That's why I said to think "as if" lambda were the function constructor. 2015-12-27T16:22:46Z moore33: It's hip and new to not write the "function" anymore. 2015-12-27T16:23:33Z kenanb: beach: indeed. 2015-12-27T16:25:44Z beach: moore33: I suspect "hip" is not hip anymore. :) 2015-12-27T16:25:56Z learning joined #lisp 2015-12-27T16:26:03Z kenanb: moore33: there was Mirai, which was just incredible. It was on top of Allegro, which AFAIK what made the licence fee of the software unable to compete with alternatives. 2015-12-27T16:26:35Z Guest20174 quit (Ping timeout: 264 seconds) 2015-12-27T16:26:52Z kenanb: moore33: the software price was Allegro + Mirai. 2015-12-27T16:28:41Z pjb: Petit_Dejeuner: it's not very practical to just add parentheses in Python because of the distinction expression/statement. In ruby on the other hand, it's perfectly valid (there are only expressions). 2015-12-27T16:28:50Z moore33: kenanb: I would bet more on the fee being based on the margin they had come to expect. Allegro's cut is quite flexible, iirc. 2015-12-27T16:28:52Z pjb: Petit_Dejeuner: the thing is that they don't let you commit such code! 2015-12-27T16:29:09Z pjb: Petit_Dejeuner: so you still need a sexpification with a desexpifier. 2015-12-27T16:30:26Z jtza8 quit (Ping timeout: 272 seconds) 2015-12-27T16:30:35Z learning quit (Ping timeout: 260 seconds) 2015-12-27T16:31:07Z Karl_Dscc quit (Quit: Leaving) 2015-12-27T16:31:22Z sz0 joined #lisp 2015-12-27T16:31:27Z kenanb: moore33: Currently it is, I don't know if it was as flexible in 95. I don't know, maybe it is misinformation. But Mirai was so good that CG industry would probably be dominated with very different software than it is now, if it didn't lose to competitor pricing. 2015-12-27T16:33:04Z moore33: kenanb: That was about the time that Alias, Wavefront and SoftImage were bought by companies with a lot of resources... 2015-12-27T16:33:11Z moore33: Off to shave. 2015-12-27T16:33:23Z kenanb: yep 2015-12-27T16:35:06Z Guest20174 joined #lisp 2015-12-27T16:35:07Z puchacz quit (Quit: Konversation terminated!) 2015-12-27T16:35:10Z EvW joined #lisp 2015-12-27T16:38:09Z puchacz joined #lisp 2015-12-27T16:41:50Z diginet_ quit (Quit: diginet has quit!) 2015-12-27T16:42:13Z diginet joined #lisp 2015-12-27T16:48:22Z Karl_Dscc joined #lisp 2015-12-27T16:50:13Z pjb: beach: http://www.theguardian.com/world/2015/dec/27/north-koreas-computer-operating-system-revealed-by-researchers?CMP=twt_gu#maincontent 2015-12-27T16:52:00Z beach: Interesting. 2015-12-27T16:52:06Z beach: ... sort of. :) 2015-12-27T16:52:11Z Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2015-12-27T16:53:53Z moore33 quit (Quit: Leaving) 2015-12-27T16:56:40Z learning joined #lisp 2015-12-27T16:59:17Z Bicyclidine joined #lisp 2015-12-27T17:01:31Z Xach has an old Alias|Wavefront SGI hat 2015-12-27T17:05:58Z jtza8 joined #lisp 2015-12-27T17:06:10Z fourier joined #lisp 2015-12-27T17:07:06Z p_l: I suspect that the fact that north-korean "internet" is a flat 10.0.0.0/8 space might have more to do with it than RedStar 2015-12-27T17:10:48Z attila_lendvai: luis`: ping 2015-12-27T17:10:48Z minion: attila_lendvai, memo from PuercoPop: I was wondering what is(will be?) the differente between cl-sdl2 and hu.dwim.sdl? 2015-12-27T17:11:21Z attila_lendvai: PuercoPop: the main difference is that hu.dwim.sdl will only target/need CFFI, not cl-autowrap 2015-12-27T17:13:27Z pjb: beach: too bad you couldn't advise them to do it in lisp ;-) 2015-12-27T17:14:15Z EvW quit (Ping timeout: 255 seconds) 2015-12-27T17:15:21Z pjb: beach: by the way, any repercutions from your lisp evangelization work in Vietnam? 2015-12-27T17:27:29Z MoALTz joined #lisp 2015-12-27T17:30:02Z MrWoohoo quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-12-27T17:30:02Z MrWoohoo2 quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2015-12-27T17:30:56Z EvW joined #lisp 2015-12-27T17:32:10Z fsmunoz joined #lisp 2015-12-27T17:34:28Z ajf- quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T17:36:02Z ajf- joined #lisp 2015-12-27T17:41:19Z cmack joined #lisp 2015-12-27T17:42:22Z beach: pjb: I don't think so, unfortunately. But my offer (that I haven't officially presented) is still valid, i.e., to turn Vietnam into the world's most productive country when it comes to software design and construction. 2015-12-27T17:43:05Z beach: I country like Vietnam could actually do it, because the government is in charge of the teaching program in every school and most universities. 2015-12-27T17:45:55Z cmack quit (Ping timeout: 240 seconds) 2015-12-27T17:48:03Z bcoburn_m quit (Ping timeout: 260 seconds) 2015-12-27T17:49:33Z attila_lendvai: PuercoPop: I'm wondering, how did you get to know about hu.dwim.sdl? 2015-12-27T17:49:56Z Lord_of_Life quit (Excess Flood) 2015-12-27T17:50:06Z Lord_of_Life joined #lisp 2015-12-27T17:50:17Z attila_lendvai: beach: I concur. that's exactly why they *cannot* do it... :) 2015-12-27T17:51:44Z AlphaAtom quit (Ping timeout: 246 seconds) 2015-12-27T17:51:58Z attila_lendvai: beach: but if you are telling us to move to vietnam and do and talk a lot about programming and see what happens... now, that sounds more tempting... :) heard that it's a cheap place and people are nice 2015-12-27T17:52:01Z beach: attila_lendvai: I think you may have the wrong impression of Vietnam, the Vietnamese, and their government. 2015-12-27T17:52:20Z _sjs joined #lisp 2015-12-27T17:52:20Z ajf- quit (Quit: Textual IRC Client: www.textualapp.com) 2015-12-27T17:52:27Z beach: attila_lendvai: Aha! They are very nice to foreigners. 2015-12-27T17:52:51Z beach: attila_lendvai: But devastatingly harsh to one another. 2015-12-27T17:53:09Z attila_lendvai: one must wonder how that can be after all the crap they got from some foreigners... 2015-12-27T17:53:12Z beach: And that might be the main obstacle to any success of any Vietnamese endeavor. 2015-12-27T17:53:23Z beach: Somehow that seems to unite them. 2015-12-27T17:53:43Z beach: Maybe software development could be phrased in those terms. :) 2015-12-27T17:54:00Z beach: Beat the hell out of the Chinese. That should turn into national unity. 2015-12-27T17:55:18Z attila_lendvai: see, that's the problem I see: it's more of a creative process than beating the hell out of yourself until all the threes fall. government decrees can rarely catalyze the former and often turn into the latter 2015-12-27T17:55:20Z znpy quit (Ping timeout: 250 seconds) 2015-12-27T17:55:31Z attila_lendvai: s/threes/trees/ 2015-12-27T17:56:48Z ajf- joined #lisp 2015-12-27T17:56:53Z beach: attila_lendvai: The north and the south are very different. Mostly in the south, they don't give a shit about national politics, except that they have to implement the laws made by the north of course. 2015-12-27T17:57:31Z beach: Exposure to one programming language rather than another could therefore make a difference. 2015-12-27T17:57:56Z beach: All speculation of course. 2015-12-27T18:00:22Z varjagg joined #lisp 2015-12-27T18:02:33Z beach: attila_lendvai: Have you spent some time there? 2015-12-27T18:03:12Z AlphaAtom joined #lisp 2015-12-27T18:04:22Z attila_lendvai: beach: not yet, but it's not off the list. I'm just reading a book on trauma, and some stories of some US soldiers and their PTSD... that place must be full of traumatized people. 2015-12-27T18:04:23Z beach: attila_lendvai: The creative processes of western society has left us with the Human computing system that Fare so nicely criticizes. 2015-12-27T18:04:35Z attila_lendvai: hehh, fair enough :) 2015-12-27T18:04:58Z beach: attila_lendvai: Actually, the place is full of very young people who know nothing about the war(s). 2015-12-27T18:06:01Z beach: I can highly recommend it. And if you need advice and/or contacts, just let me know. 2015-12-27T18:06:25Z attila_lendvai: beach: that's one step better, but these traumas echo through generations. but I'd be more than happy to believe you that the prediction of my model of reality is inaccurate 2015-12-27T18:07:12Z ggole__ quit 2015-12-27T18:07:17Z attila_lendvai: hrm, thanks! I could certainly use a bit of change... 2015-12-27T18:09:35Z beach: It is a very easy place to visit. Very safe. Very welcoming. 2015-12-27T18:10:30Z znpy joined #lisp 2015-12-27T18:12:44Z beach: ... and [to get back on topic] you can use my CLIM application TransClime to learn the language. :) 2015-12-27T18:13:40Z beach: https://github.com/robert-strandh/TransClime 2015-12-27T18:14:24Z luckyLuke quit (Ping timeout: 250 seconds) 2015-12-27T18:15:47Z jtza8 quit (Ping timeout: 264 seconds) 2015-12-27T18:17:39Z smokeink quit (Ping timeout: 245 seconds) 2015-12-27T18:17:56Z smokeink joined #lisp 2015-12-27T18:18:04Z warweasle joined #lisp 2015-12-27T18:18:21Z lmj joined #lisp 2015-12-27T18:20:46Z troydm joined #lisp 2015-12-27T18:23:22Z voidengineer joined #lisp 2015-12-27T18:23:30Z znpy quit (Ping timeout: 245 seconds) 2015-12-27T18:23:46Z zadock joined #lisp 2015-12-27T18:24:47Z lmj: The only way I know of (cleanly) requiring a minimum version of a library is to define peform :before perform-op and then check version-satisfies. But perform-op was only introduced in 2012, after the asdf version in quicklisp. 2015-12-27T18:25:03Z otwieracz: CLIM is still alive? 2015-12-27T18:25:09Z Warlock[29A] quit (Read error: Connection reset by peer) 2015-12-27T18:25:14Z otwieracz: Last time I was looking McCLIM sites were dead. 2015-12-27T18:25:36Z lmj: So I don't know of any clean way to do this. Writing (unless (version-satisfies...)) directly in the .asd file does not prevent the project from compiling and loading. 2015-12-27T18:25:43Z zadock quit (Remote host closed the connection) 2015-12-27T18:25:48Z lmj: Or attempting to do so. 2015-12-27T18:26:54Z lmj: It's baffling that version-satisfies has been presence since forever, yet apparently no good way to use it until 2012. 2015-12-27T18:26:59Z beach: otwieracz: You looked in the wrong place. 2015-12-27T18:27:00Z lmj: *present 2015-12-27T18:27:06Z otwieracz: beach: maybe! 2015-12-27T18:27:24Z luckyLuke joined #lisp 2015-12-27T18:27:58Z beach: It is not *terribly* active, but I am working on it: https://github.com/robert-strandh/McCLIM 2015-12-27T18:28:22Z lmj: One might think that perform :before compile-op runs before compilation, but you'd be wrong. 2015-12-27T18:32:40Z luckyLuke left #lisp 2015-12-27T18:32:41Z attila_lendvai quit (Read error: Connection reset by peer) 2015-12-27T18:33:24Z beach: otwieracz: Also, I just recently published a few CLIM applications: https://github.com/robert-strandh/Compta (a complete accounting system in 400 lines of code), https://github.com/robert-strandh/TransClime (an application for learning languages, in particular Vietnamese), and https://github.com/robert-strandh/CLIM-demo-adventure (a demo application to show the features of CLIM). 2015-12-27T18:33:52Z beach: otwieracz: More are coming in the near future. 2015-12-27T18:34:11Z otwieracz: cool 2015-12-27T18:34:59Z beach: I am determined to change the idea that CLIM is dead and that McCLIM is crap. They are both very far from the truth. 2015-12-27T18:35:01Z attila_lendvai joined #lisp 2015-12-27T18:35:01Z attila_lendvai quit (Changing host) 2015-12-27T18:35:01Z attila_lendvai joined #lisp 2015-12-27T18:35:38Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T18:35:39Z nyef: "CLIM isn't dead, it just smells funny"? 2015-12-27T18:35:53Z beach: Exactly! Thanks nyef! 2015-12-27T18:36:29Z Tyrius quit (Read error: Connection reset by peer) 2015-12-27T18:36:38Z voidengineer: I haven't been in here in years, but I have to ask nyef, what happened to your Lisp based OS? I remember you were workin on that many years ago. 2015-12-27T18:38:19Z kenanb: beach: I love CLIM! thanks for working on it. 2015-12-27T18:38:46Z beach: voidengineer: I am pretty sure nyef is still working on it. Me, I am also working on it, but (I gather) from a different angle: file:///mnt/sda1/strandh/Network-Solutions/Website/Common-Lisp/lispos.html 2015-12-27T18:38:51Z znpy joined #lisp 2015-12-27T18:39:33Z beach: voidengineer: SICL is a step toward that goal, in that it is a Common Lisp system with first-class environments: https://github.com/robert-strandh/SICL 2015-12-27T18:39:46Z beach: kenanb: Great! 2015-12-27T18:41:00Z beach: voidengineer: As with many other things, there is no precise definition of "Lisp-based operating system". 2015-12-27T18:41:05Z Bicyclidine quit (Ping timeout: 246 seconds) 2015-12-27T18:41:40Z voidengineer: I know, I remember nyef saying it would be a system tailored for lisp developers. That's what interested me the most 2015-12-27T18:41:51Z p_l: lol @ Compta. Guess what I was going to talk to you about due to being interested in writing something like it ;) 2015-12-27T18:42:37Z beach: p_l: Heh! Actually, it's an embarrassingly simple application. 2015-12-27T18:42:55Z p_l: beach: though I was thinking less about basic double-entry, and more about proper "Book of Incomes and Expenses" (translation from Polish), with invoicing and expenses etc. 2015-12-27T18:42:56Z beach: Maybe that says something about the accountant profession. 2015-12-27T18:43:03Z Bicyclidine joined #lisp 2015-12-27T18:43:24Z beach: p_l: Oh, that's a simplification that is often used for personal finances. 2015-12-27T18:43:30Z p_l: beach: having spent last night on accounting, think about the double-entry as "the basic building block used by accountants" 2015-12-27T18:43:43Z beach: Yes, correct. 2015-12-27T18:43:57Z beach: I ran a company for a few years, and that was a requirement. 2015-12-27T18:44:17Z p_l: I got lost yesterday when looking for info how to account few things I ended up on accountant course website >_> 2015-12-27T18:44:20Z phoe_krk: What's the state of CLIM on Windows? 2015-12-27T18:44:37Z p_l: beach: that said, I was thinking of cheating a bit by using my accounting package's HTTP API 2015-12-27T18:44:52Z beach: phoe_krk: I have no idea, and I am surprised anyone still cares about Windows. 2015-12-27T18:45:14Z phoe_krk: beach: I do, and people will do for at least the next decade. 2015-12-27T18:45:20Z p_l: and probably longer 2015-12-27T18:45:35Z beach: phoe_krk: Sorry to hear that! :( 2015-12-27T18:45:37Z phoe_krk: ^ 2015-12-27T18:45:44Z p_l: though if talking about windows, hopefully anyone who tries goes for modern windows, not classic GDI 2015-12-27T18:45:49Z beach: p_l: I was lucky and took accounting in school. 2015-12-27T18:45:54Z phoe_krk: beach: I'm sorry as well, but when I write code, I have to take supporting Windows into consideration. 2015-12-27T18:46:12Z beach: FSVO "have to" 2015-12-27T18:46:22Z p_l: beach: my experiences with Windows are probably better than with OSX. Sometime soon, they might be better than experiences with RedHat derivatives :| 2015-12-27T18:46:29Z phoe_krk: beach: because of all other people who still use it, I place a "have to" in there. 2015-12-27T18:46:42Z beach: phoe_krk: Life is about tough choices. 2015-12-27T18:47:06Z p_l: yeah, but if you try to avoid windows, you can just as well drop local-GUI work ;) 2015-12-27T18:47:22Z phoe_krk: beach: is that a polite way of saying "that's indeed a problem that you have"? :P 2015-12-27T18:47:33Z beach: p_l: I don't recognize that analysis. 2015-12-27T18:47:37Z phoe_krk: p_l: you can't write local-GUI programs without local-GUI work. 2015-12-27T18:47:57Z beach: phoe_krk: Pretty much. 2015-12-27T18:48:02Z phoe_krk: unless I essentially go HTML5 which is as bad as Windows GUI. 2015-12-27T18:48:23Z p_l: phoe_krk: worse 2015-12-27T18:48:36Z beach: phoe_krk: I am a great admirer of RMS. He made choices that are way more courageous than I would dare to make. But I try my best. 2015-12-27T18:48:48Z p_l: that said, windows gui programming when using *modern* bits instead of compatibility with 1.0 is not that bad 2015-12-27T18:49:26Z phoe_krk: beach: I also have a lot of respect for rms while disagreeing with him on certain matters, but I also care for people who use windows as their main OS and don't want to/have the ability to change now. 2015-12-27T18:49:36Z phoe_krk: and there's going to be a significant portion of them in the next decade. 2015-12-27T18:50:05Z phoe_krk: I can also sum up HTML5 in 24 characters, {({({({({({()})})})})})} 2015-12-27T18:50:05Z p_l agress with him on some topics, but considers him to be horrible in execution of good ideas on those topics 2015-12-27T18:50:09Z beach: phoe_krk: Just please recognize that this is your choice as apposed to a requirement (as in "have to"). 2015-12-27T18:50:17Z phoe_krk: beach: correct. 2015-12-27T18:50:22Z phoe_krk: I want to support them. 2015-12-27T18:50:33Z beach: phoe_krk: Otherwise, discussions become very strange indeed. 2015-12-27T18:50:39Z shka: beach: good evening beach 2015-12-27T18:50:51Z beach: Hey shka. What's up? 2015-12-27T18:51:00Z shka: being lazy all day 2015-12-27T18:51:10Z shka: reading some fantasy novels 2015-12-27T18:51:12Z beach: Lucky you! 2015-12-27T18:51:20Z shka: feels increadible refreshing 2015-12-27T18:51:31Z shka: it was a while since i did that 2015-12-27T18:51:31Z phoe_krk: p_l: rms is 1) a brave man, inventor and philosopher 2) a huge nerd who isn't the best at social skills 2015-12-27T18:51:55Z shka: btw, that filter functions 2015-12-27T18:52:03Z p_l: I'm tempted to replace that using s/inventor/politician/ 2015-12-27T18:52:03Z shka: it seems to be quite nice concept 2015-12-27T18:52:53Z beach: phoe_krk: True about 2. But he's the best we have. And I am very flexible with respect to the behavior of others, so I can deal with RMS (and others). 2015-12-27T18:52:56Z p_l: that said, these days I often have to fight FUD generated from otherwise noble principles, spread by FSF 2015-12-27T18:53:06Z shka: phoe_krk: the problem many of us have with RMS is that he uses "good" and "evil" concept freely 2015-12-27T18:53:08Z p_l: which is kinda :( 2015-12-27T18:53:29Z p_l can deal with RMS-the-philosopher that grates on him, though :) 2015-12-27T18:54:07Z shka: beach: on the other hand I probabbly should do something with my CV 2015-12-27T18:54:12Z shka: but that can wait 2015-12-27T18:54:18Z shka: i really needed rest 2015-12-27T18:54:21Z beach: Lazy bum! 2015-12-27T18:54:28Z phoe_krk: p_l: he is a politician indeed. 2015-12-27T18:54:35Z phoe_krk: but also an inventor. 2015-12-27T18:54:43Z shka: heh, don't judge me, lately i was even waking up tired 2015-12-27T18:55:14Z shka: and now my happiness increased dramaticly ;-) 2015-12-27T18:55:14Z beach: shka: Actually, I have no opinion about how you run your life. 2015-12-27T18:55:21Z p_l: shka: as someone who woke at 1450, I won't judge you... even if it's because I was fighting first with invoicing/KPiR and then with VMware :D 2015-12-27T18:55:54Z p_l: fortunately, vmware is running again so I can access my Windows and Genera VMs agains 2015-12-27T18:55:55Z shka: hopefully it wasn't your day time job 2015-12-27T18:56:01Z shka: ah 2015-12-27T18:56:03Z shka: cool 2015-12-27T18:56:09Z p_l: shka: accounting definitely related to my daytime job now 2015-12-27T18:56:19Z shka: also 2015-12-27T18:56:23Z shka: genera on VM? 2015-12-27T18:56:29Z shka: vmware? 2015-12-27T18:56:36Z Petit_Dejeuner: ...since we were talking about Windows earlier. how's CLIM on BSD? 2015-12-27T18:56:39Z p_l: shka: on a hobbled old Ubuntu 2015-12-27T18:56:43Z shka: ah, ok 2015-12-27T18:57:02Z p_l: Petit_Dejeuner: McCLIM w/CLX backend should work without any deps other than X11 2015-12-27T18:57:08Z beach: Petit_Dejeuner: If you are asking me, I have no idea. 2015-12-27T18:57:42Z p_l: that said, I was very nicely surprised that McCLIM examples and Climacs had loaded without problem from QL 2015-12-27T18:58:05Z shka wants to play with McCLIM 2015-12-27T18:58:32Z shka: but no idea for cool app 2015-12-27T18:58:33Z shka: somehow 2015-12-27T18:58:40Z Petit_Dejeuner: I might switch over to BSD, so good lisp support would be nice. 2015-12-27T18:59:02Z shka: how much effort is required to even create something simple with McCLIM? 2015-12-27T18:59:13Z shka: like you know: calculator application 2015-12-27T18:59:39Z p_l: shka: there's an example "classic" calculator application in McCLIM demos 2015-12-27T18:59:58Z shka: oh 2015-12-27T19:00:04Z shka: that's good to know 2015-12-27T19:00:32Z znpy quit (Ping timeout: 272 seconds) 2015-12-27T19:00:45Z p_l: btw, anyone knows how applicable the "Lisp Lore" book is with CLIM? It has GUI programming on the lisp machine, but I'm unsure which version... 2015-12-27T19:01:30Z H4ns: p_l: it is very specific to a certain genera version, i think 7 2015-12-27T19:02:06Z H4ns: p_l: and it mostly talks about getting around in that version of genera if i remember correctly. i was rather disappointed by it. yes, i spent way too much money on it. 2015-12-27T19:02:20Z p_l: oh, pity 2015-12-27T19:02:38Z p_l: it got released for free recently (second edition) 2015-12-27T19:03:10Z shka: p_l: do you have link, perhaps? 2015-12-27T19:03:17Z H4ns: interesting. it should not hurt to have a look, i may have given up on it too early 2015-12-27T19:03:30Z p_l: http://link.springer.com/book/10.1007/978-1-4613-1991-7 2015-12-27T19:03:42Z p_l: it's a scan, though 2015-12-27T19:04:07Z attila_lendvai quit (Read error: Connection reset by peer) 2015-12-27T19:04:07Z H4ns: the toc is rather telling 2015-12-27T19:04:56Z p_l: first four chapters are about getting around the lispm, fifth chapter starts with flavors 2015-12-27T19:06:05Z attila_lendvai joined #lisp 2015-12-27T19:06:05Z attila_lendvai quit (Changing host) 2015-12-27T19:06:05Z attila_lendvai joined #lisp 2015-12-27T19:06:42Z p_l: chapter 6 is basic GUI programming, 7th is graphs in GUIs, 8th is disk I/O, 9th a calculator example, 10 about system programming, 11 is another example (card game), 12 is extending ZWEI, 13 is network 2015-12-27T19:07:03Z shka: p_l: thx 2015-12-27T19:07:33Z shka: p_l: i will probabbly take a look at the very least because of curiosity 2015-12-27T19:07:56Z p_l: btw, do we have a good TI-RPC client/server somewhere? 2015-12-27T19:15:27Z shka: i don't even know what TI-RPC is 2015-12-27T19:16:40Z beach: shka: It is very easy to create an application with McCLIM. Like I said before 200 lines of GUI and 200 lines of model for a complete accounting application. 2015-12-27T19:16:57Z shka: right 2015-12-27T19:17:05Z shka: perhaps it is the way to go for me 2015-12-27T19:17:08Z shka: for simple apps 2015-12-27T19:17:29Z shka: it is certainly more funny than dealing with C++ 2015-12-27T19:17:30Z Petit_Dejeuner is working with it right now and hasn't had any trouble getting small code to run on linux 2015-12-27T19:17:44Z Petit_Dejeuner: "it jst werks" 2015-12-27T19:18:06Z AlphaAtom joined #lisp 2015-12-27T19:18:26Z tmtwd joined #lisp 2015-12-27T19:18:29Z shka: Petit_Dejeuner: cool 2015-12-27T19:18:31Z beach: shka: You do what you want of course. I just want to get rid of the idea that CLIM is dead and McCLIM is crap. Neither is true. 2015-12-27T19:18:51Z shka: i don't care if it is dead or not 2015-12-27T19:19:09Z shka: i just want to know if it is good option for some problems 2015-12-27T19:19:44Z beach: shka: I suggest you list your requirements for each application, and we can advise you here. 2015-12-27T19:20:05Z shka: well, i would had to figure out what application i need, right ;-) 2015-12-27T19:20:22Z beach: Right. :) 2015-12-27T19:20:37Z beach: Step 1, figure out what you want. :) 2015-12-27T19:21:09Z shka: yeah 2015-12-27T19:22:41Z beach: It's true for more important things like "your next software project". It is also true for "life". 2015-12-27T19:24:33Z shka: yup 2015-12-27T19:28:09Z p_l: beach: it might also help if some work was done to provide "utilities" for CLIM applications. For example, some common dialogs as options to use with (accept ...) 2015-12-27T19:34:00Z TDT joined #lisp 2015-12-27T19:34:06Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T19:36:15Z AlphaAtom joined #lisp 2015-12-27T19:37:07Z mac_ified joined #lisp 2015-12-27T19:42:09Z cmack joined #lisp 2015-12-27T19:43:35Z Jesin quit (Quit: Leaving) 2015-12-27T19:45:49Z vlatkoB_ joined #lisp 2015-12-27T19:46:42Z cmack quit (Ping timeout: 250 seconds) 2015-12-27T19:49:41Z vlatkoB quit (Ping timeout: 246 seconds) 2015-12-27T19:53:14Z znpy joined #lisp 2015-12-27T19:54:16Z phoe_krk: my face when JSCL can't comprehend (loop (print (eval (read)))) 2015-12-27T19:54:40Z phoe_krk: because it doesn't know how to READ. 2015-12-27T19:59:32Z Kitlith joined #lisp 2015-12-27T19:59:40Z cadadar joined #lisp 2015-12-27T19:59:59Z zupoman quit (Quit: 500 banów na dziecko) 2015-12-27T20:00:26Z zupoman joined #lisp 2015-12-27T20:01:46Z Kitlith: Hey! I'm having a problem (that doesn't seem obvious to me). Mind if I post what's producing the error? 2015-12-27T20:02:37Z eudoxia joined #lisp 2015-12-27T20:02:44Z znpy quit (Ping timeout: 250 seconds) 2015-12-27T20:03:09Z phoe_krk: Kitlith: just post it! 2015-12-27T20:03:13Z Kitlith: http://pastebin.com/rzyCx2RP 2015-12-27T20:03:30Z quazimod1 quit (Ping timeout: 245 seconds) 2015-12-27T20:04:19Z phoe_krk: lemme compile 2015-12-27T20:04:48Z quazimodo quit (Ping timeout: 255 seconds) 2015-12-27T20:05:48Z phoe_krk: (eval l) 2015-12-27T20:06:06Z phoe_krk: that's the errorpoint here. 2015-12-27T20:06:15Z jonytheboy joined #lisp 2015-12-27T20:06:40Z jonytheboy: hi guys, is it true that learning lisp will make me abetter programmer in the long run if my ultimate goal is to learn get a job writing java code 2015-12-27T20:07:12Z fourier quit (Remote host closed the connection) 2015-12-27T20:07:20Z phoe_krk: jonytheboy: yes, Lisp has these few mind-blowing things; learning the basics of its philosophy gives you skills that later translate to all other places where you program. 2015-12-27T20:07:26Z phoe_krk: and all other languages. 2015-12-27T20:07:41Z jonytheboy: wow very interesting 2015-12-27T20:08:18Z Kitlith: phoe_krk, Wait, is the reverse-nth macro not compiling for you? 2015-12-27T20:08:23Z phoe_krk: Kitlith: it is. 2015-12-27T20:08:40Z phoe_krk: It's (macroexpand-1 '(reverse-nth index lst)) that I can't invoke. 2015-12-27T20:08:48Z malice joined #lisp 2015-12-27T20:10:20Z Petit_Dejeuner quit (Ping timeout: 256 seconds) 2015-12-27T20:10:21Z Kitlith: phoe_krk, That gives me (NTH 1 LST) 2015-12-27T20:10:31Z malice: Hello! I'd like to ask: what's the difference between sharp-quote(#') and function special operator? I know that the former is abbreviation for latter, but apart from that? Is this pure aesthetics? 2015-12-27T20:10:31Z Kitlith: What implementation are you using? 2015-12-27T20:10:37Z phoe_krk: CCL 2015-12-27T20:10:48Z phoe_krk: but again 2015-12-27T20:10:54Z phoe_krk: you must have LST defined. 2015-12-27T20:10:56Z blub: kitlith: is lst already defined 2015-12-27T20:10:58Z malice: I've seen some code using function special operator, and I was surprised, because I thought it was kind-of deprecated(unofficially); #' seems shorter, and readability is about the same 2015-12-27T20:11:17Z moore33 joined #lisp 2015-12-27T20:11:59Z Kitlith: blub, it's a function argument. It *should* be defined. 2015-12-27T20:12:13Z jonytheboy quit 2015-12-27T20:13:00Z Kitlith: Oh. Derp. I see what's going on now. 2015-12-27T20:13:21Z Kitlith: Not defined when the macro was expanded. 2015-12-27T20:13:40Z blub: why is that a macro in the first place 2015-12-27T20:13:44Z cadadar quit (Read error: Connection reset by peer) 2015-12-27T20:13:59Z phoe_krk: ^ 2015-12-27T20:14:01Z Kitlith: If I make it a function, I can't setf to it. 2015-12-27T20:14:09Z blub: malice: there's no difference at all, the reader translates #' into function 2015-12-27T20:14:25Z malice: blub: I see. Thanks. 2015-12-27T20:14:27Z Kitlith: (unless I figure out how to make it a setf place.) 2015-12-27T20:14:28Z blub: try defining (setf reverse-nth) :) 2015-12-27T20:14:48Z cadadar joined #lisp 2015-12-27T20:14:58Z cadadar quit (Client Quit) 2015-12-27T20:15:57Z blub: (defun (setf reverse-nth) (new-value n l) ...) 2015-12-27T20:16:56Z Kitlith: I can do a (setf (nth ...) new-value) inside of there, right? 2015-12-27T20:17:07Z jtza8 joined #lisp 2015-12-27T20:17:15Z blub: ya 2015-12-27T20:17:22Z Kitlith: :D Thank you! 2015-12-27T20:21:50Z Kitlith: ... now I'm seeing duplication between reverse-nth and (setf reverse-nth)... xD 2015-12-27T20:24:37Z OrangeShark joined #lisp 2015-12-27T20:25:38Z segmond quit (Remote host closed the connection) 2015-12-27T20:27:15Z kazlock joined #lisp 2015-12-27T20:35:05Z hiroakip joined #lisp 2015-12-27T20:36:57Z dim: another sunday spent refactoring lisp code (internal data structures and APIs), feels good, at least some of the code is back into working again ;-) 2015-12-27T20:41:44Z Petit_Dejeuner joined #lisp 2015-12-27T20:47:53Z Jonsky joined #lisp 2015-12-27T20:48:34Z Kitlith left #lisp 2015-12-27T20:52:22Z ebrasca quit (Remote host closed the connection) 2015-12-27T20:54:16Z sz0 quit (Quit: Bye.) 2015-12-27T20:56:15Z hiroakip quit (Ping timeout: 240 seconds) 2015-12-27T20:58:13Z kazlock: Does lisp have something like exceptions from other languages? Ex: someone passes my factorial function -5. What do I do? 2015-12-27T20:59:26Z p_l: condition system 2015-12-27T20:59:54Z lmj: dim: hi, I was grepping irc logs (since in the past people have complained about a bug without reporting it) -- IPC sockets would be ludicrously slower than lparallel.queue, as you'd have to serialize/unserialize everything. I can't imagine doing much better than lparallel.queue itself; it's super-optimized (maybe too much) and probably not far off from the C equivalent. You could try lockless queues, see lparallel.spin-queue. It's an unadvertised API but quite us 2015-12-27T21:00:14Z prxq: kazlock: they are called conditions, and are pretty nifty. 2015-12-27T21:00:24Z p_l: kazlock: conditions also have the benefit over exceptions that they don't unwind the stack, so you can use a "restart" to decide what to do without losing state 2015-12-27T21:00:24Z pjb: kazlock: your question form is invalid. 2015-12-27T21:00:39Z kazlock: p_l, prxq ty 2015-12-27T21:00:53Z pjb: kazlock: the right way to ask a question about lisp, is: what is the name of the lisp concept after which such or such concept in another language has been inspired? 2015-12-27T21:01:01Z otwieracz: kazlock: I know no other language with such awesome „excaptions” system. 2015-12-27T21:01:01Z prxq: kazlock: http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html 2015-12-27T21:01:02Z lmj: dim: eventually it will be broken off into lcon:queue, lcon:spin-queue, etc. The reason lparallel.queue was separated was because the break-off was expected to be sooner. 2015-12-27T21:01:11Z phoe_krk: pjb: you're cruel. :P 2015-12-27T21:01:53Z attila_lendvai: cruel may be, but down to earth, too :) 2015-12-27T21:01:54Z pjb: kazlock: now, about mathematical functions, it's often useful to extend them in a mathematically meaningful way. 2015-12-27T21:02:07Z phoe_krk: attila_lendvai: correct 2015-12-27T21:03:26Z Bicyclidine quit (Ping timeout: 240 seconds) 2015-12-27T21:05:40Z ACE_Recliner joined #lisp 2015-12-27T21:07:07Z Jonsky thinks to himself "I'm still struggling in that chapter. I'd better listen carefully how others talk about conditions." 2015-12-27T21:07:40Z pjb: kazlock: but if you want to restrict the range of your function, the simpliest and lispiest way to do it, is to use check-type: (defun fact (x) (check-type x (integer 1)) …) 2015-12-27T21:08:21Z pjb: Jonsky: restarts are a little hard to get. Start by using handler-case and handler-bind. When you're ok with them, you can go on with restarts. 2015-12-27T21:13:21Z kazlock: Ty everyone, I will read the pcl chapter on conditions. pjb i really like that solution 2015-12-27T21:16:06Z vlatkoB_ quit (Remote host closed the connection) 2015-12-27T21:16:37Z eudoxia quit (Quit: Leaving) 2015-12-27T21:17:24Z Jonsky: pjb: I will keep this in mind and bother you and others later when I read through that chapter. I read from Peter Novig's webpage that CL has a super fast error handing system and I was wondering if it could be used to write faster programmes, ie use exception instead of (if ) or (cond). 2015-12-27T21:19:32Z pjb: kazlock: for example, you could extend factorial as: http://sprunge.us/GTIa 2015-12-27T21:19:55Z pjb: Jonsky: it's fast, but if and cond are faster. 2015-12-27T21:19:58Z p_l: Jonsky: it's not faster than if (can't be, truly), however, it's use in general can mean less ifs/conds all over the code 2015-12-27T21:20:25Z p_l: remember, best case, IF translates into 2~3 instructions 2015-12-27T21:20:39Z pjb: Sometimes in only 1. 2015-12-27T21:21:09Z p_l: true, I simplified to assume two calls into different functions, non-inlined 2015-12-27T21:21:19Z p_l: a pipelined if will indeed be one instruction 2015-12-27T21:22:40Z p_l: (funnily enough, the construct truly dawned on me in more general form by reading VLM source) 2015-12-27T21:25:09Z Jonsky: Thanks. Time to read. 2015-12-27T21:28:27Z kenanb left #lisp 2015-12-27T21:30:26Z Bicyclidine joined #lisp 2015-12-27T21:34:09Z PuercoPop: attila_lendvai: Through following you on gh. But one could also find it be subscribind to gh's RSS feed of CL projects. 2015-12-27T21:34:17Z shka quit (Quit: Konversation terminated!) 2015-12-27T21:38:28Z fantazo joined #lisp 2015-12-27T21:41:13Z matiaslina joined #lisp 2015-12-27T21:43:02Z cmack joined #lisp 2015-12-27T21:44:51Z blub: theres an rss feed ? 2015-12-27T21:48:10Z cmack quit (Ping timeout: 260 seconds) 2015-12-27T21:50:20Z attila_lendvai: PuercoPop: thanks! I never cease to work on building a sensible model of the new social network tech... 2015-12-27T21:50:47Z attila_lendvai: PuercoPop: BTW, I wrote a readme since then... ;) 2015-12-27T21:51:58Z k-stz quit (Remote host closed the connection) 2015-12-27T21:54:28Z sweater joined #lisp 2015-12-27T21:54:37Z warweasle quit (Quit: Movie night.) 2015-12-27T21:54:52Z sweater is now known as Guest59369 2015-12-27T21:56:15Z Xach_ joined #lisp 2015-12-27T21:57:09Z AlphaAtom quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-12-27T21:58:11Z Xach quit (Ping timeout: 260 seconds) 2015-12-27T21:59:21Z AlphaAtom joined #lisp 2015-12-27T21:59:27Z moore33 quit (Quit: Leaving) 2015-12-27T22:02:03Z Jesin joined #lisp 2015-12-27T22:03:23Z fantazo quit (Quit: Verlassend) 2015-12-27T22:07:18Z malbertife joined #lisp 2015-12-27T22:08:55Z AlphaAtom quit (Ping timeout: 240 seconds) 2015-12-27T22:09:12Z Jonsky quit (Quit: rcirc on GNU Emacs 24.5.1) 2015-12-27T22:09:56Z AlphaAtom joined #lisp 2015-12-27T22:12:45Z TDT quit (Quit: TDT) 2015-12-27T22:16:08Z futpib quit (Ping timeout: 256 seconds) 2015-12-27T22:16:08Z attila_lendvai quit (Read error: Connection reset by peer) 2015-12-27T22:16:42Z synergistics joined #lisp 2015-12-27T22:17:20Z synergistics: What's a good introduction to lisp concepts that's fairly independent from implementation? Would original lisp papers be good for that? 2015-12-27T22:17:35Z replcated_ quit (Ping timeout: 264 seconds) 2015-12-27T22:18:10Z attila_lendvai joined #lisp 2015-12-27T22:18:10Z attila_lendvai quit (Changing host) 2015-12-27T22:18:10Z attila_lendvai joined #lisp 2015-12-27T22:18:18Z p_l: synergistics: original papers don't think so 2015-12-27T22:18:20Z synchromesh: synergistics: I always suggest Peter Siebel's book Practical Common Lisp (http://www.gigamonkeys.com/book/). 2015-12-27T22:18:36Z p_l: simple introduction to symbolic computation might be useful, as well as SICP, I guess 2015-12-27T22:19:00Z synergistics: Ok 2015-12-27T22:19:09Z pjb: synergistics: AIM-8 2015-12-27T22:19:39Z pjb: synhttp://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html 2015-12-27T22:19:43Z pjb: synergistics: http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/index.html 2015-12-27T22:20:15Z sp quit (Ping timeout: 260 seconds) 2015-12-27T22:20:16Z pjb: The advantage of original papers, is that they're short ;-) 2015-12-27T22:20:21Z BitPuffin|osx joined #lisp 2015-12-27T22:21:48Z quazimodo joined #lisp 2015-12-27T22:21:50Z quazimod1 joined #lisp 2015-12-27T22:22:00Z synergistics: Awesome! Thanks 2015-12-27T22:23:15Z synergistics: Ctrl-F "cdr": No matches. Whaaa! 2015-12-27T22:24:29Z synchromesh: synergistics: You did say "Lisp concepts"... 2015-12-27T22:25:15Z synergistics: synchromesh: Yea, but not seeing car and cdr is so strange to me when looking at a lisp program 2015-12-27T22:25:33Z failproofshark quit (Remote host closed the connection) 2015-12-27T22:25:50Z synchromesh: synergistics: Some might argue you should be using FIRST and REST anyway... :) 2015-12-27T22:26:03Z pjb: Yes, it uses first[] and rest[] (notice the M-expressions). 2015-12-27T22:27:18Z pjb: synchromesh: notice, CAR and CDR were used BEFORE AIM-8, in the Fortran library FLPL: http://www.informatimago.com/articles/flpl/index.html 2015-12-27T22:27:22Z dim: lmj: thanks for your feedback! 2015-12-27T22:27:31Z pjb: under the name XCARF and XCDRF with associated functions. 2015-12-27T22:27:54Z dkcl quit (Ping timeout: 250 seconds) 2015-12-27T22:28:37Z dim: lmj: it might be that I'm trying to improve perf by going parallel on some processing that can't be made faster by going parallel, too, IDK. Some docs about the internals of lparallel.queue (copying, locks, etc) would be good, a high-level view only... maybe that exists in the sources? 2015-12-27T22:28:40Z pjb: synchromesh: and as you will notice, they implemented the list concept invented by NSS (Newell-Shaw-Simon), not by McCarthy ;-) 2015-12-27T22:29:17Z AlphaAtom quit (Remote host closed the connection) 2015-12-27T22:29:29Z synchromesh: pjb: Is that just IBM NIH Syndrome, though? 2015-12-27T22:29:38Z pjb: What? 2015-12-27T22:29:44Z pjb: Nothing was invented then! 2015-12-27T22:30:20Z synchromesh: pjb: Yes, that explains "The many programming advantages accruing from the use of FORTRAN, and in particular, the ease with which massive and complex programs may be revised, ..." I guess. 2015-12-27T22:30:46Z synchromesh: Truly a different epoch. 2015-12-27T22:30:56Z synergistics: Would you describe Common Lisp as functional? How can you describe the language? 2015-12-27T22:31:04Z NeverDie joined #lisp 2015-12-27T22:31:46Z synchromesh: synergistics: "Multi-paradigm". 2015-12-27T22:32:13Z replcated joined #lisp 2015-12-27T22:32:17Z synergistics: Ok 2015-12-27T22:32:56Z synergistics: Well what are the core aspects of lisp that transcend the various dialects? 2015-12-27T22:33:06Z synergistics: In general 2015-12-27T22:33:22Z synergistics: I don't know very much about lisp yet but I'd start with macros 2015-12-27T22:33:44Z synergistics: parenthesis :) 2015-12-27T22:33:45Z synchromesh: synergistics: For me, it's the "code is data is the AST" nature of it all. 2015-12-27T22:33:55Z synergistics: Yea 2015-12-27T22:34:23Z synchromesh: synergistics: Everything else flows from that (or is unimpeded by that, unlike most other PLs). 2015-12-27T22:35:20Z synergistics: I really want to learn enough to take advantage of that. Makes lisp seem beautiful 2015-12-27T22:36:42Z dkcl joined #lisp 2015-12-27T22:37:23Z PuercoPop: attila_lendvai: Thanks for the readme, it gives a good overview of the project 2015-12-27T22:39:08Z replcated quit (Ping timeout: 255 seconds) 2015-12-27T22:39:25Z synergistics: Are there any academic concepts that tie in directly with Lisp that should be learned? 2015-12-27T22:41:07Z lnostdal_ quit (Ping timeout: 260 seconds) 2015-12-27T22:41:39Z KyloRenKillsHanS joined #lisp 2015-12-27T22:41:42Z KyloRenKillsHanS: why did kylo ren kill his father han solo? 2015-12-27T22:42:24Z synchromesh: KyloRenKillsHanS: To get to the other side? 2015-12-27T22:42:36Z replcated joined #lisp 2015-12-27T22:42:38Z jtza8 quit (Remote host closed the connection) 2015-12-27T22:43:01Z KyloRenKillsHanS: synchromesh: i don't know i came back from the bathroom and he was killnig his father 2015-12-27T22:43:57Z pjb: synergistics: well, if you don't like to edit data files, you can always use M-expressions to write lisp code: http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/m-expression/index.html ;-) 2015-12-27T22:44:14Z synchromesh: KyloRenKillsHanS: Well, this channel is all about Common Lisp so such questions are massively off-topic. 2015-12-27T22:45:02Z Guest59369 quit (Ping timeout: 246 seconds) 2015-12-27T22:45:04Z synergistics: pjb: Are you playing on "code as data" :) 2015-12-27T22:45:04Z pjb: KyloRenKillsHanS: you may try #lispcafe for random discussions. 2015-12-27T22:47:31Z oleo_: https://www.youtube.com/watch?v=9tplRbd-fso 2015-12-27T22:48:10Z EvW quit (Quit: EvW) 2015-12-27T22:48:25Z EvW joined #lisp 2015-12-27T22:52:45Z lnostdal_ joined #lisp 2015-12-27T22:54:52Z replcated quit (Ping timeout: 272 seconds) 2015-12-27T22:56:36Z replcated joined #lisp 2015-12-27T23:03:00Z EvW quit (Ping timeout: 255 seconds) 2015-12-27T23:03:26Z replcated quit (Ping timeout: 255 seconds) 2015-12-27T23:04:17Z InvalidCo quit (Ping timeout: 246 seconds) 2015-12-27T23:04:21Z dtw quit (Ping timeout: 255 seconds) 2015-12-27T23:04:38Z ineiros quit (Ping timeout: 246 seconds) 2015-12-27T23:05:07Z hardenedapple quit (Quit: WeeChat 1.3) 2015-12-27T23:06:07Z InvalidCo joined #lisp 2015-12-27T23:06:16Z Bor0 joined #lisp 2015-12-27T23:06:21Z dtw joined #lisp 2015-12-27T23:06:22Z dtw quit (Changing host) 2015-12-27T23:06:22Z dtw joined #lisp 2015-12-27T23:07:01Z AntiSpamMeta quit (Read error: Connection reset by peer) 2015-12-27T23:07:16Z AntiSpamMeta joined #lisp 2015-12-27T23:07:17Z Bor0: anyone able to help me for SICP exercise 1.19? I was able to compute T_pq twice, but how do I calculate p' and q' out of the new given equations? 2015-12-27T23:07:26Z pjb: Let me see. 2015-12-27T23:07:55Z Bor0: thanks. 2015-12-27T23:08:43Z EvW joined #lisp 2015-12-27T23:09:07Z Bor0: so I have a_new and b_new (T_pq) and I also have a_new' and b_new' ((T_pq)^2), but the exercise then suggests "compute p’ and q’ in terms of p and q" 2015-12-27T23:09:37Z replcated joined #lisp 2015-12-27T23:09:42Z pjb: Yes, it looks like you have T_p'q' = (T_pq)^2 so that gives you an equation to find p' and q'. 2015-12-27T23:09:45Z ahhh joined #lisp 2015-12-27T23:09:48Z ahhh: https://doyle.ninja/limechat-crash.gif 2015-12-27T23:09:49Z learning quit (Remote host closed the connection) 2015-12-27T23:09:53Z ahhh left #lisp 2015-12-27T23:10:08Z Bor0: pjb, how do I find p' and q'? I only have variables a, b, p, q appearing in T_p'q' 2015-12-27T23:10:09Z pjb: Then you can google for sicp exercise 1.19 ; there are a lot of discussion and soclutions proposed on the web. 2015-12-27T23:10:58Z pjb: See http://www.billthelizard.com/2010/01/sicp-exercise-119-computing-fibonacci.html 2015-12-27T23:11:44Z Guest59369 joined #lisp 2015-12-27T23:13:02Z quazimodo quit (Ping timeout: 246 seconds) 2015-12-27T23:13:06Z quazimod1 quit (Ping timeout: 240 seconds) 2015-12-27T23:13:12Z ineiros joined #lisp 2015-12-27T23:13:42Z AntiSpamMeta quit (Read error: Connection reset by peer) 2015-12-27T23:13:55Z AntiSpamMeta joined #lisp 2015-12-27T23:15:16Z learning joined #lisp 2015-12-27T23:18:28Z replcated quit (Ping timeout: 256 seconds) 2015-12-27T23:18:52Z Bor0: pjb, oh I see. so the trick is to get T_p'q' in the form of T_pq (i.e. a_new = bp + aq so a_new' = bp' + aq') and we find p' and 'q from the given equations by T_p'q' 2015-12-27T23:19:54Z pjb: Yes. 2015-12-27T23:20:06Z replcated joined #lisp 2015-12-27T23:21:00Z Bor0: cool, thanks! 2015-12-27T23:22:11Z synergistics: I had so much fun with that SICP problem :) 2015-12-27T23:24:03Z synergistics: To an embarrassing point. I started making Fibonacci streams and spent a day looking for patterns. 2015-12-27T23:24:32Z malice quit (Remote host closed the connection) 2015-12-27T23:25:28Z synergistics: Bor0: If you want to see the madness: https://github.com/synergistics/functional_programming_playground/blob/master/weird-fib.scm 2015-12-27T23:27:11Z tmtwd quit (Ping timeout: 264 seconds) 2015-12-27T23:30:11Z Guest59369 quit (Ping timeout: 246 seconds) 2015-12-27T23:30:20Z replcated quit (Ping timeout: 272 seconds) 2015-12-27T23:32:41Z yuankode quit (Quit: ERC (IRC client for Emacs 25.0.50.1)) 2015-12-27T23:34:05Z TDT joined #lisp 2015-12-27T23:35:09Z Guest59369 joined #lisp 2015-12-27T23:36:36Z replcated joined #lisp 2015-12-27T23:38:02Z Bor0 quit (Quit: This computer has gone to sleep) 2015-12-27T23:38:34Z prxq quit (Remote host closed the connection) 2015-12-27T23:40:20Z Bor0 joined #lisp 2015-12-27T23:40:26Z attila_lendvai quit (Ping timeout: 240 seconds) 2015-12-27T23:41:04Z phoe_krk: http://paste.lisp.org/display/24437 2015-12-27T23:41:25Z phoe_krk: always makes me laugh 2015-12-27T23:41:39Z IAmRasputin joined #lisp 2015-12-27T23:43:54Z cmack joined #lisp 2015-12-27T23:46:48Z nyef: phoe_krk: In retrospect, I should have done BLOCK UP, not BLOCK NIL. 2015-12-27T23:47:04Z phoe_krk: nyef: annotate it! 2015-12-27T23:48:30Z cmack quit (Ping timeout: 250 seconds) 2015-12-27T23:50:34Z lispyone joined #lisp 2015-12-27T23:51:17Z KyloRenKillsHanS quit (Quit: Page closed) 2015-12-27T23:52:10Z kazlock: If I'm new to lisp and just learning, does it matter which lisp implementation I use? 2015-12-27T23:52:25Z Bicyclidine: not too much. find one that's easy to install and use on your computer. 2015-12-27T23:52:32Z phoe_krk: kazlock: your OS? 2015-12-27T23:52:50Z Warlock[29A] joined #lisp 2015-12-27T23:53:34Z kazlock: phoe_krk: Linux Mint. Right now I'm using gnu clisp. I was reading the documentation for slime and it seems that it recommends cmucl or sbcl 2015-12-27T23:54:11Z phoe_krk: AFAIK SBCL is the most widely used and therefore tested (on *nix) implementation. 2015-12-27T23:54:55Z kazlock: what is *nix? 2015-12-27T23:55:03Z IAmRasputin: SBCL works well on my Debian box. I was using CLISP, but development has slowed significantly relative to SBCL. 2015-12-27T23:55:03Z kazlock: oh 2015-12-27T23:55:12Z IAmRasputin: Unix/Linux 2015-12-27T23:55:30Z kazlock: I think I will start using sbcl then 2015-12-27T23:56:00Z IAmRasputin: Most things will work if you're just learning. The reason I switched was because CLISP didn't work right with vim. 2015-12-27T23:56:36Z kazlock: I used to use vim, but I'm transitioning to emacs while I learn about lisp 2015-12-27T23:57:10Z IAmRasputin: Emacs is the standard for lisp, but I'm stubborn. 2015-12-27T23:59:16Z malbertife quit (Ping timeout: 256 seconds)