00:15:20 Okay, good. I didn't want to tackle what looks to me like a weekend hack and put some poor student out of a summer project. (-: 00:16:39 nyef: right, aweekend hack after a couple months' worth of familisation with the runtime ;) 00:18:17 Sure. But I put that couple months in several years ago. 00:18:38 Plus it's a lead in to silly games using software read barriers. 00:20:00 not sure I approve of any kind of read barrier, but sure ;) After failing a couple times for write barriers, I think the best option is to hook directly in the assembler. 00:20:38 I noticed that once you're paying the cost for a mark phase that you no longer have an O(n) phase for fixing up weak pointers, they scavenge just like any other object. 00:20:58 yup 00:21:34 And while I'm on the subject, I was thinking about conservative roots. Can we say that they pin an OBJECT rather than an entire page? 00:22:05 seems like that'd be a clear improvement to me. 00:22:15 That is, if we're computing markbits for a page, we'd mark the object that the roots point to rather than the entire page, even if we can't move the page? 00:22:23 Yeah, that seemed like a win to me as well. 00:22:37 there's some weirdness re pinning and write barrier, btw. 00:23:10 whenever an object is pinned, we premark it dirty. I'm not sure why we do that, especially for large vectors. 00:23:13 The bit where we don't write-barrier pinned pages? 00:23:44 right... except that it extends to all the pages that the object spans. 00:24:01 ... "object"? 00:24:26 say, a 1 GB simple-vector. 00:24:31 Oh, for a bleeding STACK MAP. /-: 00:24:56 *nyef* winces at the thought of a 1 GB simple-vector T. 00:25:15 hash tables. 00:25:21 Ugh. 00:25:35 Wait, a gigabyte hash vector? Really? 00:26:10 I'm sure there are some out there... Even just a couple hundred MBs cause a noticeable slowdown *on minor GCs* 00:27:06 I was also thinking of sub-gc-page-granularity write-barrier tracking. Basically run the tracking down to the CPU page size, rather than leaving it open to the full GC page. 00:27:55 might as well just reduce the card size to 4 KB then 00:28:44 For young-pointer tracking, yes, but we could then also run the page size UP without having to worry about the cost of tracking young pointers as much. 00:29:27 what's the point of larger GC pages if we're OK with tiny granularity write barriers? 00:31:01 256k GC pages means all of 64 bits of write barrier tracking for young pointers per page. 00:31:46 Assuming 4k hardware pages. 00:32:02 But it keeps our GC page table size down. 00:32:42 is that table's size an issue for anyone? especially now that it's implicitly initialised with calloc? 00:32:58 We have to walk it on GC? 00:33:28 I don't know, I'm still trying to find my way in this space, really. 00:33:45 but it's orders of magnitude smaller than the data it manages... 00:34:34 I've already figured that the Azul collector has to be, effectively, a twospace collector rather than a generational collector, and that it has to rewrite EVERY pointer at least once per cycle, even if the data doesn't physically move... 00:35:39 wow... and here I am trying to find a scheme that lets us avoid paging live but unused data in ;) 00:36:41 If you're paging, you're already sunk. 00:36:51 -!- Bike [~Glossina@71-222-34-97.ptld.qwest.net] has quit [Ping timeout: 276 seconds] 00:37:23 Besides, if we separate boxed from unboxed data... No, that doesn't work, because of the read barrier and marking... 00:37:26 varnish disagrees. 00:37:45 Bike [~Glossina@71-222-34-97.ptld.qwest.net] has joined #sbcl 00:38:29 Even without GC, if the box that I'm using now starts paging, I'm sunk. 00:38:39 (OSX paging performance is dreadful.) 00:39:10 yes. page faults in general suck on os x. 00:42:10 I think that an azul-style collector might be an interesting build-time option, at least. but it doesn't seem as though it's the be-all, end-all GC option for us. 00:44:00 OTOH, I'd have no trouble believing that a given collector fully dominates gencgc. It doesn't have to be an end-all; better than gencgc is good enough ;) 00:44:34 Would gencgc + mark/sweep count? 00:44:44 I believe it would (: 00:45:34 I think I know what my project is for this weekend, then. 00:45:59 well, this could be a huge release. 00:47:28 Mmm. Especially if I get time to tackle some of the SPARC lossages. 00:49:27 SPARC threading, while it would be amusing, is out of scope at this time, but my potential project list includes some massive SPARC overhaul. 00:49:45 I just have a dozen of bugfixen to commit, and then SSE 00:51:17 Let's see... stack-allocatable-fixed-objects, stack-allocatable-vectors, test-suite cleanup, pseudo-atomic cleanup, error trap generation cleanup... 00:52:15 Actually, the P-A and error-trap cleanups are straightforward, I should probably do those even if I'm strapped for time. 00:53:04 Unlike stack-allocatable-foo, they won't involve assembly hacking. 00:53:25 And since I don't actually KNOW sparc assembly language, nor do I have an archref handy... 01:04:20 prxq__ [~mommer@mnhm-5f75fec2.pool.mediaWays.net] has joined #sbcl 01:05:30 -!- foreignFunction [~niksaak@ip-4761.sunline.net.ua] has quit [Quit: Leaving.] 01:07:23 -!- prxq_ [~mommer@mnhm-5f75d3c6.pool.mediaWays.net] has quit [Ping timeout: 255 seconds] 01:07:50 brucem_ [~bmitchene@waywardmonkeys.com] has joined #sbcl 01:08:43 -!- brucem [~bmitchene@waywardmonkeys.com] has quit [Ping timeout: 245 seconds] 01:08:43 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Ping timeout: 245 seconds] 01:08:44 -!- redline6561 [~redline65@li69-162.members.linode.com] has quit [Ping timeout: 245 seconds] 01:08:44 redline6561_ [~redline65@li69-162.members.linode.com] has joined #sbcl 01:08:48 -!- automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has quit [Ping timeout: 245 seconds] 01:09:23 ASau`` [~user@p4FF97CD4.dip0.t-ipconnect.de] has joined #sbcl 01:09:33 automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has joined #sbcl 01:10:03 |3b|` [foobar@cpe-72-177-66-41.austin.res.rr.com] has joined #sbcl 01:11:19 -!- ASau` [~user@p4FF97CD4.dip0.t-ipconnect.de] has quit [Ping timeout: 264 seconds] 01:11:20 -!- |3b| [foobar@cpe-72-177-66-41.austin.res.rr.com] has quit [Ping timeout: 264 seconds] 01:13:19 -!- ASau`` [~user@p4FF97CD4.dip0.t-ipconnect.de] has quit [*.net *.split] 01:13:20 -!- slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has quit [*.net *.split] 01:13:20 -!- christoph_debian [~christoph@ppp-188-174-90-140.dynamic.mnet-online.de] has quit [*.net *.split] 01:13:20 -!- _8david [~user@port-212-202-134-139.static.qsc.de] has quit [*.net *.split] 01:13:20 -!- danlentz [~danlentz@c-68-37-70-235.hsd1.nj.comcast.net] has quit [*.net *.split] 01:13:20 -!- capisce [~srodal@cm-84.215.35.251.getinternet.no] has quit [*.net *.split] 01:14:36 _8david [~user@port-212-202-134-139.static.qsc.de] has joined #sbcl 01:16:03 ASau`` [~user@p4FF97CD4.dip0.t-ipconnect.de] has joined #sbcl 01:16:10 slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has joined #sbcl 01:17:55 capisce [~srodal@cm-84.215.35.251.getinternet.no] has joined #sbcl 01:20:31 drmeiste_ [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 01:20:35 christoph_debian [~christoph@host-188-174-215-144.customer.m-online.net] has joined #sbcl 01:23:46 -!- drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [Ping timeout: 276 seconds] 01:27:07 -!- _8david [~user@port-212-202-134-139.static.qsc.de] has quit [Ping timeout: 245 seconds] 01:27:18 -!- automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has quit [Ping timeout: 245 seconds] 01:27:23 automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has joined #sbcl 01:30:34 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 01:32:58 -!- Ralt [Ralt@2a01:7e00::f03c:91ff:feae:6c69] has quit [Ping timeout: 245 seconds] 01:33:20 ASau``` [~user@p4FF97CD4.dip0.t-ipconnect.de] has joined #sbcl 01:33:34 luis` [~luis@nhop.r42.eu] has joined #sbcl 01:34:01 -!- luis [~luis@nhop.r42.eu] has quit [Ping timeout: 245 seconds] 01:34:13 scymtym_ [~user@2001:638:504:2093:226:b9ff:fe7d:3e1f] has joined #sbcl 04:48:08 ccl-logbot [~ccl-logbo@setf.clozure.com] has joined #sbcl 04:48:08 04:48:08 -!- names: ccl-logbot attila_lendvai teggi jdz_ |3b|``` loke_ prxq_ samebchase luis` christoph1 antoszka redline6561_ Bike Quadrescence joshe flip214 ehaliewi` brucem xymox jsnell_ daimrod automaci1j Ralt capisce slyrus yacks edgar-rfx mmuggli`` kanru easye`` milosn tsuru``` Hydan cow-orker reb davorb arrdem minion Posterdati pipping bege cmm- ivan`` pchrist gor[e] foom pkhuong asedeno fe[nl]ix whoops antifuchs Tribal specbot p_l|omoikane Watcher7 robgssp 05:46:18 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 05:46:51 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 05:53:05 ASau [~user@p4FF97CD4.dip0.t-ipconnect.de] has joined #sbcl 06:04:43 -!- ehaliewi` [~user@50-0-51-11.dsl.static.sonic.net] has left #sbcl 06:06:22 sdemarre [~serge@91.176.198.219] has joined #sbcl 06:19:58 Krystof [~user@81.174.155.115] has joined #sbcl 06:19:58 -!- ChanServ has set mode +o Krystof 06:52:43 -!- Watcher7 is now known as Watcher7|off 06:58:07 pranavrc [~pranavrc@122.164.208.195] has joined #sbcl 06:58:07 -!- pranavrc [~pranavrc@122.164.208.195] has quit [Changing host] 06:58:07 pranavrc [~pranavrc@unaffiliated/pranavrc] has joined #sbcl 07:00:57 lichtblau [~user@port-212-202-134-139.static.qsc.de] has joined #sbcl 07:11:40 -!- automaci1j is now known as automaciej 07:16:48 -!- pranavrc [~pranavrc@unaffiliated/pranavrc] has quit [Quit: Ping timeout: ] 07:39:53 wbooze [~wbooze@xdsl-78-35-188-80.netcologne.de] has joined #sbcl 07:54:28 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 08:02:04 -!- Bike [~Glossina@71-222-34-97.ptld.qwest.net] has quit [Quit: deeeee] 08:05:33 -!- pkhuong [~pkhuong@gravelga.new.xen.prgmr.com] has quit [Remote host closed the connection] 08:14:37 foreignFunction [~niksaak@ip-4761.sunline.net.ua] has joined #sbcl 08:21:41 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 08:23:39 scymtym [~user@89.31.118.161] has joined #sbcl 08:57:02 -!- wbooze [~wbooze@xdsl-78-35-188-80.netcologne.de] has quit [Quit: none] 09:10:01 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 10:02:23 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 10:23:50 akovalenko [~user@195.18.46.21] has joined #sbcl 10:30:43 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Remote host closed the connection] 10:33:55 -!- teggi [~teggi@123.20.31.134] has quit [Remote host closed the connection] 11:07:14 drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 11:12:45 pkhuong [~pkhuong@gravelga.xen.prgmr.com] has joined #sbcl 11:14:50 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 11:19:43 attila_lendvai [~attila_le@95.57.66.242] has joined #sbcl 11:19:43 -!- attila_lendvai [~attila_le@95.57.66.242] has quit [Changing host] 11:19:43 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 11:32:21 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 252 seconds] 11:39:03 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has quit [Quit: Leaving.] 11:42:58 -!- akovalenko [~user@195.18.46.21] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 11:48:15 -!- sdemarre [~serge@91.176.198.219] has quit [Quit: Leaving.] 11:49:22 sdemarre [~serge@91.176.198.219] has joined #sbcl 11:58:33 akovalenko [~user@195.18.46.21] has joined #sbcl 12:05:43 -!- jsnell_ is now known as jsnell 12:18:04 -!- |3b|``` is now known as |3b| 12:25:56 -!- sdemarre [~serge@91.176.198.219] has quit [Ping timeout: 256 seconds] 12:42:02 sdemarre [~serge@91.176.198.219] has joined #sbcl 12:43:33 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Remote host closed the connection] 12:45:28 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 13:01:09 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Remote host closed the connection] 13:13:37 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 13:16:48 -!- drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 13:19:46 -!- sdemarre [~serge@91.176.198.219] has quit [Ping timeout: 256 seconds] 13:26:02 tsuru```` [~charlie@adsl-74-179-198-236.bna.bellsouth.net] has joined #sbcl 13:28:02 -!- tsuru``` [~charlie@adsl-74-179-28-37.bna.bellsouth.net] has quit [Ping timeout: 272 seconds] 13:29:04 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Remote host closed the connection] 13:31:01 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 13:32:40 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Client Quit] 13:33:40 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: This computer has gone to sleep] 13:47:49 -!- luis` is now known as luis 13:48:17 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 13:56:31 drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 14:04:34 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Remote host closed the connection] 14:09:19 -!- drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 14:10:15 LiamH [~none@96.231.225.69] has joined #sbcl 14:12:29 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #sbcl 14:13:44 nyef [~nyef@pool-64-222-174-41.man.east.myfairpoint.net] has joined #sbcl 14:13:55 G'morning all. 14:21:56 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 14:26:52 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 14:27:41 morning nyef! How's that map-allocated-objects patch coming? 14:27:48 redline6561_: git pull. 14:30:06 sdemarre [~serge@91.176.198.219] has joined #sbcl 14:37:08 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Quit: none] 14:37:36 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 14:44:45 \o/ 14:45:20 yay, more sb loop weirdness. 14:45:44 ";; FIXME: This tag appears not to be present anywhere." indeed. I think we want (throw 'estimate-code-size nil) 14:49:19 -!- scymtym [~user@89.31.118.161] has quit [Ping timeout: 264 seconds] 14:49:19 -!- automaciej [~automacie@quinoa.blizinski.pl] has quit [Ping timeout: 264 seconds] 14:49:26 automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has joined #sbcl 14:50:04 Do we have a constant defined for number of words (or allocation units) per GC page? 14:52:20 pranavrc [~pranavrc@122.164.208.195] has joined #sbcl 14:52:20 -!- pranavrc [~pranavrc@122.164.208.195] has quit [Changing host] 14:52:20 pranavrc [~pranavrc@unaffiliated/pranavrc] has joined #sbcl 14:52:50 Actually, hold that thought, I've got to run. Back in a while. 14:56:26 ;;@@@@ ???? 15:17:21 drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 15:17:53 quick, let's call Symbolics and ask them what their comment means 15:18:51 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 240 seconds] 15:21:05 I mean, somewhat impressive to consider that for every XXX comment being written, there could be someone wondering what it means, some 19 to 27 years later. 15:21:40 drmeiste_ [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 15:21:53 -!- drmeiste_ [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [Remote host closed the connection] 15:23:26 luis` [~luis@nhop.r42.eu] has joined #sbcl 15:23:36 -!- luis [~luis@nhop.r42.eu] has quit [Disconnected by services] 15:23:39 -!- luis` is now known as luis 15:29:58 -!- drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [*.net *.split] 15:29:58 -!- Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has quit [*.net *.split] 15:29:58 -!- Krystof [~user@81.174.155.115] has quit [*.net *.split] 15:31:40 davazp [~user@178.167.177.234.threembb.ie] has joined #sbcl 15:39:47 Bike [~Glossina@71-222-34-97.ptld.qwest.net] has joined #sbcl 15:55:01 stassats [~stassats@wikipedia/stassats] has joined #sbcl 16:01:03 -!- slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 260 seconds] 16:05:04 nyef: SB-ALIEN-INTERNALS:FIND-SAVED-FP-AND-PC => The function SB-ALIEN::GET-LISP-OBJ-ADDRESS is undefined. 16:08:22 slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has joined #sbcl 16:13:49 vi1 [~vi1@93.92.216.186] has joined #sbcl 16:17:59 -!- loke_ [~loke@203.127.16.194] has quit [Ping timeout: 245 seconds] 16:18:21 stassats: Damnit. 16:18:47 Right, I'll fix that if nobody else has already. 16:19:24 loke_ [~loke@203.127.16.194] has joined #sbcl 16:25:26 -!- yacks [~py@180.151.36.168] has quit [Ping timeout: 246 seconds] 16:25:40 brucem_ [~bmitchene@waywardmonkeys.com] has joined #sbcl 16:25:56 -!- loke_ [~loke@203.127.16.194] has quit [Ping timeout: 245 seconds] 16:25:56 -!- brucem [~bmitchene@69.164.192.175] has quit [Ping timeout: 245 seconds] 16:25:56 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [Ping timeout: 245 seconds] 16:26:43 -!- slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has quit [Ping timeout: 260 seconds] 16:26:49 antoszka [~antoszka@unaffiliated/antoszka] has joined #sbcl 16:28:23 -!- Bike [~Glossina@71-222-34-97.ptld.qwest.net] has quit [*.net *.split] 16:28:23 -!- automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has quit [*.net *.split] 16:28:23 -!- daimrod [daimrod@sbrk.org] has quit [*.net *.split] 16:28:53 loke_ [~loke@203.127.16.194] has joined #sbcl 16:29:08 Bike [~Glossina@71-222-34-97.ptld.qwest.net] has joined #sbcl 16:29:08 automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has joined #sbcl 16:29:08 daimrod [daimrod@sbrk.org] has joined #sbcl 16:32:52 stassats: That should do it... I hope. 16:33:38 ok, let's test it 16:34:32 hotpatching seems to work 16:35:09 drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 16:42:27 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Ping timeout: 256 seconds] 16:42:38 -!- cmm- [~cmm@bzq-79-182-100-51.red.bezeqint.net] has quit [Ping timeout: 256 seconds] 16:43:29 cmm [~cmm@bzq-79-182-100-51.red.bezeqint.net] has joined #sbcl 16:47:57 slyrus [~chatzilla@adsl-76-254-42-198.dsl.pltn13.sbcglobal.net] has joined #sbcl 16:52:10 sdemarre1 [~serge@91.176.198.219] has joined #sbcl 16:52:58 pkhuong_ [~pkhuong@gravelga.xen.prgmr.com] has joined #sbcl 16:53:51 -!- sdemarre [~serge@91.176.198.219] has quit [Ping timeout: 256 seconds] 16:53:51 -!- pkhuong [~pkhuong@gravelga.xen.prgmr.com] has quit [Ping timeout: 256 seconds] 20:14:34 ccl-logbot [~ccl-logbo@setf.clozure.com] has joined #sbcl 20:14:34 20:14:34 -!- names: ccl-logbot wbooze astertronistic redline6561_ drmeister loke_ Bike reb arrdem specbot p_l|omoikane easye`` yacks cow-orker Posterdati vi1 nyef_ prxq__ davorb_ samebchase ASau` stassats _8david LiamH pkhuong_ slyrus cmm daimrod automaciej antoszka brucem_ luis akovalenko angavrilov asedeno foom gor[e] pchrist ivan`` bege pipping fe[nl]ix whoops antifuchs Tribal Watcher7 robgssp milosn capisce Ralt jsnell xymox flip214 joshe christoph1 jdz_ 20:26:57 emartenson__ [~loke@203.127.16.194] has joined #sbcl 20:30:43 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 256 seconds] 20:31:01 -!- loke_ [~loke@203.127.16.194] has quit [Ping timeout: 276 seconds] 20:38:26 -!- ASau` is now known as ASau 20:42:26 redline6561 [~redline65@li69-162.members.linode.com] has joined #sbcl 20:42:39 -!- Bike [~Glossina@75-164-174-146.ptld.qwest.net] has quit [*.net *.split] 20:42:39 -!- drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has quit [*.net *.split] 20:42:40 -!- redline6561_ [~redline65@li69-162.members.linode.com] has quit [*.net *.split] 20:44:16 Bike [~Glossina@75-164-174-146.ptld.qwest.net] has joined #sbcl 21:00:51 -!- astertronistic [~astertron@ip70-181-235-122.sd.sd.cox.net] has quit [Quit: Leaving] 21:01:16 drmeister [~drmeister@pool-173-59-25-70.phlapa.fios.verizon.net] has joined #sbcl 21:07:53 edgar-rft [~GOD@HSI-KBW-149-172-63-75.hsi13.kabel-badenwuerttemberg.de] has joined #sbcl 21:16:45 _8david` [~user@port-212-202-134-139.static.qsc.de] has joined #sbcl 21:21:17 antoszka_ [~antoszka@89-76-91-235.dynamic.chello.pl] has joined #sbcl 21:21:54 -!- stassats [~stassats@wikipedia/stassats] has quit [Read error: Operation timed out] 21:24:16 -!- _8david [~user@port-212-202-134-139.static.qsc.de] has quit [*.net *.split] 21:24:19 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [*.net *.split] 21:28:32 nyef_: typically, you'd have a queue of objects to visit and a flag per object (or whatever granularity you're marking at) 21:29:54 Mmm. At this point, I think that I'm going to go with whatever I can come up with, and consider optimizing it or doing something more conventional later. 21:31:51 I've already run into a couple of surprises in the gencgc logic itself, like the dont_move flags being cleared at the start of a collection rather than at some point after they have all been set but before returning from the collection. 21:32:28 yeah... we should take notes of this stuff somewhere 21:32:44 Or just plain fix the brain-damage. 21:32:49 I remember that being surprising for software WB 21:33:15 I figured software WB were more likely to introduce new bugs than not, so I preferred not changing too much stuff ;) 21:33:57 I'm just testing a bit now where I don't move the dont_move pages to newspace until after I've finished checking all of the conservative roots. 21:34:43 Once this is committed, I can turn around and make it also clear the dont_move flag. 21:35:13 Take out the clear loop at the beginning, strip the extra check for a matching generation, and it should Just Work, and be less surprising. 21:36:50 Also means that, once I have the mark phase in place, we can just go through and mark pages over a certain threshold of live data dont_move... 21:37:19 (Throw in a "FREE_SPACE_WIDETAG", and we don't even have extra conservative roots from the result.) 21:37:59 are you thinking mark/compress or mark/sweep? 21:38:18 Possibly more the former. 21:38:42 My first goal, however, is just to get enough in place to be able to handle weak pointers by way of the markbits. 21:39:32 And it's all build-time conditional anyway, other than the refactoring required to support the mark phase. 21:39:40 have you seen Haible's short paper on GC and weak references? 21:39:51 I might have, but it'd've been ages back. 21:40:47 he has interesting stuff on weak hash tables 21:41:01 I vaguely remember something about that. 21:41:37 Honestly, I'm not looking to change the semantics of anything user-visible right now, and am working quite incrementally. (-: 21:43:22 It's also about implementation http://www.haible.de/bruno/papers/cs/weak/WeakDatastructures-writeup.html is it, I believe 21:46:36 Okay, yes, I remember reading this before. And, clearly, I need to take it into account at some point, but not immediately. Thanks. 21:52:28 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Quit: none] 21:52:43 davazp [~user@31.200.128.243] has joined #sbcl 22:01:06 wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has joined #sbcl 22:02:21 Hrm. dont_move pages are NEVER write-protected. This is weird. 22:03:01 What on earth is the justification for this? 22:04:25 christoph2 [~christoph@ppp-188-174-30-114.dynamic.mnet-online.de] has joined #sbcl 22:05:13 milosn_ [~milosn@user-5af501c0.broadband.tesco.net] has joined #sbcl 22:10:08 -!- christoph1 [~christoph@ppp-188-174-30-114.dynamic.mnet-online.de] has quit [*.net *.split] 22:10:11 -!- milosn [~milosn@user-5af501c0.broadband.tesco.net] has quit [*.net *.split] 22:10:16 -!- Tribal [tribal@rcfreak0.com] has quit [*.net *.split] 22:10:35 yes we talked about this yesterday (: I remember a snippet from DTC to the effect that it makes pinning foreign-call friendly, but that's bull: the object might be WPed before pinning. 22:11:25 Tribal [tribal@rcfreak0.com] has joined #sbcl 22:14:52 There's a comment at around gencgc.c line 2315 in my working tree, starting with "It is essential that pages are not write protected". 22:15:08 That's the only real justification that I've seen thus far. 22:16:01 right, but we re-WP everything afterward. 22:16:28 ah, I see. it could be pinned from before the previous GC. 22:16:54 no, I don't understand... 22:17:16 Yeah, and the comment is on an assert, which is really puzzling me. 22:17:34 -!- wbooze [~wbooze@xdsl-78-35-175-12.netcologne.de] has quit [Read error: Operation timed out] 22:21:41 Ugh. And the assert is always true because the first conditional in preserve_pointer() limits the check to oldspace pages, and unprotect_oldspace() has already been done. 22:22:42 The other aspect to pinning objects for foreign calls is that, for the most part, we should be passing unboxed object pointers to foreign functions ANYWAY. 22:23:32 Mmm... Not that I believe that the compiler keeps track of the difference between boxed_region and unboxed_region at this point... 22:24:27 wbooze [~wbooze@xdsl-78-35-142-240.netcologne.de] has joined #sbcl 22:24:28 right. we only have a single nursery. 22:24:42 That could be fixed, but not worth it right now. 22:24:54 So, what are the reasons to pin an object explicitly? 22:25:16 The classic reason is so that an internal pointer to it can be passed to alien code. 22:25:25 Is there another reason? 22:25:47 I think that's it. 22:25:54 Yes: If we want to do something horribly unsafe involving an internal pointer from Lisp. 22:25:56 s/pointer/vector/ in fact ;) 22:26:27 And if we're doing horribly unsafe internal things from Lisp, we're less likely to be finicky about unboxed object representations. 22:26:59 (We have SAP-REF-LISPOBJ for a reason, after all... Although that was probably for TLS slot access.) 22:27:42 The ONLY reason to pin an object implicitly is because it's a return address. 22:28:09 in pure Lisp code, sure. 22:28:32 But it's *really* useful to be able to pass unboxed vectors to C and Fortran. 22:29:01 If you're passing a vector to an alien function, you're supposed to pin the damned thing explicitly. 22:30:30 And if you're passing a pointer to an alien function, odds are it's to the data area of an unboxed vector. 22:32:04 So, for implicit pinning of objects, the only objects that it makes sense to pin are code-components, because they are return addresses. 22:34:32 Unless there are internal pointers around, which should only happen for interrupt contexts. 22:35:06 -!- prxq__ [~mommer@mnhm-5f75fec2.pool.mediaWays.net] has quit [Quit: Leaving] 22:35:07 Hrm. 22:39:02 There's some idea kicking around in my head about detecting likely interior pointers within an interrupt context by trying to pair every register against a valid object address, but it doesn't quite work because we can have an unboxed register that looks like a valid object pointer... 22:39:25 There's an angle there, though. 22:40:53 If we assume that an interior pointer has to be paired against a (boxed) base pointer, we can check for valid combinations of base pointers and possible interior poin... No, not quite. 22:41:26 We only have to pin things that look like valid pointers, but we ALREADY only pin things that look like valid pointers or point to code pages (the return-address thing). 22:44:20 If a pinned page is a code page, there's no sense in NOT write-protecting it. 22:44:37 If a pinned page is an unboxed page, there's no sense in write-protecting it. 22:44:50 -!- edgar-rft [~GOD@HSI-KBW-149-172-63-75.hsi13.kabel-badenwuerttemberg.de] has quit [Quit: bleeding] 22:45:03 -!- ivan`` [~ivan@unaffiliated/ivan/x-000001] has quit [Ping timeout: 256 seconds] 22:45:42 gor[e]_ [~svr@79.165.187.105] has joined #sbcl 22:45:47 -!- gor[e] [~svr@79.165.187.105] has quit [Ping timeout: 256 seconds] 22:45:59 If a pinned page is a boxed page... It's probably either from genesis, or was pinned as a nursery page before it could be split out into boxed and unboxed data. 22:46:11 -!- pchrist [~spirit@gentoo/developer/pchrist] has quit [Ping timeout: 256 seconds] 22:47:14 Do we ever allocate code objects into a non-code page outside of genesis? 22:47:44 ivan`` [~ivan@unaffiliated/ivan/x-000001] has joined #sbcl 22:48:27 -!- fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has quit [Ping timeout: 256 seconds] 22:48:41 fe[nl]ix [~quassel@pdpc/supporter/professional/fenlix] has joined #sbcl 22:50:35 cmm- [~cmm@bzq-79-182-100-51.red.bezeqint.net] has joined #sbcl 22:52:01 And the answer is "no", we don't allocate code objects outside of a code page outside of genesis. 22:55:41 -!- _8david` [~user@port-212-202-134-139.static.qsc.de] has quit [Ping timeout: 256 seconds] 22:55:49 -!- cmm [~cmm@bzq-79-182-100-51.red.bezeqint.net] has quit [Ping timeout: 256 seconds] 22:55:52 -!- brucem_ [~bmitchene@waywardmonkeys.com] has quit [Ping timeout: 256 seconds] 22:58:52 brucem [~bmitchene@waywardmonkeys.com] has joined #sbcl 22:59:22 gor[e] [~svr@79.165.187.105] has joined #sbcl 23:00:09 pchrist [~spirit@gentoo/developer/pchrist] has joined #sbcl 23:00:30 ... and we can probably conditional-compile out a VOP on gencgc SPARC and PPC. 23:02:07 I'm really not coming up with a plausible reason for overriding the default WP behavior for pinned pages. 23:05:38 -!- gor[e]_ [~svr@79.165.187.105] has quit [*.net *.split] 23:15:19 davazp` [~user@92.251.161.204.threembb.ie] has joined #sbcl 23:18:21 -!- davazp [~user@31.200.128.243] has quit [Ping timeout: 245 seconds] 23:20:25 jsnell_ [~jsnell@ash.snellman.net] has joined #sbcl 23:25:19 sipo [~sipo@50-79-167-33-static.hfc.comcastbusiness.net] has joined #sbcl 23:27:46 -!- jsnell [~jsnell@ash.snellman.net] has quit [Ping timeout: 264 seconds] 23:28:04 -!- Ralt [Ralt@2a01:7e00::f03c:91ff:feae:6c69] has quit [*.net *.split] 23:28:05 -!- capisce [~srodal@cm-84.215.35.251.getinternet.no] has quit [*.net *.split] 23:28:08 -!- robgssp [~user@2620:8d:8000:e50:21c:c0ff:fea3:7cc5] has quit [*.net *.split] 23:28:13 -!- foom [jknight@nat/google/x-qwprtxjzdlmkcbti] has quit [*.net *.split] 23:28:16 capisce [~srodal@cm-84.215.35.251.getinternet.no] has joined #sbcl 23:31:20 Ralt [Ralt@2a01:7e00::f03c:91ff:feae:6c69] has joined #sbcl 23:31:20 robgssp [~user@2620:8d:8000:e50:21c:c0ff:fea3:7cc5] has joined #sbcl 23:31:36 foom [jknight@nat/google/x-bzwcfqiprufrvsqh] has joined #sbcl 23:38:08 -!- yacks [~py@180.151.36.168] has quit [*.net *.split] 23:38:10 -!- davorb_ [~davor@hallonpaj.df.lth.se] has quit [*.net *.split] 23:38:19 -!- automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has quit [*.net *.split] 23:38:27 -!- daimrod [daimrod@sbrk.org] has quit [*.net *.split] 23:43:14 automaciej [~automacie@cl-1008.ham-02.de.sixxs.net] has joined #sbcl 23:44:04 davorb [~davor@hallonpaj.df.lth.se] has joined #sbcl 23:45:18 -!- davazp` [~user@92.251.161.204.threembb.ie] has quit [*.net *.split] 23:45:19 -!- akovalenko [~user@195.18.46.21] has quit [*.net *.split] 23:49:56 -!- sipo [~sipo@50-79-167-33-static.hfc.comcastbusiness.net] has quit [Quit: sipo] 23:50:13 sipo [~sipo@50-79-167-33-static.hfc.comcastbusiness.net] has joined #sbcl 23:51:04 daimrod [daimrod@91.121.93.86] has joined #sbcl 23:51:04 yacks [~py@180.151.36.168] has joined #sbcl 23:51:14 -!- yacks [~py@180.151.36.168] has quit [Max SendQ exceeded] 23:51:16 6JTAAJHK0 [~user@p4FF972AF.dip0.t-ipconnect.de] has joined #sbcl 23:51:50 yacks [~py@180.151.36.168] has joined #sbcl 23:52:31 -!- sipo [~sipo@50-79-167-33-static.hfc.comcastbusiness.net] has quit [Remote host closed the connection] 23:53:21 -!- ASau [~user@p4FF97CD4.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 23:54:55 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl