2016-07-27T00:08:39Z oleo_ joined #sbcl 2016-07-27T00:12:18Z oleo quit (Ping timeout: 244 seconds) 2016-07-27T00:25:42Z DeadTrickster quit (Ping timeout: 276 seconds) 2016-07-27T00:26:55Z milanj quit (Quit: This computer has gone to sleep) 2016-07-27T00:36:16Z pillton joined #sbcl 2016-07-27T00:36:22Z didi joined #sbcl 2016-07-27T00:38:19Z didi: Could someone help me understand this SBLC's error message: https://paste.debian.net/hidden/def8f541 2016-07-27T00:38:28Z didi: I think I still had memory available. 2016-07-27T01:32:26Z cromachina: perhaps you are suffering from memory fragmentation 2016-07-27T01:32:56Z didi: I didn't even know it was a thing. :-P 2016-07-27T01:40:34Z em1l joined #sbcl 2016-07-27T01:44:03Z em1l_ quit (Ping timeout: 265 seconds) 2016-07-27T02:29:52Z didi` joined #sbcl 2016-07-27T02:33:20Z didi quit (Ping timeout: 244 seconds) 2016-07-27T03:08:44Z loke quit (Remote host closed the connection) 2016-07-27T03:10:20Z didi` quit (Remote host closed the connection) 2016-07-27T03:10:38Z didi` joined #sbcl 2016-07-27T03:11:56Z DGASAU quit (Ping timeout: 244 seconds) 2016-07-27T03:12:34Z didi` left #sbcl 2016-07-27T03:30:10Z DGASAU joined #sbcl 2016-07-27T03:44:44Z loke joined #sbcl 2016-07-27T03:51:43Z DGASAU quit (Ping timeout: 244 seconds) 2016-07-27T03:57:00Z DGASAU joined #sbcl 2016-07-27T04:35:47Z DGASAU quit (Read error: Connection reset by peer) 2016-07-27T04:36:49Z DGASAU joined #sbcl 2016-07-27T05:25:01Z attila_lendvai joined #sbcl 2016-07-27T05:25:01Z attila_lendvai quit (Changing host) 2016-07-27T05:25:01Z attila_lendvai joined #sbcl 2016-07-27T05:40:53Z shka joined #sbcl 2016-07-27T06:25:08Z nzambe quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2016-07-27T06:25:38Z nzambe joined #sbcl 2016-07-27T06:31:03Z shka quit (Ping timeout: 264 seconds) 2016-07-27T06:34:23Z vydd quit 2016-07-27T06:49:03Z pootler_ quit (Ping timeout: 250 seconds) 2016-07-27T06:51:48Z pootler_ joined #sbcl 2016-07-27T07:19:52Z pkhuong quit (Ping timeout: 260 seconds) 2016-07-27T07:21:10Z pkhuong joined #sbcl 2016-07-27T07:21:34Z pkhuong is now known as Guest35871 2016-07-27T07:29:29Z scymtym joined #sbcl 2016-07-27T07:32:32Z nzambe quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2016-07-27T07:32:43Z nzambe joined #sbcl 2016-07-27T07:37:03Z Quadrescence quit (Ping timeout: 240 seconds) 2016-07-27T07:48:43Z Quadrescence joined #sbcl 2016-07-27T07:49:27Z dougk_ quit (Read error: Connection reset by peer) 2016-07-27T07:49:27Z foom quit (Read error: Connection reset by peer) 2016-07-27T08:03:42Z nzambe quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 2016-07-27T08:03:52Z nzambe joined #sbcl 2016-07-27T08:11:10Z dougk_ joined #sbcl 2016-07-27T08:11:11Z foom joined #sbcl 2016-07-27T08:14:09Z Bike quit (Quit: leaving) 2016-07-27T08:14:51Z foom quit (Ping timeout: 250 seconds) 2016-07-27T08:14:51Z dougk_ quit (Ping timeout: 250 seconds) 2016-07-27T08:27:12Z dougk_ joined #sbcl 2016-07-27T08:27:17Z foom joined #sbcl 2016-07-27T08:43:22Z DeadTrickster joined #sbcl 2016-07-27T08:50:06Z milanj joined #sbcl 2016-07-27T09:37:57Z DavidGu joined #sbcl 2016-07-27T09:55:08Z DavidGu quit (Remote host closed the connection) 2016-07-27T09:55:10Z DavidGu1 joined #sbcl 2016-07-27T09:57:36Z DavidGu1 is now known as DavidGu 2016-07-27T10:32:11Z edgar-rft quit (Quit: edgar-rft) 2016-07-27T10:35:14Z ym quit (Quit: Leaving) 2016-07-27T11:30:27Z salv0 joined #sbcl 2016-07-27T11:31:29Z em1l__ joined #sbcl 2016-07-27T11:41:33Z gingerale joined #sbcl 2016-07-27T12:05:53Z eudoxia joined #sbcl 2016-07-27T12:06:51Z em1l__ quit (Ping timeout: 244 seconds) 2016-07-27T13:10:35Z em1l__ joined #sbcl 2016-07-27T13:16:01Z oleo_ quit (Ping timeout: 250 seconds) 2016-07-27T13:24:04Z salv0 quit (Ping timeout: 252 seconds) 2016-07-27T13:29:59Z eudoxia quit (Quit: Leaving) 2016-07-27T13:36:40Z salv0 joined #sbcl 2016-07-27T13:44:55Z cromachina quit (Read error: Connection reset by peer) 2016-07-27T13:52:49Z gargaml joined #sbcl 2016-07-27T13:54:04Z oleo joined #sbcl 2016-07-27T14:03:03Z irsol quit (Remote host closed the connection) 2016-07-27T14:10:42Z DavidGu quit (Quit: DavidGu) 2016-07-27T14:16:24Z em1l__ quit (Ping timeout: 276 seconds) 2016-07-27T14:17:59Z ym joined #sbcl 2016-07-27T14:30:42Z irsol joined #sbcl 2016-07-27T14:56:43Z milanj quit (Quit: This computer has gone to sleep) 2016-07-27T15:33:30Z scymtym quit (Ping timeout: 258 seconds) 2016-07-27T15:56:10Z milanj joined #sbcl 2016-07-27T16:20:52Z gargaml quit (Quit: WeeChat 1.5) 2016-07-27T16:25:28Z em1l__ joined #sbcl 2016-07-27T16:37:07Z salv0 quit (Remote host closed the connection) 2016-07-27T16:47:27Z stassats joined #sbcl 2016-07-27T16:51:54Z Bike joined #sbcl 2016-07-27T16:56:45Z stassats: an idea for error breaks, instead of JEQ LTRAP, do CMOVEQ REG, [some-protected-address] 2016-07-27T16:57:01Z stassats: that protected address encodes the error arguments 2016-07-27T16:58:18Z milanj quit (Quit: This computer has gone to sleep) 2016-07-27T16:58:22Z stassats: lazily filled with all the error arguments 2016-07-27T16:59:12Z DeadTrickster quit (Ping timeout: 240 seconds) 2016-07-27T17:04:57Z stassats: not as good with multiple jumps to a singe break 2016-07-27T17:18:58Z scymtym joined #sbcl 2016-07-27T17:21:21Z flip214: might be easier to have an additional register pointing to the arguments 2016-07-27T17:21:39Z flip214: only a few bits of the address could be used 2016-07-27T17:21:56Z stassats: pointing where? 2016-07-27T17:22:25Z flip214: to a set of pages that are mapped unaccessible, I guess 2016-07-27T17:22:55Z flip214: sorry, I'm mixing up both registers I'm talking about. 2016-07-27T17:23:17Z flip214: [some-protected-address] only has a few bits available 2016-07-27T17:23:29Z stassats: not really 2016-07-27T17:23:32Z flip214: the additional register could point to a list with the arguments, being full-width 2016-07-27T17:23:53Z flip214: well, how much of the address space would you like to have used up in unuseable pages? 2016-07-27T17:23:53Z stassats: [some-protected-address] is indefinite 2016-07-27T17:24:49Z stassats: flip214: as much as there are error trap arguments 2016-07-27T17:25:01Z flip214: perhaps if a segment register can be set to an invalid value the whole range is available, eg. CMOVEQ reg, fs:[address of data in normal, flat space] 2016-07-27T17:25:24Z stassats: you misunderstood the idea 2016-07-27T17:25:26Z flip214: "as much as" like in "number of arguments"? 2016-07-27T17:25:30Z flip214: yeah, most likely. 2016-07-27T17:25:48Z stassats: the address is a pointer 2016-07-27T17:26:06Z stassats: it points to real memory with real data 2016-07-27T17:26:18Z stassats: read protected 2016-07-27T17:26:55Z flip214: that means shuffling the protection bits around after writing the arguments there 2016-07-27T17:27:09Z stassats: since when is that a problem? 2016-07-27T17:27:34Z flip214: I though you'd have your arguments at address Y, and do CMOVEQ reg,fs:[Y] to cause a trap, which can use the faulting address in the "normal" segment to fetch the data 2016-07-27T17:27:54Z flip214: no problem, just wasting some time.... needs a syscall, I guess. 2016-07-27T17:28:11Z stassats: wasting time? come on 2016-07-27T17:29:28Z vydd joined #sbcl 2016-07-27T17:29:28Z vydd quit (Changing host) 2016-07-27T17:29:28Z vydd joined #sbcl 2016-07-27T17:30:18Z flip214: well, a syscall ain't cheap.... and the "saving/protect page" has to be done *before* the error 2016-07-27T17:30:31Z flip214: that's why I suggested the other idea 2016-07-27T17:30:32Z stassats: well, you misunderstood again 2016-07-27T17:30:47Z stassats: the writing of arguments is done at compile time 2016-07-27T17:30:59Z stassats: otherwise, what would have been the point of this? 2016-07-27T17:32:20Z flip214: ah, so the errors traps never need dynamic arguments? I thought about (error datum &rest arguments) with arbitrary data... 2016-07-27T17:32:27Z flip214: thanks for the clarification 2016-07-27T17:32:45Z stassats: ERROR doesn't use traps 2016-07-27T17:32:49Z flip214: if that's constant in the code segment, it doesn't matter, right 2016-07-27T17:32:50Z stassats: it's a function 2016-07-27T17:33:20Z stassats: look at (defun foo () (the integer x)) 2016-07-27T17:33:27Z stassats: that will have a bunch of traps 2016-07-27T17:33:29Z dougk_: cmov performs a memory read even if the condition is false 2016-07-27T17:34:02Z flip214: dougk_: but the *write* into memory is conditional, isn't it? 2016-07-27T17:34:07Z stassats: i think i have a revised idea, use the old break, but encode an indexed into the same array 2016-07-27T17:34:16Z stassats: cmov can't write into memory 2016-07-27T17:34:28Z stassats: encode an index 2016-07-27T17:34:29Z flip214: I believe the "REG => [memory]" syntax was meant here (AT&T or intel, or whatever that one is ..... too long ago) 2016-07-27T17:35:01Z stassats: now, how many combinations of error traps are there 2016-07-27T17:35:14Z stassats: all the registers, all their scs, the index might not save much space 2016-07-27T17:35:18Z flip214: http://www.rcollins.org/p6/opcodes/CMOV.html says the read from memory happens always 2016-07-27T17:37:19Z flip214: you could load a register with some arbitrary writable address, do a CMOV with a protected address, and *then* write indirectly. 2016-07-27T17:37:47Z stassats: the idea is to save encoding space 2016-07-27T17:37:49Z flip214: would be an ignored write in the normal case.... not sure whether it hurts performance-wise more than the conditional jump, though 2016-07-27T17:37:54Z stassats: that's achieves the opposite 2016-07-27T17:38:26Z shka joined #sbcl 2016-07-27T17:42:38Z flip214: how about doing the conditional jump to an invalid address? 2016-07-27T17:44:32Z stassats: i don't think you can jump to an absolute address directly 2016-07-27T17:45:13Z stassats: but still, that'll require too much encoding for instance with multiple jumps 2016-07-27T17:45:57Z stassats: well, if the address is protected, i guess it doesn't matter that it's indirect 2016-07-27T17:46:18Z stassats: but might as well do something that doesn't involve signals 2016-07-27T17:46:36Z stassats: though jumping is out, a CALL would be needed 2016-07-27T17:50:27Z em1l__ quit (Ping timeout: 260 seconds) 2016-07-27T17:52:53Z flip214: stassats: how about "0f8400000080", that's "JEQ rip+0x80000000"... good enough on 32bit with a 2GB/2GB split ;) 2016-07-27T17:53:27Z flip214: on 64bit you'd need a faulting byte (int 02, or what was the debugger software interrupt byte?) for each call site 2016-07-27T17:53:48Z flip214: and each of the faulting bytes could be followed by the relative address the jump came from, and the data 2016-07-27T17:54:46Z stassats: well, you're describing the current scheme 2016-07-27T17:54:51Z stassats: (and who cares about x86) 2016-07-27T17:55:20Z flip214: well, I guess it won't get much smaller than that 2016-07-27T17:55:39Z stassats: an index into an array is smaller 2016-07-27T17:56:32Z flip214: well, the relative jump is only 2 bytes (for small offsets) 2016-07-27T17:56:43Z ASau joined #sbcl 2016-07-27T17:56:45Z flip214: loading an index and then doing something won't be smaller than that 2016-07-27T17:57:07Z stassats: it jumps to somewhere 2016-07-27T17:57:13Z stassats: not into the empty void 2016-07-27T18:00:47Z flip214: how about fault data 0xcc + 24bit relative caller address + arguments of fault, and a conditional jump to that? 2016-07-27T18:01:19Z flip214: unless the fault argument data always has the same number of bytes it'll need some end-of-record markers for an index to work. 2016-07-27T18:06:17Z flip214: JMP RAX is only 2 bytes long, too... 2016-07-27T18:07:01Z flip214: or do an inverted conditional jump a few bytes ahead, and then have the INT 3 followed by your index. only 2 bytes for the conditional jump, and 2 bytes for faulting. 2016-07-27T18:07:15Z flip214: I'll shut up now. 2016-07-27T18:15:13Z stassats quit (Ping timeout: 244 seconds) 2016-07-27T18:17:27Z eudoxia joined #sbcl 2016-07-27T18:32:38Z oleo quit (Quit: Leaving) 2016-07-27T18:48:50Z stassats joined #sbcl 2016-07-27T18:53:27Z stassats quit (Ping timeout: 260 seconds) 2016-07-27T18:54:26Z stassats joined #sbcl 2016-07-27T18:58:38Z stassats quit (Ping timeout: 244 seconds) 2016-07-27T19:04:30Z stassats joined #sbcl 2016-07-27T19:08:32Z stassats quit (Ping timeout: 240 seconds) 2016-07-27T19:09:26Z stassats joined #sbcl 2016-07-27T19:12:27Z vydd_ joined #sbcl 2016-07-27T19:13:52Z stassats quit (Ping timeout: 260 seconds) 2016-07-27T19:14:27Z stassats joined #sbcl 2016-07-27T19:16:10Z DeadTrickster joined #sbcl 2016-07-27T19:16:12Z vydd quit (Ping timeout: 260 seconds) 2016-07-27T19:20:53Z stassats quit (Ping timeout: 250 seconds) 2016-07-27T19:21:27Z stassats joined #sbcl 2016-07-27T19:23:38Z vydd joined #sbcl 2016-07-27T19:23:54Z vydd quit (Changing host) 2016-07-27T19:23:54Z vydd joined #sbcl 2016-07-27T19:26:01Z stassats quit (Ping timeout: 244 seconds) 2016-07-27T19:27:04Z vydd_ quit (Ping timeout: 260 seconds) 2016-07-27T19:27:26Z stassats joined #sbcl 2016-07-27T19:31:33Z stassats quit (Ping timeout: 240 seconds) 2016-07-27T19:33:01Z stassats joined #sbcl 2016-07-27T19:37:03Z stassats quit (Ping timeout: 240 seconds) 2016-07-27T19:37:06Z oleo joined #sbcl 2016-07-27T19:37:57Z stassats joined #sbcl 2016-07-27T19:42:02Z em1l__ joined #sbcl 2016-07-27T19:42:20Z stassats quit (Ping timeout: 258 seconds) 2016-07-27T19:43:23Z gingerale quit (Remote host closed the connection) 2016-07-27T19:44:00Z stassats joined #sbcl 2016-07-27T19:46:12Z milanj joined #sbcl 2016-07-27T19:48:12Z stassats quit (Ping timeout: 240 seconds) 2016-07-27T19:48:59Z stassats joined #sbcl 2016-07-27T19:53:23Z stassats quit (Ping timeout: 250 seconds) 2016-07-27T19:54:07Z oleo quit (Ping timeout: 260 seconds) 2016-07-27T19:54:28Z stassats joined #sbcl 2016-07-27T19:58:58Z stassats quit (Ping timeout: 252 seconds) 2016-07-27T19:59:30Z stassats joined #sbcl 2016-07-27T20:04:02Z stassats quit (Ping timeout: 250 seconds) 2016-07-27T20:06:58Z stassats joined #sbcl 2016-07-27T20:09:50Z eudoxia quit (Quit: Leaving) 2016-07-27T20:11:28Z stassats quit (Ping timeout: 258 seconds) 2016-07-27T20:12:28Z stassats joined #sbcl 2016-07-27T20:16:39Z stassats quit (Ping timeout: 244 seconds) 2016-07-27T20:17:30Z stassats joined #sbcl 2016-07-27T20:28:14Z oleo joined #sbcl 2016-07-27T20:56:51Z em1l__ quit (Ping timeout: 264 seconds) 2016-07-27T21:05:53Z edgar-rft joined #sbcl 2016-07-27T21:07:03Z whiteline quit (Ping timeout: 250 seconds) 2016-07-27T21:11:06Z ym quit (Ping timeout: 276 seconds) 2016-07-27T21:13:29Z whiteline joined #sbcl 2016-07-27T21:16:19Z angavrilov quit (Remote host closed the connection) 2016-07-27T22:06:05Z vydd quit (Remote host closed the connection) 2016-07-27T22:06:38Z vydd joined #sbcl 2016-07-27T22:06:54Z attila_lendvai quit (Ping timeout: 260 seconds) 2016-07-27T22:11:15Z vydd quit (Ping timeout: 264 seconds) 2016-07-27T22:12:57Z shka_ joined #sbcl 2016-07-27T22:12:57Z stassats quit (Ping timeout: 260 seconds) 2016-07-27T22:13:30Z shka quit (Ping timeout: 276 seconds) 2016-07-27T22:27:52Z stassats joined #sbcl 2016-07-27T23:17:51Z stassats quit (Ping timeout: 264 seconds) 2016-07-27T23:20:41Z cromachina joined #sbcl 2016-07-27T23:31:47Z shka_ quit (Ping timeout: 244 seconds) 2016-07-27T23:44:17Z ehaliewicz joined #sbcl 2016-07-27T23:59:21Z scymtym quit (Ping timeout: 250 seconds)