00:00:21 -!- ASau [~user@95-26-212-241.broadband.corbina.ru] has quit [Ping timeout: 260 seconds] 00:11:54 -!- antgreen [~user@75.98.19.132] has quit [Read error: Connection reset by peer] 01:05:07 -!- kanru_ [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has quit [Ping timeout: 272 seconds] 01:06:29 kanru_ [~kanru@kanru-1-pt.tunnel.tserv15.lax1.ipv6.he.net] has joined #sbcl 01:16:53 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 246 seconds] 02:40:18 -!- kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has quit [Remote host closed the connection] 02:53:18 kanru [~kanru@118-163-10-190.HINET-IP.hinet.net] has joined #sbcl 03:11:02 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 03:28:06 Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #sbcl 03:57:08 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 04:12:17 ASau [~user@95-26-212-34.broadband.corbina.ru] has joined #sbcl 04:58:04 -!- Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has quit [Ping timeout: 260 seconds] 05:35:56 gko [~user@59-120-11-29.HINET-IP.hinet.net] has joined #sbcl 06:04:26 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 06:55:49 prxq [~mommer@mnhm-590c0574.pool.mediaWays.net] has joined #sbcl 08:20:39 -!- easye [~user@213.33.70.157] has quit [Remote host closed the connection] 08:31:13 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Read error: Connection reset by peer] 08:31:49 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 09:01:47 Can anyone suggest some simple VOPs to look at for pedagogical purposes, and maybe suggest how the translation between function -> vop occurs? 09:04:28 http://sbcl-internals.cliki.net/VOP 09:05:49 -!- wbooze [~wbooze@xdsl-78-35-186-72.netcologne.de] has quit [Ping timeout: 272 seconds] 09:06:31 Thanks, forgot that existed. 09:11:35 easye [~user@213.33.70.157] has joined #sbcl 09:35:06 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 276 seconds] 09:36:39 -!- gko [~user@59-120-11-29.HINET-IP.hinet.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 09:48:14 So, no feedback regarding my proposed FSHOW patch? Last chance to complain before I push. 09:50:52 easier to ask for feedback after you push things :) 09:52:16 *Quadrescence* is diving into DEFINE-INSTRUCTION... getting complicated pretty quickly. 10:04:47 certainly easier to get feedback if it's broken :0 10:08:10 :-) I don't think it's broken, but I'm not usually a fan of hardcoded debugging output at all, which made me suspicious of odxprint initially. 10:09:17 Better to have odxprint and FSHOW integrated than separate though, I think. And arguably safepoint/signal/exception handling with all its race conditions is almost impossible to debug except through trace output. 10:14:52 grr, not a fan of tests :bug-936304 and :bug-981106. In my admittedly slow VM these tests alone almost take longer to run than SBCL takes to build... 10:16:41 Does SBCL not support the JNC instruction? 10:19:27 Quadrescence: What makes you ask that? 10:19:35 Quick grep turns up (:nb . 3) (:ae . 3) (:nc . 3) as expected. 10:20:20 Syntax is (inst jmp : target) 10:22:41 lichtblau, oh, didn't know that about jmp 10:22:51 lichtblau, I just tried doing (inst jnc label) 10:38:24 OK. Long story short, instead of editing runtime.h to enable QSHOW, you can now simply export SBCL_DYNDEBUG="fshow fshow_signal" before starting SBCL. 10:42:02 woo 10:42:03 I like it 10:42:29 will make debugging cold-init so much easier once I get most of the way through any putative arm port 10:44:20 over the next couple of weeks I'd like to internalize what the state of everyone's out-of-tree work is. (If I am to wear this hat, I'd better make sure I can see through it. Or some such mixed metaphor) 10:46:44 well, if you're reading reddit, you know that win32 threads are scheduled to hit master once you've tagged 1.0.59. 10:47:20 Albeit with "win32 threads" referring to "barely 50% of the stuff Anton had _last year_". 10:48:19 Xof: isn't cold init more about SB-SHOW and less about QSHOW? 10:52:02 will the :TRANSLATE option for DEFINE-VOP essentially produce something akin to a DEFTRANSFORM? Or what's the correct way to create a function which uses the VOP? I've DEFKNOWN'd FOO and have :TRANSLATOR FOO 10:52:23 stassats` [~stassats@wikipedia/stassats] has joined #sbcl 10:53:09 Xof, you plan on working on ARM? 10:53:52 lichtblau: well, yes, unless everything goes wrong 10:54:07 Quadrescence: like many plans, it is unlikely to survive first contact with the enemy 10:54:24 lichtblau: clearly I don't read the right bits of reddit :) 10:54:25 we'll send reinforcements! 10:54:52 Xof, Raymond Toy (cmucl guy) and I are planning on working on ARM for CMUCL in the very short future. (Getting the hardware now.) 10:55:36 oh god, why cmucl? 10:56:29 Probably because he is more knowledgeable (still hacks on it) about CMUCL than I am with SBCL. 10:56:31 because the additional challenge of bootstrapping makes it so much more fun 10:57:18 (I hate building CMUCL.) 10:58:40 i guess rtoym's knowledge about cmucl should be largely applicable to sbcl, one thing left is to convince him to go to the land of sane bootstrapping 10:59:07 Maybe I'll try. He also knows CMUCL people better than you people, I suppose. 10:59:19 Has commit access, etc. 10:59:34 cmucl people? are there any active left? 10:59:58 yeah 11:00:24 They don't peruse IRC. They all live close enough that they can talk about CMUCL over lunch or dinner. :) 11:03:28 i really don't comprehend why cmucl is still breathing, all the missing additional feature could be added as libraries and people wouldn't need to fix bugs or port to other platforms twice 11:04:38 that would take work 11:04:48 shops like SRI and the like have existing code that rusn 11:05:00 "runs", even. (I am a skype victim now, used to being able to correct typos) 11:05:21 stassats`, I wish they'd just port code over to SBCL instead. There's so much duplicated effort, duplicated bugs, duplicated fixes. 11:05:53 it can be hard to discard years of accumulated expertise 11:06:08 and also to subordinate one's role into a different organization 11:06:29 also, at its best the sbcl/cmucl split spurred on development which probably would not have happened without it 11:07:22 Quadrescence: so, don't help them! 11:10:48 Anyone care to give hints on how I can actually use %RDRAND here? How I'd make an API function? https://bitbucket.org/tarballs_are_good/lisp-random/raw/5aa74507973a/rdrand.lisp 11:11:45 (defun %rdrand () (%rdrand)) 11:12:00 so that you can funcall it 11:12:20 I thought that might be the case; I've seen that pattern elsewhere in the source code. 11:13:09 when compiled, (%rdrand) will be used as a VOP, not as a function call 11:14:03 stassats`, when I disassemble, it says stuff about FDEFINITION object for %rdrand 11:14:40 before you compile it, %rdrand must be a known function and have a vop which :translates it 11:14:45 also, any conditions on that vop must be met 11:14:53 another common gotcha is to do the DEFUN in the wrong package 11:15:11 I just added a defun at the bottom of the above 11:16:12 (i'm not even sure the code in that paste is even correct... just parroting other code, and doing what looks like makes sense) 11:16:15 Quadrescence: disassemble is for disassembling functions 11:16:25 so, if you only have a VOP, you can't disassemble it 11:16:37 stassats`, yes, I am trying to disassemble the DEFUN'd item 11:17:01 I'd expect to see VOP code within the defined function 11:17:21 ah, i thought it was signalling an error 11:17:26 trace sb-c::is-ok-template-use and recompile the defun 11:18:07 hm, :policy fast smells fishy to me -- the vop might only be tried if speed > safety 11:18:14 you might want fast-safe instead 11:18:52 Xof, is-ok-... returned T NIL 11:20:05 Xof, hm, okay, changed to :fast-safe, now getting type errors. Progress! 11:21:54 problem was emit-byte was attempting to emit 2 bytes. Fixed that. 11:22:04 there are callees and callers of sb-c::is-ok-template-use that are also worth tracing in cases like this 11:26:52 Now I'm getting assembly output. No idea if it's correct since I'm not sure how :printer really works. (I get an error saying reg/mem is an unknown instr format.) 11:28:29 Quadrescence: are you trying to define things from the repl? 11:29:10 you need to C-M-x things like reg/mem definitions in insts.lisp due to lameness 11:30:40 froydnj, they 11:30:52 re in a file, using C-c-k 11:31:04 ah, same difference 11:31:53 the sb!disassem:define-arg-type forms in insts.lisp don't survive into the target lisp, only in the cross-compiler 11:32:04 ah 11:41:18 froydnj, I've C-M-x'd some of the DEFINE-ARG-TYPEs (REG and REG/MEM), and still no dice. I suspect I'm doing something wrong or misunderstanding. 11:43:55 Quadrescence: hm, paste the error? 11:44:21 froydnj, the error is in the macro expansion: unknown instruction format REG/MEM 11:44:44 Evaluating the DEFINE-ARG-TYPE forms neither errors nor warns 11:45:03 ah! 11:45:21 you also need to C-M-x the appropriate DEFINE-INSTRUCTION-FORMAT forms 11:45:33 which may require you to evaluate some of the DEFINE-ARG-TYPE forms 11:45:41 sorry, was getting ahead of myself 11:52:36 froydnj, alright, that made it compile without error 11:56:38 hooray 11:57:41 froydnj, :) Now to figure out what exactly :PRINTER wants, and then how to properly emit the register 12:03:41 please don't laugh at me 12:03:49 what is the developer checkout url for sbcl? :-) 12:04:24 ssh://_xof_@sbcl.git.sourceforge.net/gitroot/sbcl/sbcl.git 12:04:42 thank you 12:04:55 I wonder if my ssh keys have survived two years of sourceforge breakins 12:05:58 woot, yes, they have. Progress! 12:07:20 Xof: Lemonodor-fame is but a hack away! 12:12:32 I feel old 12:29:21 LiamH [~healy@wireless-206-196-167-242.umd.edu] has joined #sbcl 12:32:48 Hm, I perused the instruction formats, and I don't see something that fits + <2 byte op> + 12:36:08 instruction formats come in two flavors: X and ext-X 12:36:25 the X variant doesn't have a rex prefix; the ext-X variant does 12:37:40 gko [~user@114-34-168-13.HINET-IP.hinet.net] has joined #sbcl 12:46:34 froydnj, do you know how the modrm operand encoding works with respect to instruction formats? 12:51:26 Quadrescence: what do you mean? 12:52:42 froydnj, From the Intel manual, RANDRM is a 4 byte instruction: <1 byte REX> + <2 byte op> + <1 byte ModR/M operand form> 12:53:21 I am wondering how this instruction format would interact/be resembled by DEFINE-INSTRUCTION-FORMAT 12:55:08 I can't seem to find any already-defined instruction formats, so I assume I have to make my own. 13:03:43 don't have have a 0x0f-prefixed 1-byte insn format somewhere? 13:04:55 e.g. something like ext-reg-no-width? 13:05:03 yes we have ext-reg-no-width 13:05:51 sadly not named consistently 13:05:54 that is <8 bit prefix> + <3 bit reg> + <5 bit op>, unless I'm reading it wrong 13:07:03 oh, I see 13:08:11 yeah, you want something like (prefix :field (byte 8 0) :value #x0f) (op :field (byte 8 8)) (op2 :field (byte 5 16)) (reg :field (byte 3 21) :type 'reg-b) ? 13:08:28 I don't have the intel manuals in front of me, so just guessing 13:09:02 froydnj, here I drew a pretty picture: http://i.imgur.com/1oYBm.jpg 13:11:07 Quadrescence: so you want something like emit-mod-reg-r/m-byte? 13:11:48 froydnj, yes indeed, see https://bitbucket.org/tarballs_are_good/lisp-random/src/0caa25b89c9d/rdrand.lisp#cl-30 13:12:10 line 44, I've switched to use EMIT-MOD-REG-R/M-BYTE 13:12:46 as far as I can tell, the disassembly is emitting the right bytes, but it's printing it all wrong, (though I get an error upon execution) 13:13:36 yeah, your instruction format is bad 13:13:53 oh I didn't finish that instruction format 13:14:32 (because I wasn't sure how the instruction format should reflect mod-reg-r/m operand encoding) 13:15:12 well, I think you're going to have to manually define the mod-reg-r/m byte in the format 13:15:26 that's what I thought 13:15:39 so one byte for #x0f, one byte for #xc7, and then three bitfields for the r/m byte 13:16:36 froydnj, and the REX byte before all that? 13:16:55 jsnell: thanks for the release.sh update. Any known boobytraps? :-) 13:17:08 Quadrescence: you'll need to define two instruction formats, one with rex and one without 13:17:20 froydnj, ah, okay 13:17:29 and then use :printer-list 13:18:16 maybe? not sure on that point, actually 13:18:45 froydnj, any reason why you did op and op2 in your prototype as opposed to just a single field? 13:20:35 xof: I'd be stunned if it works without problems for you the first time around :-) I realize that I forgot to mention the expected directory structure there. It expects an sbcl git repo in release.sbcl, parallel to that a git repo of sbcl-page as sbcl-page, and likewise parallel to that a directory with -m32 wrappers for gcc / cc 13:20:54 Quadrescence: no reason; one 16-bit field should be fine 13:21:13 the most important thing is that you can always rerun it with SBCL_RELEASE_DIR=... release.sh after fixing whatever is wrong, and it'll pick up from the first step it didn't complete 13:22:06 I shall budget significant time for the release this month :) 13:26:58 -!- LiamH [~healy@wireless-206-196-167-242.umd.edu] has quit [Quit: Leaving.] 13:40:35 -!- Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has quit [Remote host closed the connection] 13:47:22 If anyone likes peace of mind, SBCL HEAD builds on OS X mountain lion (I haven't tried building for something like 12-20 commits?) 13:47:31 SBCL with SB-CONCURRENCY 13:47:43 (and tests pass) 14:06:01 Vivitron [~Vivitron@pool-98-110-213-33.bstnma.fios.verizon.net] has joined #sbcl 14:16:14 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Quit: Leaving] 14:29:13 Quadrescence [~quad@unaffiliated/quadrescence] has joined #sbcl 14:54:57 attila_lendvai [~attila_le@37.99.34.248] has joined #sbcl 14:54:58 -!- attila_lendvai [~attila_le@37.99.34.248] has quit [Changing host] 14:54:58 attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has joined #sbcl 16:25:22 LiamH [~none@pdp8.nrl.navy.mil] has joined #sbcl 16:30:22 -!- gko [~user@114-34-168-13.HINET-IP.hinet.net] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 16:47:22 -!- slyrus_ [~chatzilla@99-27-206-179.lightspeed.irvnca.sbcglobal.net] has quit [Ping timeout: 252 seconds] 16:53:35 wbooze [~wbooze@xdsl-78-35-177-173.netcologne.de] has joined #sbcl 17:11:15 edgar-rft [~GOD@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has joined #sbcl 17:20:53 milanj [~milanj_@178-223-156-24.dynamic.isp.telekom.rs] has joined #sbcl 17:24:20 ykm [~ykm@124.155.255.206] has joined #sbcl 17:46:19 -!- ykm [~ykm@124.155.255.206] has left #sbcl 17:47:16 -!- attila_lendvai [~attila_le@unaffiliated/attila-lendvai/x-3126965] has left #sbcl 18:01:09 Shvillr [~Shviller@ppp91-79-129-70.pppoe.mtu-net.ru] has joined #sbcl 18:25:36 uniwiz [~uniwiz@unaffiliated/uniwiz] has joined #sbcl 18:36:50 -!- DGASAU [~user@91.218.144.129] has quit [Remote host closed the connection] 18:37:53 DGASAU [~user@91.218.144.129] has joined #sbcl 18:51:42 -!- stassats` [~stassats@wikipedia/stassats] has quit [Ping timeout: 264 seconds] 18:54:41 -!- hlavaty [~user@91-65-217-229-dynip.superkabel.de] has quit [Ping timeout: 244 seconds] 18:56:17 -!- minion [~minion@tiger.common-lisp.net] has quit [Disconnected by services] 18:56:20 minion [~minion@tiger.common-lisp.net] has joined #sbcl 18:57:34 -!- angavrilov [~angavrilo@217.71.227.190] has quit [*.net *.split] 18:58:46 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 19:02:42 leuler [~user@p548FBBCA.dip.t-dialin.net] has joined #sbcl 19:11:00 Quadrescence:, froydnj: For rdrand, you need neither a printer-list nor two printer clauses; since commit 65bdee4ba534e82c the REX prefix is dealt with automatically in printers. Just provide a printer for the format without REX. (Two printers are needed only for those instruction formats where REX is used infixly -- see comment at defun sse-inst-printer-list.) 19:22:23 jdz [~jdz@91.105.18.48] has joined #sbcl 19:46:15 -!- leuler [~user@p548FBBCA.dip.t-dialin.net] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)] 19:46:59 -!- edgar-rft [~GOD@HSI-KBW-078-043-123-191.hsi4.kabel-badenwuerttemberg.de] has quit [Quit: eternal darkness] 20:03:47 had a chat with a stochastic programming prof re generating floats 20:06:35 He's pretty sure the iterative hack being useful means you're doing it wrong. There are other, well known, methods to handle stuff like exponential variates and ratios thereof. If you need to cover the range below the precision of the fixed point generation, you're depending on observing really rare events for double floats, wtf does it matter? 20:07:37 and he too is afraid of strange interactions affecting the statistical properties of sequences of random variates. I think I'll see what TestU01 thinks of mathworks' trick ;) 20:09:11 -!- Shvillr [~Shviller@ppp91-79-129-70.pppoe.mtu-net.ru] has quit [Read error: Connection reset by peer] 20:39:29 sdemarre [~serge@91.176.143.171] has joined #sbcl 21:00:13 -!- sdemarre [~serge@91.176.143.171] has quit [Ping timeout: 246 seconds] 21:01:48 cmm- [~cmm@bzq-79-182-200-236.red.bezeqint.net] has joined #sbcl 21:04:07 -!- cmm [~cmm@bzq-79-183-193-60.red.bezeqint.net] has quit [Ping timeout: 240 seconds] 21:09:08 -!- milanj [~milanj_@178-223-156-24.dynamic.isp.telekom.rs] has quit [Quit: Leaving] 21:46:54 -!- wbooze [~wbooze@xdsl-78-35-177-173.netcologne.de] has quit [Ping timeout: 264 seconds] 21:54:42 -!- prxq [~mommer@mnhm-590c0574.pool.mediaWays.net] has quit [Quit: Leaving] 22:09:08 wbooze [~wbooze@xdsl-78-35-134-180.netcologne.de] has joined #sbcl 23:04:34 -!- LiamH [~none@pdp8.nrl.navy.mil] has quit [Quit: Leaving.] 23:14:15 -!- jdz [~jdz@91.105.18.48] has quit [Quit: Byebye.] 23:40:59 les [moreorles@lesharris.com] has joined #sbcl 23:40:59 -!- les [moreorles@lesharris.com] has quit [Changing host] 23:41:00 les [moreorles@fsf/member/les] has joined #sbcl 23:55:50 kanru` [~kanru@1-160-78-65.dynamic.hinet.net] has joined #sbcl 23:57:42 Fare [~Fare@173-9-65-97-NewEngland.hfc.comcastbusiness.net] has joined #sbcl