00:19:38 [[User talk:A]] https://esolangs.org/w/index.php?diff=64435&oldid=64434 * Jussef Swissen * (+58) /* Talk page */ 00:20:10 [[User talk:A]] https://esolangs.org/w/index.php?diff=64436&oldid=64435 * Jussef Swissen * (+127) /* Talk page */ 00:21:22 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64437&oldid=64432 * Jussef Swissen * (+8) /* Registers */ 00:45:13 Is it just me or has computer history mirrored concurrency approaches? DOS with TSRs is a bit like callbacks, then to Windows 3.x with cooperative multitasking akin to coroutines, then preemptive multitasking as threading-like 01:03:40 I'm very confused why this very simple program isn't printing Hello world 01:04:41 https://gist.github.com/Sgeo/c273fd8d3d524622cad5231c37e9139f 01:04:47 It works when I comment out the _dos_keep 01:05:00 But even if I'm screwing up the _dos_keep, shouldn't it print first? 01:11:24 Unicode Character 'BLACK SLIGHTLY SMALL CIRCLE' (U+1F784) 01:11:26 lol 01:11:37 -!- Sgeo__ has quit (Read error: Connection reset by peer). 01:12:03 -!- Sgeo__ has joined. 01:12:49 -!- TellsTogo has joined. 01:13:10 flushall() fixes it 01:15:27 -!- sprocklem has quit (Ping timeout: 245 seconds). 01:18:03 -!- Sgeo_ has joined. 01:21:37 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 01:24:17 -!- arseniiv_ has quit (Ping timeout: 248 seconds). 01:45:26 -!- FreeFull has quit. 01:55:23 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64438&oldid=64437 * Jussef Swissen * (+312) /* Printing */ 01:58:05 [[User talk:A]] https://esolangs.org/w/index.php?diff=64439&oldid=64436 * Jussef Swissen * (+126) /* Talk page */ 01:59:39 [[User talk:A]] https://esolangs.org/w/index.php?diff=64440&oldid=64439 * Jussef Swissen * (+147) /* Talk page */ 02:05:14 -!- TellsTogo has quit (Remote host closed the connection). 02:09:00 -!- adu has joined. 02:12:16 -!- sprocklem has joined. 02:12:38 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64441&oldid=64423 * Anthonykozar * (+1556) C++ interpreter bugs and some questions about the language semantics. 02:16:59 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64442&oldid=64438 * Jussef Swissen * (+1254) 02:27:40 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64443&oldid=64442 * Jussef Swissen * (+432) Completed the page 03:12:02 :( at Twitter fight 03:15:03 -!- sprocklem has quit (Ping timeout: 245 seconds). 03:20:14 [[Special:Log/move]] move * Jussef Swissen * moved [[Gregorovitch]] to [[Gregorovich]]: Typo in name 03:21:25 [[Gregorovich]] https://esolangs.org/w/index.php?diff=64446&oldid=64444 * Jussef Swissen * (-11) 03:27:00 -!- sprocklem has joined. 03:29:59 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64447&oldid=64385 * Jussef Swissen * (+88) 03:34:31 [[User:Areallycoolusername]] M https://esolangs.org/w/index.php?diff=64448&oldid=64227 * Areallycoolusername * (+13) /* Full List of languages I Made */ 03:35:18 [[Language list]] https://esolangs.org/w/index.php?diff=64449&oldid=64426 * Areallycoolusername * (+13) /* K */ 03:40:56 [[Language list]] https://esolangs.org/w/index.php?diff=64450&oldid=64449 * Jussef Swissen * (+18) /* G */ 04:11:50 [[FireStarter]] https://esolangs.org/w/index.php?diff=64451&oldid=64001 * Ais523 * (-1759) rm copyright-violating content 04:12:20 [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of 3 revisions on page [[FireStarter]]: content hidden: Copyright violation 04:12:47 -!- moei has joined. 04:14:29 -!- ais523 has joined. 04:23:54 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64452&oldid=64440 * A * (+1076) /* Talk page */ 04:24:35 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64453&oldid=64452 * A * (-1) /* Talk page */ 04:27:06 [[Special:Log/block]] block * Ais523 * blocked [[User:A]] with an expiration time of 7 days (account creation disabled): impersonation of other users, attempting to hide their identity in talkpage messages 04:27:20 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64454&oldid=64453 * A * (+428) /* Talk page */ 04:31:08 [[User talk:A]] https://esolangs.org/w/index.php?diff=64455&oldid=64454 * Ais523 * (+864) /* Blocked */ new section 04:46:30 [[Special:Log/abusefilter]] modify * Ais523 * modified [[Special:AbuseFilter/13]] ([[Special:AbuseFilter/history/13/diff/prev/63]]) 04:48:15 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlkjlkjk;lj;klj;klkjljlk;jljk;lj;kljl;j;ljl;kjl;jlkjl;kjl;jl;jl;j;j;ljl;kjlkjljl;jl;j;ljl;jjljj;jljlk;jljljl;j;;jljlk;jlk;jl;kjlkjlkjkjl;jk;kjl;k;kj;jkl;kjl;jk;jk;jkl;jk;lkj;kj;jkll;jkl;jkjkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;j]]": Vandalism 04:48:37 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism 04:49:16 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:49:44 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism: content was: "#REDIRECT User:A/cc 04:50:28 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page; repea 04:52:12 [[User talk:A]] https://esolangs.org/w/index.php?diff=64456&oldid=64455 * Ais523 * (+291) /* Blocked */ another reason 04:53:14 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism 04:53:32 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlkjlkjk;lj;klj;klkjljlk;jljk;lj;kljl;j;ljl;kjl;jlkjl;kjl;jl;jl;j;j;ljl;kjlkjljl;jl;j;ljl;jjljj;jljlk;jljljl;j;;jljlk;jlk;jl;kjlkjlkjkjl;jk;kjl;k;kj;jkl;kjl;jk;jk;jkl;jk;lkj;kj;jkll;jkl;jkjkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;j]]": Vandalism 04:54:07 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/atttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page; 04:54:32 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:54:42 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/dcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:54:59 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism 04:55:15 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism 04:55:49 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttgtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism 04:56:11 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism 04:56:42 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism 04:59:18 [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of a revision on page [[User talk:A]]: edit summary hidden: Inappropriate comment or personal information: this edit summary was possibly an intentional attempt to antagonise someone; redacting in case it is 05:00:19 ugh, it's like cleaning up after spambots, but at least the spambots have some sort of economic reason for doing what they do 05:00:43 human-generated vandalism is just pointless 05:01:18 ais523: Could you also delete the other post that A named me in? 05:01:51 I really don't like the thing where they send me IRC messages through wiki edits, which they've already been requested not to do. 05:02:07 shachaf: see the esowiki post just before I posted 05:02:30 given A's recent behaviour I'm not really willing to give them the doubt on this 05:04:06 Oh, was that the one? 05:04:07 Thank you. 05:05:44 whoa, luqui made an account to edit A's things? 05:05:49 I have no idea what's going on with anything. 05:09:08 [[Special:Log/block]] reblock * Ais523 * changed block settings for [[User:A]] with an expiration time of 04:27, 23 July 2019 (account creation disabled): impersonation of other users, attempting to hide their identity in talkpage messages; also pagemove vandalism in userspace 05:09:35 I didn't notice the vandalism until /after/ I'd already blocked them for pretending to be somebody else on talk pages 05:18:23 on a different topic: you know how URLs use protocols like "http:" to indicate an HTTP connection? I'm assuming that "tcp:" and "udp:" are used for raw TCP and UDP sockets, but want to know what the prefix for SSL over TCP would be 05:18:24 well, TLS, not SSL 05:18:26 "tcps:" comes to mind but I'm wondering if there's a standard 05:34:57 CSS is fucking scow 05:35:49 it's 2019 and all kinds of stuff like centering text vertically next to an image is impossible or requires weird hacks 05:35:50 hi kmc 05:35:54 no "vertical-align: middle" does not work 05:36:04 why is everything bad twh 05:36:08 I want to go back to layout just to spite them 05:36:16 I know how to do this with
layout trivially 05:36:56 do it 05:37:23 why is putting pixels on the screen an impossible task? 05:37:58 CSS seems to be adding features that it badly needs far too slowly 05:38:24 I like the basic concept behind CSS but some of the things it should really be able to do trivially are far too difficult 05:40:32 fwiw, centering text vertically next to an image is hard to do with tables too because, for every relevant x coordinate on the whole page, you need to know what order those coordinates come in (ditto y coordinates) 05:40:32 -!- ais523 has quit (Remote host closed the connection). 05:40:45 -!- ais523 has joined. 05:41:11 CSS is just another one of those self-inflicted problems like C++ templates. 05:42:00 now I'm curious as to what a better version of C++ templates would look like 05:42:46 It would probably look like writing a regular program rather than contorting yourself in ridiculous ways to do simple things. 05:43:00 Instead of SFINAE you would have innovative techniques like "if". 05:44:33 -!- moei has quit (Ping timeout: 248 seconds). 07:09:55 -!- MDead has joined. 07:10:54 -!- MDead_ has joined. 07:11:20 -!- MDude has quit (Ping timeout: 244 seconds). 07:13:11 -!- moei has joined. 07:14:41 -!- MDead has quit (Ping timeout: 248 seconds). 07:17:22 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:18:35 I've been reading about the Language Server Protocol, it seems to have some fairly insane design decisionsn 07:18:58 e.g. all positions within a file are given as a line number, plus a byte offset within the line, but the byte offset assumes that the line is encoded in UTF-16 07:19:07 (it'd make much more sense to use the file's source encoding, I think?) 07:20:13 SFINAE is interesting, it reminds me a bit of Prolog 07:20:29 -!- Lord_of_Life has joined. 07:20:34 I don't think you can compile Prolog directly to C++ templates but maybe you can? 07:21:34 There's also the design decision of making it a protocol in the first place. 07:21:56 yes, and sending a header along with each request 07:22:02 Using UTF-16 is bizarre. 07:22:11 I guess it's from Microsoft so why not? 07:22:15 it seems to be optimised for being used over a network 07:22:35 like, there are some cases where there's optimisation to reduce the number of messages/packets sent 07:22:51 That's a silly thing to optimize for. 07:23:14 and I'm thinking "these should both be running on the same computer, why not use a more normal form of calling from one program into another so that you don't have the network overhead and serialisation overhead?" 07:23:23 that way you could call back and forth freely 07:23:53 "We choose UTF-16 encoding here since most language store strings in memory in UTF-16 not UTF-8." 07:23:58 I guess my preferred implementation of something like LSP would be a defined ABI which let you dynamically link the language server into the editor 07:24:09 Yes, it's obviously much more reasonable to have language server libraries. 07:24:35 Java uses UTF-16; most Microsoft languages probably do? 07:25:00 Rust uses UTF-8; Perl switches between ISO-8859-1 and UTF-8 depending on which codepoints the string actually contains 07:25:18 I saw this talk recently where he complains about it: https://www.youtube.com/watch?v=pW-SOdj4Kkk#t=42m30s 07:26:36 C officially uses whatever encoding is indicated by wchar_t, which is UCS-4 on Linux and UCS-2 on Windows, although it's so flexible that ASCII and UTF-8 are common in practice (and C11 added a few UTF-8-specific features like UTF-8 literals) 07:27:29 many languages don't support character strings at all, of course (byte strings are much easier to implement) 07:27:43 People should ignore all these language things and just use UTF-8 for everything. 07:28:04 …but I guess the interest here is in what encoding the language's /compiler/ uses internally, not what language compiled programs in that language use 07:28:12 which are often the same because many languages are self-hosting, but not always 07:28:28 I think the interest here is what encoding the editor uses internally. 07:28:59 The editor is Visual Studio Code, which is written in JavaScript. 07:29:13 Also everything is written in JavaScript because we live in the bad future. 07:29:32 so, e.g., C-INTERCAL uses byte-based I/O but C-INTERCAL's compiler uses a mix of UTF-8 and Latin-1 for the source files 07:29:45 (like, not even differentiated, you can just mix them both in the same file) 07:30:46 there's only one collision between the encodings within INTERCAL's character set, and it's a character that's ambiguous as it is, so of course the compiler does something different with that character based on which encoding it's written in :-D 07:31:24 or hmm, I got that backwards 07:31:36 there are no encoding collisions, but there's one character that's ambiguous and so we use the encoding to disambiguate the two meanigns 07:33:16 anyway, it kind-of disappoints me that the LSP standard is just "let's take our existing code from VS code, document it, and try to make it a standard" without any attempt to actually /design/ a useful protocol 07:33:56 it's also really vague in places 07:34:52 e.g. the server can ask the client for configuration information, but there's no information on what information can be asked for and the type of the return value is not specified 07:35:07 so how can a server and client expect to be compatible in that respect if they were written without knowledge of each other? 07:36:27 lsp bad imo 07:36:39 people are just expected to use visual studio code hth 07:37:28 I like the idea of LSP 07:37:42 I just dislike a huge number of the details 07:38:16 (I was going to say "I dislike most of the details" but I'm not sure if that's accurate yet, because I haven't read them all yet and because I'm not positive I've seen one I like yet, so "most" might be an understatement) 07:39:08 It sounds like you dislike the idea of it being a (network) protocol rather than an ABI, and also everything about the way it specifies the protocol. 07:39:25 So do you mean you like the idea of a standard interface for exposing information from a compiler to an editor? 07:39:30 -!- AnotherTest has joined. 07:39:58 shachaf: pretty much, although I was thinking a bit more generally than "compiler" 07:40:04 e.g. I think syntax highlighters should be abstracted in the same way 07:40:37 something I'm seriously considering right now is a simple, efficient, general programming language for syntax highlighting (sub-TC, focusing on ease of implementation and efficiency) 07:40:49 so that languages could specify their own syntax highlighting rules that every editor could ues 07:42:48 I just don't like all this integration of language knowledge into editors. I mean the idea that it's possible is fine, but in practice it just leads to the users abusing it by writing unreadable code that's impossible to understand without a compiler, full of typoes, etc. 07:43:36 I can't much fault the protocol and editor for being complicated, because this is a really hard problem in general, and I can't imagine any satisfying solution to it. 07:44:53 I guess my personal view of a perfect LSP is that you can download a pack of information about a language, and it then starts being supported by every editor, even ones that don't know about the language 07:44:57 Parts of the difficulty are that (1) you have to do it incrementally, you can't afford to reparse everything after every modification of the source files, (2) even if you could, it would be a bad idea, because the moment I type a left brace, the rest of the code would change meaning a lot (yes, I know editors solve this by typing a right brace when I type a left brace, but that too makes using the 07:45:01 and that editors don't ship their own langauge definitions any more 07:45:03 editor harder) 07:45:21 and (3) the languages to be supported are really complicated too. 07:45:38 incremental reparse/re-highlight is actually the only hard part in writing my syntax highlighting language, I think 07:45:41 But sure, even apart from that, you can find definite mistakes in the implementation. 07:47:00 it strikes me that a "sane LSP" wouldn't have to be incompatible with the current LSP; you could easily write a current-LSP server that used sane-LSP libraries as plugins 07:47:06 In particular, in one version of MS visual studio, I had to disable all the parts that try to understand the code during editing (not just the syntax highlighting; I've disabled that earlier by setting all the colors to black), because there's no other way to tell the editor to not show lightbulb icons *covering* parts of the code without doing that. This is a known bug that other people on the 07:47:12 internets have encountered. 07:49:11 why did you disable the syntax highlighting, btw? is it often incorrect? 07:49:26 also, ais523, you personally have aimake to compile code in complicated ways where you have to compile some of your files to generate code that you then want to compile. would you want a language-aware editor to be aware of such tricky build rules and do them dynamically? how about code that has preprocessor directives and you can build them in multiple different configurations? 07:50:20 in those cases, compiling, even for as much as the editor needs, can have side effects. uncontrollable ones, not just the accidental ones from the occasional compiler bug. 07:50:47 the ideal, for me, is for the editor to show live results for what a compile in a particular configuration would look like 07:51:15 ais523: no. it's just that the colors are distracting and don't help at all, and if the code can't be parsed by a human easily then it's badly written. 07:51:47 e.g. if I saved every open file and typed "make" or "aimake" or whatever into my shell, then that would produce a list of diagnostics, and I'd like to see the diagnostics in the editor 07:51:53 that, or you're using a bad font where l and 1 look the same. 07:52:04 well, my day job is in Java 07:52:40 it's often nice to be able to distinguish a property from a variable, for example (both of these are written in all-lowercase in idiomatic Java code, and you normally don't write "this." every time for the property; maybe you should) 07:52:44 ais523: sure, but incrementally? as opposed to just occasionally when you hit compile, and then hold on to that diagonstic list and keep it, and perhaps track where each part points into the code even if you add or delete a few lines? 07:53:06 it's nice to immediately know that you've made a typo 07:53:34 anyway, ideally this should be stateless, giving a permanent view of the result of a current compile at all times without any actual side effects 07:54:11 this is hard to do efficiently, but in a well-designed language it would be possible (especially as the slowest parts of the compile tend to be things like codegen which isn't needed in this use-case) 07:54:43 sure, I agree that you don't need all of the compilation 07:56:07 when people compile everything with -O3 -funroll-all-loops -fmath-errno during development even if they don't want to run the code at all, make huge source files, and then complain that the compiler is slow, it's totally their fault 07:56:49 I'd expect -fmath-errno to have more of a runtime than compile-time impact, but maybe it does both 07:57:20 sure, that doesn't matter much for compilation, it's mostly unrelated to the issue 07:57:29 (also, -fmath-errno is the default because -fno-math-errno violates the standard) 07:57:37 not anymore in C11 07:58:00 it does in C99, but luckily there are very few programs that actually depend on it, which is why C11 dared to do the change 07:58:51 also C11 finally has standard ways to access the floating point rounding mode and exception flags 08:00:09 hmm, even since C99 actually 08:00:32 it's just that people, and especially Microsoft, are particularly slow the embrace the C99 improvements 08:01:08 I even had a wisdom entry about that, but I think I deleted it 08:01:20 `? lrint 08:01:21 The lrint and lrintf functions (of C99 and C++11) are actually supported by the MS compiler (starting from the 2013), only strangely undocumented. 08:01:21 I didn't 08:05:24 `apropos lrint 08:05:25 apropos: can't open the manpath configuration file /etc/manpath.config 08:05:41 was curious as to whether we could get whatis-like output from HackEso, apparently not 08:05:53 `whatis lrint 08:05:53 whatis: can't open the manpath configuration file /etc/manpath.config 08:06:30 `ls /usr/share/man 08:06:31 cs \ da \ de \ es \ fi \ fr \ hu \ id \ it \ ja \ ko \ man1 \ man2 \ man3 \ man4 \ man5 \ man6 \ man7 \ man8 \ nl \ pl \ pt \ pt_BR \ ru \ sl \ sv \ tr \ vi \ zh_CN \ zh_TW 08:06:36 though I must admit I'm glad we've finally made a breakthrough in the image encoding browser compatibility thing. not JPEG2000 specifically, some more recent format, and I don't really know yet how useful that format is for high quality lossy image compression, but still. 08:06:36 `ls /etc 08:06:37 alternatives 08:08:46 I think hackeso's software environment is deliberately stripped down, because this is #esoteric so there's a risk that our hackeso scripts start to depend on all of the silliest things to do simple operations, which effectively forces the future maintainers of hackeso and its clones to replicate that environment 08:08:53 `printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:53 ​"MANDATORY_MANPATH /usr/share/man \ SECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:58 `` printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:58 ​/hackenv/bin/`: line 5: /etc/manpath.config: Permission denied 08:09:01 bleh 08:09:17 but fizzie said that he's willing to install packages from debian's repository to hackeso on request if they aren't too big 08:09:44 `whatis -M /usr/share/man lrint 08:09:45 whatis what? 08:09:52 `0 `whatis -M /usr/share/man lrint 08:09:52 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: 0: not found 08:09:56 `` whatis -M /usr/share/man lrint 08:09:57 whatis: can't open the manpath configuration file /etc/manpath.config 08:10:04 Is your 0 key next to your ` key? 08:11:19 no, it's next to my right arrow key 08:11:34 `` whatis -M /usr/share/man -w '*' lrint 08:11:35 whatis: can't open the manpath configuration file /etc/manpath.config 08:12:10 `` whatis -d 08:12:11 whatis what? 08:12:23 `` whatis -d lrint 08:12:24 whatis: can't open the manpath configuration file /etc/manpath.config 08:12:46 I give up, apparently I can't override its desire to read its configuration file 08:15:38 we could add a fake bin/whatis with a built-in database if you want 08:16:19 ugh, so LSP uses Markdown – with HTML sanitised! – as the protocol for sending formatted text 08:16:32 Markdown is bad enough for humans to use, it's terrible as an exchange format for computers 08:16:33 oh boy 08:17:07 isn't that because the doc comments for some doc comment systems (javadoc, doxygen, and even rustdoc) use markdown format? 08:17:16 javadoc uses HTML 08:17:27 the language server just doesn't want to have to reformat those comments 08:17:29 rustdoc does indeed use Markdown 08:17:43 hmm ok 08:17:47 but Markdown → HTML compilation is /way/ easier than the other direction 08:17:49 what do people use in C#? 08:18:32 Javadoc is really strict about HTML, too, to the extent that you have to write

