00:00:04 coppro: what? 00:01:01 alise: argh. (0/1)*normal = 0/1 violates my hypothesis that it's an abelian group :( 00:01:21 wait, does (m/0)*0 = m? 00:01:33 yes 00:01:37 oerjan: what should it be? 00:01:46 ok, never mind then 00:02:05 then I go by my previous answer 00:02:18 so does YOUR MOM 00:02:38 oerjan: (0/1)*normal = ? 00:02:50 alise: well if normal = 1/n then it should be 0/n 00:03:03 fair enough 00:03:07 i think i had that too anyway 00:03:10 what if normal = 2/n? 00:03:13 wait, what is normal here? 00:03:15 0/(2/n)? 00:03:40 coppro: not 0/m or n/0 where m>1 or n>0 00:03:41 alise: 0/(n/2) 00:03:47 okay. 00:03:48 alise: ok 00:04:11 I like Ruby symbols 00:04:22 4/5 * 0/1 = ? 00:04:33 for that matter, 4/5 * 0/2 = ? 00:04:56 0/(5/2) 00:04:56 0 in all cases, I think 00:05:53 oerjan: = 00:05:53 ? 00:06:03 it's nat/nat and 5/2 is not a natural 00:06:05 the latter one 00:06:07 Some Ruby syntax is strange 00:06:24 i guess it's just (0/1)/(5/2) 00:06:46 alise: you cannot get everything in the form m/n with naturals if you assume it's an abelian group and 0 cannot be combined in 00:06:47 = 0/5 00:07:10 oerjan: 0 is 0/1 00:07:23 0/n isn't anywhere near being 0 despite intuition 00:07:34 alise: that doesn't help _reduce_ the number of factors 00:08:12 maybe i expressed myself wrongly 00:08:13 0/(5/2) cannot be written simpler, afaict 00:08:44 it's the same as 0*(2/5), though 00:08:57 is it not 0/5? 00:09:44 0/(5/2) = (0/1)/(5/2) = (0*2)/(1*5) = 0/5 00:09:54 ouch 00:10:00 um... Ruby uses C++-like syntax for some I/O? 00:10:15 oerjan: i just done a bad :D 00:10:16 alise: if it's an abelian group then 0*x = 0 implies x = 1 00:10:40 0/5 =/= 0 00:10:49 0*(2/5) = 0/5 00:10:52 er 00:10:54 (0/2)*(2/5) = 0/5 00:11:03 or was it /, I forget by now 00:11:04 or even + 00:11:10 but point is, just as 1/2 isn't 1/1 00:11:13 the latter would be correct for a group 00:11:15 0/n isn't 0 00:11:38 indeed. and so 0/(5/2) cannot be simplified, although there are rearrangements 00:11:48 Like my random hash generator? (http://pastie.org/850853) :P 00:11:57 (0/5)*2, say 00:12:02 dev_squid: cool. 00:12:09 alise, :D 00:12:11 oerjan: how is 0/(5/2) = 0/5 wrong? 00:12:36 dev_squid: neat, but inefficient 00:13:09 also biased 00:13:44 alise: => 5/2 = 5 by abelian group axioms 00:13:57 coppro, yes it is biased and it is inefficient; I wasn't aiming for either. 00:13:58 but i don't like 0/(5/2) being irreducable :( 00:14:02 find some other algebraic structure :P 00:14:06 ok 00:14:11 sheesh 00:14:40 :-D 00:15:08 coppro, I'm new to Befunge. Just trying out what I've learned. :) 00:16:23 coppro, I tried to make the odds as balanced as I could without rewriting the whole program. 00:16:44 ok 00:18:41 oerjan: i have a sneaking feeling this is all quite impossibe 00:18:44 *impossible 00:19:24 anything is possible 00:19:43 i mean, retaining all the basic properties we want 00:19:44 anything! 00:19:50 and no. _|_ isn't possible 00:19:50 alise: duh 00:20:03 oerjan: see that is *not* the answer i was hoping for 00:20:24 Would be fun to have a complete number system with no undefined operations at all 00:20:41 Reals go horizontally, complexes stack on top vertically, and things we had to add to make everything work go sort of spiralling off diagonally 00:21:21 there's a reason 0/0 is considered an indeterminate form 00:21:57 Bite my shiny zero-dividing fraction. :| 00:23:02 * Sgeo__ gives up on TryRuby 00:24:17 alise: new suggestion: we define 0/0 to be a daffodil 00:24:28 coppro: you are so boring :( 00:24:49 I had to work hard for a joke that bad :( 00:25:02 alise: well if you want to insist that everything is m/n for integers m, n then maybe it would be better to define the operations and then _afterward_ finding out which rules still hold 00:25:12 yes. 00:25:17 oerjan: will you remind me to, tomorrow? 00:25:27 alise: please tell me you at least got the joke 00:25:35 also, you're allowed back on on weekdays now? 00:25:45 no i'm not going because of overriding crisis 00:25:52 although you still need to decide which fractions in non-smallest terms are equal 00:25:58 complicated, and i'm going now anyway 00:26:02 hopefully i will be here tomorrow 00:26:03 see you guys! 00:26:05 -!- alise has quit (Quit: alise). 00:31:16 -!- cpressey has left (?). 00:32:17 `translate Hva de skal se, vites ikke enda! <-- yeah that looks like Norwegian indeed <-- except that kind of passive is ridiculously stilted for norwegian 00:32:35 -!- SimonRC has quit (Ping timeout: 246 seconds). 00:33:38 passives with -es are much less common in norwegian than swedish afaik 00:35:27 it could of course be stilted for humorous reasons 00:42:59 -!- SimonRC has joined. 01:02:57 -!- lament has quit (Ping timeout: 276 seconds). 01:06:17 -!- lament has joined. 01:18:14 No closures in Ruby [apparently] 01:18:23 * Sgeo__ is learning! 01:18:42 yay 01:19:03 n/m 01:26:56 Wait, those things don't close? 01:30:22 Methods can't see surrounding variables, but blocks can 01:30:24 Apparently 01:37:44 In Ruby, there seem to be a million ways to accomplish the same thing 01:37:49 For any given "thing" 01:38:33 ruby stole that from perl, obviously 01:41:26 (see: perl motto) 01:45:03 -!- Asztal has quit (Ping timeout: 252 seconds). 01:45:09 -!- FireFly has quit (Quit: Leaving). 01:45:11 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 02:08:43 * Sgeo__ is considering running back to his beloved Python 02:29:26 -!- dev_squid has quit (Ping timeout: 240 seconds). 02:33:33 -!- dev_squid has joined. 02:40:55 oerjan: or it could be stilted for dramatic effect. 02:40:58 -!- ruhtranayr has quit (Remote host closed the connection). 02:42:51 -!- thewolfangel has joined. 02:42:53 uorygl: it is really _too_ stilted for that 02:43:09 -!- thewolfangel has left (?). 02:43:11 it is not just the passive, but also the word order 02:43:41 "Yet to be known is which movie." 02:44:07 That, at least, looks like a plausible thing to say. 02:45:05 "Hva de skal se, er ennå ukjent!" would be a better phrasing for that purpose. 02:45:39 Maybe this is just a stilted person. :P 02:46:33 That's a Facebook status update. "Marianna skal straks se film med Ørjan. Hva de skal se, vites ikke enda!" 02:46:40 s/Marianna/Marianne/ 02:47:03 `translatefromto sv en Marianne skal straks se film med Ørjan. 02:47:06 that's definitely humoristically dramatic, then 02:47:12 Marianne skal straks see movies with Ørjan. 02:47:22 it's norwegian, not swedish 02:47:25 I know. 02:47:32 `translatefromto sv en Hva de skal se, vites ikke enda! 02:47:34 Hva de skal se, vites ikke only! 02:47:45 That translated less well. 02:48:22 I wonder what a P-knappen is. 02:48:32 `translatefromto sv en Vad dom skal se, vites inte ennu! 02:48:34 As they peel look, vites not ennu! 02:48:41 what the heck! 02:48:53 my swedish must be worse than i thought :D 02:49:09 * uorygl peels look. 02:49:17 oh skal = skall 02:49:22 or shell 02:49:30 completely different meaning in swedish 02:50:12 `translatefromto sv en Vad dom ska se, vets inte enn! 02:50:14 What they should look, not vets enn! 02:50:23 *sigh* 02:50:45 `translatefromto no sv Hva de skal se, vites ikke enda! 02:50:47 Att se, är inte känt ännu! 02:51:16 not exactly perfect either (well, the first part) 02:51:26 the second part actually removed the stiltedness 02:51:52 `translatefromto no en Hva de skal se, vites ikke enda! 02:51:54 What to see, is not known yet! 02:56:52 -!- thewolfangel has joined. 02:57:09 -!- thewolfangel has left (?). 03:00:15 Thew ol' fang el. 03:00:25 El Ol' Thew Fang. 03:00:57 No no, Ol' El Thew Fang. 03:01:54 Like Old El Paso, except Ol' instead of Old and Thew Fang instead of Paso. 03:03:17 gawnt hell foe 03:04:05 "Gawnt" isn't a word. 03:04:19 i thought it was close enough to gaunt 03:09:46 `translate korvapuusti 03:09:49 var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var 03:10:12 `translatefromto fi en korvapuusti 03:10:14 slap in the face 03:10:46 `translate Korvapuusti on kanelilla, sokerilla ja voilla täytetty pulla. 03:10:48 Is a slap in the face with cinnamon, sugar and butter filled bun. 03:11:30 I'm guessing that sentence doesn't have a copula. 03:11:36 `translate kanelilla 03:11:38 var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var 03:11:46 `translatefromto fi en kanelilla 03:11:48 cinnamon 03:11:55 `translatefromto fi en on 03:11:57 is 03:12:02 I was wrong. 03:12:39 It looks like -illa means... whatever case you use for "filled with". 03:12:51 yeah 03:12:54 `translatefromto fi en täytetty 03:12:56 filled 03:13:29 `translatefromto fi en korva 03:13:31 ear 03:13:43 `translatefromto fi en puusti 03:13:45 Puusti 03:13:54 If a korva is an ear, why is a korvapuusti a slap in the face? 03:14:07 Are Finns' ears on their faces? 03:14:12 probably more a slap on the ear, then 03:14:24 "ørefik" in norwegian 03:14:27 Wikipedia says it means "slap on the ear". 03:14:38 `translatefromto no fi ørefik 03:14:40 puhaltaa 03:14:45 "Skillingsbolle", actually. 03:15:06 `translatefromto fi no puhaltaa 03:15:08 blåse 03:15:14 what the heck 03:15:23 `translatefromto fi no korvapuusti 03:15:25 slag i ansiktet 03:15:37 `translatefromto no en ørefik 03:15:39 blow 03:15:42 heh 03:15:46 `translatefromto fi no Skillingsbolle on kanelilla, sokerilla ja voilla täytetty pulla. 03:15:48 Skillingsbolle er kanel, sukker og smřr fylt bun. 03:15:54 `translate Skillingsbolle er kanel, sukker og smřr fylt bun. 03:15:56 Skilling Bowl is cinnamon, sugar and smřr filled bun. 03:15:59 it seems to be wrecking it by going through english 03:16:35 Skilling? 03:16:55 hm a skillingsbolle would be a bun filled _with_ the other things i think 03:17:01 * uorygl begins skilling. 03:17:18 `translate Kanelbolle er kanel, sukker og smřr fylt bun. 03:17:19 Cinnamon roll are cinnamon, sugar and smřr filled bun. 03:17:20 skilling is an old coin 03:18:08 that's really not correct norwegian 03:18:15 `translate Skillingsbolle, også kalt kanelbolle, er en tradisjonsrik bolle mange tror stammer fra Bergen, men som selges og har vært solgt i butikker og bakerier over stort sett hele landet. 03:18:17 Skilling Bowl, also called cinnamon bun, is a traditional bowl many believe stems from Bergen, but sold and have been sold in shops and bakeries across virtually the entire country. 03:18:40 you'd either add a lot of hyphens, or switch things around using the preposition "med" 03:18:46 The entire country! 03:18:59 well yeah 03:19:02 `translate Navnet kommer av at bollene i sin tid kostet én skilling per stykk. 03:19:04 The name comes from the urchins in the time cost of one shilling per piece. 03:19:24 `translatefromto no en bollene 03:19:27 urchins 03:19:39 bolle hear doesn't really mean bowl. it means a ball-shaped bakery good 03:19:48 what the heck? 03:19:56 `define urchin 03:19:58 * poor and often mischievous city child \ [22]wordnetweb.princeton.edu/perl/webwn \ * Urchin was the code name for the neutron generating device that triggered the nuclear detonation of the earliest plutonium atomic bombs such as Fat Man, once the critical mass had been "assembled" by the force of conventional 03:20:10 that's just - wrong 03:20:20 An urchin is a hedgehod, I hear. 03:20:26 Hedgehog, even. 03:20:37 _that_ would be pinnsvin 03:20:49 And a sea urchin is a hedgehog of the sea. 03:20:52 `translatefromto en no urchin 03:20:54 urchin 03:20:54 i don't think there is a good translation for the bakery "bolle" 03:20:54 Precisely. 03:21:13 Donut hole. :P 03:21:14 ah! 03:21:24 that's "kråkebolle" 03:21:29 but never just "bolle" 03:21:37 What's a kråke? 03:21:39 (sea urchin that is) 03:21:42 kråke = crow 03:21:57 A crow bolle. 03:22:15 basically crows eat them like people eat the other thing 03:23:30 The kråke eat the kråkebolle and people eat the smultring? 03:23:42 um no people eat the bolle 03:23:46 well the smultring too 03:24:05 Crows eat crow-bolles like people eat bolles? 03:24:10 or specifically hvetebolle, the most generic type 03:24:12 What's this about smut-ring? 03:24:15 (wheat) 03:24:16 Oh, smultring. 03:24:31 Gregor: A smultring is a ring-formed cake cooked of smult. 03:24:41 lard ring 03:24:52 Cooked *in* smult. 03:25:01 deep fried dough rings 03:25:08 ... doughnuts. 03:25:15 Ah, that's the word. 03:25:29 same shape, but completely different size and recipe 03:25:51 What's a completely different size and recipe but the same shape? 03:26:05 smultring vs. doughnut 03:26:26 Are those both words in one language? 03:26:48 Oh, huh. "Smultring" is an English word. 03:26:52 well american-style doughnuts are sometimes sold in norway under that name 03:27:12 a smultring wouldn't have any kind of glaze 03:27:25 Not all doughnuts have glaze. 03:27:30 Glazed doughnuts have glaze. 03:27:45 just a small flat dough ring, dropped into hot lard where it expands to a torus shape 03:27:48 aha 03:27:57 So, a doughnut :P 03:28:18 It looks like smultrings are a certain type of smultringer! 03:28:32 Just like the salsa is a certain type of la salsa. 03:28:37 ic so not all american doughnuts conform to the norwegian stereotype of them :) 03:29:05 http://www.voodoodoughnut.com/ 03:29:33 Some are rings and glazed, some are rings and not glazed, some are circular but not rings, some are a rounded box with dimension ratio approximately 4:2:1. 03:29:41 The non-ring ones are all filled with something; none of the ring ones are. 03:29:52 uorygl: Well that's just not true. 03:30:11 Of course not. There's no law of physics requiring there to be filling in a non-ring doughnut. 03:30:13 Maple bars are not rings, and are not filled. 03:30:28 It's just that it never happens that way. 03:30:34 http://www.holmstad.no/ on the right are typical smultringer 03:30:44 uorygl: Except for ALL THE FUCKING TIME. 03:31:04 uorygl: You must have the worst doughnut shops in existence :P 03:31:21 Those smultringer look slightly different from our typical non-chocolate unglazed smultringer. 03:31:27 very plain, like most traditional norwegian bakery 03:31:35 Gregor: I've never even seen an actual doughnut shop, I think. 03:31:41 *tsk tsk* 03:31:51 Those smultringer remind me of Twinkies and onion rings. 03:32:19 We would call those "plain doughnuts" 03:32:23 i guess onion rings are the same except with onions as well inside 03:32:23 They're popular with coffee. 03:32:42 What do you call those things on the left? Fruktpizzaer? 03:33:04 "Fruit pizza"? :P 03:33:24 Actually, "frukt" means "ear", and "pizza" means "slap". 03:33:25 * uorygl coughs. 03:33:26 honestly i don't know 03:33:42 * Gregor slaps uorygl's ear 03:33:51 it _would_ seem a reasonable norw. name for it 03:34:14 http://www.voodoodoughnut.com/doughnuts/bacon_maple_bar.jpg <-- the greatest doughnut ever conceived. Full stop. 03:34:18 well assume that was pizza underneath, i suspect it's actually something sweeter 03:34:22 *assuming 03:34:40 -!- calamari has joined. 03:34:44 I would call anything a pizza as long as it's a slab of dough with stuff on it. 03:35:09 Even frukt. 03:35:15 Then Japan has some nasty things to show you. 03:35:19 So, an iced cake is a pizza :P 03:35:26 A cake is not a slab. 03:35:32 A short cake is. 03:35:38 A shortcake, even. 03:35:44 If it's a really short cake, then... 03:35:57 Then yeah, it's a pizza. 03:36:02 Strawberry shortcake is DEFINITELY a kind of pizza by your definition. 03:36:26 My strawberry shortcake never consists of strawberries and whipped cream on a short cake. 03:36:45 It's strawberries and whipped cream and chopped-up biscuits tossed together. 03:36:53 I'm getting the idea that my cuisine is strictly inferior to yours. 03:37:05 Strictly? Yes. 03:37:25 Shortcake is often, but not always, short and round ... it can also be tall and round, or even not round probably :P 03:37:30 This is America -- the country of the pizza bagel. 03:37:35 *barf* 03:37:41 :P 03:37:57 Hmm. I think an open-faced sandwich would qualify as a pizza under my definition. 03:38:35 (Also, shalom and ciao) 03:39:06 uorygl: I figured that since bread slices are sliced, they wouldn't qualify as a slab of dough, since they were in fact a loaf of dough, cut into a slab of bread. 03:39:09 An open-faced smörgås. 03:39:36 I guess that is true. 03:39:54 dammit all this food talk made me forget to eat -> 03:40:12 (I would have used an apostrophe, but I am currently using a Norwegian keyboard with no easy access to apostrophes.) 03:40:30 Now I know why people use acute accents as apostrophes. 03:40:35 It´s easier on some keyboards. 03:43:27 wait, you are actually in norway? 03:44:16 No, I just used a Norwegian keyboard layout. 03:44:18 Briefly. 03:44:23 the apostrophe is just left of the return key, btw 03:44:43 Here in Norway, that is an æ instead of an apostrophe. 03:44:47 to the right of æ 03:45:01 Oh. There isn't a key in between that and return. 03:45:21 oh 03:45:29 My home row: asdfghjkløæ 03:45:29 oerjan: What sort of freakish anti-coding keyboard do you have? 03:45:43 asdfghjkløæ' 03:45:46 Who uses a non-ASCII keyboard for coding? 03:46:05 Japanese people do. 03:46:05 oerjan: what, do you have an extra key in that row? 03:46:13 so it would seem 03:46:16 pikhq: Crazy Ruby-zealots 03:46:21 Though, their keyboard is QWERTY with a few extra buttons to control the IME. 03:46:28 A spammer discovered my hometown 03:46:42 it may appear that i have an entire column of convenient accent-making keys there 03:46:47 Got a spam claiming to be from the public library of my hometown 03:47:00 It's possible they were guessing. 03:47:02 I've pretty much got one set up right now. 03:47:15 (though with bindings instead of actual buttons) 03:47:16 Or maybe it wasn't spam, hm 03:47:41 * uorygl counts the keys on his keyboard. 03:47:57 105 03:48:03 Savant. 03:48:15 uorygl: although changing to EN layout is as simple as pushing alt-right shift. which i don't think i've ever done on purpose, except to undo after doing it accidentally :D 03:48:33 * oerjan does so now 03:48:42 Fourteen keys in the function row, fourteen in the number row, fourteen in the upper row, thirteen in the home row, twelve in the lower row, eleven in the space row. 03:49:21 I'm sure I could find more keys if I looked hard enough. 03:49:43 oerjan: Wait, you code with that horrifying layout? 03:49:51 seventeen, fifteen, fifteen, fifteen, fourteen, twelve 03:49:53 *Brackets* are on Alt-Gr! 03:49:58 pikhq: i don't code that much 03:50:17 and i've never typed for that kind of speed anyway 03:50:24 That also looks mildly annoying for English text in general. 03:51:07 although it's a laptop keyboard, so no numpad 03:52:27 You have a lot more keys than I do. 03:53:33 My top row: Esc, F1-12, eject. Next: `, 1-0, -, =. Next: Tab, q-p, [, ], \. Next: Caps lock: a-l, ;, ', return. Next: shift, z-m, ,, ., /, shift. Next: Fn, control, option, command, space, command, option, arrow keys. 03:53:50 * uorygl counts how many of those are for printable characters. 03:54:35 48. 03:55:00 command means it's apple layout? 03:55:20 Yep. 03:55:26 * uorygl hands out barf bags. 03:56:16 i think a lot of the extra keys on the right side are things that would usually be on the numpad, just strewn about a bit 03:56:51 Like home, page up, page down, end, insert, delete? 03:56:56 yeah 03:57:07 And the forbidden sysrq and break. 03:57:12 yep 03:58:38 You know, it's kind of annoying that there isn't any obvious separation between operating system keyboard shortcuts and application keyboard shortcuts. 03:58:43 SysRq is actually useful. 03:58:48 ... In Linux. 03:59:01 (Magic SysRq) 04:03:01 I have a question. Does (http://pastie.org/851114) generate statistically-pseudorandom integers in range of 0-255? 04:03:48 I just modified one I found in the list of Bef sources on the Cat's-Eye site. 04:04:46 on determining whether something is statistically pseudorandom, i defer to the actual experts. 04:05:27 i mean, isn't the first rule of pseudorandom generators _not_ to try to roll your own. 04:05:42 You don't have much of a choice in Bef. 04:06:19 well i mean algorithm, not actual implementation. 04:06:38 It's a solid algorithm. 04:06:51 ok 04:07:17 then i'll sidle away carefully and leave it to the actual _befunge_ experts :D 04:07:19 What does "statistically pseudorandom" mean? 04:07:36 that it passes some common statistical tests, i presume 04:07:38 It basically takes rolls on 0-128, then adds it to 0-64, then adds it to 0-32, etc... 04:07:51 I mean... 04:08:37 Statistically, it doesn't yield results that are any more or less biased than the parent pseudorandom number generator is. 04:10:07 It seems like it is, but I just can't make sense of why there is a 1 following the set. That would make the range from 0 to 256, which is just wrong. 04:10:30 I'm pretty sure that 0 is a possible outcome. 04:10:59 Test it! 04:12:31 I'll test it with the original. 04:28:42 I feel like creating yet another billiard ball language. 04:28:47 I'll call it YABBL. 04:31:40 now you are just yabb'ling 04:35:45 Why does Ruby interest me so much? 04:40:50 Well, I can help you answer that question. 04:41:02 Why does Ruby interest you so much? 04:41:59 obviously it's because it's a gem of a language. 04:43:26 * Gregor slaps oerjan. 04:43:33 -!- Gracenotes has quit (Read error: Connection reset by peer). 04:44:35 -!- Gracenotes has joined. 04:46:32 ouch 04:55:38 -!- Oranjer has quit (Read error: Connection reset by peer). 04:56:13 -!- Oranjer has joined. 04:57:33 -!- Oranjer has quit (Read error: Connection reset by peer). 04:58:01 -!- Oranjer has joined. 04:58:40 "But I Miss My C++ Iostream" 04:58:46 "Sometimes there's just no accounting for taste..." 04:59:58 YABBL described quickly: http://pastebin.ca/1820626 05:00:04 I hope it's correct. 05:00:13 Iostream, eh? That sounds like a scary feature of C++. 05:00:38 std::cout << "I've heard it described here as nightmarish." << std::endl 05:00:42 streams on Io 05:00:54 Monads are better! They're easier to understand! 05:01:11 (Everything I understand is easier to understand than everything I don't understand, obviously.) 05:01:14 std::cout << "Besides being ugly, which is trivial, you can't determine the flags set on an IOStream, apparently" << std::endl 05:01:32 What does that std::endl even mean? 05:01:53 "\n" 05:04:54 uorygl: "A collision is undefined behavior unless it is identical to one of the following:" <-- i assume you mean to include obvious reflections and rotations of those as well? 05:06:28 oh and i think you'd want >< ---> <> and variations 05:07:11 or would that get wrong timing... 05:09:18 hm i suppose it would 05:22:52 千十字をやった!私がやったぜ! 05:41:59 Ubuntu has been kind of buggy lately. a few kernel crashes here and there, random logouts, overheating.. 05:42:16 I wonder if it's due to my laptop going out the window (figuratively) 05:43:12 -!- lifthrasiir has quit (Ping timeout: 252 seconds). 05:43:16 -!- lifthrasiir has joined. 05:43:43 uorygl: std::endl is '\n'. It is not the system end of line character. 05:44:47 -!- dev_squid has quit (Read error: Connection reset by peer). 05:45:10 -!- dev_squid has joined. 05:46:21 -!- Oranjer has left (?). 05:48:53 -!- Gracenotes has quit (Remote host closed the connection). 05:50:50 -!- dev_squid has quit (Ping timeout: 248 seconds). 05:51:28 -!- dev_squid has joined. 06:10:12 pikhq: No, it's not the system end-of-line character. The endl manipulator is defined to call os.put(os.widen('\n')) followed by os.flush(). You only get the platform end of line character if you're writing into a stream that's opened in text mode, which does \n translation. 06:10:24 Oh, that's exactly what you said. 06:10:45 fizzie: Yes. 06:10:53 Heh, I must have gotten confused since '\n' was already said; I thought you were complaining about that. 06:11:31 I guess it's true what they say about making assumptions; they make an ass out of you and... mptions? 06:16:30 -!- MissPiggy has joined. 06:16:31 -!- MissPiggy has quit (Changing host). 06:16:31 -!- MissPiggy has joined. 06:18:37 never make assumptions about asinine assassins 06:20:01 ah, albeit arbitrary aerjans advice absolutely agrees 06:21:42 meanwhile, MissPiggy misuses mischievous misspellings 06:21:43 oerjan: I shall assiduously assay to assimilate your assistance. 06:22:28 "aerjan" sounds like a pirate oerjan. 06:22:31 ARRR, you see. 06:23:31 still, a bit arrtificial 06:26:22 arrjan 06:27:47 check out this awesome iPod nano feature 06:27:53 You can apply a simple encryption to text, rendering it unrecognizable to the casual reader, by 06:27:58 placing it between and tags. 06:28:09 it can display text files ... IN ROT 13 06:28:55 ... wow. 06:29:01 The worst part is I'll bet you're not kidding. 06:29:27 * MissPiggy just copied rainbows end onto it, but it's unreadable 06:32:57 developer.apple.com/ipod/iPodNotesFeatureGuideCB.pdf 06:36:36 "Some presentations do not require the interactivity supported by the Notes feature. A public-service 06:36:40 announcement presentation or a guided tour through a single exhibit, for example, may not require 06:36:43 any branching or backing up." 06:36:53 ?? they are suggesting that someone might use iPod nano as a medium for public service announcements ??? 06:45:04 "There is the older Tanka-style poem where you get two bonus lines (7 syllables each) to try to summarize all of existence. CREDITS" 06:52:54 -!- FireFly has joined. 07:01:52 "You can also configure the iPod to lock out everything but the Notes area; that way, viewers must start there. Called NotesOnly mode or Museum mode, it holds potential for museum curators, tour guides, or realtors interested in presenting facts about a painting, a historical center, or an overpriced property." 07:04:12 That makes perfect sense. The PSO thing above still confuses me :P 07:04:18 But that's not a PSO. 07:04:31 PSOX? 07:06:18 ... 07:06:20 Public 07:06:22 Service 07:06:27 Onnouncement :) 07:06:41 * Gregor ^H's a bit. 07:09:05 -!- tombom has joined. 07:11:27 Gregor: ah so that's where MissPiggy dumped my o 07:18:12 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 07:18:18 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:20:17 -!- coppro has joined. 07:33:01 “Did you know that you can store and read 07:33:02 up to 1000 text notes with your iPod?“ 07:33:36 heck no. i didn't even know i had an iPod. 07:33:41 XD 07:34:15 -!- coppro has quit (Remote host closed the connection). 07:34:27 Have you ever wanted to read the entire Bible? BiblePlayer makes this goal achievable by organizing your bible reading plans. Select the current month and date, and your day's readings are presented. Scroll and select a reading and Audio Bible Player will load and play that reading. 07:36:17 Have you ever wanted to read the deluded ramblings of some long-dead anonymous Jewish (and later, Christian, but let's face it, you won't actually get that far) guys? 07:41:35 "It is especially directed to readers whose intellectual tendencies cause them to question the validity of Jesus' claims." 07:42:16 http://www.podbible.org/Images/iPod1a.png 07:43:01 Gregor: I'm pretty sure anyone *vaguely* sane would stop by Numbers. 07:43:04 It's possible to translate Ruby to Python?!? 07:43:09 It's not always rambling; some parts are just Very Interesting(TM) genealogical listings. 07:43:11 ... Guess what it is? A book. Of numbers. 07:43:11 [14] These be the heads of their fathers' houses: The sons of Reuben the firstborn of Israel; Hanoch, and Pallu, Hezron, and Carmi: these be the families of Reuben. 07:43:12 [15] And the sons of Simeon; Jemuel, and Jamin, and Ohad, and Jachin, and Zohar, and Shaul the son of a Canaanitish woman: these are the families of Simeon. 07:43:12 [16] And these are the names of the sons of Levi according to their generations; Gershon, and Kohath, and Merari: and the years of the life of Levi were an hundred thirty and seven years. 07:43:12 [17] The sons of Gershon; Libni, and Shimi, according to their families. 07:43:15 I mean, I was thinking of that 07:43:15 And so on and so on. 07:43:18 But it's been done 07:43:22 http://github.com/whymirror/unholy 07:43:36 Admittedly the part of living 137 years is a bit suspicious. 07:43:49 fizzie: Oral history... 07:44:13 But WHAT SORT OF CRAZY PERSON WOULD STICK GENEALOGY IN ORAL HISTORY. 07:44:53 someone who couldn't write, and so had nowhere else to stick it 07:44:53 Oh yes, Numbers was the most boring one. 07:45:38 -!- kar8nga has joined. 07:46:56 Text may be sharp, but my aging eyes found it hell to try to read, even for menu choices and song titles. I’d have to pass on the nano just for this reason alone (putting aside that I really need 60GB minimum storage…). 07:47:08 what the hell is this guy doing with 60 GB storage.. 07:47:27 And the GPS track logs of their wanderings! 07:47:30 [15] And they departed from Rephidim, and pitched in the wilderness of Sinai. 07:47:30 [16] And they removed from the desert of Sinai, and pitched at Kibroth-hattaavah. 07:47:30 [17] And they departed from Kibroth-hattaavah, and encamped at Hazeroth. 07:47:30 [18] And they departed from Hazeroth, and pitched in Rithmah. 07:47:40 Couldn't they have put that stuff in an appendix or something? 07:48:11 (There's about 50 consecutive lines of that.) 07:50:03 -!- tombom has quit (Quit: Leaving). 07:51:07 fizzie: The appendix hadn't been invented yet. 07:51:18 Nor had punctuation. 07:51:24 Or paragraphs. 07:51:46 Or good writing, for that matter. 07:52:29 Yes, well, they could have done some refactoring later, after those all had been invented. 07:54:23 "But but literal word of god!" 07:54:30 "To change would be blasphemy!" 07:54:43 -!- oerjan has quit (Quit: Good night). 07:59:01 -!- dev_squid has quit (Ping timeout: 264 seconds). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:22:51 -!- Sgeo_ has joined. 08:25:40 -!- Sgeo__ has quit (Ping timeout: 265 seconds). 08:33:35 -!- calamari has quit (Quit: Leaving). 08:38:26 -!- Gracenotes has joined. 08:43:53 -!- MigoMipo has joined. 09:42:04 -!- BeholdMyGlory has joined. 09:52:21 -!- scarf has joined. 11:10:25 -!- MizardX has joined. 11:14:32 -!- kar8nga has quit (Read error: Connection reset by peer). 11:14:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 11:15:55 -!- scarf has quit (Ping timeout: 276 seconds). 11:24:28 -!- MigoMipo has quit (Remote host closed the connection). 11:34:19 -!- scarf has joined. 11:34:21 -!- scarf has quit (Changing host). 11:34:21 -!- scarf has joined. 12:15:52 -!- alise has joined. 12:17:46 scarf: http://search.cpan.org/~miyagawa/App-cpanminus-0.9911/lib/App/cpanminus.pm 12:17:53 A CPAN client that doesn't suck?! 12:17:58 * scarf looks 12:18:08 also, I'm pretty sure a non-sucking CPAN client is theoretically possible 12:18:32 It's quiet, uses little RAM, and doesn't ask many questions apparently 12:18:40 [[Yeah, I think my brain has been damaged since I looked at PyPI, gemcutter, pip and rip. They're quite nice and I really wanted something as nice for CPAN which I love.]] 12:19:03 "I tested installing MojoMojo, Task::Kensho, KiokuDB, Catalyst, Jifty and Plack using cpanminus and the installations including dependencies were mostly successful." 12:19:27 there is One True Test of this: seeing if it can handle installing TAEB 12:19:35 Go for it 12:19:52 "You should consider using cpanminus." —chromatic, big perl community guy 12:20:11 the issue is I already have TAEB installed; I'd need to test it on a clean install to see if it worked 12:20:23 hmm, let me try to run a virtualised knoppix or something like that 12:21:20 scarf: have /you/ read my apparently-very-whiny and completely flawed in every vway critique of files? :P 12:21:24 *way 12:21:25 no, I haven't 12:21:27 but I'm interested 12:21:30 http://catseye.tc/ehird/files-suck.html 12:21:38 heh at the URL 12:21:49 gah, that's narrow 12:21:59 10 words per line. it's actually best 12:22:00 so thar 12:22:12 (backed up by studies and shizz :|) 12:22:15 * scarf loads in w3m 12:22:20 hey 12:22:25 I worked hard on making sure it had a vertical rhythm! 12:22:26 :P 12:22:28 so your obnoxious styling doesn't affect my reading 12:23:15 “Anything from 45 to 75 characters is widely regarded as a satisfactory length of line for a single-column page set in a serifed text face in a text size. The 66-character line (counting both letters and spaces) is widely regarded as ideal. For multiple column work, a better average is 40 to 50 characters.” 12:23:28 hmm, apparently 66 chars is more like 33em 12:23:41 66ex? 12:24:05 an ex is not a character :P 12:24:11 anyway 66 chars ~= 10 words iirc 12:24:16 alise: that's presumably a guide for printed text, that doesn't take into account vertical scrolling 12:24:26 scarf: oh i forgot you have no mousewheel 12:24:29 lol sucks to be you 12:24:31 Oh darn, ex was height not width 12:24:39 alise: I have three mousewheels 12:24:44 scarf: but none of them work, presumably 12:24:53 actually, they're one of the few things that do 12:25:04 but no, the pain is having to interact with the computer at all while I'm reading 12:25:13 also, you'll miss out on all my wonderful whiny-italics if you use w3m 12:25:18 at least just turn styles off in a graphical browser! :-P 12:25:20 no I won't, it underlines instead 12:25:30 that is not the same :( :p 12:26:10 I'm quite disappointed that nobody's spotted my diæresis 12:26:27 reëncode 12:26:30 oops, right next to it I have a ' in place of a ’ 12:26:43 too busy thinking how cool I am for having a diæresis i guess :) 12:27:17 alise: your comments about representation reminded me of something I'm doing in RL 12:27:18 I'm so used to them that I didn't really realize it was special 12:27:33 I was explaining to a non-programmer the difference between communication formats and formats you actually operate on 12:27:38 Deewiant: What? Nobody uses the diæresis! 12:27:44 PNG is a good format for transmitting an image file to someone else, but it's a bad format for storage in memor 12:27:46 *memory 12:27:52 alise: I use them whenever I remember to 12:28:01 and presumably, the argument to make is that in-memory formats are better for storing on a disk than communication formats 12:28:15 And whenever it's not a bad idea 12:28:17 (On the other hand, compressed formats take up less disk space...) 12:28:24 Deewiant: Where is it a bad idea? 12:28:34 scarf: It, of course, depends on the use case. 12:28:38 yes 12:28:53 certainly, uncompressed XML is a bad format to store files in 12:29:03 it may be an ideal format for communicating them, but not for storage 12:29:11 http://codu.org/rxml.php 12:29:16 alise: With English teachers who don't like that kind of trickery, or people who aren't good enough at English to be anything other than confused by it 12:29:21 I DISAGREE STRONGLY ^_^ 12:29:33 Deewiant: Trickery? Bah! Beats the unsightly -. 12:29:42 alise: I suspect Gregor was joking in that page 12:29:46 And "reencode" just looks really awkward, like "noone". 12:29:53 noöne 12:30:01 nobody ;-P 12:30:07 Well, yeah. 12:30:16 gah, swapping mouse buttons is really inconsistent 12:30:22 for instance, it swaps on mice but not on the touchpad 12:30:30 hmm... what if you have a ü or similar non-English letter, and it should have a diaresis? 12:30:33 also, the buttons don't seem to be swapped inside (k)qemu 12:30:34 or even é 12:30:41 *diæresis 12:30:53 Then you don't diaeresize it 12:30:58 just use ü̈ 12:30:59 üü :-) 12:31:02 é¨é 12:31:08 the latter needs to be a combining char :/ 12:31:19 é̈ 12:31:20 http://www.youtube.com/watch?v=S2XwN_oQ_Yo OBABO talks to SPACE 12:31:24 scarf: beautiful 12:31:40 >_̈< 12:31:59 alise: it renders rather badly in this client 12:32:01 Obama loves the word guys 12:32:03 scarf: ditto :-D 12:32:23 Thought it was just a normal ë at a glance 12:33:19 what's the package manager on knoppix? 12:33:26 I threw up a VM, in order to test CPANMINUS 12:33:28 it has none 12:33:32 it's based on debian 12:33:33 maybe it has apt-get 12:33:37 but it probably won't work 12:33:40 knoppix "includes everything" 12:33:54 and happened to use the ICFP2008 iso, as I had it handy 12:33:55 it is the lamest of linux distros :P 12:34:27 it has apt-get, yes 12:34:32 18:08:43 * Sgeo__ is considering running back to his beloved Python 12:34:32 Python's shit too :) 12:34:43 and sudo works without a password, which is handy due to me having no idea what the password should be otherwise 12:35:24 however, it was trying to use debian.uchicago.edu as a repo, and failed 12:35:37 just use an ubuntu livecd or sth :P 12:35:46 ah, isn't online 12:36:51 19:36:02 Strawberry shortcake is DEFINITELY a kind of pizza by your definition. 12:36:51 i lol'd irl. qrx dns 12:37:07 (19:36:53 I'm getting the idea that my cuisine is strictly inferior to yours.) 12:38:01 19:43:27 wait, you are actually in norway? 12:38:02 oerjan is just desperate for a friend 12:40:33 hmm, kqemu is rather slow on a netbook 12:40:48 either that, or knoppix is, but I'm guessing it's the emulation that's causing the issues 12:40:57 no virtualisation 12:41:02 so it's emulating 12:41:07 kqemu virtualises to some extent 12:41:12 yes, but your CPU can't 12:41:14 almost certainly 12:41:15 ah 12:41:19 what cpu is it? 12:41:27 one of those ultra-low-power ones 12:41:34 that ULV stuff? 12:41:43 which is handy, because I've been running this on the battery for around 3 hours already 12:41:55 Intel® Virtualization Technology (VT-x)Yes 12:41:55 for core 2 solo ULV SU3500 12:42:09 either you have a different cpu or it's actually just really slow 12:42:16 also, wow 3 hours :P 12:42:44 mine's a U2700 12:42:54 you get core 2 duos on a 17" 1920x1200 screen and ~7 hours of battery life if you're not stressing it on the macbook pros... they /did/ patent the battery technology though :P 12:43:00 damn patents! 12:43:44 scarf: huh it's a pentium (apparently) 12:43:49 no relation to the pentium line tho 12:43:54 Intel® Virtualization Technology (VT-x)No 12:43:55 alise: it has the pentium trademark on it 12:43:56 No virtualisation. 12:44:06 "intel Pentium inside" 12:44:06 LOL SUX 2 B U 12:44:33 not really, it's fast enough for most things, even large compiles of C++ programs 12:44:39 even if I have to do something else while it's compiling 12:45:25 I freak out every time a computer slows down, so I couldn't really work with a low-spec machine 12:45:36 It's like I go into "BE CAREFUL IT MIGHT FREEZE" mode. 12:45:45 oh, I only freak out when it starts swapping 12:45:51 Anyway anything can compile C++, more or less 12:45:54 Nowadays at least 12:46:01 I bet even an Atom could, albeit slowly 12:46:03 my standard response to that nowadays is to kill X, but I haven't had to do that for months 12:46:15 (when I do, it's normally because I wrote a program which has a memory leak in a tight loop) 12:46:20 i've had even ctrl+alt+fN freeze before :( 12:46:28 same, killing X is more reliable 12:46:33 how? 12:46:42 if ctrl+alt+fN don't work ctrl+alt+backspace doesn't either 12:46:46 because, it's at the stage where it's only processing one keystroke every half-hour 12:46:49 both work, eventually 12:46:51 reisub probably would but i never bothered trying 12:46:55 easier to just punch reboot :p 12:46:56 so you want to use the one that kills the program you're running 12:47:09 scarf: well I don't want to wait half an hour 12:47:10 (hmm, what about the SAK, i.e. alt-sysrq-k?) 12:47:41 also it shouldn't matter if it crashes because i can just reboot and all my work will have been persisted ages before :D 12:47:51 IT WILL NOT DIE 12:48:21 anyway, I've decided to have really ambitious requirements for my version control system 12:48:36 it should be able to have exact equivalents (not just approximates) for everything in git, hg, and darcs 12:48:48 also, it should only have 5 commands (you can have more as abbreviations, but everything can be done in terms of those) 12:49:14 yet, I think it's possible 12:49:22 well, we're ignoring remote push/pull presumably as they're irrelevant to the actual vcs 12:49:26 as a bonus, the design I'm currently thinking about can do what rsync does as well 12:49:29 so you need 12:49:37 alise: I'm assuming that they can be implemented the same way as local push/pull 12:49:38 some sort of thing to record changes, some sort of thing to merge two repositories 12:49:43 so I say 4 commands 12:49:54 two _essential_ ones, and then two ones to keep things running 12:49:58 alise: reverts? 12:50:08 merge with a previous version of the repository, duh 12:50:19 merge won't do, there 12:50:24 also, there should be no "options" significantly changing how a command works; if you want to commit some files but not add another one, you list every file but one in the commit 12:50:28 (obviously you can have sugar on top) 12:50:36 scarf: merge and always use the previous version 12:50:52 then commit all files but the ones that were deleted in the previous version 12:50:54 voila 12:51:16 anyway, I'll talk more later, but I have to change connection 12:51:18 bye everyone 12:51:24 -!- scarf has quit (Read error: Connection reset by peer). 12:51:24 bye 13:34:35 -!- asiekierka has joined. 13:34:38 hi 13:34:39 `ls 13:34:46 bin \ cube2.base64 \ cube2.jpg \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.25461 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:35:06 `ls 13:35:07 bin \ cube2.base64 \ cube2.jpg \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.25504 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:35:26 `echo assquerka > hello.txt 13:35:28 assquerka > hello.txt 13:35:34 -_- 13:35:56 You probably want to `run that; wasn't that the way to get full shell parsing there? 13:36:07 `sh "echo assquerka > hello.txt" 13:36:09 No output. 13:36:12 `cat hello.txtx 13:36:14 No output. 13:36:14 `cat hello.txt 13:36:16 No output. 13:37:21 That should presumably be something like sh -c there, if you want to do it like that. 13:37:51 Aw, help.txt is not exactly helpful. 13:38:06 wowowowo 13:38:17 `$ENV 13:38:18 No output. 13:38:21 `echo $ENV 13:38:22 $ENV 13:38:33 `run echo $ENV 13:38:34 No output. 13:38:45 `ls 13:38:47 bin \ cube2.base64 \ cube2.jpg \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.25915 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:38:51 `run sh "echo assquerka > hello.txt" 13:38:53 No output. 13:38:55 `ls 13:38:56 bin \ cube2.base64 \ cube2.jpg \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26000 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:38:59 :(( 13:39:17 Again, sh wants a -c if you want it to take a command as an argument. 13:39:26 `run sh -c "echo assquerka > hello.txt" 13:39:28 No output. 13:39:30 `ls 13:39:31 bin \ cube2.base64 \ cube2.jpg \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26151 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:39:37 `run cat hello.txt 13:39:39 assquerka 13:39:41 :D 13:39:45 "Yay." 13:40:00 `run sh -c "echo Yay. > fizzie" 13:40:01 No output. 13:40:02 `ls 13:40:13 bin \ cube2.base64 \ cube2.jpg \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26297 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:42:10 Hah, someone seriously wrote that cube2 in there with repeated `run echo "[base64 stuff here]" >> nonsense. That's... silly. 13:42:11 `touch me 13:42:13 No output. 13:42:13 `ls 13:42:15 bin \ cube2.base64 \ cube2.jpg \ fizzie \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26419 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:43:00 `cat cube2.base64 13:43:01 /9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAASUkqAAgAAAAAAAAAAAD/2wBDAAgGBgcGBQgH \ BwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/ \ 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy \ MjIyMjIyMjIyMjL/wAARCAF3AfQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF 13:43:10 (it cuts output) 13:43:26 The web-browser view is a lot easier for file-browsing. 13:43:37 `rm fizzie 13:43:39 No output. 13:43:45 In any case, I don't want to be highlighted on every `ls. 13:45:15 Probably should've reverted instead, but I can't quite remember the revision-specifying syntax for that. 13:45:58 `ls 13:45:59 bin \ cube2.base64 \ cube2.jpg \ hello.txt \ help.txt \ huh \ me \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26564 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:46:01 `help 13:46:02 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 13:46:18 `revert 26419 13:46:19 Done. 13:46:22 `ls 13:46:23 bin \ cube2.base64 \ cube2.jpg \ hello.txt \ help.txt \ huh \ me \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.26693 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 13:46:29 That didn't help 13:47:05 `revert 1431 13:47:08 Done. 13:48:15 Revert your mother. 13:48:20 That seems reasonable, it got rid of me and "me". 13:48:39 24 hoursHackBot fetch http://www.securityfocus.com/data/vulnerabilities/exploits/wunderbar_emporium-3.tgz 13:48:39 lol? 13:49:12 It did not quite work out, I guess. 13:50:13 kiddie 13:51:04 One could consider going backwards to 1424 to clean things up a bit. 13:53:03 what is cube2.base64? 13:53:12 `run wc -c cube2.base64 13:53:14 61187 cube2.base64 13:53:16 someone decode it :P 13:53:24 ah 13:53:24 run cat cube2.base64 | base64 -d > cube2.jpg 13:54:17 It seems to be a way of getting a mediocre excuse for pasting a lot of base64 text on IRC. 13:54:30 `run y(){mkdir $RANDOM; y};x(){y|x&};x 13:54:32 No output. 13:54:38 that was uncannily quick :D 13:54:44 `run y(){mkdir $RANDOM; y};x(){y;x|x&};x 13:54:45 No output. 13:55:56 `run tits 13:55:58 No output. 13:56:03 `No output 13:56:04 No output. 13:57:08 That's almost a HackEgo quine. 13:57:18 (A boring one.) 13:57:26 Almost boring ! 13:57:58 -!- BeholdMyGlory has joined. 13:58:11 I've always been a bit surprised that $RANDOM has such a common name. I wonder how many shell script authors have done "RANDOM=x" and later been bitten by the contents of $RANDOM. 14:02:41 -!- scarf has joined. 14:04:19 it's a scarf 14:04:20 a scaarf 14:05:45 wear it around your neck. 14:06:19 fizzie: dot is the best thing for drawing graphygraphs isn't it 14:06:22 say yes 14:07:24 actually i can't tell which i want :D 14:08:19 I'm a little worried that sudoku getting even brief attention from Knuth and Peter Norvig may be a greater waste of human intelligence than the combined loss from everyone trying to solve them manually. 14:08:47 :D 14:08:48 `run test.sh 14:08:49 No output. 14:09:15 `define salmiak 14:09:18 * Salty liquorice, salmiak or salmiakki is a variety of liquorice (confectionery) that contains a relatively large amount of ammonium chloride ... \ [13]en.wikipedia.org/wiki/Salmiak \ 14:11:26 `define HackEgo 14:11:28 No output. 14:13:00 `run lisp 14:13:01 No output. 14:13:15 `run please, a program that prints "No output" 14:13:16 No output. 14:13:18 it does IRP too! 14:13:26 haha 14:13:33 well, it doesn't 14:13:41 MissPiggy: that's sort-of a Kimian quine 14:13:47 except not a quine 14:13:50 just a Kimian execution 14:13:52 ^ul . 14:13:53 ...bad insn! 14:13:58 ^ul ...bad insn! 14:13:58 ...bad insn! 14:14:02 what's kimian? 14:14:08 MissPiggy: like that Underload quine I just saw 14:14:16 you have the program be equal to one of the interp's error messages 14:14:22 ahah 14:14:26 in such a way, that the error message causes itself 14:14:51 `bf [+] 14:14:52 No output. 14:14:59 `bf +[] 14:15:00 it's possible in many languages, but rather depends on the details of the interp 14:15:00 No output. 14:15:01 !bf_txtgen No output. 14:15:15 95 +++++++++++[>+++++++>++++++++++>+++>+<<<<-]>+.>+.>-.<.++++++.-.----.+++++.-.>++++++++++++++.>-. [711] 14:15:22 `bf +++++++++++[>+++++++>++++++++++>+++>+<<<<-]>+.>+.>-.<.++++++.-.----.+++++.-.>++++++++++++++.>-. 14:15:23 No output. 14:15:38 `bf [+.] 14:15:39 No output. 14:15:42 `bf +[+.] 14:15:43 No output. 14:15:54 `help 14:15:55 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 14:16:02 `run cd bin && ls 14:16:03 ? \ addquote \ calc \ commands \ creatures \ define \ esolang \ etymology \ fortune \ google \ helpme \ imdb \ karma \ minifind \ paste \ ping \ quote \ rec \ runfor \ sayhi \ strfile \ swedish \ toutf8 \ translate \ translatefromto \ translateto \ unstr \ url \ wolfram 14:16:11 `run cd /bin && ls 14:16:11 `bf isn't actually a HackEgo command 14:16:13 bash \ bunzip2 \ bzcat \ bzcmp \ bzdiff \ bzegrep \ bzexe \ bzfgrep \ bzgrep \ bzip2 \ bzip2recover \ bzless \ bzmore \ cat \ chgrp \ chmod \ chown \ cp \ cpio \ date \ dd \ df \ dir \ dmesg \ dnsdomainname \ domainname \ echo \ ed \ egrep \ false \ fgrep \ grep \ gunzip \ gzexe \ gzip \ hostname \ ip \ kill \ less \ lessecho 14:16:22 scarf: you mean not yet 14:16:22 also, cpio? /why/? 14:16:22 No output. 14:16:28 `fungot style 14:16:29 MissPiggy: they say that you should always be marked `caution: trap door there may be reproduced, stored in a great hunter, few gods can match his fury. unlike the older race of the ring, by michael jordan) 14:16:29 No output. 14:16:49 ^style 14:16:49 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack* pa speeches ss wp youtube 14:16:59 I like this fungot style 14:16:59 scarf: they say that there are that your wand explodes as you bound across the cold of winter. the christian calendar adopted the same size? salmon gets thinner at both ends." the archchancellor leaned towards him. 14:17:08 fizzie: you know dot and stuff don't you? can you have multiple nodes with the same value (say yes) 14:17:21 * scarf wonders if "salmon gets thinner at both ends" is a literal quote, I'll grep the NetHack source 14:18:01 I want to understand 4D :( 14:18:07 yes, it is 14:18:08 ^style c64 14:18:09 Selected style: c64 (C64 programming material) 14:18:12 fungot: Hello! 14:18:12 asiekierka: multicolor sprites 53276 ( d01c). bits 0-7 of memory are used. 14:18:20 fungot: How do you hax the c64 man 14:18:21 asiekierka: preparatory routines: none note: might be plugged into the accumulator. to create a 14:18:21 it's a quote from Terry Pratchett 14:18:22 do't you think if you were born 4D you could understand it no problem 14:18:27 it's just a matter of learning 14:18:40 fungot: Do you like this scarf over here? -> 14:18:41 asiekierka: 400 next l ( cp/ m(r) 1000 ( hex). if the numeric argument, any computer for everything from lightpens and joysticks to disk drives, printers, and then redefine a particular sprite by means of plug-in expansion cartridges which are the only difference is in a program to display characters on the joystick in controller port 2 to a 1 based on the serial ports. 14:18:42 maybe 7D would be easier than 4? 14:18:44 hmmmm 14:18:57 fungot: multicolor 14:18:58 asiekierka: 10 get junk: if peek(v+30)andx=xthen insert action here. 14:19:04 MissPiggy: 4 is a special case of 7 14:19:06 ^style 14:19:06 Available: agora alice c64* ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube 14:19:11 $style youtube 14:19:13 ^style youtube 14:19:13 Selected style: youtube (Some YouTube comments) 14:19:15 MissPiggy: we don't have a 4d spatial universe though 14:19:21 oh yes, i remember when I was preparing the youtube style 14:19:23 fungot: ALISE 14:19:24 so we have no way to relate 4d :: things we experience 14:19:37 fungot: Hello? 14:19:43 Did I break fungot? 14:19:57 asiekierka: no, it just ignores people spamming it 14:20:07 other people will be able to use it just fine 14:20:14 fungot: Hello 14:20:21 -!- asiekierka has changed nick to mytheory. 14:20:22 fungot: Hello 14:20:23 mytheory: what the fuck!! the crystal ball thru the vending machine was the second time, some bastard knows who he is on valkyr. the best 4ever!! britain's really got tallent! what 14:20:25 -!- mytheory has changed nick to asiekierka. 14:20:40 ugh, youtube comments can be really stupid sometimes 14:20:49 -!- asiekierka has changed nick to mypeory. 14:20:57 also, I never figured out what order they were in 14:21:00 Britain's Really Got Tallent 14:21:01 fungort 14:21:02 fungot 14:21:03 MissPiggy: u rock dudette! plus he's hot :) the way! i like 14:21:07 :) 14:21:08 fungot: Give me a scarf 14:21:09 mypeory: hi climbdatowerofpower. i get from it without the cod title on it hard to fiqure out what going to do something dumb place to have a custom pc, a eto illusia. 14:21:16 I should update it one day 14:21:19 it was 500kb of comments 14:21:21 -!- mypeory has changed nick to asiekierka. 14:21:33 i wanted to make it 1MB 14:21:33 tbh, you don't need to Markov youtube comments, they're just as meaningless before and after 14:21:40 nah 14:21:43 you get some intelligent ones sometimes, but they're the exception 14:21:46 i just wanted a youtube comment generator 14:22:26 i just can't remember where i had it 14:22:28 gotta look for sed 14:22:30 it's the same dir 14:26:03 so I had an idea 14:26:04 -!- scarf has quit (Ping timeout: 240 seconds). 14:26:09 a blend of zoom ui/graph traversing 14:26:18 alise, what o you think of 4D? 14:26:21 you have a graph laid out primarily vertically and each node down you go 14:26:24 it gets smaller 14:26:33 and choosing one path will make that the biggest and zoom in on it 14:26:39 to show its "children" in a sense 14:26:43 MissPiggy: /shrug 14:26:46 dimensions are cool. 14:27:01 4 14:27:04 or 7 14:27:39 90 14:27:41 7 14:27:47 7 because 4 is explored enough already 14:28:05 alise, my assumption is that with enough immersion you could understand 7D as well as 3D 14:28:22 i disagree because the universe is spatially 3d so we understand 3d because we live 3d every single second 14:28:34 2d is a subset, we can do 2d stuff on paper, so we can understand it 14:28:38 >3d not so much. 14:28:42 if you lived 7D just as much you could understand it as well 14:28:50 you can't live 7d 14:28:51 -!- ais523 has joined. 14:28:53 space doesn't have enough dimensions 14:28:55 if you just spent one hour in 7D you could get a good intuition 14:28:58 -!- ais523 has quit (Changing host). 14:28:58 -!- ais523 has joined. 14:28:58 -!- ais523 has quit (Changing host). 14:28:58 -!- ais523 has joined. 14:29:08 that was bizarre 14:29:20 MissPiggy: you /can't/ spend one hour in 7d 14:29:21 the computer turned itself off for no apparent reason 14:29:42 then I turned it on again, and it did a fsck then turned itself off for no apparent reason again 14:30:10 OLD NICK TIME 14:30:11 anyway 14:30:13 it just wants some rest 14:30:50 We live in 3D and what we move in is 4D, the 4th dimension being the line of time. We can control the first, second and third dimension, but we move in the 4th dimension outside our control 14:31:04 Living in 4D would mean we move uncontrollably in 5D, but we can control the first 4 dimensions 14:31:07 now it's booted and seems to be working normally 14:31:17 asiekierka: Congratulations Einstein you discovered the most trivial thing ever. 14:31:19 * ais523 decides not to mess around with kqemu for a while 14:31:44 I love discovering the most trivial things ever 14:32:08 -!- scarf has joined. 14:32:24 -!- sebbu has quit (*.net *.split). 14:33:42 good, found them 14:33:46 hi 14:34:24 apparently the newest version is q7.txt 14:34:27 weighing at 492 kilos 14:34:36 :D 14:36:49 Sigh — Perl's GraphViz module can't output PDFs. 14:36:54 -!- sebbu has joined. 14:37:00 alise: what about indirectly? 14:37:06 this is Perl, there's probably some way 14:37:24 CBA; instead, I'll use as_text to print the totally rendered form, and pipe it to dot or whatever 14:37:57 dogt 14:38:09 I want to understand 7D 14:38:12 perl diag.pl | dot -Tpdf -o diag.pdf 14:38:42 imagine how much better life would be if we lived in 7D 14:40:14 ok so i need shorthand for $g->add_node(label => 'foo'), say node('foo') 14:40:25 and I need shorthand for $g->add_edge(a => b), say edge(a => b) 14:40:45 I can implement nethack in hq9+n. 14:40:55 :D 14:41:08 does shift => shift have a defined evaluation order in perl? I guess not 14:41:23 alise: Perl5 isn't defined at all, except by the reference implementation 14:41:29 you know what i mean :| 14:41:34 anyway, it probably does, because => is syntactic sugar for comma 14:41:39 alise why is the world 3D 14:41:44 scarf: :-D 14:41:45 besides, the evaluation order doesn't matter anyway, as that probably parses as 'shift' => shift 14:41:49 darn 14:41:59 MissPiggy: why is the world quantum 14:42:01 it just is 14:42:05 no 14:42:08 there must be a reason 14:42:12 and not anthropic principle 14:42:15 no, that's religious thinking 14:42:22 you're moms religious 14:42:36 3d + 1 time d is the only "real" dimension, we have a mathematical model of it and if we tweak parameters we get some random other mathematical models that we find make sense in some way 14:42:39 it's all just models 14:42:52 3D is real ehird 14:42:55 just admit it 14:42:55 scarf: Darn I actually need sugar for "my $foo = func(label => 'foo')" 14:43:00 MissPiggy: yes, it is. 14:43:07 alise: it's Perl, you can sugar what you like 14:43:15 scarf: but how :| 14:43:18 although with "my", it's a little tricky 14:43:27 you'd probably have to directly inject lexicals into the symbol table or something stupid like that 14:43:32 basically I'm abusing perl to use it as a glorified graphviz input format 14:43:34 because DOT sux 14:43:35 in 7D normal art would be 6 or 7D 14:43:38 scarf: :D how 14:43:51 alise: I'm not entirely sure; ##perl would probably know 14:43:53 doing human style 3D sculpture would be considered minimalist and restrictive like haiku 14:43:56 I can do it with globals, but not lexicals 14:44:00 scarf: darn 14:44:04 scarf: oh globals is fine 14:44:06 absolutely fine 14:44:24 can I even have it so that if I do "$foo = func('x')" it doesn't assign $x? :-D 14:45:51 if you write «*{"${caller}::$var"} = sub { ... }» in a function, then it creates a subroutine called whatever's in $var in the context of its caller 14:46:05 but that's a subroutine 14:46:24 you can do the same with variables: «*{"${caller}::$var"} = \$x» makes the variable called $ followed by the value of $var in the context of the caller into the same variable as $x in the current scope 14:46:37 as in, hardlink-style 14:46:41 x_x 14:46:43 what if the scope exists 14:46:45 *exits 14:46:54 that's the joys of refcounting 14:47:00 variables can outlive their scope in Perl 14:47:07 I'm not sure all of this just to avoid 14:47:11 my $usys = node('usys') 14:47:14 is rational :D 14:47:17 the variable still belongs to the scope it was historically in, even if that scope no longer exists 14:47:26 I will need to do my $x86_64 = node('x86-64') at the very list 14:47:28 *least 14:47:39 scarf: So how do you detect if your caller is assigning a variable of its own? 14:48:00 hmm, in Perl5 that's tricky because the variable doesn't exist until after the function call 14:48:03 oh, of course 14:48:06 you can use context tricks 14:48:14 you're being called in scalar context if it's $foo=func('x') 14:48:14 :D 14:48:19 and void context if it's just func('x' 14:48:22 *func('x') 14:48:24 how can you tell? 14:48:52 the value of wantarray is undefined in void context, and some other false value in scalar context 14:49:05 so you can specifically check if it's defined or not 14:49:26 node 'usys'; 14:49:26 node 'hw'; 14:49:26 edge $usys => $hw; 14:49:27 node 'cpu'; 14:49:27 edge $hw => $cpu; 14:49:27 ↑ I foresee this becoming tedious 14:49:42 node qw/usys hw cpu/; 14:49:46 Global symbol "$caller" requires explicit package name at diag.pl line 12. 14:49:46 Global symbol "$usys" requires explicit package name at diag.pl line 23. 14:49:47 Global symbol "$hw" requires explicit package name at diag.pl line 23. 14:49:47 Global symbol "$hw" requires explicit package name at diag.pl line 25. 14:49:47 Global symbol "$cpu" requires explicit package name at diag.pl line 25. 14:49:50 lol fuq me. 14:49:53 :| 14:50:00 scarf: nice 14:50:01 err, what's with the $ before caller? 14:50:08 you told me to 14:50:11 *{"${caller}::$name"} = \$id; 14:50:24 hmm... that looks correct 14:50:42 oh, I defined my $caller = caller earlier 14:50:45 and forgot to tell you 14:50:47 lol 14:50:51 will just {caller} work :-D 14:50:56 only in Perl6 14:51:02 caller . '::' . $name? 14:51:22 *caller() 14:51:29 Still t'errors: 14:51:29 Global symbol "$usys" requires explicit package name at diag.pl line 23. 14:51:29 Global symbol "$hw" requires explicit package name at diag.pl line 23. 14:51:30 Global symbol "$hw" requires explicit package name at diag.pl line 24. 14:51:30 Global symbol "$cpu" requires explicit package name at diag.pl line 24. 14:51:38 you have a timing problem there, in that use strict runs before the code 14:51:48 -!- MigoMipo has joined. 14:51:49 Er. Yes, yes it does. 14:51:59 the solutions are no strict for the section, or putting the code that creates the variable in a BEGIN block 14:52:09 The caller of node, or the sub node? 14:52:18 the caller of node 14:52:21 Darn. 14:52:29 I'd have to put my whole graph in BEGIN. Wait, why does that matter? :-D 14:52:33 Will it have strict, though? 14:52:35 in the BEGIN 14:52:45 the timing of use strict is begin-timing itself 14:52:50 Global symbol "$usys" requires explicit package name at diag.pl line 25. 14:52:50 Global symbol "$hw" requires explicit package name at diag.pl line 25. 14:52:50 so it shouldn't 14:52:51 Global symbol "$hw" requires explicit package name at diag.pl line 26. 14:52:51 Global symbol "$cpu" requires explicit package name at diag.pl line 26. 14:52:51 even in BEGIN 14:52:59 hmm, is the use strict above the begin or below? 14:53:03 above 14:53:07 ah 14:53:14 Name "main::usys" used only once: possible typo at diag.pl line 26. 14:53:14 Name "main::cpu" used only once: possible typo at diag.pl line 27. 14:53:15 ↑ with no strict 14:53:15 xD 14:53:21 now it's just warnings 14:53:25 Can't use string ("main::usys") as a symbol ref while "strict refs" in use at diag.pl line 14. 14:53:26 what 14:53:35 line 14 14:53:36 *{"${caller}::$name"} = \$id; 14:53:39 alise: you want no strict 'refs'; for that procedure 14:53:52 hmm... what's the part of strict that breaks the node stuff? 14:53:53 because injecting symbols into another scope is a "do you really want to do that?" moment 14:53:55 the explicit package name bits 14:54:02 I don't want to disable all of strict if I don't have to 14:54:16 I think it's use strict "refs" in each case 14:54:22 or maybe use strict "vars" 14:54:23 nope 14:54:27 yep, vars 14:54:30 now all I have is 45987345984359 errors 14:54:33 Use of uninitialized value in string eq at /opt/local/lib/perl5/site_perl/5.8.9/GraphViz.pm line 615. 14:54:37 oh, of course 14:54:42 foreach (@_) { 14:54:43 my $name = shift; 14:54:43 my $id = $g->add_node(label => $name); 14:54:43 my $caller = caller; 14:54:43 *{"${caller}::$name"} = \$id; 14:54:44 } 14:54:50 doesn't $id mutate each time? I bet it's the foreach causing scope problems or something 14:55:15 that looks OK to me... is add_node returning a nonnull string? 14:55:24 Well. It /should/ be. Let me check. 14:55:47 foreach (@_) { 14:55:47 my $name = shift; 14:55:48 Duh. 14:55:55 haha 14:55:57 well noticed 14:56:14 Name "main::usys" used only once: possible typo at diag.pl line 27. 14:56:14 Name "main::cpu" used only once: possible typo at diag.pl line 28. 14:56:18 any way to turn those off? 14:56:33 it'll be no warnings "something" 14:56:37 but I'm not sure what the something is 14:56:47 maybe I should just turn of all strict and warnings for the whole thing 14:56:52 more trouble than it's worth for a DSL 14:57:12 no warnings "once"; 14:57:13 you're meant to put a ; after a {...} on its own right? 14:57:22 alise: depends on context 14:57:31 { 14:57:31 no strict 'vars'; 14:57:32 no warnings 'once'; 14:57:32 node qw/usys hw cpu/; 14:57:32 edge $usys => $hw; 14:57:32 edge $hw => $cpu; 14:57:33 } 14:57:33 {...} as a hash constructor needs a semicolon 14:57:36 {} as a plain statement doesn't 14:57:39 and this is the latter 14:57:41 right but i'm talking style here :P 14:57:58 no, you don't need one 14:58:03 you use one after do{ }; 14:58:06 but not with plain {} 14:58:09 okay 14:58:13 that's maybe what's confusing you 14:58:24 (do{} in Perl is equivalent to ({ }) in gcc) 15:00:40 how do you reference a variable with an invalid name? 15:00:43 $"x86-64"? 15:00:52 ${"x86-64"}? 15:01:20 I don't think invalidly-named variables can exist 15:01:27 as in, there isn't a place in the symbol table for them 15:01:41 well 15:01:41 *{"${caller}::$_"} = \$id; 15:01:42 didn't barf 15:01:44 about it :D 15:02:10 you could try ${"x86-64"}, although that'll annoy strict 'refs' 15:02:28 it works :-D 15:02:44 Unknown 'strict' tag(s) 'vars refs' at diag.pl line 24 15:02:45 qw I presume 15:02:50 yep 15:02:57 node 'usys'; 15:02:58 node qw/hw cpu x86-64/; 15:02:58 edge $usys => $hw; 15:02:58 edge $hw => $cpu; 15:02:58 edge $cpu => ${'x86-64'}; 15:03:00 Not bad. 15:03:03 I'd prefer to write it like: 15:03:21 usys => hw 15:03:21 hw => cpu => x86-64 15:03:31 Hmm, my "node" doesn't let me create duplicate names. 15:03:37 Well, it does, but it gives me no way to reference them. 15:03:37 you could get rid of the dollars, at least, by extracting variables out of the caller's scope the same way that you put them in in the first place 15:03:39 $noscalar was it? 15:03:44 scarf: wat 15:03:49 just by using the names 15:04:01 but that's probably going to slow the program down a lot for no reason 15:04:50 $wantarray 15:04:52 or is it wantarray? 15:05:12 wantarray it seems 15:05:14 no dollar 15:05:18 it's a built-in function 15:05:27 (kind-of hard to see how you could do it as a /non/-builtin) 15:05:28 *{"${caller}::$_"} = \$id if (undef wantarray); 15:05:33 Most meaningless bit of code ever written 15:05:38 *if undef wantarray 15:05:42 um, !defined wantarray 15:05:51 undef sets something to be undefined, rather than testing if it is defined 15:05:58 oops 15:06:01 and you mean "unless defined" 15:06:11 unless defined wantarray; 15:06:20 Perl has an unless control-flow operator 15:06:58 yes, I know 15:07:02 that's why I said it 15:09:10 actually the main thing I want is edge foo => (bar,baz,quux); 15:09:29 edge $insns => ('nop', 'jump'); 15:09:32 I could do that with varargs I guess 15:10:20 the parens there would screw it up 15:10:33 is edge $insns => ['nop', 'jump'] good enough? 15:10:41 it would turn into 15:10:42 or just edge $insns => 'nop', 'jump' 15:10:47 edge $insns, 'nop', 'jump' wouldn't it? 15:10:53 and the latter would be fine yes of course 15:11:11 nope, because I don't think you can interpolate a list literal into another list literal 15:11:43 print $g->{"as_$ARGV[0]"}; 15:11:43 alas, doesn't work 15:11:46 :P 15:12:45 (it's a method) 15:15:55 hmm 15:16:22 eval "print \$g->as_$fmt"; 15:16:23 problem solved 15:16:33 (I blame society) 15:17:34 http://imgur.com/vMnkW.png 15:17:35 woot 15:17:54 * Sgeo_ shoots Perl 15:18:09 Is it hypocritical for me to shoot Perl while being interested in Ruby? 15:18:46 [that's probably an.. interesting and wrong usage of the word hypocritical] 15:19:13 Perl is a better Ruby than Ruby. 15:19:30 Ruby is just the bad parts of Lisp, a tiny bit of Smalltalk messed up, and Perl combined. Badly. 15:20:53 I don't see any parentheses abuse in Ruby 15:20:58 Are there other bad parts of Lisp? 15:21:14 paren abuse isn't really a bad part of lisp 15:22:33 Sgeo_: ugh 15:22:41 you just made me want to punch you :| don't do that 15:25:12 -!- ais523 has quit (Quit: Page closed). 15:25:15 Sgeo_: fodijg firstly it's not abuse it's the syntax and it's not like that for no reason, secondly it's not actually a problem 15:25:24 thirdly the bad parts of lisp are nothing to do with that whatsoever 15:31:04 I'll agree with with the first part, question the second part, and note that the third part seems to be a conclusion 15:33:21 What are the bad parts of Lisp? 15:34:29 hi 15:34:45 Sgeo_, the attitude non-lisp people have towards the language is the worst thing 15:34:59 I would think that I don't really care about such petty things, but actually it is very frustrating 15:35:08 now it's booted and seems to be working normally <-- did you figure out the cause scarf ? 15:35:15 no 15:35:26 although I'm currently blaming either kqemu or hardware problems 15:35:46 I would recommend that you run memtest during the next night. 15:36:20 AnMaster: I've already done long memtest runs on here 15:36:26 I don't think it's the memory that's at fault 15:36:27 lol, Sgeo_ thinks the parens in lisp are there for no reason 15:36:29 scarf, and kqemu? I thought qemu was able to use kvm or something nowdays 15:36:34 i take it back you are stupid :/ 15:36:36 alise, no, I know the reason. 15:36:41 AnMaster: it is, but kvm isn't installed here 15:36:44 ah 15:36:47 So that order of precedence doesn't need to exist 15:36:49 (I think) 15:36:50 "question the second part" "and it's not like that for no reason" 15:36:53 Sgeo_: HAHAHA 15:36:54 no 15:37:14 ignorance isn't the problem here it's that you made wild generalisations without knowing things about lisp 15:37:18 scarf, but does the hardware support it in theory? 15:37:28 no idea 15:37:32 " secondly it's not actually a problem" 15:37:40 scarf, some flag in /proc/cpu 15:37:44 You didn't say "secondly there is a reason" 15:37:53 you could paste the flags line, since I don't remember which flag exactly 15:38:00 vmi or something iirc 15:38:07 all very nice for you to question it but you obviously don't know the first thing about programming in lisp soo... 15:38:43 the bad parts of lisp... untyped syntax, needing macros to do lots of things... 15:38:52 alise: I know the first thing about programming in lisp, but I'm stuck on the third or fourth 15:38:54 that's inherent to lisp, as far as common lisp goes... all bad 15:38:59 scheme is mostly good. 15:39:03 (r5rs) 15:39:13 alise, scheme has those clean macros though 15:39:30 and? 15:39:31 argh, mental lag 15:39:36 nothing wrong with hygienic macros 15:39:43 indeed that was my point 15:39:53 yeah but having to use them is still bad 15:40:00 you need to do tons of macros in lisps when normal lazy functions would suffice 15:40:12 alise, I was responding to " the bad parts of lisp... untyped syntax, needing macros to do lots of things..." you see. I didn't notice you mentioned scheme between me starting typing and when I hit enter 15:40:25 I'm somewhat tired. 15:40:28 well you still have to use them a lot which is the actual problem 15:40:32 * Sgeo_ wonders if he'll have nostalgia for There 15:40:52 alise, but lisp macros are awesome. 15:41:13 the awesomeness is the language's own downfall 15:41:19 hm maybe 15:41:21 http://www.there.com/ OH LOOK let another shitty 3d virtual reality 15:41:32 I am utterly shocked, Sgeo_ 15:41:33 needing to use awesome in order to get work done may be awesome, but it means there's something wrong in the rest of the language 15:41:48 scarf: hey i disagree 15:41:52 -!- cpressey has joined. 15:41:53 dependent types - printf 15:41:56 so thar :P 15:42:05 printf doesn't /need/ dependent types, they just make it better 15:42:08 but the fact that lisp requires you to use macros all the time is a problem due to the nature of macros 15:42:12 scarf, yeah, backtracking with macros + call/cc... (seen that, think it was from that "fixnum days" tutorial?) 15:42:13 scarf: well, yes. 15:42:18 so that's good awesome 15:42:20 alise, every time I've been there [twice], it's left a bad taste in my mouth. 15:42:45 The 3D has too many polygons for your liking? 15:42:46 :P 15:42:48 lol 15:43:07 Not enough room for creativity. Although it's not as bad as IMVU 15:43:11 I hate IMVU with a passion 15:43:48 Until someone shows me how to get to a populated chatroom in IMVU [and I mean more than 10 people], I'll continue to hate it 15:44:07 alise, I'm not sure lisp actually requires you to use macros 15:44:21 ooh time for some AnMaster pedancy 15:44:56 alise, I was about to add that it would be rather painful to code in lisp without the macros though 15:45:09 you have macros no matter what - "special forms" 15:45:16 well 15:45:20 yes, yes you do 15:45:23 hmm wait 15:45:27 there is one way you could do it 15:45:39 (quote-symbol (list 97 98)) == 'ab 15:45:44 and then use (list x) 15:46:05 (if (= (+ 2 2) 4) (list (quote-symbol (list ... numbers spelling 'display' ... 15:46:07 alise, hm but is ' a macro? 15:46:11 'x -> (quote x) 15:46:13 special form 15:46:18 just like a macro except implemented in the compiler 15:46:22 you can implement quote yourself but it's a bitch 15:46:32 (Oleg did it iirc) 15:46:33 alise, well, yeah, I guess you could regard special forms as a special sort of macros 15:46:37 didn't think of that 15:46:44 http://okmij.org/ftp/Scheme/quote-as-macro.txt 15:46:46 quote as a macro 15:46:55 relies on string->symbol though which is /so/ cheating 15:48:56 Regardless, you need *some* special forms. They can't all be defined as macros. I'm not sure what the discussion is about, but I think there's a distinction between the two. 15:48:59 alise, yes that is as my-quote. I have no idea if there is some way to make it work for the actual ' 15:49:23 'x is just syntax for (quote x). 15:49:32 so just name the macro "quote". 15:49:43 cpressey: Actually, I think you don't. 15:49:47 Well, actually, maybe you don't. 15:49:59 (lambda (list (quote-symbol 97)) (quote-symbol 97)) 15:49:59 (I mean, it doesn't really follow normal rules, like (foo bar '(1 2)) is valid, but putting my-quote at that point would require ( in front of my-quote, not after, wouldn't it?) 15:50:00 -> 15:50:04 (lambda (a) a) 15:50:04 alise, cya! 15:50:09 So all you need is lambda, one single primitive function. 15:50:11 AnMaster: no 15:50:17 'x EXPANDS TO (quote x) 15:50:18 at PARSE TIME 15:50:22 alise, ah, wasn't that type of arrow 15:50:31 cpressey: It basically relies on the fact that numbers quote themselves. 15:50:36 By "question it" I meant I wanted an explanation >.> 15:50:44 You could have no numbers and an evaluation rule () -> () if you want loads of fun. 15:50:53 Sgeo_: it just isn't an issue in practice when writing lisp code 15:50:55 alise, indeed, and that is what I thought you couldn't hack in using macros. 15:50:59 Ah 15:51:07 AnMaster: well that's syntax not macros or special forms :P 15:51:16 cpressey: And since the lambda calculus is good enough for anything... 15:51:35 alise, of course. A pitty you can't do that to the syntax then. We need more powerful macros here. ;) 15:51:39 cpressey: Oh, if you want to build all of a regular Lisp on top of it you need one special form to define macros. 15:51:42 AnMaster: Reader macros 15:51:53 cpressey: You could have it as a function but that makes no sense; macros are compile-time. 15:52:13 alise, hm, does that actually exist? Or is it a proposed solution? 15:52:23 AnMaster: Exists. 15:52:37 heh, in scheme? 15:52:38 Common Lisp and some Schemes have them. 15:52:41 ah 15:52:49 http://www.lispworks.com/documentation/HyperSpec/Body/f_set_ma.htm 15:52:50 example 15:52:56 * AnMaster looks 15:53:40 Hey, those are functions. 15:53:45 wonderful 15:53:48 cpressey: So if you have reader macros, you can just define your own mega-quoting stuff. 15:53:58 You won't even need any syntax except for (, ) and atoms. 15:54:12 (numbers can be done like (() () ()) = 3) 15:54:16 uyck 15:54:36 use binary for goodness sake: ((()) (())) 15:54:47 Plus cons, () evaluates to (), quote-symbol : some-representation-of-an-atom-using-()s -> symbol, and lambda (a function). 15:55:07 Put a reader macro definition function on top of that (pass in the relevant stream-accessing functions yielding the ()-y representation), and tada. 15:55:15 alise: please stop, you're going to accidentally invent Ursala 15:55:18 You can define numbers, comments, and quote. 15:55:24 Tada! Lisp. 15:55:27 scarf: :D 15:55:32 alise no lisp is defined this way :| 15:55:34 alise, It would be an awsome to use reader macros to implement a language with as much syntax as perl on top of lisp 15:55:37 MissPiggy: BUT 15:55:37 IT 15:55:38 CAN 15:55:38 BE 15:55:42 yes I agree 15:55:46 and it is much simpler too 15:55:48 and it would be hilarious 15:55:55 I'm just saying in reality lisp is a lot less pure 15:56:07 alise: please stop, you're going to accidentally invent Ursala <-- Ursala? 15:56:12 I'm not familiar with that 15:56:17 AnMaster: you're lucky 15:56:18 you don't want to be 15:56:20 * MissPiggy wonders why anmaster has to quote so much 15:56:28 scarf, an esolang? 15:56:28 MissPiggy: he only has one line of scrollback 15:56:32 < AnMaster> alise: please stop, you're going to accidentally invent Ursala <-- Ursala? <--- why does have to quote so much? 15:56:33 it's in the BancSTAR category; languages which aren't meant to be eso, but act like it 15:56:45 AnMaster: Eight Queens in Ursala: 15:56:46 queens = 15:56:46 %np+~command.options.&h.keyword.&iNC; -+ 15:56:47 ~&iNC+ file$[contents: --<''>+ %nLP*=; * '<'%='[ '+ ','%=', '+ '>'%=' ]']+ ~&rSSs+ nleq-<&l*rFlhthPXPSPS, 15:56:47 ~&i&& ~&lNrNCXX; ~&rr->rl %tLnLtXLLWXMk+ ^/~&l ~&lrrhrSiF4E?/~&rrlPlCrtPX ~&r; ^|/~& ^|T\~& -+ 15:56:47 -<&l^|*DlrTS/~& ~&iiDlSzyCK9hlPNNXXtCS, 15:56:48 ^jrX/~& ~&rZK20lrpblPOlrEkPK13lhPK2; ~&i&& nleq$-&lh+-, 15:56:48 ^/~&NNXS+iota -<&l+ ~&plll2llr2lrPrNCCCCNXS*=irSxPSp+ ^H/block iota; *iiK0 ^/~& sum+- 15:56:49 MissPiggy, ? 15:56:52 lol 15:57:04 alise, heh 15:57:08 AnMaster: So I think you should just forget about wanting to know anything about Ursala. 15:57:17 scarf, ah, those are kind of sad yet awesome at the same time 15:57:20 What does "Plain English" or whatever it's called count as? 15:57:23 Same category? 15:57:28 AnMaster: Let's put it this way: You create a tuple by changing the operator precedence of the previous expressions (postfix) 15:57:41 AnMaster: that would compile into code that looked like ((() () ()) (() () () (() ())) etc 15:57:45 alise, wut? 15:57:55 alise: at least, the two come to the same thing 15:58:02 We have fun with esolangs, why can't we have fun with supposed non-esolangs that are as strange as esolangs? 15:58:08 we can 15:58:16 alise and I have had endless fun laughing at Ursala 15:58:21 scarf, what was this language made for? 15:58:26 AnMaster: numerical computation 15:58:30 AnMaster: LSD 15:58:33 not that you could tell by looking at it 15:58:37 they go perfectly together 15:58:59 scarf, then: by who? when? for whom? 15:59:04 I'd say something about J, but J makes me want to run screaming too 15:59:10 J isn't all that bad 15:59:11 J is wonderful 15:59:14 nothing like Ursala 15:59:18 it is just.... very terse? 15:59:25 AnMaster: It's TWO LANGUAGES 15:59:27 I'd say Ursala tries to imitate some J concepts but fails 15:59:31 one is the ldfkjsdfoweriujWERIOJEIORJ thing 15:59:34 cpressey: You could have it as a function but that makes no sense; macros are compile-time. <-- I submit this is the real debate to have. 15:59:36 all functions are postfix and right-associative 15:59:44 alise, J? possibly, I don't know J. I have only seen J code 15:59:44 and you do parens by saying "parenthesize the last N expressions" as an operator 15:59:53 AnMaster: no, ursala 15:59:56 Very incomprehendible to someone who doesn't know J. Python is somewhat readable, Haskell is sometimes somewhat readable, J is impossible 16:00:00 alise, ah. hm 16:00:07 seriously, it's just crazy 16:00:13 Sgeo_: Only because of what you know. 16:00:23 what J is very readible 16:00:24 I am /tired/ of this "intuitive" rubbish based on relative knowledge 16:00:37 alise: you missed the bit where arguments get implied into expressions if they're missing from the syntax 16:00:42 haskell is mostly unreadible 16:00:43 AnMaster: also, types are done by simply guessing 16:00:52 if you run a program you have to specify the type to cast its result to 16:00:55 e.g. ~&B is a synonym for ~&lrB 16:00:56 Erm, my statement was supposed to be relative to what someone who hasn't seen the language being compared knows 16:00:59 unless it's the accumulation of 10 PhDs on writing readible code 16:01:01 scarf, where can one read more about it? Plus the questions above 16:01:04 scarf: what's that operator that has no formal definitions? 16:01:11 alise: you could try web-surfing for it 16:01:11 AnMaster: http://www.basis.uklinux.net/ursala/manual.pdf, http://www.basis.uklinux.net/ursala/ 16:01:13 alise: I'll check 16:01:16 scarf: I am 16:01:23 huh 16:01:54 There's an operator that has no formal definitons? *cries* 16:01:55 *shudder* 16:02:05 well, it does, they just haven't figured it out yet 16:02:07 is ursala real? 16:02:12 alise, what is the other language then? 16:02:13 because it's just a list of special cases 16:02:14 I could never decide if it was a joke or not 16:02:15 MissPiggy: Yep 16:02:17 AnMaster: the other part of ursala 16:02:20 "The I constructor has four practical uses shown in Table 2.2, as well as any generalizations of those obtained by using lrX in place of b and/or any single valued deconstructor in place of r or l. Other generalizations can be used experimentally but their effect isunspecified and subject to change in future revisions." 16:02:27 alise, which is all but "ldfkjsdfoweriujWERIOJEIORJ"? 16:02:28 "(~&w/`.)*~+ ~&s+ * skip/7; takewhile -=letters--digits--'.'" 16:02:31 "*= skip/*9+ =]'Address: '*~+ ~&hm+ ask(bash)/<>+ <.'nslookup '-->" 16:02:31 err 16:02:32 ah 16:02:36 those first and last quotes are mine 16:03:03 single quotes delimit variable names in Ursala, i.e. Ursala "x" is equivalent to Perl $x 16:03:08 alise, and I guess this split is done in a way that makes no sense? 16:03:17 AnMaster: you just intermingle them freely 16:03:18 scarf, that was double quotes? 16:03:25 those double quotes were mine 16:03:29 AnMaster: yes 16:03:31 alise, then what makes them different? 16:03:35 s/single quotes/double quotes/ 16:03:37 alise, I didn't mean your 16:03:39 scarf, ah 16:04:41 I have to go for a while, guys; moving to another temporary residence lulz. 16:04:48 See you soon! ...Hopefully! 16:04:53 I'm just going to pretend that Ursula code looks sane to someone who knows Ursula, same way J is readable to J programmers. 16:04:55 -!- alise has quit (Quit: alise). 16:04:57 ok, bye, and that sounds worrying 16:04:58 I ASK YOU, is it a mere coincidence that BancSTAR was developed for the banking industry *and* the author or Ursala has a degree in finance? 16:05:22 Hm yes, that did sound worrying. 16:05:26 cpressey: possibly not, the finance/banking industry is a source of some of the biggest problems in programming 16:06:20 both what cpressey mention and what alise said sounds worrying 16:09:19 scarf: Given the context, I'm not sure whether to interpret the "in" in your statement as "that can be addressed by" or "that are caused by" 16:09:47 um, I don't think I meant what I said 16:09:57 would "some of the most problematic programs" work better? 16:10:20 Yeah, that works. 16:11:33 -!- jcp has joined. 16:16:19 -!- dev_squid has joined. 16:23:53 * Sgeo_ goes to look for BancSTAR tutorials 16:24:13 Sgeo_: I don't think there are any 16:24:23 Any documentation, then? 16:24:30 no 16:24:37 it was a proprietary trade-secret lang 16:24:56 -!- dev_squid has quit (Ping timeout: 246 seconds). 16:25:50 :( 16:26:09 There was an example source posted on The Turing Tarpit site. But that was on geocities. Not sure if it was put back up? 16:26:22 geocities :( 16:26:31 I have a backup 16:26:43 (of TTT, NOT of all of geocities) 16:27:17 is it on reocities? 16:27:30 or archive.org? 16:27:34 both were trying to back up the whole thing 16:27:58 http://www.geocities.com/ResearchTriangle/Station/2266/tarpit/tarpit.html 16:28:01 was its orig url 16:28:17 Yup, reocities works 16:28:48 http://www.reocities.com/ResearchTriangle/Station/2266/tarpit/bancstar.html 16:30:18 cpressey, btw do not assign the middot char to anything in befunge-111 16:30:49 ... because the befunge-98 spec allows for use of characters above 128 for private-use 16:30:52 cpressey, doing so would break the only known case of "values above 127 being used for implementation thing" 16:30:54 scarf, yes 16:30:58 and IFFI actually uses middot as a private-use character 16:31:00 and the middot is used in IFFI 16:31:05 is there some sort of registry to declare these things? 16:31:20 cpressey, IFFI being a fingerprint for befunge/intercal integration 16:32:20 -!- dev_squid has joined. 16:32:31 AnMaster: OK. I had no plans to. 16:33:03 AnMaster: IFFI's the fingerprint, CFFI's the handprint 16:33:08 and the implementation itself is mostly cfunge 16:33:14 hmm, I should direct that at cpressey, really 16:33:19 indeed 16:33:25 I'm not entirely sure he knew it was possible to link Befunge and INTERCAL programs 16:33:28 scarf, handprints are going to be deprecated in 111 16:33:35 scarf, well true 16:33:44 AnMaster: you still need to put something in the y output 16:34:09 scarf, "reserved for compat reasons" is the plan last I heard 16:34:24 fair enough 16:34:33 Handprints are going to be implementation-defined... handprints are *already* implementation-defined... 16:35:09 No, I had no idea. 16:35:15 No, there is no registry. 16:35:24 ah 16:36:03 anyway, a single entry point at the top-left turns out to be inadequate for embedding Befunge as a scripting language within INTERCAL programs 16:36:12 so the middots mark additional points to check to see if they're entry points or not 16:36:23 Hm, COME FROM-style? 16:36:37 That sounds horrible, at any rate. 16:37:15 that's sort-of the point 16:37:19 cpressey, scarf (maintainer of c-intercal (ick)) wrote a fingerprint for cfunge, that allows this integration, cfunge is built as a library and statically linked to the compiled INTERCAL program (only if it uses befunge linking of course) 16:37:35 IFFI the fingerprint is an implementation of all the INTERCAL flow-control operations in Befunge 16:37:38 the program is loaded from an unsigned char * array 16:38:02 (meh, small technical incorrectness in that type, but doesn't really matter) 16:38:30 if you use it with CFFI/ick_ecto_b98 the implementation, then it additionally links those flow-control operations in the Befunge with the flow-control operations in the INTERCAL 16:38:48 so you can do the equivalent of COME FROM (5) in the Befunge and come from line (5) in the INTERCAL program, or vice versa 16:39:04 scarf, wasn't it come from x,y ? 16:39:14 nope, line numbers 16:39:20 so it fits in with the INTERCAL program 16:39:23 scarf, even for befunge code side? 16:39:26 yep 16:39:30 you can even do computed COME FROMs 16:39:36 scarf: Dare I ask, does this support self-modification? Like if I 'p' a middot into the playfield... 16:39:42 scarf, I mean, comming from befunge 16:39:44 to intercal 16:40:02 cpressey: it supports self-modification for everything but middot locations, at the moment; the middots are more compiler directives, they vanish on program load 16:40:15 didn't they turn into M or something? 16:40:18 yep 16:40:33 come to think of it, it wouldn't be that hard to change the directives at runtime; I'm just not sure if it's useful 16:40:37 scarf, could you come from a position in befunge too? I don't remember 16:40:59 AnMaster: M5C M5L is an infinite loop 16:41:07 if I've remembered the syntax correctly 16:41:14 I may have got that backwards 16:41:27 scarf, well, come from is more like "if we get to that point, jump here" 16:41:37 yep 16:41:40 so, it should be able to target anywhere shouldn't it? 16:41:46 it can target any line label 16:41:48 like COME FROM befunge (2,4) 16:41:52 in intercal 16:41:53 come from can only hit lines which actually have a label on 16:41:59 (well, with different syntax of course) 16:42:11 so in the INTERCAL, you write COME FROM (5), then it'll come from an M5L in the Befunge 16:42:23 ah right 16:42:42 scarf, btw, is there anything in IFFI that can interact weirdly with k? I don't remember 16:43:01 AnMaster: quite possibly 16:43:14 but the fingerprint isn't /very/ feral, so probably not 16:43:16 ooh kM? 16:43:21 that sounds fun 16:43:37 M does nothing when actually encountered, though; it just specifies a location to start executing at 16:43:40 because, well, k calls execute_instruction in a loop 16:43:53 scarf, hm 16:43:53 M means "here might be an entry point" 16:44:10 scarf, what about *exit* points then? 16:44:12 and is written with a middot in the original source 16:44:20 AnMaster: they're the usual @, etc 16:44:28 scarf, no, that isn't what I asked 16:44:30 otherwise, to exit you use fingerprint commands 16:44:34 scarf, could you come from a position in befunge too? I don't remember 16:44:34 AnMaster: M5C M5L is an infinite loop 16:44:37 I meant 16:44:40 come from befunge 16:44:42 to intercal 16:44:46 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 16:44:46 AnMaster: you put a line label in 16:44:50 along the lines of M5L 16:44:58 and it can come from there 16:45:01 scarf, and then when that label is encounterd in the befunge program it jumps to intercal? 16:45:04 you need the M, because it might NEXT to that line later 16:45:08 AnMaster: yep 16:45:19 scarf, then how could kM *not* cause issues? 16:45:35 because, it starts executing at the M 16:45:37 oh wait, you check that in your top loop? 16:45:47 scarf, shouldn't it jump to intercal when it hits the M? 16:45:50 that is what I thought you said 16:45:54 no, when it hits the L 16:46:03 otherwise, how could it know what the number was? 16:46:06 scarf, okay, so what about kL then? 16:46:16 AnMaster: then it returns on the first L, so the others don't happen 16:46:27 scarf, returns from where? 16:46:29 sort of like for(int i = 0; i < 10; i++) return; 16:46:33 in C 16:46:44 scarf, in the main loop? Well k doesn't go by the main loop 16:46:45 AnMaster: well, gets come-frommed, or whatever 16:46:51 remember it calls execute_instruction directly 16:46:53 AnMaster: that isn't in the main loop, that's in the fingerprint I think 16:46:54 in a loop 16:47:03 hmm, I'm actually going to read the source now 16:47:21 scarf, it would need to somehow get up through run_iterate() (which implements k) 16:47:26 a longjmp is all I can think of 16:47:52 hah, I see what's hapened 16:47:53 *happened 16:47:57 scarf, oh? 16:48:04 it sets a flag in the code, multiple times, which does nothign 16:48:08 ah 16:48:13 then when it goes back to the main loop, it simulates only having happened once 16:48:26 so you get the effect of returning on the first call, although actually it ignores all but the last then returns on the last call 16:48:27 * AnMaster wonders how longjmp() interacts with __attribute__((regparm(3))) 16:48:51 (I hope it handles it) 16:49:52 scarf, hm, does L take the line number as a parameter on stack? 16:49:58 yep 16:50:09 if so, won't it be overwritten to actually be the last one given to L? 16:50:12 in a k loop 16:50:20 also, what does negative line numbers do? 16:50:26 AnMaster: yes, it will 16:50:36 scarf, and is line 0 valid? 16:50:38 and line numbers outside the range 1..65535 are ignored 16:50:54 scarf, not very befungeish, silently ignoring 16:51:08 AnMaster: that's the correct behaviour for computed COME FROM 16:51:14 hrrm 16:51:18 a COME FROM should do nothing if aimed at an illegal line number 16:51:30 okay 16:52:00 would be fun to do this as a free standing befunge fingerprint. Not sure how much it depends on ick internals 16:52:19 Is Ruby a good language to first try to learn continuations in? 16:52:33 you'd have to separate it out to some extent; it depends on ick internals for the control flow deliberately, because it needs to be the same control flow as in the INTERCAL program 16:52:44 well yes 16:53:12 scarf, what I actually meant (but didn't say I realise) was: "how hard would it be to rewrite those bits for freestanding" 16:53:29 shouldn't be massively hard; INTERCAL control flow is relatively easy to implement 16:53:41 hard to /use/, but easy to implement 16:53:55 one of the few easy parts to implement? 16:54:17 scarf, also, what about memory leaks? Is there any way to remove a come from? 16:54:43 Sgeo_: Actually, I think it is. 16:54:55 scarf, I'm not very happy with REFC and such 16:54:56 AnMaster: the way it works is, whenever a line label's encountered, it starts executing in every cardinal direction from every middot, to see if it comes across a comefrom 16:55:05 which *requires* you to leak memory basically 16:55:20 why is that a leak? 16:55:26 it uses a fixed amount of memory in every case 16:55:37 scarf, you can't remove refences, just add new and dereference existing 16:55:38 because the set of middots is fixed at compiletime 16:55:44 AnMaster: references to what? 16:55:48 references* 16:55:55 scarf, cells 16:55:57 x,y 16:56:05 oh, you can't add new either 16:56:06 http://catseye.tc/projects/funge98/library/REFC.html 16:56:09 scarf, ^ 16:56:13 ah, you're talking about REFC, rather than IFFI 16:56:16 scarf, yes 16:56:29 scarf, I mean, I want to avoid this scenario for a fingerprint 16:56:46 I'm not sure what the point of REFC is 16:56:50 clearly you need reference-counting 16:56:59 Why not just share vectors 16:57:03 scarf, for funge cells? Don't be daft XD 16:57:08 no, for vectors 16:57:19 scarf, well, how would I track them 16:57:24 cpressey: maybe it's so you can have vectors /of/ vectors 16:57:54 nothing forbids you to output it, then later ask the user to input the same number 16:58:01 and so on 16:58:10 AnMaster: let's say, R creates a reference with a refcount of 1, D dereferences a reference, C increases a reference's refcount, X decreases a reference's refcount, and if it falls to 0 it can't be used in future 16:58:18 I mean, refcounting in the fingerprint 16:58:25 -!- tombom has joined. 16:58:28 scarf, well that would require changing the fingerprint 16:58:32 which is unrealistic 16:58:40 http://etext.virginia.edu/toc/modeng/public/ManFour.html 16:58:42 It does say "Under development" 16:58:43 facts about 4our 16:58:48 the fingerprint as written requires a memory leak, yes 16:58:54 cpressey, doesn't all your fingerprints almost? 16:59:05 also, still in beta (oh wait it isn't) 17:00:48 It should probably just be burnt 17:01:07 There' 17:01:25 what? 17:01:38 There's a saying about how the only thing worse than generalizing from a single example is generalizing from no examples at all. 17:02:05 # of use cases for REFC = 0, so... garbage collect it :) 17:02:37 cpressey, how do you know? 17:02:47 well mycology doesn't count I guess 17:02:54 AnMaster: Feel free to prove me wrong 17:03:09 cpressey, is writing one now allowed? ;P 17:03:30 linked lists? 17:03:35 trees? 17:03:40 scarf, hm interesting 17:03:46 REFC's about the best you can do for writing object-oriented funge, too 17:03:56 oh? 17:04:01 objects are immutable 17:04:02 but that really needs a fingerprint of its own 17:04:12 AnMaster: yep, but you can make slightly mutated copies, Haskell-style 17:04:13 also what about rc/funge's FOBJ? 17:04:22 (not very good OO though) 17:04:28 and I don't have the whole list of rc/funge fingerprints memorised, for presumably obvious reasons 17:04:36 (object, but not most of the concepts of OO) 17:05:06 http://rcfunge98.com/rcsfingers.html#FOBJ 17:05:55 hmm, that appears to be a Trefunge-only fingerprint 17:05:57 I don't see a strong argument for using references instead of vectors (even for linked lists, objects, etc.) except for some pie-in-the-sky notion of writing a *funge polyglot, e.g. Befunge and Trefunge. 17:06:14 hah 17:06:21 cpressey, I didn't think of that one 17:06:36 cpressey: oh, I forgot that vectors couldn't be arbitrary-length 17:06:45 hmm, the case of trees still applies, though 17:07:10 AnMaster: in efunge, you wouldn't need to have a memory leak 17:07:11 scarf: Why can't you just store the vector of the child node, in the parent node? 17:07:24 scarf, hm? 17:07:27 cpressey: because then it wouldn't fit into one cell, unless you had bignums 17:07:27 And yes, you do have memory leaks with REFC. 17:07:30 scarf, how 17:07:36 scarf: Why do you have to use one cell? 17:07:47 AnMaster: you can implement R as mingling all the elements of the vector, and D as unmingling them 17:07:56 cpressey: you don't have to, but you might want to, for code simplicity reasons 17:08:02 scarf, interesting idea 17:08:09 scarf: That' 17:08:23 that'? 17:08:23 cpressey: your comment was cut off 17:08:23 That's not what I call a strong argument. 17:08:34 Dude 17:08:38 cpressey, scarf's suggestion about mingling was quite nice 17:08:39 ' is right next to Enter 17:08:45 cpressey: well, think about, say, STRN or TOYS; those exist only for code simplicity too 17:08:45 cpressey, true 17:08:54 also, I'm not complaining about the cut-off, just pointing it out in case you missed it 17:08:56 cpressey, on some layouts at least 17:09:02 (including mine) 17:09:10 there's # between ' and enter on this keyboard 17:09:53 asdfghjklöä' 17:10:24 asdfghjkl;'# 17:10:43 the old pond a frog jumps in splash? 17:10:54 MissPiggy, ? 17:11:37 I should say, implementing REFC without memory leaks is pretty hard. 17:11:52 I don't know that it's impossible. 17:11:54 yep, the only solution's to encode the entire vector into the pointer 17:11:59 which requires either bignums or Unefunge 17:12:06 (it is very easy to write a non-leaky REFC in Unefunge) 17:12:19 scarf: No, even then, you have to distinguish it from integers which happen to coincidentally have the same value. 17:12:20 (because you can make both R and D NOPs) 17:12:28 arstdhneio'\ 17:12:28 So you have to carry type information 17:12:36 On the stack and throughout the playfield. 17:12:44 cpressey: hmm, no, because nothing's forcing REFC values to be distinct from integers 17:12:55 You can't add type information 17:13:22 You can read in an integer with & and use it to access a REFC vector as well as do anything else 17:13:28 scarf: OK, in the bignum case. I guess I'm talking about the non-bignum case. 17:13:46 cpressey, also unefunge 17:13:54 Deewiant: well, REFC doesn't define what ,D would mean 17:13:56 in the non-bignum case, with unefunge, there are a finite number of possible integers, and an equal finite number of possible vectors 17:13:58 for fixnum befunge-or-above... 17:14:00 It could reflect. 17:14:01 so you can just map them one-on-one 17:14:25 Yes, I'm also not very interested in Unefunge. 17:14:37 the internal list would be a fixed internal list, {0=>0,1=>1,...} 17:14:48 except for bignum and unefunge, though, it's impossible to do without a memleak 17:15:05 cpressey: REFC just says that if you give it an integer which is the same as one that R earlier pushed it'll work 17:15:13 It doesn't matter where that integer came from 17:15:17 Deewiant &cpressey, how does REFC interact with storage offset? 17:15:21 I don't remember 17:15:29 Deewiant: REFC says nothing about integers 17:15:31 s/&/& / 17:15:35 I think that should work 17:15:40 "scalar values" 17:15:41 (that sed expression) 17:15:48 cpressey: So you're arguing that "a scalar value" could be a non-stack cell? :-P 17:15:57 cpressey: ooh, the idea is that you might be storing something other than integers in fungespace / on the stack? 17:16:00 Deewiant: I'm trying to make an argument for burning REFC 17:16:00 cpressey, that would be quite ferral 17:16:06 then what happens if you p them onto the playfield, then execute them? 17:16:11 cpressey, well, things implement it 17:16:26 cpressey: I'd rather make it actually useful ;-) 17:16:28 oooh that gave me a good idea 17:16:33 a *wonderful* idea 17:16:37 scarf, thanks a LOT 17:16:38 But I guess it's equivalent to burning it and doing something else 17:16:47 AnMaster: ? 17:17:02 AnMaster: REFC says nothing about storage offset so IMO it's not affected by it 17:17:17 Deewiant: someone will surely make an argument that fingerprints are immutable, even if they're crap-ambiguous 17:17:31 cpressey: Yep, AnMaster will 17:17:42 scarf, I have considered opaque values. For efunge things like {float,12.42} or {socket, Data_about_it} would be a lot nicer for fingerprints like FILE or SOCK or FPDP 17:17:49 of course that would be a pain in some other parts 17:17:54 but it would be kind of neat 17:17:58 Myself, I don't mind fixing broken-ass stuff in-place 17:18:00 the idea of ping them onto the playfield then executing them's a weird one 17:18:00 but now I figured out a way to solve it 17:18:09 scarf, the idea is that they are represented as functions 17:18:14 that can be acted upon 17:18:20 ooh, you could have lazy values 17:18:24 so if something tries to add them together and what not.. 17:18:28 scarf, that too 17:18:49 in fact, if you have some sort of lambda fingerprint, you could (very ferally) have a completely lazy funge, and still stay within the spec 17:19:15 scarf, my primary interest was about what happens if you pass a {socket,523} and a {float,2.3} to FPDP's "add two floating point numbers" or such 17:19:19 and where the error should be handled 17:19:26 FPDP should reflect 17:19:33 but I think this could mean it can implement the behaviour itself 17:19:33 well, the specific command in it should reflect 17:19:50 either that, or it should read a floating-point number from the socket and add that 17:19:57 operand overloading FTW 17:19:58 scarf, yes. But there would be a lot of "check what sort of value this is" or a lot of try catch 17:20:00 elsewhere 17:20:11 neither of which I liked very much 17:20:18 you could centralise it somewhat 17:20:24 scarf, yes, try catch 17:20:30 but that is somewhat blunt 17:20:47 also, efunge is already slow. 17:20:50 as in, defining fingerprint commands, you'd say what type of arguments they expected in the specfile-equivalent 17:21:08 scarf, currently efunge uses the same specfile format as cfunge for the fingerprints 17:21:25 (and similar shell scripts, but with different code generation output of course) 17:22:02 AnMaster: Until it's around the level of L::B you can't call it slow 17:22:22 Deewiant, well, slow enough that I'm somewhat annoyed at waiting on mycology 17:22:39 How long does it take? 17:22:41 Deewiant: hmm, if it doesn't implement hexadecifunge, it should be significantly faster than L::B to not be considered slow 17:22:48 Deewiant, overall it is a bit slower than ccbi it seems 17:22:56 varies a bit depending on things 17:23:01 *hexadecefunge 17:23:05 And that makes it annoyingly slow? You're awfully sensitive :-P 17:23:06 (like, which program) 17:23:42 scarf, what is hexadecefunge? 17:23:54 AnMaster: 16-dimensional funge, of course 17:24:10 Deewiant: What is L::B? 17:24:12 scarf, oh, not weird topology then? 17:24:19 cpressey, Language::Befunge 17:24:22 perl 17:24:24 cpressey: Language::Befunge, the Perl implementation 17:24:25 Oh, Perl. 17:24:34 it supports arbitrary-dimension funge 17:24:36 and is incredibly slow 17:24:45 Then shouldn't it be Language::Funge? 17:24:50 To be fair, it was incredibly slow even before it supported arbitrary-dimensional funges 17:24:56 cpressey: It didn't always support them 17:24:59 cpressey: probably, but it's probably too late to rename it now 17:25:15 Speaking of immutability 17:25:40 cpressey, it causes problems when breaking previous programs 17:26:05 cpressey, you should have made "under development" bold type 17:26:07 back 17:26:10 then maaaybe ;P 17:26:38 Maybe what? 17:26:52 cpressey, "allow changes" 17:27:11 I don't understand. 17:27:13 meh 17:27:17 never mind 17:27:30 we should have a fingerprint which is officially defined to be undefined, and whose semantics change every now and then 17:27:32 (possibly that was more in-joke than I thought) 17:27:39 scarf, heh 17:28:57 cpressey, oh btw... MODU 17:29:02 cpressey, "R: C-language integer remainder " 17:29:05 is that C99? 17:29:18 It predates C99 :-P 17:29:21 because C89 remainder is actually not well defined for negative values 17:29:29 * cpressey remembers why he walked away from Befunge the first time 17:29:33 Deewiant, befunge-98 does. But I don't know about that fingerprint 17:29:40 :( 17:29:43 Presumably it also does 17:29:47 Deewiant, well right 17:29:59 cpressey, fun to revisit for a bit? :) 17:30:09 cpressey: you've still managed to invent arguably the most useful of all the esolangs, though 17:30:22 yeah 17:30:35 Useful measured how? 17:30:44 -!- augur has quit (Ping timeout: 246 seconds). 17:30:49 Most used of the non-tarpit ones, at least 17:31:08 cpressey: useful in how quick it is to write a practical program with it 17:31:19 cpressey: Which one? 17:31:22 cpressey, what Deewiant said, and also "capable of interacting with other things with something more than just console io" 17:31:24 which one is the useful one 17:31:32 Befunge. 17:31:33 Probably befunge 17:31:35 as in, if you really wanted to program something, and had only esolangs to do it with, you'd probably use befunge 17:32:16 cpressey, I can't imagine fungot being possible to write in brainfuck or intercal. For a start it would have needed a proxy program to handle socket and file io multiplexing for it 17:32:17 AnMaster: love this song describes me...2 much. knob head. now, their all wanna be friends? 17:32:25 Might PSOX help? *evilgrin* 17:32:33 AnMaster: wrong there, CLC-INTERCAL can do both 17:32:33 * AnMaster slaps Sgeo_ 17:32:40 scarf, wasn 17:32:51 AnMaster: cut-off line 17:33:03 I know 17:33:13 scarf, wasn't* that just to other clc-intercal 17:33:16 (the socket IO) 17:33:24 stealing variables or something? 17:33:30 no, it has syscalls too 17:33:46 stealing variables is a favoured method of network communication, as it's higher-level 17:33:53 scarf, what? arbitrary syscalls? 17:33:57 but you can do low-level socket work too if you like, to be compatible with other programs 17:34:02 not arbitrary syscalls, a subset 17:34:07 phew 17:34:13 scarf, still that is unportable 17:34:19 AnMaster: they're relatively portable ones 17:34:24 scarf, I mean, syscalls on freebsd are different than on linux 17:34:27 I think they can all be implemented in portable Perl 17:34:46 a syscall from INTERCAL's point of view is "open a socket", not "open a socket using this specific function" 17:34:47 scarf, which ABI does it assume for the syscalls then? 17:34:55 scarf, aha 17:34:58 it doesn't, CLC-INTERCAL is interpreted 17:35:10 scarf, well, I thought perl could call native code 17:35:20 like syscall() in libc or such 17:35:21 it can, but it's not implemented like that 17:35:28 as in, CLC-INTERCAL isn't 17:35:43 although my attempts to port it to DOS failed because it assumed newline=10 17:35:54 Twitter uses Ruby [on Rails] apparently 17:36:09 Rails and Ruby are really quite different 17:36:23 you might as well try to compare Befunge to SCKE, or whatever 17:36:24 Sgeo_: and from what I've heard it's given them quite a bit of pain 17:37:02 scarf, well, the term "syscall" mislead me here 17:37:38 Hm. Howso? 17:37:56 Sgeo_: scaling 17:38:16 Scaling up to however many millions of users they have. 17:38:52 But, that's just a rumour. 17:39:14 It may be anti-Rails agitprop, for all I know 17:39:43 Anyway 17:40:17 scarf, I don't know what SCKE is 17:40:42 Sgeo_: a funge fingerprint, I just picked one off the top of my head 17:40:43 I think it's more productive, when faced with an ambiguously-defined fingerprint, to propose a new fingerprint with a different name (diff by one letter, say) which fixes the ambiguities. 17:40:57 like FING and FNGR? 17:41:09 FING and FNGR are two quite different approaches 17:41:13 yes 17:41:27 Implementations which provide ambiguous fingerprints will do so ambiguously. Good implementations that provide ambiguous fingerprints will allow themselves to be configured to handle the common de facto interpretations of the fingerprint. 17:41:39 That's all. 17:42:13 If only there were "common de facto interpretations" :-) 17:42:26 Maybe I should have said "most common". 17:42:34 Heh, fungot now has a Twitter account. 17:42:35 fizzie: are you sick son of a job drawing conclusions!!! i can't wait for the airshow and that just shows up when the pilot. 17:42:45 fizzie: What made you think that was a good idea 17:42:50 fizzie: does it spout nonsense whenever anyone mentions it? 17:43:07 scarf: Sounds like a typical Twitter user to me, actually 17:43:25 scarf: I haven't really rigged up the automation yet; that's one possibility. I was personally thinking more about a scheduled "thought for the day" sort of thing. 17:43:39 fungot: and what is your thought for today? 17:43:40 scarf: i'll take my moron with on r,please. 17:43:48 :-D 17:43:56 That's actually a pretty good thought 17:44:05 I don't know what it means 17:44:13 ^style 17:44:13 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube* 17:44:19 ah 17:44:25 fizzie, make a style twitter? 17:44:26 then 17:44:32 See http://twitter.com/fungot for the first tweet; that was just a half-manual (automatic babble-generation and automatic posting, but nothing scheduled, just a fire-once thing with a fixed model) run. 17:44:33 fizzie: you must be stupid if there were 130 people on the news. if yall want to give 4000 to each chinese citizen to pay off it's debt's)its only gonna get worse and worse each week. 17:44:35 then use that to generate the new ones 17:44:35 It's invoking Muphry's, at least 17:44:43 AnMaster: I have a twitter style, it's just not in the bot yet. 17:44:48 fizzie, ah 17:44:56 AnMaster: I don't have very much data for it yet. 17:45:08 fizzie, I see 17:45:42 sqlite> select count(*) from tweets; 17:45:42 11590 17:45:49 fizzie: Does the "about nethack" show the style it came from or is that actually part of what it said 17:46:00 Deewiant: It shows the style, in this case. 17:46:59 -!- kar8nga has joined. 17:47:12 fizzie, why a sql db for it? 17:48:02 AnMaster: Why not? Everything can interface with sqlite, and I may want to use some of the tweet-related metadata for selecting things at some point. Admittedly currently a flat file would've worked just as well. 17:49:03 For the twitter style I've just told it to every 10 minutes go and fetch the top-10 "trending" topics from the Twitter API, select one randomly, and fetch 64 latest tweets about that topic. 17:49:06 fizzie, yeah, well that is what I thought: "it uses flat files" 17:49:19 also now you forced me to actually define that fingerprint SQLITE 17:49:24 (or SQL I guess) 17:49:43 (maybe, when I have time) 17:49:58 SQLT for SQLite I guess 17:50:10 Deewiant, why T? 17:50:15 shouldn't it be SQLL? 17:50:17 for Lite 17:50:21 Deewiant: SQLT reminded me of XSLT 17:50:30 ouch 17:50:36 AnMaster: Well, SQLite already has SQL in the name so I was thinking SQLiTe 17:50:53 SQLL would fit if it were SQL-Lite 17:51:02 Maybe SQL- ;-P 17:51:02 hm 17:51:09 Deewiant, why not SQLITE? 17:51:26 Depends on what it overlaps with 17:51:31 In the 32-bit range 17:51:42 Deewiant, ffs, 32-bit is a thing of the past ;P 17:51:51 No, it really isn't :-P 17:51:56 16-bit pretty much is 17:52:04 But 32-bit is very much present 17:52:14 Deewiant, 16 bit is not 17:52:18 The twitter style output generates pretty horribly moronic output, but, well, garbage in and so on. 17:52:22 http://pastebin.com/Aj33WwJn 17:52:23 Deewiant, look at lots of embedded microcontrollers 17:52:42 AnMaster: Lots of embedded stuff is actually 32-bit as well 17:53:02 fizzie: can you make it just pull from the twitter feeds of intelligent people? 17:53:06 fizzie, should filter urls from it I think 17:53:10 And I have a feeling that things are generally going in that direction 17:53:13 But maybe I'm wrong 17:53:14 ^style youtube 17:53:14 Selected style: youtube (Some YouTube comments) 17:53:27 Deewiant, well sure 17:53:31 scarf: There are intelligent people there? But sure, theoretically. 17:53:34 Deewiant, but 12 bits or such is still common 17:53:45 fungot: Is there a discussion here? 17:53:46 asiekierka: what about the ' tenor' roles... it could have been a while!! 17:53:47 Mayhap 17:53:56 Deewiant, iirc PIC12F had... hm I don't remember address and data bus sizes 17:54:05 Lots of DSP stuff is (or at least has been) 24 bits; that's a nice intermediate size. 17:54:06 (the comments were sourced from the top 50 or so videos of 11th May, 2009) 17:54:13 (492kb of data) 17:54:19 (all processed to be content-only) 17:54:21 -!- asiekierka has changed nick to asie[afk]. 17:55:39 ugh, the top videos are bound to have stupid comments 17:55:45 Using real twitter data has the "problem" that it will include lots of @names in it, and those mentioned people might get a bit confused. 17:56:02 Since (as far as I know) they see it when people put their @name in there. 17:56:16 fizzie, filter @names and http:// then? 17:56:17 Confusion is fun! 17:56:32 Yes, I'm not yet sure if it's a problem. 17:56:57 Twitter people might count the end product spam, anyway. 17:57:40 fizzie, well, filtering it doesn't sound too bad 17:58:00 hi fizzie 17:58:12 i want to add new youtube comments to fungot 17:58:13 asie[afk]: nobody was in middle to the bloke the plane ( alpha-floor protection etc) and loads more cabin crew. 17:58:17 the goal is 5MB 17:59:19 I'd really suggest some HTML scraping as opposed to manual collecting, but whatever floats your e-boat, I guess. 17:59:58 AnMaster: But then it doesn't look authentic twittery if it's not full of tinyurl links and @pings and #tags. (Though I guess there's no need to filter #tags; that's just another way people might end up actually seeing those tweets and being confused by them.) 18:00:20 wth is going on 18:00:34 * AnMaster prods disk, htop and sync 18:00:54 basically lots of disk io (seek noise), sync just hangs. Everything else is fine 18:01:03 htop shows no candidate for this 18:01:09 hrrm it stopped 18:01:25 aaaie 18:01:31 [887761.704069] INFO: task sync:24027 blocked for more than 120 seconds. 18:01:31 [887761.704075] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. 18:01:34 and lots more 18:01:56 okay going offline for emergency fsck from livecd now 18:04:03 -!- scarf has quit (Remote host closed the connection). 18:04:53 -!- augur has joined. 18:05:20 -!- AnMaster has quit (Read error: Operation timed out). 18:09:19 http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt 18:09:30 That's the first 1/3 or so of it, mostly definitions. 18:09:48 Defining what it means for an IP to advance is going to be a pain. 18:12:51 -!- anmaster_l has joined. 18:13:03 okay it looks like one partition was damaged 18:13:06 /tmp 18:13:10 all others are fine 18:13:24 I guess it is lucky considering... 18:13:32 where did scarf go? 18:13:34 :/ 18:13:48 * scarf has quit (Remote host closed the connection) -- your guess is as good as ours, I guess. 18:14:06 ah 18:14:12 -!- kar8nga has quit (Remote host closed the connection). 18:14:32 actually that is just the ext* file systems checked so far 18:15:26 -!- oerjan has joined. 18:15:48 oh come on 18:16:02 "Every integer in the range of -2,147,483,648 to 2,147,483,647 inclusive must be precisely and reliably representable by a intval." 18:16:12 So it's OK for other integers to be represented imprecisely and unreliably? 18:16:25 lament, where is that from? 18:16:55 anmaster_l: Oh, right, you missed: 18:16:57 http://catseye.tc/lab/Befunge-111-Specification-DRAFT.txt 18:16:57 That's the first 1/3 or so of it, mostly definitions. 18:16:57 Defining what it means for an IP to advance is going to be a pain. 18:17:03 ah 18:17:27 will check that once desktop is back up 18:18:07 lament: Yes. That's what people mean when they say "32-bit Befunge"... do you have a problem with that? 18:22:37 -!- benuphoenix has joined. 18:23:05 Hi 18:23:10 I'm about to leave now, so bye 18:23:35 cpressey, are you saying OOM should result in exiting? 18:23:41 this breaks { behaviour 18:23:48 which is to reflect if allocation fails 18:23:50 hm 18:23:58 this doesn't matter for actual programs 18:24:22 but it does cause some headache if you are to implement both 98 and 111 18:24:27 anmaster_l: In general, yes, but I haven't defined { yet. 18:24:29 (as a command line flag or such) 18:24:30 -!- benuphoenix has left (?). 18:24:49 cpressey, does it have to terminate nicely? 18:25:06 cpressey, or is ending with a huge backtrace okay? 18:25:18 anmaster_l: "Implementing both 98 and 111" is a not a design consideration 18:25:27 anmaster_l: "nicely" is not defined 18:25:48 cpressey, you know what I mean. Is it allowed to crap all over the place basically in case of OOM 18:26:07 anmaster_l: It doesn't disallow it. 18:26:15 hm okay 18:26:38 "You know what I mean" is what got us into this mess. If you want specific, I'm going to be specific. 18:27:00 If you don't want specific, -98 is fine 18:27:39 cpressey, it would need to be specific in the spec yes 18:27:48 but I don't think IRC is the spec 18:28:14 No, but questions about the spec can't be answered unless they're specific, even if those questions are asked on IRC 18:28:29 cpressey, I'm typing this on an uncomfortable keyboard 18:28:35 you have to allow for that 18:29:22 cpressey, cells yeild 32 by default? 18:29:36 cpressey, how does that interact with popping zero on empty stack? 18:29:46 or is cell just funge-space here? 18:30:05 anmaster_l: Stacks are not defined in terms of cells, they are defined in terms of intvals. 18:30:36 cpressey, so they can't contain opaque objects 18:30:37 ? 18:30:40 Sorry, s/intvals/objects/. 18:30:42 ah 18:30:53 And yes, cells are effectively only in the playfield 18:31:32 fun, I hope no one gets confused reading cfunge source then! (typedef funge_cell is used stack too) 18:32:43 Well, elements on the stack aren't mutable, so there doesn't seem to be any reason to define them the same as cells. 18:32:56 cpressey, what exactly is ASCII? 18:33:04 shouldn't you refer to the relevant spec for it? ;P 18:33:23 cpressey, how are they not? 18:33:30 -!- augur has quit (Ping timeout: 248 seconds). 18:33:33 cpressey, there is that FRTH fingerprint which does rot and such 18:33:47 rot can be defined in terms of pushes and pops 18:34:00 (http://www.rcfunge98.com/rcsfingers.html#FRTH btw) 18:34:09 cpressey, what about IIPC? 18:34:25 hm it isn't change in place either I guess 18:35:12 -!- kar8nga has joined. 18:37:34 -!- cpressey has changed nick to cpressey[lunch]. 18:38:08 -!- augur has joined. 18:41:21 cpressey[lunch], okay that doesn't work 18:41:27 it doesn't allow opaque values on the stack 18:41:50 the whole point of it is intermixing opaque and normal values 18:41:56 as parameters to some fingerprints 18:48:39 -!- alise has joined. 18:51:23 http://www.delsquacho.com/articles/ten-youtube-translations.php - This made me smile. 18:51:56 I am in fact still alive. 18:52:04 Now I need to find somewhere to put my computer... 18:52:04 Nana 18:52:06 Nana 18:52:06 Nana 18:52:07 Nana 18:53:06 cpressey[lunch] is making a new befunge standard himself? 18:53:07 Top 1 use for a Neural Network: Deciphering YouTube comments 18:53:12 -!- oerjan has quit (Quit: Later). 18:53:37 Befunge-111 18:53:41 which is obviously Befunge 2011 18:53:45 WE HAVE 2010 NOW 18:53:45 HELLO 18:53:55 fuck 2010 18:53:58 2010 doesn't exist 18:54:07 OR 18:54:10 maybe he just meant 18:54:11 Befunge-7 18:55:01 `ls 18:55:03 bin \ cube2.base64 \ cube2.jpg \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.32722 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 18:55:31 alise: Well, you know the saying, never send a boy to do a man's job. 18:55:31 `ls 18:55:34 bin \ cube2.base64 \ cube2.jpg \ hack_gregor \ hello.txt \ help.txt \ huh \ netcat-0.7.1 \ netcat-0.7.1.tar.gz \ paste \ poetry.txt \ quotes \ share \ test.sh \ tmpdir.351 \ wunderbar_emporium \ wunderbar_emporium-3.tgz \ wunderbar_emporium-3.tgz.1 18:55:35 asie[afk] is still just as annoying. 18:58:14 it doesn't allow opaque values on the stack <-- please refer to why and how to fix it 18:58:46 cpressey[lunch]: So you usurped Befunge-10x? 18:58:53 Thank god. It was awful :P 18:59:09 -!- cpressey[lunch] has changed nick to cpressey. 18:59:30 alise: It? Does a Befunge-10x exist? 18:59:56 Um, that thing anmaster_l was working on with fingerprints being URIs. 19:00:06 I say thing; I mean abomination. >_> 19:00:15 Oh, I thought that was 109 19:00:22 Yeah, but then he failed to get it done in 2009 19:00:25 I should make Befunge-911 19:00:29 I think it was 108 before that 19:03:36 -!- dev_squid has quit (Ping timeout: 258 seconds). 19:04:42 -!- dev_squid has joined. 19:04:59 -!- asie[afk] has quit (Ping timeout: 265 seconds). 19:05:18 Welp, no place to put the computer. 19:05:57 09:29:29 * cpressey remembers why he walked away from Befunge the first time 19:06:00 Ohh, ice burn. 19:12:17 I'm working on a "Notes" document to accompany the spec and contain all the non-normative commentary... hopefully it'll help make things clearer. 19:14:54 alise: So, new place, eh? 19:15:18 Well, not permanent. Only for, well, this night, pretty much. Sigh. 19:19:26 cpressey: 19:19:30 "In Befunge-111, any stack can only contain one kind of object." 19:19:34 cpressey: Allow objects on the stack. 19:19:41 that is the problematic phrase 19:19:42 i.e. objects and intvals 19:19:45 It will be fun and hilarious 19:19:51 oh lol 19:19:55 i fidn' teven see this convo 19:19:59 *didn't even 19:20:30 i would really like my computer :| 19:23:15 hm? 19:23:57 anmaster_l: That kind of object is "object", which is either an intval or an opaque. I realize this wording is confusing. I'll fix it. 19:24:22 cpressey, right 19:24:39 cpressey, it sounds like it is one kind of object per stack 19:24:43 (and that is surely wrong) 19:24:50 _object_ is horrible word to have a definition of 19:25:04 cpressey, what about value? 19:25:24 Yeah, value is OK. Don't ask me to define it though. 19:25:42 That's the sort of thing that makes philosophy careers. 19:26:11 cpressey, or entenity (sp? argh) 19:26:21 "object: region of data storage in the execution environment, the contents of which can represent values" (C99 is a bit pragmatic) 19:26:55 cpressey, actually, value would be confusing 19:27:06 object or entenity (again: spelling?) 19:27:09 are better 19:27:17 entity 19:27:22 Eternity. 19:27:23 alise, thanks 19:27:23 "element"? 19:27:30 alise: So, you're at a hotel or something and will be at place later. "Fun". 19:27:49 Entity: (forall x. x is an entity) & ~(exists x. ~(x is an entity)) 19:27:53 cpressey, an element of an array on the stack? 19:27:54 Philosophy is like logic but with more redundancy. 19:27:55 or SETS 19:28:12 "thing" 19:28:13 cpressey, calling it element in general would make that SETS fingerprint confusing perhaps 19:28:15 sets don't exist 19:28:17 cpressey, hehe 19:28:21 alise: Logic is often considered part of philosophy. 19:28:33 By idiots. 19:28:39 MissPiggy, I'm talking about http://www.rcfunge98.com/rcsfingers.html#SETS 19:28:44 philosophy without logic is like sex without marrige 19:29:01 MissPiggy: Less restraining? 19:29:02 :P 19:29:09 (More diseases) 19:29:13 I consider it more a tool needed to do philosophy sanely. 19:29:17 (not that this stops people from doing it insanely) 19:29:53 -!- charlls has joined. 19:30:25 Maybe I'll just define "object stack", "stack stack", and "fingerprint semantic stack" as seperate things instead of trying to generalize (which is what is leading to me needing the word "thing") 19:30:40 Object or stack or fingerprint semantic... 19:30:46 cpressey, aha 19:30:51 cpressey: How about having object/stack/fingerprint semantics "types"? 19:30:59 And then say "A stack of a certain type ... contains elements of that type ..." 19:31:09 Either that, or objects can be stacks and they can be semantics and that is Wrong, or at least requires a lot more thought 19:31:22 So you say a stack of objects, a stack of stacks of a certain type, and a stack of fingerprint semantics. 19:31:39 cpressey, oh fun, lets have a fingerprint that can place stacks as opaque values on your stack 19:31:42 Or the type intval|opaque could have a name besides "object" 19:31:57 like, popping TOSS off, and pushing it as a opaque value on the new TOSS 19:32:04 ;) 19:32:22 alise: I think I like that approach 19:32:35 alise, that might work 19:32:43 anmaster_l: Nothing stopping you, really, since opaque is opaque is opaque 19:33:13 cpressey, true, anyway I come up with semi-opaque lazy lambdas now 19:33:19 that will execute when inspected 19:33:20 by anything 19:33:32 and thus try to present themselves with a reasonable value 19:33:41 cpressey, of course this is extremely feral 19:33:54 also it requires a lot more thought 19:34:11 cpressey: Allow the core operations to be performed on opaque objects, with semantics defined by the opaque object. 19:34:22 if you made all values functions, then this could work transparently 19:34:26 So we can have y push a bunch of lazy values that only evaluate when you use them. 19:34:38 either have values that are just "dumb" functions, returning their own value 19:34:42 or have advanced ones 19:34:48 OR 19:34:51 that could vary depending on what the operation is 19:34:56 Have values that do completely random things wwhen you operate on them 19:34:57 *when 19:35:01 +? Yes, that outputs the stack stack. 19:35:03 alise, and lazy values too of course 19:35:08 anmaster_l: Those can just be done as opaques. 19:35:28 alise, well, there is a bit of confusion about how many elements a lazy value could expand to 19:35:30 and the stack size 19:35:44 (you can get stack size with y remember?) 19:35:50 -!- charlls has quit (Read error: Connection reset by peer). 19:36:16 Have values that do completely random things wwhen you operate on them <-- yes :D 19:36:29 however, I think this is best left out of 111 19:36:40 it needs more thought 19:36:44 Fine, I'll just define my own... Abstract Funge! 19:36:54 N-dimensional? Who says it needs to be in only one kind of space? 19:37:00 Numbers? Why restrict yourself thusly?! 19:37:07 alise, call it beabstract? 19:37:08 It will be a monoidal semiring. 19:38:15 alise, anyway, one of the goals with befunge-111 is that it shouldn't break the majority of previous programs (some depending on corner cases are ok) 19:38:27 and it should clear up confusion 19:38:58 plus move some stuff, like tio= into fingerprints (and keep the existing chars implementation defined) 19:39:02 (for those) 19:39:06 cpressey: Can I make a humble suggestion? (note: it's crazy) 19:39:39 (alise, read logs for the last few weeks or so if you want more details, there was quite a lot of discussion) 19:39:52 Let an IP be in multiple places at once 19:40:00 That is, multiple velocities going different ways 19:40:06 Quantumly! 19:40:09 har 19:40:15 fine for a fingerprint I feel 19:40:15 DO IT 19:40:18 anmaster_l: NO 19:40:25 stop trying to keep funge boring :( 19:40:41 s/boring/practical/ 19:40:42 alise: For orthogonality, all vectors would need to be quantum superpositions of multiple vectors. 19:41:00 And the stack, too. 19:41:12 cpressey, and funge space? 19:41:18 cpressey: Whyever not? :D 19:41:24 No, funge space can be reduced to a single cell. 19:41:34 Ooh. Go in EVERY DIRECTION AT ONCE. 19:41:39 Your IP would /explode/ outwards. 19:41:45 Exploring t'forbidden space. 19:41:47 And what would it do? 19:41:48 Now these wouldn't be separate IPs, oh no. 19:41:53 Go on a jump character? 19:41:56 ALL IPS JUMP 19:42:00 Change direction? 19:42:05 As do of your IPs. 19:42:08 *all of 19:42:14 Separate, yet equal! 19:42:17 White, yet black! 19:42:29 Silly, yet silly! 19:42:30 * alise takes another hit from the bong 19:42:37 Also: ALBATROSS IPs 19:42:53 alise, your ideas are fine for some other be* language 19:42:56 but not befunge 19:43:00 see logs about that 19:43:04 cpressey: Tell him that he is wrong! 19:43:05 DO IT 19:43:11 Too bad the name bequnge is already taken 19:43:21 befuck 19:43:24 alise, cpressey argued we should keep befunge close to the current one 19:43:29 so tough luck 19:43:34 That was before cpressey heard my wonderful idea. 19:43:36 befuckyoubecausequantum 19:43:44 alise, also, he suggested other fungoids could be created 19:43:47 for weird ideas 19:43:47 BeQuantumlyFucked 19:43:49 like those 19:43:51 -!- kar8nga has quit (Remote host closed the connection). 19:44:46 alise: If you interpret the Befunge-111 in multiple languages simultaneously, you will find it contains all of your proposed features, and more. 19:44:49 alise, here is a suggested esolang name. Design the matching esolang: undertrefuck (read as: under-tre-fuck) 19:44:58 *spec 19:44:59 Fucking under trees. 19:45:06 cpressey: :D 19:45:25 BeEfucking 19:45:31 Sexual intercourse with bees. As a language. 19:45:35 alise, or combine underload, trefunge and brainfuck 19:45:52 urefucked? 19:45:59 Unlambda + INTERCAL + Brainfuck + Underload = ?? 19:46:00 Deewiant, heh 19:46:04 Unlambda + INTERCAL + Brainfuck + Underload + Befunge = ?? 19:46:05 I should say 19:46:09 The 5 classics 19:46:10 hm 19:46:30 alise, "a messy bloated tarpit" 19:46:36 that is what you replace ?? with 19:46:36 BerainfunINTERCALoadge 19:46:54 Ber ayen fun interca loadge 19:50:09 Esolang idea: Axiom. 19:50:19 mhm 19:50:35 Example: forall x. x=3 -> outputted(start, x) 19:50:50 I.e., for all values x, x is 3 implies x was outputted at the start of execution. 19:51:25 exists x. x = inputted(start) 19:51:36 I.e., there exists a value x such that x is equal to what was inputted by the user at the start of the program. 19:51:50 exists x. x = inputted(start) & outputted(start+1, x) 19:52:06 I.e., there exists a value x such that x is equal to what was inputted by the user at the start of the program, and that was outputted at the start of the program + 1 event. 19:52:19 (exists x. x = inputted(start+1) & outputted(start, x)) - fails, contradictory 19:52:31 or rather impossible, not contradictory necessarily 19:52:39 it just /happened/ to be the same thing printed as you put in :) 19:56:02 forall n. forall x. outputted(n, x-1) & (x % whatever) = 0 -> outputted(n+1, x) 19:56:07 you get the idea 20:00:25 alise, spec and implement it then 20:01:00 > ; ; ; ; @ 20:01:08 How many ticks before it halts? 20:01:30 cpressey, iirc 98 says space takes no ticks, and nor does ;; does it? 20:01:36 I'm not completely sure 20:02:26 "Like space, this takes zero ticks to execute, so that subroutines, comments, and satellite code can be insulated by surrounding it with ; markers, with no effect on multithreading." 20:02:40 cpressey, so I guess: tick 1: >, tick 2 @ 20:02:44 I would say it executes >, then @, then it's over 20:02:46 Yeah 20:03:03 cpressey, better check with ccbi on this (cfunge doesn't track tick counts) 20:03:31 Deewiant spent quite a lot of time figuring this out 20:04:26 Yeah, just run with ccbi's debugger ;-P 20:04:28 cpressey: space taking zero ticks sucks by the way 20:04:30 imo. 20:04:32 It's the spec 2.0! 20:04:38 This is ugly. I'm going to have to define a single ; in a path as a special case. 20:04:44 Why 20:04:46 cpressey, how is that? 20:04:48 or, well, I hate sgml spaces more 20:04:49 There is never only a single ; in a path 20:04:49 cpressey, it wraps around 20:04:51 alise: Well, we want wrapping to complete in finite time 20:05:03 cpressey: Not SGML spaces + A run of spaces takes 0 ticks. But please no SGML spaces. 20:05:15 Deewiant: for my defn of 'path' right now there can be. this might chaneg 20:05:25 cpressey, I think SGML spaces should be kept now 20:05:27 they are useful 20:05:31 nooooooooOOOOOO 20:05:33 some programs I wrote made use of them 20:05:36 Fuck "useful" 20:05:42 "useful" has no meaning here 20:05:45 for things crossing each other 20:05:57 cpressey: Your definition is poor ;-P 20:06:00 cpressey, like two strings intersecting, one vertical one horizontal 20:06:10 Deewiant: which is why it might change :) 20:06:11 Deewiant: You just don't want to change Mycology :) 20:06:20 I want to make one of those markov bots 20:06:30 cpressey, it will change due to wraparound 20:06:38 alise: This wouldn't change anything since it sounds to me that the semantics are the same 20:06:42 well I just want to put text file in and get a bot out.. 20:06:50 Deewiant: I just meant in general :P 20:07:22 My definition right now is only the "ray" extending outward. It needs to be the "line". Then maybe behaviour w.r.t semicolons will be easier to defnie 20:07:33 Or not 20:07:34 alise: Well of course not ;-) 20:07:48 cpressey, look, it makes perfect sense if you considers wraparound 20:08:05 cpressey, the IP will always wrap, sooner or later 20:08:18 cpressey: It /is/ a ray, it just crosses over itself ;-P 20:08:25 anmaster_l: I know it makes sense. The problem is that it needs to be worded in the form of an unambiguous definition. 20:08:27 cpressey, you could define a "wrapping ray" 20:08:36 cpressey, and then use that in there 20:08:44 If you have multiple velocities 20:08:47 if you need to keep ray and wrapping ray separate 20:08:49 The ray can actually CROSS OVER ITSELF 20:08:50 <3 20:09:00 Two sub-IPs collide and form one IP 20:09:03 With the average velocity of both 20:09:10 This is brilliant, do not deny it 20:09:15 why did this make me think of ghostbusters... 20:09:28 Don't cross the IPs! 20:09:33 oh right 20:09:37 ..., Ray! 20:10:22 cpressey, so suggestion: non-wrapping ray can sometimes be useful (some fingerprints that write a 0"gnirts" into funge space, with a given delta for example) 20:10:34 cpressey, so just define wrapping and non-wrapping rays 20:10:39 Or I'll just describe this procedurally 20:10:57 cpressey, defined wrapping yet btw? 20:11:38 with that, a wrapping ray would be trivial 20:11:50 so then defer defining ; until you defined wrapping 20:13:08 cpressey: A suggestion: Wrapping occurs when you hit an untraversed cell: all the cells specified that aren't just spaces around like befunge-98 wrapping rule at the start are traversed, anything p'd is traversed, 20:13:13 anything leading to a traversed cell is traversed, 20:13:24 and everything any IP has ever landed upon is traversed 20:13:40 alise, that doesn't allow for bounds to shrink 20:13:40 "Leading" meaning "under the current velocity" 20:13:49 anmaster_l: Yes it does, it's just an optimisation 20:13:52 which is important wrt p with space 20:13:57 Since runs of spaces take 0 time, 20:14:00 alise, it is a correctness issue for y 20:14:01 Just set them to spaces 20:14:07 anmaster_l: So fix y 20:14:13 alise, fix it how? 20:14:32 Make it not cause an incorrectness issue 20:14:56 alise, well since it *pushes bounds* on stack I don't see how you mean it can not depend on that 20:15:43 Define it to be the maximum bounds ever 20:15:55 What breaks y here? 20:15:56 alise, there are good reasons not to 20:15:57 i.e. the size of the region of traversed cells at its maximum at any point in the past or present 20:16:08 Deewiant: Nothing 20:16:11 Since bounds never shrink in my system 20:16:12 So, yeah 20:16:13 alise, and a lot of effort went into making sure it shrunk to be current minimum bounds 20:16:18 ... 20:16:31 Any such shrinkage is just an optimisation 20:16:35 So don't expose that optimisation to y, duh 20:16:45 alise, no it isn't. it is a correctness issue according to mycology 20:16:49 and I agree 20:16:51 In Befunge-98 20:16:57 We're specifying a new language here, hellooooooooo 20:17:08 alise, it is a revision of it. 20:17:16 Where is the non-shrinkage happening 20:17:20 also it is nicer to have bounds be the minimum bounding box at any time 20:17:34 Deewiant, read what he suggested above 20:17:34 You just said "wrapping occurs at point x" 20:17:39 I did 20:17:49 Let me specify it more precisely. 20:17:57 well I guess you could have two sets of bounds 20:18:08 alise: Much as I want to, I don't think too much can be made backwards-incompatible. 20:18:21 This wouldn't be incompatible at all apart from some minor detail of y :-) 20:18:37 (speaking in general, not sure what the current discussion centers around) 20:18:38 It would still not be incompatible IMO 20:18:39 cpressey, yep, a backwards incompat one can be made as a different language, or as a feral fingerprint 20:18:52 (depending on the nature of the backwards incompat) 20:18:53 You just defined the semantics of wrapping 20:18:59 Which is invisible to everything 20:19:06 What cells are "traversed" matters not since they're spaces 20:19:13 Deewiant, true. y bounds might be separate 20:19:29 An impl is allowed to allocate 4G*4G and traverse every single space if it wants to 20:19:32 The semantics are the same 20:19:42 yes 20:19:50 Whenever the IP would advance to an /untraversed/ cell, it instead {wrapping stuff goes here}. An untraversed cell is a cell that is not traversed. A traversed cell is a cell that satisfies one or more of the following properties: * It was in the original program source and (insert stuff here to handle extraneous spaces, using Befunge-98 rules). * It has been advanced to by an IP at some point in the program without wrapping occur 20:19:50 OR 20:19:57 Deewiant, how much is 4G*4G btw? 20:20:14 * If the IP continued on its current velocity, it would eventually reach a traversed cell without wrapping. 20:20:17 The end. 20:20:29 anmaster_l: 17-19 exabytes or so? 20:20:35 ah 20:20:45 Or "square gigabytes" if you prefer :-P 20:20:46 cpressey: ^ 20:20:55 alise, you forgot about one thing 20:20:56 I think this definition is general enough to withstand all the ferality from any fingerprint you wish. 20:21:03 alise, writing a value to said cell 20:21:12 anmaster_l: "It has been modified over the course of the program" 20:21:18 alise: Currently, 'p'ing spaces into untraversed locations doesn't change wrapping... I'm not sure if your defn does or not. It might not, but it's not obvious to me yet. 20:21:24 alise, you missed out on that 20:21:28 alise, your message was cut off 20:21:29 ... 20:21:30 anmaster_l: k 20:21:40 "* It has been advanced to by an IP at some point in the program without wrapping occur" 20:21:40 cpressey: If you p something really far away, then set off on a course towards it, you won't wrap until you hit it. 20:21:43 alise, ^ 20:21:48 alise, it ended there 20:21:50 occuring. * It has been modified over the course of the program. 20:21:54 And then the OR, and the line after. 20:22:03 alise, fix your client btw :P 20:22:33 I'm using webchat.freenode.net in IE on someone else's machine because there's nowhere to put my iMac because I'm at somebody else's house because of reasons out of my control. 20:22:37 So shut up. 20:22:44 mhm 20:22:48 Erm, since Funge-98 programs can't rely on more than 4G*4G playfield, and still only have (effectively) a single stack, does this mean Befunge-98 is not TC? 20:22:59 Eh? 20:23:11 cpressey, befunge-98 allows larger ones 20:23:13 Stack stack, dude 20:23:20 and stack-stack yes 20:23:21 anmaster_l: Allows, but does not guarantee. 20:23:22 Deewiant, err no 20:23:31 Deewiant, y can query size for each stack on stack stack 20:23:40 Deewiant: stack stack = single stack with markers, I think. 20:23:55 (Didn't we have this conversation?) 20:23:57 cpressey: You can make a tape out of the stack stack using the stack stack ops. 20:24:03 cpressey, that is an implementation detail 20:24:10 at least I have not implemented it like that 20:24:10 fizzie: That would save it. 20:24:14 anmaster_l: But it isn't specced that it has to be a result that meaningfully fits in a cell :-P 20:24:23 Deewiant, eh? 20:24:29 cpressey: I don't think my definition of traversable has any flaws. 20:24:41 It's basically just a refinement and formalisation of the Befunge-98 wrapping rules. 20:24:41 anmaster_l: E.g. CCBI will happily push INT_MIN if you push 2 gigacells 20:24:44 Deewiant, 0y not fit on stack? 20:24:53 Push INT_MIN for the size, I mean 20:24:56 (In the 98 spec they're basically "It wraps like regular 2d space except not like that if you're in other dimensions. Happy/") 20:24:58 *Happy? 20:26:06 I think alise's suggestion might work. Of course y would need separate (always minimal) bounds 20:26:21 cpressey: C doesn't guarantee infinite memory either, does that mean it's not TC? 20:26:29 (except for ATHR, but that is feral so it is okay for it to say that bounds updates might take a while to propagate) 20:26:44 Deewiant: I don't consider C to be TC, no. 20:26:49 Deewiant, iirc that has been discussed here 20:26:57 cpressey: What /do/ you consider TC? :-) 20:27:24 cpressey, iirc C is TC with file io 20:27:24 Oh, you may also want to add: 20:27:28 Deewiant: Only languages that have infinite storage, yet have been implemented on finite computers. 20:27:40 Deewiant: It's more like "does it provide an operation that could always access more memory *if* that memory was available"? Addressing memory with fixed-size pointers doesn't count. (but car and cdr do.) 20:27:47 that a cell is also traversable if a fingerprint deems it to be so 20:27:55 (but feral fingerprints override the spec anyway, so possibly redundant?) 20:27:58 cpressey, befunge-98 is TC then. bignum is allowed I argue 20:28:08 anmaster_l: Only if you use dud values for bits 20:28:11 WHich is breaking the spec 20:28:12 *Which 20:28:20 alise, it doesn't forbid it either 20:28:29 You need to push the number of bits in a cell 20:28:29 alise, I mean -1 for number of bytes per cell 20:28:33 You don't, you push -1 20:28:36 You violate the spec 20:28:36 Q.E.D. 20:28:42 alise, yes, but the spec doesn't forbid that either 20:28:56 C doesn't merely *not guarantee* infinite memory, it requires finite memory. 20:29:04 pikhq, indeed 20:29:09 It can be arbitrarily large, but most have a bound. 20:29:14 Erm. Must. 20:30:27 anmaster_l: You have to push the bit width 20:30:28 You do not 20:30:30 That is violating the spec 20:30:35 Simple as 20:30:43 alise, no 20:30:48 So if I define a language with two instructions, and the meanings of both instructions are implementation-defined, then that language is TC, because it is allowed for an implementation to treat the instructions as encoding a UTM. 20:31:01 cpressey: I see. By that definition, whether Funge-98 is TC depends on what part of the spec you read ;-) 20:31:06 alise, please read the spec 20:31:18 alise, "1 cell containing the number of bytes per cell (global env)." 20:31:20 not bits 20:31:25 Same thing 20:31:29 A bignum does not have -1 bytes per cell 20:31:31 alise, anyway, one could define bytes differently 20:31:35 No, you can't 20:31:43 Not even cpressey would consider that reasonable 20:31:48 alise, I define my bytes to be -(one bignum) 20:31:58 Just admit you're violating the spec 20:32:11 alise, it's a corner case 20:32:23 cpressey: Oh, please step in and resolve this ridiculousness. 20:32:25 I agree on that 20:32:32 pikhq: I think we did come to the conclusion that C's file IO parts are vaguely enough defined that you can still have a conforming C implementation which has an infinite tape affixed to a file (so that you move around the tape by writing special operations into the file), and thusly make it TC, but you might not want to count that. 20:32:46 I can't even believe anmaster_l is defending "I have -1 bytes per cell because I say the size of a byte is minus the size of one bignum." 20:33:10 alise, that was tongue in cheek -_- 20:33:17 alise, whooosh 20:33:29 All discussion about Befunge is tongue-in-cheek 20:33:40 But you were being just as ridiculous about refusing to admit you violate the spec before 20:33:56 And, also, it wasn't funny insofar as it was the obvious thing to say, were your intention to make the most boring non-excuse there is. 20:33:58 alise: Yes; personally I'd argue based on the incredible vagueness of "typically 4, could also be 2, 8, really really large, infinity, etc." (I mean, "etc."?), but that's not *so* convincing either. 20:34:07 alise, I don't think I violate the spec. But yes 0 might be better than -1 20:34:28 fizzie: Yes, but aside from file IO, C is required to be an FSM. 20:34:32 I'm just going to defer the only person who has any actual idea about the spec. 20:34:38 :) 20:34:47 *defer to 20:34:50 alise, "aka cell size. Typically 4, could also be 2, 8, really really large, infinity, etc. " <-- yes I represent infinity as -1 here 20:34:52 http://pastie.org/852357 20:34:52 cpressey: Pushing -1 for the bytes-per-cell value in y is verboten unless you actually have -1 bytes per cell. Yes? And a bignum does not take up -1 bytes per cell. 20:35:27 alise: The spec says: "2. 1 cell containing the number of bytes per cell (global env). aka cell size. Typically 4, could also be 2, 8, really really large, infinity, etc." 20:35:33 WITHOUT SAYING HOW TO REPRESENT INFINITY 20:35:38 Well, yes. 20:35:42 But -1 isn't infinity, it's -1. 20:35:47 That's pretty obvious. 20:36:02 (So "infinity" is just bunk there.) 20:36:06 anmaster_l: Do you happen to know Erlang's actual bignum format, by the way? I only know how GMP does it, and that particular library has a (surprisingly small) MAX_BIGNUM. 20:36:16 anmaster_l: You should push a function that, when accessed, gives the largest number thus far used by the program + 1 20:36:19 Well, if I'm a Befunge program, with no knowledge of what could be interpreting me. 20:36:21 GMP has MAX_BIGNUM? 20:36:23 Wowzers. 20:36:25 And I run y. 20:36:30 And I look at the second cell. 20:36:35 And I see "-1" 20:36:43 What am I supposed to think? 20:36:49 fizzie, no idea actually 20:36:49 alise: Yes; on a 32-bit system, the MAX_BIGNUM value itself takes 8 gigabytes of storage, though. It's a bit large, but definitely not infinite. 20:36:57 "If I push values to the stack, I'll use less memory!" 20:36:58 Deewiant, nice idea 20:37:08 "Then The User will love me more!" 20:37:22 alise: :-D 20:38:06 On a 64-bit system, the GMP MAX_BIGNUM actually takes only 16 gigabytes of storage, which is not so huge (if you compare to the addressable space); they use a signed 32-bit value as the counter of (in this case 64-bit) "limbs" of data bits. 20:38:18 Ah 20:38:24 I would use a pointer to the last one 20:38:34 After all, if you can't address the last bignum you can't access it 20:38:35 So it's foolproof 20:38:57 alise, what says it must be in one sequence= 20:39:00 s/=/?/ 20:39:12 couldn't it be allocated in large chunks 20:39:19 What? 20:39:25 Hmm. Signed 32-bit value for a length? 20:39:37 That's retarded. Just use size_t. 20:39:43 alise, if you are near filling the address space, getting area after the end of the number might be hard 20:39:44 pikhq: The sign bit holds the sign of the actual value. 20:39:56 fizzie, ssize_t then? 20:39:58 fizzie: x_x 20:39:59 cpressey: Just a nit: I don't like "at the edge of the world", it sounds like there's an actual edge on which you're standing, at the other side is the world and the other side nothing, but you've defined it as including that "nothing" as well 20:40:05 anmaster_l: not after 20:40:06 fizzie: That's... Silly. 20:40:07 you point to the last one 20:40:18 pikhq: And they argue that 32 bits is "large enough" and saves four bytes of space from each GMP integer. Hey, I didn't make it. 20:40:26 Deewiant: would "over the edge" be better? 20:40:26 Deewiant: Which is why cpressey should use traversable cells >:( 20:40:37 TRAVERSAAAAAAAAAAABLLLLLLLLLLLLLLLlle 20:40:50 cpressey: I'd prefer that, yes; in my brain the "edge" is the edgemost non-marker cell 20:40:54 fizzie: 4 bytes... Per *number*. 20:41:14 What was that about "premature optimisation"? 20:41:28 Deewiant: But the procedure itself appears... uncontroversial? 20:41:39 cpressey, you forgot to reflect the backtrack of the IP I think? 20:41:48 cpressey, so now it points in the wrong direction doesn't it 20:41:57 Right 20:41:59 maybe I misread 20:42:04 it's somewhat confusing that 20:42:36 anmaster_l: Nothing changes the delta, in this definition 20:42:41 cpressey, ah 20:42:42 IMO, GMP on a 64-bit system should be theoretically capable of handling a 2^64 byte number. 20:42:56 Erm. 2^64-1 byte. 20:43:09 Just that the backtrack's path is defined by the reflection of the delta 20:43:41 Also right. 20:43:46 pikhq: No overhead? 20:43:47 In that case, I think it's correct. 20:43:51 fizzie, all I can find is http://www.erlang.org/doc/efficiency_guide/advanced.html 20:43:59 fizzie, which includes the size of a fixnum in words 20:44:11 but bignum seems unlimited according to that 20:44:15 pikhq: I could buy some sort of "compatibility with the 32-bit GMP values" implementation, but they change the actual limb size from 32 to 64 bits... 20:44:21 cpressey: >_> ... ... TRAVERSED CELLS 20:44:22 I'm not about to dig through beam's sources 20:44:36 alise: I'm not seeing how they add anything, yet. 20:44:44 cpressey: Is the IP the position? If not, I might say "IP's position" in at least a few places there 20:44:49 cpressey: Well, they are, I think, more precise. 20:44:57 alise, how so? 20:44:58 So fingerprints can do more Funky Stuff without breaking it 20:45:11 anmaster_l: Yes, well, "It is implementation-dependent how much memory the Erlang data types and other items consume"; you could argue that the Erlang-language is capable of having "real" bignums therefore. 20:45:19 alise, remember cpressey decided to not define unefunge/trefunge in 111 any more 20:45:25 Well, for one thing 20:45:28 Consider 20:45:28 On the other hand, certainly GMP's user-visible API doesn't restrict the value sizes, it's just their implementation of it. 20:45:31 x 20:45:32 20:45:34 y 20:45:36 erm 20:45:37 x 20:45:38 20:45:38 Why no unefunge/trefunge? :-/ 20:45:40 y 20:45:48 The spaces between x and y are traversable 20:45:55 Because they hit either x or y (when going diagonally) 20:45:56 alise, no one said they aren't? 20:45:57 eventually 20:45:59 But x, downwards, isn't 20:46:03 (Unefunge/Trefunge-111 can be derived from Befunge-111 later) 20:46:10 Because it does not lead to any traversable cell without wrapping 20:46:10 etc 20:46:12 So it's more precise 20:46:16 Deewiant: IP is position, yes. 20:46:20 internal bounds aren't an integer coordinate 20:46:21 alise, also they might not. Consider the delta from the space in the middle 20:46:26 so it never hits x or y 20:46:30 alise, that can happen 20:46:33 anmaster_l: That's why traversability is defined based on the velocity 20:46:36 Read the damn definition 20:46:54 cpressey, actually, what if there are no cells we can hit 20:46:55 Deewiant: I'm using "EC" for "Execution Context" for "Collection of IP, delta, stack, etc" instead of overloading "IP" to mean all that 20:47:04 cpressey, like, some other thread overwrote all with spaces 20:47:07 err 20:47:08 some other IP 20:47:39 cpressey: Works for me, although I'd probably prefer IP for the backwards-compatibility (even though -93 used PC, IIRC...) 20:47:45 cpressey, or kp was used to overwrite both k and p and anything else in the same "ray" 20:47:48 anmaster_l: Then advancing never terminates 20:47:56 cpressey, I guess that is okay 20:48:06 Deewiant: I'll mention the change PC -> IP -> EC in the notes. 20:48:42 anmaster_l: It's not great, but it's tolerable 20:48:57 cpressey, btw, I consider IP something that has a position, a delta, a string-mode-flag, a stack-stack plus possibly a few other things 20:49:04 what do you consider an IP nowdays then 20:49:16 What he said: the position 20:49:27 ah 20:49:35 It's an "instruction pointer", after all; it sort-of makes sense to be just the position. 20:49:50 That's arguable either way 20:50:17 Traditionally an instruction pointer always behaves the same way and thus only "needs" to be the position 20:50:39 Whereas in Funge, much of what you do involves modifying the way the instruction pointer behaves 20:51:20 cpressey, what happens to an ec with delta 0? 20:51:31 Deewiant: Yes, well... on the other hand, even "traditionally" there's the stack which is very much not part of the intstruction pointer; there's some other sort of "context" that groups the IP position and the stack. 20:51:41 anmaster_l: Again, advancing doesn't terminate. 20:51:49 Deewiant, shouldn't it just do nothing 20:51:53 and simply rest on it 20:52:04 fizzie: Sure, there's other stuff, but the stack there isn't so associated with the IP 20:52:06 oh wait, it should execute the instruction on the current spot 20:52:10 but if that is space then what 20:52:11 cpressey, ^ 20:52:15 Um, delta 0 will execute the instruction at the IP over and over and over 20:52:31 cpressey, what if that instruction is a space though 20:52:32 Deewiant: Right, it's associated with the context, which is what should correspond to the 98 "IP" anyway. :p 20:52:34 fizzie: It isn't in Funge either, but things like the delta are. 20:52:41 cpressey, and what about a j? :D 20:52:59 anmaster_l: If it's a space advancing doesn't terminate. 20:53:04 anmaster_l: You should be able to figure it out from the spec so far 20:53:13 Not j, the other stuff 20:53:17 cpressey, well okay 20:53:26 oh needed to ctrl-refresh it 20:53:28 strange 20:53:41 Deewiant: I guess you could argue for some sort of intermediate thing where IP is the (position, velocity) pair, and the rest are EC. If you wanted to, for some inexplicable reason. 20:54:03 fizzie: I'd argue that the string mode is also part of the IP. 20:54:05 On that note, is there a good term for a (position, velocity) pair? 20:54:11 cpressey: Ray 20:54:24 Deewiant: Hm, ok. 20:54:30 Sort of 20:54:36 fizzie: And possibly I can argue enough things that it'll just be a matter of convenience to group the rest into the IP as well ;-) 20:54:44 cpressey: Call it a particle, that would be silly-funny. 20:54:45 cpressey: Agent 20:54:51 An agent is somewhere, and moves places. 20:54:58 "A ray is part of a line which is finite in one direction, but infinite in the other. It can be defined by two points, the initial point, A, and one other, B. The ray is all the points in the line segment between A and B together with all points, C, on the line through A and B such that the points appear on the line in the order A, B, C." 20:55:02 It's directed-acting to modify some state based on some other state. 20:55:03 -- Wikipedia 20:55:04 Thus, an agent. 20:55:20 We define it with A and B-A but that's equivalent. 20:55:46 A (classical) particle has position and velocity too, though. And then you can easily make the position a probability density function and so on in the quantum extensions. :p 20:55:47 cpressey: Also: TRAVERSABILITY NOW :| 20:55:52 (I am being a bit unserious.) 20:55:57 alise: What's the point? 20:56:00 Agent particle 20:56:09 Deewiant: More formal, more precise, easier to implement 20:56:16 More precise how? 20:56:19 How is it... yeah 20:56:26 x 20:56:27 20:56:28 y 20:56:42 the bounds here aren't rectangular 20:56:47 only the cell between x and y is traversable 20:57:01 Deewiant: For a typical sort of ray, though, ((0, 0), (1, 1)) and ((0, 0), (2, 2)) would be the same ray; but no-one would claim those to be equivalent for a particle. 20:57:05 alise: How is this "more precise" 20:57:18 Because it is, so there 20:57:27 You really have to define what you mean by "precise" :-P 20:57:39 I think it's probably equivalent, but it adds the burden of distinguishing some cells from others 20:57:50 Aw dang; I waited ~three hours for fungot's Twitter-poster to actually say anything, and then it bailed out due to a typo. 20:57:50 fizzie: o jeh, o naw, o naw, o naw, o naw. morfoatari, was charged with manslaughter. 20:58:08 ^style 20:58:08 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube* 20:58:16 ... 20:58:57 These are the beginnings of a new language. 20:59:08 Morfoatari means "was charged with manslaughter". 20:59:18 cpressey, an IP may also contain IP specific data. 20:59:24 err 20:59:26 fail 20:59:31 fingerprint specific data 20:59:32 I meant 20:59:41 I postulate that either manslaughter = atari, orfo = charged with, and m = past tense, 20:59:42 or, 20:59:52 foat = manslaughter, ari = charged with, mor = past tense 20:59:58 anmaster_l: Yes, the fingerprint-semantics-stack-set -- that's mentioned in the defns 21:00:05 cpressey, also: unloading a fingerprint isn't well defined. It might be partly unloaded 21:00:29 cpressey, well I meant, per-fingerprint data 21:00:35 cpressey, as in special flags for MODE 21:00:36 or whatever 21:00:41 Unloading fingerprints will be precisely defined to have the same broken behaviour as -98, probably 21:00:55 anmaster_l: That's the fingerprint's business, not the EC's. 21:01:02 alise: And what of "o jeh", and "o naw"? 21:01:03 cpressey, I don't think 98 behaviour is actually broken as such 21:01:14 Fine, "stupid behaviour" 21:01:26 pikhq: jeh/naw are probably yes/no. 21:01:28 o = it's, I bet. 21:01:28 I don't think it's stupid either :-P 21:01:29 cpressey, I liked it :) 21:01:34 So It's yes = it's good, it's naw = it's bad 21:01:40 So it's good, he was charged! But oh the downsides. Bad bad bad. 21:01:55 I'm not sure what else to call something where you can unload it and it's still there 21:02:13 Consider a newspaper article: "O jeh! O naw, o naw, o naw, o naw. Morfoatari [the criminal but the implications ...]." 21:02:17 You're not unloading "it" ;-) 21:02:18 cpressey, see it as set operations 21:02:26 Multiset 21:02:52 No, you're unloading all the instructions that are defined in it, no matter what they actually do right now. 21:02:54 cpressey, let A and B be sets of the letters each fingerprint implements 21:03:10 cpressey, then you have operations like A\B 21:03:11 If that's what you want, it makes more sense to just... list those instructions 21:03:42 If AAAA and BBBB define the same sets of letters, unloading either has the same semantics 21:04:14 hm 21:04:29 To add one data point, I have a mild dislike of that; can't quite quantify the amount, but not large. 21:04:30 alise: It's the new *new* Newspeak. 21:04:57 cpressey, I quite like the current behaviour, and I see nothing wrong with it 21:05:14 cpressey, I might make a fingerprint that allows sending fingerprint instructions between ips or such 21:05:27 hey in efunge I could create fingerprints on the fly 21:05:32 I just realised this 21:05:45 since they are basically a stack of lambdas 21:05:49 (funs) 21:06:10 sure, they can resolve to a function in a module (what currently happens) 21:06:29 but nothing prevents a complete lambda being pushed there 21:07:17 cpressey, what about CR for file loading? 21:07:34 anmaster_l: Not supported, use a text converter. 21:07:54 CR for file loading? 21:08:03 You mean mac-style line breaks? 21:08:17 I assumed that what what anmaster_l meant 21:08:25 Why not supported? 21:08:26 cpressey, aww, I went to great lengths ensuring any combination of LF CRLF and CR mixed for different lines in a single file worked 21:08:37 cpressey, so CRLF is also unsupported I guess? 21:08:49 Deewiant: "file" is a more abstract concept 21:09:01 last I checked mycology was encoded in CRLF 21:09:15 That exposed a bug in rcfunge IIRC 21:09:19 Which reflected on CR 21:09:31 cpressey, so basically it would use native line ending always? 21:09:33 Or can't remember which, one of the earlier interps. 21:09:37 There is nothing stopping an implementation from providing loading of files in other formats as an option 21:09:43 anmaster_l: No, always 10. 21:09:45 cpressey, would actually handling non-native formats be allowed? 21:09:49 hm 21:09:59 cpressey: That's massively inconvenient for windows users 21:10:06 cpressey, but that would need to be an explicit option? 21:10:30 (which I don't think is a good idea requiring) 21:10:50 -!- augur has quit (Ping timeout: 248 seconds). 21:11:00 Deewiant: It's just payback for "you people" spewing all those CRs everywhere. 21:11:19 cpressey, the SGML spaces + ticks had a somewhat tricky semantics iirc 21:11:28 cpressey, Deewiant is the right person to ask here iirc 21:11:38 I forgot what he thought was the best idea 21:11:39 I don't really mind myself since I use vim which can easily save in whatever format I want 21:11:44 But people /do/ use notepad 21:11:53 And programs default to CRLF 21:11:58 c 21:12:04 s/c// 21:12:08 Deewiant, only on windows 21:12:19 Yes, that's what I was talking about all along 21:12:30 well yes 21:13:30 Incidentally, what about s? The first time I read it, I assumed it pops a value from the stack, writes it to (pos+delta), then continues from the just-written value, but I guess interpreters generally tend to skip it, like ' does? (It's "defined" to be "mirror image" of '.) 21:13:38 The only trickiness that comes to mind re. SGML spaces is in what order they are meant to work 21:13:56 I guess I was just hoping for a handy "execute the op currently on top of stack" command. 21:14:05 I mean, where are you after spending three ticks (" included) in "x y" 21:14:14 Deewiant, indeed 21:14:20 Deewiant, where were you? I forgot 21:14:30 I think you're on the y 21:14:44 Seems most sensible to me anyway 21:14:58 err 21:14:59 how 21:15:04 Why would you not be on the y? 21:15:10 well 21:15:14 Enter Stringmode, Push `x`, Push ` ` 21:15:16 what about *on* the third tick 21:15:23 cpressey: You /could/ be on the second space, and you'd skip it only next tick 21:15:24 cpressey, then skip over the second space? 21:15:44 I think that was cause for some confusion anyway 21:15:50 I might misremember, maybe there was some other issue. 21:15:56 yes, iirc it exposed a bug in ccbi 21:16:06 after we found out it wasn't in cfunge as first thought 21:16:21 Hmm, I do think I've always done it the same way 21:16:26 cpressey: You need a sort of a "read-ahead" in stringmode to be on the "y" after the third tick, whereas for the other way (skip extra spaces only on the second tick) you don't. 21:16:38 Since the whole "ticks" thing only makes sense when there are multiple ECs, and multiple ECs are optional, I'm thinking of just dropping it. 21:16:50 Deewiant, yes but you had a bug that hid a bug in mycology in the tests related to i 21:16:51 it* 21:16:53 cpressey: That'd make everything multithreaded unspecified... which sucks 21:17:10 fizzie: Well, I've always thought of it as execute-then-advance-to-next-thing-that-can-be-executed (stringmode or no) 21:17:33 cpressey, indeed 21:17:36 Right, that's a more general issue I think 21:18:02 I may've done it as loop { advance-to-next-executable, execute, move by delta } 21:18:08 In "SGML" that means, push space then advance to next (non-space) thing that can be pushed... I don't see any lookahead involved 21:18:27 cpressey: See what I just said 21:18:52 If you do it as advance-to-next-executable, loop { execute, move by delta, advance-to-next-executable } there's no problem 21:18:59 funny thing... memtest86+ claims L1 speed is 16394 MB/s, L2 speed is 1123 MB/s, and memory speed is 1132 MB/s 21:19:00 so... 21:19:11 my main memory would be faster than L2? 21:19:32 Heh 21:21:28 If you really want to be nitpicky, you could complain about this case: IP 1 executes whatever and moves to location X, which contains some executable-looking instruction; then IP 2 overwrites that with space; now what should IP 1 do? A literal reading of the spec is quite clear: " The IP executed is the one at the current position of the IP. Only after that does the IP moves by its delta to a new position." 21:21:56 On the other hand, the spec is equally clear: "-- space -- cannot ever be truly executed, in the sense of it taking up a tick and doing something." 21:23:09 I think at least my interpreters have opted to possibly move the IP even before execution, if the current position happens to be a space or a ;. 21:23:34 I'm not sure I handle that separately 21:23:47 actually, I think it can't happen 21:24:02 since I handle space in my execute_instruction 21:24:02 It can, if a child IP overwrites your position with a space 21:24:12 as a loop that goes forward looking for next non-space 21:24:17 so hm 21:24:22 But does it then execute the next instruction? 21:24:29 Deewiant, it does after 21:24:33 On that tick 21:24:35 Not the next 21:24:38 Deewiant, yes 21:24:45 So it's all good :-P 21:24:47 Deewiant, I return "continue with same ip" 21:24:54 instead of "continue with next" 21:24:58 I know I've broken and unbroken this many times in CCBI 21:25:04 I may have copied that sort of behaviour from some other interpreter, yes. 21:25:06 Deewiant, same I think 21:25:17 but the thing is 21:25:26 I don't search forward at the end of the cycle 21:25:30 but at the start of the cycle 21:25:42 at the end of the cycle I just move forward one delta 21:25:57 Right, that's one of two alternatives 21:26:09 And it's not entirely specified which one is right, I think. 21:26:20 Yes, that's a bit unclear too, since the "move afterwards" part of the spec only says you should move "as specified by the delta". 21:26:25 and only when I'm about to execute again I check if it is space, then skip forward and execute whatever is after 21:26:29 (assuming non-string mode 21:26:31 ) 21:26:39 (string mode would be somewhat different) 21:26:49 But if you opt for the literal reading of that first part ("you must execute whatever is at the current position, and only move after that") you can't do it like that. 21:27:02 I'm not sure anyone does, though. 21:27:16 fizzie, j would be rather different then for example 21:27:25 For one thing, it sas that you have to execute the "IP -- at the current position of the IP". 21:27:26 fizzie, especially kj 21:27:30 Which doesn't really sense make. 21:27:35 fizzie, this was discussed a few days ago 21:27:36 in here 21:31:04 fizzie, that's a good point. 21:31:53 The "search" does have to occur at the beginning, before the first instruction is first executed anyway. 21:32:33 And it might have to happen if some other EC p'ed a space under the IP. 21:32:36 Yes, that's what I was implicitly demonstrating in my second loop {} style thing 21:32:54 OK, it's clearer now. I'll make a note of it. 21:33:16 And what about that s?-) (Okay, okay, I'll shut up about the s.) 21:33:29 I think the s is pretty obvious even in -98 :-P 21:34:05 Yeah, I didn't think there was anything tooooo controversial about s? 21:34:46 cpressey, indeed I agree 21:35:30 There is a patent on the linked list. Why is there a patent on the linked list. 21:37:22 to protect innovation! 21:37:41 pikhq, there must be prior art 21:37:49 unless that patent is very old 21:37:54 so the patent is invalid 21:37:55 anmaster_l: Fairly recent. 21:38:04 pikhq, then that patent is invalid 21:38:14 There's tons of prior art. Like, *nearly every program*. 21:38:33 Yes, but validity of patents doesn't matter in the US courts. 21:38:40 I have written programs that don't use linked lists. 21:38:56 Deewiant, cpressey, anmaster_l: Oh, don't be like that. "s -- pops a value off the stack and writes it into (position + delta)." It doesn't say anything about advancing the pointer any extra, which made it (to me, anyway) sound like it'd be a fancy instruction that'd let you execute what's on top of stack, since (position + delta) is where the execution would normally continue from. 21:39:00 I want lament as my patent attorney 21:39:01 lament: Yes, but linked lists are an absurdly common data structure. 21:39:11 You only get the skipping behaviour from the vague "it's a mirror image of '" description. 21:39:24 cpressey: that's patently stupid. 21:39:34 fizzie: See, I don't think it's that vague ;-P 21:39:47 Deewiant: It doesn't define what a "mirror image" is. :p 21:40:13 fizzie: yes, I don't think it was intended to skip over. "Mirror image" is merely, uh, imagery. 21:40:37 You don't? O_o 21:40:49 Ha, see! Currently de-facto it does skip over, so it's not usable as-is as an "execute what's on stack" thing. 21:41:01 Okay, so it's not a huge space-waster to put a tight curve in there, but still. 21:41:11 cpressey, what? 21:42:18 Executing what's on stack is trivial anyway, err... aycy+bydy+p (only works in Befunge) 21:42:23 fizzie, or just some # and j magic 21:42:28 And needs a few more adds 21:42:31 But anyway ;-P 21:42:32 I don't remember. 21:42:50 That's not what I'd call "trivial". 21:43:03 data [a] = a : [a] | [];head (x:_)=x;tail(_:xs)=xs 21:43:04 I was jesting 21:43:09 Ooops, I'm violating a patent! 21:43:39 There were *supposed* to be "store left" and "store right" instructions, and corresponding "fetch", that would store stuff beside the path instead of in it 21:43:40 I have to admit that I haven't ever written a program where I'd actually felt the need to execute what's on stack... but it *could* happen! 21:44:04 I think that was in a 99 proposal 21:44:44 99 21:44:50 cpressey, was that a typo for 98? 21:44:54 fizzie: k should have taken its instruction from the stack 21:44:57 anmaster_l: no 21:45:01 cpressey, hm okay 21:45:15 never heard about the 99 stuff before 21:45:20 96 and 97 yes 21:45:37 That's because no one was interested in anyone's ideas for changes after 98 21:45:47 hm okay 21:45:51 There was all kinds of stuff proposed 21:46:11 cpressey, well I think they are good ideas, but I also think they should probably be a set of fungoids 21:46:16 and then everyone is happy 21:48:16 With the current s, I don't see any specifically elegant way of using it for stack-execution. sX^ and then v< on top of X^ works, but all the looping makes the IP dizzy. If you just jump backwards without changing delta, it's hard to avoid ending up in a loop; you can't do something like s#vX< because the s won't reach up to the X. 21:49:26 s;> #;X#< 21:49:38 Deewiant: Won't that just overwrite the ;? 21:49:48 Maybe :-P 21:50:08 Would be cool if it didn't tho 21:50:25 With a non-cardinal delta you can do it semi-elegantly; assuming dx=2, dy=0 for example you could just svX <. 21:50:48 fizzie, what is X there? 21:50:54 "any" 21:50:56 anmaster_l: The thing that gets overwritten by s. 21:50:59 ah 21:51:29 But setting a non-cardinal delta involves an ugly vector. 21:51:53 eval is supposed to be ugly 21:52:04 fizzie, you could also do 0-2 0 'X #vsX x right? 21:52:10 or something like that 21:52:36 I guess so. 21:52:45 err 21:52:49 make that 02- 21:52:51 of course 21:53:21 Though 20x svX < is shorter. I just don't like non-cardinal deltas at all, due to theological observations. 21:53:36 oh? 21:53:48 -!- augur has joined. 21:53:48 oh 21:53:49 ffs 21:54:01 Like the old saying goes: God created the cardinal deltas; all else is the work of man. 21:54:06 They fell less holy, you see. 21:55:45 "The all-pervading nature of the program counter"; what a lovely section title from Wikipedia. 21:55:58 fizzie, so Cardinalidae is more holy? Huh 21:56:23 (algorithm: go to wikipedia disambig page, pick first from list) 21:56:57 On the other hand, bishops move diagonally... 21:57:05 haha 21:57:35 There was a related joke I saw somewhere. 21:57:43 "As a chess grandmaster, what's your view on America's war strategy?" "Send in the clergy! They can move diagonally!" 21:58:01 Mmm, SMBC. 21:58:12 That's probably where it was. 21:58:29 It was. 21:59:18 -!- alise has quit (Ping timeout: 252 seconds). 22:01:34 where is oklofubp 22:01:52 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 22:03:38 -!- AnMaster has joined. 22:04:06 night 22:04:16 -!- anmaster_l has quit (Quit: Leaving). 22:06:12 -!- angstrom has joined. 22:07:01 hi guys. how are the extensions { '#', '!' } actually used in brainfuck? 22:07:56 #!/sbin/brainfuck 22:08:38 as in "#! /bin/bash" ? 22:12:15 lament: my question refers to http://esolangs.org/wiki/Brainfuck#Extensions but what does "print the content of the first few memory cells" mean? kinda vague to me.. '!' should, if i'm right, write the char after it from the source into the current cell 22:14:36 angstrom: I think # is basically "Debug", and not meant to be portable in any serious way. 22:15:17 I've seen # used as a breakpoint instruction in BF too. 22:15:24 Whereas everything before "!" is interpreted as program, and everything after it as input (for interpreters that don't have the usual concept of stdin etc.) 22:15:27 And ! is only used as an "end of code" marker. 22:15:56 ^bf ,[.,]!hello 22:15:57 hello 22:15:59 Like that. 22:28:33 ic. i ask, because i'm currently implementing my own bf interpreter, and just wondered, whether there is a mutual understanding of extensions.. 22:30:03 Just ignore them, really. 22:31:01 Hm 22:31:02 a command for doing something like printf("%u", *(ptr + cell)); would come in handy though 22:31:46 eg. "^4" which then would print the int stored at (4) 22:32:05 Then add and document it. 22:32:22 !!! ... (this is an infinite stream) ... 22:32:32 cpressey: Yes. :) 22:33:06 i'm not implementing it in bf tho 22:35:04 cpressey: It's turtles all the way down. 22:37:02 -!- tombom has quit (Quit: Leaving). 22:46:24 -!- alise has joined. 22:46:38 PING google.com (209.85.229.104): 56 data bytes 22:46:38 64 bytes from 209.85.229.104: icmp_seq=0 ttl=49 time=445.559 ms 22:46:38 64 bytes from 209.85.229.104: icmp_seq=1 ttl=49 time=458.109 ms 22:46:38 64 bytes from 209.85.229.104: icmp_seq=2 ttl=49 time=1841.185 ms 22:46:38 64 bytes from 209.85.229.104: icmp_seq=3 ttl=49 time=847.884 ms 22:46:40 64 bytes from 209.85.229.104: icmp_seq=4 ttl=49 time=999.323 ms 22:46:40 64 bytes from 209.85.229.104: icmp_seq=5 ttl=49 time=365.233 ms 22:46:41 Hi. 22:47:13 -!- Gracenotes has quit (Ping timeout: 260 seconds). 22:47:13 The domain name misogyno.us is available. 22:47:15 (Explanation: Now I am on my iMac, using this BT FON thing where you pay £5 and get 24 hours of interwebs via Wi-Fi. It is slow; I think the router is some way away.) 22:47:28 The other computer is connected wiredly; but with a winmodem. 22:47:34 Shit sucks. 22:47:44 Gregor: :D 22:48:45 As is coprophago.us , but I don't know what that word is and it scares me ... 22:48:57 Very bad ping, very bad bandwidth. 22:48:58 Gregor: you don't? 22:48:59 Gregor: Poo-sexual. 22:49:04 Like our dear friend coppro. 22:49:10 (Pooppy) 22:49:18 hey guys what's my lag? 22:49:28 ping is 1.29 seconds to Gregor :D 22:49:28 alise: PING 22:49:36 cpressey: Uh, use CTCP ping :P 22:49:38 alise help 22:49:41 alise: NO 22:49:42 MissPiggy: wut 22:49:47 cpressey: :( 22:50:12 Your ping is n/a no matter how many times I tell my client to ping you :) 22:50:16 Client doesn't respond to PINGs? 22:50:51 alise: 4 seconds 22:50:58 Sweet 22:51:08 The log for today is loading in tiny stutters 22:51:14 This thing is shared with whoever owns the hub apparently, and i'm capped 22:51:22 But my 3g stick refused to top up, so... 22:51:41 * alise joins #ubuntu for the lulz 22:52:07 * cpressey is scared to venture anywhere besides #esoteric 22:52:10 also I /just/ managed to connect to MSN... 22:52:42 We're the nicest channel now that #haskell has gone all big. 22:52:47 Even nicer if I left :) 22:54:42 man #haskell is so fucking awful seriously 22:54:49 that channel is a pit of fail 22:55:06 Anything else to say other than the usual "Haskell sucks" stuff? 22:55:11 was 22:55:12 I realise Coq is so much better and all but please. 22:55:13 but not anymore 22:55:19 what's coq got to do with it 22:55:25 Well, you seem to like Coq. :P 22:56:03 -!- alise_ has joined. 22:56:03 -!- alise has quit (Read error: Connection reset by peer). 22:56:07 -!- alise_ has quit (Client Quit). 22:56:13 haskell sucks 22:56:28 -!- alise has joined. 22:56:41 Not the most reliable connection. 22:56:52 Could someone pastebin the last, say, 100 lines of today's log? 22:56:56 MissPiggy: Is there anything you feel positively about? 22:56:57 Or, well, since I last left for a while. 22:57:01 I can't seem to load the entire log. 22:57:11 Deewiant: Negativity! 22:58:01 Deewiant I wish there was 22:58:02 -!- alise has quit (Read error: Connection reset by peer). 22:59:18 -!- alise has joined. 22:59:41 This is just ridiculous. 22:59:45 Anyone said anything? 22:59:58 alise: No. 23:00:11 Well that's great. Probably they did but the lag stopped me seeing it :) 23:00:17 I should just top up the damn 3g stick 23:00:21 And previously it was mostly very boring stuff about Befunge spec. 23:00:30 Aight. 23:00:30 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:01:44 Oh I missed this one. 23:01:45 (4:55:49 PM) lament: haskell sucks 23:02:03 We're in top form today. 23:03:19 -!- Gracenotes has joined. 23:03:23 -!- oerjan has joined. 23:04:37 In other news, Wouter took free variables (and thus closures) out of Aardappel after deciding they didn't add anything to it (function values can be expressed more directly as term-rewrite rules.) 23:04:55 But it does have local rules. 23:05:07 Which is what I'm thinking about. 23:05:10 Anyway. 23:05:33 -!- alise has quit (Ping timeout: 240 seconds). 23:08:30 -!- alise has joined. 23:11:19 Aardappel doesn't treat the local rules as part of the term, though, afaict. So they can't be rewritten by other rules. 23:11:32 Topped up. 23:11:52 Also, I think there are only 2 levels, local and global. No nested scoping beyond that. Could be wrong though. 23:12:00 hi alise 23:14:18 -!- coppro has joined. 23:16:00 cpressey: I think deltas should modify, but not overwrite, the velocity. 23:16:17 Like, < should change (1,2) to (0,3) 23:16:22 Er, if I have my order correct 23:17:29 alise: I think that idea was kicked around once... so, like, >> > > > > > causes the IP to speed up to the right 23:17:42 Assuming it's already going right 23:17:48 accelerating >s! 23:17:55 Pretty much 23:18:01 It makes turning corners interesting 23:18:02 * augur accelerates cpressey's > 23:18:03 cpressey: Oh, I think it'd behave normally just for ^/v/ 23:18:09 Dunno how, though 23:18:13 Just a sort of generalisation 23:18:21 hi augur 23:18:39 sups 23:18:44 im sad 23:18:55 why did I study so much computers it was a waste of time 23:19:02 :( 23:19:14 ? nobody gives a fuck if I can implement CPS conversion using delimited continuations ? 23:20:17 whine whien whien 23:20:24 :P 23:20:29 MissPiggy is having some sort of crisis where she disowns all of CS :P 23:20:34 #math is that way 23:20:38 and takes up linguistics! :D 23:20:40 #math is awful 23:20:43 math actually 23:20:45 or so she says 23:20:47 I am learning a little bit of linguistics 23:20:48 linguistics is awful 23:20:50 *maths 23:20:55 cpressey: augur hates you now 23:21:00 CPRESSEY YOU HOLD YOUR TONGUE 23:21:00 >O 23:21:05 I just read the intro books 23:21:17 come, my dear, let me teach you bout some linguisticd 23:21:20 yeah but alise I'm not good at math 23:21:58 http://www.youtube.com/watch?v=Lt4JZyssxOQ 23:22:21 lmfao 23:22:27 thats a horrible demonstration XD 23:24:30 his bothmer person has a bunch of stupid videos 23:24:31 lol 23:24:46 "this is nor a homomorphism: /bother burns a sheet of paper" 23:24:48 not** 23:25:26 MissPiggy: computing's cool man 23:25:57 -!- dev_squid has quit (Ping timeout: 260 seconds). 23:26:42 computer science is the worst 23:26:58 can't decide if it's math, logic, or electrical engineering 23:27:03 Today, I mostly paste libraries together. So do you, most likely, if you work in software. Doesn’t that seem anticlimactic? We did all those courses on LR grammars and concurrent software and referentially transparent functional languages. We messed about with Prolog, Lisp and APL. We studied invariants and formal preconditions and operating system theory. Now how much of that do we use? A huge part of my job these days seems to be impedence-ma 23:27:21 Fuck, paste libraries together? I WISH! 23:27:52 Modern programming is 90% troubleshooting and 10% acting like the bugs that are there don't matter. 23:28:00 oh great MissPiggy read a sub-par lol cs is not programming 23:31:08 MissPiggy: impedence-ma 23:31:28 MissPiggy: look cs has a boring brother called programming 23:31:32 but mathematics doesn't even have a boring brother 23:31:52 Mathematics also has a boring brother called programming? 23:32:06 Math is nothing but the lesbian sister of biology 23:32:08 Not really :P 23:32:15 Mathematics has a "special" brother called CS. 23:34:08 -!- Gracenotes has quit (Ping timeout: 256 seconds). 23:35:43 I am a huge proponent of "Agile mathematics" 23:36:27 Is it the kind where you need to perform autofellatio? 23:38:41 ... wow. 23:41:12 XD 23:41:22 I don't get it. 23:42:01 Exactly. 23:44:07 I keep thinking it's some obscure Pair Programming reference. 23:44:10 the connection to mathematics seems a little weak 23:44:53 cpressey: that wouldn't be auto- would it. 23:46:46 On the other side of the coin is http://www.flounder.com/bricks.htm 23:47:25 i.e. Programming has a useless brother called CS 23:49:37 that was funny about the comma inside the quote 23:52:58 Whoever wrote that — ok so I haven't read it yet — has probably used quicksort. Or O(n) notations to decide on an algorithm. 23:53:00 Or... I could go on. 23:53:38 his point is not that CS is useless 23:53:38 alise: OK, so the analogy isn't quite right. 23:53:53 his point is that CS education does not train programmers 23:53:54 coppro: Yeah, seems not. 23:53:59 Programming as a profession has a useless brother called CS Education. 23:54:00 Or CS, in most cases. 23:54:45 Naw, programming is to CS as civil engineering is to physics ... the fact that civil engineers need to take physics classes doesn't mean that they're dealing directly in theoretical physics every day. 23:55:19 good analogy 23:55:34 this is all great but none of it helps me :| 23:55:51 What did you want to be helped with? :P 23:56:01 I don't even know :( 23:56:19 time travel is out of the question 23:56:20 MissPiggy needs metahelp 23:56:42 -!- augur has quit (Ping timeout: 248 seconds). 23:56:44 Quicksort is a fun sorting algorithm. 23:57:07 MissPiggy: If you're confident that you can develop the technology to travel backwards in time within your lifetime, then time travel is not out of the question. Just develop it, then send it back to your younger self, and you'll still have your entire life to do whatever else you wanted to do. 23:57:11 I love sorting algorithms that perform at their worst when their input is already sorted. 23:57:52 Gregor, but I don't beleive in time travel 23:58:02 So short-sighted :P 23:58:03 I mean, maybe it's possible to send me back in time 23:58:16 I imagine almost nobody believes in time travel. 23:58:30 but it would just be duplicating me, and destroying the original 23:58:37 I wouldn't actually be going through time, I'd just think I was 23:58:40 Not necessarily. 23:58:48 That's an irrelevant distinction. 23:59:00 I mean, what makes you think that when you walk around, you're not just duplicating yourself and destroying the original? 23:59:02 Gregor irrelevant to whom? 23:59:22 Whatever it is that makes you think that, it should also make you open to the idea that time travel wouldn't do that. 23:59:23 Irrelevant in every sense, you're existing a distinction with no physical consequences. 23:59:29 Erm 23:59:35 You're creating a distinction with no physical consequences.