00:25:18 -!- Hiant has joined. 00:25:47 -!- Hiant has quit (Client Quit). 00:26:27 -!- sftp has quit (Remote host closed the connection). 00:27:28 pikhq is best served raw 00:27:52 And Mormonism is Abrahamic American Exceptionalism, the religion. 00:30:49 -!- zzo38 has joined. 00:36:37 pikhq: that has good meter 00:36:39 byer 00:36:40 -!- elliott has quit (Quit: Leaving). 00:53:02 byeist? 00:53:02 byist? 01:00:37 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:04:57 -!- augur has joined. 01:05:39 -!- zzo38 has quit (Remote host closed the connection). 01:18:59 So, function that is 1 on all rational numbers, 0 on irrational numbers 01:19:10 I think there's a name for some function along those lines 01:19:35 * Sgeo googles for weird mathematical functions 01:20:24 http://www.domesatreview.com/weird-functions fuck you, study guide 01:20:29 That's not what I need 01:51:07 -!- augur has quit (Remote host closed the connection). 01:53:11 Anyone want to fix the mindfuck that is" The first three of these characterizations can be proved equivalent in Zermelo–Fraenkel set theory without the axiom of choice, but the equivalence of the third and fourth cannot be proved without additional choice principles." 01:53:23 On http://en.wikipedia.org/wiki/Uncountably_infinite 01:59:51 -!- Wamanuz2 has joined. 02:03:03 -!- Wamanuz has quit (Ping timeout: 255 seconds). 02:15:18 The wiki page on ZFC keeps talking about the background logic 02:16:46 -!- p_q has joined. 02:17:56 -!- poiuy_qwert has quit (Ping timeout: 240 seconds). 02:36:44 -!- augur has joined. 02:36:44 Do axiom schemata specify a _countably_ infinite number of axioms? 02:39:55 -!- augur has quit (Remote host closed the connection). 02:43:29 * Sgeo fantasizes about proving ZF from within ZF 02:43:32 * Sgeo feels evil 02:45:59 Wait, the Godel sentence is not just an abstraction? 02:46:08 If I google for ZF's Godel sentence, I will find it? 02:47:10 * Sgeo headaches 03:22:49 * pikhq kinda wishes that Apple kept Classic working on Intel Macs 03:23:33 * Sgeo decides to relearn Scala 03:23:54 I think the biggest thing that scared me about Scala is the idea of learning Java libraries 03:23:56 Thereby never once breaking ABI. 03:24:14 Oh, and I was learning it in the context of Android iirc 03:25:44 elliott would correctly assume I'm demented if I mentioned the reason I'm thinking about Scala right now 03:26:02 -!- augur has joined. 03:49:57 -!- wareya has quit (Read error: Connection reset by peer). 03:50:52 -!- wareya has joined. 04:11:31 -!- jcp has quit (Excess Flood). 04:13:35 -!- jcp has joined. 04:19:31 !c printf("Does this still work?") 04:19:43 Does this still work? 04:28:58 -!- Chapati has joined. 04:29:18 sup 04:29:43 oh this is a programming chan? 04:29:50 was hoping for something more cultish 04:33:51 -!- Gregor has set topic: Welcome to #esoteric, the international hub for the occult, voodoo, crystal healing, esoteric topics in computation and programming languages, magick, astrology and spiritual projection | Praise be unto the enlightened one, Zenduul, who currently possesses the mind and being of ais523 | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 04:34:20 People get pissed when I do that, what with it being completely unrelated to the actual topic of the channel :P 04:34:23 I'm sure to many people, computers seem like magic 04:34:29 Sgeo: *magick 04:34:57 Sgeo: *neko neko chibi mahĹŤ 04:34:59 Chapati, Chapa'ai? 04:34:59 lol 04:35:16 ja di 04:35:48 Sorry, I just said the only bit of goa'uld that I know 04:36:06 i just said something I just made up 04:36:07 Sgeo: That's one of like 5 phrases that exists, so you're good. 04:36:09 Sgeo: Cree Jaffa! 04:37:22 Should I avoid Clojure like the plague? 04:37:40 OTOH, the stuff about STM seems tempting 04:47:01 If you want STM use Haskell. 04:47:46 Or any other pure, functional language ;) 04:47:52 ... that has STM. 04:48:34 Gregor: So, Haskell. 04:48:38 Yup! 8-D 04:49:02 Hooray, legitimate killer features. :P 05:01:30 -!- Quadrescence has quit (Quit: omghaahhahaohwow). 05:05:31 What's Clojure's STM like/ 05:05:33 ? 05:08:42 I'm sure it's as good as an STM can be in an impure imperative language, which is to say really terrible unless you're very, very careful. 05:09:46 Though it certainly works better in a relatively modern impure imperative language, such as Clojure, than it would in, say, C++. 05:09:55 (I have heard mention of such a thing. It frightens me.) 05:10:03 True. 05:10:05 -!- Quadrescence has joined. 05:10:53 -!- Chapati has left (?). 05:12:01 It appears Closure has the one (huge) restriction that your STM values must be immutable. 05:12:12 ... laaaaaaaaaaaawl 05:12:28 No, there's another. 05:12:35 No side effects in a transaction. 05:12:54 I mean, not that much lawl, since that just means that the authors new the realistic limitations of STM and didn't think it was magic *shrugs* 05:13:22 So: code in Haskell, without the compiler telling you when you fuck it up. 05:13:28 that's a callenge 05:13:37 *challenge 05:13:44 AKA the best possible implementation of STM without purity and strong typing. 05:18:38 Shall I stick with Scala? 05:19:00 You shall not use any language but Haskell! 05:19:18 You shall not use any language but C! 05:19:39 You shall not use any language but Falctorn! 05:20:44 You shall not use any language but the untyped lambda calculus! 05:20:48 Evaluated by Church! 05:23:47 You shall not use any language but Turing Machine descriptions! 05:23:56 -!- coppro has quit (Ping timeout: 240 seconds). 05:24:01 -!- coppro has joined. 05:24:27 You shall not use any language! 05:40:20 -!- bsmntbombdood has quit (Ping timeout: 260 seconds). 05:40:41 -!- wareya_ has joined. 05:42:42 -!- wareya has quit (Ping timeout: 250 seconds). 05:49:03 -!- digimunk has joined. 05:54:33 -!- Sasha2 has joined. 05:54:52 -!- Sasha has quit (Read error: Connection reset by peer). 06:19:09 -!- gm|lap has quit (Quit: ilua). 06:21:45 The thing that keeps getting me about Scala is its statically-checkable duck-typing 06:24:49 -!- Wamanuz2 has quit (Read error: Connection reset by peer). 06:25:24 -!- Wamanuz2 has joined. 06:50:45 http://www.phdcomics.com/comics/archive/phd091606s.gif 07:07:26 -!- MigoMipo has joined. 07:09:23 -!- Sgeo has quit (Read error: Connection reset by peer). 07:25:27 -!- MigoMipo has quit (Read error: Connection reset by peer). 07:52:17 -!- gm|lap has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:11:20 -!- Leonidas has quit (Ping timeout: 250 seconds). 08:37:42 Vorpal: HOW FAR YOU HAVE SUNK <-- quite a bit it seems 08:38:50 I think Vorpal said it breaks in his terminal. <-- yes, it displays stuff on top of the menu of my terminal and such 08:38:56 also places it in the wrong position 08:58:32 I've re-looked at the code, and it really looks as if it just draws directly into the terminal window, not into a frameless pop-up thing on top. I didn't know you could XCreateGC someone else's window like that. 09:11:20 fizzie, hah 09:11:34 fizzie, XCreateGC? 09:12:21 Creates a drawing context for a window. 09:12:26 ah 09:12:39 fizzie, the security implications of that are scary 09:12:53 what if some app did that to gtksu or such 09:14:47 Well, you could still probably fake it with the frameless popup window thing if it were disabled. 09:16:16 In any case there is no security as soon as you can connect to the X server: it'll let you keylog and generate input events and whatnot, anyway. Still, painting all over someone else's window like that sounds so impolite. It's like spray-painting someone's wall or something. 09:26:32 -!- wareya_ has quit (Ping timeout: 265 seconds). 09:31:34 idea: panoramic comic. "no fourth wall" takes on a new meaning then 09:31:57 fizzie, ^ 09:36:07 Sounds interesting; maybe you should do a sqrt(-garfield) with that concept. 10:23:41 -!- sftp has joined. 10:37:37 -!- gm|lap has quit (Quit: ilua). 11:12:14 -!- sftp_ has joined. 11:12:15 -!- sftp has quit (Ping timeout: 260 seconds). 12:15:52 -!- sftp_ has quit (Read error: Connection reset by peer). 12:32:24 -!- atrapado has joined. 12:34:24 -!- Leonidas has joined. 12:36:20 -!- ais523 has joined. 12:40:57 -!- wareya has joined. 13:43:50 -!- Mathnerd314 has quit (Ping timeout: 240 seconds). 13:57:40 -!- ais523 has set topic: Ssh, do you really want everyone knowing that? | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 13:57:57 -!- sebbu has quit (Ping timeout: 255 seconds). 14:39:17 -!- jcp has quit (Quit: Later). 14:45:36 -!- jcp has joined. 14:49:54 -!- elliott has joined. 14:52:00 17:53:11 Anyone want to fix the mindfuck that is" The first three of these characterizations can be proved equivalent in Zermelo–Fraenkel set theory without the axiom of choice, but the equivalence of the third and fourth cannot be proved without additional choice principles." 14:52:06 what's mindfucky 14:52:10 18:43:29 * Sgeo fantasizes about proving ZF from within ZF 14:52:15 congrats, you can hit no lower point. 14:52:22 18:46:08 If I google for ZF's Godel sentence, I will find it? 14:52:34 You can generate it at least for constructive logics but it's way too big to print out. 14:52:40 Maybe if you borrowed the LHC's disk. 14:52:53 -!- augur has quit (Remote host closed the connection). 14:54:46 01:16:16 In any case there is no security as soon as you can connect to the X server: it'll let you keylog and generate input events and whatnot, anyway. Still, painting all over someone else's window like that sounds so impolite. It's like spray-painting someone's wall or something. 14:54:50 Yeah, X is terribly insecure. 14:58:45 -!- bsmntbombdood has joined. 15:14:22 -!- FireFly has joined. 15:24:12 http://turton.co.za/chordingKeyboard/chordingKeyboard.html (http://trevors-trinkets.blogspot.com/2007/07/five-finger-keyboards.html) 15:29:16 There's untrusted mode (unusable: breaks just about every app) and there is XACE... Oh and of course SE-X (or what it is called nowadays...) 15:30:31 Ilari: SELinux is too crazy to get near any box I run... 15:30:45 Ilari: I'm all for capability-based security, but gluing it onto Linux is just... no. 15:31:53 -!- augur has joined. 15:56:16 http://distractionware.com/blog/?p=193 1x5 font 15:57:14 http://i.imgur.com/RY75R.png middle one may be easier to read 15:57:31 http://i.imgur.com/wslXu.jpg 15:59:02 Impressive. 16:00:48 pikhq: Hey, you know that Sita Sings the Blues thing? The creator is one of them VHEMT people X-D 16:01:00 (My internet is such an echo chamber, I keep reading about the exact same things.) 16:01:49 VHEMT is ... rather odd. 16:01:58 -!- Phantom_Hoover has joined. 16:02:09 -!- Phantom_Hoover has left (?). 16:02:20 -!- Phantom_Hoover has joined. 16:09:55 -!- Slereah has quit (Ping timeout: 272 seconds). 16:15:29 -!- Slereah has joined. 16:18:25 Phantom_Hoover: Can I just say that mmap() is a wonderful thing? 16:18:36 You can. 16:18:42 It is pretty neat. 16:19:25 Phantom_Hoover: It's like orthogonal persistence except lame! 16:19:29 Which is high praise for Unix. 16:19:33 And hey, look, GHC 7.0.1 is out. 16:19:58 # 16:19:58 GHC now defaults to the Haskell 2010 language standard 16:19:59 # 16:19:59 On POSIX platforms, there is a new I/O manager based on epoll/kqueue/poll, which allows multithreaded I/O code to scale to a much larger number (100k+) of threads 16:20:03 # 16:20:03 GHC now includes an LLVM code generator which, for certain code, can bring some nice performance improvements 16:20:03 # 16:20:05 The type checker has been overhauled, which means it is now able to correctly handle interactions between the type systemextensions 16:20:17 ^ selected release notes 16:20:47 Hmm. Do I want it enough to circumvent APT... 16:21:38 Phantom_Hoover: Not really. 16:21:47 Phantom_Hoover: Be aware that compiling GHC takes 2, 4, 6 hours depending on the phase of the moon. 16:21:58 It is probably not 6, they've redone the build system. 16:22:01 But still, it's no quickie. 16:22:14 Yes, I discovered that a while ago... 16:22:33 Phantom_Hoover: Oh, and you'd have to do the fun jig which is "keep the apt package, compile, uninstall it, install the new one". 16:22:53 Phantom_Hoover: When compiling GHC I tend to wipe everything, get a 6.8.2 binary, don't install it, and just point the new GHC to the path it's at for compilation purposes. 16:22:59 Of course, it may be better with the new build system... 16:30:11 Phantom_Hoover: Huh -- http://en.wikipedia.org/wiki/ISLISP 16:30:16 Phantom_Hoover: ISO-standard Lisp X-D 16:30:20 Sounds interesting; maybe you should do a sqrt(-garfield) with that concept. <-- yeah, perhaps. Too lazy though. 16:30:42 What concept? 16:30:51 idea: panoramic comic. "no fourth wall" takes on a new meaning then 16:30:53 that one 16:31:47 fizzie, btw I was making a sphere pano in mindcraft. damn clouds moving so fast 16:32:07 while I did have parallax I chose my position so it was all far away 16:32:18 not done yet. 10 images still to add control points to 16:32:44 fizzie, also didn't you say FOV was like 70°? 16:32:48 it was 100.7° for me 16:32:56 (maximised window) 16:33:22 Vorpal: I am rebellious! I name C macros lowercase names! Mwahahaha! 16:33:30 elliott, ITYM: ncurses 16:33:31 :P 16:33:46 Vorpal: Well, no, ncurses does it hideously. I name macros that do actually crazy things uppercase. 16:33:58 Vorpal: But macros that *could* be implemented as functions, I just don't see the point naming uppercase things. 16:34:12 elliott, you mean like #define clear() ... ? 16:34:18 Shaddap :P 16:34:20 iirc ncurses does something like that 16:34:21 cls 16:34:22 or clear 16:34:23 or something 16:34:33 Vorpal: As well as things like "#define writes(fd, s) write(fd, s, sizeof(s)-1)" where the only reason you can't do it as a function is because C sucks and is clueless about ararys. 16:34:34 *arrays. 16:34:51 (Where s is a string literal.) 16:34:55 hm 16:35:13 elliott, why are you using C strings? 16:35:38 elliott, it is perfectly possible to use saner representations in C. A bit tricky to make string constants into that of course 16:35:40 Vorpal: Because writes(1, "Hello, world!\n"); is simpler than writes(1, STR("Hello, world!\n")) :-) 16:35:51 Vorpal: (And I don't have to reimplement the libc, much as I would like to.) 16:36:01 (reimplement -- as in string.h and the like) 16:36:20 elliott, you could turn string constants into... Hm... Use a preprocessor to do it automatically :D 16:36:28 note: not m4 though 16:36:40 elliott, gcc substitutes \p for the length of the rest of the string if it comes first. 16:36:50 Vorpal: At that point I stop using C and give up on the project by trying to figure out what language to wr-- 16:36:52 Phantom_Hoover: WHAT? 16:36:55 >_< 16:37:00 I give up on life. 16:37:10 Phantom_Hoover, interesting extension... 16:37:22 must be some pascal compat 16:37:28 Vorpal: \p for pascal presumably 16:37:29 Yes, it is. 16:37:31 elliott, indeed 16:37:34 Phantom_Hoover: Let me guess, \P does it as two bytes instead. 16:37:44 I don't think so... 16:37:46 lawl 16:37:48 So 255-char limit :P 16:38:07 heh 16:38:16 err, is it signed? 16:38:17 #define smallint(x) (((x)<<1)|1) 16:38:22 Wonder whether |1 is "faster" than +1. :-) 16:38:26 it should be if you strings are 16:38:51 elliott, it presumably would be on some level. 16:38:55 elliott, smallint? I don't get the name here 16:39:22 Vorpal: pointer ends in 0 due to byte alignment. 63-bit integers can be stored in a 64-bit pointer by setting the least significant bit. 16:39:31 Vorpal: Everything larger is a bignum and thus a pointer. 16:39:52 elliott, that doesn't work if you are indexing into a string or such. Then pointers can be odd 16:39:57 and not sure about string constants 16:40:16 Vorpal: Well, I don't use C strings. ;- 16:40:18 *;-) 16:40:22 elliott, ah good 16:40:38 Vorpal: Strings are either going to be symbols or cons cells of integers or something silly like that. 16:40:43 anyway or would on hw level be faster due to lack of need to carry anything 16:40:45 though 16:41:13 that assumes you don't expand the function add 16:41:32 as in, making a big Kaurnaugh diagram for the adder. :D 16:41:34 bbl 16:42:00 elliott, what is it you're writing this time? 16:42:09 Phantom_Hoover: Stammer. 16:42:10 I'm assuming the 2x+1 thing was integer tagging. 16:42:20 Yes. 16:43:20 So is Stammer your Smalltalk-Lisp hybrid-thing? 16:43:31 Must dash... 16:43:33 Phantom_Hoover: No. Heavens that I should do something so practical. 16:46:19 http://code.google.com/speed/webp/ 16:46:42 In which Google decide to try and compete with JPEG, in what can only be either insanity or genius, but definitely ultimate egoism. 16:49:08 Vorpal: v53.7996 in the optimized .pto. I play in an approximately 960x1200 window, though, which is a bit... vertical. 16:49:38 fizzie, hah 16:49:45 elliott: http://gmailblog.blogspot.com/2008/10/new-in-labs-stop-sending-mail-you-later.html <-- in which Google decides to try to compete with beer. 16:49:55 Gregor: Old :P 16:49:56 fizzie, must be a strange experience 16:50:07 Vorpal: That thing talking about tiny text in the opening screen -- what resolution did it say? 16:50:11 1920x1080 or 1920x1200? 16:50:22 elliott, hm it said 1080p 16:50:23 Vorpal: Whichever it says, that's the official resolution and all FOVs should be measured with that :-) 16:50:50 Vorpal: 960x540 would work, as it's exactly half of 1080p and is more likely to actually fit on your display. 16:50:53 elliott, anyway that doesn't make sense. 16:50:57 It may be the default resolution, for all I know. 16:51:06 elliott, FOV depends on what you actually used to take the screenshot 16:51:17 which is what matters when stitching the pano 16:51:18 OK, seriously, I know I post old things sometimes WHEN THEY ARE RELEVANT, but "Gregor: Old" is a nonsense response X_X 16:51:29 Gregor: But you ARE old. 16:51:50 is he? 16:51:54 isn't he less than 30? 16:51:56 * Gregor shakes his cane at elliott 16:51:59 30 is the point where you get old 16:52:13 You're 20? Wow, you're OLD. 16:52:16 (that will be revised when I become 27 or so) 16:52:32 Goo goo ga ga [translation: 10 years old? Holy fucking shit! You'll be kicking the bucket soon, nigga.] 16:52:38 (Translation is literal.) 16:52:50 (All babies talk like this.) 16:52:51 :P 16:54:03 [REDACTED] 16:54:06 Y'know, my original plan was to make sure I had my PhD by 30, but that's waaaay too simple. Instead I should aim to have tenure by 30. 16:54:24 Ph.D. by 30, Gregor is so ambitious 16:54:33 Tenure is the most awesomely fucked thing ever. 16:54:39 I NOSE 16:56:02 -!- sftp has joined. 16:56:11 Phantom_Hoover: I can find mention of -fpascal-strings (disabled by default) and the \p escapes only in the OS X Developer Tools documentation for gcc-4.0.1; it's not in e.g. the official gcc-4.0.4 manual. Are you sure that's not another screwy Apple thing again? 16:56:30 The documentation for it in the Apple place also says "Pascal-style literals are useful for calling external routines that expect Pascal strings as arguments, as is true with some Apple MacOS Toolbox calls. " 16:57:42 Ah. 16:58:23 Hahaha, I just had the stupidest idea. 16:58:35 Say "is a symbol" is worked out by (tag&1). 16:58:43 Say "is a cons" is (tag&2). 16:58:48 Then nil's tag is 3, and it's both. 17:10:00 !help 17:10:02 help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 17:10:12 !help languages 17:10:12 languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 17:11:29 elliott, idea: chess with hitpoints and rolling of d10s 17:11:41 Vorpal: x_x 17:12:07 elliott, it is an interesting idea, no? 17:12:36 Vorpal: Sure :P 17:12:44 Vorpal: Tell me I'm evil for packing strings into words. 17:13:26 elliott, I got this idea after hearing about a rpg/minesweeper mix. The numbers showing total levels of monsters next to the square instead. And you had to level up to beat higher level monsters. By beating quite a few level 1 ones first. And so on 17:13:37 someone mentioned a flash game like that today. 17:13:45 haven't played it myself. Sounded fun though 17:13:50 heh 17:14:23 Vorpal: wow, multi-char char constants work in gcc 17:14:34 so I started thinking about interesting mixes. And since we had just had a lecture discussing search tree for game solving algorithms (using chess as an example) it was the natural one to start with 17:14:35 don't know if they get endianness right though 17:14:41 > printf("%x\n",'nil\0'); 17:14:41 6e696c00 17:14:43 (c-repl ftw) 17:14:48 (it does warn you though) 17:14:55 elliott, aren't they for multibyte? 17:14:57 iirc 17:15:06 Vorpal: probably. I'm trying to pack a string "nasm style" 17:15:11 /CPUID style 17:15:13 elliott, and how does it do it? 17:15:17 um 17:15:19 Vorpal: define it 17:15:25 nasm 17:15:31 Vorpal: like CPUID "GenuineIntel" 17:15:52 For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e. The following code is written in GNU Assembler for the x86-64 architecture and displays the vendor ID string as well as the highest calling parameter that the CPU supports. 17:15:56 elliott, which is just putting the string in the registers iirc Had it written it to memory it would have been perfectly normal 17:16:03 Vorpal: no, because it packs, see above 17:16:15 "> printf("%x\n",'Genu'); 17:16:19 47656e75 17:16:19 elliott, packed more than byte after byte? 17:16:22 as we see, C packs differently 17:16:24 Vorpal: 17:16:24 For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e. The following code is written in GNU Assembler for the x86-64 architecture and displays the vendor ID string as well as the highest calling parameter that the CPU supports. 17:16:24 For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e. The following code is written in GNU Assembler for the x86-64 architecture and displays the vendor ID string as well as the highest calling parameter that the CPU supports. 17:16:25 For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e. The following code is written in GNU Assembler for the x86-64 architecture and displays the vendor ID string as well as the highest calling parameter that the CPU supports. 17:16:27 yes 17:16:28 I saw that 17:16:29 For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e. The following code is written in GNU Assembler for the x86-64 architecture and displays the vendor ID string as well as the highest calling parameter that the CPU supports. 17:16:33 well, you didn't read it... 17:16:50 and afaik it is just union { 32-bit register; char[4]; } 17:16:52 basically 17:16:56 not sure about endianness 17:17:04 but that was the basic idea last I checked 17:17:18 elliott, so I fail to see what is so amazing about it 17:17:21 right, but i can't really do this packing from within c at compile-time 17:17:26 i never said anything was amazing about it. wtf? 17:17:35 I'm just saying that 'Genu' doesn't give the same results in gcc 17:18:03 !c printf("%d", sizeof('Genu')) 17:18:15 4 17:18:23 elliott, well a string is also packed. Just do something like union { uint32_t i[2]; char c[8]; } ? then assign to c 17:18:24 !c printf("%d", sizeof('Genuine ')) 17:18:26 4 17:18:29 >_> 17:18:31 That doesn't prove much, since single-character literals are also ints too. 17:18:45 !c printf("%d", sizeof('G')) 17:18:47 4 17:18:49 Oh :P 17:18:50 Vorpal: "assign to c" I don't believe you can do this properly at compile time. 17:18:54 Vorpal: Especially since my strings run *backwards* 17:19:03 elliott, oh that backwardness might be an issue 17:19:06 i.e. some structure is: 17:19:10 The "character literals are of type int" is standard, but multi-character literals are implementation-defined. 17:19:14 elliott, anyway you can assign there with C99 17:19:14 0 L I N || ... 17:19:16 not with C89 17:19:17 Where || means "pointer is here". 17:19:22 since you can tell it which member in the union 17:19:28 but who uses C89 nowdays anyway 17:19:29 Except that of course I want to pack 0 L I N into one word or so. 17:19:32 Vorpal: I do. 17:19:47 elliott, well sucks to be you then. Easy to assign there at compile time with C99 :P 17:19:58 Not really. 17:20:06 the backwardness is an issue 17:20:10 elliott, are you doing befunge or? 17:20:19 ...no. 17:20:20 Lisp. 17:20:30 elliott, why do they run backwards then? 17:20:34 I'm arranging the objects so that NIL can be both a cons cell and a symbol. 17:20:36 So symbols are: 17:20:37 What GCC does is: "The compiler evaluates a multi-character character constant a character at a time, shifting the previous value left by the number of bits per target character, and then or-ing in the bit-pattern of the new character truncated to the width of a target character. The final bit-pattern is given type int, and is therefore signed, regardless of whether single characters are signed or not." 17:21:00 0 [name of the symbol backwards ...] || [binary value ending with "0"] 17:21:04 where || means "pointer is to here" 17:21:05 and pairs are 17:21:17 || [binary value ending with "1x" for any x] [pointer to car] [pointer to cdr] 17:21:21 So NIL is 17:21:34 0 L I N || 0b10 [pointer to ||] [pointer to ||] 17:21:46 Erm. 17:21:48 0 [name of the symbol backwards ...] || [binary value ending with "1"] 17:21:49 so nil is 17:21:50 elliott, Seems a rather complex solution 17:21:53 0 L I N || 0b11 [pointer to ||] [pointer to ||] 17:22:02 Vorpal: Not really, it's just a little bit of arranging and lets me avoid a ton of conditionals checking for x==NIL. 17:22:19 Vorpal: It would probably be simpler if cons cells ran backwards since they have a fixed number of fields. 17:22:23 Then the symbol names could run forwards. 17:22:35 Vorpal: Of course all this has to be aligned so that the || pointer ends with 0. 17:22:47 elliott, so how large is your cons cell? If it isn't 2*sizeof(void*) you are doing something wrong 17:22:55 Vorpal: Well, plus a tag. 17:23:11 elliott, the tag is usually in that :P 17:23:13 Vorpal: I could keep the tag in the pointer but I think it would waste 2 or 3 bits. 17:23:21 No it's not usually in that... 17:23:25 elliott, I mean, why else would you end up with 21 bit integers in lisp and such 17:23:30 which is rather common 17:23:39 Vorpal: Silly type proliferation. :) 17:23:46 elliott, ah true 17:24:15 elliott, anyway why does it need to store the name of the symbol every time? 17:24:23 Vorpal: Anyway, I would prefer to have one tag distinguishing symbol vs. cons and then have the pointer tag just be smallint/pointer; that way, smallints can be 63-bits (on x86-64), and while you can have symbol-and-a-cons, you can't have symbol-and-a-cons-and-a-smallint which is just silly. 17:24:25 couldn't you use a GCed symbol table? 17:24:29 Vorpal: Also, uh, this is the symbol object. 17:24:35 Of course every reference to it is just a pointer to it ................... 17:24:35 hm 17:24:39 elliott, ah good 17:24:41 It's called interning. 17:24:45 Also you rarely GC them. 17:24:52 (GCing them would be difficult to say the least.) 17:24:57 (But some things do it.) 17:25:10 elliott, well if you don't you get a silly situation. Like that of erlang. Where you can run out of atoms in theory. 17:25:14 picolisp has "transient symbols" that are GC'd and they are used in place of strings... and also sometimes in macro 17:25:15 s 17:25:23 syntax is "foo" but it's displayed in the REPL as underlined foo 17:25:39 -!- cal153 has quit (Ping timeout: 264 seconds). 17:25:42 (the limit is rather high, and unless you are converting user input strings to atoms all the time you are probably safe) 17:26:56 * sym: *tag_sym, name, 0 */ 17:26:57 erm 17:27:00 /* pair: x, y, *tag_pair 17:27:00 * sym: *tag_sym, name, 0 */ 17:27:02 ok, that should work 17:28:20 #define nil ((cell)&nils) 17:28:20 struct { cell x; cell y; cell tag; char name[1]; } 17:28:20 nils = { nil, nil, tag_sym|tag_pair, "nil" }; 17:28:33 Vorpal: This would work, except (nils+2) has to be aligned to 0... 17:28:44 Vorpal: (by nils+2 I mean &(nils.tag)) 17:29:44 mhm 17:30:02 elliott, awkward to not have everything the same size 17:30:14 unless you put them in a special pool 17:30:18 hm 17:30:19 Vorpal: Suggestions welcome. :P 17:30:54 elliott, forbid long names? If 4 letters is enough for befunge fingerprints then it is enough for you :P 17:31:43 Vorpal: I could go for 16 or 24-char names. 17:31:50 Vorpal: Problem is that if I use these for strings... 17:32:02 Vorpal: I could always make symbols just conses of smallints. 17:32:06 elliott, depending on what the size of cell is, and if it is 64-bit. Then you will have 3 or 7 bytes of padding after "struct { cell x; cell y; cell tag; char name[1]; }" 17:32:07 Vorpal: (97 98) is 'ab :-) 17:32:18 Vorpal: cell is void * 17:32:23 and 64-bit? 17:32:26 Vorpal: also, remember that char name[1] is actually a C89-style VLA :P 17:32:37 Vorpal: Well, yes, 64-bit is the main target here. 17:33:05 if so you would have 7 bytes of padding after the end of that array. That could be used for extending the name into 17:33:13 so 8 bytes total for the name 17:33:34 Vorpal: You do realise that name could be as long as I want? 17:33:39 char name[1] is C89 phrasing of char name[]. 17:33:43 elliott, NOT IN MY SOLUTION :P 17:33:52 elliott, which would allocate them end on end 17:34:03 thus solving memory fragmentation 17:34:24 and make allocation simple 17:35:05 Vorpal: lawl 17:35:14 Vorpal: 8 bytes name does not sound fun :p 17:35:34 Vorpal: Unless I Huffman-coded printable ASCII. 17:36:22 hm 17:36:56 elliott, also, it will make indexing into an array of those (not that you would need that) fast. Since it would then be a power of two in size 17:37:03 Vorpal: Oh joy :P 17:37:29 elliott, indexing into an array where the elements are a power of two in size is just a bitshift. 17:37:54 Vorpal: You have single-handedly managed to make me abandon this project :P 17:38:10 elliott, what? I was just pointing out something interesting about pointers 17:38:16 -!- Sasha2_ has joined. 17:38:18 Vorpal: Yeah, but it happened anyway. :P 17:38:25 elliott, well not my fault 17:38:48 Oh look, the Beatles have made it on to iTunes. Now all those millions of iTunes users that have been holding out on listening to the Beatles because it's not on iTunes can experience the joy. Wait, what? 17:38:53 Somehow this is big news. 17:39:13 elliott, so they no longer need to pirate it then? 17:39:19 or use spottify (if it has it) 17:39:21 and so on 17:39:29 Vorpal: Or buy the CDs :P 17:39:37 elliott, that sounds a bit far fetched 17:40:04 -!- augur has quit (Remote host closed the connection). 17:40:05 -!- Sasha2 has quit (Ping timeout: 245 seconds). 17:40:51 Vorpal: [[“I am particularly glad to no longer be asked when the Beatles are coming to iTunes,” said Ringo Starr.]] 17:40:59 Translation: "Will you finally fuck off already?" 17:41:04 I love how that's in the actual press release. 17:41:57 bbl 17:57:19 -!- Sgeo has joined. 17:57:30 "Researchers who have spent months reverse-engineering the Stuxnet code say its level of sophistication suggests that a well-resourced nation-state is behind the attack." 17:57:38 So, which #esoteric-er was it? 18:07:14 17:03:20 ehird: that dwm source is clearly golfed 18:07:14 17:03:28 it's doing things like fitting entire loops into the head of a for loop 18:07:14 17:03:44 which is always possible, but only used for golfing and showing off AFAIK 18:07:20 not really, to reply to April the First, 2009 18:13:37 19:15:53 (if AnMaster were alive, he'd probably complain that _T infringes on implementation namespace or something like that...) 18:13:40 Unfortunately AnMaster is dead. 18:14:38 19:44:51 oh, who was that girl who hung out in here? 18:14:38 19:44:59 liked manga, slept like 2 hours per night 18:14:38 19:45:06 razorX, aka sukoshi 18:14:38 19:45:29 ah, yes 18:14:47 -!- BeholdMyGlory has joined. 18:14:49 I like the implication that bsmntbombdood monitors and tracks everyone's sleep schedules. 18:14:55 And now I should probably stop log-responding to last year. 18:16:30 Didn't I act like an idiot one of these past April 1sts? 18:18:20 01:18:15 in theory, sending a packet to 255.255.255.255 sends it to the entire Internet 18:18:20 01:18:21 in practice, any sane router will drop it 18:18:22 Damn! 18:18:25 Sgeo: I'm not sure how to tell. 18:20:04 elliott, so what *is* Stammer? 18:20:15 Phantom_Hoover: a lithp. 18:20:59 Surely a-a-a L-l-lisp? 18:21:18 -!- augur has joined. 18:21:53 What does it do? 18:22:14 Phantom_Hoover, besides the insane O() thing, what's your opinion of Clojure? 18:23:26 Sgeo: It stinks. 18:23:33 Poll 18:23:40 My migration to Scala 2.0.0: 18:23:48 * I still use COBOL or equivalent 18:23:49 Sgeo: Shut up. 18:24:03 2.8.0 18:24:11 I typed that by hand due to browser being a bitch 18:24:28 You... usually copy version numbers? 18:24:58 I would have copied the poll question and that option 18:25:11 It's an actual poll on the Scala website 18:25:43 browsershots.org has volunteers donating compute time to make browser snapshots. You can pay the guy who runs the site an absurd monthly fee to get priority processing. I wonder if any of that money goes to the volunteers who run the screenshot boxes ... I'm betting no. Seems pretty unethical. 18:26:26 Gregor: browsershots.org is pretty crappy in my experience. 18:26:33 Gregor: Some of those Linux browsers are VERY INTERESTINGLY configured. 18:26:42 elliott: Yes, it is, but browsershots.org + js.codu.org = best idea ever ;) 18:26:55 Gregor: Make sure Lynx is included :P 18:27:15 Lynx has no JS. And in spite of common misconception, neither do any of the .*Links.* browsers. 18:27:23 * Sgeo decides to try it on Wikipedia 18:27:28 Gregor: Shut up. Include it. 18:27:29 And shut up. 18:27:32 * Sgeo doesn't realize that it will take a while 18:27:33 Me? 18:27:40 Everyone. 18:27:40 * Sgeo cancels 18:28:02 Gregor: I suggest you fork w3m into w3m-js :P 18:28:13 Gregor: w3m-html5. It even supports ,