2015-01-09T00:45:24Z akkad: is there any binary obfuscation options? 2015-01-09T00:57:21Z gabriel_laddel quit (Ping timeout: 265 seconds) 2015-01-09T00:57:53Z Bicyclidine quit (Ping timeout: 244 seconds) 2015-01-09T01:07:23Z Bicyclidine joined #sbcl 2015-01-09T01:31:43Z slyrus quit (Ping timeout: 256 seconds) 2015-01-09T01:45:49Z loke: akkad: Of what? 2015-01-09T01:52:29Z karswell` is now known as karswell 2015-01-09T01:56:13Z akkad: for save and die 2015-01-09T01:58:31Z |3b|: just compression 2015-01-09T01:59:56Z |3b| supposes if you had (or wrote) a zlib compatible obfuscation lib you could substitute it without too much effort 2015-01-09T02:08:31Z echo-area joined #sbcl 2015-01-09T02:14:30Z akkad: making an auditd event parser/report program. and so I guess I could encrypt a blob of lisp and simply decrypt/read it at runtime 2015-01-09T02:15:28Z nicdev quit (Remote host closed the connection) 2015-01-09T02:18:34Z nicdev joined #sbcl 2015-01-09T02:19:27Z scymtym_ quit (Ping timeout: 245 seconds) 2015-01-09T02:19:30Z edgar-rft joined #sbcl 2015-01-09T02:28:57Z attila_lendvai quit (Quit: Leaving.) 2015-01-09T03:39:13Z christoph_debian quit (Ping timeout: 256 seconds) 2015-01-09T03:41:07Z nyef joined #sbcl 2015-01-09T03:52:39Z christoph_debian joined #sbcl 2015-01-09T03:52:50Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-09T03:55:15Z Quadrescence joined #sbcl 2015-01-09T04:03:53Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-09T04:37:48Z gingerale joined #sbcl 2015-01-09T04:39:01Z nyef quit (Quit: G'night all.) 2015-01-09T05:48:39Z gingerale quit (Ping timeout: 264 seconds) 2015-01-09T06:04:24Z oleo quit (Quit: Verlassend) 2015-01-09T06:09:13Z pranavrc joined #sbcl 2015-01-09T06:09:39Z pranavrc quit (Changing host) 2015-01-09T06:09:39Z pranavrc joined #sbcl 2015-01-09T06:39:46Z Quadrescence joined #sbcl 2015-01-09T06:49:32Z undata joined #sbcl 2015-01-09T07:16:59Z slyrus joined #sbcl 2015-01-09T07:29:00Z Bicyclidine quit (Ping timeout: 244 seconds) 2015-01-09T07:34:17Z tmh_ quit (Ping timeout: 272 seconds) 2015-01-09T07:43:22Z slyrus quit (Ping timeout: 240 seconds) 2015-01-09T07:50:30Z pacon joined #sbcl 2015-01-09T07:55:41Z Bicyclidine joined #sbcl 2015-01-09T07:57:42Z pacon quit (Read error: Connection reset by peer) 2015-01-09T07:58:11Z pacon joined #sbcl 2015-01-09T08:41:25Z Cymew joined #sbcl 2015-01-09T08:54:52Z Cymew quit (Ping timeout: 240 seconds) 2015-01-09T08:56:56Z Cymew joined #sbcl 2015-01-09T10:39:14Z Quadrescence quit (Quit: This computer has gone to sleep) 2015-01-09T10:59:38Z scymtym_ joined #sbcl 2015-01-09T11:30:25Z edgar-rft quit (Ping timeout: 255 seconds) 2015-01-09T11:49:24Z scymtym_ quit (Ping timeout: 245 seconds) 2015-01-09T11:52:29Z eudoxia joined #sbcl 2015-01-09T11:58:45Z Hache joined #sbcl 2015-01-09T11:59:13Z Bicyclidine quit (Ping timeout: 264 seconds) 2015-01-09T12:02:28Z echo-area quit (Remote host closed the connection) 2015-01-09T12:25:43Z Bicyclidine joined #sbcl 2015-01-09T12:28:45Z flip214: akkad: is it really worth the effort? who are you defending against? 2015-01-09T12:28:59Z DeadTrickster quit (Read error: No route to host) 2015-01-09T12:43:10Z Hache quit (Read error: Connection reset by peer) 2015-01-09T12:43:29Z Hache joined #sbcl 2015-01-09T12:44:46Z DeadTrickster joined #sbcl 2015-01-09T12:47:45Z psy_ quit (Ping timeout: 252 seconds) 2015-01-09T12:53:32Z pacon quit (Read error: Connection reset by peer) 2015-01-09T12:58:34Z Bicyclidine quit (Ping timeout: 245 seconds) 2015-01-09T13:16:42Z pranavrc quit 2015-01-09T13:25:18Z Bicyclidine joined #sbcl 2015-01-09T13:39:17Z oleo joined #sbcl 2015-01-09T13:50:45Z attila_lendvai joined #sbcl 2015-01-09T13:50:45Z attila_lendvai quit (Changing host) 2015-01-09T13:50:45Z attila_lendvai joined #sbcl 2015-01-09T14:13:31Z stassats joined #sbcl 2015-01-09T15:03:14Z attila_lendvai quit (Quit: Leaving.) 2015-01-09T15:10:37Z gingerale joined #sbcl 2015-01-09T15:12:57Z edgar-rft joined #sbcl 2015-01-09T15:35:11Z stassats` joined #sbcl 2015-01-09T15:37:00Z stassats quit (Remote host closed the connection) 2015-01-09T15:46:18Z nyef joined #sbcl 2015-01-09T15:49:51Z stassats`: twi for arg-count error on PPC is a bit weird 2015-01-09T15:50:04Z stassats`: since it's also shared with other things 2015-01-09T15:51:50Z stassats`: doesn't seem to clash with my new scheme, fortunately 2015-01-09T15:56:22Z nyef: Where do you thin I got the idea for using the SWI condition codes for extra traps on ARM? 2015-01-09T15:57:03Z stassats`: added a new VOP for SP fixing after arg-count, now it works on ARM 2015-01-09T15:57:32Z stassats`: ppc needs more adjustments because of TWI, and then i'll be going blind with MIPS, SPARC, ALPHA and HPPA 2015-01-09T15:58:38Z stassats`: and seriously, now comments for internal-error-args in ppc-vm.lisp, not even a word what the mnemonic is, just bits 2015-01-09T15:58:56Z stassats`: maybe i'm not hardcore enough and should memorize bits too, not mnemonics 2015-01-09T16:02:17Z nyef: I should have a workable MIPS system at some point over the next month or so. 2015-01-09T16:02:37Z nyef: Do you have an HPPA to test with? 2015-01-09T16:03:24Z stassats`: no, the adjustment is simple enough to not need it 2015-01-09T16:03:46Z stassats`: changing an = comparison to three = or < and > 2015-01-09T16:03:54Z nyef: And it's not like the HPPA backend is expected to work all that well at this point, anyway. 2015-01-09T16:04:39Z nyef: ("Yes, let's have genesis LIE about the address of closure_tramp and undefined_tramp in all of the FDEFNs that it creates. Brilliant idea!") 2015-01-09T16:05:40Z stassats`: maybe HP will get sick of Itanium and go back to HPPA 2015-01-09T16:06:03Z stassats`: so, no reason to leave the poor soul resurrecting it with more work 2015-01-09T16:06:51Z nyef: Thank you. 2015-01-09T16:08:11Z stassats`: just need to find a good pa-risc refrence 2015-01-09T16:10:09Z nyef: I've got a pa-risc 2.0 reference manual. It's about an inch thick. 2015-01-09T16:11:04Z nyef: It's at home, though, so it'll be another couple of weeks before I can get at it again. 2015-01-09T16:12:37Z stassats`: pa-risc on memristors, imagine that 2015-01-09T16:17:13Z nyef: That could be neat. 2015-01-09T16:17:21Z nyef: Also could be bleeding expensive. 2015-01-09T16:20:06Z stassats`: sparc doesn't seem to care about copy-more-arg follows... 2015-01-09T16:21:14Z stassats`: neither does ppc, turns out 2015-01-09T16:22:12Z stassats`: only arm and x86oids care about it 2015-01-09T16:22:14Z stassats`: now what? 2015-01-09T16:24:13Z stassats`: and only those have a non-broken copy-more-arg 2015-01-09T16:29:04Z stassats`: i so wanted to avoid conditionalizing it 2015-01-09T16:34:01Z nyef: So, any platform that doesn't care about copy-more-arg-follows is, in fact, broken. 2015-01-09T16:34:25Z nyef: There's a race condition to do with moving the stack pointer such that a badly timed interrupt can stomp the additional arguments. 2015-01-09T16:35:02Z stassats`: they also broken that the copying overwrites the arguments yet to be copied 2015-01-09T16:36:40Z stassats`: arm's copy-more-arg doesn't seem to be immune to the interrupt 2015-01-09T16:38:15Z stassats`: but that's out of scope for what i'm currently doing 2015-01-09T16:40:32Z stassats`: coming up with a test would be the first order 2015-01-09T16:41:39Z nyef: If you have a good cycle-timed interrupt, that could work, or failing that spam allocation in one thread while exercising the more-arg functionality in another? 2015-01-09T16:41:53Z nyef: Except that, for the most part, these are non-threaded platforms. 2015-01-09T16:41:58Z stassats`: i can do the latter 2015-01-09T16:42:00Z nyef: ... so far, at least. 2015-01-09T16:42:19Z stassats`: i can spam with interrupts anyway, SIGPROF 2015-01-09T16:42:59Z nyef: There you go. 2015-01-09T16:43:16Z nyef: You might not even have to trigger a GC for the more-arg to get corrupted. 2015-01-09T16:43:42Z eudoxia_ joined #sbcl 2015-01-09T16:44:07Z stassats`: as i did in http://paste.lisp.org/display/143133#1 2015-01-09T16:44:10Z eudoxia_ quit (Remote host closed the connection) 2015-01-09T16:44:55Z stassats`: i can cheat and insert an interrupt into the code stream 2015-01-09T16:45:05Z stassats`: a trap 2015-01-09T16:47:33Z eudoxia quit (Ping timeout: 252 seconds) 2015-01-09T16:48:43Z stassats`: that's a different paste 2015-01-09T16:56:33Z stassats`: alright, (funcall (lambda (a b) b) 1 2 3 4 ) => ((LAMBDA (A B)) 1 2 3 4) on PPC 2015-01-09T16:56:33Z stassats`: oops, (funcall (lambda (a &optional b) b)) => LDB 2015-01-09T17:21:12Z Hache quit (Remote host closed the connection) 2015-01-09T17:24:22Z stassats`: now that works as well 2015-01-09T17:32:16Z adlai quit (Remote host closed the connection) 2015-01-09T17:32:49Z adlai joined #sbcl 2015-01-09T17:34:58Z oleo is now known as Guest76643 2015-01-09T17:35:50Z oleo__ joined #sbcl 2015-01-09T17:38:05Z Guest76643 quit (Ping timeout: 264 seconds) 2015-01-09T17:42:27Z slyrus joined #sbcl 2015-01-09T17:46:55Z Bicyclidine quit (Quit: Lost terminal) 2015-01-09T17:49:54Z stassats`: can't seem to figure out unsigned comparison for MIPS 2015-01-09T17:52:23Z stassats`: i can do away with signed, but one more instruction in some cases 2015-01-09T17:53:16Z nyef: What's hard about unsigned comparison? 2015-01-09T17:53:24Z stassats`: i don't see them 2015-01-09T17:53:34Z nyef: IIRC, they're the versions with the u on the end. 2015-01-09T17:54:06Z stassats`: there's no U variants of the branch instruction 2015-01-09T17:54:09Z nyef: Yeah, slt vs. sltu. 2015-01-09T17:54:32Z nyef: ... Or was that a shift instruction? 2015-01-09T17:54:37Z nyef: My MIPS reference is at home. 2015-01-09T17:55:10Z stassats`: i guess i'll have resort to a qemu mips emulator, because this is too complicated 2015-01-09T17:55:45Z nyef: A number of MIPS "instructions" are actually macros that expand to one or more fundamental instructions. 2015-01-09T17:56:48Z nyef: Yeah, have a look at define-conditional-vop < in arith.lisp. 2015-01-09T17:58:16Z stassats`: ok, that clears things up 2015-01-09T17:58:40Z stassats`: is it weird to actually like the x86 instruction set? 2015-01-09T18:00:17Z stassats`: and alpha has the same deal as mips 2015-01-09T18:00:30Z nyef: It has its charms. On the other hand, it's FAMILIAR, which also lends some attraction. 2015-01-09T18:00:36Z krzysz00: `/join #cyanogenmod 2015-01-09T18:00:53Z foom: No, it's not weird. Stockholm Syndrome is quite common. 2015-01-09T18:03:52Z stassats`: mostly i hate not being able to easily deal with immediates 2015-01-09T18:04:58Z stassats`: writing an assembler might not be as cheerful, but once it's done, i'd very much prefer X86 2015-01-09T18:05:55Z hlavaty quit (Remote host closed the connection) 2015-01-09T18:07:11Z foom: you mean that you can only have a 16bit immediate? 2015-01-09T18:08:48Z pkhuong: I like x86 2015-01-09T18:09:10Z foom: I still like 68000 the best. :) 2015-01-09T18:09:12Z pkhuong: it's not pretty, but it's useful, compact and it makes sense. 2015-01-09T18:11:11Z foom: not sure about "makes sense". 68k is pretty, useful, compact and makes sense, though! 2015-01-09T18:11:36Z foom: too bad there's no hardware for it, so, that's pretty useless. 2015-01-09T18:11:51Z pkhuong: i.e., 68k isn't that useful ;) 2015-01-09T18:11:52Z stassats`: isn't it still used? 2015-01-09T18:11:59Z foom: barely 2015-01-09T18:14:38Z stassats`: or more to say that i prefer CISC and x86 is the only CISC left alive 2015-01-09T18:15:46Z pkhuong: SPARC? ARM? 2015-01-09T18:16:19Z stassats`: R in RISC is pretty blurry 2015-01-09T18:16:36Z stassats`: they are still fixed length mostly load-store 2015-01-09T18:17:10Z pkhuong: 32 bit ARM is pretty baroque 2015-01-09T18:30:53Z rpg joined #sbcl 2015-01-09T18:44:09Z stassats`: got all the VOPs, mips and alpha give me the least confidence 2015-01-09T18:56:29Z nyef: As I said, I should have a MIPS system to test with in a month or so. 2015-01-09T18:56:38Z stassats`: that's too long 2015-01-09T18:57:07Z stassats`: at least longer than qemu will take 2015-01-09T18:57:25Z nyef: Then get Linux ported to IP35, and I can test as early as the 25th or so? Maybe the 18th. d-: 2015-01-09T18:57:41Z stassats`: they don't ship to my country 2015-01-09T18:57:56Z stassats`: what is ip35? 2015-01-09T18:58:19Z stassats`: i thought you were talking about the mips board the name of which i can't remember 2015-01-09T18:58:22Z stassats`: i guess not then 2015-01-09T18:58:36Z nyef: The CI20 is a dual-core MIPS32 that I ordered. 2015-01-09T18:58:52Z stassats`: ok, two letters and two digits, easy to confuse 2015-01-09T18:59:01Z nyef: IP35 is SGI Origin 300, Origin 350, Tezro, Fuel, and whatnot. 2015-01-09T18:59:22Z nyef: All MIPS64, NUMA, so on, so forth. 2015-01-09T18:59:43Z nyef: All only supported by ONE free OS, and that's OpenBSD. 2015-01-09T19:00:00Z stassats`: let's just port sbcl to mips-openbsd then 2015-01-09T19:00:05Z nyef: Which tends not to support 32-bit ABIs on 64-bit hardware... 2015-01-09T19:00:15Z stassats`: true... 2015-01-09T19:00:25Z nyef: So, mips64-openbsd in one shot? 2015-01-09T19:00:29Z stassats`: mips64-openbsd suddently sounds more harder 2015-01-09T19:01:02Z nyef: Exactly. Which is why I want Linux on that box, because I can do the mips32 thing first, then mips64, then worry about maybe openbsd. 2015-01-09T19:02:16Z stassats`: i'm still only installing gcc 2015-01-09T19:02:21Z stassats`: apt-get is quite slow on qemu 2015-01-09T19:02:34Z nyef: Not the only thing that's slow on qemu. 2015-01-09T19:02:52Z stassats`: once it's compiling i can just leave for the night 2015-01-09T19:03:17Z nyef: Also, you can keep the machine image for later use. 2015-01-09T19:03:40Z attila_lendvai joined #sbcl 2015-01-09T19:03:51Z stassats`: good thing i made the host PC quiet 2015-01-09T19:48:29Z oleo__ quit (Quit: Verlassend) 2015-01-09T19:49:20Z stassats`: hm, i can at least cross compile things without running 2015-01-09T19:49:28Z stassats`: can catch a thing or two 2015-01-09T19:58:19Z oleo joined #sbcl 2015-01-09T20:05:45Z stassats`: gc-common.c broken on mips 2015-01-09T20:06:48Z nyef: Dare I ask? 2015-01-09T20:06:53Z stassats`: no 2015-01-09T20:07:16Z nyef: Okay then. Good luck, and if you haven't fixed it by the time I have a running MIPS then I'll take a look. 2015-01-09T20:07:21Z stassats`: the error doesn't make any sense whatsoever 2015-01-09T20:08:26Z nyef: Seriously, though, what did you find? 2015-01-09T20:08:33Z stassats`: no idea 2015-01-09T20:08:39Z nyef: paste? 2015-01-09T20:08:46Z stassats`: gcc output is not helpful 2015-01-09T20:09:04Z stassats`: something happened somewhere, but no idea where, it complains about ) and } 2015-01-09T20:09:33Z nyef: Not even line number information? 2015-01-09T20:09:50Z stassats`: alright, now i see, from_space_p is a define macro 2015-01-09T20:10:06Z stassats`: and it doesn't like a function being defined with that name 2015-01-09T20:12:09Z stassats`: from_space_p became a function during the gc wipe changes 2015-01-09T20:12:21Z nyef: And the cheneygc version didn't get updated, right? 2015-01-09T20:12:55Z stassats`: cheneygc is precise, right? 2015-01-09T20:12:59Z nyef: Yes. 2015-01-09T20:13:04Z nyef: So should gencgc be on mips. 2015-01-09T20:13:17Z stassats`: then gc wiping doesn't make any sense 2015-01-09T20:13:31Z stassats`: i should conditionalize it enable on x86oids only 2015-01-09T20:14:04Z nyef: It still makes sense on gencgc, because it still has pinned objects. 2015-01-09T20:14:27Z nyef: It just doesn't make sense on cheneygc, because cheneygc doesn't even support the concepts required. 2015-01-09T20:15:35Z stassats`: so, is gencgc on mips supported? 2015-01-09T20:16:13Z nyef: Not according to src/cold/shared. 2015-01-09T20:16:25Z stassats`: and does that mean all cheneygc platforms are currently broken? 2015-01-09T20:16:31Z stassats`: and have been broken for months? 2015-01-09T20:16:34Z nyef: Very probably, yes. 2015-01-09T20:16:38Z foom: Since there's gencgc without conservatism, is there still even any point to keeping cheneygc? 2015-01-09T20:16:46Z nyef: Try doing a PPC build with cheneygc. 2015-01-09T20:17:02Z nyef: foom: Alpha, MIPS, HPPA. 2015-01-09T20:17:05Z stassats`: that would be easier to resurrect 2015-01-09T20:17:16Z foom: why don't they use gencgc? 2015-01-09T20:17:26Z stassats`: and i should check that my gengc conversion didn't break cheneygc on arm 2015-01-09T20:17:27Z nyef: foom: Also, cheneygc is easier to implement in a new backend. 2015-01-09T20:17:28Z foom: (also: alpha/hppa might as well be deleted at this point) 2015-01-09T20:17:57Z stassats`: i'm just sure it did 2015-01-09T20:18:00Z nyef: Oh hell no, I have an HPPA box waiting and I'm hoping to get a working Alpha. 2015-01-09T20:18:06Z foom: haha 2015-01-09T20:18:19Z stassats`: nyef: aren't you saying that each year? 2015-01-09T20:18:43Z nyef: Yes, but in this case it's more a matter of taking the time to try and set hte damned thing up. d-: 2015-01-09T20:18:51Z foom: Okay, fine, I'm certainly not going to argue if someone who works on sbcl actually has the hardware and intends to work on it someday. 2015-01-09T20:18:53Z stassats`: if i had a proper mips box, i would enable gengc on it, but no such thing 2015-01-09T20:19:19Z nyef: stassats`: It's on my short-list for once I have a working MIPS box. 2015-01-09T20:19:22Z foom: Go ahead, maintain support for useless archs if that's seems fun. :) 2015-01-09T20:19:47Z nyef: stassats`: On my slightly-longer-list is threads. 2015-01-09T20:20:10Z foom: IMO, mips/arm/ppc are realistically useful. sparc marginally. hppa/alpha not at all. 2015-01-09T20:20:15Z stassats`: i still haven't done threads on ARM 2015-01-09T20:20:15Z foom: But, go for it. :) 2015-01-09T20:22:07Z nyef: Now, the real question is, can we source any working IBM RT hardware that would be capable of doing a build in a reasonable amount of time? (-: 2015-01-09T20:23:04Z stassats`: what about itanium? 2015-01-09T20:24:51Z nyef: Is it still a going concern? 2015-01-09T20:25:02Z stassats`: is alpha? 2015-01-09T20:25:17Z nyef: Because if it is, I'll see if the Altix 350 that I have will boot Linux. d-: 2015-01-09T20:27:21Z nyef: We already have support for alpha, that's a maintenance issue. An itanium port is just that: A new port. 2015-01-09T20:28:48Z foom: itanic is not quite as dead as alpha, yet. 2015-01-09T20:31:28Z foom: Apparently the most recent Itanium CPU was released in 2012, and there's one planned for 2014. 2015-01-09T20:31:37Z foom: Whereas the last alpha CPU was released in 2004. 2015-01-09T20:31:38Z stassats`: good plan 2015-01-09T20:32:35Z nyef: Well, if someone wants to take the lead on an itanium port, I'm certainly willing to help. 2015-01-09T20:34:15Z stassats`: sometimes i just want to start from scratch 2015-01-09T20:35:09Z foom: you could design a new CPU 2015-01-09T20:35:13Z foom: that'd be pretty fun 2015-01-09T20:35:19Z stassats`: that too 2015-01-09T20:36:03Z stassats`: take up a job at intel, become the CEO, make lisp friendly CPUs 2015-01-09T20:36:26Z stassats`: would take as much time as doing your own 2015-01-09T20:36:43Z foom: nah, making your own CPU is pretty easy 2015-01-09T20:36:51Z foom: (much easier than becoming CEO of intel) 2015-01-09T20:37:01Z foom: if you want it to be fast and efficient...well...THAT is hard 2015-01-09T20:37:08Z nyef: Heck, you can still make CPUs from discrete logic easily enough. 2015-01-09T20:37:36Z stassats`: it has to be at least better at lisp than the current offerings, otherwise no point 2015-01-09T20:37:49Z nyef: Though I'll admit that finding any discrete ALU in any process more advanced than LS is proving to be a bit tricky... 2015-01-09T20:37:57Z foom: There's more point in doing that than maintaining an alpha port. :) 2015-01-09T20:38:16Z foom: Both have about the same point: for fun/cause I can 2015-01-09T20:47:51Z |3b| quit (Ping timeout: 272 seconds) 2015-01-09T20:48:18Z foom: someone should port SBCL to the ARCompact 2015-01-09T20:48:28Z foom: So you can run it on the intel management engine core. 2015-01-09T20:48:39Z stassats`: a bit too small 2015-01-09T20:49:26Z foom: just need a tree-shaker. :) 2015-01-09T21:22:17Z stassats`: my change somehow broke backtraces on ppc 2015-01-09T21:22:43Z stassats`: wait, it used to work, i broke my change 2015-01-09T21:23:08Z stassats`: and mips got xced 2015-01-09T21:26:16Z stassats`: and what do you guess, cold init ahoy 2015-01-09T21:27:02Z stassats`: unknown &key argument 2015-01-09T21:34:25Z stassats`: weird, (defun foo (v) v) (foo 1 2) gets a proper backtrace, (foo) broken 2015-01-09T21:35:36Z stassats`: and back to mips, that were my changes, stashing them gets me "attempted to scavenge a function header where=0x5006f078 object=0x0000042a" 2015-01-09T21:46:25Z stassats`: (foo 1 2) finds the escaped frame, (foo) does not 2015-01-09T21:46:33Z stassats`: how could that be, the error source is the same 2015-01-09T21:48:20Z nyef: Is the stack frame the same? 2015-01-09T21:48:39Z nyef: I'd suggest checking flag registers, but MIPS doesn't have any worth mentioning. 2015-01-09T21:48:39Z stassats`: i would think so, it looks like the xep lambda 2015-01-09T21:48:56Z stassats`: i'm talking about ppc and mips at the same time 2015-01-09T21:49:02Z stassats`: mips dies at the gc 2015-01-09T21:49:11Z stassats`: "attempted to scavenge a function header" 2015-01-09T21:49:11Z nyef: Still, the stack frame, not necessarily the register context. 2015-01-09T21:50:17Z stassats`: for (foo) (= (sap-int frame-pointer) (sb!vm:context-register scp sb!vm::cfp-offset)) is NIL 2015-01-09T21:50:23Z stassats`: while it is T for (foo 1 2 3) 2015-01-09T21:51:13Z stassats`: i can see both not working 2015-01-09T21:51:56Z stassats`: probably the call sequence is different 2015-01-09T21:55:00Z stassats`: now on ppc: gc signals blocked 2015-01-09T21:56:51Z stassats`: ok, something is definitely wrong with backtraces 2015-01-09T21:57:42Z stassats`: now back to mips, why would it not to scavenge function header and why does it 2015-01-09T21:58:33Z nyef: It wouldn't want to scavenge a function header because scavenge operates in terms of a boxed memory space, and a function header is only ever found inside of a code-object. 2015-01-09T21:58:49Z nyef: Thus, the code object should be found and scavenged, which would take care of the function headers. 2015-01-09T21:59:58Z stassats`: so, simple_fun_header_widetag has a scav function on non-x86oids, but it only signals an error 2015-01-09T22:00:10Z stassats`: on x86oids, there's no simple_fun_header_widetag scavanger function 2015-01-09T22:00:12Z stassats`: how come? 2015-01-09T22:02:22Z nyef: More specific diagnostics than scav_lose()? 2015-01-09T22:02:37Z stassats`: why not for x86 then? 2015-01-09T22:03:41Z nyef: Perhaps it goes back to CMUCL, where each GC had its own set of scav functions, and there was no gc-common.c? 2015-01-09T22:04:02Z stassats`: and object=0x0000042a looks suspect 2015-01-09T22:04:39Z stassats`: 2A is simple-fun-header-widetag 2015-01-09T22:05:11Z nyef: The header value (4, in this case) is the number of words (dwords, maybe?) backwards to look in order to find the code-object header. 2015-01-09T22:05:47Z stassats`: i know that part, i thought it was supposed to be a pointer 2015-01-09T22:06:10Z nyef: No, it's an offset. 2015-01-09T22:06:22Z stassats`: no, it's a hader 2015-01-09T22:06:23Z stassats`: header 2015-01-09T22:06:28Z nyef: It's an offset in the header. 2015-01-09T22:06:50Z nyef: You can see a calculation that uses it in the ARM backend, whenever it computes the address of CODE from a function or LRA header. 2015-01-09T22:07:00Z stassats`: i'm very well acquainted with code objects (i broke and fixed them enough times) 2015-01-09T22:07:11Z stassats`: which i can't say the same about the scavenger 2015-01-09T22:07:56Z nyef: The scavenger walks linearly through memory believed to be entirely live. 2015-01-09T22:08:04Z nyef: Typically, this is newspace, a stack, or static space. 2015-01-09T22:09:08Z stassats`: ok, i need a backtrace 2015-01-09T22:09:12Z nyef: Scavenging a code object has special handling to deal with all of the functions, boxed constants, whatever. 2015-01-09T22:09:17Z stassats`: but i need to install Screen for that first 2015-01-09T22:09:25Z nyef: Thus, the scavenger proper never sees them. 2015-01-09T22:09:34Z nyef: And if it does? Something went wrong. 2015-01-09T22:09:48Z stassats`: aha 2015-01-09T22:09:54Z stassats`: i see something interesting 2015-01-09T22:09:58Z stassats`: or not 2015-01-09T22:10:09Z stassats`: yep yep 2015-01-09T22:10:28Z nyef: Let me guess... interrupt context scavenging isn't quite right on MIPS? 2015-01-09T22:10:37Z stassats`: take a look at fae4be0c 2015-01-09T22:12:17Z stassats`: but it doesn't break on ppc or arm, so maybe it's just a coincidence 2015-01-09T22:12:31Z stassats`: installing gdb 2015-01-09T22:12:58Z stassats`: which needs python? 2015-01-09T22:17:05Z stassats`: it comes from scavenge, not scav_code_header, so that change is not related 2015-01-09T22:35:29Z stassats`: that function seems to be in the middle of nowhere 2015-01-09T22:35:44Z stassats`: it doesn't seem to be inside a code object 2015-01-09T22:39:15Z nyef: Hrm. You can't transport a function that way... Are you sure it's a function? 2015-01-09T22:40:08Z stassats`: i know its name 2015-01-09T22:40:12Z stassats`: pprint-array-p 2015-01-09T22:40:24Z stassats`: so, the slots seem to be in order 2015-01-09T22:40:35Z nyef: That's pretty much the first function compiled during cold-init, isn't it? 2015-01-09T22:40:45Z stassats`: but no code object 4 words before that 2015-01-09T22:41:05Z nyef: Which strongly suggests that you broke arg-parsing somehow. 2015-01-09T22:41:35Z stassats`: that's without my changes 2015-01-09T22:42:31Z nyef: Hrm. 2015-01-09T22:42:34Z nyef: That's neat. 2015-01-09T22:42:54Z nyef: Let me guess, too slow to bisect? 2015-01-09T22:43:27Z stassats`: not really 2015-01-09T22:43:42Z stassats`: it's in cold-init, not much is being done on the target 2015-01-09T22:43:55Z stassats`: but not easy to automate 2015-01-09T22:44:27Z nyef: Worst-case scenario is having to bisect over two and a half years worth of commits. 2015-01-09T22:44:27Z stassats`: where is pprint-array-p coming from? can't find it anywhere 2015-01-09T22:46:34Z nyef: compute-test-fn in src/code/pprint 2015-01-09T22:47:05Z nyef: Called from set-pprint-dispatch or whatever it's called. 2015-01-09T22:47:42Z stassats`: ok 2015-01-09T22:48:23Z stassats`: i really need to see of cheneygc is working on ppc 2015-01-09T22:49:02Z stassats`: and i just removed that from_space_p definition to get things to compile 2015-01-09T22:49:15Z stassats`: that may have been not enough 2015-01-09T22:53:35Z stassats`: no, wait, something's wrong 2015-01-09T22:54:00Z stassats`: pprint-array-p follows 42a, but it should have NEXT before it 2015-01-09T22:54:22Z stassats`: and self 2015-01-09T22:54:41Z stassats`: the arglist is after it alright 2015-01-09T22:55:01Z stassats`: so is the type 2015-01-09T22:58:00Z stassats`: ppc is alright 2015-01-09T23:00:06Z nyef: Odd. 2015-01-09T23:27:28Z stassats`: don't have any leads yet 2015-01-09T23:28:46Z stassats`: just before it there's a structure of some sort 2015-01-09T23:29:17Z stassats`: p is getting mad printing it, though, saying "More? [y] can't read the response" 2015-01-09T23:30:32Z stassats`: fgets fails for some reason 2015-01-09T23:39:40Z stassats`: i guess it's time to go to sleep when it stops making any sense 2015-01-09T23:40:05Z nyef: Sleep well, then. 2015-01-09T23:40:27Z |3b| joined #sbcl 2015-01-09T23:42:06Z stassats`: checked one more thing, disassembling the code, so, it does look like a function 2015-01-09T23:42:30Z stassats`: i see the arg checking being done 2015-01-09T23:43:31Z stassats`: what's known: it's in the middle of knowhere, has the simple-fun-header widetag, but the slots are all mixed up 2015-01-09T23:45:03Z stassats`: how did it get there? 2015-01-09T23:48:26Z nyef: My thought is that it's being messed up as it's being created as a code-object in core. 2015-01-09T23:48:49Z stassats`: yes, i attacked that area but can't see anything 2015-01-09T23:49:01Z slyrus quit (Ping timeout: 264 seconds) 2015-01-09T23:49:55Z stassats`: so, it's shifted by 2 words 2015-01-09T23:50:19Z nyef: Code header with no constants? 2015-01-09T23:50:36Z stassats`: there's no code header nearby 2015-01-09T23:50:37Z nyef: Hrm, no that's not right. 2015-01-09T23:53:46Z stassats`: tomorrow i'll try compiling with DEBUG_CODE_GC 2015-01-09T23:54:57Z stassats` quit (Quit: ERC Version 5.3 (IRC client for Emacs))