00:19:38 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64435&oldid=64434 * Jussef Swissen * (+58) /* Talk page */
00:20:10 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64436&oldid=64435 * Jussef Swissen * (+127) /* Talk page */
00:21:22 <esowiki> [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64437&oldid=64432 * Jussef Swissen * (+8) /* Registers */
00:45:13 <Sgeo__> 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 <Sgeo__> I'm very confused why this very simple program isn't printing Hello world
01:04:41 <Sgeo__> https://gist.github.com/Sgeo/c273fd8d3d524622cad5231c37e9139f
01:04:47 <Sgeo__> It works when I comment out the _dos_keep
01:05:00 <Sgeo__> But even if I'm screwing up the _dos_keep, shouldn't it print first?
01:11:24 <kmc> Unicode Character 'BLACK SLIGHTLY SMALL CIRCLE' (U+1F784)
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: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 <esowiki> [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64438&oldid=64437 * Jussef Swissen * (+312) /* Printing */
01:58:05 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64439&oldid=64436 * Jussef Swissen * (+126) /* Talk page */
01:59:39 <esowiki> [[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 <esowiki> [[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 <esowiki> [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64442&oldid=64438 * Jussef Swissen * (+1254)
02:27:40 <esowiki> [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64443&oldid=64442 * Jussef Swissen * (+432) Completed the page
03:12:02 <Sgeo_> :( at Twitter fight
03:15:03 -!- sprocklem has quit (Ping timeout: 245 seconds).
03:20:14 <esowiki> [[Special:Log/move]] move * Jussef Swissen * moved [[Gregorovitch]] to [[Gregorovich]]: Typo in name
03:21:25 <esowiki> [[Gregorovich]] https://esolangs.org/w/index.php?diff=64446&oldid=64444 * Jussef Swissen * (-11)
03:27:00 -!- sprocklem has joined.
03:29:59 <esowiki> [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64447&oldid=64385 * Jussef Swissen * (+88)
03:34:31 <esowiki> [[User:Areallycoolusername]] M https://esolangs.org/w/index.php?diff=64448&oldid=64227 * Areallycoolusername * (+13) /* Full List of languages I Made */
03:35:18 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=64449&oldid=64426 * Areallycoolusername * (+13) /* K */
03:40:56 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=64450&oldid=64449 * Jussef Swissen * (+18) /* G */
04:11:50 <esowiki> [[FireStarter]] https://esolangs.org/w/index.php?diff=64451&oldid=64001 * Ais523 * (-1759) rm copyright-violating content
04:12:20 <esowiki> [[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 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64452&oldid=64440 * A * (+1076) /* Talk page */
04:24:35 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64453&oldid=64452 * A * (-1) /* Talk page */
04:27:06 <esowiki> [[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 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64454&oldid=64453 * A * (+428) /* Talk page */
04:31:08 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64455&oldid=64454 * Ais523 * (+864) /* Blocked */ new section
04:46:30 <esowiki> [[Special:Log/abusefilter]] modify * Ais523 * modified [[Special:AbuseFilter/13]] ([[Special:AbuseFilter/history/13/diff/prev/63]])
04:48:15 <esowiki> [[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 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism
04:49:16 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism
04:49:44 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism: content was: "#REDIRECT User:A/cc
04:50:28 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page; repea
04:52:12 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64456&oldid=64455 * Ais523 * (+291) /* Blocked */ another reason
04:53:14 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism
04:53:32 <esowiki> [[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 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/atttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page;
04:54:32 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism
04:54:42 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/dcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism
04:54:59 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism
04:55:15 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism
04:55:49 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttgtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism
04:56:11 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism
04:56:42 <esowiki> [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism
04:59:18 <esowiki> [[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 <ais523> 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 <ais523> human-generated vandalism is just pointless
05:01:18 <shachaf> ais523: Could you also delete the other post that A named me in?
05:01:51 <shachaf> 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 <ais523> shachaf: see the esowiki post just before I posted
05:02:30 <ais523> given A's recent behaviour I'm not really willing to give them the doubt on this
05:05:44 <shachaf> whoa, luqui made an account to edit A's things?
05:05:49 <shachaf> I have no idea what's going on with anything.
05:09:08 <esowiki> [[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 <ais523> 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 <ais523> 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:26 <ais523> "tcps:" comes to mind but I'm wondering if there's a standard
05:34:57 <kmc> CSS is fucking scow
05:35:49 <kmc> it's 2019 and all kinds of stuff like centering text vertically next to an image is impossible or requires weird hacks
05:35:54 <kmc> no "vertical-align: middle" does not work
05:36:08 <kmc> I want to go back to <table> layout just to spite them
05:36:16 <kmc> I know how to do this with <table> layout trivially
05:37:23 <shachaf> why is putting pixels on the screen an impossible task?
05:37:58 <ais523> CSS seems to be adding features that it badly needs far too slowly
05:38:24 <ais523> 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 <ais523> 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 <shachaf> CSS is just another one of those self-inflicted problems like C++ templates.
05:42:00 <ais523> now I'm curious as to what a better version of C++ templates would look like
05:42:46 <shachaf> It would probably look like writing a regular program rather than contorting yourself in ridiculous ways to do simple things.
05:43:00 <shachaf> 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 <ais523> I've been reading about the Language Server Protocol, it seems to have some fairly insane design decisionsn
07:18:58 <ais523> 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 <ais523> (it'd make much more sense to use the file's source encoding, I think?)
07:20:13 <ais523> SFINAE is interesting, it reminds me a bit of Prolog
07:20:29 -!- Lord_of_Life has joined.
07:20:34 <ais523> I don't think you can compile Prolog directly to C++ templates but maybe you can?
07:21:34 <shachaf> There's also the design decision of making it a protocol in the first place.
07:21:56 <ais523> yes, and sending a header along with each request
07:22:11 <shachaf> I guess it's from Microsoft so why not?
07:22:15 <ais523> it seems to be optimised for being used over a network
07:22:35 <ais523> like, there are some cases where there's optimisation to reduce the number of messages/packets sent
07:22:51 <shachaf> That's a silly thing to optimize for.
07:23:14 <ais523> 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 <ais523> that way you could call back and forth freely
07:23:53 <shachaf> "We choose UTF-16 encoding here since most language store strings in memory in UTF-16 not UTF-8."
07:23:58 <ais523> 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 <shachaf> Yes, it's obviously much more reasonable to have language server libraries.
07:24:35 <ais523> Java uses UTF-16; most Microsoft languages probably do?
07:25:00 <ais523> Rust uses UTF-8; Perl switches between ISO-8859-1 and UTF-8 depending on which codepoints the string actually contains
07:25:18 <shachaf> I saw this talk recently where he complains about it: https://www.youtube.com/watch?v=pW-SOdj4Kkk#t=42m30s
07:26:36 <ais523> 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 <ais523> many languages don't support character strings at all, of course (byte strings are much easier to implement)
07:27:43 <shachaf> People should ignore all these language things and just use UTF-8 for everything.
07:28:04 <ais523> …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 <ais523> which are often the same because many languages are self-hosting, but not always
07:28:28 <shachaf> I think the interest here is what encoding the editor uses internally.
07:28:59 <shachaf> The editor is Visual Studio Code, which is written in JavaScript.
07:29:13 <shachaf> Also everything is written in JavaScript because we live in the bad future.
07:29:32 <ais523> 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 <ais523> (like, not even differentiated, you can just mix them both in the same file)
07:30:46 <ais523> 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 <ais523> or hmm, I got that backwards
07:31:36 <ais523> 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 <ais523> 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 <ais523> it's also really vague in places
07:34:52 <ais523> 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 <ais523> 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:39 <shachaf> people are just expected to use visual studio code hth
07:37:28 <ais523> I like the idea of LSP
07:37:42 <ais523> I just dislike a huge number of the details
07:38:16 <ais523> (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 <shachaf> 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 <shachaf> 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 <ais523> shachaf: pretty much, although I was thinking a bit more generally than "compiler"
07:40:04 <ais523> e.g. I think syntax highlighters should be abstracted in the same way
07:40:37 <ais523> 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 <ais523> so that languages could specify their own syntax highlighting rules that every editor could ues
07:42:48 <b_jonas> 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 <b_jonas> 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 <ais523> 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 <b_jonas> 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 <ais523> and that editors don't ship their own langauge definitions any more
07:45:21 <b_jonas> and (3) the languages to be supported are really complicated too.
07:45:38 <ais523> incremental reparse/re-highlight is actually the only hard part in writing my syntax highlighting language, I think
07:45:41 <b_jonas> But sure, even apart from that, you can find definite mistakes in the implementation.
07:47:00 <ais523> 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 <b_jonas> 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 <b_jonas> internets have encountered.
07:49:11 <ais523> why did you disable the syntax highlighting, btw? is it often incorrect?
07:49:26 <b_jonas> 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 <b_jonas> 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 <ais523> 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 <b_jonas> 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 <ais523> 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 <b_jonas> that, or you're using a bad font where l and 1 look the same.
07:52:04 <ais523> well, my day job is in Java
07:52:40 <ais523> 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 <b_jonas> 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 <ais523> it's nice to immediately know that you've made a typo
07:53:34 <ais523> 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 <ais523> 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 <b_jonas> sure, I agree that you don't need all of the compilation
07:56:07 <b_jonas> 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 <ais523> I'd expect -fmath-errno to have more of a runtime than compile-time impact, but maybe it does both
07:57:20 <b_jonas> sure, that doesn't matter much for compilation, it's mostly unrelated to the issue
07:57:29 <ais523> (also, -fmath-errno is the default because -fno-math-errno violates the standard)
07:58:00 <b_jonas> 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 <b_jonas> also C11 finally has standard ways to access the floating point rounding mode and exception flags
08:00:09 <b_jonas> hmm, even since C99 actually
08:00:32 <b_jonas> it's just that people, and especially Microsoft, are particularly slow the embrace the C99 improvements
08:01:08 <b_jonas> I even had a wisdom entry about that, but I think I deleted it
08:01:21 <HackEso> 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:05:25 <HackEso> apropos: can't open the manpath configuration file /etc/manpath.config
08:05:41 <ais523> was curious as to whether we could get whatis-like output from HackEso, apparently not
08:05:53 <HackEso> whatis: can't open the manpath configuration file /etc/manpath.config
08:06:31 <HackEso> 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 <b_jonas> 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:08:46 <b_jonas> 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 <ais523> `printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config
08:08:53 <HackEso> "MANDATORY_MANPATH /usr/share/man \ SECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config
08:08:58 <ais523> `` printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config
08:08:58 <HackEso> /hackenv/bin/`: line 5: /etc/manpath.config: Permission denied
08:09:17 <b_jonas> 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 <ais523> `whatis -M /usr/share/man lrint
08:09:52 <ais523> `0 `whatis -M /usr/share/man lrint
08:09:52 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: 0: not found
08:09:56 <ais523> `` whatis -M /usr/share/man lrint
08:09:57 <HackEso> whatis: can't open the manpath configuration file /etc/manpath.config
08:10:04 <shachaf> Is your 0 key next to your ` key?
08:11:19 <ais523> no, it's next to my right arrow key
08:11:34 <ais523> `` whatis -M /usr/share/man -w '*' lrint
08:11:35 <HackEso> whatis: can't open the manpath configuration file /etc/manpath.config
08:12:24 <HackEso> whatis: can't open the manpath configuration file /etc/manpath.config
08:12:46 <ais523> I give up, apparently I can't override its desire to read its configuration file
08:15:38 <b_jonas> we could add a fake bin/whatis with a built-in database if you want
08:16:19 <ais523> ugh, so LSP uses Markdown – with HTML sanitised! – as the protocol for sending formatted text
08:16:32 <ais523> Markdown is bad enough for humans to use, it's terrible as an exchange format for computers
08:17:07 <b_jonas> isn't that because the doc comments for some doc comment systems (javadoc, doxygen, and even rustdoc) use markdown format?
08:17:27 <b_jonas> the language server just doesn't want to have to reformat those comments
08:17:29 <ais523> rustdoc does indeed use Markdown
08:17:47 <ais523> but Markdown → HTML compilation is /way/ easier than the other direction
08:18:32 <ais523> Javadoc is really strict about HTML, too, to the extent that you have to write <p> in your doc comment to separate paragraphs, a double line break is treated the same as a space
08:18:41 <ais523> I don't really know C#, but I think it predates Markdown becoming popular
08:19:29 <b_jonas> 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 <b_jonas> but sure, some html-based thing would be a saner interchange format
08:19:50 <b_jonas> because it's more extensible
08:20:13 <ais523> b_jonas: no, the LSP specifies Markdown without the HTML fallbacak
08:20:35 <b_jonas> 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 <ais523> although it says "may be sanitised", which is a bit different from specifying the actual format involved
08:20:41 <ais523> so maybe things like <i> aren't sanitised
08:21:01 <b_jonas> right, that means you can't embed arbitrary javascript and css into it
08:21:27 <ais523> perhaps a specific format should have been defined?
08:21:42 <b_jonas> 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 <ais523> 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 <ais523> (and thus poorly specified)
08:22:08 <b_jonas> 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 <ais523> b_jonas: well, my issue is more that the set of things you can do isn't specified at all
08:23:21 <ais523> …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 <ais523> and Markdown doesn't have that for obvious reasons
08:23:48 <b_jonas> right, that's where you use HTML
08:23:54 <ais523> (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 <ais523> well, HTML doesn't have a "keyword colour" option either, although it's obvious how to extend it to do so
08:24:11 <b_jonas> tags like <code> and <var> and <samp>, and classes with meaning specific to this stuff
08:27:14 <b_jonas> 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 <b_jonas> 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 <b_jonas> 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 <b_jonas> so I disabled all the red squiggly line stuff too, and just do a pass after where I compile or spellcheck
08:33:36 <ais523> @djinn (a -> b) -> [a] -> [b]
08:34:07 <ais523> nah, I'm trying to find a nontrivial djinn use
08:34:17 <ais523> although Hoogle is fun too
08:34:22 <ais523> @djinn Monad m => (a -> b) -> m a -> m b
08:34:26 <ais523> @hoogle Monad m => (a -> b) -> m a -> m b
08:34:27 <lambdabot> Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r
08:34:27 <lambdabot> Distribution.Compat.Prelude.Internal liftM :: Monad m => (a1 -> r) -> m a1 -> m r
08:34:27 <lambdabot> RIO.Prelude liftM :: Monad m => (a1 -> r) -> m a1 -> m r
08:35:05 <ais523> at work I use the Java equivalent of hoogle all the time
08:35:18 <ais523> except it takes into account what variables are available in scope
08:35:45 <ais523> 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 <ais523> 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 <ais523> and just want to save on typing
08:36:46 <ais523> (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 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64457&oldid=64456 * A * (-2600) /* Talk page */ Uhhh...
10:10:30 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
10:10:50 <HackEso> ! is a syntax used in Haskell and Prolog for solving evaluation order problems.
10:10:58 <HackEso> `! 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 <esowiki> [[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 <esowiki> [[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 <myname> 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 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64460&oldid=64459 * A * (-2) /* A sentence without using 'a' */
10:57:51 <myname> you can write here, too, you know
11:37:35 <esowiki> [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64461&oldid=64447 * Jussef Swissen * (+278)
11:38:49 <esowiki> [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64462&oldid=64461 * Jussef Swissen * (+77)
11:39:13 <esowiki> [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64463&oldid=64462 * Jussef Swissen * (-5)
11:40:32 <esowiki> [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64464&oldid=64448 * Jussef Swissen * (+114)
11:52:36 <fungot> 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:07 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found
12:02:28 <HackEso> ¡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: <https://esolangs.org/>. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
12:02:35 <HackEso> #!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome.es"; } else { exec "bin/?", "welcome.es"; }
12:04:09 <HackEso> #!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; }
12:07:24 <HackEso> `[hd]o[aw][gt] [<filename>] 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:24 <HackEso> dontaskdonttelllist? ¯\(°_o)/¯
12:08:30 <HackEso> dontaskdonttelllist: quintopia myname int-e
12:10:24 <HackEso> `edit <file> 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:29 <HackEso> elcome o he nternational ub or soteric rogramming anguage esign nd eployment! or ore nformation, heck ut ur iki: <ttps://solangs.rg/>. (or he ther ind f soterica, ry #soteric n Fnet r ALnet.)
12:11:44 <HackEso> (.tenLAD ro tenFE no ciretose# yrt ,aciretose fo dnik rehto eht roF) .</gro.sgnalose//:sptth> :ikiw ruo tuo kcehc ,noitamrofni erom roF !tnemyolped dna ngised egaugnal gnimmargorp ciretose rof buh lanoitanretni eht ot emocleW
12:12:08 <esowiki> [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64465&oldid=64347 * Jussef Swissen * (+341)
12:12:13 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64466&oldid=64460 * A * (-56)
12:12:39 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64467&oldid=64466 * A * (-235) /* Talk page */
12:12:55 <wob_jonas> I should have used private messages
12:14:17 <esowiki> [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64468&oldid=64465 * Jussef Swissen * (-1)
12:14:44 <esowiki> [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64469&oldid=64468 * Jussef Swissen * (+1)
12:15:27 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64470&oldid=64467 * A * (+421) /* Talk page */
12:17:11 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64471&oldid=64470 * A * (+428) /* Talk page */
12:19:36 <esowiki> [[User talk:A]] https://esolangs.org/w/index.php?diff=64472&oldid=64471 * A * (+1155)
12:21:37 <esowiki> [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=64473&oldid=62957 * Areallycoolusername * (+217) Question about unusmall block circumstances.
12:25:09 <wob_jonas> `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:10 <HackEso> #!/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:28 <wob_jonas> `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 <HackEso> #!/usr/bin/perl \ $_ = (join " ", @ARGV) || $ENV{IRC_NICK}; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_.";
12:28:40 -!- arseniiv_ has joined.
12:35:41 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64474&oldid=64472 * A * (+283)
12:37:45 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64475&oldid=64474 * A * (+0) HackEso: Nice introduction to esolangs.org!
12:47:44 <HackEso> #!/bin/sh \ cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | sed 's/[^>]*> //' | grep '^`' | tail -1 #Best cheating quine ever?
12:48:54 <HackEso> /hackenv/bin/quine: 2: cd: can't cd to /var/irclogs/_esoteric \ ls: cannot access '????-??-??.txt': No such file or directory
12:49:02 <wob_jonas> ``` set -e; c=bin/quine; >$c echo $'#!/bin/sh\necho $IRC_MESSAGE # Best cheating quine ever?'; chmod -v a+x "$c"
12:49:03 <HackEso> mode of 'bin/quine' retained as 0755 (rwxr-xr-x)
12:49:37 <wob_jonas> ``` quine this # including comments
12:49:37 <HackEso> ``` quine this # including comments
12:49:51 <HackEso> ``` for x in 0 1; do quine; done \ ``` for x in 0 1; do quine; done
12:52:55 -!- sprocklem has quit (Ping timeout: 268 seconds).
12:59:42 <esowiki> [[User talk:A]] M https://esolangs.org/w/index.php?diff=64476&oldid=64475 * A * (-627) /* Talk page */
13:43:29 <esowiki> [[Cthulhu]] https://esolangs.org/w/index.php?diff=64477&oldid=64250 * Joshop * (+597)
13:43:41 <esowiki> [[Cthulhu]] https://esolangs.org/w/index.php?diff=64478&oldid=64477 * Joshop * (+6)
13:57:42 <wob_jonas> `fetch share/whatis https://hack.esolangs.org/get/share/whatis
13:57:44 <HackEso> 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 <Reallycooluserna> 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 <Reallycooluserna> 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:50:01 <myname> https://medium.com/@balidani/cities-skylines-is-turing-complete-e5ccf75d1c3a is anadder really enough to be tc?
14:51:44 <myname> 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:13:27 -!- Reallycooluserna has quit (Ping timeout: 260 seconds).
15:16:09 <wob_jonas> `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis
15:16:12 <HackEso> 2019-07-16 15:16:11 URL:https://hack.esolangs.org/get/bin/whatis [598/598] -> "bin/whatis" [1]
15:16:50 <HackEso> whatis: can't open the manpath configuration file /etc/manpath.config
15:17:09 <HackEso> mode of 'bin/whatis' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
15:17:11 <HackEso> Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 16, in <module> \ match = match or argfold == parts[1].casefold() \ TypeError: '_sre.SRE_Match' object is not subscriptable
15:18:47 <wob_jonas> `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis
15:18:48 <HackEso> 2019-07-16 15:18:47 URL:https://hack.esolangs.org/get/bin/whatis [604/604] -> "bin/whatis" [1]
15:18:53 <HackEso> mode of 'bin/whatis' retained as 0755 (rwxr-xr-x)
15:18:59 <HackEso> cp(1) - copy files and directories \ cp(1p) - copy files
15:19:02 <HackEso> lrint(3) - round to nearest integer \ lrint(3p) - round to nearest integer value using current rounding direction \ lrint(3glibc) - Rounding Functions
15:19:40 <wob_jonas> 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 <wob_jonas> the command gets its data from a plain text database at share/whatis
15:20:12 <wob_jonas> anyone should feel free to edit that database
15:20:52 <wob_jonas> 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 <esowiki> [[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:37 <HackEso> string.h(0p) - string operations \ string.h(7glibch) - String Length
16:39:44 <b_jonas> `perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis
16:39:44 <HackEso> -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 <b_jonas> ```perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis
16:40:11 <b_jonas> ``` perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis
16:40:13 <HackEso> /srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``perl: not found
16:40:30 <HackEso> string.h(0p) - string operations \ string.h(0glibc) - String Length
16:40:35 <HackEso> 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:35 <HackEso> sockaddr_in(7glibct) - Internet Address Formats
16:41:49 <b_jonas> ``` perl -pi -e 's/^([^(]+)\(7glibct\)/$1(7glibc)/' share/whatis
16:41:53 <HackEso> sockaddr_in(7glibc) - Internet Address Formats
16:41:58 <HackEso> ldiv_t(7glibc) - Integer Division
16:42:40 <esowiki> [[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 <HackEso> 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:06 <b_jonas> `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis
16:54:12 <HackEso> 2019-07-16 16:54:10 URL:https://hack.esolangs.org/get/bin/whatis [896/896] -> "bin/whatis" [1]
16:54:17 <HackEso> 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 <module> \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1)
16:54:19 <HackEso> Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in <module> \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1)
16:54:37 <HackEso> Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in <module> \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1)
16:54:41 <b_jonas> `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis
16:54:42 <HackEso> 2019-07-16 16:54:42 URL:https://hack.esolangs.org/get/bin/whatis [904/904] -> "bin/whatis" [1]
16:54:45 <HackEso> syzzigy: nothing appropriate.
16:54:47 <HackEso> 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:51 <HackEso> stat syzzigy: nothing appropriate.
16:54:59 <HackEso> 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.
17:06:18 <esowiki> [[Esoteric algorithm]] https://esolangs.org/w/index.php?diff=64481&oldid=44546 * Areallycoolusername * (+1275) Extend page, due to huge potential
17:09:52 <esowiki> [[Esoteric algorithm]] M https://esolangs.org/w/index.php?diff=64482&oldid=64481 * Areallycoolusername * (-2)
17:12:13 <esowiki> [[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 <b_jonas> ``` set -e; c=bin/bonvenon; /bin/sed 's/ome.nb\>/ome.eo/g' bin/velkommen >$c; chmod -v a+x "$c"
18:31:32 <HackEso> mode of 'bin/bonvenon' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
18:31:38 <fungot> b_jonas: looking at it
18:31:39 <HackEso> fungot: Bonvenon al la internacia centro por la desegno kaj ellaso de esoteraj programlingvoj! Por pli da informado, vizitu la Viki-on: <https://esolangs.org/>. (Por la alia speco de esotero, iru al #esoteric sur EFnet aŭ DALnet.)
18:37:56 <esowiki> [[Arch]] N https://esolangs.org/w/index.php?oldid=64484 * Areallycoolusername * (+3267) Created page for Arch esoteric data structure
18:38:52 <esowiki> [[Arch]] M https://esolangs.org/w/index.php?diff=64485&oldid=64484 * Areallycoolusername * (+26) Fixed some typos
18:39:27 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64486&oldid=64485 * Areallycoolusername * (-4)
18:40:14 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64487&oldid=64486 * Areallycoolusername * (+13) /* Pop */
18:40:50 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64488&oldid=64487 * Areallycoolusername * (+0) /* Pop */
18:41:12 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64489&oldid=64488 * Areallycoolusername * (-15) /* Pop */
18:41:45 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64490&oldid=64489 * Areallycoolusername * (+0) /* Cells & Point */
18:42:23 <esowiki> [[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 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64492&oldid=64490 * Areallycoolusername * (+290)
18:52:45 <esowiki> [[Arch]] https://esolangs.org/w/index.php?diff=64493&oldid=64492 * Areallycoolusername * (-1) /* Computational Properties */
19:06:52 -!- ais523 has joined.
19:07:19 <ais523> 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 <ais523> (I have a suspicion that "Reallycooluserna" was actually A in disguise, not Areallycoolusername, and want to check the IPs)
19:10:54 <ais523> 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 <ais523> (note: this isn't an invitation to attempt to brute-force ais523 non-admin's password)
19:11:55 <Phantom_Hoover> '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 <ais523> no, I can generate an almost unlimited number of them, but can only /remember/ a fairly small number of them
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 <ais523> 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 <b_jonas> 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 <ais523> b_jonas: that's the significance of "different continents"
19:30:01 <b_jonas> 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:11 <HackEso> cp(1) - copy files and directories \ cp(1p) - copy files
19:30:26 <b_jonas> feel free to edit that list.
19:30:27 <ais523> 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 <ais523> or Ubuntu, I guess, probably gives more choice
19:32:57 <b_jonas> ais523: I added at least stub entries for most commands of hackeso, lambdabot, and fungot
19:32:57 <fungot> b_jonas: can you specify what kind of research...)
19:33:13 <HackEso> bf_txtgen(1egobot) - no description
19:33:31 <b_jonas> right, that's what stub means
19:33:48 <b_jonas> for the more commonly used commands I added something sensible
19:33:51 <HackEso> /hackenv/ibin/bf_txtgen: line 6: java: command not found
19:34:01 <b_jonas> yeah, the egobot interpreters too
19:34:11 <esowiki> [[User:Total Vacuum]] https://esolangs.org/w/index.php?diff=64494&oldid=61414 * Total Vacuum * (+107)
19:34:29 <b_jonas> but I don't know what any of those do, so I didn't describe them
19:35:14 <shachaf> ais523: They joined in May with the username A_ according to the logs (which don't have host information).
19:35:15 <b_jonas> 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:32 <shachaf> I thought it was a very A-like behavior.
19:36:19 <b_jonas> 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 <esowiki> [[Uf]] https://esolangs.org/w/index.php?diff=64495&oldid=62158 * Total Vacuum * (-36)
19:36:48 <b_jonas> the logs don't have host information? huh
19:36:56 <shachaf> Yes, but I'm not talking about you, I'm talking about wiki user A.
19:37:22 <ais523> b_jonas: the tunes logs do, and probably the raw esolangs logs too
19:37:22 <b_jonas> 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 <ais523> the choice of username combined with behaviour made it fairly obvious
19:38:24 <b_jonas> (there is also at least one forums where I use the username "jonas" and someone else uses the username "Jonas")
19:39:26 <esowiki> [[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 <int-e> ais523: what about Jussef Swissen and Areallycoolusername though? I'm not sure I believe that those are different people.
19:41:14 <b_jonas> 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 <b_jonas> int-e: those are definitely the same people. they say so in their user page
19:42:30 <b_jonas> only Jussef Swissen claims that they're Areallycool
19:42:37 <ais523> int-e: Jussef Swissen and ARCUN are obviously the same as each other
19:42:48 <b_jonas> Jusef Swissen has edited Areallycool's user page to claim that they're the same
19:42:52 <b_jonas> I don't see Areallycool claiming that
19:42:55 <ais523> A = Asdf probably = Iamcalledbob
19:43:09 <ais523> (the probably attaches to the = to its right)
19:43:48 <ais523> there are also behavioural differences, e.g. A has more skill in terms of computational class proofs than ARCUN does
19:44:17 <esowiki> [[Ef]] https://esolangs.org/w/index.php?diff=64497&oldid=64496 * Total Vacuum * (+125)
19:44:23 <int-e> A has way more tantrums.
19:44:51 <b_jonas> and A has created more than 150 pages in the main namespace, which seems really excessive to me
19:45:26 <b_jonas> Areallycool is moderated in contrast to that
19:47:13 <esowiki> [[Language list]] https://esolangs.org/w/index.php?diff=64498&oldid=64450 * Total Vacuum * (+9)
19:47:55 <esowiki> [[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 <b_jonas> are there hackeso builtin commands other than revert, fetch, run, help ?
20:21:30 <ais523> 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 <b_jonas> I guess I should check the
20:23:46 <HackEso> Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox
20:31:07 <b_jonas> 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 <fizzie> b_jonas: It's very close to https://bitbucket.org/fizzie/hackbot
21:04:37 <fizzie> And https://bitbucket.org/fizzie/multibot has a few tiny patches as well.
21:05:29 <fizzie> Oh, and https://bitbucket.org/fizzie/umlbox as well.
21:05:33 <fizzie> But really nothing major.
21:06:33 <fizzie> (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:35 <HackEso> 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 <b_jonas> `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 <HackEso> 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:28 <HackEso> 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 <b_jonas> hmm, I could add whatis entries for jevalbot commands too
21:12:02 -!- atslash has joined.
21:16:36 <ais523> we need a jellybot in here really
21:16:49 <ais523> 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 <ais523> (which would write that as 6×`)
21:17:26 -!- atslash has quit (Ping timeout: 272 seconds).
21:17:34 <b_jonas> 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 <b_jonas> ais523: *: is a primitive builtin, it has nothing to do with *
21:18:04 <b_jonas> ^ you write that if you want to invoke the * builtin with the same argument twice
21:18:57 <b_jonas> 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 <ais523> it's mostly just a Python program, I'm not sure how many libraries it relies on, probably not many
21:19:32 <ais523> https://github.com/DennisMitchell/jellylanguage/
21:19:35 <b_jonas> does it need python newer than
21:19:43 <b_jonas> ``` python3 --version; python2 --version
21:19:43 <HackEso> Python 2.7.13 \ Python 3.5.3
21:19:59 <ais523> probably not, it does seem to have sympy as a dependency though, that could get awkward
21:20:16 <b_jonas> 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 <b_jonas> it's a short program and doesn't do anything fancy, so that was easy to fix
21:20:31 <b_jonas> but for something large like jelly it could be a problem
21:20:50 <b_jonas> is there a debian package for that? fizzie can install it
21:20:55 <b_jonas> if it's not installed already that is
21:21:03 <b_jonas> ``` python3 -cimport sympy
21:21:04 <HackEso> File "<string>", line 1 \ import \ ^ \ SyntaxError: invalid syntax
21:21:11 <b_jonas> ``` python3 -c'import sympy'
21:21:12 <HackEso> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ ImportError: No module named 'sympy'
21:21:19 <b_jonas> ``` python3 -c'import numpy'
21:21:20 <HackEso> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ ImportError: No module named 'numpy'
21:21:44 <ais523> "python3-sympy" is the name of the package, apparently; simple enough
21:21:54 <b_jonas> actually it's a library addition in python 3.6
21:22:01 <b_jonas> and hackeso has python 3.5
21:22:22 <b_jonas> ais523: well, if you think you want to install jelly, then talk to fizzie about that
21:22:33 <ais523> I think it would be an improvement but not a vital or urgent one
21:22:58 <ais523> also I'm not very familiar with Python packaging
21:24:04 <b_jonas> is there a package for jelly in debian perhaps?
21:24:20 <ais523> I seriously doubt it, it's an esolang after all
21:24:32 <ais523> and not a particularly well-known one outside the golfing community
21:24:36 <b_jonas> eh.. there are some eso utilities in debian, not necessarily esolang, but eso
21:24:53 <b_jonas> the project has contributors that are geeks with odd projects
21:25:01 <ais523> 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 <ais523> and it uses SWI-Prolog as the back end and I don't think HackEso has that installed
21:25:22 <HackEso> 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 <HackEso> 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:38 <b_jonas> burlesque would be hard to install because it depends on haskell
21:25:56 <b_jonas> I did check hackeso's prolog implementations some weeks ago, let me look up the logs
21:26:31 <ais523> `fetch https://github.com/JCumin/Brachylog/archive/master.zip
21:26:34 <HackEso> 2019-07-16 21:26:34 URL:https://codeload.github.com/JCumin/Brachylog/zip/master [61214] -> "master.zip" [1]
21:26:49 <HackEso> 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 <b_jonas> I think it has like two prolog implementations
21:27:06 <ais523> `` mv master.zip ibin/brachylog
21:27:17 <b_jonas> https://esolangs.org/logs/2019-06-23.html#lQb
21:27:22 <b_jonas> ``` swipl -qt 'T is 4^4, display(T), nl'
21:27:25 <ais523> `` (cd ibin/brachylog; unzip master.zip)
21:27:26 <HackEso> /hackenv/bin/`: line 5: unzip: command not found
21:28:30 <b_jonas> I once used gzip to uncompress a single-file zip on hackeso exactly because it doesn't have gzip
21:28:36 <b_jonas> and I tried to install 7zip once, but failed
21:28:39 <HackEso> \ 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:29:24 <b_jonas> ais523: you can repack iot to tar, fetch that, and tar x
21:29:42 <b_jonas> we have gzip, bzip2, and xz
21:31:55 <ais523> `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "<*>"')
21:31:56 <HackEso> Need input fileglob for outout fileglob at -e line 1.
21:32:06 <ais523> `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "master"')
21:32:24 <ais523> `` ls -l ibin/brachylog/master
21:32:25 <HackEso> -rw-r--r-- 1 1000 1000 0 Jul 16 21:32 ibin/brachylog/master
21:32:40 <ais523> `` rm ibin/brachylog/master
21:33:03 <ais523> 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 <ais523> oh, it lets you specify a specific file to unzip but not to do a batch unzip
21:35:03 <ais523> `fetch https://gist.githubusercontent.com/eqhmcow/5389877/raw/514a27c213aefb58079687e4c257b57d6ad7a39f/unzip.pl
21:35:05 <HackEso> 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 <ais523> `mv unzip.pl bin/unzip
21:35:12 <HackEso> mv: missing destination file operand after 'unzip.pl bin/unzip' \ Try 'mv --help' for more information.
21:35:16 <ais523> `` mv unzip.pl bin/unzip
21:35:21 <ais523> `` chmod a+x bin/unzip
21:35:31 <ais523> `` (cd ibin/brachylog; unzip master.zip)
21:35:32 <HackEso> Couldn't write to ./Brachylog-master//: Is a directory at /hackenv/bin/unzip line 67.
21:35:50 <ais523> `` ls -l ibin/brachylog
21:35:51 <HackEso> 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 <ais523> `` ls -l ibin/brachylog/Brachylog-master
21:36:04 <b_jonas> `python3 -cimport os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work?
21:36:06 <HackEso> File "<string>", line 1 \ import os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work? \ ^ \ SyntaxError: invalid syntax
21:36:57 <ais523> `` sed -i -e 's/unzip(shift)/unzip(@_)/' bin/unzip
21:37:11 <ais523> `` (cd ibin/brachylog; mkdir master; unzip master.zip master/)
21:37:12 <HackEso> Need a file argument at /hackenv/bin/unzip line 40.
21:37:17 <b_jonas> `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.Zipfile("master.zip").extractall()
21:37:18 <HackEso> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ AttributeError: module 'zipfile' has no attribute 'Zipfile'
21:37:25 <b_jonas> `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.ZipFile("master.zip").extractall()
21:37:31 <ais523> `` sed -i -e 's/unzip(@_)/unzip(@ARGV)/' bin/unzip
21:37:34 <HackEso> 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 <ais523> `` (cd ibin/brachylog; mkdir master; unzip master.zip master/)
21:37:42 <HackEso> 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 <ais523> hmm, I guess your unzip works better than mine
21:37:59 <b_jonas> shouldn't the ibin directory contain only interpreter executables though?
21:38:03 <ais523> `` rm -r ibin/brachylog/master/
21:38:18 <b_jonas> and I just got it to work faster
21:38:23 <b_jonas> probably either would have worked
21:38:30 <ais523> I think ibin contains entire distributions?
21:38:39 <HackEso> ./ \ ../ \ 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 <HackEso> -rwxr-xr-x 1 1000 1000 64 Apr 7 2018 ibin/kipple
21:38:46 <b_jonas> those are executables, not directories
21:38:54 <ais523> so where are the corresponding support directories?
21:38:57 <HackEso> - \ :#,_@ \ 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:09 <ais523> `` mv ibin/brachylog interps/brachylog
21:39:15 <HackEso> ./ \ ../ \ 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 <ais523> `` ls -R interps/brachylog
21:39:20 <HackEso> 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:44 <HackEso> ./ \ ../ \ 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 <ais523> `` rmdir interps/brachylog/Brachylog-master
21:39:49 <HackEso> rmdir: failed to remove 'interps/brachylog/Brachylog-master': Directory not empty
21:40:21 <ais523> `` du interps/brachylog/
21:40:23 <HackEso> 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 <ais523> `` rm -r interps/brachylog/Brachylog-master
21:41:06 <ais523> `` ls interps/brachylog/brachylog/Brachylog-master/src
21:41:07 <HackEso> brachylog.pl \ constraint_variables.pl \ metapredicates.pl \ predicates.pl \ symbols.pl \ tests.pl \ tokenize.pl \ transpile.pl \ utils.pl
21:41:21 <ais523> now all we need is a wrapper script
21:41:53 <b_jonas> test if it can run a hello world first
21:42:13 <b_jonas> copying the files is the easy part
21:42:15 <ais523> the intended way to run Brachylog is interactive, which is not easy to do on HackEso
21:42:23 <ais523> I'm trying to work out how to do it as a batch process
21:42:27 <ais523> at least it's an interpreted language…
21:42:55 <ais523> although, it leaves the compiled file persistently on disk, which is not good
21:43:02 <ais523> what's the non-versioned directory called? tmp?
21:43:26 <HackEso> 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 <ais523> (that is, Brachylog's compiler is written in an interpreted language, but it compiles the file)
21:43:47 <ais523> `` touch tmp/compiled_brachylog.pl
21:44:20 <b_jonas> 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 <ais523> `` ln -s ../../../../../tmp/compiled_brachylog.pl interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl
21:44:40 <ais523> b_jonas: no, it's just a temporary file placed in the wrong place
21:44:57 <ais523> `` echo test > interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl
21:45:07 <ais523> `` echo tmp/compiled_brachylog.pl
21:45:16 <ais523> `` cat tmp/compiled_brachylog.pl # facepalm
21:45:28 <ais523> OK, that symlink seems to be going to the correct place
21:45:45 <b_jonas> I hope it's not one of the stupid ones where you can't configure where it puts the temporary file
21:50:23 <ais523> `` echo '"Hello, world!\n"w' > tmp/input.brachylog
21:51:16 <ais523> `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)
21:51:43 <ais523> oh right, I forgot escaping was screwed up in Brachylog
21:51:46 <ais523> `` echo '"Hello, world!\\"w' > tmp/input.brachylog
21:51:50 <ais523> `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)
21:52:05 <ais523> `` echo '"Hello, world!"ẉ' > tmp/input.brachylog
21:52:09 <ais523> `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)
21:52:47 <j-bot> b_jonas, pong: pleiosaur
21:53:40 <ais523> I guess the hardest part now, which might be avoidable, is hooking up arguments and return values to the program appropriately
21:53:48 <ais523> I guess you can just hardcode them in the program itself
21:54:50 <ais523> `` 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 <HackEso> /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 <ais523> `` 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:14 <ais523> `` chmod a+x ibin/brachylog
21:55:25 <ais523> `! brachylog "Hello, world!"ẉ
21:55:54 <fizzie> Oh, that reminds me, Debian 10 got released, at some point I need to upgrade the HackEso host.
21:56:10 <ais523> many Brachylog commands aren't on my keyboard though
21:57:18 <HackEso> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71]
21:57:37 <b_jonas> does that use the jelly character set?
21:57:50 <j-bot> 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 <b_jonas> not today, but I'll definitely have to upgrade to debian 10
21:59:07 <ais523> the jelly character set can actually be typed, although many of the characters in it are really obscure
21:59:21 <ais523> (and thus you wouldn't know the appropriate key sequence without a lot of Jelly experience)
21:59:26 <b_jonas> what does "can be typed" mean?
21:59:31 -!- kmc has quit (Quit: leaving).
22:00:10 <ais523> 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:54 <b_jonas> `fetch tmp/jeval.whatis https://hack.esolangs.org/get/tmp/jeval.whatis
22:00:55 <HackEso> 2019-07-16 22:00:54 URL:https://hack.esolangs.org/get/tmp/jeval.whatis [4404/4404] -> "tmp/jeval.whatis" [1]
22:00:59 <ais523> 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 <b_jonas> ``` cat tmp/jeval.whatis >> share/whatis
22:01:18 <HackEso> 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:24 <HackEso> cd(1p) - change the working directory \ cd(8glibc) - Working Directory \ cd(8jevalbot) - change to a different persistent session
22:01:44 <ais523> 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:02:05 <ais523> that's surely the wrong number
22:02:19 <ais523> 8 is for commands that only work as root
22:02:38 <fizzie> 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 <b_jonas> 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 <fizzie> Probably not all of those are actual dependencies, though.
22:03:08 <b_jonas> but not everything in section 8 are things you can invoke only as root
22:04:07 <b_jonas> they're administrative commands, but you can run many of them in an informational way as non-root
22:04:20 <HackEso> 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 <ais523> fizzie: gigabytes? wow
22:04:32 <b_jonas> these days you can run ping as non-root
22:04:41 <b_jonas> ok, that's a bad example, there's some historical reason there
22:04:44 -!- sprocklem has joined.
22:05:00 <ais523> 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 <fizzie> ais523: Well, it was planning to install Tcl/Tk, TeX Live, a pile of fonts, and a bunch of X11 stuff.
22:06:04 <fizzie> I guess it adds up. Especially TeX.
22:06:23 <ais523> try with --no-install-recommends
22:07:00 <ais523> (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 <b_jonas> fizzie: is there a package with a similar name that ends in -nox ?
22:07:05 <fizzie> 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 <b_jonas> 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 <b_jonas> it is a cross-reference to the shell command that's for some reason in the index of the info
22:09:57 <b_jonas> ``` /bin/sed -i '/^cd(8glibc/d' share/whatis
22:10:07 <HackEso> cd(1p) - change the working directory \ cd(8jevalbot) - change to a different persistent session
22:10:10 <HackEso> load(8jevalbot) - copy a persistent session to the current session
22:10:12 <HackEso> swapon(2) - start/stop swapping to file/device \ swapon(8) - enable/disable devices and files for paging and swapping
22:10:26 <HackEso> errno(3) - number of last error \ errno(3p) - error return value \ errno(3glibcv) - Checking for Errors
22:10:31 <fizzie> `` echo $'import numpy\nimport sympy\nprint("{} {}".format(sympy.__version__, numpy.__version__))' | python3
22:10:50 <fizzie> (I did install python3-numpy as well, even though it's only "recommended".)
22:11:24 <b_jonas> numpy is nice and lets you write esoteric programs that wouldn't be as easy in plain python
22:12:09 <HackEso> bf(1hackeso) - no description \ bf(1egobot) - no description \ bf(8fungot) - evaluate brainfuck program \ bf(8lambdabot) - evaluate brainfuck snippet
22:12:36 <HackEso> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
22:12:40 <fungot> Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ .
22:12:46 <ais523> @bf ++++++++[->++++++++<]>.
22:13:18 <ais523> I think all the bots should use section 1 for their commands
22:13:29 <b_jonas> ais523: I used 8 for builtin commands and 1 for user-defined
22:13:29 <HackEso> hoogle(8lambdabot) - search Haskell library by name or type
22:13:50 <ais523> arguably builtin commands should be in 2, although that would imply user-defined in 3
22:14:01 <b_jonas> 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 <ais523> lambdabot's feel like a 2 because they compose in the same way functions do
22:14:29 <b_jonas> ais523: no, they compose like unix utilities do, with pipes that transfer a byte stream
22:14:42 <b_jonas> and so do buubot commands, only the syntax to compose them is better
22:15:57 <b_jonas> 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 <b_jonas> but the primary way to compose them is through the byte stream outputs
22:16:46 <b_jonas> a single output and single input
22:17:07 <b_jonas> lambdabot and buubot ones don't take input
22:17:19 <b_jonas> so it's like when you compose shell commands with backticks I guess
22:17:46 <b_jonas> (without the strange part where the shell backticks can remove the trailing newline)
22:18:21 <b_jonas> but we can rename sections if you figure out some consistent way to name them
22:18:22 <HackEso> pl(8lambdabot) - convert expression to pointfree style
22:18:32 <ais523> was vaguely wondering if that was a shell command too
22:18:54 <b_jonas> it may be. not every shell command has a whatis
22:19:02 <HackEso> bash: line 0: type: pl: not found
22:21:11 <b_jonas> I was wrong, HackEso only seems to have one prolog implementation installed
22:21:37 <b_jonas> it doesn't have gnu prolog
22:22:14 <ais523> `! brachylog [_7,_3,_2,5,8]⊇.+0∧.w⊥
22:22:15 -!- AnotherTest has quit (Ping timeout: 264 seconds).
22:22:48 <ais523> err, I should probably have added newlines
22:22:55 <ais523> `! brachylog [_7,_3,_2,5,8]⊇.+0∧.ẉ⊥
22:23:35 <ais523> actually there is probably a neater way to write this
22:24:06 <ais523> `! brachylog [[_7,_3,_2,5,8],0]⟨⊇+⟩ẉ⊥
22:24:13 <b_jonas> what is this supposed to do?
22:24:51 <ais523> ⟨⊇+⟩ means "find a subset (⊇) whose sum (+) is", ẉ⊥ prints all solutions
22:25:01 <ais523> so it's solving the subset sum problem
22:25:06 <ais523> pretty inefficiently, fwiw
22:25:20 <ais523> 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 <ais523> hmm, I wonder why that hasn't returned yet, I suspect HackEso doesn't run Brachylog at all quickly
22:26:23 <ais523> (the actual subset sum problem instance is taken from Wikipedia)
22:28:40 <ais523> `! brachylog 100~{Ċṗᵐ+}w
22:29:20 <b_jonas> [ s#~{.(#~(0=[:+/(s=._7 _3 _2 5 8)&*)"1)#:}.i.2^5 NB. yeah, that's rather clumsy
22:29:24 <b_jonas> can probably be improved somewhat
22:29:34 <ais523> `! brachylog 100>ℕ~{Ċṗᵐ+}ẉ⊥
22:29:35 <HackEso> [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 <b_jonas> oh right, I should take subsets and add them, rather than multiply, since I have to do that for output anyway
22:29:49 <ais523> oh, I need a labelizer
22:29:56 <ais523> `! brachylog 100>ℕ≜~{Ċṗᵐ+}ẉ⊥
22:29:57 <HackEso> [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 <ais523> and should probably restrict to odd primes?
22:30:56 <ais523> `! brachylog 100>ℕ≜~{Ċṗᵐ¬{∋2∧}+}ẉ⊥
22:31:16 <ais523> I guess putting the constraint there blows up performance
22:31:42 <ais523> `! brachylog 100>ℕ≜~{Ċṗᵐ+}¬{∋2∧}ẉ⊥
22:31:43 <HackEso> 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 <ais523> `! brachylog 50>ℕ×₂≜~{Ċṗᵐ+}ẉ⊥
22:32:08 <HackEso> [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 <ais523> Brachylog really changed my view on programming
22:33:00 <b_jonas> [ >{.;_7 _3 _2 5 8([:<<#~0=+/)@#~#:}.i.2^5 NB. a bit nicer
22:33:20 <b_jonas> that's inefficient too, but straightforward
22:33:43 <b_jonas> the way it outputs the first solution could probably be improved
22:34:58 <b_jonas> ais523: hmm, I have a similar problem
22:36:07 <b_jonas> 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 <b_jonas> you must print no more than one way to write any one number
22:36:44 <b_jonas> the exact choice of triple doesn't matter when there's more than one way
22:36:57 <b_jonas> format shouldn't matter either
22:37:08 <ais523> how is a triangular number defined? a square number plus its square root divided by 2?
22:37:15 <b_jonas> you can find 63 = 3 + 15 + 45 or 63 = 6 + 36 + 21 but not both
22:38:47 <j-bot> 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 <ais523> `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+}ẉ⊥
22:39:17 <ais523> oh, I think this outputs multiple possibilities for each number, I forgot a !
22:39:25 <HackEso> [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 <ais523> `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+!}ẉ⊥
22:40:02 <ais523> also, Brachylog thinks -1 is a triangular number, I think? presumably (-2 × -1) ÷ 2
22:40:25 <ais523> `! brachylog 81>ℕ≜~{Ṫ{ℕA+₁×↙A/₂}ᵐ+!}ẉ⊥
22:40:36 <b_jonas> no, ((-2 × -1) ÷ 2) is 1, and -1 is not a triangular number
22:40:52 <j-bot> 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 <ais523> so there msut be a bug somewhere
22:40:54 <HackEso> [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:41:10 <b_jonas> are you writing the triangular number itself, or its index?
22:41:35 <ais523> the triplet of numbers that sum to the original, which is why I'm confused
22:41:40 <ais523> as [0,0,-1] doesn't sum to 0
22:42:11 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A/₂}ᵐ+}ẉ!⊥}
22:46:04 <ais523> `! brachylog {ℕA+₁×↙A/₂}ẉ⊥
22:46:27 <ais523> hmm, maybe HackEso won't cut off the infinite output correctly
22:46:35 <HackEso> 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:47:03 <ais523> perhaps the program just runs so slowly it doesn't reach 2?
22:47:39 <b_jonas> maybe it runs in the wrong order so it would need to take infinite steps before it reaches 2?
22:47:58 <b_jonas> like, it tries all sums of the form [0,0,(n choose 2)] before it tries [0,1,1]?
22:48:35 <b_jonas> that's just a guess, I don't really understand the brachylog code
22:49:26 <ais523> I think there may be an infinite loop in the constraint solver, yes
22:49:33 <ais523> runs on TIO suggest it goes into an infinite loop trying to decompose 2
23:03:45 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥}
23:03:48 <b_jonas> [ 1{": 81{.(<@{./.~{."1)/:~(,~+/)@>,{3#<2!1+i.15
23:04:15 <HackEso> [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 <ais523> 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 <ais523> although, some of those numbers don't look very triangular
23:04:43 <j-bot> 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 <b_jonas> those are probably indexes
23:05:30 <ais523> `! brachylog 81>ℕ≜{ẉ?~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥}
23:06:07 <ais523> actually maybe I just need another labelize
23:06:10 <HackEso> 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:07:06 <ais523> because the thing inside my map isn't a predicate, it's a function
23:07:58 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥}
23:08:14 -!- moei has quit (Quit: Leaving...).
23:08:24 <ais523> Brachylog is surprisingly bad at expressing arithmetic, syntactically
23:08:28 <HackEso> [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 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:09:11 <HackEso> [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 <ais523> I like the idea behind the language a lot, I'm less of a fan of the syntax though
23:10:32 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}{"~p "w₁}ᵐ!⊥}
23:10:39 <b_jonas> interesting, that doesn't consistently find the first or last solution in lex order or in colex order
23:10:51 <ais523> it's using a constraint solver
23:11:11 <ais523> in this case it's a finite domain solver
23:11:11 <b_jonas> I only exlucded two of those, not all four
23:11:29 <ais523> `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:12:00 <HackEso> [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 <ais523> there are a range of finite domain solver algorithms implemented in clpfd, I think Brachylog just uses the default
23:12:43 <ais523> `! brachylog 82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:12:44 <b_jonas> oh, so you're actually using a finite domain solver here, rather than just prolog nondeterminism?
23:13:19 <ais523> the ≜ is the interface between them, it runs the solver and converts all the solutions it finds to nondeterminism
23:13:33 <ais523> apart from that the two are separate
23:14:01 <ais523> 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 <b_jonas> `! brachylog 63{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w⊥}
23:15:20 <b_jonas> yeah, compile time is a bit slow
23:15:36 <b_jonas> or perhaps the time to load the brachylog compiler to the prolog environment is slow
23:15:57 <ais523> the Brachylog compilier is lightning-fast IME, so maybe it's the load time that hurts
23:16:15 <HackEso> [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 <ais523> that said, the ↙ is a bit of an awkward case in the parser so maybe that slows it down a bit
23:16:38 <b_jonas> well, that's the better case, because you can probably get swipl to precompile it
23:16:47 <b_jonas> and have the wrapper invoke the precompiled version
23:17:25 <b_jonas> using a ! to get only the first solution is nice
23:17:37 <ais523> `! brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:18:06 <ais523> 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 <b_jonas> `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:18:22 <ais523> because nearly all the code I wrote there will never run
23:18:38 <HackEso> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch [<output-file>] <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
23:18:45 <ais523> where's the repository?
23:19:09 <HackEso> https://hack.esolangs.org/repo/file/tip/ibin/brachylog
23:19:15 <b_jonas> `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}
23:19:39 <ais523> ah, https://hack.esolangs.org/repo/shortlog/tip
23:20:03 <ais523> 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 <b_jonas> ok, so it's not just slow because it's trying 81**4 possibilities
23:20:24 <ais523> my "test" which had a copy of the program after it that never ran was slow
23:20:28 <ais523> so the issue is in the compile or load somewhere
23:21:43 <ais523> 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 <b_jonas> maybe it tries every triplet of natural numbers, but does that very quickly?
23:22:40 <ais523> I'm talking about the program «"test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}»
23:22:42 <ais523> that's slow on HackEso
23:22:44 <b_jonas> maybe file system access on /tmp is slow?
23:22:54 <ais523> the stuff after the first ⊥ doesn't run at all, though
23:22:56 <b_jonas> how many opens does it do?
23:23:10 <ais523> I think just one to write the tempfile and one to read the tempfile but am not sure
23:23:12 <HackEso> tmpfs on /tmp type tmpfs (rw,relatime)
23:23:32 <ais523> that's in brachylog.pl; ibin/brachylog also writes a different tempfile for brachylog.pl to read
23:23:33 <b_jonas> nope, it's not a file system with silly options like syncing to rotating platter after every write
23:24:28 <b_jonas> 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 <ais523> 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 <b_jonas> the symptom was that open took a long time
23:28:05 <b_jonas> `! brachylog "h2rSh9Ttx5Qi"w
23:30:51 <ais523> were you just testing the timing?
23:31:20 <ais523> 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 <ais523> but I guess it doesn't hurt
23:33:21 <b_jonas> not for caching, but to avoid a mistake where I get "test" as output from an earlier invocation that took too long
23:33:42 <HackEso> test failed. HackEgo-JUnit is not available.
23:33:46 <HackEso> test(1) - check file types and compare values \ test(1p) - evaluate expression \ test(1hackeso) - no description
23:34:00 <b_jonas> test(1hackeso) is evil by the way
23:34:27 <ais523> ah, I see, test is actually a builtin command
23:34:54 <ais523> `` test -f /etc/passwd; echo $?
23:35:13 <ais523> heh, I guess /etc/passwd actually /doesn't/ exist on HackEgo
23:35:24 <ais523> `` test -f ibin/brachylog; echo $?
23:36:41 <b_jonas> so you usually don't invoke /hackenv/bin/test , luckily
23:37:05 <HackEso> /bin/test: cannot open `/bin/test' (No such file or directory)
23:37:11 <ais523> `` file /hackenv/bin/test
23:37:12 <HackEso> /hackenv/bin/test: ASCII text
23:37:16 <HackEso> 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 <ais523> `paste /hackenv/bin/test
23:37:22 <HackEso> https://hack.esolangs.org/repo/file/tip/bin/test
23:38:02 <ais523> I think a segfault is probably the wrong error for that? it stands out too much
23:38:07 -!- ais523 has quit (Quit: quit).
23:50:52 -!- Melvar has quit (Ping timeout: 245 seconds).
23:52:37 -!- Melvar has joined.