00:00:45 perhaps we'll be able to use the expansion of the universe as an energy and free-energy source some day, then 00:00:52 this makes me more hopeful 00:00:53 -!- shikhin has quit (Ping timeout: 240 seconds). 00:08:06 "In two OpenSSL manual pages, in the NAME section, the last word of the name list is followed by a stray trailing comma. While this may seem minor, it is worth fixing because it may confuse some makewhatis(8) implementations." 00:08:07 o.O 00:08:33 what 00:09:21 what the hell is makewhatis 00:10:02 It generates the whatis database. 00:11:17 Sgeo: CLC-INTERCAL once broke apropos throughout the whole of Debian 00:11:20 that was a fun bug report to read 00:11:32 ais523, what 00:11:49 imo packages should not be allowed to be capable of doing that 00:11:55 the developers acknowledged that it was technically mandb's fault, but asked CLC-INTERCAL to change it because it was a much less widely used program 00:12:02 Taneb: CLC-INTERCAL's executable name used to be oo, ick 00:12:06 with an embedded comma and space 00:12:12 Phantom_Hoover: does the expansion of the universe create locally usable energy? 00:12:16 and this blew up mandb, causing it to produce corrupted output 00:12:21 not afaik 00:12:42 ais523: I hope that shortly after it they fixed mandb 00:12:45 I think you end up with expansional potential energy, or something 00:12:47 Sgeo: no idea 00:13:21 you do but it's dumb 00:13:52 I try to avoid physics when I can 00:13:56 It's too close to reality 00:13:56 it's just saying 'oh energy is conserved because we put a name to the change in total energy' 00:14:42 aiui it doesn't even work like actual energy in e.g. the relativistic field equations 00:15:05 oh, dark energy apparently causes an increase in total energy 00:15:29 since it's a constant joules/volume thing, and expansion increases the volume 00:15:44 I have a book it mentions Einstein's equation, involving Ricci curvature tensor, scalar curvature, spacetime metric, Newton's constant, and energy-momentum tensor. Where does the factor of 8pi come from though? 00:16:29 because it's geometry and 8pi is exactly the kind of constant you normally see in geometry? 00:17:28 same as how maxwell's equations have a 4pi in them, it's a property of the geometric tools you're using 00:17:32 so perhaps some day we can use dark energy in order to stave off total thermodynamic apocalypse 00:17:40 I'm actually feeling surprisingly relieved at this 00:18:41 I also don't know what curvature tensor, scalar curvature, and energy-momentum tensor. I am not sure if I understand spacetime metric correctly either. Does it mean + for time and - for space (or vice-versa)? 00:19:32 zzo38, i can answer this! i did a hyperbolic geometry course last year 00:19:59 the answer is: you pick whichever one will cause maximum confusion to the reader 00:24:20 Phantom_Hoover: I do not understand you. Is one way more confusing? 00:24:55 no, but not being consistent in your choice is 00:25:42 proper choice of convention requires some foreknowledge of your audience, of course; if you know which option they're familiar with you can reliably choose the other one 00:27:30 OK, although I think you should be consistent whichever one you are using (unless you have a good reason to use other one) 00:28:00 -!- Bike has quit (Ping timeout: 250 seconds). 00:28:35 to be clear, i'm joking about the fact that i got fairly confused during the course over which convention i should be using in which circumstances 00:29:05 -!- Bike has joined. 00:29:24 `dontaskdonttelllist 00:29:25 dontaskdonttelllist: q​u​i​n​t​o​p​i​a​ c​o​p​p​r​o​ m​y​n​a​m​e​ 00:29:36 @tell mroman_ `learn "a b" is ab <-- we've always created multiword wisdom entries directly 00:29:36 Consider it noted. 00:30:56 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:31:30 oerjan: i like how HackEgo doesn't highlight me 00:31:50 myname: took me a while to get that feature right 00:32:29 @tell mroman but it would be really huge if it were complete. <-- i'm secretly planning to split the table when it gets a bit wider. 00:32:29 Consider it noted. 00:32:50 oops 00:32:59 @tell mroman_ but it would be really huge if it were complete. <-- i'm secretly planning to split the table when it gets a bit wider. 00:32:59 Consider it noted. 00:33:05 myname: It contains "zero width codes" 00:33:05 is he ever on without the _ ? 00:33:16 So that's why it doesn't match. 00:33:21 zzo38: i suspected that 00:33:36 (They are visible on my computer, although still zero-width) 00:34:09 while we are at it 00:34:21 what's the deal with invisible plus? 00:34:31 For fractions, I suppose. 00:34:51 huh? 00:35:02 myname: 3 1/2 and stuff 00:35:08 i see 00:38:48 I wonder whether there's a point in making a `learn variant that can take multiword entries. 00:39:30 But then I'd have to split `learn up into pieces and it's be a hassle. 00:42:34 @tell fizzie What's up with hackage's every-now-and-then broken documentation? <-- the server has been severely overworked so they've turned off the doc generation. a new server should be up any day now. 00:42:35 Consider it noted. 00:43:15 Something about running out of disk space? 00:45:05 oh that post, i haven't been keeping up with /r/haskell. but no, what i'm referring to has been going on longer. 00:46:12 I haven't either. But someone said something in #haskell-infrastructure. 00:46:16 wait have i been ignoring it this long... 00:47:36 i'm referring to this post from 14 days ago, although that means they haven't solved the problem since then... http://www.reddit.com/r/haskell/comments/2gd1hl/did_hackage_stop_building_packages/ 00:48:20 @tell fizzie Actually it's been longer than I thought, the server should have been up already. But there seem to have been new problems recently. 00:48:21 Consider it noted. 00:49:15 -!- ais523 has changed nick to ais523[. 00:49:22 imo the solution is to have all sorts of datacenters all over the world with a large number of servers in each one 00:49:48 i'm sure haskell.org will have no problem paying for that 00:49:55 exactly 00:50:26 especially now that americans can donate to them tax-deductibly (iirc) 00:50:32 -!- Bike has quit (Ping timeout: 250 seconds). 00:51:23 yay finished logreading 00:51:43 what 00:51:51 Quickly, type faster than oerjan can read! 00:52:40 you really read all the stuff that gets posted here? 00:52:57 I know elliott does. 00:53:05 I don't 00:53:16 you people are crazy 00:53:21 those days are long gone 00:53:26 I don't even read the crap that I write 00:53:37 But then elliott isn't a human being, he's some sort of Jungian group consciousness entity formed from all the minds of the people of Hexham. 00:53:45 [wiki] [[Special:Log/newusers]] create * ChiSHAXtjo * New user account 00:54:07 -!- ais523[ has changed nick to ais523. 00:54:40 close enough 00:55:13 myname: not always, and of course i skip particularly boring parts 00:57:48 oerjan reads and analyses every single BF Joust program, trying to find their weaknesses. 00:58:08 that's been particularly annoying lately, yes. 00:58:08 sounds plauible 00:58:26 although i've found a sort of rhythm for skipping those 00:58:42 -!- Bike has joined. 00:59:07 (since mostly it's a long list with every second line !bfjoust and response from zemhill) 01:00:05 (the tricky part of it is not skipping anything else intermingled) 01:01:00 some days when the logs are just too long i just search for my nick and leave it at that. 01:01:49 I'd like to set up a hill for some BF Joust/CoreWars type game for my uni 01:01:54 But on the other hand I'm lazy 01:03:07 On which note, I've managed to procrastinate making dinner until after 2 AM 01:03:21 i'd like some interesting programming game that is either language independent or in befunge 01:03:22 *slow clap* 01:03:58 Taneb: Man after my own heart there. 01:04:32 It is rather funny needing to be reminded to eat at times. 01:04:46 pikhq, for me it can get problematic :( 01:05:21 I've gained something like 60 pounds after starting antidepressants... so I think I know what you mean. 01:05:28 i still get hungry 01:07:46 pikhq, can I PM you? 01:07:52 Sure. 01:08:24 pikhq: tbh that sounds depressing 01:08:43 Not especially. 01:08:50 Went from underweight to mildly overweight. 01:08:54 okay 01:09:05 Saying that, I've forgotten what I was going to message 01:09:09 sounded more like "want to get better? why not become fat first" to me 01:09:52 Nope, more like "I stopped being worryingly thin because I ate more regularly" 01:09:59 pikhq: from weight gain side-effects or just more motivation to eat? 01:10:03 uh, you don't have to answer that 01:10:10 elliott_: Bit of column A, bit of column B. 01:10:19 * elliott_ nod 01:14:07 is it just me or are computer scientists more likely to be depressive? 01:14:25 I want to send a fax by Famicom; do you know how to do it? 01:14:29 Admittedly I've still had some issues with the whole "eating regularly" thing. ... in that it might take me until 3 to realize that I am hungry. 01:15:14 But "ah jeeze I'm going to eat a cow RIGHT NOW" is probably more healthy than "... meh" 01:16:01 except for the cow hth 01:17:10 who cares 01:17:22 well not the cow because it's DEAD 01:17:35 Meh, cows. Even alive they don't care much. 01:17:36 good for the cow 01:17:50 * oerjan is not a vegetarian in case someone takes this seriously 01:19:01 oerjan: why wouldn't i take everything you say deadly seriously? you never joke. 01:19:31 oerjan, do you only eat living cows? 01:20:11 i seem to be procrastinating my procrastination, i just switched to my tatham puzzle from SO 01:20:11 -!- conehead has quit (Quit: Computer has gone to sleep). 01:20:17 no oerjan doesn't eat cow. he's norwegian 01:20:22 Taneb: no hth 01:20:32 As we all know, Norwegians only eat reindeer. 01:20:57 pikhq: and fish and occasionally people hth 01:21:02 i have eaten reindeer on occasion, also whale 01:21:18 I have had neither. 01:21:49 I've eaten kangaroo. 01:22:00 It was probably the nicest steak I have ever eaten 01:22:13 hm i cannot remember eating kangaroo, it would have been the one time i was in australia in case 01:22:19 "Perverse Norwegian comedian Harald Eia ate a part of his own body." It's only perverse if you're not Norwegian. totally makes sense to norwegians. 01:22:36 i've had ostrich though, there was a brief period when it was all the rage to farm ostriches in norway 01:23:01 Never had ostrich. Though I've seen an ostrich farm. 01:23:20 (then they lowered the tariffs as a gesture to poor african countries, and their ostrich outcompeted the norwegians :P) 01:23:21 I've eaten scampi at an ostrich farm 01:23:43 NORvegans eat neither meat nor eggs 01:23:44 well their ostrich farmers. although i doubt a norwegian could beat an ostrich in a fair race. 01:24:00 myname: Only the blood of their enemies? 01:24:38 quintopia: i don't quite remember that, but i assume it was a part he was going to remove anyhow. 01:25:12 although not having a TV, i'm seriously out of touch with the norwegian comedy scene. 01:26:01 not being in norway, so am I 01:26:11 of course, even in Norway, I still would be. 01:26:23 not speaking norgevian at all 01:26:39 Few speak Norgevian. 01:27:30 only the norgays speak norgevian 01:28:01 quintopia: you mean tenzing? 01:28:11 and his family 01:28:32 well they've always been an aloft bunch 01:29:20 indeed. quite a heavy burden for them to bear. 01:29:52 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 01:33:53 -!- copumpkin has joined. 01:35:36 -!- Sorella has quit (Ping timeout: 250 seconds). 01:38:39 -!- Sorella has joined. 01:39:27 -!- Sorella has quit (Changing host). 01:39:28 -!- Sorella has joined. 01:44:12 -!- copumpkin has quit (Ping timeout: 258 seconds). 01:54:43 [wiki] [[Special:Log/newusers]] create * Vernon76Cnr * New user account 02:00:33 -!- AndoDaan has joined. 02:09:12 `perl-e print 4 02:09:13 4 02:09:30 `perl-e if (false) { print "false is true!\n"; } 02:09:31 false is true! 02:10:25 `interp perl print 4 02:10:26 ​/hackenv/bin/interp: 4: exec: ibin/perl: not found 02:10:40 elliott_: we have `! now for `interp 02:10:49 yeah, I forgot 02:15:54 wtf false 02:16:27 i think that's a bareword interpreted as the string "false", right? 02:16:47 *an undefined bareword 02:17:05 if warnings were turned on, you'd get one. 02:17:38 `run perl -W -e 'if (false) { print "false is true!\n"; }' 02:17:39 Unquoted string "false" may clash with future reserved word at -e line 1. \ Bareword found in conditional at -e line 1. \ false is true! 02:18:22 Does perl have specific true and false values? 02:18:30 i don't think so. 02:18:40 `perl-e print (1 == 1) 02:18:41 1 02:19:02 oerjan: right 02:19:10 Melvar: no; the standard false and true are undef and 1 02:19:20 `perl-e print (1 == 0) 02:19:20 No output. 02:19:26 hm oh undef not 0 02:19:31 * Melvar nods. 02:19:37 but it's sort-of idiomatic to use a range of different true and false values to distinguish between different reasons something might be true or false 02:19:46 the null string and 1 is what == uses, I think 02:19:58 ah 02:20:00 there are only three falsey values AFAIK, though: undef, the null string, and 0 02:20:09 not sure about longer strings that are numerically 0 02:20:16 ais523: what about midnight? 02:20:24 `perl-e print +('0e1' ? "true" : "false") 02:20:24 true 02:20:32 ew 02:20:35 I guess it has to be '0' specifically 02:20:51 i guess i get where php has that crap from 02:21:01 Perl's semantics are, I think, intended to be "everything is a string, but some operators treat them like numbers" 02:21:08 i don't think there's any reason to write this program in C except that i can learn gdb from everything breaking, but that's bullshit 02:21:09 but every now and then, someone breaks the abstraction 02:21:13 tcl manages that a bit better 02:21:25 `perl-e print +('0' ? "true" : "false") 02:21:25 false 02:21:28 `perl-e print +('000' ? "true" : "false") 02:21:29 true 02:21:33 oh my. 02:21:43 `run perl -MData::Dumper -e '$x = 4; print Dumper($x); "$x"; print Dumper($x);' 02:21:43 ​$VAR1 = 4; \ $VAR1 = 4; 02:21:54 huh 02:21:58 `run perl -MData::Dumper -e '$x = 4; print Dumper($x); $y = "$x"; print Dumper($x);' 02:21:59 ​$VAR1 = 4; \ $VAR1 = 4; 02:22:02 hmm 02:22:06 maybe they've fixed it 02:22:12 ais523: Does perl have an empty list? 02:22:14 that used to print "4" for the second dump 02:22:33 no yuks from a python joke, tough crowd :< 02:22:34 Melvar: Perl doesn't have first-class list types; you can create an empty array, or use an empty list as a temporary 02:22:37 where it's written () 02:22:58 lists and arrays act marginally differently, though 02:23:17 -!- TodPunk has quit (Read error: Connection reset by peer). 02:23:26 So is () actually a thing there? 02:23:57 -!- callforjudgement has joined. 02:23:59 `run perl -le '@a = (3, 4); print scalar @a; print scalar (3, 4);' 02:24:00 2 \ 4 02:24:06 -!- ais523 has quit (Disconnected by services). 02:24:07 -!- callforjudgement has changed nick to ais523. 02:24:19 there, that's the difference between a list and an array 02:24:27 lists like (3, 4) are second-class; they scalar-ise as their last element 02:24:46 arrays are first-class; there's no array literal but you can assign a list literal to an array 02:24:46 … the last …? 02:24:49 they scalar-ise as their length 02:25:01 Melvar: to keep the "comma operator" working like in C, I guess 02:25:18 Ah. 02:25:36 that's uh... uh. 02:25:54 "fiendish" hth 02:26:28 -!- callforjudgement has joined. 02:26:30 [03:25] actually, I guess a good way to think about it is that lists are used as temporaries, and arrays are used for storage 02:26:32 [03:26] arrays decay into lists in list context 02:26:34 -!- ais523 has quit (Disconnected by services). 02:26:35 -!- callforjudgement has changed nick to ais523. 02:30:49 i wrote a lisp parser that works okay except it starts burning an entire cpu if i enter the empty list. this is cool 02:40:49 -!- TodPunk has joined. 02:43:17 if it burns your cpu, wouldn't it be more hot than cool? 02:46:16 not relative to planck temperature 02:47:21 what is the planck temperature? 02:47:26 I'm guessing very large, from that 02:47:57 yeah it's ten to the whatever kelvin. 02:48:29 I like how planck units are always very huge or very tiny 02:48:45 just to keep you on your toes 02:49:14 there should be just one that has a reasonable value, to confuse people 02:49:25 Planck impedance is quite reasonable. 02:49:30 planck charge is almost reasonable 02:49:31 It's about 29 ohms. 02:49:36 it's more than the electron's, for some reason? 02:49:49 29 ohms is a little small 02:49:56 but then, it's larger than, you know, the actual ohm 02:50:00 so I'll forgive it 02:50:02 -!- Sprocklem has joined. 02:50:12 hm, planck momentum is about six and a half kg*m/s, taht doesn't seem bad 02:50:29 meanwhile the planck force is like 10^44 newtons, these are some great units here 02:50:30 The planck mass is only a tad bit small. 02:50:39 It's about 21 micrograms. 02:51:32 10^19 GeV? huge!! 02:51:36 Which is even crazier considering it's a base unit... 02:52:01 Blanck density? 5x10^96 kg/m^3! 02:52:03 *Planck 02:52:51 Unlike all other Planck base units and most Planck derived units, the Planck mass has a scale more or less conceivable to humans. It is traditionally said to be about the mass of a flea, but more accurately it is about the mass of a flea egg. 02:53:04 ah yes, flea eggs, that common household object I have a solid grasp on the mass of 02:53:30 so an object with the planck mass and density would be 10^-60 times as big as an electron 02:53:38 makes sense, i can see why these are natural units 02:54:00 -!- [1]AndoDaan has joined. 02:54:13 -!- AndoDaan has quit (Ping timeout: 272 seconds). 02:54:14 -!- [1]AndoDaan has changed nick to AndoDaan. 02:54:31 Bike: But hey, c=1. 02:54:55 and, really, isn't that what's important. 02:55:44 * pikhq would be somewhat more pleased by a system that set $c=\pi$ though. 02:55:54 pikhq: Why? 02:55:56 It'd make some physics equations *hilarious*. 02:56:03 you are a bad person 02:56:03 I like c=1 02:56:31 I think we should set c=-1 02:56:31 i wonder if that would mess with angular velocities somehow 02:56:41 E=M/pi^2? Mmm. 02:57:24 you know what really grinds my gears, is metrics in physics not being a metrics in maths 02:57:27 terrible 02:58:04 Bike: i have an oil can, so while i can't help you with the metrics, i can keep your gears in better shape 02:59:33 I'm afraid they're already ground. 03:01:23 -!- AndoDaan has quit (Ping timeout: 240 seconds). 03:02:22 -!- Sorella has quit (Ping timeout: 272 seconds). 03:03:04 alright nerds, someone tell me what horrible magic i've done in C, because i don't know how this can happen. http://sprunge.us/KdaX 03:03:36 # being the output of my write function, except it's not supposed to do it a billion times 03:04:40 it would help to see your code...? 03:04:51 elliott_: he pasted it the line before 03:04:57 no i didn't 03:05:02 oh, is that the output? 03:05:04 I do enough psychic debugging at work. :P 03:05:09 -!- lambdabot has quit (Remote host closed the connection). 03:05:10 ais523: No, it's gdb session. 03:05:13 are you back to not clicking on links? :p 03:05:19 "back"? 03:05:28 I did turn off the thing that hides them altogether, ages ago 03:05:35 but that didn't mean I actually started clicking on them 03:05:43 I used a compromise, of making them the same color as normal text 03:06:07 can you correctly assume you know nothing about the links you haven't clicked, then? :p 03:06:08 anyway, weird failure mode: my IRC is still connected, but I can't DNS resolve anything 03:06:23 let me try reconnecting to the router 03:06:29 -!- ais523 has quit. 03:08:05 -!- AndoDaan has joined. 03:08:19 -!- ais523 has joined. 03:08:29 that seems better 03:08:36 it was particularly weird, the DNS didn't work no matter which DNS server I used 03:08:43 That is weird. 03:08:43 maybe the breakage was one that prevented new connections 03:09:27 http://sprunge.us/HZdb well, here's the relevant code, i didn't paste it because it was slightly more embarassing than my gdb ineptness, and also i think boring? 03:10:22 anyway, I had a really good IOCCC contest idea 03:10:24 like, really really good 03:10:31 that's pretty good 03:10:32 sometimes my internet connection just starts being slow at playing youtube videos but not normal webpages, except also the administration interface gets slow so it's hard to reset it, and then the admin interface gets so slow that it won't respond at all, but the rest of the internet stays normal (and youtube is just really slow, not completely dead), and then if you disconnect from wifi you ... 03:10:32 but I'm not sure I'll be able to get it ready in time for the deadline 03:10:38 ... can't reconnect, and also you lose connection entirely after a few hours of this 03:10:41 beat that 03:12:01 is that some sort of traffic shaping, I wonder? 03:12:44 Bike: it's taking the else branch in write_lisp, I guess? 03:13:01 ais523: shaping traffic to the 192.168.0.1 web interface...? 03:13:20 well, i know it's writing #... 03:13:22 -!- lambdabot has joined. 03:13:25 who's in control of your router firmware? s/?/>/ 03:13:37 hi lambdabot 03:13:55 i feel any good conspiracy should have a few seemingly extraneous question marks 03:13:58 Bike: I mean I assume the combine(user_write, list(2, obj, port), empty_environment) is doing weird things? you should set breaks on read_lisp and write_lisp and step through them I guess 03:14:08 ais523: you mean s/\?/>/ 03:14:51 s/\?/\?/ 03:14:54 well, break on combine doesn't fire, so i guess step it is... 03:14:57 -!- Sprocklem has quit (Ping timeout: 246 seconds). 03:15:02 i forgot i could do that, i'm good at debugging. 03:16:15 -!- Sprocklem has joined. 03:18:51 well, what it's doing is getting caught in a loop of... oh. I forgot to read another char when i continue. dumb. 03:19:07 i,i "does gdb have a way of stepping one instruction?" "si" 03:19:49 what's i,i again 03:19:59 shachaf: :D 03:20:48 some sort of Pennsylvanian owl 03:22:03 gotcha 03:22:25 It's probably the encoding of some obscure x86 instruction as well. 03:23:02 something is definitely up with this internet connection atm 03:23:14 some things are taking ages to load despite being measured in kb 03:23:17 other things are loading instantly 03:23:56 n1124.pdf is the document normally used as a C99 draft, right? 03:23:59 Yep. 03:24:03 Not DNS issues? 03:24:13 sadly, this is one of those things where an actual copy of the standard would be helpful 03:24:20 shachaf: it's possible, but it's due to third-party CDNs in that case 03:24:30 because some of these are internal link to the same site 03:24:52 Friendly advice, just hit up http://port70.net/~nsz/c/ for those... 03:25:23 (all the C specs, gathered by nsz of #musl) 03:27:06 iso646.h, the bobm 03:27:38 "The above mentioned identifiers are operator keywords in the ISO C++ programming language and do not require the inclusion of a header file. For consistency, the C++98 standard provides the header . However the latter file has no effect, being empty.[1] Notwithstanding some compilers, such as Microsoft Visual C++, do require the header to be included in order to use these identifiers." incredible 03:28:51 Yep. 03:29:09 The header, of course, actually does something in C99. 03:29:20 Terrible though it might be. 03:29:48 yeah, i learned about it looking through the includes for my Microchip crud. complete with an #ifdef to do nothing if it's C++ 03:31:42 https://pbs.twimg.com/media/BxOhDARCUAA1NLt.png:large also had this loveliness, but that's unrelated 03:34:37 But hey, lets you write C like this: http://sprunge.us/XNZh 03:35:30 it's like php or something, yay 03:35:55 i like how i can work out all the digrams from context... 03:36:11 The digraphs are nowhere near as crazy as the trigrams. 03:36:22 Erm, trigraphs 03:36:44 Both the choices are much more obvious and the actual implementation is much less insane. 03:37:13 The trigraphs are done as a sed process on the source before anything else is done, the digraphs are just alternate tokens. 03:37:20 what I don't get is how digraphs were added in 1994 03:37:28 surely they were obsolete from the start 03:37:44 IBM mainframes are GOD DAMNED MOTHERFUCKING INSANE. 03:38:18 ^ 03:38:53 The default charset there actually is missing these characters I kid you not. 03:39:52 yep 03:39:56 Oh, and before you ask, *yes*, you can code in C on there. 03:40:06 Can it be programmed to use ASCII though so that you can use ASCII-based programs? 03:40:25 If you use a charset with not-utterly-insane character selection you can even compile fairly normal C programs on there. 03:40:30 zzo38: No. 03:40:35 pikhq: IBM is kind of infamous in the C++ community for, when C++11 was being standardized and removal of trigraphs being suggeted, going "sorry guys, we suck and all, but we use them" 03:40:59 committee members are pushing for them to die by C++17 though. hopefully they succeed 03:41:09 TeX has an internal conversion table so that it can use ASCII internally and can still be used on non-ASCII computers. 03:41:22 Sadly it's unlikely. IBM mainframes are still going to use EBCDIC then. 03:41:39 pikhq: yes, but maybe they can be convinced to switch to digraphs 03:41:39 And there's just about no way IBM's going to actually deploy UTF-EBCDIC which would make me honestly rather happy. 03:41:45 Oh, sure. 03:41:54 That's a much easier selling point. 03:41:58 or basically told "at this point we don't actually care what you do. you're welcome to run trigraphs in your local compilers, we won't standardize them though" 03:42:07 And digraphs aren't utterly god damned insane. :P 03:42:11 IBM can't unilaterally block their removal 03:42:16 Although you might have to change the category codes in your program in order to get your file to work 03:42:29 I do wish they'd deploy UTF-EBCDIC though. 03:42:37 It'd make certain parts of my day job much easier. 03:43:02 pikhq: wait. your day job? 03:43:12 So, at least TeX can still be used even if other things don't work. 03:43:33 coppro: Some damned bastard client went "yeah, yeah we like your stuff but can it work with mainframes?" 03:44:03 ... long story short I've actually written a COBOL struct parser. 03:44:42 oh god 03:45:12 pikhq: You can try using the way TeX does; it can use ASCII without implementing Unicode. 03:45:19 Honestly the hardest part was just teasing out EBNF for it. 03:45:20 zzo38: that does not work 03:45:26 zzo38: Because the native encoding is EBDIC 03:45:37 IBM mainframe people have not heard of BNF of any sort. 03:45:45 And I mean *any* sort. 03:46:02 The actual damned spec gives vague syntax diagrams. :( 03:46:22 coppro: TeX can do it anyways; the program will convert everything so that it can use ASCII regardless of what the native encoding is. It also has a \catcode command and ^^ notations so that you can still work it even if some characters are missing on your computer. 03:46:37 zzo38: he's not dealing with internal stuff though 03:46:44 he needs to interact with the world around him 03:47:28 Well, yes, you convert out of ASCII format when making output, and convert into ASCII format when receiving the input. 03:47:31 Yeah. I'm on a stupid powerful Linux box that's got a dumb ass mainframe serializing data at it that's only described by a bit of COBOL source. 03:49:42 Even Z-machine codes, even though they are ASCII internally, can be used on non-ASCII computers. 03:50:10 note to self, do not try to be clever with strncmp, you are an idiot 03:50:30 [wiki] [[Bueue]] http://esolangs.org/w/index.php?diff=40555&oldid=40499 * Oerjan * (+19) /* Computational Class */ Some proof-reading 03:51:01 be more specific 03:54:34 -!- conehead has joined. 03:54:36 about cobol? 03:56:40 zzo38: pikhq's problem is the lack of a decent unicode encoding for him to export/import to/from 04:02:29 Another alternative would be to use external programs to do the conversions 04:03:00 EBCDIC is no good, and UTF-EBCDIC is also no good. 04:04:03 what the hell is wrong with android apps that force landscape mode and refuse to use reversed landscape 04:04:23 polarity warning 04:05:26 "reversed landscape"? 04:05:40 is that rotated 90 degrees the other way? 04:05:47 yes. 04:05:48 180 04:05:54 ah, yes 04:05:55 from portrait, I mean 04:10:25 [wiki] [[JSFuck]] M http://esolangs.org/w/index.php?diff=40556&oldid=40513 * Oerjan * (+10) Small fixes 04:10:28 myname: they are probably configured lazily to work best for phones with hardware keybaords 04:10:57 it's fucking annoying if my phone is charging 04:11:10 I have seen some Android which have a switch to make it to turn or not turn 04:11:27 yes, but that enables or disables turning in general 04:11:39 (on apps that don't force) 04:11:46 Yes, I know, it doesn't change software that doesn't ordinarily turn 04:12:15 also, it does not work in this case 04:14:38 -!- shikhout has quit (Ping timeout: 250 seconds). 04:14:41 [wiki] [[Object oriented thue]] M http://esolangs.org/w/index.php?diff=40557&oldid=40548 * Oerjan * (+8) /* stdfile */ Remove redundant lines 04:18:02 -!- ais523 has quit (Remote host closed the connection). 04:18:17 -!- ais523 has joined. 04:23:02 `! c int x = 127.0.0.1; 04:23:18 cat: x: No such file or directory \ Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporar 04:23:25 hmm 04:24:58 -!- Jafet has joined. 04:29:41 [wiki] [[Brainflow]] http://esolangs.org/w/index.php?diff=40558&oldid=40528 * Oerjan * (-207) Proofreading 04:37:19 -!- copumpkin has joined. 04:39:23 [wiki] [[Mindcrush]] http://esolangs.org/w/index.php?diff=40559&oldid=40538 * Oerjan * (+88) Proofread 04:44:46 this is fun, I've already got to write things like "b c = (b){ c.c} ;" 04:45:02 might have to remove some of the whitespace in that, depending on how length limits go 04:45:09 may be that I hit the whitespace limit before the non-whitespace limit 04:48:13 oh, they changed it 04:48:23 total 4096, non-whitespace 2053 04:50:01 the IOCCC people have really gone overboard with jokes in the rules and guidelines this time 04:50:09 | This line has a change mark at the beginning. 04:57:02 how does (b){c.c} parse, exactly 04:57:02 c.c.c 04:57:02 c.c 04:57:26 why did it not do that earlier... eh. 05:01:10 -!- Sorella has joined. 05:01:34 Bike: here, b is a typedef for a struct 05:01:49 so it parses as (struct struct_tag){object.field} 05:02:10 i guess i don't know what the {} part means. 05:02:12 -!- Sorella has quit (Changing host). 05:02:12 -!- Sorella has joined. 05:02:25 literal... something? array? 05:03:05 ais523: heh, are you trying to make an IOCCC entry? 05:03:27 lifthrasiir: yes 05:03:33 Bike: struct literal, in this case 05:03:37 I don't have any good idea this time 05:03:52 I'm not sure how much I should talk about my idea, in case someone steals it and thus reduces my chance of winning 05:03:56 i thought there should be a type, for some reason, but that doesn't really make sense 05:03:59 otoh it's probably silly to worry about theft of IOCC entry ideas 05:04:16 lifthrasiir: you can make use of the fact that "and", "or", etc., count as 1 letter + the reset of the word in whitespace 05:04:21 because they're in 05:04:29 I have a strong feeling that this loophole was placed in there intentionally 05:04:33 *IOCCC 05:04:34 and some _* reserved words. 05:04:38 (afaik) 05:04:45 yes but you can't use those as variables in any version of C 05:05:16 do judges use the most recent version of C for every entry? 05:05:18 is there some gdb command to keep steppin until you get back to some frame 05:05:39 fin? 05:06:10 thanks yeah 05:06:47 -!- [1]AndoDaan has joined. 05:08:14 -!- TieSoul has joined. 05:08:45 -!- AndoDaan has quit (Ping timeout: 260 seconds). 05:09:05 -!- [1]AndoDaan has changed nick to AndoDaan. 05:33:56 OK, I guess I'm going to have to ask for help 05:34:10 can anyone figure out any way in which an integer constant expression could have a value outside the range of its own type, without invoking UB? 05:34:56 because I'm stumped 05:35:16 the closest I've got is -1/INT_MIN, but gcc isn't acting as expected on it 05:39:21 ooh, sizeof(long[SIZE_MAX]) seems to work, but I'm worried that that's UB in its own right 05:42:42 /dev/stdin:1:1: error: ‘auto’ in file-scope empty declaration 05:42:49 oh well, at least I'm coming across errors I've never seen before 05:42:54 and probably none of you have either 05:44:55 Why would -1/INT_MIN have a value outside int instead of just 0? 05:45:24 oh, whoop 05:45:24 ais523: hmm, what do you mean "outside the range of its own type" 05:45:26 *whoops 05:45:29 needs to be INT_MIN/-1 05:45:43 oh, nvm 05:45:45 hmm 05:45:47 coppro: say, an expression of type of int, that evaluates to something of type int, with no UB involved 05:46:24 INT_MIN/-1 presumably involves UB due to signed integer overflow. 05:46:34 yes 05:46:43 however, I got the warning I was aiming for: /dev/stdin:2:1: warning: overflow in constant expression [-Woverflow] 05:46:52 not convinced that's a no-UB way to manage it, though 05:47:31 that said, it seems basically impossible that there's a way to get an out of range value without UB, because signed overflow is UB and unsigned overflow wraps 05:47:42 and float overflow saturates at infinity 05:48:12 yes 05:48:14 [wiki] [[Mang]] http://esolangs.org/w/index.php?diff=40560&oldid=40549 * Oerjan * (+5) fmt, sp 05:48:34 ais523: have you abused trigraphs enough yet? 05:48:40 Recently I learned: having INT_MIN with a larger absolute value than INT_MAX is not equivalent to having a two's-complement representation for signed integers: it's allowed also for two's-complement systems to reserve the one value (sign bit 1, other bits 0) as a trap representation. 05:48:49 coppro: trigraph abuse is effectively banned this year 05:48:54 they didn't say anything about /digraph/ abuse, though 05:49:02 so maybe I'll use some of that 05:49:45 are digraphs in C? 05:49:52 yes, but not C89 05:49:54 I think they're C99 05:49:58 also where did they effectively ban trigraphs? 05:50:14 guidelines, they say they trigraph-preprocess source pretty much before looking at it 05:50:46 ais523: C95, actually. 05:50:48 ah ok 05:51:23 hmm 05:51:31 fizzie: fair enough, that means they're also C99 05:51:35 which is what I'm targeting 05:51:39 I think my favourite objuscated program I've ever seen was that perl script that played game of life with itself 05:51:48 because a) it has the best-quality draft, b) it's smaller than C11 05:51:55 [wiki] [[EsoInterpreters]] http://esolangs.org/w/index.php?diff=40561&oldid=40552 * Oerjan * (-548) Undo revision 40552 by [[Special:Contributions/Quintopia|Quintopia]] ([[User talk:Quintopia|talk]]) That's a compiler not an interpreter 05:53:21 actually does anyone know where to find that life game? 05:53:44 int main(void) { auto auto int x; } 05:53:49 yet another error message I've never seen before 05:53:52 I guess, because nobody ever uses auto 05:54:02 What is the error message? 05:54:28 duplicate 'auto' 05:54:29 I've had [warning: function definition declared 'auto'] in my candide log. 05:54:47 For auto int f(int x) { return x; } apparently. 05:55:08 who writes such a thing? 05:55:12 other than me, I mean 05:57:48 There was something I thought was a illogical corner case in the standard, though upon closer reading it was consistent after all. Something involving storage-class specifiers for a function, but there was some rule forbidding them after all, just not where I was expecting. 05:59:39 no stack allocated functions, huh? rough. 06:00:31 fizzie: is that for C, or C++ before C++11, or for C++11? 06:00:44 I think they might differ in handling "auto" 06:00:54 For C. 06:01:10 oh well, think I found my first gcc bug doing this 06:01:15 I won't report it until after the IOCCC 06:01:19 (If you type "for C" with the left hand offset by one, you get "got V".) 06:01:27 ais523: nice 06:01:59 nope, it was a typo :-( 06:02:02 I think I have one gcc bug found so far, not counting back ten years ago when g++ 2.something was so unstable compiling anything could segfault 06:02:08 aww! 06:02:15 try it in clang! 06:02:33 the ioccc judges said in the guidelines they prefer clang (and portable code of course) 06:02:35 SMITE seems educational, if learning about mythology is your thing 06:10:26 here's the crazy bug I reported => https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59704 06:12:48 i agree, this is crazy 06:12:55 why did you want to do this 06:15:35 Bike: a moment 06:17:17 (v-v)'s getting optimized into 0, which is being interpreted as nullptr? 06:17:23 I can easily imagine that bug happening 06:17:56 in here Jens Gustedt claims that he can recognize compile time constants in portable C, which is useful for some macro hacks: https://gustedt.wordpress.com/2013/08/22/testing-compile-time-constness-and-null-pointers-with-c11s-_generic/ 06:18:12 Why would anyone want to attach candles while underwater? 06:18:17 for that he subtracts the number from itself and checks if it converts to a null pointer, 06:18:31 Sgeo: i suppose they just have a burning desire 06:18:33 Sgeo: didn't /you/ fix that bug? 06:18:35 he also claims he can't do this in C++, but I claimed I can do it in _old_ c++, 06:18:43 and tried to write a proof of concept, 06:18:59 ais523: yes. I'm being silly with the "why did you want to do this" for something unrelated 06:19:04 and I could write one, but can't make it reliable, for it seems to depend on the optimizations gcc does, which it shouldn't, 06:19:08 because of that bug. 06:19:22 I have no idea which scenario is actually more reasonable 06:19:31 `! c static int s; extern inline int f() {s=1;} 06:19:43 by my reading, that program has a mandatory warning 06:19:46 cat: int: No such file or directory \ Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource tempor 06:19:47 I actually have a working version, but as I also have a verion that should work but doesn't, my version could also break in the future unless they fix this bug consistently. 06:21:01 `! c int main () { printf("hm"); } 06:21:16 now what 06:21:17 cat: main: No such file or directory \ Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource tempo 06:21:29 ais523: i have a hunch `! c isn't working 06:21:47 ditto 06:22:19 `url interp 06:22:19 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/interp 06:22:49 that didn't seem to exist 06:23:31 oh wait duh 06:24:24 `! perl print "hi" 06:24:25 ​/hackenv/bin/!: 4: exec: ibin/perl: not found 06:24:44 okay, so it is isnane. good to know. 06:25:02 `run ln bin/perl-e ibin/perl 06:25:04 No output. 06:25:06 `! perl print "hi" 06:25:07 hi 06:25:12 one down 06:26:34 `which interp_file 06:26:35 No output. 06:27:48 This could mean not everyone is allowed to launch a website, but that a license would be required, for example. 06:29:17 mroman_: what? is that a reply to something? I don't get the context 06:29:32 is that related to attaching the candles underwater? 06:31:55 -!- MoALTz has quit (Quit: Leaving). 06:32:22 `! c printf("test"); 06:32:27 Why are you attaching candles underwater? Won't the fire go out? 06:32:35 `echo hi 06:32:36 hi 06:32:38 Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 06:34:34 zzo38: there was a bug 06:34:39 the fire should go out, but it didn't 06:34:42 Sgeo: fixed the bug 06:36:45 `run echo 'int main () { printf("hm"); }' >test.c 06:36:46 No output. 06:36:51 `cat test.c 06:36:51 int main () { printf("hm"); } 06:37:14 b_jonas: that's a quote from slashdot 06:37:24 `run ./interps/gcccomp/gcccomp &1 06:37:40 cat: : No such file or directory \ Does not compile. \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporari 06:40:08 -!- int-e has quit (Ping timeout: 260 seconds). 06:40:15 -!- int-e has joined. 06:40:22 -!- conehead has quit (Quit: Computer has gone to sleep). 06:41:39 `run ./interps/gcccomp/gcccomp c &1 06:41:55 cat: : No such file or directory \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 06:42:53 zzo38: attaching unlit candles to the candelabrum. When underwater, would complain about being unable to light stuff under water, despite most people being able to attach things without setting them aflame 06:43:32 wat 06:44:21 myname: are you able to attach things to other things without setting things aflame? 06:44:52 `run ./interps/gcccomp/gcccomp c test.c 2>&1 06:45:08 ​./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 06:45:22 `uptime 06:45:22 ​ 06:45:19 up 0 min, 0 users, load average: 0.00, 0.00, 0.00 06:45:32 Sgeo: i do think so 06:45:40 `gcc test.c 06:45:42 test.c: In function ‘main’: \ test.c:1:15: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default] 06:45:55 `ls 06:45:56 ​:-( \ a.out \ bdsmreclist \ bin \ binpipes \ canary \ cat \ complaints \ crunchfuck \ :-D \ dc \ dog \ etc \ factor \ head \ hej \ hello \ hello.c \ ibin \ interps \ lib \ moop.txt \ paste \ pref \ prefs \ quines \ quotes \ share \ src \ test.c \ Wierd \ wisdom \ wisdom.pdf 06:45:57 myname: this makes you smarter than a 3.4.3 NetHack character 06:46:02 `./a.out 06:46:03 hm 06:46:37 haha, Ubuntu are updating bash /again/ 06:46:41 well, if it's a /oFire 06:46:51 seems like they found another bug, possibly unrelated to the other two? 06:48:20 nethack is the only place i know where WoW is something other than a n mmmorpg 06:48:46 `printenv GCC 06:48:47 No output. 06:50:25 `run env GCC=gcc ./interps/gcccomp/gcccomp c test.c 2>&1 06:50:41 ​./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 06:52:33 int f()() 06:52:38 wow, there are amazing things you can do in C 06:52:56 if you don't worry about it compiling 06:56:11 -!- [1]AndoDaan has joined. 06:56:35 `! cxx printf("test"); 06:56:59 ​./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 06:57:15 `g++ test.c 06:57:16 test.c: In function ‘int main()’: \ test.c:1:26: error: ‘printf’ was not declared in this scope 06:58:18 `run (echo '#include `; echo 'int main () { printf("hm"); }') >test.c 06:58:18 bash: -c: line 0: syntax error near unexpected token `(' \ bash: -c: line 0: `(echo '#include `; echo 'int main () { printf("hm"); }') >test.c' 06:58:27 `run (echo '#include ; echo 'int main () { printf("hm"); }') >test.c 06:58:28 bash: -c: line 0: syntax error near unexpected token `(' \ bash: -c: line 0: `(echo '#include ; echo 'int main () { printf("hm"); }') >test.c' 06:58:41 `run (echo '#include '; echo 'int main () { printf("hm"); }') >test.c 06:58:43 No output. 06:58:47 `gcc test.c 06:58:48 test.c:1:17: fatal error: stdio: No such file or directory \ compilation terminated. 06:58:57 -!- AndoDaan has quit (Ping timeout: 245 seconds). 06:58:59 -!- [1]AndoDaan has changed nick to AndoDaan. 06:59:07 gah i don't remember C 06:59:34 `run (echo '#include '; echo 'int main () { printf("hm"); }') >test.c 06:59:36 No output. 06:59:38 `gcc test.c 06:59:38 No output. 06:59:44 `c++ test.c 06:59:46 No output. 07:00:46 `run ./interps/gcccomp/gcccomp c++ test.c 2>&1 07:00:58 zzo38: you don't light them underwater, just attach the candles 07:01:02 ​./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: retry: No child processes \ ./interps/gcccomp/gcccomp: fork: Resource temporarily unavailable 07:01:30 ok there must just be something _wrong_ with that gcccomp 07:01:35 `cat test.c 07:01:36 ​#include \ int main () { printf("hm"); } 07:01:41 ais523: no, they're just fixing the one bug properly, as opposed to a quick emergency fix 07:01:44 `run gcc -o test test.c 07:01:46 No output. 07:01:50 `run ./test 07:01:51 hm 07:01:59 mroman_: the program is fine. 07:02:12 i'm trying to fix `! c 07:03:07 -!- Sorella has quit (Ping timeout: 245 seconds). 07:04:09 `run gcc -x c test.c -o /tmp/compiled.$$ 2> /dev/null 07:04:10 No output. 07:04:28 I'd look into resource limits if I were you. 07:04:36 There's a suspicious ulimit -u 3 after the compilation in gcccomp. 07:04:47 hm... 07:04:56 Possibly HackEgo's machinery involves more user processes than EgoBot's did. 07:04:57 ok let's try removing that 07:05:39 `run sed -i 's/ulimit/#ulimit/' interps/gcccomp/gcccomp 07:05:40 No output. 07:05:59 `run ./interps/gcccomp/gcccomp c test.c 2>&1 07:06:00 No output. 07:06:02 hah 07:06:22 `! c++ printf("hm"); 07:06:23 ​/hackenv/bin/!: 4: exec: ibin/c++: not found 07:06:30 `! cxx printf("hm"); 07:06:31 hm 07:06:39 :) 07:06:44 `! c printf("hm"); 07:06:44 Does not compile. 07:06:54 thought so, i found another bug 07:07:14 `run sed -i 's/1/0/' ibin/c 07:07:15 No output. 07:07:23 `! c printf("hm"); 07:07:24 Does not compile. 07:07:26 oops 07:07:39 `cat ibin/c 07:07:39 ​#!/bin/sh \ . lib/interp \ interp_file "./interps/gcccomp/gcccomp $0" 07:08:36 `run sed -i 's/[$]0/c/' ibin/c 07:08:37 No output. 07:08:43 `! c printf("hm"); 07:08:44 hm 07:08:47 yay! 07:09:20 i assume HackEgo's own limits will take care of the missing ulimit 07:09:41 `! c int main () { printf("hm"); } 07:09:42 No output. 07:09:47 oops 07:11:19 `cat test.c 07:11:20 ​#include \ int main () { printf("hm"); } 07:11:35 `run echo 'int main () { printf("hm"); }' >test.c 07:11:36 No output. 07:11:40 `gcc test.c 07:11:42 test.c: In function ‘main’: \ test.c:1:15: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default] 07:12:55 Perhaps we should just get candide here, it's got the best C-running capabilities I've seen in freenode. 07:13:05 Though I suppose our DIY tradition would balk at that. 07:13:07 hmph 07:13:20 well it's working _somewhat_ 07:13:44 `! c int main () { puts("hi\n"); } 07:13:45 Does not compile. 07:14:06 Yes, but it doesn't have a fancy prelude.h that includes all standard headers by default (except not if you specify custom includes), and a built-in gdb("foo") command to do stuff, and a built-in "pretty-print all local variables if execution ends with no output" function, and ... 07:15:03 And it "intelligently" does the main-wrapper and picks up functions, so that you can write int f(void) { return 42; } int x = f(); and it wraps a main around the latter. 07:15:19 Of course there's so much magic there that doing something very strange (not unlikely here?) can occasionally confuse it. 07:15:59 heh 07:18:29 `! java java.lang.System.out.println("hi"); 07:18:29 ​/hackenv/bin/!: 4: exec: ibin/java: not found 07:18:37 wat 07:18:53 You don't have to type "java.lang.", it's imported by default. 07:19:34 `run sed 's/p c/p java/' ibin/c >ibin/java 07:19:35 No output. 07:19:44 `! java System.out.println("hi"); 07:19:44 ​/hackenv/bin/!: 4: exec: ibin/java: Permission denied 07:19:57 `run chmod +x ibin/java 07:19:58 No output. 07:19:59 `! java System.out.println("hi"); 07:20:15 hi 07:20:15 Ooh, gcj. 07:20:26 Also only took 15 secunds to run. 07:21:14 perhaps there's a reason Gregor had disabled it :P 07:21:31 `java -version 07:21:31 java version "1.6.0_27" \ OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-1) \ OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) 07:21:38 1.6! So old! 07:26:31 `! java System.out.println(Main.class); 07:26:34 class Main 07:26:49 That's less slow, I guess it's in disk cache for now. 07:27:59 -!- drdanmaku has quit. 07:35:49 this all should also have got `! asm working 07:36:09 `! asm mov eax, 0 07:36:10 Does not compile. 07:36:21 `! asm mov %eax, %ebp 07:36:21 Does not compile. 07:36:40 `run vim 07:36:41 bash: vim: command not found 07:36:43 `run vi 07:36:44 WELL IN THEORY 07:36:55 `echa bar 07:36:55 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: echa: not found 07:36:59 `echo bar 07:37:00 bar 07:37:01 it uses gcc as the assembler, like the other gcccomp programs 07:37:10 `run vi & 07:37:12 `ps axuw 07:37:12 Vim: Warning: Output is not to a terminal \ Vim: Warning: Input is not from a terminal \ [1;24r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[2;1H[1m[34m~ [3;1H~ [4;1H~ 07:37:13 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND \ 0 1 0.0 0.1 1012 272 ? S 07:37 0:00 /init \ 0 2 0.0 0.0 0 0 ? S 07:37 0:00 [kthreadd] \ 0 3 0.0 0.0 0 0 ? S 07:37 0:00 [ksoftirqd/0] \ 0 4 0.0 0.0 0 0 ? 07:37:13 Vim: Warning: Output is not to a terminal \ [1;24r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[2;1H[1m[34m~ [3;1H~ [4;1H~ 07:37:25 it doesn't have a vim, but vi is actually vim? 07:37:31 what sort of setup is that? 07:37:35 `ps axuw 07:37:35 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND \ 0 1 0.0 0.1 1012 272 ? S 07:37 0:00 /init \ 0 2 0.0 0.0 0 0 ? S 07:37 0:00 [kthreadd] \ 0 3 0.0 0.0 0 0 ? S 07:37 0:00 [ksoftirqd/0] \ 0 4 0.0 0.0 0 0 ? 07:38:11 `! c prinf(); 07:38:13 Does not compile. 07:38:19 HEAD='.globl main; main: pushq %rbp; movq %rsp, %rbp;' TAIL='movl $0, %eax; leave; ret;' 07:38:20 `! c printf(); 07:38:21 Does not compile. 07:38:24 what 07:38:27 `! c printf("a"); 07:38:27 a 07:38:33 `! c printf(lib64a()); 07:38:34 Does not compile. 07:38:39 `! c printf(printf); 07:38:40 ​% 07:38:48 the `! c is a little flaky 07:39:02 oh wait. it includes headers? 07:39:07 i can't quite recall if it worked any better on EgoBot. 07:39:10 then printf(); doesn't work 07:39:31 mroman_: it tries first with headers, then if that doesn't compile, without (but then you need a whole main) 07:39:45 also, i couldn't get a printf in main to work 07:39:51 um 07:40:06 HEAD='.globl main; main: pushq %rbp; movq %rsp, %rbp;' TAIL='movl $0, %eax; leave; ret;' is what it wraps asm in 07:40:26 although that too is tried without if it fails. 07:41:59 `! asm mov %eax, %ebp; 07:42:00 ​./interps/gcccomp/gcccomp: line 52: 307 Segmentation fault /tmp/compiled.$$ 07:43:10 well that compiled :P 07:43:32 mroman_: it seems to like a trailing ; 07:44:50 `! asm .globl main; main: pushq %rbp; movq %rsp, %rbp; mov %eax, %ebp; movl $0, %eax; leave; ret; 07:44:51 Does not compile. 07:44:56 hm 07:45:16 i just wrapped it inside the headers it _should_ use anyhow... 07:46:56 It ought to put those error messages somewhere, and dump them out when the result is "does not compile". 07:47:55 i think Gregor didn't want EgoBot to be that verbose. 07:47:56 Maybe 2> /dev/null to 2> /tmp/compile-errors.$$ and then (echo -n 'Does not compile: '; cat /tmp/compile-errors.$$) in the error message. 07:48:47 fizzie: well the problem here is that since it tries two different ways of compiling, at least one of them _will_ be meaningless 07:49:07 and so if it fails altogether you have two sets of error messages 07:49:15 >>, then. :p 07:49:24 although right now i'm wondering why the whole-program version seems to fail. 07:52:50 `run echo '.globl main; main: pushq %rbp; movq %rsp, %rbp; mov %eax, %ebp; movl $0, %eax; leave; ret;' | gcc -x assembler - -o /tmp/dummy 07:52:51 No output. 07:52:58 That should work out right. 07:53:08 The wrapped version of that should fail, of course. 07:53:25 so i think there's something generally failing with the attempt to get the non-wrapping working 07:54:36 `run sed -i '47iecho "$GCC" -x "$LANG" "$2" $FLAGS -o /tmp/compiled.$$ 2> /dev/null' interps/gcccomp/gcccomp 07:54:37 No output. 07:55:01 -!- digitalc1ld has changed nick to digitalcold. 07:55:03 um 07:55:06 `revert 07:55:07 Done. 07:55:19 `run sed -i '47iecho "$GCC" -x "$LANG" "$2" $FLAGS -o /tmp/compiled.$$' interps/gcccomp/gcccomp 07:55:20 No output. 07:55:36 "Does not compile" isn't a useful message for asm 07:55:44 `! asm .globl main; main: pushq %rbp; movq %rsp, %rbp; mov %eax, %ebp; movl $0, %eax; leave; ret; 07:55:45 gcc -x assembler /tmp/input.290 -o /tmp/compiled.299 \ Does not compile. 07:56:36 oh wait 07:57:22 How about just temporarily s|2> /dev/null||. 07:57:29 hm 07:57:48 `run sed -i '47d' interps/gcccomp/gcccomp 07:57:50 No output. 07:58:43 `run sed -i 's|2> /dev/null||' interps/gcccomp/gcccomp 07:58:45 No output. 07:59:01 The whole-program version has the wrong extension, but with -x $LANG that shouldn't matter. 07:59:06 `! asm .globl main; main: pushq %rbp; movq %rsp, %rbp; mov %eax, %ebp; movl $0, %eax; leave; ret; 07:59:07 ​/tmp/source.299.s: Assembler messages: \ /tmp/source.299.s:2: Error: symbol `main' is already defined \ /tmp/input.290: Assembler messages: \ /tmp/input.290: Warning: partial line at end of file ignored \ /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o: In function `_start': \ (.text+0x20): undefined reference to `main' \ coll 07:59:28 Ha. 07:59:32 "partial line at end of file ignored" 07:59:55 Perhaps it needs a forced newline at the end of the $2 file. 08:00:08 `! c int main () { printf("hm"); } 08:00:09 No output. 08:00:20 ... that didn't work either 08:00:35 `! c int main () { printf("hm"); }; printf("well"); 08:00:36 well 08:00:38 ic... 08:00:43 i suspected that 08:00:51 Right, it compiles just fine as the wrapped version. 08:01:06 `! c int main () { printf("hm"); }; main(); 08:01:07 hm 08:01:11 So silly. 08:01:15 :P 08:01:27 Thanks, nested functions. 08:01:40 `run thanks 'nested functions' # this still here? 08:01:40 Thanks, nested functions. Thested functions. 08:02:14 oh hm right maybe EgoBot always had an EOL at the end of things 08:02:32 in which case maybe this should be fixed in interp... 08:02:57 Just add \n in the printf, perhaps. 08:03:01 (The one in get_arg.) 08:03:19 oh 08:03:39 i didn't mean _that_ interp, but bin/interp 08:04:39 ok but if only asm has this problem so far... 08:05:06 Also explains why the trailing ; was needed for the wrapped version. 08:05:29 `revert 08:05:30 Done. 08:06:16 fizzie: um how so? 08:06:48 oerjan: If there's no newline in the $2 file, it will append the $TAIL directly. 08:07:04 oh 08:07:12 oerjan: So your movl %eax, %ebp with no terminating ; becomes movl %eax, %ebpmovl $0, %eax; leave; ret; 08:08:49 -!- olsner has quit (Quit: ZNC - http://znc.in). 08:09:43 `run sed -i '3s/1/1\\n/' bin/interp 08:09:44 No output. 08:10:07 hm wait that won't work 08:10:13 `revert 08:10:14 Done. 08:11:23 The difficulty of getting a newline in $ARG was why I suggested patching the printf in lib/interp. 08:12:02 oh right even a printf won't work 08:12:50 it's just that if there are other interpreters than those going via lib/interp that depend on this... 08:13:12 hm wait maybe they all do 08:13:26 If there was always a newline in EgoBot, they shouldn't mind. But who knows. 08:14:07 Oh, you mean, some might use the lib/interp facility. 08:14:12 Well, I guess that's always possible. 08:14:16 `ls ibin 08:14:16 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ java \ k \ kipple \ lambda \ lazyk \ linguine \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ trigger \ udage01 \ underload \ unlambda 08:14:26 bleh, I got pinged again 08:14:26 perl isn't showing up in the repository 08:14:37 ais523: what 08:14:43 I have a ping on "INTERCAL" 08:14:47 heh 08:14:50 it triggered earlier today in a channel other than #esoteric 08:14:55 so it's been quite worthwhile for me 08:15:00 well i checked a few esolangs in there, and they used lib/interp 08:15:17 so maybe it is the place to change 08:15:19 `run echo $(ls ibin | wc -l) vs $(grep interp_file ibin/* | wc -l) 08:15:20 43 vs 38 08:15:27 Well, maybe there's some that don't use it. 08:15:53 um 08:16:00 some might use interp_stdin instead 08:16:27 `run echo $(ls ibin | wc -l) vs $(grep interp_ ibin/* | wc -l) 08:16:27 `run for f in ibin/*; do if grep -q interp_ $f; then true; else echo $f; fi; done 08:16:27 43 vs 40 08:16:28 ibin/bf_txtgen \ ibin/k \ ibin/perl 08:16:37 Those don't have any "interp_" in it. 08:16:47 i just added perl as a link to perl-e, so no wonder :P 08:17:16 k is just a static echo '!"#$%^&* 0123456789' 08:17:21 I wonder what that's about. 08:17:32 actually bf_txtgen uses lib/interp too 08:17:40 Yes, it calls get_arg directly. 08:17:43 is k actually a language? 08:18:06 Though I don't think we'd really want a newline in the textgen string. 08:18:17 Incidentally, that used in fact to be a problem with EgoBot's bf_txtgen. 08:18:29 It force-fed in a newline; I ran it locally a couple of times to get rid of that. 08:18:37 But if we want to be bug-compatible... 08:18:39 oh right, I got stuck on 6.7.7p2, because I can't see how to create a non-block-scope typedef that defines a VLA, without also having a VLA somewhere it's not supposed to be 08:18:46 fizzie: huh :P 08:19:18 what scopes are typedefs legal in anyway? 08:21:07 Not in function parameter scope, because 6.7.6.3p2 and typedef is syntactically a storage class specifier. 08:21:18 [11:20:20] ,cc int f(typedef int q); 08:21:18 [11:20:22] fizzie: error: storage class specified for parameter 'q' 08:22:00 And only labels have function scope. 08:22:07 So I guess in block scope and file scope. 08:22:17 That covers all the four scopes there are. 08:25:21 `run sed -i '12s/s/s\\n/' lib/interp 08:25:22 No output. 08:26:02 `! asm .globl main; main: pushq %rbp; movq %rsp, %rbp; mov %eax, %ebp; movl $0, %eax; leave; ret; 08:26:03 ​./interps/gcccomp/gcccomp: line 52: 309 Segmentation fault /tmp/compiled.$$ 08:26:08 now that works 08:27:18 fizzie: right 08:27:19 i don't quite see how to avoid bf_txtgen doing it too without duplicating code 08:27:30 this is a problem, because 6.7.7p2 is thus entirely redundant 08:27:32 I'll leave it out 08:28:03 `! asm mov %eax, %ebp 08:28:04 ​./interps/gcccomp/gcccomp: line 52: 307 Segmentation fault /tmp/compiled.$$ 08:29:04 `! asm .globl main; main: pushq $0x00434241; movq %rsp,%rdi; call puts; popq %rdi; ret; 08:29:05 ABC 08:30:54 shachaf: are you omitting the frame pointer there? 08:31:35 You mean the whole push %rbp; mov %rsp,%rbp; business? 08:31:48 oerjan: Next, you can figure out why this doesn't work: 08:31:51 `! asm movq $msg, %rdi; xor %eax, %eax; call printf; jmp skip; msg: .asciz "hello wurld\n"; skip: 08:31:52 Does not compile. 08:31:54 `run printf "%s\n%s\n%s\n" '.globl main; main: pushq %rbp; movq %rsp, %rbp;' 'movq $msg, %rdi; xor %eax, %eax; call printf; jmp skip; msg: .asciz "hello wurld\n"; skip:' 'movl $0, %eax; leave; ret;' | gcc -x assembler - -o /tmp/x && /tmp/x 08:31:55 hello wurld 08:32:09 Those are exactly the HEAD and TAIL from gcccomp. 08:32:27 fizzie: Wait, is '.globl main; main:' included? 08:32:37 -!- Patashu has joined. 08:32:38 `run rm ibin/perl; cp ibin/c ibin/perl; sed -i 's/ c/ perl/' ibin/perl 08:32:39 shachaf: If it compiles with that; if not, then it's not. 08:32:39 No output. 08:32:46 `! perl print "hi" 08:32:47 Does not compile. 08:32:50 eek 08:32:59 shachaf: In other words, it's tried first with those wrappers, and then again "literally" if the wrapped version didn't compile. 08:33:11 oh wait duh 08:33:17 shachaf: I expect in your case the first attempt failed due to multiple definitions of main, and then the second attempt worked. 08:33:33 That explains the bizarre behavior I've been seeing. 08:33:35 `! asm pushq $0x00434241; movq %rsp,%rdi; call puts; popq %rdi 08:33:36 ABC 08:33:36 `run sed -i 's/".*/perl/' ibin/perl 08:33:38 No output. 08:33:40 `! perl print "hi" 08:33:41 hi 08:33:51 there you go, no perl also goes via the same system 08:33:54 *now 08:34:03 oerjan: But why doesn't my asm code work. :/ 08:34:22 the what 08:34:33 Should I repeat it? 08:34:42 `! asm movq $msg, %rdi; xor %eax, %eax; call printf; jmp skip; msg: .asciz "hello wurld\n"; skip: 08:34:42 Does not compile. 08:34:43 it printed ABC, is that not what it should? 08:34:49 `run printf "%s\n%s\n%s\n" '.globl main; main: pushq %rbp; movq %rsp, %rbp;' 'movq $msg, %rdi; xor %eax, %eax; call printf; jmp skip; msg: .asciz "hello wurld\n"; skip:' 'movl $0, %eax; leave; ret;' | gcc -x assembler - -o /tmp/x && /tmp/x 08:34:50 hello wurld 08:34:56 That wasn't my code, that was shachaf's. 08:35:04 oh 08:35:38 `! asm movq $msg, %rdi; xor %eax, %eax; call printf; jmp skip; msg: .asciz "hello wurld\\n"; skip: 08:35:39 hello wurld 08:35:41 hth 08:35:54 `cat ibin/perl 08:35:55 ​#!/bin/sh \ . lib/interp \ interp_file perl 08:36:01 It's not supposed to expand \n, is it? 08:36:11 Well, maybe it is. Who knows. 08:36:26 A better error message would be helpful. 08:36:29 Does make it easier for C preprocessor, like it is with `runc. 08:36:48 why not xor rax, rax? 08:37:01 Because xor eax, eax is shorter by one byte and does the same thing. 08:37:02 Those are the same, aren't they? 08:37:14 xor eax, eax clears the higher bits too? 08:37:17 mroman_: Yes. 08:37:19 Yes. 08:37:19 wtf 08:37:27 Seriously? 08:37:29 Yes. 08:37:33 That sounds broken 08:37:38 And the assemblers I've used add the (unnecessary) REX prefix if you write "xor rax, rax". 08:37:41 I'll stop answering because fizzie is faster. 08:37:55 xor al, al shouldn't clear the whole eax? 08:38:15 then xor eax, eax shouldn't clear the whole rax too 08:38:16 Yes, but that behavior didn't get extended to 64 bits. 08:38:18 "32-bit operands generate a 32-bit result, zero-extended to a 64-bit result in the 08:38:21 Such is x86. 08:38:21 destination general-purpose register. 08:38:37 "8-bit and 16-bit operands generate an 8-bit or 16-bit result. The upper 56 bits or 08:38:40 48 bits (respectively) of the destination general-purpose register are not 08:38:42 modified by the operation. 08:38:52 interesting. 08:39:09 there's no eal eah then? 08:39:17 No. 08:39:38 And there's no ah, bh, ch, dh if you are using a REX prefix, those access the low byte of edi, esi, ebp and esp. 08:39:46 There isn't even ah etc. for -- yes. 08:39:48 You can't do "mov r8b, ah" at all. 08:40:08 what's r8b? 08:40:13 Low byte of r8. 08:40:32 Also known as r8l. 08:40:45 (Intel used r8l .. r15l, AMD used r8b .. r15b.) 08:40:53 If you use that register too much you might get r8-limited. 08:40:53 hm 08:41:06 can you add al, ah on 8086? 08:41:13 ah nvm 08:41:15 sure you can 08:41:21 Yes, and on x86-64 too. 08:41:24 but it won't carry over 08:42:01 I haven't read much about x64 08:42:12 `! unlambda ```.h.\n.ii 08:42:12 No output. 08:42:14 besides rax, rbp etc. you have r1..r8? 08:42:20 mroman_: r8 .. r15. 08:42:24 `! unlambda ```.h.n.ii 08:42:25 hni 08:42:38 ok the expansion isn't happening for all interps 08:42:40 mroman_: And r0 .. r7 are aliases for rax, rbx, rcx, rdx, rsi, rdi, rbp, rsp if you want to be consistent. 08:43:14 is there rip? 08:43:14 (Probably not exactly in that order.) 08:43:18 Yes. 08:43:23 You can even finally use it for addressing. 08:43:29 lea rax, [rip+42] and so. 08:43:46 `run ibin/unlambda "```.h.\n.ii" 08:43:47 bash: -c: line 0: unexpected EOF while looking for matching ``' \ bash: -c: line 1: syntax error: unexpected end of file 08:43:50 No more "call next; next: pop rax" business. 08:44:00 so you can load data relative to the ip without using another register 08:44:08 That, too. 08:44:08 `run ibin/unlambda '```.h.'"\n.ii" 08:44:09 ​./interps/unlambda/unlambda.bin: file /tmp/input.290: parse error 08:44:25 `run ibin/unlambda '```.h.'"n.ii" 08:44:26 hni 08:44:41 `run echo '```.h.'"\n.ii" 08:44:42 ​```.h.\n.ii 08:44:48 I was wondering why I thought it was odd that that call was forward rather than backward. 08:44:56 But now I remember that you only do that to avoid 0 bytes. 08:45:00 although storing data in the instruction stream is probably not very good 08:45:27 `! asm leaq msg(%rip), %rdi; call puts; leave; ret; msg: .asciz "foo" 08:45:28 foo 08:45:38 `! c #include \nint main() { printf("hm"); } 08:45:39 No output. 08:45:42 darn 08:45:50 `! c #include \nint main() { printf("hm"); }; main () 08:45:50 No output. 08:46:06 It's reasonable enough to understand "msg(%rip)" as "the right displacement to reach msg from rip", not "literal value of symbol msg as an offset from rip". 08:46:29 why isn't it working for the one that could actually _use_ it :( 08:46:45 puts uses rdi? 08:46:48 oerjan: #include inside main()? 08:47:02 mroman_: x86-64 sysv calling convention puts arguments mostly in registers, starting from rdi. 08:47:14 The detailed rules are pretty complex, and involve classes. 08:47:32 (The Windows x64 calling convention is a lot simpler. Or at least a little bit simpler.) 08:48:35 SysV version would pass all the parameters of void f(int, int, int, int, int, int, float, float, float, float, float, float, float, float) in registers. 08:48:42 shachaf: i thought the #include should prevent it from compiling inside main. oh hm wait CPP doesn't work like that. 08:48:59 Windows x64 runs out of registers after void f(int, float, int, float), since it only uses four (IIRC), and leaves gaps. 08:49:06 oh well 08:49:14 `! underload (te\nst)S 08:49:14 Error: Unmatched ) 08:49:15 Wait, now I'm not sure what you're trying to do. 08:49:21 oh... 08:49:27 `! underload (test)S 08:49:28 testAttempt to execute unknown command 10 08:49:37 ...sheesh 08:49:49 ok that's one that cannot have a final newline. 08:50:40 void f(int a, float b, int c, float d) on Windows x64 would put a to rcx, b to xmm1, c to r8 and d to xmm3. The SysV abi packs in order of rdi, rsi, rdx, rcx, r8, r9 and xmm0 .. xmm7, and leaves no gaps. 08:52:38 `run echo 'double f(double a, double b) { return a + b; }' | gcc -mfpmath=387 -x c - -o - -S -O2 | paste 08:52:40 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.2318 08:53:11 Look at all that wrangling if you ask for x87 math but with ABI-mandated SSE registers for passing floats. 08:54:27 `run echo 'double f(double a, double b) { return a + b; }' | gcc -x c - -o - -S -O3 | paste 08:54:29 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.8444 08:54:36 `run du -hs paste 08:54:37 69Mpaste 08:54:43 So much stuff. 08:54:57 hm i think i'll do something else instead. 08:55:34 oh wow, does this rule seriously only apply to # followed by formfeed and # followed by vertical tab? 08:55:36 I think it does 08:55:39 `run echo 'double f(double a, int c, double b) { return c*(a + b)/c; }' | gcc -x c - -o - -S -O3 | paste 08:55:41 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/paste/paste.307 08:55:44 a new "rule nobody will ever hit by mistake" discovery 08:55:52 `undo 4924 08:55:53 can't find file to patch at input line 4 \ Perhaps you should have used the -p or --strip option? \ The text leading up to this was: \ -------------------------- \ |diff -r c9619115046f -r d6d2d7192923 lib/interp \ |--- a/lib/interpMon Sep 29 08:10:12 2014 +0000 \ |+++ b/lib/interpMon Sep 29 08:25:19 2014 +0000 \ -------------------------- \ File 08:55:59 Heh. 08:56:07 why the fuck isn't `undo working :( 08:56:16 I guess it can't optimise c*x/c away 08:56:19 do to rounding or stuff 08:56:42 /dev/stdin:1:2: warning: form feed in preprocessing directive [enabled by default] 08:56:56 how do you type a vertical tab anyway? 08:58:06 `run sed '12s/\\n//' lib/interp 08:58:06 ​#!/bin/sh \ \ export I_CMD="$0" \ export I_ARG="$1" \ export ARG_FILE="/tmp/input.$$" \ \ get_arg() { \ #if expr "$I_ARG" : "http://" > /dev/null \ #then \ # wget $WGET_OPTIONS "$I_ARG" -O "$ARG_FILE" \ #else \ printf '%s' "$I_ARG" > "$ARG_FILE" \ #fi \ } \ \ clean_arg() { \ rm -f "$ARG_FILE" \ } \ \ interp 08:58:22 `run sed -i '12s/\\n//' lib/interp 08:58:24 No output. 08:59:00 `! perl print "test" 08:59:00 test 08:59:09 -!- Patashu has quit (Remote host closed the connection). 08:59:20 err, anyone know how to write a cast with no identifiers (not even keywords)? 08:59:24 or is this another unbreakable rule? 08:59:38 oh, I can just use a float constant 08:59:48 `run echo test; echo; echo test 08:59:49 test \ \ test 09:00:17 ais523: This for the "breaks every rule" program you mentioned? 09:00:18 -!- Patashu has joined. 09:00:43 `run sed -i '3iecho >>"$2"' interps/gcccomp/gcccomp 09:00:44 No output. 09:01:04 @oeis 1 2 3 4 09:01:19 fizzie: yes 09:01:24 `! c printf("test"); 09:01:24 @oeis 9,249,17,2,157,116 09:01:25 test 09:01:26 /dev/stdin:1:14: fatal error: //: No such file or directory 09:01:27 -!- AndoDaan has quit (Ping timeout: 245 seconds). 09:01:27 compilation terminated. 09:01:29 The bug is not reproducible, so it is likely a hardware or OS problem. 09:01:30 hu 09:02:08 oeis.org seems to have trouble searching also. 09:02:12 I guess I'm going to have to ban this "#include that doesn't find a file" constraint 09:02:18 `! asm pushq $0x00434241; movq %rsp,%rdi; call puts; popq %rdi 09:02:19 ABC 09:02:19 because it halts the compilation 09:02:24 -!- Sorella has joined. 09:02:27 `! underload (test)S 09:02:27 test 09:02:48 there, now it doesn't affect anything but the gcccomp interpreters 09:02:57 what language is that underload written in? 09:03:04 Plugin `oeis' failed with: <> 09:03:13 -!- Sorella has quit (Changing host). 09:03:13 -!- Sorella has joined. 09:03:27 ais523: C. 09:03:38 I remember we used to have all our Underload interps being in esolangs 09:03:45 EgoBot's was BF, Fungot's was Befunge 09:03:54 fungot's still is. 09:03:57 ... 09:04:05 Oh, I've probably hit the limit. 09:04:40 ^show 09:04:40 echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble asc ord prefixes tmp test celebrate wiki chr ha rainbow rainbow2 welcome me tell eval elikoski list ping def a thanks tmp2 lucknumber bf OnePlusPlease OneMinusPlease WhatIsAfterThis WhatIsAfterThis4 meow unmeow (+)*32 (+)7 "7+" +7 8ball eee 7+ mhmm: QuestionMark 09:04:47 what limit? 09:04:54 The "only replies four times" one. 09:05:05 There's also still the bf ul in fungot, you just can't access it because it's shadowed by the built-in command. 09:05:18 fungot: reset the limit for fizzie 09:05:18 ais523: no no i'm 09:05:29 Which is probably for the best, because the time limits of ^bf meant it couldn't quite execute more than about (foo)S. 09:05:44 fungot: You're what? 09:05:45 fizzie: and there was too much war coverage on like c._n._n. ' cause it's hard to know 09:06:08 fungot: That's not how you write out abbreviations. 09:06:08 fizzie: oh really what type of game you couldn't play jeopardy and 09:06:36 Sounds vaguely insulting. 09:08:18 int main(void) { int __VA_ARGS__; } 09:08:25 yet another rule that's unlikely to be triggered by mistake 09:08:44 What are you looking for? 09:08:53 `! c int main(void ) { return __VA_ARGS__; } 09:08:54 Does not compile. 09:10:03 shachaf: an error 09:10:24 or at least a warning 09:14:37 -!- Sorella has quit (Ping timeout: 260 seconds). 09:20:36 OK, I've finished looking through the mandatory warnings 09:22:02 one I couldn't find an example; two cannot happen in a syntactically correct program; one is entirely redundant to another; one I can't figure out what it means; one I couldn't get gcc to error out on but think it may be at fault; and the rest, I reproduced 09:24:07 -!- ais523 has quit (Read error: Connection reset by peer). 09:24:10 -!- callforjudgement has joined. 09:25:42 -!- ais523 has joined. 09:26:28 -!- AndoDaan has joined. 09:28:43 -!- callforjudgement has quit (Ping timeout: 272 seconds). 09:31:23 `! c typedef a int; a a; 09:31:24 Does not compile. 09:31:30 `! c typedef a int; a main(){} 09:31:31 Does not compile. 09:31:36 `! c typedef int a; a main(){} 09:31:37 No output. 09:31:45 `! c typedef int a; a main(a a){a a;} 09:31:45 Does not compile. 09:31:54 `! c typedef int a; a main(a i){a a;} 09:31:55 No output. 09:32:06 `! c typedef int a; a main(a i){a a;puts((a)a);} 09:32:07 Does not compile. 09:32:14 `! c typedef int a; a main(a i){a a;puts(a);} 09:32:15 No output. 09:32:25 `! c typedef int a; a main(a i){a a;puts(a);puts("a");} 09:32:26 No output. 09:32:28 weidr 09:32:39 `! c typedef int a; a main(a i, char* argv){a a;puts(a);puts("a");} 09:32:40 No output. 09:32:47 `! c typedef int a; a main(){a a;puts(a);puts("a");} 09:32:48 No output. 09:33:41 `! c typedef int a; a main(){a a;puts("a");} 09:33:42 No output. 09:34:05 typedef int a; a main(){a a;puts("a");} should actually write a though 09:34:15 puts(a) might segfault 09:34:39 `! c typedef int a; int main(){a a;puts("a");} 09:34:40 No output. 09:35:53 `! c typedef int a; int main(){a a;puts("a");}; main () 09:35:54 a 09:36:05 How do you do do "git log" in svn? 09:36:17 mroman: with git-svn 09:36:23 "svn log" doesn't really show all the stuff it should 09:36:25 mroman_: it's all wrapped inside main, which is allowed because gcc allows nested functions etc. 09:36:43 `! c main(); 09:36:44 Does not compile. 09:36:45 hm 09:36:55 `! c main() 09:36:55 Does not compile. 09:37:11 `! c return 1; 09:37:12 No output. 09:37:14 `! c return main(); 09:37:15 Does not compile. 09:37:26 `! c return main(0,0); 09:37:27 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:37:38 wait 09:37:43 this is the compiler segfaulting? 09:37:55 `! c return *(NULL); 09:37:55 Does not compile. 09:38:02 `! c return *(0); 09:38:03 Does not compile. 09:38:03 “Segmentation fault /tmp/compiled.$$” 09:38:24 `! c int a; puts(a); 09:38:25 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:38:30 ok. it's the program 09:38:55 `! c return main(0,""); 09:38:56 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:39:00 mroman_: recursively calling main from main unguarded will overflow the stack 09:39:02 that's a segfault 09:39:12 !c puts("a"); return main(0, 0); 09:39:19 `! c puts("a"); return main(0, 0); 09:39:20 a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a \ a 09:39:32 `! c puts(argv[0]); 09:39:33 ​/tmp/compiled.299 09:39:45 `! c puts(argv[0]); main(0,"buar"); 09:39:45 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:39:55 `! c puts(argv[0]); main(1,&"buar"); 09:39:55 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:40:00 hm 09:40:15 `! c printf("%x", &"buar"); 09:40:17 4005ec 09:40:33 `! c char**p=&"foo";puts(p[0]); 09:40:33 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:40:37 You're just taking the address of the array for &"foo". 09:41:42 `! c puts(argv[0]); main(0, (char*[]){"foo"}); 09:41:43 ​/tmp/compiled.299 \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo \ foo 09:42:15 A char ** (like p, or argv) needs an actual char * to point at. 09:43:19 `! c char*p="foo";char**q=&p;puts(q[0]); 09:43:20 foo 09:43:41 `! c puts(argv[0]); main(argc+1, (char*[]){ (char[]){ 'f', 'o', 'o', '0'+argc } }); 09:43:42 ​/tmp/compiled.299 \ foo1 \ foo2 \ foo3 \ foo4 \ foo5 \ foo6 \ foo7 \ foo8 \ foo9 \ foo: \ foo; \ foo< \ foo= \ foo> \ foo? \ foo@ \ fooA \ fooB \ fooC \ fooD \ fooE \ fooF \ fooG \ fooH \ fooI \ fooJ \ fooK \ fooL \ fooM \ fooN \ fooO \ fooP \ fooQ \ fooR \ fooS \ fooT \ fooU \ fooV \ fooW \ fooX \ fooY \ fooZ \ foo[ \ foo\ \ foo] \ foo^ \ foo_ 09:43:46 `! c char**q=&("foo");puts(q[0]); 09:43:47 ​./interps/gcccomp/gcccomp: line 53: 308 Segmentation fault /tmp/compiled.$$ 09:43:52 wtf 09:44:00 if "foo" is char* 09:44:02 &("foo") is no different from &foo. 09:44:06 then &"foo" should be char** 09:44:07 And "foo" is not a char *. 09:44:11 "foo" is a char[3]. 09:44:14 Er, char[4]. 09:44:20 `! c char**q=&((char*)"foo");puts(q[0]); 09:44:21 Does not compile. 09:44:22 &foo is a char (*)[4]. 09:44:25 `! c char**q=&((char*)"foo"); 09:44:26 Does not compile. 09:44:48 You need an object of type 'char *' for char ** to point at. A string literal is not a pointer to char. 09:45:04 `! c char **q = &(char *){"foo"}; puts(*q); /* if you insist */ 09:45:05 foo 09:45:06 makes sense 09:45:12 `! int* = &6; 09:45:13 ​/hackenv/bin/!: 4: exec: ibin/int*: not found 09:45:17 `! c8 int* = &6; 09:45:17 ​/hackenv/bin/!: 4: exec: ibin/c8: not found 09:45:19 `! c int* = &6; 09:45:20 Does not compile. 09:45:52 otherwise this would need to be legal too 09:46:04 Not without an identifier. 09:46:28 `! c printf("%x"); 09:46:30 bf883d18 09:46:40 `! c printf("%x%n"); 09:46:41 bfcc7d18 09:47:37 `! c if(printf("%x") bff29d084195854 09:48:05 There was some talk about %n being removed from the Microsoft C runtime library. 09:48:12 what 09:48:19 http://msdn.microsoft.com/en-us/library/hf4y5e3w.aspx "Because the %n format is inherently insecure, it is disabled by default. If %n is encountered in a format string, the invalid parameter handler is invoked, as described in Parameter Validation. To enable %n support, see _set_printf_count_output." 09:48:22 How will I do format string exploits then 09:48:58 You have to convince your targets to do _set_printf_count_output. 09:49:12 fizzie: do _set_printf_count_output 09:49:18 Done. 09:49:28 whoa, i completely forgot about https://en.wikipedia.org/wiki/Cuisenaire_rods 09:49:39 k. Prepare to be hax0red 09:50:27 An IRC client doing printf(msg); would be cool 09:51:25 Someone on ##c had their IRC client print out "zid: command not found" when a person with the nick "zid`" spoke to them. That sounded like a bad idea. 09:51:48 but it had a fizzie command? 09:51:50 There wasn't even a leading ` in the nick. 09:52:32 http://sprunge.us/RIhi so many choices. 09:53:16 !blsq_uptime 09:53:17 5d 2h 42m 54s 09:53:27 New record. 09:53:30 `uptime 09:53:30 ​ 09:53:27 up 0 min, 0 users, load average: 0.00, 0.00, 0.00 09:53:47 The drawbacks of running each command in a separate UML box. 09:53:54 I've also changed the secret passphrase 09:53:57 blsqbot please do quit 09:54:10 doesn't work anymore 09:54:25 blsqbot would you kindly quit 09:54:26 http://postimg.org/image/o2fdfk0cp Spoiler flag is useless. :| 09:54:31 Worth a try, I guess. 09:55:23 You have to nicely ask blsqbot 09:55:57 also I should implement nick recognition 09:56:01 as well as channel recogniton 09:56:07 otherwise people can abuse blsqbot for spam 09:56:38 Who's spamming here? 09:56:43 blsqbot, pretty please with a cheery on top quit and never show your face again 09:57:01 Lymia that's not a question. 09:57:34 although blsqbot serves as a neutral part to make neutral complaints about something 09:57:56 BF Joust sucks. 09:58:45 {1 4 9 16 25 36 49 64 81 100} 09:58:56 Lymia: you misspelled cherry, that's obviously why 09:59:14 I just copied the IRC bot from haskellwiki 09:59:23 but that bot doesn't have channel recognition 09:59:23 Didn't we have a regular by name of "cheery"? 09:59:46 i don't know, my memory is going... 10:00:27 [wiki] [[Special:Log/newusers]] create * FerminBazile * New user account 10:00:43 Hm. 10:00:56 lol 10:01:03 the blsqbot terminal is suddenly in blue color 10:01:14 somebody here used escape sequences to make it blue o_O 10:01:57 um HackEgo's wiki announcement ended in blue or maybe cyan 10:02:17 Those are in mIRC colors, though, not in terminal escapes. 10:02:23 hm 10:02:53 can somebody print the escape sequence to turn stuff red? 10:03:03 red text 10:03:37 > putStr "\x1b[30m" 10:03:39 10:03:46 > "\x1b[30m" 10:03:47 "\ESC[30m" 10:03:48 the 'mirc syntax' is an ETX then a 4 10:03:51 hm 10:04:01 [31;1mfoo 10:04:01 `! haskell i don't think this is working... 10:04:02 ​./interps/ghc/runghc: line 5: /opt/ghc/bin/runhaskell: No such file or directory 10:04:13 fizzie: now it's red 10:04:17 > "\0" 10:04:19 "\NUL" 10:04:26 That was the regular \x1b[31;1m. 10:04:37 what sort of evil stuff can you do with that o_O 10:04:57 `! c printf("\x1b[31;1mhi\n"); 10:04:57 Does not compile. 10:05:02 bah 10:05:15 I think there are some nasty things that would cause input. 10:05:46 [1J 10:05:54 I wonder if that got filtered out. 10:06:11 `! c printf("\0x1b[31;1mhi\n"); 10:06:12 Does not compile. 10:06:19 `! c printf("\\x1b[31;1mhi\n"); 10:06:20 Does not compile. 10:06:25 `! c printf("\\0x1b[31;1mhi\n"); 10:06:26 Does not compile. 10:06:38 `! c printf("\\0x1b[31;1mhi\\n"); 10:06:39 No output. 10:06:45 That's interesting. 10:06:54 i suppose that's an improvement. 10:06:56 hm 10:07:03 Where did the 0 come from, anyway. 10:07:17 i just tried to find something that worked 10:07:23 `! c printf("\x1b[31;1mhi\\n"); 10:07:24 ​[31;1mhi 10:07:47 Oh, I guess the \\0 was an extra null terminator, of course. 10:08:10 yeah 10:08:12 I'm not sure whether that had "\x1b" in the string literal as an escape or a, well, literal, but maybe it doesn't matter. 10:08:15 `! c printf("\x1b[1J\\n"); 10:08:16 ​[1J 10:08:29 CSI 1 J is just the "clear screen". 10:08:36 it worked 10:08:40 Er, erase from start to cursor, that is. 10:09:05 `! c printf("\\x1b[31;1mhi\\n"); 10:09:07 ​[31;1mhi 10:09:12 `! c printf("\x1b[0;6 8;"DIR";13p\\n"); 10:09:13 Does not compile. 10:09:20 `! c printf("\x1b[0;6 8;\"DIR\";13p\\n"); 10:09:23 ​[0;6 8;"DIR";13p 10:09:59 How dangerous it is depends on your terminal emulator: http://marc.info/?l=bugtraq&m=104612710031920 10:11:02 `run echo -e "\ec+ +\n\e];/tmp/rhosts\a" 10:11:03 ​c+ + \ ];/tmp/rhosts 10:11:45 `run echo -e "\e]2;This is the new window title\a" 10:11:45 ​]2;This is the new window title 10:11:54 :D 10:11:55 A proper IRC client should filter out any escape codes other than changing formatting of text, and then reset the text formatting afterward 10:11:56 this works 10:12:12 -!- Phantom_Hoover has joined. 10:12:20 -!- Phantom_Hoover has quit (Changing host). 10:12:20 -!- Phantom_Hoover has joined. 10:13:26 `run echo -e "\e]2;;touch /tmp/bar;xterm\aPress Enter>\e[8m;" 10:13:27 ​]2;;touch /tmp/bar;xtermPress Enter>[8m; 10:13:53 hm 10:14:40 I have made up a "Z-machine Reference Card" now (just a few minutes ago). I don't know if you like it or not, or if some thing should be added, or maybe it contains a mistake, etc? http://zzo38computer.org/zmachine/doc/zipquick.dvi 10:15:05 `run echo -e "\e[21t" 10:15:06 ​[21t 10:15:34 whats [21t? 10:16:02 isn't that a terminal code? 10:16:39 -!- boily has joined. 10:16:58 ah 10:17:01 "Report window title", it's supposed to put the title directly to the input buffer as if you had typed it. 10:17:02 it displays the window title 10:17:28 All those "query"-style escapes are quite strange. 10:17:48 -!- oerjan has quit (Quit: leaving). 10:18:50 It placed the window title 10:19:06 but since blsqbot isn't a terminal where you can press enter to execute something 10:19:13 it doesn't do much harm 10:19:48 It might still be on the shell input buffer when you terminate the bot, assuming it doesn't read its stdin. 10:22:15 `echo -e "\e[?1000h" 10:22:15 ​-e "\e[?1000h" 10:22:19 `run echo -e "\e[?1000h" 10:22:19 ​[?1000h 10:22:30 That may have put your terminal in one of the mouse-tracking modes. 10:22:48 Where clicking around will cause it to spew out ugly escape sequences. 10:24:55 If you are using PuTTY, you can disable many terminal features 10:26:36 (I am using PuTTY, although the IRC client filters out most control characters anyways, so it doesn't cause a problem.) 10:29:23 ah, that's what ncurses is doing, right? 10:44:37 -!- FreeFull has joined. 10:50:03 -!- Jafet has quit (Quit: Quit). 10:50:19 -!- Jafet has joined. 10:50:38 -!- Jafet has quit (Changing host). 10:50:38 -!- Jafet has joined. 11:00:47 fungot: good morning fungot. 11:00:47 boily: ah i know personally that was ah that was really 11:10:45 -!- FreeFull has quit (Ping timeout: 272 seconds). 11:12:03 -!- password2 has joined. 11:13:31 -!- Sorella has joined. 11:14:21 -!- Sorella has quit (Changing host). 11:14:21 -!- Sorella has joined. 11:19:45 fungot: It did. 11:19:45 mroman_: but so anyway like that has nothing but like disney movies on it but you 11:19:49 eh 11:19:52 fizzie: It did. 11:21:35 -!- boily has quit (Quit: UNDERHANDED CHICKEN). 11:22:04 although I'm not whether the culprit is screen or something else 11:22:09 *sure 11:23:16 `run echo -e "\e[?1000l" # let's turn it off anyway. 11:23:17 ​[?1000l 11:23:57 fungot: Are you pirating Disney movies or something there? 11:23:57 fizzie: you can't even p- park on the street and it it 11:29:31 -!- FreeFull has joined. 11:36:42 !blsq 1 2qlg10C!#s 11:36:42 {NaN NaN NaN NaN NaN NaN NaN NaN -0.36651292058166435 0.6931471805599453 2 1} 11:36:48 !blsq 1 2qlg10!C#s 11:36:49 {1 2 0.6931471805599453 -0.36651292058166435 NaN NaN NaN NaN NaN NaN NaN NaN} 11:36:58 !blsq 1 2qLG10!C#s 11:36:59 {1 2 Infinity Infinity NaN NaN NaN NaN NaN NaN NaN NaN} 11:37:05 !blsq 2 2qLG10!C#s 11:37:05 {2 2 1.0 0.0 -Infinity NaN NaN NaN NaN NaN NaN NaN} 11:37:09 !blsq 2 3qLG10!C#s 11:37:09 {2 3 1.5849625007211563 0.4192204592547559 -1.8876084101671844 NaN NaN NaN NaN N 11:37:18 !blsq 2 30qLG10!C#s 11:37:19 {2 30 4.906890595608519 0.46767072968457507 -0.4777891787829274 NaN NaN NaN NaN 11:37:24 !blsq 29 30qLG10!C#s 11:37:24 {29 30 1.010067886335908 0.002945298865150891 -581.7339748797842 NaN NaN NaN NaN 11:37:35 ic 11:37:46 !blsq 30q?s5!C#s 11:37:47 {30 5.477225575051661 2.340347319320716 1.5298193747370035 1.2368586720951604 1. 11:38:18 NaN'a'NaN. 11:38:18 > 64*64 11:38:20 4096 11:38:25 !blsq 4096q?s5!C#s 11:38:26 {4096 64.0 8.0 2.8284271247461903 1.6817928305074292 1.2968395546510096} 11:38:42 > 8**2**2**2**2**2 11:38:43 Infinity 11:38:46 > 8**2**2**2**2 11:38:47 Infinity 11:38:49 > 8**2**2**2 11:38:51 2.81474976710656e14 11:39:14 what's the limes of a(n) = sqrt(a(n-1))? 11:39:15 1? 11:39:23 !blsq 4096q?s10!C#s 11:39:24 {4096 64.0 8.0 2.8284271247461903 1.6817928305074292 1.2968395546510096 1.138788 11:39:32 !blsq 4096q?s10!C[- 11:39:32 96 11:39:39 !blsq 4096q?s10!C#s[- 11:39:40 {64.0 8.0 2.8284271247461903 1.6817928305074292 1.2968395546510096 1.13878863475 11:39:43 !blsq 4096q?s10!C#s[~ 11:39:43 1.0081558981184175 11:39:48 !blsq 4096q?s10000!C#s[~ 11:39:49 Ain't nobody got time fo' dat! 11:39:52 !blsq 4096q?s1000!C#s[~ 11:39:52 1.0 11:39:56 looks like it. 11:40:33 sqrt(a) for a > 1 is a number that's strictly between 1 and a, so... 11:43:08 !blsq 10 5qcr10!C#s[~ 11:43:08 ERROR: Unknown command: (cr)! 11:43:13 !blsq 10 5qnr10!C#s[~ 11:43:13 1 11:43:16 !blsq 10 5qnr10!C#s 11:43:16 {10 5 252 1 252 1 252 1 252 1 252 1} 11:43:22 !blsq 10 9qnr10!C#s 11:43:22 {10 9 10 1 10 1 10 1 10 1 10 1} 11:43:30 !blsq 9 10qnr10!C#s 11:43:30 {9 10 1 10 1 10 1 10 1 10 1 10} 11:43:31 Alternatively: sqrt(a) = a^(1/2), so a_n = a_0^(1/2^n) which will approach a_0^0 = 1. 11:43:43 !blsq 9 10{jnr}10!C#s 11:43:43 {9 10 10 1 1 1 1 1 1 1 1 1} 11:43:48 !blsq 10 5{jnr}10!C#s 11:43:48 {10 5 1 1 1 1 1 1 1 1 1 1} 11:43:59 !blsq 5 10{jnr}10!C#s 11:44:00 Ain't nobody got time fo' dat! 11:44:04 ok 11:44:06 !blsq 5 10{jnr}2!C#s 11:44:07 {5 10 252 237517990691968350} 11:44:10 !blsq 5 10{jnr}3!C#s 11:44:10 Ain't nobody got time fo' dat! 11:44:13 !blsq 5 10{jnr}2!C#s 11:44:14 {5 10 252 237517990691968350} 11:45:26 a(n) = nCr(a(n-1),a(n-2)) 11:46:15 !blsq 5 10{jnr}3!Cit 11:46:15 5 11:46:23 !blsq 5 10{jnr}4!Cit 11:46:24 5 11:46:26 !blsq 5 10{jnr}4!Cth 11:46:26 Ain't nobody got time fo' dat! 11:46:30 !blsq 5 10{jnr}3!Cth 11:46:30 Ain't nobody got time fo' dat! 11:46:34 why not :( 11:47:23 !blsq 1 3{jnr}2!C#s 11:47:23 {1 3 3 1} 11:47:27 !blsq 1 3{jnr}3!C#s 11:47:28 {1 3 3 1 1} 11:47:31 !blsq 2 3{jnr}3!C#s 11:47:31 {2 3 3 1 1} 11:47:40 !blsq 5 11{jnr}3!C#s 11:47:41 Ain't nobody got time fo' dat! 11:47:48 Is nr that slow? 11:48:38 ncr n k = product [k+1..n] `div` product [1..n-k] 11:49:07 !blsq 252 10nr 11:49:08 237517990691968350 11:49:30 !blsq 237517990691968350 252nr 11:49:30 Ain't nobody got time fo' dat! 11:50:02 > product [5+1..10] `div` product [1..5] 11:50:04 252 11:50:30 @let ncr n k = product [k+1..n] `div` product [1..n-k] 11:50:33 Defined. 11:50:40 > ncr 10 5 11:50:41 252 11:50:53 > ncr 237517990691968350 252 11:50:57 mueval-core: Time limit exceeded 11:51:27 Not sure if you can do ncr more efficiently 11:51:32 it is a pretty huge number. 11:54:50 elliott_: I've changed my password scheme to using nCr(secret, siteSpecific) 11:56:05 It can easily produce passwords thousands of digits long 11:56:23 > ncr 273 252 11:56:24 12832413319490100185605420936128 11:56:40 > 10^32 11:56:42 100000000000000000000000000000000 11:57:01 > (10^32) / (96^20) 11:57:03 2.2624309808050328e-8 11:57:06 You can replace k with (n-k) depending on whether it's closer to 0 or n in order to make those products smaller. 11:57:50 -!- AndoDaan_ has joined. 11:58:02 > 273/2 11:58:03 136.5 11:58:10 > ncr 274 137 11:58:12 1461797917332285816682186571523274129885025550897564128525125778686553583310... 11:58:21 > (ncr 274 137) - (ncr 274 138) 11:58:22 1059273853139337548320425051828459514409438804998234875742844767164169263268... 11:58:25 -!- AndoDaan has quit (Ping timeout: 260 seconds). 11:58:29 hm 11:58:37 fizzie: There's a k so that ncr n k is max? 11:58:42 I forgot where it is 11:58:51 It's right there in the middle, I'm pretty sure. 11:58:57 I thought so as well 11:59:05 since there's a symmetry law 11:59:44 it is in the middle. 11:59:50 -!- AndoDaan_ has changed nick to AndoDaan. 12:00:53 !blsq 8 1 7r@nr 12:00:54 {8 28 56 70 56 28 8} 12:01:07 !blsq 8 1 7r@nr[> 12:01:08 ERROR: Unknown command: ([>)! 12:01:10 !blsq 8 1 7r@nr>] 12:01:10 70 12:01:15 !blsq 8 1 7r@nrJ>]fi 12:01:16 ERROR: Burlesque: (fi) Invalid arguments! 12:01:18 !blsq 8 1 7r@nrJ>] 12:01:19 70 12:01:23 !blsq 8 1 7r@nr>] 12:01:23 70 12:01:27 !blsq 8 1 7r@nrJ>]jfi 12:01:27 ERROR: Burlesque: (fi) Invalid arguments! 12:01:29 really 12:01:30 wth 12:01:39 !blsq 8 1 7r@nrJ>]Fi 12:01:39 3 12:01:41 ah 12:01:47 upper-case f 12:02:26 AndoDaan: Some commands btw. automatically map/zip lists 12:02:56 If you write it in the factorial form -- n! / (k! (n-k)!) -- it's quite easy to see that it's (around, if odd n) n/2, because getting away from the midpoint replaces smaller numbers with bigger ones in the product in the denominator. 12:03:13 nr and b2 are one of them 12:03:16 what is zipping exactly? 12:03:23 Do you know haskell? 12:03:28 It's the same as zip in Haskell 12:03:34 > zip [1,2,3] [4,5,6] 12:03:36 [(1,4),(2,5),(3,6)] 12:03:36 A little 12:03:41 !blsq {1 2 3}{4 5 6}z[ 12:03:42 {{1 4} {2 5} {3 6}} 12:03:52 > zipWith (+) [1,2,3] [4,5,6] 12:03:53 [5,7,9] 12:04:09 > zipWith (+) [x,y] [z,z] 12:04:10 [x + z,y + z] 12:04:27 !blsq {1 2 3}{4 5 6}{.+}Z] 12:04:27 {5 7 9} 12:04:47 You take a value from each of the lists and apply a function to it 12:05:10 What Haskell can't do is 12:05:20 > zipWith (+) [1] [1,2,3,4] 12:05:21 [2] 12:05:37 !blsq 1{1 2 3 4}?+ 12:05:38 {2 3 4 5} 12:05:50 > (1+) <$> [1,2,3,4] 12:05:52 [2,3,4,5] 12:06:14 !blsq {1}{1 2 3 4}{.+}Z] 12:06:14 {2} 12:06:49 ?+ automatically box-cycles and zips 12:06:49 Maybe you meant: v @ ? . 12:06:56 !blsq 1bc 12:06:56 Ain't nobody got time fo' dat! 12:07:04 !blsq 1bc{1 2 3 4}?+ 12:07:05 {2 3 4 5} 12:07:13 what's the difference between <$> and map? 12:07:31 @src <$> 12:07:31 f <$> a = fmap f a 12:07:46 AndoDaan: Certain commands will check whether you supplied a list/block or not 12:07:49 so, there is none? 12:07:49 !blsq {72 101 108 108 111}{L[}Z[ 12:07:50 That line gave me an error 12:07:51 v? 12:07:53 !blsq {1 2 3 4 5}b2 12:07:53 {"1" "10" "11" "100" "101"} 12:08:03 !blsq {72 101 108 108 111}{L[}m[ 12:08:03 ^- b2 checks if it's a list and just maps over the list automatically 12:08:04 {'H 'e 'l 'l 'o} 12:08:04 ?v 12:08:04 "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\" 12:08:07 myname: Well, there is a difference between fmap and map, unless you're only talking about lists. 12:08:14 uh, well. I see. 12:08:25 !blsq {72 101 108 108 111})L[ 12:08:26 {'H 'e 'l 'l 'o} 12:08:27 fizzie: yeah, sure, but besides that 12:08:38 ) wraps a single command in a map 12:08:44 (as does : for filter) 12:08:54 damn that's helpfull 12:08:59 so 12:09:05 {aabb}m[ 12:09:07 )aa)bb 12:09:19 it's shorter to do two maps instead of one 12:09:34 !blsq {72 101 108 108 111}L[.+ 12:09:34 ERROR: Burlesque: (.+) Invalid arguments! 12:09:51 !blsq {72 101 108 108 111}L[wd 12:09:52 ERROR: Burlesque: ([[) Invalid arguments! 12:09:58 NumPy has this thing called auto-broadcasting, you can apply most binary things to, say, operands of sizes (AxBxCxD) and (Ax1xCx1) and it'll repeat the latter along the singleton dimensions to make up the difference. 12:10:01 L[ is length for Blocks 12:10:05 !blsq {1 2 3 4}L[ 12:10:05 4 12:10:28 !blsq {72 101 108 108 111})L[wd 12:10:29 "H e l l o" 12:10:33 -!- GeekDude has joined. 12:10:46 !blsq {72 101 108 108 111})L[wd 12:10:47 "H e l l o" 12:10:58 !blsq {"abc" "" "def" "" "" "ppp"}:L[ 12:10:59 {"abc" "def" "ppp"} 12:11:09 !blsq {72 101 108 108 111})L[wD 12:11:09 H e l l o 12:11:29 !blsq {72 101 108 108 111})L[)L[ 12:11:30 {'A 'a 'a 'a 'a} 12:11:32 What's the logic of L[ being length for blocks/strings, conversion to character for int, and testing for upper/lowercase for char? 12:11:32 !blsq {72 101 108 108 111})L[2enwD 12:11:33 e l 12:12:02 !blsq {72 101 108 108 111})L[nwD2en 12:12:02 That line gave me an error 12:12:14 fizzie: Historical 12:12:18 !blsq {72 101 108 108 111})L[nwd2en 12:12:19 That line gave me an error 12:12:22 I tried to squish as much functionality into a single command 12:12:24 !blsq {72 101 108 108 111})L[nwd2 12:12:24 ERROR: Unknown command: (d2)! 12:12:45 which looking back wasn't a really good thing to do 12:13:09 what's en? 12:13:12 everyNth? 12:13:35 fizzie: In case I wanted to switch to single byte commands 12:13:56 Which I only could have about 200 commands 12:14:04 but I dropped that 12:14:10 It now has 12:14:14 !blsq ?n 12:14:14 That line gave me an error 12:14:16 !blsq ?_ 12:14:16 "I have 340 non-special builtins!" 12:14:27 340 non-special builtins 12:14:41 and some special builtins 12:14:49 !blsq 339?n 12:14:49 ?? 12:14:53 !blsq 338?n 12:14:53 ?n 12:15:17 AndoDaan: ?n is undocumented btw ;) 12:15:32 338?n returns the 338th command 12:15:53 !blsq 60?n 12:15:53 ^^ 12:16:09 ooh exciting 12:16:42 !blsq (^^) 12:16:42 ^^ 12:16:49 ^- in case you didn't know () 12:16:51 !blsq 1?n 12:16:51 J 12:17:13 (^^) is shorter than "^^"Q 12:17:20 for challenges where you have to exactly print two characters 12:17:29 !blsq 20rz{?n}m[ 12:17:29 {j J .+ _+ .- ./ .* .% +. -. .> .< >. <. >] <] ** r_ R_ == !=} 12:17:46 wat 12:17:58 !blsq 60rz{?n}m[ 12:17:58 {j J .+ _+ .- ./ .* .% +. -. .> .< >. <. >] <] ** r_ R_ == != <- ln un uN wl WL 12:18:26 -!- nortti has changed nick to hellortti. 12:18:28 fizzie: The most stupid decision was printing strings with "" 12:18:31 !blsq "foo" 12:18:31 "foo" 12:18:37 !blsq 60 100r@{?n}m[ 12:18:37 {^^ vv XX ~[ ~~ ~! !~ r~ R~ ^p p^ =[ sh FF ff Ff SH sH Sh ~= =~ || && $$ L[ ab s 12:18:40 that's why there's un and uN 12:18:40 -!- hellortti has changed nick to nortti. 12:19:02 most common used commands have a version with an implicit sh 12:19:08 !blsq {"ab""cd"}un 12:19:09 "ab\ncd" 12:19:11 !blsq {"ab""cd"}uN 12:19:11 ab 12:19:26 !blsq 150 100r@{?n}m[ 12:19:27 {} 12:19:33 !blsq 100 150r@{?n}m[ 12:19:34 {<> /v v/ ^/ /^ r& r| ZZ zz M[ M] m] [m ]m [M wd wD f[ z[ Z[ Z] !! fi Fi fI fe C 12:19:39 !blsq ((((q)))) 12:19:39 ERROR: (line 1, column 10): 12:19:46 !blsq ((q)) 12:19:47 ERROR: (line 1, column 6): 12:19:48 ok 12:19:51 !blsq 150 300r@{?n}m[ 12:19:52 {sb cm CM Cm B! g_ l_ tw dw tp FM r\ SP sp hd HD ld LD st #a #b #c `a `b `c !a ! 12:19:53 !blsq ((qa)) 12:19:54 ERROR: (line 1, column 7): 12:19:59 !blsq ((la)) 12:19:59 (la) 12:20:04 !blsq (((la))) 12:20:05 ((la)) 12:20:08 :) 12:20:12 !blsq (((la)))bxe! 12:20:12 (la) 12:20:21 !blsq 200 300r@{?n}m[ 12:20:22 {Wl si ro rz nu fl to sr rn RN >m !blsq 400 500r@{?n}m[ 12:20:42 !blsq (ta)to 12:20:42 That line gave me an error 12:20:42 "Ident" 12:20:55 !blsq ((ta))to 12:20:56 "Quoted" 12:21:04 !blsq 338 360r@{?n}m[ 12:21:05 That line gave me an error 12:21:10 there are only 340 12:21:18 `forth ." that string print thing is so Forthy!" 12:21:19 that string print thing is so Forthy! 12:21:22 !blsq 338 339r@{?n}m[ 12:21:22 {?n ??} 12:21:35 !blsq 316r@{?n}m[ 12:21:36 ERROR: Burlesque: (m[) Invalid arguments! 12:21:44 !blsq 316 320r@{?n}m[ 12:21:45 {sm fu ck it th} 12:21:53 fu ck it 12:21:56 :) 12:21:58 yeah 12:22:01 !blsq 316 321r@{?n}m[ 12:22:01 {sm fu ck it th bs} 12:22:21 !blsq {"abc""efg"}{L[}fuckit 12:22:21 I saw your transpose easter egg, btw. 12:22:21 ERROR: Burlsque: (n!) Invalid arguments! 12:22:32 !blsq {{"abc"}{"efg"}}{L[}fuckit 12:22:32 'g 12:22:52 !blsq 321 ?n 12:22:52 bs 12:22:56 !blsq 322 ?n 12:22:57 BS 12:23:00 !blsq 323 ?n 12:23:00 cn 12:23:01 It's weird that you can unline Blocks without strings 12:23:06 !blsq {1 2 3}un 12:23:06 "\n12\n3" 12:23:27 !blsq {1 2 3}uN 12:23:27 But the result is buggy :D 12:23:27 Ain't nobody got output fo' that! 12:23:38 !blsq {1 2 3}sh 12:23:38 [1, 2, 3] 12:23:45 !blsq {1 2 3}un 12:23:45 "\n12\n3" 12:23:52 !blsq ,{1 2 3}un 12:23:53 "\n12\n3" 12:24:02 !blsq ,{1 2 3}\/un 12:24:03 ERROR: Burlesque: (\[) Invalid arguments! 12:24:16 !blsq ,{1 2 3}^^[-un 12:24:16 "\n23" 12:24:23 !blsq ,{1 2 3}^^-]un 12:24:24 ERROR: Burlesque: (\[) Invalid arguments! 12:24:45 !blsq {1 2}un 12:24:46 "\n12" 12:24:49 weird 12:25:16 !blsq {2 3}un 12:25:16 !blsq #Qhithere. 12:25:16 "\n23" 12:25:16 ERROR: Unknown command: (e.)! 12:25:26 !blsq #qhithere. 12:25:27 ERROR: Unknown command: (e.)! 12:25:32 !blsq #q5 12:25:33 5 12:25:49 !blsq #q5 5#s 12:25:50 {5 5} 12:25:53 !blsq {2 3}57?n 12:25:53 m[ 12:26:10 !blsq {2 3}55?n 12:26:10 \m 12:26:11 (blsqbot only prints the first line) 12:27:21 !blsq {2 3} 150?n 12:27:21 sb 12:30:33 good ol' sortBy 12:30:59 !blsq {"abc""d""fegh"}(L[)cmsb 12:30:59 ERROR: Burlesque: (sb) Invalid arguments! 12:31:03 !blsq {"abc""d""fegh"}(L[)Cmsb 12:31:03 ERROR: Burlesque: (sb) Invalid arguments! 12:31:05 !blsq {"abc""d""fegh"}(L[)CMsb 12:31:06 {"d" "abc" "fegh"} 12:31:14 I can never remember which version of compare to use 12:31:34 !blsq {"abc""d""fegh"}{L[}Cmsb 12:31:35 {"d" "abc" "fegh"} 12:31:57 > sortBy (comparing length) ["abc","d","fegh"] 12:31:58 ["d","abc","fegh"] 12:32:27 Burlesque maps nicely to haskell :) 12:32:49 almost as if it were a stack-based haskell or something 12:33:14 !blsq {"abc""d""fegh"}{L[}Cmsbsh 12:33:15 ["d", "abc", "fegh"] 12:34:30 AndoDaan: You can also write fuckshit or something like that 12:35:09 !blsq fuckshit 12:35:09 ERROR: Burlsque: (n!) Invalid arguments! 12:35:22 !blsq "fuckshit"fuckshit 12:35:22 ERROR: Burlsque: (n!) Invalid arguments! 12:35:37 ck is n!n! 12:35:38 5n! 12:35:52 !blsq 5n! 12:35:53 0 12:35:54 !blsq 5n!n! 12:35:55 1 12:36:00 !blsq 5n! 12:36:00 0 12:36:12 !blsq 6n!5n! 12:36:13 0 12:36:36 !blsq -1n! 12:36:37 0 12:36:38 ck also returns the most common element of the most common block in a block 12:36:56 !blsq {{1 2 2 3}{1 2 2 3}{1 2 3}{1 4 4}}ck 12:36:57 2 12:38:16 !blsq 20q?nGO 12:38:17 {J .+ _+ .- ./ .* .% +. -. .> .< >. <. >] <] ** r_ R_ == !=} 12:38:18 btw ;) 12:38:38 !blsq 20rz)?N 12:38:38 {ERROR: Unknown command: (?N)! 0 ERROR: Unknown command: (?N)! 1 ERROR: Unknown 12:38:41 !blsq 20rz)?n 12:38:42 {j J .+ _+ .- ./ .* .% +. -. .> .< >. <. >] <] ** r_ R_ == !=} 12:38:50 !blsq 20q?n 12:38:50 {?n} 12:39:02 q just wraps the next "Token" in a Block 12:39:05 !blsq q9 12:39:05 {9} 12:39:07 !blsq q'a 12:39:07 {'a} 12:39:09 !blsq qq0 12:39:10 {{0}} 12:39:13 !blsq qqqqqqqqqqqq0 12:39:13 {{{{{{{{{{{{0}}}}}}}}}}}} 12:39:15 ah 12:39:27 !blsq 20?N 12:39:27 ERROR: Unknown command: (?N)! 12:39:30 !blsq ?N 12:39:31 ERROR: Unknown command: (?N)! 12:39:31 however, unlike jJQ q is on the syntax level 12:39:41 jJQ:)@ etc. are on eval level 12:39:51 !blsq @5 12:39:51 5.0 12:39:58 !blsq {@5} 12:39:59 {@ 5} 12:39:59 -!- Patashu has quit (Ping timeout: 272 seconds). 12:40:02 ^- see 12:40:08 {@5} isn't actually 5.0 12:40:25 which is kinda dumb :( 12:40:39 I hope I'll retain some of this info. 12:40:43 !blsq {0}{@5}m[ 12:40:43 {5.0 0} 12:40:51 ^- but it will be turned into 5.0 eventually 12:41:06 !blsq {q5} 12:41:06 {{5}} 12:41:12 ^- q is on the syntax level 12:41:26 !blsq (q) 12:41:27 ERROR: (line 1, column 4): 12:41:42 also () doesn't work with single character commands apparentely o_O 12:41:49 !blsq (j) 12:41:50 j 12:41:53 nvm. it does 12:42:07 !blsq @ @ @#s 12:42:07 's 12:42:13 !blsq @ @ 12:42:13 @ 12:42:30 !blsq {az}@+] 12:42:31 '] 12:42:35 !blsq {az}@ +] 12:42:35 '] 12:42:37 damn 12:42:44 !blsq {az}(@)+] 12:42:45 {@ az} 12:42:48 !blsq {az}(@)+]e! 12:42:49 'z 12:42:52 !blsq {az}(@)+]e!#s 12:42:52 {'z 'a} 12:42:56 I did notice that Q and J and j don't work when running --shell 12:43:05 hu? 12:43:32 I test my code in the shell 12:43:35 blsq ) 1 2j 12:43:35 1 12:43:35 2 12:43:42 so burlesque --shell 12:43:44 ^- they work on my computer 12:44:20 (also what happens when you run ?? in the shell?) 12:44:26 ah well, it's only minor 12:44:49 argh, 1.7.2b 12:44:51 yeah 12:44:52 sorry 12:44:56 you don't have the latest version then :) 12:45:03 I thought I had it updated. 12:45:27 but better like this I guess. Keeps to what anarchy golf is running. 12:45:38 anagol is running 1.7.3 12:45:49 well, fu ck it 12:48:12 okay, updating now. 12:48:19 !blsq "Hello"{**}mp 12:48:20 9415087488 12:48:33 !blsq "Hello")**pd 12:48:34 9415087488 12:48:54 I guess those map variations are mostly useless since the introduction of ) 12:49:37 ps deepmaps? 12:49:38 o_O 12:49:43 !blsq {"5 6" "7 8"}ps 12:49:43 {{5 6} {7 8}} 12:49:51 interesting 12:50:05 !blsq "5 6\n7 8"lnpssp 12:50:05 5 6 12:50:09 !blsq "5 6\n7 8"lnpsSP 12:50:09 "5 6\n7 8" 12:50:23 ok probably not so interesting 12:50:37 !blsq "5 6\n7 8"lnpe 12:50:38 {7 8} 12:50:41 !blsq "5 6\n7 8"lnpe#s 12:50:41 {{7 8} {5 6}} 12:50:51 unless you need this ^ 12:51:30 !blsq {1 7 8 6 2 0 1}{5.>}pt 12:51:30 {{7 8 6} {1 2 0 1}} 12:52:05 !blsq "5.0"td 12:52:06 5.0 12:52:09 !blsq "5.0"tdtd 12:52:10 5.0 12:52:14 !blsq 5.0pd 12:52:15 5 12:52:16 !blsq 5.0pdpd 12:52:16 5.0 12:52:24 !blsq 5td 12:52:24 5.0 12:52:32 !blsq tp 12:52:33 ERROR: You should not transpose what you can't transpose. Yes this is an eastere 12:52:41 ^- AndoDaan ;) 12:53:38 !blsq "hi9there""[[:digit:]]"sr 12:53:39 {"[[:digit:]]"} 12:53:46 hm 12:53:48 !blsq "hi9there""[[:digit:]]"jsr 12:53:49 {"hi" "there"} 12:54:42 -!- S1 has joined. 12:54:46 !blsq "fuckyou."ps 12:54:46 {fu ck yo u.} 12:55:11 !blsq "fuckyou."pswd 12:55:11 {ERROR: Burlesque: (_+) Invalid arguments!} 12:55:16 !blsq "fuckyou."psWd 12:55:16 ERROR: Unknown command: (Wd)! 12:55:18 !blsq "fuckyou."psWD 12:55:19 ERROR: Burlesque: (WD) Invalid arguments! 12:55:22 damn 12:55:30 what are you trying to do? 12:55:45 I hate that unlines/words don't auto-convert to string 12:55:59 I will fix that in 1.7.4 12:56:03 so that 12:56:06 !blsq {1 2 3}un 12:56:07 "\n12\n3" 12:56:10 actually works 12:56:39 although for full backwards compatability this will probably be a new command 12:56:40 what does blsq stand for? 12:56:46 `? blsq 12:56:46 blsq? ¯\(°​_o)/¯ 12:56:54 `learn blsq (see burlesque) 12:56:55 I knew that. 12:56:58 `? burlesque 12:56:59 burlesque is only the sexiest language on earth. 12:57:09 lol I updated my copy to 1.6.9 12:57:25 `learn_append burlesque (see: http://mroman.ch/burlesque) 12:57:27 I knew that. 12:57:30 `? burlesque 12:57:30 burlesque is only the sexiest language on earth. \ (see: http://mroman.ch/burlesque) 12:57:42 AndoDaan: lol 12:57:48 1.6.9 is pretty old :) 12:58:08 it is 12:58:10 more than 2 years 12:58:23 I used the 'ghc --make main.hs -o burlesque -O3 -fforce-recomp" 12:58:38 oh wait. 12:58:41 man... 12:58:44 hm? 12:59:04 Are you missing some packages? 13:04:08 -!- ais523 has quit (Read error: Connection reset by peer). 13:04:10 -!- callforjudgement has joined. 13:07:13 --okay, I managed that. 13:09:24 -!- callforjudgement has quit. 13:10:47 -!- S1 has quit (Quit: S1). 13:35:01 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds). 13:36:25 -!- AndoDaan has quit. 13:39:10 -!- augur has quit (Read error: Connection reset by peer). 13:39:17 -!- Sprocklem has quit (Ping timeout: 260 seconds). 13:39:24 -!- augur has joined. 13:43:43 -!- sebbu has quit (Ping timeout: 244 seconds). 13:45:10 -!- Phantom_Hoover has joined. 13:59:52 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 14:12:46 -!- nycs has changed nick to `^_^v. 14:22:14 -!- SvenGek has joined. 14:27:27 -!- Sprocklem has joined. 14:28:34 any of you dudes familiar with bacon.js? 14:29:24 or FRP in general, more likely 14:31:08 mmmm, delicious bacon 14:31:36 baconexplosion.js :V 14:31:49 ERROR 418 14:32:22 -!- shikhin has joined. 14:32:50 -!- shikhin has changed nick to Guest62969. 14:35:59 -!- Guest62969 has quit (Client Quit). 14:36:20 -!- shikhout has joined. 14:40:36 myndzi: no, but yes 14:41:06 I haven't used FRP "in practice" barely at all but I know about reactive-banana and some other libraries and have read papers. 14:41:09 !blsq {1}es 14:41:09 {1} 14:41:13 !blsq {}es 14:41:13 "" 14:41:16 interesting 14:42:01 HTCPCP ERROR 418 14:43:33 i've got a thing that i'm thinking may work well with the paradigm but having trouble figuring out how to phrase it 14:43:53 the js FRP libraries don't seem to have much irc presence :( 14:44:38 i suppose the core thing i'm trying to figure out at the moment is how to combine some event streams (or whatever) in such a way that a single stream drives the emission of events, but the latest value from some of the others is merged into its output 14:45:11 'properties' in baconjs seems to suit, but i don't want to get a stream output for every property that changes 14:45:37 some googling just stumbled me into 'sampledby', maybe that's near what i'm looking for 14:46:00 or maybe something like rxjs's 'schedulers' 14:50:28 "Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence." 14:50:31 ...wow 14:51:48 why the hell is it called bacon? 14:52:51 because bacon is delicious 14:54:28 prolly to add to the appeal 14:56:00 with language like the above (in rxjs), i don't think bacon needs a mouth-watering name to be more appealing :P 15:01:50 I only know about Elm (as in I know it exists and I've stared at code snippets) and some FRP libs/lang stuff for Racket. 15:03:14 Because bacon is a fruit, of course 15:03:16 Elm was interesting to me though because it compiles to JS, while looking a bit like Haskell. 15:03:21 -!- TieSoul has changed nick to kappa. 15:03:24 -!- kappa has changed nick to TieSoul. 15:03:28 i think i may have found some useful examples in the gaming concept-space 15:05:18 this is kind of sexy 15:05:29 http://baconjs.github.io/api.html#bacon-combinetemplate 15:05:44 this is close to what i want but i didn't want output updates on every change, only on the 'controlling' stream 15:05:55 but sampledBy will give me just that 15:08:27 -!- shikhout has changed nick to shikhin. 15:14:51 -!- AndoDaan has joined. 15:19:57 Hi 15:26:49 -!- password2 has quit (Quit: Leaving). 15:32:53 -!- drdanmaku has joined. 15:34:24 -!- heow has joined. 15:36:44 -!- heow has left. 15:48:31 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 15:58:51 -!- Sprocklem has quit (Ping timeout: 272 seconds). 16:04:52 -!- Bike has quit (Quit: leaving). 16:05:12 -!- Bike has joined. 16:05:37 -!- Bike has quit (Client Quit). 16:05:50 -!- Bike has joined. 16:08:43 -!- Bike has quit (Client Quit). 16:08:59 -!- Bike has joined. 16:18:37 -!- GeekDude has joined. 16:31:02 -!- sebbu has joined. 16:31:39 -!- sebbu has quit (Changing host). 16:31:39 -!- sebbu has joined. 16:39:27 -!- GeekDude has quit (Read error: Connection reset by peer). 16:39:48 -!- GeekDude has joined. 16:43:41 -!- DKordic`` has joined. 17:08:37 -!- MoALTz has joined. 17:26:27 -!- AndoDaan has quit (Ping timeout: 245 seconds). 17:28:31 -!- zzo38 has quit (Remote host closed the connection). 17:29:18 -!- AndoDaan has joined. 17:45:26 -!- TieSoul has quit (Excess Flood). 17:45:44 -!- TieSoul has joined. 17:47:54 -!- Sorella has quit (Ping timeout: 258 seconds). 18:00:21 -!- shikhout has joined. 18:03:37 -!- shikhin has quit (Ping timeout: 258 seconds). 18:11:16 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 18:12:07 `? Taneb 18:12:08 Taneb is not elliott, no matter who you ask. He also isn't a rabbi although he has pretended in the past. He has at least two backup keyboards, and five genders. (See also: tanebventions) 18:12:24 Disclaimer: I probably have less than 5 genders 18:12:58 But my two keyboards are reunited! 18:13:35 http://en.cppreference.com/w/cpp/language/user_literal C++ is more incredible the more i inadvertently learn about it 18:15:44 TANEB HAS 5 CORNER SIMULTANEOUS 5-GENDER IDENTITY CUBE IN ONLY 24 HOUR ROTATION 18:16:13 :) 18:17:57 also can i just not use c11 things, this is dumb 18:18:32 Taneb: how often do you rotate? 18:21:03 Roughly daily 18:25:09 `? fizzie 18:25:10 fizzie is not fnord with a monad but the king of #esoteric, see http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/src/fizziecoin.jpg 18:25:26 Is it allowed to edit someone's user-wisdom? 18:26:40 BrainFlow is an extension of BrainFuck with 3 additional commands for added functionality and confusion: 18:26:45 "confusion"? 18:26:49 What's confusing about that 18:27:23 has anybody actually considered extending BF Joust by some BF derivative with more functionality? 18:29:39 Why would somebody make a BF derivative not using ASCII? 18:31:04 User:ChiSHAXtjo I smell spam 18:31:11 fungot: Do you smell spam? 18:31:11 mroman_: they're just getting the treadmill in for me i 18:31:22 fungot: Are you trying to do more sports? 18:31:22 mroman_: ( ( um i)) don't think that's 18:40:26 -!- conehead has joined. 18:42:33 -!- GeekDude has joined. 18:47:20 -!- Sprocklem has joined. 18:47:50 -!- Sprocklem has changed nick to Guest86867. 18:56:04 -!- Guest86867 has quit (Ping timeout: 260 seconds). 18:59:57 -!- AnotherTest has joined. 19:03:23 -!- Bicyclidine has joined. 19:04:00 [wiki] [[Special:Log/newusers]] create * DTSCode * New user account 19:11:02 {'i ?i 'd ?d 's S[} 19:11:05 !blsq 9S[ 19:11:06 81 19:11:37 !blsq "iis"{{'i 'd 's}jFi} 19:11:37 {{'i 'd 's} j Fi} 19:11:41 !blsq "iis"{{'i 'd 's}jFi}m[ 19:11:41 {0 0 2} 19:11:51 so what's the best error handling regime, in general 19:12:00 !blsq "iis"{?i ?d ?s}j{{'i 'd 's}jFi}m[si 19:12:00 obviously a reasonable, easily answered question 19:12:01 {?i ?i ?s} 19:12:07 !blsq "iis"{?i ?d ?s}j{{'i 'd 's}jFi}m[si0je! 19:12:08 1.4142135623730951 19:12:11 oh 19:12:13 that's sqrt 19:12:20 !blsq "iis"{?i ?d S[}j{{'i 'd 's}jFi}m[si0je! 19:12:20 4 19:12:42 !blsq "iisdsii"{?i ?d S[}j{{'i 'd 's}jFi}m[si0je! 19:12:43 11 19:12:48 not fully compliant though 19:13:05 it performs modulo iff x=256 right? 19:13:12 oh. and -1 19:13:14 does anybody but you understand this language? it looks like hayes commands 19:13:36 !blsq {-1==}{256==}m| 19:13:36 0 19:13:40 !blsq -1{-1==}{256==}m| 19:13:41 1 19:13:55 !blsq 5{-1==}{256==}m|{256.%}if 19:13:56 No output! 19:14:00 !blsq 5J{-1==}{256==}m|{256.%}if 19:14:00 5 19:14:04 !blsq 256J{-1==}{256==}m|{256.%}if 19:14:05 0 19:14:31 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}[[ 19:14:32 {J {?i ?d} {-1 ==} {?i ?d} {256 ==} {?i ?d} m| {?i ?d} {256 .%} {?i ?d} if} 19:14:43 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}ic 19:14:43 {ERROR: Burlesque: (_+) Invalid arguments!} 19:14:47 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}IC 19:14:48 {ERROR: Burlesque: (_+) Invalid arguments!} 19:14:51 fuuu 19:14:54 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}bxIC 19:14:54 {ERROR: Burlesque: (_+) Invalid arguments!} 19:14:57 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if} 19:14:57 {J {-1 ==} {256 ==} m| {256 .%} if} 19:15:03 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}[[ 19:15:04 {J {?i ?d} {-1 ==} {?i ?d} {256 ==} {?i ?d} m| {?i ?d} {256 .%} {?i ?d} if} 19:15:14 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}j[[ 19:15:15 {?i {J {-1 ==} {256 ==} m| {256 .%} if} ?d} 19:15:18 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}jic 19:15:19 {ERROR: Burlesque: (_+) Invalid arguments!} 19:15:20 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}jIC 19:15:21 {ERROR: Burlesque: (_+) Invalid arguments!} 19:15:25 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}j[[\[ 19:15:26 {ERROR: Burlesque: (_+) Invalid arguments!} 19:15:29 !blsq {?i ?d}{J{-1==}{256==}m|{256.%}if}j[[ 19:15:30 {?i {J {-1 ==} {256 ==} m| {256 .%} if} ?d} 19:15:59 !blsq {?i ?d})bx{J{-1==}{256==}m|{256.%}if}jIC 19:15:59 {ERROR: Burlesque: (_+) Invalid arguments!} 19:16:02 !blsq {?i ?d})bx{J{-1==}{256==}m|{256.%}if}ic 19:16:03 {ERROR: Burlesque: (_+) Invalid arguments!} 19:16:04 !blsq {?i ?d})bx{J{-1==}{256==}m|{256.%}if}IC 19:16:05 {?i J {-1 ==} {256 ==} m| {256 .%} if ?d} 19:16:08 ah 19:16:10 -!- Sprocklem_ has joined. 19:16:11 now we're talking 19:16:40 -!- Sprocklem_ has changed nick to Sprocklem. 19:16:47 !blsq "d"{?i ?d ?s}j{{'i 'd 's}jFi}m[sibx{J{-1==}{256==}m|{256.%}if}IC0je! 19:16:47 -1 19:16:50 fuck 19:17:02 !blsq "d"{?i ?d ?s}j{{'i 'd 's}jFi}m[sibx{J{-1==}{256==}m|{256.%}if}IC 19:17:03 {?d} 19:17:13 !blsq "dd"{?i ?d ?s}j{{'i 'd 's}jFi}m[sibx{J{-1==}{256==}m|{256.%}if}IC 19:17:13 {?d ?d} 19:17:19 why isn't it intercalating stuff 19:17:39 !blsq "dd"{?i ?d ?s}j{{'i 'd 's}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC 19:17:40 {?d J {-1 ==} {256 ==} m| {256 .%} if ?d} 19:17:45 !blsq "dd"{?i ?d ?s}j{{'i 'd 's}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC0je! 19:17:46 254 19:17:49 ah 19:17:49 hehe 19:17:52 -!- AndoDaan has quit (Ping timeout: 240 seconds). 19:18:08 Bicyclidine: Of course 19:18:13 me and AndoDaan 19:18:22 and some guys on golf.shinh.org 19:18:52 coo 19:18:57 http://regex.alf.nu/ 19:19:04 "Sorry, crashy today. Need to find an actual server." 19:19:23 clearly they've been compromised by shellbleed 19:19:34 :O 19:19:52 I hear there's a notorious hacker named "4chan" going around 19:19:56 I hope it wasn't them 19:20:08 now for the 'o' 19:20:25 !blsq "dd"{?i ?d ?s J}j{{'i 'd 's 'o}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC0je! 19:20:26 254 19:20:37 !blsq "dodoso"{?i ?d ?s J}j{{'i 'd 's 'o}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC0je! 19:20:37 15.937377450509228 19:20:47 !blsq "dodoso"{?i ?d S[ J}j{{'i 'd 's 'o}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC0je! 19:20:47 64516 19:21:16 > 254*254 19:21:18 64516 19:21:24 > 6 19:21:24 !blsq "dodoso"{?i ?d S[ J}j{{'i 'd 's 'o}jFi}m[si)bx{J{-1==}{256==}m|{256.%}if}IC0je!#s 19:21:24 {64516 64516 254 255} 19:21:25 6 19:21:27 there 19:21:28 it works 19:21:34 > "6" 19:21:36 "6" 19:21:50 > 34567890987654**87654567 19:21:51 Infinity 19:21:54 :o 19:22:50 [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=40562&oldid=39867 * 81.62.136.104 * (+109) + Burlesque 19:23:09 Bicyclidine: The problem is that syntactically Burlesque is really easy 19:23:12 {} is a block 19:23:14 (a List) 19:23:18 {1 2 3} and that stuff 19:23:34 'a is a character, "a" is a string, 5 is an integer and 5.0 is a double 19:23:44 commands are two characters long 19:23:51 ) is a prefix that maps a command over a list 19:23:55 !blsq {1 2 3 4})?i 19:23:56 {2 3 4 5} 19:23:57 !blsq {1 2 3 4})?d 19:23:58 {0 1 2 3} 19:24:01 !blsq {1 2 3 4})S[ 19:24:02 {1 4 9 16} 19:24:15 ?i is increment, ?d is decrement and S[ 19:24:15 Maybe you meant: id ignore index instances instances-importing irc-connect irc-password v @ ? . 19:24:18 I don't know what S[ is 19:24:23 but it's square for integers at least 19:24:51 !blsq "0001229"'0S[ 19:24:51 "1229" 19:24:55 it's StripLeft 19:24:59 for strings 19:25:10 !blsq {1 1 2 3}1S[ 19:25:11 {2 3} 19:25:14 and lists 19:25:49 Bicyclidine: since most stuff is encoded as commands 19:25:57 to make sense of a Burlesque-Program you need to know the 19:26:00 !blsq ?_ 19:26:00 "I have 340 non-special builtins!" 19:26:03 340 builtins 19:26:22 which most of them have multiple uses depending on the arguments 19:26:29 so you need to know about 700 things commands do 19:26:33 it's just as easy as that 19:26:51 great. 19:27:04 !blsq "abc def"wd 19:27:04 {"abc" "def"} 19:27:06 ^- words 19:27:11 !blsq "abc def"wdwd 19:27:11 "abc def" 19:27:15 but wd is also unwords 19:27:27 !blsq "abc"** 19:27:27 ERROR: Burlesque: (**) Invalid arguments! 19:27:31 lol 19:27:37 what's ** again 19:27:38 a merge 19:27:43 !blsq "abc""def"** 19:27:44 "adbecf" 19:27:48 !blsq 'a** 19:27:49 97 19:28:18 !blsq "bicyclidine"su 19:28:19 {"b" "c" "d" "e" "i" "l" "n" "y" "bi" "cl" "cy" "di" "ic" "id" "in" "li" "ne" "y 19:28:28 !blsq "bars"su 19:28:28 {"a" "b" "r" "s" "ar" "ba" "rs" "ars" "bar" "bars"} 19:28:58 !blsq "barabarsa"su"barslala"suIN 19:28:58 {"a" "b" "r" "s" "ar" "ba" "rs" "ars" "bar" "bars"} 19:29:11 !blsq "blarabarsa"su"barslala"suIN 19:29:12 {"a" "b" "l" "r" "s" "ar" "ba" "la" "rs" "ars" "bar" "bars"} 19:29:27 !blsq "blarabarsa"su"barslala"suIN(L[)>m 19:29:27 ERROR: Burlesque: (-]) Invalid arguments! 19:29:29 what 19:29:37 !blsq "blarabarsa"su"barslala"suIN{L[}>m 19:29:37 "bars" 19:29:41 right 19:29:42 there you go 19:29:47 longest common substring 19:30:59 !blsq {1 2 3}m] 19:30:59 {"1" "2" "3"} 19:31:08 !blsq {1 2 3})Sh 19:31:09 {"1" "2" "3"} 19:31:15 hm neat 19:31:29 Bicyclidine: Also you need to know sideffects 19:31:37 because commands are sometimes implemented using different commands 19:31:45 !blsq 3mo10.+ 19:31:46 {3 6 9 12 15 18 21 24 27 30} 19:31:50 ^- mo is multiplesOf 19:31:56 it's defined using some other commands 19:32:00 which means 19:32:04 !blsq {1 2 3 4}mo 19:32:04 {1 4 9 16} 19:32:09 ^- this is undocumented 19:32:23 but it's a sideffect due to sideffects of commands it is implemented in 19:32:34 so it happens to be shorter than 19:32:40 !blsq {1 2 3 4})S[ 19:32:40 {1 4 9 16} 19:32:54 it was just recently discovered by me that mo can square a list 19:32:58 and it's been there for years 19:33:55 !blsq {1 2 3 4 5}4{3 4}pm 19:33:56 {1 2 3 4 5} 19:34:00 hu 19:34:13 !blsq {1 2 3 4 5}4.+ 19:34:14 {1 2 3 4} 19:34:27 !blsq {7 7 1 2 3 4}{1 2 3 4 5}4pm 19:34:28 {7 7} 19:34:55 also it can do Fibonacci better than golfscript2 19:34:57 -!- Bicyclidine has quit (Ping timeout: 246 seconds). 19:35:21 namely 9 bytes 19:35:40 !blsq 1Jq.+10C! 19:35:40 144 19:37:01 btw: Does anybode know whether there's an established term for C! 19:37:07 I just call it continuation 19:37:26 it performs operations without destroying the arguments to the it 19:37:37 kinda like 19:38:23 i.e. there's add := pop a, pop b, push a+b 19:38:47 the continuation of add is := pop a, pop b, push a, push b, push a+b 19:40:31 -!- AndoDaan has joined. 19:40:52 AndoDaan: you just missed the 10B solution for Fibonacci Numbers ;) 19:41:32 eventhough you wrote it, I'm still impress by how you handle burlesque 19:41:47 -!- conehead_ has joined. 19:41:48 what's that supposed to mean o_O? 19:44:44 You mean unlike zzo38 I actually take the time to document it ;)? 19:45:08 -!- AndoDaan_ has joined. 19:45:10 Damn lousy internet connection. 19:45:18 21:41 < mroman_> what's that supposed to mean o_O? 19:45:18 21:44 < mroman_> You mean unlike zzo38 I actually take the time to document it ;)? 19:46:12 see, I guess I'm still confused. 19:46:24 o_O? 19:46:26 -!- Sorella has joined. 19:46:27 Who came up with "Burlesque?" 19:46:32 I did. 19:46:37 -!- AndoDaan has quit (Ping timeout: 276 seconds). 19:46:43 -!- AndoDaan_ has changed nick to AndoDaan. 19:47:04 Ah. My brain is terrible. 19:47:19 21:41 < AndoDaan> eventhough you wrote it, I'm still impress by how you handle burlesque 19:47:19 and why... "Burlesque?" 19:47:28 ^- how so? 19:47:40 Burlesque? The name? It's some sort of ancient erotic dance 19:47:48 so it's offensive (to some) but doesn't have fuck in it 19:47:53 -!- Sorella has quit (Changing host). 19:47:53 -!- Sorella has joined. 19:48:07 although there usually is no nudity 19:48:12 it has class. 19:48:21 when you find that aspect of mo you took to it right away. 19:48:40 hmm 19:48:43 hm? 19:48:48 Your english is confusing :) 19:49:19 I'm very open about Burlesque 19:49:26 It's not fair if I keep stuff secret 19:49:40 because it would be so easy for me add secret stuff nobody knows and then win at golfing with secrets nobody knows 19:50:05 -!- conehead has quit (*.net *.split). 19:50:09 but I'm always amazed at finding secrets I didn't know about even though I've written the code 19:50:20 "ra" is also a good example 19:50:27 there was this golfing challenge once 19:50:30 with "5,6" 19:50:37 you can parse it 19:50:41 !blsq "5,6"ps 19:50:41 {5 , 6} 19:50:48 and then throw away the , with 19:50:53 !blsq "5,6"psrte! 19:50:53 5 19:50:55 !blsq "5,6"psrte!#s 19:50:55 {5 6} 19:50:58 !blsq "5,6"psrte!.+ 19:50:58 11 19:51:09 but ra (ReadArray) doesn't require [ ] 19:51:14 and it skips over , 19:51:23 which is based on how silly the parser was implemented 19:51:26 !blsq "5,6"ra 19:51:26 5 19:51:33 !blsq "5,6"ra#s 19:51:33 {5} 19:51:53 !blsq "1,2,3"ra 19:51:54 1 19:51:57 wait 19:51:59 is that GolfScript? 19:52:09 !blsq "1,2,3"^^ra 19:52:10 1 19:52:29 I guess it was a different challenge then 19:52:33 !blsq {1 2 3 4}Shra 19:52:33 {1 2 3 4} 19:52:36 ra hides? 19:52:41 no 19:52:45 ra is ReadArray 19:52:49 right 19:53:07 !blsq "[1,2,3]"ra 19:53:07 {1 2 3} 19:53:35 !blsq "[1,2,3]"ra?+ 19:53:36 ERROR: Burlesque: (.+) Invalid arguments! 19:54:10 !blsq "[1,2,3]"ra 19:54:11 {1 2 3} 19:54:18 !blsq "[1,2,3]"ra.+ 19:54:19 ERROR: Burlesque: (.+) Invalid arguments! 19:54:21 !blsq "[1,2,3]"ra.+) 19:54:22 ) 19:55:24 question: when has hiding part of the stack ever been usefull? 19:55:42 no case is known so far 19:55:56 cool. :p 19:56:02 due to how the parser behind ra is implemented you can use it as a fail-safe parser 19:56:05 !blsq "5a"ps 19:56:06 {ERROR: (line 1, column 3): 19:56:13 ^- won't work because it fails on the a 19:56:16 !blsq "5a"ra 19:56:16 5 19:56:20 ^- will stop at an error 19:56:57 probably will come in handy. 19:57:24 ra was added to be able to parse challenges that have lists as input 19:57:30 (i.e. python style lists) 19:58:13 also 19:58:22 !blsq "[5,,,,,1,]"ra 19:58:22 {5 1} 19:58:29 ^- in case you ever need that 19:58:56 !blsq "[,,,5,,,,1,]"ra 19:58:56 ERROR: (line 1, column 2): 19:59:02 !blsq "[5,,,,1,]"ra 19:59:03 {5 1} 19:59:06 !blsq "[5,,,,1,,,]"ra 19:59:06 {5 1} 19:59:19 I guess a list can't start with , then 19:59:23 interesting 19:59:36 !blsq "[,,,5,,,,1,,,]"rash 19:59:37 ERROR: (line 1, column 2): 19:59:46 !blsq "[,5]"ra 19:59:46 ERROR: (line 1, column 2): 19:59:54 nope. ra doesn't accept , at that position 20:00:12 !blsq "[,5,,,,1,,,]"ifra 20:00:13 ERROR: Burlesque: (ra) Invalid arguments! 20:00:22 !blsq "[,,5,,1]""[0-9]+"=~ 20:00:22 {} 20:00:24 !blsq "[,,5,,1]""[0-9]+"~= 20:00:24 1 20:00:29 !blsq "[,,5,,1]""[0-9]+"=~ 20:00:30 {} 20:00:37 !blsq "[,,5,,1]""[0123456789]+"=~ 20:00:37 {} 20:00:40 hu 20:00:51 !blsq "[,,5,,1]""[0123456789]+"j=~ 20:00:52 {} 20:00:55 wtf 20:01:02 !blsq "[,,5,,1]""[[:digit]]+"j=~ 20:01:03 {} 20:01:06 !blsq "[,,5,,1]""[[:digit]]+"=~ 20:01:06 That line gave me an error 20:01:11 !blsq "[,,5,,1]""[[:digit]]"=~ 20:01:12 That line gave me an error 20:01:14 hm 20:01:19 can't remember how this worked 20:02:50 !blsq "[,5]"sh 20:02:51 [,5] 20:03:04 !blsq "[,5]"sH 20:03:05 ERROR: Burlesque: (ff) Invalid arguments! 20:03:09 !blsq "[,5]"Sh 20:03:09 "[,5]" 20:03:15 !blsq "[,5]"Shra 20:03:16 ERROR: (line 1, column 2): 20:03:20 !blsq "[5]"Shra 20:03:21 {5} 20:04:01 !blsq "[5,,,,,1]"raL[ 20:04:02 2 20:04:13 !blsq "[5,,,,,1,]"raL[ 20:04:14 2 20:04:32 !blsq "[5,,,,,1,]"ra1en 20:04:32 {5 1} 20:05:44 alright, thanks for the insights. I'll do my best to wield them. 20:05:57 gtg cya mroman, bye guys 20:06:02 -!- AndoDaan has quit. 20:10:19 -!- Bicyclidine has joined. 20:10:49 `! bf_txtgen Go die in a hole 20:10:53 125 ++++++++++++++[>+++++>++++++++>++>+++++++<<<<-]>+.>-.>++++.>++.<<------.----.>.>+++++.+++++.<.<----.>.<+++++++.>>+.---.<<---. [435] 20:11:14 how rude. 20:12:43 Editing the nickname wisdom entries is positively commonplace. At least I'm pretty sure I haven't written my own. 20:14:04 !bf_txtgen balls of steel 20:14:10 durr 20:19:47 [wiki] [[Special:Log/newusers]] create * JannieOates * New user account 20:42:38 -!- `^_^v has quit (Ping timeout: 250 seconds). 20:47:47 -!- Sorella has quit (Ping timeout: 245 seconds). 20:48:36 -!- AnotherTest has quit (Ping timeout: 272 seconds). 20:59:42 -!- Bicyclidine has quit (Ping timeout: 272 seconds). 21:02:40 -!- Patashu has joined. 21:04:29 -!- GeekDude has quit (Remote host closed the connection). 21:05:41 -!- Bicyclidine has joined. 21:15:12 -!- zzo38 has joined. 21:20:23 -!- Phantom_Hoover has joined. 21:23:37 -!- Sprocklem has quit (Ping timeout: 260 seconds). 21:25:32 -!- Patashu has quit (Ping timeout: 250 seconds). 21:40:42 holy crap, Haskell patten matching is cool. 21:49:29 -!- oerjan has joined. 21:49:42 -!- GeekDude has joined. 21:59:14 -!- Bicyclidine has quit (Ping timeout: 272 seconds). 21:59:35 -!- Bicyclidine has joined. 22:09:14 -!- augur has quit (Quit: Leaving...). 22:22:17 -!- augur has joined. 22:47:10 -!- Sorella has joined. 22:47:59 -!- Sorella has quit (Changing host). 22:47:59 -!- Sorella has joined. 22:58:47 -!- Bicyclidine has quit (Ping timeout: 258 seconds). 23:10:12 -!- Sorella has quit (Ping timeout: 246 seconds). 23:12:55 -!- Bicyclidine has joined. 23:22:27 -!- Sprocklem has joined. 23:47:57 indeed 23:56:28 -!- tromp__ has quit (Read error: Connection reset by peer).