00:04:08 -!- tromp_ has joined. 00:20:10 -!- deltab has quit (Quit: leaving). 00:20:24 -!- tromp_ has quit (Remote host closed the connection). 00:20:25 -!- deltab_ has changed nick to deltab. 00:37:22 -!- tromp_ has joined. 00:37:27 -!- Akaibu has quit (Quit: Connection closed for inactivity). 00:44:07 -!- myndzi\ has joined. 00:44:46 <\oren\> the svn poltergeist strikes 00:45:10 he\\oren\. the Ghost in the Repository? 00:45:15 @massages-loud 00:45:15 quintopia asked 5d 12m 19s ago: how goes the courging? 00:45:15 Taneb said 4d 16h 14m 3s ago: I'm fairly sure I'm alive 00:45:25 hmm 00:45:33 has lambda been reset? 00:45:39 <\oren\> somehow checking out a new working copy and copying my changes over solved a bug 00:45:46 could have sworn you'd already received those massages 00:45:48 quinthellopia. no, I'm just not very esotericking as of lately hth 00:45:52 oh 00:46:02 <\oren\> yes, the ghost in the repository 00:46:40 quintopia: I definitely got yours, as I replied to it. I wasn't Tanebmessageacknowledged yet. 00:47:08 <\oren\> this is why i hate untracked files. my tgz "repositories" always track all files 00:47:38 Oh, you were the git h8r. 00:47:40 git is tg 00:49:40 <\oren\> well I have to say, at least git has a command to delete all untracked files 00:50:11 git clean -fd is fun :D 00:50:35 <\oren\> svn doesn't have any such command. instead you have to rm -rf project and then svn co "url" project 00:51:11 <\oren\> which caused a phantom bug to resolve itself 00:53:31 <\oren\> Untracked files is a stupid idea anyway 00:53:53 <\oren\> if your build process creates .o files or whatever, it should also delete them 00:54:20 <\oren\> or you should have a make clean type command to run before checkin 00:55:03 untracked files is nice. 00:56:32 -!- myndzi\ has quit. 00:56:51 -!- hppavilion[1] has joined. 01:29:27 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 01:47:38 -!- jaboja has quit (Ping timeout: 272 seconds). 01:49:01 -!- PinealGlandOptic has joined. 01:49:24 <\oren\> ok, now I've gotten home 01:49:48 <\oren\> time to work on my font 01:53:41 -!- centrinia has joined. 01:56:03 -!- sebbu has quit (Ping timeout: 240 seconds). 02:12:18 -!- boily has quit (Quit: ANOTHER CHICKEN). 02:44:59 <\oren\> you can track my progress in a new way: http://www.orenwatson.be/joyo-kyoiku.htm 02:49:36 -!- Akaibu has joined. 02:50:07 \oren\: are you having a hard time tracking your own progress????????? 02:50:18 gotta get other to track it for you now? 02:52:45 <\oren\> quintopia: well I was having trouble remebering what kanji I had already done 02:53:18 <\oren\> so I'm putting a list up on my website that I can look in 02:55:27 <\oren\> and more importantly which kanji I need to do 03:00:51 \oren\: I do hope you're targetting kanji that are reasonably used first. 03:01:20 Ah, so you are. Looks like you're targeting jōyō and kyōiku kanji first. 03:02:11 <\oren\> pikhq: I've covered all the kyoiku kanji from grades 1-6 03:02:39 Unfortunately, to cover real-world Japanes text you need most of the list, not just the first 6 grades. 03:03:24 (though I belive most of the most *frequent* kanji are grouped up in there) 03:03:48 <\oren\> yeah so I'm gonna do the rest of the Joyo, and then the ones for names, I forget what that list was called 03:04:23 Jinmeiyō. 03:05:53 With the jōyō + jinmeiyō you'll get tripped up on some literary text, but you'll *mostly* be fine. 03:07:35 <\oren\> eventually, not anytime soon, I'll try to do the simplified chinese characters... hopefully the chinese government has a list 03:09:07 \oren\: probably you can start with IICore 03:09:23 Yeah, simplified Chinese characters are enumerated. IIRC the PRC has a list of Unicode codepoints that software in the country must support. 03:25:04 -!- centrinia has quit (Quit: Leaving). 04:01:33 -!- Kaynato has quit (Ping timeout: 240 seconds). 04:26:54 -!- adu has quit (Quit: adu). 04:33:16 -!- tromp_ has quit (Remote host closed the connection). 04:46:20 [wiki] [[FOSCode]] https://esolangs.org/w/index.php?diff=48944&oldid=48943 * Darkrifts * (+52) 04:47:36 What's the slowest-growing complexity of an algorithm you can come up with? Something slower than inverse Ackermann? 04:51:02 log(inverse ackermann) 04:51:22 Am I going to have to go through the same thing here that I went through in the other channel? 04:51:30 20:37 Do you have an algorithm with runtime that grows that slowly? 04:51:30 20:38 I can add "non-contrived" to the question to avoid that kind of answer. 04:51:40 i haven't read it in the other channel 04:51:51 20:39 But I'd even be OK with a contrived answer if it was significantly slower than inverse Ackermann (not just something you make by composing inverse Ackermann composed with itself like that). 04:51:57 I know. 04:52:43 Oh, maybe you can do something with shelves. 05:12:13 -!- Vorpal has quit (Ping timeout: 244 seconds). 05:16:51 -!- Vorpal has joined. 05:16:51 -!- Vorpal has quit (Changing host). 05:16:51 -!- Vorpal has joined. 05:33:31 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 05:33:54 -!- tromp_ has joined. 05:38:11 -!- tromp_ has quit (Ping timeout: 240 seconds). 05:48:36 -!- nisstyre has quit (Read error: Connection reset by peer). 05:49:40 -!- PinealGlandOptic has quit (Quit: leaving). 06:03:52 -!- choochter has quit (Read error: Connection reset by peer). 06:56:16 -!- hppavilion[1] has joined. 07:07:01 -!- augur has quit (Remote host closed the connection). 07:10:50 [wiki] [[FOSCode]] https://esolangs.org/w/index.php?diff=48945&oldid=48944 * Darkrifts * (+151) /* Documentation */ 07:16:12 [wiki] [[FOSCode]] https://esolangs.org/w/index.php?diff=48946&oldid=48945 * Darkrifts * (+612) 07:21:39 -!- sebbu has joined. 07:34:14 -!- tromp_ has joined. 07:38:33 -!- tromp_ has quit (Ping timeout: 240 seconds). 07:46:31 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 07:52:21 -!- augur has joined. 08:04:33 i've been spamming a few channel with similar questions, and got no answer so far. why does this fail for floats? https://ideone.com/gcOipZ 08:33:19 -!- AnotherTest has joined. 08:38:28 izabera: Interesting, I'd expect it to have more instances of NO than that. 08:41:08 C type compatiblity is odd. 08:41:13 Apparently it's not transitive. 08:41:42 I'm just reading that here: https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-g_t_005f_005fbuiltin_005ftypes_005fcompatible_005fp-4246 08:43:27 http://en.cppreference.com/w/c/language/type#Compatible_types 08:43:28 ... 08:43:50 is it the empty paramater lists causing the strangeness? 08:43:58 I wonder if it's these caveats about default argument promotions 08:44:02 yeah 08:44:07 I guess it has to do with -- yes, what Cale said. 08:44:37 C9x draft section 6.7.5.3 08:44:39 without the typo 08:46:17 (adding parameter const float a in nullfunfloat makes them all yes) 08:47:51 Oh, a float would get promoted to a double. 08:47:54 yeah but i wanted a generic function pointer 08:48:24 This parameterless function declaration thing isn't something you should be using anyway. 08:48:27 It's scow. 08:48:32 why? 08:49:05 also i don't know what scow means 08:49:18 `? scow 08:50:48 Scow (S-cow) is canned meat made from cows with a lisp. 08:51:01 `cwlprits scow 08:51:30 oerjan 08:52:01 whoa whoa whoa 08:52:15 void f(c) char c; { ... } isn't the same as void f(char c) { ... }? 08:52:25 According to http://stackoverflow.com/a/1255818 08:52:28 That's a big scow. 09:00:34 (changing the empty paramater lists to void causes the corresponding comparisons to fail) 09:01:00 damn it i did the typo again 09:02:14 is that how they spelled it at your alma mater 09:02:32 probably a direct pun on latin "mater" would have been better here 09:02:42 now i'm just making it look like i don't know latin 09:02:46 which i don't 09:02:59 but cultured people know a little bit of latin and act like they know even more than they do 09:03:00 -!- choochter has joined. 09:03:05 so i'm giving myself away here 09:03:21 ita vero 09:03:45 `welcome mitchs 09:04:01 mitchs: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 09:04:56 I think I'm going to go through the category theory textbook I've had out of my uni's library for like two years and actually do the exercises 09:05:45 Which book? 09:06:03 thanks but this isn't my first time here 09:06:10 shachaf, it's called Categories 09:06:18 By a chap called Schubert 09:06:19 They all are. 09:06:49 Ah. 09:06:56 How much category theory do you know? 09:07:18 Well, I can get through chapter one and part of chapter two without any difficulties 09:08:19 Which chapters are those? 09:09:03 Chapter 1 is the definition of categories, isomorphisms, additive categories, and subcategories 09:09:32 Additive categories in chapter 1? Odd. 09:09:40 void f(c) char c; { ... } isn't the same as void f(char c) { ... }? <-- no, the former promotes to int in parameter passing I believe 09:09:43 2 is functors (covariant and contravariant), dual categories, bifunctors, and natural transformations 09:09:48 Vorpal: Right. 09:09:52 I can't get natural transformations in my head 09:10:27 [wiki] [[Talk:Spoon]] https://esolangs.org/w/index.php?diff=48947&oldid=48932 * Rdebath * (+182) Just uploaded 09:10:31 shachaf, why are you using K&R syntax though? 09:10:35 There is a reason it is bad 09:10:43 Vorpal: I'm not, but I thought it was the same. 09:10:47 Ah 09:10:54 I was going to use it as a prank in my next job interview that asked me to write C code. 09:11:16 shachaf, K&R promotion rules still apply to varargs (i.e. printf(const char*, ...) 09:11:18 ) 09:11:21 Right. 09:11:34 Actually I think it's kind of elegant syntax in the C mindset of the world. 09:11:41 Oh? 09:11:43 In the "declaration follows use" spirit. 09:11:52 You lost me 09:13:02 You know, int (*f[3])() means that (*f[i])() is an int. 09:13:50 And so int f(x, y) char x; int y; { .... } means that f(x, y) is an int, whenever x is a char and y is an int. 09:13:56 At least, that was my theory 09:14:20 And "f(x, y)" actually looks like function call syntax as an expression, unlike f(char x, int y), which looks like a syntax error. 09:14:26 (As an expression.) 09:14:48 Heh 09:14:49 Taneb: Categories were invented to talk about natural transformations. 09:15:47 The original paper that introduced categories is kind of funny to read in that respect. 09:17:40 Taneb: What do you mean by get them in your head? 09:19:13 Learn them to the point where they make sense intuitively to me 09:19:37 Aha. 09:19:44 There are a whole bunch of senses. 09:21:55 How about this sense: Take a very small category, like the category 3 with three objects and six arrows. 09:22:04 And look at functors : 3 -> Set 09:23:05 What are those? 09:23:59 Maybe you don't want this sort of thing right now. 09:25:14 I'm working through the exercises in the book to make sure I haven't missed anything and that everything is clear in my head 09:25:22 If once I've done that I'm still unsure, I'll get back to you 09:25:40 sgtm 09:29:39 -!- LKoen has joined. 09:46:23 Oh, man: is it the old-style function definition syntax why we can't have braces optional in function definitions? 09:47:18 Because in all kinds of statements (if, for, switch, etc.) the body's just an arbitrary statement, but for functions it's always required to be a compound-statement. 09:55:34 all mathematicians are crazy, but they're crazy in very different ways. I think it's a requirement for the profession. 09:55:54 (all doctors are also crazy, mind you.) 09:56:37 Also, it seems I was probably wrong yesterday. It seems it's not (yet) obvious to find out which project I'm working on for my job with some interenet searches. 10:02:42 fizzie, We should make a version of C with indentation based syntax. Like python or haskell has 10:03:39 Haskell-style is better: It has a fairly straightforward translation to {}/; syntax. 10:03:48 Hm I guess so 10:04:24 izabera: Despite what __builtin_types_compatible_p might say, I'm pretty sure calling nullfunX via the corresponding funX pointer is undefined. 10:04:35 aww 10:04:46 undefined as in it will work fine in gcc? 10:05:11 izabera, undefined as in "that might depend on CPU architecture and calling convention" 10:05:15 Well, it won't work fine if the function is using the Windows stdcall calling convention. 10:05:17 shachaf: python would have a fairly straightforward translation to {} style too, only it already uses curly braces for something else which is syntactically incompatible, so you'd need to use some ugly tokens instead 10:05:29 It won't even link, because the number of parameters (kinda-sorta) is part of the name mangling. 10:05:48 shachaf: in fact, the language docs describes python syntax in terms of tokens including newline, indent, and dedent tokens. 10:05:48 no name mangling in c so it's all good? 10:05:59 I mean the C name mangling. 10:06:01 izabera, um, on Windows there is in C 10:06:02 oh yes, python also uses semicolons in an incompatible way 10:06:11 izabera, Also it will still crash during runtime there 10:06:36 oooook this thing wouldn't work on windows anyway 10:06:54 izabera, I would suggest just using nullfunc(int ignored1, int ignored2) instead if you don't care about the arguments in some cases 10:07:14 Okay, slight correction -- since it's a function pointer, the name mangling isn't necessarily an issue. But it should still crash and burn on runtime. 10:07:16 izabera, anyway you are invoking undefined behaviour and it might break on some non-windows too 10:07:20 the problem is sort of like in some BASIC dialects, where a colon separates statements, but an IF cond THEN ... has any number of colon-separated statements up to the end of line as its body 10:07:28 so you can't just rewrite all newlines to colons 10:07:36 izabera, better just to not do it that way 10:07:48 I do wish I could write nested one-liners in the Python REPL. 10:07:56 (this is made worse by those dialects of basic that have two different IF-THEN syntaxen, the one-line and the block one) 10:08:54 do you pay taxen 10:09:11 shachaf, I think ipython kind of allows that? 10:09:17 Haskell is much better, because you can write everything with only braces and semicolons, without newlines or indents, and it's easy if you know what syntax tree you want to write, it's only sometimes hard to tell how braceless code you didn't write parses. 10:09:24 shachaf, Or at least it handles enter presses much better 10:09:36 izabera: FWIW (since you mentioned a "generic function pointer"), any pointer-to-function can be safely converted to any other pointer-to-function (with a cast), as long as you convert it back for the call. So arguably anything (say void (*)(void)) can work as a generic function pointer in some sense. 10:09:41 I don't one to write multi-liners, though. 10:10:53 ("A pointer to a function of one type may be converted to a pointer to a function of another type and back again; the result shall compare equal to the original pointer. If a converted pointer is used to call a function whose type is not compatible with the referenced type, the behavior is undefined." C11 6.3.2.3p8) 10:11:41 fizzie: So why is it undefined behavior? 10:11:53 fizzie: meh, those rules for pointer-to-function being convertible (and pointer-to-struct being not only convertible but also have the same representation) are just for efficiency. if you are a theorist, you can always just write typesafe code by allocating the right kind of pointer somewhere, and referencing it only indirectly when you don't know its type. 10:11:57 Those function types seem to be compatible. 10:14:27 shachaf: "For two function types to be compatible -- If one type has a parameter type list and the other type is specified by a function definition that contains a (possibly empty) identifier list, both shall agree in the number of parameters, --" (C11 6.7.6.3p15) 10:15:12 Here e.g. funint has a parameter type list, nullfunint is specified by a function definition that contains an (empty) identifier list, and they don't agree in the number of parameters. 10:15:22 So they can't be compatible. 10:15:56 so you guys are saying that this thing may be slightly unportable https://arin.ga/oogx5Q/raw 10:16:25 With all that __builtin_crap, it's by nature unportable. 10:16:50 that works in gcc and clang 10:17:00 And of course those are the only two compilers in the world. 10:17:31 Anyway, time(NULL) % 2 is unportable too. 10:17:33 that's all the portability i care about for this thing 10:17:37 oh come on 10:18:06 time_t can be any real type (actually even complex before C11), and the operands of % must be integer types (it's a constraint violation if not). 10:18:20 that's really not important now -_- 10:18:34 Hey, you're the one who said "portable". 10:18:56 i was talking about the you know what part 10:19:10 hey, don't knock imaginary time 10:19:37 Where's the original code? 10:19:47 Ah. 10:20:14 Because those are definitions, not declarations. 10:20:33 Or something. Maybe I was looking in the wrong place. 10:21:56 I was looking at "If one type has a parameter type list and the other type is specified by a function declarator that is not part of a function definition and that contains an empty identifier list, the parameter list shall not have an ellipsis terminator and the type of each parameter shall be compatible with the type that results from the application of the default argument promotions." 10:22:45 Yes. It would (probably) be okay to have a declaration of int blah(); and a function pointer of int (*p)(int a, int b) = blah; and then call p(1, 2) if the blah function actually did take two ints. 10:22:56 But here the corresponding definition is one which takes no parameters. 10:23:08 eww, pre-ANSI style functions 10:23:13 best to juts leave those alone 10:23:34 Those are great, for the reason I explained above. 10:23:40 -!- hppavilion[1] has joined. 10:23:43 Except they don't work the way I thought, so that's scow. 10:23:46 (unless you're like deliberately trying to do eso, of course) 10:23:52 In any other country, do people usually join the 1.60934 km high club? 10:24:57 only if they're 22.86cm nails fans 10:25:13 ew 10:25:32 it doesn't sound nearly as bad when it's in units i don't understand 10:25:56 izabera: Anyway, yes, it can be unportable. Even in gcc, for some contexts. (See https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/i386-and-x86_002d64-Options.html -mrtd: "Use a different function-calling convention, in which functions that take a fixed number of arguments return with the ret num instruction, which pops their arguments while returning. -- In addition, seriously incorrect code will ... 10:26:02 ... result if you call a function with too many arguments.") 10:26:41 It might be portable enough for your purposes. 10:27:08 yay 10:35:15 -!- augur has quit (Remote host closed the connection). 10:35:57 -!- tromp_ has joined. 10:40:22 -!- tromp_ has quit (Ping timeout: 252 seconds). 10:42:46 `ping 10:43:30 pong 10:43:41 `echo 6JMYWsY9kHzLZUFffWSTViYUTmDbBZzx0nz/UI7uuuw 10:43:52 6JMYWsY9kHzLZUFffWSTViYUTmDbBZzx0nz/UI7uuuw 10:49:51 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 11:07:29 shachaf, what do you mean with "scow"? 11:09:29 fizzie, 11:09:36 what about non-x86? 11:09:53 What is the ARM and MIPS calling conventions? 11:10:33 Vorpal: "the scow of X" means something like "the worst speciment of X" 11:10:48 shachaf, is that a common wording? 11:10:51 izabera, oh and what is your end goal with all of this? 11:10:53 Not very. 11:11:13 okay 11:11:26 i don't like that question because then my end goal never seems importan enough 11:11:41 oh? 11:12:14 izabera, I'm just curious you are trying to do something this seemingly over-complicated (in addition to being non-portable) 11:12:46 i just wanted to make a generic no-op function that i can assign to a function pointer 11:13:09 Okay, for what purpose though? Or just as an exercise in and of itself? 11:13:11 then i can just call the function with whatever argument and it will do nothing 11:17:42 they sorta do it here https://github.com/9fans/plan9port/blob/master/src/cmd/dd.c but it's not at all generic 11:18:04 their null and cnull functions do something very specific 11:18:12 i just wanted some no-op 11:21:12 i think it's a useful idea, and if one could just assign NULL to a function pointer and then call that function i'd use that 11:23:21 izabera, yeah it sounds nice. Sadly I think C is the wrong language to do that portably. Also what about the return value? It only makes sense for functions returning void doesn't it 11:23:27 I.e. functions with side effects 11:23:57 my no ops just return 0 11:24:18 izabera, what for a function returning a struct on the stack though? 11:24:19 but yeah it's more useful if you don't care about the return value 11:24:32 that's work in progress 11:25:19 I think this would be easier in C++ actually, At least C++11 and later. Since then you could probably just use a lambda wherever to do this. 11:34:43 -!- boily has joined. 11:37:03 -!- idris-bot has joined. 11:48:25 -!- LKoen has quit (Remote host closed the connection). 12:04:15 -!- LKoen has joined. 12:07:19 Vorpal: The x86-32 stdcall one is the only widespread one I know of where extra arguments aren't silently ignored. 12:07:46 Possibly because variable-argument functions are inherently problematical for the callee clean-up scheme. 12:07:54 (And C is all about varargs.) 12:25:56 -!- boily has quit (Quit: BOUQUET CHICKEN). 12:36:55 -!- tromp_ has joined. 12:41:30 -!- tromp_ has quit (Ping timeout: 258 seconds). 12:42:45 -!- LKoen has quit (Remote host closed the connection). 12:50:54 fizzie, I dispute that last statement 12:51:01 I think it is a very small part of the language 12:51:50 fizzie, what about various register based calling conventions? 13:01:02 -!- LKoen has joined. 13:22:39 Well, it's all about varargs compared to some other languages, which don't have anything analogous. 13:23:00 As for register-based conventions, they all tend to have some sort of "rest are spilled on the stack" fallback. 13:25:07 Weird thought: it won't take that long until RFC numbers are going to need five digits. 13:30:05 blasphemy... surely the right solution is to return some no longer useful RFC addresses to a pool from which they can be sold to the highest bidder. 13:31:35 Or move to a "RFD" prefix, it has a reasonably analogous expansion ("Request for Discussion"). 13:31:46 And then up to RFE (Request for Elaboration), and so on. 13:33:55 In related news, I hadn't somehow realized Psyduck is water-type. 13:34:09 I mean, it makes sense (ducks and water), just somehow surprised me. 13:37:49 -!- tromp_ has joined. 13:39:49 oh, *F*eedback. (I was wondering how much trouble "RFF" would be asking for but this is a quite natural word to use in this context) 13:41:21 Request for Gabble. 13:41:28 @wn gabble 13:41:33 *** "gabble" wn "WordNet (r) 3.0 (2006)" 13:41:33 gabble 13:41:33 n 1: rapid and indistinct speech [syn: {jabber}, {jabbering}, 13:41:33 {gabble}] 13:41:33 v 1: speak (about unimportant matters) rapidly and incessantly 13:41:35 [3 @more lines] 13:41:47 Maybe a little bit too on-the-nose? 13:42:15 -!- tromp_ has quit (Ping timeout: 250 seconds). 13:43:29 Request for Gossip, maybe. 13:58:51 -!- ais523 has joined. 14:04:53 In related news, I hadn't somehow realized Psyduck is water-type. <-- shouldn't it be flying/water 14:06:22 bbiab 14:06:42 I don't think so, I think they can't fly? 14:06:46 Vorpal: wait, "psy" but it's not psychic? 14:07:11 Okay? Normal ducks can afaik 14:07:23 b_jonas, good point too 14:07:33 Yes normal ducks can 14:07:45 Also, each pokemon cannot have more than two types anyways 14:07:58 -!- atrapado has joined. 14:08:05 zzo38: yes, so it shouldn't be flying 14:08:21 Hm I think I have a weird systemd issue. Says "Started (null)" as the output during the boot at one point 14:09:24 I should probably upgrade my PC to windows 10 before the end of the free upgrade period... It is on Windows 7 14:10:20 Need to make a backup and such first 14:10:56 9 more days. 14:11:17 yeah 14:11:31 fizzie: you upgraded yet? Any major issues? 14:12:02 I upgraded quite a while ago, but I haven't booted it in months. 14:12:15 Don't think I encountered any issues either, though. 14:13:02 Hm 14:13:45 My wife's ThinkPad's bundled Lenovo crapware was a little bit dodgy post-upgrade, but I dare say the current versions are likely 10-tolerant. (The hard disk, on the other hand, apparently wasn't, since it broke; and she switched to Ubuntu at that point.) 14:14:19 (For the record, the drive broke a month or two after the upgrade, and very likely had nothing to do with it.) 14:15:12 fizzie: right. I heard some people had issues with the software for Saitek X52 Pro, a throttle and joystick setup that I have 14:15:16 So that is slightly worrying 14:16:21 I don't have any exotic hardware. 14:16:38 Okay... so where are the rest of the backup hard drives? I only found the Linux backup HDD so far... 14:18:15 Ah found it. Also found another thing I didn't think I had any more. 14:36:13 -!- oerjan has joined. 14:40:57 tunes is not loading? 14:42:53 oerjan: not for me either, but the server appears to have at least some activity 14:43:12 well clog is here... 14:43:41 oerjan: re your lambdabot message, "article_text" is badly named 14:43:53 it actually means title? 14:43:57 ok then. 14:44:15 oerjan: title without namespace 14:44:49 ais523: I'm not sure if you're interested, but there's some recent discussion about mathematics and ordinals and stuff in the comment stuff of https://johncarlosbaez.wordpress.com/2016/07/07/large-countable-ordinals-part-3/ that you might want to look at 14:44:49 -!- LKoen has quit (Remote host closed the connection). 14:45:53 it is partly continued from the previous two parts of that blog entry 14:47:01 b_jonas: not really interested, sorry 14:47:08 ok 14:49:32 -!- Guest7241 has joined. 14:51:19 hm looks like a tough guy, that high conservator. 14:57:53 -!- LKoen has joined. 15:04:16 -!- LKoen has quit (Remote host closed the connection). 15:04:23 oerjan: did you look at my hydra killing machine? I realize that the hydra is severely handicapped... but it's actually better than I hoped. 15:04:54 int-e: no. there are no logs at the moment tdnh 15:04:54 (I mean http://int-e.eu/~bf3/tmp/hydra2.xhtml ) 15:06:25 int-e: Thanks, now I've got that Ylvis "Jan Egeland" song stuck in my head. 15:06:40 fizzie: What did I do? 15:06:45 hm i haven't heard that. 15:07:09 You said "hydra killing machine"; the song lyrics contain the words "peacekeeping machine". 15:07:14 I admit that's bit of a stretch. 15:08:00 oh, lucky... The hydra currently has: 0 segments, 0 heads, and depth 0. Hercules has cut 74 heads so far. 15:08:02 oerjan: Oh, right, they're your countrymen. 15:08:35 -!- LKoen has joined. 15:08:42 int-e: is this the dire one or the hydra0 one? and did you reroll at the start for few starting segments? 15:09:02 i'm a bit nervous of opening the wrong kind of tab while doing the automatic hydra. sometimes my browser decides to crash tabs and reload because of what happens in unrelated ones. 15:09:20 b_jonas: this is the dire thing, my hydra2.xhtml, automated strategy, I didn't check the initial depth.\ 15:09:50 oerjan: you might also like to know that I stopped the left-most hydra experiment after 1.5 Million chops. 15:09:56 gah. 15:09:58 int-e: roll until you get a 11 high hydra :-) (or is that possible only with the non-dire one?) 15:10:35 I think the dire one starts at most 8 hgih 15:11:13 I've got a 10 15:12:32 with this result: The hydra currently has: 0 segments, 0 heads, and depth 0. Hercules has cut 633 heads so far. 15:12:43 <\oren\> `unidecode لأ 15:12:52 ncie 15:13:17 ​[U+0644 ARABIC LETTER LAM] [U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE] 15:13:27 <\oren\> interesting... 15:14:20 <\oren\> it appears blank even though that letter is supported in my font 15:14:40 int-e: stop sabotaging my experiment with demotivating facts! 15:14:51 <\oren\> which implies that it's some contextual form that is blank 15:15:06 oerjan: your time would be better spent on implementing your own chopping strategy in javascript! 15:15:30 oerjan: can you just create multiple browser profiles, run them each separately (in separate browser processes), and run the hydra in a special one? 15:15:47 oerjan: I run two browser processes because of a bad-behaved internal webpage I need to use 15:16:38 it can be a bit tricky because firefox needs a magic incantation for this, but once you know the right incantation for your version of browser, it's not that hard 15:16:51 -!- gamemanj has joined. 15:16:58 <\oren\> how does arabic even work? 15:17:07 b_jonas: i use IE hth (idn) 15:17:10 \oren\: ... it's complicated 15:17:29 oerjan: I don't know how to do the same in most other browsers 15:18:16 once more, people are giving me advice that i've explicitly hinted i don't want. will they never learn? 15:19:26 <\oren\> Like, most of the letters seem to be connected ever since I added the contextual forms in Arabic Presentation Form-A 15:19:31 oerjan: fwiw, it was intended to be unsolicited advice. 15:19:50 <\oren\> But some aren't 15:19:51 oerjan: I receive a bit of that myself and it usually gets ignored. 15:20:19 yay 15:23:03 -!- Kaynato has joined. 15:24:11 <\oren\> Argh, which codepoints do I need? 15:25:12 ah, I see! 15:26:09 heh, http://unicode.scarfboy.com/ seems to display a random one by default 15:27:18 http://unicode.scarfboy.com/?s=U%2b132E6 looks useful 15:27:40 (for electrical engineering :-P) 15:34:18 remember, people 15:34:26 the egyptians invented the lightbulb: http://unicode.scarfboy.com/?s=U%2b132e9 15:35:07 gamemanj: that's a pacifier, not a lightbulb 15:35:40 That's what they want you to think... :) 15:38:58 b_jonas: heh, I got a depth 12 seed... let's kill that. 15:40:02 but perhaps it doesn't make any difference whether it's depth 9,10,11 or 12... the first few cuts will simply not result in any replication because that would make the hydra too deep. 15:40:12 in fact, The hydra currently has: 0 segments, 0 heads, and depth 0. Hercules has cut 491 heads so far. 15:40:44 int-e: depth 12 dire or non-dire? 15:41:09 b_jonas: dire 15:41:17 nice 15:41:18 I'm not playing with the non-dire one at all 15:41:24 I didn't know 12 was even possible 16:16:05 i ran the hydra for a while. it was making pretty good progress by the time it hit the 4k mark then vbox crashed and forced a reboot 16:16:55 i postulate that "leftmost head" may be the most (or nearly the most) pessimal chopping strategy 16:17:19 what is this hydra thing? 16:17:19 "leftmost head" sounds pretty random 16:18:12 ais523: http://www.madore.org/~david/math/hydra.xhtml 16:18:29 thanks 16:19:55 ais523: it's related to the ordinals I was talking about 16:20:06 so in other news I think I just had a premonition of a future NetHack enemy... 16:20:29 ais523: the description is at http://www.madore.org/~david/weblog/d.2008-03-27.1537.html , and the games at http://www.madore.org/~david/math/hydra.xhtml and http://www.madore.org/~david/math/hydra0.xhtml 16:20:32 DCSS has hydras, but they don't quite work like that 16:21:13 ais523: does it have hydras with at most 7 heads? 16:21:18 or even at most 6 heads? 16:21:40 they cap out at 27, and grow 2 heads when you cut off 1 with a non-flaming edged weapon 16:21:59 -!- Vorpal has quit (Ping timeout: 244 seconds). 16:22:03 ais523: waho... non-flaming? so acid doesn't help? 16:22:13 oh, edged weapon only 16:22:16 -!- Vorpal has joined. 16:22:17 -!- Vorpal has quit (Changing host). 16:22:17 -!- Vorpal has joined. 16:22:17 so, not cute and cuddly then. 16:22:18 so you can just club them to death 16:22:21 although they'll eat you first 16:22:32 ais523: does it also have water hydras? 16:23:01 b_jonas: no 16:27:47 i postulate that "leftmost head" may be the most (or nearly the most) pessimal chopping strategy <-- my theory too 16:28:29 -!- LKoen has quit (Remote host closed the connection). 16:32:31 it means you're nearly always cutting off the smallest branches, which means that when you finally get to a large branch, the result will be almost as large and have plenty of room to grow. 16:33:06 I think optimal may be to cut off the head furthest from the root 16:33:23 is leftmost equivalent to cutting off the head nearest to the root? 16:33:35 no. 16:34:05 because a dire cut can add height. 16:35:10 ais523: that may be optimal although i'm not sure whether it's _also_ worth it to avoid dire cuts in some circumstances (which i've been doing) 16:36:33 well, I guess we can simplify it by saying that the hydra always makes 1 more than the minimum number of copies 16:36:48 (I know that'd defeat the ordinals thing, but it'd make it possible to compare algos objectively) 16:37:22 ais523: note that the js version is _very_ much constrained by the restriction on how much total junk it'll allow. 16:37:37 yes 16:37:47 without that, as i said, you'd probably not beat it in the lifetime of the universe. 16:39:16 right, it hardly ever copies 16:39:18 -!- tromp_ has joined. 16:43:33 -!- tromp_ has quit (Ping timeout: 240 seconds). 16:48:38 -!- LKoen has joined. 16:50:25 almost got to cut the oldest dire branch there... 16:51:29 i mean prune. still a y shape on top of it. 17:07:59 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 17:12:32 4155 and only one dire neck left 17:12:44 oh it just duplicated 17:12:50 triplicated i mean 17:14:29 quintopia: i got to that point _relatively_ fast too. 17:14:52 you need to look at how much is on top it, alas. 17:14:57 (i think) 17:15:15 *+of 17:15:59 quintopia: this one, http://int-e.eu/~bf3/tmp/hydra.png still looked healthy a million chops later. 17:16:43 even though it regularly cut all the wait to the rightmost subtree on level 2. 17:17:46 int-e: well my rightmost subtree on level 2 is much smaller than that. 17:17:52 int-e: mine is much further along than that. (it got lucky with no copies in the first 3 chops) 17:18:14 (at 74400 heads about now.) 17:19:43 well that's good. 17:23:21 74400 heads? or cuts? i don't think the app can fit 74400 heads on screen, though it would be interesting to try and force it to 17:24:10 cuts 17:25:53 https://imgur.com/a/CKzBn 17:28:24 Ooh, what's this? 17:28:57 http://www.madore.org/~david/math/hydra.xhtml 17:29:01 oerjan: thanks 17:32:03 oerjan: i think my rightmost subtree is even further than that. it's a dire at level 2, but above only three normals at level 3. that Y on yours could result in far more than that. hard to say though. 17:32:47 quintopia: i agree, that's at least a smaller "ordinal" 17:34:23 as in, it's easy to produce your shape by taking steps from mine 17:35:35 oerjan: https://imgur.com/a/iB9r1 17:36:09 as i thought. 17:36:26 -!- idris-bot has quit (Quit: Terminated). 17:37:38 i need at least two cuts on my rightmost second level to get something like that. 17:38:06 i do expect that to take less than a million cuts, though. 17:38:29 hopefully less than 100000 17:38:58 -!- Melvar has quit (Quit: thunderstorm). 17:39:15 this is an urgent appeal from the ESPEH (Esoteric Society for the Protection of Endangered Hydrae) 17:39:47 hundreds of hydras are being slaughtered every day by merciless murderers who do it for the "fun of solving them"... 17:40:02 -!- MoALTz has joined. 17:40:34 to save these poor, defenseless hydras, please donate just a month. 17:42:03 gamemanj: a hydra is like an anthill. it gets into your pantry and starts eating all your food, and any time you see a head, you squish it without thinking about it. but you really need poison to even make a dent in the hill 17:42:36 nonsense 17:42:38 er...i got my simile confused with the thing it was symbolizing there 17:42:44 but you get the idea 17:42:50 No, I don't 17:43:03 people keep murdering these poor innocent hydrae, who can't even defend themselves 17:43:07 in any case, hydrae are pests and need to be killed as much as possible 17:43:31 (also I love how my linguistic misinformation plan is working so well) 17:44:13 (the best part is I wasn't even being consistent about it) 17:44:13 i read that xkcd too. i can knowingly participate in such pranx 17:44:47 gamemanj: my impression is that they're grooming their hydras and eating the cut off heads. 17:45:08 ...isn't that painful for the hydrae? 17:45:24 The hydras don't feel pain. 17:45:49 Have you read the Herzei Study On The Biology Of Hydrae? 17:46:26 cf. http://www.gocomics.com/nonsequitur/1993/04/03 17:47:08 I don't have any money called "". 17:47:15 gamemanj: I have not, and I intend to keep it that way. 17:50:18 hydrae is actually an accepted plural of hydra 17:50:47 zzo38: would you donate it if you did? 17:51:07 quintopia: But I don't care how you call hydras! 17:52:14 int-e: O KAY 17:53:33 \o/ it's dead 17:53:51 Took 1568 cuts 17:53:51 ybden: by hand? how many cuts? 17:53:53 ok 17:53:56 quintopia: by hand 17:54:05 seems high for manual. strategy? 17:54:07 quintopia: If I had enough, and the stuff it is meant to donate for is valid, then I might. 17:54:30 oerjan: progress! only 2 above that rightmost dire now 17:55:40 yay 17:56:35 if anyone wants the "how to donate " text I just sent to zzo38, ask :) 17:56:44 (hint: it's not actually currency at all) 17:57:00 currently i don't want it. 18:00:39 this whole donation thing no longer has currency 18:00:51 quintopia: It took a while for me to create a strategy. Just tried again with the strategy that I formed, took 403 cuts 18:01:03 ybden: what is i 18:01:10 Trying to work out how to describe it 18:02:20 -!- AnotherTest has quit (Ping timeout: 272 seconds). 18:02:37 I think that it was pretty much breadth-first, prioritising the removal of higher levels and dire segments 18:03:19 (but higher levels over dire segments) 18:03:25 breadth first from where? 18:03:54 as in, which direction? Top-downwards 18:04:03 Trying to remove tips 18:04:18 Well, I suppose that isn't exactly breadth-first 18:04:23 left to right? 18:04:30 I didn't really pick an order 18:04:53 i tried a similar strategy and it was very poor, though i think i may have prioritized dire segments over height 18:05:15 for multiple tips at the same level, I tried to remove the ones with less normals, although in hindsight I should probably have done it the other way round 18:05:36 Given that this would probably have resulted in less duplication 18:06:07 quintopia: Yeah, I think I was prioritising dire segments over height partway through the first time, and then switched to height 18:06:10 It went better after that 18:06:53 I think that it made quite a significant difference, actually 18:07:13 Is there any known best algorithm for efficient hydra chopping? 18:07:39 not known because we don't know the algorithm for head regrowth 18:07:47 Because it's random? 18:09:40 well 18:09:50 i guess we could look at the code 18:09:56 it is javascript after all 18:10:23 there is a probability distribution on head growth, plus also certain constraints that prevent it from recursing/copying too much 18:11:26 is there some kind of pumping lemma for picture languages? 18:14:12 what do you mean by picture language? 18:15:33 there are languages that extend regular expressions by operators that act downwards instead of sideways 18:15:42 resulting in twodimensional results 18:15:42 quintopia: tried again, but prioritising normals with more heads, took 487 18:15:55 quintopia: I'm pretty sure this is worse, even though this is random 18:16:34 this would - i guess - result in regular pictures 18:16:44 but you can also define the same for grammars 18:31:13 does anyone know why does posix_memalign return int instead of void * like _every_ other function that allocates memory? 18:31:46 myname: you mean like snails? 18:32:01 izabera: it's so that it can have more than one error code 18:32:07 without needing to rely on errno 18:32:23 what's the problem with errno? 18:32:47 no. let's assume i add a $-operator to,RE that acts like + but downwards. (0+)$ would be a rectangle of 0 18:33:39 izabera: it's globalisih state that can be surprisingly hard to deal with 18:33:42 if i also add some kind of downwards concatenation i could make a chessboard 18:33:53 it tends to get accidentally overwritten quite easily, for example 18:33:54 ais523: but every other function uses it 18:33:59 and causes headaches for threading libraries 18:34:05 ((10)+ D (01)+)$ 18:34:09 I think POSIX is moving away from errno for newly designed functions 18:34:20 what is down concatenation of strings of different length? 18:34:45 i'd say either undefined or having blanks 18:34:56 myname: regular expressions already have a $ assertion 18:35:01 you might want to use some other character 18:35:23 yeah well, pcre do 18:35:41 i donjt care about notation really 18:36:48 https://github.com/feresum/PMA/blob/master/doc.md SNAILS 18:37:16 -!- mitchs has left. 18:40:45 -!- tromp_ has joined. 18:44:00 quintopia: What's your lowest chop count (by hand)? 18:45:27 -!- tromp_ has quit (Ping timeout: 264 seconds). 18:47:49 ais523: so why does aligned_alloc return void* and set errno? 18:47:53 that's in c11 18:48:25 because C11 and POSIX kind-of compete with each other 18:48:50 so one of the two is a bad decision 19:12:08 isn't it easily going to go to ackermann numbers <-- my guess is that the general hydras last even longer than that, since their halting is unprovable in peano arithmetic. but this one is limited by screen size, which means it obviously cannot be more than about exponential in that. 19:12:52 (is graham's number stuff provable in peano arithmetic?) 19:13:08 (tunes finally loaded hth) 19:13:19 although i must be going -> 19:13:21 oerjan: I don't remember the context but I think I was just going to make some sort of pun. 19:13:39 shachaf: no, that was the next line 19:13:41 oerjan is a real groucho these days 19:13:48 oerjan: I think it was just setup. 19:13:49 groucho? 19:13:53 OKAY 19:14:19 https://www.youtube.com/watch?v=_YrNQaXdOxU 19:15:42 -!- oerjan has quit (Quit: OKAY). 19:19:34 -!- Melvar has joined. 19:36:47 @metar EGBB 19:36:48 EGBB 201820Z 30010KT 9999 VCSH FEW033 SCT039TCU 24/15 Q1010 19:37:38 @metar LOWI 19:37:38 LOWI 201820Z VRB01KT 9999 FEW070 25/16 Q1016 NOSIG 19:37:51 cooling down slowly... 19:39:26 -!- AnotherTest has joined. 19:43:05 -!- Phantom_Hoover has joined. 19:45:28 -!- ^v has quit (Ping timeout: 258 seconds). 19:50:00 -!- ^v has joined. 19:50:51 -!- Nithogg_ has quit (Ping timeout: 264 seconds). 19:54:55 -!- ais523 has quit. 19:55:11 -!- Nithogg_ has joined. 20:01:45 -!- lordofheads has joined. 20:03:45 any hacker in d house 20:05:20 -!- lordofheads has left. 20:05:22 -!- hppavilion[1] has joined. 20:05:36 brilliant. 20:06:33 -!- ^v has quit (Ping timeout: 258 seconds). 20:07:02 -!- ^v has joined. 20:08:28 also, people are too stupid to use the pumping lemma 20:09:01 we had some that chose i = 1 to get a word that's not in the language ... 20:09:25 it could work! 20:09:36 (if you made a mistake earlier) 20:11:30 we had a language L = {1^(k^2) | k in N+} 20:11:40 one guy noticed that epsilon is not in there 20:11:59 so he chose i < 0 small enough to anihilate all other 1s in the given word 20:12:04 uh, this gives me an idea for a wrong proof... showing that the empty set is not regular... for assume it's regular and consider any word from the language that is longer than the pumping constant... pumping gives a word that is not in the language because the language is empty... which is a contradiction... find the error! 20:12:59 myname: that's a nice trick too. 20:13:42 yeah, but stupid as fuck to write in something that gets graded 20:13:51 @tell oerjan uh, GG... could that be Zola? 20:13:51 Consider it noted. 20:14:36 -!- ^v has quit (Ping timeout: 258 seconds). 20:18:03 -!- ^v has joined. 20:20:57 -!- MoALTz has quit (Quit: Leaving). 20:22:39 -!- ^v has quit (Ping timeout: 258 seconds). 20:23:36 -!- idris-bot has joined. 20:39:20 -!- augur has joined. 20:51:20 That kind of deciding character encoding is not so good I think; the encoding should be defined explicitly instead. (For compatibility purpose, it could do what it does now if no character encoding is explicitly defined) 21:02:38 What sort of character encoding deciding? I seem to be missing context for that statement. 21:04:20 The one documented in https://github.com/feresum/PMA/blob/master/doc.md 21:04:56 Hrm. 21:08:41 -!- atrapado has quit (Quit: Leaving). 21:18:26 -!- hppavilion[2] has joined. 21:21:51 -!- hppavilion[1] has quit (Ping timeout: 240 seconds). 21:46:06 <\oren\> Oh my god why! 21:46:32 <\oren\> why would someone use macros to generate templates that generate the actual code that is crashing 21:46:42 <\oren\> why 21:49:39 are you asking *about* meta-meta-code? 21:51:07 <\oren\> Wait... I didn't even knwo you could do this with templates 21:52:06 <\oren\> When did template functions with variable numbers of variably type arguments become a thing? 21:52:30 <\oren\> And why would anyone even 21:53:09 you're in #esoteric 21:53:11 this is normal 21:53:24 "C++11 - New features - Variadic templates" http://www.cplusplus.com/articles/EhvU7k9E/ has a few usecases 21:53:41 <\oren\> gamemanj: I did not expect to see this in actual, production code 21:53:56 not necessarily convincing ones... maybe the motivation was to do less C preprocessor magic. 21:53:57 <\oren\> Or really, anything remotely resebling this 21:54:59 <\oren\> I'm looking at this stuff and I'm thinking; no wonder our builds take an hour to compile 21:55:39 <\oren\> the code that uses this is also generated 21:55:41 Tip: templates compile for reach translation unit they're present in. 21:55:58 As such, templates are the secret to slow C++ compile times. 21:56:02 *each 21:57:31 <\oren\> and this stuff is just there as syntax sugar mostly 21:57:41 <\oren\> god, why 21:59:02 <\oren\> variadic template functions generated by macros and used by another writhing abomination somewhere else 21:59:37 (So in other news I'll be watching TheDailyWTF) 22:01:02 <\oren\> Oh I forgot to mention what this is doing 22:01:29 <\oren\> it allows C++ code that writes HTML to have the same nested structure as the HTML is generates 22:01:49 <\oren\> the horror 22:01:52 so it's an EDSL! 22:02:19 Now we're in buzzword-compatible sane territory again ;-) 22:02:37 Well, as long as it works :P 22:03:09 But why does it need to have that structure... 22:03:17 ow. 22:03:20 my sanity. 22:03:33 it's gone. 22:04:07 <\oren\> you can then write htmlout.start_a("href","someurl").text("link name").end_a(); 22:04:21 <\oren\> or something? 22:04:28 -!- int-e has set topic: The intradisciplinary hub of insanity matrices and esoteric magic card design and deployment | http://esolangs.org/ | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf. 22:04:43 <\oren\> it's hard to tell because the functionsa are generated by a macro 22:05:49 -!- wob_jonas has joined. 22:05:58 <\oren\> and we rarely use this code directly 22:06:37 well, in rust, you can use macros to basically inline html to generate a dom object 22:06:41 <\oren\> it's through a templating system in a proprietary subset of an obscure open source language invented by the chief architect 22:07:21 which obscure open source language? 22:07:36 (you can't have an open source language under an NDA, surely?) 22:07:36 <\oren\> "Salmon" 22:08:20 <\oren\> it's almost impossible to find info on it other than two mailing list posts by the chief architect 22:08:41 at comp.compilers? 22:08:46 <\oren\> I think so 22:09:02 Seems it supposedly had a website at one point. 22:09:24 <\oren\> oh there's an archive 22:09:26 <\oren\> http://www.cod5.org/archive/s/salmon.html 22:09:33 Is this it? https://web.archive.org/web/20140105015657/http://salmonpl.net/ 22:09:33 <\oren\> "Imperitive" 22:09:41 <\oren\> gamemanj: yep 22:10:14 <\oren\> our build system is written in it, instead of makefiles 22:10:19 gamemanj: you could have something that's not open source but people lie about it and claim it's open source (this is common); or you could have something that has an open source license (usually because of copyleft) but isn't distributed except within very tight circles. 22:10:41 yes, I know about the people who lie and claim something is open source when it isn't... but those are usually people who are actually dodgy 22:10:42 \oren\: wait, your build system is written in a templating system? 22:10:59 like "77zip", woah was *that* a fun mess to clean off of someone's computer 22:11:07 (Not to be confused with "7-zip") 22:11:36 <\oren\> wob_jonas: no, in Salmon, an obscure programming language 22:11:57 "procedure" and "function" are different things for some reason 22:12:16 <\oren\> which is used for many purposes here because it's the pet language of the chief architect 22:12:30 oh, for... reduced fractions 22:12:33 And of course you can also have something under an MIT-like license but distribute only binary form or other deliberately obfuscated form that's hard to decode or modify. 22:12:46 <\oren\> Luckily, the production things are all in C++ 22:13:05 Big companies sometimes try to pull that when some legal court forces them to release the source of some software 22:14:00 BTW, apparently Salmon comments are C-like, except when they're Python-like. Oh, but apparently comments can be nested, I'm sure THAT's fun 22:14:00 \oren\: heh, I'm glad our chief architect doesn't have an obscure pet language... oh wait, cmake. damnit. 22:14:04 <\oren\> gamemanj: reduced fractions? 22:14:15 oren: https://web.archive.org/web/20120114192459/http://salmonpl.net/docs/basic_examples.html 22:14:16 read 22:14:18 carefully 22:15:11 <\oren\> oh geez 22:15:37 gamemanj: well in C, ifdefs can be nested 22:15:46 that can be fun 22:16:33 yes, but that makes SENSE 22:16:35 !"Hello, world!" <-- didn't some basic dialects use ! for abbreviating PRINT? 22:17:02 gamemanj: can Salmon do /* crazy /*/ alternating /*/ comments /*/ with /*/ non-comments /*/ like /*/ this /*/ ? /**/ 22:17:19 <\oren\> I use #if 0 for bcommenting things out in C anyway 22:17:21 int-e: no, basic dialects use a question mark to abbreviate print 22:17:24 not an exclamation mark 22:17:31 damn. 22:17:41 I have no idea what would happen, Salmon's not my language, and I don't ever want to run it on any computer I own 22:17:48 now, someone else's computer maybe 22:17:55 \oren\: yes, that's useful for commenting out entire code blocks when they may contain short comments. I do it a lot 22:18:49 (some of my co-workers instead put a // in front of each line, even when commenting out a whole code block. that's horrible. #if 0 nests cleanly, both with other #if 0 and with comments.) 22:19:24 <\oren\> and then you can use #if 1 if you want to reenbale it temporarily 22:19:43 <\oren\> (while keeping the grouping handy) 22:20:03 \oren\: exactly. and #else for two blocks of which you enable one, or even named #ifdef 22:20:07 @google enbale 22:20:08 https://www.facebook.com/public/Melaku-Enbale 22:20:13 eww. 22:21:07 it evoked associations with "embalm" for me. fun typo. 22:21:07 (and in some cases, I can just use if (0) { ... } to disable a block.) 22:22:47 . o O ( salmon looks fishy ) 22:27:19 -!- tromp_ has joined. 22:28:41 <\oren\> Oh, so I can do tag_a("href","url","text"); 22:29:12 <\oren\> might as well dive right into the tempateing horror 22:31:38 wait, they printed a red Donate sorcery, costing only 2R, that works on any type of permanent? that's crazy! 22:32:08 -!- tromp_ has quit (Ping timeout: 272 seconds). 22:40:31 <\oren\> yeah, this thing actually works pretty well 22:40:57 <\oren\> other than being a convulsing horror 22:41:09 yeah 22:42:34 <\oren\> I've seen cmake in several projects though 22:42:52 <\oren\> is cmake turing complete by itdelf? 22:42:56 wait, cmake? 22:43:15 maybe cmake works well, but it definitely doesn't work well the way it's used here 22:43:28 the build system is horrible, and probably only part of that is that it's in cmake 22:43:29 <\oren\> I'm not talking about cmake before 22:43:49 <\oren\> I was talking about the massive templateing horror that generates html 22:43:50 "convulsing horror" does describe the build scripts we're using really 22:43:57 oh, that? 22:44:12 I thought it was the Eldritch Moon set in general 22:44:18 because that one is convulsing horror 22:44:40 and I think cmake is turing-complete by itself, but I don't really know. I don't program cmake. the chief architect does that. 22:45:13 <\oren\> right. I don't write anything in Salmon, I merely copypaste it when I need to add things 22:45:13 why are all build systems scow 22:45:26 Putting the Cthulhu back in Ph’nglui mglw’nafh Cthulhu R’lyeh wgah’nagl fhtagn. 22:45:59 shachaf: we talked about that before. figuring out what you have to rebuild and what you can reuse is one of the two hard problems in computer science 22:46:08 ybden: bad 22:46:12 wob_jonas: just rebuild everything 22:46:13 someone told that today 22:46:17 quintopia: rough count? 22:46:28 shachaf: yes, but the problem is, this build system doesn't work even if you rebuild everything, 22:46:36 right 22:46:41 therefore: why are all build systems scow 22:46:43 shachaf: because it builds things in the wrong order, so it tries to build something before building its deps 22:46:49 <\oren\> shachaf: if we did that, testing any change would take 40 minutes instead of 5 22:46:56 seriously 22:47:00 <\oren\> the man tests take 4 hours 22:47:04 <\oren\> *main 22:47:12 just send it to your data center and run it on a zillion computers 22:47:26 Also I don't actually mean to just rebuild everything. 22:48:01 <\oren\> the servers are in the room across from Dave. 22:48:24 <\oren\> (his name isn't Dave) 22:48:38 DANGEROUS DAVE 22:48:39 DAVE.EXE 22:48:53 that, yes 22:49:08 <\oren\> sometimes we have to go in there and hold the power button to reboot it 22:49:25 <\oren\> or get someone in California to do that 22:50:44 <\oren\> I think the actual production servers are in a data centre 22:50:50 <\oren\> ...maybe 22:51:06 What's a centre? 22:51:12 Do you mean a centrë? 22:51:13 <\oren\> but the dev servers are in the other room 22:54:26 <\oren\> of course, I'm fairly certain that if I ran linux on my macbook i could run the server on it 22:54:42 <\oren\> how much memory does a macbook pro have? 22:55:23 I don't think I know any MacBook pros. 22:55:36 But I know some people who know a lot about Apple computers in general. 22:55:38 <\oren\> wait no, it probably doesn't have enough hard disk 22:55:40 They have pretty good memories. 22:55:57 "the server"? 22:56:12 <\oren\> the... thingy. that my code goes into 22:56:38 <\oren\> the thingy that I run and it tells me if I did a good job... or somehting 22:56:55 <\oren\> if the output is colored red i did a bad job 22:57:31 aww 22:57:34 <\oren\> but if it's green, hooray I can type svn ci 22:57:41 People are upset about https://youtu.be/7rZOMY2sOnE apparently 22:57:53 I'm upset about it without even clicking the link. 22:57:58 So I'll keep not clicking it. 22:58:13 Our servers have raid array of hard disks, larger than any workstation does (but still not VERY large), plus at least some server has a tape drive for backups. 22:58:16 shachaf: It's an ad for Campbell's soup that has a gay couple in it 22:58:31 (also, Star Wars. Yes, they make an "I am your father" pun.) 22:58:33 Oh, that would definitely upset me. 22:58:35 quintopia: \o/ managed to kill it in 123 cuts with a good starting configuration and that strategy 22:58:37 I don't like ads. 22:58:48 shachaf: But it allows me to make jokes 22:59:12 Nobody tell the conservatives that it isn't a gay marriage; the other parents just aren't shown onscreen 22:59:48 ybden the cut topmost and then dire strat? 22:59:58 quintopia: yes 23:00:06 <\oren\> Another problem with c++ templates is that I can get several tens of kilobytes of error messages 23:00:42 <\oren\> all colored red thanks to our wonderful build system 23:00:46 You'll need a TENS machine to handle those error messages. 23:00:51 quintopia: also attempting to ensure that when cutting normals at the same level, that any growth would result in the smallest number of duplication 23:02:32 <\oren\> luckily I know the -R switch for less 23:03:00 I can also get tons of error messages. I usually search for "fatal" in them first, which means that the compiler stopped, either because there were too many error messages, because an #inlcude wasn't found, or because parenthesis or #ifs were unbalanced or some other preprocessor error, 23:03:30 and always imply that there will be much more error messages once I fix the fatal error, so I shouldn't be too happy with the error list being so short 23:04:25 <\oren\> Oh, he never defined a template specialization for std::string only for char* 23:04:32 <\oren\> ok 23:04:38 \oren\: C++17 is going to be TG 23:05:13 <\oren\> will C++17 make std::string the builting string type instead of char*? 23:06:21 <\oren\> so that "hello world" is an std::string? 23:07:26 \oren\: no, and that would be almost impossible anyway. but you can use a user-defined literal that gives a std::string, and the standard library will probably define such a udl 23:07:53 so eg. "hello world"s will be a std::string, possibly with some other suffix instead of s 23:08:07 -!- lleu has joined. 23:08:07 -!- lleu has quit (Changing host). 23:08:07 -!- lleu has joined. 23:11:48 <\oren\> wob_jonas: that's an ok compromise, but I still think std::string and std::vector should be made builtins with dedicated syntax 23:12:26 <\oren\> user defined literals sound like they will cause conflict 23:12:52 \oren\: part of the problem is that to create a std::string (even if the literal gives a const &), the compiler would have to know about the abi of std::string (which actually differs in different versions of libstdc++), how to allocate memory (which can depend on the version of libstdc++, compilation options, the libc used, etc), and 23:13:12 when to allocate the memory (not too late so it can cause an exception in the function where the literal is used, but not too early before libc isn't ready to malloc) 23:13:32 \oren\: I definitely don't think std::string or std::vector should be builtins 23:14:07 <\oren\> strings and arrays are builtins in most languages, why not in C++? 23:14:44 \oren\: most languages aren't like C++, and C++ syntax is now powerful enough that you can define your own new array-like or string-like class in C++, which is basically what the library does 23:14:50 <\oren\> then you could standardize the ABI for them 23:14:55 It's rather nontrivial with C and C++ having the interesting feature of supporting freestanding implementations. 23:15:03 (all this applies for modern C++, not for ancient C++) 23:15:06 That is, implementations *without a libc at all*. 23:15:09 (but you don't want to use ancient C++) 23:15:09 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 23:15:39 (this is an explicit feature in both C and C++. It's in the spec, and it's relied upon by some users.) 23:17:13 <\oren\> but isn't the spec's definition of a freestanding environment, to say most things are now implementation defined? 23:17:30 \oren\: the best ABI depends on details of the underlying machine, and as a result has also changed in time (although in huge rare steps because it's a pain to change), it's a low-level detail that the C++ language itself shouldn't standardize it. but part of the ABIs are standard enough, in the sense that they're documented and implemented by many 23:17:30 different compilers (the libstdc++ part are somewhat worse in this than the C and posix part) 23:18:17 Some portions of a freestanding environment are implementation defined. Not, however, the runtime semantics or syntax... 23:18:58 Having std::string built in would give you a substantial library that would be required to be defined in freestanding environments. 23:19:14 <\oren\> does the C standard mandate that an implementation have floats? 23:19:23 Yes. 23:19:38 \oren\: yes, although it's quite lenient about what kind of floats they are 23:20:04 <\oren\> could a conforming implementation use fixed point for floats? 23:20:07 luckily most modern machines and compiler environments give you SANE floats too, not just floats 23:20:13 Yes, there's no requirement that they're IEEE floats at all, and what's required in freestanding implementations is just the basic operators and some macros. 23:20:15 \oren\: no 23:21:08 Another big problem is that C++ attempts to have a large common subset with C. 23:21:22 Changing core semantics like the meaning of a string literal, would break that. 23:21:32 <\oren\> yes, that is a big problem. they need to stop doing that 23:21:50 \oren\: they did sort of stop 23:22:02 is this by any chance referring to wide characters? 23:22:03 It would also break existing C++ code, which is frowned upon in new standard versions. 23:22:30 in the sense that they aren't supporting some of the useful more recent C features, and sometimes are specifically incompatible with them (otoh at least they also don't support some of the BAD recent features of C) 23:22:38 gamemanj: no 23:22:54 wob_jonas: But then, it's trivial to write valid C90 that's invalid C++. 23:23:11 <\oren\> int class = 2; 23:23:18 char *foo = malloc(1); /* Woops. */ 23:23:23 pikhq: sure 23:24:14 But, yeah. C++ breaking existing C++ is basically not going to happen if it's avoidable. 23:24:18 There's a macro __STDC_IEC_559__ which, if defined, signals that the floats satisfy an extra annex that's mostly the IEEE things. 23:24:26 \oren\: meh, most C code stopped using class as a keyword. ruby uses klass instead to denote ruby classes. 23:25:09 there's lots of C vs C++ compatibility things that can trip you up more frequently 23:25:27 including pointer conversions like you already mentioned, but there's more 23:26:23 <\oren\> c++ doesn't let you convert a void pointer to anyhting? 23:26:28 Not implicitly. 23:26:47 wob_jonas: That one's one of the worse ones specifically because it breaks nearly all idiomatic C. 23:26:55 \oren\: and also doesn't let you use an assignment statement to convert a pointer to an integer, or something like that 23:27:27 pikhq: no, it's not one of the worse ones, because it gives an error message. the worse ones are the ones that compile silently but do the wrong thing 23:27:29 Even without, the floats need to follow a model where a floating-point number is defined by x = s * b^e * sum_{k=1..p} f_k b^-k, with s either 1 or -1, some integer b > 1, integers e_min <= e <= e_max, and nonnegative integers f_k < b. 23:27:36 Oh, good point. 23:27:38 you can get them with some of the overloaded maths functions 23:27:47 min, max, abs especially 23:28:20 Nasty things like function names getting mangled in C++ but not C can be real problems. 23:28:21 (Although things like the accuracy of operations is implementation-defined.) 23:29:15 There's probably some other cases of things which syntactically work the same in both but have subtly different semantics, but I can't think of 'em right now. 23:29:41 Well, there's also the struct and typedef namespaces being identical in C++. 23:30:24 pikhq: yes, although that (struct and typedef and enum namespaces) rarely seems to cause compatibility problems 23:30:28 Though if you typedef a struct of a given name to the same name it still works in C++, and if you do a different typedef then it just gives you a compilation error. 23:30:37 pikhq: there's also some difference in scoping that I forgot, which also rarely causes problems 23:30:42 To be picky, there's no typedef namespace. Those are just ordinary identifiers. 23:30:55 fizzie: yes 23:31:14 and when the struct namespace causes problems, it's usually (but not always) compilation errors 23:33:57 there are lots of other compatiblity problems but I keep forgetting about them 23:34:29 I don't work much with C these days, and keep assuming that it does everything just like C++ but without destructors and features like that and with C99 complexes 23:34:50 -!- gamemanj has quit (Ping timeout: 272 seconds). 23:35:07 then I get surprised when people tell me that C works differently 23:35:14 and promptly forget about it 23:49:36 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client). 23:54:11 -!- hppavilion[2] has quit (Ping timeout: 240 seconds). 23:58:47 -!- tromp_ has joined. 23:59:29 -!- Guest7241 has quit (Read error: Connection reset by peer). 23:59:53 -!- I has joined.