00:00:44 I have more I want to say 00:01:12 Sgeo_, http://sgeo.diagonalfish.net/StapleStupdity_censored.JPG 00:01:18 What, exactly, is stupid here? 00:02:13 5000 staples, 210 in each block? 00:02:21 [I don't remember what it says, I can't read it] 00:02:33 Staples have no brain, they are inherently stupid. 00:02:44 But you can't have a while number things of 210 and have that add up to 5000 00:03:22 *whole 00:03:35 *for 00:03:48 Staples have no brain, they are inherently stupid. 00:03:48 *whole 00:03:48 *for 00:03:49 Oh, and worse is that the association between wheat and various diseases doesn't seem to have much contribution from confounders (of course, being epidemiological in nature, you can never eliminate confounders). 00:04:08 *completely eliminate 00:04:21 *for 00:04:22 *whole 00:04:25 *comlepetly 00:04:28 Sgeo_, actually, serious question. 00:04:54 You have repeatedly shown that you had an interest in mathematics when younger, but you don't evidence this any more. 00:05:31 (For example, see HRT). 00:05:45 Ilari, what are you going on about HRT for. 00:06:42 Hmm. I think partly, it was deciding that I'm not particularly likely to succeed in doing novel stuff, and partly not having ready access to infinite pen and paper, and partly constant Internet access, maybe 00:07:19 I still have some interest 00:07:33 It's just there's nothing to play with, and no suitable environment 00:07:59 Hormone Replacement Therapy is good example of how epidemiological studies can go wrong. Basically, a therapy that seemed to be benefical based on epidemiological studies. It was introduced to wide use based on that evidence. Then clinical trials were done on its effectiveness. It turned to be actually deadly. 00:08:53 -!- copumpkin has joined. 00:09:46 Ilari, an increased risk of cancer does not count as deadly. 00:09:47 Moral of the story: Even if something seems harmful in epidemiological studies doesn't mean it is actually harmful. And if something seems benefical, it might not actually be. You need clinical trials (adjusting only single variable at a time!) to see if something is benefical, harmful or neutral. 00:11:58 Oh, and also poking at the relvant biochemistry can be helpful. 00:12:35 Thus the rather impressive correlation coefficients between wheat and heart disease say nothing more than that the reasons behind the link should be investigated as there may very well be something interesting... 00:12:43 Ilari, an increased risk of cancer does not count as deadly. 00:12:44 agreed 00:13:14 Also Heart Disease and Stroke. 00:13:26 Still not "deadly". 00:13:47 And my impression is that the increased risk of cancer does not come near outweighing the definite gain in quality of life it gives. 00:14:12 And Phantom_Hoover would know! 00:14:20 OH 00:14:21 SNAPPETH 00:14:34 elliott, well, I am sourcing this from parents who are doctors. 00:14:57 Probably doctors who inject people with cancer because they're evil. 00:15:06 Confirm? Or deny? Or just confirm? 00:15:16 And even if something is clinical study, don't assume it is done well. Garbage studies that change N + 1 variables and then blame 1 for the difference are dime dozen. 00:15:35 Wow, it was predicted in 1990 that IPv4 would be exhausted circa 2011. 00:15:43 Must have seemed pretty far off... 00:15:56 Something tells me that in "Gnomeo and Juliet" (*vomits*) the title characters don't die tragically. 00:16:34 Gregor: I've seen two adverts for that so far and I just want to cry. 00:16:35 Endlessly. 00:16:41 Gregor: But oh god, I hope they do. 00:16:44 That would be amazing. 00:16:49 Gregor: Although I'm not sure I agree with "tragically". 00:16:51 Try "moronically". 00:16:58 What is this thing? 00:16:58 "Gnomeo & Juliet 00:16:58 A version of Shakespeare's play, set in the world of warring indoor and outdoor gnomes." 00:17:01 Gnomeo? 00:17:02 Phantom_Hoover: THE WORST. 00:17:07 I DO NOT GET IT 00:17:10 "Patrick Stewart as William Shakespeare" 00:17:11 WHY DID YOU AGREE 00:17:12 WHY 00:17:13 WHY 00:17:14 WHY 00:17:15 PATRICK 00:17:15 WHY 00:17:19 ;_; 00:17:25 * elliott sobs 00:18:00 "Hulk Hogan as Terrafirmenator" 00:18:01 :what: 00:18:25 Is this increased risk of cancer stuff for all hormone replacement therapy? 00:18:27 I AM CLOSE TO GOOGLING AND I DO NOT WANT TO 00:18:34 Phantom_Hoover: THEY GOT PATRICK STEWART 00:18:36 NOBODY CAN SURVIVE 00:20:06 -!- Phantom_Hoover has quit (Quit: Leaving). 00:20:06 *Main> parse pUL "foo" "(~~)" 00:20:07 Left "foo" (line 1, column 4): 00:20:07 unexpected ')' 00:20:07 expecting "~", ":", "!", "*", "a", "^", "S", "(" or end of input 00:20:07 *Main> parse pUL "foo" "(~~" 00:20:08 Left "foo" (line 1, column 4): 00:20:10 -!- Phantom__Hoover has joined. 00:20:11 unexpected end of input 00:20:13 expecting ")" 00:20:16 WHAT DO YOU WANT FROM ME 00:20:50 -!- hagb4rd has joined. 00:20:53 Well, don't expect balanced discussion of *anything* on wikipedia (some subjects are better, some worse in this regard). 00:21:15 Wikipedia isn't for discussion. 00:21:20 It's an encyclopedia. 00:21:22 00:34:48 Is this increased risk of cancer stuff for all hormone replacement therapy? ← menopausal is the only one I'm sure about. 00:21:34 Well, don't execpt balanced discussion of anything anywhere.... 00:21:41 Ilari, that is because you hold a crank position, and WP is sane through force of numbers. 00:21:59 WHY ISN'T THIS WORKING WHYYY 00:22:18 "Crowsourcing" only works if there is no systematic bias. 00:22:19 BECAUSE YOU EAT TOO MUCH WHEAT WITH HRT IN IT 00:22:28 WHeaRT. 00:23:00 What's Ilari's position? "Wheat is bad"? 00:23:04 WHY IS THIS SO BROKEN 00:23:56 What is actually healthy food to eat? What causes the current epidemics of obesity, diabetes, etc... Nobody knows. There are only some reasonable (and lots of unreasonable) suspicions... 00:24:26 The answer is films about gnomes. 00:24:28 -!- cheater00 has joined. 00:24:58 Well, it's certainly not *solely* wheat. Especially as in centuries past, wheat was a *very* large portion of the common diet in many cultures. 00:25:01 -!- Phantom__Hoover has quit (Client Quit). 00:25:13 -!- Phantom__Hoover has joined. 00:25:23 Wheat is pretty tasty. Adding a data point here. 00:25:42 Sugar's at least plausible — we certainly use much more of it than we did even, say, 50 years ago. 00:25:43 I DON'T THINK THIS ROUTER LIKES ME VERY MUCH 00:26:15 And in the US, at least, you can probably put a lot of the blame on portion sizes. 00:26:56 Also, nutrient defiencies can play pretty major roles. Modern agriculture really depletes the soil. Fertilizers only make the plants grow well, they don't add the various trace elements, so the result is food becoming weaker and weaker in nutrients. 00:27:18 http://upload.wikimedia.org/wikipedia/commons/6/6f/CountryFriedSteak.jpg This is a deep-fried steak. And yes, it is sufficiently large to count as its own plate. 00:27:34 Ilari: Though there was quite a lot of nutrient deficiency in the past as well. 00:27:38 -!- cheater- has quit (Ping timeout: 240 seconds). 00:27:57 Well, grains are poor sources of nutrients anyway. 00:28:09 http://upload.wikimedia.org/wikipedia/commons/6/6f/CountryFriedSteak.jpg This is a deep-fried steak. And yes, it is sufficiently large to count as its own plate. 00:28:11 vomit 00:28:19 elliott, DEEP FRIED PIZZA 00:28:20 Probably more than there is now. 00:28:29 elliott: Chicken fried steak is actually freaking delicious. 00:28:31 I want to try a deep-fried Mars bar at some point. :p 00:28:43 pikhq: I'm not stopping vomiting. 00:28:43 I've been eating Snickers and Milky Ways 00:29:01 Oh, and people also subjected grains to pretty heavy processing in the past (that's not done anymore)... 00:29:16 Ilari: Oh? 00:29:25 That actually improves nutrient bioavailablity a lot. 00:29:56 I thought that our processing was pretty similar to what was done in the past, modulo food industry's fondness for sticking chemicals in it for the sake of the bottom line. 00:30:16 THIS IS SO FAIL I MIGHT CRY 00:30:22 elliott: ? 00:30:26 my parsec parser 00:30:28 it doesn't work 00:30:32 :( 00:30:36 you should fix it 00:30:41 05.11.08:16:15:39 Sgeo 00:30:41 05.11.08:16:15:59 I call myself Sgeo everywhere but Freenode 00:32:41 And of course, the amounts of nutrients actually in there were much better in the past... 00:32:57 Ilari: What, exactly, processing was done previously that isn't now? 00:33:14 BEAR PROCESSING 00:33:27 on ipv6 depletion: http://www.reddit.com/r/technology/comments/feijg/no_unicast_ipv4_8s_remain_unallocated/c1fbsv8 00:33:40 * pikhq suspects that it has something to do with how a lot of the industrial food BS that's available also doesn't *taste* any good. 00:33:43 Soaking, sprouting, fermenting (etc...) 00:34:14 Could've sworn that was all rather commonly done to grain still. 00:34:19 Oh, and processed food tends to be really crap in nutrients (just see the amount of processed crap people eat). 00:34:39 "I came here to kick ass and assign IPv4 addresses, and I'm all out of IPv4 addresses." --reddit 00:34:49 Anyways, yeah, I will agree that modern agriculture sucks. 00:34:50 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds). 00:34:52 IIRC, Fermenting is commonly done to one of the grains. 00:35:27 But now that an alternative to that exists... 00:35:29 Sure, it produces a *fuckton* of food, but it produces shitty food in a manner that we *can't* keep doing. 00:35:58 Ilari: What, are they doing chemical leavening for bread instead of yeast? 00:36:32 Ilari: If so, no *wonder* store-bought white bread has such a bizarre texture. In addition to being the blandest bread ever. 00:37:09 Maybe... But leavening using yeast doesn't count as heavy processing. 00:37:27 It's fermentation. 00:37:59 And IIRC, chemical leavening is widely used... 00:39:11 who do I blame for this not working 00:39:13 i blame Ilari! 00:39:37 AFAIK, of the four main grains, only rye is difficult to bake into bread without fermenting it... 00:40:27 Hmm. Well, I don't think I've ever had rye bread anywhere *near* as terrible as the shitty white bread you get on store shelves. 00:40:53 How the hell do they get that shit so dry, anyways? And bland? I swear, hard tack is better. 00:40:57 White rye bread is new invention (and thus not widely manufactured). 00:41:06 (not even joking.) 00:42:13 hmm, maybe this is better 00:42:18 yes, it is 00:42:27 Oh, and processed food manufacturers employ scientists and I expect those companies to know what they are doing... 00:42:42 Though, hard tack isn't all that bad, really. If you don't like your teeth that much. :P 00:43:03 All the chemical preseervatives extend the shelf life for so long that it tastes bland and dry? 00:43:42 Properly baked bread goes stale very quick. 00:44:03 -!- poiuy_qwert has joined. 00:45:09 Ilari: Hard tack isn't very chemical afaic... 00:45:39 *afaik... 00:45:43 elliott: Store-shelf white bread is very chemical. 00:45:48 hARD TACK ISN'T :p 00:46:02 Hard tack is flour and water. 00:46:21 woo it works 00:46:22 kinda 00:47:32 So fast that day after it is baked it is a lot worse than the day it was baked. And the day after that it is almost inedible. Complare this to how long store-brought breads last... 00:48:23 Aaand after that, well, there's a reason we've got croutons, fried bread, bread pudding, etc. 00:50:58 Of course, making one eat lots of food involves screwing up or bypassing normal metabolic controls... And that's not a good thing.... 00:51:12 It's the BEST thing! 00:53:19 http://codu.org/tmp/zee5ghosts.ogg Opinions? 00:53:43 insufficiently superturing 00:53:46 wil llisten later :P 00:53:48 *will listen 00:54:13 Opinions are not restricted to elliott :P 00:54:13 -!- augur has quit (Remote host closed the connection). 00:54:18 YES THEY ARE 00:54:28 Gregor: I can only conclude that you should learn every instrument, and never have to use synths again. 00:54:41 pikhq: I can't even snap. 00:55:08 I can only conclude that you need to be filthy rich, and thereby become the patron of an orchestra. 00:55:41 I'm not sure it counts as a patron if I force them to play only my shit :P 00:56:40 Dictator. 00:56:53 Okay, it probably doesn't count as a patron. 00:57:11 Clearly you should be supreme overlord of all. 00:57:37 I could work with that. 01:00:10 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:05:12 IPv4 RIR status (according to inetcore depletion counter): ARIN at 4%, APNIC at 7%, RIPE at 10%, LACNIC at 25%, AFRINIC at 53%. 01:09:16 -!- augur has joined. 01:09:48 -!- Tritonio has quit (Quit: Leaving). 01:10:02 According to latest unallocated file, there are 442 414 552 IPv4 addresses unallocated. 01:12:44 Taking set-aside policies into account, there are about 382 645 720... 01:13:13 -!- zzo38 has joined. 01:16:16 If you are playing a chess variant, where the queen cannot capture (or give check/mate) but stops all adjacent pieces (of any color) from capturing. If your opponent has only one king and nothing else, you have one king and some queens, how many queens do you need to win? 01:16:19 :t index 01:16:20 forall a. (Ix a) => (a, a) -> a -> Int 01:16:39 :t indexOf 01:16:40 Not in scope: `indexOf' 01:16:44 @hoogle [a] -> a -> Int 01:16:45 Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int 01:16:45 Data.List elemIndices :: Eq a => a -> [a] -> [Int] 01:16:45 Network.BufferType buf_concat :: BufferOp a -> [a] -> a 01:16:59 That isn't a very good answer! 01:17:01 > nub "aabc" 01:17:02 "abc" 01:17:04 zzo38: sry 01:18:04 "I am pleased to learn that to you she is nothing but a platonic solid." 01:18:07 http://fiveminute.net/ds9/fiver.php?ep=thesearch2 01:19:49 Meh 01:19:59 It's hard to parody good fiction, I guess 01:21:33 :t elem 01:21:34 forall a. (Eq a) => a -> [a] -> Bool 01:25:59 ooh, this is _tricky_ 01:27:59 -!- Mathnerd314 has joined. 01:28:45 grr, too tricky 01:28:50 oh wait maybe i can 01:28:50 hmm 01:28:51 no 01:33:09 -!- augur has quit (Remote host closed the connection). 01:37:44 pikhq: http://sprunge.us/LPYO 01:37:54 pikhq: I think using ints as my references is hampering this code's elegance somewhat. :p 01:38:23 Argh, and my parse accepts ( because of my Invalid rule... 01:39:27 ^ul (")S 01:39:27 " 01:39:37 fizzie: Your Underload interpreter is non-compliant. 01:40:16 Other people get annoyed that my programs follow the RFC. 01:40:43 What do you mean? 01:40:54 What do they get annoyed about? 01:41:54 Most IRC servers and IRC clients do not even follow the specifications correctly. 01:42:12 why do they get annoyed? 01:42:22 ais523-logreading: btw my compiler now supports "[, "], "<, ">, and "", making it the first compliant Underload parser ever... I'll probably remove it due to it being a pain, though :P 01:42:53 elliott: Can you make it a command-line switch then? Instead of just putting it in and then removing it. 01:43:10 zzo38: Well, not even the reference interpreter supports that, so I think it is not part of the language. 01:47:25 The other way is write programs that do not use []<>" and then it doesn't matter. 01:47:32 pikhq: finish my program! 01:47:39 zzo38: I don't think any existing program does actually 01:48:09 elliott: Then it is good, because it doesn't matter. If some programs do have to, the implementations or the documentations (or both) can be adjusted. 01:48:29 The "official" spec (the wiki page) says it's arguably not part of the language anyway. 01:48:31 :p 01:50:41 http://esoteric.voxelperfect.net/svn/esofiles/underload/impl/stringie.c wow this must be slow 02:00:16 -!- zzo38 has quit (Remote host closed the connection). 02:04:09 -!- augur has joined. 02:05:38 oh *joy* it is broked 02:05:43 yes, that's right 02:05:44 broked 02:05:47 think that's not a word? well fuck you. 02:06:25 oh 02:06:26 duh 02:06:45 wait what 02:06:47 oh 02:06:48 shit... 02:07:18 -!- poiuy_qwert has quit (Ping timeout: 255 seconds). 02:07:43 -!- poiuy_qwert has joined. 02:12:51 it's not a word. you meant borked. 02:13:41 elliott, do you have a shell script for sprunge so you don't have to write out the whole curl -F everytime you want to sprunge? 02:13:53 nope, I just write it out ... but it's easy enough to do 02:13:59 alias sprunge="curl -F 'sprunge=<-' sprunge.us" 02:14:02 then 'sprunge thx imma do that 02:14:53 but 02:15:11 elliott: Hammer: apply directly to the forhead. 02:15:15 s/for/fore/ 02:15:16 pikhq: wat 02:15:20 call it spr instead :P 02:15:25 quintopia: no, call it sprunge 02:15:37 quintopia: or "pb" if you must 02:15:40 (PasteBin) 02:15:44 or even paste 02:15:53 okay 02:15:57 paste is a POSIX util. 02:16:08 is pb anything? 02:16:22 No, but now you need j. 02:16:25 pb&j 02:16:32 lead and j..? 02:16:37 pb is a daemon necessary for j to operate 02:16:47 i disarghree 02:17:16 quintopia: But then pb&j is a valid command ... 02:17:16 because 02:17:22 biscuit&j also works fine 02:17:34 pikhq: Paste is a rather useless posix util. :p 02:19:56 elliott: is zeotrope known as anything else? 02:20:09 Not AFAIK, why? 02:21:40 oh, i just have a copy of a portion of logs i made for zzo back when you were alise, and zeotrope was in it, and i was like "i haven't seen that one in a while" 02:25:40 My step-mother's here 02:25:46 I locked myself in my room 02:26:04 oh hello 02:35:40 -!- DH____ has joined. 02:37:36 quintopia: haha 02:37:54 quintopia: get the hg logs, they're the NEW THING 02:38:04 OMG SONiVOX HAS THE BEST EFFING ACCORDION EVER 02:38:44 gregor: what about the bongos 02:39:30 Those would be in percussion somewhere, and I'm not willing to look for them :P 02:40:36 -!- DH____ has quit (Quit: Trillian (http://www.ceruleanstudios.com). 02:46:09 BEST 02:46:11 ACCORDION 02:46:12 EVER 02:46:28 I've used VSTi accordions. THEY CAN SUCK IT 02:46:36 prove it 02:46:42 write a piece for accordion only 02:48:52 bongoccordians 02:48:52 MAYBE I WILL 02:49:09 SYMPHONY FOR 15 ACCORDIONS 02:49:16 and 1 bongo 02:50:06 -!- Slereah has quit (Ping timeout: 250 seconds). 02:51:39 no1 02:51:40 *no 02:51:42 15 accordians 02:51:43 and 15 bongos 02:56:58 -!- Slereah has joined. 02:57:24 The Infinite Bongos Project 02:57:57 -!- cal153 has quit (Ping timeout: 276 seconds). 03:01:20 -!- amca has quit (Quit: Farewell). 03:05:56 21:42:09 Yeah, Javascript is bad ... 03:05:58 Gregor: ^ 03:06:00 (circa 2005) 03:06:11 While talking about Firefox 1.5 :lol2005: 03:06:14 -!- pikhq_ has joined. 03:06:23 Quite probably JavaScript was bad in FF1.5 03:06:44 -!- pikhq has quit (Ping timeout: 260 seconds). 03:06:55 Gregor: Actually it was in response to someone yaying at the fact that Firefox 2.0 would support Python scripting (???). 03:07:00 SO THAT WAS A COMMENT ON THE LANGUAGE AND YOU CAN'T AVOID IT 03:07:26 A) It could have been sarcastic, B) that was five years ago, C) I've never liked Python, so see (A) 03:08:33 (Five to six) 03:08:57 It waaasn't sarcaaaastic~~~~~~~~ 03:09:13 21:40:49 Ah. 03:09:13 21:40:57 Fx2 will have Python support. 03:09:14 21:41:00 Or rather, 03:09:14 21:41:03 Gecko 1.9 will. 03:09:14 21:41:22 Which means that Chatzilla will become my new IRC client. 03:09:14 21:41:29 Awesome, gonna be scripting? 03:09:16 21:41:42 http://www.codu.org/pics/3d/Trainer.jpg < Can you see the 3D phone? :P 03:09:20 21:41:51 Oh, definitely. The only thing keeping me from writing Chatzilla scripts is that it is in JAVASCRIPT. 03:09:23 21:41:53 And I hate Javascript. 03:09:25 21:42:09 Yeah, Javascript is bad ... 03:09:27 21:42:49 * Arrogant checks the mimetype of said link 03:09:29 21:42:50 ;) 03:09:31 21:42:54 Okay safe. 03:09:33 21:43:12 It's just a jpeg :P 03:09:35 Gregor takes my mocking so seriously. 03:09:37 I am but a humble logreader. 03:10:02 *eh* 03:11:52 it could be sarcastic 03:13:04 -!- hagb4rd has joined. 03:13:08 Oh maaaaaaaaan 03:13:13 You will CRINGE with the accordion awesomeness. 03:13:13 -!- pikhq_ has changed nick to pikhq. 03:13:17 :D 03:13:26 It's so good it's so bad it's so good. 03:13:43 Actually I feel that it's a little bit out of tune, and yet it sounds magnificent :P 03:14:20 *Main> test "asdaskdl^" 03:14:20 #define TYPE_0 T_QUOT 03:14:20 #define STR_0 "asdaskdl^" 03:14:20 case 0 : quo_0 : 03:14:20 ENCLOSE INVALID("sd") ENCLOSE INVALID("skdl") TAIL_INCLUDE 03:14:21 EPILOGUE 03:14:23 Wooooooooooooooo 03:14:50 Actually EPILOGUE is just "return;" :P 03:14:59 Is this ... some two-language quine in development or something? 03:15:09 Gregor: No, this is my Underload compiler reborn. 03:15:18 Ah :P 03:15:23 The first line is the GHCi prompt :P 03:15:35 Now for, uhh, all the data structures, all the operations, and all the optimisations (e.g. number handling). 03:15:36 That's the only reason I thought two-language. 03:15:36 Gregor: don't forget the bongos 03:15:46 But hey, it parses! 03:15:48 quintopia: I'm just adapting zee1 to new instruments here :P 03:15:57 (Actually, only one new instrument) 03:15:58 Gregor: MAKE HALF OF THEM BONGOS 03:16:26 This program is great, I have a constructor called FActual. 03:16:27 ^ 03:16:31 It's so factual. 03:17:03 I worry that GCing this will be a bitch... 03:17:46 Hey Gregor, how easy is it to use GREGOR'S GENERIC GENERATIONAL GARBAGE-GARGLING GORGEMEISTER GETTYSBURG-ADDRESSING GAY GAYNESS COLLECTOR. 03:17:57 (I don't actually want an answer, I just had to do that.) 03:18:18 Easy enough *shrugs* 03:18:38 Gregor: Easy enough when the language you're implementing isn't almost inherently memory-leaky :P 03:18:57 Well, technically, the actual language itself can be done without even refcounting, pop is just a free. 03:19:10 But in this impl it's basically a linked-list on acid. 03:19:25 I might want some kind of periodic "compact lists into one element" thing... 03:20:30 http://codu.org/tmp/zee1zomgccordian.ogg (Opens with awesome zomgccordion even :P ) 03:20:50 Gregor: More bongos 03:20:54 MORE FUCKING BONGOS 03:21:15 quintopia: I think Gregor might be having trouble interpreting us. 03:21:18 Ltt's try it again. 03:21:20 Gregor: MORE 03:21:22 Gregor: FUCKING 03:21:23 Gregor: BONGOS 03:21:31 OH 03:21:35 Now I get it 03:21:36 * Gregor goes to fuck a bongo. 03:21:45 THAT IS ACCEPTABLE. 03:21:58 i'll listen after color wheel 03:22:06 color wheel is the best a capella song ever 03:25:56 -!- cal153 has joined. 03:37:36 -!- jordotech has joined. 03:38:50 Why do most package managers have global locks? It's really irritating. 03:38:53 (I know Portage doesn't.) 03:40:55 Uh, Portage does have a global lock, I thought. 03:41:25 pikhq: Well, you can install two packages simultaneously. 03:41:34 Pretty sure it locks during merge. 03:41:36 I suppose the actual installing part might be locked but that's insignificant compared to downloading and compiling. 03:41:43 With apt, it won't even download if another apt is running. 03:42:10 Of course, locking during the actual merge is just reasonably sane. 03:42:39 pikhq: Furball has no locks! Hooray! 03:43:10 pikhq: (Kitten's pkg manager.) 03:44:47 pikhq: Have I mentioned that KITTEN COMES WITH GHC. (OK, OK, Kitten comes with GHC if you install my nebulous concept of a system package, which includes a window manager and an IRC client; I'm not sure why anyone would install it unless that person was me.) 03:45:18 But still. 03:45:22 Any OS that comes with GHC is PERFECT! 03:47:13 Sheesh, the things I do to please my future users, and pikhq doesn't even REACT. 03:48:00 -!- poiuy_qwert has quit (Ping timeout: 276 seconds). 03:48:33 Maybe I'll shoot him. 03:49:51 -!- azaq231 has joined. 03:50:04 -!- azaq231 has quit (Changing host). 03:50:04 -!- azaq231 has joined. 03:50:10 pikhq is dead. 03:50:13 -!- poiuy_qwert has joined. 03:50:23 -!- azaq23 has quit (Ping timeout: 240 seconds). 03:50:45 husìtu! 03:51:03 STOP TALKING MOON LANGUAGE, AMERICAN 03:51:28 ketòkètukènnkòkàsukità 03:51:32 I wonder if my IRC client architecture would actually be low-latency enough ... 03:51:58 pikhq: How fast are the FUSE filesystems to mount ssh filesystems? 03:52:34 -!- jordotech has left (?). 03:52:51 hurr i cant speek 03:52:56 elliott: Reasonably speedy, really. 03:53:07 pikhq: Speedy enough to tunnel all IRC traffic over? 03:53:22 I doubt it'd even be noticable. 03:53:56 pikhq: Consider doing "tail -f foo" and also writing to a FIFO, in an sshfs. Think the latency will be even barely noticeable vs. connecting unencrypted to a bouncer on the same server, reading the same data, and writing the same? 03:54:05 pikhq: Hmm, well, maybe tail -f foo is not such a good idea, since it is based on polling... 03:54:19 I'm sure it's possible to make a tail -f alike that doesn't poll though. 03:54:40 (it is based on polling right?) 03:57:33 HEY PIKHQ THAT WAS A QUESTION 03:57:39 I'm starting to think that maybe you're not actually Pikachu. 03:57:43 Pikachu knows all about this stuff. 03:59:56 hìka? 04:00:28 hì-kâtiȳû! 04:01:26 (it is based on polling right?) 04:01:29 Answer in Pika. 04:01:35 hìkahìka. 04:02:21 pikhq: It is possible to make a tail -f alike that does not use polling right? ANSWER IN PIKA 04:02:58 hì-hì-hì-, hì-ka'tiȳu! 04:03:29 ... 04:03:35 s/ì/į/g 04:03:40 * pikhq facepalms 04:03:48 It occurs to me that I have absolutely no idea how you would express "no" in this manner. 04:03:55 * pikhq zaps 04:05:52 Gregor: this zee song sounds like it could have been on the coraline soundtrack 04:05:52 From this, I conclude that my almost direct clone of ii is not only the perfect IRC client, but the perfect bouncer, too. 04:05:52 MWAHAHA 04:06:52 Gregor: but the accordion is awesomesauce fo sho 04:07:42 Never watched Coraline :P 04:07:50 too bad 04:07:53 good movie 04:08:03 elliott, is Season 4 entirely about the conflict with the Xyvatbaf, or will there be at least some Dominion stuff? 04:08:48 wait i don't even remember how many seasons there were >_> 04:09:04 7 04:09:08 and a zero 04:09:11 70 04:09:30 Sgeo_: i don't remember a lot of dominion stuff happening until the last couple of seasons 04:12:25 I wonder if I should use computed gotos here... 04:12:28 ...yeah. 04:25:32 -!- elliott has quit (Quit: Leaving). 04:25:54 -!- elliott has joined. 04:26:17 -!- elliott has quit (Client Quit). 04:47:06 -!- augur has quit (Remote host closed the connection). 04:50:16 -!- augur has joined. 04:54:23 -!- copumpkin has quit (Ping timeout: 240 seconds). 04:54:59 -!- copumpkin has joined. 05:24:18 Damn it Sarah McLaughlin, you make me want to strangle puppies SO MUCH 05:27:51 what's wrong with strangling puppies? 05:28:07 Touching those filthy animals with your own hands 05:28:13 i mean, it's slightly worse than strangling kittens i suppose 05:28:15 but still 05:28:18 they're just babies 05:28:23 not real dogs yet 05:28:27 You're supposed to use at least a pair of gloves 05:28:31 Yeah, adults are worth more 05:28:57 plus they come in litters of like 8 05:29:08 so what's one or two in the grand scheme? 05:30:06 -!- Mathnerd314 has quit (Remote host closed the connection). 05:30:13 The grande Scheme? 05:30:30 Dogs are Lispers, I see 05:30:31 yes 05:30:35 no 05:31:03 they aren't brilliant enough to understand LOOP 05:31:18 Well, loop is a CLism, isn't it? 05:31:24 Did Scheme even have that? 05:31:29 no 05:31:42 i consider CL LISP and scheme...scheme 05:32:14 since scheme is simpler, LISP is a scheme, but scheme is not quite a full LISP :P 05:36:24 The cat! 05:37:34 * quintopia cats Gregor 05:59:23 -!- poiuy_qwert has quit (Read error: Connection reset by peer). 06:00:57 -!- poiuy_qwert has joined. 06:12:20 -!- oerjan has joined. 06:16:26 -!- poiuy_qwert has quit (Read error: Operation timed out). 06:17:15 -!- quintopia has quit (Ping timeout: 246 seconds). 06:18:07 nice xkcd today 06:21:02 -!- poiuy_qwert has joined. 06:21:08 Anybody happen to know of a FreeDesktop-aligned menu program that can run as a system tray applet? 06:21:36 -!- poiuy_qwert has quit (Client Quit). 06:21:37 i can guess what most of the words mean, does that count? 06:21:54 -!- pikhq_ has joined. 06:22:01 -!- pikhq has quit (Ping timeout: 265 seconds). 06:23:22 -!- quintopia has joined. 06:24:35 -!- zzo38 has joined. 06:39:05 -!- asiekierka has joined. 06:44:28 -!- Zuu has quit (Read error: Connection reset by peer). 06:44:39 -!- Zuu has joined. 07:04:27 Which DSPs are good to compute and output audio and video and programs can be compiled for them using GNU compiler? 07:11:10 -!- azaq231 has quit (Quit: Leaving.). 07:21:56 -!- cheater00 has quit (Ping timeout: 240 seconds). 07:23:25 -!- augur has quit (Remote host closed the connection). 07:23:28 -!- cheater00 has joined. 07:28:55 -!- FireFly has joined. 07:29:28 zzo38! 07:29:51 zzo38 * zzo37 * zzo36 * ... 07:30:03 :P 07:30:27 how are things in zzo38land? 07:31:59 I don't suppose GCC mainline targets any DSPs at all. The only DSP arch I'm personally any familiar with is TI's TMS320C* series, and I think there is some sort of an alpha-quality unofficial GCC port for the TMS320C6x (VLIW thingies) series. 07:33:03 Even if GCC mainline doesn't, it has to be one with Free assemblers/compilers that can program the device from any computer, and it has to be able to compute and output audio and video. 07:33:31 People might be less motivated to work on the GCC port now that TI's released their compiler/assembler/linker kit with a free-as-in-beer-for-non-commercial-use license. 07:35:02 fizzie: That's no good; although maybe a new assembler can be written. 07:35:10 Also, does it do audio and video? 07:35:40 That's a matter of supporting circuitry, really. 07:36:19 It just processes signals, after all. 07:37:08 But which ones would be good at doing audio and video? 07:37:37 I vaguely seem to recall that there's some sort of open-source linux stuff for the older TMS320C54x parts; maybe even a simulator or something. But they might not be very good. (And I don't know if that thing has enough MIPS for serious video processing; I've only done audio stuff with it.) 07:38:05 Have to go to prepare a lecture now. -> 07:38:38 I need at least one channel of video output and two channels of audio output simultaneously. 07:46:14 When I said I need a GCC target for it, I was wrong. What I need is a Free assembler for it. 07:46:24 -!- augur has joined. 07:47:55 -!- myndzi has quit (Read error: Connection reset by peer). 07:48:01 -!- myndzi has joined. 07:48:51 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(!())^^!S 07:48:51 0 07:48:55 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)()^^!S 07:48:55 1 07:49:04 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S 07:49:04 9 07:49:13 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***::**)^^!S 07:49:13 ...out of stack! 07:49:17 DAMN 07:49:41 ? 07:49:55 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S 07:49:55 (~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))) 07:50:26 the carry obviously isn't working 07:54:15 110.0 07:55:02 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S 07:55:02 ((~a(; )S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))) 07:55:29 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!S 07:55:29 ((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))) 07:56:45 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!^S 07:56:45 (~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))) 07:57:04 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):((~a(; )*S:^):^~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****:*)^^!^^S 07:57:04 ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ...out of stack! 07:59:05 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S 07:59:05 9 07:59:20 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!(~aS:^):^ 07:59:20 (9)()((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^)((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))) ...out of stack! 07:59:32 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!(~a(; )*S:^):^ 07:59:32 (9); (); ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))); ...out of stack! 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:12 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*a~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^(~a(; )*S:^):^ 08:00:12 (!~:^); (9); (); ((a(:^)*():(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):^); ((~^~(~a~*~a~*)~a*^:(0)*(:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))))); ...out of stack! 08:02:16 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**::**)^^!S 08:02:16 9 08:02:21 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***::**)^^!S 08:02:21 12 08:03:12 It looks like works now. 08:03:12 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:*)(:*)::**^^^!S 08:03:13 256 08:03:22 yep! 08:06:20 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)((~(, )*S^)~a*^:^):^ 08:06:20 :(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))), ...bad insn! 08:06:34 oh 08:06:45 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~((~(, )*S^)~a*^:^):^ 08:06:46 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 ...too much output! 08:07:06 This is very good now. 08:07:24 Because it is logged, now anyone can look it up. 08:07:33 Although maybe it would be better to add it into the wiki. 08:07:38 i will 08:10:19 ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~^!S!!! 08:10:19 ...too much stack! 08:10:37 ^ul (:*):::***:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~^!S!!! 08:10:38 ...too much stack! 08:10:41 oops 08:11:18 ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^!S!!! 08:11:18 :(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))) 08:11:42 ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!! 08:11:42 1024 08:11:57 ^ul (:*)::::****:*((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!!! 08:11:58 1024 ...out of stack! 08:12:25 ok now it cleans up after itself 08:12:43 I wrote on the Talk page, about a few thing about church numbers 08:18:50 ^ul (:*)::::****:*(<-- Sample numeral (1024) to be printed)!((:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^))))))))))()!:(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^))~*^^!S!!! 08:18:51 1024 08:21:14 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net). 08:22:06 -!- cal153 has quit (Ping timeout: 276 seconds). 08:22:45 -!- comex has joined. 08:24:09 -!- FireFly has quit (Quit: swatted to death). 08:25:01 -!- cal153 has joined. 08:26:33 -!- Sgeo_ has quit (Ping timeout: 255 seconds). 08:27:12 -!- hagb4rd has quit (Quit: hagb4rd). 08:38:20 -!- hagb4rd has joined. 08:52:45 -!- oerjan has quit (Quit: Lost terminal). 09:01:54 -!- asiekierka has quit (Ping timeout: 260 seconds). 09:04:58 -!- oerjan has joined. 09:05:44 -!- Phantom_Hoover has joined. 09:06:35 ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:06:37 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time! 09:07:37 Can you do it with 1 as the starting point? 09:07:58 certainly 09:08:08 ^ul (()~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!9(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:08:09 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 13211311123113112211, 11131221133112132113212221, 3113112221232112111312211312113211, 1321132132111213122112311311222113111221131221, 11131221131211131231121113112221121321132132211331222113112211, 3113112221131112311311121321123113213 ...out of time! 09:08:44 Why do you have 456789 they will never occur in this sequence. 09:09:13 zzo38: just in case someone wanted to use those in the initial condition 09:09:28 oerjan: OK. 09:09:35 ^ul ((::**::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:09:36 9, 19, 1119, 3119, 132119, 1113122119, 311311222119, 13211321322119, 1113122113121113222119, 31131122211311123113322119, 132113213221133112132123222119, 11131221131211132221232112111312111213322119, 31131122211311123113321112131221123113111231121123222119, 132113213221133112132123123112 ...out of time! 09:09:50 * oerjan realized there was a bug in the 9 there 09:10:15 it still cannot handle consecutive strings longer than 9 though 09:10:20 But why should you use 0456789 in the initial condition? 09:10:42 Or, using a initial condition that can make 456789? 09:10:56 It doesn't seem to do. 09:11:22 zzo38: well the look-and-say iteration can work for any initial condition 09:11:35 It is possible to prove that if you start with "1" then you can never get any digits other than 1,2,3 and that "333" cannot occur. 09:11:45 yes, i know 09:11:55 * oerjan has wikipedia's look-and-say page on his watchlist 09:12:16 and in fact i discussed it in the talk page of that 09:12:35 well someone's misunderstanding of it, anyway 09:12:55 I have seen this sequence known by many different things, but to me, it is just repeating run-length encoding. 09:13:15 and in fact any starting value other than 22 gives the same asymptotic growth and frequency of substrings 09:13:42 oerjan: Can you prove that too? 09:13:44 zzo38: yeah conway just spiced it up a bit with some strange terminology 09:13:53 zzo38: well more or less 09:14:26 (The two things I have mentioned the proof of, I have even proved them myself, but surely many other people have proven them a long time ago) 09:15:05 you need the cosmological theorem to show that it splits into atoms, and then you see that all atoms other than 22 give all the 1,2,3-containing ones eventually 09:15:34 and that 4 and higher can only give a vanishingly small contribution eventually 09:17:19 iirc the trick is to check that every string starting with 1 or 3 will eventually _always_ start with 1 or 3 09:17:25 (when iterated) 09:19:56 ^ul ((::**)~^)((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(!^))~*^^S!)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:19:56 ...out of stack! 09:20:00 argh 09:20:53 oh i forgot to replace the 0 09:20:56 I should try to invent a simple card game for the purpose of demonstrating TeXnicard. It should be simple but still playable, designed for draft format, uses most features of TeXnicard, and able to program on computer play easily (so that a future version of TeXnicard with these features can implement that). Do you have ideas? 09:21:02 ^ul ((::**)~^)((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(0)(!^))~*^^S!)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:21:04 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time! 09:21:34 ^ul ((::**)~^)((((:((0)(!(1)(!(2)(!(3)(!(4)(!(5)(!(6)(!(7)(!(8)(!(9)(_))))))))))(^))~*^^!S)(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)~a((, )S:^)**^):^ 09:21:36 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 132113213221133112132123123112111311222112 ...out of time! 09:21:45 that shortened it a bit 09:23:23 Status of TeXnicard: Currently 140 pages (counting generated printouts for all three files belonging to the program). 09:24:24 ^ul ((::**)~^)(<-- Initial number as sequence of encoded digits each followed by ~^)!((((:(((((((((((_)(9))(8))(7))(6))(5))(4))(3))(2))(1))(0)(!^))~*^^S!)()!(:a(~^)*~(()(~(~(:a~*):^))(a))~*^^)):^(()~)~**~^(:)~((a(~^)*~**)~a)~a()!(**~:((:)~(*)**)~a*~(^))**a(~*^^^!!^)***(~)~a(~a*^:)**a(:)**~^!!!a(~^)*~**)()!~a((, )S:^)**^):^ 09:24:25 3, 13, 1113, 3113, 132113, 1113122113, 311311222113, 13211321322113, 1113122113121113222113, 31131122211311123113322113, 132113213221133112132123222113, 11131221131211132221232112111312111213322113, 31131122211311123113321112131221123113111231121123222113, 13211321322113311213212312311211131122211 ...out of time! 09:28:18 -!- hagb4rd has quit (Ping timeout: 240 seconds). 09:31:16 zzo38: 1kbwc seems the obvious choice here :P 09:33:59 quintopia: That doesn't seem quite right to me. It should be a new game invented for the purpose of demonstrating this project, and which uses the features of TeXnicard (so that it can demonstrate and test them). 09:34:47 every 1kbwc is a new game, and it can demonstrate as many features as you feel like demonstrating 09:50:56 Assuming digits are random (they aren't) the probability that some power of two larger than 350 000 digits doesn't contain 1, 2, 4 or 8 is approximately... 10^-77600 (or something like that)... 09:52:16 um i'd expect the _majority_ of digits involved to be indistinguishable from random 09:52:32 everything except near the beginning and end of the numbers 09:56:45 Calculating distribution of digits in 2^100000: 2991 zeros, 2969 ones, 3068 twos, 3075 threes, 3040 fours, 3015 fives, 2952 sixes, 3052 sevens, 2932 eights and 3009 nines. 09:57:39 How would you write a program in TeX to figure out how many lines are in a file? 09:59:02 For individual digits, the expected distribution for random numbers is 3010.3+-94.9 09:59:30 -!- zzo38 has quit (Quit: http://sprunge.us/QZfE). 09:59:45 so pretty much as expected then 10:01:04 what are you discussing? 10:01:31 whether 65536 is the only power of 2 not containing digits 1,2 or 8 10:02:59 Also 4. 10:04:25 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^ 10:04:26 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time! 10:04:27 basically, the argument being that the size of powers of two grows fast enough that the probability of not having any of those shrinks faster than the fact that it's a positive probability can compensate for? 10:04:44 Chi square value for digits distribution in 2^100000 w.r.t. uniform: 7.231206 (9 degrees of freedom). P > 0.10. 10:06:07 i'm bad at stat. what is the probability that those same digits were drawn uniformly? :P 10:08:18 At 2^500000 chi-square is 3.3212969 (even smaller, indicating distribution is even more like uniform) 10:10:30 Powers of two grow so fast that the probability of avoiding 1, 2, 4 and 8 diminshes so rapidly that the probability that it happens above given power of two goes quickly towards zero. 10:12:09 And there are no such numbers at most 350 000 digits long other than 65536... And avoiding those 4 seems exceedingly unlikely in such huge numbers (even if there are infinity of those). 10:13:48 well, we know that the odds are against it, but is there any way to prove it? 10:14:03 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~()((~:(, )*S~:((!^~)~^^)~a*^(:*)*)~a*^:^):^ 10:14:04 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...out of time! 10:14:06 That would be difficult... :-/ 10:20:04 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 10:22:27 -!- Phantom_Hoover has joined. 10:25:26 I figured out faster approximate method (if it detects 1, 2, 4 or 8 in the number, the number really does have 1, 2, 4 or 8. If it doesn't the number could still have them, but that's unlikely) 10:27:49 I estimate about 10 minutes CPU time to scan to 2^10^9... It has already used 4. 10:28:50 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)(~!^)(:*)::**:::***^^~S 10:28:50 ...bad insn! 10:29:07 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)(:*)::**:::***^^~S 10:29:07 ...bad insn! 10:29:11 argh 10:30:36 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)(:*)::**:::***^^!S 10:30:36 ...bad insn! 10:31:04 -!- cheater00 has quit (Ping timeout: 240 seconds). 10:31:05 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)^!S 10:31:05 ...bad insn! 10:31:38 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~ 10:32:02 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~()^!S 10:32:02 0 10:32:09 -!- cheater00 has joined. 10:32:12 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~(0)~(~!^)^!S 10:32:12 ...bad insn! 10:32:16 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 10:32:48 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)^!S 10:32:48 1 10:33:07 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:*)::**:::***^^!S 10:33:08 ...out of time! 10:33:53 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**):::::*****^^!S 10:33:53 729 10:34:02 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::**)::::::******^^!S 10:34:04 2187 10:35:22 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***)::::****(::**)*^^!S 10:35:24 ...out of time! 10:35:34 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(:::***)::::****(:*)*^^!S 10:35:35 2048 10:36:25 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****)(:*)*::**(::**)*^^!S 10:36:26 ...out of time! 10:36:31 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)~(~!^)(::::****)(:*)*::**(:*)*^^!S 10:36:32 2000 10:36:40 Done. 2^16 is the only power of two not containing 1, 2, 4 nor 8 below 2^10^9 (which is over 301M digits). 10:37:11 yeahhhhhh 10:37:56 Which also means that probability estimate got slashed by factor of ~850 to about 10^(-66.5*10^6) (66.5 million zeros) 10:40:01 -!- Phantom_Hoover has joined. 10:40:44 And even if there is power of two not containing one of those digits, it doesn't mean the minimal substring subset size is greater than 5, as 65536 could still be a substring. 10:41:04 -!- cheater00 has quit (Ping timeout: 240 seconds). 10:41:27 i don't even know what you're saying with the last line 10:42:21 -!- cheater00 has joined. 10:43:45 hm the substrings don't have be _consecutive_, do they. or else there is an obvious counterexample: 11, 101, 1001, 10001, ... 10:43:54 Nope, they don't. 10:44:23 What is minimal substring subset of powers of two? It is known to contain 1, 2, 4, 8 and 65536. If there is 6th element, it is known to be over 300M digits long. 10:46:50 The minimal substring subset of primes is known to have 26 primes (and those primes are known). 10:48:13 For powers of two, it known to have at least 5 (most probably exactly 5). And the first five are known. 10:50:15 In fact, if set is enumerable in lexicographic order and number of elements in minimal substring subset are known, then one can compute the minimal substring subset. 10:58:13 i recall the primes were much easier. 2, 3, 5, 7, 11, 19, 41, 61, 89, and now checking 409... 10:59:16 -!- copumpkin has quit (Ping timeout: 240 seconds). 10:59:21 Ah, found the list: 2, 3, 5, 7, 11, 19, 41, 61, 89, 409, 449, 499, 881, 991, 6469, 6949, 9001, 9049, 9649, 9949, 60649, 666649, 946669, 60000049, 66000049, 66600049 10:59:42 -!- copumpkin has joined. 11:00:55 * oerjan starts wondering about what it is for other bases 11:01:31 `factor 469 11:01:42 `echo hi 11:02:10 oerjan, 7 and 67. 11:02:20 hi 11:02:20 469: 7 67 11:02:34 `factor 409 11:02:35 409: 409 11:02:56 In base 2 it is clearly 10 and 11. 11:03:03 heh 11:03:14 `factor 449 11:03:15 449: 449 11:03:48 `factor 499 11:03:48 499: 499 11:04:13 `factor 609 11:04:14 609: 3 7 29 11:04:51 `factor 649 11:04:51 649: 11 59 11:05:09 `factor 669 11:05:09 669: 3 223 11:05:27 `factor 681 11:05:28 681: 3 227 11:05:49 oh wait that one was already excluded 11:06:07 `factor 699 11:06:08 699: 3 233 11:06:25 `factor 801 11:06:26 801: 3 3 89 11:07:01 `factor 881 11:07:02 881: 881 11:07:08 Ilari: that's the same length as the trivial 0,1 11:07:14 or was that a joke 11:07:22 quintopia: 0, 1 are not primes 11:07:27 oh 11:07:33 didn't know they had to be 11:07:42 i was sort of implying that 11:08:19 so we're discussing the shortest list of numbers with property X that are substrings of all numbers with property X 11:08:22 `factor 901 11:08:22 901: 17 53 11:08:33 yeah 11:08:54 `factor 909 11:08:55 909: 3 3 101 11:09:29 `factor 949 11:09:30 949: 13 73 11:09:43 `factor 969 11:09:44 969: 3 17 19 11:10:09 `factor 94949 11:10:10 94949: 94949 11:10:17 `factor 981 11:10:18 981: 3 3 109 11:10:39 `factor 991 11:10:40 991: 991 11:10:44 geez man. don't you know you're divisibility rule for 3's? 11:10:45 `factor 999 11:10:46 999: 3 3 3 37 11:10:48 *your 11:10:56 what are you trying to find 11:10:59 well yeah i'm just doing them any way 11:11:12 i'm just OCD'ing checking the list :D 11:11:50 `factor 4009 11:11:51 4009: 19 211 11:12:11 How is the LAS meant to deal with strings longer than 9? 11:13:19 don't start with one of those numbers :P 11:13:32 Phantom_Hoover: you can either concatenate the representations, or treat it as a list of integers without considering base 11:13:52 the former depends on you working in base 10, the latter is essentially base infinity 11:14:12 Base-3... Contains at least 2, 10 and 111. There may be more, but at least there is a big gap after 111. 11:14:40 however every base >= 4 essentially behaves the same way after you've whittled down the length of the sequences 11:15:05 with all digits >= 4 getting separated and never interacting again 11:15:45 how did conway find that polynomial? 11:15:46 oh also 0 11:16:10 it's not obvious to me that repeated rle must always grow at a nearly constant rate 11:16:52 quintopia: it's a consequence of the splitting into atoms, where all atoms except 22 turn into all the others after a short while. 11:17:05 what are the atoms 11:17:23 that gives you a matrix, whose largest eigenvalue is the constant. 11:17:54 are there 71 atoms? why degree 71? 11:17:57 an atom is any substring such that it evolves independently of its neighbors 11:18:09 no, there are 92 atoms (ignoring digits >= 4) 11:18:29 so the matrix is 92x92 11:18:36 or, discarding 22 11:18:38 91x91 11:18:43 i haven't seen how it's reduced to 71, but my guess is that the characteristic polynomial has the 71 one as a factor 11:18:47 yeah 11:20:11 i haven't read his paper, maybe he brute-forced it, or maybe there is some simplifying symmetry 11:20:56 well "guess", it _has_ to be, for it to work that way 11:23:58 `factor 4669 11:24:05 4669: 7 23 29 11:25:28 `factor 6009 11:25:29 6009: 3 2003 11:26:06 `factor 6049 11:26:06 6049: 23 263 11:26:31 `factor 6069 11:26:32 6069: 3 7 17 17 11:26:54 `factor 6099 11:26:55 6099: 3 19 107 11:27:27 Random bit of trivia, courtesy of Wolfram Alpha page which I had open when cleaning tabs: human brain matter has a resistivity of 611 ohm centimetres. (This might come in handy if you desperately need to make a resistor.) 11:27:37 -!- asiekierka has joined. 11:27:42 `factor 6469 11:27:44 6469: 6469 11:28:04 fizzie: I DOUBT IT 11:28:10 (the handy part) 11:28:16 oerjan: Oh? But brains, they're everywhere. 11:28:29 And you never leave home without one. 11:28:43 TRUE THAT 11:29:31 "Assuming "brain" is a material | Use as a radiation absorber or a word or a general material or a given name instead". No, I don't think I'll be using it as a radiation absorber. 11:29:32 `factor 6609 11:29:33 6609: 3 2203 11:29:55 _maybe_ i should start doing the 3 rule 11:30:18 reactor shielding 11:30:41 `factor 6649 11:30:43 6649: 61 109 11:31:01 fizzie, how effective is it as reactor shielding? 11:31:43 `factor 6949 11:31:45 6949: 6949 11:33:42 -!- hagb4rd has joined. 11:34:54 Phantom_Hoover: Hard to say on one line, there's just some graphs that depend on the kinetic energy of the particles in question. 11:35:13 `factor 9001 11:35:14 9001: 9001 11:35:26 -!- ais523_ has joined. 11:35:53 All those 26 numbers are primes.. 11:35:56 fizzie, I can only get the specific heat capacity of brains from Alpha. 11:36:12 Phantom_Hoover: You need to use it as reactor shielding first. 11:36:18 It's not in the brain-as-matter entry. 11:36:37 hmm, something I was trying to do in my head last night: 1cnis golf 11:37:08 * oerjan notes that Alpha in that sentence could be either Wolfram or Complex, and it would fit any way 11:37:28 omg... 11:37:33 There is the Poisson's ratio and shear modulus of brains, if you want to, say, build a house out of them. 11:37:36 wolfram alpha _is_ the computer! 11:37:43 oerjan: ouch 11:37:46 s/computer/Computer/ 11:38:05 also, you wonder who things of gathering that info in the first place 11:38:09 *thinks 11:38:13 yes. 11:38:18 fizzie, this clearly needs to be added to Minecraft. 11:39:20 ais523_: It does have those "source information" links; for "brains for reactor shielding", it might be from NIST; "National Institute of Standards and Technology. 'Stopping-Power and Range Tables for Electrons, Protons, and Helium Ions.'" is listed. 11:39:43 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^ 11:39:43 duke nukem 4 ever: new release termin published in l.a. 2 hours ago :D 11:39:45 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time! 11:39:51 2011-06-11# 11:39:52 ais523_: ^ :) 11:40:04 If those values weren't obtained empirically I will be sorely disappointed. 11:40:10 Hmm... There is supposed to be rationale for the five SHA-3 finalists document. I haven't seen it yet (it could be interesting reading). 11:40:46 I remember they said they were going to provide one. 11:41:13 oerjan: I think your convert-to-base-10 code is neater than mine 11:41:46 mine was really crazy, it did division by 10 by converting the number into stack elements and getting each element to pop the 9 below 11:43:16 "Announce the finalists. Publish the selection report." is in 2010 Q3 already in the timeline. 11:43:29 yeah i was sort of working with my look-and-say code as starting point 11:43:44 And they did it in Dec 9th; so they seem to be running a little late. 11:44:06 ais523_: btw i realized that the trick of each "cons cell" deleting the previous head, as you formulated it, actually made the code longer 11:44:14 indeed, it does 11:44:19 I realized that too 11:44:32 so i modified the code on the wiki 11:45:33 ais523_: my code is mainly counting up to 9, and then when it wraps over it calls recursively a stored subroutine for the tens part 11:49:36 I can't see an explicit encoding of 9 anywhere in there 11:49:39 `factor 9049 11:49:40 9049: 9049 11:50:09 ais523_: i mean the (!~:^) which is called after the 9 step 11:50:24 aha 11:50:34 that would also explain why 0 is printed by a separate part of the code 11:50:50 yeah 11:52:24 -!- ais523 has joined. 11:54:53 `factor 9469 11:54:55 9469: 17 557 11:54:55 Its not the only thing that's running late: Testimonies for 2010 nutrion guidelines were 8th July and the transcript and minutes are still "Coming soon". Oh and IIRC 2010 nutrion guidelines have already been published (the same garbage, what else did you expect from USDA?). 11:55:55 Ilari, please go back to counting down the days 'till IPv4 depletion. 11:56:29 `factor 9649 11:56:29 9649: 9649 11:58:13 You really think americans don't follow the nutrion guidelines (to the extent they are followable)? 11:58:55 `factor 9949 11:58:59 9949: 9949 12:01:19 hmm, I just rebooted the computer ais523_ was connected from 12:01:21 Of course, have screwed up enough nutrion guidelines and they become impossible to follow... 12:01:22 I wonder why it's still here? 12:01:48 Not timed out yet? 12:02:15 `factor 46669 12:02:16 46669: 7 59 113 12:02:59 at least it doesn't respond to pings! 12:03:58 Phantom_Hoover: I'd have expected it to /quit when the browser was closed 12:03:58 -!- ais523_ has quit (Ping timeout: 245 seconds). 12:04:01 but apparently not 12:04:02 ah, pingout 12:04:11 `factor 60049 12:04:12 60049: 11 53 103 12:04:14 Yeah, it is 4 minutes for normal connections. 12:06:43 *4 minutes AND 5 SECONDS 12:06:46 `factor 60649 12:06:46 60649: 60649 12:08:25 here's a fun one (which I think I've done, but in my head): convert this psuedocode program to 1cnis: do 6^n times: write 0, write 1 8^n times 12:08:28 Yeah, it is usually bit longer than the set time (it polls the connection list periodically and checks when was last pong received?) 12:08:30 where n is the number of steps that has run 12:10:56 actually, what I really want is some sort of 1cnis preprocessor 12:11:09 that contains for loops, and exponential repeat loops 12:11:35 * do 6^n times: write 0, write 1 (8^n)-1 times 12:11:39 the -1 is the whole point... 12:12:42 `factor 66049 12:12:43 66049: 257 257 12:14:29 `factor 66649 12:14:30 66649: 11 73 83 12:17:27 hmm, [[User talk:Crescente]] 12:17:36 suggestions about how I should react? 12:17:52 ais523: Out of curiosity, since the 1cnis page points out multiple times that the reference impl doesn't do bignums: is there a particular reason why "use bignum;" wouldn't be enough to make it so? 12:18:03 fizzie: I hadn't thought of it at the time 12:18:08 or was aware that it was that simple 12:18:24 it doesn't really matter anyway, because a typical 1cnis program would run a computer out of memory before it ever hit integer overflow 12:18:32 but it's the principle of the thing 12:18:48 you know, I'll replace that with a welcome message 12:18:51 and see what happens 12:23:33 `factor 94669 12:23:36 94669: 41 2309 12:31:36 `factor 466669 12:31:38 466669: 7 163 409 12:33:16 `factor 600049 12:33:17 600049: 17 47 751 12:35:01 Hmm... FIN+ACK and remote end responds to it with an RST... 12:35:44 -!- hagb4rd has quit (Quit: hagb4rd). 12:37:29 isn't it legal to respond to /anything/ with an RST? 12:37:41 It is... 12:42:33 Hmm... Packet trace of a connection. A: SYN, B: SYN+ACK, A: ACK. A: Data 1-415. A: Data 1-415. B: ACK up to 415. B: Data 1209-1614. A: SACK 1,1209-1614. B: FIN+ACK. A: SACK 1,1209-1615. B: ACK up to 415. . 12:42:37 `factor 660049 12:42:38 660049: 13 50773 12:45:21 I guess something is dropping that packet containing data bytes 1-1208 from B. 12:45:21 `factor 660649 12:45:22 660649: 11 19 29 109 12:47:19 oerjan: are you looking for primes containing no digits but 0, 4, 6, and 9? 12:47:31 `factor 666049 12:47:32 666049: 79 8431 12:47:54 Actually systematically dropping, since it would be retransmitted. 12:47:57 no, i'm checking Ilari's list of minimal prime substrings 12:49:26 although at this point 0,4,6 and 9 may be the only options left. 2,3,5,7 went early of course, and 8 i've dismissed 12:49:53 let me check about 1 12:51:18 yes, 1 is no longer possible since 991 and 9001 are in the list 12:51:31 (as well as 11 and 19) 12:52:17 "minimal prime substrings"? 12:52:38 primes that have no smaller primes as (non-consecutive) substrings 12:55:00 ah 12:55:22 and you're trying to find the largest such prime? 12:56:13 well proving that Ilari's list is all of them 12:57:12 Largest prime that doesn't contain any smaller prime as (non-consecutive) substring is known to be 66600049 12:57:14 `factor 666649 12:57:16 666649: 666649 12:57:29 that was the next one 12:57:48 I already factorized all the numbers on that list. They were all primes. 12:58:09 factorizing primes is easy! 12:59:31 "LoseThos can update full screen at 30fps without much effort because it's only 640x480x16 color." 12:59:41 isn't that a bit low for modern systems? 13:04:22 `factor 946669 13:04:23 946669: 946669 13:04:40 Ilari: YOU DON'T SAY 13:06:20 `factor 4666669 13:06:21 4666669: 7 666667 13:07:12 `factor 6000049 13:07:13 6000049: 11 199 2741 13:11:34 `factor 6600049 13:11:34 6600049: 19 563 617 13:11:41 `factor 6660049 13:11:42 6660049: 11 557 1087 13:14:50 `factor 46666669 13:14:51 46666669: 7 7 952381 13:15:17 hm those 46*9 are all divisible by 7 aren't they 13:16:35 10*(x-3)+9 = 10*x - 21 13:17:39 `factor 60000049 13:17:40 60000049: 60000049 13:18:44 `factor 66000049 13:18:45 66000049: 66000049 13:19:02 `factor 66600049 13:19:03 66600049: 66600049 13:20:24 hmm, I'm using Windows because it has a program I need to run 13:20:30 and it's decided to randomly shut down in the middle of things 13:20:48 especially amusing because I had a file on my desktop that was too large, and I was supposed to get rid of it before logging off... 13:22:34 * oerjan concludes that no more primes are possible 13:22:34 -!- hagb4rd has joined. 13:23:02 EUCLID EAT YOUR HEART OUT 13:23:53 -!- nddrylliog has joined. 13:29:17 Ilari: oh and for base 3 it's indeed 2 and 111, since there are no primes of the form 3^n+1 13:29:41 (EXERCISE LEFT TO THE READER) 13:30:46 base four gives 2,3 and 11 13:37:35 `factor 109 13:38:05 109: 109 13:38:56 -!- nddrylliog has quit (Quit: I can flyyyyyyyyy). 13:49:53 -!- BeholdMyGlory has joined. 14:01:40 > foldl1 (\x y -> 5*x+y) [1,4,4,4,4] 14:01:40 -!- MigoMipo has joined. 14:01:40 1249 14:02:24 `factor 1249 14:02:44 1249: 1249 14:02:47 -!- MigoMipo_ has joined. 14:03:13 base five gives 2, 3, 104 (29), 111 (31), 401 (101), 414 (109), 14444 (625+500+124 = 1249), ... 14:03:23 -!- asiekierka has quit (Read error: Operation timed out). 14:04:13 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 14:05:34 -!- MigoMipo_ has joined. 14:06:10 -!- cheater00 has quit (Ping timeout: 240 seconds). 14:06:18 -!- MigoMipo has quit (Ping timeout: 250 seconds). 14:07:32 -!- MigoMipo_ has quit (Read error: Connection reset by peer). 14:07:53 -!- MigoMipo has joined. 14:08:08 > foldl1 (\x y -> 5*x+y) [4,4,4,4,1] 14:08:08 3121 14:08:17 `factor 3121 14:08:21 3121: 3121 14:09:13 -!- cheater99 has joined. 14:09:49 There's also 10 in set of base-3 primes... 14:10:14 oh duh 14:10:33 wait that's for base 5 as well 14:10:35 Or actually, the only prime of form 3^n+1 is when n is zero. 14:11:00 well that doesn't count 14:11:20 ok scratch that 104 and replace by 10 (5) 14:11:43 and add 44441 (3121) 14:12:41 and i think that's all. 14:13:51 --> food 14:14:06 In base-3, 2, 10 and 111. To avoid falling into any of those, number must contain at most 2 ones and the rest zeroes. The first 1 must be the leftmost digit. The other must be rightmost since otherwise result is divisible by 3. But all such numbers are even and greater than 2 and as such not primes. 14:17:14 Base 4: 2, 3, 11. To avoid that set, it must contain at most one 1 and the rest zeroes. But such numbers are 4^n and none of those is prime. 14:22:37 -!- asiekierka has joined. 14:24:59 Base 5 seems to have a lot more of those numbers than lesser bases. I got up to 44441 and already found 8... 14:27:55 2, 3,10,111, 401, 414, 14444 and 44441 14:32:04 Ilari: same as i found 14:32:22 (when correcting for the 10) 14:32:35 and those are all, i believe. 14:33:51 (just say if you want me to give the argument) 14:37:50 > 4*36+1 14:37:51 145 14:38:18 > 4*36+4*6+1 14:38:19 169 14:39:03 > 4*6^3+1 14:39:04 865 14:44:25 6*(x-1)+1 = 6*x-5, so those 40*1 will all be divisible by 5 14:44:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 14:45:37 `factor 871 14:45:38 871: 13 67 14:46:25 > 4*6^3+4*6^2+1 14:46:26 1009 14:46:31 `factor 1009 14:46:32 1009: 1009 14:47:24 oh wait duh 14:47:32 > 4*6^3+4*6+1 14:47:33 889 14:47:38 `factor 889 14:47:39 889: 7 127 14:48:29 > 4*6^3+4*6^2+4*6+1 14:48:30 1033 14:48:35 `factor 1033 14:48:36 1033: 1033 14:50:08 > 4*6^4+4^6+1 14:50:09 9281 14:50:15 `factor 9281 14:50:16 9281: 9281 14:52:56 base 6: 2, 3, 5, 11 (7), 4401 (1009), 4441 (1033), 40041 (9281). 14:54:15 -!- Wamanuz2 has joined. 14:57:09 -!- Wamanuz has quit (Ping timeout: 240 seconds). 15:00:08 -!- FireFly has joined. 15:00:56 -!- cheater99 has quit (Ping timeout: 240 seconds). 15:01:22 > iterate (\x -> x*49+8) 1 15:01:23 [1,57,2801,137257,6725601,329554457,16148168401,791260251657,38771752331201... 15:01:34 `factor 2801 15:01:35 2801: 2801 15:01:45 base 7: 2, 3, 5, 10 (7), 14 (11), 16 (13), 41 (29), 61 (43), 11111 (2801). 15:01:59 -!- cheater99 has joined. 15:02:23 oerjan what are you doing? Checking out prime generating polynomials? 15:03:01 kfr: checking what primes in various bases have representations that have no other prime as non-consecutive substrings 15:03:24 there's a theorem that says the number of them is always finite 15:04:04 (primeness is not important for that, just any property of strings can be used) 15:05:16 so far it's been possible to check. but we don't have a certain proof for the same question for powers of 2... 15:05:18 > iterate (\n -> n^2 + n + 41) 1 15:05:19 [1,43,1933,3738463,13976109340873,195331632308051498617743043,3815444658012... 15:05:23 :o 15:05:27 heh 15:05:49 lol that's the wrong use though 15:06:17 > [n^2 + n + 41 | n <- [0..40]] 15:06:17 [41,43,47,53,61,71,83,97,113,131,151,173,197,223,251,281,313,347,383,421,46... 15:06:25 Damn, I was just writing that 15:06:39 Although with take 10 and n <- [0..] instead 15:06:41 thought that might be what you meant 15:06:59 well i know they stop being all primes at around 40 15:07:10 Right 15:07:15 http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html 15:08:06 actually 40 itself doesn't give one 15:08:21 -!- Phantom_Hoover has joined. 15:08:36 Oh dear god, there's another version of LoseThos. 15:09:43 For powers of two, the minimal subset of substrings is known to be finite. In base 10, it is at least 5 and 6th element if it existed would have to be >2^10^9 (>300M digits). 15:10:10 well right it's the exact set that isn't known 15:12:33 > 8^2+4*8+1 15:12:34 97 15:13:49 > 8^2+6*8+1 15:13:50 113 15:15:19 `factor 257 15:15:20 257: 257 15:16:03 The LostThos guy remonds me distressingly of zzo, come to think of it. 15:16:42 > 4*8^2+4*8+1 15:16:43 289 15:16:49 `factor 289 15:16:50 289: 17 17 15:17:31 For base 9: "2, 3, 5, 7, 14, 18, 41, 81, 601, 661, 1011, 1101, ... 15:19:26 > 6*8^2+0*8+1 15:19:27 385 15:22:56 > 6*8^2+6*8+1 15:22:57 433 15:23:06 `factor 433 15:23:06 433: 433 15:25:28 > 8^3+0*8^2+0*8+1 15:25:29 513 15:27:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 15:28:17 > 8^3+1*8^2+0*8+1 15:28:17 577 15:28:25 `factor 577 15:28:26 577: 577 15:30:36 > 4*8^3+1*8^2+1*8+1 15:30:37 2121 15:31:42 > 4*8^3+4*8^2+1*8+1 15:31:43 2313 15:31:50 `factor 2313 15:31:51 2313: 3 3 257 15:33:02 > 4*8^3+4*8^2+6*8+1 15:33:02 2353 15:33:09 `factor 2353 15:33:09 2353: 13 181 15:33:43 > 4*8^3+6*8^2+1*8+1 15:33:44 2441 15:33:51 `factor 2441 15:33:52 2441: 2441 15:33:58 base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), ... 15:34:39 > 4*8^3+6*8^2+4*8+1 15:34:40 2465 15:35:41 > 6*8^3+0*8^2+0*8+1 15:35:42 3073 15:35:50 `factor 3073 15:35:51 3073: 7 439 15:42:54 `factor 3137 15:42:55 3137: 3137 15:44:38 `factor 3337 15:44:39 3337: 47 71 15:45:39 `factor 3361 15:45:39 3361: 3361 15:49:59 `factor 4097 15:50:00 4097: 17 241 15:51:44 `factor 4169 15:51:44 4169: 11 379 15:52:02 `factor 4681 15:52:03 4681: 31 151 15:52:07 -!- cheater99 has quit (Ping timeout: 240 seconds). 15:53:48 `factor 16969 15:53:49 16969: 71 239 15:54:42 `factor 18697 15:54:43 18697: 7 2671 15:55:32 `factor 18721 15:55:33 18721: 97 193 15:55:50 This channel should be renamed to #repl 15:57:07 that's what #esoteric-blah is for, isn't it? 15:57:09 except the bots aren't tehre 15:57:11 you could try PM 15:57:21 ok i just started doing that 15:57:59 my current pastime: repeatedly rebooting Windows (which hasn't been loaded for almost a year) to see how many reboots it takes to finish applying all its updates 15:58:05 I'm at about 12 atm, I've vaguely lost count... 15:58:20 (Windows 7, in case it matters) 16:05:19 -!- cheater99 has joined. 16:06:31 -!- copumpkin has joined. 16:10:30 -!- cheater99 has quit (Ping timeout: 240 seconds). 16:11:05 -!- cheater99 has joined. 16:18:44 base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), ... 16:24:35 does the ... mean there are potentially more? 16:28:22 -!- pumpkin has joined. 16:28:27 -!- copumpkin has quit (Ping timeout: 272 seconds). 16:29:41 -!- Slereah has quit (Ping timeout: 260 seconds). 16:30:21 -!- asiekierka has quit (Ping timeout: 272 seconds). 16:31:54 It is fairly easy to list all numbers in set up to N, but showing that the set is complete requires a proof (and that isn't easy on bases >=5). 16:36:07 -!- Slereah has joined. 16:36:45 -!- copumpkin has joined. 16:36:50 -!- copumpkin has quit (Changing host). 16:36:50 -!- copumpkin has joined. 16:37:57 -!- pumpkin has quit (Ping timeout: 272 seconds). 16:40:18 -!- sebbu has quit (Read error: Connection reset by peer). 16:40:49 -!- sebbu has joined. 16:40:59 does the ... mean there are potentially more? <-- oh right, yes, i just wanted to put those i've found so far on the screen 16:41:20 -!- ais523 has quit (Read error: Connection reset by peer). 16:41:41 Ilari: i'm proving as i go. admittedly i might slip up... 16:41:59 but i believe i've got all bases <= 7 16:42:36 -!- asiekierka has joined. 16:48:30 -!- ais523 has joined. 16:49:13 -!- Sgeo_ has joined. 16:58:35 -!- asiekierka has quit (Remote host closed the connection). 17:00:50 -!- asiekierka has joined. 17:01:09 base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), 600111 (196681), 1000011 (262153), 1000111 (262217), 4411111 (1184329), ... 17:03:45 fun issue I came up against just now: I had to reproduce someone else's virtual machine from the disks 17:03:52 and they assumed a particular disk was connected to /dev/sdb1 17:04:22 in the end, I had to make a tiny hard disk and attach it to sda in order to push the other disk onto sdb (and thus get its partition at sdb1) 17:09:06 You can do the same with udev trickery; but that is undoubtedly simpler. 17:10:36 how to do udev trickery is unclear if it crashes before I even reach a shell 17:11:37 By mounting the disk from the host and twiddling the configuration files? 17:13:11 Though with some image formats that's non-trivial. 17:13:14 the disk wasn't in a format that could be directly mounted, especially because the host was running Windows 17:28:31 -!- TLUL has joined. 17:31:11 wow, the Yes problem on anagolf seems to be shorter to cheat than to not cheat in Python 17:31:36 -!- sftp has quit (Remote host closed the connection). 17:31:38 Io. 17:32:35 `factor 257 17:32:36 257: 257 17:34:27 -!- sftp has joined. 17:37:13 Phantom_Hoover, what about Io? 17:37:30 O GOD WHAT HAVE I DONE 17:37:54 Phantom_Hoover, you just said Io without any context. 17:37:58 You're turning into me! 17:40:51 -!- cheater99 has quit (Ping timeout: 240 seconds). 17:41:29 -!- cheater99 has joined. 17:43:13 -!- Slereah has quit (Ping timeout: 240 seconds). 17:45:27 Also, I'd like Io more if it worked well on Windows 17:49:40 -!- Slereah has joined. 17:59:28 -!- sftp has quit (Remote host closed the connection). 17:59:55 -!- sftp has joined. 18:07:16 -!- sebbu2 has joined. 18:07:45 Sgeo_, I WAS REFERRING TO THE MOON 18:08:13 And there was no context by which someone would figure that out 18:08:15 THAT IS NO MOON 18:08:36 is binary addition possible in underload? is it necessary to store each digit as a separate stack element? 18:09:00 quintopia: you can implement lists 18:09:10 so it's surely possible 18:09:22 -!- sebbu has quit (Ping timeout: 260 seconds). 18:09:51 possible with having the entire numeral in one stack cell? 18:10:18 sure. the numeral would be a program, of course, like everything else in Underload. 18:10:46 (well everything that's not just for printing) 18:11:49 BACON 18:11:51 -!- pikhq_ has changed nick to pikhq. 18:12:03 a cons cell can be implemented as a program that puts the car and the cdr on the stack. (you might also want an empty flag). 18:12:41 so the cdr is then a subprogram, which has its cdr as a subprogram, etc. 18:13:22 in fact my printing routines of lately are essentially mostly cons cells, as ais523 pointed out. 18:13:52 it's basically list index followed by print, much like you'd do it in any other language that didn't have arithmetic 18:13:56 on characters 18:14:18 so the reasonable thing to have here is a numeral such that cating with another numeral and executing would push the sum as a numeral in the same format onto the stack 18:14:39 and of course the requirement should be that the length of the representation is logarithmic in the size of the numeral 18:14:45 why require cat in particular? why not allow any addition function? 18:14:52 ...no, i don't think that's necessarily reasonable if you want binary efficiency 18:15:02 (it might happen to be by accident) 18:15:05 "reasonable" 18:15:10 in the sense of "fun to write" 18:15:16 -!- elliott has joined. 18:16:00 06:37:37 Anybody happen to know of a FreeDesktop-aligned menu program that can run as a system tray applet? 18:16:03 there _is_ a simple numeral form for which concatenating is summing: lists of ^'s 18:16:04 Gregor: gnome-panel? >:D 18:16:20 Seriously though, what does freedesktop matter here? 18:16:20 (no execution needed though) 18:16:23 wait 18:16:24 oerjan: isn't that unary? 18:16:26 are you talking about underloda? 18:16:28 *underload? 18:16:30 quintopia: yes 18:16:33 i was just thinking about how to do division! 18:16:35 elliott: .desktop files 18:16:35 :3 18:16:37 erm 18:16:39 not division 18:16:41 addition 18:16:42 Gregor: ew 18:16:45 elliott: By FreeDesktop-aligned I just mean "compatible with their standards" 18:16:48 then it doesn't meet the logarithmic-sized representation requirement 18:16:55 Gregor: Their standards are terrible :P 18:16:56 ais523: ping 18:16:59 elliott: You'd rather go back to the hell that predated .desktop files? 18:17:07 -!- zzo38 has joined. 18:17:08 Gregor: Nope. 18:17:18 elliott: heh, i have a vague idea to do division similarly to my recent printing routine (which you may not have seen in its full glory yet) 18:17:26 indeed i haven't 18:17:33 now how do you add two UL-church numerals? 18:18:12 elliott: ((:)~*(*)*)~^ 18:18:23 oerjan: is that not a+b+1? 18:18:23 heh, so basically what i was thinking, but more elegant 18:18:27 hm indeed 18:18:35 that's one of the more elegant forms of that rule I've seen, though 18:18:40 I was busy trying to work it out and failing 18:18:45 ais523: You know how you said special-casing numbers would make arithmetic O(1) instead of O(log n)? 18:18:55 ah no, it is a+b 18:18:59 ais523: That's incorrect, because addition and multiplication are both O(log n) IIRC 18:19:07 But certainly arithmetic isn't O(1) 18:19:09 ais523: it's just iterating increment on m, n times 18:19:12 I wrote in the wiki about how to do increment/add church numbers. 18:19:15 elliott: actually they're O(n), but you could detect arithmetic too I suppose 18:19:17 oerjan: indeed 18:19:20 Of course, for naturals less than 2^64 it can work. 18:19:25 ais523: I'm talking about mathematically 18:19:29 ah, I see 18:19:31 I think addition is O(log n) 18:19:32 yes, I was assuming not bignum 18:19:35 right 18:19:50 * elliott boggles at ais' message on http://esolangs.org/wiki/User_talk:Crescente 18:19:56 But it is possible I make mistake 18:20:06 elliott: I was wondering how to deal with an obviously spambot UT page 18:20:12 so I decided to do that to see what the reaction would be 18:20:21 it takes a while to figure out how any given spambot acts 18:20:22 ais523: btw, what does a numeral of the form ({:*}^n) represent? 18:20:25 is it even a church numeral? 18:20:26 I /think/ so 18:20:27 power of 2 18:20:29 is it 2^n? 18:20:30 right 18:20:40 hmm increment (I want to figure this out myself) 18:20:46 (:*) is 2, I believe 18:20:51 right ais523? 18:20:58 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~(0)(!())((~(, )*S:((^~!)~^^^~)~a*^(::)~(**)**)~a*^:^):^ 18:20:58 yes 18:20:58 so 18:20:59 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, ...out of time! 18:21:10 (x)(:*)^ -> (xx) 18:21:21 (:)(:*)* -> (::*) 18:21:22 so 18:21:28 (:)~*(*)* 18:21:29 is increment 18:21:31 yep 18:21:36 addition 18:21:36 hm 18:21:41 (i forgot the solution don't tell me) 18:21:45 Grrr at the clothing he's wearing being 2lbs 18:21:55 (:*)(::**) is 2+3, i.e. 5 i.e. (::::****) 18:21:57 so 18:22:19 (:)~^ ... nope 18:22:25 then it doesn't meet the logarithmic-sized representation requirement <-- well i just don't immediately see how to do your "addition by concatenation" with a non-unary representation 18:22:27 elliott: err, (:*)(::**) is just two numbers 18:22:33 ais523: indeed 18:22:34 ais523: that was 2 and 3 18:22:36 my examples 18:22:40 that i was working with 18:22:43 oh, those are the args you want 18:22:44 oerjan: i don't either. 18:22:45 right 18:22:59 well, zzo's solution is basically recursive increment 18:23:01 -!- Cheery has joined. 18:23:07 but I want something more "primitive"... 18:23:08 ;D 18:23:10 http://www.youtube.com/watch?v=scZ-MHgfol0 18:23:30 hmm, a random person coming in and linking a youtube video that actually seems relevant? 18:23:32 oerjan: you'd basically have to use a self-delimiting format 18:23:34 Cheery is working on a visualised programming language or something like that, it looks very esoteric 18:23:39 that's not a common occurrence 18:23:39 elliott: I told him to haha 18:23:45 or did kfr already linked? we thought you'd here would bother. ;) 18:23:47 kfr: heh, we've had a bunch of spambots doing that recently 18:24:01 so for a human to do the same thing the same way, only it's relevant, is awesome 18:24:05 I thought it was worth sharing 18:24:12 the timings gave it away, though 18:24:16 Cheery: do you know of aardappel? 18:24:18 I'm at work so can't watch YouTube; what's it about? 18:24:23 It was funny because I was talking about this in here just a few days ago 18:24:26 it's like Aardappel from the looks of it :P 18:24:31 very like aardappel 18:24:49 elliott: no, I'm doing a quick search on it now. 18:25:11 Cheery: http://strlen.com/aardappel-language 18:25:22 -!- kar8nga has joined. 18:25:23 Cheery: This channel is good for freethinker talk on programming languages although many people in here are under the influence of Haskell 18:25:26 Wouter is one of the "famous" esolangers, made FALSE 18:25:31 also, technically a channel op here 18:25:36 but I've never seen him, ever 18:25:40 mh.. with google I only found this: http://www.fluweelbloem.nl/wp-content/uploads/2009/10/aardappel-bikini-297x300.jpg 18:25:40 And there's an Underload sport going on here 18:25:59 It means potato in some Germanic language, I suppose 18:26:17 Should be west Germanic 18:26:32 Yeah it's Dutch apparently 18:26:52 hm, we don't have an Aardappel page on the wiki. 18:26:54 http://strlen.com/aardappel-language 18:27:10 I thought about trying to make this one way to write languages, didn't thought much about its esoteric value. 18:27:13 Damn, so I was too late :| 18:27:17 kfr: HASKELL HASKELL HASTUR AAAAAAAAAAAAAAAA 18:27:25 oerjan: Hva 18:27:45 I had to look up Hastur 18:27:48 role playing/cthulhu joke 18:27:52 18:42:11 Cheery: This channel is good for freethinker talk on programming languages although many people in here are under the influence of Haskell 18:27:52 ok, logreading was a mistake, why can't I learn to trust my past self to make the right ignores... 18:27:53 Not familiar with it 18:28:01 kfr: btw er du norsk? 18:28:04 Nei 18:28:09 oh 18:28:29 ...something fishy there... 18:28:32 Jeg er fra tyskland men jeg lære meg norsk fordi jeg vil skrive helnorsk svartmetall sangtekster 18:28:38 aha 18:28:38 ^-^ 18:28:43 ais523: btw I am really tempted to write an Underload preprocessor 18:28:47 -!- asiekierka has quit (Remote host closed the connection). 18:28:58 I'm exaggerating, I haven't studied Norwegian in a long time 18:29:00 elliott: I even /specced/ one, and implemented it sort-of 18:29:03 ais523: let mock := (:^)*:^. 18:29:06 () mock -> infinite loop 18:29:09 * oerjan isn't into metal, alas 18:29:19 elliott: Yes I too had idea of Underload preprocessor 18:29:19 ais523: WELL MINE'S BETTER 18:29:27 it's a really obvious thing to do 18:29:33 oerjan: Awww, black metal is the most significant export of Norway! :[ 18:29:35 ais523: I think Underload + word definitions could actually be a nice-ish language... 18:29:41 mine let you redefine things like :, though, in terms of other things 18:29:45 aardappel looks pretty. I'll have to look into it 18:29:51 so you could do things like add bounds checking to the language while keeping source compatibility 18:30:06 Cheery: aardappel is pretty but, like all tree-based structural programming editors, absolutely impossible to use efficiently 18:30:11 /cough cled 18:30:18 ais523: that's awful 18:30:27 elliott: really? 18:30:32 well 18:30:34 scary :) 18:30:45 Underlambda's designed around making that idea possible 18:31:03 not expecting it to be efficient, but letting you use it to write relatively simple esolang->esolang compilers 18:31:14 elliott: which spots make it inefficient? 18:31:18 inputting? 18:31:28 the idea is to make it a) easy to implement, and b) possible to implement efficiently (but not necessarily easy to implement efficiently) 18:31:36 kfr: yeah but few actual _norwegians_ are into it :D 18:31:40 Cheery: well, actually inputting programs in structural editors tends to be slower than a textual format; editing I've never done, but I suspect navigating to the right place might take more time too 18:31:46 it's one of things I've attempting to get on. :) 18:31:47 Cheery: this problem might not be inherent, but nobody's solved it yet afaik 18:31:58 oerjan: Oh I'm sure it's far more popular in Norway than in most of Europe, per capita 18:32:35 elliott: confirmed typing is pretty fast if you first get to a location where you need to be in 18:32:45 Although probably not nomimally considering Norway's smaller population 18:33:08 elliott: though, navigation is the harder problem I've not yet gotten good solutions to. 18:33:08 ais523: do you have enough of an idea of underlambda to have already written some examples for it? 18:33:13 hmm, is the idea that the editor makes it physically impossible to type a syntax error, and also stores the structure of the code so you don't need to use things like braces instead 18:33:29 oerjan: I'd imagine it's at least got a decent niche in Norway. 18:33:30 ais523: yes, welcome to 1990 or something 18:33:35 quintopia: yes, I do; the problem with Underlambda is not the Feather problem of me not understanding it, but the entirely unrelated problem of me repeatedly changing my mind 18:33:37 ais523: that's it. 18:33:40 oerjan: The Norwegian black metal artists have to come from somewhere, right? 18:33:40 Cheery: I find typing is inefficient because mistakes in the structural parts are harder to correct. 18:33:53 ais523: just was wondering if anything was set in stone 18:34:08 not really, although a few characters are very unlikely to change meaning 18:34:09 elliott: I did a mechanism that lets you correct the last mistake you did 18:34:11 So everything you make in a structural editor is a correct program? (as in, it compiles) I think I have seen something like this in two applications before, actually 18:34:15 pikhq: you'd think. mind you since i don't even watch _tv_ i don't really know how mainstream it has got. 18:34:15 Cheery: For instance, if I write "x/4" as the mistaken "x=4", normally I could just backspace. But in a structural editor, it is quite likely that the = will trigger the creation of new nodes etc. 18:34:18 It was absolutely horrible, though 18:34:20 And reversing that might be harder than backspacing. 18:34:23 mostly the small abbreviation ones, like _ for dip, and & and ` as argument-reversed versions of * and ^ 18:34:27 Sure, undo gets you some of the way, but I don't think all. 18:34:35 Those were the editors for StarCraft and StarCraft II coded by Blizzard 18:34:46 elliott: oh, that will be trouble. 18:34:47 They used structural editors for the half assed scripting language 18:34:57 Then make the editor so that pushing backspace will undo the creation of the new node. 18:35:00 It was enormously time consuming to get any work done there 18:35:05 oerjan: My "TV" watching consists of: video off the Internet, NetFlix streaming, and football. :) 18:35:09 but I managed to get call/cc implemented purely in the preprocessor 18:35:12 But it was by no means optimising 18:35:16 wow, I've just realised how insane my previous line was 18:35:18 But it was by no means optimised* for input speed 18:35:42 Cheery: I think structural editors should possibly keep things in a mostly linear form until the completion of small structures, at which point they turn "semantic". 18:35:54 (NetFlix, BTW, is a company in the US that lets you rent any number of DVDs, via the mail, per month, for a flat rate, *and* offers streaming video on a variety of set-top boxes. Quite nice.) 18:35:57 Cheery: (if you start writing a larger structure, parts you typed a short while ago will become structural, but your current focus will stay linear) 18:36:02 pikhq: *Netflix 18:36:09 elliott: Blah, right, it's not camel case. 18:36:10 ais523: well we expect _you_ to implement call/cc in the _processor_ 18:36:14 also, football? why? :p 18:36:20 elliott: or have linear form available all the time from the semantic one. 18:36:25 elliott: I don't know why, but I actually enjoy watching American football. 18:36:30 elliott: Little bit of a guilty pleasure. 18:36:45 pikhq: It's funny that you chose to go all the way to explain NetFlix but you decided not to add verosity to the football part which would be most misleading one in an international chat :p 18:36:46 Is there anything in gcc that allows a program to operate on its own GENERIC and GIMPLE codes before it is compiled? 18:36:49 oerjan: haha, although not very likely, it doesn't even have a remotely sane restriction to finite state unless you make it work like exceptions, and that misses the whole point 18:36:56 Cheery: possibly. but i mean so that fixing recent enough mistakes can be done by just backspacing. :p 18:37:00 Oh, or Netflix then* :p 18:37:06 verbosity* rather 18:37:07 elliott: editing is the thing you pointed out already. I think that's next thing I should look into. 18:37:09 zzo38: I don't think so, because gcc is so muddled around that point; in some cases, it doesn't go via GENERIC/GIMPLE at all 18:37:20 yeah 18:37:22 a program can operate on RTL using a modified version of __asm, but only to add things 18:37:28 not to move them around 18:37:33 kfr: Even without mentioning that it's American football, a form of gridiron football, people would at least understand that football is a form of sport that is often watched on TV. 18:37:42 Right 18:37:47 ais523: If gcc doesn't, can LLVM do anything like I described (but without GENERIC/GIMPLE, I guess)? 18:37:54 zzo38: I don't know, I haven't looked into it 18:38:05 That is certainly true for all derivatives of that family 18:38:11 Whereas if you've not heard of Netflix at all, you're going to be pretty clueless. 18:38:19 True that 18:38:23 elliott: I don't think if it's so easy to directly fix the mistake, but I feel I know how I could approach these things. 18:38:42 Also, it's not true that all forms of football are forms of gridiron football. 18:38:45 Cheery by the way, I presume that your language is typed statically? 18:38:56 I think the only two notable such games are American and Canadian football. 18:39:03 How is Aardappel typed? 18:39:10 what does "gridiron" mean in this context? 18:39:34 kfr: depends about the language. I haven't yet decided on the language and actually.. I attempt to do support for both into one multilingual packet. 18:39:37 it means you play on a gigantic iron 18:39:39 arranged in a grid 18:39:48 elliott: I choose not to believe you 18:39:58 pikhq: Hmm? Association Football is the most popular sport wide, and then there are the different forms of Rugby and Australian Rules Football 18:40:13 for the first run it sounds like good idea to start from C-like language. 18:40:22 Oh, I don't know what the gridiron part means 18:40:37 Cheery: seriously? naw 18:40:41 ais523: It's a class of football games, which has a series of parallel lines indicating yardage on the play field, and has a system of downs, a line of scrimmage, and forward passes. 18:40:44 Cheery: something like Lisp would work best 18:40:53 Cheery: the uniformity will make the editing easier with that kind of interface 18:40:56 pikhq: ah, OK; that's... rather specific 18:41:05 ais523: There's more than one such game is the thing. 18:41:22 http://en.wikipedia.org/wiki/Gridiron_football 18:41:32 elliott: I feel I need tools that work on non-uniform representation of semantics. 18:41:38 -!- cheater99 has quit (Ping timeout: 240 seconds). 18:41:46 elliott: this may or may not be a good time to mention scapegoat 18:41:52 ais523: They're all pretty *similar* games, but definitely distinct. 18:41:55 ais523: good a time as any! 18:42:00 Cheery: why? 18:42:53 elliott: better visuals. 18:43:08 Cheery: well, C-like languages are a bad choice, because they usually have few levels of expression nesting 18:43:09 though yeah. it boils down to an interesting form of lisp. 18:43:13 meaning your tools have less to work with 18:43:19 pikhq: I never really understood the attraction in American football, by the way; which is interesting because I prefer baseball to pretty much all sports which are commonly watched in the UK 18:44:04 13:16:09 "LoseThos can update full screen at 30fps without much effort because it's only 640x480x16 color." 18:44:04 13:16:19 isn't that a bit low for modern systems? 18:44:04 it redraws the screen every frame, because it's LoseThos and he's clinically insane 18:44:12 elliott: oh, right 18:44:16 elliott: I also thought about doing a first run with the language I think would fit best for the editor configuration. 18:44:16 My supervisor is from Pakistan, he was too late for a meeting today because he stayed up for a long time to watch a cricket game 18:44:19 ais523: Baseball's a sport I've not really gotten *that* much into, but I will admit that it's pretty fun to watch in a stadium. 18:44:34 pikhq: really? I'd imagine you couldn't much tell what was going on live 18:44:45 that usually seems to be the case, I generally prefer to watch sport on TV for that reason 18:44:57 although I have a feeling that I'm potentially missing the point 18:44:57 ais523: Admittedly, I've only gone to minor league games, which have rather smaller stadiums. 18:45:03 elliott: that'd be using graph reducing with controlled side-effects. 18:45:06 * kfr hasn't owned a TV in 11 years 18:45:17 Cheery: I think side-effects would be a distraction for this 18:45:25 -!- cheater99 has joined. 18:45:30 Cheery: ideally, you'd be able to press an "evaluate" key at any point in the tree, and see just that subtree reduce to a simpler form, e.g. to the side 18:45:30 (there's a minor league team in town; family's gone there a few times. Fun and cheap. Yay.) 18:45:35 side-effects would destroy that a little bit 18:45:36 I don't think I've owned a TV ever, although my parents own at least one 18:45:38 and I feel it could be useful for debugging 18:45:42 and so I can watch it like that if necessary 18:45:57 I own a TV tuner card. It is permanently attached to my PS3. 18:46:29 If my monitor were HDMI, I'd just have a switchbox instead. Ah well. 18:46:46 the TV situation in the UK is a bit weird, because all the major channels do things online (restricted to residents of the UK) nowadays 18:46:54 I think channels 4 and 5 just put their stuff up on YouTube 18:47:06 well.. getting to keep on this kernel stuff yet a while. I try to get memory management, scheduling and driver interface done. :) 18:47:09 BitTorrent obsoleted television. :p 18:47:15 Cheery: Oh, you are implementing this in an OS? 18:47:18 Cheery: Cool! 18:47:19 In the US, the major channels are still needing to be convinced that it's a good idea to put stuff online. 18:47:37 First, there was Hulu, which got basically everything. Then they started to make Hulu suck. 18:47:53 elliott: well.. more like I plan implementing an OS with it. 18:47:58 ;) 18:48:02 I prefer analog television, it works. 18:48:13 But I do not watch television much. 18:48:16 and only after then implement the editor itself in the OS. 18:48:23 zzo38: not for much longer, at least in the UK; they're in the process of switching analog transmitters off at the moment 18:48:25 I ONLY WATCH TELEVISION ON AN ANALOGUE, BLACK-AND-WHITE SET FROM 1949 18:48:27 to free up the bandwidth for other things 18:48:37 WITH A 2" SCREEN AND TWENTY KNOBS THAT YOU USE TO CHANGE FROM CHANNEL 1 TO CHANNEL 1 AND BACK 18:48:39 WHICH WAS ALL THEY HAD IN THOSE DAYS 18:48:44 IT DOESN'T HAVE SOUND, THEY HADN'T INVENTED SOUND YET 18:48:45 It's like they don't even realise that if people can't watch it easily online, they'll either say "fuck that" or pirate it, rather than pay money. 18:48:52 IT'S ALSO GREY BECAUSE THEY HADN'T INVENTED COLOUR YET 18:49:15 elliott: well, /mine/ was invisible because they hadn't invented grey yet either 18:49:16 pikhq: most people aren't very good at piracy 18:49:29 elliott: Thus why "fuck that" is an option. 18:49:32 ais523: When the dinosaurs were around, we didn't even have radio, dammit. 18:49:36 Neither colours nor sounds had been invented. 18:49:39 Everything was just TRANSPARENT. 18:50:04 elliott: BTW, I consider watching illegal Youtube uploads as "pirating it" for purposes of this discussion. 18:50:05 Yeah, I encountered Cheery in #osdev 18:50:31 elliott: Although technically just *watching* it is entirely legal. 18:50:57 pikhq: hmm, I never realised that the breaks in proffessional American football were deliberately lengthened to make room for adverts 18:51:03 Legality is relative, it depends on local legislation 18:51:05 I always assumed the referees were just bad at making decisions 18:51:06 ais523: That is one of the suckier aspects. 18:51:39 kfr: Most copyright laws do not make it illegal to obtain something that was illegally reproduced; it is merely illegal to actually do said reproduction. 18:51:56 it used to be hilarious watching US baseball games in the UK; due to the time difference and differences in advertising, they managed to fit in all the coverage that the US broadcast had (they just streamed with permission from ESPN), and did all the UK-extra things in the US ad breaks 18:52:27 in other words, they basically fit an entire baseball discussion program - discussion, commentary, reading viewers' letters, etc. - into the ad breaks of the US version 18:52:42 They probably do that to US football, too. 18:52:53 pikhq: but there's a copy in your computer's RAM! <--- actual (yet stupid) precedent from the Blizzard vs. Glider devs case 18:53:23 ais523 lol I am familiar with that one 18:53:48 There's been a series of new lawsuits by Blizzard against some other people recently, three of which I know 18:53:54 ais523: I don't know how that interacts with the *actual law* stating that copying into RAM for purposes of utilisation are not regulated by copyright law. 18:54:04 About StarCraft II, I think 18:54:16 hmm, what did they do to annoy Blizzard wrt that? it presumably wasn't botting 18:54:19 maybe cheating? 18:54:26 or using unlicensed copies? 18:54:46 ais523: Selling cheats for SC2 18:54:56 ais523: let me find a relevant comic... 18:55:00 ah, as in patches that made cheating possible? 18:55:05 elliott: why bother, I'd be unlikely to actually read it 18:55:05 Aaaand there's precedent that creating a derivative work using a cheat device is fair use. 18:55:11 (Nintendo v. Galoob, IIRC) 18:55:29 Sorry, Galoob v. Nintendo. 18:55:30 ais523: WHO SAID IT WAS OPTIONAL 18:55:47 ais523: Usually they are external programs which inject stuff into the target process and then terminate 18:55:47 pikhq: and reverse-engineering a copy-protection scheme for the purpose of circumventing it used to be legal, until they specifically banned it via the DMCA 18:55:55 I'm not entirely sure how these operate really 18:56:07 SC2 has some pretty sophisticated protection 18:56:18 With a messed up VM with randomised opcodes etc 18:56:19 ais523: Sadly, yes. 18:56:22 grr, I can't find the comic 18:56:24 ais523: Fuck the DMCA. 18:56:26 and you could even copy a trademarked logo for the purpose, if it was needed as a signing key 18:56:36 pikhq: it has some good ideas, but a lot more bad ideas 18:56:47 ais523: Actually, *that* is entirely legal. 18:56:50 I've only worked my way around Warden in Diablo II, which was quite easy though 18:56:57 Never dealt with any sophisticated systems like that 18:57:07 I don't have the citation handy, but that's actually been in court. 18:57:11 Or the ones which operate at a kernel level with their own signed drivers 18:57:18 pikhq: indeed, there's precedent like that; although I'm worried about SCEA vs. Hotz, where the accusation is basically that except with the trademark 18:57:34 *without the trademark 18:57:50 Heh, I know some people who do PS3 hack dev 18:57:52 Something about a printer cartridge having a very small amount of code in ROM, and it was successfully argued that copying this ROM did not consist of a circumvention device. 18:57:52 19:07:46 pikhq: hmm, I never realised that the breaks in proffessional American football were deliberately lengthened to make room for adverts 18:57:53 *professional HAHA 18:57:57 I have no interest in consoles myself 18:58:15 elliott: you know what, I wrote it with one f, got confused, then changed it 18:58:17 19:11:05 hmm, what did they do to annoy Blizzard wrt that? it presumably wasn't botting 18:58:17 oh, that was in reply to kfr 18:58:22 my spellchecker seemed to be happy in both directions 18:58:40 this "POTATO" -language looks like pretty fun 18:58:43 but it sometimes randomly decides not to check at all, or to draw the red underscores outside the text box where they're occluded by the rest of the window 18:58:52 but he doesn't seem to concern editing at all! 18:59:15 sometimes when I design a language I don't even worry about source code format 18:59:23 e.g. DownRight, which I suspect /still/ isn't on the wiki 18:59:24 Copyright law is *so* fucking nuts. 18:59:29 (and completely unenforcable) 18:59:32 pikhq: s/Copyright // 18:59:37 I think one of my relatives is an IP lawyer :/ 18:59:47 He probably sues people like me for a living 18:59:49 ais523: At least the *premise* of most law is still workable. 18:59:58 pikhq: good point 19:00:31 Copyright law nowadays is broken all the way down to the very idea. 19:01:07 hmm, reading a comparison of American football and rugby, you often wonder how rugby players manage to move the ball forwards at all, because what the attacking side can do seems like a subset of what they can do in American football, whereas the defending side seem to have much the same abilities or better 19:01:37 ais523 and they have far less protection lol 19:01:42 Well, they certainly manage to. And did in American football before the legalisation of the forward pass. 19:01:46 I think injuries in Rugby are more common 19:02:02 the sorts of contact are less dangerous, though; in rugby, you have to aim for the legs 19:02:05 (amusingly, this was done for the sole purpose of reducing injuries.) 19:02:10 Oh, ok 19:02:10 whereas in American football, I think you can aim anywhere 19:02:27 ais523: Certain forms of contact are barred, though. 19:02:33 a "rugby tackle" is actually a sort of tripping people using your arms 19:02:52 IIRC, hitting someone with your helmet is a major penalty. 19:03:20 that would make sense 19:03:42 ISTR that in ice hockey, there's a rule against removing your sweater (and they're actually tied down to stop the players doing it) 19:03:59 because it used to be an optimal strategy to prevent your opponents hanging onto you while trying to beat you up 19:04:33 (probably the best rule of that nature, though, is the rule against transparent swimming costumes in synchronized swimming; it's the sort of rule that makes you think that it must be there for a reason) 19:04:57 o_o 19:05:11 Why don't they permit nude swimmers? Prudes 19:05:18 ais523: also, you can't pull someone down by their helmet. 19:05:32 kfr: I don't see how being naked would violate a rule against transparent swimming costumes, although perhaps only because I'm overly literal 19:05:52 Well, I suppose they want to prevent nudity 19:06:03 American prudishness and all. 19:06:06 :P 19:06:09 nah 19:06:21 I think I've got the fundamental difference between American football and rugby, anyway; in rugby, if you're tackled you have to drop the ball, but if a team-mate picks it up they can just pass it sideways and keep on going 19:06:27 it's just that waving your boobs around gives you an unfair advantage 19:06:27 and that happens quite a lot in rugby union 19:06:37 they're supposed to be rewarding skill, not biology 19:07:01 Or penises 19:07:04 ^ul (:(1)*(:(2)*(:(3)*(:(4)*(:(5)*(:(6)*(:(7)*(:(8)*(:(9)*(!~:^)))))))))):(~^~(~a~*~a~*)~a*^:(0)*)~a*~:(a(:^)*())~*a(:^)*~()~^~((!^~)())((~:(, )*S~:(^~!^)~a*^:^*a~^!a*)~a*^:^):^ 19:07:05 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, ...out of time! 19:07:11 (in rugby league, you're limited to doing it four times between change of possession, meaning it's common to kick on the fifth tackle just like american football often punts on the fourth down) 19:07:25 oerjan: you're really having fun with that, aren't you? 19:07:30 :) 19:07:33 And in American football, if you're tackled you stop play. 19:07:39 kfr: male synchronized swimmers? :P 19:07:49 quintopia I'm sure it exists? 19:07:57 quintopia: It definitely exists. 19:07:58 pikhq: indeed 19:08:09 I mean if there's an Olympic category for women 19:08:13 There must be one for men, too 19:08:25 Otherwise that would be discrimination :'( 19:08:29 yeah of course it exists. but it's still not a common thing to expect. 19:08:36 one interesting difference, incidentally, is that in rugby you can still do the equivalent of a field goal, but have to bounce the ball and kick it on the rebound, in order to make it more difficult 19:08:48 because otherwise, people would get them all the time, the way the offside rule works 19:08:55 ais523: anyway, my underload compiler is going well 19:09:01 ais523: it's even the first one to follow the standard entirely 19:09:05 yay! 19:09:10 first implementation, that is 19:09:12 ever 19:09:20 * elliott waits for ais523 to ask 19:09:22 does it handle literal NUL correctly? 19:09:30 I think so, but that's not what I mean 19:09:44 oh, well, I don't think it can print them out on the C side, although it might actually end up being able to for various reasons 19:09:45 (Underload doesn't special-case it, but most things do, so it's worth checking) 19:09:47 Is it about the stuff that the wiki says no one impleemnets? 19:09:49 I thought there was no rules in american football 19:09:50 implements 19:09:53 Sgeo_: indeed 19:09:55 in fact, I think it fails on invalid Unicode, but that's a bug I need to fix 19:10:00 ais523: not going to guess how it's compliant? 19:10:06 elliott is definitely referencing the " quoting stuff 19:10:17 ais523: yep 19:10:20 Cheery: well there have to be some rules, or you wouldn't be able to tell who'd won 19:11:22 Cheery: It's got rules that evolved out of rugby. 19:12:42 I thought there was no rules in american football <- err what? 19:12:46 elliott: wow, Wikipedia seems to have solved the debate about what [[football]] should mean by writing a full article at every plausible title 19:12:47 There are tons of of rules 19:12:56 [[football]] itself is a comparison of different games called "football" 19:13:08 kfr: you're showing a Vorpal-like level of missing the point there, I think 19:13:10 How would you be able to have any kind of formal competition otherwise? 19:13:14 they call football "association football" 19:13:14 Cheery was trying to make a joke 19:13:15 Dammit. In my current vision of GoTris, single eyes are just as alive as two eyes 19:13:26 don't be stupid, jokes are for academics 19:13:40 http://en.wikipedia.org/wiki/Vorpal_sword ? 19:13:48 How are you supposed to play football if there are no rules? 19:13:55 19:24:58 I mean if there's an Olympic category for women 19:13:55 19:25:02 There must be one for men, too 19:13:55 19:25:14 Otherwise that would be discrimination :'( 19:13:55 are you saying it _wouldn't_ be discrimination? 19:13:58 it very obviously would be 19:14:02 zzo38: The way it used to be done. With much violence. 19:14:05 kfr: Vorpal's a user in this channel, although I think that might have inspired the nickname 19:14:25 -!- Sgeo_ has changed nick to Jabberwock. 19:14:30 -!- Jabberwock has changed nick to Sgeo. 19:14:48 elliott: famously, in Olympic beach volleyball, there are restrictions forcing the women to wear skimpy clothing, but men are allowed to wear as much as they like 19:14:53 zzo38: how are you supposed to play 1kbwc? how are you supposed to play calvinball? 19:14:56 ais523: haha, that's terrible 19:15:00 I think they have some maximum amount of skin that's allowed to be covered, or something stupid like that 19:15:27 Do they attempt to justify those restrictions? 19:15:38 Sgeo: "We dislike fundamentalist Muslims" 19:15:40 I naturally assumed upon hearing that there were clothing restrictions that they were to stop the competitors revealing too /much/... 19:15:44 (just a guesse) 19:16:44 * Sgeo is still hungry 19:16:49 This is probably a good thing 19:17:32 i think the justification is "we want people to actually tune in on TV" 19:18:40 Wouldn't restrictions on how much the guys can wear get the ladies to tune in? Or is there some sort of difference between guys' interest in ladies and ladies' interest in guys? 19:18:48 * Sgeo is a bit confused on this point 19:19:09 the difference is you don't have to have a rule to convince guys to take off their clothes 19:20:50 pikhq: *guess btw 19:21:24 quintopia: well, male beach volleyball generally wears a shirt and shorts 19:21:50 ais523: hey, can you relate some horror stories about the NetHack source code? 19:22:01 Oh, you could do a struct map_flags { } with independently named single-bit bitfields. Didn't you want real bitfields in there somewhere? 19:22:01 Even NetHack has bitfields! 19:22:07 fizzie doesn't have the adequate fear of God in him. 19:22:13 elliott: if you like; do you know about the famous Yeenoghu touch of death bug? 19:22:30 ais523: no, and nor does fizzie, and he wants to know! in _detail_ 19:22:32 elliott, that reminds me of UF 19:23:00 it's probably easier to read the explanation in the wiki than to have me relate it: http://nethackwiki.com/wiki/Yeenoghu#.22A_ludicrous_bug.22 19:23:18 yes fizzie, read all of that! 19:23:40 sgeo: i haven't read that in a long long time. 19:23:47 ais523: hmm, death kills you on touch? 19:24:01 kfr: Vorpal's a user in this channel, although I think that might have inspired the nickname <-- uh? 19:24:18 /sigh 19:24:27 but tl;dr: a switch statement had a case with a fallthrough, extra code was added just /after/ the fallthrough without the devs noticing, everyone assumed it was deliberate due to the /* fall through */ comment 19:24:40 Vorpal: I mentioned you, kfr wondered if it was a Vorpal Blade reference 19:24:42 oh found the context now 19:25:01 hmm, nethack has a curses interface? 19:25:09 looks ugly 19:25:17 -!- Sgeo has changed nick to Jabberwocky. 19:25:18 elliott, what does it *normally* use? 19:25:25 Vorpal: terminal escapes 19:25:31 elliott, heh 19:25:38 ais523, didn't see the first mention. Strange 19:25:39 elliott: Death can kill you on touch, but if you're immune to that, and you generally are by the time you reach him/her/it, it drains max HP instead 19:25:42 long ago? 19:25:44 hmm, /me ponders vandalising the old nethack wikia once the moving notice is removed 19:25:46 Vorpal 19:26:01 Jabberwocky, that highlights 19:26:01 elliott: don't bother, anons are doing that enough by mistake as it is 19:26:05 ais523: heh 19:26:06 oh wait, it was inside a word 19:26:21 seems "Vorpal-like" didn't highlight me. 19:26:22 there was someone who was going around "correcting" the source code quotes by changing Sprintf to sprintf and removing unnecessary parens 19:26:23 strange. 19:26:44 ais523, ever played df btw? 19:26:49 which is incorrect in that it's a semantic difference, /and/ incorrect in that it's a quote 19:26:53 ais523: I meant more the kind of vandalism that made the pages useless, to avoid nethack.wikia.com becoming a wikia ghost town 19:26:53 Vorpal: no, but I know quite a bit about it 19:26:56 hmm 19:26:59 This is weird 19:27:01 elliott: that'd likely be noticed and reverted 19:27:09 (i.e. a place that people read and very occasionally edit because they don't have any clue that the wiki moved) 19:27:14 ais523: well, yes, thus "ponder" 19:27:14 I think NickServ's either asleep or dead. 19:27:14 ais523, I think you would like it. Though I'd like to add that nethack is probably easier 19:27:27 also, Tjr (sort-of chief admin on nethackwiki) thinks that doing that will only give them page rank 19:27:30 nickserv works for me 19:27:39 Vorpal: it's not open-source, that removes half the fun in the game for me 19:27:48 NickServ threatened to change my nick 19:27:51 It still hasn't done so 19:27:52 I'm not an RMS-level open source fan, but I consider it a feature, and one that adds quite a bit 19:28:05 ais523, like being able to check how it works? 19:28:07 Jabberwocky: still doesn't mean you should go around stealing other people's nicks! 19:28:15 ais523: I think the source code to DF would be almost useless 19:28:18 as the logic is so hideously complex 19:28:25 Vorpal: yep; and write patches, and look for exploits 19:28:35 -!- Jabberwocky has changed nick to NotTheRealJabber. 19:28:38 ais523: DF has mods 19:28:41 ais523, heh 19:28:47 ais523: so you can do the former, pretty much 19:28:48 Yes, I'm not really XMPP 19:28:48 -!- cheater99 has quit (Ping timeout: 240 seconds). 19:28:48 elliott, actually parts are quite straight-forward in df 19:28:52 Believe it or not 19:28:53 Vorpal: for instance, I wrote this today: http://tasvideos.org/GameResources/DOS/NetHack.html#TimeSystemAbuses 19:29:12 ais523: OK, you can't read the code, but you can clearly modify it, although I'm not sure how 19:29:14 most games are pretty hard to analyse in that level of detail 19:29:14 elliott, that is because as far as I can tell df behaviour is pretty much controlled by a text config files 19:29:17 perhaps it has an API 19:29:18 elliott, the moding that is 19:29:24 hm, really 19:29:24 ? 19:29:28 -!- cheater99 has joined. 19:29:29 must be very in-depth files then 19:29:46 elliott, yeah the definition of what a dwarf is is 400 lines it seems 19:29:55 I'm relatively happy with Neverwinter Nights; it's half open source in that it's an engine + a game written in that engine, the engine is closed-source but the files it actually runs are visible-source 19:30:00 elliott, lines like: 19:30:02 [BODY_DETAIL_PLAN:STANDARD_MATERIALS] 19:30:02 [BODY_DETAIL_PLAN:STANDARD_TISSUES] 19:30:06 heh 19:30:08 (i.e. no redistribution rights, but you can look at it and change it locally) 19:30:09 [BODY_DETAIL_PLAN:FACIAL_HAIR_TISSUES] 19:30:10 [BODY_DETAIL_PLAN:STANDARD_HEAD_POSITIONS] 19:30:18 heh this is extreme: 19:30:21 [USE_MATERIAL_TEMPLATE:SINEW:SINEW_TEMPLATE] 19:30:21 [TENDONS:LOCAL_CREATURE_MAT:SINEW:200] 19:30:21 [LIGAMENTS:LOCAL_CREATURE_MAT:SINEW:200] 19:30:23 "standard head positions" sounds like like df 19:30:28 ais523: Asteroids II comes with full source code and rights to distribute changed versions to those granted the same license 19:30:33 ais523: (and rights to distribute /patches/ to anyone) 19:30:41 :P 19:30:49 a comment says it has sinew only for wounds simulation to work out 19:30:51 elliott: hmm, that's pretty close to open source except with the existing-license requirement, I like it 19:30:52 very very df 19:30:56 -!- me2ufool has joined. 19:31:00 elliott, ooh nails are mentioned in there! 19:31:06 hi 19:31:10 in fact I was wondering about something similar myself if I ever needed to make money from a program 19:31:11 hi me2ufool 19:31:12 ais523: and you can also sell your changed versions 19:31:19 so long as you make sure the buyer owns the original game 19:31:26 elliott: that's typical of open source, isn't it? 19:31:29 ais523: but all distributed changes must be "open source" 19:31:38 although very unusual for commercial, I think 19:31:40 ais523: except, you can choose one of two licenses 19:31:56 ais523: either you can release your changes under what essentially amounts to the GPL, or the same license I'm talking about 19:32:18 i.e., you can make your own extensive commercial mod of it, as long as you use the same license 19:32:22 or you can just release it "normally"/ 19:32:26 s/\/$// 19:32:30 ais523: now the two issues with this are 19:32:35 (1) Asteroids II doesn't yet exist, and 19:32:35 elliott, but how do you as the original author make money of it? 19:32:38 (2) Asteroids II doesn't yet exist. 19:32:43 Vorpal: by selling it 19:32:50 the source is available only to those who purchase it 19:33:03 elliott, but one could make a mod that patches pretty much every line a bit then release that under the GPL variation? 19:33:10 elliott: err, being nonexistent is a little ridiculous there 19:33:15 so you would in effect sell just one copy 19:33:21 ais523: well, don't blame me, blame Phantom_Hoover! 19:33:24 elliott, or did I miss something? 19:33:29 Vorpal, same as closed-source? 19:33:31 Vorpal: the whole point of it being a "patch" is that you can't reconstruct the original 19:33:32 Vorpal: well, possibly, but i find that incredibly unlikely... and there'll be some sort of reasonability clause in the patches 19:33:35 it's not a patch any more if you can 19:33:38 right, what ais523 said 19:33:48 ais523, yes well, what about diff context. 19:33:48 you can't have a bunch of -s followed by the original lines, and then a massively changed version 19:33:59 Vorpal: it depends on your intent, etc. 19:34:19 Vorpal: ais523: (this arose after I tried to figure out how a games company could be even more Good(TM) than Introversion) 19:34:39 oh, the third problem with Asteroids II is that it's not written in a language anybody knows or has a compiler for. :p 19:34:45 elliott: I don't really believe in good/evil companies, individual companies tend to be so inconsistent in the matter 19:35:10 Vorpal: I'd imagine people like romhackers would go to huge lengths to make sure that the diffs didn't contain context at all 19:35:19 elliott, hm a bit tricky to define that. Okay it is clear cut if you do it as one patch. But what if there are a number of separate patches (possibly different authors) that lets you reconstruct the complete source due to covering it all (or so much of it that the rest would be trivial to implement) 19:35:44 ais523, hm then it is difficult to be sure that it applies correctly 19:35:46 Vorpal: you don't have to make a program that can tell you if the patch is illegal or not, that's what judges are for 19:35:59 Vorpal: release a hash of the modified version 19:36:06 ais523: context in patches would of course be allowed 19:36:07 hm 19:36:18 ais523: but really, the most convenient thing to do would be to only post it in a place where you can reasonably assume everyone owns the game 19:36:24 ais523: e.g., in some "purchasers only" forum 19:36:31 then you can post as much context as you like 19:36:55 ais523, well what if someone wants to apply two different patches. A lot of work then. I guess you could reconstruct each separately locally and create a context patch and then try to apply them. Then make a context free one of the result 19:36:57 or such 19:37:22 elliott, that might work better indeed 19:37:39 Vorpal: do you know what happens if you try to apply two different patches to machine code? 19:37:57 elliott, don't forget to breathe 19:38:24 ais523, unpredictable results I would imagine! 19:38:58 -!- NotTheRealJabber has changed nick to Sgeo. 19:39:25 ais523: people manage it with minecraft 19:39:27 except it's java bytecode 19:39:39 elliott, and it is generally problematic if in the same class file 19:39:45 elliott: java bytecode isn't so full of literal offsets, IIRC 19:39:59 Even if I intend to earn money from a program, I would still probably just license it under the GPL, and put some trademark restrictions, printed documentation, and so on. 19:40:01 Vorpal: eh, better light/grass works with mipmapping 19:40:08 they share classes 19:40:13 (this was even before it used modloader) 19:40:24 elliott, they touch the same .class? How do you do it without modloader then 19:40:32 manually creating a combined version? 19:40:47 Vorpal: you copy the mipmapping class in, and then use the better light/grass *patcher* 19:40:48 -!- azaq23 has joined. 19:40:49 which patches the bytecode 19:41:14 elliott, another df definition example: 19:41:16 [ATTACK:SCRATCH:CHILD_TISSUE_LAYER_GROUP:BY_TYPE:GRASP:BY_CATEGORY:FINGER:NAIL] 19:41:16 [ATTACK_SKILL:GRASP_STRIKE] 19:41:26 [.. several lines cut out here ... ] 19:41:30 :D 19:41:47 I would ensure the trademark license allows using these trademarks for compatibility reasons, in case you live in a country which does not permit it by fair use or that the trademark laws are changed later on to deny this type of fair use, to ensure that my trademarks still remain fair. 19:41:53 elliott, oh and comments seem to be any line *not* starting with [ as the first non-whitespace 19:42:30 Vorpal: perhaps ]\n ... \n[ is the comment marker? 19:42:31 * Sgeo wonders if it's safe to remove a key from this keyboard 19:42:52 2010-02-04 20:00:00 :elliott!~elliott@unaffiliated/elliott PRIVMSG :hello, world! 19:42:53 guess the format 19:43:04 zzo38: So, in sum, "don't be an asshole" would be your policy. 19:43:15 pikhq: reminds me of JSON 19:43:19 ais523, don't think so... Since there is a comment before the first [ in some files, and none in other ones 19:43:37 ais523, and it would be weird to start a file with a end comment marker 19:43:39 an* 19:43:44 Vorpal: that makes a lot of sense, actually 19:43:48 Gregor: as someone presently eating weetabix, I must kill you 19:43:56 ais523, and it would be weird to start a file with a end comment marker 19:43:59 literate dwarfing 19:44:03 elliott, XD 19:44:12 I'm pretty sure I had plans for a "comment backwards to start of file" pp-directive in Overload 19:44:15 elliott, there aren't enough comments to claim it as literate 19:44:34 in fact, there were something like 32 or 64 different sorts of comment markers, they contained a bitfield with options for how far they commented in each direction 19:44:40 and precedence, etc 19:44:51 ais523, heh. 19:44:53 so you could use a more urgent sort of comment if there were things that looked like comment markers in your comments 19:45:02 :D 19:45:02 I forget the details, although I was aware at the time that it was insane 19:45:15 ais523, now I know why overload is still vapor ware. You spent too long on designing comments to get anywhere 19:45:17 XD 19:45:28 Vorpal: oh, the whole thing was probably inherently unworkable 19:45:30 hypothesis: if someone's first five languages were esolangs, they'd turn out like ais523 19:45:53 but it's a real ancestor of underload (underload is simply one of the many possible tarpits that's a restriction of overload) 19:46:02 elliott, you mean he learned an esolang before any main stream language? 19:46:11 elliott, or that he created esolangs first 19:46:21 Vorpal: no, he didn't, but he's like someone who did (the former) 19:46:26 hah 19:46:32 Vorpal: well, I don't think my first few languages were esolangs, but at least one was moderately insane 19:46:38 (a database scripting language called PAL) 19:46:41 ais523: I've been trying to figure out what the "quintessential esolangs" are in my opinion 19:46:55 ais523: brainfuck, INTERCAL, Underload, Unlambda are what I've thought of so far 19:46:58 maybe those are the Big Four 19:47:08 *and Unlambda 19:47:12 INTERCAL isn't on that list for me, it's on a different list 19:47:12 elliott, befunge is pretty big too 19:47:16 oh, yes, befunge 19:47:17 along with Befunge 19:47:20 ais523: brainfuck, INTERCAL, Underload, Unlambda and Befunge are what I've thought of so far 19:47:23 ais523: really? 19:47:25 what list is that? 19:47:34 I'm pretty much listing the "classics" here 19:47:45 (yes, I think Underload counts as a classic -- I'm surprised it took until 2006 to invent it) 19:47:46 well, there are two ways an esolang can become classic 19:47:57 computational interest, like brainfuck/underload/unlambda 19:48:01 elliott, presumably non-tarpits. Neither intercal nor befunge are tarpits really 19:48:22 and general insanity that catches the minds of a great number of people, like intercal, befunge, brainfuck 19:48:29 I'm happy to put brainfuck in both lists there 19:48:30 heh, a duplicate there 19:48:44 I suppose LOLcode should be in the second list too, much as I'm loathe to put it anywhere 19:48:46 ais523: well, if someone asked me "I want to learn esolangs; which should I look at first?" I'd answer "brainfuck, INTERCAL, Underload, Unlambda and Befunge(-93)" 19:48:51 (-98 isn't a classic) 19:49:00 ais523, arguably compiling befunge is computationally interesting (for some definitions of computationally). 19:49:03 I think -98 is inherently more awesome than -93, though 19:49:30 elliott: OK that is not a bad choice I guess 19:49:42 ais523: well, -93 is more of a tarpit 19:49:44 and more of a classic 19:49:51 -93 isn't really a tarpit 19:49:52 I wouldn't tell someone to look at -98 before -93, that's just silly 19:50:00 in fact, being not a tarpit is the whole point of Befunge, I find 19:50:00 ais523: it's more of a tarpit than -98! 19:50:10 -98 is amusing but it's not more awesome than -93 I don't think 19:50:12 thus -98 is befungier than -93 19:50:22 -93 is annoyingly limited, -98 is almost practical 19:50:27 http://catseye.tc/projects/befunge93/eg/wumpus.bf <-- this is why -93 is a classic 19:50:28 -93 is a non-Turing tarpit. 19:50:29 :) 19:50:38 elliott: I'd say it's the program itself that's awesome there 19:50:41 elliott, 1) as ais said 93 is no tarpit. 2) where does it say it has to be tarpit-ish to be an esolang? 19:50:45 ais523: I don't care what you think, you're wrong :P 19:50:48 for managing to do that despite the limits of -93 19:51:01 ais523: that's like saying brainfuck isn't an esolang, just every brainfuck program is 19:51:10 elliott, would you actually suggest learning INTERCAL btw? 19:51:20 Vorpal: no, but I'd suggest looking at it 19:51:23 and reading the manual, probably 19:51:28 Vorpal: I'd suggest it, especially modern INTERCAL as opposed to INTERCAL-72 19:51:37 although reading the original manual first is probably better to get the attitude right 19:51:39 ais523: the manual is the main reason to look at INTERCAL 19:51:40 elliott, I suspect you could be held legally liable for any insanity caused by suggesting someone learning INTERCAL! 19:51:41 Vorpal: I would suggest it. But it is OK to write only one program with it if that is what you want to do. 19:51:42 I don't think INTERCAL is really worth learning 19:51:49 learning /about/, yes, but not learning 19:51:53 elliott, ah 19:52:00 elliott: a pity, really; the control flow model in modern INTERCAL is really interesting 19:52:02 heck, I can't even write non-trivial BF programs 19:52:08 in fact, I sometimes find myself wishing for it in real languages 19:52:15 but _writing programs_ in BF is boring 19:52:20 elliott, can you write a non-trivial befunge program? 19:52:28 if only INTERCAL had remotely sane expressions, in addition to what it actually has, and some sort of string handling, I think it'd be a practical lang 19:52:32 elliott, also yeah the fun part with BF is writing optimising compilers 19:52:42 The features of INTERCAL are not really completely different from other programming languages, but they are different from most. Three of the features of INTERCAL are in dc as well. And some machine has something like the INTERCAL select operator. 19:52:50 Vorpal: no, I don't know Befunge at all 19:52:53 ais523, with remotely sane expressions it wouldn't be INTERCAL at all 19:52:59 probably Underload is my best esolang, and I'm not very good at that, either 19:53:03 zzo38: indeed, it failed slightly at its goal, but it has other goals 19:53:04 I've never been one for writing substantial esolang programs 19:53:15 Vorpal: well, INTERCAL isn't so much about being difficult, as about being different 19:53:19 elliott, so you are more an implementer of esolangs? 19:53:20 zzo38: Well, dc is definitely a tarpit. :) 19:53:21 elliott, Befunge isn't terribly complex. 19:53:26 Vorpal: well, "enthusiast" 19:53:34 sometimes that means being difficult for the sake of it, but ideally it'd be better and still find its own niche 19:53:35 Phantom_Hoover: Someone hasn't seen -98. 19:53:48 or -108! 19:53:59 pikhq, uh. That is complex to implement, but not really complex to code in 19:54:00 pikhq: The features I refer to are: STASH RETRIEVE RESUME 19:54:00 Vorpal: how are you doing on that spec, btw? presumably it should be -111 by now 19:54:01 pikhq, yes, but even then you can get the basics easily. 19:54:05 or shall we just call it -11x 19:54:20 ais523, you missed out the developments last spring? 19:54:21 #define PUSH(i) ... 19:54:21 #ifdef NDEBUG 19:54:21 #define INVALID(s) 19:54:21 #else 19:54:21 #define INVALID(s) fprintf(stderr, "\n*** Invalid code, aborting: %s\n", s); exit(1); 19:54:21 #endif 19:54:23 #define TYPE_0 T_QUOT 19:54:25 #define STR_0 "(:aSS):aSS" 19:54:28 #define STR_LEN_0 10 19:54:29 quo_0 : 19:54:31 PUSH(1) DUPLICATE ENCLOSE OUTPUT OUTPUT 19:54:33 return; 19:54:35 yay 19:54:37 oops, slight flood 19:54:40 zzo38: it's a pity dc doesn't have ignore, or we could run an ignorret test on it to see what happened 19:54:41 ais523: cpressey came in, decided to make his own Befunge-111 because he hates everyone, started doing it 19:54:42 ais523, with cpressy starting on a new more stringent definition. 19:54:46 then gave up after Vorpal complained it was so different from -98 19:54:53 elliott, no I didn't really... 19:54:59 well, that's why he gave up. :p 19:54:59 elliott: ouch, I'd like to have seen it 19:55:04 among other reasons, I guess 19:55:06 ais523: it might still be up 19:55:09 elliott, I suggested it was an awesome idea but maybe it wasn't befunge any longer 19:55:12 iirc 19:55:16 Vorpal: like Perl 6? 19:55:24 I have once when writing a QBASIC program, wanted to have something like the DO RESUME #2 in INTERCAL, but QBASIC has the RETURN command is allowed to return to a specific label, so I made it return to the next line and then do normal RETURN after that. 19:55:31 ais523: possibly, one of his three latest fungoid-esques are descendants of -111 19:55:32 ais523, more different than that actually 19:56:19 ais523, anyway what we need is a technical corrigendum and clarification to 98 really 19:56:25 we don't even vaguely need that 19:56:26 At least two of my esolangs have been written about by Japanese people. 19:56:26 that would go a long way 19:56:30 nobody but you thinks we need that at all :P 19:56:30 elliott, oh? 19:56:33 I haven't been keeping track of catseye recently 19:56:37 (Note: I am not Japanese people) 19:56:49 elliott, well Deewiant probably agrees or have agreed with me when working on mycology 19:56:53 zzo38: RESUME #n is quite common in languages; it's RESUME .5 that makes the command interesting 19:56:56 ais523: http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt 19:57:06 Vorpal: people suck at interpreting the spec != we need a new spec 19:57:14 I'd say the difficulty of interpreting it is a feature 19:57:15 yay, at least it isn't HTML masquerading as XHTML 19:57:22 ais523: Yes, and dc can do that too 19:57:22 elliott, uh catseye couldn't interpret some parts of it any longer :P 19:57:27 elliott: well, ambiguities in the spec can do with fixing 19:57:28 Vorpal: more feature 19:57:32 elliott, I rest my case 19:57:38 ais523: cpressey broke half his site like that because pikhq bugged Gregor about him sending the wrong headers for about 5 years 19:57:42 pre-emptive, sort of thing 19:57:52 (So can TeXnicard; it is somewhat based on dc) 19:58:06 ais523: without me he wouldn't have had the .htaccess magic to get _some_ of the old html stuff working, anyway :P 19:58:11 not my fault he forgets >:D 19:58:16 ais523: cpressey broke half his site like that because pikhq bugged Gregor about him sending the wrong headers for about 5 years <-- wait, if pikhq bugged Gregor then why did cpressey get affected? 19:58:36 it was more inspiration, I think. or preemptive avoidance of bugging. 19:59:07 At least in my computer, I can just use C-V text/html 19:59:31 zzo38: most browsers don't have that feature, although I was looking for it when that happened 19:59:34 (I use C-V to override the content type heading sent by the server) 19:59:45 do you actually use it enough for it to be bound to a single control-letter combination? 19:59:45 elliott, what I have done in the past is set up the extension .xhtml with the right mime type 19:59:46 I don't see how http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt isn't Befunge 20:00:02 elliott, indeed that one is 20:00:03 it seems pretty faithful to me 20:00:04 ais523: Probably it is possible to make a extension for Firefox and maybe even other programs too, that you can do like that. 20:00:13 elliott, one of the previous versions was not 20:00:15 elliott: it breaks fingerprint nesting (as in, tame fingerprints are impossible by that definition if more than one exists), but that's probably just a bug 20:00:30 ais523: Yes, although it is control-shift-letter combination. 20:00:47 oh, by C-V you mean case sensitive V (so caps lock or shift)? 20:00:58 I didn't realize keyboards even distinguished the two 20:01:06 ais523: Yes, all key combinations are case-sensitive in this program. 20:01:28 (And C-v is just paste from clipboard) 20:01:38 they generally are but usually you seem to list them with shift then 20:02:34 I also use it when downloading a attached picture, some forum software marks it as application/octet-stream so I tell it to override the type to image/jpeg or image/png instead, so that it can be viewed. 20:02:43 I wish Ctrl+x/c/v were more common in Unix programs... the problem is that Ctrl+C is overloaded 20:02:44 zzo38: are they sensitive to num lock and scroll lock too? 20:02:46 Based on the definition of "unbounded" it sounds like interpreters should terminate if an integer over-/underflows 20:02:52 (the other two are as well, but much less often used) 20:02:56 elliott: don't think along those lines, you'll end up inventing the Mac 20:03:06 ais523: *inventing OS X 20:03:11 Deewiant: yep, but they get to choose what the range is 20:03:19 ais523: Not to scroll-lock, but the numpad keys effects depend on num-lock on or off. 20:03:20 ais523: I don't think separate control/command keys are a good idea; only for backwards-compatibility 20:03:24 elliott: I'm thinking more of separate command/control, which is a mac thing rather than an OS X thing 20:03:25 the solution is to change ^C to some other binding :) 20:03:27 although it's hard to tell 20:03:35 ais523: it's OS X; before that, Control did not much of anything 20:03:37 I think it was just an extra modifier 20:03:58 ais523: Sure, but if you implement things as 32-bit ints you're expected to abort() as soon as one wraps around 20:04:12 Deewiant: that would make sense, really 20:04:15 C does the same thing 20:04:20 ...no it doesn't 20:04:25 ais523, what 20:04:27 in that signed overflow is undefined behaviour 20:04:33 XD 20:04:33 is underflow? 20:04:35 true 20:04:36 yep 20:04:39 haha 20:04:43 well, nobody writes in C anyway 20:04:46 Maybe the Control key could also be used in some Telnet program or something, in order to send a control code. In OS X, it is UNIX, so Control-C will interrupt, and so on, same as UNIX. 20:04:51 they write in C-plus-extra-semantics 20:04:51 in general it tends to cause wrapping on modern systems, but crashing is entirely legal 20:04:51 elliott, use unsigned to get defined behaviour 20:04:53 such as, overflow working 20:05:03 I would love a strictly error-checking C compiler 20:05:03 on a DSP, saturating at the max or min value would be the most likely behaviour 20:05:10 bound-checking, over/underflow-checking 20:05:13 and C's used to write those too 20:05:16 all that silly stuff 20:05:17 Call it undefined then, but demanding crashing is a bit of a downer 20:05:17 elliott, uh actually gcc will use the overflow freedom to optimise loop conditions 20:05:23 Vorpal: haha 20:05:27 elliott: Doesn't GNU C can do strict error checking if you tell it do so? 20:05:41 elliott: indeed, if you start with a signed integer and only ever increment it, gcc will assume it never goes negative 20:05:46 elliott, it warns you if it detects unsafe cases. 20:05:46 and optimise away conditions like x >= 0 20:05:56 sometimes 20:06:08 zzo38: not bounds checking 20:06:09 zzo38: it has -ansi -pedantic, but it can't catch everything, it just checks a bit more strictly than normal 20:06:19 that would make any out-of-bounds access fail 20:06:21 at runtime, obviously 20:06:23 to be precise, -pedantic issues warnings wherever the standard requires them 20:06:26 ais523, I meant -Wstrict-overflow or whatever it is called 20:06:34 Vorpal: I have no idea on that one 20:06:47 the /standard/ defines /warnings to be emitted/? 20:06:48 *sigh* 20:06:59 ais523, iirc -Wall enables it 20:07:00 ais523: Then in the next version of GCC they have to fix it so that -ansi -pedantic will catch everything and make only standard C programs working 20:07:03 elliott: no, it defines "diagnostics" 20:07:11 ah yes man page says -Wall includes -Wstrict-overflow=1 20:07:11 heh 20:07:11 and it's up to the implementer to decide what they are 20:07:15 zzo38: impossible 20:07:18 you can't detect all out-of-bounds accesses 20:07:22 only at runtime 20:07:24 but it's normally interpreted as diagnostic = warning or error 20:07:45 -Wstrict-overflow=1 20:07:46 Warn about cases which are both questionable and easy to avoid. For example: "x + 1 > x"; with -fstrict-overflow, the compiler will simplify this to 1. This level of -Wstrict-overflow 20:07:46 is enabled by -Wall; higher levels are not, and must be explicitly requested. 20:07:54 then it goes up to level 5 20:08:01 warning about more and more stuff it optimises 20:08:05 I should make sure that's at 5 by default to see what happens 20:08:11 -!- ais523 has quit (Read error: Connection reset by peer). 20:08:22 there should be a -Wabsolutely-all 20:08:25 Also, in GCC, I cannot control the warning about casting numbers to pointers (or vice versa) without cast. I want to make that warning into an error (without making all warnings into errors), but I cannot do that. 20:08:32 that sets every single warning to maximum levels 20:08:37 -!- ais523 has joined. 20:08:43 ais523, uh level 5 is "Also warn about cases where the compiler reduces the magnitude of a constant involved in a comparison. For example: "x + 2 > y" will be simplified to "x + 1 >= y"." 20:08:47 did that peer reset my connection again? 20:08:54 ais523, yes 20:09:06 elliott, so any warning replaces your screen with the warning in Impact while it blares it from your speakers? 20:09:10 I'm wondering who that peer is, and what the reset pattern is 20:09:19 Phantom_Hoover: YES. 20:09:20 I think what it should do, is if the executable is named "cc" instead of "gcc" then it will imply all the options to specify working exactly by the C standard as much as possible. 20:09:31 ais523: it's ME 20:09:51 ais523: btw, maintaining a non-trivial C program as a Haskell string: brilliant idea? 20:09:51 hmm, x + 1 >= y is always a legal replacement for x + 2 > y, isn't it (although not vice versa)? 20:09:55 unlines [ "#define PUSH(i) ..." 20:09:55 , "#ifdef NDEBUG" 20:09:55 , "#define INVALID(s)" 20:09:55 , "#else" 20:09:55 , "#define INVALID(s) fprintf(stderr, \"\\n*** Invalid code, aborting: %s\\n\", s); exit(1);" 20:09:56 ais523, DON'T GIVE IN TO PEER PRESSURE 20:09:56 , "#endif" ] 20:10:01 elliott, I think there should be a -Wparanoid, which is like -Wextra + some other flags and just exludes those that give like 80% false positives 20:10:11 oh, the warning's in case x was MAXINT-1, in which case they'd be different in 2's-complement 20:10:24 Vorpal: -Wabsolutely-everything 20:10:27 Vorpal, what kind of false positives 20:10:33 ais523, indeed 20:10:35 ais523: hmm, I really want to write an anal C interpreter now 20:10:35 elliott: don't some of the warning flags conflict? 20:10:39 ais523: that maintains its own memory array 20:10:42 Vorpal: -Wparanoid should warn every time you do something that can't be automatically proven as defined and intended behavior. 20:10:43 at least, in something as complex as gcc, I'd expect them to 20:10:47 errors on any out-of-bounds array access 20:10:51 Phantom_Hoover, well -Wunreachable-code tends to be pretty unreliable iirc. 20:10:51 anything undefined by the standard 20:10:51 etc. 20:11:04 casting function pointers and back doesn't work 20:11:05 elliott: make pointers contain the start and length of the allocation, as well as the place they actually point to 20:11:07 or hm 20:11:11 (because the function pointers refer to indices in the function array) 20:11:11 well some of those 20:11:19 that seems to be the best way to do standards-literal bounds checking 20:11:23 ais523: maybe, that's quite hard to do in an integral type though 20:11:27 also -Wtraditional is useless generally 20:11:27 don't pointers have to be integral? 20:11:28 well, maybe not 20:11:38 elliott: Casting function pointers and back works in some cases. 20:11:38 it is used to warn about K&R vs. ANSI C differences 20:11:38 it could be a struct-type thing as long as arithmetic works 20:11:42 ais523: zeta C did that, btw 20:11:43 or something similar 20:11:43 which is utterly useless nowdays 20:11:46 pointers were a cons cell 20:11:52 (c compiler for symbolics lisp machines) 20:11:57 pikhq: hmm, standard-allowed? 20:12:13 elliott: If it's going through void, and going to function pointers of the right type, it's defined and works in the obvious manner. 20:12:14 (func_t) (void *) (func_t) is allowed, right? 20:12:16 elliott: Vorpal: fizzie: NetHack used to use "inline" as a variable name 20:12:17 or whatever 20:12:17 right 20:12:24 well, casting it to the wrong function type = instant error 20:12:37 (and I'm pinging all three of you as parts of different conversations there in a brilliant act of multitasking) 20:12:41 is *(T *)x even valid? 20:12:43 if x isn't (T *) 20:12:51 No, you can't cast a function pointer into a void *. 20:12:58 ais523: perverse 20:13:02 fizzie: ? 20:13:08 elliott: Depends on what T is. 20:13:22 elliott: And what x is. 20:13:23 elliott: yes, but only if T is unsigned char 20:13:24 * elliott writes a quasi-quoter 20:13:30 ais523: haha 20:13:30 or if T and x are compatible 20:13:35 ais523: char will be signed in this, then 20:13:39 and *(char *)x will fail 20:13:45 but *(unsigned char *)x won't 20:13:54 also, no OS-specific functions 20:13:57 no read or write or sbrk or anything 20:14:04 ah yes -Wuninitialized is unreliable too. 20:14:05 every allocation must be done with malloc 20:14:30 Vorpal: how could it not be, you'd need to solve the halting problem otherwise 20:14:36 elliott: or calloc, or realloc? 20:14:49 or free with a negative-sized argument? 20:14:56 ais523: first two: indeed (those are just library functions) 20:14:59 last one: that's not legal, surely? 20:15:06 ais523, hm do you for C? Hm I guess so. Though it would be trivial to make a TC language where it does not require that 20:15:10 it doesn't even make sense, free doesn't take a size argument 20:15:25 oh, indeed 20:15:32 Vorpal: only by forcing variables to be initialized at the first sign of uncertainty 20:15:39 How does memory allocation usually actually work? 20:16:05 It has to store the size somewhere, and tell somewhere which memory is used and which is free. 20:16:08 void *calloc(size_t nmemb, size) { void *ptr = malloc(nmemb * size); if (ptr == NULL) return NULL; return memset(ptr, 0, nmemb * size); } 20:16:10 zzo38: at a high level, malloc reuses previously freed space if there's enough, or if there isn't, asks the OS for more 20:16:12 *size_t size 20:16:14 hmm, is that valid? 20:16:21 what if nmemb*size overflows? 20:16:28 elliott: what if nmemb * size is exactly INT_MAX+1? 20:16:30 hm, wait 20:16:32 *hmm 20:16:37 that lead to a huge flamewar in comp.lang.c a while ago 20:16:39 size_t can hold the size of any allocatable object, right? 20:16:43 with various standards committee members around 20:16:48 so if nmemb*size overflows, the call wasn't valid anyway 20:16:49 elliott: Vorpal: fizzie: NetHack used to use "inline" as a variable name <-- awesome 20:16:51 _but_ 20:16:53 ais523: Is there a block size that it will always allocate a multiple of? Is there any kind of heading for the allocated memory? 20:16:53 that should be checked for 20:16:55 or was it comp.std.c? 20:17:06 elliott: If nmemb*size overflows, I'm pretty sure you hit undefined behavior. 20:17:15 If you want to use "inline" as a variable name, you can just define in the preprocessor? 20:17:28 void *calloc(size_t nmemb, size) { void *ptr; if (__builtin_overflows_on_multiplication(nmemb, size)) undefined_behaviour("calloc() arguments overflow when multiplied"); ptr = malloc(nmemb * size); if (ptr == NULL) return NULL; return memset(ptr, 0, nmemb * size); } 20:17:29 tada! 20:17:32 Vorpal: only by forcing variables to be initialized at the first sign of uncertainty <-- indeed I was thinking of "always default to null/0" though 20:17:44 hmm, perhaps it should be __BUILTIN_OVERFLOWS(size_t, nmemb*size) 20:17:45 or something 20:17:53 zzo38: inline is a keyword. Aside from preprocessor defines, you can't use that. 20:17:55 ais523, some less low level languages do that iirc 20:18:17 zzo38: http://tasvideos.org/GameResources/DOS/NetHack.html contains a description of the DJGPP memory allocator (which I wrote), but I can't give you a link anchor because there isn't one; search for "The memory allocation algorithm" on the page 20:18:51 (func_t) (void *) (func_t) is allowed, right? ← No, it's not. 20:18:52 elliott: the row was about whether calloc(65536,65536) or whatever the numbers were actually is undefined behaviour, or whether it's specified to return NULL and set errno 20:18:58 or whether it should succeed and allocate more than a size_t 20:19:00 fizzie: hmm 20:19:03 Assuming func_t is a function type. 20:19:07 fizzie, yes I think it is? 20:19:07 elliott: you can't cast to and from function pointers at all 20:19:14 and especially, you can't cast to and from /functions/ 20:19:16 or hm 20:19:17 (which are a separate type) 20:19:19 ais523: If nmemb or size is 0, then calloc() returns either NULL, or 20:19:19 a unique pointer value that can later be successfully passed to free(). 20:19:24 Vorpal: "A pointer to void may be converted to or from a pointer to any *incomplete or object type*." 20:19:28 ais523: my man pages suggest that it's undefined behaviour 20:19:29 Vorpal: Not to a function type. 20:19:31 ais523: have you got a link to C99? 20:19:32 elliott: but neither nmemb nor size is 0 20:19:37 (Or a pointer to a function.) 20:19:37 ais523: exactly 20:19:39 so that case doesn't apply 20:19:41 fizzie, sure C99 doesn't allow it? 20:19:46 but i'll look at c99 first 20:19:54 Vorpal: That was directly from C99. 20:20:01 elliott: http://clc-wiki.net/wiki/C99#Obtaining_the_Standard 20:20:02 pick your method 20:20:06 Vorpal: You can convert a pointer to one function to a pointer to any other type of function. 20:20:09 fizzie, hm didn't it add some hack to make POSIX work or such? 20:20:12 Vorpal: But you can't stick functions into void *s. 20:20:14 fizzie, ah right! 20:20:15 wikipedia links to http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf 20:20:16 -!- kar8nga has quit (Remote host closed the connection). 20:20:22 pikhq: I know "inline" is keyword but I think it is possible to use preprocessor macro to override it, I have tried that and it worked. 20:20:30 that has the technical corrigendums in, I think 20:20:41 if you want C99, N1124 is probably the best option, it's the first post-C99 draft of C0x 20:20:45 * elliott greps for calloc, slowly 20:20:45 So you can pick a "generic function pointer" of any type you like (for example void (*)(void)) and use that. 20:20:49 ais523: N1256 is what I have 20:20:53 But you just can't use "void *" for functions. 20:20:56 N1425 is the most recent draft, of C1x 20:21:01 it's C99, TC3, "Septermber" 7, 2007 20:21:03 yes, Septermber 20:21:05 I'm not kidding 20:21:12 Wait, void* can't be used for function pointers? 20:21:14 Awww.... 20:21:16 fizzie: void (*)() (which is a different type), is a better choice for a generic function pointer, I think 20:21:31 Sgeo: of course not, there's no guarantee that functions and data are even in the same memory space 20:21:31 this does not appear to have calloc 20:21:33 oh, there it is 20:21:39 TIL 20:21:43 Description 20:21:43 2 The calloc function allocates space for an array of nmemb objects, each of whose size 20:21:43 is size.The space is initialized to all bits zero. 20:21:43 261) 20:21:43 Returns 20:21:43 3 The calloc function returns either a null pointer or a pointer to the allocated space 20:21:45 wow, that's ridiculously underspecified 20:21:52 thus the row 20:21:55 *space. 20:21:58 ais523: Since you need (and can) cast anyway, I don't think it really matters what you pick; but sure, I guess that's "more generic" arguably. 20:22:06 ais523: well, it's defined that size_t can hold the size of any allocatable object 20:22:10 there's no obvious reason why it can't return an allocation of more than size_t bytes 20:22:18 http://www.theweinerworks.com/?p=344 20:22:20 ais523: therefore, SIZE_T_MAX (I don't care if it's not called that), is the size of the maximum allocatable object 20:22:21 elliott: indeed, but that's contiguous space for /lots/ of allocatable objects 20:22:26 tl;dr: Zach Weiner is awesome. 20:22:30 see the difference? 20:22:32 ais523: obviously, you cannot allocate an object bigger than that, since size_t is defined to be able to hol dit 20:22:33 *hold it 20:22:39 elliott: but you aren't 20:22:42 you're just allocating more memory than that 20:22:45 ais523: therefore, the calloc should fail 20:22:48 which is divided into multiple objects 20:22:49 ais523: and? 20:22:51 hmm 20:22:59 let me look up size_t's definition 20:23:00 If you make a better C interpreter then I might replace the one in Enhanced CWEB with a new one, maybe. 20:23:04 you can access individual objects there via pointer arithmetic, but there's no implication that the /whole thing/ is an object 20:23:30 size_t 20:23:30 which is the unsigned integer type of the result of the sizeof operator; and 20:23:31 aha 20:23:41 4 The types used for size_t and ptrdiff_t should not have an integer conversion rank 20:23:41 greater than that of signed long int unless the implementation supports objects 20:23:41 large enough to makethis necessar 20:23:51 so it depends on sizeof 20:24:35 ais523: so in fact, size_t is an unsigned integral type that can hold the size of the result of any expression, in bytes 20:24:46 elliott: http://groups.google.com/group/comp.std.c/browse_thread/thread/35ec063d81174821/c888bee3aeeba7df 20:24:46 ais523: now, calloc's definition speaks of arrays 20:24:58 ais523: sizeof(array) = size of member * size of array 20:24:59 as a size_t 20:25:08 -!- kar8nga has joined. 20:25:19 it is impossible to have an array such that sizeof(array) does not return a size_t with its nmemb*size in bytes 20:25:25 elliott: you can read that whole thread to see much more knowledgeable people than me argue this 20:25:32 therefore, calloc cannot allocate the array specified by nmemb=MAX, size=MAX 20:25:44 therefore, since it cannot, by definition, allocate such an array, the call fails to allocate 20:26:00 and it should fail, returning NULL 20:26:02 and setting errno 20:26:11 ais523: agreed? 20:26:21 it seems pretty clear-cut, after tracing size_t's definition back to sizeof 20:26:23 elliott: you should also look at defect report resolution 266, which says that objects are allowed to exceed SIZE_MAX bytes 20:26:30 and considering that calloc says it allocates an _array_ 20:26:36 ais523: yes, but not arrays 20:26:39 presumably 20:26:45 stop presuming! 20:26:46 that has the technical corrigendums in, I think <-- what's wrong with that 20:26:55 ais523: sizeof has to return the size of the array! it is defined to! 20:26:58 Vorpal: nothing 20:27:07 ais523: 0 bytes is not the size of an array like that! 20:27:10 so sizeof can't return 0 in that case 20:27:14 ergo, arrays must be under SIZE_MAX bytes 20:27:22 elliott: the argument is that using sizeof on them is undefined behaviour 20:27:25 because the standard doesn't define it 20:27:31 ais523: IMO, such an object would have to be a pointer 20:27:34 because sizeof can't do that to them 20:27:41 ais523: no 20:27:44 the standard doesn't say 20:27:46 elliott: read the thread, OK 20:27:51 "On objects whose size can fit into a size_t, sizeof returns their size" 20:27:51 elliott: exactly, it doesn't define 20:27:52 it says 20:27:59 "sizeof returns a size_t, their size" 20:27:59 if the standard doesn't define something, that's undefined behaviour 20:28:00 by definition 20:28:07 see how it ended up so all over the place in C? 20:28:08 ais523: it DOES define it 20:28:11 sizeof is defined on all objects 20:28:13 and return their size 20:28:15 *returns 20:28:17 and returns a size_t 20:28:24 elliott: "On objects whose size can fit into a size_t," 20:28:26 therefore, arrays must be under SIZE_MAX bytes, there's no argument to it 20:28:28 from your own quote 20:28:32 ais523: oh, shit 20:28:40 ais523: OK, the calloc is undefined behaviour. probably. 20:29:17 the thread went to 122 messages 20:29:21 ais523: The "On objects whose size can fit into a size_t," quote was what the standard does *not* say. 20:29:31 fizzie: so elliott lied? 20:29:41 ais523: No, he said that is what the standard does not say. 20:29:47 the standard doesn't say 20:29:47 "On objects whose size can fit into a size_t, sizeof returns their size" 20:29:58 ah, and I missed it due to comments in between 20:30:12 but I'd rather trust comp.std.c on this, who are really good at arguing such things 20:30:19 and especially the defect report people 20:30:27 who are the same people who write the standard 20:30:43 ah 20:30:45 then I'm still right 20:31:05 calloc(x,y) where x*y can't fit into a size_t fails 20:31:08 or, actually 20:31:11 any program that says 20:31:16 calloc(x,y) where x*y can't fit into a size_t 20:31:17 In C90, [...] there was *no* way to apply sizeof to the argument created by calloc 20:31:19 is an illegal C program 20:31:27 yes, an _illegal_ C program 20:31:30 not one that merely triggers errno 20:31:36 arguably, this is the same as undefined behaviour 20:31:44 in that the C standard doesn't explicitly say what to do with such an illegal program 20:31:58 elliott: hmm, can you use a sizeof-based argument if there's no way to apply sizeof to the resulting object? 20:32:09 ais523: yes, because calloc's definition says it allocates an _array_ 20:32:16 and all arrays can be passed to sizeof to get their size in bytes 20:32:20 elliott: err, no they can't 20:32:23 yes they can 20:32:27 precisely because they can't if they were created by calloc 20:32:30 can you write code that does that/ 20:32:31 sizeof(array) == sizeof(array[0]) * length of array 20:32:35 ais523: calloc doesn't return the array 20:32:41 it returns a pointer to the array 20:32:48 elliott: exactly, so you can't sizeof it 20:32:50 ais523: just because you can't _access_ the array, doesn't mean it's not an array 20:32:55 it is said to be an array 20:32:59 elliott: but it does mean you can't apply sizeof to it 20:33:01 in C, arrays can be passed to sizeof to get their size 20:33:09 if you have an object 20:33:09 elliott: It is not said to be an array; it is said to allocate space for an array. 20:33:15 fizzie: well, true 20:33:15 argh 20:33:20 shut up, this is painful :P 20:33:32 elliott: you're saying that arrays can be passed to sizeof, and that calloc's return is an array, thus calloc's return can be passed to sizeof 20:33:35 which is obviously incorrect 20:33:39 thus one of your premises is wrong 20:34:28 ais523: I did _not_ say that 20:34:31 never! did I say that 20:34:39 ais523: I was reasoning INTERNALLY TO CALLOC 20:34:40 elliott: not directly, I'm showing your argument 20:34:43 no 20:34:45 that is not my argument 20:34:51 that is _not_ and has _never_ been my argument, and I do _not_ believe that premise 20:34:51 you can't reason internally to calloc, it might not be written in C 20:34:54 nor have I ever believed it 20:34:58 ais523: irrelevant, it is defined in terms of _C arrays_ 20:35:13 or, else, okay, let's define array to mean whatever it does in calloc's implementation language 20:35:16 I have this nice language here 20:35:16 elliott: but not defined in terms of _C arrays that can be passed to sizeof_ 20:35:20 where "array" means "byte" 20:35:25 which is a different concept 20:35:27 ais523: *EVERY* C array can be passed to sizeof! 20:35:34 elliott: no, the internal ones in calloc can't 20:35:34 that's part of the definition of a C array, part of its concept! 20:35:36 aargh 20:35:37 shut up 20:35:51 that's part of the definition of a C array, part of its concept! <--- this is merely incorrect 20:35:54 that's just a pure false statement 20:36:01 ais523: No, it's purely true. 20:36:18 hmm, the thread went on to argue about what sizeof(int[SIZE_MAX][3]) is 20:36:24 you have an actual array type there 20:36:28 and it still isn't clear-cut 20:36:37 ais523: you're really annoying me with this, please drop the issue 20:36:53 ais523: I don't see how it could be anything but undefined behavior. 20:36:57 because you're claiming something blatantly false, and at the same time claiming something directly reasonable from the standard as blatantly false 20:38:04 pikhq: the commenters on comp.std.c think that the standard contradicts itself, in that it's defined behaviour but what it's defined /to/ contradicts other parts of the standard 20:38:28 ais523: Then clearly the standard is fallacious. 20:38:41 pikhq: indeed 20:39:05 let's talk about R5RS instead, that's an actually sane standard 20:39:34 ais523: And of course, there's no possible way for size_t to be a bignum. 20:39:42 Doesn't it have some insane part? I don't remember, but I remember seeing some specific functions criticised 20:39:46 pikhq: indeed 20:40:09 Well, it could be implemented as an arbitrarily bound bignum, I suppose. :P 20:40:45 size_t can be a bignum in C minus the stdlib 20:40:49 just make char a bignum 20:40:54 this fails with an stdlib because you have to define CHAR_BIT 20:41:10 (I suppose the C standard itself may accidentally refer to char as having some number of bits even in the non-stdlib parts, invalidating this) 20:41:31 elliott: Actually, the maximum value of a char must be defined in an unhosted implementation as well. 20:41:36 stddef.h must always exist. 20:41:44 (IIRC) 20:41:48 pikhq: and limits.h, but that's not what elliott said 20:42:09 without a stdlib at all, the type is still implementation-defined, so it still has (by the standard) to be documented 20:42:18 I'm not sure if documenting it as being infinite would work 20:42:37 ais523: The thing is, *not having* that header is a violation of the standard. 20:42:39 hmm, can you shrink with realloc? 20:42:44 elliott: Yes. 20:42:53 ah, indeed 20:42:58 elliott: yes, although it's allowed to move the pointer if you do, and also to fail to free any memory if you do 20:43:19 most implementations of realloc I've seen just ignore attempts to shrink, which is of course legal 20:44:04 Perhaps not optimal (it'd be nice to be able to hand stuff back to the pool doing that), but certainly legal. 20:44:27 hmm, elliott's arguments were made in the comp.std.c thread too, and other people accused the person making them of circular reasoning 20:44:33 so my conclusion is, this flamewar's happened before 20:44:38 and repeating it is a little pointless 20:45:15 elliott: here's a fun one: is "int x = INT_MIN;" legal? 20:45:17 realloc(ptr, 0) is also allowed (but not required) to free(ptr) and return NULL. 20:45:31 Have your implementations special-cased that? 20:45:34 fizzie: allowed but not required? 20:45:39 that's insane 20:45:44 what happens if it fails, wouldn't it leave ptr allocated and return NULL? 20:45:55 I thought it was required to free and return null 20:46:02 ais523: It could just do nothing, and it would be undefined behavior to access the pointer. 20:46:09 that's brilliant 20:46:11 ais523: "If size was equal to 0, either NULL or a pointer suitable to be passed to free() is returned." 20:46:11 (contrary to malloc, which is allowed to succeed at allocating 0 bytes) 20:46:22 fizzie: ouch 20:46:28 :D 20:46:45 http://sprunge.us/aeIg <-- here's PedantiC's implementation of calloc and realloc 20:46:57 ais523: Would it make you feel better to know that free(NULL) is a noöp? 20:46:57 anyway, INT_MIN isn't a legal value for integers because the definition of unary - doesn't give any leeway for it being applied to a value that can't be negated 20:47:02 pikhq: I know that one 20:47:12 REALLY ULTRA PEDANTIC 20:47:30 ais523: Hmm, that seems to have been just my non-conforming man page; but if I read C99 right, it can't return NULL at all in that case. (Perhaps because NULL is the error result?) 20:47:31 anyway, INT_MIN isn't a legal value for integers because the definition of unary - doesn't give any leeway for it being applied to a value that can't be negated <-- probably not true, but it's the same argument as the sizeof-based one 20:47:48 ais523: "int x = INT_MAX - 1;" -- valid or not? :) 20:47:54 erm 20:47:57 ais523: "int x = (INT_MAX + 1) - 1;" -- valid or not? :) 20:48:04 elliott: obvious UB, signed overflow 20:48:05 ais523: "The realloc function returns a pointer to the new object (which may have the same value as a pointer to the old object), or a null pointer if the new object could not be allocated." 20:48:11 which is defined as UB, IIRC 20:48:19 ais523: who said that the expression on the RHS is evaluated as an int? 20:48:24 ais523: maybe it's evaluated with long longs, and then casted to int 20:48:25 (With nothing special about 0.) 20:48:30 elliott: the standard did, all the values there are ints 20:48:35 fizzie: Technically still a true statement, though. 20:48:37 aww :) 20:48:37 and there are rules for the widths of intermediate calculations 20:48:52 fizzie: It would be entirely permitted to return the old pointer, a *new* pointer, or a null pointer. 20:48:53 more fun: short x = (SHRT_MAX + 1) - 1; is legal, for the same reason 20:48:59 back 20:49:02 insufficient comments about PedantiC's helpful error reporting 20:49:03 if short happens to be shorterthan int 20:49:05 *shorter than int 20:49:13 it's like lint on steroids, except going down a different path to splint 20:49:15 elliott: I think it's incorrect on the overflowing sizeof 20:49:23 ais523: *size_t 20:49:27 err, yes 20:49:29 are u guys programming something 20:49:32 ? 20:49:33 ais523: well, that's the whole argument isn't it 20:49:40 me2ufool: well, this channel _is_ about esoteric programming languages 20:49:44 not to mention your __BUILTIN_OVERFLOW has a crazy calling convention 20:49:44 me2ufool: No, just talking about details of a language standard ATM. 20:49:46 but right now, we're just arguing. 20:49:47 Close, though. 20:49:47 i mean debating. 20:49:52 pikhq: Well, I guess the legality of "free(ptr); return NULL;" depends on how you read the "new object could not be allocated" bit. 20:49:52 ais523: it's not a function 20:49:53 obviously 20:49:55 it's a compiler builtin 20:49:58 __BUILTIN_OVERFLOWS_TYPE 20:49:58 elliott: indeed 20:50:02 the calling convention is /still/ crazy 20:50:04 oh... 20:50:07 Have signed petitions ever accomplished anything in the history of the world? 20:50:10 ais523: __BUILTIN_DESCRIBE_VARIABLE is a builtin too 20:50:12 and builtins can have calling conventions as much as anything else 20:50:15 Gregor: I think so 20:50:20 ais523: returning a __variable_description_t 20:50:23 ais523: I think not. 20:50:30 ais523: (__builtin_incorrect_program is just a compiler-specific function) 20:50:36 they've accomplished getting someone executed before now, at least 20:50:37 Gregor: You live in a nation that exists courtesy of one such petition. 20:50:38 that uses the functions on __variable_description_t to print out their types and values 20:50:42 for helpful error reporting 20:50:47 -!- me2ufool has left (?). 20:50:57 ais523: realy? 20:50:58 *really? 20:51:00 that sounds very scary 20:51:03 pikhq: Wars establish independence, not letters. 20:51:04 Gregor: on the other hand, unsigned petitions are more useful as you don't have to worry about overflow 20:51:16 pikhq: Oh, actually combining with an earlier statement ("If memory for the new object cannot be allocated, the old object is not deallocated and its value is unchanged") it can't do "free and return NULL" at all. It must either return a free()able pointer (old or new) or return NULL but keep the old pointer valid. 20:51:17 i knew that was coming 20:51:22 i even thought Gregor was punning about that to start with 20:51:25 * Gregor kills ais523 with a stick. 20:51:36 elliott: it was back in the days of dictatorial kings in the UK, when there was some sort of public rebellion-type thing 20:51:39 Gregor: Tell that to Canada, then? 20:51:48 except they went and did it with a petition to start with rather than fighting 20:51:54 ais523: oh, i thought you meant recently 20:51:59 like some Daily Mail type bullshit 20:52:00 although I think it went to fighting eventually, or at least the monarchy was worried, so they executed the ringleader 20:52:14 elliott: err, no, the "in the history of the world" was quite definite there 20:52:34 ais523: I know 20:52:36 I just interpreted your reply like that 20:52:38 because I'mc ynical 20:52:42 *I'm cynical 20:52:47 Gregor: Also, on a much lesser scale. You realise that most ballot issues in many US states are put there because of a petition, right? 20:53:03 ais523: anyway, I'd say that __builtin_malloced_size is almost as crazy as __BUILTIN_OVERFLOWS_TYPE 20:53:12 although the latter requires bignums in the general case, I think 20:53:14 elliott: there was some discussion about it 20:53:16 in the compiler 20:53:21 asking whether implementations ever didn't know about it 20:53:22 (as they have a law stating "if a petition for a ballot issue gets $FOO signatures, it's on the ballot.") 20:53:50 I can't remember if the "what if it overflows size_t" argument comes up, but there was a "is that possible on all platforms?" argument 20:54:18 ais523: I could easily imagine a system where after "void *p = malloc(N);" you couldn't exactly deduce N from p, only an upper bound. 20:54:47 pikhq: I guess I'm thinking more /unsolicited/ petitions. 20:54:50 fizzie: the malloced_size was meant to return the amount of memory that was actually used in that size, rather than N 20:55:01 pikhq: Not things that are legally designated to be accomplished by petition. 20:56:34 ais523: Well, that does sound more reasonable. Though I could still believe a malloc() implementation that deferred to some sort of a memory allocation syscall that tracked the size internally and didn't expose it at all to the user-space code. (In which case it certainly could be worked-around, but that wouldn't be very optimal.) 20:56:54 Gregor: Paying attention to written and signed attentions has long been a duty of the monarch in monarchies; often times, these petitions would actually have an effect. 20:56:57 fizzie: DOS has one of those, I think I may even have contributed to the thread saying so 20:57:05 (an actual malloc-like syscall, rather than a sbrk-like syscall) 20:57:51 Gregor: And in the UK, it's still technically a duty of the House of Commons, though it's ceased to be a common matter. 20:58:16 (obviously, the House of Commons is here acting the name of the Crown in Right of the United Kingdom) 20:58:24 s/acting/acting in/ 20:58:27 * Gregor hmmmmmms loudly. 20:58:41 ais523: can you always cast an integral type to a pointer? 20:58:43 pikhq: actually, they respond to petitions quite a lot, it's mostly done online nowadays 20:58:50 ais523: Ah, good to know. 20:59:00 elliott: no; in fact, I think it's at least implementation-defined whether you can do that at all 20:59:22 if you can, though, there's an intptr_t which is a size of integer suitable for round-tripping to pointers and back 20:59:29 (which doesn't exist if you can't) 20:59:36 intptr_t can not exist? 20:59:41 it's allowed to not exist, yes 20:59:46 but has to exist if it would be meaningful 21:00:22 you'd expect (void*)ULLONG_MAX to be meaningless on a 32-bit system, though, and defined as such 21:00:26 with intptr_t being 32-bit 21:00:40 The last case, ``1'' to ``1st'', is simplest, so it comes first. 21:01:11 <[th]s0[st]s1[nd]s2[rd]s3 dBr 100%d10%r10/1-1 0 1i* d3-1d0i* `0+L+> 21:01:30 ais523: then PedantiC has no intptr_t! 21:01:50 and presumably all int<->pointer conversions are illegal 21:02:16 yep 21:02:31 ais523: pointers are, in fact, this structure 21:02:36 struct __pointer_struct { 21:02:47 -!- pikhq_ has joined. 21:02:50 size_t __pointer_start; 21:02:57 size_t __pointer_size; 21:02:59 }; 21:03:00 OR SOMETHING 21:03:03 note that in C, it's legal to type-pun anything to an array of unsigned char then read it 21:03:16 oh, i need to have a type descriptor in there :D 21:03:19 so you probably want to randomize the internal representation to stop people exploiting it 21:03:24 elliott: Pointers in C do not work that way, though 21:03:24 elliott: and the current value of the pointer 21:03:32 so you probably want to randomize the internal representation to stop people exploiting it 21:03:33 naw 21:03:33 -!- cheater99 has quit (Ping timeout: 240 seconds). 21:03:36 zzo38: they do according to the standard, just it's undefined what happens if you don't 21:03:41 that would break on any _other_ machine :) 21:03:45 zzo38: yes, they can 21:03:49 if the implementation does it 21:03:57 ais523: Actually, there's a form of int<->pointer casting that's perfectly lega. 21:04:00 and so you can use the as-if rule in order to simplify them down to a single reference to memory 21:04:00 -!- azaq23 has quit (Quit: Leaving.). 21:04:02 ais523: Lemme find the type. 21:04:05 pikhq_: now wait for ineiros to disagree 21:04:08 erm 21:04:09 fizzie 21:04:11 pikhq_: not 0<->NULL, at least 21:04:13 What, you're going to have a fixed-size pointer? You should at least add random padding based on the type. 21:04:19 ais523: the as-if rule? 21:04:30 -!- azaq23 has joined. 21:04:36 fizzie: maybe they'll be done with bignums internally 21:04:37 elliott: that an impl doesn't have to obey the letter of the standard if there's no program you could use to tell them apart without invoking UB 21:04:41 I do guess that is one way, as long as you can still do numbers adding and so on. 21:04:41 for no reason at all, 21:04:42 *all 21:04:44 the letter of the standard's a little insane in all sorts of ways 21:04:47 ais523: haha 21:04:52 ais523: Uh, 0 == NULL. 21:04:56 and that lets you have sane implementations 21:05:01 pikhq_: wrong 21:05:01 pikhq_: that's a pointer == pointer cast 21:05:02 IIRC. 21:05:09 (int)0 == NULL is not necessarily true 21:05:12 even though 0 == NULL is 21:05:13 indeed 21:05:17 and IIRC, 21:05:17 -!- pikhq has quit (Ping timeout: 240 seconds). 21:05:18 int x = 0; 21:05:21 void *foo = (void *)x; 21:05:25 (int)foo doesn't have to be 0 21:05:27 doesn't have to produce NULL 21:05:30 so long as foo itself is a NULL-pointer 21:05:46 elliott: err, you'd expect (int)foo to be a segfault the sane way of doing it with that 21:05:48 -!- pikhq_ has changed nick to pikhq. 21:05:50 to sane nothing about the insane way 21:05:54 what you mean is, foo doesn't have to be NULL 21:06:01 *say nothing about the insane way 21:06:08 right 21:06:14 but foo can't address anything 21:06:15 I think 21:06:16 ais523: Okay, yeah, that's not actually a cast. 0 == NULL but "(int)0 == NULL" is UB. 21:06:56 I *know* there's an integer type that you can convert a pointer into and then convert back to a pointer and it's defined. 21:07:02 elliott: it can, depending on how int <-> pointer is defined, and it's impl-defined 21:07:15 pikhq: It's the already-mentioned intptr_t, which need not exist. 21:07:20 Though I'm pretty sure doing arithmetic on it can get you undefined behavior. 21:07:23 fizzie: Ah, right, that. 21:08:02 hmm, according to TDWTF sidebar, a bunch of students were asked to do a project on the pacific northwest tree octopus 21:08:13 now, you can find out info about it online, although the info is blatantly lying 21:08:22 -!- cheater99 has joined. 21:08:27 but the students refused to accept that it didn't exist, becaues it said online that it did 21:08:36 Ah, they are optional. 21:08:40 There is no octopus in the tree (unless someone put it there). 21:09:05 Okay, so intptr_t <-> pointer is defined if and only if intptr_t exists. 21:09:06 Got it. 21:09:19 ais523: "An integer may be converted to any pointer type. -- the result is implementation-defined, might not be correctly aligned, might not point to an entity of the referenced type, and might be a trap representation." So, uh... the conversion that way is always "legal", it's just that if the result is a trap representation doing anything with it could be undefined. 21:09:25 So, you can steal it from the water and put it on the tree and then tell everyone within range that there is tree octopus. 21:09:42 fizzie: doesn't merely existing cause trap representations to crash programs 21:09:54 elliott: oh right, your signed integers should /definitely/ have padding, and multiple trap representations 21:09:57 because I think that's allowed 21:10:07 ais523: aargh 21:10:20 ais523: this isn't DS9K, just DS9Pedantic 21:10:22 zzo38: why bother, when the Internet will pretend there's tree octopi for you? 21:10:36 elliott: but programs might assume that all the bits in an integer are meaningful! 21:10:41 ais523: oh no! 21:11:04 elliott: isn't the point to correct their incorrect assumptions? 21:11:30 ais523: sort of, but it's mainly things like erroring on out-of-bounds array access 21:11:39 which won't break "most" programs, but is still something you don't expect C to do at all 21:11:55 I wouldn't expect padding bits in ints to break most programs either 21:12:03 after all, the standard says they can happen... 21:12:15 ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least. 21:12:32 ais523: Yes, you can still in C99 have padding bits, and some combinations of padding bits are allowed to be trap representations. (A padding bit that is a parity bit is mentioned as an example.) 21:12:49 C is insane 21:12:59 `addquote ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least. 21:13:01 289) ais523: Maybe it is better, because I don't think the octopus will live very well in the tree. But the difference is that the Internet is lying and you cannot see such things; you could make modified picture, though, in order to lie more clearly, at least. 21:13:24 elliott: I think C is good, regardless of whether or not it is insane. 21:13:50 You could make it so that all N-bit integers are actually 2*N bits, where the other half is padding bits and has the same values than the value bits except inverted; and any representation where first_half != ~second_half is a trap representation. 21:13:59 ais523: hmm, have you come up with any innovations in underload data structure representation? 21:14:13 elliott: not really, ints and lists are really the basis of everything 21:14:20 Quite many infrared remote controls send ints in that format. :p 21:14:21 and in underload, list via "cons cell" is simplest 21:14:31 (LIRC has a thing for it too.) 21:14:34 You are taking the quote out of context. It doesn't say what "it" refers to in "Maybe it is better", you can out square brackets to tell you what it is, that is what other quotations do, too. (Here, "it" refers to internet lying, so put "internet lying" in square brackets) 21:15:02 zzo38: elliott likes taking quotes out of context for amusement value 21:15:14 The "code, ~code" is pretty useful when 0s and 1s have different lengths (time-wise); you'll always have the same amount of 0s and 1s, and a fixed-length sequence. 21:15:29 ais523: OK, I didn't know that. 21:15:41 fizzie: encoding 0 as 01 and 1 as 10 is also moderately common, in order to keep 0s and 1s in balance 21:15:55 (that isn't a joke, many communication systems require 0s and 1s to be reasonably balanced in order to avoid malfunction) 21:16:11 (such as radio, and copper wire) 21:16:23 That too; I don't quite recall if LIRC has an automagical way of doing that transformation to the entered codes, though. 21:17:07 best undefined behaviour ever was in very early versions of GCC if you didn't something obviously stupid (int *a; *a=1;) it would attempt to start nethack :-) 21:17:14 All of C's oddities only make sense when you consider it's meant to be a portable but rather low-level language. 21:17:21 variable: it was on #pragma 21:17:58 ais523, I thought it occurred in a few places 21:18:01 variable: Ah, yes, #pragma starting nethack, or hack, or rogue, or fortune, or just giving up, depending on what was available, IIRC. 21:18:02 pikhq, 100% 21:18:13 pikhq: or Emacs running a simulation of the Towers of Hanoi 21:18:19 O 21:18:21 ais523: Oh, right, that was in the list. 21:18:30 it didn't quite give up, it printed "You are in a maze of twisty little compiler features, all different" (quote may not be exactly right) 21:18:34 I've considered filing a bug requesting the feature in clang 21:19:02 it'd be very annoying if you actually used pragmas 21:19:08 I think gcc spports a pragma or two now, anyway 21:19:26 it does 21:19:32 there are a few pragmas required by C99, in fact 21:19:38 #pragma pack and a few others 21:19:45 the sane thing to do would be to merge _Pragma and __attribute__, although I'm not sure if they did that 21:19:45 ais523, _required_ ? 21:19:50 I love the idea of requiring a compiler-specific pragma 21:19:52 variable: #pragma STDC ... 21:19:58 ais523, ah 21:20:08 elliott, that is why I asked 21:20:59 God, #pragma. 21:21:08 Such a misfeature. 21:21:15 _Pragma is not as bad 21:21:21 but bear in mind that most langs have had pragmas for ages 21:21:23 They're all just boring floating-point pragmas (#pragma STDC FP_CONTRACT on-off-switch, as well as FENV_ACCESS and CX_LIMITED_RANGE). 21:21:34 QBasic had them; and Algol-68 before that 21:21:34 Mostly because you can't generate a #pragma with the preprocessor. 21:21:36 and that's just langs I know 21:21:44 pikhq: _Pragma fixed that, as I said 21:21:48 Yes. 21:21:57 pikhq, #pragma is actually quite useful for requesting things of compilers without them taking other words as "reserved" 21:22:02 Well, you can *kinda* do #pragma with the preprocessor. Conditional #include. 21:22:19 Still. *shudder* 21:22:21 ouch 21:22:26 pragma pragma pragma foo 21:22:26 that's... a) ingenious, b) twisted 21:22:31 I think _Pragma is pretty weird; it's a preprocessor directive that can be generated by the preprocessor. 21:22:41 _pragma or #pragma ? 21:22:53 -!- elliott has quit (Read error: Connection reset by peer). 21:23:02 -!- elliott has joined. 21:23:05 Sometimes I want to generate preprocessor directives from the preprocessor, so, instead I can use the prepreprocessor. 21:23:30 zzo38: I think that's why m4 was invented 21:23:54 ais523: btw, I'm calling my compiler unad, I think you can probably figure out why 21:24:07 ais523: m4 does not fit with C syntax very well. 21:24:09 elliott: which compiler? underload? PedantiC? 21:24:17 zzo38: but it was designed to fit with C-style syntax 21:24:18 (ratfor) 21:24:23 it's closer to c syntax than cpp 21:24:24 zzo38: indeed it doesn't; just because it was invented for that purpose doesn't mean it's good at it 21:24:27 ais523: underload 21:24:43 ais523: btw, I'm calling my compiler unad, I think you can probably figure out why --> why? 21:24:51 elliott: Yes, it fits with ratfor, but ratfor isn't C even if it is a bit similar. 21:25:04 variable: i want to see if ais523 can figure it out yet :) 21:25:55 *first :) 21:26:08 hmm, is the recent edit on [[Brainscrambler]] a genuine fix or subtle vandalism? 21:26:12 I'm guessing the first, but don't know 21:26:22 ais523, link? 21:26:29 http://esolangs.org/wiki/Brainscrambler 21:26:34 I meant link to edit 21:26:36 but meh 21:26:42 it changed all instances of 2006 to 2004 21:26:51 and that's the sort of thing that's hard to check either way 21:27:21 ais523 won't even guess, pfft 21:27:36 ais523: ask the ip, on the off-chance? 21:27:51 http://esolangs.org/w/index.php?title=Brainscrambler&diff=8478&oldid=5503 21:27:57 ais523: if you were still a WP admin you could check when the article was created/deleted 21:28:07 oh, it was on WP? 21:28:15 ais523: yes, probably the creator added it without thinking too hard 21:28:18 I can check that anyway, don't need to be an admin to check the dates, just the content 21:28:24 oh, right 21:28:35 ais523: are you even going to guess? :) 21:28:58 the article itself was created in 2006 21:29:01 but that doesn't meant the lang was 21:29:09 then I strongly suspect 2006 21:29:31 because, what kind of person invents a very minor esolang, then two years later, adds it to Wikipedia? 21:30:56 the sort of person who typically creates esolangs, unfortunately 21:31:01 I think asking the IP would work wel 21:31:03 *well 21:31:04 how does perl 6 embed code in strings? 21:31:21 "{code goes here}" 21:31:26 ais523: yes, I realised when I said it that it was unfortunately a rather easy question to answer :) 21:31:51 aha, interpolatedstring-perl6 is what i want 21:32:31 ais523: aw come on, guess why it's called unad 21:33:43 looking online, the person who's meant to have created it is semi-famous, but there are no details on the lang itself 21:34:40 famous how? 21:35:40 there's a WP article about them with 8 or so references 21:35:57 Please try to guess how this program works: BArD91-0 1di 21:36:23 and the IP seems to be dynamic, so asking them wouldn't help 21:36:26 I'll leave a talk page note 21:36:27 ais523: ok, I'll tell you: underload = un derlo ad 21:36:29 -> un ad 21:36:30 -> unad 21:36:34 SINCE YOU'RE TOO BORING TO GUESS 21:36:49 ais523: dynamic IPs mean little nowadays 21:36:52 since, routers rarely reconnect 21:37:02 so they're usually static for relatively long periods of time 21:37:05 so I'd still note on the IP talk page 21:37:57 * elliott wonders if ais523 is ignoring all unad talk 21:40:25 So your compiler is based on stripping out all the derlo. 21:40:54 EXACTLY 21:41:03 fizzie: (ais's fast underload interp is called derlo) 21:41:14 -!- Lymia has joined. 21:41:21 * Lymia hugs random people 21:41:28 ah, [pf]unny name 21:41:38 olsner: you're not oerjan! 21:41:52 elliott: you're not oerjan either! 21:41:55 A packetfilterunny name? 21:42:03 OH FIZZIE 21:42:04 SUCH COMEDY 21:42:13 RUNNY NAME. 21:42:22 fizzie: that is a [pf]unny response indeed 21:42:49 !fyb nothing-2 +[] 21:43:38 hmm, fyb leaderboard activity 21:43:53 Score for Lymia_nothing-2: 1.0 21:43:54 I'm still moderately sure that the game's broken by long [....] chains designed to fail 21:44:04 :v 21:44:10 report.txt was empty before. 21:44:32 meanwhile, in the realm of What That Doesn't Even Make Sense What Are You A Java Programmer 21:44:33 ais523, you think that's bad? 21:44:33 Is there versions of the IO Monad that only allow reads for example - called an RO monad for example. So if some function was in the RO monad we know that it can only read the filesystem. 21:44:38 !fyb [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:44:39 Use: !fyb . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/ 21:44:44 !fyb ais_test1 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:44:57 Score for ais523_ais_test1: 72.8 21:45:10 If you write "@@", you set the data pointer to the current code pointer. 21:45:14 Let the implications of that sink in. 21:45:34 ah, I didn't realise @ was quite /that/ broken 21:45:48 So. 21:45:52 You don't need to write [+] 21:45:56 still, the program template I have there becomes better and better and better just by adding more % signs 21:45:57 You can write @+ 21:46:07 I tried to do it via @ before now, but messed up somehow 21:46:10 so thought I'd do it the simple way 21:46:11 !fyb ais_test1 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:46:15 oops, sorry for stealing your name 21:46:20 at least i made the program better :P 21:46:20 Score for elliott_ais_test1: 60.0 21:46:25 It's prefixed by user names. 21:46:27 ais523: wait what 21:46:28 randomness? 21:46:39 elliott: no, it's got ais523_ais_test1 to compete against 21:46:45 which is going to drive down the score as it's such a good program 21:46:57 ah 21:47:06 !fyb break [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:47:14 Score for elliott_break: 44.3 21:47:16 !fyb lose @[+]++++++++++++++! 21:47:17 !fyb break [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:47:18 Score for elliott_break: 54.0 21:47:19 Score for ais523_lose: 1.2 21:47:22 argh :D 21:47:25 go away, other programs! 21:47:26 hmm 21:47:28 let's saturate the hill! 21:47:30 MWAHAHA 21:47:39 I'll bring my response. 21:47:45 I prefer BF Joust, it's much more resistant to that sort of shenanigans 21:47:45 !fyb break2 [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:47:51 i'm all about shannigans 21:47:53 Score for elliott_break2: 37.2 21:47:54 Lymia: link me to report.txt? 21:47:58 http://codu.org/eso/fyb/report.txt 21:48:07 http://codu.org/eso/fyb/report.txt 21:48:12 You killed my @@ abuse bot. 21:48:12 :( 21:48:12 happened to have it at the time, the run of "lose" was just to make it generate more quickly 21:48:13 Oh well. 21:48:16 I'm still at the top! 21:48:53 !fyb litter [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];{>>}[+]++++++++++++++!: 21:48:56 Score for elliott_litter: 46.0 21:49:00 Lymia: have you looked at BF Joust? it's another similar game 21:49:03 and so trickles off more programs 21:49:04 Nope. 21:49:22 on a similar principle, but instead of aiming at the opponent's code array, you mess about with a shared data array instead 21:49:31 * elliott gives himself credit on the egojoust section of [[BF Joust]] 21:49:32 -!- impomatic has joined. 21:49:35 and try to trick the other program into falling off the end, or else set the element they started on to 0 while they aren't looking 21:49:51 it made it sound like the tape length averaging and the polarities were the egojoust implementor's innovation :P 21:49:52 *implementer's 21:50:01 http://esolangs.org/wiki/BF_Joust 21:50:19 !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!; 21:50:21 elliott: oh, they were yours not Gregor's? 21:50:22 Score for Lymia_explode: 14.8 21:50:27 ais523: yep 21:50:33 Lymia: does ;: do anything but waste time? 21:50:39 :; 21:50:41 Starts a new thread. 21:50:44 I fear I really badly misunderstand the fyb spec 21:50:47 ais523: and i was going to implement them, but Gregor beat me to it, the filthy jew^W^Wrespectable, but irritatingly quickly programming, member of society 21:50:48 and you wrote ;:, not :; 21:51:12 ;: is the end of a thread followed by the start of a thread. 21:51:26 !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!; 21:51:29 Score for Lymia_explode: 46.0 21:51:36 !fyb explode :@+[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%];:{>>}[+]++++++++++++++!;@@:{>>}[+]++++++++++++++!; 21:51:38 Score for Lymia_explode: 29.6 21:51:40 let's make every other type of program go extinct! 21:51:43 Strange. 21:51:56 grr, i can't even use c-mode 21:51:59 -!- zzo38 has quit (Quit: zzo38). 21:52:38 Another thing I dislike about FYB is that due to the @@ trick, you can reliablly generate a bot that will kill a target bot. 21:52:52 Automaticly. 21:52:58 And have it push other things off the hill too. 21:53:00 Lymia: doesn't @ defect to the :, then + change it in-memory to a ;? 21:53:05 that doesn't put 0 on the tape like ais_test1 does 21:53:11 ais523, eh? 21:53:16 @ sets the data pointer to the code pointer. 21:53:16 I'm looking at explode 21:53:36 As the code being executed is @, the value has to be one away from overflow. 21:53:39 + causes it to overflow. 21:53:41 @ is documented as moving the data pointer into your own code, not the enemy's code 21:53:48 It does the opposite too. 21:53:50 ais523, elliott: We Jews are known for our programming prowess. 21:53:51 are you saying it moves onto that instance of the @? 21:53:52 @ does this exactly. 21:54:02 First, it sets the data pointer to the code pointer. 21:54:12 Then, it switches the data pointer from your program to the enemy's program, or vice versa. 21:54:28 ah, the "sets the data pointer to the code pointer" isn't in the spec at all 21:54:36 Nope. 21:54:36 no wonder I was never any good at FYB 21:54:40 FYB is pretty much obsolete, dude :P 21:54:54 although that gets round my lightspeed trick 21:55:09 FYB isn't a massively bad idea, it's just let down by implementation somehow 21:55:16 ais523, what's your lightspeed trick? 21:55:18 making [] always loop at least once would help 21:55:36 Phantom_Hoover: what's shown up there, using a [%%%%....%%%] loop to move the IP faster than the other thread's data pointer can catch up with it 21:55:40 except via @@, apparently 21:56:01 litterer-2 basicly uses @@ to sprinkle lines of bombs all over the enemy's code. 21:56:09 wow, it works 21:56:10 And hoping that it hits some code. 21:56:19 properly, even, kinda 21:56:23 why doesn't it always land in the same place? 21:56:38 oh, or does it always switch to the /enemy/'s code pointer? 21:56:42 that's broken beyond belief 21:57:19 ais523, defect switches between the two tapes. 21:57:32 I know, I'm asking about where specifically on the tape it switches to it ends up 21:57:33 ais523: guess the language: 21:57:34 #define TYPE_{i} T_QUOT 21:57:34 #define STR_{i} {show (toSrc bs xs)} 21:57:35 #define STR_LEN_{i} {length (toSrc bs xs)} 21:57:35 quo_{i}: 21:57:35 {bodyToC xs} 21:57:36 return; 21:57:42 Lisp? 21:57:46 No. 21:57:49 elliott: that weird sort of C that LoseThos is written in? 21:57:53 ais523: nope 21:57:54 Lymia: nope 21:57:58 Objective C or something? 21:58:01 Smalltalk? 21:58:02 nope, not C family 21:58:10 haskell? 21:58:33 hmm, it could be Haskell + cpp, actually 21:58:43 except for that quo_ line 21:58:44 it's Haskell with Perl 6 interpolated strings 21:58:48 I was bit dishonest, it's in a quoted string 21:58:52 ah, OK 21:58:54 quoToC :: [[Flat UL]] -> Int -> [Flat UL] -> String 21:58:54 quoToC bs i xs = [$qq| 21:58:54 #define TYPE_{i} T_QUOT 21:58:54 #define STR_{i} {show (toSrc bs xs)} 21:58:54 #define STR_LEN_{i} {length (toSrc bs xs)} 21:58:55 quo_{i}: 21:58:58 you're using Perl 6 to generate Haskell? 21:58:58 {bodyToC xs} 21:58:59 return; 21:59:02 |] 21:59:04 ais523: nope, it's a Haskell module 21:59:10 written by Audrey Tang, the creator of Pugs 21:59:15 Text.InterpolatedString.Perl6 21:59:16 err, wait, is that eval-ling Haskell at runtime? 21:59:17 That's disgusting. 21:59:21 ais523: no, it's template haskell 21:59:23 compile-time 21:59:26 phew 21:59:26 Lymia: what is? 21:59:34 ais523: it was the best multiple-line-strings-without-pain module i could find 21:59:38 (Haskell's string syntax sucks a bit) 21:59:39 Gregor, I wait to see your response. 21:59:40 Haskell is one of the languages least capable of doing a Perl-style eval 21:59:53 response to what? 21:59:54 Actually. 21:59:58 !fyb litterer-clone-1 http://lymia.x10.bz/evil.fyb 22:00:01 !fyb litterer-clone-2 http://lymia.x10.bz/evil.fyb 22:00:02 Score for Lymia_litterer-clone-1: 81.2 22:00:03 !fyb litterer-clone-3 http://lymia.x10.bz/evil.fyb 22:00:05 although you can probably retrofit it onto more or less anything 22:00:05 Score for Lymia_litterer-clone-2: 73.0 22:00:06 !fyb litterer-clone-4 http://lymia.x10.bz/evil.fyb 22:00:08 Score for Lymia_litterer-clone-3: 64.2 22:00:09 Let's clean out the hill. 22:00:10 Score for Lymia_litterer-clone-4: 58.3 22:00:13 hey, Lymia 22:00:17 don't submit multiple bots with the same source 22:00:19 that's evil 22:00:22 besides 22:00:22 =3 22:00:29 they'll tie against themselves 22:00:33 lol 22:00:33 so they'll start getting lower scores rapidly 22:00:37 I imagine a similar trick would work in BF Joust, too 22:00:38 They just pushed eachother down. 22:00:41 the way the hill's calculated 22:00:58 yay, I'm now winning 22:01:07 ais523: it should probably treat two identical-when-expanded programs as a loss 22:01:11 a very bad loss 22:01:12 for both of them 22:01:32 Lymia: what's disgusting? 22:01:38 Nothing~ 22:01:51 I suppose I ought to try FYB :-) 22:02:08 impomatic: it's your sort of thing, but has problems in practice 22:02:28 for both of them <--- just the newer, otherwise it'd be a really easy way to get rid of unwanted programs 22:02:32 impomatic: FYB is like BF Joust: The Bad Early Version 22:02:34 ais523: ah, indeed 22:02:37 also, people could vary it a bit 22:02:42 I'll give it a go just so I can write a wiki page for it ;-) 22:02:49 ais523: yes, but close-but-varying programs can be good modifications 22:02:56 impomatic: http://esolangs.org/wiki/FukYorBrane 22:02:57 elliott: FYB's not that like BF Joust, it's just that they're both BF-based 22:03:00 impomatic: sorry to disappoint 22:03:02 elliott: not that wiki 22:03:06 oh, right 22:03:15 (not to mention, the one on Esolang could do with improvement) 22:03:17 By the way, does anyone know how long it takes for a new Wikipedia page to be reviewed? 22:03:24 impomatic: there isn't a review process 22:03:25 the other wiki with that horrible ASP.NET software? 22:03:45 impomatic: if you've made a page about BF Joust I doubt it'll last :-P 22:03:50 !fyb alicia http://lymia.x10.bz/evil.fyb 22:03:53 Score for Lymia_alicia: 98.0 22:04:01 there are new page patrollers, who will either catch problems with a page within the first half hour, or approximately 4 weeks after creation just before it falls off the back of the queue 22:04:04 impomatic: 3 units of time, at least 22:04:06 -!- Mathnerd314 has joined. 22:04:07 elliott: that's right, on the horrible wiki :-P 22:04:10 otherwise, it relies on people finding them at random 22:04:21 impomatic: i just can't stand the software, nothing personal :P 22:04:40 Heh. 22:04:47 One additional thing I might like about BF joust. 22:04:47 !fyb lose @[+]++++++++++++++! 22:04:49 Score for ais523_lose: 5.1 22:04:56 gah, why does lose keep winning? 22:05:04 gah, why does lose keep winning? 22:05:04 ais523, self-bombers 22:05:06 !fyb lose @[+]++++++++++++++! 22:05:08 Score for ais523_lose: 5.1 22:05:11 :D 22:05:14 Lymia: it /is/ a self-bomber 22:05:14 `addquote gah, why does lose keep winning? 22:05:15 290) gah, why does lose keep winning? 22:05:20 and the most efficient one I could come up with 22:05:20 ais523: quicker self-bombers 22:05:24 !fyb real-lose [@+++++++++++++++!] 22:05:28 Score for Lymia_real-lose: 5.1 22:05:29 ais523: http://en.wikipedia.org/wiki/Color_Robot_Battle <- I assumed there's a review process from the tag at the top... I was waiting to see if it's deleted for lack of notability. 22:05:30 what do invalid instructions do in fyb? 22:05:32 !fyb real-lose-2 +[@+++++++++++++++!] 22:05:37 Score for Lymia_real-lose-2: 5.1 22:05:39 elliott, there are none. 22:05:40 What. 22:05:40 oh, it does lose to everything, just doesn't get no points 22:05:44 What is it wining agienst. 22:05:58 impomatic: I think that just means nobody's looking at it yet 22:06:02 impomatic: the tags are filed into dated categories, that people look at occasionally; people have to be proactive about doing something about them 22:06:12 if you fix the problem a tag describes, you can remove it yourself 22:06:19 impomatic: the article looks to be well-written as far as formatting, references etc. goes, so I'd say it has a good chance 22:06:22 and if you think the problem's fatal, you can nominate the article for deletion 22:06:31 and it seems notable enough, although ofc not everybody agrees with my definition 22:06:31 mostly, though, articles just stay tagged indefinitely, more or less 22:06:40 (I wouldn't mind an in-depth article on every Pokemon...) 22:06:58 ais523: he wrote the page 22:07:00 looking at the histor 22:07:00 elliott, that goes on Bulbapedia. 22:07:01 y 22:07:01 =p 22:07:08 Lymia: indeed, but I don't see why it shouldn't go on Wikipedia 22:07:23 !fyb nothing +[] 22:07:25 Score for Lymia_nothing: 1.0 22:07:26 impomatic: (cur | prev) 22:06, 2 February 2011 OoS (talk | contribs) (1,280 bytes) (←Created page with '{{New unreviewed article|source=ArticleWizard|date={{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}} '''Color Robot Battle''' is an early programming game for...') 22:07:27 Bulbapedia has /multiple/ in-depth articles on some Pokémon 22:07:28 you _added_ that tag! 22:07:35 X-D 22:07:42 e.g. distinguishing between Pikachu in general, and Ash's Pikachu in particular 22:07:42 elliott, on the subject of BF Joust. 22:07:47 I don't think you're meant to add it to your own pages 22:07:48 ais523: haha 22:07:49 I see one thing nice about it. 22:07:55 elliott: no, it gets added by the article wizard 22:08:00 ah 22:08:00 Elliott: the tag was added by the new article wizard :-) 22:08:23 You could write an evolver for it. 22:08:27 Win/lose is not an boolean value. 22:08:42 An evolver for FYB? 22:08:46 evolving bf never seems to go very well 22:08:47 impomatic: no, BF Joust 22:09:12 elliott: if you're talking about notability within the area of Pokémon, Ash's Pikachu is obviously pretty special compared to others 22:09:22 so it makes sense for Bulbapedia to have multiple articles like that 22:09:39 ais523: I think Pokemon itself is notable enough for the entire contents of Bulbapedia being worthy of inclusion into Wikipedia, really 22:09:50 I don't think too many people agree, though 22:09:59 elliott: some would be a bit dubious 22:10:06 well, OK, but certainly most 22:10:22 all this and rabid inclusionists still annoy me... 22:10:27 especially the whole Shipping namespace, which is full of things like carefully arranged arguments for and against Ash's Bulbasaur being in love with Dawn's Bulbasaur 22:10:36 that /exists/? 22:10:40 :D 22:10:42 yep 22:10:45 that's brilliant. -ly terrible. 22:11:00 notability by Bulbapedia standards is measured relative to Pokémon as a whole 22:11:15 so it goes down much lower than standards relative to the world as a whole 22:11:59 haha, wow, it warns you before letting you load a page in that namespace 22:12:27 "Holding hands is often used to show attraction" who the hell wrote this page and were they above the age of 4? 22:12:38 ais523, that is the craziest thing ever. 22:12:39 elliott, evolving BF wouldn't be that bad... if your goal wasn't to kill human written bots. 22:12:40 "Blushing is often used to show attraction" 22:12:52 elliott, we're talking about an anime. 22:12:56 What else is used to show attraction, Bulbapedia?! Your list does not appear exhaustive! 22:13:02 elliott: it's an attempt to figure out minor details of an anime from other minor details of an anime 22:13:07 all the things on that list actually happened 22:13:08 from the talk page: [[Can We take down all the Gay Shippings like palletShipping, Even with the warning, It just isn't right.--Quick Man 21:18, 14 May 2008 (UTC)]] 22:13:21 Where's my brain bleach. 22:13:33 Lymia: you didn't get your lifetime's supply when you joined the Internet? 22:13:39 No. 22:13:43 oh dear, not another lost shipment 22:13:49 I think I used it all up with NGE. 22:13:55 Lymia: you'll have to call your ISP. in the meantime, I suggest unplugging your router/modem immediately 22:14:06 Or was it fanfiction.net 22:14:06 elliott: wtfbbq 22:15:04 Gregor: I would ask what line you're referring to, but really, it's probably all of them 22:15:40 * Lymia gets an idea 22:16:14 Hmm. 22:16:22 The tape itself has a random length from 135 to 167 elements 22:16:23 elliott: Mainly " from the talk page: [[Can We take down all the Gay Shippings like palletShipping, Even with the warning, It just isn't right.--Quick Man 21:18, 14 May 2008 (UTC)]]", taken entirely out of context because I'm not willing to logread 22:16:26 elliott, I see a roblem with BF joust. 22:16:35 Lymia: egojoust runs it with all tape lengths. 22:16:37 Wouldn't this mean that all programs would basicly start with 135 > or < commands. 22:16:42 Lymia: no 22:16:45 going off the end of the tape kills you 22:16:51 135 is the minimum length. 22:16:54 Lymia: wrong 22:16:57 Lymia: they generally set up a few obstacles first, in order to make it harder for the other program to be able to tell where the end was 22:16:58 http://esolangs.org/wiki/BF_Joust 22:17:03 so you set up a fake flag, or whatever 22:17:03 Lymia: see "The revised version" 22:17:05 and note the egojoust section 22:17:09 which includes my improvements 22:17:10 that's the version we play 22:17:13 Ah. 22:17:16 the original version was very flawed in that way 22:17:17 but the version we use here uses shorter tapes 22:17:32 such that you can either spend a long time setting up defenses, or rush to the other side to try to capture its flag before it can 22:17:46 technically, the tape is every length from 10 to 30 22:17:50 because of quantum! 22:18:02 hmm, you could actually optimise that 22:18:04 Nondeterminism sucks :P 22:18:07 Eh, wait. 22:18:08 run the program once 22:18:13 and if it goes past tape element N 22:18:23 note in all result structs with tape length of less than N that it crashed 22:18:24 etc. 22:18:29 I doubt it'd be worth the effort, possibly faster to do it the brutish way 22:18:34 especially because of how the flags work 22:18:34 probably 22:18:37 >+>->+>->+>->+>->+>- 22:18:45 ais523: but if evolving, you want really quick execution 22:18:46 Couldn't you start with that to set up a decent wall of defences. 22:18:58 Lymia: yes, but that won't fool a lot of the programs 22:18:58 Lymia: indeed, many programs do that sort of thing 22:19:01 some strategies are very advanced 22:19:05 >+>->+>->+>->+>->+>->[[-]>] 22:19:06 Then uke. 22:19:07 nuke* 22:19:09 but most modern programs are aware of that, and have counters 22:19:13 Lymia: that's the "obvious" strategy 22:19:15 try it, if you like 22:19:23 !bfjoust stupid >+>->+>->+>->+>->+>->[[-]>] 22:19:27 some of the best programs on the leaderboard are just improved versions of that 22:19:29 this is the current highest-ranked BF Joust program: http://codu.org/eso/bfjoust/in_egobot/jix_wiggle3.bfjoust 22:19:31 on the hill 22:19:39 some are very different, like defend7 22:19:42 Score for Lymia_stupid: 2.6 22:19:44 rushpolarity is IIRC pretty crazy 22:19:49 tripwire2 is very unconventional 22:19:50 IIRC 22:19:55 http://codu.org/eso/bfjoust/in_egobot/ais523_tripwire2.bfjoust 22:20:04 PS my system of calculating scores is downright inspired :P 22:20:04 * Phantom_Hoover Googles Gnomeo and Juliet for much the same reason that none of Lovecraft's protagonists didn't just go home and have a cup of tea. 22:20:10 tripwire programs are hilarious 22:20:15 slowrush is just weird: http://codu.org/eso/bfjoust/in_egobot/myndzi_slowrush.bfjoust 22:20:24 Phantom_Hoover: lol 22:20:31 defend7 is more unconventional than tripwire, though 22:20:36 Phantom_Hoover: *just went 22:20:39 not didn't just 22:20:42 and defend9 is just too massively complex for its own good 22:20:48 *just went home, that is 22:20:53 elliott, yes, I know. 22:20:56 elliott: Didn't you just not go and don't gone fixin' none grammar? 22:20:57 Lymia: http://codu.org/eso/bfjoust/in_egobot/ais523_defend7.bfjoust 22:21:05 I was constructing a regex for that and you RUINED it! 22:21:11 I see that programs get complicated. 22:21:12 :v 22:21:13 the end of defend7 (past the loop) is just insane 22:21:17 Gregor: :D 22:21:24 Lymia: oh, not really 22:21:29 Lymia: this is the result of like a month of competition 22:21:33 Ah. 22:21:36 the hill's been static for a while now 22:21:39 defend7 probably has a record for a low number of loops in a successful program 22:21:43 because almost all strategies are represented in a very good form 22:21:50 there's just the one 22:21:57 indeed 22:22:10 So. 22:22:22 get strategising! 22:22:23 defend7 is probably clearer commented, but it was IIRC autogenerated 22:22:47 this is the current highest-ranked BF Joust program: http://codu.org/eso/bfjoust/in_egobot/jix_wiggle3.bfjoust // not true btw, slowrush is because my system of calculating scores is downright inspired :P 22:22:48 Basicly, you can't afford to go more than 10 steps without checking to make sure you're not stepping off the edge. 22:22:54 that's it 22:23:00 err, no 22:23:03 15 56.67 10.71 jix_wiggle3.bfjoust 22:23:03 19 56.59 9.21 myndzi_slowrush.bfjoust 22:23:04 when i said that 22:23:11 /now/ it's at the top 22:23:13 and there's no 100% reliable way to check that you're stepping off the edge 22:23:14 because lymia's stupid is still there 22:23:26 Gregor: proposal: if the program you submit ends up at the bottom 22:23:31 the action is cancelled 22:23:45 Heh. 22:23:50 ais523: yes there is, if you destroy the tape to make a counter 22:23:51 anyway, basic program types: fast rush programs that just try to clear obstacles and sink the flag as fast as possible; defense programs that try to detect the fast rush programs coming and either pin them in place, or trick them off the end of the tape; slow rush programs that are more cautious and don't fall for the defense program tricks 22:23:55 well, assuming your opponent isn't fucking with the tape cells 22:23:56 For some reason, I want to make a programming game involving danmaku. 22:24:01 elliott: that's a bad assumption 22:24:04 well, eys :) 22:24:05 *yes 22:24:12 elliott: *eh*, I think the case that it's significant enough to tip the balance between two major players is rare enough (although seen right here) that it doesn't matter *shrugs* 22:24:23 the various vibration programs are all about fucking with the tape cells, as you put it 22:24:28 although they rarely do all that well 22:24:30 ais523, how do you trick things off the end of the tape? 22:24:34 "as you put it" :D 22:24:40 in the elegant words of elliott! 22:24:52 That is, without destroying your flag. 22:25:06 Lymia: difficultly 22:25:09 Lymia: well, most programs move forwards until they see something nonzero, then zero it, then move on further 22:25:18 Lymia: basically, set your flag to 0 22:25:20 then increment it next turn 22:25:23 Ah. 22:25:24 so one approach is vibration-style, where you set your flag to 0 every second cycle and hope they miss it 22:25:25 you only die if your flag is 0 for two turns 22:25:26 so this works 22:25:32 (why is that btw, ais523?) 22:25:32 I wonder. 22:25:38 !bfjoust bestEver >+[[]+] 22:25:40 (was it just so you could do vibration? :) 22:25:42 elliott: precisely so that strategy works 22:25:42 *)) 22:25:43 !bfjoust cirno [[-]+] 22:25:45 ais523: hmm 22:25:50 actually, I was thinking more along the lines of defend7 22:25:51 Score for Gregor_bestEver: 9.2 22:25:56 YESSSSSSSS 22:25:57 ais523: well, it seems to have increased the strategies, but it seems like changing the law to allow the strategy :) 22:25:57 which tries to push the flag /past/ 0 22:25:58 which is just weird 22:26:02 Gregor: BEST EVER 22:26:09 elliott: it was basically to make defense programs viable somehow 22:26:15 as they give multiple options for escaping from a zeroed flag 22:26:18 Score for Lymia_cirno: 7.6 22:26:22 !bfjoust zeroPoints < 22:26:32 Score for Gregor_zeroPoints: 0.0 22:26:37 YESSSSSSSSSSS 22:26:50 Lymia: cirno will set the flag to 0 (one cycle), then check if it's 0 (one cycle) 22:26:52 and at that point die 22:27:08 Gregor: -20 points, not zero; that's the score 22:27:19 ais523, ah. 22:27:20 !bfjoust magic ] 22:27:21 Deewiant: I forgot how points were calculated X-P 22:27:30 Gregor: Too INSPIRED for human minds, even yours. 22:27:35 Score for elliott_magic: 12.2 22:27:35 and that law change was an attempt to increase the strategy width by making it possible to push beyond 0 or to fake a 0 22:27:42 !bfjoust shitPile [>[+]] 22:27:47 12.2! 22:27:48 Wait, that's all wrong :P 22:27:49 elliott: I think EgoBot just ignores unmatched brackets 22:27:49 that's better than bestEVer 22:27:51 *bestEver 22:27:51 Even for shitPile 22:27:55 Gregor: dude, we use underscores 22:27:56 not camel-case 22:28:00 Score for Gregor_shitPile: 12.2 22:28:00 you bad person 22:28:04 elliott: FUCK YOUR UNDERSCORES 22:28:16 well, at least shitPile sets up a decoy, and can potentially trap an opponent doing [-] 22:28:18 !bfjoust shit_pile [>+[+]+] 22:28:42 You can tell how much I'm trying here :P 22:28:51 I wonder. 22:28:52 !bfjoust (>-)*5[](<)*5(+-)*128 22:28:52 Score for Gregor_shit_pile: 5.0 22:28:52 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 22:28:53 HackEgo cannot factor 56657856797822194249 :( 22:28:55 Gregor: slowest rush progam I've ever seen 22:29:06 oerjan: you've been doing that all day? 22:29:06 !bfjoust poop_house (>-)*5[](<)*5(+-)*128 22:29:10 oerjan: wat 22:29:20 ais523: this base 8 case is proving even worse than base 10 :D 22:29:22 Score for elliott_poop_house: 4.1 22:29:26 YAY 22:29:27 4.1 22:29:28 WHY SO BAD 22:29:29 Is Egobot's BF Joust intretper publicly available? 22:29:31 EgoBot: that vibration should probably last longer than 128 22:29:31 !bfjoust multiples_of_two [++] 22:29:33 Lymia: yes 22:29:34 ais523: well i've not done it very optimally 22:29:37 Lymia: it is, although I forget where offhand 22:29:37 all parts of egobot are 22:29:40 ask Gregor for the link :P 22:29:44 Lymia: https://codu.org/projects/egobot/hg/ 22:29:50 ais523: EgoBot thanks you for the help 22:29:53 but thinks you might mean elliott 22:29:53 Score for Gregor_multiples_of_two: 8.5 22:29:58 YESSSSSSSSSSSSS 22:29:59 ais523: i'm down to three remaining cases: 10*1, 1* and 61* 22:30:00 oerjan: I'm just surprised you were so patient at it, most people would have got bored by now 22:30:01 !bfjoust poop_house (>-)*5[](<)*5(+-)*4096 22:30:06 Gregor: X-D 22:30:16 !bfjoust multiples-of-three [+++] 22:30:17 Score for elliott_poop_house: 4.1 22:30:20 !bfjoust multiples_of_two_plus_one +[++] 22:30:21 OH YEAH 22:30:22 4.1 22:30:22 WHY SO BAD 22:30:34 and 22 octal digits 22:30:35 elliott. 22:30:36 Oh yeah, it's 128 on each end 22:30:40 I thought 127 for some reason. 22:30:41 Gregor: :hurr: 22:30:41 Score for ais523_multiples_of_two_plus_one: 14.4 22:30:42 Score for Lymia_multiples-of-three: 7.0 22:30:42 -!- hagb4rd has quit (Ping timeout: 240 seconds). 22:30:43 What happens when a program reaches it's end. 22:30:49 So mine just guaranteed a loss :P 22:30:49 Lymia: I think you d ie 22:30:50 *die 22:30:52 it does nothing forever 22:31:00 !bfjoust do_nothing_forever 22:31:01 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 22:31:01 !bfjoust multiples-of-three-2 [[+++]+] 22:31:01 ah 22:31:04 !bfjoust do_nothing_forever > 22:31:05 so it just sits there; it won't fall off, but its flag is a sitting duck 22:31:08 Score for Lymia_multiples-of-three-2: 7.7 22:31:09 Gregor: you can use . for a no-op 22:31:13 that takes a cycle 22:31:15 Ohyeah, forgot . 22:31:17 ais523: why is poop house so bad? 22:31:19 Score for Gregor_do_nothing_forever: 13.2 22:31:37 so far base 8: 2, 3, 5, 7, 141 (97), 161 (113), 401 (257), 661 (433), 1101 (577), 4611 (2441), 6101 (3137), 6441 (3361), 60411 (24841), 101111 (33353), 444641 (149921), 600111 (196681), 1000011 (262153), 1000111 (262217), 4411111 (1184329), 64111111 (13668937), 444444441 (76695841), 601111111 (100962889), 41111111111111111 (1166110617801289), ... 22:31:45 !bfjoust suicidal [-] 22:31:45 elliott: mostly because it doesn't even beat tripwire 22:31:53 ais523: :( 22:31:53 which loses to a do-nothing because it's hilarious like that 22:32:00 ais523: but anyone who runs towards it is a stupid! 22:32:02 tripwire is basically just trolling 22:32:09 !bfjoust hug [-] 22:32:14 or, rather, doing insane amounts of psychology 22:32:22 !bfjoust wildfire (>+)*9(>[(-)*128[-]])*20 22:32:24 !bfjoust poop_house (>-)*5[](<)*5(+-)*10(>)*9[[[-]>]+] 22:32:29 it assumes the opponent will set up decoys, and uses them in an attempt to judge the location of the enemy flag 22:32:40 So. 22:32:50 elliott: 10 turns of vibration won't trick the opponent off the end 22:32:51 I want to try and code an evolver for BF Joust. 22:32:54 How idiotic am I? 22:32:55 hurry up, poop_house! 22:32:59 ais523: no, but it will slow them down, maybe! 22:33:06 Lymia: stop talking about wanting to do it and do it :) 22:33:08 Lymia: probably not massively idiotic; I've had thoughts along those lines myself 22:33:10 you can use egojoust for the purpose, most likely 22:33:11 Hurry up Wildfire! 22:33:11 Score for elliott_poop_house: 9.9 22:33:11 Score for Lymia_hug: 8.6 22:33:12 Score for Gregor_suicidal: 8.6 22:33:12 Score for impomatic_wildfire: 22.3 22:33:14 9.9 22:33:15 OH YEAH 22:33:17 BEST PROGRAM 22:33:18 elliott, well. 22:33:19 !bfjoust i_hope_you_subtract +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 22:33:19 BEATS EVEN SUICIDAL AND HUG 22:33:26 impomatic: I think you're the only person working today who's actually trying 22:33:30 Gregor: that would work better with RLE 22:33:30 hey 22:33:31 i tried 22:33:33 i'm just really bad 22:33:37 Score for Gregor_i_hope_you_subtract: 12.0 22:33:40 I have to figure out how to do loops. 22:33:43 I'm thinking of doing this. 22:33:47 Treat loops as semi-opcodes. 22:34:01 And their contents are mutated the same as the program as a whoel. 22:34:02 whole* 22:34:03 you could do it like FYB and just ignore unmatched [ and ] 22:34:25 Does EgoBot do that? 22:34:42 !bfjoust wildfire >(>+++>---)*4(>[(-)*128[-]])*20 22:34:42 Trying to evolve it with no structure is likely to cause MADNESS. 22:34:52 Score for impomatic_wildfire: 13.9 22:34:53 ais523, I do expect to get better results from keeping loops intact though. 22:34:54 Ohyeah, I forgot about RLE :P 22:35:03 !bfjoust i_hope_you_add -*127 22:35:09 parens on * 22:35:12 so (-)*127 22:35:16 Oh 22:35:18 Score for Gregor_i_hope_you_add: 12.4 22:35:20 !bfjoust i_hope_you_add (-)*127 22:35:21 !bfjoust slow-suicide (>)*31 22:35:35 actually, you probably didn't remember that rule when you wrote egojoust, so without the parens likely works just fine 22:35:43 Score for Lymia_slow-suicide: 0.0 22:35:43 Score for Gregor_i_hope_you_add: 12.8 22:35:43 ais523: do it without keeping loops balanced, it'll be amusing 22:36:05 !bfjoust poop_cauldron ((+)*3(-)*3)*127 22:36:19 What's with your vulgar names? 22:36:22 Score for elliott_poop_cauldron: 15.9 22:36:24 elliott: put the repeat count up to 100000 or so if you're writing a program like that 22:36:29 Lymia: "poop" is vulgar? 22:36:31 Lymia: elliott uses swear words as metasyntactic variables 22:36:32 No. 22:36:33 =p 22:36:33 !bfjoust i_hope_you_FAIL [(-)*127(+)*254(-)*127] 22:36:46 Man, I woke up in a strange new world where "poop" is a swear word. 22:36:50 "You're so... poop." 22:36:56 !bfjoust idiotic (((++)*256)*256)*256 22:37:04 Gregor: that's vaguely how defend7 works, except it lets the opponent do the (+)*254 and kills the opposing flag meanwhile 22:37:04 15.9, not bad! 22:37:08 we're putting bad programs on the hill 22:37:11 and then battling them against each other 22:37:14 all the good programs are going to die out 22:37:24 lol 22:37:26 nah, because the good programs will beat the bad ones easily 22:37:32 Did I crash Egobot? 22:37:33 :v 22:37:39 nah, it's just busy 22:37:41 Score for Lymia_idiotic: 11.6 22:37:41 Score for Gregor_i_hope_you_FAIL: 11.3 22:37:56 !bfjoust idiotic02 ((((((++)*256)*256)*256)*256)*256)*256 22:38:00 they're getting close to toppling vibration2 22:38:10 but I don't think vibration is actually a viable strategy 22:38:17 so it counts as a bad program too 22:38:34 Score for Lymia_idiotic02: 12.7 22:38:36 What does vibration do? 22:38:44 !bfjoust in_my_mind_this_makes_sense >(+)*127[[>+<-]>] 22:38:53 ais523, what's vibration? 22:38:54 basically sets the counter to 0 every other turn, in the hope the opponent will miss it altogether 22:38:59 Score for Gregor_in_my_mind_this_makes_sense: 10.5 22:39:06 apparently, it's my reddit birthday 22:39:08 it's a pretty flawed strategy, as it's too liable to being killed by mistake 22:39:11 !bfjoust insanely-large-number (+)*100000000000000 22:39:13 !bfjoust wildfire (>-)*9(>[+++[-[-[--[-[-[[(-)*125[-]]]]]]]]])*20 22:39:20 apparently, i've been wasting my time for four years 22:40:00 So. 22:40:02 Score for Lymia_insanely-large-number: 12.3 22:40:02 Score for impomatic_wildfire: 26.9 22:40:03 * Sgeo steals elliott's cake 22:40:04 -!- TLUL has changed nick to Ajfrabbitz. 22:40:06 Does insanely-large-nuber count as malicious intent. 22:40:07 ALso. 22:40:09 Why does it win at all. 22:40:13 impomatic: that (-)*125 looks a little suspicious 22:40:18 Lymia: it'll beat tripwire 22:40:27 tripwire is famous for beating good programs and losing for jokes 22:40:32 woo 22:40:34 i got 0.0 22:40:48 basically, because it assumes that the first thing it encounters can't possibly be the real flag because no successful program wouldn't use decoys, but a decoy 22:40:52 and then just rushes after that 22:40:57 !bfjoust wipe_your_mouth_out_with_soup (>)*10((-)*127>)*20 22:41:02 Even if that succeeds, it fails. 22:41:05 Score for Gregor_wipe_your_mouth_out_with_soup: 0.0 22:41:13 Wow 22:41:15 hey 22:41:18 mine was better at getting 0.0 22:41:23 !bfjoust spotless_interior (->)*7(<(+)*10<(-)*10)*7 22:41:23 Score for elliott_spotless_interior: 0.0 22:41:26 ais523: I think *125 is right... before that it adds 3 then subtracts 6 22:41:30 (I thought that strategy might actually work, kinda) 22:41:39 Gregor: change it from 20 > to 19 > 22:41:47 !bfjoust wipe_your_mouth_out_with_soup (>)*10((-)*127.>)*19 22:41:56 Score for Gregor_wipe_your_mouth_out_with_soup: 0.0 22:42:01 I didn't give it a moment to succeed, so if I zero'd the flag, I'd walk off the end anyway :P 22:42:03 impomatic: but say if the opponent used +4 as an obstacle, you'd go and set the value all the way to -128, then all the way up to +0 again 22:42:11 first at full speed, then at half speed 22:42:14 !bfjoust spotless_interior (->)*7(<+<-)*3<(+-)*128 22:42:17 hmm, I suppose that's no worse than what many other langs do 22:42:28 ais523: langs? 22:42:28 Score for elliott_spotless_interior: 3.7 22:42:32 err, programs 22:42:32 3.7 22:42:33 OH YEAH 22:42:35 !bfjoust i-would-rather-die-by-my-own-hand (-)*128< 22:42:43 Score for Lymia_i-would-rather-die-by-my-own-hand: 7.9 22:42:49 Lymia: that probably /still/ beats tripwire 22:42:53 !bfjoust wash_your_mouth_out_with_soup (>)*10((-)*128.>)*19 22:43:02 Score for Gregor_wash_your_mouth_out_with_soup: 0.1 22:43:06 YESSSSSSSSSSSSSSSSS 22:43:24 I won against defend7 :P 22:43:32 !bfjoust lesswild (>-)*9(>[++++++[-[-[-[-[-[--[-[-[-[-[-[[(-)*122[-]]]]]]]]]]]]]]])*20 22:43:40 Score for impomatic_lesswild: 27.0 22:43:44 !bfjoust and_i_will_bring_you_with_me_on_our_fiery_path_to_the_demolishment_of_terms (>->+)*4(<)*8[(-)*128] 22:44:00 i think i overflowed its name buffer 22:44:00 Score for elliott_and_i_will_bring_you_with_me_on_our_fiery_path_to_the_demolishment_of_terms: 0.3 22:44:02 WOO 22:44:02 0.3 22:44:07 HELLS YEAH 22:44:27 time for me to go home, anyway 22:44:36 I need to get some work done; and it may even be esolang-related 22:44:49 -!- ais523 has quit (Remote host closed the connection). 22:44:50 !bfjoust wilddecoy >----------(>)*8(>[++++++[-[-[-[-[-[--[-[-[-[-[-[[(-)*122[-]]]]]]]]]]]]]]])*20 22:44:55 !bfjoust jello >+[<(-+)*100>+] 22:44:59 !bfjoust !bfjoust cirno (>->+)*10([-]>)*100 22:45:01 erm 22:45:09 !bfjoust cirno (>->+)*10([-]>)*100 22:45:15 Score for impomatic_wilddecoy: 35.1 22:45:15 Score for Gregor_jello: 5.8 22:45:16 Score for Lymia__bfjoust: 0.1 22:45:19 :D 22:45:27 impomatic is actually doing well and we are being terrible 22:45:27 Score for Lymia_cirno: 0.0 22:45:31 _bfjoust is a pretty good name. 22:45:57 !bfjoust tripwire-will-lose ([-]>)*100 22:45:57 !bfjoust (->)*4<-(-{>+}[+>-<->>])%4[-(+)*3] 22:45:58 Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 22:46:06 !bfjoust accidental_stare_into_pit_over_void (->)*4<-(-{>+}[+>-<->>])%4[-(+)*3] 22:46:11 Lymia: underscores, dammit! 22:46:13 Score for Lymia_tripwire-will-lose: 9.0 22:46:24 elliott, what's wrong with dashes? 22:46:25 Score for elliott_accidental_stare_into_pit_over_void: 3.2 22:46:27 -!- kar8nga has quit (Remote host closed the connection). 22:46:35 !bfjoust NO_U + 22:46:37 Lymia: because it turns into "Lymia_foo-bar-baz" which is ugly :P 22:46:38 3.2 22:46:39 not bad 22:46:40 Ah. 22:46:43 :V 22:46:48 Score for Gregor_NO_U: 11.4 22:46:51 lol' 22:47:02 xD 22:47:16 !bfjoust poop_emporium . 22:47:31 Score for elliott_poop_emporium: 10.4 22:47:39 OH YEAH 22:47:44 !bfjoust secret_instant_win_op * 22:47:57 Gregor: PUT A BACKDOOR INTO EGOJOUST 22:48:01 Score for Gregor_secret_instant_win_op: 9.6 22:48:03 !bfjoust ../../../../../../../../../etc/passwd . 22:48:04 !bfjoust sexyghoul >(-)*10>(+)*10(>)*7(>[++++++++[-[-[-[-[-[-[--[-[-[-[-[-[-[[(-)*121[-]]]]]]]]]]]]]]]]])*20 22:48:09 !bfjoust poop_shopping_centre ((.{.}.)%74)*9 22:48:23 sexyghoul? your naming convention is rather arbitrary :D 22:48:36 !bfjoust tits (.)(.) 22:48:41 Score for impomatic_sexyghoul: 30.1 22:48:41 Score for elliott_poop_shopping_centre: 8.0 22:48:41 Score for Lymia____________________________etc_passwd: 8.0 22:48:44 8.0 22:48:45 Score for Gregor_tits: 0.0 22:48:46 8. FUCKING 0 22:48:48 HOW DID THAT EVEN HAPPEN 22:48:50 IT WAS A BUNCH OF NOPS 22:48:53 HOW 22:49:03 link to report.txt :P 22:49:08 Tripwire 22:49:12 http://codu.org/eso/bfjoust/report.txt 22:49:49 Dude... 22:49:52 We have totally shitted up the hill. 22:50:11 lol 22:50:17 !bfjoust ruh_roh . 22:50:19 18 | - + + + + + - - 0low.bfjoust 22:50:21 !bfjoust poop_box (.)*999999999999999999 22:50:23 What the heck happened here. 22:50:30 Lymia: wat 22:50:44 !bfjoust sexyghoul >(-)*9>(+)*9(>)*7(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-] 22:50:44 It was probably running two instances at once and got screwy :P 22:50:50 Maybe bfjoust sucks as a game 22:50:54 * Sgeo ducks 22:51:03 !bfjoust poop_encapsulating_object_oriented_dynamism_to_leverage_synergy (.)*18446744073709551617 22:51:17 !bfjoust d_oh >*10[[]>][[]>][[-]>] 22:51:37 I should make a system where you write a bot to play nethack, and see who can write the best said bot :P 22:51:44 Gregor, in Brainfuck. 22:51:53 Lymia, no. 22:51:56 The tape contains your field of vision. 22:52:01 Brainfuck is overused. 22:52:02 I should make a system where you write a bot to play nethack, and see who can write the best said bot :P 22:52:03 . makes you output a character to input. 22:52:04 Gregor: TAEB would win :P 22:52:07 TAEB would win forever. 22:52:11 Score for Lymia_d_oh: 6.7 22:52:11 Score for Gregor_ruh_roh: 6.7 22:52:12 Score for elliott_poop_encapsulating_object_oriented_dynamism_to_leverage_synergy: 6.7 22:52:12 Score for elliott_poop_box: 6.7 22:52:12 Score for impomatic_sexyghoul: 46.4 22:52:18 6.7 22:52:26 6.7 for the poop-encapsulating object-oriented dynamism to leverage synergy 22:52:32 * Sgeo falls in love with object-oriented poop 22:53:14 We need to hold up and let the hill settle with less people on it :P 22:53:20 Just let impomatic add something. 22:53:27 impomatic: add GENIOSITY 22:53:33 !bfjoust hello_world >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 22:53:42 Or, y'know, not :P 22:53:59 Score for Lymia_hello_world: 4.1 22:54:02 X-D 22:54:08 OK, something be broken :P 22:54:09 !bfjoust I win! 22:54:17 Gregor: No, it's just competing against really bad programs. 22:54:19 A lot of really bad programs. 22:54:20 Oh dear :P 22:54:20 OR 22:54:23 maybe it's actually a good strategy 22:54:29 elliott: No, the hill is supposed to clean itself out. 22:54:29 Gregor, make the bot output the tape for each round. 22:54:32 elliott: But it's not. 22:54:38 Score for elliott_I: 6.1 22:54:40 Gregor: ISTR you increased its size. 22:54:43 ...what, EgoBot? 22:54:46 Then we can output messages into the thing. 22:54:46 oh 22:54:50 !bf_txtgen I win! 22:54:58 elliott: http://codu.org/eso/bfjoust/report.txt Observe the lunacy 22:54:59 83 ++++++++++[>+++++++>+>+++>++++++++++++<<<<-]>+++.>>++.>-.--------------.+++++.<+.<. [548] 22:55:08 Gregor: IIRC the tape is 15 long or something 22:55:14 *hill 22:55:17 Gregor: Err, the report is cut off. 22:55:23 elliott: Yes, observe the lunacy :P 22:55:26 !bfjoust i_win ++++++++++[>+++++++>+>+++>++++++++++++<<<<-]>+++.>>++.>-.--------------.+++++.<+.<. 22:55:37 Score for elliott_i_win: 1.5 22:55:39 Gregor: Delete all the retarded-ass programs and start again :P 22:55:47 Gregor: poop_shopping_centre downwards on that report. 22:55:50 The rest can stay. 22:55:57 That's what it's SUPPOSED to do already. 22:56:02 Gregor: Do it manually first :P 22:58:03 hmm, I wonder if... hmm 22:58:37 !bfjoust likely_blond >->+>----->+++++>---->++++>--->+++>-->++(+++[-]..>---[+]..>)*50 22:58:54 Score for Lymia_likely_blond: 33.5 22:59:21 -!- oerjan has quit (Quit: Good night). 22:59:46 !bfjoust likely_blond >->+>----->+++++>---->++++>--->+++>-->++(+[-].+>-[+].->)*50 22:59:51 I have no clue what this will do. 22:59:51 :v 22:59:53 Score for Lymia_likely_blond: 32.5 23:00:01 http://www.computer.org/portal/web/buildyourcareer/news/-/blogs/php-tops-list-of-hot-job-categories?_33_redirect=/portal/web/buildyourcareer/news 23:00:01 Worse, it seems. 23:00:04 I... please... 23:00:20 I'll get to making an evolver I guess. 23:00:20 :s 23:00:23 That must be an overexaggeration. 23:00:27 elliott, now that I think about it. 23:00:31 How would you score an evolver. 23:00:39 The early ones are likely to kill themselves. 23:00:39 Lymia: By using egojoust's resulting score. 23:00:48 At fir-- 23:00:49 Oh right. 23:01:03 Hmm... 23:01:11 Think making it generate ()*bluh ops would be an bad idea? 23:01:25 Lymia: Might be a good idea. 23:01:35 !bfjoust i_hope_i_fixed_it . 23:01:35 Ugh 23:01:40 Score for Gregor_i_hope_i_fixed_it: 5.1 23:01:46 Have to install Microsoft Visio and Microsoft Project for class 23:01:51 Better :P 23:02:19 !bfjoust crap (.)*999 23:02:23 !bfjoust crap9 (.)*9999 23:02:25 Score for elliott_crap: 5.1 23:02:29 Score for elliott_crap9: 4.7 23:02:34 999 IS BETTER 23:02:39 elliott, yeah. 23:02:40 IMMA KILL U 23:02:42 I think I have it figured out. 23:02:46 One major thing I'm wondering about though. 23:03:02 How would you crossover the contents of loops between bots. 23:03:07 Just pick random loops, and cross them over? 23:03:12 Lymia: You could just hill-climb, rather than actually being genetic. 23:03:18 BF doesn't really have a good concept of genes. 23:03:23 Because code is very context-dependent. 23:03:26 So breeding is very difficult. 23:03:37 So. 23:03:46 Just mutate with no crossing over? 23:04:06 Could work, I guess. 23:04:20 Lymia: As long as you DON'T call it genetic :P 23:04:25 It's hill-climbing. 23:04:32 (It's still OK to call it "evolutionary programming" :P ) 23:04:36 (Crossing over would work better in FYB, with :; I guess) 23:04:39 Gregor: Well, yeah. 23:04:45 But not genetic programming or genetic algorithms or anything :P 23:05:06 Meh. 23:05:22 EXAMPLE 3 In this example, the size of a variable length array is computed and returned from a 23:05:22 function: 23:05:22 #include 23:05:22 size_t fsize3(int n) 23:05:22 } 23:05:24 char b[n+3]; // variable length array 23:05:26 return sizeof b; // execution time sizeof 23:05:27 { 23:05:30 WHY IS THAT VALID 23:05:32 (What, those }s and {s are the right way around in the standard.) 23:06:05 IIRC, C99 supports that. 23:06:13 ... 23:06:17 The [n+3] thing, not the }{ 23:06:18 yes 23:06:20 it's the C99 standard 23:06:22 but stil 23:06:24 why can you sizeof that :D 23:06:25 *still 23:06:28 elliott, dunno. 23:06:33 a bit evil 23:06:42 -!- Ajfrabbitz has quit (Quit: *disappears in a puff of orange smoke*). 23:06:44 I guess an array could be something like this. 23:06:49 [length][contents] 23:06:57 And the returned pointer is in between them. 23:07:05 -!- TLUL has joined. 23:07:06 !bfjoust sexyghoul >(-)*9>(+)*9(>-)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-] 23:07:09 Score for impomatic_sexyghoul: 33.0 23:07:29 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-] 23:07:34 Score for impomatic_sexyghoul: 33.7 23:07:44 It's the sexiest ghoul that's a computer program and not a ghoul! 23:07:50 !bfjoust sexyghoul >(-)*9>(+)*9(>)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*20[-] 23:07:51 elliott, so. 23:07:54 Score for impomatic_sexyghoul: 31.3 23:07:58 For basic mutations, I'm thinking something like this. 23:08:37 Modify instruction, encase in loop, encase in repeat, duplicate (creates two copies which can be modified independently), deencase, delete instruction, add instruction. 23:08:50 -!- Cheery has quit (Quit: Lost terminal). 23:09:10 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:09:21 Oh well. 23:09:23 Lymia: Sure. Can delete instruction delete a [ or ]? 23:09:25 Enough thinking about it, and more coding time. 23:09:31 elliott, [] counts as one instruction, I guess. 23:09:40 Hmm. 23:09:42 Actually. 23:09:47 Why do we need deencase. 23:09:50 If it tries to delete a loop. 23:09:52 It removes the loop. 23:09:52 You don't. 23:09:55 But not the contents. 23:10:00 Lymia: Nor do you need encase. 23:10:12 abc -> insert [ -> a[b]c (] is added automatically) -> move a -> [ab]c 23:10:20 So you just need a "move instruction forwards/backwards". 23:10:28 Wait. 23:10:29 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-] 23:10:31 Does the intrepter do that? 23:10:34 Score for impomatic_sexyghoul: 36.9 23:10:51 Hahahah BEST IDEA EVER: Metabfjoust: Submit a program that writes a bfjoust program, with all the other bfjoust programs on the last hill as input. 23:10:58 (I fail at spelling today^H^H^H^H^H) 23:10:59 Gregor: X-D 23:11:05 Gregor, MetaFYB. 23:11:07 Do it. 23:11:17 They're FYB programs that output BF Joust programs. 23:11:18 (Of course, you know what I would submit for it) 23:11:34 Lymia, hmm? 23:11:45 elliott, while trying to kill eachother. 23:11:53 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*120[-]]]]]]]]]]]]]])*21[-] 23:11:57 Score for impomatic_sexyghoul: 36.6 23:12:10 Lymia: Remember, all the other "programs" are actually programs to write the programs, and you only get the last program they wrote as input. 23:12:25 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]]---)*21[-] 23:12:27 Gregor, hmm... 23:12:31 Score for impomatic_sexyghoul: 34.3 23:12:31 What language would this be written in? 23:12:39 Lymia: Idonno, C? :P 23:12:45 I mean, the program writers. 23:12:45 JAVA 23:12:49 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-] 23:12:50 Lymia: Brainfuck. DUH 23:12:52 Or... 23:12:53 Lymia: ... yes, C. 23:12:53 Score for impomatic_sexyghoul: 36.9 23:12:55 INTERCAL. 23:12:56 Gregor, ah. 23:12:58 So. 23:12:59 INTERCAL OUTPUTTING BRAINFUCK 23:13:04 Gregor: Nonono 23:13:06 Gregor: They have to be IRC-sized 23:13:07 What's to stop you from making an evolutional sim. 23:13:09 Brainfuck is clearly the superior choice. 23:13:12 elliott: Hm, fair point. 23:13:16 Lymia: Nothing. 23:13:19 I think I'll stick to 36.9 for today :-) 23:13:20 i.e. 23:13:23 Take all programs as input. 23:13:29 Gregor: Instead of having a . instruction, have instructions to output all the valid things. 23:13:31 i.e. 23:13:34 Make an internal hill, and evolve them with eachother. 23:13:42 And output the top of that hill. 23:13:43 .+ 23:13:45 .- 23:13:47 .. 23:13:48 .< 23:13:52 .> .[ .] 23:13:54 .( .) .% .* 23:14:02 i.e., . is a compound instruction taking the instruction to output. 23:14:08 That would avoid hideously complex "text generation" :P 23:14:21 *brain axplote* 23:14:21 MetaMetaBFJoust 23:14:31 Make programs that write programs that write BF Joust programs. 23:14:45 Or. Better idea. 23:14:53 FYBJoust 23:14:59 You must write a program that's a polygot of both. 23:15:12 That's ... actually not a bad idea. 23:15:48 That's a terrible idea :P 23:15:55 !bfjoust dead [- 23:15:59 Score for Lymia_dead: 5.1 23:16:01 Meta^NBFJoust 23:16:04 It takes N as an input. 23:16:18 If N=0, it must act as a BF Joust program after reading that. 23:16:27 If N=1, it must write a BF Joust program, given the current BF Joust hill as input. 23:16:36 Meta^NBFJoust = every time the hill is run, it's one level of meta further :P 23:16:55 If N=2, it must write a program that (writes a BF Joust program, given the current BF Joust hill as input), given the current MetaBFJoust hill as input. 23:16:58 So on, so forth. 23:17:00 How is N decided? 23:17:03 Simple! 23:17:08 It runs N=0 to N=64 on all programs. 23:17:13 lol 23:17:21 :@+[joust code]*;fyb code 23:17:22 Of course. 23:17:29 FYBJoust wouldn't be hard. 23:17:29 :v 23:17:32 And then pits the resulting BF Joust programs against the BF Joust hill, picks the top one, 23:17:34 and adds it to the hill. 23:17:34 FUCK YEHA 23:17:37 *YEAH 23:18:01 Gregor: Implemented it yet? 23:18:08 elliott, super-quines. 23:18:08 :v 23:18:41 elliott: I'm slightly happier with the Meta^1BFJoust idea :P 23:18:57 Gregor: OK, fine. Meta^\inftyBFJoust. 23:19:06 elliott, now that's just silly. 23:19:21 Gregor: Brainfuck programs must output programs that output programs that ... , given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill. 23:19:28 *..., 23:19:34 !supermetabfjoust i_will_solve_the_motherfucking_halting_problem ... 23:20:07 :D 23:20:16 Gregor: Brainfuck programs must output programs that output programs that ... , given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill, given the current Meta^\inftyBFJoust hill. 23:20:18 COME ON THIS IS THE BEST IDEA 23:20:31 If I make MetaBFJoust, will anybody actually play? It's actually not the worst idea ever :P 23:20:51 Gregor: I'll play Meta^\inftyBFJoust. :p 23:20:56 MetaBFJoust, MAYBE. 23:21:12 Gregor: Make the programs be Scheme programs... Why? Because: 23:21:19 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:21:23 Gregor: (1) They can just output lists, basically, so it's easy for them to handle nesting, and for you to avoid getting invalid programs, 23:21:36 Gregor: (2) "Easy" enough to sandbox, I think there are implementations designed for it, maybe Elk Scheme, 23:21:38 Gregor, sure. 23:21:41 Gregor: (3) C is a fucking pain. 23:21:47 Eh 23:21:57 I'd have to learn Scheme then. 23:21:57 D= 23:21:59 Lymia: Having to malloc when you're busy trying to write a program-writing program = lame :P 23:22:00 I'm willing to consider other host languages, but not Scheme :P 23:22:09 Gregor: Got any better ideas? :p 23:22:17 JAVASCRIPT 23:22:18 Java? 23:22:21 Gregor: No. 23:22:21 Gregor, why not Scheme? 23:22:23 Lymia: ... gtfo. 23:22:25 gtfo and die. 23:22:26 elliott, :( 23:22:29 * Lymia does so 23:22:30 * Lymia is now dead 23:22:32 Sgeo: The number one problem with Scheme is that it's Scheme. 23:22:52 Gregor hates languages with parentheses because they obsolete his job as a language-designer. :} 23:23:24 Ha I can feel his anger 23:23:27 His fury, his hatred 23:23:34 Transmitted through his silence 23:23:36 Gregor, make it take Perl programs. 23:23:43 Lymia: ...you are the worst. 23:23:43 Then we can fit it on IRC. 23:23:43 I could just make it anything #!/usr/bin/envable 23:23:48 And install tcc 23:23:57 #!/bin/cat 23:23:59 elliott, what. 23:24:01 (insert really good bf joust program) 23:24:03 I'm being practical. 23:24:05 Lymia: You've suggested 23:24:06 (1) Java 23:24:07 (2) Perl 23:24:14 Perl is easy to fit on IRC! 23:24:16 elliott: That'd be step-one, yeah 23:24:19 YOU SAID FUCKING JAVA 23:24:19 Java is easy to sandbox! 23:24:22 NO IT'S NOT 23:24:28 IT HAS JUST AS MUCH ACCESS AS ANY LANGUAGE 23:24:31 YOU ARE BAD 23:24:32 BAD PERSON 23:24:33 BAD 23:24:36 It has the SecurityManager mechenism. 23:24:38 :V 23:24:43 * Lymia hides from elliott 23:24:48 ... 23:24:54 Gregor: Seriously, let's just kill this guy. 23:25:04 -!- Lymia has quit (Quit: *killed*). 23:25:06 I am willing to put our language differences aside to unite against people who like Java in any way at all. 23:25:14 lawl, I scared him away :P 23:25:25 -!- Lymia has joined. 23:25:27 Is it safe now? 23:25:41 NO 23:25:44 Rarely 23:25:46 I HAVE KNIFE 23:25:57 Let's just agree on LLVM bytecodes 23:25:59 In theory, Newspeak should be sandboxable. In practice, it's not there yet. 23:26:08 xD 23:26:12 Gregor: x86 asm 23:26:15 make it all x86 asm 23:26:18 so hardc0r3 23:26:19 Hey, shutup's dead 23:26:21 elliott: ITYM machine code 23:26:22 So is updog. 23:26:29 What a crazy, crazy coincidence. 23:26:43 I wish. It's machine code. 23:26:44 I honestly think the #1 problem with MetaBFJoust is we could never ever agree on the host language :P 23:26:45 23:27:02 Gregor: Hackiki-style seems like the best idea to me. Just install Scheme 48. :p 23:27:04 Gregor, make it anything with a shebang or a native ELF executable. 23:27:07 Gregor: Do it in HackEgo. 23:27:10 Then we can install our own languages. 23:27:13 Lymia: ELF executable? Naw. 23:27:14 Make it run Parrot VM bytecode, so we could chose the language 23:27:18 You can even do C, like: 23:27:21 #!/bin/sh 23:27:32 gcc -x c $(tail -n +3 $0) -o foo 23:27:34 Yeah, shebang is good I think. 23:27:35 exec ./foo 23:27:37 ...c code here... 23:27:38 Or whatever. 23:27:43 Didn't we fail to get Factor running on HackEgo? 23:27:46 In fact, I'll make a rungcc now to do that in HackEgo. 23:27:49 Gregor: Srsly, do it in HackEgo :P 23:27:55 Moar flexible. 23:28:05 `run pwd 23:28:10 /tmp/hackenv.9639 23:28:13 Hmm, is ./bin always in PATH? 23:28:15 elliott: Sure *shrugs* 23:28:23 `run echo $PATH 23:28:23 e.g. will "#!/usr/bin/env foo" run bin/foo? 23:28:24 /tmp/hackenv.9681/bin:/opt/python27/bin:/usr/bin:/bin 23:28:28 Rite. 23:28:33 (lawl @ python there) 23:28:40 elliott: YOUR FAULT 23:28:44 #!/bin/sh 23:28:48 *insert shar stuff here* 23:28:53 java -jar killmenow.jar 23:28:54 Gregor, why do you prefer Mercurial? 23:29:12 Gregor, how do you make sure that the program only accesses the BF Joust hill. 23:29:15 Gregor: Link me to the !c interpreter thing? 23:29:17 In HackEgo. 23:29:19 Sgeo: Because git is terrible. 23:29:21 And dosn't, say, use /etc/passwd as input. 23:29:26 Gregor, how so? 23:29:28 Lymia: What? 23:29:58 Sgeo: Its design and user interface are needlessly complicated. 23:30:00 elliott, how do you make sure that the MetaBFJoust program dosn't take things it's not supposed to as input. 23:30:13 Gregor: git's design is actually stupidly over-simple. 23:30:18 Gregor, I'm not using Git direcctly. I found a nice GUI 23:30:21 Gregor, are the programs allowed to store persistant state, or do they only take the hill programs as input. 23:30:23 Gregor: (About as stupidly-simple as Mercurial's) 23:30:31 GOOD FEKKING LORD TOO MUCH STUFF 23:30:51 `run echo '#!/bin/sh' >bin/rungcc; echo 'name=$(mktemp)' >>bin/rungcc; echo 'gcc -x c -O2 -std=gnu99 "$(tail -n +1 "$0")" -o "$name"' >>bin/rungcc 23:30:53 elliott: I don't mean the repository design, I mean the design behind how the command is used. I guess that's UI, but eh :P 23:30:58 Also. 23:30:59 -!- impomatic has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.16/20101130074636]). 23:30:59 No output. 23:31:03 Sgeo: Then you don't like git, you like that UI. 23:31:09 Lymia: They could store persistent state. 23:31:20 `run echo 'shift' >> bin/rungcc 23:31:22 No output. 23:31:24 Gregor, ok, but I have no reason to hate it. Your only reason so far is bad UI 23:31:26 Gregor: No persistent state, dude :P 23:31:30 That leaves BF out. 23:31:45 elliott: That doesn't leave BF out, it just doesn't help BF :P 23:31:46 `run echo 'exec "$name" "$@"; st=$?' >>bin/rungcc 23:31:47 No output. 23:31:48 elliott, you could store the tape as persistant state. 23:31:59 `run echo 'rm -f "$name" 2>/dev/null' >>bin/rungcc 23:32:01 No output. 23:32:03 Lymia: *persistent 23:32:08 Gregor: I suggest no persistent state :P 23:32:13 `run echo 'exit $?' >>bin/rungcc 23:32:14 -!- augur has quit (Remote host closed the connection). 23:32:14 No output. 23:32:15 `url bin/rungcc 23:32:17 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/rungcc 23:32:23 echo hi > /etc/passwd 23:32:24 elliott: lurn2exec 23:32:25 `run chmod +x bin/rungcc 23:32:27 No output. 23:32:30 Gregor: Oops :P 23:32:39 cat /etc/passwd 23:32:40 `run sed -i 's/exec //' bin/rungcc 23:32:41 No output. 23:32:46 Lymia: ITT: permissions 23:32:51 Heh. 23:33:04 `run echo '#!/usr/bin/env rungcc' >test; echo 'int main() { return 42; }' >>test 23:33:05 No output. 23:33:07 `run chmod +x test 23:33:08 No output. 23:33:09 `run ./test 23:33:14 C'MON DUDE 23:33:15 `run echo $USER 23:33:16 No output. 23:33:16 WE'RE ALL COUNTING ON YOU 23:33:18 `run ./test; echo $? 23:33:19 No output. 23:33:20 0 23:33:21 what 23:33:23 what 23:33:24 oh 23:33:26 aahahaha 23:33:27 i fail 23:33:28 `run env >> env 23:33:29 No output. 23:33:31 `url env 23:33:32 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/env 23:33:34 `run sed -i 's/exit $?/exit $st/' bin/rungcc 23:33:36 No output. 23:33:39 `run ./test; echo $? 23:33:41 127 23:33:46 :what: 23:33:55 oh lol 23:33:56 ok edit time 23:34:03 I'm unwilling to read all this shit :P 23:34:05 `run ./test 2>&1; echo $? 23:34:06 /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc) \ /tmp/tmp.GVNllRRSA1: error while loading shared libraries: /tmp/tmp.GVNllRRSA1: file too short \ 127 23:34:08 TOO MUCH STUFF 23:34:08 `run UNDO=rm -rf /* 23:34:09 No output. 23:34:10 WHAT 23:34:11 THE 23:34:11 FUCK 23:34:13 at that 23:34:16 Lymia: what 23:34:23 "file too short" xD 23:34:28 `run gcc 23:34:29 No output. 23:34:30 `run gcc 2>&1 23:34:31 /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc) 23:34:36 `run rm -rf /home/hackbot/* 23:34:36 Gregor: Dude, gcc is broken. 23:34:37 No output. 23:35:05 `run rm -rf /tmp/* > bluhbluh 23:35:09 `url bluhbluh 23:35:15 No output. 23:35:15 Gregor, if you work, then switch over to a different branch or commit in Hg, but working space isn't clean, does Hg warn you? 23:35:17 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bluhbluh 23:35:20 Git doesn't seem to 23:35:50 `fetch http://sprunge.us/OfHY 23:35:53 2011-02-04 23:54:07 URL:http://sprunge.us/OfHY [153] -> "OfHY" [1] 23:35:58 `run mv OfHY bin/rungcc; chmod +x bin/rungcc 23:35:59 No output. 23:36:03 `run ./test 23:36:04 No output. 23:36:06 `run ./test 2>&1 23:36:07 /usr/bin/gcc: /usr/lib/plash/lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/gcc) 23:36:09 Gregor: plz 2 be fixing gcc 23:36:33 `run ps aux > ps 23:36:35 No output. 23:36:36 `url ps 23:36:38 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/ps 23:36:48 -!- HackEgo has quit (Remote host closed the connection). 23:36:49 -!- EgoBot has quit (Remote host closed the connection). 23:36:51 What the fuck are you doing, Lymia? 23:36:58 Nothing. 23:37:00 What the fuck are you doing, Gregor :P 23:37:03 -!- EgoBot has joined. 23:37:09 I LIKE HOW APACHE IS ON THAT LIST 23:37:11 Taking down HackEgo for a tick 23:37:15 Why :P 23:37:18 To fix gcc? 23:37:22 Yes 23:37:28 0 30204 0.0 3.6 116792 38144 ? S Jan28 0:01 spamd child 23:37:29 GREGOR IS SPAMMER 23:37:45 `run wget whatismyip.org -O - > ip 23:37:49 `url ip 23:37:57 Wait. 23:37:58 >.> 23:38:13 -!- impomatic has joined. 23:38:57 I get a 403 forbidden when I try to access the bfjoust report :-( 23:38:59 5000 8147 0.0 0.1 45960 1440 ? S 23:13 0:00 su - egobot 23:38:59 ? 23:39:09 EGOBOT RUNS AS ROOT OBVS 23:39:38 So. 23:39:39 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[++++++[-[-[-[-[-[--[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-] 23:39:42 Why does Gregor have spamd. 23:40:04 Score for impomatic_sexyghoul: 36.9 23:40:06 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>[+[+[+[+[+[+[(-)*7[-[-[-[-[-[(-)*122[-]]]]]]]]]]]]]])*21[-] 23:40:14 Score for impomatic_sexyghoul: 37.4 23:40:39 Lymia: it's an anti-spam daemon stoopid 23:40:50 I just googled it. 23:40:50 =p 23:41:06 It's spam-ass-ass-in 23:42:03 Ass in, ass out. 23:46:20 http://www.nationformarriage.org/atf/cf/%7B39D8B5C1-F9FE-48C0-ABE6-1029BA77854C%7D/JewishEnglish.pdf LOOOOOOOOOOOOOOL. "Why Marriage Matters: SEVEN SCIENTIFIC REASONS". First words under that header? "In Jewish tradition," 23:46:28 Yes, you're well on your way to a scientific reason now :P 23:46:45 Gregor: HOW CAN YOU SAY THAT AS A JEW 23:47:16 [[ 23:47:16 “How will my same-sex marriage hurt your marriage?” Same-sex marriage advocates 23:47:16 want to force everyone to dramatically and permanently alter our definition of marriage 23:47:16 and family.]] 23:47:18 What X-D 23:47:42 [[ 23:47:42 “Is same-sex marriage like interracial marriage?” Laws against interracial marriage were about keeping 23:47:42 two races apart, so that one race could oppress the other, and that is wrong. Marriage is about bringing male 23:47:42 and female together, so that children have mothers and fathers, and so that women aren’t stuck with the 23:47:43 enormous, unfair burdens of parenting alone--- and that is good.]] 23:47:45 ??????????????/ 23:47:47 Gregor this makes less than no sense. 23:48:01 [[“Is polygamy next?” Jonathan Yarbrough, part of the first couple to get a same-sex marriage in 23:48:01 Provincetown, Mass, said, “I think it’s possible to love more than one person and have more than one 23:48:01 partner. . . . In our case, it is. We have an open marriage.” Once you rip a ship off its mooring who knows 23:48:01 where it will drift next?]] 23:48:02 ...your point? 23:48:05 NOM is so good :P 23:48:23 well that was the stupidest. 23:48:24 Gregor: is something wrong with http://codu.org/eso/bfjoust/report.txt ? "Forbidden - You don't have permission to access /eso/bfjoust/report.txt on this server." 23:48:40 -!- elliott has left (?). 23:48:41 -!- poiuy_qwert has joined. 23:48:43 -!- elliott has joined. 23:49:01 impomatic: Because I broke egobot instead of hackego LOL 23:49:33 impomatic: Fixt 23:49:51 Thanks :-) 23:49:51 lol, remember when Gregor was incompetent 23:49:53 ME TOO 23:49:56 Fuck you. 23:50:11 I recall seeing something to that effect in a FYB source file. 23:50:29 What, calling Gregor incompetent? :P 23:50:49 Fuck you 23:50:56 Pfff, sources I wrote six years ago :P 23:53:28 -!- cheater00 has joined. 23:53:57 Gregor: FIXED GCC YET 23:54:14 -!- zzo38 has joined. 23:54:31 I think C99 has a few bad things 23:54:52 elliott: Be patient, I have to reinit the chroot. 23:55:05 it was joke. 23:55:10 Hmm, NetHack's colours suck on a light background. 23:55:23 I do not think C should have complex numbers. 23:55:56 Why not? 23:56:40 -!- cheater99 has quit (Ping timeout: 240 seconds). 23:57:22 I think it is something which does not belong in C. 23:57:47 It isn't harming anything if you ask me. 23:58:15 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*21[-] 23:58:19 [expecting coherent, logical reasons from zzo38] 23:58:26 Score for impomatic_sexyghoul: 37.4 23:59:03 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14(-)*9)*21[-] 23:59:08 Score for impomatic_sexyghoul: 35.4 23:59:51 !bfjoust sexyghoul >(-)*9>(+)*9(>---)*6(>([+)*6[(-)*7([-)*5[(-)*122[-(])*14)*21[-]