00:04:33 mbohun [~mbohun@eth649.act.adsl.internode.on.net] has joined #sbcl 00:06:04 -!- mbohun [~mbohun@eth649.act.adsl.internode.on.net] has quit [Client Quit] 00:06:27 mbohun [~mbohun@ppp115-156.static.internode.on.net] has joined #sbcl 00:06:35 The_Jon_Smith [~The_Jon_S@ip24-250-13-137.ri.ri.cox.net] has joined #sbcl 00:08:40 Gentooer [~Gentooer@108.5.69.115] has joined #sbcl 00:08:41 *nyef* screams in frustration: his new fixup flavor doesn't appear to be honored in-core. 00:10:04 ... Okay, let me amend that: Doesn't appear to be honored in-core if a new index needs to be allocated. WTF? 00:16:25 -!- tcr [~tcr@cpc5-bour5-2-0-cust340.15-1.cable.virginmedia.com] has quit [Quit: Leaving.] 00:21:53 -!- hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has quit [Quit: hargettp] 01:00:50 -!- mbohun [~mbohun@ppp115-156.static.internode.on.net] has quit [Ping timeout: 276 seconds] 01:41:47 -!- froydnj [~froydnj@gateway.codesourcery.com] has quit [Ping timeout: 276 seconds] 01:42:25 -!- Gentooer [~Gentooer@108.5.69.115] has left #sbcl 01:44:51 -!- nyef [~nyef@pool-70-109-134-127.cncdnh.east.myfairpoint.net] has quit [Quit: G'night all.] 01:59:06 froydnj [~froydnj@gateway.codesourcery.com] has joined #sbcl 02:27:21 -!- rbarraud [~rbarraud@118-93-95-133.dsl.dyn.ihug.co.nz] has quit [Read error: Operation timed out] 02:27:24 rbarraud_ [~rbarraud@118-92-139-26.dsl.dyn.ihug.co.nz] has joined #sbcl 05:35:25 -!- The_Jon_Smith [~The_Jon_S@ip24-250-13-137.ri.ri.cox.net] has quit [Ping timeout: 265 seconds] 06:01:24 mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has joined #sbcl 06:34:44 -!- Krystof [~csr21@78.146.236.83] has quit [Ping timeout: 255 seconds] 07:13:27 Krystof [~csr21@84-51-132-95.christ977.adsl.metronet.co.uk] has joined #sbcl 07:13:27 -!- ChanServ has set mode +o Krystof 07:31:44 -!- Krystof [~csr21@84-51-132-95.christ977.adsl.metronet.co.uk] has quit [Ping timeout: 272 seconds] 07:32:51 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 07:32:51 -!- ChanServ has set mode +o nikodemus 07:39:12 Blkt [~user@93-33-130-96.ip44.fastwebnet.it] has joined #sbcl 07:41:41 good morning 07:42:10 The_Jon_Smith [~The_Jon_S@ip24-250-13-137.ri.ri.cox.net] has joined #sbcl 08:20:58 tcr [~tcr@cpc5-bour5-2-0-cust340.15-1.cable.virginmedia.com] has joined #sbcl 08:32:20 Krystof [~csr21@78.146.236.83] has joined #sbcl 08:32:20 -!- ChanServ has set mode +o Krystof 09:42:47 -!- rbarraud_ [~rbarraud@118-92-139-26.dsl.dyn.ihug.co.nz] has quit [Ping timeout: 276 seconds] 10:06:01 hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has joined #sbcl 10:32:49 attila_lendvai [~attila_le@82-131-131-167.pool.invitel.hu] has joined #sbcl 10:55:31 -!- attila_lendvai [~attila_le@82-131-131-167.pool.invitel.hu] has quit [Quit: Leaving.] 11:03:36 -!- froydnj [~froydnj@gateway.codesourcery.com] has quit [Ping timeout: 265 seconds] 11:04:25 attila_lendvai [~attila_le@82-131-131-167.pool.invitel.hu] has joined #sbcl 11:05:38 -!- attila_lendvai [~attila_le@82-131-131-167.pool.invitel.hu] has quit [Client Quit] 11:14:56 I really miss some kind of protocol to enrich structure types with more specific slot types. I.e. to say, this global contains a structure with FOOBAR (a more specific subtype of the slot-declared type FOO) in slot QUUX 11:21:00 -!- hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has quit [Quit: hargettp] 11:27:54 hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has joined #sbcl 11:35:08 attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has joined #sbcl 11:43:11 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 11:51:38 -!- attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has quit [Quit: Leaving.] 12:00:48 -!- hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has quit [Quit: hargettp] 12:04:04 nikodemus [~nikodemus@cs181058025.pp.htv.fi] has joined #sbcl 12:04:08 -!- ChanServ has set mode +o nikodemus 12:38:21 attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has joined #sbcl 12:39:07 jsnell: what's the current schedule for release? 12:39:34 tonight or tomorrow night, depending on what time I get home 12:40:42 ok 13:01:24 stassats [~stassats@wikipedia/stassats] has joined #sbcl 13:28:12 tsuru [~charlie@c-174-50-217-160.hsd1.tn.comcast.net] has joined #sbcl 14:15:32 nyef [~nyef@pool-70-109-134-127.cncdnh.east.myfairpoint.net] has joined #sbcl 14:15:39 G'morning all. 14:17:59 Important safety tip: Don't use PROGV to bind SB-VM::*BINDING-STACK-POINTER*. 14:20:15 :) 14:21:26 Yeah, that only took me three failing builds to figure out, too. 14:21:39 Well, maybe two. 15:27:35 -!- attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has quit [Quit: Leaving.] 15:30:13 attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has joined #sbcl 15:30:19 -!- attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has quit [Client Quit] 15:46:57 froydnj [~froydnj@gateway.codesourcery.com] has joined #sbcl 16:00:18 nyef, so you have to special-case it? 16:01:24 Well, I tried the general special-case, which is to not PROGV if there's already a TLS-index, which cleared that up, but then it turned out that there was a type-test involved for some symbols... 16:03:13 I'm not completely decided on what to do next, but it'll probably either be rewriting the TLS-allocation routines in Lisp, creating a new VOP for doing a TLS-allocation, or creating the new VOP -and- removing it from the BIND VOP. 16:05:00 rmarynch [~roman@88.135.194.233] has joined #sbcl 16:16:44 nyef: it would be great if LET-bound specials were allocated a tls index at load-time 16:19:07 nikodemus: Umm... Yes. That -is- what I've been working on. 16:19:55 \o/ 16:20:23 nyef is practicing psychic feature development 16:20:23 Admittedly, I'm not yet sure how to make it happen without passing the symbol to the VOP twice, once in a descriptor-reg and once as a :constant arg, but... 16:23:40 In theory, though, I have it working for the {READ,WRITE}-TL-SYMBOL-VALUE macros and UNBIND VOP on x86-64, modulo various problems with actually getting the indexes allocated at runtime. 16:24:56 nikodemus: It's a pity that declarations are not allowed in when, cond, etc 16:25:28 tcr: WHEN-UNLIKELY, IF-LIKELY-FALSE, et cetera? 16:26:54 (when (p= 0.2 (test)) ...) 16:27:18 GCC does it by wrapping the boolean expression in likely(), unlikely() 16:27:20 bonus point for implementing p= as having a record of the number of times it's true and false, and reporting functions 16:27:45 tcr: which are really just wrappers around __builtin_expect 16:28:38 I think the recording and reporting should really be a separate thing--sb-cover or something like that 16:29:15 sure, make recording conditional on sb-cover 16:29:17 froydnj: Sure the point is that it's wrapping the boolean expression rather than annotating a branch 16:31:49 *tcr* sorely misses C-M-x magic with SB-EXT:DEFGLOBAL 16:32:25 heh 16:32:42 DanLentz [~danlentz@c-68-32-54-29.hsd1.nj.comcast.net] has joined #sbcl 16:36:44 At which moment does sbcl call finalizers? 16:37:13 angavrilov: At some point within GC. 16:37:27 I forget if it's in SUB-GC or somewhere outside it. 16:37:57 I wonder what sbcl's gc needs to coax it to collect and finalize an object within an automated test 16:38:26 Fewer references to the object being finalized, typically. 16:38:35 call sb-ext:gc :full t ? 16:39:19 For ecl & ccl it was mostly enough to call gc 3 times, and in ccl's case flush the finalizer queue (normally done by a background thread) 16:39:36 But in sbcl it doesn't want to work at the moment 16:40:59 Possibly a stray reference on the stack? 16:41:43 Maybe. In ecl's case I had to do a hack with a function returning (values nil nil nil nil nil) to wipe the values block. 16:42:22 Mmm... And calling SCRUB-CONTROL-STACK might very well not help... 16:45:45 (The reason SCRUB-CONTROL-STACK might not help is that it would take up a stack frame or two itself, and they wouldn't get properly scrubbed.) 16:47:40 it'd be nice to mark (some) alien functions so calls to them don't do binding of special variables 16:48:44 But except that one test, it seems that I've succesfully added sbcl support to my cl-gpu library :) 16:49:06 froydnj: Hey, I can at least get you cheaper binding for *ALIEN-STACK*. 16:49:30 win! 16:57:40 hey, that reminds me. 16:57:46 why does alien-stack exist 16:57:53 why doesn't that stuff just go on the normal stack? 16:58:37 if (let ((x 0)) (declare (type (unsigned-byte 64) x)) ...) can go on the normal stack, why shouldn't random alien data be able to? 16:59:35 foom: possibly depends on the architecture, etc. 17:00:00 okay, let's assume for arguments' sake that I only care about x86/x86-64... 17:00:07 which btw, are the only archs that *alien-stack* are used on. :) 17:01:50 foom: Easier to not conditionalize it for various platforms? 17:02:16 but it already is 17:02:19 Also, I have this rough idea of doing an x86-64 port with precise GC. 17:02:27 the other platforms do even slower stuff 17:02:32 Which would make it the number stack, not the alien-stack. 17:03:05 ehhh. it doesn't seem worth doing precise GC unless you have compile-time stack use info. 17:04:37 heck, where does *alien-stack* get its value set? 17:06:23 It seems like the alien stack allocation codepath could be a bunch more efficient by just pushing onto the normal stack like a let would do. 17:07:45 froydnj: Either thread.c or x86-64-assem.S. 17:07:47 i suspect part of the reason *alien-stack* exists is because dynamic-extent is new 17:08:32 nyef: ah, didn't notice the STATIC_TLS_INIT in my grep results. thanks 17:08:43 *alien-stack* should really be ALWAYS-BOUND 17:09:50 and have a statically allocated tls slot index. :) 17:10:03 *nyef* notes that his current tree doesn't have STATIC_TLS_INIT at all. 17:12:44 most of the internals should be ALWAYS-BOUND, really 17:19:53 is ALWAYS-BOUND now implemented? 17:22:04 has been for a while 17:24:41 -!- rmarynch [~roman@88.135.194.233] has quit [Quit: Leaving] 17:35:51 since 1.0.29 17:47:09 rmarynch [~roman@88.135.194.233] has joined #sbcl 17:49:31 Is there any way to write a regression test which checks whether a code produces a warning in SBCL? 17:50:30 yes 17:51:05 notably, you can use handler-case or handler-bind. 17:51:43 I have looked into loop.pure/impure test files, but I haven't seen an example. Are there some tests like this? 17:52:43 Fare: thanks, I will try 17:53:13 rmarynch: Possibly some of the dynamic-extent or compiler tests? 17:53:48 nyef: sure, I stupidly forgot about them :) 18:04:45 rmarynch: (with-test (:name :my-test) (assert (eq :warned (handler-case (compile nil `(lambda ...)) (warning () :warned))))) is one way 18:05:28 nikodemus: thank you, I will keep this template 18:07:03 nikodemus: but may I use something like this when checking for _errors_ : 18:07:05 (multiple-value-bind (result error) 18:07:05 (ignore-errors 18:07:05 (eval '(loop for i from 1 repeat 7 of-type fixnum collect i))) 18:07:05 (assert (null result)) 18:07:05 (assert (typep error 'program-error))) 18:07:18 this is from loop.pure 18:07:38 rmarynch: as long as the test tests what it is supposed to test 18:07:44 ok 18:40:38 -!- nikodemus [~nikodemus@cs181058025.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 18:56:53 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 18:56:53 -!- ChanServ has set mode +o nikodemus 19:04:19 -!- rmarynch [~roman@88.135.194.233] has quit [Quit: Leaving] 19:23:11 -!- DanLentz [~danlentz@c-68-32-54-29.hsd1.nj.comcast.net] has quit [Quit: Colloquy for iPhone - http://colloquy.mobi] 19:26:46 *nyef* realizes that he's about to use %PRIMITIVE BIND, and shudders. 19:29:28 Kaer [b@c-cfcee253.97-16-64736c12.cust.bredbandsbolaget.se] has joined #sbcl 19:30:41 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 19:38:19 nikodemus [~nikodemus@cs181199216.pp.htv.fi] has joined #sbcl 19:38:19 -!- ChanServ has set mode +o nikodemus 19:43:04 Ugh. (without-interrupts (let ((saved-bsp (%primitive sb!c:current-binding-pointer))) (%primitive sb!c:bind nil symbol) (%primitive sb!c:unbind-to-here saved-bsp))). Just... Ugh. 19:43:32 oof, that looks awful 19:43:56 It's at least shorter than the explanation of why I did it that way. 19:45:10 (Long story short: Two copies of the TLS-allocation code is too many, let alone three, and PROGV checks constraints on symbol values.) 19:46:20 On the upside, I can get rid of the C runtime copy of the TLS-allocator. 19:46:22 -!- nikodemus [~nikodemus@cs181199216.pp.htv.fi] has quit [Quit: This computer has gone to sleep] 20:48:29 So, all that, and I turned around and neglected the test to see if the symbol already had an index, thus binding SB!VM::*BINDING-STACK-POINTER*. 20:50:41 oo, bet that did interesting things 20:51:47 Yup. Completely useless interesting things, at that. 20:52:06 At least it was a -familiar- failure mode. 21:01:04 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 240 seconds] 21:04:51 rbarraud_ [~rbarraud@118-92-139-26.dsl.dyn.ihug.co.nz] has joined #sbcl 21:07:58 I 21:08:04 eargh, sorry all 21:13:34 -!- Blkt [~user@93-33-130-96.ip44.fastwebnet.it] has quit [Ping timeout: 265 seconds] 21:14:48 -!- mega1 [~quassel@catv4E5CABA2.pool.t-online.hu] has quit [Ping timeout: 240 seconds] 21:15:03 attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has joined #sbcl 22:13:05 -!- attila_lendvai [~attila_le@4d6f5d3b.adsl.enternet.hu] has quit [Quit: Leaving.] 22:46:35 hargettp [~anonymous@pool-71-184-188-218.bstnma.east.verizon.net] has joined #sbcl 23:44:19 -!- Fare [~Fare@ita4fw1.itasoftware.com] has quit [Quit: Leaving] 23:45:28 -!- tcr [~tcr@cpc5-bour5-2-0-cust340.15-1.cable.virginmedia.com] has quit [Quit: Leaving.]