00:05:31 I wrote another example 00:05:41 crap, I think writing semi-useful programs is possible 00:06:24 see, this is an advantage of formalization. 00:06:40 hmm? 00:06:41 Ooh 00:06:43 once you strip away obfuscation, you can get a formalism that is itself fucked, and go from there. this woulda been more obvious without the smoke! 00:06:45 Each letter is a register 00:06:47 Interesting 00:08:33 It's not turing complete, but I wonder how powerful it is 00:09:31 well, only today have I discovered its power 00:09:36 ...two years after creating it 00:10:04 =P 00:10:47 here's another semi-useful program! http://esolangs.org/wiki/Deviating_Percolator#Countdown 00:10:54 proving you can indeed write loops in this thing 00:12:31 It does have a conditional jump 00:13:33 yes 00:13:54 the thing was I didn't realise there was any practical way to change a variable's value multiple times and keep track of it 00:14:51 -!- Bike has quit (Ping timeout: 246 seconds). 00:16:15 * oerjan learns that #haskell activity has decreased since 2009 00:17:08 * kmc <- 00:17:17 oerjan: note that lambdabot used to announce the title of every link. 00:17:26 (and lambdabot activity has also decreased.) 00:18:14 hmm 00:18:22 shame I didn't include any trig functions in DevPerc 00:18:26 * shachaf learns that #rust activity is at an all-time high. 00:18:34 last i checked kmc was also at an all-time high 00:18:37 (drugz joke btw) 00:18:43 lol 00:19:15 -!- Bike has joined. 00:19:27 shachaf: don't joke, he _has_ already offered you cookies you know 00:20:02 haha 00:20:06 I won't drug shachaf 00:20:12 that's Not Cool 00:20:39 not without permission at least?? 00:20:58 i've learned from browsing r/all in previous days that r/trees is all about cookies. 00:21:07 lol# 00:21:44 kmc: when we were in SF i was going to make a drugz joke when someone talked about setting off fireworks while "surrounded by trees"""" 00:21:45 lol#, is that the .net derivative of lol? 00:22:02 it's an unboxed lol 00:22:05 v. fast 00:22:05 ah 00:22:19 shachaf: yeah if you asked for some, that would be different 00:22:21 just a quick giggle 00:22:28 also i'm glad you approve of the term 'trees' 00:22:31 a cosmic giggle on the breath of the universe 00:22:37 TREEEEEEEEEEES 00:22:42 kmc: wait do i? 00:22:46 i'm not sure 00:22:57 it's a p. popular term at stanford 00:23:13 also ++ for remembering the cosmic giggle quote 00:23:22 also I didn't know you know stanford things 00:23:32 well i do live right by it 00:23:58 shame I didn't include any trig functions in DevPerc <-- bit tricky with only integers, no? 00:24:06 if nothing else there are people with "party with trees" shirts and a stanford logo on the back 00:24:10 which i assume is a drugz joke?? 00:24:29 seems likely 00:24:39 oerjan: obviously SINE OF X should be sin(x*pi) 00:24:44 simple! 00:24:44 is the stanford logo tree El Palo Alto? 00:24:53 yes 00:25:17 oerjan: round(sin(x*180/Math.PI)*128 +127) 00:25:19 Bike: i admit that _is_ simple 00:25:21 does kmc answer his own questions? 00:25:22 yes 00:25:57 it's also the mascot or something 00:26:01 ajf: degrees?? get out 00:26:56 yeah make that *128 instead 00:28:08 Bike: yes, degrees are inappropriate 00:28:15 it would make more sense to use a 0-255 scale 00:28:57 hmm 00:29:18 I could add some "character" to the language by adding COSEC and SEC, but not SINE or COSINE :P 00:30:42 -!- Bike has quit (Ping timeout: 264 seconds). 00:31:31 -!- Bike has joined. 00:32:54 -!- sprocklem has quit (Remote host closed the connection). 00:33:10 -!- tertu has quit (Ping timeout: 256 seconds). 00:33:46 fun fact: sin^2(x) = 4/(cosec^2(x/2) + sec^2(x/2)) 00:34:28 now do sin(sin(x)) 00:35:01 it's dull 00:35:30 it looks mostly like a normal sine graph 00:35:44 f^2(x) as notation for f(x)^2 is :( 00:35:52 yes 00:36:15 :< 00:36:22 let's just use exp instead of everything. 00:36:47 elliott: esp.ly when you use sin¯¹ to mean the inverse of sin 00:37:06 i don't know what the inverse of sin is but i bet Fiora has mmitted it 00:38:29 kmc: i didn't know you were half-methodist 00:38:38 (drugz joke) 00:39:30 c.c 00:39:31 mmitted? 00:39:36 actually I did go to a methodist church for a while 00:39:41 don't really have any interesting stories about it 00:40:00 I think I took church somewhat more seriously than my parents intended, and I'm slightly pissed off about it still 00:40:12 Fiora: it's like the dual of "committed" 00:40:28 that makes impressively little sense 00:40:34 well not impressively. 00:40:35 Bike: thx hth 00:40:45 maybe i should've said cosin 00:40:47 "whatever" 00:40:53 kmc: is that why you say things like "religion is a personality flaw" 00:41:11 I don't understand... 00:41:27 that's because it doesn't make sense. 00:42:01 maybe 00:42:46 D(sin^n) = D(sin^(n-1)) * (cos . sin^(n-1)) 00:42:50 that's kinda neat. 00:43:01 where ^n is composition, as god/elliott intended. 00:43:13 Bike: hey you should've been at conal's talk about automatic differentiation 00:43:22 at bahask? 00:43:45 The other one. 00:43:55 I don't know what the other one is 00:44:10 The one in Mountain View. 00:44:15 kmc: have you considered manichaeism 00:44:28 oh, still cali. 00:46:30 Bike: Well, conal used to live in WA. 00:46:35 But then you didn't say hi so he moved. 00:47:10 :< 00:48:16 http://www.guardian.co.uk/global-development-professionals-network/2013/jul/24/open-source-drug-discovery-research i think my favorite part of open source culture is all the parts that have nothing to do with computer programming 00:49:54 -!- kallisti has joined. 00:49:55 -!- kallisti has quit (Changing host). 00:49:55 -!- kallisti has joined. 00:50:05 -!- yorick has quit (Remote host closed the connection). 00:52:04 my least favorite part is stallman whining in the comments there 00:52:44 good grief that walloftextcomment 00:52:47 Probably not actual rms 00:52:55 RMSaaS 00:53:42 https://id.guardian.co.uk/profile/rmstallman/public 00:56:41 the other joke here is that i guess stallman likes nader? 00:57:37 or pseudo stallman as the case may be. 01:00:23 shachaf: do you think the use of uintptr_t here is a little odd? https://github.com/mozilla/rust/blob/master/src/rt/rust_log.cpp#L321-L325 01:02:08 -!- Bike has quit (Ping timeout: 260 seconds). 01:03:24 -!- Bike_ has joined. 01:03:32 -!- kallisti has quit (Ping timeout: 260 seconds). 01:03:48 -!- Bike_ has changed nick to Bike. 01:06:26 isn't there %p or something 01:06:35 the originals are size_t 01:06:40 so %z would work but it's maybe a glibc extension 01:06:47 but I will just cast them to unsigned long instead 01:06:50 oh, that's weird 01:07:02 Linux kernel code has a policy of "fuck it, unsigned long is the one true type" 01:07:20 i assume that's a torvalds quote 01:07:30 they definitely assume pointers fit in an unsigned long 01:07:34 but you can do that when you're a kernel 01:07:36 kmc: I actually ran into a crash bug at work on windows 01:07:40 where a log message used %z, I think 01:07:43 and refuse to build on compilers other than gcc 01:08:08 and because windows interpreted the message differently, it dereferenced a non-pointer as a pointer 01:08:12 ouch 01:08:23 ew 01:08:46 * kmc -> afk 01:15:11 abstraction is an obstacle that makes it hard to build features 01:15:38 the wrong feature is easier to change than the wrong abstraction 01:43:08 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com). 01:44:00 -!- ajf has quit. 01:46:23 -!- carado has quit (Ping timeout: 264 seconds). 01:55:53 kmc: %zu is standard 02:35:18 -!- kallisti has joined. 02:35:18 -!- kallisti has quit (Changing host). 02:35:18 -!- kallisti has joined. 03:15:50 -!- sacje has quit (Ping timeout: 240 seconds). 03:21:02 -!- Nisstyre has quit (Quit: Leaving). 03:21:08 -!- sacje has joined. 03:23:40 -!- kallisti has quit (Quit: Reconnecting). 03:28:41 -!- kallisti has joined. 03:28:41 -!- kallisti has quit (Changing host). 03:28:41 -!- kallisti has joined. 03:34:30 -!- nooodl has quit (Ping timeout: 256 seconds). 03:44:12 -!- conehead has joined. 03:45:24 -!- conehead has quit (Remote host closed the connection). 03:46:06 -!- conehead has joined. 04:04:03 I like the annotated UI of /r/rust, btw 04:04:49 gives a certain terroir 04:05:33 is that a word 04:05:57 it is now 04:06:00 it is, but not for uis afaik 04:06:07 it applies to wine tasting 04:06:32 that is one such use. as with all French terms, they have to make it about food/drink 04:08:16 or I guess you could use 'ambiance', but who wants English words 04:08:36 *e, yeah 04:09:48 Anyway, it's like those designs that use Cyrillic/Hebrew characters to write English. Except it's using syntax, and of a programming language. 04:10:12 -!- Bike has quit (Ping timeout: 256 seconds). 04:11:14 -!- Bike has joined. 04:11:38 -!- oerjan has quit (Quit: Ngiote). 04:15:35 -!- tertu has joined. 04:21:05 Hmm, I think I'm going to be sick in the next few days. :-( 04:21:10 Maybe. 04:23:11 Hope you get better after getting worse soon 04:24:29 Perhaps don't get worse at all 04:25:03 Perhaps. 04:30:07 -!- kallisti has quit (Quit: Lost terminal). 04:31:42 -!- kallisti has joined. 04:32:34 -!- kallisti has quit (Client Quit). 04:32:45 -!- kallisti has joined. 04:56:47 -!- oklopol has joined. 05:00:45 -!- kallisti has quit (Ping timeout: 264 seconds). 05:06:19 -!- kallisti has joined. 05:06:20 -!- kallisti has quit (Changing host). 05:06:20 -!- kallisti has joined. 05:17:52 -!- copumpkin has quit (Ping timeout: 276 seconds). 05:18:31 -!- tertu has quit (Ping timeout: 276 seconds). 05:46:11 -!- copumpkin has joined. 05:48:02 -!- mnoqy has joined. 05:51:43 -!- tertu has joined. 06:18:19 -!- sprocklem has joined. 06:38:38 -!- tertu has quit (Ping timeout: 240 seconds). 06:42:04 -!- douglass_ has quit (Ping timeout: 256 seconds). 06:51:23 -!- augur has quit (Ping timeout: 245 seconds). 06:54:12 -!- Bike has quit (Ping timeout: 246 seconds). 06:56:59 -!- pumpkin has joined. 06:56:59 -!- copumpkin has quit (Remote host closed the connection). 06:57:48 -!- Bike has joined. 07:00:32 -!- sebbu has quit (Ping timeout: 260 seconds). 07:03:08 -!- augur has joined. 07:05:03 -!- conehead has quit (Quit: Computer has gone to sleep.). 07:06:25 -!- sacje has quit (Excess Flood). 07:06:54 -!- sacje has joined. 07:08:53 How the hell do you write "const char* const *myVar;" in a sensible way in C? "const char * const * myVar;"? It doesn't fit into my normal pattern of "type *var;" 07:09:35 That is, how should the spaces be done. 07:09:43 const char *const *myVar 07:09:52 const is like a subscript. *_{const} 07:10:21 Hm 07:10:25 Makes sense 07:10:26 typedef const char * const * vorpal; vorpal blade; clearly 07:10:32 Bike, nice 07:11:41 I think I could make it const char *const *const myVar actually, since i never change it after assignment (it is set early in main() and read far outside of main) 07:12:11 /home/arvid/src/own/cfunge/trunk/src/main.c:264:5: warning: will never be executed [-Wunreachable-code] 07:12:11 break; 07:12:15 That is clang 07:12:21 #define ★ *const 07:12:22 GCC complains if I remove the break! 07:12:29 Clang complains if I have the break. 07:12:31 God dammit 07:12:41 Conclusion: Take a break. 07:12:50 shachaf is on the mark here. 07:13:02 as always 07:13:10 quite 07:13:22 shachaf, I guess GCC isn't really smart about non-standard abort functions, even if that function does call abort in the end 07:13:44 shachaf, does unicode even work in that context?! 07:13:45 Vorpal: consider adding __attribute__((noreturn)) as needed 07:13:53 Vorpal: I should hope so! 07:14:14 Maybe you'll need a space after the ★, though. Not so great. 07:14:43 "Innovative? Not really innovative. Ever since the Ipad came out, that was the last innovation." 07:15:08 Gracenotes: innovation in trolling technologies 07:15:24 comex, hm good point. But what about other compilers then? Even though we can obviously hide the attribute from them, they won't understand that 07:15:27 Vorpal: Speaking of which, "char* x;" is the devil. You should use "char *x;" everywhere. 07:15:38 shachaf, that is what I do as I said 07:15:42 "It doesn't fit into my normal pattern of "type *var;"" 07:15:46 Vorpal: actually, C11 has stdnoreturn.h and compilers actually support it these days 07:15:56 comex, this is C99 07:15:57 well, some of them 07:15:57 Oh. OK then. 07:16:22 * comex shrug 07:17:10 hm 07:17:17 then either use an ifdef and __attribute__, or turn off that stupid warning 07:17:50 imo burn that bridge when you come to it 07:18:21 `relcome comex 07:18:27 ​comex: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 07:19:03 wow, that's horrible :p 07:19:57 shachaf: You can't (portably) #define ★, macro names must be identifiers and identifiers consist only of [a-z0-9_] or "other implementation-defined characters". 07:20:35 (Or universal-character-name's.) 07:21:10 u\2605 07:21:13 er, \u2605 07:21:26 nope, not in universal character names 07:21:45 c needs a trigram for ★. 07:22:10 I seem to recall that GCC needs a flag before it accepts \uXXXX in identifiers. 07:22:40 shachaf: bummer, hope you aren't sick for your birthday and/or trains-doings in SF 07:23:55 Aww, "error: universal character \u2605 is not valid in an identifier" even with -fextended-identifiers. 07:24:23 fizzie: hmph 07:24:46 kmc: hope so also 07:25:08 "Each universal character name in an identifier shall designate a character whose encoding in ISO/IEC 10646 falls into one of the ranges specified in D.1." 07:25:46 kmc: perhaps i will sleep and wake up and see 07:26:07 Rust is the only language I know of that specifies a Unicode normalization form for source (NFKC) 07:27:57 D.1 allows 00A8, 00AA, 00AD, 00AF, 00B2-00B5, 00B7-00BA, 00BC-00BE, 00C0-00D6, 00D8-00F6, 00F8-00FF, 0100-167F, 1681-180D, 180F-1FFF, 200B-200D, 202A-202E, 203F-2040, 2054, 2060-206F, 2070-218F, 2460-24FF, 2776-2793, 2C00-2DFF, 2E80-2FFF, 3004-3007, 3021-302F, 3031-303F, 3040-D7FF, F900-FD3D, FD40-FDCF, FDF0-FE44, FE47-FFFD, 10000-1FFFD, 20000-2FFFD, ..., E0000-EFFFD. 07:28:08 -!- variable has quit (Ping timeout: 256 seconds). 07:28:09 oh, just use agda 07:28:15 ≡ 07:30:05 Why does ungetc() exist? 07:30:20 For easy making of one-character lookahead parsers? 07:30:46 Hm okay, but that seems like a very minor use case 07:31:06 newlines? 07:31:19 Why would you want to do that with newlines? 07:31:26 It doesn't sound all that minor. "Read all the digits but not anything after the last digit", for example, sounds reasonably common. 07:31:54 Hm I guess so, yeah. I was thinking in terms of language parses 07:31:59 parsers* 07:32:14 Which mostly tend to work on lexers anyway 07:32:42 Any set of strings is a language. :p 07:32:59 Yes, that is true 07:33:06 kmc: oops i meant to send that in this channel 07:33:15 /home/arvid/src/own/cfunge/trunk/src/fingerprints/SCKE/SCKE.c:66:30: warning: cast from 'struct sockaddr *' to 'struct sockaddr_in *' increases required alignment from 2 07:33:15 to 4 [-Wcast-align] 07:33:22 ``oops'' 07:33:24 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `oops'': not found 07:33:26 Huh, I thought you were supposed to do that 07:33:58 Vorpal: me too, awkward 07:34:20 if you created it as a sockaddr_in, it should be aligned nicely enough 07:34:34 kmc: not entirely sure what happened but i hope things work out one way or another 07:34:37 i'd think struct sockaddr should have the max alignment requirement of any sockaddr_*, so this is a library bug 07:34:38 @hug kmc 07:34:38 http://hackage.haskell.org/trac/ghc/newticket?type=bug 07:34:43 thanks shachaf 07:34:45 * kmc hugs back 07:34:51 * Gracenotes hugs everyone 07:34:53 Well I do check that the family is AF_INET first, so it should not matter 07:35:40 fizzie, fungot uses STRN right? 07:35:40 Vorpal: firstfew x ( y:ys) m y: o ( drop m ys) m 07:35:45 * shachaf drugz everyone 07:35:47 do you see what I mean, though? if you are receiving the pointer from somewhere, the code that instantiated that point should have gotten the alignment right 07:35:53 http://www.floodgap.com/software/classilla/ 07:35:53 Vorpal: A lot, yes. Especially the Underload bit. 07:35:59 imo, why. 07:36:05 fizzie, do you happen to remember if it uses G (get string from fungespace)? 07:36:24 Vorpal: I'm sure it does use both G and P extensively. 07:36:41 Well, almost sure. 07:36:55 fizzie, I found a potential bug in cfunge's G here, thanks to clang's warnings. I use a stringbuffer helper module to build up the char. Which uses char*, not funge cells... 07:37:01 So it truncates the value. Heh 07:37:08 Well I'll fix that. 07:37:38 cfunge needs a security audit, clearly 07:37:40 Well, I wouldn't probably have hit that bug, since you can't get anything into the Underload program that isn't in the input that came over IRC. 07:37:45 Bike, clearly! 07:37:52 fizzie, right 07:38:06 i mean this is just irresponsible, what if someone hacked fungot's server to do something silly. 07:38:07 Bike: well yes, that's a urban legend i think. they usually feature manga characters, fan art and some times even nudity and hentai. :p they'll send invitations soon to the people 07:38:16 wow, ok. 07:38:34 what mode is this. i forget how to check 07:38:37 ^style 07:38:38 Wow, what a life fungot is living 07:38:38 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 07:38:38 Vorpal: i don't think 07:38:45 but of course. 07:38:48 fungot: We've all noticed *that*. 07:38:49 fizzie: and the scheme is just loads of interactive fiction in general. there are probably a great deal 07:39:09 (And the other major use of G/P is also related to the IRC messages; I don't think I use G/P for "data strings".) 07:39:49 shachaf: I'm trying to change the thing where my default way of dealing with interpersonal conflict is to stop talking to that person forever 07:40:33 it's tough because that solution ``works'' 100% of the time and often there is no clear other solution 07:40:46 * Vorpal considers how to make the string buffer module generic with respect to the element size 07:41:18 Templates! Oh, wait, C. 07:41:33 fizzie, quite. 07:41:35 implement a templating system through the preprocessor, duh 07:41:35 Templates done with the C preprocessor, then. 07:41:40 Bike: Great minds... 07:41:41 see. 07:42:01 fizzie, you can of course use macros for that. I do that for my hash library for no particular reason. 07:42:30 #define SUFFIX _long, #define TYPE long, #include "actual_header.h" 07:42:39 And so on 07:42:53 fizzie, gah you beat me to that, while i was typing 07:43:20 Anyway the code becomes such a mess, I would not recommend it 07:44:02 I had some sort of a macro-driven templatey thing for a "generic" fixed-size memory-block pool somewhere, it used some build-time helpers to collapse the implementations for all types with the same sizeof into one piece of code. That was also a mess. 07:44:32 Makes me wonder if C++ compilers do that for template instantiations that generate code that only depends on the size of the type. 07:44:59 Don't think so 07:45:39 Can you use sizeof with the preprocessor or how did you do the size-merging? 07:46:22 Build system scripts that compiled int main(void) { printf("%d", sizeof (TYPE)); } kind of programs and wrote new .h files, or something like that. 07:46:38 (The preprocessor doesn't indeed know about sizeof.) 07:46:43 -!- Bike has quit (Ping timeout: 276 seconds). 07:46:44 Ah 07:46:52 Er, %zu and not %d, I hope. 07:47:14 GNU Radio uses some Python template system (Cheetah?) to template some of its C files 07:47:42 Gecko has a Python script that outputs an expando macro header!! 07:47:52 Dammit, doing this with a element_size member of the struct is annoying, since I have to do indexing and what not into the array, and write a proper null byte at the end and so on... 07:51:50 maybe I'm sad that Rust can't do anything directly analogous to expando macros 07:51:52 If C++ compilers don't innately do it, I'm sure you could do it "manually" with just template class sized_pool { ... }; template class typed_pool : public sized_pool { ...}; kinda thing. 07:52:10 some linkers can merge functions that ended up identical 07:52:38 fizzie, most likely 07:52:47 I'm not sure if that's a standard name... I mean the thing where you have a file that's like FOO(bacon) \n FOO(celery) and then you can do #define FOO(x) printf("I like to eat " x); \n #include "foods.h" 07:53:02 Yeah this is too messy, Hm 07:53:24 kmc: "X-macros". 07:54:59 Though often the file is #define THINGS \\n FOO(bacon) \\n FOO(celery) instead, so that you can #define FOO(x) ... \n THINGS \n #undef FOO \n #define FOO(x) something_else(x) \n THINGS \n #undef FOO. 07:56:11 (I suppose it's not all that different from just #including twice, but at least it lets you stick other stuff in the file than just the list.) 07:56:40 that's nice too 07:57:13 what are the rules for repeated macro expansion, anyway? 07:58:57 I'm not sure what "repeated macro expansion" here exactly means. 07:59:11 Aha, got a better solution, make it completely multibyte internally. 07:59:39 The macro replacement rules in general are, I think, kinda tricksy, what with the rescan thing. 08:00:15 fizzie: well in this case you have a macro expanding to something which contains another macro (that wasn't "in scope" when the first macro was defined, although I wouldn't expect that to matter) 08:00:33 Oh, right, that. 08:00:43 I remember the rules for stringification in macros being weird 08:01:04 Which is why you have to do two layers of macros for it sometimes iirc 08:01:23 yeah I've never understood that 08:01:24 "A parameter in the replacement list -- is replaced by the corresponding argument after all macros contained therein have been expanded." 08:01:48 kmc, I hit the issue once I know, I forgot what exactly trigged it 08:02:07 That's the main rule that, I think, is in play for the above scenario. The replacement list of "THINGS" is "FOO(bacon) FOO(celery)", and "all macros contained therein" will be expanded before plonking it in. 08:03:08 But there's also the rescan: "After all parameters in the replacement list have been substituted -- The resulting preprocessing token sequence is then rescanned, along with all subsequent preprocessing tokens of the source file, for more macro names to replace." 08:03:26 All of it combined makes for pretty unobvious behaviour. 08:04:05 E.g. the first rule I pasted above isn't used when the argument comes immediately after # or ##, which causes that stringification issue. 08:04:51 #define FOO bar #define S(x) #x and then S(FOO) expands to "FOO", because the x in the replacement list follows a # and therefore isn't macro-replaced. 08:05:44 Whereas #define FOO bar #define S(x) S_(x) #define S_(x) #x has S(FOO) expand to "bar", because of S(FOO) -> S_(bar) -> "bar". 08:05:57 Ah 08:06:18 (When processing the replacement list "S_(x)", x isn't an argument of # or ##, and therefore gets macro-expanded.) 08:07:33 I think the rationale said something about it being this way so that you can, if you want, stringize the actual non-expanded argument. But it's all still kinda messy. 08:12:25 And the rescan step makes a difference e.g. in #define FOO(x) 1+x #define BAR(x) (2*x) FOO(BAR)(42) where the initial expansion of "FOO(BAR)" is to "1+BAR" which can't macro-expand further, but in the rescan step also the rest of the source file is considered, and the "1+BAR(42)" expands into "1+(2*42)", which it wouldn't if preprocessing continued from the "(42)" without a rescan. 08:15:54 fizzie, heh, when does the rescan matter in non-obfuscated code though? 08:16:13 Because I never seen anyone write FOO(BAR)(42) 08:16:46 I think I've seen someone give an example that was at least slightly more reasonable, but I can't invent one. 08:16:58 okay 08:18:28 The Rationale also gives a intentionally-left-ambiguous example of #define f(a) a*g #define g(a) f(a) f(2)(9) which can legally expand either to the tokens 2*f(9) or 2*9*g, depending on whether the f(9) is counted as "nested" in the expansion of f(2). 08:19:56 "f(2)" expands initially to "2*g", and in the rescan the g is combined with (9) to produce "g(9)", which expands to "f(9)", but then it's ambiguous whether it's still part of the expansion of f(2) in which case f is not available for expansion due to the no-recursion rule, or not. 08:20:33 "The C89 Committee intentionally left this behaviour ambiguous as it saw no useful purpose in specifying all the quirks of preprocessing for such questionably useful constructs." 08:20:46 Hm there is an issue with snprintf & related function. They return number of chars written as an int. 08:20:50 Should be a size_t 08:21:01 Unless my man page is wrong 08:21:30 It's int in the standard. But it can return a negative error code, too. 08:21:38 ssize_t then 08:21:46 ssize_t is not standard, though. 08:21:53 It's a POSIX thing. 08:21:57 Ah right 08:22:39 ssize_t is kind of weird, since it basically is smaller than size_t. 08:23:00 -!- Taneb has joined. 08:23:05 Unlikely today that sizes won't fit into 63 bits sure 08:23:13 But still 08:23:51 It is a bit of a compromise. 08:24:15 On a 32-bit system I would assume that means it can't represent anything larger than 2 GB, which is not an unreasonable size on many systems 08:24:53 I suppose it's allowed for ssize_t to be a 65-bit signed type (with a lot of padding), but I don't know of any systems where it isn't just the two's-complement interpretation of size_t. 08:25:04 Hm 08:25:23 POSIX just says "ssize_t: Signed integer type used for a count of bytes or an error indication." 08:26:34 Hm 08:44:19 fizzie, a couple of the other STRN functions also have similar issues, such as using libc's strstr, strcmp and similar. 08:44:30 Not sure what I was thinking when writing this 08:44:57 obviously not an issue for the IO functions, but for the rest... 08:46:16 -!- sprocklem has quit (Remote host closed the connection). 08:46:32 -!- MindlessDrone has joined. 08:50:14 -!- variable has joined. 08:51:45 -!- sprocklem has joined. 09:30:01 switch (sizeof (longword)) 09:30:02 { 09:30:02 case 4: magic_bits = 0x7efefeffL; break; 09:30:02 case 8: magic_bits = ((0x7efefefeL << 16) << 16) | 0xfefefeffL; break; 09:30:02 default: 09:30:02 abort (); 09:30:04 } 09:30:09 That case 8-line is weird 09:30:17 Very strange way of writing a 64-bit number 09:30:36 (This is eglibc source code) 09:33:37 Yeah; doing a plain << 32 is UB if sizeof (T) * CHAR_BIT was <= 32, but I suppose in "case 8:" they know that's not the case. 09:33:49 Ah, right 09:34:00 fizzie, I was thinking: why not use a ULL constant 09:34:06 Or is that C99? 09:34:36 LL (long long) in general is C99. 09:35:14 Hm true 09:35:45 If they know that plain long can hold that large values, there should be no issues with just writing 0x7efefefefefefeffL, but I guess the idea is to avoid errors when it's being compiled for a smaller 'longword'. 09:36:09 Ah 09:36:19 And possibly also << 32 (even when not executed) causes warnings in that case, that could be the reason. 09:36:53 Vorpal: is that a strlen? 09:37:13 or strcpy or strcmp, whatever 09:37:47 lifthrasiir, strchr, and that specific pattern is looking for \0 09:38:15 yeah, that magic constant looked familiar. 09:38:36 I'm reading up on how an efficient strstr is done, turns out it uses strchr to find potential matches first for example 09:38:56 Then it does a two_way_short_needle() search, whatever that is 09:42:20 Heh, there is code here to handle CHAR_BIT < 10 and CHAR_BIT >= 10 separately 09:42:27 In glibc? Really? 09:44:47 Trivia factoid of the day: SH3 has an instruction "CMP/STR Rn, Rm", which sets the T bit if any of the bytes of Rn equals the corresponding byte in Rm. (It's for making four-bytes-at-a-time string operations easier.) 09:45:01 Nice 09:45:20 what sort of architecture is SH3? 09:45:29 E.g. you can do the "is there a zero byte" by CMP/STR'ing against all-bits-zero. 09:45:39 CISC? 09:46:05 It's an (arguably) RISC microcontroller with some DSP leanings. 09:46:15 At least RISC enough to be a load-and-store type of thing. 09:46:15 Ah, that is why I never heard of it 09:47:37 Well, bbl, won't have time to finish fixing STRN today, probably not until the weekend. 09:48:26 Many of the SH family chips have ended up in Sega consoles. 09:49:12 (SH-2 in 32X and Saturn, SH-4 in Dreamcast.) 09:51:05 Hm, when I drag a maximised chromium window from my primary monitor to my (slightly smaller) secondary monitor, it often decides to go full screen... 09:51:12 And sometimes get stuck in full screen 09:51:15 which is quite annoying 09:55:18 Fiora: Re the pairing thing from yesterday, I was going to say that (IIRC) (at least older) MIPS FPUs have 32 single-precision float registers, but each consecutive (even, odd) pair can be used as a single double-precision float; you just use the .d version of the instruction and give the even-numbered register as the operand. 09:56:07 Fiora: (Not that in that case the ability to address the high or low half of a double-precision float as a single-precision float is perhaps terribly useful.) 09:56:32 bbl 09:58:34 -!- sprocklem has quit (Remote host closed the connection). 10:13:15 -!- Jafet1 has joined. 10:14:57 -!- Jafet has quit (Ping timeout: 248 seconds). 10:38:14 -!- oklofok has joined. 10:39:53 -!- Jafet1 has changed nick to Jafet. 10:42:42 -!- oklopol has quit (Ping timeout: 268 seconds). 10:47:09 rm -r ~rms 10:50:54 rm -s, rms. 11:22:09 -!- carado has joined. 11:41:21 -!- MindlessDrone has quit (Quit: MindlessDrone). 11:43:52 um, I don't really know whose thing this would be but maybe kmc or someone? 11:43:54 http://www.leafpetersen.com/leaf/publications/icfp2013/vectorization-haskell.pdf 11:44:06 it's an intel paper on a vectorizing haskell compiler 12:01:18 -!- mnoqy has quit (Quit: hello). 12:04:01 -!- Sgeo has quit (Read error: Connection reset by peer). 12:14:06 -!- pumpkin has quit (Ping timeout: 246 seconds). 12:14:42 -!- copumpkin has joined. 12:24:10 -!- Taneb has quit (Quit: Leaving). 12:43:49 -!- yorick has joined. 13:50:54 -!- copumpkin has quit (Ping timeout: 265 seconds). 13:51:16 -!- copumpkin has joined. 14:16:16 -!- oerjan has joined. 14:29:37 Well, I wouldn't probably have hit that bug, since you can't get anything into the Underload program that isn't in the input that came over IRC. <-- clearly you should check if this can be the cause of fungot's weird input line scrambling bug hth 14:29:38 oerjan: http://www.imdb.com/ name/ fnord/ fnord/ fnord/ fnord 14:30:40 fungot: sounds like a scary movie 14:30:41 oerjan: the seaside framework has a lot of c++ 14:30:52 fungot: as i said, scary. 14:30:52 oerjan: you could use csw to organize meetings. 14:34:23 -!- nooodl has joined. 14:47:32 back 14:48:52 oerjan, that was one reason I poked fizzie about it. But I don't think that it would be handling binary data much outside of the bf interpreter? 14:49:16 And it only takes effect for certain STRN instructions for values above 255 14:49:22 -!- nooodl has quit (Ping timeout: 268 seconds). 14:49:57 Hm since I used unsigned char* it *would* affect negative values too 14:50:34 mhm 14:55:39 oerjan, also data read in files using FILE for example (byte IO) is of course treated as using unsigned chars rather than signed. That could I guess cause issues for some programs. But since Funge doesn't define that behaviour afaik. Meh 14:55:55 Pretty sure it is the same for all IO in fact. 14:56:48 I only convert unsigned char* to char* where needed by system calls and similar (fopen and so on) 15:02:21 Vorpal: I only use values 0..127 in any "binary" files, for portability. 15:02:46 fizzie, Hm, just looked at STRN V... What is that supposed to do when the number isn't valid... 15:02:59 As in. 0"aksjd"V 15:03:28 Since I implement it with a call to atol, it would silently ignore errors 15:03:33 Should maybe reflect? 15:03:46 Vorpal: "For V, a non-numeric value in the string is not an error and will push a 0. Other interpreters may have implemented this as reflecting. This function is implemented as the c function atoi (or equivalent for cell size), It will not search the string for a numeric value." 15:03:53 Oh okay, fine then 15:04:08 Hm I'm actually using atoi, should be atol/atoll. 15:04:35 Anyway this explains why I didn't use my normal funge-strtol here I guess 15:04:54 (The "Official definitions for RCS Fingerprints" page is much more complete than the RC/Funge-98 V2 manual, even for fingerprints they have in common.) 15:05:13 fizzie, shouldn't it really be atol/atoll for non-32 bit cells 15:05:43 fizzie, got a link to that first page? I'm not sure where it is 15:05:45 I just want to point out that for over half an hour, everyone who has talked has had the exact same nick length and it's lined up perfectly 15:05:49 and now I've ruined it 15:05:58 Vorpal: http://www.rcfunge98.com/rcsfingers.html 15:06:47 (Maybe "much more complete" was a bit of an exaggeration.) 15:07:31 -!- yorick has quit (Remote host closed the connection). 15:08:23 fizzie, I will chose to interpret that as using the function from the atoi-family that is correct for the cell size 15:09:58 fizzie, only F in STRN remains to be fixed. Implementing an efficient strstr appears somewhat annoying 15:10:44 fizzie, by the way, is jitfunge dead or just dormant? 15:11:49 bbl, food 15:14:35 -!- yorick has joined. 15:14:41 I don't know for sure; somewhere in-between. I still intend to get back to it some day, but don't have any immediate plans. 15:15:42 Regarding the line scrambling bug, I guess it's not entirely impossible I've been "clever" and used G to read, in addition to a line, some kind of length prefix/suffix value on the stack, and that could be getting clipped. 15:15:49 Though I don't remember doing that. 15:17:05 -!- Bike has joined. 15:20:04 -!- nooodl has joined. 15:24:05 fizzie, that would surely break all long lines? 15:27:31 hm i vaguely thought what broke was long _output_ lines. 15:28:16 -!- Taneb has joined. 15:29:02 also, i think the bug requires the interaction of two consecutive irc lines, at least one of which needs to contain something triggering fungot to act. 15:29:02 oerjan: you just have a single list, pointer at head only with the call to k. 15:29:52 hm have we ever checked if the bug is deterministic if we _do_ give fungot identical pairs of consecutive lines 15:33:10 hi fungot 15:33:11 hi fungot 15:33:11 hi fungot 15:33:11 hi fungot 15:33:11 hi fungot 15:33:11 quintopia: but it's practical. but i'm not surprised that a guy coming from here has lived there for years; family still there 15:33:11 quintopia: no i don't see it in " general", though 15:33:11 quintopia: although it isn't mine, a fnord, roughly speaking. thanks for the opportunity to thank you for remember of the man :d... i know 15:33:12 quintopia: mostly it just needs to run through every possible sentence hashing to that value 15:33:28 what is the bug 15:35:59 quintopia, an extremely rare bug where it sometimes give two lines in response to one remark, possibly with the wrong nick. 15:36:52 in that it says "nick: message" and then "nick: message" again? 15:37:39 it would be awfully convenient if said bug was always preceded by someone else making a remark to fungot and getting no reply :P 15:37:44 iirc, was so long ago I saw it 15:56:21 It gives the second line in response to some unrelated comment that doesn't mention fungot at all. 15:56:21 fizzie: of course movies are a bit limited 15:57:00 I've pasted examples from fungot's "rawlog" as to how it thinks the input looks; generally it has parts of the actual unrelated comment, some "random-looking" stuff, and a copy of the previous input line. 15:57:01 fizzie: there's that ' fnord', and accented it becomes " int ret free; fnord" it can actually be simulated on a fnord 15:58:42 http://sprunge.us/iRYi has an example. 15:59:29 It also seems to have a higher chance of occurring if it has tried to generate a very long output from the babbling code. 15:59:58 Hm, it is hot and I hate off by one errors.... Does this look right? 15:59:59 funge_cell * funge_strchr(const funge_cell *s, 15:59:59 const funge_cell c) 15:59:59 { 15:59:59 const funge_cell* p = s; 15:59:59 while (*p != '\0') 16:00:00 { 16:00:04 if (*p == c) 16:00:06 return (funge_cell*)p; 16:00:08 p++ 16:00:10 } 16:00:12 return NULL; 16:00:14 } 16:00:24 Don't really need p, could just advance s 16:00:32 But it's still quite random; I should probably fuzz it out by some randomized testing that keeps track of ? seeds, so that I can then debug it. 16:01:18 "const funge_cell* p" looks inconsistently spaced w.r.t. "const funge_cell *s". 16:03:18 fizzie: so it is filling up the output queue and overflowing it...and then something triggers it to flush it? 16:04:29 fizzie, good point 16:04:56 quintopia: Yes, except that the output message (and the token stream for babbling) are all on different rows of the fungespace than where the buffered input is stored, so nothing *should* be getting overfloweded. 16:05:28 fizzie, we clearly need a funge MMU to debug the issue 16:05:35 So we can get cell faults 16:06:08 Actually, something like that would be somewhat useful 16:06:13 fizzie: i was thinking more of a bug in the interpreter's output system. 16:07:21 quintopia: SOCK's W (which is what is used for output) is probably pretty much a direct write syscall to socket, so there isn't too much there to mess up, either. It is a mystery. 16:07:47 Yeah it is get string from stack or whatever (I don't remember) then just write it 16:07:54 fizzie: but what about the funge interpreter? 16:08:09 Oh it is from fspace 16:08:24 fizzie: 16:08:25 for (size_t i = 0; i < (size_t)len; ++i) 16:08:25 buffer[i] = (unsigned char)fungespace_get(vector_create_ref(v.x + (funge_cell)i, v.y)); 16:08:25 sent = send(sockets[s]->fd, buffer, (size_t)len, 0); 16:08:34 Indentation screws up on IRC 16:08:39 quintopia: What about the funge interpreter, indeed? 16:08:56 that is what is being analyzed here? 16:09:24 quintopia: Yes, and I just said there isn't much of an "output queue" or anything to overflow in it. 16:09:39 Vorpal: I suppose that buffer is long enough?-) 16:10:01 fizzie, buffer = malloc((size_t)len * sizeof(unsigned char)); 16:10:06 It should be 16:10:22 Also that line is pointlessly verbose 16:10:33 sizeof(unsigned char) is somewhat silly 16:11:39 hi fungot <-- not identical _lines_, identical _pairs_ of lines hth (and possibly they might have to be from different nicks!*@* 16:11:40 oerjan: sure, but is very slow by looking at its signature.) now take take out the b and the d mailing list, so i'll probably ask, eventually. 16:12:34 fizzie: there's only one possible solution! make another bot that monitors fspace and the channel and writes out the last few minutes of fspace to a file when it sees the buggy behavior! 16:12:38 (not really) 16:12:57 Personally I suspect my in-fungot input buffering; it does up-to-3375-byte reads from the socket, and then extracts individual lines; there's a slightly kludgy-looking piece of code to move the leftover incomplete line and continue reading from where it ends. 16:12:57 fizzie: ( gah why do i have an existing scheme environment, like an animated gif? 16:13:14 fungot: Well I haven't added that, don't look at me. 16:13:14 fizzie: yes. that basic level is hardly very motivating... it's crap :) but i like to ask you 16:14:18 fizzie: is it possible to guarantee that a read ends on a newline? isn't there a library function that does that? 16:14:42 Oh nice, it now crashes with clang in release mode. Works fine with gcc!? 16:14:49 * Vorpal tries clang in debug 16:15:44 It doesn't crash in debug build... 16:16:30 ==28041== Warning: client switching stacks? SP change: 0x7fefffff8 --> 0x3feffffb0 16:16:30 ==28041== to suppress, use: --max-stackframe=17179869256 or greater 16:16:30 ==28041== 16:16:30 ==28041== Process terminating with default action of signal 11 (SIGSEGV) 16:16:38 Great valgrind gets confused by it 16:17:32 It crashes on the function call itself??? 16:17:37 => 0x000000000040b51b <+155>:callq 0x40b450 16:18:02 Oh yeah, stack frame is corrupt... 16:18:45 quintopia: There certainly isn't a "read until end of line" function in the SOCK fingerprint. 16:19:19 oh well 16:19:28 (As for in general, GNU and modern POSIX have a 'getline', but that's for FILE * streams, not file descriptors.) 16:21:51 GCC in release mode is fine 16:22:15 [...] there's a slightly kludgy-looking piece of code to move the leftover incomplete line and continue reading from where it ends. <-- that's what i would suspect too, from how the buggy lines are shifted beyond the messed up part 16:22:37 -!- sebbu has joined. 16:23:51 except how does that get affected by the babble generator. 16:24:05 Something goes very very wrong in the actual call 16:24:08 wth 16:26:13 Hm the stack is already corrupt at that point 16:29:12 fizzie, wow, I manage to get a corrupt stack between the entry of the function and the first actual line of code... 16:30:49 fizzie, quintopia oerjan: If any of you are good at assembler... http://sprunge.us/FDFL 16:31:07 -!- augur has quit (Ping timeout: 268 seconds). 16:31:12 This is the start of the function, at the first line the stack is ok, at the last line (first source line in code) it is not 16:31:45 Those sub lines look weird 16:33:23 This happens in clang at -O2 or more 16:36:17 I can have a look in a bit. 16:36:55 fizzie, I'm pretty sure it is miscompilation by adding a bunch of sub $0x7fffffff,%rsp 16:40:50 Well there is a thunderstorm, I have to leave, use lambdabot for replying 16:41:19 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 16:51:14 @tell Vorpal Well, I don't have an offhand guess as to what that could be all about; I mean, what it looks like is a 16-gig stack allocation. You could paste the corresponding C too, though. 16:51:14 Consider it noted. 16:54:18 @tell Vorpal (2^32 32-bit values equals 16 gigs, which is probably relevant.) 16:54:19 Consider it noted. 16:58:06 @tell Vorpal I mean, that's the "normal" way you get that kind of subs at start -- http://sprunge.us/eETD -- of course I doubt your C code looks quite like that. 16:58:07 Consider it noted. 17:34:39 -!- oerjan has quit (Quit: leaving). 17:41:25 -!- AnotherTest has joined. 17:41:36 -!- Phantom_Hoover has joined. 17:41:48 Hello 17:54:17 I took the survey 17:54:26 -!- conehead has joined. 17:57:21 oh no 17:57:26 did i miss the return of jsvine 17:59:49 Playing some music. http://overviewer.org:8001/ 17:59:51 i must read the log 18:01:46 you should get cloud hosting and use irssi and have a permanent tmux session and idle in all channels forever 18:01:59 sorry, got carried away there. 18:03:30 ion: What exactly are we listening to? 18:03:56 Misc. stuff i’m listening to. http://www.last.fm/user/hapanvelli (and i’m also playing FTL. :-P) 18:08:16 -!- AnotherTest has quit (Read error: Connection reset by peer). 18:10:19 -!- augur has joined. 18:15:16 -!- clog has quit (Remote host closed the connection). 18:29:47 also this jsvine situation is getting ridiculous 18:29:52 it's almost as silly as that hussie thing 18:31:04 I took a look at the survey, and the questions looked too hard for me. :/ 18:31:13 impossibl 18:31:14 e 18:31:31 i filled it out fine and i am the laziest person at filling out surveys ever 18:33:10 -!- Frooxius has quit (Read error: Connection reset by peer). 18:33:21 -!- Frooxius has joined. 18:36:52 I don't know what a proper value for the "hours per week" question is, because the instant value is so variable, and I can't really guesstimate-average over the last 10 years. 18:37:26 -!- kallisti has quit (Ping timeout: 240 seconds). 18:38:22 -!- kallisti has joined. 18:43:17 -!- kallisti has quit (Ping timeout: 248 seconds). 18:55:10 -!- kallisti has joined. 18:55:10 -!- kallisti has quit (Changing host). 18:55:10 -!- kallisti has joined. 18:58:02 -!- clog has joined. 19:05:54 -!- oklofok has quit (Ping timeout: 268 seconds). 19:09:17 -!- Phantom_Hoover has quit (Quit: Leaving). 19:09:54 -!- Hoax has joined. 19:10:18 -!- Hoax has changed nick to Guest18414. 19:17:49 -!- jconn has quit (*.net *.split). 19:17:50 -!- Deewiant has quit (*.net *.split). 19:17:50 -!- nortti has quit (*.net *.split). 19:17:51 -!- HackEgo has quit (*.net *.split). 19:17:51 -!- clog has quit (*.net *.split). 19:17:51 -!- kallisti has quit (*.net *.split). 19:17:51 -!- sebbu has quit (*.net *.split). 19:17:51 -!- Bike has quit (*.net *.split). 19:17:52 -!- yorick has quit (*.net *.split). 19:17:52 -!- stuntaneous has quit (*.net *.split). 19:17:55 -!- fungot has quit (*.net *.split). 19:17:55 -!- Lymia has quit (*.net *.split). 19:17:55 -!- Frooxius has quit (*.net *.split). 19:17:56 -!- Jafet has quit (*.net *.split). 19:18:00 -!- Lumpio- has quit (*.net *.split). 19:18:00 -!- `^_^v has quit (*.net *.split). 19:18:00 -!- mtve has quit (*.net *.split). 19:18:01 -!- augur has quit (*.net *.split). 19:18:01 -!- Taneb has quit (*.net *.split). 19:18:02 -!- sacje has quit (*.net *.split). 19:18:02 -!- heroux has quit (*.net *.split). 19:18:03 -!- atehwa has quit (*.net *.split). 19:18:05 -!- quintopia has quit (*.net *.split). 19:18:05 -!- hogeyui____ has quit (*.net *.split). 19:18:05 -!- lifthrasiir has quit (*.net *.split). 19:18:07 -!- copumpkin has quit (*.net *.split). 19:18:09 -!- carado has quit (*.net *.split). 19:18:09 -!- variable has quit (*.net *.split). 19:18:09 -!- noooodl has quit (*.net *.split). 19:18:10 -!- Gregor has quit (*.net *.split). 19:18:10 -!- pikhq has quit (*.net *.split). 19:18:11 -!- yiyus has quit (*.net *.split). 19:18:12 -!- Guest18414 has quit (*.net *.split). 19:18:12 -!- lambdabot has quit (*.net *.split). 19:18:13 -!- EgoBot has quit (*.net *.split). 19:18:13 -!- jix has quit (*.net *.split). 19:18:14 -!- FreeFull has quit (*.net *.split). 19:18:14 -!- neena has quit (*.net *.split). 19:18:14 -!- myndzi has quit (*.net *.split). 19:18:14 -!- ggherdov has quit (*.net *.split). 19:18:14 -!- TodPunk has quit (*.net *.split). 19:18:14 -!- tromp_ has quit (*.net *.split). 19:18:16 -!- FireFly has quit (*.net *.split). 19:18:19 -!- comex has quit (*.net *.split). 19:18:19 -!- ion has quit (*.net *.split). 19:18:19 -!- ssue__ has quit (*.net *.split). 19:18:20 -!- conehead has quit (*.net *.split). 19:18:22 -!- elliott has quit (*.net *.split). 19:18:22 -!- kmc has quit (*.net *.split). 19:18:22 -!- SirCmpwn has quit (*.net *.split). 19:18:22 -!- ineiros has quit (*.net *.split). 19:18:24 -!- coppro has quit (*.net *.split). 19:18:25 -!- glogbackup has quit (*.net *.split). 19:18:26 -!- nooodl has quit (*.net *.split). 19:18:27 -!- aloril_ has quit (*.net *.split). 19:18:27 -!- rodgort has quit (*.net *.split). 19:18:27 -!- Fiora has quit (*.net *.split). 19:18:28 -!- upgrayeddd has quit (*.net *.split). 19:18:28 -!- shachaf has quit (*.net *.split). 19:19:14 -!- Guest18414 has joined. 19:19:14 -!- clog has joined. 19:19:14 -!- kallisti has joined. 19:19:14 -!- Frooxius has joined. 19:19:14 -!- augur has joined. 19:19:14 -!- conehead has joined. 19:19:14 -!- sebbu has joined. 19:19:14 -!- Taneb has joined. 19:19:14 -!- nooodl has joined. 19:19:14 -!- Bike has joined. 19:19:14 -!- yorick has joined. 19:19:14 -!- copumpkin has joined. 19:19:14 -!- carado has joined. 19:19:14 -!- Jafet has joined. 19:19:14 -!- variable has joined. 19:19:14 -!- sacje has joined. 19:19:14 -!- noooodl has joined. 19:19:14 -!- atehwa has joined. 19:19:14 -!- quintopia has joined. 19:19:14 -!- hogeyui____ has joined. 19:19:14 -!- lambdabot has joined. 19:19:14 -!- lifthrasiir has joined. 19:19:14 -!- Lumpio- has joined. 19:19:14 -!- Gregor has joined. 19:19:14 -!- `^_^v has joined. 19:19:14 -!- stuntaneous has joined. 19:19:14 -!- fungot has joined. 19:19:14 -!- heroux has joined. 19:19:14 -!- Lymia has joined. 19:19:14 -!- aloril_ has joined. 19:19:14 -!- coppro has joined. 19:19:14 -!- rodgort has joined. 19:19:14 -!- pikhq has joined. 19:19:14 -!- EgoBot has joined. 19:19:14 -!- Fiora has joined. 19:19:14 -!- jix has joined. 19:19:14 -!- FreeFull has joined. 19:19:14 -!- neena has joined. 19:19:14 -!- ggherdov has joined. 19:19:14 -!- myndzi has joined. 19:19:14 -!- upgrayeddd has joined. 19:19:14 -!- mtve has joined. 19:19:14 -!- TodPunk has joined. 19:19:14 -!- jconn has joined. 19:19:14 -!- tromp_ has joined. 19:19:14 -!- shachaf has joined. 19:19:14 -!- comex has joined. 19:19:14 -!- elliott has joined. 19:19:14 -!- glogbackup has joined. 19:19:14 -!- yiyus has joined. 19:19:14 -!- kmc has joined. 19:19:14 -!- Deewiant has joined. 19:19:14 -!- FireFly has joined. 19:19:14 -!- SirCmpwn has joined. 19:19:14 -!- ion has joined. 19:19:14 -!- ineiros has joined. 19:19:14 -!- ssue__ has joined. 19:19:14 -!- HackEgo has joined. 19:19:14 -!- nortti has joined. 19:19:14 -!- ?unknown? has set channel mode: +v kmc . 19:20:24 -!- clog has quit (*.net *.split). 19:20:24 -!- kallisti has quit (*.net *.split). 19:20:24 -!- sebbu has quit (*.net *.split). 19:20:24 -!- Bike has quit (*.net *.split). 19:20:24 -!- yorick has quit (*.net *.split). 19:20:25 -!- stuntaneous has quit (*.net *.split). 19:21:12 -!- clog has joined. 19:21:12 -!- kallisti has joined. 19:21:12 -!- sebbu has joined. 19:21:12 -!- Bike has joined. 19:21:12 -!- yorick has joined. 19:21:12 -!- stuntaneous has joined. 19:23:56 -!- nooodl has quit (*.net *.split). 19:23:57 -!- aloril_ has quit (*.net *.split). 19:23:57 -!- rodgort has quit (*.net *.split). 19:23:58 -!- Fiora has quit (*.net *.split). 19:23:58 -!- upgrayeddd has quit (*.net *.split). 19:23:58 -!- shachaf has quit (*.net *.split). 19:25:40 -!- MindlessDrone has joined. 19:26:53 -!- clog has quit (Read error: Connection reset by peer). 19:29:21 -!- shachaf has joined. 19:29:34 -!- Fiora has joined. 19:34:44 -!- nooodl has joined. 19:35:10 -!- aloril_ has joined. 19:35:11 -!- rodgort has joined. 19:35:11 -!- upgrayeddd has joined. 20:06:42 -!- Bike has quit (Ping timeout: 264 seconds). 20:08:01 -!- Bike has joined. 20:25:51 -!- douglass_ has joined. 20:27:01 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com). 20:40:28 -!- clog has joined. 21:02:32 -!- Nisstyre has joined. 21:05:24 shachaf: happy birthday! 21:10:44 -!- oerjan has joined. 21:11:59 Wow, shachaf must be like 16 years old 21:13:02 how do ya figure 21:13:37 Because he's growing up so faast 21:13:59 One of these days he may even be as old as me or Phantom_Hoover! 21:16:16 When I was shachaf's age, I was already reading Homestuck! 21:17:05 happy birthday! 21:17:12 shachaf, I hope you get something nice! 21:17:19 I got a shaver for my 16th birthday 21:17:21 It is blue 21:17:33 Goodnight! 21:17:35 -!- Taneb has quit (Quit: Leaving). 21:18:39 kmc: did you see the haskell compiler thingy 21:19:10 -!- MindlessDrone has quit (Quit: MindlessDrone). 21:19:58 GHC? 21:19:59 -!- sprocklem has joined. 21:20:12 ummmm 21:20:13 http://www.leafpetersen.com/leaf/publications/icfp2013/vectorization-haskell.pdf 21:20:31 cool 21:20:38 neat 21:20:51 yay purity 21:21:12 intel making a haskell compiler ^^ 21:21:42 -!- tertu has joined. 21:23:01 hurrah Haskell being agnostic to both frontend type magic and backend cost models by design 21:23:30 -!- clog has quit (Ping timeout: 264 seconds). 21:23:47 if not agnostic, maybe at least lapsed catholic 21:26:22 -!- Bike has quit (Ping timeout: 276 seconds). 21:28:29 -!- Bike has joined. 21:28:49 Bike: http://en.wikipedia.org/wiki/Oops-Leon physicists are amazing 21:29:24 At Fermilab in 1976 a team led by a guy named Leon announced the discovery of a new particle, which they called the Upsilon particle, but after much more data it proved to be just a statistical fluke; they didn't have enough sigma. 21:29:28 So they called it the Oops-Leon particle. 21:29:36 ow. 21:29:52 the "Good Fucking Job, Leon" particle 21:31:05 theegan 21:31:11 thouglass_ 21:32:39 shachaf: happy birthday! 21:32:43 happy birthday~ 21:32:48 thoerjan 21:32:51 Thiora 21:32:55 shachaf has a birthday? 21:33:00 when is it? 21:33:13 RIGHT NOW 21:33:17 he is birthdaying as we speak 21:33:30 live birthday updates 21:33:32 is this like molting in which case pics 21:33:38 yikes 21:33:58 update: shachaf birthday still underway. the SCOTUS has still not yet commented 21:34:14 the yearly molting of the shachafs? 21:34:20 what about the POTUS and the COTUS 21:34:26 kmc are you at his birthday party? :o 21:34:29 we are in hour fourteen of shachaf birthday with no end in sight. please stay in your homes and continue watching this broadcast 21:34:49 Fiora: no but I hope he will come to SF this weekend 21:35:09 ah 21:35:26 Hamiltonian Bicycle <-- i've been outbiked :( 21:35:51 is that a bike that can only visit each place once 21:37:17 sounds like bike share shenanigans 21:37:29 -!- mnoqy has joined. 21:40:31 kmc: today i saw people on a ""conference bike"" 21:40:40 http://www.conferencebike.com/ 21:41:45 "while the other 6 pedal (or not)" yeah, that sounds pretty much like how it'd be like. 21:41:50 IT’S A PARTY ON WHEELS!! 21:43:18 it's a party on wheels and everyone is sweating with their clothes on 21:43:29 shachaf: was it a google one 21:43:36 yes 21:43:42 had lunch with Gracenotes at the google 21:44:26 There's supposed to be some sort of a campus bike system at our place, but I've never seen one of them, just some racks that have "reserved for campus bikes" signs on them. 21:44:46 probably they got stolen? 21:46:53 is Gracenotes a google 21:47:10 shachaf: they feed you well eh 21:47:54 I used to be a Google. I still do, but I used to, too. 21:48:10 i had dinner at the Dropbox office the other day. it looks like it belongs in a movie about posh SF startups 21:48:30 i know someone who almost went to work at Dropbox because of the food 21:49:13 i was a google 21:49:17 I'm not a google any more 21:49:23 kmc: there was a book there that i wanted to take a picture of for this channel (but i agreed not to take pictures, or something) 21:49:37 "You must not reside in one of the following countries: Barbados, Guatemala. (You appear to be in: Finland.)" 21:49:56 it had a sticker on it that read: 21:50:03 um, what did it read 21:50:07 help 21:50:12 that's not what it read 21:50:16 That's... oh, aw. 21:50:25 it was something like 21:50:27 restaurant copy "do not remove" 21:50:29 "help, I'm trapped in a Google". 21:50:32 complete with the quotes 21:50:38 "#estoeric style" 21:50:51 It's the emphasis-quotes. 21:50:51 oppa #esoteric style 21:50:55 "book is google. do not remove" 21:51:04 Best emphasis-quotes use: [[We serve "food"]]. 21:51:09 -!- tertu has quit (Ping timeout: 264 seconds). 21:51:13 fizzie: hahaha 21:51:24 i got a "free" t-shirt today 21:51:32 also http://www.unnecessaryquotes.com/ 21:51:36 [[bus: the "comfortable" way to travel]] 21:51:46 please note we are "LAW FIRM" 21:52:10 coppro: is being a google a good idea y/n 21:52:18 http://www.theonion.com/articles/new-horizontal-device-prevents-falls-to-basement,1096/?ref=butt 21:52:19 Hey, there's a "do not remove" sign there too. 21:52:34 shachaf: y 21:52:37 For staff room only "do not remove" 21:53:15 but using quotes for emphasis is "correct", isn't it? 21:53:44 [[ Check Out our "Exotic Game" Meats! ]] is also kinda suspicious. 21:54:10 i.e. not so much unnecessary quotes as "quotes used in another purpose for which they can also be used" 21:55:48 They "can" be used. 21:55:54 olsner: well, it's definitely "unambiguous" hth 21:55:57 quotes are already overloaded for sarcasm, imo 21:56:34 use single quotes 21:56:37 much less aggressive 21:57:06 But don't use backticks. This isn't the 70s. 21:58:10 ``plus we're in esoteric'' 21:58:11 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `plus: not found 21:58:18 ``LaTeX is still pretty popular'' 21:58:19 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `LaTeX: not found 21:58:24 douglass_: what do you think about ``quotes'' 21:58:46 @quote kmc 21:58:47 kmc says: "when computer scientists rebuild the world after the apocalypse, we will have hanging gardens with trees that grow downward" 21:59:05 that sounds pretty. 21:59:16 i think using quotes for emphasis isn't very correct 21:59:40 "ok" 22:02:15 Hey, if I have a Windows system partition mounted in a Linux system, what's the easiest way to determine which version of Windows is installed there? 22:03:43 quotes for emphasis is not a thing 22:03:54 boot it in a vm thththtth 22:04:16 fizzie: cat /etc/*release* 22:04:16 fizzie: run strings on some dll, see if a version number pops out? 22:04:25 Quotes are sometimes used for emphasis in lieu of underlining or italics, most commonly on signs or placards "sorry" 22:04:26 because they get read as scare quotes, which have sort of the opposite meaning 22:04:46 I think non-quoting quote-enclosed phrases say "I don't exactly mean this phrase, but a phrase approximately close to this phrase" 22:05:03 It's when you take a phrase, put it in a mention context, then put that in a use context again 22:05:28 oh, maybe there's something in windows/system32/drivers/etc/issue 22:05:40 next to the hosts file 22:05:41 Double quotes seem to go in the direction of worst possible connotation, but imo single quotes tend to be a connotation-free adder of fuzziness. 22:06:10 the worst possible connotation, of course, being sarcasm 22:06:16 olsner: Sadly, no. 22:06:34 stringsing a couple random files has not yet helped. 22:07:03 single quotes just make you look british 22:07:03 There used to be a boot.ini with entries, I think, but this doesn't seem to have one. 22:07:18 hmm, looks like I forgot to add "hth" to some of those suggestions 22:07:49 but there ought to be something that can extract that standard version information from dlls in linux 22:07:57 WindowsUpdate.log has installed something "for Microsoft .NET Framework 3.5 SP1 on Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 x86", so that sort of narrows it down a bit. 22:08:19 -!- Nisstyre has quit (Quit: Leaving). 22:08:42 Also a couple of "Security Update for Windows Vista"s, maybe it's that. 22:10:02 douglass_: I guess that depends on the «communication channel» used 22:10:10 maybe you could remove it and install a known windows version on top? 22:10:24 probably time for that anyway 22:10:43 Also a "Security Update for .NET Framework 3.5 SP1, Windows Vista SP2, and Windows Server 2008 SP2 x86 (KB983589)". 22:11:17 olsner: Actually I'm trying to figure out if the 6.75 EUR staff-priced Windows 7 (or 8) "Upgrade" versions *could* be installed on top of it. 22:11:18 http://upload.wikimedia.org/wikipedia/commons/c/cf/MAZE.png not sure that i'm ready for this maze wikipedia 22:12:22 oh, your university doesn't have educational msdn and free everything? 22:12:32 use MS Paint hth 22:12:57 olsner: They have MSDN "Academic Alliance" stuff, but I think that was somewhat limited. 22:13:14 olsner: At least back when I installed something from it, the license terms said it's only valid as long as I stay there. 22:13:58 These non-free versions, AIUI, are as good as purchased, and seven euros isn't really all that much. 22:17:34 (It's from the OnTheHub thing, which is... some kinda thing.) 22:17:58 There's also the DreamSpark Windows 8. 22:18:39 DreamSpark? OnTheHub? shenanigans 22:19:53 -!- sprocklem has quit (Remote host closed the connection). 22:20:00 The "DreamSpark Premium" they have seems to include Windows 8, 7, Server 2008, Embedded 8, Vista, HPC Server 2008, Server 2008, Server 2008, Web Server 2008, Services for UNIX 3.5, Windows 7 Debug Symbols, Microsoft MS-DOS 6, and pretty much everything. 22:20:20 (DOS 6.22 for free? Best deal!) 22:20:28 Oh, both 6.22 and 6.0 are available. 22:20:29 MS-DOS 5.0 is better imo 22:21:28 http://www.geekosystem.com/wp-content/uploads/2011/07/ms-dos-logo1.jpg ““nostalgia”” 22:21:37 I bet zzo has an actual favourite DOS version 22:21:50 ````nostalgia'''' 22:21:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ```nostalgia'''': not found 22:21:54 i bet it's < 6 22:21:58 obviously 22:22:30 or maybe zzo38 thinks that CP/M is better than DOS 22:22:44 does CP/M have a gopher client? 22:22:50 maybe he wrote his own version of DOS 22:22:57 imo likely hypothesis 22:22:59 olsner: "You may only use the tools and software from DreamSpark to get ahead in school, develop new skills and take steps in research in science, technology, engineering or mathematics." Yeah, that was the problem with the free versions. 22:24:02 "develop new skills" could mean a lot of things 22:24:29 and arguably, using a computer means taking steps in technology all the time 22:24:58 The DreamSpark edition does have the advantage of being a non-Upgrade. 22:33:39 kmc: you know the thing where people say "bobby tables" for no real reason and then you feel irritated at them 22:33:51 kinda 22:34:07 -!- nortti_ has joined. 22:34:26 is that a thing. 22:34:30 -!- jconn has quit (Ping timeout: 248 seconds). 22:34:32 -!- Deewiant has quit (Ping timeout: 248 seconds). 22:34:32 -!- nortti has quit (Ping timeout: 248 seconds). 22:34:33 -!- HackEgo has quit (Ping timeout: 248 seconds). 22:35:00 -!- Deewiant has joined. 22:35:13 -!- HackEgo has joined. 22:35:25 shachaf: is that the thing where "cool people" like you dislike xkcd for some reason? 22:36:01 -!- Deewiant has quit (*.net *.split). 22:36:10 i dislike some references such as that one 22:36:19 -!- Deewiant has joined. 22:37:41 why that one in particular 22:38:11 too mainstream 22:38:54 I can get annoyed by things that seem more popular than they deserve, but I still think it's silly to get annoyed 22:42:03 -!- conehead has joined. 23:00:53 -!- Lymia has quit (Ping timeout: 248 seconds). 23:15:17 drumz: the worst thing? 23:15:56 i am unable to concentrate when there is a person nearby listening to drumzy music in their ear-listening-thingies 23:17:56 how awful 23:18:07 -!- Bike has quit (Ping timeout: 268 seconds). 23:18:20 imo make drumz illegal 23:20:05 legalize drumz 23:20:21 illegalize drumz indoorz 23:20:27 and within 30 feet of a building 23:20:43 what about e-drumz 23:20:51 shachaf == a soldier in the war on drumz. 23:21:12 war on warz 23:21:21 Eardrumz. 23:21:49 -!- Bike has joined. 23:21:59 -!- clog has joined. 23:26:37 -!- clog has quit (Ping timeout: 276 seconds). 23:31:32 -!- Sgeo has joined. 23:45:38 -!- stuntaneous has quit (Read error: Connection reset by peer). 23:47:06 -!- stuntaneous has joined.