2017-05-10T00:02:10Z jdz joined #sbcl 2017-05-10T00:13:06Z flip214: beach: I'd easily win this "Good morning" contest, if it wasn't still Tuesday for me ;/ 2017-05-10T00:36:37Z dougk_ joined #sbcl 2017-05-10T00:37:11Z dougk_: folks who use the #!sb-safepoint feature might be interested in testing after dfe066b23e which either fixes something, broke something, or did neither. I don't know 2017-05-10T00:37:40Z stassats: except that nobody should use sb-safepoint 2017-05-10T00:38:03Z stassats: unless your fix resolves that 2017-05-10T00:38:10Z dougk_: that's what i'm wondering 2017-05-10T00:38:32Z stassats: cause it's actually broken under without-gcing 2017-05-10T00:39:30Z stassats: lp 1424031 2017-05-10T00:39:30Z specbot: https://bugs.launchpad.net/bugs/1424031 2017-05-10T00:39:46Z stassats: i'll test some time later 2017-05-10T00:54:13Z stassats quit (Ping timeout: 260 seconds) 2017-05-10T01:17:20Z rumbler3_ joined #sbcl 2017-05-10T01:21:29Z rumbler3_ quit (Ping timeout: 240 seconds) 2017-05-10T01:53:30Z jack_rabbit joined #sbcl 2017-05-10T02:12:35Z DeadTrickster quit (Ping timeout: 240 seconds) 2017-05-10T02:30:47Z attila_lendvai quit (Ping timeout: 246 seconds) 2017-05-10T02:50:18Z stassats joined #sbcl 2017-05-10T02:54:48Z stassats quit (Ping timeout: 240 seconds) 2017-05-10T02:57:23Z beach: Good morning everyone! 2017-05-10T02:57:41Z beach: flip214: I hope you managed to get some sleep. 2017-05-10T03:14:11Z dougk_ quit (Ping timeout: 255 seconds) 2017-05-10T03:18:09Z rumbler31 joined #sbcl 2017-05-10T03:18:45Z dougk_ joined #sbcl 2017-05-10T03:22:38Z rumbler31 quit (Ping timeout: 255 seconds) 2017-05-10T04:07:11Z pjstirling joined #sbcl 2017-05-10T04:08:33Z pjstirling: hi, how likely is it that save-lisp-and-die might be doing something funny to functions named with gensyms, anyone know? 2017-05-10T04:16:43Z beach: pjstirling: I know almost nothing about SBCL internals, but I would think that save-lisp-and-die would just make a copy of the process memory to a file, so I can't see how anything like that would be impacted. Are you seeing any problems that you think may be due to such names? 2017-05-10T04:18:11Z aeth: Does SBCL do single-float trig as double-float and then convert the result to single-float or something? I don't understand why the disassemble here would be so complicated and full of allocations. 2017-05-10T04:18:22Z aeth: e.g. something like this: (defun foo (theta) (declare (single-float theta)) (sin theta)) (disassemble #'foo) 2017-05-10T04:18:33Z aeth: It only gets worse on functions with several 2017-05-10T04:19:23Z Bike: looks just as complicated with a double. 2017-05-10T04:19:27Z aeth: Functions with several trig functions are some of the largest disassemblies I've seen, period. Well, besides my Brainfuck transpiler. 2017-05-10T04:19:51Z Bike: all that junk might just be unboxing the argument and boxing the result. 2017-05-10T04:20:01Z aeth: In single-float? 2017-05-10T04:21:07Z aeth: I have eliminated almost all allocations in my game loop, cutting CPU usage in half (and actually improving performance in CCL *more* than SBCL, surprisingly... although I guess it was at a higher place to begin with). I assumed rotations were a fault on my end, but now I'm not sure. 2017-05-10T04:21:22Z Bike: hum 2017-05-10T04:21:26Z Bike: there's no allocation with speed 3 2017-05-10T04:21:54Z aeth: I've cut a few lines of assembly before with speed 3 2017-05-10T04:22:13Z aeth: But wow this is a dramatic cut. 2017-05-10T04:22:21Z aeth: 399 bytes => 63 bytes in my foo example 2017-05-10T04:22:49Z aeth: This looks like the first place where speed 3 actually matters. I've stopped bothering with it. 2017-05-10T04:23:29Z aeth: I cannot figure out how to decode this... https://github.com/sbcl/sbcl/blob/master/src/compiler/float-tran.lisp 2017-05-10T04:24:14Z aeth: Bike: If it's an inline function, does this mean that every user of the inlined function has to declare speed 3 to avoid allocations? 2017-05-10T04:25:02Z Bike: i guess? 2017-05-10T04:25:08Z Bike: and what are you having trouble understanding 2017-05-10T04:26:47Z aeth: ouch 2017-05-10T04:29:18Z Bike: oh, and it does still call something or another 2017-05-10T04:31:25Z dougk_ quit (Ping timeout: 272 seconds) 2017-05-10T04:40:52Z aeth: I don't even know where sin is defined 2017-05-10T04:41:34Z angavrilov joined #sbcl 2017-05-10T04:41:46Z aeth: it does look like there are two versions, so I'm guessing line 625 where it says: (def sin %sin %sin-quick) 2017-05-10T04:42:28Z Bike: it can be "defined" in multiple ways. that defines a deftransform (sort of like a compiler macro) 2017-05-10T04:42:41Z Bike: and it does coerce to double 2017-05-10T04:43:38Z aeth: I guessed as much by the disassembly. 2017-05-10T04:44:05Z aeth: So I guess %sin, %cos, etc. coerce to double for accuracy, and %sin-quick, etc., don't, but are only there when optimized 2017-05-10T04:44:58Z Bike: no, look at that line again. it has the coercion right there. 2017-05-10T04:45:46Z aeth: *ooh* 2017-05-10T04:46:02Z aeth: okay, the whole thing's there. 2017-05-10T04:46:55Z aeth: And this probably explains most if not all of the double floats I have in (room) 2017-05-10T04:51:12Z stassats joined #sbcl 2017-05-10T04:52:17Z aeth: I am very surprised by this whole thing, though. I didn't expect CL to act this high level. 2017-05-10T04:54:25Z aeth: It also doesn't seem to actually make any differences in the results. 2017-05-10T04:55:27Z stassats quit (Ping timeout: 240 seconds) 2017-05-10T04:56:51Z shka joined #sbcl 2017-05-10T05:33:53Z |3b| doesn't think it is the whole thing in that file, but close enough...looks like it casts to double to pass to the libc routines 2017-05-10T05:37:05Z |3b|: or libm or wherever it is 2017-05-10T05:39:08Z |3b|: you could probably call fsin from libm yourself if staying in single float was important 2017-05-10T05:56:46Z shka quit (Ping timeout: 264 seconds) 2017-05-10T06:00:03Z scymtym quit (Remote host closed the connection) 2017-05-10T06:02:31Z oleo quit (Quit: irc client terminated!) 2017-05-10T06:18:39Z shka joined #sbcl 2017-05-10T06:44:56Z igajsin joined #sbcl 2017-05-10T06:47:35Z shka quit (Ping timeout: 272 seconds) 2017-05-10T06:51:49Z stassats joined #sbcl 2017-05-10T06:57:05Z stassats quit (Ping timeout: 272 seconds) 2017-05-10T06:57:46Z Bike quit (Quit: lshgas) 2017-05-10T07:19:52Z rumbler31 joined #sbcl 2017-05-10T07:24:41Z rumbler31 quit (Ping timeout: 258 seconds) 2017-05-10T07:35:01Z scymtym joined #sbcl 2017-05-10T08:10:04Z flip214: beach: yeah, thanks. currently on the East Coast, that's why. 2017-05-10T08:14:28Z beach: Of the USA? 2017-05-10T08:14:37Z flip214: yeah. 2017-05-10T08:14:44Z flip214: business trip 2017-05-10T08:14:56Z beach: Got it. 2017-05-10T08:22:08Z stassats joined #sbcl 2017-05-10T08:22:42Z fiveop joined #sbcl 2017-05-10T08:25:00Z gingerale joined #sbcl 2017-05-10T08:45:39Z stassats: aeth: single float math.h functions are a recent additions, and on some glibc versions they produced wrong results 2017-05-10T09:21:35Z stassats quit (Ping timeout: 240 seconds) 2017-05-10T09:37:50Z stassats joined #sbcl 2017-05-10T10:26:24Z attila_lendvai joined #sbcl 2017-05-10T10:26:25Z attila_lendvai quit (Changing host) 2017-05-10T10:26:25Z attila_lendvai joined #sbcl 2017-05-10T10:29:37Z m00natic joined #sbcl 2017-05-10T10:52:34Z dougk joined #sbcl 2017-05-10T10:54:02Z fiveop quit 2017-05-10T10:59:20Z attila_lendvai quit (Ping timeout: 246 seconds) 2017-05-10T11:02:19Z stassats: in the %eql/integer assembly routine, is (inst or (reg-in-size rax :dword) (reg-in-size rcx :dword)) correct? 2017-05-10T11:02:47Z stassats: it tries to cmpare if both lowtags are other-pointer-lowtag, but the OR can fill the missing bits 2017-05-10T11:03:06Z stassats: so, it should've been AND, but now to come up with a test case 2017-05-10T11:03:39Z stassats: or maybe it's right 2017-05-10T11:06:12Z stassats: ok, the previous operations make it right 2017-05-10T11:18:20Z stassats: do we have a way of redefining assembly routines at run-time? 2017-05-10T11:22:29Z dougk: I think the 'or' is right. The two registers have the lowtag subtracted, so the 'or' after subtraction must be 0 in the low 2 bits. 2017-05-10T11:22:48Z stassats: yeah, i just read it from the middle 2017-05-10T11:23:06Z stassats: i'm now thinking about making it use SSE2, but who compares such large bignums? 2017-05-10T11:23:49Z dougk: i'm slightly concerned about the lifetimes of the *tagged* pointers wrt GC though. what happens to them? 2017-05-10T11:24:11Z dougk: oh, i guess they're not clobbered. 2017-05-10T11:26:11Z minion quit (Remote host closed the connection) 2017-05-10T11:26:11Z specbot quit (Remote host closed the connection) 2017-05-10T11:26:35Z stassats: maybe a test for non-fixnum would be faster, AND two fixnums and if the low bit is non-zero then it's not two fixnums 2017-05-10T11:29:20Z minion joined #sbcl 2017-05-10T11:29:32Z stassats: too bad no three-operand instructions 2017-05-10T11:29:59Z specbot joined #sbcl 2017-05-10T11:30:09Z easye quit (Read error: No route to host) 2017-05-10T11:31:11Z stassats: oh, i see that not both arguments are guaranteed to be integers 2017-05-10T11:32:15Z stassats: but, can the OR be rolled into the second LEA? 2017-05-10T11:36:58Z stassats: rebuilding, i need to come up with a way to patch asm routines at runtime 2017-05-10T11:39:41Z stassats: i guess can't roll into the second LEA, since it doesn't know that the first lea produced zero low bits 2017-05-10T11:51:06Z dougk quit (Ping timeout: 240 seconds) 2017-05-10T12:16:42Z scymtym_ joined #sbcl 2017-05-10T12:19:27Z scymtym quit (Ping timeout: 272 seconds) 2017-05-10T12:35:18Z scymtym__ joined #sbcl 2017-05-10T12:36:08Z scymtym_ quit (Ping timeout: 240 seconds) 2017-05-10T13:08:35Z specbot quit (Disconnected by services) 2017-05-10T13:08:39Z specbot joined #sbcl 2017-05-10T13:30:46Z stassats quit (Ping timeout: 246 seconds) 2017-05-10T13:31:51Z stassats joined #sbcl 2017-05-10T13:33:26Z dougk joined #sbcl 2017-05-10T13:36:44Z stassats quit (Ping timeout: 260 seconds) 2017-05-10T13:39:31Z stassats joined #sbcl 2017-05-10T13:44:10Z stassats quit (Ping timeout: 255 seconds) 2017-05-10T13:56:15Z cromachina quit (Read error: Connection reset by peer) 2017-05-10T14:19:14Z oleo joined #sbcl 2017-05-10T14:20:24Z Bike joined #sbcl 2017-05-10T14:25:11Z rumbler3_ joined #sbcl 2017-05-10T14:29:59Z rumbler3_ quit (Ping timeout: 255 seconds) 2017-05-10T14:37:47Z phoe: What is the default heap size for SBCL on 64bit linux? 2017-05-10T15:01:43Z stassats joined #sbcl 2017-05-10T15:05:57Z stassats quit (Ping timeout: 240 seconds) 2017-05-10T15:09:07Z stassats joined #sbcl 2017-05-10T15:13:18Z stassats quit (Remote host closed the connection) 2017-05-10T15:18:56Z dougk quit (Ping timeout: 260 seconds) 2017-05-10T15:25:41Z flip214: phoe: my debian binary uses 1.2GB by default 2017-05-10T15:26:01Z flip214: so probably a 1GB heap? 2017-05-10T15:26:15Z rumbler3_ joined #sbcl 2017-05-10T15:30:35Z rumbler3_ quit (Ping timeout: 240 seconds) 2017-05-10T15:35:16Z jack_rabbit quit (Ping timeout: 260 seconds) 2017-05-10T15:44:07Z edgar-rft quit (Ping timeout: 246 seconds) 2017-05-10T15:49:33Z milanj joined #sbcl 2017-05-10T15:52:27Z slyrus_ joined #sbcl 2017-05-10T16:00:59Z scymtym joined #sbcl 2017-05-10T16:02:23Z scymtym__ quit (Ping timeout: 272 seconds) 2017-05-10T16:27:11Z rumbler3_ joined #sbcl 2017-05-10T16:31:29Z rumbler3_ quit (Ping timeout: 255 seconds) 2017-05-10T16:38:44Z slyrus_ quit (Ping timeout: 260 seconds) 2017-05-10T16:40:35Z slyrus_ joined #sbcl 2017-05-10T17:00:40Z slyrus_ quit (Ping timeout: 240 seconds) 2017-05-10T17:18:55Z DeadTrickster joined #sbcl 2017-05-10T17:22:38Z scymtym: the broadcast-stream optimization seems wrong, consider (progn (close (make-broadcast-stream)) (princ 1 (make-broadcast-stream))) 2017-05-10T17:28:25Z m00natic quit (Remote host closed the connection) 2017-05-10T17:53:37Z shka_ joined #sbcl 2017-05-10T18:05:48Z slyrus_ joined #sbcl 2017-05-10T18:15:58Z slyrus_ quit (Ping timeout: 255 seconds) 2017-05-10T18:28:38Z rumbler3_ joined #sbcl 2017-05-10T18:32:49Z rumbler3_ quit (Ping timeout: 246 seconds) 2017-05-10T18:39:51Z slyrus__ joined #sbcl 2017-05-10T18:41:50Z milanj quit (Quit: This computer has gone to sleep) 2017-05-10T18:48:42Z edgar-rft joined #sbcl 2017-05-10T19:01:44Z slyrus__ quit (Ping timeout: 240 seconds) 2017-05-10T19:02:38Z slyrus_ joined #sbcl 2017-05-10T19:28:40Z scymtym_ joined #sbcl 2017-05-10T19:28:49Z dougk joined #sbcl 2017-05-10T19:29:19Z rumbler3_ joined #sbcl 2017-05-10T19:33:01Z scymtym quit (Ping timeout: 258 seconds) 2017-05-10T19:33:43Z rumbler3_ quit (Ping timeout: 246 seconds) 2017-05-10T19:33:44Z scymtym_ quit (Ping timeout: 240 seconds) 2017-05-10T19:47:24Z attila_lendvai joined #sbcl 2017-05-10T19:53:57Z eschatologist quit (Ping timeout: 268 seconds) 2017-05-10T20:11:05Z igajsin quit (Ping timeout: 240 seconds) 2017-05-10T20:21:20Z ym quit (Ping timeout: 260 seconds) 2017-05-10T20:28:18Z scymtym joined #sbcl 2017-05-10T21:02:26Z angavrilov quit (Remote host closed the connection) 2017-05-10T21:04:35Z prxq joined #sbcl 2017-05-10T21:07:49Z milanj joined #sbcl 2017-05-10T21:12:13Z dougk quit (Ping timeout: 260 seconds) 2017-05-10T21:28:39Z milanj quit (Quit: This computer has gone to sleep) 2017-05-10T21:30:38Z rumbler3_ joined #sbcl 2017-05-10T21:31:06Z gingerale quit (Remote host closed the connection) 2017-05-10T21:35:10Z rumbler3_ quit (Ping timeout: 240 seconds) 2017-05-10T21:36:34Z foom quit (Ping timeout: 246 seconds) 2017-05-10T21:37:18Z DeadTrickster quit (Ping timeout: 260 seconds) 2017-05-10T21:43:25Z foom joined #sbcl 2017-05-10T21:45:34Z shka_ quit (Ping timeout: 268 seconds) 2017-05-10T22:25:52Z prxq quit (Remote host closed the connection) 2017-05-10T23:01:40Z rumbler31 joined #sbcl 2017-05-10T23:10:24Z stassats joined #sbcl 2017-05-10T23:32:12Z cromachina joined #sbcl 2017-05-10T23:36:10Z stassats quit (Ping timeout: 240 seconds)