2017-11-01T00:22:12Z stassats: found a problem with merging IF branches myself, (if (simple-string x) (aref x 0) (aref x 0)) 2017-11-01T00:23:05Z stassats: disallowing merging if there are any transforms... not nice 2017-11-01T00:24:49Z Zisper joined #sbcl 2017-11-01T00:36:05Z leah2 quit (Ping timeout: 258 seconds) 2017-11-01T00:40:01Z pfdietz joined #sbcl 2017-11-01T00:41:46Z stassats: seems like the whole idea is wrong... at least at ir1-optimize time, oops 2017-11-01T00:51:20Z stylewarning: I am doing testing to make sure objects get GC'd correctly. I'm doing something like (loop :repeat n :for obj := (alloc-obj) :do (gc :full t)) and I expect this to only have 1 object live at a time. This test fails. Is this because of conservativeness or page-granularity? 2017-11-01T00:52:38Z stylewarning: This has been a source of headaches, because these objects "own" very large pieces of memory and I want to make sure they get freed. 2017-11-01T00:55:00Z leah2 joined #sbcl 2017-11-01T00:59:07Z stylewarning: I suppose this has to do with the page granularity. I am allocating 4096 bytes in between and it works. 2017-11-01T01:16:17Z stassats: very large objects won't share any pages 2017-11-01T01:51:36Z aautcsh joined #sbcl 2017-11-01T01:53:54Z aautcsh quit (Client Quit) 2017-11-01T01:57:16Z stassats: reverting the IF changes... 2017-11-01T02:05:55Z stassats: though it's silly that's such a trivial thing is not trivial 2017-11-01T02:15:11Z aautcsh joined #sbcl 2017-11-01T02:28:32Z Zisper: Did something change with how sbclrc files are handled in recent releases? 2017-11-01T02:30:30Z Zisper: In 1.2.21 I have (ql:quickload x) (in-package x) (x:afunc) (x:bfunc) 2017-11-01T02:30:49Z Zisper: When I upgraded to 1.4.0 the behavior changed 2017-11-01T02:31:00Z Zisper: 1.3.21 rather 2017-11-01T02:31:41Z Zisper: 1.3.21 worked as expected, 1.4.0 I was no longer in-package after startup, but still in cl-user 2017-11-01T02:38:59Z stassats: that's how LOAD works 2017-11-01T02:45:39Z aautcsh quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-01T02:49:17Z Zisper quit (Remote host closed the connection) 2017-11-01T02:49:37Z Zisper joined #sbcl 2017-11-01T02:55:23Z stassats: i'll change .sbclrc back to not binding *package* 2017-11-01T03:02:32Z stylewarning: stassats but the obj itself allocated the large obj and points to 2017-11-01T03:02:36Z stylewarning: it 2017-11-01T03:02:47Z stassats: Zisper: it's back to the way it was 2017-11-01T03:02:50Z stylewarning: And the fate of the large obj depends on the fate of obj 2017-11-01T03:03:07Z stassats: stylewarning: then it's possible 2017-11-01T03:08:26Z stassats: anyway, calling (gc :full t) is not representative of anything 2017-11-01T03:08:27Z stassats: good or bad 2017-11-01T03:11:09Z stylewarning: I’ll have to contemplate solutions then 2017-11-01T03:11:22Z stassats: solving what? 2017-11-01T03:11:42Z stassats: calling gc :full in a loop? 2017-11-01T03:12:20Z stylewarning: My server keeps crashing because of eventual memory exhaustion 2017-11-01T03:14:55Z stassats: buy more memory? 2017-11-01T03:15:05Z stassats: a better bet than making sbcl gc sensible 2017-11-01T03:15:38Z stylewarning: We run on as much memory as we can get our hands on. Right now 3.8 TiB. 2017-11-01T03:16:28Z stassats: that may be a bit too much for SBCL 2017-11-01T03:16:39Z stassats: it can barely handle 3.8 GB 2017-11-01T03:17:53Z stylewarning: SBCL copes fine 2017-11-01T03:18:31Z stylewarning: It helps that most of the memory is in large chunks and the app doesn’t otherwise cons much, except for these big chunks 2017-11-01T03:23:08Z stassats: what kind of chunks? 2017-11-01T03:27:23Z Zisper: Stassats: cheers 2017-11-01T03:28:11Z Bike quit (Quit: Lost terminal) 2017-11-01T05:52:51Z stassats quit (Ping timeout: 246 seconds) 2017-11-01T05:56:16Z whoman quit (Remote host closed the connection) 2017-11-01T07:06:54Z angavrilov joined #sbcl 2017-11-01T08:03:13Z bkst quit (Ping timeout: 248 seconds) 2017-11-01T08:17:35Z attila_lendvai joined #sbcl 2017-11-01T08:17:35Z attila_lendvai quit (Changing host) 2017-11-01T08:17:35Z attila_lendvai joined #sbcl 2017-11-01T08:18:25Z shka joined #sbcl 2017-11-01T08:38:40Z bkst joined #sbcl 2017-11-01T08:43:25Z scymtym quit (Remote host closed the connection) 2017-11-01T09:02:57Z bkst quit (Ping timeout: 240 seconds) 2017-11-01T09:18:58Z bkst joined #sbcl 2017-11-01T09:26:48Z flip214: stylewarning: perhaps it would be easier to explicitly allocate and free the large object(s), then? 2017-11-01T09:36:28Z loke: Hello SBCL. 2017-11-01T09:36:40Z loke: I was reading srctran.lisp, and found this comment: 2017-11-01T09:37:03Z loke: “We disable this transform in the cross-compiler to save memory in the target image; most of the uses of FORMAT in the compiler are for error messages, and those don't need to be particularly fast.” 2017-11-01T09:37:23Z loke: This comment is immediately followed by a transofrmation that is prefixed by #+sb-xc 2017-11-01T09:37:50Z loke: Doesn't that mean that the transformation is only _enabled_ for xc 2017-11-01T09:37:52Z loke: ? 2017-11-01T09:38:00Z oleo: ya 2017-11-01T09:38:07Z oleo: in the crosscompiler part 2017-11-01T09:38:35Z loke: I'm wondering if this is a mistake? 2017-11-01T09:39:05Z oleo: when the sb-xc flag is pushed to the *features* list and so the crosscompilation is active....then it is in effect 2017-11-01T09:40:08Z oleo: loke: no +sb-xc checks for the crosscompilation phase 2017-11-01T09:40:14Z loke: oleo: In that case either the comment is unclear or misleading, or there is a bug? 2017-11-01T09:40:23Z oleo: loke: and the disablement is in the code 2017-11-01T09:41:25Z oleo: loke: if not in the code, then it would be an error yes 2017-11-01T09:41:50Z loke: It's line 4500 in srctran.lisp 2017-11-01T09:41:52Z oleo: loke: otherwise the disablement refers to the block itself 2017-11-01T09:41:58Z loke: 4510 to be precise. 2017-11-01T09:44:48Z oleo: it's 4517 here 2017-11-01T09:46:18Z oleo: so the code tells you to give-up-ir1-transform if the control is constant 2017-11-01T09:46:52Z oleo: so it's part of constant-folding or so 2017-11-01T09:47:59Z oleo: the transformation in question is that of ir1-transform 2017-11-01T09:49:01Z oleo: as far as i understand 2017-11-01T09:49:43Z oleo: sorry so the code tells you to skip ir1-transform if the control is not constant 2017-11-01T09:50:49Z oleo: in that case the ir1-transform is skipped and only a message given 2017-11-01T09:52:29Z oleo: if the control string is a constant then the body applies 2017-11-01T09:56:57Z oleo: give-up-ir1-transform is in ir1opt.lisp 2017-11-01T09:58:22Z oleo: loke: it's for skipping optimization for constant control strings 2017-11-01T09:58:53Z oleo: loke: otherwise you're right that the message sounds like it refers to the block of +sb-xc 2017-11-01T10:00:23Z oleo: since the body is also a (deftransform format...... 2017-11-01T10:07:05Z loke: oleo: Ah, I think I understand. 2017-11-01T10:18:04Z oleo: hmm, maybe i'm wrong in wording 2017-11-01T10:21:00Z oleo: when not constant-lvar-p control string skip it, else apply body 2017-11-01T10:22:13Z oleo: so when constant-lvar-p control body 2017-11-01T10:22:18Z oleo: so in that case what does the body do ? 2017-11-01T10:25:00Z oleo: only constant control strings are processed, there is no expansion of non-constant ones 2017-11-01T10:26:00Z oleo: so non-constant ones are skipped in the cross-compiler 2017-11-01T10:26:32Z oleo: or the cross-compilation phase 2017-11-01T10:26:51Z oleo: otherwise it would have to turn them to constants too 2017-11-01T10:27:33Z loke: oleo: I don't know. I'm re-reading it and it still isn't clear to me what the purpose of all that is. 2017-11-01T10:28:35Z oleo: the give-up-ir1-transform is a throw-catch method to noodle out of that (deftransform format.....thing 2017-11-01T10:28:56Z oleo: it's an abort of sorts 2017-11-01T10:29:27Z oleo: abort to process non-constants, so only process constants 2017-11-01T10:29:51Z oleo: so the body does an expansion of constant control strings 2017-11-01T10:36:19Z oleo: loke: it makes sure to have all info avail at cross-compilation phase to be sure on calling things proper, if there would be non-constants, it would have to delay it 2017-11-01T10:39:42Z oleo: loke: package names (and other args) which are, simple-strings and constant, will be processed (expanded, passed on etc) 2017-11-01T10:40:20Z oleo: loke: there are other variants of that (deftransform format....which applies to functions as well 2017-11-01T10:40:41Z oleo: loke: in srctran.lisp below the one form in 4517 2017-11-01T10:41:12Z oleo: loke: so when the function name is a simple-string and constant it will be processed too 2017-11-01T10:42:26Z loke: oleo: I'm just not grasping what this actually does that is not happening when sb-cx is not defined. 2017-11-01T10:44:00Z oleo: loke: it delays the processing of non-constants to a later stage 2017-11-01T10:44:25Z loke: oleo: To what stage? Runtime? 2017-11-01T10:44:28Z oleo: loke: at cross-compilation it can only process that of which it is sure to process 2017-11-01T10:44:40Z loke: And what kind of processing of non-constants could you ever do? 2017-11-01T10:45:05Z oleo: loke: a non-constant is variable, it might that you initialize some variables at a later stage 2017-11-01T10:45:22Z oleo: loke: they get filled at a later stage so to say 2017-11-01T10:46:13Z oleo: loke: if you tried to expand on it early, it would be a logical error (if not syntactic too) 2017-11-01T10:48:34Z oleo: loke: in sayin "that you initialize some variables at a later stage" i meant the compilation system itself is constructed that way that it initializes some variables at a later stage, for example those that are only meaningfull for the target and not the cross compiler 2017-11-01T10:49:34Z oleo: that's my understanding and i hope it is ok 2017-11-01T10:49:46Z oleo: if you have any other idea tell me 2017-11-01T10:51:28Z loke: oleo: I don't know. I thought the source transforms for FORMAT was all about statically expanding constant strings. 2017-11-01T10:52:54Z oleo: and you may ask why they have to be declared (kept) in the cross-compiler without being initialized, and the answer is cause they are stuff that belongs to the target and have to be initialized there properly and they have to be passed on to that stage uninitialized tho (otherwise there'd be no way to pass them on) 2017-11-01T10:54:01Z oleo: if you optimized them away, they'd be amiss at the target stage, if you tried to expand on unitialized stuff it would be an error 2017-11-01T10:54:17Z oleo: so you just don't touch'em 2017-11-01T10:56:11Z loke: oleo: OK, so this deftransform will then prevent the others from running (which would have otherwise been applied)? 2017-11-01T10:56:31Z oleo: ya it doesn't touch'em 2017-11-01T10:56:48Z oleo: it only touches what it can for sure 2017-11-01T10:57:57Z oleo: i have no idea about static etc. that word is so overloaded, i'd have ensure what one meant each time when it is mentioned, so i don't keep track of that.... 2017-11-01T11:04:26Z oleo: loke: things are not so easy 2017-11-01T11:04:53Z oleo: loke: there is for example the runtime of the cross-compiler and the runtime of the target etc... you have to delineate things properly 2017-11-01T11:15:41Z attila_lendvai quit (Quit: Leaving.) 2017-11-01T11:51:29Z leah2 quit (Ping timeout: 248 seconds) 2017-11-01T11:56:38Z leah2 joined #sbcl 2017-11-01T12:32:15Z hlavaty joined #sbcl 2017-11-01T12:32:30Z hlavaty: asdf update broke build 2017-11-01T12:34:07Z hlavaty: compiling asdf.lisp -> ((= DATE 2208988801) 2208988800) -> illegal function call 2017-11-01T12:40:07Z mfiano quit (Quit: WeeChat 1.9) 2017-11-01T12:47:17Z Jesin quit (Quit: Leaving) 2017-11-01T12:48:10Z Bike joined #sbcl 2017-11-01T13:20:01Z Zisper quit (Ping timeout: 248 seconds) 2017-11-01T13:24:40Z Zisper joined #sbcl 2017-11-01T13:28:30Z cromachina quit (Read error: Connection reset by peer) 2017-11-01T13:34:23Z jack_rabbit quit (Ping timeout: 248 seconds) 2017-11-01T13:42:06Z stassats joined #sbcl 2017-11-01T13:42:44Z stassats: hlavaty: did it really? 2017-11-01T13:43:39Z hlavaty: that's what i am seing 2017-11-01T13:43:55Z stassats: that's what nobody else is seeing 2017-11-01T13:44:01Z hlavaty: it might not be cause by asdf, but it doesn't compile for me 2017-11-01T13:44:10Z hlavaty: ok 2017-11-01T13:44:20Z hlavaty: then all is fine 2017-11-01T13:44:45Z hlavaty: i'll have a look if something has changed on our side 2017-11-01T13:44:53Z m00natic joined #sbcl 2017-11-01T13:44:57Z stassats: COND lost a letter? 2017-11-01T13:45:00Z stassats: or gained 2017-11-01T13:45:08Z stassats: or disappeared 2017-11-01T13:46:39Z stassats: hlavaty: but wait, you mean the sbcl build? 2017-11-01T13:47:40Z jack_rabbit joined #sbcl 2017-11-01T14:02:25Z sjl_ joined #sbcl 2017-11-01T14:04:27Z sjl quit (Ping timeout: 240 seconds) 2017-11-01T14:04:58Z sjl joined #sbcl 2017-11-01T14:06:48Z sjl_ quit (Ping timeout: 240 seconds) 2017-11-01T14:14:12Z Jesin joined #sbcl 2017-11-01T14:30:22Z Kevslinger joined #sbcl 2017-11-01T15:00:56Z hlavaty: stassats: yes sbcl build 2017-11-01T15:02:05Z hlavaty: Last successful build 2017-10-30 17:24:05 First broken build 2017-10-31 12:39:37 2017-11-01T15:02:36Z hlavaty: but i don't have time to look into it now, it might be a problem with our CI 2017-11-01T15:14:27Z stassats: darn, the windows build got somehow broken for 1.4.1 2017-11-01T15:14:36Z stassats: i thought i had tested it 2017-11-01T15:23:00Z stassats: i see where :immobile-object is coming from, but it has been there before and the windows build didn't break 2017-11-01T15:30:27Z hlavaty quit (Remote host closed the connection) 2017-11-01T15:31:44Z aautcsh joined #sbcl 2017-11-01T15:33:23Z aautcsh quit (Client Quit) 2017-11-01T15:42:29Z stassats: i don't know how to fix it 2017-11-01T15:44:54Z stassats: or maybe i know now 2017-11-01T15:59:33Z stassats: the release not working on win32, embarrassing 2017-11-01T16:06:05Z Zisper quit (Ping timeout: 240 seconds) 2017-11-01T16:07:34Z Jesin quit (Quit: Leaving) 2017-11-01T16:10:19Z Jesin joined #sbcl 2017-11-01T16:15:06Z sjl: in the changelog for 1.2.31 there's this: > enhancement: DEFMETHOD no longer signals IMPLICIT-GENERIC-FUNCTION-WARNING. 2017-11-01T16:15:11Z sjl: is there a way to get that signal back? 2017-11-01T16:15:28Z sjl: I lost a chunk of time trying to debug why a method I had overridden wasn't being called 2017-11-01T16:15:54Z sjl: turns out I had forgotten to package qualify the symbol: I did (defmethod foo () ()) instead of (defmethod somelibrary:foo ()) 2017-11-01T16:19:38Z Jesin quit (Quit: Leaving) 2017-11-01T16:21:55Z stassats: sjl: you'll have to live with that 2017-11-01T16:22:04Z sjl: damn 2017-11-01T16:22:31Z Jesin joined #sbcl 2017-11-01T16:25:11Z sjl: another class of bugs for my brain to have to keep in mind 2017-11-01T16:25:13Z sjl: oh well 2017-11-01T16:26:04Z stassats: i had that happen even with the warning 2017-11-01T16:26:36Z stassats: but we can't be issuing warnings for standard behavior 2017-11-01T16:28:13Z sjl: the standard uses (setq foo ...) at the top level all over the place in the examples, but that still produces a warning? 2017-11-01T16:28:27Z stassats: examples are not part of the standard 2017-11-01T16:30:22Z Bike: it wasn't a style warning? 2017-11-01T16:30:36Z sjl: Bike: ; caught WARNING: 2017-11-01T16:30:37Z sjl: ; undefined variable: Y 2017-11-01T16:30:51Z stassats: clhs setq 2017-11-01T16:30:51Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/s_setq.htm 2017-11-01T16:31:03Z stassats: works only on variables 2017-11-01T16:31:23Z Bike: I meant the implicit generic function thing. 2017-11-01T16:31:32Z Bike: setq on an unknown symbol being a warning makes sense. 2017-11-01T16:31:51Z sjl: ah, I don't remember what it used to be 2017-11-01T16:32:11Z sjl: I just remember it telling me "you're not doing what you thought you were doing, idiot" and me saying "thanks, I'm an idiot" 2017-11-01T16:32:18Z sjl: and now it just silently lets me be an idiot 2017-11-01T16:32:32Z stassats: Bike: it was a stylewarning, otherwise nothing in quicklisp would build 2017-11-01T16:32:54Z sjl: for what it's worth, the manual still says it should be a style warning: http://www.sbcl.org/manual/#Style-Warnings 2017-11-01T16:33:25Z stassats: it's documentation, what do you want it to be, correct and up to date? 2017-11-01T16:33:48Z sjl: in this case I want the documentation to be correct, but to accomplish that by making the code fit it :) 2017-11-01T16:34:07Z Bike: makes sense 2017-11-01T16:34:27Z sjl: > That is, unless the compiler warns about such conditions, there's no way for the compiler to warn about some programming errors which would otherwise be easy to overlook. 2017-11-01T16:34:32Z sjl: yep, this is exactly my case 2017-11-01T16:34:37Z Bike: it being a style warning i meant 2017-11-01T16:34:53Z Bike: i mean. that it was. i don't have an opinion on it continuing to be 2017-11-01T16:35:19Z stassats: sjl: that's... programming 2017-11-01T16:35:29Z stassats: don't program incorrect programs and expect warnings 2017-11-01T16:35:45Z sjl: stassats: I expect warnings because I *used to get them* 2017-11-01T16:35:53Z sjl: and was hoping I could still get them 2017-11-01T16:36:05Z stassats: and people tolerated those stupid warnings for years 2017-11-01T16:36:18Z sjl: I wonder how many bugs they caught 2017-11-01T16:36:23Z Shinmera: I'm in the camp of people for which the warning was more obnoxious than anything else. 2017-11-01T16:36:52Z stassats: sjl: i wonder how many bugs they allowed to exists, because they drowned legitimate warnings in the noise 2017-11-01T16:38:01Z sjl: stassats: unfortunately it's probably impossible to quantify those rates 2017-11-01T16:38:04Z sjl: on both sides 2017-11-01T16:38:16Z stassats: if it were in the standard, i would include it, but it's not it 2017-11-01T16:38:26Z stassats: there's only one arbiter, the standard 2017-11-01T16:38:29Z sjl: oh well, I'll just accept that the compiler will no longer protect me from these bugs and add it to my mental list 2017-11-01T16:38:37Z Shinmera: sjl: FWIW you could define a custom defmethod that does signal a warning if the generic function doesn't exist and use that during dev or something. 2017-11-01T16:38:47Z sjl: Shinmera: that thought did cross my mind 2017-11-01T16:38:55Z sjl: it's still in the crosswalk 2017-11-01T16:39:04Z sjl: we'll see if it makes it to the other side or gets hit by a bus on the way 2017-11-01T16:43:18Z Shinmera: You could also write a little tool to check whether required methods exist on certain generic functions. 2017-11-01T16:43:31Z Shinmera: If needing to write a method is part of your protocol or somethign 2017-11-01T16:44:41Z sjl: I don't need to go that far. I just want to catch when I accidentally typo a method name. 2017-11-01T16:45:05Z sjl: and I like writing my defgeneric's. It's a good place to clearly lay out the API and documentation of a generic function. 2017-11-01T16:50:19Z stassats: sure, and i always use SETF instead of SETQ, can't be issuing warnings about that 2017-11-01T16:57:17Z Jesin quit (Quit: Leaving) 2017-11-01T17:11:05Z mood quit (Ping timeout: 255 seconds) 2017-11-01T17:15:29Z mood joined #sbcl 2017-11-01T17:23:47Z Jesin joined #sbcl 2017-11-01T17:38:55Z whoman joined #sbcl 2017-11-01T17:47:31Z stylewarning: Does anyone know why (zerop x) for a (declare (type complex-double x)) would issue "; note: unable to open code because: The operands might not be the same type." 2017-11-01T17:47:41Z stylewarning: SBCL shows the expansion of (zerop x) to (= 0 x) 2017-11-01T17:48:08Z stylewarning: this is with speed=3 debug=1 safety=2 2017-11-01T17:53:02Z stylewarning: repro http://paste.lisp.org/display/360031 2017-11-01T17:57:17Z stylewarning: Of course, it works for (= #C(0.0d0 0.0d0) x), so it's just type confusion I suppose. 2017-11-01T18:10:27Z fiveop joined #sbcl 2017-11-01T18:15:45Z stassats: stylewarning: now it's the same 2017-11-01T18:16:37Z fiveop quit (Quit: Lost terminal) 2017-11-01T18:18:05Z m00natic quit (Remote host closed the connection) 2017-11-01T18:31:26Z fiveop joined #sbcl 2017-11-01T18:41:57Z fiveop quit (Quit: Lost terminal) 2017-11-01T19:00:51Z fiveop joined #sbcl 2017-11-01T19:04:24Z attila_lendvai joined #sbcl 2017-11-01T19:04:44Z attila_lendvai quit (Changing host) 2017-11-01T19:04:44Z attila_lendvai joined #sbcl 2017-11-01T19:08:10Z kini quit (Quit: No Ping reply in 180 seconds.) 2017-11-01T19:11:59Z kini joined #sbcl 2017-11-01T19:51:06Z karswell_ joined #sbcl 2017-11-01T19:55:31Z fiveop quit (Quit: Lost terminal) 2017-11-01T19:56:14Z karswell_ is now known as karswell 2017-11-01T20:06:40Z stylewarning: stassats: awesome! Thanks 2017-11-01T20:09:10Z stylewarning: stassats: can ROTATEF on AREF on (SIMPLE-ARRAY (COMPLEX DOUBLE-FLOAT) (*)) be optimized better than four MOVAPD's? 2017-11-01T20:09:29Z stassats: define "can" 2017-11-01T20:09:53Z stylewarning: What would the assembly look like? Right now it's move into XMM's and move back out 2017-11-01T20:11:47Z stassats: adjacent could be rotated using AVX2 2017-11-01T20:12:47Z pkhuong: I wouldn't bet on cross-lane AVX2 being faster than separate SSE though. 2017-11-01T20:13:33Z stassats: more compact 2017-11-01T20:23:17Z oleo is now known as oleo2 2017-11-01T20:24:36Z oleo2 is now known as oleo 2017-11-01T20:35:20Z foom: Also, using 256bit registers typically results in lower clock speed of your CPU, so you really don't want to do that unless you're gonna get counterbalancing value out of it. 2017-11-01T20:38:19Z pkhuong: and that warm-up time :\ 2017-11-01T20:38:29Z pkhuong: really hard to use AVX unless you commit to it 2017-11-01T20:43:56Z milanj joined #sbcl 2017-11-01T20:47:14Z stassats: huh, (trace foo :encapsulate nil) enters some kind of single step mode on Darwin 2017-11-01T20:47:59Z stassats: after the breakpoint is handled by signal emulation it sends EXC_BREAKPOINT 2017-11-01T20:48:06Z stassats: continuing in lldb hits again 2017-11-01T20:50:03Z foom: pkhuong: and what's a few-thousand cycles of halted processor between friends? 2017-11-01T20:51:07Z pkhuong: incidentally, I still don't know how to get glibc to not automatically use AVX2 for string operations when CPUID says it's available :| 2017-11-01T20:51:27Z stassats: rebuilding with a different trap number before diving into XNU 2017-11-01T20:52:02Z stassats: pkhuong: AVX2 support is OS configurable 2017-11-01T20:52:51Z stylewarning: Are there any good manuals/guides to things like AVX2? I am looking to extract more speed out of this thing, chewing through terabytes of numerical data. 2017-11-01T20:55:03Z angular_mike___ quit 2017-11-01T20:56:00Z stassats: stylewarning: anything describing SSE would be applicable, then just add more instructions 2017-11-01T20:56:17Z foom: First add more instructions from AVX, then add even more from AVX2 2017-11-01T20:56:29Z foom: Then you can add some more from AVX512 if you're really excited 2017-11-01T20:56:31Z angular_mike___ joined #sbcl 2017-11-01T20:56:57Z stylewarning: I wish I knew enough SBCL to do this sort of assembly hacking. 2017-11-01T20:57:14Z pkhuong: you don't need to know much to use intrinsics directly. 2017-11-01T20:57:16Z foom: I'd suggest writing it in C. =0 2017-11-01T20:57:21Z angular_mike___ quit (Client Quit) 2017-11-01T20:57:27Z pkhuong: but also if you're going to chew through terabytes, generating C or asm will be easier 2017-11-01T20:57:52Z stassats: if you're into intrinsics: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#techs=AVX,AVX2 2017-11-01T20:58:12Z stylewarning: pkhuong: I've gone through the exercise of defining a vop and so on. But I still don't know it well enough to use it fluently. 2017-11-01T20:58:50Z angular_mike___ joined #sbcl 2017-11-01T20:59:14Z angular_mike___ quit (Client Quit) 2017-11-01T20:59:15Z stylewarning: If I could generate assembly and dynamically link/load it in at runtime, that would be nice. 2017-11-01T21:00:00Z stassats: dlopen? 2017-11-01T21:00:13Z pkhuong: aka sb-alien. 2017-11-01T21:00:37Z pkhuong: also, SIMD shuffles are a nightmare in x86. It's always a funny logic puzzle to figure out how to assemble the various components available to get the data movement you actually need. clang's vectorisation system can handle that for you. 2017-11-01T21:01:20Z angular_mike joined #sbcl 2017-11-01T21:02:19Z stylewarning: stassats: generating code on-the-fly and then linking it with dlopen sounds bad. If you do it once, it's ok, but if you do it 100s of times, it doesn't seem so good. 2017-11-01T21:21:44Z DeadTrickster joined #sbcl 2017-11-01T21:25:19Z shka quit (Ping timeout: 248 seconds) 2017-11-01T21:38:14Z stassats: stylewarning: how's that different from any code generation? 2017-11-01T21:43:18Z stassats: i don't really get this single stepping thing on darwin 2017-11-01T21:45:09Z Bicyclidine joined #sbcl 2017-11-01T21:48:58Z Bike quit (Ping timeout: 264 seconds) 2017-11-01T21:49:27Z Bicyclidine quit (Ping timeout: 240 seconds) 2017-11-01T21:57:58Z sjl quit (Ping timeout: 264 seconds) 2017-11-01T21:58:16Z stassats: somehow, the Trap Flag is set 2017-11-01T21:58:43Z stylewarning: stassats: it's not, except using COMPILE is pretty nice and abstracts those details away, and seems robust 2017-11-01T21:59:05Z stassats: you're the one wanting to write in assembly 2017-11-01T22:00:29Z stylewarning: Well I really want to write in Lisp and it somehow turns into assembly :) 2017-11-01T22:02:40Z stassats: or SBCL itself setting TF? 2017-11-01T22:07:54Z stassats: right... 2017-11-01T22:15:56Z Bike joined #sbcl 2017-11-01T22:20:59Z stassats: looks i got finally got it 2017-11-01T22:25:11Z angavrilov quit (Remote host closed the connection) 2017-11-01T22:28:27Z Bike_ joined #sbcl 2017-11-01T22:28:57Z oleo quit (Quit: Leaving) 2017-11-01T22:31:58Z stassats: and i get to close a bug filed on 2008-12-17 2017-11-01T22:32:07Z Bike quit (Ping timeout: 260 seconds) 2017-11-01T22:32:10Z stassats: and is probably older than that 2017-11-01T22:47:14Z oleo joined #sbcl 2017-11-01T22:56:49Z oleo2 joined #sbcl 2017-11-01T22:58:04Z Jesin quit (Quit: Leaving) 2017-11-01T23:06:05Z oleo2 quit (Quit: Leaving) 2017-11-01T23:15:47Z Bike_ is now known as Bike 2017-11-01T23:31:41Z dougk_ joined #sbcl 2017-11-01T23:38:20Z cromachina joined #sbcl 2017-11-01T23:40:42Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-01T23:44:56Z dougk__ joined #sbcl 2017-11-01T23:47:22Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-02T00:22:53Z Zisper joined #sbcl 2017-11-02T01:26:05Z dim quit (Ping timeout: 255 seconds) 2017-11-02T01:32:39Z dim joined #sbcl 2017-11-02T01:52:13Z milanj quit (Quit: This computer has gone to sleep) 2017-11-02T02:21:58Z sjl joined #sbcl 2017-11-02T02:26:21Z sjl quit (Ping timeout: 240 seconds) 2017-11-02T02:31:34Z pfdietz quit (Ping timeout: 264 seconds) 2017-11-02T02:37:41Z eschatologist quit (Ping timeout: 240 seconds) 2017-11-02T02:37:51Z eschatologist joined #sbcl 2017-11-02T02:46:18Z ym quit (Remote host closed the connection) 2017-11-02T02:48:09Z ym joined #sbcl 2017-11-02T02:52:52Z pfdietz joined #sbcl 2017-11-02T03:06:27Z stassats quit (Ping timeout: 240 seconds) 2017-11-02T03:10:59Z Bike quit (Quit: Lost terminal) 2017-11-02T03:13:24Z sjl joined #sbcl 2017-11-02T03:17:53Z sjl quit (Ping timeout: 248 seconds) 2017-11-02T04:15:57Z dougk__ quit (Ping timeout: 240 seconds) 2017-11-02T05:15:24Z p_l: stylewarning: Wasn't it possible to use SBCL's compiler to write assembly including creating blocks of memory to link it, without touching dlopen? 2017-11-02T05:16:42Z p_l seems to recall an article that used that kind of work, by pkhuong 2017-11-02T05:16:58Z loke: p_l: SBCL has an assembler, yes. You can embed assembly code in your functions. 2017-11-02T05:17:45Z p_l: loke: yeah, though I sometimes wish it was better documented 2017-11-02T05:18:02Z p_l: Maybe once my local situation stabilizes I'd take a stab at it :< 2017-11-02T05:20:18Z loke: p_l: what you're looking for is DEFINE-VOP 2017-11-02T05:33:58Z milanj joined #sbcl 2017-11-02T05:51:00Z milanj quit (Quit: This computer has gone to sleep) 2017-11-02T06:11:04Z milanj joined #sbcl 2017-11-02T06:12:02Z karswell quit (Read error: Connection reset by peer) 2017-11-02T06:17:25Z shka joined #sbcl 2017-11-02T06:25:41Z DeadTrickster quit (Ping timeout: 240 seconds) 2017-11-02T06:31:16Z angavrilov joined #sbcl 2017-11-02T06:41:33Z oleo quit (Quit: Leaving) 2017-11-02T06:51:15Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-02T07:29:31Z dougk_ joined #sbcl 2017-11-02T07:34:02Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-02T08:18:05Z shka quit (Ping timeout: 240 seconds) 2017-11-02T08:28:42Z dougk_ joined #sbcl 2017-11-02T08:34:01Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-02T08:39:03Z sjl joined #sbcl 2017-11-02T08:42:02Z attila_lendvai joined #sbcl 2017-11-02T08:43:34Z sjl quit (Ping timeout: 255 seconds) 2017-11-02T08:54:27Z dougk_ joined #sbcl 2017-11-02T09:10:43Z milanj quit (Quit: This computer has gone to sleep) 2017-11-02T09:25:53Z scymtym joined #sbcl 2017-11-02T09:26:17Z dougk_ quit (Read error: Connection reset by peer) 2017-11-02T09:26:34Z dougk_ joined #sbcl 2017-11-02T09:37:32Z scymtym_ joined #sbcl 2017-11-02T09:41:44Z scymtym quit (Ping timeout: 246 seconds) 2017-11-02T09:59:41Z whoman quit (Read error: Connection reset by peer) 2017-11-02T10:45:27Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-02T10:47:23Z Bike joined #sbcl 2017-11-02T11:23:43Z Bike quit (Ping timeout: 252 seconds) 2017-11-02T11:25:04Z Bike joined #sbcl 2017-11-02T11:53:17Z m00natic joined #sbcl 2017-11-02T12:11:07Z Bike quit (Ping timeout: 260 seconds) 2017-11-02T12:16:27Z attila_lendvai quit (Quit: Leaving.) 2017-11-02T12:47:24Z Bike joined #sbcl 2017-11-02T12:57:24Z dougk_ joined #sbcl 2017-11-02T13:02:48Z rgrau joined #sbcl 2017-11-02T13:24:18Z edgar-rft quit (Quit: edgar-rft) 2017-11-02T13:37:35Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-02T13:46:13Z dougk_ joined #sbcl 2017-11-02T13:52:35Z dougk_ quit (Read error: Connection reset by peer) 2017-11-02T13:52:53Z dougk_ joined #sbcl 2017-11-02T13:56:00Z stassats joined #sbcl 2017-11-02T13:58:15Z sjl_ joined #sbcl 2017-11-02T13:58:24Z stassats: i think i got (let (*) (if x 1 2)) to emit only one unbind, not two 2017-11-02T14:05:25Z cromachina quit (Read error: Connection reset by peer) 2017-11-02T14:11:39Z stassats: just to iron out the kinks, like Memory fault at (nil) in cold init 2017-11-02T14:11:40Z stassats: sigh 2017-11-02T14:27:34Z m00natic` joined #sbcl 2017-11-02T14:28:23Z m00natic quit (Remote host closed the connection) 2017-11-02T14:37:38Z stassats: things get corrupted somewhere else, hate when that happens 2017-11-02T14:44:16Z stassats: disabled for :block cleanups, and ansi-tests show fewer test failures, what? 2017-11-02T14:44:30Z stassats: than before the changes 2017-11-02T14:44:43Z stassats: merging :block cleanups ends up badly crashing, not sure why yet 2017-11-02T14:45:36Z oleo joined #sbcl 2017-11-02T14:47:00Z stassats: i have accidentally enable the interpreter 2017-11-02T15:12:57Z dougk_ quit (Ping timeout: 258 seconds) 2017-11-02T15:17:57Z hlavaty joined #sbcl 2017-11-02T15:20:03Z hlavaty: i've bisected the asdf compilation problem which breaks sbcl build for me to 4efaf7175cda0c42bc337013b51b61ac32b28306 is the first bad commit 2017-11-02T15:20:39Z stassats: that's anticlimactic 2017-11-02T15:21:13Z dougk_ joined #sbcl 2017-11-02T15:21:35Z hlavaty: why? 2017-11-02T15:21:45Z stassats: cause it says "asdf: Update to 3.3.0.1" 2017-11-02T15:21:56Z stassats: but it obviously builds for everyone else 2017-11-02T15:22:01Z hlavaty: yes 2017-11-02T15:24:22Z milanj joined #sbcl 2017-11-02T15:27:48Z milanj quit (Client Quit) 2017-11-02T15:32:49Z sjl_ is now known as sjl 2017-11-02T15:38:13Z hlavaty: stassats: ok, found it. nixos sbcl package needs to be updated; thanks for your help! 2017-11-02T15:38:51Z stassats: hlavaty: how did it affect your build? 2017-11-02T15:40:08Z scymtym_ quit (Ping timeout: 246 seconds) 2017-11-02T15:41:17Z hlavaty: the package says, how to build sbcl under nixos; and makes the build more reproducible; there are some sed commands and one of them needs updating 2017-11-02T15:41:29Z stassats: i see 2017-11-02T15:42:24Z DeadTrickster joined #sbcl 2017-11-02T15:46:41Z milanj joined #sbcl 2017-11-02T15:47:06Z milanj quit (Client Quit) 2017-11-02T15:48:07Z fortitude joined #sbcl 2017-11-02T15:55:07Z hlavaty left #sbcl 2017-11-02T15:57:25Z Jesin joined #sbcl 2017-11-02T16:25:03Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-02T16:26:51Z dougk_ joined #sbcl 2017-11-02T16:31:30Z Kevslinger joined #sbcl 2017-11-02T16:33:41Z rgrau quit (Ping timeout: 246 seconds) 2017-11-02T16:36:47Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-02T16:38:08Z dougk_ joined #sbcl 2017-11-02T16:39:11Z Jesin quit (Quit: Leaving) 2017-11-02T16:44:16Z scymtym joined #sbcl 2017-11-02T16:48:49Z liead is now known as adlai 2017-11-02T16:49:27Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-02T16:52:54Z Jesin joined #sbcl 2017-11-02T17:02:27Z rgrau joined #sbcl 2017-11-02T17:03:28Z m00natic` quit (Remote host closed the connection) 2017-11-02T17:03:45Z m00natic` joined #sbcl 2017-11-02T17:08:33Z milanj joined #sbcl 2017-11-02T17:14:58Z edgar-rft joined #sbcl 2017-11-02T17:41:49Z DeadTrickster_ joined #sbcl 2017-11-02T17:45:22Z DeadTrickster quit (Ping timeout: 260 seconds) 2017-11-02T17:57:01Z fortitude: I remember reading at one point (and of course I can't remember where) that sbcl's compiler is generally not thread-safe -- is this true, and if so, does it apply to other constructs like EVAL or LAMBDA forms, or just COMPILE itself? 2017-11-02T17:57:19Z stassats: only the compiler 2017-11-02T18:00:46Z stassats: and it's thread safe 2017-11-02T18:00:47Z m00natic` quit (Read error: Connection reset by peer) 2017-11-02T18:01:01Z stassats: just serialized 2017-11-02T18:01:32Z fortitude: ah, that's good to know 2017-11-02T18:02:08Z dougk_ joined #sbcl 2017-11-02T18:04:43Z Zisper quit (Ping timeout: 255 seconds) 2017-11-02T18:11:40Z DeadTrickster__ joined #sbcl 2017-11-02T18:11:47Z Bike quit (Remote host closed the connection) 2017-11-02T18:13:55Z angavrilov quit (Remote host closed the connection) 2017-11-02T18:14:18Z angavrilov joined #sbcl 2017-11-02T18:14:27Z DeadTrickster_ quit (Ping timeout: 240 seconds) 2017-11-02T18:14:28Z stassats: looks like i'm unlinking UWP twice, weird 2017-11-02T18:15:18Z Bike joined #sbcl 2017-11-02T18:22:41Z oleo2 joined #sbcl 2017-11-02T18:22:44Z DeadTrickster_ joined #sbcl 2017-11-02T18:24:28Z DeadTrickster__ quit (Ping timeout: 240 seconds) 2017-11-02T18:35:50Z shka joined #sbcl 2017-11-02T18:50:37Z Jesin quit (Quit: Leaving) 2017-11-02T18:54:29Z Jesin joined #sbcl 2017-11-02T19:14:01Z oleo2 quit (Remote host closed the connection) 2017-11-02T19:15:22Z oleo2 joined #sbcl 2017-11-02T20:13:10Z stassats: (let (*) (if x 1 2)) seems to be finally working, (let (*) (if x (let (**) 1) 2)) would be more complicated (unbinding * only once) 2017-11-02T20:21:35Z oleo2 quit (Remote host closed the connection) 2017-11-02T20:23:47Z milanj quit (Quit: This computer has gone to sleep) 2017-11-02T20:25:13Z stassats: forgot to measure core size difference, but a function with (let (*) (if x 1 2)) is 32 bytes smaller 2017-11-02T20:25:29Z stassats: complicated functions with lots of exits and branches and bindings will benefit even more 2017-11-02T20:29:21Z oleo2 joined #sbcl 2017-11-02T20:30:09Z oleo2 quit (Remote host closed the connection) 2017-11-02T20:35:25Z oleo2 joined #sbcl 2017-11-02T20:43:13Z rgrau quit (Ping timeout: 248 seconds) 2017-11-02T20:45:16Z stassats: debugger invoked on a ASDF/SESSION:FORMATTED-SYSTEM-DEFINITION-ERROR in thread 2017-11-02T20:45:16Z stassats: #: 2017-11-02T20:45:16Z stassats: OPERATION instances must only be created through MAKE-OPERATION. 2017-11-02T20:45:18Z stassats: hello... 2017-11-02T20:45:43Z stassats: oh how i despise asdf 2017-11-02T20:47:34Z stassats: updating cffi solved that 2017-11-02T20:58:22Z milanj joined #sbcl 2017-11-02T20:58:54Z DeadTrickster_ quit (Ping timeout: 246 seconds) 2017-11-02T20:59:57Z shka quit (Ping timeout: 246 seconds) 2017-11-02T21:04:42Z angavrilov quit (Remote host closed the connection) 2017-11-02T21:09:21Z Bike quit (Ping timeout: 248 seconds) 2017-11-02T21:31:43Z oleo2 quit (Remote host closed the connection) 2017-11-02T21:36:52Z oleo2 joined #sbcl 2017-11-02T21:44:03Z oleo2 quit (Ping timeout: 246 seconds) 2017-11-02T21:46:40Z Bike joined #sbcl 2017-11-02T21:59:58Z oleo2 joined #sbcl 2017-11-02T22:11:33Z dougk_ quit (Ping timeout: 258 seconds) 2017-11-02T22:16:22Z attila_lendvai joined #sbcl 2017-11-02T22:16:22Z attila_lendvai quit (Changing host) 2017-11-02T22:16:22Z attila_lendvai joined #sbcl 2017-11-02T22:35:26Z sjl_ joined #sbcl 2017-11-02T22:37:37Z sjl quit (Ping timeout: 258 seconds) 2017-11-02T23:09:58Z scymtym quit (Ping timeout: 264 seconds) 2017-11-02T23:40:47Z akovalenko quit (Ping timeout: 255 seconds) 2017-11-02T23:44:51Z dougk_ joined #sbcl 2017-11-03T00:13:46Z DeadTrickster_ joined #sbcl 2017-11-03T00:25:20Z milanj quit (Quit: This computer has gone to sleep) 2017-11-03T00:35:08Z stassats: huh, i accidentally fixed lp#1661911 2017-11-03T00:36:08Z stassats: there i was, complaining that i don't know how to fix it, yet it got fixed several commits back... 2017-11-03T00:37:26Z stassats: not so fast though, its duplicate still fails 2017-11-03T00:39:14Z milanj joined #sbcl 2017-11-03T01:00:36Z pfdietz: Yeah, I'm still seeing that one pop up in random testing. 2017-11-03T01:01:17Z stassats: i was pretty sure it didn't really get fixed, just that i lost a test case 2017-11-03T01:16:35Z stassats: i think i know how to fix it 2017-11-03T01:17:53Z sjl_ is now known as sjl 2017-11-03T01:28:37Z stassats: involves deleting the code form the previous commit (it's not wrong, but should be not needed) 2017-11-03T01:31:05Z stassats: or not, that may break some invariant if i get rid of the return-lambda 2017-11-03T01:45:17Z stassats: can't seem to reduce complexity at the same time as fixing it 2017-11-03T01:58:52Z dougk_ quit (Read error: Connection reset by peer) 2017-11-03T01:59:08Z dougk_ joined #sbcl 2017-11-03T02:03:27Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-03T02:10:41Z attila_lendvai quit (Quit: Leaving.) 2017-11-03T02:16:40Z dougk_ joined #sbcl 2017-11-03T02:18:46Z dougk_ quit (Read error: Connection reset by peer) 2017-11-03T02:18:52Z stassats: some details to work out, will fix tomorrow 2017-11-03T02:19:02Z dougk_ joined #sbcl 2017-11-03T02:30:27Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-03T02:32:59Z Zisper joined #sbcl 2017-11-03T02:35:36Z Zisper quit (Client Quit) 2017-11-03T02:35:56Z Zisper joined #sbcl 2017-11-03T02:36:31Z fortitude quit (Quit: Leaving) 2017-11-03T02:55:13Z stassats quit (Ping timeout: 258 seconds) 2017-11-03T03:00:42Z cromachina joined #sbcl 2017-11-03T03:18:57Z Ziperino joined #sbcl 2017-11-03T03:20:30Z AndChat-86400 joined #sbcl 2017-11-03T03:22:09Z Zisper quit (Ping timeout: 248 seconds) 2017-11-03T03:23:27Z Ziperino quit (Ping timeout: 240 seconds) 2017-11-03T03:46:29Z Bike quit (Quit: Lost terminal) 2017-11-03T03:54:48Z pfdietz_ joined #sbcl 2017-11-03T03:56:15Z pfdietz quit (Ping timeout: 248 seconds) 2017-11-03T04:12:20Z dougk_ joined #sbcl 2017-11-03T04:19:36Z slyrus joined #sbcl 2017-11-03T04:45:21Z dougk_ quit (Read error: Connection reset by peer) 2017-11-03T04:45:37Z dougk_ joined #sbcl 2017-11-03T05:34:57Z sjl quit (Ping timeout: 248 seconds) 2017-11-03T05:56:35Z myrkraverk quit (Ping timeout: 246 seconds) 2017-11-03T06:09:37Z angavrilov joined #sbcl 2017-11-03T06:17:17Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-03T06:22:59Z oleo2 quit (Ping timeout: 258 seconds) 2017-11-03T06:30:30Z oleo quit (Quit: Leaving) 2017-11-03T06:38:17Z shka joined #sbcl 2017-11-03T06:38:55Z myrkraverk joined #sbcl 2017-11-03T06:50:48Z DeadTrickster_ quit (Ping timeout: 240 seconds) 2017-11-03T07:06:18Z shka quit (Ping timeout: 258 seconds) 2017-11-03T07:48:48Z milanj quit (Quit: This computer has gone to sleep) 2017-11-03T08:29:52Z scymtym joined #sbcl 2017-11-03T09:22:12Z Bike joined #sbcl 2017-11-03T09:51:05Z Bike quit (Ping timeout: 246 seconds) 2017-11-03T10:07:34Z attila_lendvai joined #sbcl 2017-11-03T10:07:34Z attila_lendvai quit (Changing host) 2017-11-03T10:07:34Z attila_lendvai joined #sbcl 2017-11-03T10:18:59Z attila_lendvai quit (Quit: Leaving.) 2017-11-03T10:19:36Z attila_lendvai joined #sbcl 2017-11-03T10:19:44Z attila_lendvai quit (Changing host) 2017-11-03T10:19:44Z attila_lendvai joined #sbcl 2017-11-03T10:20:46Z attila_lendvai quit (Client Quit) 2017-11-03T10:43:40Z m00natic joined #sbcl 2017-11-03T11:00:31Z myrkraverk quit (Ping timeout: 258 seconds) 2017-11-03T11:03:57Z Zisper joined #sbcl 2017-11-03T11:04:54Z Zisper quit (Client Quit) 2017-11-03T11:05:03Z AndChat-86400 quit (Ping timeout: 248 seconds) 2017-11-03T11:05:12Z Zisper joined #sbcl 2017-11-03T11:32:39Z myrkraverk joined #sbcl 2017-11-03T11:33:38Z Bike joined #sbcl 2017-11-03T11:36:15Z Bicyclidine joined #sbcl 2017-11-03T11:38:27Z Bike quit (Ping timeout: 246 seconds) 2017-11-03T11:51:30Z stassats joined #sbcl 2017-11-03T11:59:31Z dougk_ joined #sbcl 2017-11-03T12:05:14Z stassats: asdf update broke old cffi, i update cffi, now cffi-grovel breaks my program 2017-11-03T12:05:36Z stassats: why is it always like this with asdf 2017-11-03T12:09:02Z scymtym: my experience is similar so far (i could fix everything in the end, though). if Xach experiences a similar problem frequency multiplied by the number of quicklisp systems, we may have no choice but to revert 2017-11-03T12:09:48Z stassats: hold on, this may have been 3.3 i used for testing before the upgrade 2017-11-03T12:11:46Z stassats: i can't load https://github.com/stassats/inotify/blob/master/inotify.asd but https://github.com/stassats/kqueue/blob/master/kqueue.asd loads 2017-11-03T12:11:52Z stassats: they're almost the same 2017-11-03T12:12:04Z stassats: but the environments may be different, linux/mac 2017-11-03T12:15:48Z stassats: i'll try doing it from quicklisp without my config 2017-11-03T12:17:15Z stassats: (ql:quickload :inotify) does break 2017-11-03T12:18:19Z stassats: how come i can load kqueue? 2017-11-03T12:18:37Z stassats: grovel handler-cases the error, how useful 2017-11-03T12:20:12Z stassats: but it's a cffi problem 2017-11-03T12:22:19Z stassats: i won't point fingers, but the change was done by Fare for some ASDF compatibility 2017-11-03T12:26:39Z dougk_ quit (Read error: Connection reset by peer) 2017-11-03T12:26:58Z dougk_ joined #sbcl 2017-11-03T12:27:10Z stassats: it can be fixed with unset CFLAGS 2017-11-03T12:27:55Z stassats: i don't know how to fix it, since it's all in the new code 2017-11-03T12:33:32Z attila_lendvai joined #sbcl 2017-11-03T12:34:03Z stassats: i can steal SB-GROVEL::SPLIT-CFLAGS 2017-11-03T12:34:31Z attila_lendvai quit (Client Quit) 2017-11-03T12:39:25Z Bicyclidine quit (Ping timeout: 258 seconds) 2017-11-03T12:46:47Z stassats: pull requested cffi 2017-11-03T12:47:06Z stassats: luis: a new release is probably a good idea 2017-11-03T12:48:15Z Jesin quit (Remote host closed the connection) 2017-11-03T12:49:51Z stassats: ok, one more random tester bug, the stack-analyze one, i know why it happens, but not how to fix it 2017-11-03T13:08:32Z Bike joined #sbcl 2017-11-03T13:11:38Z sjl_ joined #sbcl 2017-11-03T13:37:51Z cromachina quit (Read error: Connection reset by peer) 2017-11-03T13:38:40Z oleo2 joined #sbcl 2017-11-03T13:59:32Z myrkraverk quit (Ping timeout: 258 seconds) 2017-11-03T14:00:31Z foom2 joined #sbcl 2017-11-03T14:01:44Z myrkraverk joined #sbcl 2017-11-03T14:02:02Z Jesin joined #sbcl 2017-11-03T14:03:41Z foom quit (Ping timeout: 252 seconds) 2017-11-03T14:09:49Z pfdietz_: Did you fix 1722342? Still marked as triaged. 2017-11-03T14:10:41Z stassats: lp 1722342 2017-11-03T14:10:41Z specbot: https://bugs.launchpad.net/bugs/1722342 2017-11-03T14:11:16Z stassats: pfdietz_: says "Fix Released" 2017-11-03T14:11:17Z pfdietz_: excuse me, lp 1723993 2017-11-03T14:11:23Z stassats: lp 1723993 2017-11-03T14:11:23Z specbot: https://bugs.launchpad.net/bugs/1723993 2017-11-03T14:11:27Z oleo joined #sbcl 2017-11-03T14:11:41Z stassats: pfdietz_: that's the one, i know what's going on, not how to fix 2017-11-03T14:11:54Z pfdietz_: ok 2017-11-03T14:12:22Z stassats: i need help from nyef 2017-11-03T14:14:09Z pfdietz_: I wonder if these random tester bugs should be fixed in inverse order of their frequency, since if one puts off fixing a rare one the test case might accidentally stop failing. 2017-11-03T14:14:30Z pfdietz_: And getting a new test case would be harder than for something that fails easily. 2017-11-03T14:15:01Z pfdietz_ left #sbcl 2017-11-03T14:15:44Z stassats: can't really prioritize whether i can or not fix something 2017-11-03T14:23:59Z live__ joined #sbcl 2017-11-03T14:24:00Z oleo2 quit (Ping timeout: 246 seconds) 2017-11-03T14:24:58Z Jesin quit (Quit: Leaving) 2017-11-03T14:33:35Z Jesin joined #sbcl 2017-11-03T15:11:15Z live__ quit (Ping timeout: 246 seconds) 2017-11-03T15:18:08Z dougk quit (Ping timeout: 255 seconds) 2017-11-03T15:19:27Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-03T15:22:46Z milanj joined #sbcl 2017-11-03T15:30:58Z dougk joined #sbcl 2017-11-03T15:40:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-03T16:11:15Z sjl_ is now known as sjl 2017-11-03T16:16:59Z stylewarning: I wonder if any SBCL hackers want to be hired FT to work on SBCL 2017-11-03T16:29:47Z milanj quit (Quit: This computer has gone to sleep) 2017-11-03T16:42:07Z jack_rabbit quit (Ping timeout: 248 seconds) 2017-11-03T16:47:51Z dougk_ joined #sbcl 2017-11-03T16:57:35Z stassats joined #sbcl 2017-11-03T16:57:38Z jack_rabbit joined #sbcl 2017-11-03T16:58:28Z stassats: stylewarning: only if there is freedom to work on anything 2017-11-03T16:58:43Z stassats: basically, what i do now 2017-11-03T16:58:54Z stassats: but not on some corporate features 2017-11-03T16:59:04Z xristos: stassats: do you do it on your spare time now? 2017-11-03T16:59:11Z stassats: yes 2017-11-03T16:59:29Z xristos: kudos 2017-11-03T17:00:15Z stassats: being able to decided "hmm, this feature is too difficult to do, i'll postpone till i know more" 2017-11-03T17:00:57Z stassats: deadlines, boring features, hard features is not nice 2017-11-03T17:02:26Z eudoxia joined #sbcl 2017-11-03T17:04:00Z milanj joined #sbcl 2017-11-03T17:32:14Z shka joined #sbcl 2017-11-03T17:36:40Z Jesin quit (Quit: Leaving) 2017-11-03T17:38:37Z Jesin joined #sbcl 2017-11-03T17:50:56Z dougk_ quit (Ping timeout: 246 seconds) 2017-11-03T17:54:55Z dougk_ joined #sbcl 2017-11-03T17:55:45Z Zisper quit (Ping timeout: 248 seconds) 2017-11-03T18:12:11Z m00natic quit (Remote host closed the connection) 2017-11-03T18:12:17Z stassats quit (Ping timeout: 248 seconds) 2017-11-03T18:41:09Z dougk__ joined #sbcl 2017-11-03T18:41:57Z dougk_ quit (Ping timeout: 246 seconds) 2017-11-03T18:47:16Z stassats joined #sbcl 2017-11-03T18:54:47Z dougk_ joined #sbcl 2017-11-03T18:56:50Z dougk__ quit (Ping timeout: 252 seconds) 2017-11-03T20:06:52Z eudoxia quit (Quit: Leaving) 2017-11-03T20:24:35Z scymtym quit (Ping timeout: 246 seconds) 2017-11-03T20:54:20Z dougk_ quit (Ping timeout: 246 seconds) 2017-11-03T21:03:30Z DeadTrickster_ joined #sbcl 2017-11-03T21:28:55Z scymtym joined #sbcl 2017-11-03T21:29:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-03T21:31:43Z shka quit (Ping timeout: 255 seconds) 2017-11-03T21:31:44Z sjl_ joined #sbcl 2017-11-03T21:32:01Z stassats joined #sbcl 2017-11-03T21:33:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-03T21:38:03Z prxq joined #sbcl 2017-11-03T21:39:44Z DeadTrickster_ quit (Remote host closed the connection) 2017-11-03T21:40:20Z prxq quit (Remote host closed the connection) 2017-11-03T21:41:00Z stassats: is there something fundamental i'm not aware of with DEFGENERIC overwriting ftype proclamations? 2017-11-03T21:47:47Z blasut joined #sbcl 2017-11-03T21:48:02Z GreaseMonkey joined #sbcl 2017-11-03T21:49:51Z DeadTrickster joined #sbcl 2017-11-03T21:49:56Z stassats: ok, (declaim (ftype (function * fixnum) z)) on an already defined function should issue a warning if the derived type doesn't match 2017-11-03T21:50:32Z stassats: changing the ftype itself does signal a style-warning 2017-11-03T21:51:26Z stassats: then, defgeneric should check its result if there is a type declaration 2017-11-03T21:59:37Z dougk_ joined #sbcl 2017-11-03T22:04:57Z Bike quit (Ping timeout: 240 seconds) 2017-11-03T22:12:23Z dougk_ quit (Ping timeout: 246 seconds) 2017-11-03T22:17:08Z angavrilov quit (Remote host closed the connection) 2017-11-03T22:21:10Z attila_lendvai joined #sbcl 2017-11-03T22:21:10Z attila_lendvai quit (Changing host) 2017-11-03T22:21:10Z attila_lendvai joined #sbcl 2017-11-03T22:29:12Z Jesin quit (Quit: Leaving) 2017-11-03T22:33:48Z dougk_ joined #sbcl 2017-11-03T22:35:10Z Bike joined #sbcl 2017-11-03T22:45:53Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-03T22:52:24Z sjl_ is now known as sjl 2017-11-03T23:15:11Z cromachina joined #sbcl 2017-11-03T23:40:29Z milanj quit (Quit: This computer has gone to sleep) 2017-11-03T23:47:07Z live__ joined #sbcl 2017-11-03T23:59:05Z sjl_ joined #sbcl 2017-11-04T00:02:38Z live__ quit (Ping timeout: 246 seconds) 2017-11-04T00:05:01Z sjl_ quit (Ping timeout: 240 seconds) 2017-11-04T00:07:43Z stassats: i think i found a way to avoid consing constant floats 2017-11-04T00:08:22Z stassats: by annotating the tns with full lvar types, then when move-from-double is about to be issued check if the type is actually a constant 2017-11-04T00:09:18Z live__ joined #sbcl 2017-11-04T00:10:55Z stassats: e.g. in (defun foo (x) (print (setf (aref (the (simple-array double-float (*)) x) 10) 10d0))) 2017-11-04T00:11:02Z stassats: i'm able to both use the inline and a constant 2017-11-04T00:11:15Z stassats: and no mucking about with boxed-ref-p 2017-11-04T00:21:41Z live__ quit (Ping timeout: 258 seconds) 2017-11-04T00:27:21Z blasut quit (Remote host closed the connection) 2017-11-04T00:27:56Z blasut joined #sbcl 2017-11-04T00:29:23Z blasut quit (Read error: Connection reset by peer) 2017-11-04T00:32:11Z stassats: looks promising, but a lot of stuff needs to combed through to get rid of boxed-ref-p 2017-11-04T00:32:30Z stassats: i think the notion of boxed/unboxed constants can disappear entirely 2017-11-04T00:33:20Z stassats: that would be a major win for both compiler simplification and optimization 2017-11-04T00:34:55Z milanj joined #sbcl 2017-11-04T00:39:50Z milanj quit (Quit: This computer has gone to sleep) 2017-11-04T00:45:00Z dougk_ joined #sbcl 2017-11-04T00:45:56Z stassats` joined #sbcl 2017-11-04T00:48:59Z dougk_ quit (Read error: Connection reset by peer) 2017-11-04T00:49:21Z dougk_ joined #sbcl 2017-11-04T00:57:10Z stassats quit (Read error: Connection reset by peer) 2017-11-04T00:57:22Z stassats joined #sbcl 2017-11-04T01:09:27Z myrkraverk quit (Ping timeout: 240 seconds) 2017-11-04T01:18:17Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-04T01:30:12Z milanj joined #sbcl 2017-11-04T01:35:39Z whoman joined #sbcl 2017-11-04T01:39:18Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-04T01:41:33Z milanj quit (Read error: Connection reset by peer) 2017-11-04T01:41:50Z attila_lendvai joined #sbcl 2017-11-04T01:41:50Z attila_lendvai quit (Changing host) 2017-11-04T01:41:50Z attila_lendvai joined #sbcl 2017-11-04T01:41:54Z milanj joined #sbcl 2017-11-04T01:43:17Z attila_lendvai quit (Client Quit) 2017-11-04T01:49:16Z brucem quit (Changing host) 2017-11-04T01:49:16Z brucem joined #sbcl 2017-11-04T01:51:08Z dougk_ joined #sbcl 2017-11-04T02:01:56Z stassats`: there's not much tools for IR2 modification 2017-11-04T02:02:12Z stassats left #sbcl 2017-11-04T02:02:12Z stassats` left #sbcl 2017-11-04T02:02:19Z stassats` joined #sbcl 2017-11-04T02:02:45Z stassats`: can't easily split an IR2 block to direct a branch to it 2017-11-04T02:16:19Z sjl_ joined #sbcl 2017-11-04T02:18:41Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T02:24:29Z stassats`: maybe IR2 is the wrong place to modify, although i can get all the information from there 2017-11-04T02:30:31Z oleo2 joined #sbcl 2017-11-04T02:33:22Z Zisper joined #sbcl 2017-11-04T02:33:27Z stassats`: while the modification at IR1 is trivial, but i don't have the information 2017-11-04T02:55:15Z oleo2 quit (Quit: Leaving) 2017-11-04T02:57:36Z oleo2 joined #sbcl 2017-11-04T03:00:18Z oleo2 quit (Remote host closed the connection) 2017-11-04T03:00:46Z oleo2 joined #sbcl 2017-11-04T03:01:39Z oleo2 quit (Client Quit) 2017-11-04T03:04:06Z oleo2 joined #sbcl 2017-11-04T03:19:27Z stassats` quit (Ping timeout: 240 seconds) 2017-11-04T03:57:44Z Zisper quit (Quit: Bye) 2017-11-04T03:58:02Z Zisper joined #sbcl 2017-11-04T03:58:44Z sjl joined #sbcl 2017-11-04T04:02:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T04:03:50Z sjl joined #sbcl 2017-11-04T04:07:59Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T04:10:05Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-04T04:13:17Z sjl joined #sbcl 2017-11-04T04:18:07Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T04:21:00Z dougk_ joined #sbcl 2017-11-04T04:21:14Z Ziperino joined #sbcl 2017-11-04T04:23:16Z sjl joined #sbcl 2017-11-04T04:24:35Z Zisper quit (Ping timeout: 240 seconds) 2017-11-04T04:28:15Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T04:31:13Z Zisper joined #sbcl 2017-11-04T04:32:55Z Ziperino quit (Ping timeout: 255 seconds) 2017-11-04T04:33:01Z Zisper quit (Client Quit) 2017-11-04T04:33:17Z sjl joined #sbcl 2017-11-04T04:33:22Z Zisper joined #sbcl 2017-11-04T04:39:50Z oleo2 quit (Ping timeout: 246 seconds) 2017-11-04T04:40:35Z Bike quit (Quit: Lost terminal) 2017-11-04T04:42:49Z sjl quit (Ping timeout: 255 seconds) 2017-11-04T04:47:24Z dougk_ quit (Read error: Connection reset by peer) 2017-11-04T04:47:39Z dougk_ joined #sbcl 2017-11-04T05:04:06Z pfdietz joined #sbcl 2017-11-04T05:06:57Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-04T05:13:50Z sjl joined #sbcl 2017-11-04T05:23:13Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T05:23:44Z dougk_ joined #sbcl 2017-11-04T05:23:51Z sjl joined #sbcl 2017-11-04T05:27:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T05:30:27Z slyrus quit (Ping timeout: 240 seconds) 2017-11-04T05:33:17Z sjl joined #sbcl 2017-11-04T05:38:39Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-04T05:43:07Z sjl quit (Ping timeout: 260 seconds) 2017-11-04T05:43:34Z angavrilov joined #sbcl 2017-11-04T06:18:50Z sjl joined #sbcl 2017-11-04T06:28:15Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T06:28:50Z sjl joined #sbcl 2017-11-04T06:32:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T06:33:51Z sjl joined #sbcl 2017-11-04T06:40:09Z myrkraverk joined #sbcl 2017-11-04T06:43:12Z sjl quit (Ping timeout: 260 seconds) 2017-11-04T06:43:50Z sjl joined #sbcl 2017-11-04T06:57:40Z sjl quit (Ping timeout: 258 seconds) 2017-11-04T07:14:45Z shka joined #sbcl 2017-11-04T07:23:51Z sjl joined #sbcl 2017-11-04T07:27:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T07:28:51Z sjl joined #sbcl 2017-11-04T07:32:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T07:33:52Z sjl joined #sbcl 2017-11-04T07:37:21Z myrkraverk quit (Ping timeout: 240 seconds) 2017-11-04T07:38:09Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T07:38:22Z myrkraverk joined #sbcl 2017-11-04T07:39:06Z sjl joined #sbcl 2017-11-04T07:48:17Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T07:49:04Z sjl joined #sbcl 2017-11-04T08:01:14Z blasut joined #sbcl 2017-11-04T08:03:11Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T08:03:50Z sjl joined #sbcl 2017-11-04T08:08:08Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T08:08:51Z sjl joined #sbcl 2017-11-04T08:12:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T08:18:52Z sjl joined #sbcl 2017-11-04T08:23:08Z sjl quit (Ping timeout: 252 seconds) 2017-11-04T08:33:51Z sjl joined #sbcl 2017-11-04T08:38:05Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T08:49:26Z whoman quit (Quit: Leaving) 2017-11-04T08:53:50Z sjl joined #sbcl 2017-11-04T08:58:07Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T08:58:50Z sjl joined #sbcl 2017-11-04T09:01:05Z DeadTrickster quit (Ping timeout: 252 seconds) 2017-11-04T09:03:01Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T09:03:40Z panji joined #sbcl 2017-11-04T09:03:51Z sjl joined #sbcl 2017-11-04T09:08:01Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T09:18:16Z sjl joined #sbcl 2017-11-04T09:23:13Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T09:23:49Z sjl joined #sbcl 2017-11-04T09:28:05Z sjl quit (Ping timeout: 240 seconds) 2017-11-04T09:30:38Z sjl joined #sbcl 2017-11-04T09:35:29Z sjl quit (Ping timeout: 248 seconds) 2017-11-04T09:48:19Z shka quit (Quit: Konversation terminated!) 2017-11-04T09:48:26Z shka_ joined #sbcl 2017-11-04T09:49:14Z panji quit (Quit: Leaving) 2017-11-04T10:10:43Z Ziperino joined #sbcl 2017-11-04T10:13:12Z Zisper quit (Ping timeout: 260 seconds) 2017-11-04T10:15:01Z Ziperino quit (Ping timeout: 240 seconds) 2017-11-04T11:03:27Z scymtym quit (Ping timeout: 248 seconds) 2017-11-04T11:22:59Z scymtym joined #sbcl 2017-11-04T11:42:26Z Bike joined #sbcl 2017-11-04T12:54:40Z Autumn joined #sbcl 2017-11-04T12:59:15Z Autumn quit (Ping timeout: 260 seconds) 2017-11-04T13:46:07Z stassats joined #sbcl 2017-11-04T13:59:08Z oleo2 joined #sbcl 2017-11-04T14:02:06Z dougk_ joined #sbcl 2017-11-04T14:04:12Z DeadTrickster joined #sbcl 2017-11-04T14:13:34Z leah2 quit (Ping timeout: 264 seconds) 2017-11-04T14:14:48Z milanj quit (Quit: This computer has gone to sleep) 2017-11-04T14:15:40Z oleo2 quit (Ping timeout: 255 seconds) 2017-11-04T14:18:12Z leah2 joined #sbcl 2017-11-04T14:36:31Z blasut quit (Ping timeout: 258 seconds) 2017-11-04T14:40:53Z blasut joined #sbcl 2017-11-04T15:16:32Z DeadTrickster quit (Ping timeout: 260 seconds) 2017-11-04T15:25:05Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-04T15:56:13Z sjl_ is now known as sjl 2017-11-04T16:03:34Z dougk_ joined #sbcl 2017-11-04T16:06:08Z tonton quit (Ping timeout: 240 seconds) 2017-11-04T16:08:03Z tonton joined #sbcl 2017-11-04T16:14:15Z whoman joined #sbcl 2017-11-04T16:19:03Z dougk_ quit (Read error: Connection reset by peer) 2017-11-04T16:19:21Z dougk_ joined #sbcl 2017-11-04T16:23:16Z milanj joined #sbcl 2017-11-04T16:24:19Z slyrus joined #sbcl 2017-11-04T16:45:12Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-04T17:07:50Z scymtym quit (Ping timeout: 252 seconds) 2017-11-04T17:30:03Z scymtym joined #sbcl 2017-11-04T17:58:20Z milanj quit (Quit: This computer has gone to sleep) 2017-11-04T17:59:40Z dougk_ joined #sbcl 2017-11-04T18:04:13Z Jesin joined #sbcl 2017-11-04T18:10:52Z milanj joined #sbcl 2017-11-04T18:18:58Z Jesin quit (Ping timeout: 264 seconds) 2017-11-04T18:24:16Z Jesin joined #sbcl 2017-11-04T18:46:57Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-04T18:58:53Z Jesin quit (Quit: Leaving) 2017-11-04T19:23:57Z attila_lendvai joined #sbcl 2017-11-04T19:23:57Z attila_lendvai quit (Changing host) 2017-11-04T19:23:57Z attila_lendvai joined #sbcl 2017-11-04T19:48:06Z DeadTrickster joined #sbcl 2017-11-04T20:25:55Z cromachina_ joined #sbcl 2017-11-04T20:27:45Z cromachina quit (Ping timeout: 248 seconds) 2017-11-04T20:29:51Z DeadTrickster quit (Ping timeout: 248 seconds) 2017-11-04T20:52:17Z stassats quit (Ping timeout: 248 seconds) 2017-11-04T21:13:30Z milanj quit (Quit: This computer has gone to sleep) 2017-11-04T21:25:52Z milanj joined #sbcl 2017-11-04T22:04:42Z dougk_ joined #sbcl 2017-11-04T22:12:39Z angavrilov quit (Remote host closed the connection) 2017-11-04T22:24:07Z dougk_ quit (Ping timeout: 260 seconds) 2017-11-04T23:05:03Z shka_ quit (Ping timeout: 246 seconds) 2017-11-04T23:47:00Z attila_lendvai quit (Quit: Leaving.) 2017-11-05T00:28:02Z eudoxia joined #sbcl 2017-11-05T00:28:40Z eudoxia: alright, folks, any of you ever get `undefined variable: SB-INT:INDEX` in `in-package` forms? 2017-11-05T00:40:48Z stassats joined #sbcl 2017-11-05T00:48:21Z pfdietz: That's weird. 2017-11-05T00:54:45Z blasut left #sbcl 2017-11-05T00:56:46Z eudoxia: yes 2017-11-05T00:57:19Z eudoxia: I'm working on a perfectly innocent system that's just class definitions at this point and it does that when I compile with (asdf:compile-system :force t) 2017-11-05T00:57:25Z eudoxia: but not when I dump individual sexps on the repl 2017-11-05T01:48:14Z stassats quit (Ping timeout: 255 seconds) 2017-11-05T02:01:10Z stassats joined #sbcl 2017-11-05T02:02:50Z stassats: the package name is index? 2017-11-05T02:03:09Z stassats: you're in a package that doesn't use CL yet has INDEX 2017-11-05T02:14:57Z stassats quit (Ping timeout: 248 seconds) 2017-11-05T02:26:06Z eudoxia: no the package name is "c-ast" and it definitely has "(:use :cl)" :( 2017-11-05T02:33:28Z sjl quit (Quit: WeeChat 1.9.1) 2017-11-05T02:34:52Z eudoxia quit (Remote host closed the connection) 2017-11-05T02:41:44Z dougk_ joined #sbcl 2017-11-05T03:02:39Z dougk_ quit (Read error: Connection reset by peer) 2017-11-05T03:02:55Z dougk_ joined #sbcl 2017-11-05T03:53:08Z myrkraverk quit (Remote host closed the connection) 2017-11-05T05:02:24Z myrkraverk joined #sbcl 2017-11-05T05:06:04Z Bike quit (Quit: Lost terminal) 2017-11-05T06:07:20Z angavrilov joined #sbcl 2017-11-05T07:03:29Z dougk_ quit (Ping timeout: 248 seconds) 2017-11-05T07:16:24Z milanj quit (Quit: This computer has gone to sleep) 2017-11-05T07:29:25Z DeadTrickster joined #sbcl 2017-11-05T07:36:31Z DeadTrickster quit (Ping timeout: 248 seconds) 2017-11-05T08:22:24Z shka_ joined #sbcl 2017-11-05T08:25:21Z milanj joined #sbcl 2017-11-05T08:31:01Z whoman: defpackage ? 2017-11-05T09:44:31Z milanj quit (Quit: This computer has gone to sleep) 2017-11-05T10:35:21Z attila_lendvai joined #sbcl 2017-11-05T11:02:14Z oleo quit (Read error: Connection reset by peer) 2017-11-05T11:11:13Z oleo joined #sbcl 2017-11-05T12:03:07Z scymtym quit (Ping timeout: 260 seconds) 2017-11-05T12:06:41Z attila_lendvai quit (Quit: Leaving.) 2017-11-05T12:22:22Z scymtym joined #sbcl 2017-11-05T12:33:12Z DeadTrickster joined #sbcl 2017-11-05T12:33:33Z agspathis joined #sbcl 2017-11-05T12:58:09Z Bike joined #sbcl 2017-11-05T13:22:02Z stassats joined #sbcl 2017-11-05T13:32:52Z cromachina_: why is SB-INT:SIMPLE-STREAM-ERROR uncatchable when flushing output to a socket that may have closed while you were writing to it? 2017-11-05T13:33:25Z stassats: what do you mean, uncatchable? 2017-11-05T13:33:52Z cromachina_: handler-case wrapping it is ignored 2017-11-05T13:34:04Z stassats: are you sure? 2017-11-05T13:34:10Z cromachina_: positive 2017-11-05T13:34:47Z cromachina_: also on windows.. fyi 2017-11-05T13:36:19Z stassats: show the code? 2017-11-05T13:36:27Z cromachina_: certainly, one moment 2017-11-05T13:36:46Z oleo2 joined #sbcl 2017-11-05T13:38:15Z cromachina_: https://pastebin.com/bXungM9v 2017-11-05T13:38:24Z cromachina_: inner function of start-server, broadcast 2017-11-05T13:39:19Z cromachina_: after starting the server, connect with telnet, then disconnect, connect again and try to send something 2017-11-05T13:39:22Z stassats: is the error coming from (mapc 'usocket:socket-close (cons listener clients)) in unwind-protect? 2017-11-05T13:39:54Z cromachina_: yes, im ignoring that one at the moment 2017-11-05T13:40:06Z cromachina_: as the one in broadcast happens first 2017-11-05T13:41:38Z stassats: and what's the error? 2017-11-05T13:42:22Z stassats: and where do i get flush-output? 2017-11-05T13:42:43Z cromachina_: Couldn't write to #: Access is denied. 2017-11-05T13:42:51Z cromachina_: sb-int:simple-stream-error 2017-11-05T13:43:37Z cromachina_: https://pastebin.com/fyR0mvAa 2017-11-05T13:43:42Z cromachina_: telnet transcript 2017-11-05T13:44:55Z cromachina_: https://pastebin.com/4PaZnxNb 2017-11-05T13:45:08Z stassats: cromachina_: the error is coming from (read-line (usocket:socket-stream socket) nil nil) 2017-11-05T13:45:10Z cromachina_: full stack after hitting this 2017-11-05T13:45:38Z stassats: here 2017-11-05T13:46:01Z cromachina_: well i would not have guessed that from the stack.. 2017-11-05T13:46:12Z stassats: that's a different error 2017-11-05T13:49:07Z cromachina_: i was expecting read-line on a closed stream to return nil, so that is strange 2017-11-05T13:49:49Z stassats: that's an incorrect expectation 2017-11-05T13:50:22Z cromachina_: what a shame, because that's what the usocket doc suggests 2017-11-05T13:50:44Z cromachina_: >... check whether the other end has closed my socket stream? 2017-11-05T13:50:44Z cromachina_: Reading from a stream which has been closed at the remote end signals an END-OF-FILE condition, meaning that reading from the stream and detecting that condition is the way to do it. 2017-11-05T13:50:56Z cromachina_: so i guess they got it wrong 2017-11-05T13:51:24Z stassats: so they did 2017-11-05T13:51:36Z oleo2 quit (Ping timeout: 246 seconds) 2017-11-05T13:52:22Z cromachina_: im all about catching errors that i can though 2017-11-05T13:52:30Z cromachina_: the origin of my issue 2017-11-05T13:53:03Z stassats: it's strange that you get the error from BROADCAST, cause here it comes from READ-LINE 2017-11-05T13:53:11Z cromachina_: system, version? 2017-11-05T13:53:17Z stassats: macOS 2017-11-05T13:56:29Z stassats: so, after i close the first connection, BROADCAST starts spinning 2017-11-05T13:57:12Z stassats: from the same socket to the same socket, doing nothing 2017-11-05T13:57:50Z stassats: cromachina_: what exactly is (setf closed (remove closed closed-clients :test 'eq))? 2017-11-05T13:58:24Z cromachina_: ah, a bug 2017-11-05T13:58:35Z stassats: should be (setf closed-clients (remove closed closed-clients :test 'eq))? 2017-11-05T13:58:36Z cromachina_: should have just used alexandria removef 2017-11-05T13:59:53Z cromachina_: also `flush-output` should be `force-output` 2017-11-05T13:59:57Z stassats: after closing the stream usocket:wait-for-input immediately returns :READ 2017-11-05T14:00:04Z stassats: cromachina_: i put finish-output 2017-11-05T14:00:11Z cromachina_: that's fine 2017-11-05T14:00:25Z cromachina_: it does not seem to do that on windows 2017-11-05T14:00:30Z cromachina_: as i was hoping 2017-11-05T14:00:40Z cromachina_: cant trust windows to do anything right.. 2017-11-05T14:00:50Z stassats: windows is ok 2017-11-05T14:00:58Z stassats: sbcl on windows is a mess 2017-11-05T14:01:00Z cromachina_: could also be a deficiency in usocket 2017-11-05T14:01:06Z stassats: but that might be not the case with the bug here 2017-11-05T14:01:58Z cromachina_: huh, adjusting the remove line resolves the stream error issue 2017-11-05T14:02:23Z cromachina_: i find that so bizarre based on the stack i received 2017-11-05T14:07:45Z stassats: force-output may employ serve-event, which is known to be broken on windows 2017-11-05T14:07:58Z cromachina_: ah! 2017-11-05T14:08:39Z stassats: serve-event is known to be a bit lame everywhere 2017-11-05T14:10:42Z agspathis quit (Quit: ERC (IRC client for Emacs 25.3.1)) 2017-11-05T14:14:27Z stassats: finish-output as well 2017-11-05T14:14:36Z stassats: (using serve-events) 2017-11-05T14:14:39Z stassats: i might look it over on windows 2017-11-05T14:40:24Z dougk_ joined #sbcl 2017-11-05T14:54:19Z dougk_ quit (Read error: Connection reset by peer) 2017-11-05T14:54:38Z dougk_ joined #sbcl 2017-11-05T15:52:09Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-05T15:52:35Z DeadTrickster joined #sbcl 2017-11-05T16:12:11Z dougk_ quit (Ping timeout: 252 seconds) 2017-11-05T16:23:11Z stassats quit (Ping timeout: 252 seconds) 2017-11-05T16:39:07Z stassats joined #sbcl 2017-11-05T16:45:53Z stassats quit (Ping timeout: 248 seconds) 2017-11-05T16:46:01Z dougk_ joined #sbcl 2017-11-05T16:47:35Z milanj joined #sbcl 2017-11-05T16:54:02Z hydan joined #sbcl 2017-11-05T16:54:07Z stassats joined #sbcl 2017-11-05T16:59:28Z dougk_ quit (Ping timeout: 255 seconds) 2017-11-05T17:20:33Z stassats quit (Ping timeout: 248 seconds) 2017-11-05T17:21:11Z stassats joined #sbcl 2017-11-05T17:44:44Z scymtym: we seem to have a duplicate definition of immobile_space_p when LISP_FEATURE_IMMOBILE_SPACE is not defined 2017-11-05T18:09:54Z scymtym quit (Ping timeout: 246 seconds) 2017-11-05T18:13:02Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-05T18:14:12Z DeadTrickster joined #sbcl 2017-11-05T18:26:06Z scymtym joined #sbcl 2017-11-05T18:40:47Z angavrilov quit (Remote host closed the connection) 2017-11-05T18:44:08Z dougk_ joined #sbcl 2017-11-05T18:50:05Z whoman quit (Ping timeout: 258 seconds) 2017-11-05T18:54:02Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-05T18:55:23Z DeadTrickster joined #sbcl 2017-11-05T18:57:58Z dougk_ quit (Ping timeout: 264 seconds) 2017-11-05T19:23:59Z stassats: trying to perform selection representation on constants instead of deciding upfront 2017-11-05T19:24:05Z stassats: works well for some operations 2017-11-05T19:24:55Z stassats: (print 1d0) or (return 1d0) get boxed representations, (setf * 1d0) doesn't 2017-11-05T19:36:13Z stassats: huh, SET is in *ignore-cost-vops* 2017-11-05T19:37:20Z dougk_ joined #sbcl 2017-11-05T19:37:29Z stassats: doesn't give any reason to do so 2017-11-05T19:38:02Z stassats: removing SET from *ignore-cost-vops* makes (setf * 1d0) use a boxed representation 2017-11-05T19:47:34Z stassats: i should still hardcode that if anything uses a double as a boxed value it never should be represented as unboxed 2017-11-05T19:51:21Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-05T20:00:40Z stassats` joined #sbcl 2017-11-05T20:01:01Z dim` joined #sbcl 2017-11-05T20:06:23Z dougk_ joined #sbcl 2017-11-05T20:11:41Z stassats quit (*.net *.split) 2017-11-05T20:11:42Z dougk quit (*.net *.split) 2017-11-05T20:11:42Z Kevslinger quit (*.net *.split) 2017-11-05T20:11:42Z dim quit (*.net *.split) 2017-11-05T20:11:42Z angular_mike quit (*.net *.split) 2017-11-05T20:11:44Z carvite quit (*.net *.split) 2017-11-05T20:11:45Z dim` is now known as dim 2017-11-05T20:12:25Z carvite joined #sbcl 2017-11-05T20:14:27Z stassats` quit (Ping timeout: 240 seconds) 2017-11-05T20:16:20Z milanj quit (Quit: This computer has gone to sleep) 2017-11-05T20:19:57Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-05T20:25:44Z whoman joined #sbcl 2017-11-05T21:09:35Z whoman: https://ptpb.pw/zTXA 2017-11-05T21:10:37Z whoman: nvm fixed 2017-11-05T21:47:14Z dougk joined #sbcl 2017-11-05T21:50:28Z Kevslinger joined #sbcl 2017-11-05T21:50:36Z dougk_ joined #sbcl 2017-11-05T21:51:21Z dougk quit (Ping timeout: 240 seconds) 2017-11-05T21:51:53Z Jesin joined #sbcl 2017-11-05T21:53:05Z angular_mike joined #sbcl 2017-11-05T22:00:20Z shka_ quit (Ping timeout: 252 seconds) 2017-11-05T22:21:08Z attila_lendvai joined #sbcl 2017-11-05T22:21:08Z attila_lendvai quit (Changing host) 2017-11-05T22:21:08Z attila_lendvai joined #sbcl 2017-11-05T22:31:39Z slyrus quit (Ping timeout: 258 seconds) 2017-11-05T22:41:49Z dougk joined #sbcl 2017-11-05T23:01:45Z slyrus_ joined #sbcl 2017-11-06T00:00:16Z stassats joined #sbcl 2017-11-06T00:06:50Z attila_lendvai quit (Quit: Leaving.) 2017-11-06T01:00:01Z stassats quit (Ping timeout: 268 seconds) 2017-11-06T01:15:29Z milanj joined #sbcl 2017-11-06T01:35:52Z Zisper joined #sbcl 2017-11-06T02:26:43Z ym quit (Quit: Leaving) 2017-11-06T02:36:59Z ym joined #sbcl 2017-11-06T02:37:30Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-06T02:37:58Z DeadTrickster joined #sbcl 2017-11-06T02:44:32Z ym quit (Remote host closed the connection) 2017-11-06T02:59:43Z myrkraverk quit (Remote host closed the connection) 2017-11-06T03:21:35Z milanj quit (Quit: This computer has gone to sleep) 2017-11-06T03:47:26Z Jesin quit (Quit: Leaving) 2017-11-06T04:01:25Z shka_ joined #sbcl 2017-11-06T04:30:26Z Bike quit (Quit: Lost terminal) 2017-11-06T04:31:57Z shaftoe joined #sbcl 2017-11-06T05:24:45Z angavrilov joined #sbcl 2017-11-06T05:26:16Z oleo quit (Quit: Leaving) 2017-11-06T05:41:41Z whoman quit (Remote host closed the connection) 2017-11-06T05:43:02Z whoman joined #sbcl 2017-11-06T05:43:52Z whoman quit (Remote host closed the connection) 2017-11-06T05:44:19Z whoman joined #sbcl 2017-11-06T05:51:16Z milanj joined #sbcl 2017-11-06T05:58:30Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-06T05:58:55Z DeadTrickster joined #sbcl 2017-11-06T06:07:01Z dougk quit (Ping timeout: 240 seconds) 2017-11-06T06:14:57Z Lord_Nightmare quit (Ping timeout: 248 seconds) 2017-11-06T06:16:56Z Lord_Nightmare joined #sbcl 2017-11-06T06:29:57Z Lord_Nightmare2 joined #sbcl 2017-11-06T06:31:46Z Lord_Nightmare quit (*.net *.split) 2017-11-06T06:31:46Z carvite quit (*.net *.split) 2017-11-06T06:31:46Z scymtym quit (*.net *.split) 2017-11-06T06:31:47Z pfdietz quit (*.net *.split) 2017-11-06T06:31:47Z bkst quit (*.net *.split) 2017-11-06T06:31:48Z DGASAU quit (*.net *.split) 2017-11-06T06:31:49Z Lord_Nightmare2 is now known as Lord_Nightmare 2017-11-06T07:12:02Z carvite joined #sbcl 2017-11-06T07:12:02Z scymtym joined #sbcl 2017-11-06T07:12:02Z pfdietz joined #sbcl 2017-11-06T07:12:02Z bkst joined #sbcl 2017-11-06T07:12:02Z DGASAU joined #sbcl 2017-11-06T07:33:53Z scymtym quit (Ping timeout: 248 seconds) 2017-11-06T08:24:34Z whoman quit (Quit: Leaving) 2017-11-06T08:32:47Z shka_ quit (Ping timeout: 260 seconds) 2017-11-06T08:34:49Z scymtym joined #sbcl 2017-11-06T08:41:16Z dougk joined #sbcl 2017-11-06T08:46:39Z dougk quit (Ping timeout: 246 seconds) 2017-11-06T08:56:06Z attila_lendvai joined #sbcl 2017-11-06T09:17:01Z Zisper quit (Ping timeout: 240 seconds) 2017-11-06T09:37:24Z scymtym quit (Ping timeout: 246 seconds) 2017-11-06T09:42:28Z rgrau joined #sbcl 2017-11-06T10:06:42Z Zisper joined #sbcl 2017-11-06T10:12:40Z salva quit (Ping timeout: 255 seconds) 2017-11-06T10:13:03Z salva joined #sbcl 2017-11-06T10:23:07Z myrkraverk joined #sbcl 2017-11-06T10:38:42Z m00natic joined #sbcl 2017-11-06T10:50:49Z scymtym joined #sbcl 2017-11-06T10:54:14Z milanj quit (Quit: This computer has gone to sleep) 2017-11-06T11:20:02Z Bike joined #sbcl 2017-11-06T12:04:00Z agspathis joined #sbcl 2017-11-06T12:08:02Z dougk joined #sbcl 2017-11-06T12:13:21Z dougk quit (Ping timeout: 240 seconds) 2017-11-06T12:37:35Z DeadTrickster quit (Ping timeout: 240 seconds) 2017-11-06T12:43:49Z DeadTrickster joined #sbcl 2017-11-06T12:44:39Z dougk joined #sbcl 2017-11-06T12:52:35Z salva quit (Ping timeout: 240 seconds) 2017-11-06T13:04:49Z dougk__ joined #sbcl 2017-11-06T13:08:07Z dougk quit (Ping timeout: 260 seconds) 2017-11-06T13:33:16Z stassats joined #sbcl 2017-11-06T13:41:44Z stassats: i think i made constant representation selection as good as it can get, now it's up to the representation selection limitations 2017-11-06T13:42:09Z stassats: e.g. (let ((z (the double-float (bar)))) (setf * z) (>= 1d0 z)) conses a double-float 2017-11-06T13:43:45Z stassats: and being generally bad (fixnum vs unsigned), but floats get consed, which should never really happen 2017-11-06T13:48:07Z eudoxia joined #sbcl 2017-11-06T13:53:45Z stassats: (lambda (&key (x 1d0)) x) doesn't cons anymore, (let ((* 1d0))) doesn't cons 2017-11-06T13:54:38Z stassats: and i actually deleted more code than added to make that possible 2017-11-06T13:58:13Z Bicyclidine joined #sbcl 2017-11-06T13:59:43Z eudoxia quit (Quit: Leaving) 2017-11-06T14:04:08Z pkhuong: oh nice. I banged my head against that wall for so long before giving up. 2017-11-06T14:09:53Z stassats: and the windows runtime build is broken 2017-11-06T14:11:30Z stassats: or with immobile-space turned off 2017-11-06T14:24:25Z stassats: scymtym: is there a possibility of getting automated windows builds? 2017-11-06T14:33:03Z dougk__ quit (Ping timeout: 248 seconds) 2017-11-06T14:33:11Z salva joined #sbcl 2017-11-06T14:36:18Z oleo joined #sbcl 2017-11-06T14:39:53Z sjl joined #sbcl 2017-11-06T14:43:59Z cromachina_ quit (Read error: Connection reset by peer) 2017-11-06T14:46:13Z agspathis quit (Remote host closed the connection) 2017-11-06T15:01:14Z Jesin joined #sbcl 2017-11-06T15:02:22Z attila_lendvai quit (Quit: Leaving.) 2017-11-06T15:22:00Z scymtym: stassats: wine or a real windows system? 2017-11-06T15:29:39Z eudoxia joined #sbcl 2017-11-06T15:38:15Z scymtym quit (Ping timeout: 246 seconds) 2017-11-06T15:38:29Z eudoxia quit (Quit: Leaving) 2017-11-06T15:38:54Z stassats: real windows 2017-11-06T15:43:58Z dougk joined #sbcl 2017-11-06T15:57:10Z ym joined #sbcl 2017-11-06T15:57:56Z eudoxia joined #sbcl 2017-11-06T16:00:41Z Jesin quit (Ping timeout: 240 seconds) 2017-11-06T16:01:45Z Jesin joined #sbcl 2017-11-06T16:04:48Z milanj joined #sbcl 2017-11-06T16:05:24Z foom2 is now known as foom 2017-11-06T16:06:20Z Jesin quit (Remote host closed the connection) 2017-11-06T16:20:39Z eudoxia quit (Quit: Leaving) 2017-11-06T16:20:48Z Jesin joined #sbcl 2017-11-06T16:24:52Z myrkraverk_ joined #sbcl 2017-11-06T16:25:01Z myrkraverk quit (Ping timeout: 240 seconds) 2017-11-06T16:25:32Z myrkraverk_ is now known as myrkraverk 2017-11-06T16:26:21Z eudoxia joined #sbcl 2017-11-06T16:54:37Z milanj quit (Quit: This computer has gone to sleep) 2017-11-06T17:01:01Z milanj joined #sbcl 2017-11-06T17:01:10Z milanj quit (Client Quit) 2017-11-06T17:10:39Z dougk quit (Ping timeout: 246 seconds) 2017-11-06T17:17:59Z milanj joined #sbcl 2017-11-06T17:19:57Z Zisper quit (Ping timeout: 240 seconds) 2017-11-06T17:21:38Z scymtym joined #sbcl 2017-11-06T17:27:45Z scymtym: stassats: i will ask my boss. we have windows vms 2017-11-06T17:27:47Z dougk joined #sbcl 2017-11-06T17:32:46Z jdz quit (Ping timeout: 264 seconds) 2017-11-06T17:36:18Z reb joined #sbcl 2017-11-06T17:36:23Z reb quit (Remote host closed the connection) 2017-11-06T17:37:22Z jdz joined #sbcl 2017-11-06T17:50:00Z milanj quit (Quit: This computer has gone to sleep) 2017-11-06T17:50:32Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T17:54:52Z milanj joined #sbcl 2017-11-06T17:55:53Z m00natic quit (Remote host closed the connection) 2017-11-06T18:01:52Z dougk joined #sbcl 2017-11-06T18:20:13Z shka_ joined #sbcl 2017-11-06T18:26:50Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T18:28:55Z dougk joined #sbcl 2017-11-06T18:44:40Z reb joined #sbcl 2017-11-06T18:46:49Z reb quit (Remote host closed the connection) 2017-11-06T18:47:07Z reb joined #sbcl 2017-11-06T18:56:32Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T19:11:46Z dougk joined #sbcl 2017-11-06T19:19:28Z reb quit (Remote host closed the connection) 2017-11-06T19:22:49Z stassats: NIL type lvar still creeping in to transforms 2017-11-06T19:23:22Z stassats: the previous one i avoided by better block deletion, maybe this time i'll have to use the original solution, checking that none of the lvars are NIL 2017-11-06T19:38:13Z stassats: but obvious solutions are rarely good 2017-11-06T19:44:37Z reb joined #sbcl 2017-11-06T20:12:47Z Bicyclidine quit (Ping timeout: 260 seconds) 2017-11-06T20:13:04Z Bicyclidine joined #sbcl 2017-11-06T20:18:29Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T20:18:45Z dougk joined #sbcl 2017-11-06T20:28:15Z eudoxia quit (Quit: Leaving) 2017-11-06T20:29:23Z reb quit (Ping timeout: 250 seconds) 2017-11-06T20:32:14Z dougk quit (Ping timeout: 258 seconds) 2017-11-06T20:33:30Z dougk joined #sbcl 2017-11-06T20:44:53Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T21:09:12Z dougk joined #sbcl 2017-11-06T21:31:01Z shka_ quit (Ping timeout: 240 seconds) 2017-11-06T21:36:10Z angavrilov quit (Remote host closed the connection) 2017-11-06T22:00:46Z Jesin quit (Quit: Leaving) 2017-11-06T22:02:08Z reb joined #sbcl 2017-11-06T22:02:18Z reb quit (Remote host closed the connection) 2017-11-06T22:07:54Z eudoxia joined #sbcl 2017-11-06T22:07:55Z dougk quit (Ping timeout: 252 seconds) 2017-11-06T22:22:55Z rgrau quit (Ping timeout: 248 seconds) 2017-11-06T22:35:01Z Bicyclidine quit (Ping timeout: 268 seconds) 2017-11-06T22:38:16Z dougk joined #sbcl 2017-11-06T22:45:30Z sjl quit (Ping timeout: 268 seconds) 2017-11-06T22:48:06Z dougk__ joined #sbcl 2017-11-06T22:48:55Z dougk quit (Ping timeout: 250 seconds) 2017-11-06T22:56:17Z dougk__ quit (Ping timeout: 250 seconds) 2017-11-06T23:01:04Z dougk joined #sbcl 2017-11-06T23:10:33Z dougk quit (Ping timeout: 258 seconds) 2017-11-06T23:10:45Z Bicyclidine joined #sbcl 2017-11-06T23:26:43Z eudoxia quit (Quit: Leaving) 2017-11-07T00:03:14Z cromachina joined #sbcl 2017-11-07T00:14:54Z stassats: unconvert-tail-calls adds a use to a NIL node, but not doing that makes the whole IR1 disappear 2017-11-07T00:17:22Z scymtym_ joined #sbcl 2017-11-07T00:17:43Z scymtym quit (Read error: Connection reset by peer) 2017-11-07T00:23:09Z whoman joined #sbcl 2017-11-07T00:24:35Z stassats: looks like maybe-terminate-block is what i need 2017-11-07T00:25:58Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T00:26:22Z DeadTrickster joined #sbcl 2017-11-07T00:41:14Z bkst quit (Quit: leaving) 2017-11-07T00:41:32Z bkst joined #sbcl 2017-11-07T01:02:46Z Bicyclidine quit (Ping timeout: 264 seconds) 2017-11-07T01:30:05Z dougk joined #sbcl 2017-11-07T01:39:43Z Zisper joined #sbcl 2017-11-07T02:44:41Z dougk quit (Ping timeout: 240 seconds) 2017-11-07T02:58:41Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T03:05:27Z stassats quit (Ping timeout: 240 seconds) 2017-11-07T03:26:29Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T03:26:53Z DeadTrickster joined #sbcl 2017-11-07T03:27:13Z milanj joined #sbcl 2017-11-07T04:26:05Z Bike quit (Quit: Lost terminal) 2017-11-07T05:01:58Z nyef joined #sbcl 2017-11-07T05:06:48Z angavrilov joined #sbcl 2017-11-07T05:23:32Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T05:37:59Z milanj joined #sbcl 2017-11-07T05:43:58Z milanj quit (Read error: Connection reset by peer) 2017-11-07T05:44:22Z milanj joined #sbcl 2017-11-07T05:48:25Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T05:48:58Z DeadTrickster joined #sbcl 2017-11-07T05:59:08Z shka_ joined #sbcl 2017-11-07T06:19:30Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T06:27:26Z milanj joined #sbcl 2017-11-07T06:31:16Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-07T06:55:46Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T06:55:50Z oleo quit (Quit: Leaving) 2017-11-07T07:23:37Z scymtym_ quit (Ping timeout: 260 seconds) 2017-11-07T07:24:28Z lonjil quit (Read error: Connection reset by peer) 2017-11-07T07:24:37Z lonjil joined #sbcl 2017-11-07T07:39:10Z bkst_ joined #sbcl 2017-11-07T07:40:01Z bkst quit (Ping timeout: 240 seconds) 2017-11-07T08:01:16Z xristos quit (Ping timeout: 255 seconds) 2017-11-07T08:07:34Z xristos joined #sbcl 2017-11-07T08:07:50Z xristos is now known as Guest85181 2017-11-07T08:16:26Z scymtym joined #sbcl 2017-11-07T08:19:37Z shka_ quit (Ping timeout: 260 seconds) 2017-11-07T09:09:03Z milanj joined #sbcl 2017-11-07T09:09:21Z milanj quit (Client Quit) 2017-11-07T09:14:22Z Colleen quit (Remote host closed the connection) 2017-11-07T09:15:47Z Colleen joined #sbcl 2017-11-07T09:33:31Z rgrau joined #sbcl 2017-11-07T10:42:00Z sjl joined #sbcl 2017-11-07T10:46:05Z sjl quit (Ping timeout: 240 seconds) 2017-11-07T10:54:39Z Bike joined #sbcl 2017-11-07T11:31:22Z attila_lendvai joined #sbcl 2017-11-07T11:31:22Z attila_lendvai quit (Changing host) 2017-11-07T11:31:22Z attila_lendvai joined #sbcl 2017-11-07T11:36:57Z Bike quit (Ping timeout: 268 seconds) 2017-11-07T11:43:40Z Bike joined #sbcl 2017-11-07T11:52:10Z stassats joined #sbcl 2017-11-07T12:10:49Z dougk joined #sbcl 2017-11-07T12:22:35Z rgrau quit (Ping timeout: 268 seconds) 2017-11-07T12:44:03Z scymtym: stassats: re automated windows builds: i think the best i can do for now would be building and running tests, but no detailed test report 2017-11-07T12:44:17Z stassats: don't run tests... 2017-11-07T12:44:37Z scymtym: the shorter the batch script the better 2017-11-07T12:44:44Z stassats: they will not complete 2017-11-07T12:44:50Z scymtym: do you happen to have batch commands for building? 2017-11-07T12:44:54Z stassats: just building would be fine 2017-11-07T12:45:14Z stassats: just make.sh? 2017-11-07T12:45:22Z stassats: it'll need MSYS2 2017-11-07T12:45:55Z nyef: G'morning all. 2017-11-07T12:46:02Z scymtym: ok, i will have write batch commands to run make.sh in the MSYS2 shell, i think 2017-11-07T12:46:18Z stassats: nyef: sorry for dragging you in for stack-analyze bugs... 2017-11-07T12:46:39Z nyef: stassats: I don't know if you saw, but I might have found another one... But I have no test case for it (yet?) 2017-11-07T12:46:46Z stassats: scymtym: i just need a timely binary builds/not builds 2017-11-07T12:47:16Z stassats: the current release doesn't build on windows, for example 2017-11-07T12:48:38Z scymtym: stassats: i understand. i kind of dread configuring this stuff is all. apparently i already tried once 2017-11-07T12:48:50Z nyef: ... Does it build on wine? 2017-11-07T12:49:04Z stassats: nyef: does it matter? 2017-11-07T12:49:41Z nyef: I don't know. I mean, I don't trust emulators, but it might be an okay proxy for the ability to build on windows. 2017-11-07T12:49:55Z stassats: nobody is going to run sbcl under wine, so it's not really useful 2017-11-07T12:50:19Z nyef: Somebody did. Somebody went to the trouble of patching SBCL to run on wine instead of patching wine to run SBCL. 2017-11-07T12:50:34Z stassats: i saw that, wasn't happy about it 2017-11-07T12:50:39Z nyef: I was livid. 2017-11-07T12:50:48Z stassats: and then recently people are asking about wine on sbcl-help 2017-11-07T12:51:22Z stassats: actually for building sbcl on it 2017-11-07T12:51:24Z nyef: So, there are a couple of use-cases there. One of which is to build windows executables without having to use a windows box. 2017-11-07T12:51:45Z scymtym: nyef: i actually do that 2017-11-07T12:51:46Z nyef: And another is to be able to develop against windows APIs without having to use a windows box. 2017-11-07T12:51:46Z stassats: i don't have a windows box 2017-11-07T12:52:01Z stassats: and i'm the only one supporting sbcl on windows... 2017-11-07T12:52:11Z attila_lendvai quit (Quit: Leaving.) 2017-11-07T12:52:14Z stassats: using the free VMs microsoft provides 2017-11-07T12:52:27Z nyef: That's... pretty unfortunate. 2017-11-07T12:52:32Z attila_lendvai joined #sbcl 2017-11-07T12:53:12Z stassats: well, there's like three or four people supporting anything in sbcl, so it's not surprising 2017-11-07T12:53:59Z stassats: having the braindamaged safepoints on windows does not help 2017-11-07T12:54:48Z stassats: nyef: btw, i actually built sbcl.so not a long time ago 2017-11-07T12:55:19Z stassats: http://paste.lisp.org/display/358439 2017-11-07T12:55:49Z nyef: Oh my. 2017-11-07T12:56:05Z nyef: Are we still on a fixed-position heap? 2017-11-07T12:56:16Z stassats: no 2017-11-07T12:56:21Z stassats: thanks to dougk 2017-11-07T12:56:23Z nyef: Ooh. 2017-11-07T12:56:50Z nyef: Forward-port of lichtblau's original relocation patch, or something else? 2017-11-07T12:57:02Z stassats: no idea 2017-11-07T12:57:17Z dougk: i had heard about lichtblau's patch, but his stuff is so old as to mostly not work. 2017-11-07T12:57:17Z nyef: (Either way, it's good to finally have that out of the way. I mean, the reason it wasn't merged originally was fixed years ago.) 2017-11-07T12:57:21Z dougk: just started afresh. 2017-11-07T12:57:26Z stassats: i also moved alloc_tramp to assembly/tramps.lisp 2017-11-07T12:57:41Z stassats: a bit more, and x86_64_assem.S can go away completely 2017-11-07T12:57:53Z dougk: plus, I'm about to checkin discontiguous immobile space, which means that code can reside in an ELF segment, and symbols will go somewhere else 2017-11-07T12:58:27Z stassats: dougk: btw, since CODE is now on separate pages, can we -x all other pages? 2017-11-07T12:58:44Z dougk: i thought of that too, yes, essentially we can. 2017-11-07T12:58:45Z nyef: stassats: Sweet! Getting rid of arch_assem.S files has been an occasional goal for a while now. 2017-11-07T12:58:51Z dougk: didn't want to get all the details right, wasn't pressing enough to me 2017-11-07T12:59:09Z nyef: dougk: Impressive. 2017-11-07T12:59:17Z dougk: thank you 2017-11-07T12:59:27Z stassats: re windows, without x86_64_assem.S it could potentially compile with visual studio 2017-11-07T13:00:57Z stassats: and ppc_assem.S is where i stumbled trying to build the runtime on AIX 2017-11-07T13:01:33Z nyef: And those two cases are part of the general reason why I'd like to kill arch_assem.S. 2017-11-07T13:02:10Z stassats: having access to lisp and macros is also a good reason 2017-11-07T13:02:40Z nyef: Yes, less OAOOM. 2017-11-07T13:02:45Z stassats: pushing and popping register without going mad 2017-11-07T13:02:48Z stassats: registers 2017-11-07T13:10:13Z m00natic joined #sbcl 2017-11-07T13:11:45Z attila_lendvai quit (Quit: Leaving.) 2017-11-07T13:13:57Z nyef: Note that one of the reasons for moving the tramps out of arch_assem.S to read-only-space was precisely this: A step towards getting rid of arch_assem.S. 2017-11-07T13:29:31Z scymtym: stassats: i'm doing c:\msys32\usr\bin\bash.exe -c ./make.sh but that doesn't seem to find gcc: https://ci.cor-lab.org/job/sbcl-master-windows/featureset=1,label=Windows_7_32bit/1297/console (msys2 gcc package is installed) 2017-11-07T13:29:55Z stassats: i think some other package has to be installed 2017-11-07T13:30:17Z stassats: something with x86-64 in the name 2017-11-07T13:30:30Z scymtym: that could be the problem, i only installed gcc and make 2017-11-07T13:30:32Z nyef: Hrm... The big wins for killing arch_assem.S appear to be call_into_lisp/call_into_c, the fun_end_breakpoint stuff, and do_pending_interrupt. 2017-11-07T13:31:23Z stassats: :encapsulate nil finally works on darwin 2017-11-07T13:31:49Z nyef: I saw. But it doesn't: :ENCAPSULATE NIL is /broken generally/. 2017-11-07T13:32:38Z nyef: Still, congratulations. At least it's down to the generally-broken bits and not the platform-specific broken bits. (-: 2017-11-07T13:34:00Z stassats: do we need single stepping on RISC for :encapsulate nil to work? 2017-11-07T13:34:35Z stassats: there is no problem with finding instructions there 2017-11-07T13:35:18Z nyef: We need arch_do_displaced_inst(), more or less. 2017-11-07T13:36:10Z nyef: But thread interaction is a possibility with many of those approaches. 2017-11-07T13:36:14Z stassats: on x86oids it's done by single stepping, on risc you could just put the breakpoint again after the currently broke instruction 2017-11-07T13:36:32Z nyef: And where you have single-step, if the displaced instruction is shorter than the breakpoint sequence, /you still lose/. 2017-11-07T13:37:02Z stassats: except maybe for branches 2017-11-07T13:37:19Z nyef: Ideally, we'd have breakpoint-sequence-sized-NOPs wherever a breakpoint location is declared, which would cause most of the issues to fall out. 2017-11-07T13:37:53Z stassats: taking a step back, do we really need breakpoints? 2017-11-07T13:38:09Z stassats: this is not C where you have to recompile the whole word, just stick a BREAK into it 2017-11-07T13:38:11Z nyef: They're the basis of TRACE :ENCAPSULATE NIL, for starters. 2017-11-07T13:38:31Z stassats: yes, do we really need trace :encapsulate nil? 2017-11-07T13:38:58Z nyef: Breakpoints work when you need to trap inside a closure function for a closure that already exists, recompilation doesn't. 2017-11-07T13:39:18Z stassats: many other things will defeat breakpoints, such as inlining 2017-11-07T13:39:42Z nyef: Breakpoint-based stepping is, in some ways, lighter-weight than our existing stepper. 2017-11-07T13:39:48Z nyef: But breakpoints aren't thread-safe. 2017-11-07T13:40:01Z nyef: Hell, breakpoint installation isn't necessarily thread-safe. 2017-11-07T13:40:16Z stassats: stepping is also of little value 2017-11-07T13:40:28Z stassats: that is, not like in the C world 2017-11-07T13:41:43Z nyef: So, here's the thing: I don't use stepping at any level other than machine code. But I'm fully aware that I don't know if that's because it's a low-value activity for high-level code, or because the tools are horrible. 2017-11-07T13:42:41Z stassats: the C world with aquatic animals 2017-11-07T13:43:12Z nyef: I simply Do Not Know if it would be useful if there were a good interface for it. And my debugging style has moved towards things that I /have/ tools for, meaning that my entire perspective on the matter would be skewed even if I had a good interface for it. 2017-11-07T13:43:21Z nyef: "Deep C Secrets", huh? 2017-11-07T13:47:23Z nyef: "We shape our tools, and then our tools shape us." I have never had a good source-level stepper, so I learned how not to need one. Thus, I find a source-level stepper to be of little value. But if I had a good one? I have no idea. 2017-11-07T13:47:53Z nyef: Actually, I have some idea: Stepping through code in Visual Basic was nice. 2017-11-07T13:48:13Z stassats: i wouldn't mind an assembly level stepper which understands lisp values 2017-11-07T13:48:36Z rgrau joined #sbcl 2017-11-07T13:49:30Z nyef: Mmm. Basically, our debugging tools suck horribly, but we're used to them, so we don't even notice that fact anymore. 2017-11-07T13:50:10Z stassats: because other areas do not suck, like recompilation 2017-11-07T13:50:34Z stassats: so there's no pressure 2017-11-07T13:51:12Z nyef: It also doesn't help that we tend to debug the compiler, where we're dealing with things that are best seen through visualizing flow-graphs. 2017-11-07T13:51:12Z stassats: i think i wouldn't be able to get used to the lack of gdb with C 2017-11-07T13:51:43Z nyef: Back when I did a lot of C programming, the main thing that I did with gdb was try to get a backtrace. And often fail. 2017-11-07T13:52:37Z stassats: the C people can't stand rbp 2017-11-07T13:53:15Z stassats: leaving performance on the table? what? no! i'll rather have an insecure mess for other people to deal with 2017-11-07T13:54:21Z nyef: Even on 32-bit x86, with frame pointers, it was a disaster. My program would crash, I'd either be running it in gdb already or I'd get a core file to load, I'd ask for a backtrace, and the answer was "0x0 in ??", no other frames. 2017-11-07T13:54:42Z nyef: Every bloody time. 2017-11-07T13:59:57Z Bike quit (Ping timeout: 240 seconds) 2017-11-07T14:01:50Z nyef: Still, I try to appreciate that my experience has been that the debugging tools that I have available almost universally have sucked, and thus I am ill-equipped to evaluate the worth of debugging tools that don't suck. 2017-11-07T14:04:23Z nyef: Anyway, IR1-OPTIMIZE-RETURN calls FIND-RESULT-TYPE, which calls MAYBE-CONVERT-TAIL-LOCAL-CALL, which calls ONLY-HARMLESS-CLEANUPS, which does the exact same analysis with respect to :BLOCK and :TAGBODY entries that MAY-DELETE-VESTIGIAL-EXIT does. 2017-11-07T14:04:48Z nyef: Can we find a failure case in this direction? 2017-11-07T14:08:01Z stassats: why is having no cleanups important for maybe-convert-tail-local-call? 2017-11-07T14:10:03Z nyef: Cleanups are lexical. With very few exceptions, they move an apparently-tail-local call out of tail position. 2017-11-07T14:10:25Z nyef: The obvious example is a :DYNAMIC-EXTENT cleanup. 2017-11-07T14:10:55Z stassats: or special-bind 2017-11-07T14:10:57Z stassats: ok, makes sense 2017-11-07T14:14:30Z nyef: So, ONLY-HARMLESS-CLEANUPS says "all cleanups are bad, *except*", and the exceptions amount to local-only control flow. 2017-11-07T14:16:09Z nyef: (Note that IR1-conversion inserts EXIT-to-ENTRY chains for *every* "non-local" EXIT, and IR1-optimization takes them out for "local" EXITs, meaning that by the time we hit IR2-conversion the only EXITs left are from a different home-lambda than their ENTRY... I think.) 2017-11-07T14:17:47Z dougk quit (Ping timeout: 260 seconds) 2017-11-07T14:19:42Z dougk joined #sbcl 2017-11-07T14:22:16Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T14:22:35Z dougk: stassats: somewhere I thought we marked all of the special vars that are stack-slots as always-bound/always-thread-local. Do you know if any others spuriously check for unbound-marker-widetag aside from alien-stack-pointer ? 2017-11-07T14:22:53Z DeadTrickster joined #sbcl 2017-11-07T14:24:21Z stassats: they appear to be thread local, but not always-bound 2017-11-07T14:24:33Z stassats: but only *alien-stack-pointer* is used as a variable 2017-11-07T14:24:39Z stassats: directly 2017-11-07T14:26:11Z scymtym: progress: https://ci.cor-lab.org/job/sbcl-master-windows/featureset=1,label=Windows_7_32bit/1301/console 2017-11-07T14:27:06Z stassats: something with pthread conflicts, i don't remember what causes it for some peope 2017-11-07T14:28:47Z akovalenko joined #sbcl 2017-11-07T14:30:35Z oleo joined #sbcl 2017-11-07T14:34:07Z dougk quit (Ping timeout: 248 seconds) 2017-11-07T14:39:09Z scymtym: the problem seems to be that we check for _SIGSET_T but /usr/include/sys/types.h checks and defines _SIGSET_T_DECLARED 2017-11-07T14:39:50Z nyef: ... And the actual symbol involved is going to vary by compiler, library version, and so on, isn't it? 2017-11-07T14:41:27Z sjl joined #sbcl 2017-11-07T14:41:37Z Bike joined #sbcl 2017-11-07T14:41:57Z cromachina quit (Read error: Connection reset by peer) 2017-11-07T14:42:48Z scymtym: in this case, we have one definition and the compiler has its definition. one is int sigset_t and the other is unsigned long sigset_t. but yeah, the latter probably varies depending on the compiler 2017-11-07T14:45:10Z nyef: Why are we pulling a sigset_t on windows anyway? Windows doesn't have signals, or didn't when I was doing the original port. 2017-11-07T14:49:44Z stassats: it all works on my msys2, i have no idea what i'm doing or not doing 2017-11-07T14:51:47Z eudoxia joined #sbcl 2017-11-07T14:51:57Z scymtym: stassats: can you check how the sigset_t definition in /usr/include/sys/select.h is guarded? 2017-11-07T14:52:54Z nyef: select.h? What? 2017-11-07T14:53:32Z nyef: ... Urgh. I don't think I *want* to know what's been going on in that direction. /-: 2017-11-07T15:02:48Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T15:04:00Z DeadTrickster joined #sbcl 2017-11-07T15:07:27Z pfdietz quit 2017-11-07T15:44:49Z Kevslinger joined #sbcl 2017-11-07T15:50:15Z stassats: scymtym: i don't have /usr/include/sys/select.h 2017-11-07T15:51:15Z dougk joined #sbcl 2017-11-07T15:53:36Z nyef: Is this a cygwin vs. mingw thing? 2017-11-07T16:03:31Z milanj joined #sbcl 2017-11-07T16:12:21Z scymtym: i thought we both used msys2 2017-11-07T16:18:01Z scymtym: stassats: which gcc package did you install in the msys2 environment. i installed gcc, which pulled in msys2-runtime-devel which contains the file 2017-11-07T16:33:28Z stassats: mingw-w64-x86_64-gcc 2017-11-07T16:38:41Z nyef: Presumably, this means that scymtym needs some extra cflag to kick in the mingw compiler instead of the full gcc? 2017-11-07T16:41:15Z stassats: i don't have the "gcc" package installed 2017-11-07T16:41:30Z stassats: maybe remove gcc, install mingw-w64-x86_64-gcc mingw-w64-x86_64-make, whatever 2017-11-07T16:41:35Z Zisper quit (Ping timeout: 248 seconds) 2017-11-07T16:47:55Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T16:48:00Z nyef: ... IR1-OPTIMIZE definitely deletes all "local" EXIT nodes. Hrm. 2017-11-07T16:48:05Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T16:50:10Z akovalen` joined #sbcl 2017-11-07T16:50:26Z stassats: well, there's your wrong-code-generated 2017-11-07T16:52:56Z nyef: EXIT nodes are created by the RETURN-FROM and GO ir1-translators. 2017-11-07T16:53:44Z nyef: In both cases, they find both the ENTRY and the CTRAN by using LEXENV-FIND, and this appears to be the *only* place that the ENTRY and CTRAN are associated. 2017-11-07T16:54:23Z akovalenko quit (Ping timeout: 248 seconds) 2017-11-07T16:57:03Z nyef: Given the CTRAN, I can find the BLOCK, and thence its PRED. Given the ENTRY, can I find the CTRAN? And is having the BLOCK-PRED for the entry target useful? 2017-11-07T16:57:20Z stassats: somehow the whole if collapses, huh 2017-11-07T16:58:20Z nyef: I can't "just" check to see if the BLOCK-PRED has multiple entries, because (block foo (if ... ... ...)), the entry will have two nodes simply because of the IF. 2017-11-07T16:59:59Z nyef: ... But it's a block boundary, so we can check for cleanups between the two blocks. 2017-11-07T17:04:12Z dougk joined #sbcl 2017-11-07T17:06:04Z stassats: the IF is deleted by ir1-optimize directly 2017-11-07T17:06:39Z stassats: cause it has only one successor, when did that happen 2017-11-07T17:08:12Z stassats: i guess i see, both the unknown value and one of the IF values write into the same lvar 2017-11-07T17:08:23Z stassats: the usual vestigial-exit stuff 2017-11-07T17:08:53Z nyef: lp#1730699 ? 2017-11-07T17:08:58Z stassats: yeah 2017-11-07T17:09:58Z rgrau quit (Ping timeout: 264 seconds) 2017-11-07T17:10:29Z nyef: This feels like the same damned issue. 2017-11-07T17:11:00Z nyef: The first M-V-P1 destroys the value semantics of BLOCK B7. 2017-11-07T17:11:58Z Jesin joined #sbcl 2017-11-07T17:12:28Z nyef: If you replace the BLOCK B7 / RETURN-FROM B7 with a TAGBODY / GO, you'll probably get the same effect. 2017-11-07T17:12:35Z stassats: yes 2017-11-07T17:12:36Z stassats: just did that 2017-11-07T17:12:51Z milanj joined #sbcl 2017-11-07T17:12:51Z milanj quit (Client Quit) 2017-11-07T17:13:13Z nyef: The second M-V-P1 destroys the value semantics of the WHEN... 2017-11-07T17:13:18Z stassats: less complex IR1 2017-11-07T17:13:35Z stassats: (defun f14 (a b) (multiple-value-prog1 b (tagbody (return-from f14 (multiple-value-prog1 3 (if a (go z)))) z))) 2017-11-07T17:14:05Z stassats: only one vestigial cast 2017-11-07T17:15:33Z nyef: Heh. The disassembly is fun, at least. 2017-11-07T17:18:36Z stassats: i think this is the simplest form of the bug 2017-11-07T17:18:52Z stassats: IR1-wise 2017-11-07T17:19:09Z nyef: More importantly, it's a form that silently mis-compiles, rather than bombs in STACK. 2017-11-07T17:19:34Z stassats: no stack since all the values are known 2017-11-07T17:20:12Z nyef: Hunh. So they are, at least by this point. 2017-11-07T17:20:44Z nyef: Do you want to add this to the test suite, or shall I? 2017-11-07T17:21:07Z stassats: i only want to fix it 2017-11-07T17:21:19Z nyef: I want to make sure it doesn't come back once it's been fixed. 2017-11-07T17:21:37Z stassats: i'm not adding test cases before fixing 2017-11-07T17:21:48Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-07T17:22:11Z DeadTrickster joined #sbcl 2017-11-07T17:26:17Z nyef: It's definitely because MAY-DELETE-VESTIGIAL-EXIT permits the vestigial exit to be deleted. 2017-11-07T17:26:52Z nyef: (Tested by redefining MAY-DELETE-VESTIGIAL-EXIT to always return NIL and re-compiling the test case.) 2017-11-07T17:28:43Z stassats: when a return is deleted in maybe-delete-exit, it has a cleanup, but the new cast doesn't have a cleanup, is that important? 2017-11-07T17:29:09Z DGASAU quit (Read error: Connection reset by peer) 2017-11-07T17:29:16Z stassats: so the cast is at the receiving end? 2017-11-07T17:29:28Z stassats: lexically 2017-11-07T17:29:41Z nyef: Yes. The new cast has to be outside of the scope of the cleanup so that STACK analysis will insert the cleanup code before the cast. 2017-11-07T17:30:33Z nyef: This is *specifically* for the case of a multiple-value LVAR. 2017-11-07T17:30:49Z nyef: Otherwise, we're back to "nonlinear LVARs". 2017-11-07T17:31:04Z DGASAU joined #sbcl 2017-11-07T17:32:05Z stassats: and it's broken since cmucl, yay, at least something is not newly introduced 2017-11-07T17:33:18Z stassats: this bug is a good find 2017-11-07T17:33:25Z nyef: Indeed. 2017-11-07T17:33:47Z nyef: I mean, we've known about the bug since, as I said, March, but this expression of it is beautifully nasty. 2017-11-07T17:35:09Z stassats: how is may-delete-vestigial-exit to know that it can't delete this? 2017-11-07T17:35:36Z nyef: That's what I'm trying to figure out. 2017-11-07T17:36:02Z milanj joined #sbcl 2017-11-07T17:36:12Z nyef: What we have is a :BLOCK or :TAGBODY cleanup with no EXITs on the ENTRY, but for which there *used to be*. 2017-11-07T17:36:33Z nyef: And the *control flow* is still there, it's not like the blocks were deleted. 2017-11-07T17:37:37Z dougk quit (Ping timeout: 258 seconds) 2017-11-07T17:37:59Z stassats: this is basically prog1, it doesn't break with prog1 2017-11-07T17:38:22Z nyef: ... Wha? 2017-11-07T17:38:41Z stassats: well, prog1 is just a let 2017-11-07T17:41:06Z stassats: in prog1 B is written to the same lvar after the IF, not before 2017-11-07T17:41:55Z nyef: Ahh. Yeah, that'd do it. 2017-11-07T17:45:04Z stassats: the second mv-prog1 is somehow important as well 2017-11-07T17:45:29Z stassats: (defun f14 (a b) (declare (optimize (debug 0) (safety 0) speed)) (multiple-value-prog1 b (tagbody (if a (go z) (return-from f14 a)) z))) 2017-11-07T17:45:31Z stassats: doesn't break 2017-11-07T17:45:43Z stassats: (declare (optimize (debug 0) (safety 0) speed)) just to reduce IR1 noise 2017-11-07T17:47:52Z nyef: Yes, the second MV-PROG1 destroys the value semantics of WHEN. 2017-11-07T17:47:55Z dougk joined #sbcl 2017-11-07T17:48:00Z stassats: everything would've been okay if the IF weren't deleted and the things not started executing unconditionally 2017-11-07T17:48:59Z stassats: the cast is removed, it means the value written happens before the IF 2017-11-07T17:49:20Z nyef: And that's where things start going wrong, isn't it? 2017-11-07T17:49:36Z stassats: that's where they end up being wrong 2017-11-07T17:49:36Z nyef: We need to not kill the vestigial exit. 2017-11-07T17:50:19Z stassats: well, that's easy, just always not deleted it, but to do it smart 2017-11-07T17:51:19Z stassats: ok, taking a break to cook dinner 2017-11-07T18:00:37Z stassats: i wonder if it could be replicated without mv-prog1 somehow 2017-11-07T18:02:32Z nyef: What I'm wondering is if we can break this without having to drop value semantics. 2017-11-07T18:03:30Z nyef: That is, can we break this by having vestigial exits in the way instead of having to have non-valued exits? 2017-11-07T18:05:29Z nyef: That would probably be doable without mv-prog1, actually. 2017-11-07T18:05:47Z m00natic quit (Remote host closed the connection) 2017-11-07T18:08:51Z nyef: The description of our "safe" condition in MAY-DELETE-VESTIGIAL-EXIT is wrong. 2017-11-07T18:09:52Z nyef: It's not that the other uses can't be live from the block that contained the deleted EXIT, it's that they can't be live from the points at which the CAST LVAR is USEd. 2017-11-07T18:12:08Z milanj quit (Quit: This computer has gone to sleep) 2017-11-07T18:17:26Z milanj joined #sbcl 2017-11-07T18:19:05Z stassats: is mv-prog1 the only instances where lvar's dest is far away from its uses? 2017-11-07T18:19:51Z stassats: normally it's done via variables 2017-11-07T18:19:52Z nyef: I wouldn't have thought so, but I really don't know for sure. 2017-11-07T18:21:01Z stassats: unwind-protect doesn't count, since it's basically mv-prog1 2017-11-07T18:21:08Z stassats: i mean something with normal semantics 2017-11-07T18:22:19Z nyef: Hrm. I'd suggest RETURN-FROM, but the EXIT itself brings them close together, doesn't it? 2017-11-07T18:23:56Z nyef sighs. 2017-11-07T18:24:04Z nyef: Can I make this work without having to do a flow analysis? 2017-11-07T18:24:51Z nyef: I really don't want to have to do flow analysis here. 2017-11-07T18:27:18Z stassats: does this only happen with returns? 2017-11-07T18:27:32Z stassats: can it deliver a wrong value to some other node? 2017-11-07T18:31:34Z nyef: IR1, as converted, is clearly correct. The only way for value delivery to get messed up is via SUBSTITUTE-LVAR-USES. 2017-11-07T18:32:53Z nyef: There are other constraints, to do with DX, but that's relevant for STACK analysis and cleanup insertion, not value semantics themselves. 2017-11-07T18:33:45Z stassats: same thing happens with (defun f14 (a b) (declare (optimize (debug 0) (safety 0) speed)) (print (block nil (multiple-value-prog1 b (tagbody (return (multiple-value-prog1 3 (if a (go z)))) z))))) 2017-11-07T18:34:00Z stassats: so, no need to focus on returns 2017-11-07T18:34:37Z nyef: Yes, but the returns are easier to test, and it's still the same underlying issue. 2017-11-07T18:35:41Z stassats: what are the usual conditions for a lvar to have multiple uses, an ordinary IF? 2017-11-07T18:35:43Z nyef: Also, we've had a bug where the value was absolutely toxic for externalization. If we tried to print it, we'd get a fairly horrid explosion which we couldn't contain within the specific case in the test suite. 2017-11-07T18:36:15Z nyef: Yeah, control flow is one of the more usual ways to have multiple uses on an lvar. 2017-11-07T18:36:53Z nyef: Actually, control flow is basically the ONLY way to do so, IIRC. Either IF, or EXIT/ENTRY. 2017-11-07T18:37:05Z stassats: but there's probably no other case when an lvar can have two uses that are used twice 2017-11-07T18:37:10Z stassats: as is the case here 2017-11-07T18:37:13Z stassats: i.e. executed 2017-11-07T18:37:21Z stassats: outside of loops 2017-11-07T18:38:50Z nyef: Two uses that are both executed? 2017-11-07T18:39:15Z stassats: yeah, normal if only one branch is taken and only it writes the lvar 2017-11-07T18:39:47Z nyef: A loop might be able to execute a single USE more than once before hitting the DEST, not sure about that, but otherwise I think it has to be an IF or an EXIT/ENTRY. 2017-11-07T18:40:58Z nyef: And with a loop, the compiler knows that the LVAR is dead on entry to the block which USEs it. 2017-11-07T18:41:43Z nyef: (The LVAR being dead on entry to a block that USEs it is actually the original trigger for this whole "nonlinear LVAR" thing.) 2017-11-07T18:47:35Z stassats: how come an exit has a lvar? 2017-11-07T18:49:34Z nyef: For BLOCK / RETURN-FROM, the LVAR is the result of the BLOCK. When you RETURN-FROM, the EXIT is the DEST for some other LVAR. When you snap that link on a local exit, you need for the value delivered to RETURN-FROM to be the value returned from BLOCK, and since it's a value "in flight", it's an LVAR. 2017-11-07T18:49:47Z nyef: Note that TAGBODY / GO doesn't have an LVAR. 2017-11-07T18:50:08Z stassats: it's kinda like the block lvar 2017-11-07T18:50:54Z nyef: Yes. If the EXIT node still exists, then there's a separate LVAR for the EXIT. The vestigial exit CAST copies the one to the other. If that gets snapped out, then you only have the block lvar. 2017-11-07T18:51:27Z stassats: i'm looking at the IR before ir1-phases 2017-11-07T18:51:39Z nyef: So, pre-optimization? Good call. 2017-11-07T18:51:56Z stassats: some locall is performed before that, but there shouldn't be any here 2017-11-07T18:52:17Z nyef: The LVAR going *to* the EXIT is the value delivered, so the value presented to RETURN-FROM. 2017-11-07T18:52:35Z nyef: And, again, TAGBODY / GO doesn't have value semantics, so there's no LVAR there. 2017-11-07T18:57:23Z stassats: i can't come up with anything but never deleting the cast from a valued return if 2017-11-07T18:57:52Z nyef: That feels too coincidental to be reliable. /-: 2017-11-07T18:58:28Z stassats: it prevents the lvar to be used before control transfer 2017-11-07T18:59:34Z stassats: which is what happens with two mv-prog1s 2017-11-07T18:59:54Z stassats: they both write their values before anything happens, can't be writing the values into the same lvar 2017-11-07T19:00:13Z nyef: And if we can come up with a case where the IF runs non-valued exits, but still twits with an LVAR lifetime? 2017-11-07T19:00:27Z stassats: can we? 2017-11-07T19:00:51Z stassats: mv-prog1 implies at least one valued exit, otherwise it's deleted 2017-11-07T19:01:41Z stassats: even if you are using GOs as IF legs, the mv-prog1 will be the valued exit 2017-11-07T19:02:29Z nyef: Hrm. 2017-11-07T19:04:42Z DeadTrickster quit (Remote host closed the connection) 2017-11-07T19:08:12Z nyef: How do you even know that the CAST comes from an IF? Or, more specifically, that it is the _result_ of an IF? 2017-11-07T19:08:45Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T19:09:08Z stassats: you don't? just never delete it... 2017-11-07T19:09:23Z stassats: maybe if the lvar is only used once 2017-11-07T19:09:31Z nyef: Never delete any of these casts? 2017-11-07T19:09:58Z stassats: right 2017-11-07T19:10:10Z stassats: not right right, but that's the only thing i see right now 2017-11-07T19:10:18Z nyef: As in, (defun may-delete-vestigial-exit (cast) (declare (ignore cast)) nil) ? 2017-11-07T19:10:24Z dougk joined #sbcl 2017-11-07T19:11:47Z nyef: Oh, wait, not quite. (defun may-delete-vestigial-exit (cast) (if (cast-vestigial-exit-lexenv cast) nil #| control-flow analysis is hard, let's go shopping |# t)) ? 2017-11-07T19:12:03Z stassats: like the old one (not (cast-vestigial-exit-lexenv cast)) 2017-11-07T19:12:25Z nyef: We didn't like that one for some reason, did we? 2017-11-07T19:12:51Z stassats: i tried it, a couple of tests with backtraces or something failed 2017-11-07T19:13:11Z stassats: i mean, liking it and producing wrong results is not a hard choice 2017-11-07T19:14:24Z stassats: maybe also (not (consp (lvar-uses lvar))) 2017-11-07T19:15:34Z nyef: 6503b2e697382e9902a7736f9d6a2102ef63dd17 /-: 2017-11-07T19:16:42Z nyef: "certain circumstances", but no mention of *which* circumstances. 2017-11-07T19:16:45Z stassats: it doesn't say what "turns out" 2017-11-07T19:17:39Z nyef: s/it turns out/it so happens/ 2017-11-07T19:18:40Z nyef: Basically, "we didn't think that this was the case, but it actually is the case". 2017-11-07T19:19:21Z stassats: well, what is the case? 2017-11-07T19:19:44Z nyef: So, we need to delete these *sometimes*. For some reason that we might have known three and a half years ago but don't know now, and don't appear to have kept a record of. 2017-11-07T19:20:12Z stassats: i can try again and see why something has failed, probably due to TR 2017-11-07T19:20:24Z nyef: And which probably won't noticably occur during a clean build, and possibly not during a test suite run, either. 2017-11-07T19:20:36Z stassats: a couple of tests fail 2017-11-07T19:20:46Z stassats: but not important ones 2017-11-07T19:22:03Z nyef: Right, doing a build and test cycle to see what, if anything, breaks this way. 2017-11-07T19:22:06Z stassats: rebuilding with (defun may-delete-vestigial-exit (cast) (or (not (cast-vestigial-exit-lexenv cast)) (atom (lvar-uses (cast-lvar cast))))) 2017-11-07T19:22:29Z nyef: I'm building with (defun may-delete-vestigial-exit (cast) (not (cast-vestigial-exit-lexenv cast))). 2017-11-07T19:22:38Z stassats: deal 2017-11-07T19:26:05Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T19:30:48Z nyef: Running test suite now. 2017-11-07T19:32:38Z dougk joined #sbcl 2017-11-07T19:32:55Z shka_ joined #sbcl 2017-11-07T19:33:30Z stassats: no failed tests 2017-11-07T19:33:44Z stassats: just two unexpected successes from your new tests 2017-11-07T19:34:41Z nyef: Hrm. 2017-11-07T19:39:02Z nyef: And, of course, there's also the question of "does this actually fix the bug, or just make it more subtle?" 2017-11-07T19:39:26Z stassats: i think it fixes this bug 2017-11-07T19:40:19Z stassats: what's happening, in the original maybe-delete-exit, it calls delete-filter, which basically moving the return into some unknown location with substitute-lvar-uses 2017-11-07T19:40:23Z stassats: which is wrong 2017-11-07T19:40:34Z stassats: not for control flow semantics, but for value semantics 2017-11-07T19:41:14Z nyef: Right, basically all of our problems with this have been value semantics problems. 2017-11-07T19:42:09Z stassats: i'm not sure about (atom (lvar-uses (cast-lvar cast))) 2017-11-07T19:42:29Z stassats: but otherwise, there's no cleanups of any kind here, so may-delete-vestigial-exit can never really work in its current form 2017-11-07T19:44:22Z nyef: Three failures. Two in backtrace, for (BACKTRACE DIVIDE-BY-ZERO BUG-3[45]6). One in debug, for (DEBUGGER SOURCE 1). 2017-11-07T19:44:32Z stassats: yeah, that's what i saw 2017-11-07T19:44:51Z stassats: probably tail calls or something 2017-11-07T19:49:46Z dougk__ joined #sbcl 2017-11-07T19:49:50Z nyef: Okay, right, the vestigial exit foxes tail-call recognition in certain cases. 2017-11-07T19:50:15Z dougk quit (Ping timeout: 258 seconds) 2017-11-07T19:51:25Z stassats: (atom (lvar-uses (cast-lvar cast))) reduces that 2017-11-07T19:51:34Z stassats: i need to think over if it's the right thing to do 2017-11-07T19:52:34Z stassats: well, the only problem is when two users use an lvar out of turn, if there's only one, no problem 2017-11-07T19:54:28Z stassats: Got: "0] (SB-KERNEL:TWO-ARG-/ 1 0)" Wanted: "(/ X Y) 2017-11-07T19:55:03Z nyef: Hrm. 2017-11-07T19:55:26Z stassats: the code of the test function is actually the same 2017-11-07T19:55:41Z nyef: So, the (atom (lvar-uses (cast-lvar cast))) is at least Not Wrong: It won't mis-compile anything. The question is if it's Right Enough. 2017-11-07T19:57:11Z nyef: Not so much "can we delete more of these", we almost certainly can, but "do we need to delete more of these"? 2017-11-07T19:57:31Z stassats: let's wait for pfdietz to find more issues? 2017-11-07T19:58:15Z stassats: if this is the solution, can we detect it at maybe-delete-exit? and introduce some other node kind, FILTER, that's not deleted 2017-11-07T19:58:42Z scymtym: getting close: https://ci.cor-lab.org/job/sbcl-master-windows/featureset=1,label=Windows_7_32bit/1312/console 2017-11-07T20:00:14Z nyef: scymtym: Congratulations. 2017-11-07T20:00:56Z scymtym: nyef: thanks, but it's not there yet (and shouldn't require heroic effort in the first place) 2017-11-07T20:01:16Z nyef: stassats: The problem with detecting it at maybe-delete-exit is that some of the other uses for the LVAR may still be live at that point, but deleted afterwards. 2017-11-07T20:02:09Z stassats: ok, right 2017-11-07T20:03:39Z stassats: ok, can anything besides returns write into bad lvars? 2017-11-07T20:04:13Z stassats: i think no, since for it to be used there needs to be some kind of return 2017-11-07T20:06:13Z stassats: basically, m-v-prog1/unwind-protect + return is the only way for a lvar to get used twice in one code path 2017-11-07T20:07:51Z scymtym: it seems libc strtod on x86 win32 is not accurate enough for the test in sb-posix 2017-11-07T20:08:00Z nyef: So, next nasty scenario: Sure, the block is the only receiver for this LVAR, but the receiver for the block is ANOTHER CAST. 2017-11-07T20:08:07Z stassats: i haven't built 32-bit win32 for some time 2017-11-07T20:08:30Z scymtym: the test is probably newer than the most recent attempt to do that 2017-11-07T20:08:48Z stassats: nyef: ok? 2017-11-07T20:09:05Z nyef: If you snap the casts in the wrong order, you're right back where we started. 2017-11-07T20:09:31Z stassats: casts can't multiple uses, just move them 2017-11-07T20:09:34Z dougk__ quit (Ping timeout: 252 seconds) 2017-11-07T20:09:45Z nyef: Hrm. 2017-11-07T20:10:08Z nyef: I think I'm about ready to give up. 2017-11-07T20:10:28Z stassats: i'll give up by committing 2017-11-07T20:10:52Z stassats: this is as sure as we going to get 2017-11-07T20:10:58Z nyef: I'm not convinced that what we have is right, even if it is less wrong than what we had last night. 2017-11-07T20:12:48Z stassats: you're not convinced that we got it wrong either 2017-11-07T20:19:12Z stassats: there are some differences in produced code 2017-11-07T20:19:22Z stassats: (defun foo (x) (block nil (case x (1 (return 2)) (3 (return 4)) (5 (return 6))))) doesn't get CMOV treatment 2017-11-07T20:19:28Z dougk joined #sbcl 2017-11-07T20:22:00Z stassats: but that's an optimization problem, a minor one, not correctness 2017-11-07T20:22:57Z attila_lendvai joined #sbcl 2017-11-07T20:22:57Z attila_lendvai quit (Changing host) 2017-11-07T20:22:57Z attila_lendvai joined #sbcl 2017-11-07T20:26:40Z stassats: i'm removing the extra vestigial-exit-lexenv slots polishing it up and committing 2017-11-07T20:29:25Z eudoxia quit (Quit: Leaving) 2017-11-07T20:29:45Z DeadTrickster joined #sbcl 2017-11-07T20:30:17Z nyef: Again, I'm convinced that it will at least not screw up value semantics. I'm not convinced that it's actually sufficient to requirements for *other* things. 2017-11-07T20:37:23Z stassats: as far as deleting exits concerned, this is will do 2017-11-07T20:37:47Z stassats: i can't think of any other nodes that could cause this, nlx-exits? 2017-11-07T20:38:10Z nyef: Yeah, I don't know. 2017-11-07T20:38:31Z stassats: may-delete-vestigial-exit can return t if cast-lvar is not alived aftr cast-value is used 2017-11-07T20:41:15Z dougk quit (Ping timeout: 246 seconds) 2017-11-07T20:41:44Z stassats: i put that case/return thingy into my notes 2017-11-07T20:43:50Z stassats: i put all suboptimilaties i come across into notes and then go through them periodically, in hopes a solution will reveal itself 2017-11-07T20:50:09Z stassats: and pushed 2017-11-07T20:51:13Z stassats: m-v-prog1 could introduce a cleanup itself 2017-11-07T20:51:52Z dougk joined #sbcl 2017-11-07T20:52:31Z stassats: that could be a way to identify poisonous uses 2017-11-07T20:53:39Z stassats: could that simplify stack-analyze as well? 2017-11-07T20:54:45Z stassats: mv-prog1 is basically a dynamic extent value that escapes upward 2017-11-07T20:56:13Z scymtym quit (Ping timeout: 250 seconds) 2017-11-07T20:59:06Z dougk quit (Ping timeout: 246 seconds) 2017-11-07T21:03:35Z DeadTrickster quit (Ping timeout: 250 seconds) 2017-11-07T21:04:37Z DeadTrickster joined #sbcl 2017-11-07T21:04:44Z dougk joined #sbcl 2017-11-07T21:11:05Z dougk__ joined #sbcl 2017-11-07T21:13:07Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T21:20:29Z dougk__ quit (Ping timeout: 250 seconds) 2017-11-07T21:23:38Z dougk joined #sbcl 2017-11-07T21:28:17Z shka_ quit (Ping timeout: 250 seconds) 2017-11-07T21:37:58Z dougk quit (Ping timeout: 258 seconds) 2017-11-07T21:45:03Z scymtym joined #sbcl 2017-11-07T21:52:16Z dougk joined #sbcl 2017-11-07T22:10:08Z jdz quit (Ping timeout: 240 seconds) 2017-11-07T22:10:30Z jdz joined #sbcl 2017-11-07T22:13:39Z dougk quit (Ping timeout: 246 seconds) 2017-11-07T22:14:14Z dougk joined #sbcl 2017-11-07T22:17:22Z stassats: inhibiting TCO is not nice 2017-11-07T22:21:35Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T22:23:13Z nyef: That it isn't. 2017-11-07T22:23:33Z stassats: beats incorrect code, though 2017-11-07T22:23:43Z nyef: Still an issue with the whole "single use of this lvar" thing? 2017-11-07T22:24:01Z stassats: if there are multiple returns, yes 2017-11-07T22:24:22Z stassats: maybe mv-prog1 can mark its lvar somehow "do not touch" 2017-11-07T22:25:49Z stassats: something like (defun foo (x) (unless x (return-from foo (print x))) x) doesn't get TCO 2017-11-07T22:27:36Z stassats: what if i just make TCO see through casts? 2017-11-07T22:27:39Z dougk joined #sbcl 2017-11-07T22:30:15Z nyef: That last sounds plausible, but mind that you don't lose a required typecheck. 2017-11-07T22:30:51Z stassats: only the ones marked as vestigial-exits 2017-11-07T22:30:57Z stassats: but it's not trivial anyway 2017-11-07T22:33:50Z dougk__ joined #sbcl 2017-11-07T22:34:09Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T22:35:16Z stassats: or maybe, it can be replaced if there's no control transfers between lvar and value 2017-11-07T22:35:37Z stassats: immediately-used-p+trivial-cleanups? 2017-11-07T22:41:46Z scymtym: bad news: same sb-contrib strtod problem on x86_64 win32. good news: otherwise successful build on x86_64 win32 2017-11-07T22:42:05Z stassats: maybe it's a windows7 problem 2017-11-07T22:42:09Z stassats: i'm on 10 2017-11-07T22:43:09Z scymtym: maybe. strtod is just inaccurate for some reason 2017-11-07T22:43:56Z scymtym: i guess i can disable the test on :win32 2017-11-07T22:47:26Z stassats: almost-immediately-used-p+only-harmless-cleanups seems like a way to go for TCO 2017-11-07T22:49:19Z dougk__ quit (Ping timeout: 250 seconds) 2017-11-07T22:50:29Z dougk joined #sbcl 2017-11-07T22:50:52Z scymtym: stassats: now that the build is mostly working, the question is what you want to get out of it 2017-11-07T22:51:09Z stassats: i think that's it, that's the solution i'm comfortable with 2017-11-07T22:51:14Z stassats: scymtym: builds/not builds, that's it 2017-11-07T22:51:34Z scymtym: compiler warning reports? emails? archive build results? 2017-11-07T22:51:55Z stassats: dunno, you are usually quick to report any failures 2017-11-07T22:52:07Z stassats: how do you get them? 2017-11-07T22:52:46Z scymtym: for linux and macos by checking periodically. but that's mainly because they are way too flaky for email notifications 2017-11-07T22:53:21Z stassats: of course, mailing sbcl-devel@ would be the best 2017-11-07T22:53:26Z scymtym: when not running tests, failures could be rare enough to justify email notification 2017-11-07T22:54:13Z scymtym: with sourceforge issues, our own infrastructure problems, etc., their may still be too many false positives for sbcl-devel 2017-11-07T22:54:27Z scymtym: maybe i will observe for a bit and report back 2017-11-07T22:54:52Z scymtym: are you interested in any artifacts? should i try to build installers? 2017-11-07T22:55:03Z stassats: nah 2017-11-07T22:55:07Z scymtym: ok 2017-11-07T22:56:33Z stassats: oops, accidentally used almost-immediately-used-p, that burned and crashed 2017-11-07T22:57:10Z stassats: scymtym: what is the link to see build reports? 2017-11-07T22:58:35Z scymtym: stassats: for now https://ci.cor-lab.org/job/sbcl-master-windows/featureset=1,label=Windows_7_{32,64}bit//console where buildid can also be something like lastBuild or lastSuccessfulBuild 2017-11-07T22:58:56Z scymtym: but i want to get rid of the featureset bit since i won't do that for the windows slaves 2017-11-07T22:59:09Z stassats: so, https://ci.cor-lab.org/job/sbcl-master-windows/ 2017-11-07T22:59:17Z dougk quit (Ping timeout: 250 seconds) 2017-11-07T22:59:18Z stassats: and other targets? 2017-11-07T22:59:23Z scymtym: yes, everything is reachable from their 2017-11-07T22:59:38Z scymtym: the others are https://ci.cor-lab.org/job/sbcl-master 2017-11-07T23:00:09Z Bike quit (Ping timeout: 250 seconds) 2017-11-07T23:00:31Z stassats: can't build without sb-thread on windows, or safepoints 2017-11-07T23:00:55Z scymtym: we also don't have the capacity to build multiple configurations on windows, sorry 2017-11-07T23:01:08Z stassats: no need, there isn't any 2017-11-07T23:01:28Z stassats: maybe sb-unicode, but that'll do on other targets 2017-11-07T23:01:57Z scymtym: new hardware may become available soon, though :) 2017-11-07T23:02:27Z stassats: i may try using azure, but i don't really want to be automating stuff 2017-11-07T23:03:05Z scymtym: don't. it's a pain 2017-11-07T23:03:24Z stassats: i also could automate it locally 2017-11-07T23:03:28Z stassats: also for all the bsds 2017-11-07T23:03:37Z stassats: but i so don't want to 2017-11-07T23:03:51Z stassats: perfect job for some unpaid interns 2017-11-07T23:04:03Z sjl quit (Ping timeout: 250 seconds) 2017-11-07T23:06:25Z stassats: ok, immediately-used-p isn't good for stack-analyze 2017-11-07T23:09:06Z dougk joined #sbcl 2017-11-07T23:10:33Z dougk_: stassats: "Be conservative when deleting vestigial exits." causes new appearances of 'doing signed word to integer coercion (cost 20) to ""' in self-build. I'll muffle those. If that surprises you, feel free to unmuffle and diagnose 2017-11-07T23:11:00Z stassats: dougk_: no surprise, it's quite conservative indeed 2017-11-07T23:13:09Z dougk quit (Ping timeout: 246 seconds) 2017-11-07T23:15:50Z dougk joined #sbcl 2017-11-07T23:19:45Z eudoxia joined #sbcl 2017-11-07T23:21:07Z eudoxia quit (Remote host closed the connection) 2017-11-07T23:21:26Z eudoxia joined #sbcl 2017-11-07T23:22:14Z dougk quit (Ping timeout: 258 seconds) 2017-11-07T23:24:36Z sjl joined #sbcl 2017-11-07T23:33:54Z nyef: stassats: Are we willing to pay for a flow-sensitive analysis in MAY-DELETE-VESTIGIAL-EXIT? 2017-11-07T23:34:18Z nyef: ("pay" as in compile-time cost, not as in cash.) 2017-11-07T23:34:21Z stassats: i'm not sure 2017-11-07T23:35:16Z nyef: Depends on how expensive it is, doesn't it? 2017-11-07T23:35:41Z stassats: i'm not yet convinced that there isn't any other way 2017-11-07T23:37:48Z stassats: maybe multiple-value-prog1 violates some IR1 invariant 2017-11-07T23:38:30Z nyef: I'm fairly sure that I can express the constraint on vestigial exit deletion in terms of a flow analysis. 2017-11-07T23:39:33Z nyef: And it would run after the whole DO-NESTED-CLEANUPS thing that checks for escaped entries and DX allocations. 2017-11-07T23:40:42Z stassats: what would be the constraint? 2017-11-07T23:41:48Z nyef: Is there a path from some USE of the CAST-VALUE of the vestigial cast to the DEST of CAST-LVAR that does NOT pass through the cast itself? If so, we may not delete teh cast. 2017-11-07T23:43:24Z eudoxia quit (Quit: Leaving) 2017-11-07T23:45:32Z attila_lendvai quit (Quit: Leaving.) 2017-11-07T23:47:46Z dougk joined #sbcl 2017-11-07T23:48:18Z nyef: Basically, is the CAST-LVAR possibly still live at the same time as the CAST-VALUE (also an LVAR) before the vestigial exit? 2017-11-07T23:48:21Z Bike joined #sbcl 2017-11-07T23:51:04Z nyef: It'd be somewhat similar to BACK-PROPAGATE-PATHWISE in BACK-PROPAGTE-ONE-DX-LVAR in STACK, but it'd be a forward analysis. I'm fairly sure that we wouldn't need dominance information, but I'm not yet sure what the stop condition would actually be. 2017-11-07T23:52:36Z stassats: what if m-v-prog1 is (block nil (some-kind-of-mv-let form body (return saved-values))) 2017-11-07T23:53:57Z stassats: or will that break stack-analyze 2017-11-07T23:55:08Z nyef: DX-BIND M-V-CALL LIST, then VALUES-LIST in the end? 2017-11-07T23:55:21Z stassats: semantically, but better 2017-11-07T23:56:08Z nyef: "Better", in that it doesn't require a DX packet if the compiler can show that there's only one value? 2017-11-07T23:57:17Z stassats: `(multiple-value-call (lambda (&rest args) ,@body (values-list args)) ,value) without being so badly optimized 2017-11-07T23:58:04Z nyef: Are you sure we wouldn't be better off "just" fixing MAY-DELETE-VESTIGIAL-EXIT? 2017-11-07T23:58:23Z stassats: "just" 2017-11-07T23:59:18Z nyef: Yes, "just". 2017-11-07T23:59:46Z cromachina joined #sbcl 2017-11-08T00:02:17Z nyef: I should be able to get the flow analysis working tomorrow or the day after. 2017-11-08T00:02:28Z stassats: how do you determine if's still alive? 2017-11-08T00:04:11Z nyef: Oh, damn. This _is_ a backwards analysis. 2017-11-08T00:04:38Z stassats: isn't this just redoing stack-analyze? 2017-11-08T00:04:46Z nyef: It might be, sortof. 2017-11-08T00:04:50Z nyef: At least a chunk of it. 2017-11-08T00:05:24Z nyef: We're not worried about ordering stack packets, or if they even are stack packets, we're worried about if there's a lifetime collision. 2017-11-08T00:06:40Z nyef: "Is there a path from one of the USEs of the CAST-LVAR to its DEST that traverses a USE of the CAST-VALUE but not the CAST?" 2017-11-08T00:07:37Z nyef: Hrm. 2017-11-08T00:07:40Z sjl_ joined #sbcl 2017-11-08T00:07:42Z nyef: I might have to sit with this one for a bit. 2017-11-08T00:07:53Z stassats: LET isn't implemented in the way mv-prog1 is... 2017-11-08T00:08:43Z stassats: mv-prog1 is single use, ok, but maybe it's a good idea to go through a lambda 2017-11-08T00:09:12Z nyef: LET also has LAMBDA-VARs to use as a holding place, and they can't hold multiple values. 2017-11-08T00:09:38Z stassats: mv-call can 2017-11-08T00:09:57Z sjl quit (Ping timeout: 240 seconds) 2017-11-08T00:11:06Z nyef: Hrm. 2017-11-08T00:13:13Z dougk quit (Ping timeout: 258 seconds) 2017-11-08T00:18:03Z stassats: basically if we would delay writing to the parent lvar until the end, like it logically happens, it wouldn't pause any problems 2017-11-08T00:19:14Z dougk joined #sbcl 2017-11-08T00:19:40Z stassats: (merged pose and cause) 2017-11-08T00:21:31Z nyef: That feels a bit too much like an arranged coincidence to me, TBH. 2017-11-08T00:22:00Z stassats: is it a coincidence LET doesn't break down? 2017-11-08T00:22:49Z nyef: I don't know. 2017-11-08T00:23:02Z nyef: And I really don't like that I don't know. 2017-11-08T00:23:15Z nyef: And I'm about out of time to work on this tonight. 2017-11-08T00:23:33Z stassats: well, you can't write to an earlier lvar just by returning with LET 2017-11-08T00:34:07Z stassats: huh 2017-11-08T00:34:27Z stassats: i'm trying to insert a vestigial-cast directly in multiple-value-prog1 2017-11-08T00:35:45Z stassats: since that's what we're doing 2017-11-08T00:38:50Z stassats: Failure: compiler.pure.lisp / (COMPILE NODE/LVAR DERIVE-TYPE MISC.1) fails 2017-11-08T00:52:40Z dougk__ joined #sbcl 2017-11-08T00:53:15Z dougk quit (Ping timeout: 250 seconds) 2017-11-08T01:03:29Z Zisper joined #sbcl 2017-11-08T01:22:37Z stassats: another hopeful test 2017-11-08T01:24:46Z DeadTrickster_ joined #sbcl 2017-11-08T01:25:04Z stassats: (COMPILE NODE/LVAR DERIVE-TYPE MISC.1/2) failing for some reason 2017-11-08T01:25:10Z milanj_ joined #sbcl 2017-11-08T01:26:07Z stassats: looks like just a type mismatch warning, though not clear why 2017-11-08T01:26:53Z sjl_ quit (Quit: WeeChat 1.9.1) 2017-11-08T01:27:05Z milanj quit (Ping timeout: 240 seconds) 2017-11-08T01:27:35Z DeadTrickster quit (Ping timeout: 240 seconds) 2017-11-08T01:30:53Z dougk__ quit (Remote host closed the connection) 2017-11-08T01:35:34Z stassats: looks like i'm finally solving it, without flow analysis 2017-11-08T01:40:44Z stassats: flow analysis could help, but i'm only inserting vestigial-casts for mv-prog1, and deleting if there are no other uses, rarely performance sensitive code 2017-11-08T01:41:45Z milanj_ quit (Quit: This computer has gone to sleep) 2017-11-08T01:42:28Z milanj_ joined #sbcl 2017-11-08T01:43:09Z stassats: ok, i think this is something i can live with for the foreseeable feature without trying to improve it 2017-11-08T01:43:20Z Jesin quit (Quit: brb) 2017-11-08T01:46:40Z milanj_ quit (Client Quit) 2017-11-08T01:52:21Z Jesin joined #sbcl 2017-11-08T01:56:39Z stassats: dougk_: which compiler notes do you count? 2017-11-08T01:57:11Z stassats: two-arg-gcd had notes before as well 2017-11-08T01:57:54Z dougk_: but we've had a note-free build for a while. this had to be recent 2017-11-08T01:59:17Z stassats: with speed 2? 2017-11-08T02:00:14Z stassats: i've just fixed the "doing signed word to integer coercion" note 2017-11-08T02:00:33Z stassats: just wondering, should i remove the muffler, since with (speed 2) it produces some arithmetic notes 2017-11-08T02:04:24Z stassats: ok, removing it, no notes anymore 2017-11-08T02:27:08Z stassats quit (Quit: ZNC 1.6.2+deb1 - http://znc.in) 2017-11-08T02:34:35Z ebdreger quit (Ping timeout: 252 seconds) 2017-11-08T02:38:40Z panji joined #sbcl 2017-11-08T02:40:39Z milanj_ joined #sbcl 2017-11-08T03:22:55Z slyrus_ quit (Ping timeout: 268 seconds) 2017-11-08T04:06:58Z Bike quit (Quit: Lost terminal) 2017-11-08T04:14:46Z panji quit (Read error: Connection reset by peer) 2017-11-08T04:31:32Z panji joined #sbcl 2017-11-08T04:36:31Z panji quit (Quit: Leaving) 2017-11-08T05:38:09Z oleo quit (Quit: Leaving) 2017-11-08T06:16:36Z shka_ joined #sbcl 2017-11-08T06:42:05Z myrkraverk quit (Ping timeout: 240 seconds) 2017-11-08T06:59:00Z whoman quit (Quit: Leaving) 2017-11-08T07:12:25Z scymtym quit (Ping timeout: 250 seconds) 2017-11-08T07:27:40Z whoman joined #sbcl 2017-11-08T07:32:00Z myrkraverk joined #sbcl 2017-11-08T08:15:35Z milanj_ quit (Quit: Leaving) 2017-11-08T08:26:35Z shka_ quit (Ping timeout: 240 seconds) 2017-11-08T08:41:11Z scymtym joined #sbcl 2017-11-08T09:01:34Z whoman quit (Read error: Connection reset by peer) 2017-11-08T09:08:17Z DGASAU quit (Ping timeout: 260 seconds) 2017-11-08T09:35:43Z attila_lendvai joined #sbcl 2017-11-08T09:40:24Z Zisper quit (Read error: Connection reset by peer) 2017-11-08T09:40:45Z Zisper joined #sbcl 2017-11-08T09:43:24Z Kevslinger quit (*.net *.split) 2017-11-08T09:43:26Z dougk_ quit (*.net *.split) 2017-11-08T09:43:27Z foom quit (*.net *.split) 2017-11-08T09:43:27Z brucem quit (*.net *.split) 2017-11-08T09:43:28Z GreaseMonkey quit (*.net *.split) 2017-11-08T09:43:28Z |3b|`` quit (*.net *.split) 2017-11-08T09:43:29Z jackdaniel quit (*.net *.split) 2017-11-08T09:43:29Z jibanes quit (*.net *.split) 2017-11-08T09:43:30Z joshe quit (*.net *.split) 2017-11-08T09:49:03Z Kevslinger joined #sbcl 2017-11-08T09:49:03Z dougk_ joined #sbcl 2017-11-08T09:49:03Z GreaseMonkey joined #sbcl 2017-11-08T09:49:03Z foom joined #sbcl 2017-11-08T09:49:03Z brucem joined #sbcl 2017-11-08T09:49:03Z |3b|`` joined #sbcl 2017-11-08T09:49:03Z jackdaniel joined #sbcl 2017-11-08T09:49:03Z jibanes joined #sbcl 2017-11-08T09:49:03Z joshe joined #sbcl 2017-11-08T09:49:51Z Ionic quit (Ping timeout: 248 seconds) 2017-11-08T09:49:51Z phoe_ quit (Ping timeout: 248 seconds) 2017-11-08T09:50:04Z phoe joined #sbcl 2017-11-08T09:55:03Z Ionic_ joined #sbcl 2017-11-08T09:55:20Z Ionic_ is now known as Ionic 2017-11-08T10:39:42Z m00natic joined #sbcl 2017-11-08T11:07:43Z myrkraverk quit (Ping timeout: 250 seconds) 2017-11-08T11:18:50Z edgar-rft quit (Quit: edgar-rft) 2017-11-08T12:12:27Z Bike joined #sbcl 2017-11-08T12:43:59Z Guest70773 joined #sbcl 2017-11-08T12:54:16Z Guest70773 quit (Quit: My Mac Pro has gone to sleep. ZZZzzz�) 2017-11-08T13:01:18Z myrkraverk joined #sbcl 2017-11-08T13:44:47Z stassats joined #sbcl 2017-11-08T13:44:59Z nyef: Hello stassats. 2017-11-08T13:45:18Z stassats: nyef: hi 2017-11-08T13:45:53Z stassats: nyef: so, i changed things a bit, and you don't have to write a flow analysis pass 2017-11-08T13:46:03Z nyef: Okay, that's what I wanted to know about. Thank you. 2017-11-08T13:46:13Z stassats: moved the vestigial-cast to mv-prog1, and just never delete it 2017-11-08T13:46:40Z stassats: since this is what was going on with removed exits, but only mv-prog1 needed that treatment 2017-11-08T13:47:00Z stassats: (multiple-value-prog1 (print 10)) is no longer let-converted, but who cares 2017-11-08T13:47:05Z nyef: Still non-optimal, but probably far better compile-time behavior than doing the flow analysis. 2017-11-08T13:47:16Z stassats: s/let/tail/ 2017-11-08T13:47:44Z stassats: nyef: simpler, less chance of getting it wrong 2017-11-08T13:47:49Z Jesin quit (Quit: Leaving) 2017-11-08T13:47:54Z nyef: Right, right. That too. 2017-11-08T13:49:01Z stassats: and maybe-delete-exit is back to just using delete-filter, better optimization without mv-prog1 present 2017-11-08T13:50:18Z Bicyclidine joined #sbcl 2017-11-08T13:52:46Z nyef: Do we have any other crazy bugs to try and fix now, or can I pop my stack back to where I was on Monday? 2017-11-08T13:54:39Z stassats: just enjoying the moment where all the bugs are fixed 2017-11-08T13:55:27Z stassats: until the next "From: Paul F. Dietz" 2017-11-08T13:56:13Z stassats: i'm still expecting deleted code problems to pop up, but these are usually easy to fix 2017-11-08T13:58:37Z stassats: but for now the IR transformation is in much better shape than it was a couple of months ago 2017-11-08T14:06:18Z DeadTrickster_ quit (Read error: Connection reset by peer) 2017-11-08T14:06:42Z DeadTrickster_ joined #sbcl 2017-11-08T14:08:40Z pfdietz joined #sbcl 2017-11-08T14:37:48Z pfdietz: Hit rate of the random tester has been declining as bugs have been flushed out. When it stops finding bugs I intended to tweak it to (hopefully) shift to more fertile region of test space. 2017-11-08T14:38:50Z pfdietz: I want to make it more modular so when a bug is found, I can make it focus on code that resembles the bug. More mv-prog1/block/return/tagbody/go, for example. 2017-11-08T14:39:20Z pfdietz: What I'd really like is a way to get coverage feedback from the compiler, so I can generate tests that increase coverage there, even if they don't fail. 2017-11-08T14:40:48Z pfdietz: I hacked up Waters' COVER package some years back so one can checkpoint and roll back coverage information, but I don't know how to apply that to the SBCL compiler. 2017-11-08T14:47:09Z sjl joined #sbcl 2017-11-08T14:51:54Z DGASAU joined #sbcl 2017-11-08T14:57:39Z Jesin joined #sbcl 2017-11-08T15:00:01Z oleo joined #sbcl 2017-11-08T15:31:24Z cromachina quit (Read error: Connection reset by peer) 2017-11-08T15:36:49Z scymtym quit (Ping timeout: 250 seconds) 2017-11-08T15:42:02Z stassats quit (Ping timeout: 260 seconds) 2017-11-08T16:15:48Z Zisper quit (Ping timeout: 240 seconds) 2017-11-08T16:23:06Z eudoxia joined #sbcl 2017-11-08T17:19:39Z scymtym joined #sbcl 2017-11-08T17:28:04Z stassats joined #sbcl 2017-11-08T17:35:38Z stassats: dougk_: what are the motivations for moving external formats into target-2? 2017-11-08T17:37:59Z dougk_: anything in build-order.lisp-expr forces a strict serial order of compilation. warm load allows parallel compilation 2017-11-08T17:38:09Z stassats: i see 2017-11-08T17:38:27Z dougk_: granted i already have make-host-2 parallelized, but it's not strictly correct - the parallel results are not the same as the serial results. for "reasons" 2017-11-08T17:38:39Z stassats: but aren't there any dependencies between files? 2017-11-08T17:39:28Z dougk_: well, that's the issue. i'm not asserting that there aren't. we have very strict sandboxing stuff here and i can figure that out. make make-host-2 is extremely difficult to unserialize 2017-11-08T17:39:47Z dougk_: so the sooner the real compiler and real target works, the better 2017-11-08T17:40:06Z stassats: though sbcl builds fast enough to not really need parallel compilation 2017-11-08T17:40:29Z stassats: i wait more for ./run-tests.sh 2017-11-08T17:40:32Z dougk_: haha. what's fast for one is an eternity for another. i can compile 100,000 C files in the same time that SBCL can compile 80 lisp files 2017-11-08T17:41:10Z stassats: right now sbcl builds in two minutes, how much can really be improved by making it parallel 2017-11-08T17:41:11Z dougk_: basically our build system wants more granularity. one "build rule" that goes out to lunch for 2 minutes is not granular enough 2017-11-08T17:41:42Z stassats: so you rebuild sbcl a lot? 2017-11-08T17:42:14Z dougk_: the google way is to rebuild everything a lot. from the leaves up. 2017-11-08T17:43:11Z stassats: do you run all the tests after building? 2017-11-08T17:43:18Z dougk_: not there yet. 2017-11-08T17:43:21Z stassats: if not, do you disable the contrib tests? 2017-11-08T17:44:05Z dougk_: depends whether you're talking about the builds i do by hand or our automated builds. 2017-11-08T17:44:19Z stassats: i use a prepared sbcl for building, no threads, no unicode, safety 0 speed 3 2017-11-08T17:44:19Z dougk_: but we build the C runtime with every build of anything that needs Lisp, which is why I needed C header generation to be fast and cacheable 2017-11-08T17:44:41Z stassats: and disabled remap_free_pages 2017-11-08T17:45:16Z stassats: forgot about that till my windows VM kept shutting down while building sbcl 2017-11-08T17:46:33Z stassats: which makes it 1:56 on my not so recent hardware 2017-11-08T17:47:20Z DeadTrickster_ quit (Read error: Connection reset by peer) 2017-11-08T17:47:23Z stassats: i should set $SBCL_MAKE_JOBS 2017-11-08T17:47:51Z dougk_: did someone mention random failure in sb-posix strtod tests recently? I just saw a failure, and i've never seen it fail before 2017-11-08T17:47:55Z DeadTrickster joined #sbcl 2017-11-08T17:48:02Z stassats: (setting $SBCL_MAKE_JOBS to 8 on my phone builds the runtime faster than on the laptop) 2017-11-08T17:49:20Z stassats: dougk_: not sure about random, something on windows 2017-11-08T17:53:44Z stassats: 1:52 with -j8 2017-11-08T17:55:17Z m00natic quit (Remote host closed the connection) 2017-11-08T17:59:04Z stassats: and SBCL_MAKE_PARALLEL=8 => 1:26 2017-11-08T17:59:57Z stassats: dougk_: anything for parallel contrib building? 2017-11-08T18:00:36Z dougk_: not yet 2017-11-08T18:02:14Z stassats: building and testing contribs takes up 33 seconds 2017-11-08T18:03:04Z stassats: disabling GC in the host sbcl could help, but i fear 16GB of RAM is not enough 2017-11-08T18:27:03Z edgar-rft joined #sbcl 2017-11-08T18:28:15Z shka_ joined #sbcl 2017-11-08T18:41:07Z stassats: (compile equal equalp :transforms) takes a long time to test 2017-11-08T18:43:11Z stassats: 30 seconds for a single test 2017-11-08T18:43:45Z stassats: and several minutes on my ARM64 target 2017-11-08T18:47:55Z DGASAU quit (Ping timeout: 250 seconds) 2017-11-08T18:53:43Z DGASAU joined #sbcl 2017-11-08T19:44:21Z Jesin quit (Ping timeout: 240 seconds) 2017-11-08T19:47:04Z Jesin joined #sbcl 2017-11-08T20:53:39Z eudoxia quit (Quit: Leaving) 2017-11-08T21:10:27Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-08T21:11:15Z DeadTrickster joined #sbcl 2017-11-08T21:13:33Z whoman joined #sbcl 2017-11-08T21:19:13Z Jesin quit (Quit: rebooting) 2017-11-08T21:40:12Z shka_ quit (Ping timeout: 260 seconds) 2017-11-08T22:26:57Z Bicyclidine quit (Ping timeout: 240 seconds) 2017-11-08T22:31:01Z Jesin joined #sbcl 2017-11-08T22:31:32Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-08T22:31:53Z anticrisis joined #sbcl 2017-11-08T22:32:07Z DeadTrickster joined #sbcl 2017-11-08T22:43:17Z scymtym: dougk_: stassats asked about setting up CI with windows slaves. when i did this, i noticed that the stdtod test fails (not randomly and on both x86 and x86_64) 2017-11-08T22:44:44Z dougk_: i found my bug which caused strtod() test to fail, it was not the tests's fault 2017-11-08T22:45:02Z dougk_: so yours has gotta be something else. 2017-11-08T22:45:21Z dougk_: my bug happened only with :msan in features 2017-11-08T22:45:57Z attila_lendvai quit (Quit: Leaving.) 2017-11-08T22:46:23Z scymtym: when i investigated briefly, the foreign function seemed to return a different rounded value for some inputs 2017-11-08T22:47:03Z dougk_: oh, yah, that's not what i was dealing with at all. i had stack corruption 2017-11-08T22:47:28Z scymtym: stassats: the number of combinations in that test is 2 x |values|^2 x |policies|. it was just 2 x |values|^2 previously 2017-11-08T22:47:59Z scymtym: we can throw out some or all policies if it's taking too long 2017-11-08T22:48:40Z dougk_: can you try changing the strtod test to call strtod_wrapper(), define that function in C as the "obvious" thing and fprintf the result, to see what C thinks the answer is? 2017-11-08T22:48:51Z dougk_: or do we just not care enough and want to mark the test as failing? 2017-11-08T22:49:45Z scymtym: i can try that tomorrow when i can get to the windows vm easily 2017-11-08T22:50:35Z stassats: scymtym: the test is just doing checking the transforms, which kick in on all policies 2017-11-08T22:51:49Z scymtym: stassats: i will change it to use just the default policy 2017-11-08T22:52:14Z stassats: scymtym: i put :optimize nil, is that it? 2017-11-08T22:54:22Z scymtym: stassats: yes 2017-11-08T22:57:15Z angavrilov quit (Remote host closed the connection) 2017-11-08T22:59:15Z attila_lendvai joined #sbcl 2017-11-08T22:59:15Z attila_lendvai quit (Changing host) 2017-11-08T22:59:15Z attila_lendvai joined #sbcl 2017-11-08T23:01:19Z sjl quit (Ping timeout: 248 seconds) 2017-11-08T23:03:00Z scymtym: stassats: there are two test failures on x86 in the penultimate batch of commits: https://ci.cor-lab.org/job/sbcl-master/2604/featureset=5,label=ubuntu_trusty_32bit/consoleFull (search for "unexpected") 2017-11-08T23:03:44Z stassats: scymtym: i've silenced those 2017-11-08T23:04:20Z scymtym: stassats: ok. the most recent batch is still building 2017-11-08T23:11:30Z anticrisis: hi folks, sorry to interrupt: where are the build instructions used to build the windows binary? Current binary on sbcl.org is 1.3.18 and I'd like to test a more recent version. I can build using MSYS/MINGW64 but the resulting core file can't be run from Windows cmd.exe for reasons I also don't completely understand. 2017-11-08T23:12:26Z stassats: msys2 + some gcc package with x86_64 in its name (not just "gcc") 2017-11-08T23:13:45Z anticrisis: local/mingw-w64-x86_64-gcc is what I'm using, at least that's what I have installed 2017-11-08T23:14:20Z stassats: then you're good 2017-11-08T23:14:56Z stassats: though core files are not actually run 2017-11-08T23:15:24Z anticrisis: I get a core file error trying to run from cmd.exe, though 2017-11-08T23:15:40Z anticrisis: "different runtime" 2017-11-08T23:15:53Z stassats: well, it ain't lying then 2017-11-08T23:16:03Z stassats: give your sbcl the right core file 2017-11-08T23:16:10Z anticrisis: ok so that's why i was asking for instructions :-) -- sorry 2017-11-08T23:16:34Z stassats: see INSTALL 1.2 2017-11-08T23:17:40Z anticrisis: how do i build a compatible sbcl.core file? if I use sbcl --core and point to the mingw64 file, I get the same error 2017-11-08T23:18:08Z stassats: then you're not using the right exe 2017-11-08T23:18:33Z anticrisis: actually i get a different error, just tried it again now 2017-11-08T23:18:45Z stassats: or you're using --core wrong 2017-11-08T23:20:34Z anticrisis: c:\msys64\mingw64\bin\sbcl.exe --core c:\msys64\mingw64\lib\sbcl\sbcl.core 2017-11-08T23:21:34Z anticrisis: then it's trying to load some ASDF from the 1.3.18 distribution -- so that means I also need to set something like SBCL_HOME, probably? 2017-11-08T23:22:34Z anticrisis: ok, that did it 2017-11-08T23:24:36Z stassats: just run make-windows-installer.sh and install it windows-properly 2017-11-08T23:24:45Z stassats: and remove the old one 2017-11-08T23:25:04Z stassats: oh, i guess you don't have WiX or something 2017-11-08T23:25:15Z anticrisis: that's right, no WiX 2017-11-08T23:25:15Z stassats: well, you got it anyway 2017-11-08T23:25:44Z anticrisis: i did, thanks - just needed some prodding, appreciate it 2017-11-09T00:14:10Z anticrisis quit (Quit: time to play some overwatch) 2017-11-09T00:16:24Z attila_lendvai quit (Quit: Leaving.) 2017-11-09T00:29:50Z Jesin quit (Quit: Leaving) 2017-11-09T00:43:20Z attila_lendvai joined #sbcl 2017-11-09T00:43:20Z attila_lendvai quit (Changing host) 2017-11-09T00:43:20Z attila_lendvai joined #sbcl 2017-11-09T00:56:34Z attila_lendvai quit (Quit: Leaving.) 2017-11-09T01:10:34Z Zisper joined #sbcl 2017-11-09T02:22:41Z whoman quit (Read error: Connection reset by peer) 2017-11-09T02:34:07Z stassats quit (Ping timeout: 268 seconds) 2017-11-09T02:40:19Z fortitude joined #sbcl 2017-11-09T02:49:43Z nyef` joined #sbcl 2017-11-09T02:50:21Z loke` joined #sbcl 2017-11-09T02:50:40Z dim quit (Ping timeout: 248 seconds) 2017-11-09T02:51:11Z Zisper quit (Ping timeout: 248 seconds) 2017-11-09T02:51:12Z jack_rabbit quit (Ping timeout: 248 seconds) 2017-11-09T02:51:13Z luis quit (Ping timeout: 248 seconds) 2017-11-09T02:51:32Z Zisper joined #sbcl 2017-11-09T02:51:44Z nyef quit (Ping timeout: 248 seconds) 2017-11-09T02:51:44Z loke quit (Ping timeout: 248 seconds) 2017-11-09T02:57:13Z dim joined #sbcl 2017-11-09T02:57:57Z luis joined #sbcl 2017-11-09T03:03:03Z White_Flame quit (Remote host closed the connection) 2017-11-09T03:05:38Z jack_rabbit joined #sbcl 2017-11-09T03:12:28Z live__ joined #sbcl 2017-11-09T03:13:19Z White_Flame joined #sbcl 2017-11-09T03:14:56Z oleo quit (Ping timeout: 250 seconds) 2017-11-09T03:42:57Z cromachina joined #sbcl 2017-11-09T05:01:19Z fortitude quit (Quit: Leaving) 2017-11-09T05:07:43Z shka_ joined #sbcl 2017-11-09T05:07:49Z Bike quit (Quit: Lost terminal) 2017-11-09T06:15:02Z carvite quit (Ping timeout: 248 seconds) 2017-11-09T06:16:14Z shka joined #sbcl 2017-11-09T06:22:50Z shka_ quit (*.net *.split) 2017-11-09T06:22:51Z ave1 quit (*.net *.split) 2017-11-09T06:26:03Z carvite joined #sbcl 2017-11-09T06:27:23Z live__ quit (Quit: Leaving) 2017-11-09T07:06:57Z DeadTrickster_ joined #sbcl 2017-11-09T07:09:29Z jackdaniel quit (Ping timeout: 252 seconds) 2017-11-09T07:10:06Z _death quit (Ping timeout: 246 seconds) 2017-11-09T07:10:23Z DeadTrickster quit (Ping timeout: 268 seconds) 2017-11-09T07:10:29Z galdor quit (Ping timeout: 258 seconds) 2017-11-09T07:22:38Z sjl joined #sbcl 2017-11-09T07:26:52Z sjl quit (Ping timeout: 240 seconds) 2017-11-09T07:31:41Z scymtym quit (Ping timeout: 240 seconds) 2017-11-09T07:49:51Z shka quit (Ping timeout: 268 seconds) 2017-11-09T07:50:21Z salv0 joined #sbcl 2017-11-09T07:51:53Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-09T08:25:47Z josemanu1l joined #sbcl 2017-11-09T08:27:54Z scymtym joined #sbcl 2017-11-09T08:34:44Z josemanu1l is now known as josemanuel 2017-11-09T08:44:37Z josemanuel quit (Quit: leaving) 2017-11-09T08:44:56Z josemanuel joined #sbcl 2017-11-09T08:59:25Z rgrau joined #sbcl 2017-11-09T09:30:00Z dustinm` quit (Ping timeout: 258 seconds) 2017-11-09T09:31:36Z rgrau quit (Ping timeout: 268 seconds) 2017-11-09T09:31:42Z dustinm` joined #sbcl 2017-11-09T09:32:35Z rgrau joined #sbcl 2017-11-09T09:35:00Z galdor joined #sbcl 2017-11-09T09:37:48Z _death joined #sbcl 2017-11-09T09:37:48Z jackdaniel joined #sbcl 2017-11-09T09:38:02Z jackdaniel quit (Client Quit) 2017-11-09T09:38:10Z jackdaniel joined #sbcl 2017-11-09T09:41:29Z edgar-rft quit (Quit: edgar-rft) 2017-11-09T09:56:53Z pfdietz quit (Ping timeout: 268 seconds) 2017-11-09T10:00:01Z pfdietz joined #sbcl 2017-11-09T10:35:59Z salv0 quit (Quit: Leaving) 2017-11-09T10:36:13Z salv0 joined #sbcl 2017-11-09T10:47:24Z attila_lendvai joined #sbcl 2017-11-09T10:47:24Z attila_lendvai quit (Changing host) 2017-11-09T10:47:24Z attila_lendvai joined #sbcl 2017-11-09T10:47:27Z rgrau quit (Ping timeout: 268 seconds) 2017-11-09T11:10:02Z m00natic joined #sbcl 2017-11-09T11:13:32Z scymtym quit (Ping timeout: 240 seconds) 2017-11-09T11:17:38Z Bike joined #sbcl 2017-11-09T11:17:38Z Bike quit (Read error: Connection reset by peer) 2017-11-09T11:17:48Z edgar-rft joined #sbcl 2017-11-09T11:22:12Z scymtym joined #sbcl 2017-11-09T12:14:08Z stassats joined #sbcl 2017-11-09T12:16:45Z stassats: promising to fork sbcl and then asking for help, that's something... 2017-11-09T12:39:12Z edgar-rft quit (Quit: edgar-rft) 2017-11-09T12:41:51Z pfdietz quit 2017-11-09T12:42:49Z pfdietz joined #sbcl 2017-11-09T12:50:14Z scymtym: since "Defer compililng external-formats until warm load" the windows build fails like this: https://ci.cor-lab.org/job/sbcl-master-windows/label=Windows_7_64bit/1340/console 2017-11-09T12:50:45Z stassats: i'll take a look 2017-11-09T12:54:26Z scymtym: stassats: https://techfak.de/~jmoringe/win-failure.png 2017-11-09T12:57:32Z stassats: right 2017-11-09T13:03:52Z scymtym quit (Ping timeout: 240 seconds) 2017-11-09T13:13:35Z Kevslinger joined #sbcl 2017-11-09T13:22:41Z rgrau joined #sbcl 2017-11-09T13:33:35Z nyef`: G'morning all. 2017-11-09T13:34:25Z scymtym joined #sbcl 2017-11-09T13:36:12Z nyef`: Does SBCL have anything in the way of an "allocation profiler"? I've alread found one bug that was causing heap blow-outs in production by noticing INTERN in the backtrace from LDB while the system was making a database query, but it takes a while to blow out the heap that way, and I worry that there could be some other stupid memory leak. 2017-11-09T13:36:29Z stassats: sprof profiles calls to alloc() 2017-11-09T13:37:40Z nyef`: So if I just fire up sprof for a bit, I should get something useful? 2017-11-09T13:37:57Z stassats: with :alloc 2017-11-09T13:38:04Z nyef`: Wonderful. Thank you. (-: 2017-11-09T14:05:33Z Bike joined #sbcl 2017-11-09T14:07:16Z stassats: scymtym: about to fix it, so the win32 builder has already proved useful 2017-11-09T14:12:31Z jackdaniel: I love the unintended irony here (in the file name) win-failure 2017-11-09T14:12:39Z stassats: except the fix didn't work 2017-11-09T14:23:28Z stassats: windows hardcodes ucs-2 2017-11-09T14:25:00Z stassats: let's load it in host-2 on windows then 2017-11-09T14:28:12Z stassats: i don't want to be making sense of our windows unicode support beyond that 2017-11-09T14:29:29Z stassats: ugh, enc-ucs is not using sb! anymore 2017-11-09T14:31:39Z stassats: i'll load just enc-ucs everywhere 2017-11-09T14:31:43Z stassats: just load 2017-11-09T14:34:58Z oleo joined #sbcl 2017-11-09T14:36:56Z sjl_ joined #sbcl 2017-11-09T14:39:34Z scymtym: stassats: thanks. i can't spend time on the failure today since i promised dougk_ to look into the strtod thing 2017-11-09T14:47:30Z stassats: scymtym: got it fixed 2017-11-09T14:47:59Z stassats: ugh, git push does not work 2017-11-09T14:48:46Z stassats: what the hell 2017-11-09T14:50:25Z rgrau quit (Ping timeout: 268 seconds) 2017-11-09T15:04:59Z cromachina quit (Read error: Connection reset by peer) 2017-11-09T15:27:25Z scymtym: stassats: fix worked, thanks 2017-11-09T15:31:41Z Zisper quit (Ping timeout: 240 seconds) 2017-11-09T15:48:17Z edgar-rft joined #sbcl 2017-11-09T15:52:59Z scymtym: strtod issue is probably cause by locale, i.e. using "," for decimal point 2017-11-09T15:53:05Z scymtym: *caused 2017-11-09T16:27:22Z scymtym: i'm pretty sure it's a locale issue, but setting LANG, LC_ALL, LC_NUMERIC didn't help 2017-11-09T16:40:12Z nyef`: Would a simple way to check for locale be to hack libc-tests.lisp to replace the periods with commas? 2017-11-09T16:41:39Z nyef`: strtod(3) manpage on my system says that the radix character is locale-dependent. 2017-11-09T16:43:09Z rgrau joined #sbcl 2017-11-09T16:44:09Z Jesin joined #sbcl 2017-11-09T16:45:31Z scymtym: nyef`: i have already confirmed that strtod being called with the "wrong" locale in effect is the issue. my current problem is that setlocale(LC_ALL, "") which we do during initialization does not respect any of the LC_*, LANG variables 2017-11-09T16:45:54Z nyef`: Games and fun, huh? 2017-11-09T16:46:17Z eudoxia joined #sbcl 2017-11-09T16:47:04Z scymtym: yeah, right. locale stuff is already fun. double for windows. quadruple fun for windows wm over vnc 2017-11-09T16:49:24Z scymtym: at least we are not the only ones: https://lists.gnu.org/archive/html/guile-devel/2014-06/msg00032.html 2017-11-09T16:57:10Z nyef`: Eesh. 2017-11-09T17:05:12Z scymtym: i think i will punt and change the locale settings of the CI user 2017-11-09T17:08:30Z stassats quit (Quit: ZNC 1.6.2+deb1 - http://znc.in) 2017-11-09T17:15:09Z fortitude joined #sbcl 2017-11-09T17:16:24Z shka joined #sbcl 2017-11-09T17:16:38Z fortitude: with multiple threads, is garbage collection on whichever thread happens to trigger it (as opposed to dedicated GC thread)? 2017-11-09T17:28:32Z nyef`: fortitude: Yes, it's on a first come, first does the serving basis. No dedicated GC thread. 2017-11-09T17:28:57Z fortitude: rats 2017-11-09T17:29:36Z fortitude: I have an application where, under load, the thread that's doing GC gets killed (causing the others to deadlock) -- any advice on debugging the thread that dies? 2017-11-09T17:29:48Z fortitude: it's Windows, which probably doesn't help 2017-11-09T17:34:53Z nyef`: I haven't done any debugging of SBCL on Windows since long before it had thread support, so I can't help you much there. /-: 2017-11-09T17:37:57Z fortitude: windows does seem to be a bit of a niche 2017-11-09T17:43:25Z nyef`: Yes, well, the only reason SBCL even got a Windows port in the first place is because I was annoyed about the explanation for why it was infeasible being wrong. And this was back when, for work reasons and for hardware compatibility reasons, I was running Windows myself. 2017-11-09T17:44:55Z Shinmera: It works well enough that I was able to deploy some of my applications on it, but there's some things that make it a major pain like sb-sprof missing, and monitor synchronisation taking way too long. 2017-11-09T17:45:07Z Shinmera: The latter is a thing I'll have to properly investigate and write a ticket for at some point. 2017-11-09T17:46:26Z fortitude: related to windows support, there are a few minor patches I meant to submit forever ago, but I didn't because I couldn't get tests to run on windows 2017-11-09T17:46:45Z fortitude: is it better to submit them without tests, or try to patch out problematic tests, or something else? 2017-11-09T17:58:14Z m00natic quit (Remote host closed the connection) 2017-11-09T18:02:01Z scymtym gives up 2017-11-09T18:39:35Z stassats joined #sbcl 2017-11-09T18:49:04Z shka quit (Ping timeout: 268 seconds) 2017-11-09T18:49:10Z shka_ joined #sbcl 2017-11-09T19:04:28Z [k00l]px joined #sbcl 2017-11-09T19:22:46Z josemanuel quit (Quit: leaving) 2017-11-09T19:44:35Z milanj joined #sbcl 2017-11-09T20:01:07Z rgrau quit (Ping timeout: 250 seconds) 2017-11-09T20:11:12Z fiveop joined #sbcl 2017-11-09T20:22:46Z dougk_: stassats: "fix trace :encapsulate nil" on Darwin causes build failure in the 32-bit Darwin build. It says "no member named 'eflags', did you mean __eflags" 2017-11-09T20:23:59Z joshe quit (Remote host closed the connection) 2017-11-09T20:26:11Z stassats: dougk_: and here it's eflags... 2017-11-09T20:26:33Z nyef`: Header version dependency? 2017-11-09T20:26:44Z stassats: the UNIX03 or something thingy 2017-11-09T20:26:45Z nyef`: Not like we haven't had that before with some systems. 2017-11-09T20:37:32Z scymtym quit (Ping timeout: 240 seconds) 2017-11-09T20:37:34Z fiveop quit (Quit: Lost terminal) 2017-11-09T20:54:27Z shka_ quit (Ping timeout: 240 seconds) 2017-11-09T21:06:17Z eudoxia quit (Quit: Leaving) 2017-11-09T21:07:36Z [k00l]px quit (Quit: Leaving) 2017-11-09T21:28:57Z scymtym joined #sbcl 2017-11-09T21:52:58Z Jesin quit (Quit: Leaving) 2017-11-09T21:56:32Z Jesin joined #sbcl 2017-11-09T22:13:28Z salv0 quit (Remote host closed the connection) 2017-11-09T22:39:28Z Bike quit (Ping timeout: 240 seconds) 2017-11-09T22:55:07Z sjl_ quit (Ping timeout: 260 seconds) 2017-11-09T23:12:16Z Bike joined #sbcl 2017-11-09T23:13:30Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-09T23:17:28Z attila_lendvai joined #sbcl 2017-11-09T23:17:28Z attila_lendvai quit (Changing host) 2017-11-09T23:17:28Z attila_lendvai joined #sbcl 2017-11-09T23:22:32Z Bicyclidine joined #sbcl 2017-11-09T23:23:09Z rtmpdavid joined #sbcl 2017-11-09T23:51:29Z Bicyclidine quit (Ping timeout: 248 seconds) 2017-11-10T00:15:14Z cromachina joined #sbcl 2017-11-10T00:16:28Z fortitude quit (Quit: Leaving) 2017-11-10T00:57:57Z joshe joined #sbcl 2017-11-10T01:19:23Z attila_lendvai quit (Quit: Leaving.) 2017-11-10T01:40:47Z stassats quit (Ping timeout: 260 seconds) 2017-11-10T03:32:39Z milanj quit (Quit: This computer has gone to sleep) 2017-11-10T03:35:22Z Bike quit (Quit: Lost terminal) 2017-11-10T03:49:19Z milanj joined #sbcl 2017-11-10T03:50:42Z milanj quit (Client Quit) 2017-11-10T04:05:31Z Zisper joined #sbcl 2017-11-10T04:12:12Z myrkraverk quit (Ping timeout: 246 seconds) 2017-11-10T05:08:11Z myrkraverk joined #sbcl 2017-11-10T05:29:34Z oleo quit (Quit: Leaving) 2017-11-10T06:29:37Z shka_ joined #sbcl 2017-11-10T07:25:27Z scymtym quit (Ping timeout: 240 seconds) 2017-11-10T07:26:00Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-10T08:07:38Z shka_ quit (Quit: Konversation terminated!) 2017-11-10T08:26:55Z scymtym joined #sbcl 2017-11-10T08:42:36Z scymtym: lots of build failures to address 2017-11-10T09:07:11Z bkst_ quit (Ping timeout: 250 seconds) 2017-11-10T09:08:41Z bkst joined #sbcl 2017-11-10T09:17:22Z bkst_ joined #sbcl 2017-11-10T09:18:25Z bkst quit (Ping timeout: 248 seconds) 2017-11-10T09:21:13Z scymtym: both windows builds succeeded for the first time. yay, i guess 2017-11-10T09:58:29Z karswell joined #sbcl 2017-11-10T10:10:32Z joshe quit (Ping timeout: 240 seconds) 2017-11-10T10:26:57Z m00natic joined #sbcl 2017-11-10T10:58:19Z ave1 joined #sbcl 2017-11-10T11:20:40Z myrkraverk quit (Ping timeout: 268 seconds) 2017-11-10T11:32:08Z Bike joined #sbcl 2017-11-10T12:42:05Z rtmpdavid quit (Remote host closed the connection) 2017-11-10T13:05:14Z Bike quit (Ping timeout: 252 seconds) 2017-11-10T13:17:41Z Kevslinger joined #sbcl 2017-11-10T13:28:06Z Bike joined #sbcl 2017-11-10T13:42:11Z Jesin quit (Quit: Leaving) 2017-11-10T13:52:31Z foom2 joined #sbcl 2017-11-10T13:55:50Z foom quit (Ping timeout: 252 seconds) 2017-11-10T14:06:33Z oleo joined #sbcl 2017-11-10T14:12:30Z joshe joined #sbcl 2017-11-10T14:51:07Z eudoxia joined #sbcl 2017-11-10T15:10:41Z stassats joined #sbcl 2017-11-10T15:11:43Z Jesin joined #sbcl 2017-11-10T15:15:15Z Bike quit (Remote host closed the connection) 2017-11-10T15:15:31Z Bike joined #sbcl 2017-11-10T15:16:17Z DGASAU quit (Ping timeout: 260 seconds) 2017-11-10T15:19:52Z scymtym quit (Ping timeout: 240 seconds) 2017-11-10T15:26:23Z stassats quit (Remote host closed the connection) 2017-11-10T15:26:36Z stassats joined #sbcl 2017-11-10T15:32:15Z stassats quit (Ping timeout: 248 seconds) 2017-11-10T15:48:08Z DGASAU joined #sbcl 2017-11-10T16:13:52Z Zisper quit (Ping timeout: 240 seconds) 2017-11-10T16:27:27Z stassats joined #sbcl 2017-11-10T16:35:45Z DGASAU` joined #sbcl 2017-11-10T16:36:12Z stassats quit (Ping timeout: 240 seconds) 2017-11-10T16:36:34Z DGASAU quit (Remote host closed the connection) 2017-11-10T16:38:56Z rgrau joined #sbcl 2017-11-10T16:49:51Z DGASAU` quit (Ping timeout: 240 seconds) 2017-11-10T17:16:19Z DGASAU joined #sbcl 2017-11-10T17:46:02Z m00natic quit (Remote host closed the connection) 2017-11-10T17:58:28Z rpg joined #sbcl 2017-11-10T17:58:38Z fortitude joined #sbcl 2017-11-10T18:16:00Z scymtym joined #sbcl 2017-11-10T18:46:04Z shka_ joined #sbcl 2017-11-10T19:00:14Z stassats joined #sbcl 2017-11-10T19:01:41Z stassats: hurray, a new random tester bug, and it is indeed around deleted code 2017-11-10T19:01:58Z stassats: something to fix over the weekend 2017-11-10T19:06:52Z scymtym quit (Ping timeout: 268 seconds) 2017-11-10T19:09:55Z stassats: or tonight, if it's too easy 2017-11-10T19:10:20Z nyef`: ... Doesn't look like it's from the DCE phase, so it's probably not something I added. 2017-11-10T19:10:28Z stassats: it's old 2017-11-10T19:10:39Z nyef`: Okay then. 2017-11-10T19:11:11Z stassats: the usual "i didn't know things can be deleted" badness 2017-11-10T19:12:21Z stassats: surfacing now because it was delete-filter wasn't used by maybe-delete-exit for some time 2017-11-10T19:15:27Z rgrau quit (Ping timeout: 260 seconds) 2017-11-10T20:09:25Z stassats: ok, the fix is easy, just a check for :deleted functionals, it's a legitimately deleted use in another block 2017-11-10T20:09:47Z eudoxia quit (Quit: Leaving) 2017-11-10T20:10:19Z stassats: or 2017-11-10T20:10:55Z stassats: ir1-optimize excises preceding blocks, this is block follows later, maybe ir1-optimize should remove all deleted blocks 2017-11-10T20:12:38Z stassats: this is something that should've been done from the outside, but the code is already ugly and sprinkled with is-deleted checks and it's too late 2017-11-10T20:12:51Z stassats: since removing them is not feasible 2017-11-10T20:20:34Z nyef`: One of the things that I was wondering about was if there's some way to not have to deal with blocks if you're manipulating CTRANs, and vice versa. 2017-11-10T20:21:14Z stassats: why even have ctrans? 2017-11-10T20:21:24Z nyef`: Or that, sure. 2017-11-10T20:21:40Z nyef`: Just give a block a list of nodes? 2017-11-10T20:21:54Z stassats: i think they used to be merged with lvars 2017-11-10T20:22:02Z stassats: but then got split or something 2017-11-10T20:22:10Z nyef`: They were. A "CONTINUATION". 2017-11-10T20:22:33Z nyef`: But it turned out that basically every use was either control-flow or data-flow, and not both. 2017-11-10T20:23:31Z stassats: aren't ctrans just linearly chaining nodes? 2017-11-10T20:23:46Z stassats: could nodes have a next slot instead? 2017-11-10T20:24:49Z stassats: not important stuff, though 2017-11-10T20:25:20Z stassats: i think it's hard to get rid of is-deleted checks anyway 2017-11-10T20:25:22Z nyef`: Quite a bit of effort required to change it, certainly, and for dubious benefit. 2017-11-10T20:25:52Z stassats: could be reduced, but things still can be deleted underneath you, unless you are willing to tolerate (throw 'restart-optimizations-we-deleted-something) 2017-11-10T20:27:11Z stassats: oh boy, IR1-optimizations-with-transactions 2017-11-10T20:27:19Z nyef`: Now, see, that's not quite right. The problem is that most of the optimization phases iterate over some aspect of the component, and deleting stuff modifies that out from under the iteration, which is obnoxious. 2017-11-10T20:27:56Z stassats: deleting something will not commit the transaction and restart the ir1-optimize loop 2017-11-10T20:28:23Z nyef`: By "not commit", do you mean "rollback", "abandon", something like that? 2017-11-10T20:28:42Z stassats: not leave it in an inconsistent state, whatever that means 2017-11-10T20:29:49Z nyef`: Mmm. I keep getting Ideas for a new compiler. /-: 2017-11-10T20:30:50Z nyef`: And it'd basically have to BE a new compiler, because they involve fundamental changes to the way that we do things, and trying to do them in the context of Python involves a whole lot of inertia for something that really might not pan out. 2017-11-10T20:30:51Z stassats: ok, since this random-tester failure was caused by the return of delete-filter to maybe-delete-exit, and now is fixed 2017-11-10T20:31:09Z stassats: i hope to see fewer random-tester failures now 2017-11-10T20:31:15Z stassats: this time for real 2017-11-10T20:32:05Z stassats: nyef`: i think i'm sticking to slowly modifying SBCL 2017-11-10T20:32:21Z stassats: i don't think i have it in me to see through a whole new compiler/runtime 2017-11-10T20:32:30Z stassats: with sbcl i have some instant gratification 2017-11-10T20:33:01Z nyef`: That's fair. 2017-11-10T20:34:09Z stassats: and once i have a really solid understand of all the parts, and write better tools, large scale surgeries will not be out of the question 2017-11-10T20:34:34Z stassats: e.g. i've envisioned a way to track every action by the compiler 2017-11-10T20:34:42Z stassats: need to translated that into code 2017-11-10T20:36:32Z nyef`: Overall, I think that the compiler is largely good at this point. Not perfect, never perfect, but that there are far worse aspects of the whole "SBCL experience", or even "Common Lisp experience" to be worked on. 2017-11-10T20:37:26Z foom2: ahem gc 2017-11-10T20:37:42Z stassats: have a lot of ram, disable gc 2017-11-10T20:39:34Z foom2: ram's pretty expensive these days, what with the worldwide dram shortage. 2017-11-10T20:40:32Z stassats: because of all the people running without a gc 2017-11-10T20:41:27Z nyef`: GC is a festering sore for anyone who starts running into trouble with it, and basically invisible to everyone else. 2017-11-10T20:43:48Z nyef`: Debugging is another major pain, to the point where I suspect that most people actively using Common Lisp don't actually know what a good debugging experience IS. 2017-11-10T20:45:06Z foom2: Similarly to most people actively using C++ on platforms other than Windows. 2017-11-10T20:45:28Z nyef`: Right. The last decent debugging experience I had was probably using VB6. 2017-11-10T20:45:48Z foom2: People don't know how good a good debugger can be, and don't know to demand it, so nobody provides it. 2017-11-10T20:46:25Z stassats: i'm not willing to fire up VB6 to experience a good debugger 2017-11-10T20:47:01Z foom2: Modern Visual Studio is good too. 2017-11-10T20:47:17Z nyef`: I'm also trying to remember if Turbo Pascal 6 or 7 had a decent debugger. I seem to recall that it did, but that was something like two and a half decades ago. 2017-11-10T20:47:37Z stassats: what makes a good debugger, stepping? 2017-11-10T20:48:07Z nyef`: If it were just stepping, gdb would be a good debugger. 2017-11-10T20:48:18Z karswell_ joined #sbcl 2017-11-10T20:48:21Z nyef`: It can step, but it's still dreadful. 2017-11-10T20:49:20Z nyef`: It's probably one of those things that's not merely a feature-set, but a mind-set. An approach to tool design that takes actually thinking about the interactions required. 2017-11-10T20:49:28Z karswell quit (Ping timeout: 240 seconds) 2017-11-10T20:49:54Z nyef`: Common Lisp UI programming is also dreadful. 2017-11-10T20:50:57Z stassats: you mean UI programming is dreadful? 2017-11-10T20:51:06Z foom2: What does "UI progrmaming" even mean? 2017-11-10T20:51:15Z foom2: do you mean writing an ios app? android app? 2017-11-10T20:51:41Z nyef`: Even a "native" app. 2017-11-10T20:52:08Z foom2: Surely you don't mean writing a windows app or a linux x11 app, because nobody actually cares about that. :) 2017-11-10T20:52:34Z nyef`: Nobody actually cares about it because it's *dreadful* to do, so they find easier things to care about. d-: 2017-11-10T20:53:06Z stassats: i haven't had a good experience using Cocoa either 2017-11-10T20:53:40Z nyef`: The underlying UI kits are typically hard to use, and then having to bind to those from L 2017-11-10T20:54:11Z nyef`: from Lisp is painful, and the bindings suck, and then the documentation is basically "use the C/C++/ObjC/TCL/Perl documentation". 2017-11-10T20:55:00Z nyef`: (One of those is a joke, and it's not "use the TCL documentation".) 2017-11-10T20:55:29Z stassats: seven years ago i abandoned trying to use mcclim and went the Qt way, becoming the maintainer of commonqt in the process 2017-11-10T20:55:37Z nyef`: My condolences. 2017-11-10T20:55:51Z stassats: but i got things done 2017-11-10T20:56:03Z stassats: instead of, well, what can you do with mcclim? 2017-11-10T20:56:09Z nyef`: I can file bugs! 2017-11-10T20:56:29Z stassats: seven years ago there was nobody to file bugs to 2017-11-10T20:56:36Z nyef`: See? Progress! 2017-11-10T20:57:58Z nyef`: But yeah, UI stuff is painful to begin with, and adding Common Lisp over the top just makes it worse, because of all of the sharp edges, undocumented stuff, undocumented stuff, foreign dependencies that just break out from under you... 2017-11-10T20:57:59Z stassats: now commonqt needs to be rewritten and i'm not so anxious to do that 2017-11-10T20:58:07Z stassats: especially since Qt isn't really good on macos 2017-11-10T20:58:14Z nyef`: See? 2017-11-10T20:58:30Z stassats: better than mcclim (what isn't?), even with qt4 2017-11-10T20:58:57Z stassats: i still use an application done with commonqt almost daily 2017-11-10T20:59:14Z foom2: I didn't mean "from lisp", I meant at all. 2017-11-10T20:59:33Z stassats: i've tried swift+cocoa 2017-11-10T21:00:03Z stassats: swift is ok, cocoa not so much 2017-11-10T21:14:47Z dougk joined #sbcl 2017-11-10T21:16:22Z dougk: i just discovered that ABCL and SBCL allow unknown dispatch macro characters if *read-suppress* is true. i don't think that's specified behavior 2017-11-10T21:28:10Z scymtym joined #sbcl 2017-11-10T22:21:26Z Xof joined #sbcl 2017-11-10T22:24:49Z Bike quit (Ping timeout: 268 seconds) 2017-11-10T22:36:30Z rgrau joined #sbcl 2017-11-10T22:36:35Z shka_ quit (Ping timeout: 240 seconds) 2017-11-10T22:53:42Z Bike joined #sbcl 2017-11-10T23:59:07Z fortitude quit (Quit: Leaving) 2017-11-11T00:14:26Z whoman joined #sbcl 2017-11-11T00:25:29Z Jesin quit (Quit: Leaving) 2017-11-11T00:27:15Z pfdietz: dougk: reading the standard, it seems it should signal a read-error. Not sure if I tested for that. 2017-11-11T00:29:07Z adlai quit (Quit: Not all who wander are lost) 2017-11-11T00:38:34Z dougk: yes, i'll probably fix it. the example as to why it's wrong would be a macro like ${ ... } which might read the inside as string with ' and mismatched () inside. Would totally bork the reader to treat "${" as a zero-value-returning thing, which is what we do. 2017-11-11T00:48:36Z nyef`: I'd more expect to see just a $-reader macro rather than some sort of dispatch macro, but that's from having contemplated an actual use-case for it. 2017-11-11T01:04:52Z stassats quit (Ping timeout: 260 seconds) 2017-11-11T01:11:54Z dougk: only dispatch macros exhibit this bug. pick a different example if you don't like that one 2017-11-11T01:12:55Z nyef`: Sure, sure. As an example, it's fine. But as a syntax choice, I disagree. d-: 2017-11-11T01:17:29Z rgrau quit (Ping timeout: 268 seconds) 2017-11-11T03:13:53Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-11T03:38:52Z dougk quit (Ping timeout: 260 seconds) 2017-11-11T04:29:07Z Jesin joined #sbcl 2017-11-11T04:31:32Z Bike quit (Quit: Lost terminal) 2017-11-11T05:24:05Z aeth quit (Ping timeout: 240 seconds) 2017-11-11T05:25:38Z aeth joined #sbcl 2017-11-11T07:11:57Z phoe quit (Ping timeout: 240 seconds) 2017-11-11T08:21:38Z DeadTrickster_ quit (Read error: Connection reset by peer) 2017-11-11T08:28:16Z jrm quit (Quit: ciao) 2017-11-11T08:28:47Z jrm joined #sbcl 2017-11-11T09:42:50Z shka_ joined #sbcl 2017-11-11T09:45:13Z phoe joined #sbcl 2017-11-11T10:40:56Z easye quit (Read error: Connection reset by peer) 2017-11-11T10:41:20Z adlai joined #sbcl 2017-11-11T10:44:27Z minion quit (Ping timeout: 240 seconds) 2017-11-11T10:44:47Z specbot quit (Read error: No route to host) 2017-11-11T10:45:51Z minion joined #sbcl 2017-11-11T10:45:53Z specbot joined #sbcl 2017-11-11T11:16:32Z aeth quit (Ping timeout: 240 seconds) 2017-11-11T11:16:52Z aeth joined #sbcl 2017-11-11T11:20:01Z DeadTrickster joined #sbcl 2017-11-11T11:52:39Z scymtym quit (Ping timeout: 268 seconds) 2017-11-11T12:08:43Z scymtym joined #sbcl 2017-11-11T12:13:57Z DeadTrickster quit (Remote host closed the connection) 2017-11-11T12:42:02Z Bike joined #sbcl 2017-11-11T13:00:20Z rpg joined #sbcl 2017-11-11T13:49:39Z attila_lendvai joined #sbcl 2017-11-11T13:49:44Z attila_lendvai quit (Changing host) 2017-11-11T13:49:44Z attila_lendvai joined #sbcl 2017-11-11T13:53:36Z dougk joined #sbcl 2017-11-11T14:01:54Z DeadTrickster joined #sbcl 2017-11-11T14:28:12Z easye joined #sbcl 2017-11-11T14:50:17Z dougk quit (Ping timeout: 260 seconds) 2017-11-11T14:51:42Z christoph_debian quit (Ping timeout: 252 seconds) 2017-11-11T14:54:17Z christoph_debian joined #sbcl 2017-11-11T15:14:27Z dougk joined #sbcl 2017-11-11T15:56:05Z Jesin quit (Ping timeout: 240 seconds) 2017-11-11T16:07:41Z tonton quit (Ping timeout: 240 seconds) 2017-11-11T16:09:23Z Jesin joined #sbcl 2017-11-11T16:09:41Z tonton joined #sbcl 2017-11-11T16:49:05Z dougk quit (Ping timeout: 248 seconds) 2017-11-11T17:09:36Z scymtym: minion: memo for stassats: the :node/lvar :derive-type :misc.2 test still has problems on x86. search for "unexpected" in https://ci.cor-lab.org/job/sbcl-master/2614/featureset=1,label=ubuntu_trusty_32bit/consoleFull 2017-11-11T17:09:36Z minion: Remembered. I'll tell stassats when he/she/it next speaks. 2017-11-11T17:18:25Z Colleen quit (Ping timeout: 258 seconds) 2017-11-11T17:34:50Z stassats joined #sbcl 2017-11-11T17:45:33Z stassats: scymtym: shouldn't allow-warnings imply allow-style-warnings? 2017-11-11T17:45:33Z minion: stassats, memo from scymtym: the :node/lvar :derive-type :misc.2 test still has problems on x86. search for "unexpected" in https://ci.cor-lab.org/job/sbcl-master/2614/featureset=1,label=ubuntu_trusty_32bit/consoleFull 2017-11-11T17:47:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-11T18:05:40Z karswell_ quit (Read error: Connection reset by peer) 2017-11-11T18:07:40Z scymtym joined #sbcl 2017-11-11T18:31:47Z dougk joined #sbcl 2017-11-11T19:29:45Z oleo quit (Quit: Leaving) 2017-11-11T19:35:41Z oleo joined #sbcl 2017-11-11T20:24:06Z dougk quit (Read error: Connection reset by peer) 2017-11-11T20:24:34Z dougk joined #sbcl 2017-11-11T21:28:35Z Jesin quit (Quit: Leaving) 2017-11-11T21:53:12Z dougk quit (Ping timeout: 260 seconds) 2017-11-11T22:01:39Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-11T22:18:39Z rpg joined #sbcl 2017-11-11T22:19:05Z tumdum joined #sbcl 2017-11-11T22:20:57Z Intensity quit (Ping timeout: 246 seconds) 2017-11-11T22:29:40Z Intensity joined #sbcl 2017-11-11T22:37:28Z dougk joined #sbcl 2017-11-11T22:42:59Z shka_ quit (Quit: Konversation terminated!) 2017-11-11T22:58:27Z dougk quit (Ping timeout: 240 seconds) 2017-11-11T23:20:57Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-11T23:35:40Z rpg joined #sbcl 2017-11-12T01:18:24Z dougk joined #sbcl 2017-11-12T01:50:10Z |3b|`` is now known as |3b| 2017-11-12T01:55:31Z dougk quit (Ping timeout: 250 seconds) 2017-11-12T02:30:09Z dougk joined #sbcl 2017-11-12T02:30:40Z attila_lendvai quit (Read error: Connection reset by peer) 2017-11-12T02:31:45Z attila_lendvai joined #sbcl 2017-11-12T02:47:05Z attila_lendvai quit (Quit: Leaving.) 2017-11-12T03:01:39Z dougk quit (Read error: Connection reset by peer) 2017-11-12T03:01:56Z dougk joined #sbcl 2017-11-12T03:09:51Z stassats quit (Ping timeout: 248 seconds) 2017-11-12T05:16:15Z dougk quit (Ping timeout: 248 seconds) 2017-11-12T05:41:25Z Bike quit (Quit: Lost terminal) 2017-11-12T06:04:00Z angavrilov joined #sbcl 2017-11-12T06:10:00Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-12T07:11:12Z myrkraverk joined #sbcl 2017-11-12T08:23:38Z shka joined #sbcl 2017-11-12T10:19:58Z Guest85181 is now known as xristos 2017-11-12T10:20:16Z xristos quit (Changing host) 2017-11-12T10:20:16Z xristos joined #sbcl 2017-11-12T11:17:00Z aeth_ joined #sbcl 2017-11-12T11:17:32Z aeth quit (Ping timeout: 240 seconds) 2017-11-12T11:37:09Z scymtym quit (Ping timeout: 268 seconds) 2017-11-12T11:58:46Z scymtym joined #sbcl 2017-11-12T12:23:03Z Bike joined #sbcl 2017-11-12T12:38:47Z Colleen joined #sbcl 2017-11-12T12:45:36Z tumdum quit (Ping timeout: 268 seconds) 2017-11-12T13:00:22Z rpg joined #sbcl 2017-11-12T13:09:39Z whoman quit (Ping timeout: 268 seconds) 2017-11-12T13:22:16Z attila_lendvai joined #sbcl 2017-11-12T13:22:16Z attila_lendvai quit (Changing host) 2017-11-12T13:22:16Z attila_lendvai joined #sbcl 2017-11-12T13:47:22Z dougk_ quit (Ping timeout: 252 seconds) 2017-11-12T13:50:58Z Xof quit (Ping timeout: 268 seconds) 2017-11-12T13:59:32Z dougk_ joined #sbcl 2017-11-12T14:01:18Z dougk joined #sbcl 2017-11-12T14:57:41Z dougk quit (Ping timeout: 250 seconds) 2017-11-12T15:09:52Z whoman joined #sbcl 2017-11-12T15:39:27Z dougk joined #sbcl 2017-11-12T15:44:01Z dougk quit (Ping timeout: 248 seconds) 2017-11-12T15:58:27Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-12T16:40:27Z dougk joined #sbcl 2017-11-12T16:45:53Z dougk quit (Ping timeout: 248 seconds) 2017-11-12T17:00:33Z k-stz joined #sbcl 2017-11-12T17:07:45Z hydan quit (Quit: Connection closed for inactivity) 2017-11-12T17:15:25Z dougk joined #sbcl 2017-11-12T17:18:34Z dougk quit (Read error: Connection reset by peer) 2017-11-12T17:18:48Z dougk joined #sbcl 2017-11-12T17:46:07Z k-stz quit (Remote host closed the connection) 2017-11-12T17:53:52Z scymtym quit (Ping timeout: 258 seconds) 2017-11-12T18:06:57Z tumdum joined #sbcl 2017-11-12T18:06:57Z tumdum quit (Changing host) 2017-11-12T18:06:57Z tumdum joined #sbcl 2017-11-12T18:27:45Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-12T19:05:33Z dougk quit (Ping timeout: 258 seconds) 2017-11-12T19:12:06Z Jesin joined #sbcl 2017-11-12T19:30:18Z Kevslinger joined #sbcl 2017-11-12T19:48:05Z scymtym joined #sbcl 2017-11-12T19:54:05Z aeth_ quit (Ping timeout: 240 seconds) 2017-11-12T19:56:04Z aeth joined #sbcl 2017-11-12T20:26:39Z shka quit (Ping timeout: 248 seconds) 2017-11-12T20:34:09Z phoe quit (Ping timeout: 248 seconds) 2017-11-12T20:47:10Z BitPuffin|osx joined #sbcl 2017-11-12T20:52:16Z karswell_ joined #sbcl 2017-11-12T21:11:20Z angavrilov quit (Remote host closed the connection) 2017-11-12T21:33:41Z tumdum quit (Ping timeout: 240 seconds) 2017-11-12T21:35:33Z karswell_ is now known as karswell 2017-11-12T22:05:56Z dougk joined #sbcl 2017-11-12T22:36:58Z libre-man quit (Ping timeout: 255 seconds) 2017-11-12T22:38:55Z mr_yogurt joined #sbcl 2017-11-12T22:49:50Z libre-man joined #sbcl 2017-11-12T23:00:32Z stassats joined #sbcl 2017-11-12T23:00:53Z jamtho joined #sbcl 2017-11-12T23:18:04Z jamtho quit (Quit: Leaving) 2017-11-12T23:23:58Z attila_lendvai joined #sbcl 2017-11-12T23:25:39Z whoman quit (Remote host closed the connection) 2017-11-12T23:30:40Z mr_yogurt quit (Ping timeout: 260 seconds) 2017-11-12T23:31:11Z dougk quit (Ping timeout: 248 seconds) 2017-11-12T23:39:06Z dougk joined #sbcl 2017-11-13T00:22:55Z dougk quit (Ping timeout: 248 seconds) 2017-11-13T00:43:56Z dougk joined #sbcl 2017-11-13T01:28:12Z attila_lendvai quit (Quit: Leaving.) 2017-11-13T02:40:33Z stassats quit (Ping timeout: 248 seconds) 2017-11-13T04:27:54Z White_Flame quit (Ping timeout: 258 seconds) 2017-11-13T04:51:43Z dougk quit (Ping timeout: 248 seconds) 2017-11-13T04:57:56Z White_Flame joined #sbcl 2017-11-13T04:57:57Z Bike quit (Quit: Lost terminal) 2017-11-13T05:34:55Z White_Flame quit (Ping timeout: 248 seconds) 2017-11-13T05:42:47Z White_Flame joined #sbcl 2017-11-13T05:57:27Z oleo quit (Quit: Leaving) 2017-11-13T06:03:47Z angavrilov joined #sbcl 2017-11-13T06:09:59Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-13T06:22:42Z shka joined #sbcl 2017-11-13T06:24:05Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-11-13T06:41:05Z White_Flame quit (Ping timeout: 240 seconds) 2017-11-13T06:43:27Z White_Flame joined #sbcl 2017-11-13T07:29:03Z shka quit (Ping timeout: 248 seconds) 2017-11-13T07:29:03Z scymtym quit (Ping timeout: 248 seconds) 2017-11-13T08:29:43Z scymtym joined #sbcl 2017-11-13T09:29:33Z panji joined #sbcl 2017-11-13T09:35:34Z scymtym quit (Read error: Connection reset by peer) 2017-11-13T09:36:57Z scymtym joined #sbcl 2017-11-13T09:55:15Z scymtym quit (Ping timeout: 246 seconds) 2017-11-13T10:47:35Z aeth quit (Ping timeout: 240 seconds) 2017-11-13T11:20:43Z m00natic joined #sbcl 2017-11-13T11:31:50Z panji left #sbcl 2017-11-13T11:34:37Z scymtym joined #sbcl 2017-11-13T12:26:11Z DGASAU quit (Ping timeout: 240 seconds) 2017-11-13T12:43:59Z dougk joined #sbcl 2017-11-13T12:59:32Z aeth joined #sbcl 2017-11-13T13:00:24Z rpg joined #sbcl 2017-11-13T13:46:14Z Jesin quit (Quit: Leaving) 2017-11-13T14:02:50Z Bike joined #sbcl 2017-11-13T14:33:49Z dougk quit (Ping timeout: 250 seconds) 2017-11-13T14:34:29Z oleo joined #sbcl 2017-11-13T14:43:36Z sjl joined #sbcl 2017-11-13T14:56:33Z eudoxia joined #sbcl 2017-11-13T15:03:17Z cromachina quit (Read error: Connection reset by peer) 2017-11-13T15:09:14Z eudoxia quit (Quit: Leaving) 2017-11-13T15:13:25Z stassats joined #sbcl 2017-11-13T15:17:19Z Jesin joined #sbcl 2017-11-13T15:29:01Z tumdum joined #sbcl 2017-11-13T15:29:01Z tumdum quit (Changing host) 2017-11-13T15:29:01Z tumdum joined #sbcl 2017-11-13T15:36:08Z BitPuffin|osx joined #sbcl 2017-11-13T15:51:37Z dougk joined #sbcl 2017-11-13T15:53:18Z eudoxia joined #sbcl 2017-11-13T16:08:40Z dougk__ joined #sbcl 2017-11-13T16:08:43Z dougk quit (Ping timeout: 250 seconds) 2017-11-13T16:10:08Z Jesin quit (Ping timeout: 240 seconds) 2017-11-13T16:11:26Z Jesin joined #sbcl 2017-11-13T17:34:16Z stassats: (truncate (the (integer 0 0) x) (the (rational (-92) (-1)) y)) derives to NIL 2017-11-13T17:35:11Z oleo: isn't the referring to the type ? 2017-11-13T17:49:15Z dougk__ quit (Ping timeout: 250 seconds) 2017-11-13T17:50:37Z dougk joined #sbcl 2017-11-13T17:54:12Z nyef`: That seems odd at first glance. My first questions all boil down to asking what the type specifier actually means on Y, and if TRUNCATE is defined to make sense in such a situation. 2017-11-13T17:54:38Z attila_lendvai joined #sbcl 2017-11-13T17:55:25Z rgrau joined #sbcl 2017-11-13T17:56:09Z nyef`: Hrm. Some number, either a RATIO or an INTEGER, between... -92 and -1, *exclusive*. 2017-11-13T17:56:31Z m00natic quit (Remote host closed the connection) 2017-11-13T17:56:39Z stassats: i'm fixing it, don't think on it 2017-11-13T17:56:50Z nyef`: Yeah, but now I'm actually curious. 2017-11-13T17:57:03Z stassats: you'll read all about it in my fix 2017-11-13T17:57:40Z nyef`: Fair enough. And I'm not curious enough to read through the spec page for TRUNCATE beyond noticing that the divisor has to be a subtype of REAL, anyway. 2017-11-13T18:07:18Z stassats: git blame doesn't work with deleted lines 2017-11-13T18:07:23Z shka joined #sbcl 2017-11-13T18:08:22Z stassats: git log -S helps 2017-11-13T18:08:39Z stassats: 57e571d82eb271e41f3e8e9de69ad9501888d142 is the commit that broke this while trying to fix something else 2017-11-13T18:22:50Z rgrau quit (Ping timeout: 268 seconds) 2017-11-13T18:30:32Z dougk quit (Ping timeout: 252 seconds) 2017-11-13T18:33:40Z stassats: what's funny, the original test case doesn't fail without that fix 2017-11-13T18:39:51Z gendl quit 2017-11-13T18:40:21Z gendl joined #sbcl 2017-11-13T18:42:17Z fortitude joined #sbcl 2017-11-13T18:44:57Z aeth_ joined #sbcl 2017-11-13T18:46:52Z dougk joined #sbcl 2017-11-13T18:46:59Z stassats: i have to build 57e571d82eb271e41f3e8e9de69ad9501888d142^, to get to the bottom of it 2017-11-13T18:47:03Z stassats: what was it really fixing 2017-11-13T18:47:41Z aeth quit (Ping timeout: 240 seconds) 2017-11-13T18:50:16Z aeth_ is now known as aeth 2017-11-13T18:50:24Z stassats: and something is deriving garbage types, like (double-float 0 10), i.e. integer bounds 2017-11-13T18:50:51Z stassats: of course 57e571d82eb271e41f3e8e9de69ad9501888d142 doesn't build, why would it 2017-11-13T19:08:12Z nyef`: Is this during the period where non-unicode builds were broken? 2017-11-13T19:08:27Z stassats: no, it breaks the runtime 2017-11-13T19:08:41Z stassats: probably says more about linux/gcc/libc than about sbcl 2017-11-13T19:08:59Z nyef`: Mmm. 2017-11-13T19:11:02Z fiveop joined #sbcl 2017-11-13T19:12:10Z nyef`: Right, the non-unicode build fix was 425dd2dc04e5069689af53adfbef2671b7c1ca48 , which was in late 2010. 2017-11-13T19:20:18Z stassats: ok, not sure why the original fix doesn't do anything anymore 2017-11-13T19:20:39Z stassats: rolling back the old code and fixing it properly 2017-11-13T19:21:33Z dougk quit (Ping timeout: 246 seconds) 2017-11-13T19:35:35Z stassats: now to (sb-kernel:%simple-fun-type (lambda (a) (declare (type (member 0 -272413371076) a)) (ffloor a -3d0))) 2017-11-13T19:42:00Z stassats: nyef`: now you can check out what the problem was 2017-11-13T19:42:27Z christoph_debian quit (Ping timeout: 240 seconds) 2017-11-13T19:45:58Z stassats: ffloor has a derive-type, and even a transform, but it's declared inline 2017-11-13T19:46:03Z stassats: what's up with that 2017-11-13T19:47:08Z stassats: and i've already touched upon that in a795db2b2107df6757e6745ded770c9b60b2317e 2017-11-13T19:47:18Z stassats: ceiling/floor used to be the same before that 2017-11-13T19:47:45Z nyef`: Hunh. 2017-11-13T19:48:04Z nyef`: "Arithmetic type derivation is hard, let's go shopping"? 2017-11-13T19:48:22Z christoph_debian joined #sbcl 2017-11-13T19:49:34Z dougk joined #sbcl 2017-11-13T19:52:05Z stassats: if FFLOOR-QUOTIENT-BOUND-AUX is not called, then what is giving me the stupid (DOUBLE-FLOAT 90804457025 90804457025) 2017-11-13T19:57:25Z stassats: %unary-ftruncate 2017-11-13T19:57:58Z stassats: fine, but i need to either remove optimizers on FFLOOR/FTRUNCATE, or stop it from being INLINE 2017-11-13T19:59:43Z stassats: can ffloor derive a better type than the inlined code? 2017-11-13T20:01:18Z dougk__ joined #sbcl 2017-11-13T20:03:29Z dougk quit (Ping timeout: 252 seconds) 2017-11-13T20:14:51Z dougk__ quit (Ping timeout: 240 seconds) 2017-11-13T20:15:34Z eudoxia quit (Quit: Leaving) 2017-11-13T20:21:39Z dougk joined #sbcl 2017-11-13T20:23:40Z fiveop quit 2017-11-13T20:29:11Z scymtym quit (Ping timeout: 240 seconds) 2017-11-13T20:29:34Z tumdum_ joined #sbcl 2017-11-13T20:32:02Z tumdum quit (Ping timeout: 260 seconds) 2017-11-13T21:15:12Z Jesin quit (Quit: Leaving) 2017-11-13T21:24:18Z dougk__ joined #sbcl 2017-11-13T21:24:52Z dougk quit (Ping timeout: 252 seconds) 2017-11-13T21:33:52Z tumdum_ quit (Ping timeout: 240 seconds) 2017-11-13T21:35:14Z dougk__ quit (Ping timeout: 258 seconds) 2017-11-13T21:50:59Z les quit (Ping timeout: 255 seconds) 2017-11-13T21:51:00Z mjl quit (Ping timeout: 255 seconds) 2017-11-13T21:51:44Z stassats: and now i have no idea what i should be fixing with FTRUNCATE and signed zeros 2017-11-13T21:51:45Z stassats: sbcl (ftruncate -0d0) => -0.0d0, 0.0d0, ccl => 0.0d0, -0.0d0, ecl => 0.0d0, 0.0d0 2017-11-13T21:51:47Z mjl_ joined #sbcl 2017-11-13T21:51:53Z mjl_ is now known as mjl 2017-11-13T21:53:09Z les joined #sbcl 2017-11-13T21:53:34Z stassats: i don't want to deal with this at all 2017-11-13T22:06:05Z angavrilov quit (Remote host closed the connection) 2017-11-13T22:06:57Z Posterdati quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2017-11-13T22:08:04Z Posterdati joined #sbcl 2017-11-13T22:23:12Z Jesin joined #sbcl 2017-11-13T22:35:14Z bkst_ quit (Quit: leaving) 2017-11-13T22:35:32Z bkst joined #sbcl 2017-11-13T22:41:52Z Bike quit (Ping timeout: 240 seconds) 2017-11-13T22:46:10Z scymtym joined #sbcl 2017-11-13T22:52:48Z stassats quit (Ping timeout: 240 seconds) 2017-11-13T23:08:26Z adlai: that looks like the kind of bug i'd enjoy being, given nantime 2017-11-13T23:17:31Z Bike joined #sbcl 2017-11-13T23:22:31Z dougk joined #sbcl 2017-11-13T23:38:07Z sjl quit (Ping timeout: 248 seconds) 2017-11-13T23:57:22Z stassats joined #sbcl 2017-11-14T00:45:00Z sjl joined #sbcl 2017-11-14T00:59:21Z fortitude quit (Quit: Leaving) 2017-11-14T00:59:29Z Bike_ joined #sbcl 2017-11-14T01:01:43Z Bike quit (Ping timeout: 250 seconds) 2017-11-14T01:23:28Z Bike_ is now known as Bike 2017-11-14T01:25:45Z stassats: a lot of times allocating bignums is just negating most-negative-fixnum 2017-11-14T01:26:10Z stassats: if it'll be the only value, can just return (- most-negative-fixnum) instead of allocating anew 2017-11-14T01:27:03Z nyef`: How about returning (1+ most-positive-fixnum) instead, and see if anyone notices the difference? (-: 2017-11-14T01:27:37Z stassats: TNs only carry around their primitive type, a bit hard to actually accomplish this 2017-11-14T01:28:52Z stassats: using derived-type of a vop-node? 2017-11-14T01:30:19Z stassats: i've already toyed with annotating TNs with lvar-types, that's probably a more robust idea 2017-11-14T01:30:56Z nyef`: Can you ask a TN for its LVAR? 2017-11-14T01:31:05Z nyef` forgets some of the details of VMR. 2017-11-14T01:31:44Z stassats: can't 2017-11-14T01:33:05Z nyef`: Damn. 2017-11-14T01:34:08Z stassats: it's not that hard to attach it 2017-11-14T01:35:01Z stassats: i was just poking around (delay-ir1-transform :constraint), and it's bad 2017-11-14T01:35:35Z nyef`: Hacks upon hacks? 2017-11-14T01:35:47Z stassats: e.g. FLOOR has a general transform that does something general, but also specialized transforms like (floor 0 x) 2017-11-14T01:36:15Z attila_lendvai quit (Quit: Leaving.) 2017-11-14T01:36:28Z stassats: naturally, they will not trigger in the right order if there's constraint propagation to be run, or let conversion, or anything 2017-11-14T01:36:37Z stassats: "i know, i'll use (delay-ir1-transform :constraint)" 2017-11-14T01:36:45Z nyef`: I don't suppose DX got improved on while I wasn't paying attention? 2017-11-14T01:37:00Z stassats: which gives (declare (fixnum x) (fixnum y)) (values (floor x y)) with a full call to FLOOR 2017-11-14T01:37:33Z stassats: nyef`: no, besides being able to dx complex arrays 2017-11-14T01:38:45Z stassats: so, with need a mechanism which stops translating FLOOR until it's know that there's nothing to be done with its arguments 2017-11-14T01:39:05Z nyef`: ... That worries me, actually. Arrays specialized to COMPLEX? 2017-11-14T01:39:09Z stassats: naturally, transforming a call also needs a pass or two, and a pass or two with constraint-propagation 2017-11-14T01:39:29Z stassats: nyef`: no, just non simple arrays 2017-11-14T01:41:12Z nyef`: Ah, so HAIRY arrays? 2017-11-14T01:41:30Z stassats: any non displaced arrays should be dxable 2017-11-14T01:41:32Z pfdietz: Did you see the new failure I tacked on to lp1731975? 2017-11-14T01:42:22Z stassats: pfdietz: will see eventually 2017-11-14T01:42:48Z pfdietz: It crashes the lisp. Generated code for the function has three instructions. 2017-11-14T01:44:33Z pfdietz: These failures are coming from that other random testing thing in ansi-tests, which stresses typed arguments to builtin functions. Not quite as fully baked but it does find bugs. 2017-11-14T01:47:41Z stassats: something's wrong with constant folding 2017-11-14T01:47:41Z stassats: 2017-11-14T01:51:05Z stassats: well, that's not related to truncate at all 2017-11-14T01:55:09Z pfdietz: Should be a separate bug then. Shall I add it? 2017-11-14T01:55:22Z stassats: don't bother 2017-11-14T01:55:27Z pfdietz: ok 2017-11-14T01:55:42Z stassats: apparently, constant folding after deriving a type isn't cutting it 2017-11-14T01:56:44Z pfdietz: For earlier comment: I assume you are thinking of preallocating a (- most-negative-fixnum) and reusing it. 2017-11-14T01:57:11Z stassats: pfdietz: yes 2017-11-14T02:00:26Z stassats: this might still be a truncate thing, but it was exposed by my ir1-optimize-combination rearrangement 2017-11-14T02:00:49Z stassats: truncate derives some nonsense type, and it preceding constant folding makes them conflict 2017-11-14T02:02:28Z stassats: yeah, take a look at the type in (defun foo () (declare (notinline truncate)) (truncate -8595152206133 99839.96)), it's bonkers 2017-11-14T02:04:19Z stassats: floor is even more bizarre 2017-11-14T02:08:28Z nyef`: stassats: This might also be a a chance to clean up the arithmetic type derivation logic so that the non-float parts work in the cross-compiler. 2017-11-14T02:09:33Z stassats: count me out 2017-11-14T02:10:08Z stassats: but this thing, it's so far from the right answer, i don't even know how could it end up that way? 2017-11-14T02:10:33Z stassats: (floor -8595152206133 99839.96) => (VALUES (INTEGER -86089296 -86089296) (SINGLE-FLOAT 0.0 99839.96) &OPTIONAL) 2017-11-14T02:10:58Z stassats: (SINGLE-FLOAT -99839.96 0.0) for TRUNCATE 2017-11-14T02:11:23Z stassats: ;; The remainder depends only on the divisor. Try to get the ;; correct sign for the remainder if we can. 2017-11-14T02:12:02Z nyef`: ... That's clearly not true. 2017-11-14T02:12:30Z nyef`: Oh *boy* is that clearly not true. 2017-11-14T02:13:03Z nyef`: I can come up with a simple example where the type of the remainder depends on both the divisor and the dividend. 2017-11-14T02:13:16Z stassats: well, -8595152206133 99839.96 2017-11-14T02:13:33Z nyef`: While remaining within the non-negative integers. 2017-11-14T02:13:40Z nyef`: Hell, the non-negative FIXNUMs. 2017-11-14T02:14:06Z stassats: well, (floor 8595152206133 99839.96) 2017-11-14T02:14:49Z stassats: this is colossally wrong 2017-11-14T02:14:50Z nyef`: What is the type of the remainder for (floor (the bit X) 256)? 2017-11-14T02:15:30Z stassats: nyef`: (integer 0 256) is not a wrong answer 2017-11-14T02:15:38Z nyef`: True, but it's not the right answer. 2017-11-14T02:16:06Z stassats: as far as type derivation is concerned, it's ok, but for (floor 8595152206133 99839.96) it gets it totally wrong 2017-11-14T02:16:15Z stassats: that the intersection is NIL 2017-11-14T02:17:00Z nyef`: Remember that type derivation bugs might be in the type-system machinery rather than the compiler machinery. 2017-11-14T02:17:40Z stassats: it's in SB-C::FLOOR-REM-BOUND 2017-11-14T02:17:51Z stassats: it only has DIV for a parameter 2017-11-14T02:19:20Z stassats: the only comforting thing: sbcl got it from cmucl 2017-11-14T02:21:14Z nyef`: "At least *we're* not the ones who screwed this up, we can blame the previous administration"? 2017-11-14T02:21:52Z stassats: but we're the ones having to fix it 2017-11-14T02:23:10Z nyef`: True. 2017-11-14T02:23:23Z nyef`: "Not our fault, but our responsibility to fix." 2017-11-14T02:30:10Z stassats: so, the remainder can be conservatively established only with the number lower than the divisor or if it's an integer 2017-11-14T02:30:57Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-11-14T02:36:00Z stassats: floats and reminders are funny 2017-11-14T02:36:06Z stassats: (rem 8595152206133 99839.97) => -524288.0 2017-11-14T02:38:52Z stassats: (truncate 8595152206133.0 2895359/29) => 86089296 -524288.0 2017-11-14T02:39:16Z stassats: so, if there's a float anywhere the reminder cannot be derived 2017-11-14T02:39:54Z stassats: that's easy to fix 2017-11-14T02:40:42Z stassats: but it stops from being able to derive (floor unknown 123) 2017-11-14T02:41:56Z stassats: or maybe our truncate is just wrong? 2017-11-14T02:44:28Z stassats: that would be equally bad 2017-11-14T02:48:00Z stassats: (mod 8595152206133 99839.97) => -524288.0 2017-11-14T02:48:02Z stassats: "The result of mod is either zero or a real with the same sign as divisor." 2017-11-14T02:56:05Z stassats: ok, i don't know what to do here either 2017-11-14T02:59:21Z stassats: shouldn't the quotient*divisor be smaller than the dividend? 2017-11-14T03:00:45Z stassats: (* (/ 8.5951523e12 99839.0) 99839.0) => 8.5951523e12 2017-11-14T03:03:23Z stassats: this doesn't seem to be specified very well, but if we allow the floats to go haywire then type derivation suffers, has to be really conservative 2017-11-14T03:07:01Z whoman joined #sbcl 2017-11-14T03:10:33Z stassats: what about just clamping between 0 and divisor? 2017-11-14T03:11:55Z stassats: (rem 8595152206133d0 99839.96) => 56676.203125d0 2017-11-14T03:12:05Z stassats: (rem 8595152206133d0 99839.96d0) => 37544.958984375d0 2017-11-14T03:13:19Z pfdietz: What?! 2017-11-14T03:14:05Z pfdietz: Roundoff must have been a serious problem there. 2017-11-14T03:14:47Z pfdietz: Is there much practical benefit to doing type inference with floats here? 2017-11-14T03:15:00Z stassats: (float 99839.96 1d0) => 99839.9609375d0 2017-11-14T03:15:48Z stassats: pfdietz: the problem is (floor unknown rational), can't derive a good type without known that unknown has no floats 2017-11-14T03:16:00Z pfdietz: I mean, there must not have been, if it was screwed up since CMUCL. 2017-11-14T03:16:01Z stassats: so i'm thinking, maybe fix truncate instead 2017-11-14T03:16:45Z pfdietz: Or just punt. User wants good type prop, let him declare things to be integers. 2017-11-14T03:17:21Z stassats: i always want good types to be derived from bad types 2017-11-14T03:17:48Z pfdietz: that's probably going to require explicit reasoning about roundoff errors then 2017-11-14T03:22:34Z stassats: maybe, if the remainder is outside of (<= 0 x (abs divisor)) just return 0? 2017-11-14T03:26:17Z pfdietz: I think it has to satisfy the algebraic relation in the spec. 2017-11-14T03:26:59Z stassats: does (mod 8595152206133 99839.97) => -524288.0 do that? 2017-11-14T03:28:05Z sjl__ joined #sbcl 2017-11-14T03:29:23Z nyef`: Would it make sense to use integers or rationals in order to reason about float types? And, if so, could that be used to give the XC some brains about floating-point type derivation? 2017-11-14T03:30:07Z sjl quit (Ping timeout: 248 seconds) 2017-11-14T03:30:26Z pfdietz: Yes, it appears to? 2017-11-14T03:31:09Z stassats: i know it's "Notes", but it says "The result of mod is either zero or a real with the same sign as divisor." 2017-11-14T03:31:12Z stassats: clhs mod/f 2017-11-14T03:31:12Z specbot: http://www.lispworks.com/reference/HyperSpec/Body/f_mod_r.htm 2017-11-14T03:31:21Z pfdietz: That could make sense, but it would be a lot of work. What benefit do we get beyond just floating point contagion so we can say things are single-float or double-float? 2017-11-14T03:32:00Z pfdietz: Hmm. 2017-11-14T03:32:27Z sjl__ quit (Ping timeout: 240 seconds) 2017-11-14T03:32:34Z pfdietz: Yes, and FLOOR and REM are related, so the remainder should be nonnegative. 2017-11-14T03:32:53Z stassats: but Notes are just notes 2017-11-14T03:33:25Z stassats: (truncate -8595152206133 99839.96) => -86089296 -524288.0 2017-11-14T03:34:04Z pfdietz: FLOOR's definition is not in notes. 2017-11-14T03:35:18Z stassats: but it says little about remainder 2017-11-14T03:35:56Z nyef`: There's a constraint over the entire family of functions such that (= (+ (* quotient divisor) remainder) number) 2017-11-14T03:36:02Z pfdietz: It appears that REM is being computed by computing (* 99839.97), but the integer gets rounded up when converted to a single float. This makes the remainder be computed to be a negative float. 2017-11-14T03:37:40Z nyef`: Then the functions are distinguished by a further constraint on their quotient, but that has knock-on effects on the remainder. 2017-11-14T03:38:15Z stassats: ok, when do we need to give up in the type-deriver? 2017-11-14T03:38:28Z stassats: i'm ready to concede this 2017-11-14T03:39:09Z nyef`: What I'm wondering is if the sign of the zero is defined. (-: 2017-11-14T03:39:51Z stassats: only when dividend not known to be not a float and the divisor is either a float or a ratio 2017-11-14T03:39:51Z pfdietz: I would suggest giving up on ranged floats in most cases. Just make it be single-float or double-float. Is there a benefit that's worth the risk of error? 2017-11-14T03:41:19Z nyef`: ... Probably only if there's a coerce-to-rational step? 2017-11-14T03:41:52Z nyef`: Umm... or if there's a boundary condition check that can be eliminated? 2017-11-14T03:42:46Z pfdietz: I bet I could come up with tests that explode even with floating point + or *, just from bounded precision in the ranges of type specifiers. 2017-11-14T03:43:11Z nyef`: No bet. 2017-11-14T03:44:11Z nyef`: (Seriously, no bet. I don't trust floating-point at the best of times.) 2017-11-14T03:47:10Z stassats: pfdietz: a test case is always helpful 2017-11-14T03:48:14Z stassats: wait, earlier today i was looking at java and how it handles signed zeros, and it had something like IEEEremainder 2017-11-14T03:53:28Z stassats: looks like that's what MOD is doing 2017-11-14T03:53:46Z pfdietz: https://en.wikipedia.org/wiki/IEEE_754 2017-11-14T03:53:52Z stassats: or rem 2017-11-14T04:10:31Z stassats: can it still happen with whole divisors? 2017-11-14T04:11:43Z Bike quit (Quit: Lost terminal) 2017-11-14T04:12:29Z stassats: (floor 8595152206133.0 123.0) => 69879283712 524288.0; yes 2017-11-14T04:17:37Z christoph_debian quit (Ping timeout: 248 seconds) 2017-11-14T04:20:14Z christoph_debian joined #sbcl 2017-11-14T04:22:55Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T04:27:03Z angavrilov joined #sbcl 2017-11-14T04:58:46Z stassats: whatever is transforming TRUNCATE derives types too, more conservative 2017-11-14T04:58:51Z stassats: results from * and / 2017-11-14T05:04:26Z nyef`: I wonder if some of the zanyness is because CMUCL was originally a CLtL1 (possibly EARLIER) compiler? 2017-11-14T05:12:16Z nyef`: I know that, historically, there has been some zanyness from CLtL1isms in SBCL. 2017-11-14T05:19:45Z stassats: there's too much duplication for all the truncate/ftruncate/ceiling stuff 2017-11-14T05:20:07Z stassats: and where it tries to share stuff, it loses on signed zeros 2017-11-14T05:21:27Z stassats: and -0.0 is about the amount i care 2017-11-14T05:21:57Z stassats: an easy beginner project, though 2017-11-14T05:36:27Z stassats quit (Ping timeout: 240 seconds) 2017-11-14T05:42:23Z nyef`: g 2017-11-14T05:42:42Z nyef`: ... Damnit, that was supposed to be C-_, not RET. /-: 2017-11-14T06:09:59Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-14T06:17:26Z oleo quit (Quit: Leaving) 2017-11-14T08:01:56Z dougk joined #sbcl 2017-11-14T08:06:23Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T08:28:47Z shka quit (Ping timeout: 248 seconds) 2017-11-14T08:55:48Z scymtym quit (Ping timeout: 240 seconds) 2017-11-14T09:03:06Z dougk joined #sbcl 2017-11-14T09:07:11Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T09:48:45Z scymtym joined #sbcl 2017-11-14T09:57:41Z sysx1000 joined #sbcl 2017-11-14T10:18:52Z sjl joined #sbcl 2017-11-14T10:40:59Z m00natic joined #sbcl 2017-11-14T10:43:04Z scymtym quit (Read error: Connection reset by peer) 2017-11-14T10:43:23Z scymtym_ joined #sbcl 2017-11-14T11:08:48Z sjl quit (Ping timeout: 240 seconds) 2017-11-14T11:45:01Z attila_lendvai joined #sbcl 2017-11-14T12:02:54Z minion quit (Remote host closed the connection) 2017-11-14T12:05:15Z minion joined #sbcl 2017-11-14T12:14:32Z dougk joined #sbcl 2017-11-14T12:14:39Z whoman quit (Quit: Leaving) 2017-11-14T12:23:05Z dougk quit (Ping timeout: 240 seconds) 2017-11-14T12:30:56Z dougk joined #sbcl 2017-11-14T12:40:31Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T12:41:23Z dougk joined #sbcl 2017-11-14T12:43:21Z Bike joined #sbcl 2017-11-14T13:00:19Z rpg joined #sbcl 2017-11-14T13:07:35Z Bike quit (Ping timeout: 252 seconds) 2017-11-14T13:33:21Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T13:35:16Z Bike joined #sbcl 2017-11-14T13:37:52Z stassats joined #sbcl 2017-11-14T13:51:08Z dougk joined #sbcl 2017-11-14T13:53:31Z dougk quit (Read error: Connection reset by peer) 2017-11-14T13:53:48Z dougk joined #sbcl 2017-11-14T14:32:00Z attila_lendvai quit (Quit: Leaving.) 2017-11-14T14:35:56Z oleo joined #sbcl 2017-11-14T14:44:13Z Jesin quit (Quit: Leaving) 2017-11-14T14:46:05Z sjl joined #sbcl 2017-11-14T15:00:30Z Jesin joined #sbcl 2017-11-14T15:04:34Z tumdum_ joined #sbcl 2017-11-14T15:18:12Z pfdietz quit 2017-11-14T15:18:27Z dougk quit (Ping timeout: 260 seconds) 2017-11-14T15:33:55Z tumdum_ is now known as tumdum 2017-11-14T15:34:44Z tumdum quit (Changing host) 2017-11-14T15:34:44Z tumdum joined #sbcl 2017-11-14T15:35:16Z Bike: Can SBCL garbage collect code? 2017-11-14T15:35:52Z scymtym_ quit (Ping timeout: 240 seconds) 2017-11-14T15:36:10Z stassats: yes 2017-11-14T15:39:17Z Bike: does that require anything special due to write xor execute or anything? 2017-11-14T15:44:12Z dougk joined #sbcl 2017-11-14T15:45:06Z DGASAU joined #sbcl 2017-11-14T15:46:58Z pkhuong: Bike: W^X refers to the *ability* to mark a page as executable but not writable. 2017-11-14T15:48:08Z pkhuong: ah, not in OSes. 2017-11-14T15:48:29Z pkhuong: just mprotect calls. 2017-11-14T15:52:03Z Jesin quit (Quit: Leaving) 2017-11-14T15:54:56Z Bike: so sbcl just doesn't use that ability for code pages. i see. 2017-11-14T15:55:22Z Jesin joined #sbcl 2017-11-14T16:00:19Z stassats: Bike: if you're worried about W^X and GC you should be equally worried about generating code 2017-11-14T16:00:31Z stassats: (as in, not worried much) 2017-11-14T16:01:36Z Bike: ok, so it's simple. thank you. 2017-11-14T16:04:53Z nyef`: Bike: Even if the code pages *were* W^X, the GC stops the world, so there's no problem with re-marking them as W&!X to do the GC and then back to X&!W before resuming execution. 2017-11-14T16:05:40Z nyef`: ... And the actual constraint isn't W xor X, it's W nand X: You're allowed to have a page that is neither writable nor executable. 2017-11-14T16:12:22Z jdz quit (Ping timeout: 264 seconds) 2017-11-14T16:18:24Z jdz joined #sbcl 2017-11-14T16:47:14Z attila_lendvai joined #sbcl 2017-11-14T16:47:14Z attila_lendvai quit (Changing host) 2017-11-14T16:47:14Z attila_lendvai joined #sbcl 2017-11-14T17:06:31Z foom2 is now known as foom 2017-11-14T17:07:50Z foom: On some platforms, you cannot mark a page executable unless it was loaded directly from a signed binary on disk. 2017-11-14T17:08:10Z foom: But on normal platforms that's not a problem. :) 2017-11-14T17:10:38Z nyef`: Some platforms are clearly developer-hostile. 2017-11-14T17:10:53Z nyef`: Oh, wait. *MOST* platforms are developer-hostile. Nevermind. 2017-11-14T17:15:45Z sysx1000 quit (Ping timeout: 248 seconds) 2017-11-14T17:21:08Z jibanes quit (Ping timeout: 252 seconds) 2017-11-14T17:22:38Z jibanes joined #sbcl 2017-11-14T17:53:20Z scymtym joined #sbcl 2017-11-14T18:04:56Z shka joined #sbcl 2017-11-14T18:10:06Z m00natic quit (Remote host closed the connection) 2017-11-14T18:20:32Z dougk quit (Ping timeout: 240 seconds) 2017-11-14T18:30:32Z Jesin quit (Quit: Leaving) 2017-11-14T18:37:48Z sjl__ joined #sbcl 2017-11-14T18:39:31Z sjl quit (Disconnected by services) 2017-11-14T18:39:36Z sjl__ is now known as sjl 2017-11-14T19:04:55Z stassats: ok, it's not exactly my changes to the equalp transform that are wrong, but types-equal-or-intersect not comparing member types using EQUAL 2017-11-14T19:04:58Z stassats: or EQUALP 2017-11-14T19:06:13Z stassats: i need to control the choice of the predicate 2017-11-14T19:08:15Z stassats: and not just member types, different number types as well 2017-11-14T19:08:59Z stassats: i wonder where fixnum and double-float would intersect under equalp 2017-11-14T19:09:02Z stassats: NUMBER? 2017-11-14T19:10:19Z stassats: but i just need a boolean answer 2017-11-14T19:11:03Z nyef`: ... This sounds like you're now in the type-system machinery rather than the compiler, or at least on that border? 2017-11-14T19:11:35Z stassats: i can either make the EQUALP transform dumber, or make the type system smarter 2017-11-14T19:11:49Z stassats: the latter is better 2017-11-14T19:12:42Z stassats: type-intersection2 uses caches, my idea of using a special variable isn't going to cut it 2017-11-14T19:12:45Z stassats: unless i hash it as well 2017-11-14T19:14:26Z nyef`: Agreed. The former may be more expedient, but making the type system smarter tends to mean better opportunities for optimization and fewer traps going forwards. 2017-11-14T19:17:32Z stassats: i can have a second type-intersection2 2017-11-14T19:17:37Z stassats: type-intersection2-equal/p 2017-11-14T19:19:45Z stassats: what do i need to handle, MEMBER, charater-set and numbers 2017-11-14T19:20:59Z Bike quit (Read error: Connection reset by peer) 2017-11-14T19:21:11Z Bike joined #sbcl 2017-11-14T19:21:49Z stassats: and what is member-type-fp-zeroes? 2017-11-14T19:25:53Z stassats: (type-union (specifier-type '(eql -0d0)) (specifier-type '(eql 0d0))) => # 2017-11-14T19:25:54Z stassats: nice 2017-11-14T19:32:49Z fortitude joined #sbcl 2017-11-14T19:39:02Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-14T19:49:51Z rpg joined #sbcl 2017-11-14T19:52:55Z tumdum quit (Remote host closed the connection) 2017-11-14T19:54:36Z stassats: member types use hash-tables sometimes, which are EQL, and i can't decide which predicate to use 2017-11-14T19:54:43Z stassats: ahead of time 2017-11-14T20:09:56Z stassats: ugh, %type-intersection is cached as well 2017-11-14T20:11:32Z stassats: taking a step back, can i achieve what i want without modifying the whole type system 2017-11-14T20:13:10Z stassats: i guess i'll fix the bug first then do any improvements 2017-11-14T20:17:54Z stassats: dumber EQUALP it is... 2017-11-14T20:18:28Z angavrilov quit (Remote host closed the connection) 2017-11-14T20:41:53Z Jesin joined #sbcl 2017-11-14T20:57:40Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-14T21:02:49Z rpg joined #sbcl 2017-11-14T21:08:08Z dougk joined #sbcl 2017-11-14T21:21:37Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T21:28:46Z dougk joined #sbcl 2017-11-14T21:39:43Z sjl quit (Ping timeout: 248 seconds) 2017-11-14T21:56:40Z DeadTrickster_ joined #sbcl 2017-11-14T21:59:41Z DeadTrickster quit (Ping timeout: 250 seconds) 2017-11-14T22:03:01Z Jesin quit (Quit: Leaving) 2017-11-14T22:05:01Z Jesin joined #sbcl 2017-11-14T22:06:55Z dougk quit (Ping timeout: 248 seconds) 2017-11-14T22:37:47Z Bike quit (Ping timeout: 255 seconds) 2017-11-14T22:52:52Z shka quit (Ping timeout: 260 seconds) 2017-11-14T23:04:47Z stassats: thanks to pfdietz sbcl is getting worse at optimizing things 2017-11-14T23:10:04Z Shinmera: Hah 2017-11-14T23:12:22Z Bike joined #sbcl 2017-11-14T23:15:43Z nyef`: But less wrong about the optimizations that it does? 2017-11-14T23:18:42Z stassats: making types-equal-or-intersect work with equal/equalp could improve things, but that's too involved 2017-11-14T23:22:48Z dougk joined #sbcl 2017-11-14T23:33:12Z dougk quit (Read error: Connection reset by peer) 2017-11-14T23:33:31Z dougk joined #sbcl 2017-11-14T23:47:11Z DGASAU quit (Ping timeout: 240 seconds) 2017-11-14T23:55:01Z attila_lendvai quit (Quit: Leaving.) 2017-11-14T23:55:04Z attila_lendvai1 joined #sbcl 2017-11-14T23:55:04Z attila_lendvai1 is now known as attila_lendvai 2017-11-14T23:55:04Z attila_lendvai quit (Changing host) 2017-11-14T23:55:04Z attila_lendvai joined #sbcl 2017-11-15T00:04:12Z DGASAU joined #sbcl 2017-11-15T00:06:51Z stassats: for better high order function type checking i need to attach additional lvars to a cast and keep them update through substitutions 2017-11-15T00:07:01Z stassats: lvar-dependent-casts 2017-11-15T00:08:37Z cromachina joined #sbcl 2017-11-15T00:09:13Z stassats: because right now i'm only doing anything with HOF types only at validate-call-type time 2017-11-15T00:09:31Z stassats: which happens once and not everything is yet known 2017-11-15T00:11:34Z attila_lendvai quit (Quit: Leaving.) 2017-11-15T00:13:19Z stassats: but it's too late tonight to try this 2017-11-15T00:27:04Z Jesin quit (Quit: Leaving) 2017-11-15T00:28:34Z fortitude quit (Quit: Leaving) 2017-11-15T00:30:51Z dougk__ joined #sbcl 2017-11-15T00:33:57Z dougk quit (Ping timeout: 250 seconds) 2017-11-15T00:40:01Z dougk__ quit (Ping timeout: 240 seconds) 2017-11-15T00:55:51Z dougk joined #sbcl 2017-11-15T01:43:11Z dougk quit (Read error: Connection reset by peer) 2017-11-15T02:13:19Z akovalen` quit (Quit: ERC (IRC client for Emacs 25.2.1)) 2017-11-15T02:38:28Z dougk joined #sbcl 2017-11-15T02:56:05Z stassats quit (Ping timeout: 240 seconds) 2017-11-15T03:04:21Z sysx1000 joined #sbcl 2017-11-15T03:31:23Z dougk__ joined #sbcl 2017-11-15T03:34:25Z dougk quit (Ping timeout: 248 seconds) 2017-11-15T03:48:49Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2017-11-15T03:57:05Z sjl joined #sbcl 2017-11-15T04:01:47Z sjl quit (Ping timeout: 255 seconds) 2017-11-15T04:24:23Z pfdietz joined #sbcl 2017-11-15T04:31:01Z Bike quit (Quit: Lost terminal) 2017-11-15T05:32:57Z dougk__ quit (Ping timeout: 250 seconds) 2017-11-15T05:36:20Z sjl joined #sbcl 2017-11-15T05:40:49Z sjl quit (Ping timeout: 248 seconds) 2017-11-15T06:20:13Z angavrilov joined #sbcl 2017-11-15T06:36:34Z shka joined #sbcl 2017-11-15T06:37:39Z jack_rabbit quit (Ping timeout: 246 seconds) 2017-11-15T06:53:32Z jack_rabbit joined #sbcl 2017-11-15T06:59:20Z oleo quit (Quit: Leaving) 2017-11-15T07:03:07Z sysx1000 quit (Quit: ы) 2017-11-15T07:25:48Z sjl joined #sbcl 2017-11-15T07:28:47Z scymtym quit (Ping timeout: 255 seconds) 2017-11-15T07:30:09Z sjl quit (Ping timeout: 248 seconds) 2017-11-15T07:59:26Z White_Flame quit (Remote host closed the connection) 2017-11-15T08:02:41Z White_Flame joined #sbcl 2017-11-15T08:03:37Z pfdietz quit 2017-11-15T08:21:18Z scymtym joined #sbcl 2017-11-15T09:21:05Z AndreasO joined #sbcl 2017-11-15T09:23:32Z AndreasO quit (Client Quit) 2017-11-15T10:01:50Z m00natic joined #sbcl 2017-11-15T11:44:40Z Bike joined #sbcl 2017-11-15T12:00:52Z Bike quit (Ping timeout: 240 seconds) 2017-11-15T12:12:55Z Bike joined #sbcl 2017-11-15T12:19:58Z Bicyclidine joined #sbcl 2017-11-15T12:23:35Z Bike quit (Remote host closed the connection) 2017-11-15T12:24:11Z Bicyclidine is now known as Bike 2017-11-15T13:09:26Z Bike quit (Ping timeout: 255 seconds) 2017-11-15T13:12:07Z dougk joined #sbcl 2017-11-15T13:14:56Z dougk quit (Read error: Connection reset by peer) 2017-11-15T13:15:11Z dougk joined #sbcl 2017-11-15T13:17:11Z eudoxia joined #sbcl 2017-11-15T13:19:51Z stassats joined #sbcl 2017-11-15T13:43:19Z dougk quit (Ping timeout: 268 seconds) 2017-11-15T13:52:36Z Bike joined #sbcl 2017-11-15T14:44:54Z oleo joined #sbcl 2017-11-15T14:56:43Z sjl joined #sbcl 2017-11-15T15:04:57Z scymtym quit (Ping timeout: 250 seconds) 2017-11-15T15:06:47Z cromachina quit (Read error: Connection reset by peer) 2017-11-15T15:09:49Z dougk joined #sbcl 2017-11-15T16:05:30Z scymtym joined #sbcl 2017-11-15T16:11:47Z Jesin joined #sbcl 2017-11-15T16:44:54Z edgar-rft quit (Quit: edgar-rft) 2017-11-15T16:59:36Z dougk quit (Ping timeout: 258 seconds) 2017-11-15T17:00:25Z fortitude joined #sbcl 2017-11-15T17:03:18Z stassats: scymtym: will you update to asdf 3.3.1? 2017-11-15T17:04:28Z scymtym: stassats: i haven't thought about it. would that solve a particular problem? 2017-11-15T17:05:05Z stassats: it solves something 2017-11-15T17:05:11Z Shinmera: It apparently solves an issue with UIOP version mismatching from QL. 2017-11-15T17:05:38Z Shinmera: Though I think that's more on the side of QL needing UIOP 3.3.1, than SBCL needing to ship ASDF 3.3.1 2017-11-15T17:05:47Z Shinmera: *QL needing to ship 2017-11-15T17:06:17Z scymtym: i thought the UIOP thing wasn't a problem after all unless ASDF is old but i have lost track 2017-11-15T17:06:53Z scymtym: i can update to 3.3.1 if there are benefits. the update script should work fine now 2017-11-15T17:07:01Z dougk joined #sbcl 2017-11-15T17:07:08Z stassats: better update now than wait until 3.4 with a new dose of backwards incompatibility 2017-11-15T17:07:58Z scymtym: ok, trying it now 2017-11-15T17:08:02Z stassats: and asdf isn't really tested until sbcl releases a new bundled version 2017-11-15T17:08:13Z stassats: so, expect to see problems after the release 2017-11-15T17:08:28Z stassats: better to reduce the amount of support requests by updating to 3.3.1 2017-11-15T17:11:26Z scymtym: the diff between 3.3.0.1 and 3.3.1 is quite small. basically one change and then a bunch of whitespace normalization 2017-11-15T17:13:27Z stassats: https://bintray.com/homebrew/bottles/sbcl/view#statistics presents interesting stats 2017-11-15T17:14:41Z stassats: trying to determine, how many people are downloading sbcl 2017-11-15T17:14:47Z stassats: plus the stats from https://sourceforge.net/projects/sbcl/files/sbcl/ 2017-11-15T17:15:23Z stassats: https://qa.debian.org/popcon-graph.php?packages=sbcl 2017-11-15T17:17:17Z stassats: also https://github.com/sbcl/sbcl/graphs/traffic 2017-11-15T17:18:38Z stassats: not a lot 2017-11-15T17:21:43Z scymtym: update is done. let's see what breaks 2017-11-15T17:36:12Z dougk quit (Ping timeout: 240 seconds) 2017-11-15T17:39:09Z stassats quit (Ping timeout: 246 seconds) 2017-11-15T18:01:02Z m00natic quit (Remote host closed the connection) 2017-11-15T18:11:04Z dougk joined #sbcl 2017-11-15T18:44:38Z easye quit (Killed (Sigyn (Spam is off topic on freenode.))) 2017-11-15T18:44:39Z minion quit (K-Lined) 2017-11-15T18:44:39Z specbot quit (K-Lined) 2017-11-15T18:49:11Z dougk quit (Ping timeout: 255 seconds) 2017-11-15T18:50:54Z dougk joined #sbcl 2017-11-15T19:05:11Z dougk quit (Ping timeout: 240 seconds) 2017-11-15T19:14:45Z dougk joined #sbcl 2017-11-15T19:29:35Z easiestE joined #sbcl 2017-11-15T19:44:10Z edgar-rft joined #sbcl 2017-11-15T19:49:43Z easiestE quit (Remote host closed the connection) 2017-11-15T19:49:58Z easiestE joined #sbcl 2017-11-15T19:58:18Z BitPuffin|osx joined #sbcl 2017-11-15T20:04:47Z dougk quit (Ping timeout: 255 seconds) 2017-11-15T20:28:11Z scymtym quit (Ping timeout: 255 seconds) 2017-11-15T20:29:43Z attila_lendvai joined #sbcl 2017-11-15T20:29:43Z attila_lendvai quit (Changing host) 2017-11-15T20:29:43Z attila_lendvai joined #sbcl 2017-11-15T20:34:55Z eudoxia quit (Quit: Leaving) 2017-11-15T20:41:31Z dougk joined #sbcl 2017-11-15T20:58:30Z stylewarning: is there a supported declaration for tail call elimination? I think it's in general speed > debug or space > debug, but can I be more targeted than that? 2017-11-15T21:07:37Z stassats joined #sbcl 2017-11-15T21:08:11Z stassats quit (Client Quit) 2017-11-15T21:08:30Z stassats joined #sbcl 2017-11-15T21:08:44Z stassats: stylewarning: you want to disable TCO? 2017-11-15T21:09:01Z stylewarning: I want to enable TCO for a collection of local functions 2017-11-15T21:09:18Z stassats: you can't not enable TCO, so, just do nothing 2017-11-15T21:09:21Z stylewarning: but I also want to make sure other optimization qualities are taken into account (if possible) 2017-11-15T21:09:43Z stylewarning: i see 2017-11-15T21:10:10Z stassats: there's no call sequence for non tail tail calls 2017-11-15T21:10:27Z stassats: and it would be really bad, because of the way the return values are passed on the stack 2017-11-15T21:11:02Z stassats: so, no way to disable or enable it, as long as it's a tail call 2017-11-15T21:11:19Z stassats: high debug disables TCO cause it actually makes the calls non-tail 2017-11-15T21:13:10Z stylewarning: I see, interesting, thanks for the info 2017-11-15T21:13:17Z White_Flame: I wrote this for some old code, to keep TCO alive when debug is high: (:safe `(declaim (optimize (speed 0) (safety 3) (debug 3) #+sbcl (sb-c::merge-tail-calls 3)))) 2017-11-15T21:13:22Z White_Flame: not sure if it's still applicable 2017-11-15T21:13:31Z stassats: there's no merge-tail-calls anymore 2017-11-15T21:13:39Z White_Flame: good to know 2017-11-15T21:13:53Z stassats: SB-C::INSERT-DEBUG-CATCH is the thing that inhibits tco 2017-11-15T21:14:26Z stassats: but DEBUG 2 is probably good enough for general code 2017-11-15T21:14:43Z White_Flame: hmm, probably will hit stack overflows when trying to debug then. I'll note to drop down to debug 2 in the codebase 2017-11-15T21:15:28Z stassats: i always run with debug 2, not a big performance drop, better debugging 2017-11-15T21:16:02Z White_Flame: we're quite often CPU bound (and/or memory bandwidth bound, need to test), so I tend to go overboard with declarations 2017-11-15T21:17:19Z stassats: but even debug 1 is less anemic these days 2017-11-15T21:17:28Z angavrilov quit (Remote host closed the connection) 2017-11-15T21:17:40Z stassats: i don't quite remember how i shifted the debug levels 2017-11-15T21:18:21Z stassats: a lot of the debug stuff doesn't actually affect the code produced, but the debug info 2017-11-15T21:19:25Z White_Flame: nifty 2017-11-15T21:19:55Z scymtym joined #sbcl 2017-11-15T21:20:00Z stassats: found 8fc1db576d73eaa485a13db00a6ef8623a5ee1af 2017-11-15T21:20:28Z stassats: the 7MB figure is no longer true, it's much more compact now 2017-11-15T21:26:02Z stassats quit (Read error: No route to host) 2017-11-15T21:29:50Z dougk quit (Ping timeout: 255 seconds) 2017-11-15T21:35:27Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2017-11-15T21:46:09Z easiestE quit (Ping timeout: 248 seconds) 2017-11-15T21:47:28Z easiestE joined #sbcl 2017-11-15T22:04:39Z X-Scale joined #sbcl 2017-11-15T22:05:13Z nyef`: White_Flame: I don't suppose there's an 8051 mode to WFDis, is there? 2017-11-15T22:05:42Z White_Flame: not yet 2017-11-15T22:06:03Z nyef`: Okay, thanks. 2017-11-15T22:06:07Z White_Flame: (probably wrong channel, also ;) ) 2017-11-15T22:06:38Z nyef`: Yeah, yeah. But AFAICT, we're not in any other channels in common. 2017-11-15T22:07:05Z easiestE quit (Ping timeout: 240 seconds) 2017-11-15T22:09:44Z Bike quit (Ping timeout: 260 seconds) 2017-11-15T22:14:13Z easiestE joined #sbcl 2017-11-15T22:16:53Z dougk joined #sbcl 2017-11-15T22:41:40Z easiestE quit (Ping timeout: 268 seconds) 2017-11-15T22:44:26Z milanj joined #sbcl 2017-11-15T22:45:45Z stassats joined #sbcl 2017-11-15T22:48:16Z easiestE joined #sbcl 2017-11-15T22:59:10Z sjl quit (Ping timeout: 264 seconds) 2017-11-15T23:11:27Z stassats quit (Ping timeout: 248 seconds) 2017-11-15T23:13:45Z dougk quit (Ping timeout: 250 seconds) 2017-11-15T23:21:53Z easiestE quit (Ping timeout: 255 seconds) 2017-11-15T23:26:08Z dougk joined #sbcl 2017-11-15T23:32:17Z shka quit (Ping timeout: 248 seconds) 2017-11-16T00:07:08Z Jesin quit (Quit: Leaving) 2017-11-16T00:11:41Z libre-man quit (Quit: WeeChat 1.8) 2017-11-16T00:12:02Z libre-man joined #sbcl 2017-11-16T00:17:53Z stassats joined #sbcl 2017-11-16T00:18:44Z libre-man quit (Quit: WeeChat 1.8) 2017-11-16T00:18:48Z stassats: adding a function-designator type, so that i can have (function-designator (t) (values t t)) 2017-11-16T00:19:05Z libre-man joined #sbcl 2017-11-16T00:19:09Z stassats: also halfway through adding dependent-casts 2017-11-16T00:19:15Z libre-man quit (Client Quit) 2017-11-16T00:19:23Z stassats: combining both together i can get rid of my old hack for checking HOF arguments 2017-11-16T00:22:21Z libre-man joined #sbcl 2017-11-16T00:22:46Z cromachina joined #sbcl 2017-11-16T00:28:25Z stassats: dispensing with another hack, i get worse error messages 2017-11-16T00:28:31Z stassats: (handler-bind ((error (lambda ())))) => The function (FLET "H0" :IN FOO) is called by HANDLER-BIND with one argument, but wants exactly zero. 2017-11-16T00:29:03Z stassats: becomes Derived type of (FLET "H0" :IN FOO) is (FUNCTION NIL (VALUES NULL &OPTIONAL)), conflicting with its asserted type (SB-KERNEL:FUNCTION-DESIGNATOR (T) *). 2017-11-16T00:30:51Z stassats: but i have a way around that, casts can have context, so i can just do (the* ((sb-kernel:function-designator (t) *) :context handler-bind) function) 2017-11-16T00:31:01Z stassats: and then report on it appropriately 2017-11-16T00:31:08Z libre-man quit (Quit: WeeChat 1.8) 2017-11-16T00:31:27Z libre-man joined #sbcl 2017-11-16T00:31:56Z dougk quit (Ping timeout: 258 seconds) 2017-11-16T00:32:12Z libre-man quit (Client Quit) 2017-11-16T00:32:37Z libre-man joined #sbcl 2017-11-16T00:32:49Z libre-man quit (Client Quit) 2017-11-16T00:33:07Z libre-man joined #sbcl 2017-11-16T00:33:12Z libre-man quit (Client Quit) 2017-11-16T00:33:31Z libre-man joined #sbcl 2017-11-16T00:34:38Z stassats: but now i can get conflicts for (handler-bind ((error #'evenp))) 2017-11-16T00:37:47Z dougk joined #sbcl 2017-11-16T00:55:38Z fortitude quit (Quit: Leaving) 2017-11-16T00:58:37Z dougk quit (Ping timeout: 250 seconds) 2017-11-16T01:00:46Z dougk joined #sbcl 2017-11-16T01:15:06Z Bike joined #sbcl 2017-11-16T01:19:29Z Ionic_ joined #sbcl 2017-11-16T01:21:47Z Ionic_ is now known as 32NABA83T 2017-11-16T01:21:47Z Ionic_ joined #sbcl 2017-11-16T01:21:47Z Ionic_ quit (Client Quit) 2017-11-16T01:21:49Z dougk quit (Ping timeout: 250 seconds) 2017-11-16T01:21:49Z Ionic quit (Disconnected by services) 2017-11-16T01:22:10Z 32NABA83T is now known as Ionic 2017-11-16T01:22:45Z stassats quit (*.net *.split) 2017-11-16T01:22:46Z DeadTrickster_ quit (*.net *.split) 2017-11-16T01:22:46Z ym quit (*.net *.split) 2017-11-16T01:22:47Z MetaYan quit (*.net *.split) 2017-11-16T01:22:48Z irsol quit (*.net *.split) 2017-11-16T01:28:15Z stassats joined #sbcl 2017-11-16T01:28:15Z DeadTrickster_ joined #sbcl 2017-11-16T01:28:15Z ym joined #sbcl 2017-11-16T01:28:15Z MetaYan joined #sbcl 2017-11-16T01:28:15Z irsol joined #sbcl 2017-11-16T01:39:05Z nyef`` joined #sbcl 2017-11-16T01:40:27Z nyef` quit (Ping timeout: 240 seconds) 2017-11-16T01:41:29Z dougk joined #sbcl 2017-11-16T02:16:21Z stassats: it's so nice just to write compiler code instead of snorkeling in the guts of the compiler trying to figure out where it goes wrong 2017-11-16T02:19:33Z pfdietz joined #sbcl 2017-11-16T02:21:51Z pfdietz: Want to try this technique for compiler testing. https://arxiv.org/abs/1610.03148 2017-11-16T02:23:37Z stassats: you do that, and i'll keep the bugs coming 2017-11-16T02:24:51Z dougk quit (Ping timeout: 250 seconds) 2017-11-16T02:25:08Z pfdietz: Each technique, when applied, finds a set of bugs, then stops working (except as new bugs it can find are added). 2017-11-16T02:25:27Z pfdietz: Last time I was running these was years ago, so bugs have grown since then. 2017-11-16T02:25:45Z pfdietz: (Or have been exposed by other changes.) 2017-11-16T02:26:24Z attila_lendvai quit (Quit: Leaving.) 2017-11-16T02:26:40Z dougk joined #sbcl 2017-11-16T02:29:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-16T02:35:26Z stassats joined #sbcl 2017-11-16T02:36:15Z White_Flame quit (Ping timeout: 248 seconds) 2017-11-16T02:45:39Z dougk quit (Ping timeout: 250 seconds) 2017-11-16T03:03:27Z stassats quit (Ping timeout: 240 seconds) 2017-11-16T03:15:55Z White_Flame joined #sbcl 2017-11-16T03:20:40Z milanj quit (Quit: This computer has gone to sleep) 2017-11-16T03:46:15Z Bike quit (Quit: Lost terminal) 2017-11-16T03:46:57Z DeadTrickster__ joined #sbcl 2017-11-16T03:50:05Z DeadTrickster_ quit (Ping timeout: 240 seconds) 2017-11-16T04:31:58Z dougk joined #sbcl 2017-11-16T05:10:11Z dougk quit (Ping timeout: 255 seconds) 2017-11-16T06:11:31Z cromachina quit (Read error: Connection reset by peer) 2017-11-16T06:22:39Z cromachina joined #sbcl 2017-11-16T06:25:01Z milanj joined #sbcl 2017-11-16T06:29:50Z shka joined #sbcl 2017-11-16T06:31:32Z oleo quit (Quit: Leaving) 2017-11-16T07:33:29Z scymtym quit (Remote host closed the connection) 2017-11-16T07:54:41Z shka quit (Ping timeout: 248 seconds) 2017-11-16T08:42:26Z milanj quit (Quit: This computer has gone to sleep) 2017-11-16T09:07:14Z scymtym joined #sbcl 2017-11-16T09:12:03Z milanj joined #sbcl 2017-11-16T09:49:38Z sjl joined #sbcl 2017-11-16T09:50:41Z karswell_ joined #sbcl 2017-11-16T09:52:31Z karswell quit (Ping timeout: 248 seconds) 2017-11-16T09:54:41Z sjl quit (Ping timeout: 248 seconds) 2017-11-16T10:53:40Z m00natic joined #sbcl 2017-11-16T10:57:49Z milanj quit (Read error: Connection reset by peer) 2017-11-16T10:58:38Z milanj joined #sbcl 2017-11-16T11:05:52Z hydan joined #sbcl 2017-11-16T11:16:36Z angavrilov joined #sbcl 2017-11-16T11:28:50Z attila_lendvai joined #sbcl 2017-11-16T11:33:24Z stassats joined #sbcl 2017-11-16T12:03:43Z Bike joined #sbcl 2017-11-16T12:34:07Z scymtym quit (Ping timeout: 250 seconds) 2017-11-16T12:37:32Z scymtym joined #sbcl 2017-11-16T12:50:28Z milanj quit (Quit: This computer has gone to sleep) 2017-11-16T13:04:48Z scymtym quit (Ping timeout: 258 seconds) 2017-11-16T13:06:51Z Bike quit (Ping timeout: 268 seconds) 2017-11-16T13:35:36Z Bike joined #sbcl 2017-11-16T14:02:59Z dougk joined #sbcl 2017-11-16T14:15:35Z dougk quit (Ping timeout: 255 seconds) 2017-11-16T14:28:40Z dougk joined #sbcl 2017-11-16T14:30:02Z oleo joined #sbcl 2017-11-16T14:31:26Z DeadTrickster_ joined #sbcl 2017-11-16T14:34:39Z DeadTrickster__ quit (Ping timeout: 248 seconds) 2017-11-16T14:43:38Z cromachina quit (Read error: Connection reset by peer) 2017-11-16T14:53:53Z dougk quit (Ping timeout: 248 seconds) 2017-11-16T14:56:08Z milanj joined #sbcl 2017-11-16T14:57:20Z sjl joined #sbcl 2017-11-16T15:10:24Z DeadTrickster__ joined #sbcl 2017-11-16T15:11:12Z joshe quit (Ping timeout: 240 seconds) 2017-11-16T15:11:29Z joshe joined #sbcl 2017-11-16T15:11:33Z sjl quit (Read error: Connection reset by peer) 2017-11-16T15:12:07Z sjl joined #sbcl 2017-11-16T15:13:21Z DeadTrickster_ quit (Ping timeout: 240 seconds) 2017-11-16T15:25:34Z joshe quit (Ping timeout: 264 seconds) 2017-11-16T15:26:55Z hydan quit (Ping timeout: 260 seconds) 2017-11-16T15:42:11Z whoman joined #sbcl 2017-11-16T15:53:44Z specbot joined #sbcl 2017-11-16T15:54:09Z minion joined #sbcl 2017-11-16T16:00:01Z eudoxia joined #sbcl 2017-11-16T16:51:28Z Jesin joined #sbcl 2017-11-16T17:09:22Z scymtym joined #sbcl 2017-11-16T17:18:56Z shka joined #sbcl 2017-11-16T17:26:51Z sjl__ joined #sbcl 2017-11-16T17:27:12Z sjl quit (Ping timeout: 240 seconds) 2017-11-16T17:46:43Z m00natic quit (Remote host closed the connection) 2017-11-16T17:54:07Z attila_lendvai quit (Quit: Leaving.) 2017-11-16T17:57:44Z fortitude joined #sbcl 2017-11-16T18:00:59Z fortitude: is alloc_overflow_ecx related to an out-of-memory condition, or is it part of the normal allocation flow? 2017-11-16T18:01:29Z stassats: nothing to do with out-of-memory 2017-11-16T18:03:53Z nyef``: IIRC, it's normal flow for when the current allocation region is insufficient to handle the allocation, and so either a "large object" needs to be allocated or a new allocation region needs to be set up. 2017-11-16T18:04:03Z fortitude: I'm getting out of my depth here, but does the safepoint mechanism rely on threads being in an alertable wait state on windows? 2017-11-16T18:04:12Z stassats: the better question, why are you still using 32-bit sbcl? 2017-11-16T18:04:46Z stassats: fortitude: nobody knows what safepoints rely on windows, that's why they're broken 2017-11-16T18:05:07Z fortitude: stassats: well, that might certainly explain a few things 2017-11-16T18:05:22Z nyef`` has reasons for using 32-bit SBCL. They are HPPA, SPARC, PPC, MIPS, MIPS again, MIPS yet again... 2017-11-16T18:05:58Z fortitude: aside from more memory space and a larger register set, does 64-bit sbcl differ significantly from 32-bit? 2017-11-16T18:06:10Z stassats: yes 2017-11-16T18:06:26Z nyef``: Wider fixnums and immediate single-floats come to mind for starters. 2017-11-16T18:07:39Z stassats: and i like the way you are putting aside the larger register set 2017-11-16T18:08:17Z nyef``: Tell that to my HPPA, SPARC, PPC, and MIPS backends. d-: 2017-11-16T18:09:22Z fortitude: stassats: I know that's a non-trivial thing to have, but does it make a big difference architecturally (and not just perf-wise)? 2017-11-16T18:09:56Z nyef``: Is there a *semantic* difference involved in a larger register set? 2017-11-16T18:10:30Z stassats: nyef``: precise gc becomes a possibility 2017-11-16T18:10:47Z nyef``: No, it merely becomes easier. 2017-11-16T18:11:14Z stassats: ARM32 still has no threads? 2017-11-16T18:11:36Z stassats: i mean, if possibility and difficulty become essentially the same thing 2017-11-16T18:12:15Z ym quit (Remote host closed the connection) 2017-11-16T18:12:50Z nyef``: It's not alone in not having threads. And I have long had a theory about how to scare up that one extra register for the TLS block, but have never sat down to actually try it out. 2017-11-16T18:13:20Z stassats: theories are nice 2017-11-16T18:13:28Z stassats: you don't have to write a line of code for theories 2017-11-16T18:13:49Z nyef``: "The gap between theory and practice is larger in practice than it is in theory." 2017-11-16T18:14:58Z nyef``: I actually don't have a working Linux ARM system anymore. Which is annoying, because my former Linux ARM system was set up as power control for my Linux PPC system. 2017-11-16T18:16:59Z ym joined #sbcl 2017-11-16T18:22:12Z angavrilov quit (Remote host closed the connection) 2017-11-16T18:51:02Z fortitude: what is thread_in_lisp_raised used for? seems to be called by an exception handler, but I can't find where 2017-11-16T18:52:10Z stassats: do you have TAGS? 2017-11-16T18:54:46Z fortitude: I'm not sure what that is; I've got windb and the sbcl source 2017-11-16T18:55:04Z stassats: it comes from etags 2017-11-16T18:55:11Z nyef``: You could git grep for the function name? 2017-11-16T18:55:35Z nyef``: Two hits in interrupt.c, one in win32-os.c, one in thread.h, and a pile in safepoint.c, btw. 2017-11-16T18:56:25Z fortitude: nyef``: I've found the function, but the call stacks says the immediate parent is handle_exception, which doesn't look like any of those 2017-11-16T18:56:35Z fortitude: stassats: generated by running tagify.sh, right? 2017-11-16T18:56:51Z stassats: bu running make 2017-11-16T18:57:01Z stassats: or make-target-1 2017-11-16T18:57:58Z nyef``: Sounds like a tail-call is involved, then. 2017-11-16T18:58:11Z nyef``: Possibly multiple tail-calls. 2017-11-16T18:58:23Z stassats: what are you debugging? 2017-11-16T19:01:24Z easye joined #sbcl 2017-11-16T19:01:33Z fortitude: a threaded application of mine, seems to hang after a while 2017-11-16T19:01:54Z stassats: does it depend on interrupts? 2017-11-16T19:02:16Z fortitude: stassats: not that I'm aware of, but this is windows so you never know 2017-11-16T19:02:30Z stassats: timeouts? 2017-11-16T19:02:32Z fortitude: the questionable part is that it's using a named pipe through some cffi calls 2017-11-16T19:03:04Z fortitude: nope, no timeouts, just synchronous reads and some locks 2017-11-16T19:03:33Z stassats: well, good luck... 2017-11-16T19:52:42Z sjl__ is now known as sjl 2017-11-16T20:16:50Z k-stz joined #sbcl 2017-11-16T20:33:05Z fortitude: an hour later, I realize that the disassembly doesn't match the code for gc_stop_the_world() because there are /two/ of them 2017-11-16T20:38:35Z k-stz: Hey, I'm trying to read out from process memory. But when I feed some high address into it like: (file-position *process-mem-file* xffffffffff601000). I get a type error that it only accepts (SIGNED-BYTE 64), but I need (unsigned byte 64). (sbcl, on a linux) 2017-11-16T20:38:45Z k-stz: code piece: https://github.com/k-stz/cl-ptrace/blob/c6fdf5a1d4b122ac659cf9b91cec57a55730cf0a/cl-ptrace/proc-pid-dir.lisp#L137 2017-11-16T20:39:23Z eudoxia quit (Quit: Leaving) 2017-11-16T20:49:58Z stassats: don't use file-position then 2017-11-16T20:50:08Z nyef``: k-stz: Per the Linux man pages for lseek and lseek64, off_t is a signed type. You're not allowed to need (unsigned-byte 64) because it's not valid for that function. 2017-11-16T20:50:56Z nyef``: ... Ooh. Someone else messing with ptrace()? 2017-11-16T20:53:22Z foom: I'm pretty sure it will treat the signed value as an unsigned value if you use SEEK_SET. 2017-11-16T20:53:33Z foom: You just need to wraparound yourself 2017-11-16T20:53:52Z stassats: file-position doesn't accept negative arguments 2017-11-16T20:53:59Z stassats: so, either way, file-position is out 2017-11-16T20:54:42Z nyef``: Right then, at which point you might as well mmap() chunks of the address space anyway? 2017-11-16T20:54:49Z k-stz: nyef``: yes messing with ptrace().. anyone else recently? 2017-11-16T20:55:21Z nyef``: k-stz: I'm seeing timestamps in the 2008-2009 region for my attempt. 2017-11-16T20:55:33Z k-stz: haha 2017-11-16T20:55:36Z stassats: mmap is using signed offsets as well 2017-11-16T20:55:40Z foom: At which point, why are you even using /proc/pid/mem instead of process_vm_readv 2017-11-16T20:57:09Z k-stz: foom: IIRC recall some kernel guys telling me I shouldn't use those, as its not part of userspace and thus shouldn't be used outside the kernel code 2017-11-16T20:57:52Z foom: ummm, what? 2017-11-16T20:57:58Z foom: those are syscalls. 2017-11-16T20:58:05Z stassats: and /proc/pid/mem is fine with them? 2017-11-16T20:58:17Z stassats: you're way past simple user space already 2017-11-16T20:58:17Z foom: they're exactly intended for this purpose, and part of the kernel syscall abi. 2017-11-16T20:58:19Z foom: they're not going away 2017-11-16T20:59:46Z k-stz: *sigh* those are all unknown to me, thanks for the options 2017-11-16T20:59:59Z k-stz: foom: ok, im confusing it with something else then 2017-11-16T21:00:31Z nyef``: k-stz: Looks like you're a little further along than I got, FWIW. 2017-11-16T21:00:48Z nyef``: ... But it doesn't seem like you're *much* further along. 2017-11-16T21:00:54Z k-stz: nyef``: have you attempted to create copies of memory regions? 2017-11-16T21:01:20Z nyef``: That I haven't. I was largely satisfied with getting access to the register state. 2017-11-16T21:01:42Z k-stz: what where you're goals ? 2017-11-16T21:02:06Z nyef``: Every so often, I look at the idea of creating a debugger for Lisp code that runs from a separate address space. 2017-11-16T21:03:49Z k-stz: ah cool, yeah that's ptrace intended use after all. I wanted to stretch it and build a process memory hacking tool 2017-11-16T21:05:16Z nyef``: I was also working using attach rather than fork/traceme/exec. 2017-11-16T21:05:46Z nyef``: And attach doesn't require root, you can attach to processes owned by your current user id. 2017-11-16T21:07:34Z k-stz: yeah I use attach as well, I made a small youtube series if your interested, I walk through a development narative culminating in some cheat engine capability hacking games 2017-11-16T21:07:51Z k-stz: using lisp to hack the games with binding to ptrace 2017-11-16T21:07:59Z nyef``: That sounds like it could be interesting. 2017-11-16T21:08:10Z dougk joined #sbcl 2017-11-16T21:08:57Z shka quit (Ping timeout: 240 seconds) 2017-11-16T21:09:16Z k-stz: https://www.youtube.com/watch?v=PuGgCOyBMyc&index=1&list=PLBgJcoaU2hl-JnoVOzjYB5qk_PfYjPm-I feel free to leave some feedback! :) 2017-11-16T21:09:22Z k-stz: the 2nd video starts using lisp 2017-11-16T21:10:49Z attila_lendvai joined #sbcl 2017-11-16T21:10:49Z attila_lendvai quit (Changing host) 2017-11-16T21:10:49Z attila_lendvai joined #sbcl 2017-11-16T21:11:26Z nyef``: My own ptrace stuff, if you're curious, is at http://lisphacker.com/temp/unfinished-ptrace-stuff.tgz and also relevant to the whole idea is http://lisphacker.com/temp/article-drafts/object-memory-dumper.txt 2017-11-16T21:11:49Z nyef``: (Yes, heavily SBCL-specific, at least in execution.) 2017-11-16T21:15:05Z k-stz: puts a big smile on my face, thanks! 2017-11-16T21:15:12Z k-stz: really cool to see someone else work on it through common lisp 2017-11-16T21:15:43Z k-stz: thanks for the suggestion I have to note these down 2017-11-16T21:19:03Z nyef``: I sortof tried to make a point of having hooks for using different CPU types, possibly via a proxy program similar to the gdb remote debug protocol, where your debugger UI and its assorted logic runs on one machine, but the program being debugged runs on another. 2017-11-16T21:20:23Z nyef``: But also allowing different CPU types for the local machine as well. Not that I was necessarily going to implement any others, but making the point of not making it harder than it has to be to port seemed important. 2017-11-16T21:22:23Z dougk quit (Ping timeout: 252 seconds) 2017-11-16T21:23:07Z k-stz: I just hacked away, and dealt and hardcoded some parts so it only works on 64bit cpu/os now. I see that you use a (ptrace ...) in code, but no :cffi, did you create bindings to the syscall as well? 2017-11-16T21:24:17Z nyef``: lh-linuxapi/src/ptrace.lisp 2017-11-16T21:25:15Z k-stz: ah just found it ;) 2017-11-16T21:29:07Z k-stz: nyef``: I got some reading to do! If I find something useful, may I use it in my code? 2017-11-16T21:29:14Z nyef``: Feel free. 2017-11-16T21:31:01Z k-stz: thanks :) 2017-11-16T21:31:50Z dougk joined #sbcl 2017-11-16T21:33:56Z stassats: redesigning defknown format for HOF again 2017-11-16T21:34:25Z stassats: something like (:TEST-NOT (FUNCTION-DESIGNATOR ((NTH-ARG 0) (NTH-ARG 1 :SEQUENCE T :KEY :KEY)))) 2017-11-16T21:36:16Z stassats: gut the dependent function-designator casts working, just need to adjust the data format to the new scheme 2017-11-16T21:36:29Z nyef``: stassats: This is going to be useful once we have functional DX, as well, isn't it? 2017-11-16T21:36:50Z stassats: maybe 2017-11-16T21:37:11Z nyef``: Fair enough, I guess. 2017-11-16T21:37:15Z stassats: right now, i'm actually not improving any of the old behavior, just improving the implementation 2017-11-16T21:37:33Z stassats: making it more robust with room for more extension 2017-11-16T21:38:18Z stassats: (function-designator * * :dynamic-extent t) would be an easy addition to the description format 2017-11-16T21:39:11Z stassats: right now the only option is (function-designator * * :no-function-conversion t) 2017-11-16T21:39:22Z stassats: which prevents automatic 'x => #'x conversion 2017-11-16T21:41:18Z stassats: and it turns out, casts have to depend not only on LVARs, but also on LEAFs, because of let conversion 2017-11-16T21:42:12Z stassats: i'm tracking lvars using lvar-dependent-casts, but not doing that for leafs yet 2017-11-16T21:42:18Z stassats: i wonder if i really have to 2017-11-16T22:04:29Z dougk quit (Ping timeout: 255 seconds) 2017-11-16T22:07:50Z stassats: i guess this won't be ready this release cycle 2017-11-16T22:08:11Z stassats: considering i'm yet to touch restoring the human readable error messages 2017-11-16T22:10:13Z stassats: and add some value on top 2017-11-16T22:21:40Z Bike quit (Ping timeout: 260 seconds) 2017-11-16T22:26:16Z dougk joined #sbcl 2017-11-16T22:41:50Z dougk quit (Ping timeout: 255 seconds) 2017-11-16T22:42:48Z dougk joined #sbcl 2017-11-16T22:49:58Z Bike joined #sbcl 2017-11-16T23:03:13Z k-stz quit (Remote host closed the connection) 2017-11-16T23:11:27Z karswell_ quit (Read error: Connection reset by peer) 2017-11-16T23:35:49Z karlosz joined #sbcl 2017-11-16T23:37:07Z dougk quit (Ping timeout: 250 seconds) 2017-11-16T23:39:52Z attila_lendvai quit (Quit: Leaving.) 2017-11-16T23:40:04Z karlosz: stassats: for the HOF syntax, wouldn't having something akin to ml-style type variables be more general for constraining types than (NTH-ARG 1 :SEQUENCE T) 2017-11-16T23:40:37Z stassats: i know no ml 2017-11-16T23:44:02Z karlosz: as in, the type signature for remove would be remove : 'a , sequence 'b, :test-not (function ('a 'b) boolean) 2017-11-16T23:44:46Z karlosz: 'a and 'b can be anything, its just that the first argument of remove has to match the type of the first argument of the :test-not function 2017-11-16T23:45:46Z stassats: don't see how it's better 2017-11-16T23:45:50Z karlosz: giving the argument type names seems more general than describing them positionally 2017-11-16T23:46:43Z karlosz: i guess a 3rd-order function would never appear in an sbcl defknown 2017-11-16T23:47:51Z stassats: :test and :key is third-order 2017-11-16T23:47:59Z stassats: but that's it 2017-11-16T23:50:23Z stassats: 374 insertions(+), 679 deletions(-), i need to commit it quickly somewhere safe lest i lose it 2017-11-16T23:52:15Z stassats: the tedious part is over 2017-11-16T23:53:32Z karlosz: can your hof syntax reject (remove 1 '(1 (2 3)) :key #'car) at compile time? 2017-11-16T23:54:04Z stassats: lists have no type 2017-11-16T23:54:13Z stassats: if they had, yes 2017-11-16T23:54:26Z stassats: (remove 1 "abc" :key #'car) works even now 2017-11-16T23:55:10Z karlosz: right 2017-11-16T23:56:11Z stassats: nth-arg is not a new thing, it's a change from (:test (callable 2 :args (0 (sequence 1 :key 2)))) 2017-11-16T23:56:33Z karlosz: yeah, i saw that in the sources 2017-11-16T23:56:45Z stassats: to (function-designator ((nth-arg 0) (nth-arg 1 :sequence t :key :key))) 2017-11-16T23:56:57Z stassats: and function-designator is now an actual type 2017-11-16T23:57:48Z stassats: callable is so weird looking cause it grew from callable => (callable 2) to that 2017-11-16T23:58:32Z karlosz: so does typep take function-designators? 2017-11-16T23:58:47Z stassats: typep doesn't any function types 2017-11-16T23:59:01Z stassats: but nth-arg is stripped and not part of the type 2017-11-16T23:59:57Z karlosz: i guess there are no parametric types to worry about besides sequences then 2017-11-17T00:00:48Z stassats: straight arguments, elements of sequences (vectors, really) and results of :key 2017-11-17T00:01:36Z stassats: and function-designator now can specify result-types, so map-into can be checked, i haven't done that yet 2017-11-17T00:02:01Z stassats: that's the whole reason 2017-11-17T00:02:08Z dougk joined #sbcl 2017-11-17T00:02:12Z karlosz: neat 2017-11-17T00:02:14Z stassats: i have "(defun foo (z x) (map-into (the string z) #'evenp x)) no conflict" in my notes 2017-11-17T00:05:30Z stassats: and the whole thing should be more robust 2017-11-17T00:07:43Z karlosz: is it possible to produce better code, in the case that the compiler can prove for (remove 97 x :key #'char-code) that 97 can be fixnum compared to the results of char-code 2017-11-17T00:07:48Z karlosz: well, if remove can be inlined 2017-11-17T00:08:15Z stassats: if remove can be inlined, then this whole exercise is not needed 2017-11-17T00:08:53Z stassats: i was thinking about turning (remove-if (lambda (x) (eql (the char-code-limit x) 97)) y :key 'char-code) 2017-11-17T00:08:56Z stassats: or something similar 2017-11-17T00:09:51Z stassats: but even without such drastic transformations, (remove-if (lambda (x) ...) "abc") X is not known to be a character 2017-11-17T00:09:58Z stassats: so, that would be the first step 2017-11-17T00:11:37Z sjl quit (Ping timeout: 268 seconds) 2017-11-17T00:12:10Z karlosz: that would be (function-designator ((nth-arg 1)) boolean) in your new syntax? 2017-11-17T00:12:40Z karlosz: s/boolean/t 2017-11-17T00:13:23Z stassats: remove-if ((nth-arg 1 :sequence t :key key)) ... 2017-11-17T00:13:42Z stassats: the result type doesn't really matter here, it's not seen by anything 2017-11-17T00:14:26Z stassats: what could be usefaul, of boolean is actually NULL, so a note could be issued 2017-11-17T00:14:59Z stassats: or (not null) 2017-11-17T00:16:21Z karlosz: if the result were derived to be null in the case of remove-if would that would result in code deletion 2017-11-17T00:16:38Z karlosz: i guess the function might side effect 2017-11-17T00:16:40Z karlosz: so just a note 2017-11-17T00:17:29Z stassats: what i really want is for (find "abc" x) to issue a note 2017-11-17T00:17:40Z stassats: "hey, dummy, you forgot :test #'equal) 2017-11-17T00:17:56Z karlosz: right 2017-11-17T00:18:11Z karlosz: and the result of (find "abc" x) derives to nil 2017-11-17T00:18:13Z Bike_ joined #sbcl 2017-11-17T00:18:20Z stassats: even though technically it's not incorrect and might return something 2017-11-17T00:19:18Z stassats: checking if a constant is shared with anything could be possible, but macros make things harder 2017-11-17T00:19:37Z stassats: so, maybe (optimize -Wpedantic) or (optimize -Whelpful) 2017-11-17T00:19:50Z Bicyclidine joined #sbcl 2017-11-17T00:19:52Z dougk quit (Ping timeout: 240 seconds) 2017-11-17T00:20:28Z karlosz: it should be at least safe in the case of (find (cons 1 2) x) 2017-11-17T00:20:47Z stassats: but who does that? 2017-11-17T00:20:52Z stassats: "hey, dummy, stop consing" 2017-11-17T00:21:33Z stassats: i do (find "abc" x) all the time 2017-11-17T00:21:42Z karlosz: even in the case of (find (cons x y) z) 2017-11-17T00:22:07Z karlosz: instead of what (find (cons x y) z #'test #'equal) 2017-11-17T00:22:21Z karlosz: that sounds more plausible 2017-11-17T00:22:25Z Bike quit (Ping timeout: 248 seconds) 2017-11-17T00:23:01Z stassats: i'll just always start with (find-if (lambda () car-equal cdr-equal) ...) 2017-11-17T00:23:18Z stassats: no gratuitous consing 2017-11-17T00:24:05Z karlosz: true, but at least in that case it can be proven that there is no structure sharing 2017-11-17T00:24:11Z karlosz: the lambda would cons in your ex 2017-11-17T00:24:17Z karlosz: ample though, no? 2017-11-17T00:24:34Z Bicyclidine quit (Ping timeout: 268 seconds) 2017-11-17T00:24:44Z stassats: yeah, but this is low target little incentive thing to spend time on 2017-11-17T00:24:51Z stassats: karlosz: not really 2017-11-17T00:25:24Z stassats: not inherently 2017-11-17T00:25:26Z karlosz: right, its not a closure 2017-11-17T00:25:41Z stassats: but closures, these will be auto-dxed 2017-11-17T00:25:46Z stassats: one of these days 2017-11-17T00:25:57Z stassats: the auto part is trivial 2017-11-17T00:26:24Z stassats: dxing of lambda has been proven to be possible 2017-11-17T00:27:07Z karlosz: there are some compilers out there that do enough closure analysis to stack allocate 2017-11-17T00:27:37Z Bike_ is now known as Bike 2017-11-17T00:27:44Z stassats: no need to analyse anything, (function-designator ((nth-arg 1 :sequence t :key key)) * :dx t) 2017-11-17T00:28:25Z karlosz: ah, so not for user code 2017-11-17T00:28:38Z karlosz: unless you have plans to export function-designator 2017-11-17T00:29:00Z stassats: users can do (let (fun) (declare (dynamic-extent fun))) 2017-11-17T00:29:09Z stassats: you can do that right now, but with FLET 2017-11-17T00:29:32Z karlosz: right, but sbcl can't figure that out by itself without the declaration 2017-11-17T00:29:53Z stassats: which is generally not possible 2017-11-17T00:30:21Z karlosz: in general 2017-11-17T00:30:34Z stassats: now where is my (let (fun) (declare (dynamic-extent fun))) diff 2017-11-17T00:33:13Z stassats: somewhere on paste.lisp.org 2017-11-17T00:33:21Z stassats: google is hopeless 2017-11-17T00:33:26Z stassats: maybe i can grep my way to it 2017-11-17T00:36:57Z stassats: rgrep lvar-good-for did the job 2017-11-17T00:36:58Z stassats: http://paste.lisp.org/display/337807 2017-11-17T00:37:17Z stassats: need to make sens of it 2017-11-17T00:40:31Z nyef``: That way lies madness! 2017-11-17T00:42:14Z stassats: nah, looks simpler than i remember 2017-11-17T00:42:30Z stassats: and it had nine months to gestate 2017-11-17T00:42:46Z nyef``: stassats: SBCL's DX implementation, while not necessarily *wrong*, is brain-damaged. It treats DX as an LVAR property, which it really, really isn't. 2017-11-17T00:44:05Z stassats: if all you have is an lvar.. 2017-11-17T00:46:35Z nyef``: Here's a simple one: you have an LVAR where the DEST is a variable declared DX, so it's a "DX LVAR". But it has multiple USEs, and only SOME of those uses are DXable. 2017-11-17T00:47:00Z stassats: yes, we've been through that problem 2017-11-17T00:47:05Z nyef``: Because DXness is treated as an LVAR property, *none* of the USEs are permitted to stack allocate. 2017-11-17T00:47:08Z nyef``: Right. 2017-11-17T00:47:37Z nyef``: The other one is that CLAMBDAs are an odd parallel to LAMBDA-VARs, but are treated very differently. 2017-11-17T00:49:08Z stassats: but it's not often you want to dx multiple-used lvars 2017-11-17T00:50:58Z nyef``: True, it's not often that you DX LET bind the result of an IF, one branch of which causes allocation. 2017-11-17T00:51:38Z nyef``: But it's a valid enough use-case that we've actually had a bug from someone trying it. 2017-11-17T00:55:22Z fortitude quit (Quit: Leaving) 2017-11-17T01:08:05Z karlosz quit (Ping timeout: 255 seconds) 2017-11-17T01:08:58Z cromachina joined #sbcl 2017-11-17T01:46:50Z dougk joined #sbcl 2017-11-17T02:11:56Z dougk quit (Read error: Connection reset by peer) 2017-11-17T02:12:11Z dougk joined #sbcl 2017-11-17T02:20:30Z stassats quit (Ping timeout: 268 seconds) 2017-11-17T03:15:17Z milanj quit (Quit: Leaving) 2017-11-17T03:42:49Z eschatologist quit (Remote host closed the connection) 2017-11-17T03:43:27Z eschatologist joined #sbcl 2017-11-17T04:43:17Z Bike quit (Quit: Lost terminal) 2017-11-17T05:57:43Z oleo quit (Quit: Leaving) 2017-11-17T06:52:18Z shka joined #sbcl 2017-11-17T07:22:18Z bkst quit (Read error: Connection reset by peer) 2017-11-17T07:23:43Z shka quit (Ping timeout: 248 seconds) 2017-11-17T07:24:34Z shka joined #sbcl 2017-11-17T07:28:29Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-17T07:31:02Z scymtym quit (Ping timeout: 255 seconds) 2017-11-17T08:24:09Z scymtym joined #sbcl 2017-11-17T08:30:06Z Posterdati quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2017-11-17T08:31:49Z sjl joined #sbcl 2017-11-17T08:36:16Z sjl quit (Ping timeout: 258 seconds) 2017-11-17T08:37:12Z shka quit (Ping timeout: 240 seconds) 2017-11-17T09:06:04Z Posterdati joined #sbcl 2017-11-17T09:06:43Z angavrilov joined #sbcl 2017-11-17T09:26:46Z bkst joined #sbcl 2017-11-17T10:19:19Z angular_mike quit 2017-11-17T10:20:52Z angular_mike joined #sbcl 2017-11-17T11:01:51Z dougk quit (Ping timeout: 248 seconds) 2017-11-17T11:25:37Z edgar-rft quit (Quit: edgar-rft) 2017-11-17T11:54:48Z m00natic joined #sbcl 2017-11-17T12:16:23Z rgrau joined #sbcl 2017-11-17T12:26:50Z Bicyclidine joined #sbcl 2017-11-17T12:56:31Z Bicyclidine quit (Ping timeout: 248 seconds) 2017-11-17T13:21:37Z dougk joined #sbcl 2017-11-17T13:23:53Z dougk quit (Read error: Connection reset by peer) 2017-11-17T13:24:07Z dougk joined #sbcl 2017-11-17T13:34:16Z edgar-rft joined #sbcl 2017-11-17T13:37:10Z stassats joined #sbcl 2017-11-17T13:39:38Z Kevslinger joined #sbcl 2017-11-17T13:41:10Z oleo joined #sbcl 2017-11-17T13:44:02Z foom2 joined #sbcl 2017-11-17T13:46:52Z foom quit (Ping timeout: 252 seconds) 2017-11-17T13:47:27Z dougk quit (Ping timeout: 240 seconds) 2017-11-17T13:48:55Z Jesin quit (Quit: Leaving) 2017-11-17T14:10:04Z stassats: ensure-lvar-fun-form strips away casts 2017-11-17T14:10:33Z stassats: trying to come up with a way to preserve them 2017-11-17T14:13:01Z whoman quit (Ping timeout: 240 seconds) 2017-11-17T14:27:17Z whoman joined #sbcl 2017-11-17T14:47:52Z cromachina quit (Read error: Connection reset by peer) 2017-11-17T14:59:34Z eudoxia joined #sbcl 2017-11-17T15:04:50Z _rumbler31 joined #sbcl 2017-11-17T15:06:29Z dxtr joined #sbcl 2017-11-17T15:06:41Z Jesin joined #sbcl 2017-11-17T15:23:59Z dougk joined #sbcl 2017-11-17T15:25:54Z Bike joined #sbcl 2017-11-17T15:28:00Z dougk__ joined #sbcl 2017-11-17T15:28:29Z dougk quit (Ping timeout: 255 seconds) 2017-11-17T16:23:36Z fortitude joined #sbcl 2017-11-17T17:12:08Z stassats: resolved all the test failures, and now (map-into (the string z) #'evenp x) gets a conflict 2017-11-17T17:17:22Z stassats: everything appears to be working, but the warning messages regressed 2017-11-17T17:17:31Z stassats: but it's fixable, just a SMOP 2017-11-17T17:32:41Z attila_lendvai joined #sbcl 2017-11-17T17:32:41Z attila_lendvai quit (Changing host) 2017-11-17T17:32:41Z attila_lendvai joined #sbcl 2017-11-17T17:56:57Z m00natic quit (Remote host closed the connection) 2017-11-17T18:12:46Z milanj joined #sbcl 2017-11-17T18:17:28Z stassats: (let ((x "abc")) (map-into z #'evenp x)) conflicts as well 2017-11-17T18:17:40Z stassats: because it now can track X and wait for it to get propagated 2017-11-17T18:25:35Z shka joined #sbcl 2017-11-17T18:51:53Z stassats: i might actually push it, today or tomorrow 2017-11-17T19:38:41Z rgrau quit (Ping timeout: 255 seconds) 2017-11-17T19:49:29Z attila_lendvai quit (Quit: Leaving.) 2017-11-17T19:54:13Z stassats: and i need to express sequence-types as type arguments, i.e. (merge 'string ...), i guess (nth-type-arg) could work 2017-11-17T19:54:22Z stassats: or, nth-arg :type t 2017-11-17T20:10:41Z attila_lendvai joined #sbcl 2017-11-17T20:11:11Z dougk joined #sbcl 2017-11-17T20:12:29Z eudoxia quit (Quit: Leaving) 2017-11-17T20:14:14Z dougk__ quit (Ping timeout: 255 seconds) 2017-11-17T20:18:09Z dougk quit (Ping timeout: 258 seconds) 2017-11-17T20:23:46Z angavrilov quit (Remote host closed the connection) 2017-11-17T20:31:31Z scymtym quit (Ping timeout: 240 seconds) 2017-11-17T20:47:11Z stassats: (adjoin 1 z :key #'car) => The function CAR is called by ADJOIN with ((INTEGER 1 1)) but it accepts (LIST). 2017-11-17T20:47:20Z stassats: getting close 2017-11-17T20:50:38Z stassats: and "The function EVENP called by MAP-INTO returns BOOLEAN but CHARACTER is expected" 2017-11-17T20:50:45Z attila_lendvai quit (Quit: Leaving.) 2017-11-17T20:51:09Z stassats: instead of Derived type of EVENP is (FUNCTION (INTEGER) (VALUES BOOLEAN &OPTIONAL)), conflicting with its asserted type (SB-KERNEL:FUNCTION-DESIGNATOR (T) CHARACTER). 2017-11-17T20:51:57Z dougk joined #sbcl 2017-11-17T20:53:03Z stassats: testing and pushing 2017-11-17T20:56:45Z nyef``: stassats: This sounds like a very nice improvement. Well done! 2017-11-17T20:57:24Z stassats: nyef``: well, it was already kinda like that, i just broke it, now restoring it 2017-11-17T20:57:49Z stassats: but i don't think (adjoin 1 z :key #'car) itself was caught at all 2017-11-17T20:59:32Z stassats: and i save the caller name, even if MAP-INTO is transformed into something else it'll still be reported as MAP-INTO 2017-11-17T21:02:31Z stassats: previously, things were checked at assert-call-type time, i.e. only once 2017-11-17T21:02:58Z stassats: and some things during ir2 conversion, if there's anything left resembling the original call 2017-11-17T21:03:25Z stassats: now i'm saving the lvars at the assert-call-type and updating them when they are substituted 2017-11-17T21:05:10Z stassats: next, (find-if (lambda (x) (evenp x)) "abc"), doesn't conflict 2017-11-17T21:05:37Z stassats: probably not today, but i don't need to overhaul a thousand lines of code for it anymore 2017-11-17T21:17:36Z scymtym joined #sbcl 2017-11-17T21:50:24Z bkst quit (Quit: leaving) 2017-11-17T21:52:47Z tonton quit (Ping timeout: 268 seconds) 2017-11-17T21:59:04Z tonton joined #sbcl 2017-11-17T22:16:39Z Bike quit (Ping timeout: 260 seconds) 2017-11-17T22:19:32Z dougk quit (Ping timeout: 240 seconds) 2017-11-17T22:21:19Z shka quit (Ping timeout: 248 seconds) 2017-11-17T22:27:07Z k-stz joined #sbcl 2017-11-17T22:48:33Z Bike joined #sbcl 2017-11-17T22:51:17Z _rumbler31 quit (Ping timeout: 260 seconds) 2017-11-17T23:20:20Z attila_lendvai joined #sbcl 2017-11-17T23:20:20Z attila_lendvai quit (Changing host) 2017-11-17T23:20:20Z attila_lendvai joined #sbcl 2017-11-17T23:27:48Z fortitude quit (Quit: Leaving) 2017-11-17T23:43:32Z rumbler31 joined #sbcl 2017-11-17T23:48:06Z rumbler31 quit (Ping timeout: 268 seconds) 2017-11-18T00:00:36Z attila_lendvai quit (Quit: Leaving.) 2017-11-18T00:52:50Z Jesin quit (Quit: Leaving) 2017-11-18T00:57:02Z joshe joined #sbcl 2017-11-18T00:57:37Z DGASAU quit (Ping timeout: 248 seconds) 2017-11-18T00:59:50Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-18T01:09:52Z stassats: i know how to optimize (typecase x (double-float 10) (bignum 20)) to only load the widetag once 2017-11-18T01:10:24Z stassats: but i don't have an easy way to wrap some blocks in a lambda, to introduce a variable 2017-11-18T01:13:49Z stassats: i don't think i have any way, hard or easy 2017-11-18T01:15:10Z cromachina joined #sbcl 2017-11-18T01:17:27Z stassats: even better would be, widetag is loaded only once unless it has to be spilled, but that's even more complicated to detect and enact 2017-11-18T01:18:12Z stassats: anything, for that matter, like, simple-vector length 2017-11-18T01:19:00Z stassats: or even more general, CSE 2017-11-18T01:38:20Z dougk joined #sbcl 2017-11-18T01:38:51Z stylewarning: i saved an image with save-lisp-and-die, and trying to run a resulting binary, and it's complaining about the location of a core file and its inability to find it 2017-11-18T01:39:17Z stassats: it's probably not lying 2017-11-18T01:39:25Z stylewarning: but when I change the user, it works fine 2017-11-18T01:39:56Z stylewarning: the binary is set to just be executable, not R/W. Is that a problem? 2017-11-18T01:40:41Z stylewarning: When I change the file to have read permissions, it works. 2017-11-18T01:40:55Z stassats: duh 2017-11-18T01:41:15Z stylewarning: By "the file", I mean the dumped binary with the core included. 2017-11-18T01:41:26Z stylewarning: Why is that "duh"? 2017-11-18T01:44:37Z stassats: i mean, what did you really expect? 2017-11-18T01:49:55Z stylewarning: that it wouldn't complain because it's supposed to execute 2017-11-18T01:55:20Z stassats quit (Ping timeout: 255 seconds) 2017-11-18T02:31:35Z dougk__ joined #sbcl 2017-11-18T02:35:50Z dougk quit (Ping timeout: 268 seconds) 2017-11-18T02:57:12Z milanj quit (Quit: This computer has gone to sleep) 2017-11-18T02:58:10Z k-stz quit (Remote host closed the connection) 2017-11-18T03:26:31Z Kevslinger joined #sbcl 2017-11-18T03:43:40Z dougk__ quit (Ping timeout: 268 seconds) 2017-11-18T05:15:49Z milanj joined #sbcl 2017-11-18T05:26:51Z joshe quit (Ping timeout: 240 seconds) 2017-11-18T05:27:08Z joshe joined #sbcl 2017-11-18T06:16:15Z hooman joined #sbcl 2017-11-18T06:18:07Z whoman quit (Ping timeout: 248 seconds) 2017-11-18T06:34:41Z Bike quit (Quit: Lost terminal) 2017-11-18T06:48:49Z shka joined #sbcl 2017-11-18T07:37:35Z shka quit (Ping timeout: 248 seconds) 2017-11-18T08:03:26Z jack_rabbit quit (Ping timeout: 255 seconds) 2017-11-18T08:04:13Z milanj quit (Quit: This computer has gone to sleep) 2017-11-18T08:11:32Z joshe quit (Ping timeout: 255 seconds) 2017-11-18T08:11:49Z joshe joined #sbcl 2017-11-18T08:13:36Z jack_rabbit joined #sbcl 2017-11-18T10:08:28Z dougk joined #sbcl 2017-11-18T10:13:41Z dougk quit (Ping timeout: 240 seconds) 2017-11-18T10:29:21Z christoph_debian quit (Ping timeout: 248 seconds) 2017-11-18T10:31:29Z christoph_debian joined #sbcl 2017-11-18T11:10:58Z bkst joined #sbcl 2017-11-18T11:23:47Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-18T11:37:03Z scymtym quit (Ping timeout: 248 seconds) 2017-11-18T11:51:50Z scymtym joined #sbcl 2017-11-18T12:16:46Z Bike joined #sbcl 2017-11-18T12:28:05Z milanj joined #sbcl 2017-11-18T12:53:51Z attila_lendvai joined #sbcl 2017-11-18T12:53:51Z attila_lendvai quit (Changing host) 2017-11-18T12:53:51Z attila_lendvai joined #sbcl 2017-11-18T13:09:32Z stassats joined #sbcl 2017-11-18T14:22:26Z pchrist quit (Quit: leaving) 2017-11-18T14:23:09Z pchrist joined #sbcl 2017-11-18T14:24:01Z dougk joined #sbcl 2017-11-18T14:28:17Z dougk quit (Ping timeout: 248 seconds) 2017-11-18T14:29:41Z dougk joined #sbcl 2017-11-18T14:33:14Z milanj quit (Quit: This computer has gone to sleep) 2017-11-18T14:38:25Z dougk quit (Ping timeout: 248 seconds) 2017-11-18T14:38:52Z dougk joined #sbcl 2017-11-18T15:51:51Z stassats: one problem with CRLF, it makes single-byte encodings not exactly single-byte 2017-11-18T15:53:09Z nyef``: True enough, I suppose. 2017-11-18T15:54:04Z stassats: i might just implement it this weekend, maybe not efficiently, but this is getting embarrassing 2017-11-18T15:54:40Z stassats: it's the highest bug on https://bugs.launchpad.net/sbcl 2017-11-18T15:54:42Z stassats: since 2008 2017-11-18T16:04:15Z dougk quit (Ping timeout: 248 seconds) 2017-11-18T16:05:32Z dougk joined #sbcl 2017-11-18T16:19:16Z scymtym: stassats: i have been working on that on and off for some time. would you give me until tomorrow to prepare a proposal? 2017-11-18T16:19:47Z stassats: what's one day to 9 years? 2017-11-18T16:20:16Z nyef``: Approximately 1/3285. 2017-11-18T16:25:44Z nyef``: ... A closer approximation could be generated, of course. Including error bounds to cover for the variation in length of years due to leap days. Accounting for leap seconds seems a little over-the-top for granularity, though. 2017-11-18T16:47:57Z loke`: nyef``: Wolfram Alpha gareagrees with you. 2017-11-18T16:48:26Z stassats: gare what? 2017-11-18T16:48:42Z loke`: stassats: I really, really, badly spelled agreement. 2017-11-18T16:48:49Z loke`: Or, perhaps, a train station. 2017-11-18T16:48:50Z nyef``: Yeah, I'm having a hard time parsing that as well... 2017-11-18T16:49:25Z loke`: (IIRC, Gare means train station in French) 2017-11-18T16:50:11Z stassats: i've been to Gare du Nord 2017-11-18T16:50:26Z stassats: but haven't visited gare agrees yet 2017-11-18T16:50:52Z nyef``: Is Gare du Nord in Skyrim? 2017-11-18T16:51:14Z loke`: There is a Gare de Grasse near Cannes. :-) 2017-11-18T16:53:06Z nyef``: Is there a "Gare de Robe"? 2017-11-18T16:54:17Z nyef``: Okay, I'll stop. (-: 2017-11-18T16:55:26Z shka joined #sbcl 2017-11-18T17:04:42Z loke`: nyef``: There is. It's in Belgium. :-) 2017-11-18T17:04:45Z loke`: I'll stop too. :-) 2017-11-18T17:06:48Z stassats: at a train station? 2017-11-18T17:07:33Z loke`: stassats: At my bed. :-) I'm going to sleep. 2017-11-18T17:07:52Z stassats: less noisy, good choice 2017-11-18T17:07:59Z loke`: Indeed. 2017-11-18T17:08:55Z scymtym: stassats: did you see this: when cross-compiling checkgen.lisp in: DEFUN TYPE-TEST-COST: STYLE-WARNING: The function TYPE-TEST-COST is called by REDUCE with (LIST) but it accepts (CTYPE)? that seems to be based on the sequence type rather than the element type 2017-11-18T17:11:33Z scymtym: (:key (function-designator ((nth-arg 1)))) -> (:key (function-designator ((nth-arg 1 :sequence t))))? 2017-11-18T17:17:29Z nyef``: Or (elements-of (nth-arg 1)) ? 2017-11-18T17:19:48Z dougk: scymtym: thanks 2017-11-18T17:20:40Z nyef``: Basically, make it easier to guess what the intent is. ":sequence t" says to me "something special is going on, you might want to look up what that means", while "elements-of" says to me "this is a sequence, and we're going to be using its elements here". 2017-11-18T17:21:34Z nyef``: Something like that, at least. 2017-11-18T17:25:31Z stassats: scymtym: correct 2017-11-18T17:25:55Z stassats: nyef``: and you'll be in charge of parsing (elements-of (nth-arg 1)) 2017-11-18T17:26:26Z scymtym: dougk: sure. thanks again for pointing out the better way 2017-11-18T17:28:14Z scymtym is out of time for today 2017-11-18T17:28:35Z scymtym: see you later 2017-11-18T17:34:52Z scymtym quit (Ping timeout: 240 seconds) 2017-11-18T17:50:23Z dougk quit (Ping timeout: 248 seconds) 2017-11-18T17:54:16Z dougk joined #sbcl 2017-11-18T18:02:19Z nyef``: stassats: Well, I can see why you don't want to change how these argument types are represented. SYS:SRC;COMPILER;MACROS.LISP, MAKE-CALLABLE-MAP is *brutal*. 2017-11-18T18:02:28Z milanj joined #sbcl 2017-11-18T18:07:10Z nyef``: Bloody write-only code segment. /-: 2017-11-18T18:34:46Z scymtym joined #sbcl 2017-11-18T18:57:31Z Jesin joined #sbcl 2017-11-18T18:59:42Z nyef``: Well, a first attempt seems to work well enough. 2017-11-18T19:43:27Z nyef``: stassats: While I'm here, (nth-arg 0 :key key) or (key-of (nth-arg 0))? And (key-of (elements-of (nth-arg 1))), or (elements-of (nth-arg 1) :key key), or (elements-of (nth-arg 1 :key key))? 2017-11-18T19:49:47Z shka quit (Remote host closed the connection) 2017-11-18T19:50:13Z shka joined #sbcl 2017-11-18T19:52:56Z nyef``: Hrm. I might also try changing (rest-args :sequence t) to (elements-of (each-rest-arg))? 2017-11-18T20:26:20Z Jesin quit (Quit: Leaving) 2017-11-18T20:41:07Z Jesin joined #sbcl 2017-11-18T21:14:26Z stassats: i don't see why you need to change it 2017-11-18T21:16:37Z stassats: the mapper expects the options in the form of a plist 2017-11-18T21:18:18Z stassats: change for the sake of change is not worth it 2017-11-18T21:19:00Z nyef``: http://repo.or.cz/sbcl/nyef.git/shortlog/refs/heads/defknown-syntax 2017-11-18T21:19:25Z nyef``: The top two commits. 2017-11-18T21:20:11Z stassats: i don't see a point of that exercise 2017-11-18T21:21:36Z nyef``: The point is to have more readable surface syntax for higher-order functions in DEFKNOWN. 2017-11-18T21:21:56Z stassats: looks already readable to me 2017-11-18T21:31:02Z nyef``: I think that it's an improvement, but it's possibly a marginal one. I don't know that I'll push this upstream at this point. 2017-11-18T21:52:37Z shka quit (Ping timeout: 260 seconds) 2017-11-18T22:23:39Z whoman joined #sbcl 2017-11-18T22:25:52Z hooman quit (Ping timeout: 260 seconds) 2017-11-18T22:29:15Z stassats: (find x "l" :test (complement #'=)) now gets a conflict to 2017-11-18T22:29:31Z stassats: whoever writes like that 2017-11-18T22:41:11Z stassats: it's been some time since anything in quicklisp got broken by better type conflict detection 2017-11-18T22:41:15Z stassats: maybe this time 2017-11-18T22:43:44Z scymtym: the asdf upgrade will break more than enough things 2017-11-18T22:44:03Z stassats: but that's not a positive thing 2017-11-18T22:45:16Z scymtym: yeah, i'm joking 2017-11-18T22:57:18Z stassats: "WARNING: Computing just-done stamp in plan NIL for action (ASDF/LISP-ACTION:LOAD-OP i" is getting so annoying 2017-11-18T22:57:43Z stassats: i can't see any real warnings because of this crap 2017-11-18T22:58:32Z stassats: maybe i should just patch our asdf to forget about these warnings 2017-11-18T22:59:46Z nyef``: Clearly, I should avoid upgrading for a while longer. 2017-11-18T23:00:11Z stassats: since the asdf people say "not our problem, all these .asd files that worked for years are broken" 2017-11-18T23:02:42Z stassats: so, how does anyone else feel about me excising two warnings from asdf.lisp? 2017-11-18T23:03:00Z stassats: i don't like it, personally 2017-11-18T23:03:42Z stassats: i mean, i don't like the fact that's the only option left by the asdf people 2017-11-18T23:05:50Z stassats: "DEPRECATED-FUNCTION-STYLE-WARNING: Using deprecated function ASDF/BACKWARD-INTERFACE:RUN-SHELL-COMMAND -- please update your code to use a newer API." 2017-11-18T23:06:12Z milanj quit (Quit: This computer has gone to sleep) 2017-11-18T23:06:45Z stassats: updating to the newer API so that it breaks on older setups? 2017-11-18T23:18:10Z dougk quit (Read error: Connection reset by peer) 2017-11-18T23:18:28Z dougk joined #sbcl 2017-11-18T23:22:01Z milanj joined #sbcl 2017-11-18T23:22:41Z dougk quit (Ping timeout: 248 seconds) 2017-11-18T23:24:48Z dougk joined #sbcl 2017-11-18T23:37:16Z attila_lendvai quit (Quit: Leaving.) 2017-11-19T00:07:45Z BitPuffin|osx joined #sbcl 2017-11-19T00:08:32Z bkst quit (Ping timeout: 260 seconds) 2017-11-19T00:11:51Z nyef``: Is the first level of deprecation in SBCL a full STYLE-WARNING, or does it start below that point? 2017-11-19T00:12:55Z stassats: style-warning 2017-11-19T00:13:11Z nyef``: Okay, that seems fair, I guess. 2017-11-19T00:13:21Z stassats: could start with a note 2017-11-19T00:13:55Z stassats: but i don't think we're going to be adding new deprecations any time soon 2017-11-19T00:14:01Z stassats: hopefully never 2017-11-19T00:15:42Z stassats: i think the next step for QUIT -> EXIT deprecation would be just to make QUIT call EXIT, not even going through the full WARNING stage 2017-11-19T00:17:17Z stassats: and i actually wouldn't have deprecated quit, it used to exit a thread? mark it as a bug and write a "minor incompatible change" in NEWS 2017-11-19T00:17:25Z stassats: but now we're stuck with QUIT and EXIT 2017-11-19T00:17:36Z stassats: which i find to be a blunder 2017-11-19T00:18:38Z stassats: it's been six years, i might do just that 2017-11-19T00:20:26Z stassats: quit should never go away in any case, and being stuck with a style-warning for eternity is not a good prospect 2017-11-19T00:22:09Z stassats: getting the API wrong twice, first, when originally designing it and then when deprecating it 2017-11-19T00:37:22Z edgar-rft quit (Remote host closed the connection) 2017-11-19T00:37:53Z dougk quit (Ping timeout: 248 seconds) 2017-11-19T00:39:08Z dougk joined #sbcl 2017-11-19T00:39:53Z edgar-rft joined #sbcl 2017-11-19T00:43:13Z dougk quit (Ping timeout: 248 seconds) 2017-11-19T00:45:33Z stassats: part of the cunning plan "hey, sbcl deprecates things too" "what things?" sb-ext:quit" "not anymore!" 2017-11-19T00:46:15Z bkst joined #sbcl 2017-11-19T01:02:23Z dougk joined #sbcl 2017-11-19T01:10:51Z aeth: Get rid of quit and no one can leave SBCL anymore. A cunning plan for world domination. 2017-11-19T01:11:33Z stassats: there's like a dozen other ways to quit (why?) 2017-11-19T01:12:19Z stassats: sb-ext:quit, sb-ext:quit, sb-unix:unix-exit, sb-sys:os-exit 2017-11-19T01:12:28Z stassats: s/quit/exit/ 2017-11-19T01:12:38Z stassats: sb-posix:exit 2017-11-19T01:30:17Z dougk quit (Read error: Connection reset by peer) 2017-11-19T01:30:34Z dougk joined #sbcl 2017-11-19T01:40:51Z stassats: thinking about specialized structure arrays, the hardest part would be deciding what to do when escaping a value 2017-11-19T01:41:15Z stassats: but it shouldn't really be any different than floats or words 2017-11-19T01:42:44Z stassats: or not deciding at all, just have the array have headers 2017-11-19T01:45:13Z stassats: that greatly simplifies the implementation, just need to solve for interior pointers 2017-11-19T01:52:38Z nyef``: Include some flag and backpointer on the structure header to point to the array header. 2017-11-19T01:52:51Z nyef``: Then treat it just like we do SIMPLE-FUN objects. 2017-11-19T01:53:02Z stassats: that's what i was thinking 2017-11-19T01:53:15Z nyef``: Or LRA objects, for that matter. 2017-11-19T01:53:34Z stassats: now thinking, is an array of structs which have headers really worth it? 2017-11-19T01:53:57Z stassats: not having would've been more compact 2017-11-19T01:54:10Z stassats: but this is just saving on indirection 2017-11-19T01:54:18Z stassats: ideally, it would've been nice to have both 2017-11-19T01:54:26Z stassats: both have their uses 2017-11-19T02:08:33Z myrkraverk quit (Ping timeout: 248 seconds) 2017-11-19T02:09:58Z myrkraverk joined #sbcl 2017-11-19T02:31:07Z stassats: optimize-constant-loads stopped working properly 2017-11-19T02:31:10Z stassats: i wonder when 2017-11-19T02:40:08Z stassats: recently 2017-11-19T03:10:17Z BitPuffin|osx quit (Ping timeout: 268 seconds) 2017-11-19T04:26:08Z jibanes quit (Ping timeout: 268 seconds) 2017-11-19T04:27:45Z jibanes joined #sbcl 2017-11-19T05:17:24Z Bike quit (Quit: Lost terminal) 2017-11-19T05:39:45Z jrm quit (Quit: ciao) 2017-11-19T05:40:18Z jrm joined #sbcl 2017-11-19T05:45:23Z stassats quit (Ping timeout: 250 seconds) 2017-11-19T06:46:50Z hooman joined #sbcl 2017-11-19T06:48:01Z whoman quit (Ping timeout: 240 seconds) 2017-11-19T07:37:25Z hooman quit (Remote host closed the connection) 2017-11-19T07:37:58Z hooman joined #sbcl 2017-11-19T08:29:33Z hajovonta joined #sbcl 2017-11-19T08:30:09Z hajovonta: hi 2017-11-19T08:31:01Z hajovonta: SBCL crashes when starting a hunchentoot server and hitting Ctrl+C (in Windows) 2017-11-19T08:31:05Z hajovonta: is it a known issue? 2017-11-19T09:04:57Z dougk quit (Ping timeout: 240 seconds) 2017-11-19T09:14:27Z hajovonta quit (Ping timeout: 240 seconds) 2017-11-19T09:38:29Z shka joined #sbcl 2017-11-19T09:40:33Z angavrilov joined #sbcl 2017-11-19T10:31:20Z josemanuel joined #sbcl 2017-11-19T11:38:07Z scymtym quit (Ping timeout: 248 seconds) 2017-11-19T11:56:10Z scymtym joined #sbcl 2017-11-19T11:56:58Z stassats joined #sbcl 2017-11-19T12:01:49Z attila_lendvai joined #sbcl 2017-11-19T12:13:30Z scymtym: stassats: re TYPECASE: i think something like the decision tree generator i made for the fastgf experiment could generate good code. it loads widetags and layouts only when needed and only once and does the minimum number of tests by sharing information between clauses. it would probably have to punt for non-structure classes since we wouldn't want to invoke the compiler from TYPECASE 2017-11-19T12:14:15Z stassats: i wanted to transform ir1 code that checks type sequentially 2017-11-19T12:14:22Z stassats: optimizing typecase itself is easy 2017-11-19T12:15:00Z scymtym: sure, i was thinking about identifying shapes like (if (typep …) (if typep …) (if typep …)) 2017-11-19T12:15:50Z scymtym: but that is probably too ambitious 2017-11-19T12:16:10Z scymtym: for today: fixing windows build slave, then crlf 2017-11-19T12:17:16Z attila_lendvai: re ASDF and "updating to the newer API so that it breaks on older setups"... ASDF has its upgrade functionality, to help to "escape forward". I don't see any reasons to run with old ASDF when all it takes is to check out a fresh version somewhere and then (asdf:load-system :asdf) to initiate an upgrade, even if your lisp ships and older version. I've been running with that setup since runtime upgrade became a thing. 2017-11-19T12:18:59Z scymtym: the problem seems to be that on the x86 windows slave (apparently not on the x86_64 one), the sb-concurrency test hangs or spins in way that makes the process stick around. jenkins cannot terminate it and some files stay in use. this prevents the workspace from being deleted for the next build (and ties up a cpu on the vm) 2017-11-19T12:19:35Z scymtym: otherwise the windows builds are remarkably reliable. without running tests, to be fair 2017-11-19T12:20:15Z Shinmera: scymtym: Does it happen even if you just build on the x86_64 machine with the x86 msys2? 2017-11-19T12:21:14Z scymtym: Shinmera: haven't tried that. maybe next week 2017-11-19T12:37:12Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-19T12:50:13Z dougk_ joined #sbcl 2017-11-19T12:57:47Z stassats: scymtym: i can identify (if (typep …) (if typep …) (if typep …)) trivially, but then i can't do anything 2017-11-19T12:58:06Z stassats: i need to introduce a temporary variable, but lvars can only have one reader 2017-11-19T12:58:27Z stassats: so, a let clambda needs to be introduced, wrapping some arbitrary blocks, which blocks? etc. 2017-11-19T12:59:37Z stassats: scymtym: i have no sb-concurrency on a x86-64 win32 vm 2017-11-19T12:59:44Z stassats: failures 2017-11-19T13:01:28Z stassats: attila_lendvai: that's not a reason to break old .asd files 2017-11-19T13:01:48Z scymtym: stassats: the problems are on the x86 win32 vm, the x86_64 win32 vm seems fine so far 2017-11-19T13:02:17Z stassats: there isn't even a good spec to adhere to when writing .asd files, so you're subject to some new retrospective decisions 2017-11-19T13:02:43Z stassats: scymtym: ok, i don't test x86-32 anymore 2017-11-19T13:02:53Z stassats: don't have the x86 toolchain installed 2017-11-19T13:03:07Z scymtym: there is a spec: https://github.com/fare/asdf/blob/master/doc/best_practices.md 2017-11-19T13:03:24Z stassats: something named best_practices doesn't sound like a spec 2017-11-19T13:04:17Z scymtym: well, the syntax and semantics are discussed in the manual. the "best practices" thing is complementary 2017-11-19T13:05:00Z scymtym: i'm going back external formats now instead of further defending ASDF 2017-11-19T13:05:14Z stassats: and i don't even care myself for the practices 2017-11-19T13:05:25Z stassats: but i have tens of dependencies using worst practices 2017-11-19T13:07:18Z scymtym: i agree that modern ASDF makes using dependencies, in particular not enthusiastically maintained ones, a lot more painful 2017-11-19T13:08:00Z stassats: i'll just dump a patched asdf into my sbcl.core and forget about it 2017-11-19T13:09:03Z scymtym: i hope the situation improves over time 2017-11-19T13:11:31Z stassats: i've been patching and configuring asdf for years, i have no hope 2017-11-19T13:20:29Z Bike joined #sbcl 2017-11-19T13:33:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-19T13:35:13Z scymtym: (sb-impl::find-external-format '(:utf-8 :newline-coding :windows)) => # 2017-11-19T13:38:38Z stassats joined #sbcl 2017-11-19T13:43:26Z scymtym: stassats: what would :eol :auto do? 2017-11-19T13:44:20Z stassats: for input, either CR or CRLF or LF would denote a newline, for output, the platform default 2017-11-19T13:44:50Z stassats: just like Java does 2017-11-19T13:45:00Z dougk joined #sbcl 2017-11-19T13:46:14Z stassats: and i'd say :auto be the default everywhere 2017-11-19T13:49:29Z dougk quit (Ping timeout: 255 seconds) 2017-11-19T13:51:33Z scymtym: okay let's i have a file containing 00000000: 666f 6f0d 0a62 6172 0d62 617a 0a foo..bar.baz. 2017-11-19T13:55:46Z stassats: and? 2017-11-19T13:56:09Z scymtym: when i do (map 'list #'char-name (alexandria:read-file-into-string "/tmp/bla.txt" :external-format :utf-8)), would that be the same as '(:utf-8 :eof :auto) which would be '(:utf-8 :eof :crlf), returning (#\f #\o #\o #\Newline #\b …) on win32, '(:utf-8 :eof :lf), returning (#\f #\o #\o #\Return #\Newline #\b …) on linux and similar for macos? 2017-11-19T13:57:04Z stassats: no, :auto is not the same as either :crlf or :lf 2017-11-19T13:57:29Z stassats: it's either of CR, CRLF, LF will decode as #\Newline 2017-11-19T13:58:31Z scymtym: i see 2017-11-19T13:58:52Z stassats: https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine() 2017-11-19T13:59:24Z stassats: that's for input, for output you'll have to choose one based on the OS 2017-11-19T14:00:19Z stassats: https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html#newLine() 2017-11-19T14:00:42Z stassats: i'd just copy java for :auto 2017-11-19T14:01:01Z dougk joined #sbcl 2017-11-19T14:03:03Z scymtym: so the possible newline codings are :crlf, :lf, :cr, :auto/crlf (default on windows), :auto/lf (default on unix), :auto/cr (default macos) 2017-11-19T14:03:36Z stassats: it's :lf on macos 2017-11-19T14:03:52Z stassats: the on sbcl runs on 2017-11-19T14:03:55Z stassats: the one 2017-11-19T14:05:14Z stassats: (don't give nyef`` any ideas) 2017-11-19T14:06:08Z scymtym: choosing a default for each platform is the trivial part 2017-11-19T14:08:18Z nyef``: What, like porting to System 8? Or adding a 68030 backend? (-: 2017-11-19T14:09:20Z scymtym: :auto/lf on unix will perform worse than what we currently do 2017-11-19T14:11:10Z stassats: sure, an acceptable cost of not having to think about line endings 2017-11-19T14:11:16Z nyef``: You also get cases on DOS and similar where if you have a sequence of multiple newlines only the first is CRLF and the rest are merely LF. Because CR is *expensive*, moving the print head (or platen!) like that. 2017-11-19T14:12:12Z scymtym: i want to have nothing to do with that 2017-11-19T14:12:19Z stassats: we'll need a way to configure default defaults 2017-11-19T14:12:39Z stassats: LANG is barely able to handle the encoding 2017-11-19T14:13:06Z scymtym: for sbcl build time or lisp startup time? 2017-11-19T14:13:18Z stassats: startup time 2017-11-19T14:14:03Z scymtym: yeah, i'm not that far along, though 2017-11-19T14:14:11Z stassats: so that people who are inconvenienced by reduced performance can drop (setf sb-ext:*default-external-format* '(utf-8 :lf) 2017-11-19T14:14:21Z stassats: into .sbclrc 2017-11-19T14:16:07Z scymtym: it has to be (:utf-8 :eol :lf) for compatibility with (:utf-8 :replacement #\?) 2017-11-19T14:16:33Z scymtym: or, well, doesn't have to, strictly speaking, but it seems more consistent that way 2017-11-19T14:16:53Z stassats: would it be better to have a function, to turn it into an external format? 2017-11-19T14:16:54Z stassats: once 2017-11-19T14:17:05Z dougk quit (Ping timeout: 248 seconds) 2017-11-19T14:17:21Z scymtym: i have FIND-EXTERNAL-FORMAT that does that 2017-11-19T14:17:21Z stassats: we need to get right the first time to not issue silly deprecation notices 2017-11-19T14:17:55Z stassats: but (setf (sb-ext:default-external-format) :utf-8) is nicer than calling find-external-format 2017-11-19T14:18:19Z scymtym: i don't see why that would work 2017-11-19T14:18:34Z stassats: why wouldn't it? 2017-11-19T14:19:26Z scymtym: i could be something like (defun (setf sb-ext:default-external-format) (designator) (setf … (typecase designator (external-format designator) (t (find-external-format designator))))) 2017-11-19T14:20:30Z stassats: some people are already using SB-IMPL::*DEFAULT-EXTERNAL-FORMAT*, have to not break it 2017-11-19T14:20:39Z scymtym: oh, sorry, i meant to say "i don't see why that WOULDN'T work" 2017-11-19T14:20:51Z stassats: that's what i thought 2017-11-19T14:20:58Z dougk joined #sbcl 2017-11-19T14:21:01Z hooman: =) 2017-11-19T14:21:27Z stassats: but maybe fetching external format objects does not that happen that often 2017-11-19T14:21:51Z stassats: so just promote SB-IMPL::*DEFAULT-EXTERNAL-FORMAT* to sb-ext 2017-11-19T14:22:18Z scymtym: a function could catch non-existing external formats earlier 2017-11-19T14:22:41Z stassats: a symbol macro could 2017-11-19T14:23:03Z stassats: but if you're setting *default-external-format* you'll find out soon enough 2017-11-19T14:24:00Z scymtym: i think, i will implement the auto behavior first, though 2017-11-19T14:24:13Z stassats: then there is sb-alien::*default-c-string-external-format* 2017-11-19T14:24:55Z scymtym: and i think somebody requested a similar thing for pathnames 2017-11-19T14:26:11Z scymtym: missed that earlier. i'm disabling the x86 win32 job now 2017-11-19T14:26:41Z stassats: scymtym: well, maybe it's worth getting it fixed 2017-11-19T14:26:46Z milanj quit (Quit: This computer has gone to sleep) 2017-11-19T14:27:24Z stassats: let me see what if i can install a 32-bit toolchain on msys2 2017-11-19T14:28:54Z scymtym: i can enable it again later. but having it break in way that needs manual intervention every other day is a little annoying 2017-11-19T14:30:14Z stassats: looks like i need a 32-bit msys2 2017-11-19T14:30:25Z milanj joined #sbcl 2017-11-19T14:40:57Z dougk quit (Ping timeout: 240 seconds) 2017-11-19T14:47:22Z scymtym: stassats: i'm about done with external formats for today. i will continue when i next have time. or do you want to pick it up? 2017-11-19T14:47:45Z stassats: i'm fine 2017-11-19T14:48:27Z stassats: can't build without diffutils, sigh 2017-11-19T14:50:24Z scymtym: i hit that one as well. we could make a tools-for-build for that 2017-11-19T14:56:44Z stassats: no failures 2017-11-19T14:58:47Z Kevslinger joined #sbcl 2017-11-19T15:03:09Z BitPuffin|osx joined #sbcl 2017-11-19T15:03:56Z scymtym: stassats: happened about every other day 2017-11-19T15:04:03Z scymtym: as is tradition with sb-concurrency 2017-11-19T15:06:51Z stassats quit (Ping timeout: 268 seconds) 2017-11-19T15:23:52Z milanj quit (Quit: This computer has gone to sleep) 2017-11-19T15:33:35Z nyef`` quit (Ping timeout: 240 seconds) 2017-11-19T16:21:18Z dougk joined #sbcl 2017-11-19T16:34:11Z dougk quit (Ping timeout: 255 seconds) 2017-11-19T16:43:11Z BitPuffin|osx quit (Ping timeout: 250 seconds) 2017-11-19T16:45:02Z dougk joined #sbcl 2017-11-19T17:08:39Z dougk quit (Ping timeout: 246 seconds) 2017-11-19T17:08:48Z milanj joined #sbcl 2017-11-19T17:09:12Z stassats joined #sbcl 2017-11-19T17:37:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-19T17:46:54Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-19T17:51:52Z scymtym joined #sbcl 2017-11-19T18:11:10Z dougk joined #sbcl 2017-11-19T18:15:33Z dougk quit (Ping timeout: 268 seconds) 2017-11-19T18:16:00Z dougk joined #sbcl 2017-11-19T18:23:27Z pchrist quit (Quit: leaving) 2017-11-19T18:39:50Z pchrist joined #sbcl 2017-11-19T18:55:38Z attila_lendvai joined #sbcl 2017-11-19T18:55:38Z attila_lendvai quit (Changing host) 2017-11-19T18:55:38Z attila_lendvai joined #sbcl 2017-11-19T19:11:51Z veckon joined #sbcl 2017-11-19T19:15:24Z veckon: What is the current recommended flags to build "the most efficient" SBCL for x86_64 on Linux? Is "--fancy" enough, or will I be missing out on some neat optimizations available on latest Intel CPUs (like Skylake-X)? 2017-11-19T19:43:38Z veckon quit (Remote host closed the connection) 2017-11-19T20:05:43Z nyef joined #sbcl 2017-11-19T20:12:10Z dougk: veckon: there are no optimizations like what you're implying. "efficient" might, for some user, be "mean and lean" - the opposite of fancy. Disable threads, disable unicode. And disable safety if you want to go recklessly fast. Basically don't think of build options in terms of efficiency though. 2017-11-19T20:16:27Z nyef: I, at times, consider mandatory array bounds-checking to be efficient. 2017-11-19T20:17:32Z nyef: (What is it efficient at? Finding array-overrun bugs.) 2017-11-19T20:20:50Z nyef: ... Okay, having checked logs, the main build-time feature toggles that affect time-cost of code running on the target system are threads and unicode. 2017-11-19T20:21:51Z nyef: Everything beyond that is... Oh, wait. The one who originally asked already left. Nevermind. 2017-11-19T21:00:05Z dougk quit (Read error: Connection reset by peer) 2017-11-19T21:00:21Z dougk joined #sbcl 2017-11-19T21:10:40Z angavrilov quit (Remote host closed the connection) 2017-11-19T21:12:41Z eschatologist quit (Ping timeout: 240 seconds) 2017-11-19T21:13:40Z eschatologist joined #sbcl 2017-11-19T21:17:41Z DeadTrickster__ quit (Ping timeout: 240 seconds) 2017-11-19T21:18:33Z |3b|: stassats, scymtym: sb-concurrency tests hang once in a while for me on x8664 windows 2017-11-19T21:19:46Z DeadTrickster joined #sbcl 2017-11-19T21:22:41Z BigSafari joined #sbcl 2017-11-19T21:37:27Z dougk quit (Read error: Connection reset by peer) 2017-11-19T21:37:27Z dougk__ joined #sbcl 2017-11-19T21:48:34Z Jesin quit (Quit: Leaving) 2017-11-19T22:08:01Z dougk__ quit (Ping timeout: 240 seconds) 2017-11-19T22:32:36Z Jesin joined #sbcl 2017-11-19T22:37:35Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-19T22:59:21Z shka quit (Ping timeout: 240 seconds) 2017-11-19T23:08:51Z josemanuel quit (Quit: leaving) 2017-11-20T01:05:48Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-20T01:11:24Z attila_lendvai joined #sbcl 2017-11-20T01:11:24Z attila_lendvai quit (Changing host) 2017-11-20T01:11:24Z attila_lendvai joined #sbcl 2017-11-20T01:41:23Z joshe quit (Ping timeout: 255 seconds) 2017-11-20T01:41:40Z joshe joined #sbcl 2017-11-20T02:05:27Z stassats quit (Ping timeout: 268 seconds) 2017-11-20T02:21:51Z dougk joined #sbcl 2017-11-20T02:22:17Z milanj quit (Quit: This computer has gone to sleep) 2017-11-20T02:27:02Z milanj joined #sbcl 2017-11-20T02:36:57Z aeth quit (Ping timeout: 260 seconds) 2017-11-20T02:38:19Z attila_lendvai quit (Quit: Leaving.) 2017-11-20T02:38:39Z aeth joined #sbcl 2017-11-20T03:10:12Z White_Flame quit (Ping timeout: 260 seconds) 2017-11-20T03:45:20Z jack_rabbit quit (Remote host closed the connection) 2017-11-20T03:46:05Z dougk quit (Ping timeout: 240 seconds) 2017-11-20T03:49:06Z jack_rabbit joined #sbcl 2017-11-20T03:57:07Z jack_rabbit quit (Quit: Leaving) 2017-11-20T03:59:23Z jack_rabbit joined #sbcl 2017-11-20T04:54:56Z Bike quit (Quit: Lost terminal) 2017-11-20T05:00:40Z shka joined #sbcl 2017-11-20T05:42:52Z White_Flame joined #sbcl 2017-11-20T05:47:14Z oleo quit (Quit: Leaving) 2017-11-20T06:42:13Z angavrilov joined #sbcl 2017-11-20T06:58:22Z BigSafari joined #sbcl 2017-11-20T07:29:35Z scymtym quit (Ping timeout: 248 seconds) 2017-11-20T07:31:01Z shka quit (Ping timeout: 240 seconds) 2017-11-20T08:18:47Z pfdietz quit (Ping timeout: 260 seconds) 2017-11-20T08:23:08Z pfdietz joined #sbcl 2017-11-20T08:28:55Z milanj quit (Quit: This computer has gone to sleep) 2017-11-20T08:30:42Z scymtym joined #sbcl 2017-11-20T08:31:19Z pfdietz quit (Ping timeout: 250 seconds) 2017-11-20T08:33:36Z pfdietz joined #sbcl 2017-11-20T09:02:36Z milanj joined #sbcl 2017-11-20T09:15:05Z BigSafari quit (Ping timeout: 240 seconds) 2017-11-20T10:31:43Z milanj quit (Quit: This computer has gone to sleep) 2017-11-20T10:32:12Z milanj joined #sbcl 2017-11-20T10:54:12Z m00natic joined #sbcl 2017-11-20T10:54:20Z BigSafari joined #sbcl 2017-11-20T11:13:15Z rgrau joined #sbcl 2017-11-20T11:43:30Z milanj quit (Quit: This computer has gone to sleep) 2017-11-20T12:00:28Z easye quit (Ping timeout: 240 seconds) 2017-11-20T12:00:36Z minion quit (Read error: Connection reset by peer) 2017-11-20T12:00:37Z specbot quit (Read error: Connection reset by peer) 2017-11-20T12:01:26Z specbot joined #sbcl 2017-11-20T12:02:04Z minion joined #sbcl 2017-11-20T12:13:43Z stassats joined #sbcl 2017-11-20T12:16:47Z easye joined #sbcl 2017-11-20T12:42:42Z Bicyclidine joined #sbcl 2017-11-20T13:12:01Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-20T13:27:03Z attila_lendvai joined #sbcl 2017-11-20T13:27:03Z attila_lendvai quit (Changing host) 2017-11-20T13:27:03Z attila_lendvai joined #sbcl 2017-11-20T13:31:22Z attila_lendvai quit (Client Quit) 2017-11-20T13:37:46Z Jesin quit (Quit: Leaving) 2017-11-20T13:40:45Z dougk joined #sbcl 2017-11-20T13:40:56Z Bicyclidine quit (Ping timeout: 255 seconds) 2017-11-20T13:50:05Z stassats quit (Ping timeout: 240 seconds) 2017-11-20T14:32:35Z Bike joined #sbcl 2017-11-20T14:34:09Z dougk quit (Ping timeout: 248 seconds) 2017-11-20T14:37:54Z BigSafari joined #sbcl 2017-11-20T14:43:07Z milanj joined #sbcl 2017-11-20T14:49:24Z oleo joined #sbcl 2017-11-20T14:49:50Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-20T14:55:35Z Jesin joined #sbcl 2017-11-20T15:08:24Z rumbler31 joined #sbcl 2017-11-20T15:09:03Z cromachina quit (Read error: Connection reset by peer) 2017-11-20T15:17:19Z eudoxia joined #sbcl 2017-11-20T15:34:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-20T15:52:44Z Jesin quit (Quit: Leaving) 2017-11-20T15:53:05Z dougk joined #sbcl 2017-11-20T15:58:52Z Jesin joined #sbcl 2017-11-20T16:13:17Z stassats joined #sbcl 2017-11-20T16:41:02Z rgrau quit (Ping timeout: 260 seconds) 2017-11-20T17:00:52Z fortitude joined #sbcl 2017-11-20T17:09:11Z scymtym joined #sbcl 2017-11-20T17:25:56Z dougk quit (Ping timeout: 255 seconds) 2017-11-20T17:32:57Z BigSafari joined #sbcl 2017-11-20T17:56:35Z m00natic quit (Remote host closed the connection) 2017-11-20T18:05:27Z attila_lendvai joined #sbcl 2017-11-20T18:05:27Z attila_lendvai quit (Changing host) 2017-11-20T18:05:27Z attila_lendvai joined #sbcl 2017-11-20T18:08:40Z dougk joined #sbcl 2017-11-20T18:12:21Z stassats: why aren't mutexes using pthread_mutex on #-futex? 2017-11-20T18:12:33Z stassats: currently, grab-mutex is not energy efficient, it's spinning 2017-11-20T18:14:56Z stassats: or condition variables not using pthread_cond_ 2017-11-20T18:18:16Z dougk quit (Ping timeout: 252 seconds) 2017-11-20T18:19:36Z nyef: ... there are non-futex builds? 2017-11-20T18:19:54Z stassats: bsds 2017-11-20T18:20:02Z stassats: including macos 2017-11-20T18:20:31Z stassats: is there a rationally for poorly implementing our own mutexes and condition variables? 2017-11-20T18:20:52Z jsnell: must be, since it didn't start off that way 2017-11-20T18:20:54Z stassats: i'm using a patched slime to avoid wasting my batter by sb-thread:condition-wait 2017-11-20T18:21:10Z stassats: battery 2017-11-20T18:21:12Z nyef: Probably something something garbage collection something memory leak something. 2017-11-20T18:21:52Z stassats: nyef: and futexes avoid that? 2017-11-20T18:22:51Z jsnell: I would have guessed it was another of those cases of system calls actually working properly on OS X 2017-11-20T18:24:34Z nyef: stassats: IIRC, the memory requirement for futexes is a single (unboxed?) word, plus possibly kernel memory overhead /while they are being slept on/. 2017-11-20T18:25:50Z stassats: i think ccl just uses pthread_mutex 2017-11-20T18:26:34Z stassats: i think pthreads are reasonable exercised to actually work on darwin 2017-11-20T18:26:42Z nyef: So no foreign objects to track that can leak, for example. A winapi mutex is represented by a HANDLE, but it's tied to some kernel state that can leak. 2017-11-20T18:27:15Z stassats: finalizers to the rescue (if you're lucky) 2017-11-20T18:27:43Z nyef: If you're looking to finalizers to save you, you're *already* out of luck. 2017-11-20T18:27:43Z jsnell: we had special support for pthread mutexes in the gc 2017-11-20T18:29:02Z stassats: i don't expect mutexes becoming garbage all that often 2017-11-20T18:30:41Z jsnell: I'm trying to remember whether that special support was anything except custom finalizer machinery. probably not 2017-11-20T18:33:56Z stassats: the way we use select is also bad on non-linux 2017-11-20T18:38:02Z dougk joined #sbcl 2017-11-20T18:45:35Z dougk quit (Ping timeout: 255 seconds) 2017-11-20T18:47:17Z stassats: i guess i'll just have to try using pthreads and see what happens 2017-11-20T18:49:27Z shka joined #sbcl 2017-11-20T19:03:39Z dougk joined #sbcl 2017-11-20T19:09:52Z dougk quit (Ping timeout: 240 seconds) 2017-11-20T19:09:59Z stassats: could we also allocate pthread_mutexes only when waiting on them? 2017-11-20T19:17:42Z jsnell: what would that accomplish? 2017-11-20T19:18:07Z stassats: can destroy it after nothing uses it 2017-11-20T19:19:50Z jsnell: sounds pretty expensive, especially if you're intending to do it in a race-free way 2017-11-20T19:20:17Z jsnell: and the gc support for this would probably have been like 50 lines 2017-11-20T19:24:05Z stassats: apppleOSes now have os_unfair_lock_lock 2017-11-20T19:24:41Z stassats: it doesn't appear to need destruction 2017-11-20T19:26:12Z minion quit (Remote host closed the connection) 2017-11-20T19:26:13Z specbot quit (Remote host closed the connection) 2017-11-20T19:26:21Z stassats: but that's macOS 10.12 and up 2017-11-20T19:28:28Z stassats: i'd be fine with that, as i'm fine with using dispatch_semaphore in slime, but something available to a wider audience would be preferable 2017-11-20T19:28:32Z easye quit (Ping timeout: 240 seconds) 2017-11-20T19:30:44Z minion joined #sbcl 2017-11-20T19:30:45Z specbot joined #sbcl 2017-11-20T19:31:22Z stassats: i still think any normal program shouldn't create and discard too many mutexes, so finalizers should do 2017-11-20T19:34:13Z jsnell: one per hash-table? 2017-11-20T19:39:18Z dougk joined #sbcl 2017-11-20T19:58:06Z fortitude: is it normal for a thread in gc_stop_the_world to have GC_INHIBIT and IN_WITHOUT_GCING set? relatedly, shouldn't gc_start_the_world set IN_WITHOUT_GCING to NIL, or a stored value? 2017-11-20T20:06:42Z stassats: jsnell: could lazily allocated the mutex 2017-11-20T20:06:49Z dougk quit (Ping timeout: 258 seconds) 2017-11-20T20:06:55Z stassats: only upon the first contention 2017-11-20T20:11:37Z stassats: how bad is it to not call pthread_mutex_destroy? 2017-11-20T20:20:16Z pfdietz_ joined #sbcl 2017-11-20T20:21:02Z pfdietz_: Do you need 1 lock per hash table? 2017-11-20T20:21:59Z stassats: could have one hash-table lock for each thread 2017-11-20T20:22:03Z pfdietz_: Could have a pool of locks shared between tables. 2017-11-20T20:26:25Z jsnell: that sounds more complex than just having cheap finalizers in the first place 2017-11-20T20:27:32Z stassats: having both, finalizers and reducing the number of pthread_mutexes 2017-11-20T20:28:35Z eudoxia quit (Quit: Leaving) 2017-11-20T20:28:39Z jsnell: fair enough 2017-11-20T20:32:36Z pfdietz_ quit (Ping timeout: 246 seconds) 2017-11-20T20:32:42Z foom2: Google open sourced the C++ Mutex implementation we use internally. It doesn't use pthread mutex, instead using some sort of per-thread waiter or something like that. 2017-11-20T20:32:49Z foom2: https://github.com/abseil/abseil-cpp/blob/master/absl/synchronization/ 2017-11-20T20:32:54Z foom2: I have little idea how it actually works. =) 2017-11-20T20:33:02Z stassats: we could even detect that a function is only using a hash-table to call gethash/puthash and not lock it 2017-11-20T20:33:11Z foom2: But it does work on basically all platforms. 2017-11-20T20:34:15Z stassats: foom2: the current sb-thread:grab-mutex works everywhere too, but it doesn't unscheduled itself and has to spin instead 2017-11-20T20:34:29Z stassats: having in impact on battery life 2017-11-20T20:34:42Z foom2: right, this one does unschedule itself. 2017-11-20T20:35:02Z stassats: by sleeping? 2017-11-20T20:35:46Z pfdietz_ joined #sbcl 2017-11-20T20:35:46Z stassats: i still imagine a proper pthread_mutex can use better techniques than just sleeping 2017-11-20T20:35:52Z foom2: It uses a platform-specific "waiter" implementation. 2017-11-20T20:35:58Z foom2: https://github.com/abseil/abseil-cpp/blob/master/absl/synchronization/internal/waiter.cc 2017-11-20T20:36:01Z stassats: since that'll result in spurious wake ups 2017-11-20T20:36:10Z foom2: there's a bunch, chosen by ABSL_WAITER_MODE 2017-11-20T20:36:40Z foom2: One of them is a pthread mutex, but that's not a per-absl::Mutex object 2017-11-20T20:38:20Z stassats: so it prefers semaphores to pthread_mutex 2017-11-20T20:39:27Z foom2: It wants to provide a better API, cheaper than pthread allows, in the normal case. 2017-11-20T20:39:51Z foom2: (https://abseil.io/about/design/mutex talks about some of the API details.) 2017-11-20T20:40:30Z stassats: i guess i can try/provide multiple strategies pthread_mutex, sem, os_unfair_lock 2017-11-20T20:40:57Z foom2: But in any case, the possibly-heavyweight platform-specific stuff is only used to implement blocking, and so there's only one per thread. 2017-11-20T20:41:12Z foom2: The per-mutex stuff is all common implementation/code. 2017-11-20T20:42:30Z dougk joined #sbcl 2017-11-20T20:52:02Z dougk quit (Ping timeout: 255 seconds) 2017-11-20T20:55:17Z attila_lendvai quit (Quit: Leaving.) 2017-11-20T20:57:56Z attila_lendvai joined #sbcl 2017-11-20T21:00:19Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-20T21:02:10Z pfdietz_ quit (Ping timeout: 252 seconds) 2017-11-20T21:09:01Z pfdietz_ joined #sbcl 2017-11-20T21:11:07Z angavrilov quit (Remote host closed the connection) 2017-11-20T21:12:15Z dougk joined #sbcl 2017-11-20T21:16:29Z dougk quit (Ping timeout: 252 seconds) 2017-11-20T21:24:11Z pfdietz_ quit (Ping timeout: 252 seconds) 2017-11-20T21:27:32Z dougk joined #sbcl 2017-11-20T21:34:23Z pfdietz_ joined #sbcl 2017-11-20T21:44:00Z pfdietz_ quit (Ping timeout: 246 seconds) 2017-11-20T21:47:38Z shka quit (Ping timeout: 258 seconds) 2017-11-20T22:03:57Z dougk quit (Ping timeout: 246 seconds) 2017-11-20T22:15:05Z dougk joined #sbcl 2017-11-20T22:24:23Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-20T22:25:50Z DeadTrickster joined #sbcl 2017-11-20T22:29:32Z dougk quit (Ping timeout: 240 seconds) 2017-11-20T22:31:42Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-20T22:32:09Z attila_lendvai joined #sbcl 2017-11-20T22:32:15Z jsnell quit (Ping timeout: 252 seconds) 2017-11-20T22:32:31Z jsnell joined #sbcl 2017-11-20T22:54:45Z Bike quit (Ping timeout: 260 seconds) 2017-11-20T23:04:53Z dougk joined #sbcl 2017-11-20T23:24:58Z rumbler31 quit (Ping timeout: 264 seconds) 2017-11-20T23:29:05Z Jesin quit (Quit: Leaving) 2017-11-20T23:39:47Z Bike joined #sbcl 2017-11-20T23:53:23Z dougk quit (Ping timeout: 255 seconds) 2017-11-21T00:09:54Z White_Flame: hopefully a dumb question, but since sb-ext:run-program's :environment accepts a new environment list, does that mean it entirely replaces all envvars? How do you get the current complete envvar list in order to pass all existing envvars plus some additions? 2017-11-21T00:33:02Z nyef: White_Flame: sb-ext:posix-environ, maybe? 2017-11-21T00:33:05Z stassats: White_Flame: M-. didn't help? 2017-11-21T00:33:40Z White_Flame: stassats: it led to cmu internal-smelling stuff 2017-11-21T00:33:49Z stassats: cmu? 2017-11-21T00:34:06Z White_Flame: there's fallback code to interpret from cmucl environment formats or something 2017-11-21T00:34:13Z stassats: oh, right 2017-11-21T00:34:35Z White_Flame: nyef: yep, looks good 2017-11-21T00:34:53Z White_Flame: now I just have to figure out why python is ignoring my PYTHONPATH, but that's for another place 2017-11-21T00:35:15Z stassats: oh, you weren't asking how we get it 2017-11-21T00:35:29Z stassats: well 2017-11-21T00:35:45Z White_Flame: yeah, i want to pass through the current environment + additions to run-program 2017-11-21T00:36:21Z stassats: i interpreted "How do you get" a bit too literally 2017-11-21T00:36:31Z White_Flame: "How might one get..." :) 2017-11-21T00:37:06Z stassats: shoulda used lojban 2017-11-21T00:37:49Z White_Flame: jo'a go'i 2017-11-21T00:39:10Z stassats: and it doesn't even call posix-environ anymore itself 2017-11-21T00:39:13Z stassats: it used to 2017-11-21T00:39:37Z stassats: for the default value 2017-11-21T00:40:20Z pfdietz: So, should (typep #c(0 1/2) '(complex integer)) be true or false? 2017-11-21T00:40:36Z stassats: true 2017-11-21T00:40:37Z White_Flame: I think I'll have to break down and register a nick with freenode. the demanded registration idiocy of all the other larger programming channels is getting unbearable 2017-11-21T00:40:43Z stassats: oh, false 2017-11-21T00:40:45Z stassats: i meant false 2017-11-21T00:40:49Z pfdietz: I think true. 2017-11-21T00:41:05Z pfdietz: At least in SBCL. It should be false in CLISP. 2017-11-21T00:41:41Z pfdietz: In SBCL, (upgraded-complex-part-type 'integer) == RATIONAL. In CLISP, it is INTEGER. 2017-11-21T00:42:10Z stassats: well, typep doesn't say how upgraded-complex-part-type is used for type checking 2017-11-21T00:43:11Z pfdietz: "(complex type-specifier) refers to all complexes that can result from giving numbers of type type-specifier to the function complex, plus all other complexes of the same specialized representation." 2017-11-21T00:43:44Z stassats: and that it should satisfy (typep realpart 'type-specifier) (typep imagpart 'type-specifier) 2017-11-21T00:43:52Z stassats: which 1/2 doesn't 2017-11-21T00:44:09Z attila_lendvai quit (Quit: Leaving.) 2017-11-21T00:44:11Z pfdietz: No. The "plus all" goes beyond that. 2017-11-21T00:44:47Z stassats: how can it go beyond when 1/2 is not an integer? 2017-11-21T00:45:29Z pfdietz: (complex integer) is the same as (complex #.(upgraded-complex-part-type integer)), by that quote. 2017-11-21T00:45:43Z pfdietz: (add ' there) 2017-11-21T00:45:53Z stassats: it's not saying that 2017-11-21T00:46:19Z stassats: just saying to see about upgraded-complex-part-type, not what about it 2017-11-21T00:47:05Z pfdietz: (upgraded-complex-part-type 'rational) = RATIONAL, so complexes formed by giving rationals have the same specialized represention. So, the "plus all other" part of that sentence means they're included too. 2017-11-21T00:48:26Z stassats: but that contradicts then 2017-11-21T00:48:29Z stassats: (typep realpart 'type-specifier) 2017-11-21T00:48:55Z pfdietz: "This type encompasses those complexes that can result by giving numbers of type typespec to complex." 2017-11-21T00:48:58Z pfdietz: That sentence? 2017-11-21T00:49:28Z pfdietz: "Encompasses" I take to mean "includes", but not exclusively. 2017-11-21T00:49:46Z pfdietz: There's a problem, though. 2017-11-21T00:50:08Z stassats: i can't find that sentence 2017-11-21T00:50:22Z pfdietz: On the page for COMPLEX (class). 2017-11-21T00:51:56Z stassats: that's the type description, typep could have different rules 2017-11-21T00:51:57Z pfdietz: If INTEGER and RATIONAL both have their own specialized representations, then #C(1 1) should not be in (COMPLEX RATIONAL), even though 1 is a RATIONAL. It can't be in both. So I take this to mean "upgrade to the most specialized representation that works and use that." 2017-11-21T00:53:04Z nyef: Wouldn't this be required to parallel the behavior of specialized array types? 2017-11-21T00:53:31Z pfdietz: typep does say this: "(typep object '(complex type-specifier)) returns true for all complex numbers that can result from giving numbers of type type-specifier to the function complex, plus all other complex numbers of the same specialized representation." 2017-11-21T00:53:48Z pfdietz: That contradicts the part after that you were referring to. 2017-11-21T00:55:04Z pfdietz: I vaguely recall this became a point of contention when I was putting together ANSI-TESTS, so perhaps it's best to just document what interpretation SBCL will be using and move on. 2017-11-21T01:01:35Z pfdietz: nyef: you specify the element type of arrays explicitly when you make them. Complex does it automatically, and exactly how that's supposed to work is the issue. 2017-11-21T01:02:24Z nyef: Okay then. 2017-11-21T01:03:05Z stassats: the "plus all other" wording doesn't make sense 2017-11-21T01:03:14Z pfdietz: CLISP does have the problem that #C(1 1.0) is a complex, mixing integer and float. That contradicts the spec. 2017-11-21T01:03:29Z stassats: should've said "returns true for all complex numbers that can result from giving numbers of type (upgraded-complex-part-type type-specifier) to the function complex" 2017-11-21T01:03:34Z stassats: if that was the intention 2017-11-21T01:05:52Z fortitude quit (Quit: Leaving) 2017-11-21T01:05:55Z pfdietz: Ah, I see what I was forgetting. Unlike in arrays, if A is a subtypep of B, then (complex A) is a subtype of (complex B), even if they have different specialized representations. 2017-11-21T01:06:47Z nyef: Hrm... (complex number)? 2017-11-21T01:06:59Z pfdietz: (subtypep '(complex rational) '(complex real)) ==> T, T 2017-11-21T01:07:19Z nyef: Ah, right, (complex complex) would be bad. 2017-11-21T01:07:32Z nyef: (Amusing, though.) 2017-11-21T01:07:40Z pfdietz: quaternions? :) 2017-11-21T01:16:02Z X-Scale quit (Ping timeout: 268 seconds) 2017-11-21T01:16:49Z [X-Scale] joined #sbcl 2017-11-21T01:17:43Z stassats: subtypep is unclear too 2017-11-21T01:17:56Z stassats: '(upgraded-complex-part-type 'T1) and (upgraded-complex-part-type 'T2) return two different type specifiers that always refer to the same sets of objects' 2017-11-21T01:18:08Z [X-Scale] is now known as X-Scale 2017-11-21T01:18:21Z stassats: how can two different type specifiers refer to the same objects? why is upgraded-complex-part-type different then? 2017-11-21T01:19:34Z nyef: Aren't BIT, (UNSIGNED-BYTE 1), (MOD 2), and (INTEGER 0 1) different type specifiers that refer to the same objects? 2017-11-21T01:22:45Z stassats: why would upgraded-complex-part-type return them? 2017-11-21T01:23:12Z pfdietz: He's just illustrating that different type specifiers can denote the same set of objects. 2017-11-21T01:23:16Z stassats: and these would be covered by the "T1 is a subtype of T2, or" part 2017-11-21T01:23:32Z nyef: Right, pfdietz sees what I'm getting at. 2017-11-21T01:24:05Z stassats: name two types T1 and T2, which aren't subtypeps and refer to the same objects? 2017-11-21T01:25:12Z nyef: ... Wouldn't that be contradictory by the very definition of subtypy? 2017-11-21T01:25:20Z stassats: considering both must also be of subtypes of REAL 2017-11-21T01:25:22Z pfdietz: By the definition of subtypep, if T1 and T2 denote the same set of objects then (if subtypep can determine their relationships) then each must be a subtypep of the other. 2017-11-21T01:25:46Z pfdietz: Be a subtype of rather. 2017-11-21T01:25:59Z Bike: it says "T1 is a subtype of T2, or [etc]" so the etc covers the case where rather T2 is a strict subtype of T1, i.e. they upgrade to the same thing. right? 2017-11-21T01:26:06Z nyef: That "if subtypep can determine their relationships" might be important, but is unlikely to be in this case. 2017-11-21T01:26:51Z pfdietz: The only reason this is not totally clear is because of the contradiction on the page for TYPEP. 2017-11-21T01:27:53Z pfdietz: Where it asserts that (typep x (complex foo)) ==> (typep (realpart x) foo) and (typep (imagpart x) foo). 2017-11-21T01:28:37Z pfdietz: But that contradicts the paragraph immediately before it. 2017-11-21T01:29:37Z stassats: so is (subtypep '(complex real) '(complex float)) true? 2017-11-21T01:29:48Z stassats: we can't really know which types they really be upgraded 2017-11-21T01:29:59Z stassats: but integer will go to rational, and single-float to single-float 2017-11-21T01:30:09Z pfdietz: If (u-c-p-t 'float) == REAL, then yes. 2017-11-21T01:30:13Z stassats: yet what woul (upgraded-complex-part-type 'float) return? 2017-11-21T01:30:26Z pfdietz: And it does in my SBCL here. 2017-11-21T01:31:11Z pfdietz: In SBCL it returns REAL. 2017-11-21T01:31:16Z nyef: ... Why does u-c-p-t take an environment? 2017-11-21T01:31:49Z nyef: Oh. There's an issue writeup for it. That'll probably have the explanation. 2017-11-21T01:31:57Z stassats: pfdietz: but given the set of all floats, it'll never give a complex number with the REAL upgraded 2017-11-21T01:32:11Z pfdietz: So? 2017-11-21T01:32:14Z stassats: nyef: it's the same there 2017-11-21T01:32:18Z Bike: type specifier stuff always takes an environment 2017-11-21T01:33:03Z pfdietz: (complex float) doesn't mean precisely those things generated by calling the function COMPLEX on floats. 2017-11-21T01:33:29Z pfdietz: It encompasses those things, but can include other things. 2017-11-21T01:34:11Z pfdietz: (and again noting the contradiction at TYPEP) 2017-11-21T01:34:33Z stassats: if you have (complex float), and upgraded-complex-part-type is REAL, then (typep #c(1 2) '(complex float)) should be true? 2017-11-21T01:34:41Z pfdietz: Yes. 2017-11-21T01:34:58Z nyef: Oh, wow. The definition of subtypep doesn't constrain T1 or T2 in the array subtype case, therefore it claims that (array 42) is a type specifier. 2017-11-21T01:35:06Z stassats: but that'll never happen 2017-11-21T01:35:40Z stassats: and float is not a subtype of integer, nor do they produce the same objects 2017-11-21T01:35:56Z pfdietz: Complexes are not like arrays. (array bit) and (array t) are disjoint, but (complex rational) is a subtype of (complex real) even if they are not identical. 2017-11-21T01:36:08Z nyef: Also, (array fixnum) and (array fixnum) are different type specifiers. 2017-11-21T01:36:27Z stassats: well, it'd be bonkers to declare (complex float) and expect it to accept integers 2017-11-21T01:36:59Z stassats: that's why the "(typep realpart 'type-specifier) (typep imagpart 'type-specifier)" part 2017-11-21T01:37:17Z stassats: otherwise it's completely useless 2017-11-21T01:37:22Z pfdietz: which directly contradicts the other part, which is repeated in two places 2017-11-21T01:38:00Z pfdietz: I realize this is CLHS lawyering, so it would be ok to just document the issue and move on. 2017-11-21T01:38:14Z stassats: well, the other parts are bonkers, i'm choosing the parts that contradict the non-bonkers side 2017-11-21T01:38:29Z nyef: I am now reminded of why I am no longer such a huge fan of Common Lisp. 2017-11-21T01:38:40Z stassats: nyef: because of typep complex? 2017-11-21T01:38:50Z nyef: Because it is *broken*. 2017-11-21T01:39:03Z stassats: at the typep complex seam? 2017-11-21T01:39:36Z pfdietz: I don't think it is bonkers. It's straightforward. (complex X) == (complex upgraded-X). Those typep assertions are just wrong; they should be (typep (realpart x) (u-c-p-t 'typespec)) (and for imagpart). 2017-11-21T01:40:02Z nyef: The specification is internally inconsistent and the semantics are both unreasonable (in a specific, technical meaning of the term "unreasonable") and largely incompatible with modern, non-lisp praxis. 2017-11-21T01:40:52Z stassats: the alleged requirement for (typep #C(10 20) '(complex float)) to return T is the bad part 2017-11-21T01:41:02Z pfdietz: They stopped working in the spec when it still had some issues. 2017-11-21T01:41:20Z White_Flame quit (Changing host) 2017-11-21T01:41:20Z White_Flame joined #sbcl 2017-11-21T01:41:39Z nyef: I don't know if (array nil) is brilliant, stupid, brilliantly stupid, or stupidly brilliant. 2017-11-21T01:42:03Z stassats: all the complexes called with (complex a-float) wouldn't result in #C(10 20), or its equal representation 2017-11-21T01:42:04Z pfdietz: I'm totally ok with the implementors deciding to interpret the spec differently than I do, but I think it should be documented (if it isn't already). Hmm, let me look at the manuak... 2017-11-21T01:42:26Z nyef: "terminak #12 has bad keyboard, pkease fix." 2017-11-21T01:42:35Z White_Flame quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 2017-11-21T01:42:44Z stassats: but (and (typep realpart 'float) (typep imagpart 'float)) makes it sane again 2017-11-21T01:42:57Z White_Flame joined #sbcl 2017-11-21T01:43:49Z nyef: ... Ooh. The argument for SUBTYPEP taking an environment is interesting. 2017-11-21T01:44:36Z stassats: all the deftype and defstructs defined only in a particular environment? 2017-11-21T01:44:36Z pfdietz: Strictly interpreted, the subtype relationship isn't even computable, which means the upgrade- functions aren't computable either. 2017-11-21T01:44:42Z stassats: like a compilation environment 2017-11-21T01:45:13Z pfdietz: I think that was it, yes. 2017-11-21T01:45:31Z pfdietz: I only ever use environments in macros though. Useful there. 2017-11-21T01:45:52Z dougk joined #sbcl 2017-11-21T01:46:53Z stassats: love the (typep #c(0 0) '(complex (eql 0))) example 2017-11-21T01:47:04Z stassats: (complex (eql 0)) is actually a null type 2017-11-21T01:47:14Z pfdietz: Yeah. :) 2017-11-21T01:47:41Z stassats: and sbcl knows (sb-kernel:specifier-type '(complex (eql 0))) => # 2017-11-21T01:50:57Z X-Scale quit (Ping timeout: 248 seconds) 2017-11-21T01:51:49Z nyef: ... Oh, FFS. DEFTYPE: "Recursive expansion of the type specifier returned as the expansion must terminate, including the expansion of type specifiers which are nested within the expansion." 2017-11-21T01:52:21Z [X-Scale] joined #sbcl 2017-11-21T01:52:34Z Bike: deftype is pretty explicitly a macro thing, so it's not really suitable for recursive types anyway 2017-11-21T01:53:05Z nyef: Is there a specified mechanism for recursive types? 2017-11-21T01:53:17Z [X-Scale] is now known as X-Scale 2017-11-21T01:53:19Z Bike: naturally not 2017-11-21T01:53:54Z nyef: Something simple, like LIST => (OR NULL (CONS T (OR NULL LIST))) ? 2017-11-21T01:54:26Z nyef: Wait, that's not quite right. 2017-11-21T01:54:42Z pfdietz: There is not. 2017-11-21T01:54:48Z Bike: no. actually i thought pkhuong or someone had a sketch of implementing recursive types in sbcl that required plenty of work 2017-11-21T01:54:59Z nyef: How about (PROPER-LIST X) => (OR NULL (CONS X (PROPER-LIST X))) ? 2017-11-21T01:55:18Z pfdietz: Does not terminate... 2017-11-21T01:55:26Z nyef: Right, does not terminate. 2017-11-21T01:55:30Z aeth: nyef: alexandria has a proper-list 2017-11-21T01:56:08Z aeth: They implement it as `(and list (satisfies proper-list-p)) 2017-11-21T01:56:12Z Bike: types are in this weird space in CL where they're supposed to be all of optimization for the compiler, predicates, classes, and storage specification (for arrays) at the same time, and it doesn't work if you go into it 2017-11-21T01:56:52Z pfdietz: They tried to codify what was being done, I think. 2017-11-21T01:57:20Z nyef: aeth: Right, it's a SATISFIES type. That helps for type checking, but not really for anything more clever. 2017-11-21T01:57:21Z pfdietz: Don't get me started on function type declarations. 2017-11-21T01:57:57Z stassats: i had to invent my own function type declarations 2017-11-21T01:58:07Z Bike: what, did you do sfunction? 2017-11-21T01:58:17Z nyef: Oh, god. "For discrimination" vs. "for... what was it again?" 2017-11-21T01:58:18Z pfdietz: A supersmart compiler could descend into the satisfies function, nyef. 2017-11-21T01:58:25Z stassats: Bike: no, for functions that take other function 2017-11-21T01:58:31Z Bike: oh, right 2017-11-21T01:58:50Z pfdietz: My beef is that I want function definition to mean "if I call it with these types, it returns these types." 2017-11-21T01:58:54Z pfdietz: But it doesn't mean that. 2017-11-21T01:59:24Z Bike: values types are the worst bit 2017-11-21T01:59:33Z stassats: pfdietz: a supersmart compiler? what happened to the sufficiently smart compiler? 2017-11-21T01:59:48Z pfdietz: Wasn't smart enough. 2017-11-21T02:00:13Z stassats: not even born yet, already labeled not smart enough 2017-11-21T02:00:46Z stassats: well, if y'all looking for types, lisp is not the place 2017-11-21T02:00:51Z stassats: maybe some agda 2017-11-21T02:01:17Z dougk quit (Ping timeout: 250 seconds) 2017-11-21T02:01:19Z Bike: types are already undecidable, so it's super agda!! 2017-11-21T02:01:28Z pfdietz: I have a fondness for contructive logic and dependent types. 2017-11-21T02:01:45Z stassats: they can't even figure out entirely how to handle types 2017-11-21T02:04:02Z stassats: sbcl function declarations currently use a mishmash of different ways to specify stuff 2017-11-21T02:04:13Z stassats: like (defknown identity (t) t (movable foldable flushable) :derive-type #'result-type-first-arg) 2017-11-21T02:04:34Z stassats: could've been (ftype (a) a) 2017-11-21T02:04:36Z stassats: or something 2017-11-21T02:04:49Z Bike: well, with type quantification, 2017-11-21T02:04:58Z stassats: right, for some stuff 2017-11-21T02:05:45Z stassats: what about map? (map (type-specifier) somethin?) 2017-11-21T02:06:15Z dougk joined #sbcl 2017-11-21T02:06:20Z Bike: i don't think types as runtime arguments is something type people usually care about 2017-11-21T02:06:41Z pfdietz: I want type specifiers that are expressive enough to drive a random input generator, like Haskell's QuickCheck. 2017-11-21T02:06:43Z Bike: and since you can also derive a type from the other arguments it's probably fine to just say fuck it and have the type be a function to compute a type 2017-11-21T02:06:46Z stassats: doesn't really matter, this stuff is not exposed to the user and handles things ok for now 2017-11-21T02:07:11Z stassats: now that i've added the ability to specify hof types 2017-11-21T02:07:14Z Bike: how does quickcheck even work? 2017-11-21T02:07:36Z pfdietz: I am unclear on the details. Mumble functors mumble monads 2017-11-21T02:08:08Z stassats: and i want to add more stuff, like declaring arguments dynamic-extent 2017-11-21T02:10:00Z pfdietz: Is there a GC performance win if you can determine lifetime of stuff, even if you can't stack allocate it? 2017-11-21T02:10:03Z stassats: when writing programs i want everything be relaxed and easy, but with a compiler-optimization hat on, i want everything to be strict and typed 2017-11-21T02:10:55Z stassats: pfdietz: there could be, if there's no interrupts in the meantime, the allocation pointer can be reset to the original value 2017-11-21T02:11:57Z stassats: or i've been thinking about tracking hash-table uses, if they are allocated inside the function and are only called by gethash/puthash, they can avoid locking 2017-11-21T02:12:16Z stassats: even though uncontended locking is cheap, still 2017-11-21T02:12:40Z stassats: something like the is-visited pattern 2017-11-21T02:15:59Z pfdietz: One would like to be able to track if they are passed to other functions, that they don't "escape". 2017-11-21T02:16:19Z pfdietz: dynamic-extent I guess 2017-11-21T02:17:13Z stassats: the main reason i want dynamic-extent for ftype declarations is for auto stack allocating closures 2017-11-21T02:18:59Z stassats: but overall, i don't think really strict and fancy type system help solve problems any better 2017-11-21T02:20:05Z dougk quit (Ping timeout: 255 seconds) 2017-11-21T02:20:10Z nyef: Have any of you looked at the semantics of a "free" dynamic-extent declaration? (-: 2017-11-21T02:20:28Z pfdietz: What does that mean? 2017-11-21T02:20:38Z Bike: that it's not attached to a binding. 2017-11-21T02:20:44Z pfdietz: Ah. 2017-11-21T02:21:22Z Bike: i think it's pretty funny how the CLHS has this bizarre-ass definition because they didn't want to say it meant stack allocation 2017-11-21T02:22:07Z stassats: nyef: sure, but i can decide how obnoxious it is 2017-11-21T02:22:40Z pfdietz: It sort of means "at the end of this scope, no one else refers to this object". So would a free definition say something like "whenever X occurs, it's the only thing refering to its object"? 2017-11-21T02:23:11Z pfdietz: (where dead things do not count as references) 2017-11-21T02:24:24Z Bike: i think it says that something inaccessible except through the dx variable will still be inaccessible except through the dx variable. 2017-11-21T02:24:31Z pfdietz: This would mean you could move the object around and not care about other things pointing to it. 2017-11-21T02:25:07Z pfdietz: Reminds me a bit of linear types. 2017-11-21T02:26:41Z stassats: it could mean that if you have (defun foo (x) (let ((z (list x))) (declare (dynamic-extent z)) ...)) (foo (list 1)) could become stack allocated as well 2017-11-21T02:27:50Z pfdietz: Interesting use case would be &rest lists? 2017-11-21T02:27:56Z Bike: doesn't sbcl do that already. 2017-11-21T02:28:03Z Bike: i remember clhs says that but also that you'd have to watch out for foo being redefined (not that it matters for standard functions) 2017-11-21T02:28:20Z stassats: Bike: not unless it's inlined 2017-11-21T02:28:28Z pfdietz: Also want to be able to say the argument is not mutated. 2017-11-21T02:28:32Z stassats: pfdietz: &rest are already stack allocatable 2017-11-21T02:53:48Z dougk joined #sbcl 2017-11-21T02:59:17Z dougk quit (Ping timeout: 258 seconds) 2017-11-21T03:00:48Z stassats: if upgraded-complex-part-type returns the type it's passed, will that dissolve any silliness implied by the standard? 2017-11-21T03:04:07Z loke`: stassats: Out of curiousity, as this is the first time I've ever come across UPGRADED-COMPLEX-PART-TYPE; what is the purpose of this function? I can't think of any actual use for it. 2017-11-21T03:04:37Z stassats: to stir up discussions on #sbcl every five years 2017-11-21T03:06:32Z loke`: I'm reading the clhs on it... I'm still confused... “returns the part type of the most specialized complex number representation that can hold parts of type typespec”. That does that even mean? “parts of”? Does that mean that always returning BIT is valid? 2017-11-21T03:07:12Z stassats: yes 2017-11-21T03:07:42Z stassats: "The purpose of upgraded-complex-part-type is to reveal how an implementation does its upgrading." 2017-11-21T03:07:56Z stassats: so if you return random stuff from it, that's defeating this purpose 2017-11-21T03:08:11Z stassats: so what sbcl currently does is the only useful and sane way to implement it 2017-11-21T03:10:50Z stassats: loke`: parts are the real and imaginary parts 2017-11-21T03:11:30Z loke`: stassats: Fair enough... I thought I started to understand what it does, but then I realised that when passed 'FLOAT, it returns REAL. Why is that? 2017-11-21T03:11:53Z stassats: cause there isn't really a specialized type for floats 2017-11-21T03:12:07Z stassats: only for double-float and for single-float 2017-11-21T03:12:16Z loke`: Ah... right... DOUBLE_FLOAT returns DOUBLE-FLOAT. That makes sense. 2017-11-21T03:12:41Z loke`: I'm still struggling to come up with any reason to actually use this function. 2017-11-21T03:12:51Z stassats: it could conceivably return FLOAT, since there isn't actually a REAL specialization either 2017-11-21T03:13:12Z stassats: loke`: to see which type you can use efficiently with complex numbers 2017-11-21T03:13:45Z stassats: sbcl has three representations for complexes, double-float, single-float and everything else 2017-11-21T03:14:10Z stassats: i.e. bignums, fixnums and ratio just use boxed numbers, the floats are unboxed 2017-11-21T03:14:48Z loke`: Ah, I see. 2017-11-21T03:16:00Z loke`: So if I care about space, I should explicitly specify complex numbers with integer parts as #c(1.0 2.0) instead of just #c(1 2)? 2017-11-21T03:16:15Z stassats: these use the same space 2017-11-21T03:16:22Z loke`: (space, performance, etc) 2017-11-21T03:16:59Z stassats: and better performance where there's better performance for integers 2017-11-21T03:17:01Z stassats: so, no 2017-11-21T03:17:40Z stassats: ok, single floats use less space, double floats will have the same amount as fixnums 2017-11-21T03:20:16Z loke`: Got it. Thanks 2017-11-21T03:20:59Z stassats: and a lot of math operations on complexes is actually done using floats 2017-11-21T03:21:38Z stassats: so you would chose the types according to what operations you perform, not really how sbcl packs it 2017-11-21T03:21:44Z stassats: choose 2017-11-21T03:23:51Z tonton__ joined #sbcl 2017-11-21T03:25:19Z tonton quit (Ping timeout: 248 seconds) 2017-11-21T03:32:03Z loke`: stassats: Of course, you're right. It's rare to have purely integer complexes. 2017-11-21T03:32:17Z tonton__ quit (Ping timeout: 248 seconds) 2017-11-21T03:32:22Z stassats: it's rare to have complexes at all 2017-11-21T03:33:07Z loke`: stassats: True... I I've been studying quantum mechanics recently, and I guess that's why I have come across it recently. 2017-11-21T03:33:21Z nyef: With inappropriate use of DEFTYPE, can we have (COMPLEX OEDIPUS)? 2017-11-21T03:33:23Z loke`: (since SBCL is my default calculator) 2017-11-21T03:33:47Z tonton joined #sbcl 2017-11-21T04:16:39Z pfdietz: single floats are immediate in 64 bit SBCL, right? 2017-11-21T04:18:53Z stassats: two representations, boxed immediate and unboxed immediates 2017-11-21T04:20:09Z stassats: well, tagged would be a better word 2017-11-21T04:24:17Z Bike quit (Quit: Lost terminal) 2017-11-21T04:25:26Z BitPuffin|osx joined #sbcl 2017-11-21T04:26:45Z dougk joined #sbcl 2017-11-21T04:54:20Z stassats quit (Ping timeout: 268 seconds) 2017-11-21T05:11:32Z slyrus joined #sbcl 2017-11-21T05:17:13Z slyrus: Is it possible to get rid of (with appropriate declarations) the unable to optimize away %sap-alien notes when using sb-alien::alien-callback? 2017-11-21T05:36:08Z dougk__ joined #sbcl 2017-11-21T05:40:35Z dougk quit (Ping timeout: 268 seconds) 2017-11-21T05:56:38Z oleo quit (Quit: Leaving) 2017-11-21T06:00:24Z milanj quit (Quit: This computer has gone to sleep) 2017-11-21T06:01:32Z easye joined #sbcl 2017-11-21T06:22:34Z dougk joined #sbcl 2017-11-21T06:23:02Z dougk__ quit (Read error: Connection reset by peer) 2017-11-21T07:33:21Z dougk quit (Ping timeout: 240 seconds) 2017-11-21T07:47:38Z BigSafari joined #sbcl 2017-11-21T07:53:01Z shka joined #sbcl 2017-11-21T08:15:49Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-21T08:32:21Z shka quit (Ping timeout: 240 seconds) 2017-11-21T09:42:45Z angavrilov joined #sbcl 2017-11-21T09:47:01Z milanj joined #sbcl 2017-11-21T10:26:07Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2017-11-21T10:35:43Z scymtym quit (Ping timeout: 248 seconds) 2017-11-21T11:00:53Z scymtym joined #sbcl 2017-11-21T11:10:42Z m00natic joined #sbcl 2017-11-21T11:49:04Z Bicyclidine joined #sbcl 2017-11-21T12:01:37Z stassats` joined #sbcl 2017-11-21T12:02:03Z stassats`: slyrus: what sbcl version do you have? 2017-11-21T12:10:24Z milanj quit (Quit: This computer has gone to sleep) 2017-11-21T12:26:25Z milanj joined #sbcl 2017-11-21T12:34:57Z dougk joined #sbcl 2017-11-21T12:41:55Z Kevslinger joined #sbcl 2017-11-21T12:59:11Z milanj quit (Quit: This computer has gone to sleep) 2017-11-21T13:09:40Z attila_lendvai joined #sbcl 2017-11-21T13:09:40Z attila_lendvai quit (Changing host) 2017-11-21T13:09:40Z attila_lendvai joined #sbcl 2017-11-21T13:17:57Z Bicyclidine quit (Ping timeout: 240 seconds) 2017-11-21T13:26:52Z eudoxia joined #sbcl 2017-11-21T13:40:54Z stassats`: barely caught two optimization regressions 2017-11-21T13:41:30Z stassats`: i really want tests for optimizations, but no idea how, you can't really benchmark reliably microptimizations 2017-11-21T13:41:50Z DGASAU joined #sbcl 2017-11-21T13:43:45Z flip214: stassats`: look at the compilers verbose output, or look at VOPs generated? 2017-11-21T13:43:58Z flip214: in the most extreme case check the ASM output ... 2017-11-21T13:44:10Z stassats`: i only want to check one part 2017-11-21T13:44:26Z stassats`: and not adjusting tests when other parts get optimized/changed 2017-11-21T13:45:37Z flip214: well, _really_ small microbenchmarks should be reliably compiled to one assembler sequence, I guess.. and these should be stable enough 2017-11-21T13:46:28Z Bike joined #sbcl 2017-11-21T14:09:27Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-21T14:23:53Z BitPuffin|osx joined #sbcl 2017-11-21T14:27:38Z rumbler31 joined #sbcl 2017-11-21T14:31:18Z oleo joined #sbcl 2017-11-21T14:54:02Z milanj joined #sbcl 2017-11-21T14:58:57Z milanj quit (Ping timeout: 240 seconds) 2017-11-21T14:59:01Z oleo quit (Quit: Leaving) 2017-11-21T14:59:25Z sjl joined #sbcl 2017-11-21T15:02:31Z oleo joined #sbcl 2017-11-21T15:03:22Z jdz quit (Ping timeout: 264 seconds) 2017-11-21T15:06:48Z milanj joined #sbcl 2017-11-21T15:08:08Z jdz joined #sbcl 2017-11-21T15:11:46Z BitPuffin|osx quit (Ping timeout: 264 seconds) 2017-11-21T15:34:25Z BigSafari quit (Ping timeout: 248 seconds) 2017-11-21T16:13:41Z sjl quit (Quit: WeeChat 1.9) 2017-11-21T16:19:50Z sjl joined #sbcl 2017-11-21T16:26:19Z myrkraverk_ joined #sbcl 2017-11-21T16:28:42Z myrkraverk quit (Ping timeout: 268 seconds) 2017-11-21T16:29:41Z DGASAU quit (Ping timeout: 240 seconds) 2017-11-21T16:30:20Z myrkraverk_ is now known as myrkraverk 2017-11-21T16:35:19Z DGASAU joined #sbcl 2017-11-21T16:36:17Z hooman quit (Ping timeout: 248 seconds) 2017-11-21T16:41:09Z DGASAU quit (Ping timeout: 246 seconds) 2017-11-21T16:48:30Z DGASAU joined #sbcl 2017-11-21T16:53:14Z slyrus: stassats`: 1.4.1.178 2017-11-21T16:53:32Z stassats`: slyrus: test-case? 2017-11-21T16:53:46Z stassats`: since it should've been fixed 2017-11-21T16:54:43Z slyrus: callback.impure.lisp 2017-11-21T16:55:04Z stassats`: not a single note? 2017-11-21T16:55:14Z slyrus: if I C-c C-c the definition of *thunk* I get the optimization note 2017-11-21T16:55:35Z slyrus: I don't see it when I run run-tests.sh on it, but I wasn't sure if that is was because it was just getting muffled somewhere. 2017-11-21T16:56:15Z slyrus: do we support callbacks on all platforms now? 2017-11-21T16:56:31Z stassats`: ok, but you're allocating a sap in this case indeed 2017-11-21T16:56:57Z slyrus: Why does that warrant a note then? 2017-11-21T16:57:21Z stassats`: somebody decided some time ago to always issue notes on sap allocation 2017-11-21T16:58:23Z stassats`: i bet disabling that will break somebody's workflow 2017-11-21T17:01:20Z nyef: "With enough people, changing *anything* will break somebody's workflow." 2017-11-21T17:03:14Z stassats`: and now i'm wasting time on sbcl-devel@ arguing with people who don't like the amount of unfixed bugs on launchpad 2017-11-21T17:04:27Z stassats`: the blunder was engaging in any sort of communication to begin with, snarky or not 2017-11-21T17:04:51Z scymtym: the problem seems to be a misunderstanding about what sbcl is ("team", "goals", "commercial support", etc.) 2017-11-21T17:05:34Z Jesin joined #sbcl 2017-11-21T17:05:43Z scymtym: stassats`: sorry to bother you with again but (COMPILE :NODE/LVAR :DERIVE-TYPE :MISC.2) still fails on x86: https://ci.cor-lab.org/job/sbcl-master/featureset=1,label=ubuntu_trusty_32bit/lastCompletedBuild/consoleFull 2017-11-21T17:06:09Z stassats`: scymtym: i guess it got missed, about that, should :allow-warnings t include style warnings? 2017-11-21T17:06:42Z stassats`: cause originally i had allow-style-warnings t, for both tests, but on x86-64 one of the tests failed with a warning 2017-11-21T17:07:30Z dougk: accusing an open-source project of not having commercial support - wtf?? 2017-11-21T17:07:43Z scymtym: it current doesn't so you can specific. you can specify both, though. but the fact that x86 and x86_64 signal different warnings is suspicious, isn't it? 2017-11-21T17:07:55Z stassats`: scymtym: different width 2017-11-21T17:08:01Z stassats`: the integer is not a fixnum on x86 2017-11-21T17:08:14Z stassats`: that might be suspicious, but not surprising 2017-11-21T17:08:31Z scymtym: :allow-warnings t :allow-style-warnings t then 2017-11-21T17:08:40Z stassats`: i guess 2017-11-21T17:17:16Z whoman joined #sbcl 2017-11-21T17:18:24Z scymtym: stassats`: thanks. should build fine now (modulo safepoints and sb-concurrency) 2017-11-21T17:22:48Z Colleen quit (Ping timeout: 240 seconds) 2017-11-21T18:07:46Z m00natic quit (Remote host closed the connection) 2017-11-21T18:15:21Z angavrilov_ joined #sbcl 2017-11-21T18:16:37Z angavrilov quit (Ping timeout: 268 seconds) 2017-11-21T18:17:05Z shka joined #sbcl 2017-11-21T18:29:59Z DGASAU quit (Read error: Connection reset by peer) 2017-11-21T18:31:06Z DGASAU joined #sbcl 2017-11-21T18:43:46Z X-Scale quit (Quit: HydraIRC -> http://www.hydrairc.com <- \o/) 2017-11-21T18:55:15Z Bike quit (Ping timeout: 260 seconds) 2017-11-21T18:55:52Z sjl__ joined #sbcl 2017-11-21T18:58:38Z sjl quit (Ping timeout: 255 seconds) 2017-11-21T19:17:34Z eudoxia quit (Quit: Leaving) 2017-11-21T19:21:18Z sjl__ is now known as sjl 2017-11-21T19:48:23Z jack_rabbit quit (Remote host closed the connection) 2017-11-21T20:32:53Z dougk__ joined #sbcl 2017-11-21T20:35:43Z dougk quit (Ping timeout: 248 seconds) 2017-11-21T20:45:02Z BigSafari joined #sbcl 2017-11-21T20:47:05Z shka quit (Ping timeout: 268 seconds) 2017-11-21T21:06:42Z slyrus quit (Ping timeout: 260 seconds) 2017-11-21T21:07:14Z attila_lendvai joined #sbcl 2017-11-21T21:14:31Z scymtym quit (Ping timeout: 240 seconds) 2017-11-21T21:26:22Z angavrilov_ quit (Remote host closed the connection) 2017-11-21T21:36:17Z scymtym joined #sbcl 2017-11-21T22:13:07Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-21T22:14:57Z rumbler31 quit (Ping timeout: 248 seconds) 2017-11-21T22:59:05Z Bike joined #sbcl 2017-11-21T23:07:13Z sjl quit (Ping timeout: 248 seconds) 2017-11-21T23:13:12Z sjl joined #sbcl 2017-11-22T00:07:26Z cromachina joined #sbcl 2017-11-22T00:25:27Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-22T00:53:06Z sjl quit (Quit: WeeChat 1.9.1) 2017-11-22T01:15:43Z stassats` quit (Ping timeout: 248 seconds) 2017-11-22T02:53:30Z cromachina_ joined #sbcl 2017-11-22T02:56:31Z cromachina quit (Ping timeout: 248 seconds) 2017-11-22T03:20:42Z bugrum joined #sbcl 2017-11-22T04:27:39Z bugrum quit (Remote host closed the connection) 2017-11-22T04:37:06Z Bike quit (Quit: Lost terminal) 2017-11-22T04:54:47Z nyef quit (Read error: No route to host) 2017-11-22T04:58:21Z nyef joined #sbcl 2017-11-22T05:38:07Z dougk__ quit (Ping timeout: 248 seconds) 2017-11-22T06:34:46Z oleo quit (Quit: Leaving) 2017-11-22T06:41:55Z pfdietz_ joined #sbcl 2017-11-22T06:44:29Z pfdietz quit (Ping timeout: 258 seconds) 2017-11-22T07:17:56Z BigSafari joined #sbcl 2017-11-22T07:19:51Z shka joined #sbcl 2017-11-22T07:33:21Z scymtym quit (Ping timeout: 268 seconds) 2017-11-22T07:43:51Z nicdev quit (Remote host closed the connection) 2017-11-22T07:44:37Z nicdev joined #sbcl 2017-11-22T08:03:58Z angavrilov joined #sbcl 2017-11-22T08:08:21Z eschatologist quit (Ping timeout: 240 seconds) 2017-11-22T08:11:06Z shka quit (Ping timeout: 246 seconds) 2017-11-22T09:04:54Z eschatologist joined #sbcl 2017-11-22T09:05:48Z dougk joined #sbcl 2017-11-22T09:10:34Z dougk quit (Ping timeout: 264 seconds) 2017-11-22T09:17:43Z kkini joined #sbcl 2017-11-22T10:17:26Z attila_lendvai joined #sbcl 2017-11-22T10:28:47Z kkini quit (Ping timeout: 260 seconds) 2017-11-22T10:35:04Z m00natic joined #sbcl 2017-11-22T10:55:29Z pfdietz_ quit (Ping timeout: 248 seconds) 2017-11-22T10:57:15Z pfdietz joined #sbcl 2017-11-22T11:01:55Z DGASAU quit (Remote host closed the connection) 2017-11-22T11:02:19Z DGASAU joined #sbcl 2017-11-22T12:01:56Z Bike joined #sbcl 2017-11-22T12:04:38Z milanj quit (Quit: This computer has gone to sleep) 2017-11-22T12:06:24Z milanj joined #sbcl 2017-11-22T12:06:58Z Xof joined #sbcl 2017-11-22T12:06:58Z stassats joined #sbcl 2017-11-22T12:07:49Z Xof: what's the opposite of "the lurkers support me by e-mail"? 2017-11-22T12:08:00Z Xof: or maybe not the opposite, the 21st-century social media version 2017-11-22T12:08:23Z Bike: supportive DMs? 2017-11-22T12:08:30Z Xof: if only 2017-11-22T12:09:30Z Xof: foom2, dougk_: I presume sbcl is still used in Google Flights, but I realise that is a presumption 2017-11-22T12:09:56Z Xof: I think that neither of you (nor cracauer, nor fare) is still involved in that, is that right? 2017-11-22T12:25:20Z Xof: meanwhile, looking again at our complexes, and in particular our realpart/imagpart derive-type routines: I think we are already using the stas / TYPEP interpretation of what (COMPLEX X) means 2017-11-22T12:26:24Z stassats: apparently, can't have transforms with different policies but the same type, but you can have different :important values 2017-11-22T12:26:57Z Xof: so I think all that needs fixing up is the upgraded-complex-part-type definition and then I and stassats and pfdietz will all simultaneously be happy 2017-11-22T12:26:58Z stassats: since transform-policy is a function, hard to do comparison 2017-11-22T12:26:59Z Xof: or possibly "happy" 2017-11-22T12:27:27Z Xof: I wonder if I can remember how to build this thing 2017-11-22T12:27:33Z stassats: so i'm thinking, can we compile (policy (> speed space)) to an integer? 2017-11-22T12:27:55Z stassats: Xof: i'm happy with the status quo, but a change to upgraded-complex-part-type wouldn't make me unhappy 2017-11-22T12:29:39Z Xof: sbcl itself doesn't use upgraded-complex-part-type anywhere 2017-11-22T12:30:04Z stassats: i'm willing to bet nobody uses it 2017-11-22T12:30:07Z Xof: users can't usefully use it... yes 2017-11-22T12:30:57Z stassats: if i cache (policy (> speed space)) functions, i can compare them, and reduce the space occupied by the same functions, but now i have a cache 2017-11-22T12:37:03Z stassats: it's very strange that you can define two different transform because their :note is different 2017-11-22T12:37:14Z stassats: ir1-transform doesn't discriminate on notes (that would be silly) 2017-11-22T12:39:23Z stassats: 'REDEFINITION-WITH-DEFTRANSFORM does not designate a condition class. ' in xc after ignoring :Note 2017-11-22T12:39:25Z dougk joined #sbcl 2017-11-22T12:42:24Z stassats: i guess i see how it uses different :notes, but it's still unreasonable 2017-11-22T12:50:43Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-22T13:08:39Z stassats: transforming (* (/ x 44) 32) to (* x (/ 32 44)) actually makes things slower 2017-11-22T13:09:14Z stassats: if X is divisible by 44 2017-11-22T13:18:59Z Jesin quit (Quit: Leaving) 2017-11-22T13:24:58Z dougk quit (Ping timeout: 264 seconds) 2017-11-22T13:25:02Z stassats: a little bit of yak shaving, i just wanted to get rid of the sap-alien note 2017-11-22T13:33:52Z dougk joined #sbcl 2017-11-22T13:39:03Z dougk quit (Ping timeout: 246 seconds) 2017-11-22T13:41:33Z stassats: only the alien stuff was using :important t 2017-11-22T13:42:32Z dougk joined #sbcl 2017-11-22T13:46:25Z BigSafari joined #sbcl 2017-11-22T13:48:55Z BigSafari quit (Client Quit) 2017-11-22T13:52:26Z stassats: SB-SYS:FOREIGN-SYMBOL-ADDRESS seems to be not doing what it say it's doing 2017-11-22T13:52:44Z stassats: "Returns a secondary value that is true if DATAP was true and the symbol is a dynamic foreign symbol.", returns T even if it's NIL 2017-11-22T13:53:02Z stassats: and it returns a different value from sb-sys:foreign-symbol-sap 2017-11-22T13:57:06Z stassats: just needs a docstring adjustment 2017-11-22T13:58:35Z stassats: or stop returning the second value, i can't make sense of it 2017-11-22T13:59:21Z dougk quit (Ping timeout: 246 seconds) 2017-11-22T14:01:57Z BigSafari joined #sbcl 2017-11-22T14:08:26Z Bicyclidine joined #sbcl 2017-11-22T14:31:41Z Colleen joined #sbcl 2017-11-22T14:34:41Z stassats: yak shaved a single change to 7 commits 2017-11-22T14:45:05Z rumbler31 joined #sbcl 2017-11-22T14:53:04Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-22T14:57:17Z Jesin joined #sbcl 2017-11-22T14:59:54Z sjl__ joined #sbcl 2017-11-22T15:14:00Z stassats quit (Ping timeout: 268 seconds) 2017-11-22T15:21:58Z dougk joined #sbcl 2017-11-22T15:22:26Z oleo joined #sbcl 2017-11-22T15:27:20Z cromachina_ quit (Read error: Connection reset by peer) 2017-11-22T15:27:59Z dougk quit (Ping timeout: 248 seconds) 2017-11-22T15:33:09Z dougk joined #sbcl 2017-11-22T15:34:27Z eudoxia joined #sbcl 2017-11-22T15:53:46Z sjl__ is now known as sjl 2017-11-22T16:09:05Z dougk quit (Ping timeout: 240 seconds) 2017-11-22T16:22:31Z milanj quit (Quit: This computer has gone to sleep) 2017-11-22T16:25:10Z dougk joined #sbcl 2017-11-22T16:29:22Z edgar-rft quit (Quit: edgar-rft) 2017-11-22T16:33:31Z milanj joined #sbcl 2017-11-22T16:36:17Z dougk quit (Ping timeout: 260 seconds) 2017-11-22T16:37:26Z dougk joined #sbcl 2017-11-22T16:41:43Z dougk quit (Ping timeout: 258 seconds) 2017-11-22T16:43:36Z dougk joined #sbcl 2017-11-22T16:51:15Z scymtym joined #sbcl 2017-11-22T17:00:07Z dougk quit (Ping timeout: 258 seconds) 2017-11-22T17:00:35Z eudoxia quit (Quit: Leaving) 2017-11-22T17:14:36Z whoman: gnu way 2017-11-22T17:47:07Z aeth quit (Read error: Connection reset by peer) 2017-11-22T17:47:44Z aeth joined #sbcl 2017-11-22T18:15:41Z shka joined #sbcl 2017-11-22T18:29:52Z |3b|: did windows sbcl change how it decides where (user-homedir-pathname) is recently? 2017-11-22T18:33:07Z stassats joined #sbcl 2017-11-22T18:33:15Z stassats: |3b|: no 2017-11-22T18:33:26Z stassats: actually, i don't know 2017-11-22T18:33:51Z stassats: i didn't change it, but now scymtym has been doing some windows stuff 2017-11-22T18:34:43Z stassats: |3b|: 2fc73e45c983c6f77775d61c174322b5642d3d0a 3f30bba41bc66e5bd9ace84446cecac2db8b4d44 2017-11-22T18:34:53Z stassats: |3b|: what did it break for you? 2017-11-22T18:36:14Z |3b|: hmm, maybe something else broke, gitk isn't working properly either 2017-11-22T18:36:34Z |3b|: getting /Users/foo instead of msys homedir 2017-11-22T18:36:37Z |3b|: (in sbcl) 2017-11-22T18:37:43Z stassats` joined #sbcl 2017-11-22T18:37:49Z |3b|: gitk working again after restarting 2017-11-22T18:41:32Z stassats: checking 2017-11-22T18:43:19Z |3b|: yeah, looks like it used to check HOME first, now just goes straight to USERPROFILE 2017-11-22T18:44:19Z stassats: right, will put it back 2017-11-22T18:45:22Z m00natic quit (Read error: Connection reset by peer) 2017-11-22T18:47:18Z |3b|: also, condition.impure.lisp seems to be hanging at :printable-conditions 2017-11-22T18:47:34Z stassats: possible, i don't run the tests on windows 2017-11-22T18:48:31Z stassats: |3b|: HOME should be back in 2017-11-22T18:48:35Z |3b|: yeah, reasonable choice :) 2017-11-22T18:48:37Z |3b|: thanks 2017-11-22T18:49:17Z stassats: why on earth would it fail 2017-11-22T18:52:20Z stassats: it's not new, though 2017-11-22T18:55:28Z milanj quit (Quit: This computer has gone to sleep) 2017-11-22T18:55:54Z milanj joined #sbcl 2017-11-22T18:58:11Z |3b|: rebuilt to get HOME fix, and now it doesn't hang on :printable-conditions 2017-11-22T18:58:52Z stassats: huh 2017-11-22T18:58:55Z stassats: really 2017-11-22T18:59:08Z stassats: i haven't rebuilt yet, let me see 2017-11-22T18:59:17Z stassats: that would be silly, though 2017-11-22T19:00:31Z |3b|: and now that i think about it, my sbcl is patched... is that test likely to involve backtraces at all? 2017-11-22T19:00:37Z stassats: it doesn't fail in powershell... 2017-11-22T19:00:50Z stassats: the place where i can get backtraces on interrupt 2017-11-22T19:01:26Z stassats: nor in cmd.exe 2017-11-22T19:01:35Z |3b|: fixing home means my default coding system is utf8 now, that could affect printing things 2017-11-22T19:01:44Z |3b|: since it found my .sbclrc 2017-11-22T19:01:53Z |3b|: though i guess tests probably ignore sbclrc? 2017-11-22T19:02:17Z stassats: they should, but there's no encoding involved there 2017-11-22T19:03:54Z stassats: the encodings are different between cmd and mintty 2017-11-22T19:08:34Z stassats: right, not dependent on the encoding 2017-11-22T19:08:58Z stassats: wait, i didn't change it properly 2017-11-22T19:09:17Z stassats: how the hell do i, though? 2017-11-22T19:13:42Z eudoxia joined #sbcl 2017-11-22T19:17:39Z stassats: got around bactraces using with-timeout 2017-11-22T19:18:05Z stassats: stream-error-position does read-char on stdin 2017-11-22T19:19:40Z stassats: (read-sequence "" *standard-input*) reads 2017-11-22T19:22:29Z stassats: or does it 2017-11-22T19:30:39Z stassats: maybe "" is printed with zeros as "" 2017-11-22T19:33:08Z stassats: TCO is a pain here 2017-11-22T19:39:36Z stassats: unix-lseek hangs 2017-11-22T19:39:44Z |3b|: more windows test results, lots of stuff i don't recognize from last time i ran tests :/ https://gist.github.com/3b/714825e148ff605250cadac22fb57586 2017-11-22T19:40:15Z |3b|: though pathname stuff might just be intended changes without changing tests to match 2017-11-22T19:42:57Z shka quit (Ping timeout: 240 seconds) 2017-11-22T19:49:29Z stassats: setfilepointerex just hangs on stdin 2017-11-22T19:50:45Z stassats: can't run on a pipe 2017-11-22T19:51:18Z stassats: on mac, (file-position sb-sys:*stdin*) => 2734487 2017-11-22T19:51:31Z stassats: that's suspiciously large 2017-11-22T19:57:27Z stassats: for windows, the fix is easy just return NIL on pipes 2017-11-22T20:02:51Z BigSafari joined #sbcl 2017-11-22T20:08:06Z stassats: (cosh 90) decides at random what error to signal 2017-11-22T20:09:45Z stassats: ok, native-namestring got a bit broken 2017-11-22T20:13:20Z scymtym: and i tried to make things better, not worse 2017-11-22T20:13:45Z stassats: aren't we all? 2017-11-22T20:14:40Z scymtym: some more successfully than others, it seems 2017-11-22T20:15:15Z stassats: can't break a few omelettes if you want to make eggs 2017-11-22T20:16:28Z |3b| should save stderr too when running tests, commented gist with 'fatal error' from bit-vector.impure-cload.lisp 2017-11-22T20:17:28Z stassats: ugh 2017-11-22T20:19:06Z scymtym: stassats: what's the NATIVE-NAMESTRING damage? 2017-11-22T20:19:17Z stassats: C:\ MIA 2017-11-22T20:19:35Z scymtym: the extra space? 2017-11-22T20:19:44Z stassats: missing in action 2017-11-22T20:20:53Z scymtym: hm, i tested many variations of that specifically. must have missed something 2017-11-22T20:21:55Z stassats: just C:\\foo is enough 2017-11-22T20:22:54Z scymtym: ok, i will have a look 2017-11-22T20:23:09Z stassats: well, no need, i'm halfway through it 2017-11-22T20:23:29Z scymtym: thanks 2017-11-22T20:23:32Z stassats: looks like two non-nested whens got into a cond 2017-11-22T20:28:07Z stassats: i think there's been enough fixes for windows (not just for regressions) that i might have enough extra motivation to post up a binary come release time 2017-11-22T20:31:11Z |3b| wonders if the test hangs on windows got more deterministic at some point 2017-11-22T20:32:49Z |3b|: (or the non-deterministic hangs went away and were replaced by deterministic ones) 2017-11-22T20:33:52Z stassats quit (Ping timeout: 240 seconds) 2017-11-22T20:35:20Z |3b|: fairly small sample set so far, but threads.impure.lisp hangs on :all-threads-have-abort-restart. if i comment that out it hangs on (:condition-variable :notify-multiple). comment both and it finishes 2017-11-22T20:35:58Z |3b|: and now that i typed all that out it seems to have hung somewhere else on the 5th or 6th try :p 2017-11-22T20:36:30Z |3b|: so maybe somewhere in between 2017-11-22T20:47:10Z stassats`: |3b|: interrupts are particularly bad 2017-11-22T20:47:18Z stassats`: i've even seen the code that does interrupts, there's no intention for it to be right 2017-11-22T20:49:26Z |3b|: all-threads-have-abort-restart seems to be locking in the test harness rather than the test itself 2017-11-22T20:49:41Z stassats`: the only solution to windows woes i can envision: replacing safepoints with good old signals, or whatever is the equivalent on windows 2017-11-22T20:49:58Z |3b|: runs OK by itself and lookss like it exits the loop when run inside with-test 2017-11-22T20:50:15Z stassats`: although safepoints is a good idea in theory, it's not implemented right, at least wrt interrupts 2017-11-22T20:58:06Z eudoxia quit (Quit: Leaving) 2017-11-22T20:59:07Z |3b|: possibly some race with thread termination when with-tests tries to terminate it again if it isn't dead after the first time? 2017-11-22T20:59:45Z |3b|: assuming that is even a reasonable thing to do in the first place, which i'm not sure about (or i could be misreading the code instead) 2017-11-22T21:00:22Z stassats`: it's all about timing 2017-11-22T21:01:32Z stassats`: static space can't be touched close to the end on windows 2017-11-22T21:01:35Z stassats`: huh 2017-11-22T21:02:06Z |3b| thought that got fixed? 2017-11-22T21:02:29Z stassats`: evidently not, that's what your bit-vector.impure-cload demonstrates 2017-11-22T21:02:48Z Shinmera: I've had some unbelievably slow condition variables on Windows, but now I can't reproduce it. 2017-11-22T21:02:55Z Shinmera: Bah! 2017-11-22T21:05:18Z stassats`: i'm going after condition variables and mutexes on non-linux platforms, soon 2017-11-22T21:06:11Z |3b|: ah, i think maybe the other thing that was running into the problem just got commented out instead :/ 2017-11-22T21:07:13Z Shinmera: stassats`: Nice, much appreciated! 2017-11-22T21:07:20Z |3b|: and that was static-space anyway, so maybe not 2017-11-22T21:08:09Z stassats`: Shinmera: not guarantees that windows will receive any love, but i'll be in a better position to handle it after dealing with darwin 2017-11-22T21:08:37Z stassats`: |3b|: this is static space 2017-11-22T21:09:32Z |3b|: ah, :margin-size #x8000 in !gencgc-space-setup was my best guess for fix last time 2017-11-22T21:09:51Z stassats`: there's been some changes around !gencgc-space-setup lately 2017-11-22T21:10:43Z dougk joined #sbcl 2017-11-22T21:11:43Z |3b|: from last time: "looks like possibly the problem is that STATIC_SPACE_SIZE isn't a multiple of os_vm_page_size, so it tries to commit more than was reserved when it gets to the last page (page size is #x8000 = 32k, static space ends at 201ff000)" 2017-11-22T21:13:08Z |3b|: doesn't seem to fix the test though 2017-11-22T21:13:25Z stassats`: did you increase static_space_size or subtracted? 2017-11-22T21:16:43Z edgar-rft joined #sbcl 2017-11-22T21:22:57Z |3b|: not sure what specific effect that had before... i think either bigger or smaller would work as long as it was a multiple of 32k 2017-11-22T21:27:54Z stassats`: this might be a problem on other platforms as well 2017-11-22T21:32:51Z stassats`: on ppc, (/ (- sb-vm:static-space-end sb-vm:static-space-start)65536) => 255/16 2017-11-22T21:32:57Z stassats`: how does that even work? 2017-11-22T21:33:45Z stassats`: or mprotect doesn't care? 2017-11-22T21:34:16Z stassats`: i think all that :alignment and :margin-size fuzz is because the sizes are not aligned 2017-11-22T21:35:32Z dougk__ joined #sbcl 2017-11-22T21:35:34Z whoman quit (Read error: Connection reset by peer) 2017-11-22T21:39:11Z dougk quit (Ping timeout: 248 seconds) 2017-11-22T21:41:32Z |3b|: does seem to still be not a multiple of 32k, but :margin-size doesn't have any effect on it 2017-11-22T21:42:06Z stassats`: i'll try purging these margin sizes and alignments 2017-11-22T21:42:34Z stassats`: and make everything neatly page-size multiplied 2017-11-22T21:47:14Z |3b|: is page-size always going to be small enough for the immediate offset thing in the comments? 2017-11-22T21:47:42Z stassats`: |3b|: you can't make spaces smaller than page-size, so it's moot 2017-11-22T21:47:57Z stassats`: i have no idea what it is it about 2017-11-22T21:48:29Z stassats`: you can make them smaller, but the next space has to start at the alignment 2017-11-22T21:48:31Z |3b|: yeah, i guess "safepoint page" does sound like something that would be age sized :) 2017-11-22T21:49:22Z stassats`: i don't know how mprotect even works when it's not a multiple of page-size 2017-11-22T21:49:25Z stassats`: the size 2017-11-22T21:50:26Z |3b|: would it matter if /all/ of the safepoint was within immediate offset range though, or just needs to be some of it? 2017-11-22T21:51:18Z stassats`: i have no idea what safepoints need 2017-11-22T21:51:19Z |3b|: if it is just triggering a segfault or something, seems like hitting the end would work as well as the beginning 2017-11-22T21:51:36Z stassats`: but since they are need only on windows, and there's no problem with 32-bit offsets there 2017-11-22T21:52:02Z |3b|: yeah, windows is probably at least a bit 2017-11-22T21:52:14Z |3b|: *bit more interesting target than sparc+safepoints :) 2017-11-22T21:52:22Z stassats`: and if you're running safepoints anywhere else, stop 2017-11-22T21:52:31Z |3b|: "interesting" as in "# of users" i mean 2017-11-22T21:53:50Z |3b| wouldn't be surprised if sparc had more developer interest :) 2017-11-22T21:53:56Z stassats`: writing a quick c program to see what happens with mprotect and 1 byte region 2017-11-22T21:54:09Z stassats`: i guess it's just promoted to the whole page 2017-11-22T21:58:56Z |3b|: actually looks like :margin was probably just propagating stuff that was done manually before the macro, and the windows port may have always been broken that way 2017-11-22T22:00:08Z scymtym: over the years, i have seen SBCL failing to wait for sub-processes now and then. now i have a multi-threaded, sub-process-heavy application basically running 24/7 and see the problem maybe 3 times a week. iirc, my best bet when i last investigated this was the cookie stuff in run-program using non-atomic incf/decf. does that sound plausible? 2017-11-22T22:00:39Z |3b|: or maybe was OK on 32bit windows, and only broken when 64bit was added 2017-11-22T22:01:48Z stassats`: ok, mmaping 2 bytes maps 4096, no surprise here 2017-11-22T22:02:26Z stassats`: so what is the !gencgc-space-setup trying to achieve by chopping off "for good measure" bytes off spaces, when it may not be a multiple of pagesize 2017-11-22T22:03:32Z stassats`: scymtym: what are the cookies doing exactly? 2017-11-22T22:03:58Z scymtym: they track how many copy-to-stream things are still running in background, i think 2017-11-22T22:04:11Z |3b|: looks like original intent was 1 page: "#define STATIC_SPACE_SIZE(0x0ffff000) /* 256MB - 1 page */" 2017-11-22T22:04:45Z stassats`: |3b|: works where it's 4096, but now it chops off 4096 everywhere 2017-11-22T22:04:55Z stassats`: and there's no reason to have unprotected pages between spaces 2017-11-22T22:05:01Z stassats`: it's not stack or anything 2017-11-22T22:07:51Z stassats`: scymtym: why is it in a list? 2017-11-22T22:08:24Z stassats`: i guess i don't what to change that anyway 2017-11-22T22:09:10Z scymtym: the list seems to serve as a mutable cell that is available before the process instance is created - it is very strange 2017-11-22T22:09:53Z scymtym: just doing atomic-{incf,decf} might be enough to fix my particular problem but i really don't like how this works 2017-11-22T22:10:46Z stassats`: is it accessed from multiple threads? 2017-11-22T22:11:12Z scymtym: i think that can happen via serve-all-events 2017-11-22T22:12:05Z stassats`: i don't even want to think about serve events 2017-11-22T22:12:06Z |3b|: missing page goes back to cmucl, not finding any reason for it there either though 2017-11-22T22:12:19Z scymtym: stassats`: same 2017-11-22T22:18:37Z stassats`: the test will not work if don't have unmapped pages, though 2017-11-22T22:18:48Z stassats`: it already shouldn't work on ppc 2017-11-22T22:19:21Z attila_lendvai quit (Quit: Leaving.) 2017-11-22T22:19:47Z stassats`: i think i can make a test without too many tricks 2017-11-22T22:27:04Z stassats`: using mmap, i guess that wouldn't work on windows either 2017-11-22T22:27:14Z stassats`: not a big deal 2017-11-22T22:27:48Z |3b|: ah, might help if i set :margin-size on right architecture when i tried to test that :p 2017-11-22T22:29:32Z whoman joined #sbcl 2017-11-22T22:31:09Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-22T22:31:15Z |3b|: and for whatever it is worth, the test passes with :margin-size #x8000 in the right place 2017-11-22T22:32:12Z stassats`: sure, there'll be no test anymore, but make-static-vector fails on windows before saying not enough space 2017-11-22T22:34:21Z stassats`: and the old code fails with my mmap rework 2017-11-22T22:37:49Z angavrilov quit (Remote host closed the connection) 2017-11-22T22:38:21Z rumbler31 quit (Ping timeout: 240 seconds) 2017-11-22T22:40:40Z Bicyclidine quit (Ping timeout: 260 seconds) 2017-11-22T22:46:14Z Jesin quit (Quit: Leaving) 2017-11-22T22:48:01Z sjl quit (Ping timeout: 248 seconds) 2017-11-22T22:55:18Z |3b|: should INTERRUPT-THREAD be checking for (ZEROP OS-THREAD) instead of or in addition to (NOT OS-THREAD)? 2017-11-22T22:56:08Z |3b|: defstruct says it is sb!vm:word, defaults to 0 and is reset to 0 on exit from thread 2017-11-22T22:56:18Z stassats`: it should 2017-11-22T23:00:34Z stassats`: having cross-dependencies problems in build-order for +backend-page-bytes+ 2017-11-22T23:03:24Z stassats`: i don't want to rewire all backends and just rearranging the files doesn't seem to work 2017-11-22T23:14:06Z Bicyclidine joined #sbcl 2017-11-22T23:22:23Z dougk__ quit (Read error: Connection reset by peer) 2017-11-22T23:22:36Z stassats`: ten build attempts later 2017-11-22T23:22:38Z dougk joined #sbcl 2017-11-22T23:23:08Z stassats`: and virtualloc doesn't like something 2017-11-22T23:30:15Z stassats`: +backend-page-bytes+ appears to be wrong on windows, then 2017-11-22T23:30:32Z stassats`: why the hell all that :alignment nonsense? 2017-11-22T23:30:33Z stassats`: sigh 2017-11-22T23:36:05Z stassats`: getconf PAGE_SIZE is 65536 2017-11-22T23:38:02Z nyef: Win32 allocation region granularity is 64k. 2017-11-22T23:38:35Z stassats`: nyef: and +backend-page-bytes+ is 32K and there's some roundabout dance in gencgc-space-setup 2017-11-22T23:39:03Z nyef: Every so often, I wonder if doing a windows port for SBCL was a mistake or not. 2017-11-22T23:39:14Z stassats`: well, people use it 2017-11-22T23:39:17Z |3b| appreciates it, mistake or not :) 2017-11-22T23:40:12Z nyef: Had there not been a stupid, stupid bug in the handling of the D flag, it'd've been working a full year or more earlier than it was, and I'd've probably had motivation and hardware to keep working on it. 2017-11-22T23:41:54Z stassats`: the comment in x86/params makes me cry 2017-11-22T23:41:57Z Bicyclidine quit (Ping timeout: 240 seconds) 2017-11-22T23:42:30Z stassats`: backend 2017-11-22T23:42:41Z stassats`: https://github.com/sbcl/sbcl/blob/master/src/compiler/x86/backend-parms.lisp#L38 2017-11-22T23:43:47Z nyef: "The real page size is 512" what? 2017-11-22T23:43:57Z nyef: Are they running NT on a bloody VAX? 2017-11-22T23:47:45Z stassats`: and i don't have time for more pathname bugs 2017-11-22T23:48:05Z stassats`: running crossbuild-runner and pushing 2017-11-23T00:01:59Z stassats`: ok, saner gencgc-space-setup 2017-11-23T00:24:04Z stassats` quit (Ping timeout: 268 seconds) 2017-11-23T01:01:47Z stassats joined #sbcl 2017-11-23T01:03:31Z Jesin joined #sbcl 2017-11-23T01:05:28Z kkini joined #sbcl 2017-11-23T01:09:53Z White_Flame quit (Ping timeout: 248 seconds) 2017-11-23T01:31:45Z White_Flame joined #sbcl 2017-11-23T01:41:53Z Jesin quit (Quit: Leaving) 2017-11-23T01:45:36Z Jesin joined #sbcl 2017-11-23T02:45:17Z stassats quit (Ping timeout: 268 seconds) 2017-11-23T04:49:56Z dougk quit (Ping timeout: 255 seconds) 2017-11-23T04:59:28Z milanj quit (Quit: This computer has gone to sleep) 2017-11-23T05:56:24Z pfdietz quit 2017-11-23T06:19:48Z myrkraverk: what does it mean that sb-concurrency failed self tests, when building 1.4.1? 2017-11-23T06:19:59Z myrkraverk: Do I have no thread support? 2017-11-23T06:34:40Z oleo quit (Quit: Leaving) 2017-11-23T06:48:15Z whoman quit (Quit: Leaving) 2017-11-23T07:00:35Z Bike quit (Quit: Lost terminal) 2017-11-23T07:05:28Z shka joined #sbcl 2017-11-23T07:06:02Z BigSafari joined #sbcl 2017-11-23T07:30:09Z scymtym quit (Ping timeout: 248 seconds) 2017-11-23T08:11:28Z |3b|: myrkraverk: you probably have thread support, but something is broken somewhere, and if you install that build you won't have the sb-concurrency contrib 2017-11-23T08:12:01Z myrkraverk: What is the sb-concurrency contrib? Can I live without it? 2017-11-23T08:12:39Z |3b|: it adds some things like lock-free queues... depends on whether you want to use it, or use something that uses it 2017-11-23T08:13:01Z |3b|: might try building again and see if it passes, particularly on windows 2017-11-23T08:13:33Z |3b|: though might save the test output first for potential bug reports 2017-11-23T08:14:20Z |3b|: output/building-contrib.sb-concurrency in build dir 2017-11-23T08:15:21Z |3b|: what os/CPU? 2017-11-23T08:16:18Z myrkraverk: Ubuntu/x64 2017-11-23T08:16:55Z myrkraverk: Ubuntu 14.04.5 LTS -- so old linux. 2017-11-23T08:17:23Z |3b|: hmm, that should work, any unusual build options? 2017-11-23T08:19:01Z |3b|: and can you paste that building-contrib.sb-concurrency file from failed build somewhere if you still have it? 2017-11-23T08:25:28Z cryptomarauder[m joined #sbcl 2017-11-23T08:26:41Z cryptomarauder[m: hello. is sbcl fully functioning on FreeBSD? 2017-11-23T08:28:22Z scymtym joined #sbcl 2017-11-23T08:28:28Z loke`: cryptomarauder[m: Yes. 2017-11-23T08:28:35Z loke`: At least last time I tried. 2017-11-23T08:31:03Z cryptomarauder[m: ok, cause I have a fresh install and loading quicklisp complains about Invalid source registry (:DIRECTORY (NIL "systems/")) (will be skipped) 2017-11-23T08:31:40Z cryptomarauder[m: that is it's complaining from wtihin ASDF/SOURCE-REGISTRY:INVALID-SOURCE-REGISTRY 2017-11-23T08:32:15Z cryptomarauder[m: maybe bad asdf config i'll poke around there 2017-11-23T08:32:31Z shka quit (Ping timeout: 248 seconds) 2017-11-23T08:41:37Z edgar-rft quit (Ping timeout: 248 seconds) 2017-11-23T08:42:32Z |3b|: cryptomarauder[m: is XDG_CACHE_HOME environment variable set? 2017-11-23T08:42:44Z cryptomarauder[m: one sec 2017-11-23T08:43:04Z |3b|: cryptomarauder[m: actually, that would probably be XDG_DATA_HOME 2017-11-23T08:43:10Z cryptomarauder[m: in shell? 2017-11-23T08:43:10Z |3b|: or maybe XDG_CONFIG_DIRS 2017-11-23T08:43:22Z |3b|: yeah (or wherever you started sbcl from) 2017-11-23T08:43:30Z cryptomarauder[m: no not set then 2017-11-23T08:44:06Z cryptomarauder[m: what is suposed to set that and I'll let the maintainer know 2017-11-23T08:44:06Z |3b|: (sb-ext:posix-getenv "XDG_DATA_HOME") or similar to check from within sbcl 2017-11-23T08:44:22Z |3b|: doesn't need to be set, just needs to not be set incorrectly 2017-11-23T08:44:47Z cryptomarauder[m: yeah it's unset 2017-11-23T08:44:54Z |3b| thought i'd seen similar error5s from it being set wrong (though i think that was ubuntu or something) 2017-11-23T08:46:12Z SamSkulls joined #sbcl 2017-11-23T08:47:22Z |3b|: next guess would be something configured asdf wrong (or configured it in a way that became wrong after an upgrade or something)... lots of ways to configure asdf though, so not sure easiest way to debug that 2017-11-23T08:48:12Z cryptomarauder[m: yeah I'm looking at the different debug output from running the top level form again 2017-11-23T09:10:06Z Lord_Nightmare2 joined #sbcl 2017-11-23T09:11:56Z Lord_Nightmare quit (Ping timeout: 268 seconds) 2017-11-23T09:11:58Z Lord_Nightmare2 is now known as Lord_Nightmare 2017-11-23T09:22:57Z kkini quit (Quit: ERC (IRC client for Emacs 25.1.1)) 2017-11-23T09:32:11Z myrkraverk: paste.lisp.org is down; where is a good place to put a paste? 2017-11-23T09:34:29Z loke`: Pastebin? 2017-11-23T09:34:36Z loke`: Gist? 2017-11-23T09:37:08Z myrkraverk: http://myrkraverk.com/~johann/building-contrib.sb-concurrency 2017-11-23T09:37:11Z myrkraverk: I just put it there. 2017-11-23T10:13:19Z |3b| is confused by that build log :/ it will have to wait for someone more awake to look at it :p 2017-11-23T10:16:12Z myrkraverk: I tried to build it again, but (of course) get the same error in sb concurrency. 2017-11-23T10:16:29Z |3b|: myrkraverk: so x8664, old ubuntu, building as root? any options to make.sh? any idea if the system was heavily loaded when the tests were running? 2017-11-23T10:16:48Z |3b|: same error is good, much more likely to get fixed that way :) 2017-11-23T10:17:26Z myrkraverk: Test SB-CONCURRENCY-TEST::FRLOCK.1 failed Form: (HANDLER-CASE (WITH-TIMEOUT 10 (SB-CONCURRENCY-TEST::TEST-FRLOCKS)) (TIMEOUT (SB-CONCURRENCY-TEST::C) (ERROR "~A" SB-CONCURRENCY-TEST::C))) Expected values: NIL NIL Actual value: #. 2017-11-23T10:19:44Z myrkraverk: The build I had previously was 1.3.12 (on that host). 2017-11-23T10:20:00Z myrkraverk: I'll see if I can find a working version. 2017-11-23T10:22:35Z |3b|: you are building from 1.4.1 release tarball? 2017-11-23T10:23:54Z myrkraverk: Yes. 2017-11-23T10:24:12Z myrkraverk: Next I'll try 1.3.21. 2017-11-23T10:29:09Z |3b|: builds ok for me on debian 8.9 x8664, from tarball or from git 2017-11-23T10:29:56Z |3b|: only other things i can thing of to try are building as a normal user instead of root, and building current code from git in case whatever it is has been fixed 2017-11-23T10:30:50Z |3b| doesn't think root should matter, but it is at least a little bit unusual 2017-11-23T10:32:59Z myrkraverk: No, no options to ./make.sh. 2017-11-23T10:33:37Z myrkraverk: And no, I don't think the machine was heavily loaded. 2017-11-23T10:33:51Z myrkraverk: I'm watching this build, and the load seems fine. 2017-11-23T10:34:12Z |3b|: anything unusual about CPU? (slow, huge # of cores, virtualized, etc) 2017-11-23T10:34:22Z myrkraverk: It's a virtualized environment. 2017-11-23T10:34:29Z myrkraverk: A virtual host. 2017-11-23T10:35:16Z myrkraverk: Most likely OpenVZ. 2017-11-23T10:35:43Z myrkraverk: Interesting. 1.3.21 -- the same frlock failure. 2017-11-23T10:36:15Z myrkraverk: Now, when it's doing the tests, the machine is under heavy load. 2017-11-23T10:36:25Z myrkraverk: The build itself seemed fine. 2017-11-23T10:37:54Z myrkraverk: Apparently 12 cores. 2017-11-23T10:39:06Z |3b|: could be https://bugs.launchpad.net/sbcl/+bug/1087955 2017-11-23T10:40:38Z |3b|: maybe try editing contrib/sb-concurrency/tests/test-frlock.lisp and change *minimum-sleep* from 0.0001 to 0.01 on line 23 or so and build again 2017-11-23T10:41:45Z myrkraverk: Ok, I'll try that. 2017-11-23T10:42:44Z |3b| wonders if the system has a lower than usual resolution clock... vague memory of that being true of some virtualization setups 2017-11-23T10:44:29Z myrkraverk: possibly. I'll have to check a little later; I have other things to do right now. 2017-11-23T10:45:38Z stassats joined #sbcl 2017-11-23T10:46:03Z stassats: the contrib itself works, or most of it, the test just fails 2017-11-23T10:46:32Z stassats: is it reasonable to not install a contrib just because a test fails? i may change that, has never seemed reasonable to me 2017-11-23T10:47:04Z m00natic joined #sbcl 2017-11-23T10:47:20Z |3b| would probably pick something in between,like having an easy way to say install it anyway 2017-11-23T10:48:42Z stassats: that's more work than either option 2017-11-23T10:49:10Z stassats: there's an easy manual way 2017-11-23T10:49:23Z stassats: which i sometimes have to employ for windows or arm64 binaries 2017-11-23T10:49:57Z stassats: touch obj/asdf-cache/sb-concurrency/test-passed.test-report 2017-11-23T10:53:46Z scymtym: stassats: :bit-position-overrun fails on x86: https://ci.cor-lab.org/job/sbcl-master/featureset=1,label=ubuntu_trusty_32bit/lastCompletedBuild/consoleFull 2017-11-23T10:54:44Z stassats: interesting 2017-11-23T10:54:46Z scymtym: also, can we change bit-vector.impure-cload.lisp to just bit-vector.impure.lisp and then control the compiler noise? 2017-11-23T10:54:47Z milanj joined #sbcl 2017-11-23T10:54:59Z stassats: why is there so many optimization notes? 2017-11-23T10:55:08Z stassats: are we building contribs with speed? 2017-11-23T10:55:11Z stassats: tests 2017-11-23T10:55:16Z scymtym: no, top of test file 2017-11-23T10:55:59Z stassats: ok, just i'll make it say "no notes, please" 2017-11-23T10:56:01Z scymtym: i would rather have bit-vector.impure.lisp and use specific policies (or iterate over all policies) for the tests that need it 2017-11-23T10:56:44Z scymtym: or is any of the tests actually about the file compiler? 2017-11-23T10:57:14Z stassats: i don't think so 2017-11-23T10:57:42Z stassats` joined #sbcl 2017-11-23T11:01:04Z scymtym: i can't find a justification in the commit logs either. the test file just started like that and stayed that way, it seems 2017-11-23T11:01:38Z stassats: ha, expecting any explanations from the old commits 2017-11-23T11:02:40Z scymtym: ignoring that it conflates multiple issues, the first commit has a reasonable message 2017-11-23T11:03:27Z stassats: for some reason, in the cvs times that was always the case 2017-11-23T11:03:54Z stassats: multiple unrelated changes in a single commit 2017-11-23T11:04:22Z scymtym: maybe some aspect of making/sharing a commit was expensive back then 2017-11-23T11:04:31Z scymtym: ok, i will try to translate the file 2017-11-23T11:04:38Z stassats: maybe no editor integration 2017-11-23T11:04:54Z stassats: scymtym: let me fix it first, so that there's no merge conflicts 2017-11-23T11:05:22Z scymtym: stassats: ok 2017-11-23T11:05:37Z stassats: i remember using emacs vcs when sbcl used cvs, so it wasn't all that much different from git 2017-11-23T11:05:50Z stassats: except for that version.lisp-expr 2017-11-23T11:05:55Z stassats: ugh, was that annoying 2017-11-23T11:08:39Z scymtym: emacs vcs is still a long way from magit, though 2017-11-23T11:08:50Z stassats: i'm still using it 2017-11-23T11:09:02Z stassats: cursing and swearing sometimes 2017-11-23T11:17:18Z stassats: i see, not enough alignment 2017-11-23T11:17:42Z stassats: but 4096 is, so, how come? 2017-11-23T11:26:39Z stassats: oh, (ash address -2) is not a fixnum 2017-11-23T11:27:08Z stassats: so room on x86 is broken with higher addresses? 2017-11-23T11:28:15Z stassats: oh, it just needs to be negative 2017-11-23T11:33:42Z stassats sends a wake notification to scymtym 2017-11-23T11:33:51Z stassats: can rewrite now 2017-11-23T11:38:34Z stassats: my windows license has expired and now it shuts down after some time 2017-11-23T11:38:41Z stassats: and i'm too lazy to set up a new vm 2017-11-23T11:39:26Z stassats: maybe i could try an azure vm, so that i could work from the laptop, although the latency would probably hurt 2017-11-23T11:42:43Z scymtym: stassats: thanks 2017-11-23T11:50:31Z stassats: maybe i could use some of that newfangled container technology, so that i don't have to set up after each vm change 2017-11-23T11:50:51Z Xof: anyone got anything vitally urgent pending or can I freeze? 2017-11-23T11:51:16Z stassats: Xof: some windows pathname stuff, probably a regression, so you can 2017-11-23T11:57:19Z sjl__ joined #sbcl 2017-11-23T11:57:59Z stassats: looks i have enough free credits to run an azure vm for two months 2017-11-23T12:02:48Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-23T12:08:35Z myrkraverk: |3b|: the compilation fails, even with that message. 2017-11-23T12:08:38Z myrkraverk: Err, *change. 2017-11-23T12:14:59Z myrkraverk: On the other hand, when I change the timeout to 60 (from 10) the test passes. 2017-11-23T12:15:28Z myrkraverk: So afaict now, I have 1.4.1 with sb-concurrency (though I don't know how to test it quickly) 2017-11-23T12:16:34Z stassats: nothing really changes about sb-concurrency if the test passes 2017-11-23T12:16:55Z stassats: you could simulate its passing with touch obj/asdf-cache/sb-concurrency/test-passed.test-report 2017-11-23T12:18:33Z scymtym suspects the 10 second timeout in the sb-concurrency tests to be responsible for some of the build failures he is seeing as well 2017-11-23T12:19:16Z stassats: increasing the time it just sweeping things under the rug 2017-11-23T12:19:34Z scymtym: how so? 2017-11-23T12:20:46Z scymtym: isn't it plausible that the test sometimes just takes longer on a loaded vm? 2017-11-23T12:21:05Z stassats: the test should be rewritten to pass independently of the time it takes it 2017-11-23T12:21:09Z stassats: to run 2017-11-23T12:21:50Z scymtym: around the test there is timeout so it fails rather than hanging 2017-11-23T12:22:09Z scymtym: the test itself does not employ timing-based logic 2017-11-23T12:22:38Z stassats: then it's performing too much work 2017-11-23T12:23:03Z scymtym: that may be 2017-11-23T12:23:06Z stassats: and it shouldn't hang 2017-11-23T12:23:20Z scymtym: but it is hard to predict how long a given amount will take 2017-11-23T12:23:47Z stassats: why are we running a test that can hang? 2017-11-23T12:25:09Z scymtym: in case of a defect, executing any code can hang 2017-11-23T12:25:25Z stassats: and we're not slapping timeouts around all code 2017-11-23T12:25:56Z scymtym: yes. other test harnesses do, though 2017-11-23T12:26:05Z scymtym: i'm not sure what the best solution is 2017-11-23T12:26:24Z stassats: sb-concurrency fails without timeouts on relaxed memory models 2017-11-23T12:26:36Z stassats: so it's generally not in a good shape 2017-11-23T12:26:41Z stassats: at least frlock 2017-11-23T12:26:41Z scymtym: agreed 2017-11-23T12:27:10Z scymtym: i'm just saying that some test failures could be avoided by having the test do less work and/or relaxing the timeout 2017-11-23T12:28:07Z stassats: it takes a minute to build sbcl without contribs here, i wouldn't be pleased for a simple test taking up another minute 2017-11-23T12:28:31Z stassats: does it do any work when it hangs? 2017-11-23T12:28:37Z stassats: live lock, dead lock? 2017-11-23T12:29:58Z stassats: maybe it shouldn't create 100 threads 2017-11-23T12:32:56Z stassats: and i can't makes heads or tails with this azure stuff, i can't find a promised cheap vm i could run for 12 months 2017-11-23T12:32:57Z stassats: oh well 2017-11-23T12:33:29Z jdz: Shouldn't it be categorized as a "stress test" and be invoked only manually if the user wants? 2017-11-23T12:34:03Z stassats: even an optional test should be working 2017-11-23T12:34:41Z scymtym: the duration of successful test runs is not affected by the timeout. it only determines how long it takes to turn a slow or hanging run into a failure 2017-11-23T12:35:21Z jdz: I see. 2017-11-23T12:35:59Z stassats: does it need more threads than cores to test scheduling effects? 2017-11-23T12:36:05Z stassats: or is 100 just arbitrary? 2017-11-23T12:37:25Z flip214: I believe that recent (~ 2 months?) SBCLs have a false positive regarding "note: deleting unreachable code". 2017-11-23T12:37:42Z stassats: flip214: it is deleting code that is reachable? 2017-11-23T12:37:52Z stassats: that would be bad 2017-11-23T12:38:36Z flip214: stassats: seems to be highly sensitive to the exact code 2017-11-23T12:39:07Z stassats: does it produce wrong results or crashes? 2017-11-23T12:39:32Z flip214: I had an ITERATE clause (FINALLY (RETURN (make-instance '...))) that was marked as unreachable, but the function returned the right result 2017-11-23T12:40:02Z flip214: so the code might not have been removed at all 2017-11-23T12:40:08Z stassats: if it returns the right result then it's not really a false positive 2017-11-23T12:40:14Z flip214: rather "must not have been removed" 2017-11-23T12:40:20Z jdz: flip214: also you might have been looking at a different thing. 2017-11-23T12:40:25Z flip214: well, the note is false 2017-11-23T12:40:27Z Xof: or it might have been removed once from a complicated code-walky macroexpansion 2017-11-23T12:40:32Z stassats: well, if it's saying it has removed something, then it's not lying 2017-11-23T12:40:35Z Xof: which included the code in question in multiple places 2017-11-23T12:40:54Z stassats: loops have a lot of repeated stuff 2017-11-23T12:42:05Z stassats: flip214: how do you know it's false? 2017-11-23T12:42:27Z flip214: Xof: yeah, I guessed something like this perhaps 2017-11-23T12:42:34Z stassats: and iterate is too high a level too be looking at it 2017-11-23T12:42:44Z flip214: stassats: well, the function only had that single exit point, and returned the right result. 2017-11-23T12:42:57Z stassats: did you look at the macroexpansion? 2017-11-23T12:43:10Z flip214: so if the code was removed, it would have returned a wrong result 2017-11-23T12:43:25Z stassats: did you take it and compile it to see what is actually removed? 2017-11-23T12:45:27Z stassats: and where is the code in question? 2017-11-23T12:45:39Z flip214: stassats: which macroexpansion? the first one doing the DEFUN around? the ITERATE clause, once? twice? 2017-11-23T12:45:59Z stassats: indefinitely 2017-11-23T12:46:01Z stassats: i.e all 2017-11-23T12:47:31Z flip214: doing that on the DEFUN gives me a listing with only one occurrence of the function call that's being told as "unreachable" 2017-11-23T12:47:48Z stassats: so you still have the code, share it 2017-11-23T12:48:01Z flip214: LOOP-END-NIL (PROGN (RETURN-FROM NIL ...)) 2017-11-23T12:48:18Z flip214: and the RETURN-FROM expression is being given as unreachable 2017-11-23T12:48:43Z stassats: can't help if you don't share the code 2017-11-23T12:48:51Z flip214: yeah, I understand. 2017-11-23T12:48:58Z sjl__ quit (Ping timeout: 264 seconds) 2017-11-23T12:48:59Z flip214: but it's not in good shape yet... 2017-11-23T12:49:04Z flip214: I could send you a tarball 2017-11-23T12:49:17Z flip214: is there something that reduces a testcase automatically? 2017-11-23T12:50:10Z stassats: your single function requires a tarball? 2017-11-23T12:51:07Z flip214: grrr, simply truncating two FLETs outside the ITERATE makes the note go away already 2017-11-23T12:51:17Z flip214: so much for making the test case easier 2017-11-23T12:51:57Z stassats: just send the function verbatim 2017-11-23T12:52:10Z stassats: don't worry if it doesn't compile without dependencies 2017-11-23T12:52:12Z flip214: stassats: incoming via email 2017-11-23T12:52:22Z flip214: you'll need ITERATE in the current package, though 2017-11-23T12:52:38Z stassats: i can figure it out, i think 2017-11-23T12:53:00Z stassats prepares to steal trade secrets from flip214's code 2017-11-23T12:55:42Z flip214: stassats: good luck! -- or rather, thanks for all the help! 2017-11-23T12:57:03Z flip214: If you can reproduce the notes, I'm already happy enough. 2017-11-23T12:57:58Z stassats: sb-concurrency using up all ram on windows, that's what people are saying when theire vms are locking up 2017-11-23T12:59:30Z flip214: hmmm, right now I even have that note with a split-up version of the loop .... same code given as unreachable 2017-11-23T13:03:31Z stassats: i don't get any notes, probably because it's missing some type declarations 2017-11-23T13:03:53Z stassats: from structure accessors and what not 2017-11-23T13:06:23Z flip214: well, do you want a tarball or zip? 2017-11-23T13:06:48Z stassats: well, ok 2017-11-23T13:07:58Z stassats: mailbox-trivia.3 just went and exhausted the heap 2017-11-23T13:08:02Z stassats: nice test 2017-11-23T13:09:53Z attila_lendvai joined #sbcl 2017-11-23T13:10:02Z stassats: or mailbox-timeouts 2017-11-23T13:10:57Z flip214: mail incoming 2017-11-23T13:11:52Z stassats: a tarbomb, not cool! 2017-11-23T13:11:59Z dougk joined #sbcl 2017-11-23T13:13:04Z stassats: why do you call ql:quickload in your .asd file? 2017-11-23T13:15:53Z stassats: 18 notes for that function now 2017-11-23T13:17:01Z flip214: no bomb at all! 2017-11-23T13:17:32Z flip214: because then it'll automatically do the QL via ASDF:LOAD-OP as well. 2017-11-23T13:17:36Z flip214: good.... 2017-11-23T13:17:56Z flip214: I guess as soon as you understand the cause you'll be able to produce a much smaller testcase 2017-11-23T13:17:58Z stassats: you only need cl-interpol for .asd to work, can you system-depends-on 2017-11-23T13:18:13Z stassats: the cause is BRANCH is always T 2017-11-23T13:19:23Z flip214: no, it isn't. Can't be, tests confirm that. 2017-11-23T13:19:57Z flip214: and it can never be T, that has to return a TREE-NODE instance. 2017-11-23T13:20:21Z stassats: T as in not nil 2017-11-23T13:21:14Z flip214: still not true, BRANCH comes from a hash-table-lookup and that returns NIL most of the time. 2017-11-23T13:22:42Z flip214: and regarding testing windows, perhaps https://bellard.org/jslinux/vm.html?url=https://bellard.org/jslinux/win2k.cfg&mem=192&graphic=1&w=1024&h=768 would work for you ;) 2017-11-23T13:22:45Z stassats: flip214: you are calling (SETQ ORIG-FILE (TREE-NODE-SEEN-IN-FILE-ID BRANCH)) 2017-11-23T13:22:52Z stassats: if it's nil, it's an error 2017-11-23T13:23:02Z stassats: so it assumes after that it's always a TREE-NODE 2017-11-23T13:24:14Z flip214: yeah, this already has a (IF BRANCH) around it in current code 2017-11-23T13:24:43Z stassats: use (and branch ..) for stuff like that 2017-11-23T13:24:45Z flip214: even with that, and the loop split up into 7 functions, MAKE-ASM-FILE is still unreachable 2017-11-23T13:25:04Z flip214: see the STORE-ORIG-FILE var, there I did exactly that 2017-11-23T13:25:10Z stassats: with (and branch ...) there's 18 -> 1 note 2017-11-23T13:25:31Z flip214: still the MAKE-ASM-FILE one, right? 2017-11-23T13:25:39Z flip214: in the FINALLY clause? 2017-11-23T13:28:07Z stassats: no, it's the COERCE 2017-11-23T13:28:18Z stassats: just as i originally suspected 2017-11-23T13:28:53Z stassats: (defun foo (x) (setf x (list 1 2 3)) (the simple-vector (coerce x 'vector))) 2017-11-23T13:31:39Z nyef: There's no requirement that COERCE to VECTOR return a SIMPLE-VECTOR, is there? 2017-11-23T13:31:53Z stassats: nyef: no 2017-11-23T13:32:48Z Bike joined #sbcl 2017-11-23T13:35:46Z flip214: there's no such THE in my code, anyway... just a type declaration on the structure slot 2017-11-23T13:37:55Z stassats: oh my 2017-11-23T13:38:00Z stassats: it's sill, is isn't it 2017-11-23T13:38:05Z stassats: (every (lambda (x) (present-in-form first x 0)) (source-path-forms path)) 2017-11-23T13:38:11Z stassats: but (source-path-forms path) is NIL 2017-11-23T13:40:09Z stassats: although that branch is not taken 2017-11-23T13:49:26Z stassats: ok, maybe that wouldn't return NIL when the branch is taken 2017-11-23T13:49:55Z stassats: but the issue here is that when a cast is deleted it notes since it is introduced by THE and is present in the original code 2017-11-23T13:51:05Z stassats: so i guess THE should break up the source path of the cast, would anyone care that their cast is deleted? 2017-11-23T13:54:23Z flip214: if the cast was manually inserted, yes. 2017-11-23T13:55:34Z stassats: but if say it's a (the fixnum x) and it's decided that it is a fixnum, it may not be a fixnum on a 32-bit platform 2017-11-23T13:55:47Z stassats: you won't go on removing THE per-platform 2017-11-23T13:55:53Z flip214: and even for automatic casts like mine here (with a type on a structure slot), I'd like to know if it gets deleted IIF the types become incompatible 2017-11-23T13:56:04Z flip214: although that'll become a different warning anyway, I guess 2017-11-23T13:59:34Z stassats: something's a bit different than a redundant cast here 2017-11-23T14:01:17Z stassats: these casts are in a block of their own, and they are unreachable, so one of the IFs destinations becomes unreachable, but why are both IF legs having casts? 2017-11-23T14:01:38Z stassats: or they simple-vector branch flows around the casts 2017-11-23T14:13:46Z stassats: so, some optimization pass turns (the vector (if x y #())) into (if x (the vector y) #()) 2017-11-23T14:13:55Z stassats: and the branch gets deleted, resulting in silly notes 2017-11-23T14:14:53Z stassats: i think no notes for casts should be issued at all 2017-11-23T14:17:24Z hajovonta joined #sbcl 2017-11-23T14:17:29Z hajovonta: hi 2017-11-23T14:18:45Z stassats: especially since user introduced and not deleted casts slide up, so compiler generated deleted branches receive user supplied casts => a note 2017-11-23T14:18:57Z stassats: hajovonta: hi 2017-11-23T14:19:27Z stassats: if anything inside a cast is deleted, it would be reported 2017-11-23T14:19:33Z stassats: flip214: fixing it after the freeze 2017-11-23T14:20:22Z stassats: i.g. (defun foo (m) (setf m (list 1)) (if (vectorp m) (the vector m) #())) still produces a note, but not two notes 2017-11-23T14:20:42Z flip214: stassats: thank you very much! 2017-11-23T14:20:43Z stassats: so, it's good idea all around 2017-11-23T14:20:49Z nyef: ... "i.g."? 2017-11-23T14:20:55Z flip214: in general, I guess 2017-11-23T14:21:00Z flip214: or e.g. 2017-11-23T14:21:05Z stassats: id gratia 2017-11-23T14:21:26Z stassats: it's all greek to me 2017-11-23T14:21:32Z flip214: stassats: would you care to tell me whether it was lisp experience or some SBCL diagnose thingie that made you find that so quickly? 2017-11-23T14:21:41Z nyef: Heh. 2017-11-23T14:21:50Z flip214: In the latter case I hope to learn something from you... 2017-11-23T14:22:36Z nyef: flip214: My belief is that stassats knows a whole bunch of lot about how Python's IR1 works and is treated. Certainly far more than I. 2017-11-23T14:22:38Z stassats: first i set (setf *break-on-signals* 'compiler-note) to see where the note is issued, went there, poked my nose at what's going on 2017-11-23T14:23:05Z stassats: printed out some blocks with print-all-blocks, then went up the optimization tree to see from what it's being buchered 2017-11-23T14:23:16Z flip214: stassats: thanks a lot, will take a note of that. 2017-11-23T14:24:19Z stassats: plus enough clue to know where not to look 2017-11-23T14:24:40Z stassats: you don't always know where to look, but it helps to know where certainly not too look 2017-11-23T14:24:49Z stassats: (sometimes it backfires and it's in the last place you look) 2017-11-23T14:26:39Z stassats: ((some people say "well, it's always the last place" but if you order all places you can look at by the probability of finding something there, the last place would be at the end of the queue)) 2017-11-23T14:27:56Z flip214: [well, "the last place" is correct by definition, because you won't look any farther when you've found it] 2017-11-23T14:28:00Z flip214: thanks a lot! 2017-11-23T14:28:20Z flip214: I'm well aware that I don't have the slightest clue, but perhaps that'll change in the distant future.... 2017-11-23T14:28:59Z stassats: fixing compiler bugs helps 2017-11-23T14:29:27Z stassats: (sorry for fixing them all) 2017-11-23T14:30:45Z hajovonta: yeah... you should be ashamed of that :D 2017-11-23T14:31:34Z hajovonta: stassats: I've noticed that with SBCL+Hunchentoot+Windows, the core cpu consumption is 100% 2017-11-23T14:31:49Z stassats: hajovonta: are you using the latest usocket? 2017-11-23T14:32:19Z stassats: https://github.com/usocket/usocket/pull/30 2017-11-23T14:32:26Z stassats: https://github.com/edicl/hunchentoot/issues/129 2017-11-23T14:32:48Z nyef: You'll learn quite a bit about IR2 and whatnot by bringing up a new backend, or fixing issues with one of the under-maintained backends, but that doesn't particularly help with IR1. 2017-11-23T14:33:11Z stassats: hajovonta: there has been no release with that fix 2017-11-23T14:33:29Z stassats: just try pulling usocket into local-projects 2017-11-23T14:33:34Z hajovonta: hm,.. thanks. I think I have something from October since it was the month when I got the computer that runs Windows 2017-11-23T14:34:05Z hajovonta: stassats: I'll try that, thanks. 2017-11-23T14:34:15Z stassats: the latest release is from octobor... last year 2017-11-23T14:34:28Z hajovonta: no, I mean this year 2017-11-23T14:34:30Z hajovonta: :) 2017-11-23T14:34:42Z hajovonta: about a month ago 2017-11-23T14:35:22Z hajovonta: I installed the latest SBCL, hunchentoot, quicklisp, everything 2017-11-23T14:35:36Z stassats: nyef: it's a combination of fixing bugs, gaining a clue to do some new optimization (which is equivalent of making a new bug and fixing it), then gaining more clue to fix harder bugs, rinse and repeat 2017-11-23T14:35:47Z stassats: can't go fighting the boss bugs right away 2017-11-23T14:35:58Z stassats: hajovonta: yeah, it's not in quicklisp yet 2017-11-23T14:36:28Z hajovonta: stassats: that's actually good news. It means this is the problem most probably 2017-11-23T14:36:51Z hajovonta: I'll try and get back to you tomorrow 2017-11-23T14:37:16Z stassats: get back to the usocket people and pester them into making a new release 2017-11-23T14:37:24Z oleo joined #sbcl 2017-11-23T14:38:05Z nyef: stassats: I'm aware of how it happens. I'm some amount of the way through the process myself. You happen to be much further along when it comes to IR1. 2017-11-23T14:38:26Z stassats: nyef: it's all the recent pfdietz bugs 2017-11-23T14:41:08Z dougk quit (Ping timeout: 240 seconds) 2017-11-23T14:42:00Z hajovonta: stassats: do you recommend updating the ticket with a comment? 2017-11-23T14:42:15Z stassats: hajovonta: just opening a new issue 2017-11-23T14:42:28Z stassats: it's not the only fixed thing 2017-11-23T14:43:43Z dougk joined #sbcl 2017-11-23T14:51:12Z stassats quit (Remote host closed the connection) 2017-11-23T15:14:51Z eudoxia joined #sbcl 2017-11-23T15:57:48Z dougk quit (Ping timeout: 240 seconds) 2017-11-23T15:58:29Z dougk joined #sbcl 2017-11-23T16:09:45Z scymtym quit (Remote host closed the connection) 2017-11-23T16:09:58Z scymtym_ joined #sbcl 2017-11-23T16:43:32Z myrkraverk quit (Ping timeout: 260 seconds) 2017-11-23T16:53:19Z hajovonta quit (Quit: hajovonta) 2017-11-23T17:01:06Z phf joined #sbcl 2017-11-23T17:01:45Z phf left #sbcl 2017-11-23T17:11:03Z stassats`: now sb-concurrency just spins both cores 2017-11-23T17:11:07Z stassats`: without growing in size 2017-11-23T17:11:22Z stassats`: sometimes it deadlocks, sometimes it exhausts heap 2017-11-23T17:25:03Z stassats`: scymtym_: sb-concurrency should test more reliably on windows now 2017-11-23T17:25:15Z stassats`: disabled the tests that use interrupt-thread 2017-11-23T17:26:04Z stassats`: i'll also mark all tests that use interrupt-thread as :skipped-on :win32 2017-11-23T17:29:31Z |3b|: does that include all the ones that start threads and let DEFTEST try to kill them at the end? 2017-11-23T17:30:18Z stassats`: would probably be disabled 2017-11-23T17:30:22Z |3b|: with-test i mean 2017-11-23T17:31:29Z stassats`: i had a rough fix for interrupt problems, but i've lost and don't remember what it did 2017-11-23T17:31:32Z |3b|: as far as i could tell that is the problem with :all-threads-have-abort-restart hanging 2017-11-23T17:31:37Z stassats`: and it ailed somewhere else 2017-11-23T17:32:32Z dougk quit (Ping timeout: 260 seconds) 2017-11-23T17:32:33Z |3b|: though naturally turning on debut output makes it much less likely to hang 2017-11-23T17:34:13Z dougk joined #sbcl 2017-11-23T17:41:39Z scymtym_: stassats`: i will try building on both win32 vms again 2017-11-23T17:42:43Z stassats`: scymtym_: i think after i mark all tests as :broken-on :win32 you could also start running the test suite 2017-11-23T17:45:12Z stassats`: i think i'll try making a non-safepoint win32 build, someday 2017-11-23T17:46:18Z scymtym_: stassats`: even if the test suite finishes reliably, there will be no detailed reports since i patch the required functionality into the test harness during the build 2017-11-23T17:51:42Z dougk quit (Read error: Connection reset by peer) 2017-11-23T17:52:00Z dougk joined #sbcl 2017-11-23T17:55:51Z stassats`: whatever's appropriate, but there's no a possibility 2017-11-23T17:56:02Z stassats`: i know i'll run it more often knowing it wouldn't hang 2017-11-23T17:57:27Z scymtym_: in the long run, i want to support different kinds of reports in the test harness 2017-11-23T18:00:43Z stassats`: safepoints are nice, and the compiler instrumentation seems to be adequate, but the runtime part should be just thrown out and rewritten 2017-11-23T18:02:06Z stassats`: it's already hard as it is getting concurrency code right, but when you have to wade through undocumented code it's 10x harder 2017-11-23T18:06:27Z m00natic quit (Remote host closed the connection) 2017-11-23T18:14:05Z stassats`: interrupt-thread is not that important for applications, but a must for interactive development 2017-11-23T18:16:27Z dougk quit (Ping timeout: 268 seconds) 2017-11-23T18:18:28Z shka joined #sbcl 2017-11-23T18:22:48Z stassats`: no color in mintty for test output, boo 2017-11-23T18:24:20Z stassats`: there is support for cmd.exe color, i guess msys2 i had used way back when adding colors to test output used cmd.exe 2017-11-23T18:24:58Z dougk joined #sbcl 2017-11-23T18:38:06Z stassats`: cleaned up most tests, but not enough color 2017-11-23T18:44:18Z Jesin quit (Quit: Leaving) 2017-11-23T18:50:16Z nyef: Maybe the solution is to document how safepoints work, then make the decision on throwing out the current runtime implementation or not? 2017-11-23T18:50:58Z stassats`: nyef: that is the problem, i don't know how they work currently 2017-11-23T18:52:14Z scymtym_: stassats`: tests finished: https://ci.cor-lab.org/job/sbcl-master-windows/label=Windows_7_64bit/1433/console (this is not the most recent commit) 2017-11-23T18:54:49Z |3b| wonders if "skipped" tests should be split into "not applicable" and "too broken to even try to see if it works" 2017-11-23T18:55:52Z |3b| similarly thinks "expected failure" might not suggest quite the right thing as far as implementation quality... "known failure" or something might be closer 2017-11-23T18:56:25Z stassats`: |3b|: it's marked :broken-on :win32 2017-11-23T18:56:50Z |3b|: more talking about the test results output 2017-11-23T18:57:13Z stassats`: there's skipped, and skipped (broken) 2017-11-23T18:57:21Z |3b|: ah, cool 2017-11-23T18:57:47Z stassats`: one test has :fails-on :skipped-on and :broken-on at once 2017-11-23T18:58:16Z |3b| is thinking about how windows build sounds a lot better if it can reliably finish its test suite with no unexpected failure/unhandled error, even if the actual implementation hasn't changed 2017-11-23T19:00:22Z stassats`: for most people, interrupt-thread is not critical 2017-11-23T19:01:11Z |3b|: yeah, hasn't gotten any worse either, so still quite useable :) 2017-11-23T19:01:57Z stassats`: but it means more frequent tests 2017-11-23T19:02:04Z |3b|: right 2017-11-23T19:02:21Z stassats`: less error creeping in that aren't situated in threads 2017-11-23T19:02:50Z stassats`: isatty is 0 on mintty, no idea how to enable colors that way 2017-11-23T19:25:07Z Colleen quit (Ping timeout: 260 seconds) 2017-11-23T19:34:39Z dougk quit (Ping timeout: 250 seconds) 2017-11-23T19:40:19Z stassats`: arm64, sparc, ppc builds good 2017-11-23T19:40:28Z stassats`: waiting on mips, the slowest 2017-11-23T19:46:04Z whoman joined #sbcl 2017-11-23T20:00:37Z stassats`: uh oh, Internal error #9 "Object is of the wrong type." at 0x31828648 2017-11-23T20:00:39Z stassats`: (on mips) 2017-11-23T20:01:09Z stassats`: i don't remember whether it's the be/le issue 2017-11-23T20:02:35Z shka quit (Ping timeout: 240 seconds) 2017-11-23T20:04:10Z stassats`: i don't think so 2017-11-23T20:10:16Z dougk joined #sbcl 2017-11-23T20:21:32Z bugrum joined #sbcl 2017-11-23T20:24:01Z dougk quit (Ping timeout: 248 seconds) 2017-11-23T20:42:15Z scymtym_ quit (Ping timeout: 250 seconds) 2017-11-23T20:45:03Z stassats`: doing echo '#include "genesis/config.h"' >sbcl.h 2017-11-23T20:45:04Z stassats`: echo '#include "genesis/constants.h"' >>sbcl.h 2017-11-23T20:45:06Z stassats`: in a loop 2017-11-23T20:45:37Z stassats`: ok, did it several times and stopped 2017-11-23T20:49:22Z BigSafari joined #sbcl 2017-11-23T20:54:08Z Jesin joined #sbcl 2017-11-23T20:54:53Z eudoxia quit (Quit: Leaving) 2017-11-23T21:01:43Z stassats`: found the mips problem 2017-11-23T21:21:00Z scymtym joined #sbcl 2017-11-23T22:12:24Z stassats`: taskset --cpu-list 0 zsh 2017-11-23T22:12:26Z stassats`: DONT_CLEAN_SBCL_CONTRIB=1 ./make-target-contrib.sh sb-concurrency 2017-11-23T22:12:38Z stassats`: Test SB-CONCURRENCY-TEST::FRLOCK.1 failed 2017-11-23T22:12:51Z stassats`: and slow as hell for other tests 2017-11-23T22:14:04Z stassats`: i thought i would have to downclock, but using a single core, like it's 1999, is enough 2017-11-23T22:14:51Z stassats`: i wonder what'll happen if i actually dust off a single core system from early 2000 2017-11-23T22:18:01Z stassats`: fails even with two core 2017-11-23T22:18:16Z stassats`: but i have two cores on my laptop, maybe HT helps 2017-11-23T22:27:08Z milanj quit (Quit: This computer has gone to sleep) 2017-11-23T22:27:55Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-23T22:39:37Z Jesin quit (Quit: Leaving) 2017-11-23T22:42:37Z stassats`: pegged at 800MHz and one core, it takes 23 seconds 2017-11-23T22:44:00Z stassats`: two cores -- 12, three -- 9.7, four -- 7.4, 8 (4 with HT) -- 4 2017-11-23T22:46:37Z stassats`: so, find out the number of course, multiple by 12 and make that the number of threads 2017-11-23T22:49:09Z stassats`: $ getconf _NPROCESSORS_ONLN => 160 2017-11-23T22:49:14Z stassats`: maybe cap at 200 2017-11-23T23:18:54Z nyef: The part of my brain that is in charge of horrifying scenarios suggests a NUMA system such as the SGI Origin 3000, maxed out in terms of CPUs. 2017-11-23T23:19:55Z nyef: Requires a full data center in order to host all of the racks involved in such a system... And your lock contention is now spread over *every* machine in the data center. 2017-11-23T23:20:09Z nyef: Because it's all one virtual system. 2017-11-23T23:20:35Z stassats`: not introducing sb-ext:number-of-cpus during the freeze, but maybe later will be useful 2017-11-23T23:20:46Z stassats`: will just alien-funcall sysconf in frlock tests 2017-11-23T23:25:35Z stassats`: oh i know why all the tests slow down, when a time-out happens in frlock it doesn't kill any of the threads 2017-11-23T23:29:55Z dougk joined #sbcl 2017-11-23T23:31:12Z attila_lendvai quit (Quit: Leaving.) 2017-11-23T23:33:02Z kini quit (Ping timeout: 260 seconds) 2017-11-23T23:34:01Z scymtym: stassats`: i wanted to add to add that since forever. my name was SB-EXT:MACHINE-PROCESSOR-COUNT 2017-11-23T23:35:05Z kini joined #sbcl 2017-11-23T23:39:00Z stassats`: just needs software-processor-count for symmetry 2017-11-23T23:39:45Z myrkraverk joined #sbcl 2017-11-23T23:40:44Z scymtym: :) 2017-11-23T23:42:58Z stassats`: hopefully no more grief from sb-concurrency, timing related at least 2017-11-23T23:43:13Z stassats`: still would fail on relaxed memory models 2017-11-23T23:43:25Z stassats`: but nobody runs those 2017-11-23T23:43:32Z stassats`: well, maybe arm64 2017-11-23T23:44:34Z scymtym: i will report on the failure frequency. our vm setup seems pretty susceptible to the timing related issues 2017-11-23T23:46:03Z stassats`: for the test suite timing stuff, increasing time outs is sensible 2017-11-23T23:47:19Z stassats`: but for a simple user we don't want to hang their single-core machine by our overeager tests 2017-11-23T23:47:57Z stassats`: or a dual core, which is more prevalent these days 2017-11-23T23:51:14Z stassats`: time to hibernate during the freeze 2017-11-24T01:00:38Z milanj joined #sbcl 2017-11-24T01:10:54Z bugrum quit (Remote host closed the connection) 2017-11-24T01:30:00Z dougk__ joined #sbcl 2017-11-24T01:32:49Z dougk quit (Ping timeout: 258 seconds) 2017-11-24T01:54:12Z dougk__ quit (Read error: Connection reset by peer) 2017-11-24T01:54:59Z dougk joined #sbcl 2017-11-24T02:19:45Z dougk quit (Ping timeout: 248 seconds) 2017-11-24T02:37:51Z stassats` quit (Ping timeout: 248 seconds) 2017-11-24T02:44:35Z dougk joined #sbcl 2017-11-24T03:12:13Z oleo quit (Remote host closed the connection) 2017-11-24T03:12:45Z oleo joined #sbcl 2017-11-24T04:00:47Z shka joined #sbcl 2017-11-24T05:28:44Z milanj quit (Quit: This computer has gone to sleep) 2017-11-24T05:36:03Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-24T06:08:34Z Bike quit (Quit: Lost terminal) 2017-11-24T06:18:00Z flip214: nyef: therefore "https://lwn.net/Articles/590243/ 2017-11-24T06:18:00Z flip214: MCS locks and qspinlocks 2017-11-24T06:18:07Z flip214: sorry, mispaste. 2017-11-24T06:18:25Z flip214: the title should've been in quotes. 2017-11-24T06:32:46Z hooman joined #sbcl 2017-11-24T06:33:57Z oleo quit (Quit: Leaving) 2017-11-24T06:35:11Z whoman quit (Ping timeout: 248 seconds) 2017-11-24T06:36:46Z BigSafari joined #sbcl 2017-11-24T07:08:17Z scymtym quit (Ping timeout: 248 seconds) 2017-11-24T07:36:26Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-24T07:36:59Z DeadTrickster joined #sbcl 2017-11-24T07:41:26Z DeadTrickster quit (Read error: Connection reset by peer) 2017-11-24T07:42:12Z DeadTrickster joined #sbcl 2017-11-24T08:12:15Z shka quit (Ping timeout: 248 seconds) 2017-11-24T08:40:15Z scymtym joined #sbcl 2017-11-24T08:54:27Z myrkraverk: What does it mean when I get bad file descriptor error from SB-BSD-SOCKETS:SOCKET-RECEIVE ? 2017-11-24T08:55:02Z myrkraverk: When I'm actually using usocket:socket-receive (but that's irrelevant). 2017-11-24T08:55:07Z myrkraverk: is it a bug in my operating system? 2017-11-24T09:01:32Z myrkraverk: I'll try updating my local SBCL to 1.4.1, but I suspect it's a bug in my os if anything. 2017-11-24T09:02:45Z myrkraverk: this happens when I receive a datagram, not when the system call is made. 2017-11-24T09:04:44Z scymtym: myrkraverk: can you provide your sbcl version, a backtrace and, if possible, code to reproduce the problem? 2017-11-24T09:05:09Z myrkraverk: This is sbcl 1.3.14 (old). 2017-11-24T09:11:30Z myrkraverk: http://www.myrkraverk.com/~johann/datagram-fail.cl 2017-11-24T09:11:33Z myrkraverk: Source and backtrace. 2017-11-24T09:11:59Z scymtym: myrkraverk: thanks 2017-11-24T09:12:38Z myrkraverk: I believe it's irrelevant, but i"m using NSPR (C code) to send the datagram. 2017-11-24T09:16:44Z myrkraverk: Hmm, another annoyance. Updating to 1.4.1 makes my slime fail. 2017-11-24T09:17:21Z myrkraverk: Lock on package SB-KERNEL violated when interning CLOBBER-IT while in package SWANK. 2017-11-24T09:18:58Z scymtym: that's the name of a formerly deprecated restart which now has been removed from SBCL. i'm afraid you have to update SLIME as well 2017-11-24T09:20:17Z myrkraverk: That's bothersome. I'm using an old slime because it works with xemacs -- I guess I need to cherry pick the fix for this. 2017-11-24T09:20:36Z myrkraverk: I'll do that later, now it's more important that I get some work done. 2017-11-24T09:22:47Z dougk quit (Ping timeout: 260 seconds) 2017-11-24T09:26:54Z scymtym: myrkraverk: are you sure you are setting the server up correctly? all cases i know of go like 1) make socket 2) bind 3) receive 2017-11-24T09:27:39Z myrkraverk: this is UDP, and the exact same code has worked before, both on OS X and Linux. 2017-11-24T09:29:00Z scymtym: sure, if it wasn't UDP, it would be 1) make socket 2) bind 3) listen 4) accept 5) receive 2017-11-24T09:29:40Z myrkraverk: Ah. Well -- this is iirc directly from a datagram howto with usocket. 2017-11-24T09:29:41Z scymtym: i'll look at usocket to see what it does with host nil and port nil 2017-11-24T09:30:00Z myrkraverk: Maybe usocket has changed in the mean time. I don't know. 2017-11-24T09:31:14Z scymtym: no, i think you are right. usocket does everything in SOCKET-CONNECT 2017-11-24T09:34:40Z scymtym: your example works here (simulating a client with nc -u 127.0.0.1 9999). doing the same sb-bsd-sockets directly also works 2017-11-24T09:34:54Z scymtym: so maybe it is about your setup 2017-11-24T09:36:13Z myrkraverk: Yeah -- it could be a bug in OS X for all I know. 2017-11-24T09:37:02Z scymtym: you could also try nc (netcat) if you suspect the UDP client to be at fault 2017-11-24T09:40:13Z myrkraverk: true, but I'll move one for now and just do my development on a VPS. 2017-11-24T10:30:07Z attila_lendvai joined #sbcl 2017-11-24T10:30:07Z attila_lendvai quit (Changing host) 2017-11-24T10:30:07Z attila_lendvai joined #sbcl 2017-11-24T10:36:33Z attila_lendvai quit (Quit: Leaving.) 2017-11-24T11:10:39Z m00natic joined #sbcl 2017-11-24T11:10:58Z milanj joined #sbcl 2017-11-24T11:48:50Z stassats joined #sbcl 2017-11-24T11:49:25Z stassats: myrkraverk: moving on is not always the best direction 2017-11-24T11:50:04Z myrkraverk: Maybe not, but I want to work on my main task now, not side tasks (such as fixing slime and figuring out why I'm getting that weird error) 2017-11-24T11:50:10Z stassats: whenever you have an unexplained problem it might come back at any time 2017-11-24T12:00:10Z myrkraverk: True. And I think I ran into it on the VPS also, earlier, but not right now (not when I tried to make a simple test case). 2017-11-24T12:00:33Z myrkraverk: I'll try to hunt it down later. 2017-11-24T12:00:48Z stassats: the snippet you pasted is all it takes? 2017-11-24T12:01:44Z myrkraverk: It did it for me, with slime -- but maybe I need more to trigger it. 2017-11-24T12:02:08Z stassats: and the sender part? 2017-11-24T12:02:27Z myrkraverk: I'll can paste the sender later. 2017-11-24T12:07:48Z scymtym: stassats: i think the thread scaling doesn't work. for *CPUS*, the MIN should be MAX and in TEST-FRLOCKS, the MAX should be MIN, right? 2017-11-24T12:08:35Z stassats: aybe 2017-11-24T12:08:58Z scymtym: should i push my local fix? 2017-11-24T12:09:18Z stassats: yes 2017-11-24T12:09:48Z scymtym: (funnily, the inverted logic made the test fail 100 % on our vms) 2017-11-24T12:11:07Z stassats: taskset doesn't affect _sc_nprocessors_onln, i couldn't test it adequately 2017-11-24T12:13:41Z scymtym: no worries 2017-11-24T12:14:24Z stassats: if exposing the number of cpus, should _sc_nprocessors_onln or _sc_nprocessors_conf be used? 2017-11-24T12:14:36Z stassats: is there something that is affected by taskset? 2017-11-24T12:14:50Z scymtym: is that "online" and "configured"? 2017-11-24T12:15:02Z stassats: i had an arm target that shut down one core and reported as being single core, until there was some cpu activity 2017-11-24T12:16:19Z stassats: i think it affected both _sc_nprocessors_conf, though 2017-11-24T12:17:18Z stassats: there's sched_getaffinity 2017-11-24T12:21:37Z stassats: this'll have to be figured out before making a public api 2017-11-24T12:21:49Z stassats: since stuff like docker will also be unaffected by _sc_nprocessors_conf 2017-11-24T12:59:27Z BigSafari quit (Ping timeout: 240 seconds) 2017-11-24T13:03:48Z Bike joined #sbcl 2017-11-24T13:06:34Z Kevslinger joined #sbcl 2017-11-24T13:32:57Z stassats quit (Ping timeout: 240 seconds) 2017-11-24T13:33:25Z stassats joined #sbcl 2017-11-24T13:35:10Z stassats` joined #sbcl 2017-11-24T13:36:52Z foom joined #sbcl 2017-11-24T13:38:51Z foom2 quit (Ping timeout: 250 seconds) 2017-11-24T14:20:32Z milanj quit (Quit: This computer has gone to sleep) 2017-11-24T14:21:09Z oleo joined #sbcl 2017-11-24T14:23:03Z stassats` quit (Ping timeout: 250 seconds) 2017-11-24T14:24:08Z stassats quit (Ping timeout: 255 seconds) 2017-11-24T14:29:50Z milanj joined #sbcl 2017-11-24T14:32:21Z dougk joined #sbcl 2017-11-24T14:34:48Z milanj quit (Quit: This computer has gone to sleep) 2017-11-24T14:38:53Z sjl__ joined #sbcl 2017-11-24T15:00:17Z sjl__ quit (Ping timeout: 248 seconds) 2017-11-24T15:07:00Z eudoxia joined #sbcl 2017-11-24T15:17:54Z scymtym quit (Ping timeout: 246 seconds) 2017-11-24T15:31:18Z nyef: flip214: Interesting article. Thank you. 2017-11-24T15:34:14Z flip214: nyef: you're welcome! 2017-11-24T15:35:09Z flip214: minion: tell stassats: ONLINE is the right value. that's affected by taskset, too. 2017-11-24T15:35:09Z minion: stassats: no, it's not 2017-11-24T15:35:32Z flip214: minion: note for stassats: ONLINE is the right value. that's affected by taskset, too. 2017-11-24T15:35:32Z minion: Remembered. I'll tell stassats when he/she/it next speaks. 2017-11-24T16:20:21Z eschatologist quit (Ping timeout: 240 seconds) 2017-11-24T16:28:30Z milanj joined #sbcl 2017-11-24T16:56:10Z scymtym joined #sbcl 2017-11-24T17:10:53Z stassats joined #sbcl 2017-11-24T17:11:38Z stassats` joined #sbcl 2017-11-24T17:11:53Z stassats left #sbcl 2017-11-24T17:13:06Z stassats`: flip214: not really 2017-11-24T17:13:06Z minion: stassats`, memo from flip214: ONLINE is the right value. that's affected by taskset, too. 2017-11-24T17:18:55Z Colleen joined #sbcl 2017-11-24T17:22:39Z dougk quit (Ping timeout: 248 seconds) 2017-11-24T17:28:58Z hooman quit (Read error: Connection reset by peer) 2017-11-24T17:29:48Z whoman joined #sbcl 2017-11-24T17:32:41Z myrkraverk quit (Ping timeout: 240 seconds) 2017-11-24T17:33:04Z flip214: stassats`: well, yes, the "online" value is affected by taskset. I've tested that a few months ago. 2017-11-24T17:33:16Z stassats`: a tested if a minute ago 2017-11-24T17:33:26Z flip214: hmmm, which kernel and glibc, so that I can relate? 2017-11-24T17:33:44Z stassats`: something old 2017-11-24T17:34:21Z flip214: well, with recent versions it works as expected. 2017-11-24T17:38:34Z flip214: if it's a linux-only thing, perhaps you'd have more luck parsing /proc/self/status:Cpus_allowed: ff 2017-11-24T17:38:46Z flip214: or /proc/self/status:Cpus_allowed_list: 0-7 2017-11-24T17:39:54Z flip214: taskset itself uses sched_getaffinity() 2017-11-24T17:46:15Z shka joined #sbcl 2017-11-24T17:49:49Z pkhuong: I have an x86 with > 250 hardware threads if that can help testing 2017-11-24T17:51:02Z stassats`: i capped the number of threads to 200, for sb-concurrency 2017-11-24T17:51:39Z stassats`: otherwise it's cpus*12 2017-11-24T17:51:53Z stassats`: but on a 64-threaded machine that proved to be too much 2017-11-24T17:52:26Z stassats` quit (Quit: ZNC 1.6.2+deb1 - http://znc.in) 2017-11-24T17:53:01Z flip214: I could ask for access to a PPC machine with 160 threads... 2017-11-24T17:57:11Z pkhuong: yeah, I don't see a reason for such a wide dynamic scaling either 2017-11-24T17:57:32Z stassats joined #sbcl 2017-11-24T17:57:53Z pkhuong: if we want to test contention under context switches, we can restrict the set of CPUs (and I guess give up on OS X) 2017-11-24T17:57:54Z stassats: flip214: 4.13.16, taskset has no effect on _SC_NPROCESSORS_ONLN 2017-11-24T17:58:10Z pkhuong: ^ my experience as well 2017-11-24T17:58:42Z stassats: flip214: i have access to such a machine myself, sbcl doesn't run on it 2017-11-24T17:59:37Z Jesin joined #sbcl 2017-11-24T18:00:16Z m00natic quit (Remote host closed the connection) 2017-11-24T18:00:37Z stassats: but this _SC_NPROCESSORS_ONLN stuff is only relevant if we ever make an exported interface 2017-11-24T18:00:43Z stassats: maybe it's better not to 2017-11-24T18:01:12Z stassats: it's better to expose sysconf with all the constants, sched_[sg]etaffinity 2017-11-24T18:01:20Z stassats: or better for a third party to provide that 2017-11-24T18:02:43Z stassats: it's probably better to work directly with affinity, and make things like (sb-thread:make-thread ... :affinity ...) 2017-11-24T18:03:42Z stassats: but i have no particular need for any of that 2017-11-24T18:13:09Z eudoxia quit (Quit: Leaving) 2017-11-24T19:01:51Z eudoxia joined #sbcl 2017-11-24T19:12:46Z dougk joined #sbcl 2017-11-24T19:33:38Z sjl joined #sbcl 2017-11-24T19:54:52Z flip214: stassats: it does, in a PPC32 VM ;) 2017-11-24T19:55:12Z flip214: sadly not in PPC64LE, yeah. 2017-11-24T19:58:06Z flip214: hmmm, I'm *sure* that I did test the _NPROCESSORS_ONLN thing about a year ago... and yes, I specifically used taskset too. 2017-11-24T20:09:57Z flip214: but now taskset has no effect, and neither have cgroups. did that change, or what did I test back then? 2017-11-24T20:32:17Z eudoxia quit (Remote host closed the connection) 2017-11-24T20:33:35Z dougk quit (Ping timeout: 255 seconds) 2017-11-24T20:43:30Z stassats: were you testing your recollection? 2017-11-24T20:47:45Z josemanuel joined #sbcl 2017-11-24T20:48:40Z dougk joined #sbcl 2017-11-24T21:18:02Z phf joined #sbcl 2017-11-24T21:20:24Z phf: docs on dynamic-extent mention that "stack space is limited, so allocation of a large vector may cause stack overflow. For this reason potentially large vectors, which might circumvent stack overflow detection, are stack allocated only in zero safety policies.", what is "large" in this case? where is the decision re "potentially" being made? 2017-11-24T21:20:46Z stassats: at compile time 2017-11-24T21:35:18Z dougk quit (Read error: Connection reset by peer) 2017-11-24T21:35:33Z dougk joined #sbcl 2017-11-24T21:42:41Z eschatologist joined #sbcl 2017-11-24T22:06:42Z zulu_inuoe joined #sbcl 2017-11-24T22:10:32Z shka quit (Ping timeout: 240 seconds) 2017-11-24T22:31:59Z dougk quit (Ping timeout: 248 seconds) 2017-11-24T23:07:54Z josemanuel quit (Quit: leaving) 2017-11-24T23:25:59Z dougk joined #sbcl 2017-11-24T23:26:43Z attila_lendvai joined #sbcl 2017-11-24T23:26:43Z attila_lendvai quit (Changing host) 2017-11-24T23:26:43Z attila_lendvai joined #sbcl 2017-11-24T23:52:39Z hooman joined #sbcl 2017-11-25T00:16:30Z dougk quit (Ping timeout: 268 seconds) 2017-11-25T00:30:55Z dougk joined #sbcl 2017-11-25T00:42:37Z dougk quit (Read error: Connection reset by peer) 2017-11-25T00:42:53Z dougk joined #sbcl 2017-11-25T01:00:22Z attila_lendvai quit (Quit: Leaving.) 2017-11-25T01:23:17Z sjl___ joined #sbcl 2017-11-25T01:41:36Z sjl___ quit (Ping timeout: 268 seconds) 2017-11-25T02:44:00Z eschatologist quit (Remote host closed the connection) 2017-11-25T02:44:57Z stassats quit (Ping timeout: 240 seconds) 2017-11-25T02:45:13Z eschatologist joined #sbcl 2017-11-25T02:46:25Z dougk quit (Ping timeout: 248 seconds) 2017-11-25T02:49:18Z dougk joined #sbcl 2017-11-25T04:29:45Z whoman quit (Remote host closed the connection) 2017-11-25T04:30:13Z whoman joined #sbcl 2017-11-25T04:44:41Z dougk quit (Ping timeout: 240 seconds) 2017-11-25T04:50:09Z milanj quit (Quit: This computer has gone to sleep) 2017-11-25T05:20:19Z myrkraverk joined #sbcl 2017-11-25T06:27:38Z dougk joined #sbcl 2017-11-25T06:33:33Z Bike quit (Quit: Lost terminal) 2017-11-25T06:34:20Z dougk quit (Ping timeout: 255 seconds) 2017-11-25T07:00:33Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-25T07:50:32Z angavrilov joined #sbcl 2017-11-25T09:52:00Z shka joined #sbcl 2017-11-25T10:27:52Z attila_lendvai joined #sbcl 2017-11-25T10:27:52Z attila_lendvai quit (Changing host) 2017-11-25T10:27:52Z attila_lendvai joined #sbcl 2017-11-25T10:33:01Z milanj joined #sbcl 2017-11-25T11:06:32Z BitPuffin|osx joined #sbcl 2017-11-25T11:08:51Z smokeink joined #sbcl 2017-11-25T11:09:30Z dougk joined #sbcl 2017-11-25T11:09:48Z scymtym quit (Ping timeout: 240 seconds) 2017-11-25T11:11:25Z smokeink: hello, I am trying to compile sbcl 1.4.1 on slacko puppy linux 6.3.2 (uname -r 3.14.55) , but it always gives this at the end: Some of the contrib modules did not build successfully or pass their self-tests. Failed contribs:" sb-posix , and because sb-posix doesn't work or is not loaded properly the resulted sbcl is unusable. Any idea what could be wrong and how to fix this? 2017-11-25T11:29:41Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-11-25T11:34:37Z scymtym joined #sbcl 2017-11-25T11:39:15Z flip214: smokeink: any more data, in logfiles or so? try "ls -latr" to see which files got changed last. 2017-11-25T11:39:23Z flip214: you could also try to run the tests manually. 2017-11-25T11:40:45Z dougk quit (Read error: Connection reset by peer) 2017-11-25T11:41:03Z dougk joined #sbcl 2017-11-25T11:56:32Z joshe quit (Ping timeout: 255 seconds) 2017-11-25T11:56:48Z joshe joined #sbcl 2017-11-25T11:59:56Z milanj quit (Quit: This computer has gone to sleep) 2017-11-25T12:03:08Z scymtym: smokeink: somewhere in the middle of the build output, there should be some message like "make: Entering directory '…/contrib/sb-posix'". please try to find an error message and backtrace in the following output 2017-11-25T12:03:53Z milanj joined #sbcl 2017-11-25T12:06:18Z smokeink: ok! 2017-11-25T12:13:20Z smokeink: Test SB-POSIX-TESTS::GRENT.2 failed 2017-11-25T12:13:20Z smokeink: Form: (NOT (SB-POSIX:GETGRNAM "sys")) 2017-11-25T12:13:20Z smokeink: Expected value: NIL 2017-11-25T12:13:20Z smokeink: Actual value: T. 2017-11-25T12:14:17Z smokeink: Test SB-POSIX-TESTS::READLINK.ERROR.1 failed. Form: (LET* ((SB-POSIX-TESTS::SUBDIR-PATHNAME ... ... Expected value: 13 Actual value: "/" 2017-11-25T12:15:52Z smokeink: 2 out of 73 total tests failed: SB-POSIX-TESTS::GRENT.2, SB-POSIX-TESTS::READLINK.ERROR.1.Unhandled SIMPLE-ERROR in thread #: non-errno tests failed! 2017-11-25T12:18:08Z scymtym: smokeink: ok, thanks (next time, please use a paste service for multi-line pastes like that) 2017-11-25T12:18:25Z smokeink: ok,sure 2017-11-25T12:19:13Z smokeink: so tell me how to debug into this thing and fix it 2017-11-25T12:20:01Z scymtym: smokeink: let me take a look at the failing tests first 2017-11-25T12:20:25Z scymtym: the code, on my machine, i mean 2017-11-25T12:22:20Z scymtym: smokeink: can you try "grep sys /etc/group" 2017-11-25T12:23:45Z smokeink: it returns nil, nothing 2017-11-25T12:24:13Z scymtym: just to sure, please also try "getent group | grep sys" (if you have getent) 2017-11-25T12:25:19Z smokeink: I do have getent, it also returns nothing, no result 2017-11-25T12:26:04Z scymtym: ok, so your system doesn't have the group we use for the test 2017-11-25T12:27:23Z scymtym: the fix could be either finding a group that is guaranteed to be present or otherwise maybe check via run-program 2017-11-25T12:29:15Z scymtym: smokeink: if you just want to get on with your build, change (sb-posix:getgrnam "sys") to (sb-posix:getgrnam "root") or some other group that exists on your system in test grent.2 in contrib/sb-posix/posix-tests.lisp 2017-11-25T12:31:30Z smokeink: got it, what about the 2nd test that fails: readlink.error.1 2017-11-25T12:35:32Z scymtym: your filesystem permissions seem to behave differently than the test expects. the test places a symlink in a directory, removes all permissions from the directory, then tries to read the link. it expects this to fail with an access denied error 2017-11-25T12:35:57Z scymtym: are you building with some kind of elevated privileges? 2017-11-25T12:36:03Z smokeink: yes 2017-11-25T12:36:19Z smokeink: i'm root 2017-11-25T12:36:29Z smokeink: while doing the build 2017-11-25T12:38:16Z scymtym: that's not recommended. could you build as an unprivileged user and only install as root? 2017-11-25T12:39:41Z smokeink: I'll try. Puppy linux by default uses root as the desktop user 2017-11-25T12:40:01Z scymtym: if you really must build as root, i guess you can just disable that test 2017-11-25T12:40:14Z smokeink: yeah got it 2017-11-25T12:40:20Z smokeink: thank you 2017-11-25T12:40:24Z smokeink: for the support 2017-11-25T12:40:44Z scymtym: no problem 2017-11-25T12:43:06Z milanj quit (Read error: Connection reset by peer) 2017-11-25T12:43:18Z milanj joined #sbcl 2017-11-25T13:00:45Z smokeink quit (Remote host closed the connection) 2017-11-25T13:01:22Z smokeink joined #sbcl 2017-11-25T13:06:09Z Bike joined #sbcl 2017-11-25T13:06:58Z stassats joined #sbcl 2017-11-25T13:07:22Z stassats: you don't have to modify remove the test if you want just to install the contrib 2017-11-25T13:07:26Z smokeink quit (Quit: Leaving) 2017-11-25T13:07:36Z stassats: just touch obj/asdf-cache/sb-posix/test-passed.test-report 2017-11-25T13:09:56Z scymtym: yeah, i always forget that. we should still probably change the group in grent.2 2017-11-25T13:10:20Z scymtym: stassats: sb-concurrency flakiness seems much reduced: https://ci.cor-lab.org/job/sbcl-master/2680/ . the errors in row 5 are safepoint-related build failures. the test failures in row 8 stem from running tests in interpreted mode. the macos problems are some Jenkins bs 2017-11-25T13:15:06Z stassats: i so don't want to touch safepoints again 2017-11-25T13:19:17Z Kevslinger joined #sbcl 2017-11-25T13:22:27Z stassats: i might have an angle for safepoints and interrupt-thread problems, but not for consing inside without-gcing 2017-11-25T13:22:33Z scymtym: the safepoint failures are not recent and definitely not a regression in this release cycle 2017-11-25T13:22:49Z stassats: i know 2017-11-25T13:30:22Z dougk quit (Ping timeout: 260 seconds) 2017-11-25T13:44:57Z dougk joined #sbcl 2017-11-25T13:48:20Z dougk quit (Read error: Connection reset by peer) 2017-11-25T13:48:35Z dougk joined #sbcl 2017-11-25T14:01:57Z smokeink joined #sbcl 2017-11-25T14:43:17Z smokeink quit (Quit: Leaving) 2017-11-25T14:48:32Z dwts joined #sbcl 2017-11-25T14:49:14Z dwts: hye guys, I'm searching the sbcl manual but can't find in the compiler section any info on how to compile my lisp file to an executable. Can someone point me the point where this is documented? 2017-11-25T14:49:21Z dwts: s/hye/hey 2017-11-25T14:49:31Z stassats: save-lisp-and-die 2017-11-25T14:49:57Z stassats: http://sbcl.org/manual/index.html#Function-sb_002dext_003asave_002dlisp_002dand_002ddie 2017-11-25T14:50:06Z dwts: stassats: isn't it possible to do it from the command line? 2017-11-25T14:50:07Z dwts: oh 2017-11-25T14:50:12Z dwts: let me check that link 2017-11-25T14:50:24Z stassats: everything is possible from the command line 2017-11-25T14:51:01Z stassats: and there's even a section in the manual named "Generating Executables" 2017-11-25T14:52:41Z dwts: stassats: that section doesn't mention hwo to do that from the cli, for example what flags to pass etc 2017-11-25T14:53:38Z stassats: it says ". For further information, See Function sb-ext:save-lisp-and-die." 2017-11-25T14:53:56Z White_Flame: from the CLI, you would pass it a script or form to evaluate which would eventually call save-lisp-and-die 2017-11-25T14:57:00Z dwts: White_Flame: Hey, thanks for the answer! so, it's not possible to do something like compiling the file similarly to clang/gcc? I mean you can still create a script/makefile but you can also pass command line arguments as well. Is this possible for sbcl? 2017-11-25T14:57:19Z White_Flame: this is more a general lisp question, not sbcl-specific 2017-11-25T14:57:41Z White_Flame: you load in all you need to, and call save-lisp-and-die to snapshot the current image to be run from an executable, passing in what "main" function to start 2017-11-25T14:57:43Z stassats: it is possible 2017-11-25T14:58:06Z stassats: if you are willing to invert the lisp development process and pretend like it's the middle ages 2017-11-25T14:58:08Z scymtym: dwts: if you are looking for a higher-level interface and potentially portability, look at the options listed here: http://www.cliki.net/Creating%20Executables in addition to those, there is also cl-launch. not a topic for #sbcl, though 2017-11-25T14:59:22Z stassats: producing executables, command line or not, is the last step of a development process in lisp 2017-11-25T15:00:14Z dwts: scymtym I'll check this out thanks a lot! stassats I still can't find much info on save-lisp-and-die in the manual. All I see is taht there's a "save-lisp-and-die" option in the sb-ext section... 2017-11-25T15:00:47Z stassats: well, i can't help you read the manual, it's all spelled out there 2017-11-25T15:02:22Z stassats: if you have trouble with a particular sentence, it's possible to reword it, but it looks like it explains everything you need 2017-11-25T15:03:49Z stassats: but you have to know lisp to read the manual 2017-11-25T15:05:11Z dwts: stassats: I don't need you to read the manual for me. If you think that it's self-contained I'm fine by it. I'm not here to judge anyone's work. I just couldn't find any answers to my questions in the manual. Thank you for help. 2017-11-25T15:05:33Z dwts: yeah, I'm certainly on the "trying to learn lisp" era atm 2017-11-25T15:06:38Z Bike: the manual entry for save-lisp-and-die lists the :executable option clearly 2017-11-25T15:08:00Z stassats: dwts: that's fine, but creating executables is too early to consider when just learning lisp 2017-11-25T15:08:03Z stassats: all you need to know that it's possible 2017-11-25T15:08:12Z dwts: Bike: it does, but I don't understand how and where to pass that argument 2017-11-25T15:08:13Z stassats: now if the thing you're using to learn doesn't instruct you how to run and edit lisp, find another learning material 2017-11-25T15:08:29Z nyef notes that when HE was learning, it WASN'T possible. 2017-11-25T15:08:42Z Bike: you pass it to the save-lisp-and-die function. this is the common format for describing lisp functions, so it goes back to lisp familiarity 2017-11-25T15:09:08Z nyef: Might have been with some other implementations, but CMUCL (and SBCL, once I switched to that) didn't have the option at the time. 2017-11-25T15:09:12Z Bike: there's no direct way to do it from the command line, because if you want to do that you can just pass the save-lisp-and-die call that should be evaluated 2017-11-25T15:09:33Z Bike: but dumping images is not a usual thing to do right off anyway, the development process doesn't work like C 2017-11-25T15:09:46Z stassats: minion: pcl? 2017-11-25T15:09:46Z minion: pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005). 2017-11-25T15:10:28Z dwts: stassats: I already own the book in hard copy, although I've read that the style is outdated on that book.. 2017-11-25T15:10:51Z stassats: where on earth did you read that? that's bunk 2017-11-25T15:11:24Z dwts: Bike: I understand that this might not be common lispy behaviour, but I'm interested to see how it's done. 2017-11-25T15:11:31Z dwts: stassats: to be honest, I can't remember, it's been a while 2017-11-25T15:11:46Z Bike: maybe you're thinking of "a gentle introduction to symbolic computation" 2017-11-25T15:11:49Z stassats: well, i highly recommend that book, in early chapters it describes how to start and run lisp 2017-11-25T15:12:01Z dougk quit (Ping timeout: 248 seconds) 2017-11-25T15:12:41Z stassats: dwts: it's done using lisp, so, you'll have to be up to speed first 2017-11-25T15:13:25Z stassats: save-lisp-and-die is a function, the manual describes how it works, it can be run from the command line 2017-11-25T15:17:09Z dwts: Bike: never read that book. stassats: I'm checking the book again right now, let's see if I can find anything :P 2017-11-25T15:20:44Z stassats: it's in the second chapter 2017-11-25T15:20:51Z stassats: http://www.gigamonkeys.com/book/lather-rinse-repeat-a-tour-of-the-repl.html 2017-11-25T15:22:28Z dwts: stassats: yep, that's where I'm looking. It seems that I already had created my fasl file with emacs, before I even started asking here. I guess I was expecting a different output file 2017-11-25T15:23:06Z stassats: dwts: you can actually execute it 2017-11-25T15:23:11Z stassats: but not ship it 2017-11-25T15:23:37Z stassats: since it just calls sbcl through shebang 2017-11-25T15:24:20Z dwts: yeah, that's why I was asking if there's an alternative, I thought that sbcl is included in the binaries? Maybe I misunderstood the manual 2017-11-25T15:24:34Z stassats: save-lisp-and-die is that thing 2017-11-25T15:25:10Z stassats: .fasl is your .lisp compiled, but without anything else 2017-11-25T15:25:35Z stassats: like an .o file, if you will 2017-11-25T15:26:00Z Bike: fasls are good when you want to load a lot of them into the same image (the usual situation). having all of them include sbcl would be like having every program on your computer have its own statically linked libc 2017-11-25T15:29:40Z dougk joined #sbcl 2017-11-25T15:30:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-25T15:33:56Z dwts: hm, the .o approach helps a bit. but still passing the (save-lisp-and-die) with or without executable still I get a fasl file. Bike: I was actually looking if statically linked option was possible. Or in the dynamic approach, have a binary file in the same sense that you have a binary file produced by a C compiler 2017-11-25T15:36:20Z jsnell: sbcl --eval '(save-lisp-and-die "foo" :executable t :toplevel (lambda () (princ "hello, world")))' --eval '(quit)' 2017-11-25T15:36:23Z jsnell: ./foo 2017-11-25T15:36:26Z scymtym: dwts: if you call SAVE-LISP-AND-DIE from within SLIME, you get an error about multiple threads (and no executable). could that be the problem? 2017-11-25T15:37:13Z dwts: scymtym: actually slime says compilation failed without warnings 2017-11-25T15:39:05Z dwts: actually I started a slime sessions and now I'm getting errors...hmm 2017-11-25T15:39:12Z scymtym: compiling like that will produce a fasl (if it succeeds), not an executable. in SBCL, producing an executable has nothing to do with compilation 2017-11-25T15:39:43Z dwts: oh 2017-11-25T15:40:47Z dwts: well at least I now have my fasl file. 2017-11-25T15:44:35Z dwts: scymtym: found my error, although I'm loading in my lisp file babel and drakma (ql) my slime "buffer" in emacs didn't have it loaded 2017-11-25T15:44:45Z scymtym: as stassats said: what you typically do is develop in SLIME (this involves compiling your code, many times, without restarting SBCL) until you are satisfied. this does produce fasls, but you don't do anything with them manually. then, as an optional step, you can produce an executable in a way similar to what jsnell showed. the difference w.r.t. jsnell's example being that you would load your previously developed code be 2017-11-25T15:44:46Z scymtym: save-lisp-and-die 2017-11-25T15:44:48Z dwts: after manually loading inthe slime buffer my compilation works 2017-11-25T15:45:33Z dwts: scymtym: ah, I missed the jsnell suggestion? 2017-11-25T15:46:20Z scymtym: it demonstrated how to create an executable from the commandline: sbcl --eval '(save-lisp-and-die "foo" :executable t :toplevel (lambda () (princ "hello, world")))' --eval '(quit)' 2017-11-25T15:46:51Z dwts: hmmm 2017-11-25T15:46:52Z dwts: ok 2017-11-25T15:46:53Z dwts: thanks 2017-11-25T15:46:57Z dwts: I'll look it up 2017-11-25T15:50:31Z scymtym: if the executable you want to create involves loading systems like babel and drakma via quicklisp, a higher-level approach based on asdf or even a specific executable-building solution like cl-launch is probably more appropriate. #lisp is the better place to ask about that, though 2017-11-25T15:50:49Z dwts takes note 2017-11-25T15:50:53Z dwts: thanks a lot scymtym 2017-11-25T15:52:09Z scymtym: sure. just don't be disappointed if #sbcl does not always provide today's level of support 2017-11-25T15:52:56Z dougk__ joined #sbcl 2017-11-25T15:53:01Z dwts: lol 2017-11-25T15:53:08Z dwts: I'll try not to :) 2017-11-25T15:56:55Z dougk quit (Ping timeout: 268 seconds) 2017-11-25T16:07:07Z scymtym: progress! this worked as it should: (with-open-file (stream "/tmp/test.txt" :external-format '(:utf-8 :newline-coding :crlf) …) (format stream "foo~%bar~%baz~%")) (with-open-file (stream "/tmp/test.txt" :external-format '(:utf-8 :newline-coding :crlf) …) (values (read-line stream) (read-line stream) (read-line stream))) 2017-11-25T16:29:19Z stassats joined #sbcl 2017-11-25T16:30:14Z stassats: i still like :eol, since it's shorter, or even just :crlf 2017-11-25T16:30:44Z stassats: '(:utf8 :crlf :replacement #\?) 2017-11-25T16:36:05Z scymtym: stassats: i can probably do that 2017-11-25T16:38:26Z stassats: just that order, i think, (:utf8 :replacement #\? :crlf) would be an error 2017-11-25T16:38:43Z stassats: and '(:utf8 :replacement #\?) default to :auto 2017-11-25T16:38:55Z scymtym: stassats: any comments regarding the names and behavior outlined in https://techfak.de/~jmoringe/newline-codings.lisp ? (i'm planning to submit the whole thing for review once it gets near a commitable state, of course) 2017-11-25T16:40:45Z stassats: not having a keyword would make :dos or :windows confusing, so maybe allow for either '(:utf8 :crlf) or '(:utf8 :eol :crlf) 2017-11-25T16:40:54Z stassats: or that'll be even more confusing, dunno 2017-11-25T16:41:44Z stassats: and :mac is not that a good name 2017-11-25T16:42:16Z scymtym: i can remove that 2017-11-25T16:42:40Z stassats: and is anyone would really prefer :linefeed or :carrige-return? 2017-11-25T16:42:55Z nyef: Note that there is already a :macintosh encoding. 2017-11-25T16:43:15Z stassats: for simplicity and unambiguity i would've just used :cr :crlf and :lf without any synonyms 2017-11-25T16:43:55Z scymtym: sure, i was just following the way external formats are currently named 2017-11-25T16:44:11Z stassats: nyef: what about ebcdic then? 2017-11-25T16:44:29Z scymtym: nyef: that is the name of an external format and thus character encoding? 2017-11-25T16:46:25Z scymtym: regarding external format specifier syntax: i would prefer either (character-coding &key eol replacement) or (character-coding &optional eol replacement) to not introduce confusing half-optional-half-keyword syntax. the latter is not backward-compatible, though 2017-11-25T16:47:12Z stassats: backward-incompatible is not an option 2017-11-25T16:47:34Z stassats: but i see :utf8 :crlf as the name of the encoding 2017-11-25T16:47:54Z stassats: since it's really a different encoding, not simply an option 2017-11-25T16:48:23Z stassats: bot :eol is fine, either way 2017-11-25T16:50:31Z stassats: then there is http://www.unicode.org/reports/tr14/tr14-32.html 2017-11-25T16:50:54Z stassats: if we have :utf8 :unicode, that's confusing, :utf8 :eol :unicode is better 2017-11-25T16:52:57Z scymtym: i'm leaning towards that as well. although i agree that the keyword-based syntax makes it look like an option rather than an essential part of the encoding 2017-11-25T16:53:26Z scymtym: do the input-output relations in the comments match what you had in mind? 2017-11-25T16:54:12Z stassats: not sure about errors 2017-11-25T16:54:27Z scymtym: i'm not sure about the ones with question marks 2017-11-25T16:55:23Z stassats: i think having split CR or LF on CRLF should decode them as is 2017-11-25T16:56:40Z scymtym: ecl uses a bag of aspects: https://common-lisp.net/project/ecl/static/manual/ch21.html#ansi.streams.formats 2017-11-25T16:57:53Z stassats: and for #\Return -> ?, just encod as CR 2017-11-25T16:58:07Z scymtym: ok, i will note those 2017-11-25T16:58:45Z SamSkulls quit (Read error: Connection reset by peer) 2017-11-25T17:00:44Z dougk__ quit (Ping timeout: 255 seconds) 2017-11-25T17:15:40Z dougk joined #sbcl 2017-11-25T17:17:56Z milanj quit (Quit: This computer has gone to sleep) 2017-11-25T17:22:44Z attila_lendvai quit (Quit: Leaving.) 2017-11-25T17:42:57Z stassats quit (Read error: Connection reset by peer) 2017-11-25T17:43:15Z stassats joined #sbcl 2017-11-25T17:45:29Z karswell joined #sbcl 2017-11-25T17:47:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-25T17:47:43Z stassats quit (Ping timeout: 248 seconds) 2017-11-25T18:03:53Z scymtym joined #sbcl 2017-11-25T18:15:03Z stassats joined #sbcl 2017-11-25T18:39:48Z milanj joined #sbcl 2017-11-25T18:53:22Z stassats quit (Ping timeout: 258 seconds) 2017-11-25T18:59:26Z dougk quit (Read error: Connection reset by peer) 2017-11-25T18:59:43Z dougk joined #sbcl 2017-11-25T19:00:08Z stassats joined #sbcl 2017-11-25T19:04:56Z stassats quit (Ping timeout: 255 seconds) 2017-11-25T20:08:58Z Jesin quit (Quit: Leaving) 2017-11-25T20:20:59Z karswell quit (Remote host closed the connection) 2017-11-25T20:27:11Z Colleen quit (Ping timeout: 248 seconds) 2017-11-25T20:36:21Z dougk quit (Ping timeout: 240 seconds) 2017-11-25T21:01:47Z stassats joined #sbcl 2017-11-25T21:13:39Z angavrilov quit (Remote host closed the connection) 2017-11-25T21:22:26Z dougk joined #sbcl 2017-11-25T22:28:16Z attila_lendvai joined #sbcl 2017-11-25T22:28:16Z attila_lendvai quit (Changing host) 2017-11-25T22:28:16Z attila_lendvai joined #sbcl 2017-11-25T23:11:40Z attila_lendvai quit (Quit: Leaving.) 2017-11-26T00:00:08Z dougk quit (Ping timeout: 255 seconds) 2017-11-26T00:19:11Z shka quit (Ping timeout: 248 seconds) 2017-11-26T01:15:46Z dwts: hey guys, I managed to make some (small) progress with code compliation, but I still don't understand why my main function is treated as "undefined". The code is here: https://codepaste.net/8ru46a 2017-11-26T01:17:30Z sjl__ joined #sbcl 2017-11-26T01:20:01Z sjl quit (Ping timeout: 248 seconds) 2017-11-26T01:24:30Z sjl__ is now known as sjl 2017-11-26T01:25:22Z nyef: dwts: Try ":toplevel #'main" instead of ":toplevel (main)". 2017-11-26T01:26:11Z nyef: dwts: Also, you might want "~%" instead of "\n". 2017-11-26T01:27:58Z stassats: dwts: #lisp would be more prompt for that kind of stuff 2017-11-26T01:28:34Z dwts: nyef: thanks a lot this worked. stassats: I figured, so I asked there as well. Thanks a lot both of you. 2017-11-26T01:28:45Z nyef: Ah, right, that can't error usefully from SLAD because NIL is a symbol, and a symbol is a valid "function designator"... Except that it SHOULD be able to error usefully, because the function designator is for a function undefined at SLAD time, and there's no real way to define it before the new image starts. 2017-11-26T01:28:50Z dougk joined #sbcl 2017-11-26T01:29:05Z stassats: or is there? 2017-11-26T01:29:15Z stassats: no, i don't want to go there 2017-11-26T01:29:21Z nyef: Heh. 2017-11-26T01:29:23Z stassats: it's too late in the night 2017-11-26T01:29:45Z dwts: stassats: lol, it's 3:30 am here :P 2017-11-26T01:30:07Z stassats: nyef: but good point, i put it in my notes 2017-11-26T01:30:14Z nyef: And here I'm thinking "well, *I* can think of a way to do it, but I wouldn't, because editing the core file post-dump would be spectacularly stupid, build-process-wise." 2017-11-26T01:30:48Z stassats: it should just coerce-to-callable before saving 2017-11-26T01:30:52Z stassats: faster start up times! 2017-11-26T01:31:18Z nyef: Right. And saving that infodb lookup is going to be *such* an improvement. d-: 2017-11-26T01:32:56Z stassats: for a symbol, it's hiding in the symbol itself 2017-11-26T01:36:36Z nyef: And it pretty much has to be a symbol if it's a designator for a function with no required arguments, doesn't it? 2017-11-26T01:37:09Z stassats: there's no restriction on what arguments a setf function takes 2017-11-26T01:38:29Z stassats: and (push (lambda () (defun nil ())) sb-ext:*init-hooks*) 2017-11-26T01:40:23Z stassats: after describing 'save-lisp-and-die, (describe (lambda (&optional (a "a")) a)) 2017-11-26T01:40:26Z stassats: Lambda-list: (&OPTIONAL (A a)) 2017-11-26T01:40:28Z stassats: not great 2017-11-26T01:41:09Z stassats: dwts: see how many problems did you uncover? 2017-11-26T01:41:29Z dwts: stassats: I was only trying to fix mine :P 2017-11-26T01:44:25Z stassats: i'd like to collect such problems newcomers have, but #lisp is a time sink and has some people i don't like hanging around with 2017-11-26T01:45:49Z dwts: I'm willing to help, probably - with documentation atm - when free time allows, but currently I can't even fix my issues :P 2017-11-26T01:46:50Z dwts: this ^ should be -probably with documentation atm - ... but as you said, it's kinda late 2017-11-26T01:47:29Z stassats: an ATM that dispenses documentation instead of money? 2017-11-26T01:48:56Z dwts: atm = at the moment. But I usually donate to projects that I use (firefox, wikipedia etc) so sbcl could be one of them as well if I stick with it in the future and I manage to solve my problems 2017-11-26T01:49:10Z stassats: minion: what does ATM stand for? 2017-11-26T01:49:11Z minion: Aralkyl Thalamotomy Mindlessness 2017-11-26T01:49:30Z nyef: dwts: May I suggest keeping a log of the problems you run into and how you end up resolving them? 2017-11-26T01:49:42Z dwts: nyef: I do already 2017-11-26T01:49:51Z nyef: Wonderful. 2017-11-26T01:50:01Z stassats: dwts: and include the error messages that confuse you 2017-11-26T01:50:11Z dwts: hmm, okay 2017-11-26T01:51:39Z dwts: stassats: btw, the official repo listed here is wrong? : https://en.wikipedia.org/wiki/Steel_Bank_Common_Lisp 2017-11-26T01:52:04Z stassats: the error message from save-lisp-and-die would still have the same error message, but it would have happened earlier 2017-11-26T01:52:39Z stassats: dwts: looks ok to me 2017-11-26T01:53:16Z dwts: and you are right. maybe I need to sleep 2017-11-26T01:54:54Z stassats: you can just use github, it's a mirror 2017-11-26T01:55:00Z stassats: there's a slight delay 2017-11-26T01:56:29Z dwts: understood 2017-11-26T01:56:56Z stassats: though you're probably better of running a release 2017-11-26T01:57:18Z dwts: yeah, I'm using my distro's release anyway 2017-11-26T01:57:55Z dwts: although I'm on 1.4.0 and the latest is 1.4.1? I think? 2017-11-26T01:58:20Z stassats: correct 2017-11-26T01:58:34Z stassats: 1.4.2 soon to follow 2017-11-26T01:58:40Z dwts: nice 2017-11-26T02:02:01Z nyef: stassats: Do you know if there are safepoint problems on linux as well as on windows? 2017-11-26T02:04:26Z stassats: if you enable all the features, yes 2017-11-26T02:04:34Z stassats: but even if just sb-safepoint, still yes 2017-11-26T02:05:38Z stassats: lp 1424031 2017-11-26T02:05:38Z specbot: https://bugs.launchpad.net/bugs/1424031 2017-11-26T02:05:44Z nyef: Okay, so if I want to dig into what's going on with safepoints, I can do so without setting up a windows VM? That's good. 2017-11-26T02:05:54Z stassats: right 2017-11-26T02:06:20Z stassats: i think the above problem is the main problem, interrupt-thread reliability is secondary 2017-11-26T02:06:52Z nyef: Yeah, interrupt-thread should be a *very* rare occasion. 2017-11-26T02:07:06Z stassats: and i didn't get any headway with #1424031 whatsoever 2017-11-26T02:07:17Z stassats: nyef: still should be reliable, for interactive development 2017-11-26T02:07:27Z stassats: if there's no interactive development, then why use lisp at all? 2017-11-26T02:07:36Z stassats: might as well be writing assembly at that point 2017-11-26T02:07:39Z nyef sighs. 2017-11-26T02:07:47Z nyef: Please don't remind me. /-: 2017-11-26T02:08:41Z nyef: My "work" environment is an edit-compile-run-test setup. 2017-11-26T02:09:00Z stassats: still, you'd want to interrupt stuff 2017-11-26T02:09:25Z stassats: ok, on the face of it, (sb-sys:without-gcing (copy-seq x)) is a bad idea 2017-11-26T02:09:32Z stassats: but it's exactly what's going on in gethash 2017-11-26T02:10:23Z nyef: Mmm. And it's actually *fine*, as long as you release the without-gcing before you ratchet up the heap pressure too much. 2017-11-26T02:11:05Z stassats: the attack should be two-pronged, a) stop (sb-sys:without-gcing (copy-seq x)) from failing, b) reduce without-gcing usage in gethash 2017-11-26T02:11:40Z nyef: You should be able to increase the pressure to the point where releasing the without-gcing triggers an immediate GC, the problem comes when you get the pressure to the point where there isn't enough space left *TO* run the GC. 2017-11-26T02:13:31Z stassats: it conses during rehash, but it needs to disable the gc to not move stuff, it can precreate all the tables beforehand 2017-11-26T02:14:16Z stassats: but i'm yet to see that being a problem on -sb-safepoint 2017-11-26T02:14:31Z stassats: i could probably come up with something convoluted, though 2017-11-26T02:18:12Z nyef: Arrange a hash-table size and gc-trigger point such that rehashing the table post-gc triggers another GC? (-: 2017-11-26T02:19:06Z stassats: that could actually happen 2017-11-26T02:19:11Z oleo quit (Ping timeout: 255 seconds) 2017-11-26T02:19:48Z nyef: Okay, so putting "looking at safepoints" down on my possible-projects list, with the idea that I might try to figure it out next month. 2017-11-26T02:20:19Z stassats: one tipe, compile with sb-qshow 2017-11-26T02:20:42Z stassats: then run SBCL_DYNDEBUG=all sbcl 2017-11-26T02:22:24Z stassats: i think i'll do the gethash bit next month as well 2017-11-26T02:22:31Z stassats: it's quite trivial 2017-11-26T02:22:53Z dwts: (no restarts: If you didn't do this on purpose, please report it as a bug.) 2017-11-26T02:23:12Z dwts: I"m not sure if am I supposed to report that, but I didn't do it on purpose :P 2017-11-26T02:23:13Z stassats: dwts: ok, i know about that one 2017-11-26T02:23:26Z dwts: ah, ok 2017-11-26T02:23:54Z stassats: i have "no restarts with a custom image entry point" in my notes 2017-11-26T02:24:12Z dwts: roger 2017-11-26T02:24:29Z stassats: bumped it up the list 2017-11-26T02:25:13Z oleo joined #sbcl 2017-11-26T02:30:58Z dwts: understood. to be honest I wasn't sure if that was indeed a bug or me fucking up my syntax again 2017-11-26T02:36:14Z phf left #sbcl 2017-11-26T03:12:39Z stassats: can we keep information about dominators? or lazily update it whenever dominates-p is called? 2017-11-26T03:12:56Z stassats: i presume calling find-dominators whenever i need would be too expensive 2017-11-26T03:13:38Z stassats: and i don't want to concede an optimization just because lambda-var-sets is not empty 2017-11-26T03:18:34Z nyef: ISTR something about an iterative approach to SSA conversion involving a "dominance fontier"? 2017-11-26T03:19:17Z nyef: Certainly, having block dominance information would make it easier to do flow-sensitive analysis during IR1. 2017-11-26T03:19:34Z dougk quit (Ping timeout: 268 seconds) 2017-11-26T03:20:38Z nyef: Actually, we basically only do "principled" transformations of the flow graph, don't we? Maybe there's a corresponding set of effects that they have on the domination relationship, and we can "just" keep that up-to-date? 2017-11-26T03:21:38Z nyef: Problem comes in that dominance is computed *for each block*, so if you splice in a new block then everything "downstream" from that may be affected. 2017-11-26T03:22:47Z stassats quit (Ping timeout: 260 seconds) 2017-11-26T03:25:10Z nyef: ... Dominance itself is a flow analysis. We *use* dominance to *bound* flow analysis at times. Thus, can we use *old* dominance information to bound the computation of updated dominance information? 2017-11-26T03:27:18Z dougk joined #sbcl 2017-11-26T03:27:35Z nyef: That brings to mind one of the things that I'm not sure that I like about IR1-phases: They're run in a strict order. It's not like "here's a bunch of things that might apply, try them, and retry them as things change such that they might apply anew, until things hit something of a stable state". Or, at least, the granularity of change detection is low. 2017-11-26T03:28:13Z joshe quit (Ping timeout: 250 seconds) 2017-11-26T03:47:55Z milanj quit (Quit: This computer has gone to sleep) 2017-11-26T04:12:10Z zulu_inuoe: Hello all. Over the last couple of days, I've been playing around with integrating Continuous Integration support for SBCL. I've got a project building x86 and x86-64 Windows on AppVeyor, along with x86 and x86-64 Linux+MacOSX on TravisCI. I'm going to continue refining and documenting the whole thing before I officially present it as a contribution, but I wanted to get an idea of what, if anything, the devs here would like to see, or 2017-11-26T04:12:10Z zulu_inuoe: any questions or concerns with this endevour. I'd basically like to increase the chances that this is blessed by SBCL proper and merged in. And of course I'd like to cover as many features as I can. 2017-11-26T05:39:14Z sjl__ joined #sbcl 2017-11-26T05:40:47Z sjl quit (Ping timeout: 248 seconds) 2017-11-26T06:30:28Z Bike quit (Quit: Lost terminal) 2017-11-26T07:41:51Z dougk quit (Ping timeout: 248 seconds) 2017-11-26T08:38:31Z shka joined #sbcl 2017-11-26T09:50:11Z milanj joined #sbcl 2017-11-26T10:47:01Z stassats joined #sbcl 2017-11-26T10:47:35Z stassats: zulu_inuoe: we already have continuous integration 2017-11-26T10:58:08Z ym quit (Quit: Leaving) 2017-11-26T11:01:47Z ym joined #sbcl 2017-11-26T11:27:17Z dougk_ quit (Ping timeout: 255 seconds) 2017-11-26T11:33:55Z dougk joined #sbcl 2017-11-26T11:38:07Z dougk quit (Ping timeout: 248 seconds) 2017-11-26T11:39:57Z dougk_ joined #sbcl 2017-11-26T11:41:47Z zulu_inuoe: stassats: Where does that live? I haven't stumbled upon it yet 2017-11-26T11:42:07Z stassats: https://ci.cor-lab.org/job/sbcl-master/ 2017-11-26T11:44:47Z zulu_inuoe: Okay cool. And that looks like Jenkins. I've actually got a lot of Jenkins under my belt and wanted to be using it this entire time 2017-11-26T11:46:26Z attila_lendvai joined #sbcl 2017-11-26T11:46:26Z attila_lendvai quit (Changing host) 2017-11-26T11:46:26Z attila_lendvai joined #sbcl 2017-11-26T11:51:54Z scymtym quit (Ping timeout: 246 seconds) 2017-11-26T11:52:29Z stassats` joined #sbcl 2017-11-26T11:55:59Z angavrilov joined #sbcl 2017-11-26T12:09:13Z Colleen joined #sbcl 2017-11-26T12:11:13Z Colleen quit (Client Quit) 2017-11-26T12:13:14Z Colleen joined #sbcl 2017-11-26T12:15:24Z scymtym joined #sbcl 2017-11-26T12:29:55Z Bike joined #sbcl 2017-11-26T12:46:00Z dwts: hey guys 2017-11-26T12:53:31Z scymtym: dwts: hi 2017-11-26T12:57:16Z dwts: how are you scymtym ? just had lunch and I'm sharpening my parens :P 2017-11-26T13:06:01Z scymtym: dwts: i'm fine, thanks. do you have SBCL-specific questions? 2017-11-26T13:06:43Z dwts: not at the moment, it was just a kind "hi". Usually when I have a question I just shoot :P 2017-11-26T13:08:01Z scymtym: sure, that seems to be the recommended way of asking questions using irc 2017-11-26T13:09:12Z dwts: yep 2017-11-26T13:19:07Z Colleen quit (Quit: Colleen) 2017-11-26T13:19:44Z Colleen joined #sbcl 2017-11-26T13:22:09Z Colleen quit (Client Quit) 2017-11-26T13:22:35Z Colleen joined #sbcl 2017-11-26T13:25:01Z milanj quit (Read error: Connection reset by peer) 2017-11-26T13:25:30Z milanj joined #sbcl 2017-11-26T13:56:09Z stassats quit (Ping timeout: 246 seconds) 2017-11-26T14:00:53Z stassats joined #sbcl 2017-11-26T14:27:53Z attila_lendvai quit (Quit: Leaving.) 2017-11-26T14:39:34Z dougk joined #sbcl 2017-11-26T14:43:51Z milanj quit (Quit: This computer has gone to sleep) 2017-11-26T15:17:55Z attila_lendvai joined #sbcl 2017-11-26T15:17:55Z attila_lendvai quit (Changing host) 2017-11-26T15:17:55Z attila_lendvai joined #sbcl 2017-11-26T15:19:59Z dougk quit (Ping timeout: 248 seconds) 2017-11-26T15:28:46Z dougk joined #sbcl 2017-11-26T15:46:29Z attila_lendvai quit (Read error: Connection reset by peer) 2017-11-26T15:48:43Z attila_lendvai joined #sbcl 2017-11-26T15:48:43Z attila_lendvai quit (Changing host) 2017-11-26T15:48:43Z attila_lendvai joined #sbcl 2017-11-26T16:03:09Z eudoxia joined #sbcl 2017-11-26T16:03:48Z milanj joined #sbcl 2017-11-26T16:13:15Z attila_lendvai quit (Ping timeout: 252 seconds) 2017-11-26T16:23:19Z stassats: found a solution to (multiple-value-call :type-derivation), a pretty simple one 2017-11-26T16:23:41Z stassats: so it does work, leaving a bug alone and the solution becomes obvious in time 2017-11-26T16:23:58Z dougk quit (Ping timeout: 268 seconds) 2017-11-26T16:31:01Z dougk joined #sbcl 2017-11-26T16:40:37Z cromachina joined #sbcl 2017-11-26T16:44:35Z stassats quit (Ping timeout: 240 seconds) 2017-11-26T16:48:57Z stassats joined #sbcl 2017-11-26T16:57:20Z eudoxia quit (Quit: Leaving) 2017-11-26T16:57:48Z stassats quit (Ping timeout: 246 seconds) 2017-11-26T17:00:58Z stassats joined #sbcl 2017-11-26T17:27:54Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:28:45Z cromachina joined #sbcl 2017-11-26T17:29:10Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:30:00Z cromachina joined #sbcl 2017-11-26T17:33:51Z dougk quit (Ping timeout: 240 seconds) 2017-11-26T17:35:00Z dougk joined #sbcl 2017-11-26T17:37:00Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:38:06Z cromachina joined #sbcl 2017-11-26T17:39:24Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:40:12Z cromachina joined #sbcl 2017-11-26T17:42:32Z scymtym quit (Ping timeout: 240 seconds) 2017-11-26T17:42:32Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:43:41Z cromachina joined #sbcl 2017-11-26T17:44:10Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:45:06Z cromachina joined #sbcl 2017-11-26T17:45:33Z tloen joined #sbcl 2017-11-26T17:46:11Z cromachina quit (Read error: Connection reset by peer) 2017-11-26T17:57:36Z scymtym joined #sbcl 2017-11-26T18:04:21Z eudoxia joined #sbcl 2017-11-26T19:00:07Z eudoxia quit (Read error: Connection reset by peer) 2017-11-26T19:00:19Z stassats quit (Ping timeout: 250 seconds) 2017-11-26T19:00:41Z eudoxia joined #sbcl 2017-11-26T19:01:17Z eudoxia quit (Client Quit) 2017-11-26T19:23:11Z stassats joined #sbcl 2017-11-26T19:40:23Z stassats quit (Ping timeout: 276 seconds) 2017-11-26T19:41:33Z stassats joined #sbcl 2017-11-26T19:47:40Z stassats quit (Read error: Connection reset by peer) 2017-11-26T20:01:18Z rpg joined #sbcl 2017-11-26T20:03:18Z angavrilov quit (Remote host closed the connection) 2017-11-26T20:17:56Z sjl__ quit (Quit: WeeChat 1.9.1) 2017-11-26T20:24:20Z tloen quit (Quit: Leaving) 2017-11-26T20:28:52Z dougk quit (Ping timeout: 260 seconds) 2017-11-26T20:45:45Z dougk joined #sbcl 2017-11-26T20:57:35Z sjl___ joined #sbcl 2017-11-26T21:02:55Z sjl___ quit (Ping timeout: 248 seconds) 2017-11-26T21:25:06Z dustinm` quit (Quit: Leaving) 2017-11-26T21:31:30Z dustinm` joined #sbcl 2017-11-26T21:33:30Z dustinm` quit (Client Quit) 2017-11-26T21:37:57Z dustinm` joined #sbcl 2017-11-26T21:39:02Z Jesin joined #sbcl 2017-11-26T22:05:52Z shka quit (Ping timeout: 240 seconds) 2017-11-26T22:25:17Z stassats` quit (Ping timeout: 250 seconds) 2017-11-26T23:42:18Z Jesin quit (Quit: Leaving) 2017-11-27T00:06:27Z stassats joined #sbcl 2017-11-27T00:09:01Z attila_lendvai joined #sbcl 2017-11-27T00:27:50Z dougk quit (Remote host closed the connection) 2017-11-27T00:27:53Z dougk__ joined #sbcl 2017-11-27T00:51:12Z aautcsh joined #sbcl 2017-11-27T01:04:50Z Jesin joined #sbcl 2017-11-27T01:17:55Z joshe joined #sbcl 2017-11-27T01:28:48Z aautcsh quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-27T01:33:59Z dansa joined #sbcl 2017-11-27T01:35:02Z dansa: I see SBCL has sb-sys:wait-until-fd-usable. Is this the equivalent of the UNIX select system call? Its interface doesn't seem to allow multiple FD. How can I select on multiple FD? 2017-11-27T01:36:19Z nyef: SBCL has something called "serve-event", but you might be better off with a different I/O multiplexer. 2017-11-27T01:36:32Z nyef: ... I think that iolib might have one? 2017-11-27T01:36:36Z nyef: (Or be one?) 2017-11-27T01:36:54Z dansa: Seems like it. Thanks! 2017-11-27T01:37:59Z attila_lendvai quit (Quit: Leaving.) 2017-11-27T01:38:30Z dansa: Does it work on Windows? Quicklisp just failed to install it. 2017-11-27T01:38:38Z stassats: wait-until-fd-usable is unusable 2017-11-27T01:38:46Z dansa: Why? 2017-11-27T01:39:22Z dansa: The error: c:/.../.quicklisp/dists/quicklisp/software/iolib-v0.8.3/iolib.asd: error while parsing arguments to NIL DESTRUCTURING-BIND: odd number of elements in keyword/value list: (:PATHNAME) [Condition of type ASDF/FIND-SYSTEM:LOAD-SYSTEM-DEFINITION-ERROR]. 2017-11-27T01:39:22Z dansa: 2017-11-27T01:39:39Z stassats: i don't think iolib works on windows 2017-11-27T01:40:13Z dansa: That sucks. :) 2017-11-27T01:40:55Z stassats: just call whatever you would call from C 2017-11-27T01:41:05Z stassats: waitonsingleobject or something 2017-11-27T01:41:53Z dansa: Windows has select(). 2017-11-27T01:41:55Z nyef: WaitForMultipleObjectsEx()? 2017-11-27T01:42:05Z dansa: Windows is a POSIX system. :) 2017-11-27T01:42:16Z nyef: (That way, you can wait on pretty much anything with a HANDLE, plus get window messages.) 2017-11-27T01:42:37Z nyef: I know that we at least used to have a select() emulation of our own that used one of the WFMO variants. 2017-11-27T01:42:50Z nyef: Dunno if it's still there or not, though. 2017-11-27T01:43:01Z aautcsh joined #sbcl 2017-11-27T01:43:28Z stassats: all in favor of taking serve-event and ripping it off? 2017-11-27T01:43:31Z aautcsh quit (Client Quit) 2017-11-27T01:43:38Z nyef: NIL 2017-11-27T01:43:52Z stassats: not without a replacement, of course 2017-11-27T01:44:02Z nyef: That's a little better, I guess. 2017-11-27T01:44:04Z stassats: i just don't think you can fix it 2017-11-27T01:45:17Z nyef: I'd ask what's wrong with it, but then you might tell me. 2017-11-27T01:45:23Z stassats: you know what wait-until-fd-usable does on windows? calls LISTEN in a loop 2017-11-27T01:45:53Z nyef: Now, I *KNOW* that's not what it did in the 1.0 days. 2017-11-27T01:46:07Z nyef: Seriously, WTF? 2017-11-27T01:54:39Z nyef: Umm. Looking at serve-event, it looks like wait-until-fd-usable calls poll() in a loop? 2017-11-27T01:54:49Z nyef: Well, on non-windows, that is. 2017-11-27T02:04:41Z stassats quit (Ping timeout: 240 seconds) 2017-11-27T02:10:09Z dougk__ quit (Ping timeout: 248 seconds) 2017-11-27T02:20:49Z dansa quit (Ping timeout: 248 seconds) 2017-11-27T02:25:11Z dougk joined #sbcl 2017-11-27T03:11:42Z dougk quit (Read error: Connection reset by peer) 2017-11-27T03:11:57Z dougk joined #sbcl 2017-11-27T03:38:33Z loke` is now known as loke 2017-11-27T04:06:17Z shka joined #sbcl 2017-11-27T04:12:05Z milanj quit (Quit: This computer has gone to sleep) 2017-11-27T04:18:22Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-27T04:19:36Z BitPuffin|osx joined #sbcl 2017-11-27T05:12:48Z Bike quit (Quit: Lost terminal) 2017-11-27T06:32:32Z dougk quit (Ping timeout: 255 seconds) 2017-11-27T06:45:38Z oleo quit (Quit: Leaving) 2017-11-27T07:15:43Z scymtym quit (Ping timeout: 248 seconds) 2017-11-27T07:17:46Z BigSafari joined #sbcl 2017-11-27T08:06:35Z shka quit (Ping timeout: 276 seconds) 2017-11-27T08:23:22Z scymtym joined #sbcl 2017-11-27T08:55:10Z angavrilov joined #sbcl 2017-11-27T09:30:12Z GreaseMonkey quit (Remote host closed the connection) 2017-11-27T09:30:50Z milanj joined #sbcl 2017-11-27T09:33:43Z greaser|q joined #sbcl 2017-11-27T09:35:10Z dougk joined #sbcl 2017-11-27T09:38:32Z greaser|q quit (Changing host) 2017-11-27T09:38:32Z greaser|q joined #sbcl 2017-11-27T09:38:35Z greaser|q is now known as GreaseMonkey 2017-11-27T09:39:51Z scymtym quit (Ping timeout: 246 seconds) 2017-11-27T09:39:58Z dougk quit (Ping timeout: 268 seconds) 2017-11-27T09:43:03Z BitPuffin|osx quit (Ping timeout: 268 seconds) 2017-11-27T10:10:45Z attila_lendvai joined #sbcl 2017-11-27T10:10:45Z attila_lendvai quit (Changing host) 2017-11-27T10:10:45Z attila_lendvai joined #sbcl 2017-11-27T10:29:43Z milanj quit (Quit: This computer has gone to sleep) 2017-11-27T10:44:14Z dwts: hey guys, yesterday I came across this on a lisp-related subreddit: https://github.com/hellerve/sbcli has anyone tried it? 2017-11-27T10:44:36Z milanj joined #sbcl 2017-11-27T10:48:30Z scymtym joined #sbcl 2017-11-27T11:09:51Z dansa joined #sbcl 2017-11-27T11:09:52Z dansa quit (Changing host) 2017-11-27T11:09:52Z dansa joined #sbcl 2017-11-27T11:32:48Z m00natic joined #sbcl 2017-11-27T11:33:48Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-27T11:34:15Z BigSafari joined #sbcl 2017-11-27T11:46:46Z angavrilov quit (Remote host closed the connection) 2017-11-27T11:49:35Z milanj quit (Quit: This computer has gone to sleep) 2017-11-27T11:54:19Z mjl quit (Ping timeout: 250 seconds) 2017-11-27T11:54:19Z gendl quit (Ping timeout: 250 seconds) 2017-11-27T11:55:23Z mjl joined #sbcl 2017-11-27T11:55:37Z gendl joined #sbcl 2017-11-27T12:05:28Z angavrilov joined #sbcl 2017-11-27T12:06:01Z gargaml joined #sbcl 2017-11-27T12:08:09Z gargaml quit (Client Quit) 2017-11-27T12:08:27Z gargaml joined #sbcl 2017-11-27T12:25:07Z _death: looks too barebones.. e.g., doesn't support * ** *** etc. 2017-11-27T12:26:35Z _death: if there are errors I want to land in the debugger, not an unhelpful message 2017-11-27T12:28:41Z _death: skimming it, seems (defun foo () :q) (foo) will terminate the session? 2017-11-27T12:29:25Z _death: but hey, the docs say it's "A better REPL for SBCL." 2017-11-27T12:49:53Z Shinmera: Better for some specific interpretation of "good" 2017-11-27T12:59:10Z dougk joined #sbcl 2017-11-27T13:00:22Z rpg joined #sbcl 2017-11-27T13:04:05Z dougk quit (Ping timeout: 268 seconds) 2017-11-27T13:08:30Z dougk joined #sbcl 2017-11-27T13:13:52Z dougk quit (Ping timeout: 240 seconds) 2017-11-27T13:41:06Z Jesin quit (Quit: Leaving) 2017-11-27T13:42:07Z Bike joined #sbcl 2017-11-27T13:54:15Z rumbler31 joined #sbcl 2017-11-27T14:04:40Z milanj joined #sbcl 2017-11-27T14:27:27Z dougk joined #sbcl 2017-11-27T14:44:43Z sjl___ joined #sbcl 2017-11-27T14:47:18Z dwts: 14:28 < _death> skimming it, seems (defun foo () :q) (foo) will terminate the session? <-- that doesn't sound very helpful, I'll give it a try after work 2017-11-27T14:48:51Z dwts: _death: are you suggesting that there are people out there that advertise projects/products that don't meet the descrtiption irl? :P 2017-11-27T15:02:12Z dougk quit (Ping timeout: 246 seconds) 2017-11-27T15:05:15Z dougk joined #sbcl 2017-11-27T15:08:40Z Jesin joined #sbcl 2017-11-27T15:11:16Z eudoxia joined #sbcl 2017-11-27T15:12:40Z GreaseMonkey quit (Quit: No Ping reply in 180 seconds.) 2017-11-27T15:14:48Z greaser|q joined #sbcl 2017-11-27T15:27:13Z BitPuffin|osx joined #sbcl 2017-11-27T15:31:09Z Xof: pkhuong: has anyone told you about your security certificate on pvk.ca? 2017-11-27T15:35:16Z pkhuong: Xof: no. I think that's actually fe[nl]ix's 2017-11-27T15:35:25Z jdz: It looks like a certificate for alu.org 2017-11-27T15:36:02Z Xof: I want to tell my students to read your blog on Robin Hood hashing! 2017-11-27T15:36:05Z pkhuong: ... sigh. scheduled emails as a service. give me all your VC money now. 2017-11-27T15:37:38Z pkhuong: Xof: I think if you send the http link to people who've never visited pvk.ca over HTTPS, it will work ;) 2017-11-27T15:37:44Z pkhuong: others can delete the HSTS record :x 2017-11-27T15:38:50Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-27T15:41:18Z BitPuffin|osx quit (Ping timeout: 258 seconds) 2017-11-27T15:41:55Z pkhuong: Xof: so... you can just download the html files for https://www.pvk.ca/Blog/LowLevel/two-neat-tricks.html / https://www.pvk.ca/Blog/numerical_experiments_in_hashing.html / https://www.pvk.ca/Blog/more_numerical_experiments_in_hashing.html 2017-11-27T15:55:34Z Xof: thanks 2017-11-27T16:05:31Z Bike quit (Quit: Page closed) 2017-11-27T16:17:19Z sjl___ is now known as sjl 2017-11-27T16:24:50Z dougk quit (Ping timeout: 252 seconds) 2017-11-27T16:27:03Z dougk joined #sbcl 2017-11-27T16:32:42Z oleo joined #sbcl 2017-11-27T16:38:16Z Bike joined #sbcl 2017-11-27T16:45:58Z gargaml quit (Ping timeout: 264 seconds) 2017-11-27T16:52:19Z dougk quit (Ping timeout: 252 seconds) 2017-11-27T16:53:51Z stassats joined #sbcl 2017-11-27T17:22:06Z dougk joined #sbcl 2017-11-27T17:26:14Z BitPuffin|osx joined #sbcl 2017-11-27T17:30:07Z stassats quit (Ping timeout: 248 seconds) 2017-11-27T17:42:52Z m00natic quit (Remote host closed the connection) 2017-11-27T17:57:45Z gargaml joined #sbcl 2017-11-27T17:59:45Z gargaml quit (Client Quit) 2017-11-27T18:01:59Z dougk quit (Ping timeout: 276 seconds) 2017-11-27T18:04:05Z fortitude joined #sbcl 2017-11-27T18:13:31Z dougk joined #sbcl 2017-11-27T18:20:35Z Bike quit (Ping timeout: 260 seconds) 2017-11-27T18:28:38Z dougk quit (Ping timeout: 276 seconds) 2017-11-27T18:30:33Z Bike joined #sbcl 2017-11-27T18:37:25Z dougk joined #sbcl 2017-11-27T18:42:51Z shka joined #sbcl 2017-11-27T19:01:47Z dougk quit (Ping timeout: 255 seconds) 2017-11-27T19:10:14Z BitPuffin|osx quit (Ping timeout: 276 seconds) 2017-11-27T19:11:16Z dougk joined #sbcl 2017-11-27T19:29:38Z dougk__ joined #sbcl 2017-11-27T19:30:23Z dougk quit (Ping timeout: 276 seconds) 2017-11-27T19:48:03Z shka quit (Quit: Konversation terminated!) 2017-11-27T19:56:07Z shka joined #sbcl 2017-11-27T20:04:39Z dansa quit (Ping timeout: 258 seconds) 2017-11-27T20:04:51Z BigSafari joined #sbcl 2017-11-27T20:26:12Z fe[nl]ix quit (Remote host closed the connection) 2017-11-27T20:26:12Z Blkt quit (Read error: Connection reset by peer) 2017-11-27T20:26:24Z Blkt joined #sbcl 2017-11-27T20:26:25Z fe[nl]ix joined #sbcl 2017-11-27T20:28:11Z eudoxia quit (Quit: Leaving) 2017-11-27T20:31:06Z dougk joined #sbcl 2017-11-27T20:33:35Z dougk__ quit (Ping timeout: 255 seconds) 2017-11-27T20:43:32Z scymtym quit (Ping timeout: 240 seconds) 2017-11-27T20:46:49Z shka quit (Ping timeout: 258 seconds) 2017-11-27T21:14:44Z BigSafari quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-27T21:20:29Z stylewarning: We've been sporadically getting the following error: "An arithmetic error SB-KERNEL:FLOATING-POINT-EXCEPTION was signalled. No traps are enabled? How can this be?" 2017-11-27T21:20:39Z stylewarning: Does anyone have hints on why/how this can be? 2017-11-27T21:22:05Z _death: maybe traps were enabled at the time of signaling? 2017-11-27T21:23:11Z stylewarning: This is happening in multithreaded code, so I'm wondering if something is going on there. 2017-11-27T21:54:15Z scymtym joined #sbcl 2017-11-27T22:05:20Z stassats joined #sbcl 2017-11-27T22:06:09Z stassats: huh, looks a local function called twice makes a cycle for the type deriver 2017-11-27T22:08:36Z stassats: but that would've failed a long time ago, i think something's wrong with type unification 2017-11-27T22:09:38Z dougk quit (Ping timeout: 276 seconds) 2017-11-27T22:12:28Z stassats: (type-union (specifier-type '(rational 1)) (specifier-type '(integer 1))) => (RATIONAL 1) 2017-11-27T22:12:29Z stassats: that's good 2017-11-27T22:12:42Z stassats: (type-union (specifier-type '(rational 1)) (specifier-type '(integer -3 1))) => # 2017-11-27T22:12:43Z stassats: not so good 2017-11-27T22:13:31Z stassats: which makes two calls become disjoint and feed new types growing and growing them 2017-11-27T22:14:06Z attila_lendvai quit (Ping timeout: 260 seconds) 2017-11-27T22:16:00Z attila_lendvai joined #sbcl 2017-11-27T22:16:00Z attila_lendvai quit (Changing host) 2017-11-27T22:16:00Z attila_lendvai joined #sbcl 2017-11-27T22:16:53Z Bike quit (Quit: Page closed) 2017-11-27T22:17:09Z stassats: but fixing this, i wonder if i can construct a test case where it doesn't normally join anyway, like single-float and integer 2017-11-27T22:19:15Z stassats: kinda, it seems to cycle between two derive types, but it terminates quickly 2017-11-27T22:19:25Z stassats: maybe it just overflows in float multiplication 2017-11-27T22:21:41Z stassats: but it derives some complete nonsense, (OR BIT (INTEGER 4 4) (INTEGER 25 25) (INTEGER 676 676) (INTEGER 458329 458329) (INTEGER 210066388900 210066388900) (INTEGER 44127887745906175987801 44127887745906175987801) (INTEGER 1947270476915296449559703445493848930452791204)) 2017-11-27T22:25:15Z rumbler31 quit (Ping timeout: 268 seconds) 2017-11-27T22:28:51Z stassats: there's *approximate-numeric-unions*, but how will it work if type-union is cached? 2017-11-27T22:28:52Z stassats: sigh 2017-11-27T22:33:58Z stassats: when would we want such silly types? for bit masks? 2017-11-27T22:35:01Z dougk joined #sbcl 2017-11-27T22:36:50Z pkhuong: Xof: fe[nl]ix fixed it 2017-11-27T22:56:54Z stassats: if i unionize rational and integer, it indeed spins for a bit on floats until it exceeds their precision 2017-11-27T22:57:09Z stassats: doesn't sound like a solution... 2017-11-27T22:58:34Z sjl quit (Ping timeout: 264 seconds) 2017-11-27T22:59:23Z dougk quit (Ping timeout: 255 seconds) 2017-11-27T23:07:46Z Bike joined #sbcl 2017-11-27T23:10:43Z nyef is in a maze of PCL code, all incomprehensible. 2017-11-27T23:15:56Z stassats: there nested functions within nested functions, how can i know that they are called only once 2017-11-27T23:16:10Z Jesin quit (Quit: Leaving) 2017-11-27T23:16:27Z stassats: i wish (real x y) wouldn't disassemble into union types 2017-11-27T23:18:09Z stassats: wouldn't really help in general 2017-11-27T23:22:08Z stassats: i guess this is one of these "just wait until it comes to you" bugs, cause i have no idea how to properly solve it 2017-11-27T23:22:50Z stassats: at least i know what's going on 2017-11-27T23:33:52Z nyef: stassats: Want to change gears and look at PCL next? (-: 2017-11-27T23:33:59Z stassats: no 2017-11-27T23:34:06Z nyef: Heh. 2017-11-27T23:34:53Z stassats: and i've known about the call-next-method thing for some time 2017-11-27T23:36:23Z stassats: trying to come up with a better test case for type derivation cycles 2017-11-27T23:53:29Z Bike: what's the call-next-method thing? 2017-11-27T23:53:42Z stassats: the latest bug on launchpad 2017-11-27T23:54:26Z Bike: huh. i thought pcl had a whole declaration and everything to deal with that 2017-11-27T23:55:40Z nyef: Bike: Even worse, there's a case in the test suite that purports to cover this bug. 2017-11-27T23:55:47Z nyef: But somehow manages not to. 2017-11-27T23:59:58Z stassats: at some point (* REAL REAL) => (OR (SINGLE-FLOAT 0.0) (DOUBLE-FLOAT 0.0d0) (RATIONAL 0)) 2017-11-28T00:00:16Z stassats: that's where it starts 2017-11-28T00:03:16Z stassats: but ^2 grows too quickly, i need a test case where it grows 1+ 2017-11-28T00:07:26Z nyef: How do I CL:TRACE the WALK-FUNCTION in WALK-METHOD-LAMBDA? 2017-11-28T00:19:49Z attila_lendvai quit (Quit: Leaving.) 2017-11-28T00:20:01Z stassats: (lambda (c) (declare (type (signed-byte 3) c)) (flet ((%f16 (y) (the (real 0) (max y c)))) (the integer (%f16 (let ((x (+ (%f16 1) 1))) (+ x 1)))))) 2017-11-28T00:20:10Z stassats: it seems to bounce deriving + to 24.0 2017-11-28T00:20:30Z stassats: no idea why it stops 2017-11-28T00:22:04Z stassats: *max-optimize-iterations* stops it 2017-11-28T00:22:38Z stassats: and why doesn't this stop the original test case? 2017-11-28T00:23:11Z nyef: ... Wha? If I specialize the SETQ'd parameter, *then* it gets picked up properly? 2017-11-28T00:25:54Z nyef: Only happens if the specializer is T. To the point where there's a TYPEP on the specializer of (and symbol (not (eql t))). 2017-11-28T00:26:32Z nyef: Which also means that a non-symbol specializer could also trigger this. 2017-11-28T00:34:00Z pfdietz joined #sbcl 2017-11-28T00:34:43Z stassats: squaring seems to be growing pretty quickly, at which point each ir1-optimize slows down and it doesn't reach *max-optimize-iterations* 2017-11-28T00:34:52Z pfdietz: *max-optimize-iterations* doesn't save the original test case because the numbers are blowing up so fast. x ==> (x+1)^2 2017-11-28T00:35:11Z pfdietz: Just a bit too slow. 2017-11-28T00:35:49Z pfdietz: Could create a test case that blows up the numbers even faster. Use a larger exponent, for example. 2017-11-28T00:38:14Z pfdietz: My suggestion: if you get types with bounds that are large bignums, just widen to INTEGER. It's unlikely you'll lose useful optimizations very often. 2017-11-28T00:40:46Z stassats: now, where to insert that 2017-11-28T00:40:58Z stassats: can't promote all types, or typep wouldn't work 2017-11-28T00:41:35Z stassats: just after calling fun-info-derive-type 2017-11-28T00:41:52Z pfdietz: The cycles only show up for local functions? 2017-11-28T00:42:10Z pfdietz: Not, say, for ordinary loops? 2017-11-28T00:42:39Z stassats: i wouldn't rule SETs causing the same problem 2017-11-28T00:42:43Z stassats: out 2017-11-28T00:43:37Z dougk joined #sbcl 2017-11-28T00:43:46Z cromachina joined #sbcl 2017-11-28T00:45:00Z stassats: but it already stops on float overflows 2017-11-28T00:45:08Z stassats: or does it 2017-11-28T00:54:44Z sjl joined #sbcl 2017-11-28T00:55:42Z dwts quit (Ping timeout: 260 seconds) 2017-11-28T00:57:21Z pfdietz: Anyway, the bugs are slowing down a lot. That one took ~40 million iterations to find. 2017-11-28T00:58:41Z stassats: ok, i think it should be inserted wherever with-float-traps-masked is used 2017-11-28T01:18:57Z stassats quit (Ping timeout: 240 seconds) 2017-11-28T01:19:21Z stassats` joined #sbcl 2017-11-28T01:19:51Z stassats joined #sbcl 2017-11-28T01:24:45Z nyef: And... I'm done, I think. I have a potential fix for the bug I hit, but insufficient context to be able to know if it's good or not, and (IIRC) we're in code-freeze anyway. 2017-11-28T01:25:38Z stassats` quit (Ping timeout: 255 seconds) 2017-11-28T01:30:41Z dougk quit (Ping timeout: 248 seconds) 2017-11-28T01:34:22Z dwts joined #sbcl 2017-11-28T01:49:16Z dougk joined #sbcl 2017-11-28T01:56:30Z whoman quit (Read error: Connection reset by peer) 2017-11-28T01:56:33Z hooman quit (Read error: Connection reset by peer) 2017-11-28T01:59:34Z fortitude quit (Quit: Leaving) 2017-11-28T02:06:38Z stassats quit (Ping timeout: 268 seconds) 2017-11-28T02:45:43Z sjl__ joined #sbcl 2017-11-28T02:51:05Z sjl__ quit (Ping timeout: 276 seconds) 2017-11-28T02:58:35Z Jesin joined #sbcl 2017-11-28T03:26:50Z dougk quit (Ping timeout: 276 seconds) 2017-11-28T03:35:27Z tonton quit (Ping timeout: 248 seconds) 2017-11-28T03:36:56Z tonton joined #sbcl 2017-11-28T04:07:12Z les quit (Ping timeout: 240 seconds) 2017-11-28T04:09:54Z les joined #sbcl 2017-11-28T04:25:12Z sjl__ joined #sbcl 2017-11-28T04:29:41Z sjl__ quit (Ping timeout: 255 seconds) 2017-11-28T04:40:53Z pfdietz: Constantly impressed with how creative randomness can be. 2017-11-28T04:58:24Z Bike quit (Quit: Lost terminal) 2017-11-28T05:33:21Z aeth quit (Ping timeout: 248 seconds) 2017-11-28T05:35:10Z aeth joined #sbcl 2017-11-28T05:48:38Z sjl quit (Ping timeout: 268 seconds) 2017-11-28T05:49:24Z sjl joined #sbcl 2017-11-28T06:05:17Z shka joined #sbcl 2017-11-28T06:09:54Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-28T06:15:11Z milanj quit (Quit: This computer has gone to sleep) 2017-11-28T06:25:04Z BitPuffin|osx joined #sbcl 2017-11-28T06:36:51Z oleo quit (Quit: Leaving) 2017-11-28T07:10:57Z scymtym quit (Ping timeout: 240 seconds) 2017-11-28T07:20:27Z BigSafari joined #sbcl 2017-11-28T08:18:27Z shka quit (Ping timeout: 260 seconds) 2017-11-28T08:37:38Z scymtym joined #sbcl 2017-11-28T09:01:17Z milanj joined #sbcl 2017-11-28T09:12:14Z BigSafari quit (Quit: Textual IRC Client: www.textualapp.com) 2017-11-28T10:19:17Z attila_lendvai joined #sbcl 2017-11-28T10:19:17Z attila_lendvai quit (Changing host) 2017-11-28T10:19:17Z attila_lendvai joined #sbcl 2017-11-28T10:55:22Z milanj quit (Quit: This computer has gone to sleep) 2017-11-28T10:57:11Z milanj joined #sbcl 2017-11-28T10:57:24Z milanj quit (Client Quit) 2017-11-28T10:57:55Z gargaml joined #sbcl 2017-11-28T11:11:17Z m00natic joined #sbcl 2017-11-28T11:39:57Z Posterdati quit (Ping timeout: 240 seconds) 2017-11-28T12:05:55Z Posterdati joined #sbcl 2017-11-28T12:08:52Z itPuffin|osxB joined #sbcl 2017-11-28T12:09:35Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2017-11-28T12:10:11Z itPuffin|osxB is now known as BitPuffin|osx 2017-11-28T12:15:01Z Posterdati|2 joined #sbcl 2017-11-28T12:16:32Z Posterdati quit (Ping timeout: 240 seconds) 2017-11-28T12:20:17Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2017-11-28T12:20:19Z itPuffin|osxB joined #sbcl 2017-11-28T12:20:41Z itPuffin|osxB is now known as BitPuffin|osx 2017-11-28T12:47:54Z dougk joined #sbcl 2017-11-28T12:57:10Z stassats joined #sbcl 2017-11-28T13:00:12Z rpg joined #sbcl 2017-11-28T13:01:47Z dougk quit (Ping timeout: 252 seconds) 2017-11-28T13:03:35Z milanj joined #sbcl 2017-11-28T13:04:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-28T13:04:33Z dougk joined #sbcl 2017-11-28T13:08:49Z dougk quit (Ping timeout: 248 seconds) 2017-11-28T13:17:14Z scymtym joined #sbcl 2017-11-28T13:40:44Z Bike joined #sbcl 2017-11-28T13:41:28Z milanj quit (Read error: Connection reset by peer) 2017-11-28T13:44:22Z dougk joined #sbcl 2017-11-28T13:51:44Z milanj joined #sbcl 2017-11-28T13:53:46Z jdz quit (Ping timeout: 264 seconds) 2017-11-28T13:57:24Z jdz joined #sbcl 2017-11-28T14:02:16Z pkhuong: if I were to do it again, I'd probably have three values in a ctype: a fully accurate type, a useful upper bound, and a useful lower bound 2017-11-28T14:03:25Z pkhuong: we only need full fidelity for runtime checks. 2017-11-28T14:05:23Z DGASAU quit (Read error: Connection reset by peer) 2017-11-28T14:05:51Z stassats quit (Ping timeout: 240 seconds) 2017-11-28T14:09:59Z DGASAU joined #sbcl 2017-11-28T14:22:16Z pfdietz: Not much use to have the compiler propagate voluminous type descriptions. 2017-11-28T14:30:11Z DGASAU quit (Ping timeout: 258 seconds) 2017-11-28T14:42:14Z oleo joined #sbcl 2017-11-28T14:43:31Z DGASAU joined #sbcl 2017-11-28T14:47:36Z cromachina quit (Read error: Connection reset by peer) 2017-11-28T14:53:06Z sjl__ joined #sbcl 2017-11-28T15:04:36Z pkhuong: propagating them isn't that bad if we have a ton of structural sharing... less so if we cons up slightly different representation whenever we try to canonicalise types :'( 2017-11-28T15:11:22Z stassats joined #sbcl 2017-11-28T15:27:56Z _rumbler31 joined #sbcl 2017-11-28T15:29:59Z sjl quit (Quit: WeeChat 1.9.1) 2017-11-28T15:31:23Z nyef: "GC_PENDING, but why?" (sb-sprof failed on a Linux x86-64 sb-safepoint build) 2017-11-28T15:33:16Z milanj quit (Quit: This computer has gone to sleep) 2017-11-28T15:37:35Z scymtym quit (Ping timeout: 248 seconds) 2017-11-28T15:40:46Z nyef: Oof. And I'm getting CASE-FAILURE reading the quicklisp setup during startup, and then TYPE-ERROR printing the CASE-FAILURE, and a further TYPE-ERROR "The value # is not of type REAL" trying to get a backtrace... 2017-11-28T15:41:59Z dougk quit (Ping timeout: 276 seconds) 2017-11-28T15:42:28Z dougk joined #sbcl 2017-11-28T15:45:42Z milanj joined #sbcl 2017-11-28T15:52:01Z dougk quit (Ping timeout: 240 seconds) 2017-11-28T16:08:17Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-28T16:21:00Z sjl__ is now known as sjl 2017-11-28T16:33:50Z rpg joined #sbcl 2017-11-28T16:39:45Z gargaml quit (Quit: WeeChat 1.9.1) 2017-11-28T16:58:49Z _rumbler31 quit (Remote host closed the connection) 2017-11-28T16:59:14Z _rumbler31 joined #sbcl 2017-11-28T17:01:27Z stassats: nyef: sb-safepoint probably not making the fasls incompatible 2017-11-28T17:01:51Z stassats: sb-fasl::*features-potentially-affecting-fasl-format* 2017-11-28T17:01:52Z stassats: (:SB-THREAD :SB-PACKAGE-LOCKS :SB-UNICODE :CHENEYGC :GENCGC :MSAN :INT4-BREAKPOINTS :UD2-BREAKPOINTS) 2017-11-28T17:03:46Z dougk joined #sbcl 2017-11-28T17:10:35Z nyef: stassats: Guess I'll add that to my list for early 1.4.2 then. 2017-11-28T17:10:58Z nyef: No sense fpaffing about if that's the case. 2017-11-28T17:11:44Z nyef: Yeah, blowing out ~/.cache/common-lisp/ cleared it up. 2017-11-28T17:14:24Z scymtym joined #sbcl 2017-11-28T17:45:27Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-11-28T17:49:43Z m00natic quit (Remote host closed the connection) 2017-11-28T17:52:04Z mparashar joined #sbcl 2017-11-28T17:55:06Z stassats: well, who thought turning (complex (or (integer 10 20) (integer 30 40))) into (or (complex (integer 10 20)) (complex (integer 30 40))) is a good idea 2017-11-28T17:57:20Z Posterdati|2 quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/) 2017-11-28T17:57:36Z whoman joined #sbcl 2017-11-28T17:57:54Z Posterdati joined #sbcl 2017-11-28T18:10:23Z shka joined #sbcl 2017-11-28T18:13:29Z stassats: ok, the whole complex numeric type is broken, not just translating 2017-11-28T18:34:51Z dougk quit (Ping timeout: 240 seconds) 2017-11-28T19:08:30Z dougk joined #sbcl 2017-11-28T20:03:27Z shka quit (Ping timeout: 240 seconds) 2017-11-28T20:05:28Z smurfrobot joined #sbcl 2017-11-28T20:06:14Z smurfrobot: what are the differences between sbcl and cmucl? 2017-11-28T20:06:21Z nyef: smurfrobot: I don't know what the differences are these days, because I stopped paying attention to CMUCL a long time ago. Last I heard, there was an ARM port project for it? 2017-11-28T20:07:00Z smurfrobot: is there signnificant update to the runtime compiler since the fork? 2017-11-28T20:07:41Z eudoxia joined #sbcl 2017-11-28T20:08:31Z pkhuong: define significant. 2017-11-28T20:08:54Z smurfrobot: well i am looking for changes in optimizations and algorithms etc. 2017-11-28T20:09:25Z stassats: do you expect people to enumerate the changes? 2017-11-28T20:09:54Z smurfrobot: well i am hoping for a rough idea. 2017-11-28T20:10:09Z pkhuong: smurfrobot: the architecture is mostly the same. there's a lot of changes in how the architecture is used to define rewrite rules. 2017-11-28T20:11:25Z smurfrobot: ic ok. 2017-11-28T20:11:37Z nyef: There's a new phase or two, some fairly deep issues in some of the analysis have been fixed, and so on. 2017-11-28T20:11:44Z nyef: Some things have been backported to CMUCL. 2017-11-28T20:12:27Z nyef: Umm... new register allocator? 2017-11-28T20:12:38Z pkhuong: that's very localised. 2017-11-28T20:12:47Z nyef: Yes. 2017-11-28T20:13:16Z smurfrobot: thanks. 2017-11-28T20:13:42Z nyef: So was the magic that allows eliding value-cell allocation for DX closures. 2017-11-28T20:13:44Z pkhuong: I'd be more surprised by < quadratic-time IR1 tree matching than the RA changes. 2017-11-28T20:14:06Z pkhuong: oh yeah, the DX stuff is pretty far reaching, but I can't remember if you recovered something that CMUCL had all along :x 2017-11-28T20:14:42Z nyef: Nope. SBCL has tended to lead CMUCL as far as DX goes. 2017-11-28T20:15:55Z pkhuong: the LVAR/CTRAN structure and the ir1opt/constraint split will likely never go away, and I feel like that really explains a lot of what does and doesn't work in SBCL. 2017-11-28T20:16:41Z nyef: The original DX in Python was solely for &REST lists, which was a hack, and then there was a kludge piled on top of that (by MGR?), and then it sort of wound up being hack piled on kludge piled on hack from there for quite a while. 2017-11-28T20:17:03Z nyef: With nobody understanding the underlying constraints. 2017-11-28T20:17:15Z nyef: Ah, right. The LVAR/CTRAN instead of CONTINUATION thing. 2017-11-28T20:17:23Z nyef: That'd also be a difference from CMUCL. 2017-11-28T20:23:58Z nyef: I still remember looking through the CMUCL runtime, looking at how its GC tended to work, and after wading through a bunch of comments of the "talk to so-and-so about this if you're curious" variety coming across one that actually explained what was going on and why. And then realizing that it was a comment that I had written for SBCL and that the associated code change had been backported with it. 2017-11-28T21:04:53Z eudoxia quit (Quit: Leaving) 2017-11-28T21:06:29Z tloen joined #sbcl 2017-11-28T21:20:41Z stassats: not sure how to solve (complex union-type), a new type-class, not numeric-type? 2017-11-28T21:20:57Z stassats: or numeric-type for non-union types, and something else for union-types 2017-11-28T21:21:03Z stassats: will complicated things either way 2017-11-28T21:25:26Z stassats: the problem is with disjoint ranges, so if subclass numeric-type to have a list of ranges, not just low and high 2017-11-28T21:32:18Z stassats: i wonder if it would make sense to do that for all numeric types 2017-11-28T21:39:39Z smurfrobot: not sure i know enough about cl to understand what you are asking 2017-11-28T21:40:05Z stassats: good thing i wasn't asking you directory 2017-11-28T21:40:16Z smurfrobot: i guess so. 2017-11-28T21:42:14Z stassats: everything that touches numeric-type would have to be modified, which means mistakes will creep in 2017-11-28T21:44:08Z stassats: ok, let's invert the problem 2017-11-28T21:45:14Z stassats: if (typep x '(complex (or y x))) it shouldn't check for (or (typep x '(complex x)) (typep x '(complex y))) 2017-11-28T21:45:35Z stassats: but for (typep realpart/imagpart (or x y)) 2017-11-28T21:45:44Z stassats: i think that'll require changes in two-three places 2017-11-28T22:04:49Z dougk quit (Ping timeout: 268 seconds) 2017-11-28T22:07:07Z jack_rabbit joined #sbcl 2017-11-28T22:07:10Z Bike quit (Ping timeout: 260 seconds) 2017-11-28T22:15:34Z stassats: yeah, that's it, have (typep (complex (1- most-negative-fixnum) (1+ most-positive-fixnum)) '(complex bignum)) already working, now for the compiled version 2017-11-28T22:17:11Z stassats: huh, but if the original type is (or (complex (integer * -4611686018427387905)) (complex (integer 4611686018427387904))), then it would give a wrong answer 2017-11-28T22:17:24Z stassats: ok, i give up 2017-11-28T22:22:03Z stassats: as (typep (complex 1 4) '(or (complex (integer 1 2)) (complex (integer 3 4)))) is wrong 2017-11-28T22:44:44Z stassats: scymtym: i think my changes to with-test broke something on your CI setup 2017-11-28T22:55:18Z scymtym: stassats: likely since it replaces test-util.lisp with a modified version. i want to eventually upstream some of those changes. but i don't think we care about the ability to write junit test results :) 2017-11-28T22:55:38Z stassats: scymtym: i stopped evaluating :fails-on features 2017-11-28T22:56:06Z stassats: because some were already unquoted and not caught 2017-11-28T22:56:12Z stassats: since (not :feature) goes to NIL 2017-11-28T22:58:32Z scymtym: stassats: yeah, i saw that. i think it's a good change 2017-11-28T22:59:08Z dougk joined #sbcl 2017-11-28T22:59:10Z scymtym: patch adapted, build restarted 2017-11-28T23:01:05Z scymtym: i would really like to use email notification instead of having to look every couple of days. but sourceforge, our tests and jenkins itself are too flaky. we would drown in false positives 2017-11-28T23:07:28Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-28T23:19:35Z sjl quit (Ping timeout: 276 seconds) 2017-11-28T23:28:16Z tloen quit (Quit: Leaving) 2017-11-28T23:31:03Z sjl joined #sbcl 2017-11-28T23:32:04Z nyef: Hrm. Building --with-sb-thruption bombs trying to link the runtime, there are a couple of undefined functions. 2017-11-28T23:32:25Z stassats: did you enable wtimer as well? 2017-11-28T23:32:45Z nyef: No. I'll try that next. 2017-11-28T23:33:18Z nyef: Also going to have to try a MIPS --with-sb-safepoint build. 2017-11-28T23:34:02Z attila_lendvai quit (Ping timeout: 260 seconds) 2017-11-28T23:34:10Z stassats: did you make any headway with the safepoint problems? 2017-11-28T23:34:42Z stassats: or familiarizing with safepoints 2017-11-28T23:35:03Z nyef: So far, I've managed to run a test case that locked up. Right now I'm trying to do some basic familiarization. 2017-11-28T23:35:28Z stassats: i can recount a few things about safepoints 2017-11-28T23:36:12Z stassats: there are actually two kinds of safepoints, one global, which is kinda like a lisp safepoint, another one is per-thread and is check on exit from foreign functions 2017-11-28T23:37:03Z stassats: i guess that's all i can adequately remember 2017-11-28T23:37:35Z stassats: there are some tricky state machine that are tricky to inspect and their state transitions aren't well described 2017-11-28T23:37:39Z stassats: nor is their purpose 2017-11-28T23:38:55Z stassats: the lock up seems to be in some state transition invariant being broken 2017-11-28T23:39:08Z stassats: or there not being a correct invariant in the first place 2017-11-28T23:50:55Z nyef: Yeah, I figured that I'd need to build my own model of what's going on from scratch, and then work out the state transitions from there. 2017-11-28T23:51:01Z Bike joined #sbcl 2017-11-28T23:51:54Z nyef: The fault that I got from sb-sprof when building with safepoints indicates that there's some sort of hole in the system, somehow. 2017-11-28T23:51:57Z mparashar quit (Ping timeout: 240 seconds) 2017-11-28T23:52:16Z stassats: i think sb-sprof just may not work with full safepoints 2017-11-28T23:52:19Z stassats: it uses signals 2017-11-28T23:53:46Z nyef: ... so? 2017-11-28T23:54:21Z stassats: so it's just not adjusted to safepoints 2017-11-28T23:54:25Z stassats: not safepoints being broken 2017-11-28T23:54:33Z stassats: but safepoints are broken anyway 2017-11-28T23:54:54Z nyef: Right, so I might as well see if I can get all of it working. 2017-11-29T00:02:17Z nyef: Well, building merely --with-sb-wtimer seems to work. I wonder what happens if I build --without-sb-thread --with-sb-wtimer? 2017-11-29T00:02:32Z rpg joined #sbcl 2017-11-29T00:04:00Z cromachina joined #sbcl 2017-11-29T00:05:32Z karlosz joined #sbcl 2017-11-29T00:18:36Z karlosz: stassats: what's wrong with the transformation (typep a+bi '(complex 2017-11-29T00:18:36Z karlosz: (or x y))) => (and (typep a '(or x y)) (typep b '(or x y))) 2017-11-29T00:19:01Z dougk quit (Ping timeout: 240 seconds) 2017-11-29T00:19:22Z stassats: you can't transform that 2017-11-29T00:19:41Z karlosz: it seems correct to me according to clhs 2017-11-29T00:19:50Z stassats: no, you can't do it in sbcl 2017-11-29T00:20:11Z stassats: you're basically saying "what's wrong with returning the correct answer" 2017-11-29T00:20:29Z stassats: what's wrong is that it's broken 2017-11-29T00:20:41Z dougk joined #sbcl 2017-11-29T00:23:40Z karlosz: is it because (or (integer 1 2) (integer 3 4)) gets reduced to (integer 1 4) first 2017-11-29T00:24:03Z stassats: yes 2017-11-29T00:26:46Z stassats: and without doing that the whole type system around numeric types breaks down 2017-11-29T00:27:22Z karlosz: yeah, it seems like compound complex type specifier is special 2017-11-29T00:27:37Z karlosz: semantically 2017-11-29T00:28:20Z stassats: but complex numbers aren't well optimized anyway, so not much type derivation would be affected 2017-11-29T00:28:41Z karlosz: although typep is not currently conforming 2017-11-29T00:30:14Z stassats: it's actually an easy project, but for someone who wouldn't be bored to death with rewriting all uses of numeric types 2017-11-29T00:30:19Z stassats: which is not me 2017-11-29T00:31:49Z stassats: but i'll eventually do it 2017-11-29T00:32:43Z stassats: will have to devise a strategy to minimise damage 2017-11-29T00:33:11Z stassats: first split numeric-type into real-type and complex-type without changing the semantics 2017-11-29T00:33:29Z stassats: the replace all uses with real-type and complex-type where applicable 2017-11-29T00:33:47Z stassats: and only then change complex-type 2017-11-29T00:36:56Z _rumbler31 quit (Ping timeout: 276 seconds) 2017-11-29T00:38:11Z nyef: Sounds plausible, although you might be able to get away with "just" testing for complexity in the various type methods instead of introducing an entirely separate type. 2017-11-29T00:38:46Z stassats: nyef: i just did that, and it introduces another bug 2017-11-29T00:39:18Z karlosz: if complex numbers are ever optimized, the specifier type should hold 2 lower and upper bounds for real and imaginary seperately for type inferecing 2017-11-29T00:39:28Z stassats: nyef: i can't detect that the type i'm giving isn't actually a type from the source 2017-11-29T00:39:29Z karlosz: although complexes might be too fringe 2017-11-29T00:40:12Z karlosz: ie if it can be derived that x always has imaginary part 0 while the real part is always fixnum 2017-11-29T00:40:14Z nyef: Ah, okay. 2017-11-29T00:40:36Z karlosz: so that would warrant a seperate complex-type anyways 2017-11-29T00:41:04Z stassats: the input type has only one type for both parts, not two 2017-11-29T00:41:11Z nyef: ... Aren't complexes with imaginary part 0 required to be represented as non-complex anyway? 2017-11-29T00:41:21Z stassats: not for float zeros 2017-11-29T00:41:43Z karlosz: right, but that doesn't mean the compiler can't have derive that information 2017-11-29T00:41:55Z karlosz: there's no way for a user to have 2 bounds in typep 2017-11-29T00:41:57Z karlosz: or in declarations 2017-11-29T00:42:58Z karlosz: ie. (let ((x (complex (the fixnum y) (the (integer 1 2) z)))) 2017-11-29T00:43:07Z stassats: it needs to be fixed first 2017-11-29T00:43:23Z karlosz: yes 2017-11-29T00:43:32Z stassats: splitting complex-type users would help it, but i'd like to not think about it now 2017-11-29T00:43:49Z stassats: who uses complex numbers anyway 2017-11-29T00:43:54Z joshe quit (Ping timeout: 258 seconds) 2017-11-29T00:46:46Z nyef: ... Wha? "Offset from SB!VM::*IMMOBILE-FREELIST* to NIL is 680, not 728"? 2017-11-29T00:48:12Z stassats: did you not do a full rebuild? 2017-11-29T00:48:25Z stassats: like make-host-2 only? 2017-11-29T00:49:09Z nyef: This is from first genesis. 2017-11-29T00:52:18Z nyef: 48 bytes. Six words? One symbol, probably. 2017-11-29T00:55:19Z nyef: Found it. There's a duplicate entry in the static symbols list. 2017-11-29T00:57:20Z stassats: *in-without-gcing*? 2017-11-29T00:57:33Z nyef: Yeah. 2017-11-29T00:57:56Z nyef: Given that safepoints are broken, I'm not pushing a fix during the freeze. 2017-11-29T00:58:12Z stassats: they aren't broken broken 2017-11-29T00:58:25Z stassats: but windows, which can't live without safepoints, doesn't have immobile-space enabled 2017-11-29T00:58:37Z nyef: This is also --without-sb-thread --with-sb-safepoint anyway. 2017-11-29T00:58:47Z stassats: and without threads 2017-11-29T00:59:15Z stassats: although i've untangled some win32 stuff to build without-sb-thread 2017-11-29T00:59:35Z stassats: what was the great idea to add threads by making it impossible to build without threads? 2017-11-29T00:59:52Z nyef: I have no idea. 2017-11-29T01:00:04Z stassats: that was rhetorical 2017-11-29T01:00:37Z nyef: The year's delay in merging the windows port because of the stupid D flag thing really killed most of my ability to care about it. 2017-11-29T01:01:05Z stassats: i might polish without-sb-thread and then add without-sb-safepoint to windows one day 2017-11-29T01:01:48Z stassats: i don't use windows, that's why any hard issues are not cared to 2017-11-29T01:02:20Z stassats: i think i would have solved the sb-safepoint stuff a long time ago if i did use windows 2017-11-29T01:02:46Z stassats: but i just can't commit three days to headbanging against a wall for something i don't really use 2017-11-29T01:03:13Z nyef: Yeah, I'm the same way about some things. "I'd've fixed this ages ago if it were something that I actually used, but it's not, so it's more effort to fix than I care to expend." 2017-11-29T01:04:42Z stassats: are alpha and hppa buildable? 2017-11-29T01:04:53Z nyef: Umm... I forget? 2017-11-29T01:05:11Z stassats: i can only test on x86, x86-64, arm, arm64, ppc, mips, and sparc 2017-11-29T01:05:12Z nyef: I think that alpha still has that stack-sap problem. 2017-11-29T01:06:12Z nyef: And I forget where I left off with hppa, except that I'm fairly sure that I didn't fix some of the branch target stuff, so parts of the test suite need to be disabled for it to run that much. 2017-11-29T01:06:21Z stassats: now that there is crossbuild-runner, it is buildable, but no data on surviving cold-init 2017-11-29T01:07:11Z nyef: Hrm. struct gcing_safety not defined. Lovely. 2017-11-29T01:08:06Z stassats: what is even gcing_safety? 2017-11-29T01:08:13Z stassats: do we have an unsafe gc mode? 2017-11-29T01:08:42Z nyef: I think I'd rather have a full_tilt_boogie mode than an unsafe_gc mode. 2017-11-29T01:11:02Z stassats: looked through all uses of gcing_safety, still no idea what it does 2017-11-29T01:11:07Z stassats: not a single comment 2017-11-29T01:12:37Z stassats: i think it's something with SAFEpoint, rather than some kind of safety 2017-11-29T01:13:36Z stassats: i'd rewrite it just to get it documented 2017-11-29T01:14:54Z stassats: maybe there is some document i'm missing? 2017-11-29T01:15:07Z stassats: it can't be so poorly documented, can it? 2017-11-29T01:15:17Z nyef: I'm hoping for the same, but if there is such a document why isn't it in our source control? 2017-11-29T01:15:25Z dougk__ joined #sbcl 2017-11-29T01:15:28Z dougk quit (Remote host closed the connection) 2017-11-29T01:16:28Z stassats: it had been all developed outside of sbcl, merged by a third developer, all of which since have disappeared 2017-11-29T01:17:01Z stassats: and not having first party support hurts 2017-11-29T01:17:45Z stassats: GC_PENDING, but why? 2017-11-29T01:17:55Z stassats: on a CI build 2017-11-29T01:18:14Z stassats: with sb-safepoint, sb-thruption, sb-wtimer 2017-11-29T01:18:51Z stassats: (at sb-sprof, yes) 2017-11-29T01:19:21Z stassats: at https://ci.cor-lab.org/job/sbcl-master/ that fixed, that should be no red balls anymore 2017-11-29T01:20:47Z nyef: Mind leaving this mess with me for a few weeks? (-: 2017-11-29T01:21:17Z nyef: We're sortof overdue for a major interrupt-handling shakeup anyway. 2017-11-29T01:21:23Z stassats: sure, it's your brain cells 2017-11-29T01:21:52Z stassats: i have plenty of stuff either lined up to be pushed, finished or overhauled (like that complex thingy) 2017-11-29T01:26:32Z stassats: and it's not like i document more 2017-11-29T01:27:01Z stassats: i was thinking of documenting the new HOF types stuff 2017-11-29T01:27:31Z stassats: but i would just obsess over style and grammar when writing something more than just some comments 2017-11-29T01:31:29Z stassats: and a design document wouldn't get updated... 2017-11-29T01:34:41Z nyef: Sometimes it is sufficient to have a historical document to know what the intent was at one point in time plus the changelog since then. 2017-11-29T01:44:27Z sjl quit (Quit: WeeChat 1.9.1) 2017-11-29T01:44:28Z stassats: i think i can make it not just about the new code, but why it was needed in the first place 2017-11-29T01:44:53Z stassats: which ultimately involves describing at least in passing how ir1-transform works and how let conversion works 2017-11-29T01:45:07Z stassats: basically all the reasons that went into the new code being the way it is 2017-11-29T02:00:27Z Colleen quit (Ping timeout: 240 seconds) 2017-11-29T02:48:18Z mparashar joined #sbcl 2017-11-29T02:52:47Z mparashar quit (Ping timeout: 248 seconds) 2017-11-29T02:57:21Z karlosz quit (Ping timeout: 250 seconds) 2017-11-29T03:03:34Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-29T03:05:59Z Jesin quit (Quit: Leaving) 2017-11-29T03:08:05Z stassats quit (Ping timeout: 240 seconds) 2017-11-29T03:10:10Z Jesin joined #sbcl 2017-11-29T03:18:41Z dougk__ quit (Read error: Connection reset by peer) 2017-11-29T03:18:56Z dougk joined #sbcl 2017-11-29T03:38:18Z milanj quit (Quit: This computer has gone to sleep) 2017-11-29T03:44:38Z bkst quit (Remote host closed the connection) 2017-11-29T03:56:27Z nyef: Oh, here's a fun one: non-windows x86oid safepoints use int3, even on :UD2-BREAKPOINTS systems. 2017-11-29T03:58:40Z nyef: Hrm. Or :INT4-BREAKPOINTS on x86-64? 2017-11-29T04:00:49Z shka joined #sbcl 2017-11-29T04:04:46Z Bike quit (Quit: Lost terminal) 2017-11-29T04:09:25Z nicdev quit (Read error: Connection reset by peer) 2017-11-29T04:10:42Z nicdev joined #sbcl 2017-11-29T05:06:07Z dougk quit (Ping timeout: 248 seconds) 2017-11-29T06:10:56Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-29T06:16:56Z karlosz joined #sbcl 2017-11-29T06:23:17Z oleo quit (Quit: Leaving) 2017-11-29T06:35:50Z stylewarning: Can I force objects to be allocated on a fresh page? 2017-11-29T06:36:33Z stylewarning: I am really running into terrible stability issues with successive allocations of structures which point to big data, when I know that the original structure is dead 2017-11-29T06:55:01Z Jesin quit (Quit: Leaving) 2017-11-29T07:00:29Z dougk joined #sbcl 2017-11-29T07:04:56Z dougk quit (Ping timeout: 258 seconds) 2017-11-29T07:10:00Z Colleen joined #sbcl 2017-11-29T07:50:43Z karlosz quit (Ping timeout: 250 seconds) 2017-11-29T07:57:19Z shka quit (Ping timeout: 248 seconds) 2017-11-29T08:13:01Z scymtym quit (Ping timeout: 240 seconds) 2017-11-29T08:36:50Z dougk joined #sbcl 2017-11-29T08:41:09Z dougk quit (Ping timeout: 258 seconds) 2017-11-29T09:11:17Z scymtym joined #sbcl 2017-11-29T09:30:54Z milanj joined #sbcl 2017-11-29T09:47:46Z gargaml joined #sbcl 2017-11-29T09:49:32Z BitPuffin|osx joined #sbcl 2017-11-29T10:24:32Z DeadTrickster quit (Remote host closed the connection) 2017-11-29T11:06:46Z m00natic joined #sbcl 2017-11-29T11:10:43Z m00natic quit (Remote host closed the connection) 2017-11-29T11:15:16Z m00natic joined #sbcl 2017-11-29T11:30:37Z stassats joined #sbcl 2017-11-29T11:31:16Z stassats: stylewarning: arrays specialized to fixnum would put minimal pressure on the gc 2017-11-29T11:32:32Z attila_lendvai joined #sbcl 2017-11-29T11:35:49Z milanj quit (Quit: This computer has gone to sleep) 2017-11-29T11:46:12Z scymtym quit (Ping timeout: 240 seconds) 2017-11-29T11:51:02Z scymtym joined #sbcl 2017-11-29T12:09:47Z dougk joined #sbcl 2017-11-29T12:17:35Z stassats quit (Ping timeout: 248 seconds) 2017-11-29T12:18:51Z stassats joined #sbcl 2017-11-29T12:32:58Z stassats quit (Remote host closed the connection) 2017-11-29T12:33:14Z stassats joined #sbcl 2017-11-29T12:58:29Z stassats quit (Read error: Connection reset by peer) 2017-11-29T12:58:53Z stassats joined #sbcl 2017-11-29T13:00:37Z rpg joined #sbcl 2017-11-29T13:05:03Z rpg quit (Ping timeout: 248 seconds) 2017-11-29T13:17:39Z Kevslinger joined #sbcl 2017-11-29T13:42:27Z dougk quit (Ping timeout: 260 seconds) 2017-11-29T13:42:45Z Bike joined #sbcl 2017-11-29T13:56:34Z stassats` joined #sbcl 2017-11-29T14:06:59Z stassats quit (Remote host closed the connection) 2017-11-29T14:07:16Z stassats joined #sbcl 2017-11-29T14:22:19Z mparashar joined #sbcl 2017-11-29T14:30:46Z rumbler31 joined #sbcl 2017-11-29T14:40:01Z rpg joined #sbcl 2017-11-29T14:41:51Z oleo joined #sbcl 2017-11-29T14:48:46Z milanj joined #sbcl 2017-11-29T14:50:13Z cromachina quit (Read error: Connection reset by peer) 2017-11-29T14:51:06Z rumbler31 quit (Remote host closed the connection) 2017-11-29T14:52:07Z sjl joined #sbcl 2017-11-29T15:02:58Z dougk joined #sbcl 2017-11-29T15:10:16Z scymtym_ joined #sbcl 2017-11-29T15:11:29Z scymtym quit (Ping timeout: 252 seconds) 2017-11-29T15:19:04Z joshe joined #sbcl 2017-11-29T15:23:58Z rumbler31 joined #sbcl 2017-11-29T15:24:25Z mparashar quit (Ping timeout: 250 seconds) 2017-11-29T15:32:49Z eudoxia joined #sbcl 2017-11-29T15:50:13Z dougk_: is the docstring for save-lisp-and-die wrong about :save-runtime-options or is the implementation wrong in the following regard: "... causing _ALL_ command line arguments to be passed to the toplevel" 2017-11-29T15:50:35Z dougk_: and then the test exercises saved core with runtime option --no-userinit, which does not show up in *posix-argv* 2017-11-29T15:51:21Z stassats: with a different :toplevel? 2017-11-29T15:51:23Z dougk_: the docstring implies that --no-userinit should be present in *posix-argv* because all command line arguments should be passed to the toplevel 2017-11-29T15:51:33Z dougk_: toplevel is a thunk, it never gets any arguments, right? 2017-11-29T15:51:36Z stassats: toplevel would eat --no-userinit, it's not a runtime option 2017-11-29T15:51:50Z stassats: it gets *posix-argv* 2017-11-29T15:51:50Z dougk_: oh, ok. 2017-11-29T15:51:53Z stassats: and modifies it 2017-11-29T15:53:23Z stassats: the runtime/top-level-init options have wasted numerous hours by confusing people 2017-11-29T15:57:36Z rgrau joined #sbcl 2017-11-29T16:00:35Z dougk quit (Ping timeout: 276 seconds) 2017-11-29T16:03:36Z dougk joined #sbcl 2017-11-29T16:06:44Z Xof: that complex type bug is horrible 2017-11-29T16:06:52Z Xof: I suppose I should be grateful that it's not a regression 2017-11-29T16:07:16Z Xof: I suspect the right answer is to do a numeric-ranges-type analogous to character-set-type 2017-11-29T16:08:02Z Xof: and each numeric-ranges-type is a union of what our current numeric-type is (for :complexp nil) 2017-11-29T16:08:46Z Xof: so that you can represent types like (or (rational 1/2 3/2) (integer 4 5) (single-float 6.0)) and get the right answer for (typep 2017-11-29T16:08:59Z Xof: #c(1/2 5) ') 2017-11-29T16:09:00Z stassats: i'm planning on splitting numeric-type 2017-11-29T16:09:05Z stassats: to real-type and complex-type 2017-11-29T16:09:11Z stassats: and complex-type having a list of bounds 2017-11-29T16:10:02Z stassats: don't need to mix different types, since you can't have single-float imaginary and rational real 2017-11-29T16:10:24Z stassats: so something like (or (complex :rational (list-of-b-ounds)) (complex :single-float (list-of-b-ounds))) 2017-11-29T16:11:00Z Xof: do need to mix rational and integer bounds though 2017-11-29T16:11:08Z stassats: just rational 2017-11-29T16:11:32Z mparashar joined #sbcl 2017-11-29T16:11:34Z Xof: (or (rational 1/2 3/2) (integer 4 5)) is different from (or (rational 1/2 3/2) (rational 4 5)) 2017-11-29T16:13:51Z gargaml quit (Ping timeout: 248 seconds) 2017-11-29T16:14:39Z stassats: right, can we get away with it? 2017-11-29T16:15:33Z stassats: i guess the bounds would have to indicate their types 2017-11-29T16:15:49Z stassats: it's not like we do a lot of type derivation on complexes to cause too much disturbance 2017-11-29T16:29:21Z smurfrobot quit 2017-11-29T16:34:38Z dougk quit (Ping timeout: 255 seconds) 2017-11-29T16:45:58Z dougk joined #sbcl 2017-11-29T17:12:44Z scymtym_ quit (Ping timeout: 276 seconds) 2017-11-29T17:19:13Z stassats quit (Ping timeout: 268 seconds) 2017-11-29T17:23:32Z stassats` quit (Ping timeout: 268 seconds) 2017-11-29T17:24:23Z scymtym joined #sbcl 2017-11-29T17:28:16Z Jesin joined #sbcl 2017-11-29T17:29:01Z zulu_inuoe quit (Ping timeout: 240 seconds) 2017-11-29T17:30:34Z Jesin quit (Remote host closed the connection) 2017-11-29T17:33:08Z scymtym_ joined #sbcl 2017-11-29T17:36:52Z scymtym quit (Ping timeout: 240 seconds) 2017-11-29T17:39:23Z dougk quit (Ping timeout: 276 seconds) 2017-11-29T17:46:01Z m00natic quit (Remote host closed the connection) 2017-11-29T17:54:20Z scymtym_ quit (Remote host closed the connection) 2017-11-29T17:54:37Z scymtym_ joined #sbcl 2017-11-29T18:18:01Z dougk joined #sbcl 2017-11-29T18:24:46Z attila_lendvai quit (Ping timeout: 260 seconds) 2017-11-29T18:31:06Z dougk quit (Ping timeout: 258 seconds) 2017-11-29T18:33:03Z BitPuffin|osx quit (Ping timeout: 248 seconds) 2017-11-29T18:41:44Z shka joined #sbcl 2017-11-29T19:25:18Z dougk joined #sbcl 2017-11-29T19:34:26Z attila_lendvai joined #sbcl 2017-11-29T19:34:44Z attila_lendvai quit (Changing host) 2017-11-29T19:34:44Z attila_lendvai joined #sbcl 2017-11-29T19:39:53Z dougk quit (Ping timeout: 252 seconds) 2017-11-29T20:19:02Z mparashar quit (Quit: Leaving) 2017-11-29T20:21:29Z dougk joined #sbcl 2017-11-29T20:36:08Z gargaml joined #sbcl 2017-11-29T20:38:05Z scymtym_ quit (Ping timeout: 255 seconds) 2017-11-29T20:45:56Z dougk quit (Ping timeout: 276 seconds) 2017-11-29T20:58:32Z dougk joined #sbcl 2017-11-29T21:01:22Z eudoxia quit (Quit: Leaving) 2017-11-29T21:22:16Z Shinmera quit (Quit: しつれいしなければならないんです。) 2017-11-29T21:22:36Z Shinmera joined #sbcl 2017-11-29T21:26:29Z Colleen quit (Quit: Colleen) 2017-11-29T21:29:01Z zulu_inuoe joined #sbcl 2017-11-29T21:31:31Z scymtym joined #sbcl 2017-11-29T21:42:29Z dougk quit (Ping timeout: 276 seconds) 2017-11-29T21:47:45Z stassats joined #sbcl 2017-11-29T22:22:35Z Bike quit (Ping timeout: 260 seconds) 2017-11-29T22:23:30Z gargaml quit (Quit: WeeChat 1.9.1) 2017-11-29T22:47:06Z nyef: I think that I can get a thread to be running C code while the safepoint system thinks that it is running Lisp code. 2017-11-29T22:47:47Z nyef: In fact, I'm fairly certain that I can, and that this happens *every time a GC occurs*. 2017-11-29T22:50:32Z Shinmera quit (Ping timeout: 240 seconds) 2017-11-29T23:00:42Z sjl quit (Ping timeout: 260 seconds) 2017-11-29T23:03:28Z jdz quit (Ping timeout: 240 seconds) 2017-11-29T23:04:29Z nyef: Hrm. Now I'm not so sure. 2017-11-29T23:05:47Z jdz joined #sbcl 2017-11-29T23:05:48Z attila_lendvai quit (Quit: Leaving.) 2017-11-29T23:06:18Z nyef: Well, I can still do the whole "thread is in C while safepoints think Lisp" bit, but I'm not as sure that it affects GC. 2017-11-29T23:08:08Z pkhuong: if the thread is in C while the safepoint state says it's in Lisp, the GC should end up waiting for the thread to hit a safe point 2017-11-29T23:08:12Z pkhuong: which could take forever 2017-11-29T23:09:35Z shka quit (Ping timeout: 240 seconds) 2017-11-29T23:13:53Z dougk joined #sbcl 2017-11-29T23:23:04Z nyef: Yes, exactly. 2017-11-29T23:26:10Z stassats: foreign_function_call_active? 2017-11-29T23:26:56Z stassats: set both safepoints, if foreign_function_call_active is set don't wait for it 2017-11-29T23:27:13Z nyef: Doesn't apply for x86oids. 2017-11-29T23:27:25Z stassats: add foreign_function_call_active 2017-11-29T23:28:30Z stassats: actually, there is thread-pc-around-foreign-call-slot 2017-11-29T23:28:37Z nyef: Oddly, the csp_around_foreign_call stuff *is* foreign_function_call_active. 2017-11-29T23:28:53Z nyef: Just, you know, lying about it and not fully implemented. 2017-11-29T23:29:31Z nyef: So, I have a thing or two to try. 2017-11-29T23:30:41Z stassats: why does it need to save the PC anyway? 2017-11-29T23:31:03Z stassats: call will put it on the stack 2017-11-29T23:31:06Z nyef: I wasn't paying attention. Something about the GC? 2017-11-29T23:31:42Z stassats: yeah, but it'll be CSP+something 2017-11-29T23:31:49Z stassats: a word, i guess 2017-11-29T23:32:32Z stassats: unless it returns 2017-11-29T23:34:01Z stassats: what about the idea of having safepoints, but still always interrupting, checking a safepoint map and either quickly resuming or stopping? 2017-11-29T23:34:24Z stassats: returning from a C function can be hijacked by overwriting the return address on the stack 2017-11-29T23:35:26Z nyef: Note that safepoints still have PA. 2017-11-29T23:35:35Z nyef: It's sb-safepoint-strictly that removes PA. 2017-11-29T23:35:39Z stassats: safepoint-strictly don't.. yes 2017-11-29T23:36:40Z stassats: anyway, should get any safepoints working first 2017-11-29T23:49:05Z stassats: and is this what's hanging without-gcing? 2017-11-29T23:49:30Z nyef: Doesn't look to be, unfortunately, so I'm going to keep digging. 2017-11-29T23:53:12Z rumbler31 quit (Ping timeout: 260 seconds) 2017-11-30T00:10:48Z jack_rabbit quit (Quit: Leaving) 2017-11-30T00:24:08Z Bike joined #sbcl 2017-11-30T00:34:26Z cromachina joined #sbcl 2017-11-30T00:56:19Z rumbler31 joined #sbcl 2017-11-30T00:57:05Z dougk quit (Ping timeout: 240 seconds) 2017-11-30T00:58:35Z dougk joined #sbcl 2017-11-30T01:01:23Z rumbler31 quit (Ping timeout: 276 seconds) 2017-11-30T01:42:27Z stassats quit (Ping timeout: 240 seconds) 2017-11-30T02:42:27Z whoman quit (Read error: Connection reset by peer) 2017-11-30T03:03:33Z Jesin joined #sbcl 2017-11-30T03:12:27Z whoman joined #sbcl 2017-11-30T04:16:13Z Bike quit (Quit: Lost terminal) 2017-11-30T05:34:00Z sjl joined #sbcl 2017-11-30T05:35:22Z BitPuffin|osx joined #sbcl 2017-11-30T05:38:33Z oleo quit (Quit: Leaving) 2017-11-30T05:38:52Z sjl quit (Ping timeout: 258 seconds) 2017-11-30T05:57:21Z Shinmera joined #sbcl 2017-11-30T06:06:51Z milanj quit (Quit: This computer has gone to sleep) 2017-11-30T06:09:54Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-30T06:24:26Z Shinmera quit (Ping timeout: 276 seconds) 2017-11-30T06:48:27Z Kevslinger quit (Quit: Connection closed for inactivity) 2017-11-30T06:53:23Z Shinmera joined #sbcl 2017-11-30T07:00:49Z dougk quit (Ping timeout: 248 seconds) 2017-11-30T07:15:08Z scymtym quit (Ping timeout: 276 seconds) 2017-11-30T07:22:36Z jack_rabbit joined #sbcl 2017-11-30T07:33:34Z Shinmera quit (Quit: WeeChat 1.9.1) 2017-11-30T07:33:53Z Shinmera joined #sbcl 2017-11-30T07:38:38Z Colleen joined #sbcl 2017-11-30T07:40:15Z jack_rabbit quit (Ping timeout: 248 seconds) 2017-11-30T08:31:03Z scymtym joined #sbcl 2017-11-30T08:49:15Z milanj joined #sbcl 2017-11-30T09:20:12Z scymtym_ joined #sbcl 2017-11-30T09:24:17Z scymtym quit (Ping timeout: 250 seconds) 2017-11-30T09:29:10Z whoman quit (Remote host closed the connection) 2017-11-30T09:29:37Z whoman joined #sbcl 2017-11-30T09:36:24Z milanj_ joined #sbcl 2017-11-30T09:36:44Z zulu_inuoe_ joined #sbcl 2017-11-30T09:39:09Z angavrilov_ joined #sbcl 2017-11-30T09:39:36Z milanj quit (Ping timeout: 240 seconds) 2017-11-30T09:39:36Z angavrilov quit (Remote host closed the connection) 2017-11-30T09:39:37Z zulu_inuoe quit (Ping timeout: 240 seconds) 2017-11-30T09:39:38Z carvite quit (Ping timeout: 240 seconds) 2017-11-30T09:39:38Z dougk_ quit (Ping timeout: 240 seconds) 2017-11-30T09:39:54Z dougk_ joined #sbcl 2017-11-30T09:40:35Z carvite joined #sbcl 2017-11-30T09:42:22Z luis quit (Ping timeout: 260 seconds) 2017-11-30T09:45:42Z luis joined #sbcl 2017-11-30T09:54:33Z BitPuffin|osx quit (Ping timeout: 258 seconds) 2017-11-30T09:59:43Z foom quit (Read error: Connection reset by peer) 2017-11-30T10:00:18Z foom joined #sbcl 2017-11-30T10:00:42Z galdor1 joined #sbcl 2017-11-30T10:03:25Z jackdani1l joined #sbcl 2017-11-30T10:05:39Z foom2 joined #sbcl 2017-11-30T10:07:01Z galdor quit (Disconnected by services) 2017-11-30T10:08:12Z foom quit (Ping timeout: 240 seconds) 2017-11-30T10:08:32Z dougk_ quit (Ping timeout: 255 seconds) 2017-11-30T10:09:28Z kini quit (Remote host closed the connection) 2017-11-30T10:09:57Z scymtym_ quit (*.net *.split) 2017-11-30T10:09:57Z rgrau quit (*.net *.split) 2017-11-30T10:09:57Z les quit (*.net *.split) 2017-11-30T10:09:57Z greaser|q quit (*.net *.split) 2017-11-30T10:10:00Z jackdaniel quit (*.net *.split) 2017-11-30T10:10:00Z salva quit (*.net *.split) 2017-11-30T10:11:13Z dougk_ joined #sbcl 2017-11-30T10:12:42Z kini joined #sbcl 2017-11-30T10:15:24Z scymtym_ joined #sbcl 2017-11-30T10:15:24Z rgrau joined #sbcl 2017-11-30T10:15:24Z les joined #sbcl 2017-11-30T10:15:24Z greaser|q joined #sbcl 2017-11-30T10:15:24Z salva joined #sbcl 2017-11-30T10:17:30Z galdor1 is now known as galdor 2017-11-30T10:23:35Z sjl joined #sbcl 2017-11-30T10:25:19Z scymtym__ joined #sbcl 2017-11-30T10:28:26Z sjl quit (Ping timeout: 268 seconds) 2017-11-30T10:29:17Z scymtym_ quit (Ping timeout: 250 seconds) 2017-11-30T10:31:55Z bkst joined #sbcl 2017-11-30T10:36:12Z scymtym__ quit (Ping timeout: 240 seconds) 2017-11-30T10:36:28Z scymtym__ joined #sbcl 2017-11-30T10:42:37Z jackdani1l is now known as jackdaniel 2017-11-30T10:48:32Z scymtym__ quit (Ping timeout: 240 seconds) 2017-11-30T10:49:07Z scymtym__ joined #sbcl 2017-11-30T10:55:59Z bkst quit (Ping timeout: 248 seconds) 2017-11-30T11:03:33Z m00natic joined #sbcl 2017-11-30T11:14:23Z cryptomarauder[m quit (Ping timeout: 248 seconds) 2017-11-30T11:17:12Z scymtym__ quit (Ping timeout: 240 seconds) 2017-11-30T11:17:47Z scymtym__ joined #sbcl 2017-11-30T11:19:16Z bkst joined #sbcl 2017-11-30T12:02:09Z BitPuffin|osx joined #sbcl 2017-11-30T12:25:31Z dougk joined #sbcl 2017-11-30T12:25:41Z cryptomarauder[m joined #sbcl 2017-11-30T12:30:48Z dougk quit (Ping timeout: 240 seconds) 2017-11-30T12:39:43Z dougk joined #sbcl 2017-11-30T12:42:35Z bkst quit (Ping timeout: 240 seconds) 2017-11-30T12:43:37Z rgrau quit (Ping timeout: 250 seconds) 2017-11-30T12:44:02Z dustinm` quit (Quit: Leaving) 2017-11-30T12:49:54Z bkst joined #sbcl 2017-11-30T12:53:46Z dustinm` joined #sbcl 2017-11-30T13:00:15Z rpg joined #sbcl 2017-11-30T13:03:12Z scymtym__ quit (Ping timeout: 240 seconds) 2017-11-30T13:05:17Z bkst quit (Ping timeout: 250 seconds) 2017-11-30T13:17:06Z bkst joined #sbcl 2017-11-30T13:23:17Z Bike joined #sbcl 2017-11-30T14:30:48Z rumbler31 joined #sbcl 2017-11-30T14:32:12Z sjl joined #sbcl 2017-11-30T14:34:02Z dougk quit (Ping timeout: 255 seconds) 2017-11-30T14:40:56Z dougk joined #sbcl 2017-11-30T14:45:06Z stassats joined #sbcl 2017-11-30T14:49:33Z oleo joined #sbcl 2017-11-30T14:55:22Z dougk quit (Read error: Connection reset by peer) 2017-11-30T14:55:47Z dougk joined #sbcl 2017-11-30T14:56:05Z cromachina quit (Read error: Connection reset by peer) 2017-11-30T15:05:00Z scymtym joined #sbcl 2017-11-30T15:15:09Z scymtym_ joined #sbcl 2017-11-30T15:18:52Z scymtym quit (Ping timeout: 240 seconds) 2017-11-30T15:21:27Z dougk quit (Ping timeout: 240 seconds) 2017-11-30T15:22:48Z dougk joined #sbcl 2017-11-30T15:30:01Z dougk quit (Ping timeout: 240 seconds) 2017-11-30T15:33:32Z scymtym_ quit (Ping timeout: 240 seconds) 2017-11-30T15:44:18Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-30T15:50:40Z rgrau joined #sbcl 2017-11-30T16:11:33Z foom2 is now known as foom 2017-11-30T16:24:23Z rpg joined #sbcl 2017-11-30T16:26:54Z Kevslinger joined #sbcl 2017-11-30T16:51:25Z nyef: Damnit. I forgot one of the cardinal rules of maintenance: "Ignore the comments, they can be horribly misleading; debug only code." 2017-11-30T16:51:55Z nyef: The comment explaining the safepoint state progressions doesn't match the defined set of states. 2017-11-30T16:58:12Z BitPuffin|osx quit (Ping timeout: 240 seconds) 2017-11-30T16:58:50Z Jesin quit (Ping timeout: 276 seconds) 2017-11-30T17:15:11Z Jesin joined #sbcl 2017-11-30T17:18:20Z scymtym joined #sbcl 2017-11-30T18:05:24Z fortitude joined #sbcl 2017-11-30T18:21:59Z m00natic quit (Remote host closed the connection) 2017-11-30T18:45:53Z bkst quit (Ping timeout: 250 seconds) 2017-11-30T18:52:21Z eschatologist quit (Ping timeout: 240 seconds) 2017-11-30T18:52:28Z bkst joined #sbcl 2017-11-30T18:58:30Z eschatologist joined #sbcl 2017-11-30T19:40:03Z jack_rabbit joined #sbcl 2017-11-30T19:45:41Z milanj_ quit (Read error: Connection reset by peer) 2017-11-30T19:46:27Z milanj_ joined #sbcl 2017-11-30T19:50:50Z rgrau quit (Read error: Connection reset by peer) 2017-11-30T20:09:08Z joshe quit (Ping timeout: 240 seconds) 2017-11-30T20:10:05Z joshe joined #sbcl 2017-11-30T20:17:04Z rpg quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2017-11-30T20:19:55Z rpg joined #sbcl 2017-11-30T20:29:19Z stassats: dougk_: now that assembly routines are in code objects, do they have entries? that means, tail calls to them will be possible? 2017-11-30T20:30:51Z dougk_: i didn't change anything except to pretend that they were all in *one* code object. The former "hierarchical" representation was just annoying - 5 of them here, 5 of them there, no reason for it 2017-11-30T20:31:20Z dougk_: so still no simple-fun header or whatever would make them look like functions 2017-11-30T20:31:37Z stassats: adding entry points and getting rid of vops that call into routines, an then tail calls will be possible 2017-11-30T20:31:52Z stassats: and joining #'two-arg-+ and #'generic+ 2017-11-30T20:59:22Z jack_rabbit quit (Quit: Leaving) 2017-11-30T21:00:12Z shka joined #sbcl 2017-11-30T21:14:05Z nyef: stassats: In code/gc.lisp, at the bottom of sub-gc, at around line 268, should (neq epoch *gc-pending*) be (neq epoch *gc-epoch*) ? 2017-11-30T21:15:28Z stassats: no idea 2017-11-30T21:15:57Z nyef: Fair enough, I guess. 2017-11-30T21:16:23Z stassats: i'm not actually the author 2017-11-30T21:16:34Z nyef: Yeah, I know. It was a patch from someone else. 2017-11-30T21:16:47Z stassats: but epoch can't really be nil, so 2017-11-30T21:17:01Z nyef: I'll go with "probably", given the context. 2017-11-30T21:18:32Z nyef: Adding it to the shortlist for safepoint issues. 2017-11-30T21:20:01Z stassats: yeah, it should be (neq epoch *gc-epoch*) 2017-11-30T21:20:22Z stassats: well, the original logic 2017-11-30T21:20:29Z stassats: it was intended to be (neq epoch *gc-epoch*) 2017-11-30T21:21:14Z stassats: as in, if another thread performed the actual collection, don't run after-gc hooks again 2017-11-30T21:21:31Z stassats: why (eql gen 0) then? not sure 2017-11-30T21:21:42Z nyef: Because it's only for "minor" GCs. 2017-11-30T21:22:03Z stassats: still, why? 2017-11-30T21:22:13Z nyef: I have no idea. 2017-11-30T21:22:46Z stassats: i probably had an idea exactly four years ago 2017-11-30T21:22:57Z nyef: And my head is full of safepoint state, so I don't want to spill that to try and figure out more general GC policy right now. 2017-11-30T21:24:19Z jack_rabbit joined #sbcl 2017-11-30T21:57:17Z rumbler31 quit (Ping timeout: 255 seconds) 2017-11-30T22:06:15Z rpg quit (Quit: Textual IRC Client: www.textualapp.com) 2017-11-30T22:13:14Z dougk joined #sbcl 2017-11-30T22:19:20Z bkst quit (Ping timeout: 255 seconds) 2017-11-30T22:23:29Z shka quit (Ping timeout: 248 seconds) 2017-11-30T22:31:35Z Bike quit (Ping timeout: 260 seconds) 2017-11-30T22:32:57Z dougk quit (Ping timeout: 250 seconds) 2017-11-30T22:48:23Z dougk joined #sbcl 2017-11-30T22:56:52Z Jesin quit (Quit: Leaving) 2017-11-30T22:56:56Z jack_rabbit quit (Quit: Leaving) 2017-11-30T23:00:05Z jack_rabbit joined #sbcl 2017-11-30T23:02:42Z sjl quit (Ping timeout: 260 seconds) 2017-11-30T23:15:30Z bkst joined #sbcl 2017-11-30T23:16:29Z dougk quit (Ping timeout: 255 seconds) 2017-11-30T23:26:39Z nyef: What the...? "Waiting for 2 -> 3", and then the next three state lock graps show phase 1?!? 2017-11-30T23:26:48Z nyef: s/graps/grabs/ 2017-11-30T23:33:44Z prxq joined #sbcl 2017-11-30T23:35:05Z Bike joined #sbcl 2017-11-30T23:35:32Z dougk joined #sbcl 2017-11-30T23:42:54Z nyef: Either the locks stopped working right, the odxprint messages are getting disordered, or something is corrupting gc_state.phase.