00:02:43 -!- azaq23 has quit (Ping timeout: 258 seconds). 00:34:30 -!- pikhq has quit (Quit: Reconnecting). 00:34:59 -!- pikhq has joined. 00:41:00 When you die, are you going to make sure you die laughing? 00:45:22 I can make no guarantees. 00:46:09 -!- azaq23 has joined. 01:06:30 -!- azaq23 has quit (Ping timeout: 276 seconds). 01:06:53 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:22:33 Hahahah. 01:22:36 PS3 hacked again. 01:24:19 Buffer overflow in a SELF loader's header check. 01:26:58 -!- coppro has quit (Ping timeout: 260 seconds). 01:28:37 ... And it gets you the bootldr keys. 01:29:37 And the lv0 keys. 01:31:13 ... That's the entire chain of trust. 01:31:20 Sony accidentally the chain of trust. 01:31:56 -!- copumpkin has joined. 01:36:19 Yup, seems that as soon as someone bothers to dump/leak the lv0 keys, the PS3 will be *permanently* hacked. 01:38:57 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 01:47:07 pikhq: Someone should do that, then. And then watch Sony earn a lot of money because of that, and yet, still, they will discontinue the product. 01:49:51 zzo38: I probably would, and post it via Tor, if my PS3 still worked. 01:49:59 Even worse, nobody (not even the people who work at Sony in a few years) will know the reason why it would be discontinues. 01:51:16 * pikhq needs to buy some thermal paste and give it a bake 01:52:31 Is it broken? 01:52:36 Is the PS3 broken? 01:53:18 If so, what makes it broke? 01:53:33 I need to do a reflow on it; it's exhibiting the symptoms of the solder joints on the GPU having gone bad... 01:53:46 Damned lead-free solder. 02:02:21 Shame it's not a 360. 02:02:31 The 360, you can do a solder reflow on by making it overheat. 02:17:58 -!- variable has quit (Read error: Operation timed out). 02:33:37 Does vi/vim have the mode to ding when reaching a certain column? 02:55:06 I seem to have come down with a cold. That sucks. 02:59:07 And I seem to be short on pastimes ATM. 02:59:34 And, of course, reddit is down. 03:00:20 Then make up something else. 03:01:54 Screw you and your logic! 03:02:02 Why? 03:02:47 Because! 03:03:08 I resent "logic", therefore colorless green dreams sleep furiously! 03:03:21 -!- pikhq has quit (Quit: Lost terminal). 03:18:19 -!- azaq23 has joined. 03:19:05 I have to make up the new D&D character for a separate campaign, by Monday at 16:00J. It is 5th level (6th level for multiclassed characters). I have to try to make decision, such as: Is there colors of chalk? Is there colors of marbles? Does this game have magnetic marbles? 03:22:11 Also important: have you lost your marbles? 03:23:21 fizzie: No, but they have lost terminal. I did not even select any equipment yet, so there is nothing to lose, yet. 03:27:40 http://i.imgur.com/dMoYQ.jpg 03:44:12 -!- variable has joined. 03:50:36 -!- pikhq has joined. 03:50:48 * pikhq has discovered that Jagermeister tastes amazing. 03:51:26 The primary flavor in it is liquorice. 03:51:42 And I <3 liquorice. 03:52:06 me too 03:53:37 Damn straight you do. 03:58:31 -!- azaq231 has joined. 03:58:45 but actual licorice, not the red sweet candy stuff that's like twizzlers 03:59:09 The red sweet candy stuff is also nice at times. But that's not fucking liquorice. 03:59:18 Actual liquorice is the flavor of the gods. 03:59:23 mmm 03:59:25 I want some now 03:59:35 -!- azaq23 has quit (Read error: Operation timed out). 04:00:24 (incidentally, if you really want the red sweet candy stuff, Red Vines > Twizzlers so fucking much) 04:00:53 Red Vines? 04:01:01 I've tried the stuff they sell at Trader Joe's 04:01:08 it's not bad, but it's kinda sweet 04:01:37 Hmm, may not be a national brand... 04:02:12 I know it's out of California, and fairly readily available in Colorado. 04:16:38 Ok 04:16:45 I am now incredibly fed up with xkcd 04:19:08 The current xkcd is pretty much the same as a previous xkcd 04:20:22 Oh, look, devoid of humor. 04:20:41 No, wait, it has negative humor value. 04:22:13 It's not that. It's that it's essentially the same as a previous one. 04:26:24 o.O 04:26:56 There's a birth defect which results in the formation of a cloaca. 04:28:05 It's called "not being a mammal" :P 04:28:29 Gregor: First, the monotremes have cloacas. 04:28:35 Gregor: Second, I meant "in humans". 04:29:21 FRIGGIN' PLATYPUS 04:29:34 I hereby expel the monotremes from mammalia. 04:29:42 And echidna. 04:30:30 The marsupial genitalia are also completely and utterly bizarre. 04:32:00 They have two-pronged penises and two vaginas attached to seperate uteruses. 04:32:23 Redundancy: It's good for you. 04:32:53 And the fetus is fed via a yolk. 04:33:39 Yes, they give live birth basically by not shelling the egg. 04:33:55 Heywait, nobody ever answered: Subtract and branch if zero is TC, right? 04:34:27 I don't see why not. 04:34:46 After all, subtract and branch if less than or equal to zero is TC... 04:35:01 Seems it'd just make some branching code even more tedious. 04:35:24 Tedium is irrelevant, all that matters is brevity :P 04:35:43 :P 04:36:19 I'm trying to find the non-cheating useful[1] language with the shortest working interpreter (in C). [1]: Useful means either TC, or non-TC for reasons of limited types not fundamental to the semantics of the language. 04:37:09 With my condition as equality to zero, I can use a simple ?: on the subtraction op, rather than having a comparison :P 04:39:37 Well, carry on. 04:39:45 Also, it has to be a non-cheating language, no system() :P 04:39:59 I see no reason that SBZ wouldn't be TC. 04:40:22 It has branching, self-modification, and arithmetic. 04:40:23 I'm down to 86 characters, bounded storage machine, plus IO just for lols. 04:40:39 Also it uses gets because I'm awesome. 04:40:47 Oh dear/ 04:40:50 Paste? 04:41:24 http://sprunge.us/RQVd 04:41:48 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 04:42:01 I could shave off some space in one easy way I choose not to, plus it actually depends on the signedness of chars which sucks >_> 04:42:32 Oh, plus it's some horrible amalgam of C99 and pre-ANSI C :P 04:43:24 Well, since you're already doing GNU C, you can just do -fsigned-char or -funsigned-char. :P 04:43:50 Mmmm, I don't think this strictly depends on GNU C. 04:44:02 "C99 and pre-ANSI C" 04:44:16 That working is a GNU-ism. :P 04:44:35 Does C99 allow "main(){}" as a program? I don't think so ... 04:44:43 It doesn't. 04:44:54 Right, yeah, that's why. 04:45:04 I would need five extra chars for "void ", unless it doesn't even allow main to be void. 04:45:42 You could remove a space by doing "char*a,b[9<<9]={0};" 04:45:49 And main can't be void, no. 04:45:58 Ooooh, brilliant. 04:46:09 You're not allowed to modify b, are you? 04:46:20 Sure you are. 04:46:36 Then I'm wasting craploads on 'a' maintenance :P 04:46:44 It's an array on the stack that is all 0s. 04:46:58 {0} is an initialiser, not a constant. 04:47:06 Nonono, I don't mean the content of the array. 04:47:09 I mean b itself. 04:47:16 *Oh*. 04:47:20 Of course I can modify the content :P 04:47:44 ... I doubt it, but GNU might allow it in spite of standards and common sense. 04:48:05 I'd really rather not STRICTLY depend on GNU X-D 04:49:45 I'll bet clang could compile it too :P 04:51:07 Wait, char b[1024]={0} is C99, right? 04:51:14 It is. 04:51:35 Bleh, I'd need memset to accomplish that otherwise >_> 04:51:45 memset is six characters! :P 04:52:05 char*a,b[9<<9];main(){...} 04:52:25 Globals are 0-filled by default. 04:52:37 Is that guaranteed to be zero by the C standard? I thought it just happened to be guaranteed to be zero by Unix/ELF/nonsense. 04:52:49 Yes, that is a guarantee. 04:53:08 Which is *why* .bss exists. 04:53:13 Still, b[9<<9] is definitely not OK since 9<<9 isn't a literal :P 04:53:42 You know what I just realized .... 9<<9 is smaller than 9999 >_< 04:53:54 Well, there you go. :) 04:54:53 Muahaha, works and 81 chars >: ) 04:55:48 Now, how do you feel about making it also confusing? 04:56:19 Array indexing is commutative. >:D 04:56:24 Oh? 04:56:31 a[1] == 1[a] 04:56:50 (as *(a+1) == *(1+a) 04:56:51 ) 04:56:53 (x[y]==*(x+y)) I think, it is same thing, as additional commutate 04:57:02 Except that typeof(1) !== typeof(a) 04:57:08 Gregor: Irrelevant. 04:57:18 Gregor: Array indexing does not work how you think it does. 04:57:30 Gregor: a[b] *is* *(a+b) forall a,b. 04:57:57 One of them is a number the other is a pointer. It has to be, because it is not sense to add two pointers together. Therefore is allow to be commutative. 04:58:46 pikhq: Wow, that shit compiles with -ansi -pedantic *brain explodes* 04:59:12 Gregor: It's entirely valid and well-formed ANSI C. 04:59:15 Is because it is valid, there is no good reason to make non-valid such things!!! 04:59:40 zzo38: Except of course for basic sanity >_> 04:59:54 pikhq: Still, I'm going for brevity, I'm not attacking clarity for the sake of attacking clarity. 05:00:07 Mmkay. 05:00:19 It does so amuse me to do that, though. 05:00:37 But it should be compile error to write (*42) because you should need an explicit cast between numbers and pointers; implicit cast should be disallowed (but it isn't, it is only warning, too bad) 05:00:50 But come on, I've got a bounded storage machine interpreter for a pseudouseful language in 81 bytes of C! 05:00:57 zzo38: I'm pretty sure it is at least a warning. 05:01:18 pikhq: Yes it is a warning. It ought to be error to make such implicit cast. 05:01:31 Mmm, probably. 05:01:56 In the few cases where you really *mean* it, you're probably doing an explicit cast anyways. 05:02:01 Gregor: :) 05:03:17 Gregor: If only you could make use of the arguments to main to get some variables for cheap. 05:03:46 pikhq: I was thinking about using an arg instead of getsing my code, but I couldn't find a way to do it in less characters. 05:04:02 main(int n,char*a){// Write over n, a immediately} 05:04:14 So very nice if you need an integer and a char pointer. 05:04:29 But I don't :P 05:04:32 The only case should be an implicit cast from literal zero (or a constant expression making zero, such as (5-5)) to pointer is null pointer, and pointer to boolean, in similar way. But explicit cast such as ((char*)0) ought to always correspond to actually address zero instead. 05:04:38 Yeah, I was merely lamenting that. 05:04:59 pikhq: Yes even in codegolf, Anarchy golf, it can be done like that, I do like that. 05:05:02 zzo38: It's not an implicit cast from zero to null pointer. 05:05:15 -!- lament has joined. 05:05:15 zzo38: "0" *is* a null pointer. 05:05:36 Minor distinction that is utterly irrelevant. 05:05:39 05:05:50 pikhq: I think zero should be an implicit cast to a null pointer, but if you use an explicit cast, instead corresponds to address 0 (usually also the null pointer, though). 05:06:41 How many systems are there around where NULL isn't expressed as 0, anyways? 05:06:54 I mean, uh, there's Lisp machines which had NULL expressed as nil... 05:06:55 And? 05:07:01 -!- asiekierka has joined. 05:07:10 pikhq: I do not know if there are any such system. I am just saying what would be my opinion. 05:07:18 pikhq: I love how you go straight from pedantry to practicality :P 05:07:28 Gregor: :) 05:07:34 zzo38: I named one. 05:08:30 pikhq: OK. 05:09:09 I think it is OK to have 1[a] and a[1] same thing, by commutative addition, make sense. (Gregor's comment about sanity, although not wrong, is wrong because you cannot always sanity, please. I can sometimes sanity, please.) 05:09:44 `addquote ... you cannot always sanity, please. I can sometimes sanity, please. 05:09:47 376) ... you cannot always sanity, please. I can sometimes sanity, please. 05:18:20 Is there a way to tell the compiler that the program uses more stack? 05:24:40 No, because the compiler doesn't determine the size of the program's stack. 05:25:01 The stack is allocated by the kernel on process creation. 05:25:24 The closest you could get is allocating a new stack and switching to it. 05:25:32 -!- azaq231 has quit (Quit: Leaving.). 05:27:03 pikhq: 79 05:28:09 Gregor: Noice. 05:28:35 pikhq: How can you make that while not being specific to only one computer? 05:30:00 zzo38: The setcontext family of functions in POSIX lets you switch stacks. 05:31:54 Does gdb have a command to check the amount of stack usage? 05:32:12 And to trap in case of too much? 05:33:33 If you find one, let me know. 05:34:03 BTW, if you use setcontext et al, be aware that it is very hard to debug screwups. 05:34:59 OK I will try to let you know. 05:35:09 I tried using it for continuations in C... I'm not sure how, but I got a null pointer as the return address for a function. 05:35:23 Needless to say, gdb is no help. 05:36:29 I was looking for something I also found libunwind, does that help at all? 05:36:40 (I mean, with what you are doing) 05:53:00 Oh, yesterday's stats: APNIC (2x/32 IPv6): 4x1k+/32 to Australia, 3x1k to China, 1k to Indonesia, 1k to India, 4x1k+/32 to Japan, 2x1k to Sri Lanka, 2x1k to New Zealand, 1k to Singapore, 1k to Thailand. 05:56:53 -!- lament has quit (Ping timeout: 248 seconds). 05:59:23 Any reason for using /32s as the unit? 05:59:47 Wouldn't it make more sense to use /22, i.e. the minimum allocation unit at APNIC? 06:01:27 The minimum unit is really a /24. I don't know if that can be allocated, but at least it can be assigned. 06:03:09 /22 is the minimum APNIC will allocate itself. 06:20:05 -!- coppro has joined. 06:32:13 " People who use twitter: What's twitterese for "Send answers by tagging @whoever"?" <<< no one uses twitter 06:35:23 In reality, Twitter is a test case for AI research. 06:38:49 i understand that people had to use twitter and facebook before irc was invented, but now they just feel like ancient history 06:40:55 -> 06:44:15 `addquote i understand that people had to use twitter and facebook before irc was invented, but now they just feel like ancient history 06:44:18 377) i understand that people had to use twitter and facebook before irc was invented, but now they just feel like ancient history 06:47:18 pikhq: you should sue the government for violating treaties 06:47:24 under the supremacy clause of the constitution 06:48:15 coppro: Precedent is that I do not have standing to sue unless I can demonstrate that I have been significantly affected by it. 06:48:21 Yes, this is bullshit. 06:49:45 What is Flatland doing in the non-fiction section? I mean, I see why it's in Science (although imo it should be Math), and that of course is in Non-fiction 06:49:54 But... it's just 06:50:01 http://www.feedbooks.com/books/categories 06:50:05 Click Science 06:50:19 Hope you don't hit a 500 06:50:35 pikhq: you should orchestrate yourself into that then 06:50:44 just make a career out of getting standing to sue and suing 06:51:11 Sgeo: Victorian-era satire is apparently non-fiction. 06:51:20 coppro: Non-trivial but awesome. 06:51:53 coppro: Problem is, the treaties I care about would be *very* hard to make applicable without being at high risk of death. 06:56:11 pikhq: oh? 07:02:19 How, exactly, do you propose that I sue the government for violations of the Convention Against Torture without being in a really shitty state? 07:16:02 pikhq: could you argue that your faith in the constitution as the supreme law of the land is shaken? 07:17:50 coppro: I'd be laughed out of court. 07:17:56 Thereby demonstrating my point. 07:18:10 :( 07:18:37 pikhq: it's the tort of emotional distress 07:18:47 they have violated the law and made you feel bad 07:20:54 *Moreover*, the government could no doubt succesfully argue sovereign immunity. 07:25:29 that's true 07:25:44 lol usa 07:25:52 fuck I have to live there for thre emonths 07:25:57 goddamit 07:26:18 -!- zzo38 has quit (Quit: Something Russia is famous for: Russians.). 07:37:00 It's the only country I'm legally permitted to live in. 07:51:29 I'm legally permitted to live in it until October 07:59:29 -!- oerjan has joined. 08:14:17 -!- pikhq has quit (Quit: Lost terminal). 08:34:02 Vorpal, well, I know now, but I'm not going to tell you because it took me about 30 seconds. <-- it translates to "birds" for me... 09:05:25 -!- MigoMipo has joined. 09:51:42 -!- monqy has quit (Quit: hello). 10:28:41 -!- oerjan has quit (Quit: leaving). 10:32:42 -!- crystal-cola has joined. 10:36:32 -!- Phantom_Hoover has joined. 10:45:58 -!- asiekierka has quit (Remote host closed the connection). 10:46:06 -!- asiekierka has joined. 10:46:52 -!- asiekierka has quit (Remote host closed the connection). 10:48:03 -!- asiekierka has joined. 11:01:45 -!- asiekierka has quit (Remote host closed the connection). 11:14:05 http://www.mspaintadventures.com/storyfiles/hs2/01961_1.gif 11:14:17 OK this is quite probably the most ridiculous thing ever. 11:17:02 http://www.impredicative.com/ur/demo/ 11:57:42 -!- BeholdMyGlory has joined. 12:08:04 -!- jix has quit (Ping timeout: 260 seconds). 12:19:31 -!- asiekierka has joined. 12:26:53 It's official: My favorite candy is marshmellows 12:36:29 can you actually call that candy? 12:37:21 i always thought candy was like more "solid" stuff 12:37:27 -!- KingOfKarlsruhe has joined. 12:37:35 a marshmallow is almost like whipped cream... and you wouldn't call that candy 12:37:38 or like a jelly 12:37:45 which is not candy either 12:38:02 where be the fine thin line between marshmallow and jelly? 12:46:23 I would say the thing it's most similar to is meringue. 12:46:37 Which isn't considered a candy /per se/, but then in many contexts marshmallow isn't considered a candy /per se/. 12:47:02 yeah, i'm a bit on the border with this 12:47:22 -!- yorick_ has changed nick to yorick. 12:47:23 Candy, specifically sugar candy, is a confection made from a concentrated solution of sugar in water, to which flavorings and colorants are added. 12:47:35 i think a marshmallow is made from sugar syrup 12:47:50 so technically you could say by ingredients it's a sort of candy. 12:48:48 marsh mallows are sugar and egg white 12:48:52 well 12:49:02 the stuff you buy in shops is probably synthesized from cow brains 12:49:10 but you can make them from sugar and egg white 12:50:11 mmm cow brains 12:53:40 man 12:53:47 dons is scaring me 12:54:09 anytime i ask a question related to haskell, i end up arriving at an answer from dons 12:54:34 right now i've asked a question in #haskell, searched around for hours, and he's written a paper answering it in full, many years ago 12:59:15 -!- jos_ali_joe has joined. 13:15:42 -!- jos_ali_joe has quit. 13:21:00 -!- ais523 has joined. 13:24:53 -!- aloril has quit (Ping timeout: 248 seconds). 13:35:17 -!- copumpkin has joined. 13:36:42 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.86.1 [Firefox 3.6.16/20110319135224]). 13:41:35 -!- aloril has joined. 13:50:45 show that x^15 + y^3 = 34^34 has no integer solutions 14:00:17 gah, diophantine equation! 14:00:29 :D 14:00:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:01:01 wnat do you think of diophantine ? 14:01:12 I fear them 14:01:42 Diphantus wouldn't like that either! 14:01:46 dio* 14:09:07 -!- Wamanuz5 has quit (Remote host closed the connection). 14:12:20 Find all m,n such that 3^m - 2^n = +/- 1 14:16:03 wtf, apparently the Open Watcom compiler has unsigned chars by default >_> 14:16:18 Gregor: both signed and unsigned char by default are legal 14:16:24 and unsigned char is more plausible in some senses 14:16:27 ais523: I know that 14:16:31 diophantine equations with unsigned chars 14:16:36 you can check every case 14:16:46 ais523: But I'm writing an interpreter in the fewest possible characters, so I assume signed char to save characters :P 14:16:56 Prove that a^n+b^n=c^n has no integer solutions a, b, and c for n>2 14:16:59 -!- TeruFSX has quit (Ping timeout: 252 seconds). 14:17:32 Gregor: apparently MSVC++ throws an exception at runtime on an attempt to cast a signed int to a signed short, if the value overflows a short 14:17:37 even when compiling C 14:17:45 Sgeo: ... 14:17:46 that's legal too, but I thought it was completely absurd 14:18:41 [I did get that right, right?] 14:18:49 ais523: YOU ARE NOT HELPING 14:19:02 Sgeo: I don't think that can be solved by elementry methods 14:19:04 I don't want my 79-char interpreter to balloon because of friggin' portability issues :P 14:19:34 just use int everywhere, it's one integer shorter than char 14:19:52 Sgeo: 0^3+0^3=0^3 14:20:04 you should probably put "nonzero" in there somewhere 14:20:31 x^n + y^n = z^n => xyz = 0 14:20:59 => xyz(n+2)(n+1)n(n-1)(n-2) = 0 14:22:06 haha that's clever 14:22:11 is is true for the negative n? 14:22:14 I don't konw about that 14:22:33 Sgeo: that's easy, i just wrote it down on a napkin.. but i had to blow my nose 14:22:54 (yz)^n + (xz)^n = (xy)^n 14:23:06 crystal-cola: it's very easy to prove true for n <= -3, given a proof for n >= 3 14:23:08 anyone know what the smallest complete computer system is that ghc can compile efficient code for? 14:23:11 say, pda-sized 14:23:17 okay what about n = -2 14:23:20 and -1 14:23:25 it's false at those values 14:23:26 would an Atom based system be the smallest thing they'd reasonably run with? 14:23:28 1/x + 1/y = 1/z 14:23:33 1/x^2 + 1/y^2 = 1/z^2 14:23:44 1/3 + 1/6 = 1/2 for n=-1 is probably the simplest example 14:23:47 I will ask the egyptians 14:24:08 crystal-cola: what are you doing, capacitance calculations? gtfo. 14:24:41 augur, crystal-cola appears to have left troll-mod. 14:24:42 mode. 14:24:56 So why are you yelling at em? 14:25:00 what 14:25:07 -!- Wamanuz has joined. 14:25:09 and 1/15^2 + 1/20^2 = 1/12^2 14:26:56 there are ofcourse infinitely many solutions to that equation 14:27:01 and are easy enough to find 14:27:12 without using fractions, no less! 14:27:54 How do you find all solutions? 14:28:10 you dont, since theres an infinite number of them 14:28:17 you can only constraint your search one way or another 14:29:23 or at least im pretty sure there are infinitely many 14:30:48 yes, there are infinitely many 14:30:53 tho probably not many interesting ones 14:31:00 well, maybe lots of interesting ones 14:31:01 i dont know! 14:31:18 butanyway 14:31:20 i must sleep 14:31:23 atleast a little bit 14:31:24 night 14:37:20 * Gregor refuses absolutely to add "signed " :P 14:44:49 why does it need to be signed, anyway? 14:47:14 Because it's an offset, and if it's unsigned then I can only go forwards, so I can't e.g. loop at all :P 14:49:25 But explicitly calling it signed makes it 86 characters! D-8 14:49:34 hey check this out 14:49:52 a(1)=1;a(n+1)=2n+1-a(a(n-1)) 14:49:55 oops 14:49:57 -!- copumpkin has joined. 14:49:59 a(1)=1;a(n+1)=n+1-a(a(n-1)) 14:50:02 -!- copumpkin has quit (Changing host). 14:50:03 -!- copumpkin has joined. 14:50:11 dammit 14:50:14 a(1)=1;a(n+1)=n+1-a(a(n)) 14:50:24 that is a, now consider b(n)=a(n+1)-a(n) 14:50:28 Gregor: why does it have to be a char, then? 14:50:30 ,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1 14:50:31 rather than an int? 14:50:35 it's basically random?? 14:50:38 ais523: Because I gets it. 14:50:49 ais523: If it's not a char, then I have endianness issues, and that's even grottier. 14:50:52 it's like it's trying to be periodic but ise't 14:50:54 Plus width issues >_< 14:51:05 you're reading a char... with gets? 14:51:23 I'm reading a char ARRAY 14:51:47 Fundamentally this is subtract-and-branch-if-zero, with word size 8 bits. 14:52:06 you're unlikely to beat MiniMAX 14:52:25 which is actually TC even with bounded inputs, unlike many other OISCs 14:52:25 nested reccurences have some weird ability to do this 14:52:35 who is using gets? 14:52:45 Vorpal: Gregor, because he's golfing 14:52:49 ah 14:52:54 ais523: How many chars is MiniMAX? 14:53:04 Gregor: 8 bytes of machine code, for the main loop 14:53:15 I don't care about machine code, I care about chars of C :P 14:53:17 if you want I/O and that sort of thing, you have to go up to 32 or so 14:53:24 And yeah, I have I/O 14:53:32 Gregor: char[] main = "insert shellcode here" 14:53:51 ais523: Even my assume-char-is-signed C code is an effload more portable than that :P 14:54:13 ais523, awesome 14:54:22 Vorpal: have you never seen that trick before? 14:54:29 ais523, no. 14:54:38 ais523, looks utterly unportable yeah 14:54:41 the trick itself is at least moderately portable, although obviously the shellcode isn't 14:54:51 Well of course the trick itself is portable :P 14:54:55 But the code isn't. 14:55:00 Plus it'd take lots of bytes to \x \x \x :P 14:55:05 ais523, I can't imagine that it would work. Presumably it would end up in .data? 14:55:17 ais523, which would have NX flag turned on. So it couldn't execute 14:55:30 the first IOCCC, the winning entry worked like that, but with a polyglot between the two most common machine codes of the time 14:55:35 and it predated people turning on NX out of habit 14:55:43 ais523, "out of habit"? 14:55:58 Vorpal: well, in their linker defaults 14:56:07 I think in general it is a good thing to have. If you really don't want it you can turn it off. But it is a good default to have it on 14:56:14 I know 14:56:26 also, your last sentence sounded worryingly zzo38ish 14:56:42 hm, indeed, so it is. 14:56:46 I don't mind zzo38 talking like that, but from anyone else it's pretty scary 14:57:36 My rules for myself include "no cheating", which to me meant "no using system() or exec*()", but I think can easily be extended to "no writing machine code in C" :P 14:57:56 -!- elliott has joined. 14:57:59 ais523, I didn't make as many grammatical errors I think? 14:58:04 I did not, however, define how portable that C had to be, which is why I'm in an ethical quandry of signedness :P 14:58:12 Gregor: Erm. 14:58:12 elliott: You have 3 new messages. '/msg lambdabot @messages' to read them. 14:58:16 Gregor: Is this about the jit stuff? 14:58:20 elliott: No. 14:58:21 oh, hi elliott 14:58:28 Gregor: That relies on signed overflow :P 14:58:28 elliott: Gregor's golfing a TC interpreter 14:58:36 What language? 14:58:38 Or just any language? 14:58:38 C 14:58:43 Relying on signed overflow is So Bad. 14:58:45 ais523: ... 14:58:46 oh, any language as the language it interprets 14:58:50 ais523: What language b- right. 14:58:52 but both are relevant when golfing 14:58:53 elliott: This is about golfing a useful[1] interpreter. [1]: Useful means TC, or TC except for a bounded word (and hence) memory size, so computationally equivalent to a computer. 14:58:57 Shorter than lifthrasiir's BF one? 14:59:04 elliott: I'm at 79 bytes. 14:59:19 And it does have I/O 14:59:22 Gregor: apparently MSVC++ throws an exception at runtime on an attempt to cast a signed int to a signed short, if the value overflows a short 14:59:24 Gregor, which language does it interpret? 14:59:31 Vorpal: Subtract-and-branch-if-zero. 14:59:36 With 8-bit words. 14:59:39 ah 14:59:40 elliott: rare to see languages actually treating signed overflow like MSVC++, though... 14:59:47 Gregor: Tried ByteByteJump or similar? 14:59:55 ais523: :D 15:00:06 Gregor: That's just 15:00:06 uint8_t mem[MEMSIZE]; 15:00:07 uint32_t *pc = (uint32_t *)mem; 15:00:07 for(;;) { 15:00:07 mem[pc[1]] = mem[pc[0]]; 15:00:07 pc = (uint32_t *)(mem + pc[2]); 15:00:09 } 15:00:11 or similar 15:00:25 You can easily do while(some condition on pc) to get a halt instruction. 15:00:32 And IO can be memory-mapped. 15:00:37 ais523, hm. That would be easy to exploit to write a program that is quite a bit slower in MSVC++ than in gcc 15:00:37 elliott: That is so much more than 79 bytes :P 15:00:45 Gregor: Because it's ungolfed. 15:00:52 Also, I forgot I fixed it up a bit, and I'm at 77 bytes. 15:01:01 Vorpal: I'm not entirely sure that you could catch the resulting exception in a vaguely portable way 15:01:07 because I'm not even convinced it's a C++ exception 15:01:15 but a more general Windows exception, of which C++ exceptions are a special case 15:01:30 ais523, well, it has to check for it, even if it doesn't occur 15:01:45 -!- oerjan has joined. 15:01:51 elliott: Also, your has the portability issues I was concerned about ... my only portability issue is it assumes that chars are signed, yours interprets a different language for big-endian and little-endian machines ... 15:02:02 that means testing if a flag was set, and branching to "throw exception" code. 15:02:06 Gregor: It does?? 15:02:08 Gregor: Since when 15:02:21 Vorpal: that's going to make a negligible differnce 15:02:24 *difference 15:02:29 ais523, hm 15:02:39 a correctly predicted test-overflow-and-branch is incredibly quick compared to a single memory access 15:02:50 oh, true 15:02:52 (and an incorrectly predicted one slow only because it needs to make memory accesses to load the code you branch to) 15:03:17 elliott: Are you kidding me? Of course it does. 15:03:30 Gregor: Are you going to clarify how or just keep stating that :P 15:03:41 An anonymous reader writes "Amazon has officially denied that the recent outage of its EC2 and Elastic Block Storage cloud platforms was the result of an attack from Cyberdyne Systems' Skynet sentient computer system, declaring humanity safe after all. 'From the information I have and to answer your questions,' a spokesperson explained, 'Skynet did not have anything to do with the service event at this time.' 15:03:45 Gregor: It's UB C-wise because it overflows a signed value, but I don't know any CPU that does that wrongly, and gcc accepts it fine. 15:03:51 s/$/"/ 15:04:04 23:39:25: People who use twitter: What's twitterese for "Send answers by tagging @whoever"? 15:04:12 Gregor: "Reply to [at]whoever" or similar, surely 15:04:20 Since [at]whoever is used as both an identifier of the person and the account 15:04:29 elliott: You're aliasing an 8-bit and 32-bit value, then setting the PC based on the reading the /32/-bit value, after setting the /8/-bit value. 15:04:29 And talking to someone always involves mentioning their [at]whatever 15:04:34 elliott: You're in endianness hell. 15:04:39 ais523, I *assume* that the quote is invented. 15:04:43 Gregor: Where the heck does eight bits come in. 15:04:57 Gregor: Which instruction are you talking about 15:05:02 ... 15:05:09 Gregor: You're referring to the ByteByteJump code which I didn't write? 15:05:13 And instead copied from the wiki? 15:05:18 I thought you were talking about my Fythe stuff X_X 15:05:24 elliott: ... lol X-D 15:05:24 (a person asked such a question would probably say something different, and be rather confused by the question) 15:05:29 elliott: I'm talking about language golfing here :P 15:05:34 elliott: Your Fythe code is fine :P 15:05:42 Gregor: Yah, I'm just saying that something like ByteByteJump MIGHT BE SIMPLER :P 15:05:45 And provided that as an example. 15:06:01 I'm personally wondering about cyclic tag, but that might cause memory management problems in C 15:06:12 ugh, cyclic tag in C would be horrible 15:06:14 if you don't just want to use a cyclic buffer 15:07:05 http://www.netaddiction.com/ "Internet chat rooms cause social disorders in teens and adults." 15:07:06 LIES 15:07:07 FILTHY LIES 15:07:44 author of "Breaking Free of the Web: Catholics and Internet addiction" 15:07:45 lol wat 15:07:47 elliott: why? don't you just need a pointer to the beginning and to the end, and suitable bounds checking? 15:07:52 oerjan: well ok. 15:07:59 oerjan: but Gregor has it in seventy-nine bytes 15:08:04 that sounds like at least eighty already :D 15:08:08 Gregor: Can I see your code btw? 15:09:10 FILTHY LIES <-- YEAH LET'S GO SET FIRE TO HIS HOUSE AS PUNISHMENT 15:09:23 HER 15:09:24 77 now 15:09:28 oerjan: AND GAMBLE ONLINE TO SPITE HER 15:09:31 O KAY 15:09:35 Gregor: I wanna try and make it portable :P 15:09:39 elliott: http://sprunge.us/RbfK 15:09:48 Gregor: Pastebin for a single line, noice :P 15:09:56 elliott: Dats rite bich 15:10:04 BUT I CANNOT AFFORD GAMBLING, I'M USING ALL MY MONEY ON DRUGS 15:10:05 Gregor: So this is K[and]R C, right? 15:10:23 and on internet, of course 15:10:29 elliott: Nope. 15:10:36 Gregor: Yes it is. 15:10:40 "main()" is only valid in K[and]R C. 15:10:43 elliott: Well, it's semitraditional C in that it doesn't have a return type --- yeah :P 15:10:50 Gregor: You also assume that sizeof(char pointer) == sizeof(int), because you don't have a prototype for gets or puts. 15:11:02 This is Blatantly False on large numbers of architectures. 15:11:05 elliott: I don't use their return values either. 15:11:14 Gregor: That's just an error-checking problem. 15:11:22 Gregor: This is a portability problem :P 15:11:34 Gregor: Remember that char-pointers and ints could have _different calling conventions_. 15:11:40 And I'll be damned if there isn't a machine where they do. 15:12:14 elliott: What is the standard for how arguments are passed to no-prototype functions? I don't think it's int, int, int. I think it's like varargs. But I don't recall. 15:12:51 Gregor: Hmm, you might be right. Still, I don't think there's any guarantee puts and gets will work with that convention. 15:12:54 Kinda the point of prototypes :P 15:13:01 Darn, 9<<9 is smaller than 9999. 15:13:09 elliott: Yeah, I already did that :P 15:13:47 elliott: Since I'm already assuming chars are signed, I think I've consigned myself to allowing such nonportable assumptions as "the machine is even vaguely sane" 15:13:50 Gregor: BTW, I'm not sure less than ten kibibytes (not octets, bytes) of memory counts as "Useful" :P 15:13:57 (Not that the latter implies the former) 15:14:03 12:53:47: dons is scaring me 15:14:03 12:54:09: anytime i ask a question related to haskell, i end up arriving at an answer from dons 15:14:07 Also, I'm trying to remove such assumptions... OK, only the char one. 15:14:10 Find all natural x,y,z such that 5^x - 3^y = z^2 15:14:15 crystal-cola: no. 15:14:18 there's no reason to be scared until you start hitting oleg papers instead 15:14:24 elliott: If you do, you'll blow it up for no good reason. 15:14:25 Gregor: Why can't you just use an int array? 15:14:31 Gregor: Moar RAM. 15:14:43 OK, so the code has to handle setting all the high bits. 15:14:46 Or... 15:14:53 Actually, gets will write to it properly, I think. 15:15:01 As in, [four-or-whatever] bytes to the int. 15:15:05 Well, whatever :P 15:15:31 Gregor: btw, your second argument is already an array pointers to chars... you could use that as memory... just sayin' 15:16:10 ahaha 15:16:23 prove that 2^(2^m+2^n)|F_n^(F_m-1)-1 15:16:36 fermat numbers 15:16:40 how do people come up with this? 15:16:51 elliott: Yeah, I thought about doing it in args, but bleh, that's so grotty, even for a golflang :P 15:17:10 Gregor: I assume you have seen the shortest BF interp? 15:17:13 elliott: I'm trying to make this to be a challenge for someone to decode and write a program for, not to just be retarded, btw. 15:17:26 Oh. MY DESIRE TO MODIFY IT LESSENS 15:17:49 elliott: I'm not sure I have ... 15:17:55 Lemme find it. 15:18:06 I'd be surprised if it's <77 bytes :P 15:18:08 s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17 15:18:08 ?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;} 15:18:08 Unknown command, try @list 15:18:09 http://j.mearie.org/post/1181041789/brainfuck-interpreter-in-2-lines-of-c 15:18:22 Yeah, it relies on Unix, but still :P 15:18:27 ... why does it need to be two lines? X-P 15:18:33 (Linux and BSD have the right syscalls (read and write).) 15:18:41 Gregor: Because people like to measure things in lines of code, and it's two eighty-char lines. 15:18:49 Ah 15:19:09 Anyway, if you want int memory, you can omit "char" entirely. 15:19:11 And int is signed. 15:19:24 b[9999],*a;main(){gets(a=b);while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];puts(b);} 15:19:29 I maed it shorter and moar portable 15:19:40 ... no, you made it LESS portable, now it depends on endianness. 15:19:46 Oh :P 15:19:47 Fecknuts. 15:20:01 At least with chars you can give most compilers -flol-make-your-chars-signed-kthx 15:20:20 You can't do -flol-be-big-endian-now-just-for-kicks 15:20:24 X-D 15:20:28 You SHOULD be able to :P 15:20:37 It should be a processor flag. 15:21:20 It is on some processor, but even on those it has to be specified once and for all for the whole runtime, not per-program. 15:21:21 It should be a processor flag. <-- some CPUs work like that 15:21:38 Vorpal: THE BEST ONES. 15:21:41 Gregor, hah, one second before you (on my side) 15:21:52 Vorpal: Mine is more usefully detailed :P 15:21:58 Gregor: Nope nope nope, you should be able to flip it at arbitrary times, followed by a jump instruction. 15:22:06 Then OSes would just flip it in their multitasking stuff. 15:22:14 -!- FireFly has joined. 15:22:18 And you could change endianness HALF WAY THROUGH THE PROGRAM to take advantage of either. 15:22:22 elliott: Yes, that was my point, even the ones that do aren't sufficient. 15:22:22 THE BEST. 15:22:26 elliott: oh, I thought you mean they'd change the endianness of the jump addresses 15:22:31 so as to make a primitive sort of jump table 15:22:34 Gregor: Yes. Clearly we must rectify this issue. 15:22:36 ais523: hahaha 15:23:13 elliott, I think PPC (32-bit ones) used to have something like that. I distinctly remember reading that some virtualisation software for PC that ran on classical mac used it to speed up things, but G5 lacked it, so the program had to be rewritten a bit 15:23:31 For... PC? 15:23:33 PCs use PPCs now? 15:23:45 elliott, no. As in macs emulating x86 15:23:58 I still remember seeing a Mac box with "PowerPC" on it, and I assumed that was the box that made it able to run Windows, and the real Mac was underneath the desk, out of sight :D 15:24:00 like, for running windows back on OS 9 15:24:01 (I was very, very young.) 15:24:25 http://esolangs.org/w/index.php?title=Surround_notation&curid=3828&diff=22129&oldid=22126 15:24:29 TehZ is retarded, discuss? 15:24:41 the C example isn't even a C example of that 15:25:02 "Prefix notation is one of the four operator notations. It is sometimes combined with surround (when it needs a variable amount of arguments). It is one of the three powerful notations (Prefix, Postfix notation, Surround notation)." 15:25:08 ITT: TehZ has never heard of the ternary operator. 15:25:10 Or array indexing. 15:25:41 or infix? 15:25:48 elliott: BTW, even if the whole memory is only 9999 bytes, I'm not confident that you can USEFULLY access more than 256 bytes :P 15:25:58 Vorpal: Oh wait, "one of the three _powerful_ notations" 15:26:03 Can someone just delete those three articles on account of being fucking stupid. 15:26:10 "Infix notation is one of the 4 possible ways to describe a program. It is not as powerful as the others, so people usually add parenthesis, which makes it a combined notation (Infix-Surround)." 15:26:18 -_- 15:26:20 esolangs.org/TehZ's_opinions_blog/ 15:26:28 esolangs.org/TehZ's_opinions_blog/my_terminology_is_correct/ 15:26:29 bbl 15:26:39 Gregor: Lawl :P 15:27:15 ais523: Administrative opinion on the NPOVness and pointlessness of those worthless articles? :P 15:27:36 `addquote o.O There's a birth defect which results in the formation of a cloaca. It's called "not being a mammal" :P 15:27:40 378) o.O There's a birth defect which results in the formation of a cloaca. It's called "not being a mammal" :P 15:27:43 elliott: no /wiki/? 15:27:51 ais523: did you like this one? 2^(2^m+2^n)|F_n^(F_m-1)-1 15:27:59 ais523: clearly /wiki/ means that in TehZ's native language 15:28:21 actually now that I look at it again it's not as crazy 15:28:33 which is why we have four wonderful articles, one of which's name he just made up, and one of them referring to Infix as a non-powerful notation because you also need his (made-up-name) surround notation of parentheses to use it fully 15:28:44 and referring to prefix, postfix and surround as "powerful" notations 15:28:50 despite surround being unary, and so not "powerful" by his definition 15:28:59 and despite the fact that the ternary operator, and array indexing, don't fall in to any of those categories 15:29:19 "Infix notation is one of the 4 possible ways to describe a program." ;; also, there is no relation to programs, it is merely a way operators can be used 15:29:27 yeah ok every single word in these articles is wrong 15:30:18 04:45:04: I would need five extra chars for "void ", unless it doesn't even allow main to be void. 15:30:24 Gregor: main cannot return void in any standard ever. 15:30:32 I don't even think it's strictly valid GNU C. 15:30:45 elliott: Yeah, we came to that conclusion, but I'm golfin' here :P 15:31:30 elliott: I just wanted all of the C features it used to be from the same decade X-D 15:31:39 04:53:13: Still, b[9<<9] is definitely not OK since 9<<9 isn't a literal :P 15:31:44 it's a really-constant 15:31:46 which I think is fine 15:31:56 yeah it is 15:31:59 because you can do [foo+bar] 15:32:03 Hm 15:32:08 elliott: actually, C89 and C99 both allow freestanding implementations to change the return value of main if necessary 15:32:08 It's irrelevant though since it's less than 9999 :P 15:32:17 lol at Gregor realising that one[x] works :P 15:32:28 ais523: puts and gets ain't freestanding :P 15:32:30 elliott: MY BRAIN HATES IT SO MUCH 15:33:18 I wish I could express a[a[1]] more succinctly. 15:33:50 Hmm 15:33:54 void _exit(int rv) { (void)rv; goto *(void*)0; } 15:33:59 [asterisk](a + [asterisk](a + [one])) 15:34:17 Yah, I think you are fucked :P 15:34:23 ais523: goto *(void*)0; isn't portable. 15:34:28 ais523: blain axplote 15:34:35 Gregor: do you have a portable definition of _exit? 15:34:47 TehZ is retarded, discuss? <-- maybe not in so strong words. but yeah those last articles seem a bit ill-considered. 15:35:24 oerjan: I was also basing this on the fact that all the languages of his that I've seen are stupid :) 15:35:37 http://esolangs.org/wiki/Compute/IO <-- yes, we really need this. 15:36:36 Oh 15:36:39 TehZ is also behind these 15:36:41 http://esolangs.org/wiki/Java%27 15:36:43 elliott: it's from gcc-bf; I was trying to remember if I'd used an unportable sort of main, but I didn't (I just call main by hand from some C code that actually starts the program) 15:36:45 http://esolangs.org/wiki/Java%27%27 15:36:50 which we agreed were the worst pages ever, I believe :) 15:36:57 ais523: The goto is unportable, though :P 15:36:59 but there's that great definition of exit 15:37:05 ais523: What's with the (void)rv :P 15:37:10 wtf, I logged in and answered from a different computer, and it went nowhere >_< 15:37:13 elliott: to mark it as unused 15:37:15 ais523: Putting it into a "register"? 15:37:18 Huh. 15:37:20 Is that portable? 15:37:24 You can still use rv afterwards. 15:37:27 As in 15:37:32 it's a common portable idiom to mark an argument as unused 15:37:33 Is your interpretation of those semantics conformant 15:37:37 and it does nothing except stop lint complaining 15:37:50 as in, you don't get an unused argument error after doing that 15:37:56 and even compilers which don't know the idiom will just ignore it 15:38:03 it's much the same thing as writing if((a=b)) 15:38:09 OK, wtf, am I actually connected at all? CAN YOU HEAR ME? 15:38:11 Does gcc support it? 15:38:15 Gregor: No. 15:38:18 ais523: void _exit(int rv) { (void)rv; *((int*)0) = 0; } is exactly as portable. 15:38:20 ais523: Unless you find me a system that disallows writing to NULL but allows jumping to NULL :) 15:38:22 Err, rather, it's exactly as system-portable, while also being substantially more compiler-portable. 15:38:28 ais523: Even with -ansi -pedantic -Wall -Wextra -Werror? 15:38:33 Gregor: I didn't hear that 15:38:35 Finally that went through. 15:38:37 Greatest lag ever. 15:38:43 anyway, jumping to NULL is what I needed to do there 15:38:51 Gregor: It's not really lag, more the fact that freenode's new ircd sucks balls. 15:38:52 writing to NULL wouldn't accomplish anything useful at al 15:38:54 *all 15:38:57 because it's in ROM 15:39:26 ais523: So what you're saying is, you've found me a system that allows writing to NULL but disallows jumping to NULL :P 15:39:42 no, the other way round 15:39:54 gcc-bf disallows writing to NULL, but allows jumping to NULL 15:39:59 well, jumping to *NULL, to be precise 15:40:13 Oh, this is all about gcc-bf? Is it being developed? 15:40:19 It /was/ developed :P 15:40:22 goto *(void*)0; is definitely undefined behaviour 15:40:23 Now it sits, bitrotting. 15:40:28 ais523: it's GNU C only, too 15:40:36 -!- jix has joined. 15:40:37 so I can make it do what I like 15:40:56 ais523: what I'm saying is 15:40:59 it's /not/ UB in C 15:41:02 because it's not even C code 15:41:07 it's a simple parse error, even 15:41:07 it is UB 15:41:09 no 15:41:10 It's "syntax error" in C :) 15:41:10 does the standard define it? 15:41:11 it is a parse error 15:41:12 no, so it's undefined 15:41:13 goto takes a label 15:41:18 ais523: that's bullshit 15:41:23 the standard defines what Undefined Behaviour means 15:41:26 elliott: it's not bullshit, it's actually how the standard works 15:41:29 is this UB?: 15:41:31 int ma( 15:41:33 is that program UB? 15:41:36 or is it just Not a Program? 15:41:40 answer: the latter 15:41:50 anything it doesn't define is undefined, in addition to things specifically marked as undefined 15:41:51 and it's UB 15:41:59 is this UB? 15:42:07 #if __SOME_IMPLEMENENTATION_NAMESPACE_FOO 15:42:10 if( 15:42:12 #endif 15:42:14 ais523: CPP, irrelevant 15:42:17 int a = 4; 15:42:29 it is an invalid program IFF that thing is set 15:42:32 (it needs the last line to be valid C, as you have to have at least one declaration or definition per file) 15:42:34 I would totally bother to read the standard to prove you wrong, but I'm far too lazy to, so I'll ping fizzie instead. 15:42:46 Are we SERIOUSLY arguing about whether a syntax error is UNDEFINED BEHAVIOR? >_< 15:42:52 Gregor: indeed, we are 15:42:58 because it is 15:43:08 the only thing that's definitively defined as making a program incorrect is #error 15:43:12 Gregor: No, we're not, because fizzie is going to reply with two paragraphs from the standard that prove us right :-P 15:43:13 IT ISN'T EVEN BEHAVIOR, DEFINED OR OTHERWISE 15:43:16 anything else is implementation-defined or UB 15:43:59 05:06:41: How many systems are there around where NULL isn't expressed as 0, anyways? 15:43:59 05:06:54: I mean, uh, there's Lisp machines which had NULL expressed as nil... 15:44:04 actually it was (NIL . 0) 15:44:05 i think 15:44:14 -!- variable has quit (Read error: Operation timed out). 15:44:22 "A conforming implementation shall produce at least one diagnostic message (identified in an implementation-defined manner) if a preprocessing translation unit or translation unit contains a violation of any syntax rule or constraint, even if the behavior is also explicitly specified as undefined or implementation-defined." 15:44:37 4.2: If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated, the behavior is undefined. Undefined behavior is otherwise indicated in this International Standard by the words ‘‘undefined behavior’’ or by the omission of any explicit definition of behavior. There is no difference in emphasis among these three; they all describe 15:44:38 ‘‘behavior that is undefined’’. 15:44:47 OK, so Deewiant proves ais523 half-right :P 15:44:53 But also us half-right because you still have to whine about it. 15:45:02 I proved me the other half right 15:45:12 although I should probably have reformatted that copy-paste from a PDF 15:45:16 no, you added no new information to what Deewiant said 15:45:28 `run sed -i 's/\.\.\. you cannot/[...] you cannot/' quotes 15:45:29 No output. 15:45:32 `quote 376 15:45:33 376) [...] you cannot always sanity, please. I can sometimes sanity, please. 15:45:58 elliott: Deewiant's quote says that syntax errors should produce diagnostics even if also explicitly specified as UB 15:46:01 mine says that they're specified as UB 15:46:17 ais523: that's only true if there is no paragraph stating what a syntax error is, or similar 15:46:25 other things can override that 15:46:37 no, it says that if a ''shall'' / ''shall not'' that appears outside of a constraint is violated, the behaviour's undefined 15:46:49 is the grammar of C a constraint? no 15:47:01 ais523: you know how Agora rules can override universal quantifications in other rules? 15:47:16 only if sufficiently powerful 15:47:22 BACK TO GOLF 15:47:27 > let a = 1:zipWith(-)[2..](map((undefined:a)!!)a) in a 15:47:28 [1,1,2,3,3,4,4,5,6,6,7,8,8,9,9,10,11,11,12,12,13,14,14,15,16,16,17,17,18,19... 15:47:32 ais523: the C standard is all the same power. 15:47:44 yep, so a contradiction between rules would be an error in the standard 15:47:51 thus, there are no relevant contradictions, thus that rule is correct 15:48:07 > let a = 1:zipWith(-)[2..](map((undefined:a)!!)a) in zipWith(-)(tail a)a 15:48:08 [0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,0,1,0,1,1,... 15:48:12 * elliott wonders whether Agora really is notable... 15:48:31 ais523: you're trolling again 15:48:41 I don't think it is, because there are no newspaper articles, etc., about it, and you'd expect there to be if it were 15:48:42 because parts of standards blatantly do override generalisations in other parts 15:48:54 are you sure there aren't? 15:49:00 :P 15:49:05 no, but I think we'd likely have noticed if there were 15:49:19 maybe there was in the nineties 15:49:31 6.8.6.1.1 "The identifier in a goto statement shall name a label located somewhere in the enclosing function." 15:49:42 it says "shall", no contradiction with the other rule, no attempt to take scope 15:49:43 happy yet? 15:49:44 ais523: irrelevant, what matters is the syntatic definition 15:49:48 all that means is 15:49:52 it can't name a label in _another_ scope 15:49:54 oh, wait, that's a constraint 15:49:55 hmm 15:49:57 which is not a syntax error 15:50:04 ais523: heh 15:50:09 so now what? 15:50:41 we will haven't found out if syntax errors are defined in a way that, through overriding or otherwise, doesn't count that catch-all 15:50:51 [asterisk]we still 15:51:04 jump-statement : goto identifier ; | continue ; | break ; | return expression_opt ; 15:51:12 yep, but we need a more general statement about syntax errors 15:51:18 hmm 15:51:18 6.8.6.1.1 "The identifier in a goto statement shall name a label located somewhere in the enclosing function." 15:51:31 this sentence is meaningless if a goto statement contains something that isn't an identifier instead 15:51:46 Yeah, we haven't even gotten to "it's a goto statement" 15:51:55 ais523: and I don't think something can be UB if making it valid would make a sentence in the standard meaningless 15:52:22 there is no such thing as an invalid program in C, unless it contains #error 15:52:23 Gregor: it isn't, by that jump-statement rule 15:52:31 just programs that require diagnostics, and programs that don't 15:52:36 elliott: Exactly. 15:52:37 ais523: ais523: and I don't think something can be UB if making it valid would make a sentence in the standard meaningless 15:52:47 if you're complaining about 15:52:49 "making it valid" 15:52:50 then shut up 15:52:54 this is C-pedantry, not English-pedantry 15:53:22 if something is UB but can't, in any way, be given an interpretation without making lines in the standard meaningless or wrong 15:53:30 then that's a perfectly acceptable definition of "invalid" to me 15:54:19 elliott: what makes you think that goto *(void*)0; is a goto statement? 15:54:22 rather than some other sort of statement? 15:54:32 it isn't, but you seem to be arguing it is 15:54:38 it clearly doesn't fit the syntax for goto statements, it might just be coincidence that it has the keyword "goto" in 15:54:50 I'm not, I'm just arguing it's UB because the standard doesn't define it 15:55:33 * elliott ponders going into hash-hash-c and asking for help with the program "}][K()VPOLE{A:">,z00" 15:55:45 although here's a nice statement, the definition of UB: " behavior, upon use of a nonportable or erroneous program construct or of erroneous data, for which this International Standard imposes no requirements" 15:55:55 "I know it's UB, but it's perfectly defined on my system, so can you just help me fix my problem, which is in the ANSI C part?" 15:55:57 so as far as I can tell, the burden's on you to find an actual requirement that's imposed 15:56:01 although I'm looking for one here 15:56:21 06:38:49: i understand that people had to use twitter and facebook before irc was invented, but now they just feel like ancient history 15:56:22 :D 15:56:27 elliott: I'd go into comp.lang.c and say I had a question about the meaning of the standard, as to whether the program in question is completely meaningless or merely UB 15:56:41 comp.std.c 15:56:48 Deewiant: perhaps 15:56:52 ais523: ah, I don't think you understand the part where I'm trying to annoy hash-hash-c because they're shitheads :) 15:57:02 but you generally don't take threads there until comp.lang.c has told you to 15:57:02 with any luck, PoppaVic wouldn't shut up for a whole day 15:57:34 I can call out 4.7 on you, too 15:57:46 which basically says that a program is conforming if at least one conforming C implementation accepts it 15:57:57 so that would be the question, I suppose 15:58:03 GNU C isn't conforming, when it accepts statements like that 15:58:06 (wtf at that definition) 15:58:31 can an implementation that merely diagnostics on, rather than rejecting, goto *(void*)0; be conforming? 15:59:07 my guess is yes, because conforming implementations are allowed extensions that don't affect the behaviour of any strictly conforming programs 15:59:19 are we on the fast-track to saying that every object is a valid C program 15:59:21 and I doubt you can use that line, other than in a string or ifdeffed out, in a strictly conforming function 15:59:25 "The intent is that an implementation should identify the nature of, and where possible localize, each violation. Of course, an implementation is free to produce any number of diagnostics as long as a valid program is still correctly translated. It may also successfully translate an invalid program." 15:59:30 because in platonic space, there is a perfectly conforming C implementation that accepts any object 15:59:33 elliott: unless it has a #error directive in it that isn't ifdeffed out, yes 15:59:40 Deewiant: HA 15:59:42 ais523: invalid IS defined 15:59:53 * elliott does a little dance 15:59:53 elliott: that shows that it's used 15:59:55 not that it's defined 15:59:58 X_X 15:59:59 I hate you 16:00:12 (That was a footnote for "[d]iagnostic messages need not be produced in other circumstances.") 16:00:23 also, the footnotes aren't normative 16:00:24 (Which follows my previous paste) 16:00:40 anyway, cpp $1 && echo "This is a diagnostic." is a valid C compiler 16:00:45 conforming, in fact 16:00:50 the C standard is a crock of shit, let's argue about RRRRRS instead 16:00:52 erm 16:00:55 the C standard is a crock of shit, let's argue about RRRRRRS instead 16:01:05 the cpp step's only needed to catch #error 16:01:12 also, R7RS is out now 16:01:17 and RRRRRRS is only R5RS 16:01:21 ais523: yes 16:01:26 one, R[seven]RS is not out now, you are wrong 16:01:31 two, I meant R[five]RS 16:01:34 oh, it's in beta or something? 16:01:39 ais523: X_X 16:01:43 It's called a draft of Small Scheme. 16:01:43 R7RS is like a small step backwards from R5RS 16:01:44 the standard, that is 16:01:49 I don't even know if any work has been done on Big Scheme. 16:01:54 But that's okay since R6RS was a huge step backwards 16:01:56 elliott: they named it something else, IIRC 16:02:01 the people who liked it 16:02:02 But I don't really give a damn because the committee has lost all respect. 16:02:09 ais523: what? 16:02:14 and then pretended it wasn't Scheme 16:02:21 I have no idea what you're talking about 16:02:48 I can't remember, but it was something about the people who liked R6RS made a trivial derivative and renamed it, then pretended it wasn't Scheme, for some sort of reason I don't understand 16:03:05 I haven't heard anything about that, but everyone who likes R6RS is basically insane, so nothing can surprise me. 16:03:40 Incidentally, Small Scheme as defined by the R[Seven]RS draft is pretty much identical to R[Five]RS, except for the removal of two random functions and one or two changes that seem stupid. 16:03:56 e.g. adding a module system, which is useful for /systems/, which is not the target market of R[Five]RS family languages like Small Scheme 16:04:25 anyway, I can't find any evidence of my statement 16:04:35 so either a) I was mistaken, or b) I was completely accurate but nobody cared 16:06:56 ah, it was a group of people on Reddit, who may or may not have been lying, claiming that Racket went and forked R6RS (the spec), then removed all references to it being Scheme 16:07:05 and based on their website, that does indeed seem to be the case 16:07:12 ... 16:07:27 It astonishes me how often ais523 seems to take things from reddit, distort them utterly, and then immediately start to present them as fact. 16:07:28 On June 7th, 2010, PLT Scheme was renamed Racket to emphasize how far it had diverged from the original Scheme programming language. 16:07:41 For a start, Racket is not a fork of R[six]RS. 16:07:44 Neither was PLT Scheme. 16:07:51 elliott: but everyone knows reddit's view of reality is distorted! I'm just distorting it back again! 16:07:59 ais523: it's annoying. 16:08:03 PLT Scheme is a derivative of R[five]RS. It is significantly different. 16:08:06 _Significantly._ 16:08:09 They decided to rebrand to Racket because 16:08:19 (one) Schemers were pissed off that it was called Scheme, and 16:08:26 (two) they were pissed off that people thought it was Scheme. 16:08:35 actually, it seems that there was a flamewar on reddit over the point 16:08:39 with people quoting statistics at each other 16:08:47 A flamewar on reddit? SHOCKING 16:08:57 about whether the PLT Scheme/MzScheme people were responsible for R6RS or not 16:09:12 well, they all voted for it :) 16:09:40 oh well, it's not like I care too much about Scheme anyway 16:09:51 Yeah, it's so inelegant because it has quote. 16:09:53 Or something. 16:10:10 what, as in 'x or (quote x)? 16:10:12 or something else? 16:10:17 oh, you're talking to me? 16:10:27 yes, I find Lisp/Scheme-style macros incredibly inelegant and ugly 16:10:32 I have no idea, you just seem to hate special forms because of [incomprehensible]. 16:10:34 Special forms are not macros. 16:10:36 all special forms, in fact 16:10:53 Yes. The lambda calculus would be far better. 16:10:53 OH WAIT 16:10:56 ais523: even syntax-rules? 16:10:57 Lambda is a special form too. 16:11:13 OMG YOU MEAN THAT LANGUAGES HAVE PRIMITIVE ELEMENTES??//////////////////////// 16:11:18 crystal-cola: well, I prefer to keep the number down, not encourage proliferation 16:11:34 I consider combinatory calculus nicer than lambda calculus specifically because it doesn't have to track lambdas 16:11:48 but S and K and I are primitives 16:11:50 you can't implement them 16:11:55 therefore they're pretty close to special forms 16:11:56 oh noes 16:12:06 -!- lament has joined. 16:12:23 elliott: well, the thing's parametric on them 16:12:39 you can have them as an FFI to a different language, if you liek 16:12:40 *like 16:13:15 (in the compiler I'm writing at work at the moment, all the constants are in fact implemented via FFI, apart from integers because it would be a pain to have to implement each integer separately, and the fixed-point operator because it's too polymorphic) 16:13:28 Can I replace Feather with the SKI+RRI calculus that has complete definitions of all of those in terms of themselves? 16:13:30 SAY YES. 16:13:49 err, I'm not sure what you mean by replacing Feather 16:13:59 As in, use Feather to turn Feather into 16:14:04 [asterisk]. 16:14:54 I fear it'd take more sanity than I have left just to fully understand the question 16:15:00 so I hope I don't have to answer it 16:15:19 ais523: OK, let me rephrase. 16:15:37 ais523: Can I use Feather to create an SKI environment in which SKI are /not/ primitives, but defined, despite the fact that there is no lambda? 16:15:47 It can also have RRI or some other similarly Feather Operator, so long as it is also defined. 16:16:13 it'd have to be metacircular-by-cheating, I think 16:16:22 but it could be done in such a way that there'd be no way to prove it 16:17:40 (I'm talking Gregor levels of metacircular, here 16:17:42 ) 16:18:13 HEY, mine totally was not cheating. 16:18:23 The environments were still strictly segregated. 16:18:48 I still haven't actually seen it 16:19:12 because even after I temporarily broke my no-github policy to try to look at it, I was then unable to see it because github requires JS or something silly like that 16:19:47 Yes, it requires JS for pull requests (which is weird) 16:20:14 You have a no /visiting/ GitHub policy? 16:20:27 elliott: its ToS used to disallow my browser 16:20:36 ais523: you never agreed to its ToS, it only applies to registering 16:20:37 it's been changed to be slightly saner since, but it's still a little ridiculous 16:20:45 elliott: I know, but it's the principle of the thing 16:20:54 Sometimes I wonder if ais523 exists purely to remind everyone in the universe that someone will always make things awkward. 16:20:58 ais523: X_X 16:21:10 elliott++ 16:21:11 elliott: in this case, github 16:21:25 ais523: My point squares. 16:22:40 ais523: http://sprunge.us/LSPX 16:23:02 Gregor: that's pretty much exactly what I guessed it was 16:23:17 not in the details, but in the concept 16:23:17 Gregor: You should have pasted it in-channel to be annoying :P 16:23:29 elliott: its ToS used to disallow my browser <-- huh? 16:23:33 which browser 16:23:46 Vorpal: It forbid blocking ads, despite the fact that there were no ads and as such the clause was inactive. 16:24:01 It now no longer does so but ais523 upholds his policy because it's inconvenient, or something. 16:24:05 ais523: Right, and it's TOTALLY NOT CHEATING, it's straight-up metacircularity! 16:24:05 elliott, okay, that is somewhat silly in the TOS indeed. 16:24:15 Also it only applies to registered accounts, which ais523 never created, and so it was doubly-irrelevant. 16:24:18 function isValidIdentifierChar(ch, first) { var x = {}; x["x"+ch] = true; x[ch] = true; try { return (eval("(x." + (first?"":"x") + ch + ")") ? true : false); } catch (ex) { return false; } } 16:24:26 I don't see why that can't be pasted in-channel 16:24:34 function isValidIdentifierChar(ch, first) { 16:24:34 // create an object to test this in 16:24:34 var x = {}; 16:24:34 x["x"+ch] = true; 16:24:34 x[ch] = true; 16:24:35 // then try 16:24:37 try { 16:24:39 return (eval("(x." + (first?"":"x") + ch + ")") ? true : false); 16:24:41 } catch (ex) { 16:24:43 return false; 16:24:45 } 16:24:47 } 16:24:49 FTFY 16:24:51 you stripped valuable things, like the comment 16:24:52 elliott: you didn't reformat it first? shame on you 16:24:56 you stripped valuable things, like the comment 16:25:07 technically i skipped a blank line 16:25:07 that wasn't particularly valuable, and besides, it'd have commented out the rest of the line 16:25:08 also unacceptable 16:25:16 precisely, so your method of pasting was bad 16:25:19 is bad, rather 16:25:21 I thought about changing the comments to /* */ instead, though 16:25:30 but the point is the meaning of the code 16:25:32 didn't hackego or some other bot in here had a wolfram alpha interface iirc? 16:25:34 that would be lying 16:26:01 elliott: no; would you consider posting a disassembly of .NET or jvm code to be lying? 16:26:06 "then try" = most valuable comment ever. 16:26:25 and if not, why would you consider preprocessing code mentally slightly to be lying? 16:26:31 ais523: YES. 16:26:41 bear in mind that I've posted Python oneliners in here before 16:26:45 Vorpal's filtering of all-caps comments are also lying. 16:26:48 FUCKING LYING 16:26:53 [asterisk]is also 16:27:06 no, I'm pre-processing them to not be all caps 16:27:12 of the form exec " if x:\n do this\n else:\n do that" 16:27:18 assuming I've got the Python syntax right 16:27:22 it's something like that, anyway 16:27:29 besides, the only person I would be "lying" to would be myself. 16:27:38 (note that this is a great argument for one-char indentation; using any more would make it even harder to read) 16:27:58 Vorpal: heh, you have a script/replace that lowercases allcaps comments? 16:28:04 ais523: just use Enterprise Braces Syntax instead 16:28:07 I have an interrobang remover, but it doesn't actually work 16:28:22 Y'know, even though I've typed "unsigned char" uncountably many times, it makes more sense for it to be signed by default, since that's consistent with all the other types. 16:28:26 Enterprise Braces Syntax‽‽‽‽‽ 16:28:33 Gregor: char makes no fucking sense in general :P 16:28:40 Phantom_Hoover: is that one interrobang plus four regular question marks? 16:28:49 and if not, wtf is my interrobang remover doing? 16:29:02 ais523: you forgot /g 16:29:05 or, wait, what 16:29:11 Gregor: There should be a signed "byte" type, and an unsigned "char" type. That's a lie, but that's how it should have been back when ASCII made any sense at all. 16:29:12 elliott: no, that wouldn't make a difference 16:29:16 it's replacing... all but the first? 16:29:20 ais523, yes, a few days ago elliott was using upper case for almost every line, this went on for about 5 screens of scrollback 16:29:36 Gregor: Really there should be a signed byte type and a unsigned-twenty-one-bits-or-more-with-undefined-overflow "codepoint" type :P 16:29:37 you know what IRC clients should do? combine all lines spoken in a row by one person together 16:29:40 elliott: "byte" is too specific a name for C. It should be "reallyshort" :P 16:29:42 ais523: gnome-chat does 16:29:45 although it'd mean you'd always be one line behind 16:29:47 by omitting the names 16:29:52 Gregor: lawl 16:29:58 Gregor: "dwarf" 16:29:58 Gregor: short short! 16:30:03 ais523, but actually it is somewhat more advanced, than "all caps" in deciding if to lower case a line or not 16:30:29 there was actually an argument on comp.lang.c as to whether short short int; should be added to the standard in preparation for 128 bits becoming a common length for int 16:30:51 or, well, 64-bit int, 128-bit long 16:31:02 so how do you specify both 16 and 32? 16:31:22 hm 16:32:16 ais523, I can see an issue here if we get more lengths. We can get up to 128 on the current scheme (int = 32, long = 64, long long = 128) but after that we start getting silly names like long long long long for 512 bits. 16:32:48 long is the wrong name 16:32:50 it should be tall 16:32:55 of course, stacking short at the other end would only mitigate the issue temporarily. 16:32:56 short, long??? 16:32:57 no 16:32:57 short, tall 16:33:01 then we just need like 16:33:01 giant 16:33:05 dwarf, short, tall, giant 16:33:13 or wait 16:33:22 why not move everything and call 16-bit "long char" 16:34:36 so, short short char, short char, char, long char, long long char, short short int, short int, int, long int, long long int. 16:35:03 hm is short int valid in current C? 16:35:38 yes 16:35:41 right 16:35:42 it means the same thing as short 16:35:49 ais523, but char int isn't I presume? 16:35:53 it isn't 16:35:58 right 16:36:49 wait, you could extend the above scheme by applying the same principle as used for a compass orientation like "ENE" 16:37:01 so you could have long short char and so on 16:40:12 why /isn't/ "char int" valid? 16:40:14 char is stupid 16:40:16 it is the stupidest of the types. 16:40:27 elliott, in the name, yes indeed 16:40:37 but why isn't it just a modifier like short? 16:40:46 unsigned charred int 16:41:20 I don't know 16:44:03 ais523, another way to solve the issue would be to not define the extra types but instead depend on stdint.h. Which is perfectly fine to implement using some implementation specific way 16:45:08 oerjan: why would oleg be scary? 16:47:51 cheater99: JUST BE HAPPY YOU DON'T KNOW 16:48:27 oerjan: tell me... i want to be prepared 16:48:43 you know what's annoying? websites that modify cookies whenever you change which form field has focus 16:49:04 oerjan: also, earlier today i google images'd dons' real name, and i came up with a photo of john holmes, a porno star. 16:49:17 http://okmij.org/ftp/ don't say i didn't warn you 16:49:42 which is even more funnier given the fact that john holmes once used a screen name of eddie haskell. 16:50:01 oerjan: i've actually had that open in another tab already. 16:50:43 oleg ate my children 16:50:47 and when he spit them out 16:50:50 they were in the type system 16:52:56 -!- aloril has quit (Ping timeout: 240 seconds). 16:53:32 theory: oleg is an FAI which has uploaded us all into its type system 16:53:39 best theory 16:56:41 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds). 16:58:44 -!- Phantom_Hoover has joined. 17:05:41 http://okmij.org/ftp/ don't say i didn't warn you <-- that url reminds me, I had a dream tonight, where someone insisted on that "ftp" was an acronym for "friendly teleport protocol" 17:08:04 The reason reddit is so good is because they rewrote their program from lisp to python 17:08:31 this friendly teleport protocol is very reliable, consistently teleporting at least 90% of your body 17:09:29 -!- aloril has joined. 17:09:44 oerjan, the only issue with the usual teleport devices is that they are not reliable in the presence of plot devices. 17:09:48 crystal-cola: if a random person said that sentence in that way i would consider them trolling 17:10:01 yet? 17:10:58 Indeed, "yet?". 17:11:01 oh wait i'm on ignore 17:11:11 are you threatening me 17:11:17 lol 17:13:54 -!- Slereah has quit (Ping timeout: 258 seconds). 17:17:54 -!- zzo38 has joined. 17:19:37 -!- Slereah has joined. 17:33:20 -!- asiekierka has quit (Remote host closed the connection). 17:40:22 -!- Slereah has quit (Ping timeout: 276 seconds). 17:41:03 ais523: anyway, ZEPTO has no special forms. 17:41:07 well, it does, but all it has is special forms. 17:46:16 -!- Slereah has joined. 17:53:32 -!- ais523 has quit (Remote host closed the connection). 17:53:34 -!- Slereah has quit (Ping timeout: 276 seconds). 17:53:43 elliott, how could a language have no special forms? 17:53:55 By only having primitives. 17:53:59 oh right 17:54:02 And not evaluating arguments by default 17:54:07 [asterisk]default. 17:54:16 i.e. quote is implemented like you'd implement "id". 17:54:22 -!- monqy has joined. 17:54:24 right 17:54:25 And there's a function layer implemented on top, that evaluates all the arguments before passing them. 17:54:37 elliott, then how would you force evaluation? 17:54:44 hm 17:54:46 Eval? 17:54:56 elliott, isn't eval then a special form? 17:55:01 No? It takes an object. 17:55:05 hm 17:55:06 okay 17:55:16 Technically it evaluates its argument twice. 17:55:23 But only because everything evaluates its argument one less time than normal. 17:55:31 (define (id x) (eval x)) (id (+ 9 9)) -> a number I can't type 17:55:45 (define (quote x) x) (id (+ 9 9)) -> (+ 9 9) 17:55:56 Except that "define" would actually be a different name. 17:56:04 Because the normal definition mechanism would automatically add argument-evaluation code in. 17:56:13 elliott, define is surely a special form? 17:56:18 X_X 17:56:25 Like I said, ARGUMENTS ARE NOT EVALUATED BY DEFAULT 17:56:30 oh yeah 17:56:32 hm 17:56:33 That is the same as normal-Lisp (define '(quote x) 'x). 17:56:44 You need PRIMITIVES, but no special forms. 17:56:53 -!- asiekierka has joined. 17:56:55 hm right 17:57:09 elliott, so eval and define would be primitives? 17:57:11 -!- Slereah has joined. 18:04:51 -!- asiekierka has quit (Remote host closed the connection). 18:06:55 -!- auroraxxx9 has joined. 18:08:06 -!- auroraxxx9 has left. 18:27:17 -!- Gregor has quit (Excess Flood). 18:27:25 -!- Gregor has joined. 18:27:51 -!- Gregor has changed nick to Guest8478. 18:27:53 http://i.imgur.com/IDxMq.png <-- my 77-byte interpreter: Totally portable :P 18:28:00 X-D 18:28:01 wtf, how did I guestify 18:28:15 Guest8478: But did you use OpenWatcom to compile it???? 18:28:22 -!- Guest8478 has changed nick to Gregor. 18:28:24 Or better 18:28:26 elliott: Yup 18:28:26 PRE-Open Watcom. 18:28:30 Nope :P 18:28:30 ... X-D 18:28:37 Use the kind of Watcom that actually runs on DOS :P 18:28:40 And it's a .COM file :P 18:28:42 And also install real DOS (Yes, you can do that in DOSBox). 18:28:47 OpenWatcom runs on DOS, it just doesn't have an installer. 18:28:56 OK but it doesn't count because that isn't real DOS. 18:28:59 Of course you can do that in DOSBox, it's just pointlessly painful. 18:29:06 But AUTHENTIC. 18:29:13 It's just like using qemu though :P 18:29:18 Yes, of course. 18:29:27 Except that `dosbox .` = awesomesauce :P 18:29:34 THE POINT IS MY 77-BYTE INTERPRETER WORKS ON 16-BIT DOS :P 18:30:16 reddit is in "gold mode" 18:31:13 Gode. 18:34:18 -!- asiekierka has joined. 18:34:41 elliott, hm is openwatcom any good? 18:35:28 It's... Open Watcom. 18:37:04 right 18:37:41 elliott, was that a remark about how I spelled it or was it a remark intended to convey that it is in some way unique/weird/special? 18:38:06 or perhaps both? 18:38:18 Gregor has used it, I haven't (well, I did once, in Windows Ninety-Five.) 18:38:22 Ask him :P 18:38:26 right 18:39:14 Take a compiler that was tolerable for DOS, then make it run on Windows and even Linux. 18:39:27 Gregor, does that mean the end results suck? 18:39:32 result* 18:39:48 The results are probably just fine, not as good as GCC of course, but decent. 18:39:55 The interface is just ... classique. 18:40:18 Gregor, oh, let me guess... it uses / for flags even under *nix? 18:40:19 Gregor: They prefer "vintage". Like fine wine. 18:40:52 Vorpal: Actually it went whole-hog to - for flags everywhere (I think it still "legacy" accepts / on non-Unix, but the help text has -s), but e.g. the linker takes a linker script. 18:41:04 wlink system dos file lolsomefile file lolsomeotherfile file wtfareflags 18:41:20 Gregor, um. The GNU linker also takes linker scripts 18:41:36 Vorpal: ld has flags. It takes linker scripts as SCRIPTS, not arguments :P 18:41:47 oh my 18:41:52 See command line above :P 18:42:03 Also, and the 32-bit compiler is wcc386 18:42:11 Gregor, can you link using GNU ld instead? 18:42:18 Umm, probably? Lemme check. 18:42:37 Gregor, also, hm, does it support C99 nowdays? 18:43:15 A tiny bit, not much. 18:43:19 BAHAHAHA AWESOME, observe: 18:43:21 hm 18:43:48 OK, hold a bit then observe :P 18:43:54 * Vorpal waits 18:44:07 $ wcc386 interp.c 18:44:07 ... 18:44:07 $ file interp.o 18:44:12 $ file interp 18:44:13 07:26:18: -!- zzo38 has quit (Quit: Something Russia is famous for: Russians.). 18:44:13 wat 18:44:14 interp: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, not stripped 18:44:24 Gregor: Uhhhh 18:44:30 [dollar] gcc foo.c 18:44:32 [dollar] file foo.o 18:44:34 [dollar] file a.out 18:44:37 a.out: lol file 18:44:51 So it's... as bad as gcc, except it uses a reasonable output filename :P 18:45:01 elliott: ... it's the FORMAT you're supposed to be looking at. 18:45:13 Oh, the CPU? :P 18:45:47 It's not an ELF .o (which doesn't REALLY matter, but is pretty lols), and it's not even a 32-bit format (presumably?) :P 18:46:01 So long story short: No, you cannot use GNU ld :P 18:46:11 Gregor, um to gcc you need to give -c to get object files out 18:46:21 Vorpal: This is not GCC, now is it. 18:46:35 Gregor, so presumably there is some other flag for it? 18:46:53 Vorpal: The compiler is just a compiler, not a compiler frontend. 18:47:03 oh 18:47:23 (It also includes "owcc" as a compiler frontend, but that's new) 18:47:30 It's not an ELF .o (which doesn't REALLY matter, but is pretty lols), and it's not even a 32-bit format (presumably?) :P 18:47:31 interp: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, not stripped 18:47:40 Looks like a thirty-two bit ELF executable to me? 18:47:46 Are you SURE it's not the final binary? :P 18:47:52 I'M - TALKING - ABOUT - THE - .o - FORMAT - YOU - DIPSHIT 18:47:54 It has the CPU exactly right. 18:47:56 Gregor: oh. 18:48:17 Obviously it figures out the final format, or it wouldn't even run >_< 18:48:18 what a strange .o format though 18:48:34 Gregor, is that .o actually not an executable binary? 18:48:41 O_O 18:48:47 OK, I give up on you people. 18:49:53 lol 18:49:59 Gregor: at least I give up after one try 18:50:06 Vorpal just asks without reading first 18:50:49 Long story short: Open Watcom is the screwiest compiler you can get to run on a modern system without too much difficulty :P 18:50:53 Gregor, I meant as in "did you try it"? 18:51:27 Vorpal: Are you kidding me? Even if "relocatable" didn't mean "relocatable object file", my kernel wouldn't know how to load it. 18:51:33 Gregor, BECAUSE it seems so absurd to make the object file format use the flags in the ELF headers so it looks like an executable 18:51:50 ... 18:51:52 * Gregor gives up. 18:52:08 well. It is a damn strange object file, that is my point 18:52:30 That was my point, but you seem to think it's substantially more strange than it is :P 18:53:16 .... ARRRRRRRRRRGH 18:53:18 Just read the logs. 18:53:23 One of my lines didn't go through :P 18:53:29 Gregor: That _was_ teh point? 18:53:36 Gregor, which line? 18:53:36 OK, I didn't realise it wasn't actually the output binary. 18:53:50 elliott: I didn't get that with the [lolsymbol]s :P 18:54:08 $ file interp.o 18:54:08 interp.o: 8086 relocatable (Microsoft) 18:54:12 Gregor, oh 18:54:19 Gregor, okay *that* explains everything 18:54:28 I wonder why that line got lost 18:54:31 My apologies for Freenode going "haw I'mma eat that line now" 18:54:34 [dollar] file foo.o 18:54:34 [dollar] file a.out 18:54:45 elliott: I didn't get that with the [lolsymbol]s :P 18:54:48 ah 18:55:09 let's talk entirely by quoting each other 8D 18:55:30 I'm secretly gay for Vorpal. 18:55:34 another line dropped by freenode 18:56:11 I'm secretly straight for (female) red slime mold 18:56:27 Well, they /are/ delicious. 18:56:43 Gregor, iirc they have more than two genders? 18:56:51 *sexes 18:58:21 Slime molds? 18:58:35 They reproduce asexually. 18:58:43 And that is why they are so delicious. 18:58:47 HERE I AM MAKING A NETHACK REFERENCE 18:58:51 AND EVERYONE IS ALL ASEXUALLYING ME 18:59:23 elliott: You're the one fucking slime molds. 18:59:40 Phantom_Hoover, "They begin life as amoeba-like cells. These unicellular amoebae are commonly haploid and multiply if they encounter their favorite food, bacteria. These amoebae can mate if they encounter the correct mating type and form zygotes which then grow into plasmodia. [...]" 18:59:45 I'm not sure what that counts as 19:00:14 Huh. 19:00:30 Phantom_Hoover, they reproduce asexually as well as far as I understand 19:02:21 Someone please confirm to me that seahorses can in fact impregnate themselves. 19:03:45 slime molds are so cool 19:03:52 macroscopic, but single-cell 19:05:39 http://www.youtube.com/watch?v=x2CA0UE6yRQ ;; downright pornographic to Gregor 19:09:37 I like the patriotism. 19:12:15 -!- variable has joined. 19:14:52 -!- Wamanuz2 has joined. 19:15:02 -!- Wamanuz has quit (Ping timeout: 258 seconds). 19:16:07 -!- ais523 has joined. 19:24:14 -!- asiekierka has quit (Remote host closed the connection). 19:29:31 is there any easy way to convert a wavelength in the spectrum (at a given intensity) to a value in sRGB (or the closest approximation if it falls outside sRGB) 19:29:57 it doesn't have to be perfect, it only has to be good enough to look reasonable 19:30:36 that sounds like a hard problem tm 19:30:50 elliott, hm I suspected that 19:32:33 elliott, one way would be to use an image of a spectrum as a lookup table. And for the use I have in mind, the intensity can be fixed in advance 19:32:42 you'd think there'd be a table somewhere 19:33:15 (and interpolate in between values in your lookup table) 19:34:13 oh google seems to indicate you can do it as a matrix multiplication 19:34:22 if you have it in XYZ 19:34:24 gah 19:34:46 doesn't explain how you go from wavelength to xyz 19:36:31 -!- Slereah has quit. 19:37:11 -!- ais523_ has joined. 19:37:52 xyz? 19:38:13 Phantom_Hoover, CIE XYZ colour space yes 19:38:55 anyway found an article on it 19:38:58 CABAL WHY ARE YOU SO BAD 19:38:59 looks rather complicated 19:39:08 Vorpal: why is cabal so bad? 19:39:14 how should I know... 19:39:15 Vorpal: So basically it only explains an algorithm for CIE XYZ to sRGB, which has nothing to do with wavelength to anything :P 19:39:34 Vorpal: also, i have finally figured out what your nick means. it's a mutilation of Voralp, which is the general area where bavaria is located. 19:39:37 -!- ais523 has quit (Ping timeout: 250 seconds). 19:39:40 elliott, except wavelength -> XYZ seems to be the first step 19:39:47 elliott, I found an article that explains the full thing 19:39:59 xyz = wavelength_to_xyz(wl); // implementation left as an exercise to the reader 19:40:10 elliott, the first article was like that yes 19:40:39 Vorpal: what ever you're doing with color, you'll probably need color space compression 19:40:42 which is non-trivial 19:40:43 anyway, I'm not sure I require the full thing. For what I wanted this seems like WAAAY overkill 19:41:08 Says the author of cfunge. 19:41:11 http://en.wikipedia.org/wiki/CIE_1931_color_space#Color_matching_functions 19:42:01 elliott, All I wanted was to use the natural spectrum to colourise datapoints in a graph. It seemed like a good one. More detail than just a red-yellow-green scale or such 19:42:19 elliott, so yeah, the full blown thing seems like way overkill 19:42:19 Overkill is the best kind of kill 19:42:21 Vorpal, you can only inject wavelength into a spectrum. 19:42:22 Apart from murder. 19:42:32 elliott, I think you mean "there is no kill like overkill"? 19:42:40 you realise that almost _all_ natural spectral colors are outside of rgb, right? :D 19:42:41 (tvtropes made that up, not me) 19:42:41 I mean what I say. 19:43:07 Phantom_Hoover, hm yes? I know it doesn't give intensity 19:43:34 I saw "color matching function" and thought "who's on my TURF?" 19:43:42 oerjan, as long as it looks plausible. Doesn't have to be fully accurate. 19:44:03 oerjan, but good enough that you would say "oh, that looks like a spectrum" 19:44:25 mhm 19:47:39 -!- ais523_ has changed nick to ais523. 19:48:35 elliott, anyway, it seems quite straightforward (though tedious): http://www.fourmilab.ch/documents/specrend/ 19:48:55 IS THERE ANYTHING THAT JOHN WALKER HASN'T GOT HIS GRUBBY MITTS IN 19:49:08 elliott, who is he? 19:49:17 Original author of AutoCAD, owner of a way too big website. 19:49:37 Vorpal: HotBits, for one. 19:49:42 As well as SO MUCH OTHER SHIT 19:49:42 elliott, you mean http://www.fourmilab.ch/ ? Yeah it seems rather comprehensive. 19:49:47 elliott, HotBits? 19:49:55 X_X 19:49:56 JFGI 19:50:32 elliott, oh, a random number service 19:50:33 right 19:50:37 -!- Slereah has joined. 19:50:54 Vorpal: More relevantly, the first true RNG on the internet. 19:50:57 Except maybe that lava lamp-based one. 19:51:03 LavaRnd. 19:51:07 elliott, heh 19:51:08 LavaRnd is only two thousand. 19:51:13 Yeah, hotbits is the oldes. 19:51:14 t. 19:51:21 Nineteen ninety six. 19:51:48 * Gregor continues to lol at the numberlessness. 19:51:54 I'm surprised you didn't type one99six 19:52:27 I must stay ELEGANT. 19:52:35 Like BEFORE THEY INVENTED DIGITS 19:52:47 elliott, hm where does lava lamps come into lavarnd? 19:53:09 JFreadthewebsite 19:53:13 I am 19:53:41 BTW: LavaRndtm does not use LAVA LITE ® lamps. LAVA LITE lamps were used in SGI classic lavarandtm. See the difference between SGI classic lavarand and our LavaRnd for details. For information on what LavaRnd does use, see the LavaRnd process in detail. 19:53:58 Theirs is bullshit because it doesn't actually use lava light. 19:54:07 [asterisk]lava lamps. 19:54:12 But http://www.lavarnd.org/news/lavadiff.html 19:54:14 lavarand does. 19:54:22 From 1997 through 2001,[2] there was a web site at http://lavarand.sgi.com/ demonstrating the technique. Landon Curt Noll, one of the originators, went on to help develop LavaRnd, which does not use lava lamps. Despite the short life of lavarand.sgi.com, it is often cited as an example of an online random number source.[3][4] 19:54:24 So yeah, HotBits. 19:54:59 what we need is clearly a random number source using actual _lava_ 19:55:06 :D 19:55:40 -!- copumpkin has changed nick to elitist. 19:56:38 elliott, anwyay, what is your opinion of John Walker? 19:56:44 Anwyay. 19:56:53 err, anyway* 19:57:01 elliott, easy to hit keys in wrong order 19:58:06 NO IT IS IMPOSSIBLE. 20:00:15 ASEY 20:01:31 elliott: gah, Have I Got News For You just put up a subtitle-like thing at the bottom of the screen saying "#HIGNFY", without elaboration 20:01:42 and it seems very likely to refer to Twitter 20:01:57 HGNNNNF 20:01:59 which means that Twitter have successively captured the # followed by letters notation in the public imagination 20:02:27 why do we use sRGB still. It is so limited. Something significantly larger should be easily possible with modern monitor technology. 20:03:10 ais523, I would assume IRC channel 20:03:30 Vorpal: without a server specified? 20:03:36 I mean, on here it'd be obvious 20:03:40 hm 20:03:45 but on a TV program, there's no reason to guess any IRC server over any other 20:03:46 ais523, yeah it's strange. 20:03:55 wait, it was a TV program? 20:04:03 yes 20:04:06 ah 20:04:09 is, in fact, it's on at the moment 20:04:10 yeah I'd be confused 20:04:16 lol at HIGNFY having an IRC channel 20:04:16 ais523, in UK yes 20:04:26 ais523, is it some news program or? 20:04:29 Yes. 20:04:32 It is totally a news program. 20:04:34 It is about the news. 20:04:37 It has people talking about the news. 20:04:48 elliott, so, meta-news? 20:04:52 that settles it, then. 20:04:55 Yes. Exactly. You have it exactly right. 20:05:00 thats all there is to say on the matter 20:05:02 XD 20:05:12 based on what you said, I googled it 20:06:22 Nytt på nytt er et norsk TV-program, og er en norsk versjon av det britiske satireprogrammet Have I Got News for You, [...] 20:06:26 as i thought 20:07:04 wow norwegian is just like a bad version of english 20:07:15 http://upload.wikimedia.org/wikipedia/commons/3/32/Nyttpaanytt.jpg 20:07:15 lol 20:07:15 hm 20:07:15 Sier du det. 20:07:16 such budget 20:07:31 i like how they only have like three scraps of newspaper there as opposed to the hundreds in HIGNFY 20:07:32 BUDGET 20:07:58 oerjan: google translate detected "sier du det" as swedish 20:08:01 apparently it means "you finance it" 20:08:09 XD 20:08:11 "Fabric of the program is delivered partly by members of the author quartet The rocking Seismologists ." 20:08:11 ok that 20:08:14 elliott, I see none: http://en.wikipedia.org/wiki/File:HIGNFY_set_empty.jpg 20:08:15 that is the best band name ever 20:08:32 `translatefromto sv en sier 20:08:34 Vorpal: They make up the letters, I think. Or, what, that looks wrong. Whatever. 20:08:36 finance 20:08:38 oerjan: THE ROCKING SEISMOLOGISTS 20:08:52 `translatefromto sv en sier <-- what 20:08:59 oerjan, "sier" is not Swedish 20:09:00 Vorpal: is that actually correctly translated? O_O 20:09:23 let me check SAOL 20:09:48 -!- elitist has changed nick to copumpkin. 20:09:56 -!- crystal-cola has quit (Quit: leaving). 20:10:09 oerjan, nope, not in SAOL 20:10:30 oerjan, what language is it really? 20:11:31 `translate no en sier 20:11:33 no one says 20:11:47 "no en sier" => "no one says" 20:11:55 Try dat again :P 20:12:00 `translatefromto no en sier 20:12:02 says 20:12:06 "no en sier" => "no one says" 20:12:10 Oh man I was wondering wtf was going on X-D 20:12:15 `translatefrom no sier 20:12:16 No output. 20:12:20 Gah why didn't I add translatefrom. 20:12:21 Or was that not me. 20:12:27 `file bin/translatefrom 20:12:28 bin/translatefrom: ERROR: cannot open `bin/translatefrom' (No such file or directory) 20:12:36 APNIC (IPv6 1x/32): /32 to Australia. 20:12:37 oerjan, for Swedish "says" would be "säger" 20:13:21 also the "rocking" there has nothing to do with rocks, it means the movement 20:14:05 oerjan: I don't care. Best name. 20:14:07 oerjan, so it has nothing to do with music either? 20:14:13 nope 20:14:14 oerjan: What's a better translation of the name? 20:14:39 Because, you know, The Rocking Seismologists is the best band name in English, maybe it's boring in Norwegian. 20:15:00 Shaking maybe 20:15:10 except neither is quite precise 20:15:21 oerjan, what is the Norwegian word? 20:15:28 The Shivering Seismologists? 20:15:29 Gyngende 20:15:35 oh, right 20:15:41 is it like shaking in fear 20:15:41 coppro: there are opinion polls coming out on the alternative vote vote here in the UK; they seem to be massively in favour of first-past-the-post, unfortunately 20:15:45 no that's even worse 20:15:54 ais523: the FUD is in full swing 20:15:58 elliott, no, "rocking" as in a rocking boat would 20:16:06 at least, that's what all the journalists are saying; they aren't giving the actual results, though 20:16:09 at least gunga in Swedish has that meaning 20:16:37 yeah that's it, it's just rocking has the music connotation which gyngende doesn't 20:16:38 elliott: indeed 20:16:51 ais523, so... people don't want the voting system to change? 20:16:52 wtf 20:16:55 ais523: fuck 20:16:58 How on earth is that "wtf" 20:17:11 Most people don't have a problem with it, and it's easy to FUD 20:17:15 hm 20:17:17 okay 20:17:26 Imagine AV being proposed in the US :P 20:17:26 coppro: the real problem is that the Liberal Democrats really want STV, rather than AV 20:17:31 ais523: I know 20:17:34 elliott, HIGNFY is on, and they have a Tory MP who's FUDing. 20:17:36 but they should just take AV 20:17:37 elliott, AV? Audio Video? 20:17:38 BUDGET <-- strangely it is one of norway's most popular tv shows, but of course that doesn't mean they need to waste money... 20:17:39 and so they aren't trying too hard to push it 20:17:41 and campaign hard for it 20:17:44 Phantom_Hoover: BUT THEY HAVE A TWITTER HASH MARK 20:17:44 Phantom_Hoover: you're watching it too? 20:17:47 if they don't get AV they won't get STV 20:17:48 coppro: everybody hates the lib dems 20:17:51 I'm not watching it deliberately, but someone else in the room is 20:17:52 coppro: they should probably just shut up 20:17:53 and it's not that bad 20:18:00 ais523: HIGNFY is awesome. 20:18:12 oh, alt vote 20:18:12 coppro: I suspect they're going on the basis that if AV passes, they'll never be able to persuade anyone to change the voting system /again/ 20:18:13 right 20:18:19 Vorpal: it's IRV 20:18:22 coppro, what would STV be? 20:18:24 elliott, WHAT? 20:18:28 Vorpal: instant-runoff 20:18:29 = AV 20:18:29 Vorpal: single transferable 20:18:34 AV is a special case of STV where you only elect one person 20:18:38 ah 20:18:39 elliott: oh and the "fabric" is a rather bad translation of "stoff" in this case 20:18:45 ais523: yeah, but if it doesn't pass, how are they going to get to STV if people rejected AV? 20:18:45 elliott, she's saying "with AV there'll be a coalition EVERY SINGLE TIME!" 20:18:48 incremental change... 20:18:50 oerjan: fabric? 20:18:53 Phantom_Hoover: I like how that makes no sense at all. 20:19:02 coppro: they should clearly switch to my totally-untested Recursive Condorcet method 20:19:11 recursive condorcet? 20:19:14 coppro: yes. 20:19:24 describe moar so I may steal the idea and write a paper 20:19:29 elliott, huh. I thought you were a fan of stochastic? 20:19:36 Vorpal: I am, but that has even less of a chance ;D 20:19:37 http://www.theonion.com/articles/a,20076/ "... it is also fine to masturbate to the mentally challengeda reversal of previous guidelines and an affirmation that all persons may provide erotic inspiration, regardless of cognitive capacity." 20:19:42 elliott, ah 20:19:42 elliott, and then she went for "3 countries use AV, the rest use FPTP and get along fine." 20:19:47 Phantom_Hoover: WHAT 20:19:50 So much bullshit. 20:19:58 coppro: Condorcet is basically mathematically perfect apart from the fact that it sometimes fails to give a result. 20:20:06 Whereupon Hislop responded "Most of the world is starving, that's a pretty good argument for not eating." 20:20:11 coppro: So, here's the SILLY ALGORITHM: 20:20:34 coppro: Run any Condorcet method. If it gives a result, we're done. Otherwise, 20:20:43 elliott: you mean "the Condorcet method" 20:20:46 elliott: define "any" Condorcet method 20:20:53 there is only the one if you fail when it doesn't give a result 20:20:58 hmm, right 20:20:58 ^ 20:21:04 as the only difference between Condorcet-based methods is the tiebreak rules 20:21:05 Anyway 20:21:11 coppro: Run any Condorcet method. If it gives a result, we're done. Otherwise, 20:21:17 elliott: in your quote above 20:21:22 Rank every (ranking,candidate) pair by the sum of all their rankings. 20:21:24 Erm. 20:21:25 Sort every 20:21:38 As in, a candidate sorts higher than another if the sum of all the rankings given to them is greater than the other's. 20:21:50 Pick the last element of the resulting list, i.e. the least popular candidate by that criterion. 20:21:54 better is "material" 20:21:58 Say they are called "rubbish". 20:22:11 elliott: there might not be one, though 20:22:15 Replace every pair (ranking,rubbish) with (ranking,almostrubbish), where almostrubbish is the second-last element of that list. 20:22:21 ais523: you mean there could be multiple, or what? 20:22:23 coppro: Then recurse. 20:22:26 the resulting list almost certainly won't be unique, and may well not even be well-founded 20:22:32 ais523: what? 20:22:40 ais523: you're doing that stupid thing again 20:22:45 where you assume I mean the result of the Condorcet process somehow 20:22:50 when I'm just talking about the raw rankings given in the input 20:22:58 ah 20:22:59 I dun get it 20:23:02 coppro: X_X 20:23:05 What is not to get. 20:23:09 so if I mark candidates 1, 3, 5, 7, my vote has more of an influence than if I mark them 1, 2, 3, 4? 20:23:13 I like this system 20:23:22 elliott, what if there are three persons being voted for and everyone get exactly 1/3rd of the votes say? 20:23:27 ais523: What? 20:23:33 ais523: Well, OK, yes, flatten everything before doing it. 20:23:34 you're adding together rankings, right? 20:23:36 By flatten I mean linearise. 20:23:48 elliott: please write out a formal description of the algorithm 20:23:58 coppro: I did. 20:24:04 coppro: Run any Condorcet method. If it gives a result, we're done. Otherwise, 20:24:05 Rank every (ranking,candidate) pair by the sum of all their rankings. 20:24:05 Erm. 20:24:05 Sort every 20:24:05 As in, a candidate sorts higher than another if the sum of all the rankings given to them is greater than the other's. 20:24:06 Pick the last element of the resulting list, i.e. the least popular candidate by that criterion. 20:24:08 Say they are called "rubbish". 20:24:10 Replace every pair (ranking,rubbish) with (ranking,almostrubbish), where almostrubbish is the second-last element of that list. 20:24:12 that is not a formal 20:24:13 one 20:24:14 then repeat the algorithm 20:24:23 Vorpal: yes it is, it's just not pseudocode 20:24:24 Isn't instant-runoff voting Condorcett-compatible plus fairly practical? 20:24:29 elliott, hm 20:24:31 Gregor: One t. 20:24:34 And no. 20:24:37 IRV is not Condorcet. 20:24:45 elliott, still: elliott, what if there are three persons being voted for and everyone get exactly 1/3rd of the votes say? 20:25:17 Vorpal: Then the result of the algorithm is undefined because that never fucking happens. 20:25:24 A more reasonable objection is that two people get only one vote each or whatever. 20:25:37 In which case you just need to pick one to reassign arbitrarily, it doesn't really matter at all. 20:25:42 coppro: Argh, my description is wrong. 20:25:43 OK, wait. 20:25:47 coppro: Run the Condorcet method. 20:26:00 Ok 20:26:04 elliott, hm. So it doesn't always give results 20:26:06 If it fails, then find the least-liked candidate X (where liked is determined by summing with the orders of the rankings, like I explained). 20:26:07 I now failed to produce a result 20:26:19 coppro: Then, 20:26:21 What do you mean "summing with the orders of the rankings" 20:26:24 ARGH 20:26:28 I EXPLAINED THAT PERFECTLY LAST TIME 20:26:33 No you didn't 20:26:43 GIVEN A CANDIDATE C, CONSIDER ALL VOTES (R,C) 20:26:46 SUM ALL THE RS OF THESE VOTES 20:26:50 THEN SORT ALL CANDIDATES BY THAT SUM 20:26:54 ah ok 20:26:59 coppro: OK. 20:27:04 coppro: Now, consider every ballot that has a vote for X. 20:27:22 coppro: Then look at their preference one higher. 20:27:29 (If it is their top vote, consider their second instead. TOTAL HACK LOL) 20:27:50 coppro: Say the one higher preference is (RA,Y) and the preference for X is (RB,X). 20:28:01 Reassign the (RB,X) pair to be (RA,X) (yes, causing a duplicate ranking). 20:28:07 Once this is done for all candidates that voted for X, re-run the algorithm. 20:28:13 eww 20:28:14 'When one of the first two interpretations is used, the method can be restated as: "Disregard the weakest pairwise defeat until one candidate is unbeaten."' <-- this is minimax, but I thought it was instant-runoff ... now I'm not sure what the distinction is, but this is what I was thinking of. 20:28:35 coppro: Apart from the hack that I noted, it's a pretty good algorithm :P 20:28:55 coppro: It basically says "if Condorcet doesn't give a result, reassign all votes for the least-liked candidate". 20:29:22 Oh right, instant-runoff is just straight-up voting amongst the #1s, then remove the worst #1 and repeat. 20:29:27 Yeah, that's totes different, loller. 20:34:09 hm you can do a completely fair system easily if you don't care about parties or the geographical location of the voters. Just make the whole country one riding. Then tally the votes. Sort candidates by number of votes. Give the most favoured person a place in the parliament and remove him/her from the list. Repeat until the parliament is full. 20:34:46 the same work for parties if you don't consider individual candidates 20:34:49 Vorpal: no, that's not fair 20:34:55 Vorpal: strategic voting abounds 20:35:30 coppro, oh? If there are no parties it works fine, no? 20:35:51 Vorpal: no 20:35:54 coppro, why 20:36:08 what if there is a candidate who I think will be on the edge of getting in 20:36:17 who I don't like 20:36:23 my favored candidate is nearly certain to win 20:36:26 who do I vote for? 20:36:49 do I vote for my preferred candidate or try to keep the other guy out of the legislative body? 20:36:50 well, your favorite candidate surely? If there are just those two that you gave 20:37:05 coppro, how would you do the latter 20:37:15 -!- Mathnerd314 has joined. 20:37:24 Vorpal: by voting someone else to lower the ranking of the guy I hate 20:38:15 coppro, there is a large risk that won't work though 20:38:56 -!- aloril has quit (Ping timeout: 240 seconds). 20:39:08 Vorpal: so? I lose nothing by doing it 20:39:23 any voting system where my optimal move is not to vote for my preferred candidate is broken 20:39:26 coppro, you would if enough people think like you 20:39:47 coppro, what if nearly everyone who favours that candidate you favored do the same 20:39:57 any voting system where my optimal move is not to vote for my preferred candidate is broken 20:40:00 i.e. ANY VOTING SYSTEM 20:40:03 but yes I see the issue 20:40:04 Apart from stochastic. 20:40:16 Apart from Condorcet, which breaks that as soon as you introduce tiebreakers :P 20:40:24 elliott, actually straight up "who get the most votes" work if you are electing a single person 20:40:27 no? 20:40:30 Vorpal: ... 20:40:42 Vorpal: That is so egregiously wrong that I can't even think of anything to say. 20:40:48 elliott: Some voting systems are less broken than others 20:41:02 coppro: Four votes good, two votes bad. 20:41:07 elliott, okay, so what about presidential elections, what is a fair voting system there? 20:41:19 Vorpal: I'm sorry, but if you'll excuse me, I am busy gawping. 20:41:24 It is an intensive process. 20:41:26 Vorpal: see Arrow's Theorem 20:45:51 hm 20:51:57 -!- aloril has joined. 20:53:35 hmm, can mmap be used to align allocations to four bytes? 20:55:13 elliott, anonymous mapping? 20:55:17 Yes. 20:55:24 elliott, I think it will be aligned to a page in memory 20:55:31 Right. Which is annoying, because these allocations will be small. 20:55:33 not sure if that is guaranteed 20:55:38 Gigantic heap allocation with copying GC it is. 20:56:04 "mark-and-don't-sweep" Best GC style ever. 20:56:25 elliott, building a freelist? 20:56:35 elliott, doesn't glibc malloc() align to 8 bytes? 20:56:40 A mark and don't sweep garbage collector, like the mark-and-sweep, maintains a bit with each object to record whether it is white or black; the gray set is either maintained as a separate list (such as the process stack) or using another bit. There are two key differences here. First, black and white mean different things than they do in the mark and sweep collector. In a "mark and don't sweep" system, all reachable objects are always black. An o 20:56:40 bject is marked black at the time it is allocated, and it will stay black even if it becomes unreachable. A white object is unused memory and may be allocated. Second, the interpretation of the black/white bit can change. Initially, the black/white bit may have the sense of (0=white, 1=black). If an allocation operation ever fails to find any available (white) memory, that means all objects are marked used (black). The sense of the black/white bi 20:56:40 t is then inverted (for example, 0=black, 1=white). Everything becomes white. This momentarily breaks the invariant that reachable objects are black, but a full marking phase follows immediately, to mark them black again. Once this is done, all unreachable memory is white. No "sweep" phase is necessary. 20:56:44 of course it has a few bytes of overhead 20:56:44 elliott, doesn't glibc malloc() align to 8 bytes? 20:56:46 Not gonna rely on that. 20:56:50 I need the bottom three bits to be zero. 20:56:56 Erm. 20:56:58 So I need to align to eight, actually. 20:57:06 elliott, posix_memalign, 20:58:15 Vorpal: gross 20:58:26 Maintaining my own heap == ten times the fun. 20:58:41 elliott, why is memalign so gross? 20:58:54 Modern POSIX gross. 20:58:59 And it's in the fucking "ADVANCED REALTIME" section. 20:59:07 "The posix_memalign() function is part of the Advisory Information option and need not be provided on all implementations." 21:00:54 "Such a tangled web. It is a web full of flaming irons and mixed metaphors." 21:00:58 elliott, valloc, it has the most complicated description in the man page of what defines make the prototype visible 21:01:20 _BSD_SOURCE || 21:01:20 (_XOPEN_SOURCE >= 500 || 21:01:20 _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) && 21:01:20 !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) 21:01:24 to be exact 21:02:58 (it is deprecated) 21:09:41 enum tag { 21:09:41 T_PAIR = 1 << 0, 21:09:41 T_SYMBOL = 1 << 1, 21:09:41 T_INTEGER = 1 < 2 21:09:41 }; 21:09:47 spot the mistake that gave me a "duplicate case" error 21:10:26 mmm nice going there 21:10:31 I'm clever. 21:10:33 Very clever. 21:10:41 less than clever 21:11:00 Every time I've needed aligned memory I've done it with mmap of double then munmap twice :P 21:11:52 Gregor: Wat X-D 21:11:55 Gregor: How does that even make any sense. 21:12:00 elliott, oh, so writing another lisp? 21:12:07 Vorpal: Just porting Zepto from Python to C. 21:12:15 elliott, zepto is? 21:12:16 It is a stupidly simple language, so this will not be difficult. 21:12:19 Vorpal: The BEST LISP. 21:12:23 ah 21:12:27 elliott: If you mmap (size you need + alignment) you're guaranteed to have the aligned area within the allocated space. 21:12:44 Since every situation I've ended up needing this has involved alignment to the size I need, I just allocate double. 21:13:01 Gregor, why munmap at all? 21:13:06 why not malloc 21:13:35 Oh, allocate double... Hmm. 21:13:38 ................. munmap can unmap a partial range, free can't ................ also wtf, malloc() for huge spaces = retarded. 21:13:43 Gregor: Does that even make sense though??? 21:13:48 elliott: Yes? 21:13:48 I didn't realise you could violate page-alignment like that. 21:13:59 That seems to Defeat the Point. 21:14:06 elliott: I never use it to violate page alignment, size-I-need is always a power of 2. 21:14:08 Gregor, anyway, mmap will only allocate on a previously unused page 21:14:14 Vorpal: ... so? 21:14:24 Gregor: Maybe I am misunderstanding page alignment. 21:14:26 Gregor, so if your allocation is less than a page large it is rather wasteful 21:14:31 Won't that be stupidly fragmented for shitloads of small allocations? 21:14:48 This is what I use when I need /HUGE/ spaces. 21:14:51 e.g. GC pools :P 21:14:53 elliott, it would be absurdly stupid for your case 21:15:30 Gregor: Right :P 21:15:57 Hmm, yay, I think I can do a copying GC without going over every object twice, but it involves maintaining a huge stack :P 21:16:01 Which will overflow C's. 21:16:02 Laame. 21:16:45 Gregor, why would you ever need alignment when doing huge stuff that doesn't start at a page boundary? 21:16:52 or that starts at something larger than a page boundary 21:17:55 Vorpal: Because I want the beginning to have all the lower bits be zero. 21:17:59 So I can always get to the beginning with a mask. 21:18:09 ah 21:18:13 This == supafast GC pools. 21:18:27 Gregor: Not as supafast as the Zepto Silly Allocation SystemXXX 21:18:29 ZSAS 21:18:34 I should make it ZEST somehow. 21:18:41 Zepto Egregiously Silly Tallocationsystem. 21:18:42 how zilly 21:19:04 zepto zeriouzly zilly zallocationzyztem 21:19:16 The non-native-English-speaker-professors are considering renaming the lab I'm in from SSS (Secure Software Systems (???)) to The CLAP (Compilers and Languages At Purdue) 21:19:48 X-D 21:20:22 Compiler-Understanding Native Teleologists 21:21:37 Gregor, why 21:21:50 Vorpal: Because we have nothing whatsoever to do with security. 21:21:52 Because the current name is creeper. 21:21:57 Vorpal: The expansion is a much better name :P 21:22:09 CALP 21:22:11 Gregor: Call it the CALAP in protest. 21:22:12 Gregor, then why specifically non-native speakers? 21:22:14 Phantom_Hoover: X-D 21:22:17 Secure CALP. 21:22:21 SCALP. 21:22:23 Vorpal: 21:22:23 Gonorrhea - Wikipedia, the free encyclopedia 21:22:24 Gonorrhea (also colloquially known as the clap) is a common sexually transmitted infection caused by the bacterium Neisseria gonorrhoeae. ... 21:22:24 incidentally the university here in town has the english name Norwegian University of Science and Technology. apparently there was a hasty reordering involved. 21:22:28 Vorpal: By not knowing the issue, you're proving my point about non-native speakers :P 21:22:38 Gregor: Might that be an Americanism :P 21:22:40 I had to google 21:22:41 elliott, you know, you can "clap your hands" 21:22:46 Vorpal: THE Clap. 21:22:47 elliott: Oh? I thought it was all Englishes. 21:22:48 Not CLAP. 21:22:49 elliott, that was what I thought of 21:22:50 The CLAP. 21:22:54 He said "The CLAP". 21:23:00 hm right 21:23:14 (also the computer nvg club had nuts.edu registered for a while) 21:23:17 Gregor: Well, I've never heard about it, but I don't really talk about gonorrhea :P 21:23:44 It's my secret shame. 21:24:08 Yes. 21:27:19 You know what sucks? Hash tables. 21:27:32 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:27:33 I AM GOING TO USE LINKED LISTS INSTEAD 21:28:32 no use a sorted array, then you can use binary search 21:28:37 elliott, I AM SORRY ARE HASH TABLES NOT THE BEST OF THE MUNDANE FETCH MODI 21:28:52 elliott, try an self-balancing binary tree? 21:29:00 elliott, an AVL tree is dead-easy to implement 21:29:23 death by AVL tree 21:29:39 -!- pikhq has joined. 21:29:45 Vorpal: Too many algorithms. 21:29:48 LINKED LISTS ARE THE BEST. 21:29:51 Vorpal, but that's not a particularly interesting fetch modus. 21:30:44 linky lists of doom 21:30:52 elliott, what? You mean, too many variants to choose from? 21:31:00 Vorpal: TOO MANY CODES. 21:31:04 elliott, go for AVL tree, it is a good general purpose one 21:31:05 ALL OF THEM 21:31:14 elliott, dude, I have done an AVL tree in C in half an hour... 21:31:18 HALF AN HOUR 21:31:20 LINKED LIST??? 21:31:22 THREE MINUTES 21:31:29 IF THAT 21:31:33 true 21:31:34 Phantom_Hoover: Yes. All the codes are required for an AVL tree. 21:31:51 ALL. THE. CODES. 21:31:59 elliott, anyway want my AVL tree implementation? It just does the basics, leave allocation and so on to the application 21:32:51 No. 21:32:53 LINKED 21:32:53 LIST 21:32:55 elliott, it has tiny overhead thus. you define a struct that starts with the tree node header struct. 21:32:59 oerjan: All of them. 21:33:04 elliott, for what? 21:33:11 Vorpal: ? 21:33:27 elliott, what are you using it for 21:33:33 Hash table. 21:33:40 WHICH I REFUSE TO IMPLEMENT WITH A HASH TABLE 21:33:53 This is Zepto, performance is irrelevant, all that matters is some sort of vaguely-defined sense of aesthetics based around being slow. 21:34:11 you... implement a hash table with a linked list? 21:34:12 XD 21:34:23 Yes. 21:35:51 http://en.wikipedia.org/wiki/File:Tsumeshogi-classic.svg I invented a ASCII notation for tsumeshogi that one on Wikipedia would use the notation: 3H.3hzh1.4C1.1L 21:35:56 Is it good? 21:36:51 (B=foot soldier, D=fragrance chariot, F=honor horse, H=silver general, J=gold general, L=angle mover, N=flying chariot, Z=king; use next letter of alphabet for promotion) 21:36:54 -!- elliott_ has joined. 21:37:11 wtf 21:37:14 Oops I made a mistake. It should be: 3H.3hzh1.4C1.1M 21:37:22 can someone ghost elliott for me 21:37:25 i can't type its password 21:37:31 -!- elliott has quit (Disconnected by services). 21:37:34 thanks 21:37:35 -!- elliott_ has changed nick to elliott. 21:37:39 -!- elliott has quit (Changing host). 21:37:40 -!- elliott has joined. 21:37:43 can someone ghost elliott for me 21:37:43 i can't type its password 21:37:48 elliott, issue: 21:37:54 who would know your password except you 21:37:57 * elliott has quit (Disconnected by services) 21:37:58 somebody, evidently 21:38:13 elliott, didn't you do it? 21:38:16 How can you your normal account without password? 21:38:26 Vorpal: how could I? I can't type my password. 21:38:32 zzo38, missing a verb? 21:38:38 zzo38: Ubuntu automatically logs in by default. also, you accidentally a verb. 21:38:39 elliott, copy and paste 21:38:47 Vorpal: from where? 21:38:52 i'm not so insecure as to store my password on disk 21:39:31 zzo38: Ubuntu automatically logs in by default. also, you accidentally a verb. i'm not so insecure as to store my password on disk 21:39:35 I'm sorry? 21:39:50 your insult is unacceptable 21:40:01 nobody else has this computer apart from me! 21:40:06 What opinion about this kind of tsumeshogi notation? Is there anything you think wrong? 21:40:34 Vorpal: what 21:40:37 -elliott- VERSION xchat 2.8.8 Ubuntu <-- look in ~/.xchat/_servlist.conf or some such file for it. ls ~/.xchat*/*serv* should find it anyway 21:40:57 don't be silly, i don't use my account password for irc 21:41:01 that would be insecure 21:41:25 elliott, who said you did 21:41:29 + [elliott] is logged in as elliott 21:41:44 yes, my client does that automatically. 21:41:57 elliott, and that is where it stores the password 21:42:06 elliott, which is the relevant password for ghosting 21:42:16 As we have already gone over, someone else ghosted it, not me. 21:42:17 Stop being silly. 21:42:19 oh wait, you meant the system password 21:42:33 elliott, shouldn't you urgently change the password then 21:43:06 Why? Because someone was kind? 21:43:22 Gregor: Oh man, interior pointers -- the best kind?? 21:43:37 i'm not so insecure as to store my password on disk 21:43:43 You are a better man than I. 21:43:44 elliott, anyway, iirc you can ghost as long as you are logged in to the account. Without using the password I mean 21:44:16 Vorpal: But elliott_ isn't linked. 21:44:21 elliott, hrrm okay 21:44:27 elliott, but actually you don't need that 21:44:29 Phantom_Hoover: That was total lies, I use my account password for IRC and everything else too. I'm just trolling Vorpal and it seems to be working brilliantly ;D 21:44:44 He didn't notice I used an exclamation mark, proving that I had an on-screen keyboard up. 21:44:46 elliott, if your client does /ns accountname password 21:44:57 elliott, you are a slightly worse man than I. 21:45:08 elliott, no I didn't consider that. *shrug* 21:45:21 Vorpal: I use the server password "fg9axm6 :elliott". 21:45:38 -!- Zuu has quit (Ping timeout: 276 seconds). 21:46:12 elliott, I'm not going to test :P 21:46:45 I trust you. 21:46:56 elliott, and the rest of the channel? 21:47:05 We are all nice people here. 21:47:15 Except for sshc, but he is GONE FOREVER. 21:47:40 elliott, and the logs are public 21:47:54 Who knows of them but us? 21:48:10 anyway I know you are not idiotic enough to post your true password 21:49:43 Gregor appears NONPLUSSED about INTERIOR POINTERS. 21:51:19 http://software-lab.de/doc64/structures I love how unreadable this is. 21:51:46 Oh, I see how it's done. Maybe. 21:52:19 It's still an interior pointer though FFFUUUUU 21:52:21 I wonder how they handle it. 21:54:16 http://software-lab.de/doc64/structures I love how unreadable this is. <-- err, what is it for? 21:54:24 Internal structures of PicoLisp that I am copying BUT BETTER. 21:55:13 aha 21:56:23 The problem being that NIL has to point to (NIL . NIL), so I have no idea how I can avoid interior pointers. 21:57:58 Interior pointers make the garbage collector sad. 21:58:01 Very, very sad. 21:58:36 BUT PICOLISP DOES IT 21:59:40 Comes at a cost, of course. 21:59:41 elliott, wait, why does NIL point to (NIL . NIL)? 22:00:08 Vorpal: Because (CAR NIL) => NIL and (CDR NIL) => NIL. 22:00:23 As seen in every Lisp apart from Scheme, which does not have NIL. 22:01:13 ah 22:01:29 elliott, you could special case car and cdr code instead? 22:01:37 Ew 22:02:04 elliott, or you could special case GC handling of NIL 22:02:29 Uh 22:02:32 How would that help 22:02:47 -!- pikhq_ has joined. 22:02:56 -!- pikhq has quit (Disconnected by services). 22:02:59 -!- pikhq_ has changed nick to pikhq. 22:14:48 elliott, hm 22:14:54 elliott, why wouldn't it? 22:24:06 * Phantom_Hoover → sleep. 22:24:08 -!- Phantom_Hoover has quit (Quit: Leaving). 22:32:25 Vorpal: Why would it? 22:35:34 "You're the dum8est omniscient person I ever met." 22:35:35 -!- pikhq has quit (Quit: Lost terminal). 22:36:19 Vorpal: Well? :-P 22:39:01 -!- TeruFSX2 has joined. 22:42:25 back 22:43:21 elliott, well, you could put NIL in a special non-GCed place. Every reference of nil pointing to it 22:43:34 elliott, then any references to it will point to it 22:43:46 elliott, no need to track interior pointers inside this nil object 22:43:53 elliott, what is the issue? 22:44:17 Vorpal: What do the interior pointers have to do with NIL? 22:44:37 The problem being that NIL has to point to (NIL . NIL), so I have no idea how I can avoid interior pointers. 22:44:39 elliott, that? 22:44:41 -!- TeruFSX2 has quit (Read error: Connection reset by peer). 22:44:51 Because NIL also has to be a symbol, and symbols have names, and so the string "N I 22:44:58 "N I L" must be in there somewhere. 22:45:02 -!- TeruFSX2 has joined. 22:45:03 elliott, aha 22:45:09 elliott, you don't use an atom table? 22:45:23 -!- oerjan has quit (Quit: Good night). 22:45:27 What? 22:45:32 That has nothing to do with this. 22:46:47 hm whatever 22:47:23 -!- ais523 has quit (Remote host closed the connection). 22:53:55 Vorpal: Or does an atom table (Erlang terminology...) somehow prevent storing symbol names in symbols?? 22:54:17 -!- Sgeo has quit (Read error: Connection reset by peer). 22:54:31 a naive implementation of war is O(2^N) worst case - right? 22:54:45 * variable wants to make sure my analyses skills are not going bad 22:54:55 O(death) 22:55:00 elliott: :-| 22:55:13 elliott: war, as in the card game 22:55:21 -!- augur has quit (Remote host closed the connection). 22:56:53 elliott: am I wrong? 22:56:58 i have no idea 22:57:05 -!- TeruFSX2 has quit (Read error: Connection reset by peer). 22:57:12 but being surprised when you get punned is forbidden here :D 22:57:25 * variable smacks elliott 22:57:29 -!- augur has joined. 22:57:33 why, if oerjan was here... 22:57:41 "Phil Sophie" -- what Google Translate thinks the German word "Philsophie" is in English 22:57:57 o.O 23:03:56 -!- pikhq has joined. 23:05:49 * pikhq wonders at byuu's seeming adoration for including far too many headers... 23:06:23 * variable points pikhq to https://code.google.com/p/include-what-you-use/ 23:07:29 In essence, he makes a per-module header file which includes every single thing that anything *in the module* uses, and then each compilation unit includes that. 23:09:00 variable: looks C++-specific 23:09:09 or at least biased, because it just talks about .cc files, no .c 23:09:18 elliott: Probably C and C++. 23:09:28 It's using clang, after all. 23:09:31 pikhq: no such thing, they are completely different languages. 23:09:40 elliott: I *know that*. 23:09:47 elliott: But clang handles both C and C++. 23:09:51 since such a program has to do semantic language (are any of these objects or structures used in the including file?), 23:09:55 then the C and C++ logic must be separate 23:09:58 elliott: Hence a tool using it for lexical analysis *probably* handles both. 23:10:09 lexical analysis isn't the hard part, though :) 23:10:14 (though, of course, not necessarily) 23:10:39 by "C and C++" I suspect it means "the subset of C code that has the same semantics when used as C++ code" 23:10:43 "For instance, we only run this on C++ code, not C or Objective C." 23:10:46 I stand corrected. 23:11:06 where is that from? 23:11:13 https://code.google.com/p/include-what-you-use/wiki/InstructionsForUsers 23:11:26 right. 23:11:44 "WARNING: include-what-you-use only analyzes .cc (or .cpp) files built by make" 23:11:48 i bet they just tested it on one C file 23:11:54 and decided that counts as support 23:12:05 Actually, they never say they support c. 23:12:11 .cc is a C++ extension. 23:12:20 "A tool for use with clang to analyze #includes in C and C++ source files" 23:12:25 Also, this almost certainly would give up on bsnes's source code... 23:12:26 that's the single place they claim it supports C 23:12:28 in the tagline 23:12:29 Ah. 23:13:18 HOW DOES ONE GC WITH INTERNAL POINTERS EVER 23:13:32 Anyways. As it is, I could change a single header and cause a rebuild of the entire tree. 23:13:49 pikhq: let's be fair, that applies to every C++ program :) 23:13:52 A large amount of the rebuilding would be unnecessary. 23:14:18 elliott: Okay, true, C++ definitely makes it such that that's a common case. 23:15:00 And byuu doesn't do himself any favors by NIH'ing the STL. 23:15:47 variable: looks C++-specific ---> patch it 23:15:49 :-) 23:15:55 -!- Lymia has joined. 23:16:09 I neither have endless free time or the patience to deal with maintainers :) 23:16:22 OK, I do have endless free time, but it's taken up by all the actually interesting[one] code I'm writing. 23:16:24 [one] debatable 23:16:44 elliott: what kind of code? 23:16:49 * interesting code 23:16:54 ZEPTO 23:17:06 what is that? 23:17:06 Its progress is impeded by the fact that it's written in C and I can't produce asterisks. 23:17:13 variable: Bargain basement Lisp. 23:17:15 * pikhq isn't even kidding: bsnes is in C++ and never uses the STL. 23:17:40 HOW DOES ONE GC WITH INTERNAL POINTERS EVER // I know, right? 23:17:50 Gregor: No but seriously how do people do it. 23:17:52 IT DOES NOT MAKE SENSE TO ME. 23:18:10 Sorry, couldn't tell ya', I honestly don't know myself. 23:18:16 "Slowly" :P 23:18:32 Gregor: pikhq any thoughts on my question re war: a naive implementation of playing through the game is O(N^2) ? 23:18:37 Gregor: BUT MY ARCHITECTURE DEMANDS IT. 23:18:53 Gregor: OK technically it doesn't demand an interior pointer, just a pointer to something that has a pointer tacked on one before it. 23:19:00 variable: I don't remember (or care :P ) how that card (?) game works. 23:19:03 Which is kind of the same thing except that the interior pointer is aligned, and the tacked-on one isn't. 23:19:48 elliott: I can only guess that they don't allocate over card boundaries, and to figure out the start of an object they go to the start of a card and follow a linked list to the correct object. 23:19:56 Gregor: I don't care how the card game works per se. I just want to make sure my skills are not going insane ;-| 23:20:02 Gregor: Not even using cards bro ;D 23:20:22 I'm using the Zepto Bargain Basement Copying Collector And Heap Expander, made by Fly By Wire industries. 23:20:24 elliott: Then s/card/page/ or s/card/pool/ or s/card/whatever-your-allocation-block-thingy-is/ 23:20:40 elliott: Just use GGGGC >: ) 23:20:43 Gregor: But my pool is a jumble of bytes, I have no idea how I could go over it like that :P 23:20:56 GGGGC isn't Bargain Basement and it can't align my allocations to eight bytes. Can it? 23:20:59 elliott: Well then to support interior pointers you PROBABLY need a better pool. 23:21:10 elliott: It could be adapted to. 23:21:12 Gregor: The card "game" is essentially an algorithm performed upon two piles of cards. 23:21:15 Wait... 23:21:20 When I traverse, I know the type. 23:21:22 elliott: In fact, it does on 64-bit platforms. 23:21:26 So I know when something is a symbol. 23:21:35 So I know when something has an object pointer before it. 23:21:37 :DDDDDDDDDDDDD 23:21:41 Gregor: There is literally no nondeterminism in it outside of the initial shuffle. 23:21:45 pikhq: yeah. many (most?) game theorists will say it is not a game because there is no choice 23:21:49 for the players 23:21:49 My design is so shitty. I love it. 23:21:54 I LOVE IT. 23:22:21 Gregor: https://secure.wikimedia.org/wikipedia/en/wiki/War_(card_game) 23:22:34 * Gregor refuses to read on the grounds that no. 23:23:02 pikhq: any thoughts on the complexity ? 23:23:15 variable: I could buy O(n^2) worst-case. 23:23:48 Gregor: Sweet, if I offer type-tag casting, my whole GC and everything breaks :D 23:23:52 * variable is thinking about how to formally prove it 23:24:33 "If the order the winning cards are placed is fixed it is possible to create an infinite loop wherein neither side will win and the game will not end." 23:24:54 I was just thinking that might be possible. 23:24:57 Seems worst-case is _|_ 23:25:05 Gregor: What, the breakingness? :P 23:25:13 pikhq: o.O; lets say random placement 23:25:17 elliott: No, never-ending war (what is it good for?) 23:25:23 Gregor: see 1984 23:25:25 variable: The RNG is your enemy. Worst case is O(inf). 23:25:27 variable: "Worst case" + "random placement" = you're talkin' bullshit. 23:25:40 Gregor: Uh huh!... absolutely INFINITE AMOUNTS OF NOTHING 23:25:42 SAY IT AGAIN 23:25:49 Gregor: I didn't even think about that 23:25:52 * variable slaps self 23:26:35 I imagine, based on nothing whatsoever, that the average case is something around O(nlogn), but it could be as high as O(n^2) 23:26:57 #esoteric: where the experts come to bullshit. 23:27:09 pikhq: strictly speaking I arrived at the question seeing if I could "solve" the game without going through the complete game (given omniscience over the cards) 23:27:27 * variable wonders if that is possible at all 23:27:37 Gregor: any pointers to start thinking about it? 23:28:27 * variable has to run :-\ 23:29:45 Twitter would be a lolsy place for submissions to a programming golf tournament :P 23:30:16 Using Twitter: So faggy?????? 23:30:18 EXPERTS SAY MAYBE 23:30:35 Yeah, it's pretty terrible :P 23:30:41 * elliott immediately tracks down and follows Gregor. 23:30:44 But hey, I HAD to register to spam the Lawson video wall! 23:30:54 GOOD LUCK FINDING ME 23:31:04 http://twitter.com/#!/CaptainHats 23:31:05 This you? 23:31:08 I THINK THIS MIGHT BE YOU 23:31:09 Damn 23:31:14 You sort of said it in-channel yesterday. 23:31:21 Oh, I did? 23:31:23 Shfoot :P 23:31:28 Although presumably you were posting or planning to post on another account, since you found it necessary to give your username. 23:31:45 Which would be ridiculous if you were already posting it as CaptainHats, which would be a bad idea because that's a terrible username. 23:32:07 ITYM AWESOME USERNAME 23:32:08 And has insufficient G's. 23:32:19 EgoHats 23:32:39 And my point is I was asking how to tweet a "challenge" with an added "tweet your responses back to me", but in very few characters :P 23:33:04 Gregor: Uhh... you don't :P 23:33:09 "Hey, golf this: ..." 23:33:19 Anyone who doesn't realise to reply to you is too stupid to golf :P 23:33:46 A) The thing is, this goes up on the Lawson video wall, not straight into my hordes of non-followers, B) not golfing 23:34:05 (A) OK, so like I said, not delivering it through blah :P 23:34:09 (B) Well it should be golfing? 23:34:38 http://twitter.com/#!/lawsonwall/followers ;; everyone Gregor knows 23:34:52 Non-followers? You mean that you've got it set up so that you talk to everyone who *doesn't* follow you? 23:34:55 Win. 23:35:11 X-D 23:35:17 (A) OK, so like I said, not delivering it through blah :P // this ... this is not a sentence. 23:35:18 Suddenly, Gregor amasses the largest number of followers EVAR 23:35:37 Gregor: Your face isn't either but I don't quote it, append the comment characters used in all the worst languages, and snark at it. 23:35:51 Gregor's face // Haha, what is this, answer: it is shit 23:35:53 Whoops 23:36:14 I want to reply to your (A) 23:36:16 But I can't. 23:36:19 Because I have no idea what it says. 23:36:29 And if you don't reply, that means I'm right. 23:36:31 ANY QUESTIONS 23:36:46 Gregor: "OK, so like I said, not delivering it through [at]CaptainHats but actually not Twitter at all so aiuhfgjlksdtjhgfdsknfgjdksbvckjcd bvjcknxvb dszjiznvbckxoijfhgziyvws9 x,.v/" 23:36:50 Does that help 23:36:53 -!- FireFly has quit (Quit: swatted to death). 23:37:03 Think I hit FireFly by mistake there while I was mashing my keys. 23:37:19 elliott: I deliver it via twitter to the lawson wall (it shows things tagged properly), people respond to me via twitter. 23:37:30 fghfgkjgjgh 23:38:19 -!- zzo38 has quit (Quit: Q). 23:38:49 Everyone knows the only valid comment sequence is LALAlALALalaTHISIsACOMment{}--///*\n*/##{--}BANGSPLAT 23:39:00 Case-sensitive, of course. 23:39:05 That's how I mark all my comments. 23:39:09 i++; LALAlALALalaTHISIsACOMment{}--///*\n*/##{--}BANGSPLAT increment i by one 23:39:29 :) 23:39:48 pikhq: Terminated by TALPSGNAB}--{##/*\n*///--}{tnemMOCAsISIHTalaLALAlALAL, right? 23:40:05 Where the \n THERE is a literal newline. 23:40:18 elliott: No, no, no. 23:40:35 You have to remove the newline to get the comment variant that doesn't go to the end of the line. 23:40:52 But otherwise, you've got the idea. 23:45:00 -!- Sgeo has joined. 23:50:54 "The issue presented in this case is whether a resolution banning all 'First Amendment activities' at Los Angeles International Airport (LAX) violates the First Amendment." 23:51:10 Quote from a real Supreme Court case. 23:51:49 For obvious reasons, the court unanimously found that banning all 'First Amendment activities' was a violation of said amendment. 23:55:33 lol