00:02:51 "A Sanely Bootable Common Lisp"? 00:03:58 If so, then yes. I read it last week. It was very helpful. 00:06:22 It actually implies that sb!xc is not an entire common-lisp package as it states only that operators needed for the build but collide with host symbols in common-lisp are placed there. I had thought all symbols destined for common-lisp went into sb!xc during cross-compilation. 00:07:08 (Possibly it means to say that all symbols needed for a cold-boot and which belong in common-lisp go into sb!xc. That seems to be more along my understanding.) 00:10:16 It doesn't seem to answer the question of where SB!XC or the COMMON-LISP package that comes to life at cold boot time get created. 00:19:07 -!- slyrus [~chatzilla@173-228-44-92.dsl.static.sonic.net] has quit [Ping timeout: 268 seconds] 00:22:31 iamtheari: I never totally wrapped my head around that part, sorry. ping Kryztof ;) 00:24:16 I don't have much practical use for the knowledge. It's simply too arcane not to want to know. I'll hope for a response from Kryztof later on. Thanks for trying. 00:46:04 -!- Maroni [~user@046-220-034-068.dyn.orange.at] has quit [Ping timeout: 260 seconds] 05:20:11 sdemarre [~serge@91.176.63.222] has joined #sbcl 05:22:57 -!- iamtheari [~user@216.71.228.61] has quit [Remote host closed the connection] 06:07:52 oh dear, he's gone 06:08:10 there's a couple of truly horrible things that cause confusion but make the source mostly non-horrible 06:27:55 angavrilov [~angavrilo@217.71.227.190] has joined #sbcl 06:30:08 woudshoo [~user@ironhead.xs4all.nl] has joined #sbcl 06:45:35 -!- sdemarre [~serge@91.176.63.222] has quit [Ping timeout: 272 seconds] 06:50:20 -!- woudshoo [~user@ironhead.xs4all.nl] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 06:56:52 gko [~user@42.71.5.253] has joined #sbcl 07:37:53 prxq [~mommer@mnhm-590c08f7.pool.mediaWays.net] has joined #sbcl 08:50:56 Quadresce [~quad@unaffiliated/quadrescence] has joined #sbcl 08:53:51 -!- Quadrescence [~quad@unaffiliated/quadrescence] has quit [Ping timeout: 240 seconds] 09:16:48 -!- gko [~user@42.71.5.253] has quit [*.net *.split] 09:29:49 -!- pchrist [~spirit@gentoo/developer/pchrist] has quit [Quit: leaving] 09:30:14 pchrist [~spirit@gentoo/developer/pchrist] has joined #sbcl 11:31:23 gko [~user@114-34-168-13.HINET-IP.hinet.net] has joined #sbcl 11:35:30 easye [~user@213.33.70.157] has joined #sbcl 12:40:24 Maroni [~user@046-220-065-105.dyn.orange.at] has joined #sbcl 12:43:28 kanru [~kanru@187.74.251.73] has joined #sbcl 12:48:29 -!- kanru [~kanru@187.74.251.73] has quit [Ping timeout: 272 seconds] 13:08:29 kanru [~kanru@189-69-138-10.dial-up.telesp.net.br] has joined #sbcl 13:25:19 kanru` [~kanru@189-69-138-10.dial-up.telesp.net.br] has joined #sbcl 13:28:13 -!- kanru [~kanru@189-69-138-10.dial-up.telesp.net.br] has quit [Ping timeout: 265 seconds] 13:29:56 stassats [~stassats@wikipedia/stassats] has joined #sbcl 13:39:42 Suppose there are callee-saved registers, and I'm in a C function which doesn't ordinarily tough these registers, so the compiler doesn't bother saving them. 13:40:11 But later there is non-local transfer of control straight back into this stack frame, meaning that those registers could be trashed upon NLX. 13:40:22 Is there a way to tell the compiler about that, i.e. tell it to aggressively spill registers around that point? 13:45:50 lichtblau: yes. :save option in the VOP definition 13:47:15 leuler [~user@p548FC995.dip.t-dialin.net] has joined #sbcl 13:47:25 ah, no, I'm talking about C code :-) 13:47:28 Currently trying this http://gcc.gnu.org/ml/gcc/2002-11/msg00908.html though -- maybe it will help. 13:48:53 you can annotate functions as returning twice (like setjmp) 13:49:42 "The returns_twice attribute tells the compiler that a function may return more than one time. The compiler will ensure that all registers are dead before calling such a function and will emit a warning about the variables that may be clobbered after the second return from the function. " 13:53:45 thanks! Let's see. 13:54:51 woudshoo [~user@ipleiden.intellimagic.net] has joined #sbcl 13:59:35 leuler: ping 14:01:23 pkhuong: I just read your blog post on sorting and would like to pick a nit: In maybe-emit-unrolled-merge-sort you only test for (> speed space). What about anding that with (> speed compilation-speed), so that folks asking for a faster compiler can at least be told that setting compilation-speed high enough nay help a tiny bit? 14:01:27 froydnj: pong 14:01:53 -!- woudshoo [~user@ipleiden.intellimagic.net] has quit [Ping timeout: 244 seconds] 14:02:33 leuler: question about http://repo.or.cz/w/sbcl.git/blob/HEAD:/src/compiler/x86-64/insts.lisp#l775 14:02:37 pkhuong: s/nay/may 14:03:29 why is the imm field not reflected in the length of the insn (the "32")? is 32 just supposed to be the "fixed" insn length? 14:06:28 leuler: sure... I'd have to add some more logic though, because the generic inlined code is probably slower to compile than the specialised code. 14:07:49 -!- kanru` [~kanru@189-69-138-10.dial-up.telesp.net.br] has quit [Ping timeout: 260 seconds] 14:10:27 froydnj: The length gives the length of the pattern used to match the instruction bytes when disassembling. This does not (and cannot) contain variable length/optional bytes like immediate, sib, displacement. It also would not be useful as these bytes can contain any value so don't help to detect which instruction is present. 14:11:59 leuler: is that explained explicitly somewhere? I remember hitting that same stumbling block when I tried to add fancier SSE encodings. 14:12:08 froydnj: Note that the pattern can be sparse in that only parts of its bits are specified/fixed, others are "don't care". See for example the rex byte consisting of 4 fixed bits and 4 variable bits (field names "rex" and "wrxb"). 14:13:16 froydnj: I think I dug that out by reading the source, but let me search ... 14:16:02 pkhuong: OK. I momentarily wasn't aware that if your transform declines another one happens that also inlines. Then the costs are more difficult to weight. But compiling a call to a generic sort function should be faster, so all transforms applicable on "sort" should test for compilation-speed? 14:16:04 __attribute__ on the declaration (not definition) of the callee should be fine, right? 14:16:47 lichtblau: right. 14:17:03 leuler: ok, thanks 14:17:53 leuler: the maybe-inline declaration only fires up at space = 0, so it's easier 14:19:08 froydnj: I am still searching. I'll get back to that. 14:23:20 leuler: it's ok, don't worry about it. I made 2-opcode-byte sse instructions assemble last night! 14:23:37 hmm. I'm doing it wrong then, or gcc doesn't like me. asm("" : : : "%esi", "%edi", "%ebx"); works wonders. Neither setjmp() nor __attribute__ do. 14:26:02 froydnj: See comments and implementation in src/compiler/target-disassem.lisp, especially the functions find-inst and build-inst-space, also the corresponding types in src/compiler/disassem.lisp and the dchunk implementation there. You surely already saw the docstring of define-instruction-format which is a bit terse, admittedly. Also you can inspect the inst-space at runtime starting from some of the global variables in the 14:26:02 disassembler to get a feeling how it looks. 14:26:02 14:26:36 lichtblau: you tagged the function before calls to which the registers ought to be saved, right? 14:29:07 froydnj: Great! Now the disassembly part should be possible, too. 14:29:26 yeah :-) 14:34:25 milanj [~milanj_@79-101-197-111.dynamic.isp.telekom.rs] has joined #sbcl 15:06:29 -!- Maroni [~user@046-220-065-105.dyn.orange.at] has quit [Ping timeout: 260 seconds] 15:45:13 tsuru` [~charlie@adsl-74-179-250-178.bna.bellsouth.net] has joined #sbcl 15:51:38 wbooze [~wbooze@xdsl-78-35-133-212.netcologne.de] has joined #sbcl 16:00:14 -!- leuler [~user@p548FC995.dip.t-dialin.net] has quit [Quit: ERC Version 5.1.2 $Revision: 1.796.2.6 $ (IRC client for Emacs)] 16:52:10 -!- gko [~user@114-34-168-13.HINET-IP.hinet.net] has quit [Ping timeout: 256 seconds] 17:49:53 kanru [~kanru@187.74.244.61] has joined #sbcl 18:04:04 -!- kanru [~kanru@187.74.244.61] has quit [Ping timeout: 248 seconds] 18:18:00 kanru [~kanru@187.74.250.117] has joined #sbcl 18:36:23 -!- Quadresce is now known as Quadrescence 18:41:24 -!- angavrilov [~angavrilo@217.71.227.190] has quit [Ping timeout: 244 seconds] 19:09:07 -!- cmm [~cmm@bzq-109-67-190-224.red.bezeqint.net] has quit [Ping timeout: 240 seconds] 19:10:58 cmm [~cmm@bzq-79-176-232-193.red.bezeqint.net] has joined #sbcl 19:36:35 slyrus [~chatzilla@173-228-44-92.dsl.static.sonic.net] has joined #sbcl 19:45:12 -!- maxm- [~user@unaffiliated/maxm] has quit [Read error: Connection reset by peer] 19:47:19 maxm- [~user@unaffiliated/maxm] has joined #sbcl 19:47:35 maxm-- [~user@openchat.com] has joined #sbcl 19:48:08 -!- maxm- [~user@unaffiliated/maxm] has quit [Remote host closed the connection] 20:00:09 -!- kanru [~kanru@187.74.250.117] has quit [Read error: Connection reset by peer] 20:13:22 -!- stassats [~stassats@wikipedia/stassats] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:27:26 -!- prxq [~mommer@mnhm-590c08f7.pool.mediaWays.net] has quit [Quit: Leaving] 20:31:27 kanru [~kanru@189-69-139-121.dial-up.telesp.net.br] has joined #sbcl 20:48:33 -!- kanru [~kanru@189-69-139-121.dial-up.telesp.net.br] has quit [Ping timeout: 272 seconds] 20:54:28 Maroni [~user@046-220-065-105.dyn.orange.at] has joined #sbcl 21:23:18 -!- milanj [~milanj_@79-101-197-111.dynamic.isp.telekom.rs] has quit [Quit: Leaving] 21:36:55 -!- maxm-- [~user@openchat.com] has quit [Read error: Connection reset by peer] 21:37:08 maxm-- [~user@openchat.com] has joined #sbcl 21:54:49 -!- Maroni [~user@046-220-065-105.dyn.orange.at] has quit [Ping timeout: 260 seconds] 22:44:03 -!- wbooze [~wbooze@xdsl-78-35-133-212.netcologne.de] has quit [Ping timeout: 265 seconds]