in your doc comment to separate paragraphs, a double line break is treated the same as a space 08:18:41 I don't really know C#, but I think it predates Markdown becoming popular 08:19:29 I'm not sure about that. if you ampersand-escape every non-alphabetic ascii character in a html, you get a markdown that has a reasonable chance of working, and the rest of html you generally just can't expressin markdown at all 08:19:43 but sure, some html-based thing would be a saner interchange format 08:19:50 because it's more extensible 08:20:13 b_jonas: no, the LSP specifies Markdown without the HTML fallbacak 08:20:35 that's what I do if I have to write nested lists in stackexchange markdown (admittedly that's an even more evil version of markdown than what doxygen uses) 08:20:36 although it says "may be sanitised", which is a bit different from specifying the actual format involved 08:20:41 so maybe things like aren't sanitised 08:21:01 right, that means you can't embed arbitrary javascript and css into it 08:21:03 that's a good thing 08:21:27 perhaps a specific format should have been defined? 08:21:42 otherwise language servers would start serving webpages like you find on the web these days, that don't even have content, only javascript that downloads content from the web and renders it 08:21:46 even BBcode would be better than what they have at the moment, that's almost perfect for the task other than being BBcode 08:21:53 (and thus poorly specified) 08:22:08 specific format => sort of, though it may be worth to leave it extensible in the way that html is (or should be, in some cases), where the renderer can ignore the parts it doesn't understand 08:22:13 b_jonas: well, my issue is more that the set of things you can do isn't specified at all 08:22:54 sure 08:23:21 …also, isn't the most important form of formatting for this syntax highlighting? like, you want to be able to say not just "italicise this" but "format this in keyword color" 08:23:32 and Markdown doesn't have that for obvious reasons 08:23:48 right, that's where you use HTML 08:23:54 (you also don't want to just run the syntax highlighter over a string because it won't have context and you might want to interpolate non-source bits) 08:24:06 well, HTML doesn't have a "keyword colour" option either, although it's obvious how to extend it to do so 08:24:11 tags like and and , and classes with meaning specific to this stuff 08:27:14 I have seen at least one Markdown purist on StackExchange by the way, they edited some formatting I put in a post from HTML tags to other markdown. 08:29:07 -!- Sgeo__ has joined. 08:32:22 as for catching typos while I type, I definitely don't want that. neither when writing natural language, nor when writing code. it just distracts me from writing code, because that usually happens in bursts when I have figured out more code in my head than I can type and am desperate to type quickly to flush the buffer. 08:32:47 I can go back and fix typos later in a pass after that, it's usually easy enough to figure out what I meant when the compiler or spell checker points out the typos. 08:33:00 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 08:33:36 so I disabled all the red squiggly line stuff too, and just do a pass after where I compile or spellcheck 08:33:36 @djinn (a -> b) -> [a] -> [b] 08:33:36 Error: Undefined type [] 08:33:53 try @hoogle 08:34:07 nah, I'm trying to find a nontrivial djinn use 08:34:17 although Hoogle is fun too 08:34:22 @djinn Monad m => (a -> b) -> m a -> m b 08:34:22 -- f cannot be realized. 08:34:26 @hoogle Monad m => (a -> b) -> m a -> m b 08:34:27 Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:34:27 Distribution.Compat.Prelude.Internal liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:34:27 RIO.Prelude liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:35:05 at work I use the Java equivalent of hoogle all the time 08:35:11 Joogle 08:35:18 except it takes into account what variables are available in scope 08:35:45 so you can type ctrl-space and get pretty much the entire line of code filled out for you, based only on a bit of context that specifies what sort of value you're looking for 08:36:09 that's probably not good for inexperienced devs because there might be more than one way to produce a value of the desired type, but if you're experienced you'll have the line of code envisaged in your mind already 08:36:13 and just want to save on typing 08:36:46 (Agda editors have a similar feature, but in Agda, often all you care about is producing a variable of the desired type because you're writing a proof not a program, so it works even better there, you don't have to know what line of code you're trying to write) 08:38:33 -!- Sgeo_ has joined. 08:41:43 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 08:53:45 -!- b_jonas has quit (Quit: leaving). 09:25:07 -!- Sgeo_ has quit (Read error: Connection reset by peer). 09:25:34 -!- Sgeo_ has joined. 09:25:44 -!- ais523 has quit (Quit: quit). 09:26:11 -!- zzo38 has quit (Ping timeout: 258 seconds). 09:54:32 -!- wob_jonas has joined. 10:06:08 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64457&oldid=64456 * A * (-2600) /* Talk page */ Uhhh... 10:10:30 ^help 10:10:30 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 10:10:49 `? ! 10:10:50 ​! is a syntax used in Haskell and Prolog for solving evaluation order problems. 10:10:55 `? `? 10:10:56 ​​`? ¯\(°​_o)/¯ 10:10:56 `? `! 10:10:58 ​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used. 10:22:07 -!- Sgeo__ has joined. 10:24:55 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 10:26:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64458&oldid=64457 * A * (+990) /* Blocked */ Talk to Ais523 before I got blocked again 10:29:14 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64459&oldid=64458 * A * (-990) /* Blocked */ PH (moved to Page History) 10:32:54 i like how the "sentence wothoug using 'a'" on his userpage actually has two occurences of the letter a in it 10:33:37 -!- sprocklem has quit (Ping timeout: 248 seconds). 10:49:02 -!- sprocklem has joined. 10:50:59 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64460&oldid=64459 * A * (-2) /* A sentence without using 'a' */ 10:55:22 well played 10:57:51 you can write here, too, you know 11:37:35 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64461&oldid=64447 * Jussef Swissen * (+278) 11:38:49 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64462&oldid=64461 * Jussef Swissen * (+77) 11:39:13 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64463&oldid=64462 * Jussef Swissen * (-5) 11:40:32 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64464&oldid=64448 * Jussef Swissen * (+114) 11:52:36 ^style 11:52:36 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube 11:55:05 -!- AnotherTest has quit (Ping timeout: 252 seconds). 12:02:04 ` cat bin/bienvenido 12:02:07 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found 12:02:27 `bienvenido 12:02:28 ​¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: . (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.) 12:02:34 `` cat bin/bienvenido 12:02:35 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome.es"; } else { exec "bin/?", "welcome.es"; } 12:03:57 `? catcat 12:03:58 catcat? ¯\(°​_o)/¯ 12:04:02 `catcat bin/welcome 12:04:04 No output. 12:04:08 `cat bin/welcome 12:04:09 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; } 12:04:13 ``` cat bin/catcat 12:04:14 echo No output. 12:07:20 `? doag 12:07:21 ​`doag: See `hoag 12:07:23 `? hoag 12:07:24 ​`[hd]o[aw][gt] [] is a set of commands for querying HackEgo hg logs. `hoag is the basic version. d adds revision numbers and dates, w looks only in wisdom, and t lists oldest first. 12:08:13 `? dobg 12:08:14 dobg? ¯\(°​_o)/¯ 12:08:23 `? dontaskdonttelllist 12:08:24 dontaskdonttelllist? ¯\(°​_o)/¯ 12:08:30 `dontaskdonttelllist 12:08:30 dontaskdonttelllist: q​u​i​n​t​o​p​i​a​ m​y​n​a​m​e​ i​n​t​-​e​ 12:10:21 `? edit 12:10:24 ​`edit gives you a url, then in your browser: (1) Press Sync (unless making a new file) (2) Make your changes (3) Press Save (4) Paste the command line at the top into the channel. 12:11:28 `elcome 12:11:29 elcome o he nternational ub or soteric rogramming anguage esign nd eployment! or ore nformation, heck ut ur iki: . (or he ther ind f soterica, ry #soteric n Fnet r ALnet.) 12:11:43 `emoclew 12:11:44 ​(.tenLAD ro tenFE no ciretose# yrt ,aciretose fo dnik rehto eht roF) . :ikiw ruo tuo kcehc ,noitamrofni erom roF !tnemyolped dna ngised egaugnal gnimmargorp ciretose rof buh lanoitanretni eht ot emocleW 12:12:06 `? erflist 12:12:08 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64465&oldid=64347 * Jussef Swissen * (+341) 12:12:09 erflist? ¯\(°​_o)/¯ 12:12:13 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64466&oldid=64460 * A * (-56) 12:12:26 wha is "erflist"? 12:12:39 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64467&oldid=64466 * A * (-235) /* Talk page */ 12:12:48 sorry for the spam 12:12:55 I should have used private messages 12:14:17 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64468&oldid=64465 * Jussef Swissen * (-1) 12:14:44 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64469&oldid=64468 * Jussef Swissen * (+1) 12:15:27 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64470&oldid=64467 * A * (+421) /* Talk page */ 12:17:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64471&oldid=64470 * A * (+428) /* Talk page */ 12:19:36 [[User talk:A]] https://esolangs.org/w/index.php?diff=64472&oldid=64471 * A * (+1155) 12:21:37 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=64473&oldid=62957 * Areallycoolusername * (+217) Question about unusmall block circumstances. 12:25:08 `hi 12:25:09 `perl -e open$I,"<",$c="bin/hi"; local $/; $s=<$I>; $s=~s/`words`/\$ENV{IRC_NICK}/ or die; if (0) { open $O,">",$c or die; print $O $s or die; } print $s; 12:25:09 Hi pron. Hon. 12:25:10 ​#!/usr/bin/perl \ $_ = (join " ", @ARGV) || $ENV{IRC_NICK}; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_."; 12:25:11 `hi 12:25:13 Hi portrason. Hortrason. 12:25:18 `hi 12:25:19 Hi empositi. Hempositi. 12:25:28 `perl -e open$I,"<",$c="bin/hi"; local $/; $s=<$I>; $s=~s/`words`/\$ENV{IRC_NICK}/ or die; if (1) { open $O,">",$c or die; print $O $s or die; } print $s; 12:25:30 ​#!/usr/bin/perl \ $_ = (join " ", @ARGV) || $ENV{IRC_NICK}; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_."; 12:25:31 `hi 12:25:32 Hi wob_jonas. Hob_jonas. 12:25:34 `hi 12:25:35 Hi wob_jonas. Hob_jonas. 12:28:40 -!- arseniiv_ has joined. 12:35:41 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64474&oldid=64472 * A * (+283) 12:37:45 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64475&oldid=64474 * A * (+0) HackEso: Nice introduction to esolangs.org! 12:47:43 ``` cat bin/quine 12:47:44 ​#!/bin/sh \ cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | sed 's/[^>]*> //' | grep '^`' | tail -1 #Best cheating quine ever? 12:47:44 `quine 12:48:54 ​/hackenv/bin/quine: 2: cd: can't cd to /var/irclogs/_esoteric \ ls: cannot access '????-??-??.txt': No such file or directory 12:49:02 ``` set -e; c=bin/quine; >$c echo $'#!/bin/sh\necho $IRC_MESSAGE # Best cheating quine ever?'; chmod -v a+x "$c" 12:49:03 mode of 'bin/quine' retained as 0755 (rwxr-xr-x) 12:49:05 `quine 12:49:06 ​`quine 12:49:10 `quine me 12:49:10 ​`quine me 12:49:37 ``` quine this # including comments 12:49:37 ​``` quine this # including comments 12:49:50 ``` for x in 0 1; do quine; done 12:49:51 ​``` for x in 0 1; do quine; done \ ``` for x in 0 1; do quine; done 12:50:14 ``` echo $_ 12:50:16 bash 12:52:55 -!- sprocklem has quit (Ping timeout: 268 seconds). 12:59:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64476&oldid=64475 * A * (-627) /* Talk page */ 13:43:29 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64477&oldid=64250 * Joshop * (+597) 13:43:41 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64478&oldid=64477 * Joshop * (+6) 13:57:42 `fetch share/whatis https://hack.esolangs.org/get/share/whatis 13:57:44 2019-07-16 13:57:43 URL:https://hack.esolangs.org/get/share/whatis [748223/748223] -> "share/whatis" [1] 14:03:51 -!- Reallycooluserna has joined. 14:24:55 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 14:38:56 -!- Reallycooluserna has joined. 14:44:10 Would it be possible to create a new esolang that 's in some way based off of the chaos game? https://en.m.wikipedia.org/wiki/Chaos_game 14:47:05 Fo example, input would be the dimensions of a given shape and a exponent to signify how many times the fractal should spread, or text with an exponent that would be printed in a fractal format as output? 14:47:24 I'm not really well educared on this subject 14:47:31 Educated* 14:50:01 https://medium.com/@balidani/cities-skylines-is-turing-complete-e5ccf75d1c3a is anadder really enough to be tc? 14:51:44 Reallycooluserna: i'd say if you change randomness at most pseudorandomness, that could work 14:57:07 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 14:59:46 -!- Reallycooluserna has joined. 15:03:43 ! Rust fn main() {println ("Oof");} 15:03:59 Interesting... 15:13:27 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 15:16:09 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 15:16:12 2019-07-16 15:16:11 URL:https://hack.esolangs.org/get/bin/whatis [598/598] -> "bin/whatis" [1] 15:16:49 `whatis lrint 15:16:50 whatis: can't open the manpath configuration file /etc/manpath.config 15:17:06 ``` chmod -v a+x bin/whatis 15:17:09 mode of 'bin/whatis' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x) 15:17:10 `whatis lrint 15:17:11 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 16, in \ match = match or argfold == parts[1].casefold() \ TypeError: '_sre.SRE_Match' object is not subscriptable 15:17:26 ... old python version? 15:18:47 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 15:18:48 2019-07-16 15:18:47 URL:https://hack.esolangs.org/get/bin/whatis [604/604] -> "bin/whatis" [1] 15:18:52 ``` chmod -v a+x bin/whatis 15:18:53 mode of 'bin/whatis' retained as 0755 (rwxr-xr-x) 15:18:59 `whatis cp 15:18:59 cp(1) - copy files and directories \ cp(1p) - copy files 15:19:01 `whatis lrint 15:19:02 lrint(3) - round to nearest integer \ lrint(3p) - round to nearest integer value using current rounding direction \ lrint(3glibc) - Rounding Functions 15:19:40 ais523: I added a rudimentary whatis command. it doesn't currently allow command-line options, but that can be fixed later if you need that 15:20:02 the command gets its data from a plain text database at share/whatis 15:20:12 anyone should feel free to edit that database 15:20:52 so if you know what something is, but that list doesn't, edit it 15:22:53 -!- wob_jonas has quit (Remote host closed the connection). 16:17:37 -!- b_jonas has joined. 16:24:33 [[Esoteric data structure]] https://esolangs.org/w/index.php?diff=64479&oldid=61703 * Areallycoolusername * (+757) Extended the data structure page. This has a lot of potential. 16:38:36 `whatis string.h 16:38:37 string.h(0p) - string operations \ string.h(7glibch) - String Length 16:39:44 `perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:39:44 ​-i used with no filenames on the command line, reading from STDIN. \ Bareword found where operator expected at -e line 1, near "'s/^([^(]+)\(7glibch\)/$1(0glibc)/' share" \ (Missing operator before share?) \ syntax error at -e line 1, near "'s/^([^(]+)\(7glibch\)/$1(0glibc)/' share" \ Execution of -e aborted due to compilation errors. 16:40:08 ```perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:40:11 ``` perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:40:13 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``perl: not found 16:40:20 No output. 16:40:30 `whatis string.h 16:40:30 string.h(0p) - string operations \ string.h(0glibc) - String Length 16:40:35 `whatis time 16:40:35 time(1) - time a simple command or give resource usage \ time(1p) - time a simple command \ time(2) - get time in seconds \ time(3p) - get time \ time(7) - overview of time and timers \ time(8lambdabot) - no description \ time(3glibc) - Simple Calendar Time 16:41:34 `whatis sockaddr_in 16:41:35 sockaddr_in(7glibct) - Internet Address Formats 16:41:49 ``` perl -pi -e 's/^([^(]+)\(7glibct\)/$1(7glibc)/' share/whatis 16:41:51 No output. 16:41:52 `whatis sockaddr_in 16:41:53 sockaddr_in(7glibc) - Internet Address Formats 16:41:58 `whatis ldiv_t 16:41:58 ldiv_t(7glibc) - Integer Division 16:42:40 [[User talk:Areallycoolusername]] N https://esolangs.org/w/index.php?oldid=64480 * Ais523 * (+526) reply to question on my user talk page 16:42:52 `whatis stat 16:42:52 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes 16:46:56 `whatis syzzigy 16:46:56 No output. 16:54:06 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 16:54:12 2019-07-16 16:54:10 URL:https://hack.esolangs.org/get/bin/whatis [896/896] -> "bin/whatis" [1] 16:54:15 `whatis stat 16:54:17 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes \ Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:18 `whatis syzzigy 16:54:19 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:36 `whatis syzzigy 16:54:37 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:41 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 16:54:42 2019-07-16 16:54:42 URL:https://hack.esolangs.org/get/bin/whatis [904/904] -> "bin/whatis" [1] 16:54:44 `whatis syzzigy 16:54:45 syzzigy: nothing appropriate. 16:54:46 `whatis stat 16:54:47 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes 16:54:50 `whatis stat syzzigy 16:54:51 stat syzzigy: nothing appropriate. 16:54:59 ``` whatis stat syzzigy 16:54:59 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes \ syzzigy: nothing appropriate. 16:55:03 ok 17:06:18 [[Esoteric algorithm]] https://esolangs.org/w/index.php?diff=64481&oldid=44546 * Areallycoolusername * (+1275) Extend page, due to huge potential 17:09:52 [[Esoteric algorithm]] M https://esolangs.org/w/index.php?diff=64482&oldid=64481 * Areallycoolusername * (-2) 17:12:13 [[Gregorovich]] https://esolangs.org/w/index.php?diff=64483&oldid=64446 * Areallycoolusername * (+2) 17:35:22 -!- AnotherTest has joined. 18:29:51 -!- FreeFull has joined. 18:31:31 ``` set -e; c=bin/bonvenon; /bin/sed 's/ome.nb\>/ome.eo/g' bin/velkommen >$c; chmod -v a+x "$c" 18:31:32 mode of 'bin/bonvenon' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x) 18:31:38 `bonvenon fungot 18:31:38 b_jonas: looking at it 18:31:39 fungot: Bonvenon al la internacia centro por la desegno kaj ellaso de esoteraj programlingvoj! Por pli da informado, vizitu la Viki-on: . (Por la alia speco de esotero, iru al #esoteric sur EFnet aŭ DALnet.) 18:37:56 [[Arch]] N https://esolangs.org/w/index.php?oldid=64484 * Areallycoolusername * (+3267) Created page for Arch esoteric data structure 18:38:52 [[Arch]] M https://esolangs.org/w/index.php?diff=64485&oldid=64484 * Areallycoolusername * (+26) Fixed some typos 18:39:27 [[Arch]] https://esolangs.org/w/index.php?diff=64486&oldid=64485 * Areallycoolusername * (-4) 18:40:14 [[Arch]] https://esolangs.org/w/index.php?diff=64487&oldid=64486 * Areallycoolusername * (+13) /* Pop */ 18:40:50 [[Arch]] https://esolangs.org/w/index.php?diff=64488&oldid=64487 * Areallycoolusername * (+0) /* Pop */ 18:41:12 [[Arch]] https://esolangs.org/w/index.php?diff=64489&oldid=64488 * Areallycoolusername * (-15) /* Pop */ 18:41:45 [[Arch]] https://esolangs.org/w/index.php?diff=64490&oldid=64489 * Areallycoolusername * (+0) /* Cells & Point */ 18:42:23 [[Esoteric data structure]] https://esolangs.org/w/index.php?diff=64491&oldid=64479 * Areallycoolusername * (+4) 18:44:50 -!- Phantom_Hoover has joined. 18:52:08 [[Arch]] https://esolangs.org/w/index.php?diff=64492&oldid=64490 * Areallycoolusername * (+290) 18:52:45 [[Arch]] https://esolangs.org/w/index.php?diff=64493&oldid=64492 * Areallycoolusername * (-1) /* Computational Properties */ 19:06:52 -!- ais523 has joined. 19:07:19 does anyone have the timestamp handy for the last time User:A was here on IRC? I wasn't online at the time so wasn't logging 19:08:11 (I have a suspicion that "Reallycooluserna" was actually A in disguise, not Areallycoolusername, and want to check the IPs) 19:10:54 myname: I don't like wasting strong passwords in situations where the connection could well be being monitored by someone else (because I don't own the computer hardware), so I have low-privileged accounts on a couple of wikis so that I don't need a strong password for them 19:11:06 (note: this isn't an invitation to attempt to brute-force ais523 non-admin's password) 19:11:55 'wasting strong passwords' sounds like an admission that your strong passwords are weak, as you have only a small pool of them 19:13:17 no, I can generate an almost unlimited number of them, but can only /remember/ a fairly small number of them 19:13:29 at a time 19:16:04 -!- Lord_of_Life_ has joined. 19:18:48 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 19:18:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:27:00 huh, seems like Reallycooluserna genuinely was someone other than A, at least based on the hostname used to connect to IRC (different continents, different clients), so it was probably the real ARCUN 19:28:41 ais523: I am someone other than wob_jonas, at least based on the hostname used to connect to IRC (I am connecting from home, wob_jonas is connecting from work) 19:29:06 b_jonas: that's the significance of "different continents" 19:29:19 I see 19:30:01 ais523: I have added a rudimentary whatis command to hackeso. it just looks in a plain text list of entries in share/whatis . takes no switches for now. 19:30:06 `whatis cp 19:30:11 cp(1) - copy files and directories \ cp(1p) - copy files 19:30:26 feel free to edit that list. 19:30:27 I guess it's only mildly useful without man, but still good for discussing things that have manual sections on IRC 19:30:59 * ais523 wonders what the most eso thing that has a manual entry on a stock Debian install is 19:31:10 or Ubuntu, I guess, probably gives more choice 19:32:57 ais523: I added at least stub entries for most commands of hackeso, lambdabot, and fungot 19:32:57 b_jonas: can you specify what kind of research...) 19:33:12 `whatis bf_txtgen 19:33:13 bf_txtgen(1egobot) - no description 19:33:31 right, that's what stub means 19:33:48 for the more commonly used commands I added something sensible 19:33:51 `! bf_txtgen test 19:33:51 ​/hackenv/ibin/bf_txtgen: line 6: java: command not found 19:34:01 yeah, the egobot interpreters too 19:34:11 [[User:Total Vacuum]] https://esolangs.org/w/index.php?diff=64494&oldid=61414 * Total Vacuum * (+107) 19:34:29 but I don't know what any of those do, so I didn't describe them 19:35:14 ais523: They joined in May with the username A_ according to the logs (which don't have host information). 19:35:15 even without description, this could give you the clue that a command like rot13 or whoami or test may behave differently on HackEso than on normal systems, because there's a HackEso-specific override 19:35:25 Oh, you already got it. 19:35:32 I thought it was a very A-like behavior. 19:36:19 shachaf: I have used the username "a" on irc in some cases, simply because it's short and a shorter username allows more characters in my lines 19:36:42 [[Uf]] https://esolangs.org/w/index.php?diff=64495&oldid=62158 * Total Vacuum * (-36) 19:36:48 the logs don't have host information? huh 19:36:56 Yes, but I'm not talking about you, I'm talking about wiki user A. 19:37:22 b_jonas: the tunes logs do, and probably the raw esolangs logs too 19:37:22 sure, I'm just saying that someone using an irc username "A_" still doesn't really prove that they're related to wiki user A 19:38:01 the choice of username combined with behaviour made it fairly obvious 19:38:24 (there is also at least one forums where I use the username "jonas" and someone else uses the username "Jonas") 19:39:26 [[Ef]] N https://esolangs.org/w/index.php?oldid=64496 * Total Vacuum * (+1115) Created page with "{{infobox proglang |name=ef \ esoteric forth \ |paradigms= |author=[[User:Total Vacuum|Total Vacuum]] |year=[[:Category:2019|2019]] |memsys=:Category:Stack-based|stack-based..." 19:41:05 ais523: what about Jussef Swissen and Areallycoolusername‎ though? I'm not sure I believe that those are different people. 19:41:14 as for A vs Areallycoolusername, I'd be glad if they turned out to be the same people, because then we could just ban A forever and hope that he continues to contribute more sensibly as Areallycoolusername rather than evading the ban in a different way, but alas, I'm not convinced they're the same person 19:41:25 int-e: those are definitely the same people. they say so in their user page 19:41:36 both of them say so 19:41:41 wait, let me check that 19:42:18 hmmm... no 19:42:19 I'm wrong 19:42:19 Oh so they do. 19:42:30 only Jussef Swissen claims that they're Areallycool 19:42:37 int-e: Jussef Swissen and ARCUN are obviously the same as each other 19:42:48 Jusef Swissen has edited Areallycool's user page to claim that they're the same 19:42:52 I don't see Areallycool claiming that 19:42:55 A = Asdf probably = Iamcalledbob 19:43:09 (the probably attaches to the = to its right) 19:43:48 there are also behavioural differences, e.g. A has more skill in terms of computational class proofs than ARCUN does 19:44:17 [[Ef]] https://esolangs.org/w/index.php?diff=64497&oldid=64496 * Total Vacuum * (+125) 19:44:23 A has way more tantrums. 19:44:51 and A has created more than 150 pages in the main namespace, which seems really excessive to me 19:45:26 Areallycool is moderated in contrast to that 19:47:13 [[Language list]] https://esolangs.org/w/index.php?diff=64498&oldid=64450 * Total Vacuum * (+9) 19:47:55 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64499&oldid=64464 * Areallycoolusername * (+60) 19:55:11 -!- callforjudgement has joined. 19:55:20 -!- ais523 has quit (Ping timeout: 268 seconds). 19:55:39 -!- callforjudgement has changed nick to ais523. 20:13:00 are there hackeso builtin commands other than revert, fetch, run, help ? 20:21:30 I can't think of any offhand, but am the wrong person to ask I think (that's why I was hoping someone else would answer) 20:23:44 I guess I should check the 20:23:45 `source 20:23:46 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox 20:30:53 `ls bin/source 20:30:54 bin/source 20:31:07 but I think fizzie has changed the source compared to that somewhat 21:04:01 -!- atslash has quit (Ping timeout: 246 seconds). 21:04:10 b_jonas: It's very close to https://bitbucket.org/fizzie/hackbot 21:04:37 And https://bitbucket.org/fizzie/multibot has a few tiny patches as well. 21:05:29 Oh, and https://bitbucket.org/fizzie/umlbox as well. 21:05:33 But really nothing major. 21:06:14 fizzie: thanks 21:06:33 (I don't remember how to ask Bitbucket to compare between repos, but I think there was a way. Certainly there was when submitting a pull request, but hopefully otherwise as well.) 21:06:34 `? source 21:06:35 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox 21:07:22 `slashlearn source//Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:07:24 Relearned 'source': Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:07:27 `source 21:07:28 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:09:38 hmm, I could add whatis entries for jevalbot commands too 21:12:02 -!- atslash has joined. 21:15:00 j-bot, j-bot: *:5 21:15:20 j-bot, jeval: *:6 21:15:20 b_jonas: 36 21:16:36 we need a jellybot in here really 21:16:49 if *:6 means what I think it does then the argument order's very different from what I'm used to from Jelly 21:17:02 (which would write that as 6×`) 21:17:26 -!- atslash has quit (Ping timeout: 272 seconds). 21:17:34 ais523: what encoding would the jellybot use? I guess utf-8, as the alternative would run afoul of the three forbidden irc bytes 21:17:47 ais523: *: is a primitive builtin, it has nothing to do with * 21:17:53 [ *~6 21:17:54 b_jonas: 36 21:18:04 ^ you write that if you want to invoke the * builtin with the same argument twice 21:18:07 [ -:6 21:18:08 b_jonas: 3 21:18:09 [ -~6 21:18:10 b_jonas: 0 21:18:57 ais523: how much dependencies does the jelly interpreter have? is it possible to install it to hackeso? 21:19:23 -!- arseniiv_ has changed nick to arseniiv. 21:19:23 it's mostly just a Python program, I'm not sure how many libraries it relies on, probably not many 21:19:32 https://github.com/DennisMitchell/jellylanguage/ 21:19:35 does it need python newer than 21:19:43 ``` python3 --version; python2 --version 21:19:43 Python 2.7.13 \ Python 3.5.3 21:19:43 ? 21:19:59 probably not, it does seem to have sympy as a dependency though, that could get awkward 21:20:04 no others though 21:20:16 because I just ran into a problem where the first version of whatis that I uploaded relied on a library addition from python 3.8, so it failed 21:20:25 it's a short program and doesn't do anything fancy, so that was easy to fix 21:20:31 but for something large like jelly it could be a problem 21:20:38 ooh... sympy 21:20:50 is there a debian package for that? fizzie can install it 21:20:55 if it's not installed already that is 21:21:03 ``` python3 -cimport sympy 21:21:04 ​ File "", line 1 \ import \ ^ \ SyntaxError: invalid syntax 21:21:11 ``` python3 -c'import sympy' 21:21:12 Traceback (most recent call last): \ File "", line 1, in \ ImportError: No module named 'sympy' 21:21:19 ``` python3 -c'import numpy' 21:21:20 Traceback (most recent call last): \ File "", line 1, in \ ImportError: No module named 'numpy' 21:21:44 "python3-sympy" is the name of the package, apparently; simple enough 21:21:47 hmm no 21:21:54 actually it's a library addition in python 3.6 21:22:01 and hackeso has python 3.5 21:22:22 ais523: well, if you think you want to install jelly, then talk to fizzie about that 21:22:33 I think it would be an improvement but not a vital or urgent one 21:22:58 also I'm not very familiar with Python packaging 21:23:44 `` swipl 21:23:58 `` swipl; echo $? 21:24:04 is there a package for jelly in debian perhaps? 21:24:20 I seriously doubt it, it's an esolang after all 21:24:32 and not a particularly well-known one outside the golfing community 21:24:36 eh.. there are some eso utilities in debian, not necessarily esolang, but eso 21:24:53 the project has contributors that are geeks with odd projects 21:25:01 brachylog would also be nice, but it's somewhat harder to type so using it over IRC is more of a pain 21:25:21 and it uses SWI-Prolog as the back end and I don't think HackEso has that installed 21:25:22 Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3) \ Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam \ SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, \ and you are welcome to redistribute it under certain conditions. \ Please visit http://www.swi-prolog.org for details. \ \ For help, use ?- help(Topic). or ?- apropos(Word). 21:25:22 Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3) \ Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam \ SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, \ and you are welcome to redistribute it under certain conditions. \ Please visit http://www.swi-prolog.org for details. \ \ For help, use ?- help(Topic). or ?- apropos(Word). 21:25:27 ooh, it does 21:25:38 burlesque would be hard to install because it depends on haskell 21:25:56 I did check hackeso's prolog implementations some weeks ago, let me look up the logs 21:26:31 `fetch https://github.com/JCumin/Brachylog/archive/master.zip 21:26:34 2019-07-16 21:26:34 URL:https://codeload.github.com/JCumin/Brachylog/zip/master [61214] -> "master.zip" [1] 21:26:48 `ls ibin 21:26:49 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ help \ java \ k \ kipple \ lambda \ lazyk \ linguine \ lua \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ slashes \ trigger \ udage01 \ underload \ unlambda \ whirl 21:26:53 I think it has like two prolog implementations 21:26:56 `mkdir ibin/brachylog 21:26:56 No output. 21:27:06 `` mv master.zip ibin/brachylog 21:27:08 No output. 21:27:17 https://esolangs.org/logs/2019-06-23.html#lQb 21:27:22 ``` swipl -qt 'T is 4^4, display(T), nl' 21:27:23 256 21:27:25 `` (cd ibin/brachylog; unzip master.zip) 21:27:26 ​/hackenv/bin/`: line 5: unzip: command not found 21:27:37 OK, that's a new one 21:28:15 no, not really 21:28:30 I once used gzip to uncompress a single-file zip on hackeso exactly because it doesn't have gzip 21:28:36 and I tried to install 7zip once, but failed 21:28:38 `` perl --version 21:28:39 ​ \ This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi \ (with 85 registered patches, see perl -V for more detail) \ \ Copyright 1987-2017, Larry Wall \ \ Perl may be copied only under the terms of either the Artistic License or the \ GNU General Public License, which may be found in the Perl 5 source kit. \ \ Complete documentation for Perl, including FAQ lists, should be found on \ this system using "man perl" 21:28:40 that was back in hackego 21:29:24 ais523: you can repack iot to tar, fetch that, and tar x 21:29:42 we have gzip, bzip2, and xz 21:29:44 iirc 21:31:55 `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "<*>"') 21:31:56 Need input fileglob for outout fileglob at -e line 1. 21:32:06 `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "master"') 21:32:12 No output. 21:32:24 `` ls -l ibin/brachylog/master 21:32:25 ​-rw-r--r-- 1 1000 1000 0 Jul 16 21:32 ibin/brachylog/master 21:32:40 `` rm ibin/brachylog/master 21:32:42 No output. 21:33:03 I don't get the interface of IO::Uncompress::Unzip, a zip file is an archive but it's acting like it's a compressed single file 21:33:56 oh, it lets you specify a specific file to unzip but not to do a batch unzip 21:35:03 `fetch https://gist.githubusercontent.com/eqhmcow/5389877/raw/514a27c213aefb58079687e4c257b57d6ad7a39f/unzip.pl 21:35:05 2019-07-16 21:35:04 URL:https://gist.githubusercontent.com/eqhmcow/5389877/raw/514a27c213aefb58079687e4c257b57d6ad7a39f/unzip.pl [2176/2176] -> "unzip.pl" [1] 21:35:11 `mv unzip.pl bin/unzip 21:35:12 mv: missing destination file operand after 'unzip.pl bin/unzip' \ Try 'mv --help' for more information. 21:35:16 `` mv unzip.pl bin/unzip 21:35:18 No output. 21:35:21 `` chmod a+x bin/unzip 21:35:23 No output. 21:35:31 `` (cd ibin/brachylog; unzip master.zip) 21:35:32 Couldn't write to ./Brachylog-master//: Is a directory at /hackenv/bin/unzip line 67. 21:35:50 `` ls -l ibin/brachylog 21:35:51 total 64 \ drwxr-xr-x 2 1000 1000 4096 Jul 16 21:35 Brachylog-master \ -rw-r--r-- 1 1000 1000 61214 Jul 16 21:27 master.zip 21:36:00 `` ls -l ibin/brachylog/Brachylog-master 21:36:01 total 0 21:36:04 `python3 -cimport os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work? 21:36:06 ​ File "", line 1 \ import os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work? \ ^ \ SyntaxError: invalid syntax 21:36:57 `` sed -i -e 's/unzip(shift)/unzip(@_)/' bin/unzip 21:36:58 No output. 21:37:11 `` (cd ibin/brachylog; mkdir master; unzip master.zip master/) 21:37:12 Need a file argument at /hackenv/bin/unzip line 40. 21:37:17 `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.Zipfile("master.zip").extractall() 21:37:18 Traceback (most recent call last): \ File "", line 1, in \ AttributeError: module 'zipfile' has no attribute 'Zipfile' 21:37:25 `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.ZipFile("master.zip").extractall() 21:37:27 No output. 21:37:31 `` sed -i -e 's/unzip(@_)/unzip(@ARGV)/' bin/unzip 21:37:33 No output. 21:37:33 ``` find ibin/brachylog 21:37:34 ibin/brachylog \ ibin/brachylog/master.zip \ ibin/brachylog/Brachylog-master \ ibin/brachylog/Brachylog-master/misc \ ibin/brachylog/Brachylog-master/misc/brachylog_mini_logo.png \ ibin/brachylog/Brachylog-master/misc/brachylog_logo.svg \ ibin/brachylog/Brachylog-master/misc/brachylog_logo.png \ ibin/brachylog/Brachylog-master/src \ ibin/brachylog/Brachylog-master/src/tokenize.pl \ ibin/brachylog/Brachylog-master/src/predicates.pl \ ibin/brachylog/Brachylo 21:37:41 `` (cd ibin/brachylog; mkdir master; unzip master.zip master/) 21:37:42 mkdir: cannot create directory ‘master’: File exists \ Couldn't write to master//Brachylog-master//: Is a directory at /hackenv/bin/unzip line 67. 21:37:55 hmm, I guess your unzip works better than mine 21:37:59 shouldn't the ibin directory contain only interpreter executables though? 21:38:03 `` rm -r ibin/brachylog/master/ 21:38:06 No output. 21:38:06 it's not really mine 21:38:14 `` rm bin/unzip 21:38:16 No output. 21:38:18 and I just got it to work faster 21:38:23 probably either would have worked 21:38:30 I think ibin contains entire distributions? 21:38:35 hmm 21:38:38 ``` ls -aF ibin 21:38:39 `` ls -l ibin/kipple 21:38:39 ​./ \ ../ \ 1l* \ 2l* \ adjust* \ asm* \ axo* \ bch* \ befunge* \ befunge98* \ bf* \ bf16@ \ bf32@ \ bf8@ \ bf_txtgen* \ boolfuck* \ brachylog/ \ c* \ cintercal* \ clcintercal* \ cxx* \ dimensifuck* \ forth* \ glass* \ glypho* \ haskell* \ help* \ java* \ k* \ kipple* \ lambda* \ lazyk* \ linguine* \ lua* \ malbolge* \ pbrain* \ perl* \ qbf* \ rail* \ rhotor* \ sadol* \ sceql* \ sh* \ slashes* \ trigger* \ udage01* \ underload* \ unlambda* \ whirl* 21:38:40 ​-rwxr-xr-x 1 1000 1000 64 Apr 7 2018 ibin/kipple 21:38:46 those are executables, not directories 21:38:50 ah yes 21:38:54 so where are the corresponding support directories? 21:38:56 `ls 21:38:57 ​- \ :#,_@ \ bin \ canary \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom 21:39:03 probably in lib 21:39:03 interps, I guess 21:39:07 oh 21:39:09 `` mv ibin/brachylog interps/brachylog 21:39:11 No output. 21:39:14 ``` ls -aF interps 21:39:15 ​./ \ ../ \ 1l/ \ 2l/ \ Makefile \ adjust/ \ axo/ \ befunge/ \ bf_txtgen/ \ bfjoust/ \ boof/ \ brachylog/ \ build.sh \ c-intercal/ \ cfunge/ \ clc-intercal/ \ dimensifuck/ \ egobch/ \ egobf/ \ fukyorbrane/ \ gcccomp/ \ gforth_quit/ \ ghc/ \ glass/ \ glypho/ \ kipple/ \ lambda/ \ lazyk/ \ linguine/ \ malbolge/ \ pbrain/ \ qbf/ \ rail/ \ rhotor/ \ sadol/ \ sceql/ \ trigger/ \ udage01/ \ underload/ \ unlambda/ \ whirl/ 21:39:19 `` ls -R interps/brachylog 21:39:20 interps/brachylog: \ brachylog \ Brachylog-master \ \ interps/brachylog/brachylog: \ Brachylog-master \ master.zip \ \ interps/brachylog/brachylog/Brachylog-master: \ LICENSE \ misc \ README.md \ src \ \ interps/brachylog/brachylog/Brachylog-master/misc: \ brachylog_logo.png \ brachylog_logo.svg \ brachylog_mini_logo.png \ \ interps/brachylog/brachylog/Brachylog-master/src: \ brachylog.pl \ constraint_variables.pl \ metapredicates.pl \ predicates.pl \ 21:39:43 ``` ls -aF ibin 21:39:44 ​./ \ ../ \ 1l* \ 2l* \ adjust* \ asm* \ axo* \ bch* \ befunge* \ befunge98* \ bf* \ bf16@ \ bf32@ \ bf8@ \ bf_txtgen* \ boolfuck* \ c* \ cintercal* \ clcintercal* \ cxx* \ dimensifuck* \ forth* \ glass* \ glypho* \ haskell* \ help* \ java* \ k* \ kipple* \ lambda* \ lazyk* \ linguine* \ lua* \ malbolge* \ pbrain* \ perl* \ qbf* \ rail* \ rhotor* \ sadol* \ sceql* \ sh* \ slashes* \ trigger* \ udage01* \ underload* \ unlambda* \ whirl* 21:39:48 `` rmdir interps/brachylog/Brachylog-master 21:39:49 rmdir: failed to remove 'interps/brachylog/Brachylog-master': Directory not empty 21:40:21 `` du interps/brachylog/ 21:40:23 44interps/brachylog/brachylog/Brachylog-master/misc \ 248interps/brachylog/brachylog/Brachylog-master/src \ 308interps/brachylog/brachylog/Brachylog-master \ 372interps/brachylog/brachylog \ 4interps/brachylog/Brachylog-master/misc \ 4interps/brachylog/Brachylog-master/src \ 12interps/brachylog/Brachylog-master \ 388interps/brachylog/ 21:40:39 `` rm -r interps/brachylog/Brachylog-master 21:40:39 No output. 21:41:06 `` ls interps/brachylog/brachylog/Brachylog-master/src 21:41:07 brachylog.pl \ constraint_variables.pl \ metapredicates.pl \ predicates.pl \ symbols.pl \ tests.pl \ tokenize.pl \ transpile.pl \ utils.pl 21:41:11 that looks right 21:41:21 now all we need is a wrapper script 21:41:53 test if it can run a hello world first 21:42:13 copying the files is the easy part 21:42:15 the intended way to run Brachylog is interactive, which is not easy to do on HackEso 21:42:18 actually running is hard 21:42:23 I'm trying to work out how to do it as a batch process 21:42:27 at least it's an interpreted language… 21:42:28 hmm ok 21:42:55 although, it leaves the compiled file persistently on disk, which is not good 21:43:02 what's the non-versioned directory called? tmp? 21:43:25 `? tmp 21:43:26 tmp/ is a directory for files that are not worth saving in HackEgo history, but which should still outlive a single command. NOTE: It interacts funnily with HackEgo's lock and re-run commit check; files can DISAPPEAR if you don't know what you're doing. Basically, don't modify files inside and outside tmp/ in the same HackEgo command. 21:43:28 (that is, Brachylog's compiler is written in an interpreted language, but it compiles the file) 21:43:47 `` touch tmp/compiled_brachylog.pl 21:43:47 No output. 21:44:20 it's used interactively and leaves the compiled file persistently on disk? does it leave some kind of workspace that contains a compiled representation of all bindings, in the style of traditional APL or smalltalk? 21:44:30 `` ln -s ../../../../../tmp/compiled_brachylog.pl interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl 21:44:32 No output. 21:44:40 b_jonas: no, it's just a temporary file placed in the wrong place 21:44:57 `` echo test > interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl 21:44:58 No output. 21:45:07 `` echo tmp/compiled_brachylog.pl 21:45:08 tmp/compiled_brachylog.pl 21:45:16 `` cat tmp/compiled_brachylog.pl # facepalm 21:45:16 test 21:45:28 OK, that symlink seems to be going to the correct place 21:45:32 ah ok 21:45:45 I hope it's not one of the stupid ones where you can't configure where it puts the temporary file 21:50:23 `` echo '"Hello, world!\n"w' > tmp/input.brachylog 21:50:24 No output. 21:51:16 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:51:17 Hello, world!\n 21:51:43 oh right, I forgot escaping was screwed up in Brachylog 21:51:46 `` echo '"Hello, world!\\"w' > tmp/input.brachylog 21:51:47 No output. 21:51:50 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:51:52 No output. 21:52:05 `` echo '"Hello, world!"ẉ' > tmp/input.brachylog 21:52:07 No output. 21:52:09 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:52:11 Hello, world! 21:52:47 j-bot, echo: pleiosaur 21:52:47 b_jonas, pong: pleiosaur 21:53:40 I guess the hardest part now, which might be avoidable, is hooking up arguments and return values to the program appropriately 21:53:48 I guess you can just hardcode them in the program itself 21:54:50 `` printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)' > ibin/brachylog 21:54:51 ​/hackenv/bin/`: eval: line 5: syntax error near unexpected token `(' \ /hackenv/bin/`: eval: line 5: `printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)' > ibin/brachylog' 21:55:06 `` printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g '\''run_from_file("../../../../../tmp/input.brachylog", _, _), halt'\'' brachylog.pl)' > ibin/brachylog 21:55:08 No output. 21:55:14 `` chmod a+x ibin/brachylog 21:55:16 No output. 21:55:25 `! brachylog "Hello, world!"ẉ 21:55:26 Hello, world! 21:55:51 `! brachylog +₃8&w 21:55:52 5 21:55:54 Oh, that reminds me, Debian 10 got released, at some point I need to upgrade the HackEso host. 21:55:56 seems to be working 21:56:10 many Brachylog commands aren't on my keyboard though 21:56:35 WHAT 21:56:39 debian 10 got released? 21:56:40 really? 21:56:43 Yes. 21:56:48 wow indeed 21:56:51 On July 6th. 21:56:52 that's spectacular news 21:56:55 `! brachylog ṗᶠ²⁰ 21:56:56 No output. 21:56:58 was it debianlisted? 21:57:01 `! brachylog ṗᶠ²⁰w 21:57:03 ​[2] 21:57:17 `! brachylog {ṗ≜}ᶠ²⁰w 21:57:18 ​[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71] 21:57:24 there we go 21:57:37 does that use the jelly character set? 21:57:50 [ p:i.20 21:57:50 b_jonas: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 21:58:51 not today, but I'll definitely have to upgrade to debian 10 21:58:57 b_jonas: no 21:59:07 the jelly character set can actually be typed, although many of the characters in it are really obscure 21:59:21 (and thus you wouldn't know the appropriate key sequence without a lot of Jelly experience) 21:59:26 what does "can be typed" mean? 21:59:31 -!- kmc has quit (Quit: leaving). 22:00:10 there's a dedicated key sequence for typing it on Linux+X11 on a particular keyboard layout, I forget which one it was designed against but UK works 22:00:34 e.g. ɓ is altgr-j b 22:00:54 `fetch tmp/jeval.whatis https://hack.esolangs.org/get/tmp/jeval.whatis 22:00:55 2019-07-16 22:00:54 URL:https://hack.esolangs.org/get/tmp/jeval.whatis [4404/4404] -> "tmp/jeval.whatis" [1] 22:00:59 which most non-Jelly programmers wouldn't know, but it's fairly easy to type once you do know it 22:01:00 -!- kmc has joined. 22:01:03 ``` cat tmp/jeval.whatis >> share/whatis 22:01:05 No output. 22:01:17 `whatis pwd 22:01:18 pwd(1) - print name of current/working directory \ pwd(1p) - return working directory name \ PWD(3glibcv) - Working Directory \ pwd(8jevalbot) - show the name of the current persistent session 22:01:23 `whatis cd 22:01:24 cd(1p) - change the working directory \ cd(8glibc) - Working Directory \ cd(8jevalbot) - change to a different persistent session 22:01:44 however, many of Brachylog's characters, like the superscript letters, don't have key sequences at all so you need something like a character map or memorising the codepoint to type them 22:01:58 "8glibc"? 22:02:00 8? 22:02:05 that's surely the wrong number 22:02:19 8 is for commands that only work as root 22:02:38 I did check out what "apt install python3-sympy" would do, but it's a little... excessive: "-- 214 newly installed -- Need to get 1,386 MB of archives. After this operation, 2,672 MB of additional disk space will be used." 22:02:53 ais523: the whatares in the glibc section are very approximate, I just imported them to make sure you get a hit for anything documented in glibc 22:03:06 Probably not all of those are actual dependencies, though. 22:03:08 but not everything in section 8 are things you can invoke only as root 22:04:07 they're administrative commands, but you can run many of them in an informational way as non-root 22:04:20 `whatis ping 22:04:20 ping(8) - send ICMP ECHO_REQUEST to network hosts \ ping(1hackeso) - check if HackEso is reachable \ ping(8lambdabot) - check if lambdabot is reachable \ ping(8jevalbot) - check if jevalbot is accessible 22:04:31 fizzie: gigabytes? wow 22:04:32 these days you can run ping as non-root 22:04:41 ok, that's a bad example, there's some historical reason there 22:04:44 -!- sprocklem has joined. 22:05:00 perhaps it would be possible to remove the sympy dependency from Jelly, I think it only uses it for a few obscure builtins 22:05:39 ais523: Well, it was planning to install Tcl/Tk, TeX Live, a pile of fonts, and a bunch of X11 stuff. 22:06:04 I guess it adds up. Especially TeX. 22:06:23 try with --no-install-recommends 22:07:00 (the recommended dependencies are "the dependencies which would be needed in any normal installation, but aren't technically required to use this package"; this isn't a normal installation) 22:07:02 fizzie: is there a package with a similar name that ends in -nox ? 22:07:05 Hm. 2 packages, 2,773 kB of archives, 17.1 MB of additional disk space. That's quite a bit more reasonable. 22:08:15 but yeah, in the case of cd, it's not only in the wrong section, it's not even something that should have a glibc whatis entry. glibc only references it, it doesn't provide that shell command 22:08:27 it is a cross-reference to the shell command that's for some reason in the index of the info 22:08:30 on well 22:09:57 ``` /bin/sed -i '/^cd(8glibc/d' share/whatis 22:09:59 No output. 22:10:03 `whatis cd 22:10:05 `whatis load 22:10:07 cd(1p) - change the working directory \ cd(8jevalbot) - change to a different persistent session 22:10:08 `whatis swapon 22:10:10 load(8jevalbot) - copy a persistent session to the current session 22:10:12 swapon(2) - start/stop swapping to file/device \ swapon(8) - enable/disable devices and files for paging and swapping 22:10:25 `whatis errno 22:10:26 errno(3) - number of last error \ errno(3p) - error return value \ errno(3glibcv) - Checking for Errors 22:10:31 `` echo $'import numpy\nimport sympy\nprint("{} {}".format(sympy.__version__, numpy.__version__))' | python3 22:10:33 1.0 1.12.1 22:10:39 fizzie: nice, thanks 22:10:50 (I did install python3-numpy as well, even though it's only "recommended".) 22:11:24 numpy is nice and lets you write esoteric programs that wouldn't be as easy in plain python 22:11:37 can't hurt 22:12:08 `whatis bf 22:12:09 bf(1hackeso) - no description \ bf(1egobot) - no description \ bf(8fungot) - evaluate brainfuck program \ bf(8lambdabot) - evaluate brainfuck snippet 22:12:35 `prefixes 22:12:36 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . 22:12:40 ^prefixes 22:12:40 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . 22:12:46 @bf ++++++++[->++++++++<]>. 22:12:46 @ 22:13:18 I think all the bots should use section 1 for their commands 22:13:28 `whatis hoogle 22:13:29 ais523: I used 8 for builtin commands and 1 for user-defined 22:13:29 hoogle(8lambdabot) - search Haskell library by name or type 22:13:33 but we can change that 22:13:50 arguably builtin commands should be in 2, although that would imply user-defined in 3 22:14:01 for jevalbot it sort of makes sense because the commands are on a level above what you can do in J itself 22:14:09 lambdabot's feel like a 2 because they compose in the same way functions do 22:14:29 ais523: no, they compose like unix utilities do, with pipes that transfer a byte stream 22:14:42 and so do buubot commands, only the syntax to compose them is better 22:15:57 in all of those cases there can be some side effects other than the standard input and output, such as changes to the buubot factoid database or the H bindings in lambdabot or the file system 22:16:35 but the primary way to compose them is through the byte stream outputs 22:16:46 a single output and single input 22:16:57 well no 22:16:59 a single output 22:17:07 lambdabot and buubot ones don't take input 22:17:10 they only take arguments 22:17:19 so it's like when you compose shell commands with backticks I guess 22:17:46 (without the strange part where the shell backticks can remove the trailing newline) 22:18:21 `whatis pl 22:18:21 but we can rename sections if you figure out some consistent way to name them 22:18:22 pl(8lambdabot) - convert expression to pointfree style 22:18:32 was vaguely wondering if that was a shell command too 22:18:54 it may be. not every shell command has a whatis 22:18:59 I think it invokes prolog 22:19:01 ``` type pl 22:19:02 bash: line 0: type: pl: not found 22:19:04 nope 22:21:11 I was wrong, HackEso only seems to have one prolog implementation installed 22:21:32 swi-prolog specifically 22:21:37 it doesn't have gnu prolog 22:22:14 `! brachylog [_7,_3,_2,5,8]⊇.+0∧.w⊥ 22:22:15 -!- AnotherTest has quit (Ping timeout: 264 seconds). 22:22:44 ​[-3,-2,5][] 22:22:48 err, I should probably have added newlines 22:22:55 `! brachylog [_7,_3,_2,5,8]⊇.+0∧.ẉ⊥ 22:23:25 ​[-3,-2,5] \ [] 22:23:35 actually there is probably a neater way to write this 22:24:06 `! brachylog [[_7,_3,_2,5,8],0]⟨⊇+⟩ẉ⊥ 22:24:13 what is this supposed to do? 22:24:51 ⟨⊇+⟩ means "find a subset (⊇) whose sum (+) is", ẉ⊥ prints all solutions 22:25:01 so it's solving the subset sum problem 22:25:04 I see 22:25:06 pretty inefficiently, fwiw 22:25:20 but the point is that you don't need to specify an algorithm 22:25:53 -!- arseniiv has quit (Ping timeout: 245 seconds). 22:26:00 hmm, I wonder why that hasn't returned yet, I suspect HackEso doesn't run Brachylog at all quickly 22:26:12 ​[-3,-2,5] \ [] 22:26:15 there we go 22:26:23 (the actual subset sum problem instance is taken from Wikipedia) 22:28:40 `! brachylog 100~{Ċṗᵐ+}w 22:28:41 ​[3,97] 22:29:20 [ s#~{.(#~(0=[:+/(s=._7 _3 _2 5 8)&*)"1)#:}.i.2^5 NB. yeah, that's rather clumsy 22:29:21 b_jonas: _3 _2 5 22:29:24 can probably be improved somewhat 22:29:34 `! brachylog 100>ℕ~{Ċṗᵐ+}ẉ⊥ 22:29:35 ​[2,2] \ [2,3] \ [2,5] \ [2,7] \ [2,11] \ [2,13] \ [2,17] \ [2,19] \ [2,23] \ [2,29] \ [2,31] \ [2,37] \ [2,41] \ [2,43] \ [2,47] \ [2,53] \ [2,59] \ [2,61] \ [2,67] \ [2,71] \ [2,73] \ [2,79] \ [2,83] \ [2,89] \ [2,97] \ [3,2] \ [3,3] \ [3,5] \ [3,7] \ [3,11] \ [3,13] \ [3,17] \ [3,19] \ [3,23] \ [3,29] \ [3,31] \ [3,37] \ [3,41] \ [3,43] \ [3,47] \ [3,53] \ [3,59] \ [3,61] \ [3,67] \ [3,71] \ [3,73] \ [3,79] \ [3,83] \ [3,89] \ [5,2] \ [5,3] \ [5,5] \ 22:29:42 oh right, I should take subsets and add them, rather than multiply, since I have to do that for output anyway 22:29:49 oh, I need a labelizer 22:29:56 `! brachylog 100>ℕ≜~{Ċṗᵐ+}ẉ⊥ 22:29:57 ​[2,2] \ [2,3] \ [3,2] \ [3,3] \ [2,5] \ [5,2] \ [3,5] \ [5,3] \ [2,7] \ [7,2] \ [3,7] \ [5,5] \ [7,3] \ [5,7] \ [7,5] \ [2,11] \ [11,2] \ [3,11] \ [7,7] \ [11,3] \ [2,13] \ [13,2] \ [3,13] \ [5,11] \ [11,5] \ [13,3] \ [5,13] \ [7,11] \ [11,7] \ [13,5] \ [2,17] \ [17,2] \ [3,17] \ [7,13] \ [13,7] \ [17,3] \ [2,19] \ [19,2] \ [3,19] \ [5,17] \ [11,11] \ [17,5] \ [19,3] \ [5,19] \ [7,17] \ [11,13] \ [13,11] \ [17,7] \ [19,5] \ [2,23] \ [23,2] \ [3,23] \ [7 22:30:31 and should probably restrict to odd primes? 22:30:56 `! brachylog 100>ℕ≜~{Ċṗᵐ¬{∋2∧}+}ẉ⊥ 22:31:16 I guess putting the constraint there blows up performance 22:31:27 No output. 22:31:42 `! brachylog 100>ℕ≜~{Ċṗᵐ+}¬{∋2∧}ẉ⊥ 22:31:43 0 \ 1 \ -1 \ 2 \ -2 \ 3 \ -3 \ 4 \ -4 \ 5 \ -5 \ 6 \ -6 \ 7 \ -7 \ 8 \ -8 \ 9 \ -9 \ 10 \ -10 \ 11 \ -11 \ 12 \ -12 \ 13 \ -13 \ 14 \ -14 \ 15 \ -15 \ 16 \ -16 \ 17 \ -17 \ 18 \ -18 \ 19 \ -19 \ 20 \ -20 \ 21 \ -21 \ 22 \ -22 \ 23 \ -23 \ 24 \ -24 \ 25 \ -25 \ 26 \ -26 \ 27 \ -27 \ 28 \ -28 \ 29 \ -29 \ 30 \ -30 \ 31 \ -31 \ 32 \ -32 \ 33 \ -33 \ 34 \ -34 \ 35 \ -35 \ 36 \ -36 \ 37 \ -37 \ 38 \ -38 \ 39 \ -39 \ 40 \ -40 \ 41 \ -41 \ 42 \ -42 \ 43 \ -43 \ 4 22:32:01 `! brachylog 50>ℕ×₂≜~{Ċṗᵐ+}ẉ⊥ 22:32:08 ​[2,2] \ [3,3] \ [3,5] \ [5,3] \ [3,7] \ [5,5] \ [7,3] \ [5,7] \ [7,5] \ [3,11] \ [7,7] \ [11,3] \ [3,13] \ [5,11] \ [11,5] \ [13,3] \ [5,13] \ [7,11] \ [11,7] \ [13,5] \ [3,17] \ [7,13] \ [13,7] \ [17,3] \ [3,19] \ [5,17] \ [11,11] \ [17,5] \ [19,3] \ [5,19] \ [7,17] \ [11,13] \ [13,11] \ [17,7] \ [19,5] \ [3,23] \ [7,19] \ [13,13] \ [19,7] \ [23,3] \ [5,23] \ [11,17] \ [17,11] \ [23,5] \ [7,23] \ [11,19] \ [13,17] \ [17,13] \ [19,11] \ [23,7] \ [3,29] 22:32:53 Brachylog really changed my view on programming 22:33:00 [ >{.;_7 _3 _2 5 8([:<<#~0=+/)@#~#:}.i.2^5 NB. a bit nicer 22:33:01 b_jonas: _3 _2 5 22:33:20 that's inefficient too, but straightforward 22:33:43 the way it outputs the first solution could probably be improved 22:34:58 ais523: hmm, I have a similar problem 22:36:07 ais523: find a way to write every natural number less than 81 as the sum of three triangle numbers. a solution is at http://russell2.math.bme.hu/~ambrus/sc/info1/info1-gy4.html 22:36:23 you must print no more than one way to write any one number 22:36:44 the exact choice of triple doesn't matter when there's more than one way 22:36:57 format shouldn't matter either 22:37:08 how is a triangular number defined? a square number plus its square root divided by 2? 22:37:15 you can find 63 = 3 + 15 + 45 or 63 = 6 + 36 + 21 but not both 22:37:23 ais523: yes 22:38:47 [ 2!i.20 22:38:47 b_jonas: 0 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 22:38:55 `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+}ẉ⊥ 22:39:17 oh, I think this outputs multiple possibilities for each number, I forgot a ! 22:39:25 ​[0,0,0] \ [0,0,-1] \ [0,-1,0] \ [0,-1,-1] \ [-1,0,0] \ [-1,0,-1] \ [-1,-1,0] \ [-1,-1,-1] 22:39:31 `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+!}ẉ⊥ 22:40:02 also, Brachylog thinks -1 is a triangular number, I think? presumably (-2 × -1) ÷ 2 22:40:25 `! brachylog 81>ℕ≜~{Ṫ{ℕA+₁×↙A/₂}ᵐ+!}ẉ⊥ 22:40:36 no, ((-2 × -1) ÷ 2) is 1, and -1 is not a triangular number 22:40:47 ah yes 22:40:51 [ 2!i:10 22:40:52 b_jonas: 55 45 36 28 21 15 10 6 3 1 0 0 1 3 6 10 15 21 28 36 45 22:40:54 so there msut be a bug somewhere 22:40:54 ​[0,0,0] \ [0,0,-1] \ [0,-1,0] \ [0,-1,-1] \ [-1,0,0] \ [-1,0,-1] \ [-1,-1,0] \ [-1,-1,-1] 22:40:56 ​[0,0,0] 22:41:10 are you writing the triangular number itself, or its index? 22:41:35 the triplet of numbers that sum to the original, which is why I'm confused 22:41:40 as [0,0,-1] doesn't sum to 0 22:42:11 `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A/₂}ᵐ+}ẉ!⊥} 22:42:42 ​[0,0,0] \ [0,0,1] 22:46:04 `! brachylog {ℕA+₁×↙A/₂}ẉ⊥ 22:46:27 hmm, maybe HackEso won't cut off the infinite output correctly 22:46:35 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 \ 210 \ 231 \ 253 \ 276 \ 300 \ 325 \ 351 \ 378 \ 406 \ 435 \ 465 \ 496 \ 528 \ 561 \ 595 \ 630 \ 666 \ 703 \ 741 \ 780 \ 820 \ 861 \ 903 \ 946 \ 990 \ 1035 \ 1081 \ 1128 \ 1176 \ 1225 \ 1275 \ 1326 \ 1378 \ 1431 \ 1485 \ 1540 \ 1596 \ 1653 \ 1711 \ 1770 \ 1830 \ 1891 \ 1953 \ 2016 \ 2080 22:46:42 ah, it did 22:47:03 perhaps the program just runs so slowly it doesn't reach 2? 22:47:39 maybe it runs in the wrong order so it would need to take infinite steps before it reaches 2? 22:47:58 like, it tries all sums of the form [0,0,(n choose 2)] before it tries [0,1,1]? 22:48:35 that's just a guess, I don't really understand the brachylog code 22:49:26 I think there may be an infinite loop in the constraint solver, yes 22:49:33 runs on TIO suggest it goes into an infinite loop trying to decompose 2 23:03:45 `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:03:48 [ 1{": 81{.(<@{./.~{."1)/:~(,~+/)@>,{3#<2!1+i.15 23:04:15 ​[0,0,0] \ [0,0,1] \ [0,1,1] \ [0,0,2] \ [0,1,2] \ [1,1,2] \ [0,0,3] \ [0,1,3] \ [1,1,3] \ [0,2,3] \ [0,0,4] \ [0,1,4] \ [0,3,3] \ [0,2,4] \ [1,2,4] \ [0,0,5] \ [0,1,5] \ [1,1,5] \ [0,2,5] \ [1,2,5] \ [0,4,4] \ [0,0,6] \ [0,1,6] \ [1,1,6] \ [0,2,6] \ [0,4,5] \ [1,4,5] \ [0,3,6] \ [0,0,7] \ [0,1,7] \ [0,5,5] \ [0,2,7] \ [1,2,7] \ [2,5,5] \ [0,3,7] \ [1,3,7] \ [0,0,8] \ [0,1,8] \ [0,4,7] \ [0,2,8] \ [1,2,8] \ [2,4,7] \ [0,3,8] \ [0,5,7] \ [1,5,7] \ [0,0,9] 23:04:17 turns out my division by 2 was attempting to produce floats and confusing the whole thing, I had to replace it with an unmultiplication instead 23:04:37 although, some of those numbers don't look very triangular 23:04:43 b_jonas: │0 0 0 0│1 0 0 1│2 0 1 1│3 0 0 3│4 0 1 3│5 1 1 3│6 0 0 6│7 0 1 6│8 1 1 6│9 0 3 6│10 0 0 10│11 0 1 10│12 0 6 6│13 0 3 10│14 1 3 10│15 0 0 15│16 0 1 15│17 1 1 15│18 0 3 15│19 1 3 15│20 0 10 10│21 0 0 21│22 0 1 21│23 1 1 21│24 0 3 21│25 0 10 15│26 1 10 15│27 0 6 21│28 0 0 28│29 0 1 28│30 0 15 15│31 0 3 28│32 1 3 28│33 3 1 23:05:05 those are probably indexes 23:05:14 no, they can't be 23:05:30 `! brachylog 81>ℕ≜{ẉ?~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:06:07 actually maybe I just need another labelize 23:06:10 0 \ [0,0,0] \ 1 \ [0,0,1] \ 2 \ [0,1,1] \ 3 \ [0,0,2] \ 4 \ [0,1,2] \ 5 \ [1,1,2] \ 6 \ [0,0,3] \ 7 \ [0,1,3] \ 8 \ [1,1,3] \ 9 \ [0,2,3] \ 10 \ [0,0,4] \ 11 \ [0,1,4] \ 12 \ [0,3,3] \ 13 \ [0,2,4] \ 14 \ [1,2,4] \ 15 \ [0,0,5] \ 16 \ [0,1,5] \ 17 \ [1,1,5] \ 18 \ [0,2,5] \ 19 \ [1,2,5] \ 20 \ [0,4,4] \ 21 \ [0,0,6] \ 22 \ [0,1,6] \ 23 \ [1,1,6] \ 24 \ [0,2,6] \ 25 \ [0,4,5] \ 26 \ [1,4,5] \ 27 \ [0,3,6] \ 28 \ [0,0,7] \ 29 \ [0,1,7] \ 30 \ [0,5,5] \ 31 \ 23:06:23 oh, duh, they are 23:07:06 because the thing inside my map isn't a predicate, it's a function 23:07:08 so yes, indexes 23:07:58 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:08:14 -!- moei has quit (Quit: Leaving...). 23:08:24 Brachylog is surprisingly bad at expressing arithmetic, syntactically 23:08:28 ​[0,0,0] \ [0,0,1] \ [0,1,1] \ [0,0,3] \ [0,1,3] \ [1,1,3] \ [0,0,6] \ [0,1,6] \ [1,1,6] \ [0,3,6] \ [0,0,10] \ [0,1,10] \ [0,6,6] \ [0,3,10] \ [1,3,10] \ [0,0,15] \ [0,1,15] \ [1,1,15] \ [0,3,15] \ [1,3,15] \ [0,10,10] \ [0,0,21] \ [0,1,21] \ [1,1,21] \ [0,3,21] \ [0,10,15] \ [1,10,15] \ [0,6,21] \ [0,0,28] \ [0,1,28] \ [0,15,15] \ [0,3,28] \ [1,3,28] \ [3,15,15] \ [0,6,28] \ [1,6,28] \ [0,0,36] \ [0,1,36] \ [0,10,28] \ [0,3,36] \ [1,3,36] \ [3,10,28] \ 23:08:40 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:09:11 ​[0,0,0][0,0,1][0,1,1][0,0,3][0,1,3][1,1,3][0,0,6][0,1,6][1,1,6][0,3,6][0,0,10][0,1,10][0,6,6][0,3,10][1,3,10][0,0,15][0,1,15][1,1,15][0,3,15][1,3,15][0,10,10][0,0,21][0,1,21][1,1,21][0,3,21][0,10,15][1,10,15][0,6,21][0,0,28][0,1,28][0,15,15][0,3,28][1,3,28][3,15,15][0,6,28][1,6,28][0,0,36][0,1,36][0,10,28][0,3,36][1,3,36][3,10,28][0,6,36][0,15,28][1,15,28][0,0,45][0,1,45][1,1,45][0,3,45][0,21,28][1,21,28][0,6,45][1,6,45][10,15,28][3,6,45][0,0,55][0,1,55 23:09:11 I like the idea behind the language a lot, I'm less of a fan of the syntax though 23:10:32 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}{"~p "w₁}ᵐ!⊥} 23:10:39 interesting, that doesn't consistently find the first or last solution in lex order or in colex order 23:10:51 it's using a constraint solver 23:10:56 or hmm, maybe it does 23:11:11 in this case it's a finite domain solver 23:11:11 I only exlucded two of those, not all four 23:11:19 No output. 23:11:29 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:12:00 ​[0,0,0][0,0,1][0,1,1][0,0,3][0,1,3][1,1,3][0,0,6][0,1,6][1,1,6][0,3,6][0,0,10][0,1,10][0,6,6][0,3,10][1,3,10][0,0,15][0,1,15][1,1,15][0,3,15][1,3,15][0,10,10][0,0,21][0,1,21][1,1,21][0,3,21][0,10,15][1,10,15][0,6,21][0,0,28][0,1,28][0,15,15][0,3,28][1,3,28][3,15,15][0,6,28][1,6,28][0,0,36][0,1,36][0,10,28][0,3,36][1,3,36][3,10,28][0,6,36][0,15,28][1,15,28][0,0,45][0,1,45][1,1,45][0,3,45][0,21,28][1,21,28][0,6,45][1,6,45][10,15,28][3,6,45][0,0,55][0,1,55 23:12:03 there are a range of finite domain solver algorithms implemented in clpfd, I think Brachylog just uses the default 23:12:43 `! brachylog 82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:12:44 oh, so you're actually using a finite domain solver here, rather than just prolog nondeterminism? 23:12:47 ok 23:12:49 right 23:13:13 ​[1,3,78] 23:13:19 the ≜ is the interface between them, it runs the solver and converts all the solutions it finds to nondeterminism 23:13:33 apart from that the two are separate 23:14:01 which can lead to some really confusing code behaviours sometimes because some of your constraints affect one and some of your constraints affect the other 23:14:40 `! brachylog 63{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w⊥} 23:15:20 yeah, compile time is a bit slow 23:15:36 or perhaps the time to load the brachylog compiler to the prolog environment is slow 23:15:57 the Brachylog compilier is lightning-fast IME, so maybe it's the load time that hurts 23:16:15 ​[3,15,45][3,45,15][6,21,36][6,36,21][15,3,45][15,45,3][21,6,36][21,21,21][21,36,6][36,6,21][36,21,6][45,3,15][45,15,3] 23:16:18 that said, the ↙ is a bit of an awkward case in the parser so maybe that slows it down a bit 23:16:38 well, that's the better case, because you can probably get swipl to precompile it 23:16:47 and have the wrapper invoke the precompiled version 23:17:15 `! brachylog "test"w 23:17:16 test 23:17:25 using a ! to get only the first solution is nice 23:17:37 `! brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:18:06 OK, so either the compile is slow, or else the load of the compiled program is slow (or HackEso is randomly being slow on that particular command) 23:18:09 test 23:18:09 `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:18:22 because nearly all the code I wrote there will never run 23:18:32 `? repo 23:18:33 repo? ¯\(°​_o)/¯ 23:18:38 `help 23:18:38 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 23:18:40 ​[1,1,3] 23:18:45 where's the repository? 23:18:55 what do you mean? 23:19:09 `paste ibin/brachylog 23:19:09 https://hack.esolangs.org/repo/file/tip/ibin/brachylog 23:19:15 `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:19:39 ah, https://hack.esolangs.org/repo/shortlog/tip 23:20:03 I wanted to make sure that it wasn't making a new commit with every Brachylog program run, but it isn't 23:20:07 ok, so it's not just slow because it's trying 81**4 possibilities 23:20:24 my "test" which had a copy of the program after it that never ran was slow 23:20:28 so the issue is in the compile or load somewhere 23:21:40 ​[1,1,3] 23:21:43 it compiles and runs basically instantly on my own machine, so there must be some difference between HackEso and my machine that's making it compile slowly there 23:22:14 maybe it tries every triplet of natural numbers, but does that very quickly? 23:22:28 hmm 23:22:40 I'm talking about the program «"test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}» 23:22:42 that's slow on HackEso 23:22:44 maybe file system access on /tmp is slow? 23:22:54 the stuff after the first ⊥ doesn't run at all, though 23:22:56 how many opens does it do? 23:23:10 I think just one to write the tempfile and one to read the tempfile but am not sure 23:23:11 ``` mount | grep tmp 23:23:12 tmpfs on /tmp type tmpfs (rw,relatime) 23:23:32 that's in brachylog.pl; ibin/brachylog also writes a different tempfile for brachylog.pl to read 23:23:33 nope, it's not a file system with silly options like syncing to rotating platter after every write 23:24:28 I've encountered a linux machine where the file system access was really slow because of mount options, so now I had to check that 23:24:36 because it seemed much better to use the run_from_file API than to attempt to use run_from_atom, which would require Prolog-escaping the program to run and also protecting it from the shell 23:24:38 the symptom was that open took a long time 23:28:05 `! brachylog "h2rSh9Ttx5Qi"w 23:28:08 h2rSh9Ttx5Qi 23:28:20 strange 23:30:51 were you just testing the timing? 23:31:20 I don't think there's much need for anti-caching techniques as I didn't write any and the Brachylog compiler doesn't have any either 23:31:26 but I guess it doesn't hurt 23:32:55 just the timing 23:33:21 not for caching, but to avoid a mistake where I get "test" as output from an earlier invocation that took too long 23:33:30 oh, I see 23:33:41 `help test 23:33:42 test failed. HackEgo-JUnit is not available. 23:33:45 `whatis test 23:33:46 test(1) - check file types and compare values \ test(1p) - evaluate expression \ test(1hackeso) - no description 23:34:00 test(1hackeso) is evil by the way 23:34:10 `help ls 23:34:11 ​`ls? ¯\(°​_o)/¯ 23:34:27 ah, I see, test is actually a builtin command 23:34:35 `test -f /etc/passwd 23:34:35 Killed 23:34:54 `` test -f /etc/passwd; echo $? 23:34:55 1 23:35:13 heh, I guess /etc/passwd actually /doesn't/ exist on HackEgo 23:35:24 `` test -f ibin/brachylog; echo $? 23:35:25 0 23:36:20 a shell builtin 23:36:41 so you usually don't invoke /hackenv/bin/test , luckily 23:37:02 good night 23:37:04 `` file /bin/test 23:37:05 ​/bin/test: cannot open `/bin/test' (No such file or directory) 23:37:05 night 23:37:11 `` file /hackenv/bin/test 23:37:12 ​/hackenv/bin/test: ASCII text 23:37:16 ``` type -a test 23:37:16 test is a shell builtin \ test is /hackenv/bin/test \ test is /usr/bin/test 23:37:21 -!- b_jonas has quit (Quit: leaving). 23:37:21 `paste /hackenv/bin/test 23:37:22 https://hack.esolangs.org/repo/file/tip/bin/test 23:37:50 …wow 23:38:02 I think a segfault is probably the wrong error for that? it stands out too much 23:38:05 night, anyway 23:38:07 -!- ais523 has quit (Quit: quit). 23:50:52 -!- Melvar has quit (Ping timeout: 245 seconds). 23:52:37 -!- Melvar has joined.