00:05:10 -!- gonzojive [~red@171.66.82.5] has quit [Quit: gonzojive] 00:06:37 homie [~levgue@xdsl-78-35-139-109.netcologne.de] has joined #sbcl 00:37:08 -!- ASau [~user@95-26-230-11.broadband.corbina.ru] has quit [Remote host closed the connection] 00:40:09 ASau [~user@95-26-230-11.broadband.corbina.ru] has joined #sbcl 00:40:25 attila_lendvai [~attila_le@catv-80-98-24-21.catv.broadband.hu] has joined #sbcl 00:41:58 -!- scymtym [~user@2001:638:504:2093:21a:a0ff:fe34:2d7d] has quit [Remote host closed the connection] 00:49:04 gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #sbcl 00:59:04 -!- slyrus [~chatzilla@207.189.195.44] has quit [Ping timeout: 250 seconds] 01:37:42 scymtym [~user@2001:638:504:2093:21a:a0ff:fe34:2d7d] has joined #sbcl 02:34:11 -!- attila_lendvai [~attila_le@catv-80-98-24-21.catv.broadband.hu] has quit [Quit: Leaving.] 02:42:30 -!- Blkt [~Blkt@dynamic-adsl-94-37-227-177.clienti.tiscali.it] has quit [Quit: ERROR: do not makunboud t plese!] 04:13:03 -!- gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has quit [Quit: gonzojive] 04:18:36 redline6` [~user@c-66-56-55-169.hsd1.ga.comcast.net] has joined #sbcl 04:37:51 -!- nyef [~nyef@pool-71-161-64-51.cncdnh.east.myfairpoint.net] has quit [Quit: G'night all.] 04:58:02 -!- redline6` [~user@c-66-56-55-169.hsd1.ga.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 05:44:51 -!- redline6561 [~user@c-66-56-55-169.hsd1.ga.comcast.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 05:45:13 redline6561 [~user@c-66-56-55-169.hsd1.ga.comcast.net] has joined #sbcl 05:48:25 gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #sbcl 06:28:23 I wonder if this CLOS-in-cold-init venture is the hardest logic problem I have ever faced 06:29:55 wow, you're taking that on? awesome. 06:30:09 are you a student, by any chance? (: 06:30:32 haha of course, who else would be so naive? 06:30:37 not naive! 06:30:43 motivated and rich in spare time! 06:30:50 I think it will take at least a year's worth of spare time 06:30:52 you make the lisp world move, my friend! 06:31:24 we will gather here again in one year, and look back on that prediction (-: 06:31:30 *redline6561* seconds antifuchs 06:31:40 about the lisp world move part, no pressure on the other. :) 06:31:51 yeah, no pressure 06:32:04 it's awesome that you're doing this, and I would love to hear about your progress (: 06:32:12 do you have a blog, by any chance? (: 06:32:52 there hasn't been much progress from the initial push several months ago 06:33:16 antifuchs: github repo, http://github.com/gonzojive/sbcl 06:33:33 *antifuchs* subscribes 06:33:50 err. hmm. probably should've let you do that gonzojive. sorry if that's bad form. in other news, I need sleep. Goodnight all. 06:34:07 I guess it is public (; 06:34:08 it's all good redline6561 06:34:23 I'm at the least putting my comments into BOOTSTRAP.markdown in src/pcl/ 06:34:52 the main thing i'm struggling with are... metacircularities in my own understanding of pcl ;) 06:37:14 heh, I bet. I don't think I've understood the intricacies of getting clos myself 06:37:40 Krystof might be the person whose brainstate to clone, though. I assume you two have talked about this already? (: 06:37:49 the strategy at the moment, on recommendation of Krystof, is to use the host CLOS when building the cross-compiler, but similar to sb-xc:defstruct, also keeping track of info about classes,methods,generics,etc in the mind of the cross-compiler 06:38:05 yeah to some extent, a ways back 06:38:11 that sounds decent 06:38:21 but I'm sure there are terrible dangers lurking everywhere (: 06:38:37 i'm trying to figure out exactly how I am stuck at this moment in time 06:39:35 yeah, picking up the thread a few months down the line can be hard 06:39:53 I have had to do this with a (work) project recently, and it's annoyingly slow going at first 06:40:14 org-mode helps me quite a bit (I hadn't started using it when I started that project, but am now) (: 06:47:25 hey i appreciate the support guys 06:49:29 (-: 06:57:47 tcr1 [~tcr@217-162-131-235.dynamic.hispeed.ch] has joined #sbcl 07:24:07 slyrus [~chatzilla@207.189.195.44] has joined #sbcl 07:24:16 flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has joined #sbcl 07:24:17 -!- flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has quit [Changing host] 07:24:17 flip214 [~marek@unaffiliated/flip214] has joined #sbcl 07:43:27 -!- tcr1 [~tcr@217-162-131-235.dynamic.hispeed.ch] has quit [Quit: Leaving.] 07:45:57 does anybody know what DLAP stands for in the context of PCL? 07:49:44 and what does &more do in a lambda list? 07:51:32 gonzojive: where do you see DLAP in Practical Common Lisp? 07:51:47 and where do you see &more? 07:52:30 flip214: Portable Common Loops, I should say. DLAP is in src/pcl/dlisp.lisp, as is &more 07:53:20 ok; sorry, can't help you there 07:54:17 &more seems to be an SBCL/CMUCL-specific lambda list keyword, cant find much about it, though 07:56:37 tcr1 [~tcr@217-162-131-235.dynamic.hispeed.ch] has joined #sbcl 07:58:12 &more is like &rest with half as much consing 08:06:09 should the &more arg not be modified destructively? 08:12:26 lambda-avenger [~roman@adsl-99-50-123-134.dsl.pltn13.sbcglobal.net] has joined #sbcl 08:12:55 -!- lambda-avenger [~roman@adsl-99-50-123-134.dsl.pltn13.sbcglobal.net] has quit [Client Quit] 08:13:35 I'm not sure what you mean. The &more arg is basically a vector on the stack 08:15:54 I was jumping to conclusions about the differences between &more and &rest, I suppose. 08:23:42 Krystof: do you envision much hair trying to get the cross-compiler to correctly compile methods/accessors? There is so much going on in PCL that manipulates exactly what generics and defmethods wind up as, I am having trouble wrapping my mind around it 08:25:07 the idea of having genesis output a bunch of information about the class hierarchy makes intuitive sense, but I am having trouble thinking about the potential problems of cross-compiling methods/generics properly 08:25:39 perhaps you have thought about this before, or maybe you were not flustered by it at all 08:26:38 by "wind up as" I mean what their eventual lisp/machine code representation is 08:30:48 mega1 [~user@catv4E5CABA2.pool.t-online.hu] has joined #sbcl 08:41:16 -!- mega1 [~user@catv4E5CABA2.pool.t-online.hu] has quit [Remote host closed the connection] 08:51:48 no, I am fairly confused too :-) 08:59:15 haha, super 09:00:22 well perhaps a good strategy is to document each file in PCL and craft a document that describes the whole system comprehensibly but with plenty of detail 09:01:26 I wonder how big companies deal with archaic code that nobody understands but needs a big refactor. I think dollar bills have something to do with it 09:01:36 -!- gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has quit [Quit: gonzojive] 09:02:47 gonzojive1 [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #sbcl 09:05:02 they avoid dealing with it, usually. once the strategy of bending the rest of the system to accomodate the legacy interfaces stops being economical, they just replace the legacy part(s) wholesale, and sometimes the process repeats several times over until either the interfaces stabilize, the platform as a whole becomes irrelevant, or the company dies. or any combination thereof 09:05:37 not really helpful to your task, I guess, sorry :) 09:41:59 -!- deepfire [~deepfire@80.92.100.69] has quit [Read error: Connection reset by peer] 09:42:23 deepfire [~deepfire@80.92.100.69] has joined #sbcl 09:44:30 somehow I made it all the way to cold init before a crash. any tips for tracking down a line number that caused this? " internal error #26 (An attempt was made to use an undefined SYMBOL-VALUE.)" -- the ldb backtrace has 3 levels for foreign fps, and then sb!kernel::!cold-init 09:46:38 mega1 [~user@catv4E5CABA2.pool.t-online.hu] has joined #sbcl 09:53:34 gonzojive1: cool. "thinking very hard" is a cool tactic 09:54:00 turning on the :sb-show feature will cause vast amounts of debugging printing to happen -- but be warned, it usually needs a bit of fixing first 09:54:23 other fun things you can do is run cold-init under gdb and place breakpoints at strategic functions whose addresses you can derive from cold-sbcl.map 09:54:40 "fun" 10:09:53 aha! I forgot about sb-show. I think that's what I did last time I got awful cold-init crashes like that. I'll try that first 10:21:39 I'm looking at how synchronization of threads is done in clos. 10:22:14 Any opinions on it? Why it is done right/wrong, what is the state-of-the-art, etc? 10:44:45 state-of-the-art would be lockless - stm, lru, or whatever, me thinks ... to keep 1024 cores nicely occupied 10:48:10 it would be a real pleasure to frob the inheritance graph without locks 10:48:28 however the trouble with clos is that it is user extensible 10:48:46 well, lru would still apply, doesn't it? 10:48:56 there is cl-stm 10:49:02 what does lru stand for? 10:51:39 Sorry, RCU 10:51:42 Read-Copy-Update 10:51:46 my bad 10:53:38 An example of RCU would be to pack what you want to modify in a single object, copy that object, and CAS it onto its place? 10:54:05 (and modify it, of course after copying) 10:55:15 aha, this is more or less how wikipedia describes it 10:56:09 this is an "almost functional datastructure" 11:00:34 mega1: https://lwn.net/Articles/262464/ 11:02:18 attila_lendvai [~attila_le@catv-80-98-24-21.catv.broadband.hu] has joined #sbcl 11:04:20 hargettp [~hargettp@pool-71-174-135-110.bstnma.east.verizon.net] has joined #sbcl 11:11:21 mega1: Furthermore, one of the most complicated things is the deletion code ... to make sure that nobody uses some thing anymore. 11:11:28 And for that we have garbage collection ;-) 11:23:58 homie` [~levgue@xdsl-78-35-191-211.netcologne.de] has joined #sbcl 11:24:34 -!- homie` [~levgue@xdsl-78-35-191-211.netcologne.de] has quit [Remote host closed the connection] 11:25:53 -!- homie [~levgue@xdsl-78-35-139-109.netcologne.de] has quit [Ping timeout: 255 seconds] 11:27:43 homie [~levgue@xdsl-78-35-191-211.netcologne.de] has joined #sbcl 11:30:23 -!- hargettp [~hargettp@pool-71-174-135-110.bstnma.east.verizon.net] has quit [Quit: Leaving...] 11:33:39 hargettp [~hargettp@pool-71-174-135-110.bstnma.east.verizon.net] has joined #sbcl 11:52:26 -!- tcr1 [~tcr@217-162-131-235.dynamic.hispeed.ch] has quit [Quit: Leaving.] 12:01:01 I've read it. There is almost no meat left on rcu without the deletion code. 12:04:29 Fine, isn't it? The only thing that is a bit disturbing is this: 12:04:42 "Line 15 must be protected by some synchronization mechanism (most commonly some sort of lock) to prevent multiple list_add() instances from executing concurrentlyLine 15 must be protected by some synchronization mechanism (most commonly some sort of lock) to prevent multiple list_add() instances from executing concurrently" 12:05:07 so it isn't really lock free after all ... but I believe I read some really lock-free ways ... hmmm 12:06:22 http://en.wikipedia.org/wiki/Non-blocking_algorithm#Wait-freedom 12:06:47 "It was shown in the 1980s[2] that all algorithms can be implemented wait-free ... However, the resulting performance does not in general match even naïve blocking designs." 12:12:07 I realize that part of the trouble is not knowing just how much (and what kind of) thread safety to aim for in CLOS. 12:12:52 clozure docs just hand wave about it: http://ccl.clozure.com/manual/chapter10.3.html#Concurrency-issues 12:15:13 there was an article by Bruno Haible in comp.lang.lisp about calling generic functions in the presence of potential mutation of the class graph in some other thread 12:15:20 about a gazillion years ago 12:30:50 I can't seem to find it. 12:35:12 tcr1 [~tcr@gprs15.swisscom-mobile.ch] has joined #sbcl 12:38:05 neither can I :-/ 12:41:27 thanks, I'll bug Bruno then 12:56:19 -!- hargettp [~hargettp@pool-71-174-135-110.bstnma.east.verizon.net] has quit [Quit: Leaving...] 13:29:04 tcr2 [~tcr@gprs45.swisscom-mobile.ch] has joined #sbcl 13:31:20 -!- tcr1 [~tcr@gprs15.swisscom-mobile.ch] has quit [Ping timeout: 245 seconds] 13:40:38 stassats [~stassats@wikipedia/stassats] has joined #sbcl 14:04:59 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 14:04:59 -!- ChanServ has set mode +o nikodemus 14:05:40 -!- tsuru [~charlie@adsl-179-29-10.bna.bellsouth.net] has quit [Remote host closed the connection] 14:09:13 tsuru [~charlie@adsl-179-29-10.bna.bellsouth.net] has joined #sbcl 14:16:50 nikodemus pasted "this looks like a win..." at http://paste.lisp.org/display/119544 14:17:11 now if i can only get pcl to build again... 14:23:40 mega1: since clos is read-mostly, I'd consider a seqlock. 14:26:17 -!- tcr2 [~tcr@gprs45.swisscom-mobile.ch] has quit [Read error: Connection reset by peer] 14:26:28 tcr1 [~tcr@gprs45.swisscom-mobile.ch] has joined #sbcl 14:29:14 hargettp [~hargettp@dhcp-162.mirrorimage.net] has joined #sbcl 14:30:01 -!- tcr1 [~tcr@gprs45.swisscom-mobile.ch] has quit [Read error: Connection reset by peer] 14:30:13 tcr1 [~tcr@gprs45.swisscom-mobile.ch] has joined #sbcl 14:31:59 dlowe [~dlowe@ita4fw1.itasoftware.com] has joined #sbcl 14:32:33 pkhuong: another nice locking primitive 14:33:32 truth to tell I'm mostly after the clos specific parts: what to lock and when. 14:33:55 it'd let you lock almost everything. 14:33:55 are you working on kicking world-lock to bits? 14:33:59 with a single seqlock. 14:33:59 I mean, what needs to be synchronized (not locked, per se) 14:34:42 no, I'm trying to understand the current scheme and its [dis]advantages. 14:35:47 I work for the comptetion, you know. So there is a conflict of interest. 14:36:20 main disadvantage: it's a honking big lock. main advantage: using it got rid of ordering issues between compiler-lock and pcl-lock 14:36:44 but that world lock only protects writes, right? 14:36:57 so you still need to think hard about everything to make concurrent reads safe. 14:37:26 it's not exactly granular. i'm pretty sure it is also used to protect some eg. reads of classoid state and such to ensure consistency 14:37:55 damn, wrong channel 14:38:12 *mega1* pasted "clos sync" at http://paste.lisp.org/display/119546 14:38:35 these are my notes so far. It's not as if there were only the world lock. 14:38:52 indeed 14:41:11 pkhuong: the readers retrying part can be troublesome 14:41:28 I'm not sure if it would involve user code though 14:42:02 shouldn't; the readers themselves can retry. 14:43:15 on what level is a 'reader' in your mind? Is it internal to clos as in locking around accessing the effective method cache? 14:45:03 the retrying part should be internal 14:45:10 as much as locking in PCL currently is. 14:45:11 -!- flip214 [~marek@unaffiliated/flip214] has quit [Remote host closed the connection] 14:46:04 and if a user needs longer transactions, they have to dive in the implementation. 14:49:13 I see. But does locking on this level cover most practical cases? 14:50:36 I think it can: afaict, most CLOS-related writes are interactive. 14:50:55 Interactive? 14:51:07 What about CHANGE-CLASS for instance? 14:52:03 also consider things like pcos's layered methods which do stuff you don't typically expect at runtime, IIRC 14:53:13 mega1: change-class of a metaobject or change-class of an object? 14:53:43 of an object, maybe 14:54:37 that's the sort of change of less wide-reaching mutations that should probably not go through the seqlock and stick to atomic primitives. 14:56:26 other pcl stuff: https://github.com/nikodemus/SBCL/commits/pending/ 14:56:46 i don't think you're allowed to change-class metaobjects 14:59:41 what do concurrent reads do when a change-class is in progress? 15:00:10 segfault because the new class has fewer slots? 15:00:48 well, it will probably not segfault 15:02:07 wierd stuff can happen -- eg. a method may be happily operating on the instance vector of the old version and everything may look normal, but when the method returns it is as if it had stopped working at midpoint 15:02:26 (because that was when the change-class happened) 15:03:03 if you want CLOS in general to be optimized, you have to accept that change-class requires great care to use sanely and safely -- or pay for it all over the place 15:04:00 anything else of that nature in the current implementation or in general? 15:04:16 or asking the other way, what is actually safe? 15:05:20 DEFCLASS for new classes (redefinition not safe), [re]defining generic functions, calling them. 15:06:46 "normal runtime operation" should be safe 15:08:12 "normal dev-time operation" should be safe, assuming you don't have code running in parallel that uses objects you are redefining -- then weirdness is prone to happen 15:08:56 This is quite a mess. With no way out. 15:09:01 ETOOMUCHSTATE 15:09:10 yep 15:09:36 yep 15:09:53 also, sucks to be working for the competition. Apart perhaps in salary terms :-) 15:09:59 some rethinking of fundamentals for both specification and implementation required for the brave new SMP world 15:10:31 Krystof: did you see my lovely CTOR improvement? 15:10:35 I am looking 15:11:22 good, any code review much appreciated 15:14:25 I'm surprised that you can put a function in the next-methods 15:14:44 i was surprised as well -- pleasantly so :) 15:15:23 that simplified things quite a bit 15:15:47 clhs call-method 15:15:48 http://www.lispworks.com/reference/HyperSpec/Body/m_call_m.htm 15:16:59 oh, right, the way you're actually meant to do it is with make-method 15:17:26 this must be a bootstrapping shorthand 15:21:59 yeah, i just looked at what our call-next-method accepts and went with that 15:31:31 I'll tell you what I really want: the horrible pcl codewalkey stuff reimplemented using macros and &environment, so that sb-cover can work on pcl, so that I can build sbcl with coverage information, so that I can see how much of sbcl itself is covered by the test suite 15:31:39 oh and a pony 15:32:02 trust me, you'd rather have a unicorn 15:35:07 does it make better sausages? 15:40:29 I am unaware 15:50:11 *froydnj* imagines Krystof will be depressed by code coverage #s 15:51:48 better to know 16:02:29 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Read error: Connection reset by peer] 16:13:14 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 16:13:14 -!- ChanServ has set mode +o nikodemus 16:25:22 -!- attila_lendvai [~attila_le@catv-80-98-24-21.catv.broadband.hu] has quit [Quit: Leaving.] 16:25:37 attila_lendvai [~attila_le@catv-80-98-24-21.catv.broadband.hu] has joined #sbcl 16:35:37 -!- tcr1 [~tcr@gprs45.swisscom-mobile.ch] has quit [Quit: Leaving.] 16:49:31 -!- mega1 [~user@catv4E5CABA2.pool.t-online.hu] has quit [Remote host closed the connection] 17:05:39 tcr1 [~tcr@217-162-131-235.dynamic.hispeed.ch] has joined #sbcl 17:37:38 rpg [~rpg@mpls.sift.info] has joined #sbcl 18:07:35 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Ping timeout: 255 seconds] 18:08:00 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 18:08:00 -!- ChanServ has set mode +o nikodemus 18:19:45 -!- rpg [~rpg@mpls.sift.info] has quit [Quit: rpg] 18:20:56 rpg [~rpg@mpls.sift.info] has joined #sbcl 18:45:06 gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has joined #sbcl 19:51:43 -!- gonzojive [~red@c-71-198-7-84.hsd1.ca.comcast.net] has quit [Quit: gonzojive] 19:58:20 prxq [~mommer@mnhm-590c145e.pool.mediaWays.net] has joined #sbcl 20:14:02 gonzojive [~red@c-98-207-157-93.hsd1.ca.comcast.net] has joined #sbcl 20:43:44 -!- lisppaste2 [~lisppaste@common-lisp.net] has quit [Ping timeout: 255 seconds] 20:46:12 rpg_ [~rpg@mpls.sift.info] has joined #sbcl 20:50:26 -!- rpg [~rpg@mpls.sift.info] has quit [Ping timeout: 276 seconds] 20:51:36 -!- rpg_ [~rpg@mpls.sift.info] has quit [Ping timeout: 276 seconds] 21:04:19 -!- homie [~levgue@xdsl-78-35-191-211.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 21:09:01 homie [~levgue@xdsl-78-35-191-211.netcologne.de] has joined #sbcl 21:17:08 foom: apropos of web 5.0 stuff: github just added a "find file name in project" thing to their repo viewer 21:17:21 (hit "t" while viewing https://github.com/antifuchs/sbcl (-:) 21:18:05 wow, so...there's no UI for that? 21:19:04 I do like how it makes pageup/down stop working after you've used that (and exited) 21:20:37 it's a very new feature right now (: 21:20:55 (works for me on webkit...) 21:57:06 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Quit: Ex-Chat] 22:14:29 -!- dlowe [~dlowe@ita4fw1.itasoftware.com] has quit [Quit: *poof*] 22:18:50 -!- angavrilov_ [~angavrilo@217.71.227.181] has quit [Ping timeout: 276 seconds] 22:22:17 -!- prxq [~mommer@mnhm-590c145e.pool.mediaWays.net] has quit [Quit: Leaving] 22:47:33 -!- gonzojive [~red@c-98-207-157-93.hsd1.ca.comcast.net] has quit [Quit: gonzojive] 23:22:41 Blkt [~Blkt@dynamic-adsl-94-34-26-111.clienti.tiscali.it] has joined #sbcl 23:40:00 homie` [~levgue@xdsl-78-35-171-150.netcologne.de] has joined #sbcl 23:42:41 -!- homie [~levgue@xdsl-78-35-191-211.netcologne.de] has quit [Ping timeout: 276 seconds]