2016-09-11T00:03:57Z White_Flame joined #sbcl 2016-09-11T01:03:12Z slyrus quit (Ping timeout: 244 seconds) 2016-09-11T01:24:31Z karswell quit (Ping timeout: 250 seconds) 2016-09-11T01:42:08Z em1l joined #sbcl 2016-09-11T01:45:04Z em1l_ quit (Ping timeout: 240 seconds) 2016-09-11T02:00:03Z nyef`: And the answer, at long last, is that it DOESN'T get marked DX, I copy/pasted the FLET case CLAMBDA extents instead of the LET-closure case CLAMBDA extents and didn't notice. 2016-09-11T02:43:48Z nyef`: Okay, just got stack allocation on (lambda (x) (let ((foo (lambda () x))) (declare (dynamic-extent foo)) (bar foo))). Not in the least bit safe or conforming, but progress! 2016-09-11T03:59:58Z myrkraverk: SBCL and the manual seem to be "out of sync" wrt the posix extension. 2016-09-11T04:01:29Z myrkraverk: (read fd buffer &optional (length (length buffer))) => bytes-read 2016-09-11T04:02:11Z myrkraverk: Afaict, read wants exactly 3 arguments. 2016-09-11T04:19:49Z myrkraverk: Also, is it possible to convert/read data from sb-alien:make-alien into lisp somehow? 2016-09-11T04:20:03Z myrkraverk: In this case, character data. 2016-09-11T04:20:55Z karswell joined #sbcl 2016-09-11T05:50:13Z karswell` joined #sbcl 2016-09-11T05:50:18Z karswell quit (Remote host closed the connection) 2016-09-11T06:08:34Z gingerale joined #sbcl 2016-09-11T06:14:47Z slyrus joined #sbcl 2016-09-11T08:14:29Z angavrilov joined #sbcl 2016-09-11T09:03:24Z schjetne quit (Ping timeout: 250 seconds) 2016-09-11T09:20:32Z Bike quit (Quit: insult) 2016-09-11T12:42:37Z schjetne joined #sbcl 2016-09-11T12:43:50Z sjl joined #sbcl 2016-09-11T12:50:01Z nyef`: Do we do any kind of optimization that could "snap out" a SET node and LAMBDA-VAR in favor of a direct reference to the SET-VALUE LVAR? 2016-09-11T12:50:29Z nyef`: And, if not, is it something that we might do in the future, given someone actually doing the work? 2016-09-11T13:06:17Z stassats joined #sbcl 2016-09-11T13:09:23Z nyef`: Hello stassats. 2016-09-11T13:09:32Z stassats: hi 2016-09-11T13:13:03Z nyef`: I figured out the first part of the DX thing, to the point where I managed to get (let ((foo (lambda () x))) (declare (dynamic-extent foo)) ...) to stack-allocate, but I'm having trouble figuring out how to bound things correctly so that I don't DX things that I shouldn't. 2016-09-11T13:14:00Z stassats: doesn't dynamic-extent mean "DX all the things!" 2016-09-11T13:14:25Z nyef`: Sure, but if I (let ((foo (lambda () x))) (let ((bar foo)) (declare (dynamic-extent bar)) ...)) then FOO shouldn't DX. 2016-09-11T13:15:01Z nyef`: Unless I'm badly misremembering my DX semantics? 2016-09-11T13:15:10Z stassats: take lists? 2016-09-11T13:15:48Z stassats: but if there are no other uses of FOO, wouldn't it be alright? 2016-09-11T13:16:17Z nyef`: For this case, /maybe/. 2016-09-11T13:16:36Z stassats: well, lists do not get stacked in thie case 2016-09-11T13:17:03Z nyef`: But if (let ((bar (list foo))) (declare (dynamic-extent bar)) (baz bar)), baz should be allowed to let (CAR BAR) escape. 2016-09-11T13:17:23Z nyef`: Even if the CONS is stack-allocated, the closure should not be for this example. 2016-09-11T13:18:38Z nyef`: I have a couple of ideas which are mostly-workable, but are vulnerable to certain possible optimizations. 2016-09-11T13:19:11Z stassats: what are the differences with FLETs then? 2016-09-11T13:19:52Z nyef`: The DX environment for FLET and LABELS is set up at IR1-conversion time. 2016-09-11T13:20:08Z nyef`: The corresponding environment for LET is set up at LET-conversion time. 2016-09-11T13:20:58Z stassats: oh right, it is actually an argument to a combination 2016-09-11T13:22:17Z nyef`: Right. And to make things more complicated, immediately post-LET-conversion, LOCALL checks each argument and if it's a REF of a functional and the LAMBDA-VAR isn't SET, it substitutes out each REF of the LAMBDA-VAR for a REF of the functional. 2016-09-11T13:23:31Z nyef`: (This is the process that left that odd LVAR with no DEST in the ENTRY DX.) 2016-09-11T13:23:37Z slyrus quit (Read error: Connection reset by peer) 2016-09-11T13:52:02Z nyef`: Are we supposed to stack-allocate for (let ((foo (let ((bar (cons ...))) bar))) (declare (dynamic-extent foo)) ...)? 2016-09-11T13:52:41Z stassats: it'd be a good idea 2016-09-11T13:59:57Z nyef`: I'm thinking that it'd be a bad idea. 2016-09-11T14:00:11Z stassats: why? 2016-09-11T14:00:14Z nyef`: ... And that I need to re-read the spec for what DX is really supposed to do. 2016-09-11T14:00:32Z nyef`: Because there's a binding around the allocation that isn't declared DX. 2016-09-11T14:21:23Z slyrus joined #sbcl 2016-09-11T14:36:49Z DavidGu joined #sbcl 2016-09-11T15:06:44Z sjl quit (Ping timeout: 260 seconds) 2016-09-11T15:48:42Z DavidGu quit (Quit: DavidGu) 2016-09-11T15:56:16Z Bike joined #sbcl 2016-09-11T16:07:12Z edgar-rft quit (Quit: edgar-rft) 2016-09-11T16:35:49Z nyef` quit (Ping timeout: 252 seconds) 2016-09-11T16:58:03Z slyrus quit (Remote host closed the connection) 2016-09-11T17:17:42Z sjl joined #sbcl 2016-09-11T17:34:07Z attila_lendvai joined #sbcl 2016-09-11T18:07:37Z slyrus joined #sbcl 2016-09-11T18:47:31Z attila_lendvai quit (Quit: Leaving.) 2016-09-11T18:47:40Z attila_lendvai joined #sbcl 2016-09-11T18:47:40Z attila_lendvai quit (Changing host) 2016-09-11T18:47:40Z attila_lendvai joined #sbcl 2016-09-11T18:52:29Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-09-11T19:00:28Z stassats: i think copying IR1 for inlining can help with... not inlined locals 2016-09-11T19:00:52Z stassats: like in (flet ((f () (flet ((g () (print 20))) (g))))) 2016-09-11T19:01:05Z stassats: if F is inlined twice G gets two copies, while it could use just one 2016-09-11T19:08:49Z gingerale quit (Remote host closed the connection) 2016-09-11T19:36:46Z attila_lendvai joined #sbcl 2016-09-11T19:38:04Z whiteline quit (Ping timeout: 240 seconds) 2016-09-11T19:38:41Z rudolfochrist joined #sbcl 2016-09-11T19:39:35Z whiteline joined #sbcl 2016-09-11T19:52:40Z njmurphy joined #sbcl 2016-09-11T20:03:42Z njmurphy quit (Ping timeout: 276 seconds) 2016-09-11T21:07:32Z prxq joined #sbcl 2016-09-11T21:15:00Z prxq quit (Remote host closed the connection) 2016-09-11T21:21:47Z rudolfochrist quit (Ping timeout: 250 seconds) 2016-09-11T22:10:33Z angavrilov quit (Remote host closed the connection) 2016-09-11T23:12:10Z edgar-rft joined #sbcl 2016-09-11T23:40:39Z attila_lendvai quit (Ping timeout: 260 seconds)