2019-07-01: 00:02:50 -!- b_jonas has quit (Quit: leaving). 00:27:24 How to reset the file system journal? I get error messages such as "JBD2: Spotted dirty metadata buffer (dev = sda3, blocknr = 0). There's a risk of filesystem corruption in case of system crash." Will resetting the journal fix this error? The filesystem is working OK despite the error message. 00:36:06 (Also, can I reset the journal without losing data?) 01:12:21 Silly syntax question: Is there a language that uses sigils for types? 01:12:40 how do you define a sigil 01:13:01 when people complained about Rust having ~T and @T and &T they usually called 'em sigils 01:13:03 Well, I mean any syntactic marker other than uppercase. 01:13:05 and &T still exists 01:13:15 and C++ has it too 01:13:16 Oh, I mean marking that something is a type syntactically. 01:13:19 ah 01:13:35 i don't know 01:13:54 kmc: I used to think that your assessment of C++ as an esolang was a bit silly but nowadays I mostly think it's just true. 01:14:30 (I mean, I used to think it was slightly true and somewhat silly. But now I think it's much more clearly true.) 01:16:43 what changed your mind? 01:17:49 Something like realizing what a scow C++ is and how it got to be that way. 01:17:58 -!- arseniiv_ has quit (Ping timeout: 246 seconds). 01:18:15 BASIC uses suffixes for types (although you can also use AS to specify types), and so does OAA (a compiler that targets the OASYS text adventure games VM) 01:19:00 My story for things like templates is, originally they added some simple template features that weren't that terrible, just a replacement for C macro templates or something. 01:19:11 like A$ for a string? 01:19:41 shachaf: SFINAE is maybe the prototypical example in my mind of a feature that turned out to be much more useful than intended, in a bizarre way 01:19:50 Then because of the (legitimate!) latent demand for metaprogramming features, people started doing complicated things with templates. 01:19:51 Yes, A$ names a string variable in BASIC. 01:20:05 Haskell typeclasses are sort of like that too but the unanticipated applications of typeclasses are mostly fairly reasonable to use 01:20:27 The C++ committee saw people doing these things, and instead of adding reasonable metaprogramming features, they decided to add tempalte features to allow for even more ridiculous metaprogramming nonsense. 01:20:36 Yep, things like SFINAE. 01:20:39 pretty much 01:20:47 (In OAA, not only are there suffixes for data types, but also prefixes; for example ,A$ means a local string variable, and %A$ is a global string variable, and &A$ is a method that returns a string.) 01:20:49 otoh, it means that C++ metaprogramming is much more type-aware than many languages' systems 01:20:51 And now everyone is stuck in this absurd local optimum which is so far from anything reasonable. 01:21:08 the ability to do compile-time dispatch on various properties of a type is very powerful 01:21:12 and very useful in a systems language 01:21:23 to enable optimizations, etc 01:21:39 there is probably a way to design a sensible type-aware metaprogramming system 01:21:41 but 01:21:47 Anyway there's the esolang attitude of "given these ridiculous constraints, how can I accomplish all sorts of things?" that leads people to enjoy template metaprogramming. 01:21:59 it sounds like a hard problem to me 01:22:00 It's not about doing good engineering but about solving fun puzzles. 01:22:06 macro systems are already hard enough and they are not type-aware 01:22:10 (for the most part) 01:22:25 C++ templates can't even be parsed without instantiating them. It's so bad. 01:22:27 and I don't just mean "knowing the types of generated expressions" but things like type traits. 01:22:30 this is true 01:22:34 the syntax is wretched 01:22:44 By the way I agree that pretty much the same thing happened in Haskell. 01:22:47 but as weird as templates are 01:22:55 they have some essentially unique capabilities 01:23:04 There were some reasonable type system features and then people were all about doing things in the type system and writing in this silly Prolog variant. 01:23:14 that are very useful in C++'s niche 01:23:16 (Meanwhile C++ people are writing in this silly ML variant. Golly.) 01:23:17 I had the other idea (I mentioned before), types with characteristics, and the values of characteristics of types can be macros; this can be used for type-aware metaprogramming. 01:23:18 yes that is true 01:24:15 I suspect macros or code generation are much better than a lot of uses of C++ templates. 01:24:25 many of them 01:24:31 (Such type-aware metaprogramming actually becomes mandatory to get it to work at all, although most of it is put in standard header files (both system-dependent and system-independent), so you normally do not need to deal with it.) 01:24:31 but many others can't be done with code generation 01:24:32 Did you know edwardk once implemented IEEE floating point arithmetic in C++ templates to generate constants or something? 01:24:55 e.g. the ability to provide one of multiple implementations of a generic function depending on some property of the type(s) it is instantiated with. 01:25:04 which, again, is really useful in high performance systems code 01:25:11 This is 100% about solving fun puzzles rather than solving actual problems. 01:25:40 I think static dispatch based on types is a reasonable feature but C++ has such a bad implementation of it. 01:25:43 with enough templates you can compile straight into c-like code that the compiler can actually digest... 01:26:11 Another way that C++ is ridiculous it that it pretty much requires an optimizer to generate reasonable code. 01:26:20 C code is pretty much fine with no optimizations. 01:26:41 I wonder if maybe metalanguages (whether designed or evolved) are the wrong way to do things, and instead we should have languages with no meta/object-level distinction, which have powerful introspection facilities, and compile-time partial evaluation 01:26:53 C++ already has powerful constexpr too 01:27:02 this would avoid the need for both 01:27:27 a simplistic way to put this is to have eval as a constexpr function 01:27:36 which wouldn't necessarily be present at runtime 01:27:39 i mean, probably wouldn't be 01:27:57 Zig's "comptime" seems pretty reasonable to me and it's a much simpler language than C++. 01:28:10 shachaf: re optimizations, while that is inconvenient, it is not a design flaw of C++ but rather a consequence of the problem it's trying to solve, which is much different from the problem C is trying to solve 01:28:15 C is a low-abstraction language 01:28:17 kmc: I think that is good for interpreted languages, but programming languages that compile code into native code I think will need the ability to do separate metaprogramming (although metaprogramming could be done using the same programming language as the mainly compiled code, if needed). 01:28:26 C++ is a very high-abstraction language which nevertheless tries to produce C-level performance 01:28:37 this means a huge need for optimizing out those abstractions 01:28:40 I think it's clearly true that you should be able to run arbitrary code in the same language at compiletime (though I could think of some arguments against it, I guess). 01:28:41 it's the same in Rust 01:28:48 even though Rust is less insane than C++ in many ways 01:29:51 I think if you had macros or something generating reasonable C-style code instead of templates, you could get much better performance for abstractions. 01:29:55 zzo38: I am thinking in terms of Futamura projections, where a compiler is a partial evaluator for an interpreter 01:30:07 Anyway I'm not opposed to optimization, I just think C++ has a pretty bad attitude toward it. 01:30:18 . o O ( Futurama projections. ) 01:30:22 shachaf: that wouldn't allow you to (for example) turn chains of iterator HOFs into flat loops 01:30:27 which is something both C++ and Rust can do 01:30:34 The C++ coroutine proposal says that coroutines sometimes need to allocate but they expect that an investment of $x million into research-level optimizations will make that not a problem. 01:30:35 int-e: good news, everyone! 01:30:41 lol 01:31:19 By the way I think my current opinion on optimizations is that they should never change asymptotic performance of code, only constant factors. 01:32:06 This means that e.g. tail-call elimination is bad -- if you want tail calls to turn into jumps, you should have a language construct that guarantees a jump and fails if it's not possible (because of a destructor or whatever). 01:32:19 ?! 01:32:19 Maybe you meant: v @ ? . 01:32:38 So you're looking at all the resources, including stack usage, here? 01:32:52 I think so? 01:33:11 Of course this depends on your goal. If you don't care about predictable software it probably matters less. 01:33:15 I was going to agree, but tail call optimization is so benign... and hard to get wrong... I want it. 01:33:22 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 01:33:35 I want it too! So there should be some kind of language construct that guarantees it. 01:34:24 I suspect tail recursion is just in a language like C or C++, though. Much better to write while (true). 01:34:39 Tail call elimination is more useful for mutually recursive things like parsers. 01:35:38 there's a proposal for Rust that's been kicking around for a long time 01:35:41 for a syntax like "become f(x)" 01:35:50 Yes, that's the kind of thing I mean. 01:35:53 this would be a tail call to f(x), but also runs destructors /before/ the call 01:36:00 so it has different semantics from a normal call 01:36:02 (Assuming it means what it looks like, I haven't seen the proposal.) 01:36:10 Oh, not what I was thinking of, but that works too. 01:36:14 which is why it can't be done as an optimization 01:36:18 -!- Lord_of_Life has joined. 01:36:20 and that's probably wise 01:36:27 LLVM allows explicitly specifying tail calls or not tail calls. 01:36:39 That seems like a pretty strange feature to me. 01:36:41 in a lot of cases, it's fine to run destructors before the tail call, and of course anything moved into the tail call isn't destroyed 01:37:55 (Since my idea of the program language is that you can use all features of LLVM, this means that specifying explicitly the tail call or not tail calls is possible to do.) 01:38:42 since Rust has memory safety by default, destroying stuff before the tail call isn't going to get you in trouble wrt passing a pointer to that stuff 01:39:31 kmc: By the way, I was thinking about something you said a while ago, about the benefits of dynamically typed programming languages. 01:39:37 (and that extends to things like RAII lock objects too, because the only way to access the thing protected by a lock is through the lock object or a reference whose lifetime is tied to the lock object) 01:39:41 (which is a really cool design) 01:40:24 You gave some examples that I don't remember, but one of them was something like "copy all the fields of object x into object y that has a different type". 01:41:09 I think something like that is much better covered with some kind of dynamic-ish compiletime code that generates statically-typed runtime code to actually copy the fields. 01:42:35 There's no reason you couldn't write "for each field of object x", it just has to be a compiletime loop rather than a runtime loop. 01:42:47 I feel like this is true for a lot of the benefits of dynamically-typed languages. 01:42:47 yes but should we even have such a distinction 01:42:56 or write a runtime loop and rely on the compiler to optimize it 01:43:04 possibly with an annotation to throw a compiler error if it can't 01:43:08 A runtime loop that uses reflection? 01:43:11 yeah 01:43:29 I'm a bit skeptical. 01:43:34 that's what i expected 01:43:44 based on your opinions above re: C++'s reliance on optimization 01:43:45 If nothing else, I want it to be a type error at compiletime if one of the fields in x doesn't exist in y. 01:43:59 that can be arranged 01:44:07 Oh, that argument isn't on performance grounds. 01:44:09 it would be a "runtime error" in the constexpr engine 01:44:15 which is a compile-time error 01:44:26 OK, so that sounds like the right thing? 01:44:30 and again, you can say such and such function must evaluate out at compile time 01:44:37 so you won't get any surprise runtime errors 01:44:43 but semantically, you only have object-level code and no meta-code 01:44:45 idk 01:44:50 I'm happy with writing "compiletime for (name, type : fields(x)) { ... }" 01:44:55 this conversation is very interesting but i think i will go do other things 01:44:57 <3 01:45:27 It seems kind of odd to require that thing to always be interpretable with runtime semantics, since there are all sorts of things the compiler has access to that the running program might not. 01:45:33 sgtm 01:48:00 kmc: You probably didn't see my conversation about arguments the other but I have a bunch of ideas of things along those lines that could exist easily at compiletime but don't make much sense at runtime. 01:48:57 I don't think macros that operate on an AST really make sense at runtime, but you could easily have them at compiletime (with the same language). 01:50:10 `? cats 01:50:13 Cats are cool, but should be illegal. 01:50:55 Yes, and is what I intended you can have macros that operate on the AST at compile time only 01:52:54 ASTs aren't the only kind of value I'm thinking of, though. 02:03:59 Yes, there are other stuff that you can do too, such as types and type characteristics 02:15:15 fexprs 02:15:18 fexprs are love 02:15:23 fexprs are you 02:19:05 [[Don't]] M https://esolangs.org/w/index.php?diff=63815&oldid=63813 * A * (+66) 02:24:05 fexpr is you 02:32:42 In general there are many language features you can use to do compiletime-ish things at runtime. 02:33:53 Often they have different semantics, and almost always different performance, so I'm not sure whether always making the code look identical is particularly valuable. 02:34:33 Ironically C++ is quite bad at a simple thing I want to be able to do, which is to pass an argument either at compiletime when it's known or at runtime or at runtime when it's not. 02:36:22 (It's ironic because I think that kind of thing is nominally what C++ is trying to accomplish.) 02:39:36 well that's one reason why people rely so much on inlining 02:39:39 but it's not ideal, yes 02:40:46 Well, I'm also thinking of the variant where something is either a field on a struct or a value known at compiletime. 02:41:05 E.g. the size of an array. 02:41:43 Even a lot of inlining won't prevent the value from being needlessly stored in memory. 02:41:48 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63816&oldid=63803 * A * (-19) I have to make edits every day. 02:43:44 maybe i'll cook some delicious food 02:55:15 [[User talk:A]] https://esolangs.org/w/index.php?diff=63817&oldid=63816 * A * (+2823) /* Write some nonsense here */ 03:10:09 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63818&oldid=63817 * A * (-332) /* The magic of H */ 03:13:38 In my NNTP client software I put in the following SQL code: INSERT INTO `NEWSGROUPS`(`NAME`, `LAST`) SELECT `NAME`, `LAST` FROM `_UPDATEGROUPS` WHERE 1 ON CONFLICT(`NAME`) DO UPDATE SET `LAST` = EXCLUDED.`LAST`; the conflict is actually guaranteed; it will never add new rows to the table. Is this the best way or is there a better way to do what I am trying to do here? 03:15:26 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63819&oldid=63818 * A * (-209) /* H */ 03:23:27 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63820&oldid=63819 * A * (+1189) /* H Reference */ 03:24:56 [[User talk:A]] https://esolangs.org/w/index.php?diff=63821&oldid=63820 * A * (+15) /* Adding if statements and functions without adding any keywords */ 03:32:38 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63822&oldid=63821 * A * (-71) /* H Quine via adding one operator */ 04:03:25 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63823&oldid=63822 * A * (+166) /* H Quine via adding one operator */ 04:12:37 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63824&oldid=63823 * A * (+192) /* H Quine via adding one operator */ 04:16:02 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63825&oldid=63824 * A * (+18) /* H Quine via adding one operator */ 04:45:56 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63826&oldid=63825 * A * (+73) /* H Quine via adding one operator */ 05:10:24 shachaf: http://www.worldinhome.com/what-is-language-c/ 05:10:27 "In an effort to keep up the movability of each the C and C++ languages, the Yankee National Standards Institute (ANSI) developed a type of consistency for C and C++ programming." 05:20:21 i'm cooking delicious food and it's going to be tg 05:25:14 -!- sprocklem has joined. 05:39:22 ooh, what is it 05:42:31 some nonsense with onions and tomatoes and rice and a trillion spices 05:47:10 that sounds nice 05:48:09 it's going to be so good 05:59:52 -!- xkapastel has joined. 06:07:52 I hope you enjoy it :) 06:08:29 it is good but i think i used too much water for the rice 06:08:55 i was going to award myself a billion points for this dish but i think i'm only going to give myself about 2 million 06:09:05 it's still tg 06:09:57 I'm tired from a busy weekend and I'm going to sleep 06:10:09 I hope to earn a billion sleep points 06:10:16 good night 06:10:39 you too :) 07:49:13 -!- APic has quit (Ping timeout: 245 seconds). 08:09:25 -!- mniip has quit (Read error: Connection reset by peer). 08:11:27 -!- mniip has joined. 08:14:07 -!- AnotherTest has joined. 08:55:34 -!- salpynx has joined. 09:25:27 -!- arseniiv_ has joined. 09:27:56 -!- arseniiv_ has changed nick to arseniiv. 09:28:39 @metar UWUU 09:28:40 UWUU 010900Z 32006MPS 9999 OVC011 15/14 Q1003 R32L/0///60 NOSIG 09:29:05 what kind of summer is THAT 09:29:59 it seems the Earth tilted overnight in an unfortunate fashion and I am now living in a polar region 09:58:48 -!- xkapastel has quit (Quit: Connection closed for inactivity). 10:09:52 shachaf : "This means that e.g. tail-call elimination is bad" -- so you want "proper tail recursion", rather than TCO ? 10:11:27 Do I? 10:11:36 What is "proper tail recursion"? 10:13:01 imho, it's somewhat of a misnomer, since it's not about recursion, per se 10:14:01 it's a language property in Scheme, that an implementation is to be able to handle an unbounded number of active tail calls, in bounded space (so it's about operational semantics) 10:14:23 doesn't mandate a particular way to implement that 10:14:59 the point is that it's not an optimization, something which an implementation may or may not choose to do. it's something you can rely on 10:16:58 also, given that there's a relatively simple lexical (conservative) check you can do in your head to check if a call is in tail position wrt to some wrapping context, it's something you can practically use 10:19:05 As I mentioned, I don't think tail recursion is very important, at least in a language like C -- you can just write while (true). 10:19:41 I think I'm fine with the "foo() { return bar(); }" always being two stack frames. Or it can always be one stack frame, as long as it's predictable. 10:20:15 In a language like C++, "foo() { Thing x; return bar(); }" could run the destructor for x after bar(), in which case it looks like a tail call but isn't. 10:20:42 iirc MIT Scheme (?) keeps around the last hundred or so calls to (distinct) procedures, for debugging purposes, which is fine. and Chicken produces C code which never returns normally (using CPS. instead the "stack" is GCed and compacted, when full, iirc. so it's basically a heap) 10:21:00 I was suggesting a version of "return" where it's an error if it can't be implemented with a jump instead of a call. 10:21:32 i agree about predictability 10:21:55 * ski nods 10:22:24 I have the same opinion about things like fusion in Haskell. 10:22:48 yes 10:23:12 I don't really like "best-effort" optimizations that people need to rely on. If you want your thing to be compiled into a particular thing, you should express it in terms of something that guarantees it. 10:24:23 my ideas about "unboxed variants" (by which i don't mean putting the tag in a separate register) are going in the direction of having the system complain statically if you don't get the expected fusion / virtual data structures you expect 10:24:34 aye 10:25:35 What are your ideas about "unboxed variants"? 10:25:55 I can't remember whether you told me once when I was all about wanting unboxed sums in GHC. 10:27:26 "Multi-return function call" by Olin Shivers in 2004-09,2006-0[79] at , which is about multiple alternative continuations, and a notion of "semi-tail calls" 10:28:01 Right, I remember you were saying something about multiple continuations. 10:28:37 i had an example (translated from that paper into, imho, more suitable terms) in pseudo-Haskell, on .. 10:29:03 Can't trust anyone. 10:29:21 * ski smiles 10:29:27 There was one paste I would refer to every couple of years on hpaste.org, but fortunately I downloaded a copy before it disappeared. 10:29:45 Oh, maybe sometime you can help me think about efficient implementation of coroutines. I feel like almost no one implements them in the right way. 10:30:57 imagine if you had a function with e.g. return type `Either Integer [Integer]'. it's common for a caller to immediately do a `case' analysis on the result (or else just pass the result on, for its caller to check, &c.) 10:31:36 In that case you can pass continuations, right. 10:31:58 Isn't the cost of an indirect jump instead of a call-return and conditional jump pretty high? 10:31:59 so the idea is that we take the continuation of the call, which consists of this `case' (with some wrapping context), and we unbox it, passing the branches as separate, alternative, return points 10:34:08 well, if you're doing recursive loops, it can commonly be the case that you'd just pass on most of the return points, unchanged (that'd be a semi-tail call). and so if you return via such a continuation, you'd skip most of the activation frames which would otherwise have to interpret the tag 10:34:43 (so this seems a little bit related to codensity, yes) 10:35:19 but it would remain to be seen how well it would work out in practice, yes 10:35:52 [[Special:Log/upload]] upload * Cortex * uploaded "[[File:Cheese Dodecahedron.jpeg]]": Cheese Dodecahedron. 10:36:26 Hmm, what would the code for that look like? 10:36:44 I'm imagining something where the alternative would also be a lot of tail calls with no case analysis except at the end. 10:36:55 i also have a feeling that one could involve composable continuations here, to get "unboxed lists" (e.g.), in which the list structure is virtual. iow we'd get a kind of fusion, with static error if we don't get the fusion we expect 10:37:04 [[User:Cortex/Cheese Dodecahedron]] N https://esolangs.org/w/index.php?oldid=63828 * Cortex * (+59) Created page with "[[File:Cheese Dodecahedron.jpeg|thumb|Cheese Dodecahedron]]" 10:38:15 -!- brett-soric has joined. 10:42:29 i'm imagining using ordinary pattern-matching syntax, e.g. with `case', but on values of a type of another kind. there'd possibly need to be some extra syntax for passing on the same alternative continuation 10:44:03 if you have a call `case foo ... of Left# x -> ..x..; Right# y -> Right# y', the intention is to pass on the `Right#' continuation to `foo ...', not eta expanding it. so it would perhaps be nice to have some more obvious way to indicate that 10:45:38 (if one could "use function extensionality" to write that branch simply as `Right# -> Right#', then that might work nicely) 10:46:48 i'm not really sure of what situation with "lot of tail calls with no case analysis except at the end" you were imagining ? 10:49:07 (btw, instead of `Either# Integer [Integer]', you can use `forall o. (Integer -> o) -> ([Integer] -> o) -> o'. but then you have to use explicit CPS. and perhaps not allowing them to be just any old function would allow more efficient implementation ?) 10:50:42 oh, and i should probably try to look more into different implementations of coroutines. what would you say is better and worse ways that have been used ? 10:57:22 `? password 10:57:23 The password of the month has been erroneously sent to the NSA. We apologize for the inconvenience. 10:57:40 . o O ( The password of the month is highly controversial. ) 11:00:19 ski: I have wondered about something related to this, now that I think of it, where you pass multiple return addresses to a function. 11:00:29 I don't remember the context right now, though. 11:01:50 Let me see. 11:02:31 I'm not sure I can say everything about coroutines, but I can say a bit. This is in the context of a C-like language. 11:03:37 One approach, of course, is to allocate a stack for each coroutine, and switch between them with a function call that saves and restores a few registers (including the stack pointer and return address). 11:04:09 This is nice because you can just call any old function and even a nested function might switch away from the coroutine and then switch back later. 11:04:39 (For example asynchronous I/O is one application of this -- you can make functions that look just like calls that block a thread but they're just blocking the coroutine -- functioning as a userspace thread.) 11:06:08 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63829&oldid=63826 * A * (+136) /* H Reference */ 11:09:52 This has a few downsides, mostly related to this being an unexpected use of the stack pointer. 11:10:35 You have to allocate some amount of stack space up-front, and the compiler and non-coroutine-aware functions have no reason to be sparing with it. 11:12:18 Worse, if you have a lot of coroutines, every time you do a context switch, your stack probably won't be in the cache. If you call some function that uses a bunch of stack space that doesn't need to be saved between context switches, that'll be a bunch of unnecessary cache misses. 11:17:47 Does that seem reasonable? 11:18:58 * ski nods 11:23:03 [[User talk:A]] M https://esolangs.org/w/index.php?diff=63830&oldid=63829 * A * (+43) 11:24:10 [[User:A/H spec]] N https://esolangs.org/w/index.php?oldid=63831 * A * (+3212) Created page with "== H Reference== Credits to [https://codegolf.meta.stackexchange.com/questions/2140/sandbox-for-proposed-challenges/17827#17827 Programming Puzzles and Code Golf StackExchange..." 11:24:12 [[User talk:A]] https://esolangs.org/w/index.php?diff=63832&oldid=63830 * A * (-3213) 11:24:20 Oh, you were still here. 11:25:05 So the thing a coroutine does, of course, is implement a state machine, where the state is represented in the stack. 11:26:12 So you might implement it yourself manually -- struct Coroutine { enum State state; int x; char y; bool z; }; or something. 11:26:30 And the question is how to get the compiler to generate that for you. 11:26:55 Then your program can keep using the regular stack for regular things, and only use the "coroutine stack" for things that explicitly need to be saved between calls. 11:27:34 In fact the compiler can probably generate something more efficient than that struct, because it can do standard liveness analysis and allocate space in the state struct better. 11:28:22 -!- brett-soric has left. 11:28:28 So it might look more like struct Coroutine { enum State state; char buf[REIFIED_STACK_SIZE]; };, where the compiler allocates space out of buf. 11:28:58 Another thing is that "enum State" could just be an instruction pointer. 11:29:21 That seems like the sort of thing you'd want. Right? 11:29:41 hm, i suppose i'm not following how this state machine thing connects to the "pass the baton" view of coroutines ? 11:30:47 A concrete example would be useful here. 11:31:03 What do you mean by "pass the baton"? 11:31:14 (I mean a concrete example from me, of course.) 11:35:50 [[Esolang:Community portal]] M https://esolangs.org/w/index.php?diff=63833&oldid=58895 * A * (-4) "PPCG" is not called that anymore... I can only find this reference. 11:36:08 @time 11:36:10 Local time for shachaf is Mon Jul 1 04:36:08 2019 11:36:19 I think I'll go to sleep and say more later. 11:36:23 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63834&oldid=63831 * A * (-4) 11:36:41 i mean instead of having a caller and a callee, and the caller calls the callee, possibly passing some parameters, and the callee eventually returns some results to whatever caller called it -- so that the caller "knows" the callee, but not vice versa, and also the callee is "subordinate" to the caller, so that there's a fairly assymetric relationship 11:37:44 you'd have two (or more) coroutines which execute for a bit, and then pass on information (and control, the "baton") to the other coroutine, which then finds itself in a more symmetrical relation to the first one 11:39:18 Right, there are at least two sorts of models of coroutines, one which is more like userspace threads, and one where they activate each other explicitly. 11:39:41 I'm not quite sure whether they need to be treated differently or not. 11:40:20 But I think either approach I mentioned should work for either one? 11:40:38 So far what I said is really just about how to store the state. 11:40:41 yea, it's not really clear to me either 11:40:57 i didn't really follow the second approach 11:41:49 Because I was very vague about it, is why. 11:42:25 if you need to sleep, i probably shouldn't be keeping you up 11:42:38 I need a few concrete examples of the different styles to explain this well, and I don't have any. 11:42:46 * ski nods 11:42:54 Let's say you have Python-style generators as another (?) sort of style. 11:43:35 foo() { for (int i = 0; i < 10; i++) { yield(i); } } 11:43:47 Hmm, I'll make it a bit more complicated. 11:44:16 sortof like a lazy list, or backtracking a la Prolog, i suppose (i don't know enough details of quirks and limitations of Python-style generators to compare well) 11:44:23 foo() { for (int i = 0; i < 10; i++) yield(i); for (int j = 0; j < 5; j++) yield(j); } 11:44:29 Oh, then maybe it's not a great example. :-) 11:44:38 But you can see easily enough what that does. 11:44:42 yes 11:44:51 To make it work in the framework above, you can imagine something like this: 11:45:45 enum State { ONE, TWO, DONE }; struct Coroutine { enum State state; int i; int j; }; 11:46:13 init_coroutine(struct Coroutine *c) { c->state = ONE; c->i = 0; } 11:47:40 int step_coroutine(struct Coroutine *c) { int v; switch (c->state) { case ONE: v = c->i++; if (c->i == 10) { c->state = TWO; }; break; case TWO: v = c->j++; if (c->j == 5) { c->state = DONE: }; break; default: assert(0); }; return v; } 11:48:17 Oh, I forgot, the c->i == 10 case should also set j to 0. (And if this was implemented more efficiently they'd be stored in the same memory.) 11:48:34 This is an extremely boring contrived case, I should come up with a realistic one. 11:50:44 i think i was thinking of a similar example (`(++)'), when i was playing with refactoring `[a]' to `forall o. (exists s. (s,s -> o,s -> a -> s)) -> o' 11:53:46 -!- salpynx has quit (Remote host closed the connection). 11:58:17 OK, I'll really go to sleep now. 11:59:14 good night, pleasant dreams 12:00:54 kmc probably racked up 600 million sleep points by now 12:00:56 i'm so far behind 12:09:55 -!- APic has joined. 12:15:25 -!- mniip has quit (Read error: Connection reset by peer). 12:16:40 -!- mniip has joined. 12:31:00 I'm racking them up right now 12:39:38 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63835&oldid=63834 * A * (-1) /* H Quine via adding one operator */ 12:41:01 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63836&oldid=63835 * A * (-188) /* H Quine via adding one operator */ 12:56:09 -!- arseniiv_ has joined. 12:59:13 -!- arseniiv has quit (Ping timeout: 245 seconds). 13:03:40 -!- xkapastel has joined. 13:21:29 [[ThisIsTheFoxe]] N https://esolangs.org/w/index.php?oldid=63837 * ThisIsTheFoxe * (+77) can I redirect a page like that? .-. 13:22:49 [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=63838&oldid=63786 * ThisIsTheFoxe * (-2) style change 13:24:18 [[ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=63839&oldid=63837 * ThisIsTheFoxe * (-15) redirect allowed? .-. 13:25:13 [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=63840&oldid=63838 * ThisIsTheFoxe * (+1) /* DubDubMachine */ 13:28:02 [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=63841&oldid=63840 * ThisIsTheFoxe * (+180) about me .-. 13:28:23 [[User:ThisIsTheFoxe]] M https://esolangs.org/w/index.php?diff=63842&oldid=63841 * ThisIsTheFoxe * (-4) /* About Me */ semantics .-. 13:32:35 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=63843&oldid=63769 * ThisIsTheFoxe * (-10) Updated my signature 13:33:48 [[ThisIsTheFoxe]] https://esolangs.org/w/index.php?diff=63844&oldid=63839 * ThisIsTheFoxe * (-62) I am stupid. Pls `rm this.page` 13:34:19 -!- Lord_of_Life_ has joined. 13:35:27 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:35:32 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:38:23 [[ThisIsTheFoxe]] https://esolangs.org/w/index.php?diff=63845&oldid=63844 * ThisIsTheFoxe * (+12) 13:41:11 [[ThisIsTheFoxe]] https://esolangs.org/w/index.php?diff=63846&oldid=63845 * ThisIsTheFoxe * (+54) pls dilet dis 13:55:46 [[L33t]] https://esolangs.org/w/index.php?diff=63847&oldid=30840 * ThisIsTheFoxe * (+4577) added a few examples 13:57:38 [[L33t]] https://esolangs.org/w/index.php?diff=63848&oldid=63847 * ThisIsTheFoxe * (+285) /* Fibbonacci */ 13:58:53 . o O ( poor ais523 ) 14:05:42 [[DubDubMachine]] https://esolangs.org/w/index.php?diff=63849&oldid=63791 * ThisIsTheFoxe * (-44) /* Examples */ 14:06:19 [[DubDubMachine]] M https://esolangs.org/w/index.php?diff=63850&oldid=63849 * ThisIsTheFoxe * (+2) finished cat program 14:30:29 [[DubDubMachine]] https://esolangs.org/w/index.php?diff=63851&oldid=63850 * ThisIsTheFoxe * (+293) Added more examples 14:32:08 [[DubDubMachine]] M https://esolangs.org/w/index.php?diff=63852&oldid=63851 * ThisIsTheFoxe * (+12) /* Cat program */ 14:43:58 how do you think, is it possible to build an arbitratry tree′ in Punctree? 14:44:56 -!- arseniiv_ has changed nick to arseniiv. 14:59:05 arseniiv: _ + ~ should be enough to build an arbitrary context? 15:00:01 (Would you mind terribly if I replaced all "tree'" by "context"?) 15:00:12 no, I wouldn’t 15:01:31 hm I seemed to have a time to forget full semantics of + 15:01:50 maybe yes, then 15:12:23 arseniiv: Hmm, do you intend to treat 2 t t' as a zipper? (I think not.) 15:13:18 (i.e., a pair where the second component is a context) 15:13:43 int-e: no, I didn’t intent 15:13:56 though I don’t know if I’ll change my mind :D 15:14:13 s/intent/intend 15:15:07 I mean I'm going over the whole text right now anyway... so I'll change that u != _ to u = 2 t' t there. 15:15:36 (I'm only up to "In this language there are no trees [...]"...) 15:15:39 where specifically? 15:17:35 arseniiv: I'd hope that text snippet is unique? It's at the start of the paragraph. 15:17:49 In this language there are no trees, but remember that ''u′'' = 2 ''t′'' ''t'' is a context, and a zipper is a pair isomorphic to ''u''. So further we’ll treat ''u′'' = 2 ''t′'' ''t'' as a zipper (''t′'', ''t''), too. 15:17:57 I didn’t find it :D 15:18:00 ah, that one 15:19:21 I was searching the wrong thing 15:19:52 you are right 15:20:30 don’t know why I overgeneralized it that time 15:21:28 [[Punctree]] M https://esolangs.org/w/index.php?diff=63853&oldid=63814 * Arseniiv * (+13) /* Values */ degeneralization 15:23:49 aaaargh 15:25:53 arseniiv: why why why did you edit when I announced that I was editing... 15:26:58 [[Punctree]] https://esolangs.org/w/index.php?diff=63854&oldid=63853 * Int-e * (+90) Main change: tree' --> context. But I did some proof-reading as well. 15:27:12 int-e: I thought you hadn’t yet started 15:27:15 arseniiv: (mediawiki is terrible at merging) 15:27:37 sorry :) 15:27:53 anyway, there you go... please review, and feel free to revert if you disagree 15:28:45 only if to check what proofreading entailed 15:29:58 Ah. Θ ::= T | T′ is wrong now. But I'll wait for you. 15:36:49 i think it’s all good, thank you. BTW I do think “context” is actually easier to read. Though originally I treated π₁ and π₂ as solely tree operations, maybe placing α, β there makes a better note that they are no good for a context 15:37:15 arseniiv: And sorry for that outburst... it was mostly theatrical, but I'm not sure whether IRC carried that part of the message. 15:37:37 int-e: which one? 15:37:44 " aaaargh" 15:38:15 [[Punctree]] M https://esolangs.org/w/index.php?diff=63855&oldid=63854 * Int-e * (-2) /* Values */ fixup: T -> C 15:38:27 esowiki: wanna learn unicode? 15:38:28 I might not notice it for what it is. Ah, that one. No, it’s totally okay 15:39:47 it was fun when esowiki mentioned edits 15:40:21 now I feel like it just can’t find those characters in time like me now 15:41:33 Tifinagh letters are nice 15:42:52 like you’re in a dream and trying to read some latin/cyrillic/greek text and then you notice it’s all not quite right 15:43:14 I mostly don't bother with Unicode. I'd need to investigate X11 input methods... I played around with scim ages ago but never grew used to it, and the fact that the behavior depends on the toolkit was annoying. 15:43:45 When I do use Unicode I use gucharmap. So it's *very* slow and tedious. 15:44:11 (why do I use Windows charmap at all? There are better programs to search characters, with better name search even) 15:44:31 oh, a Windows one is at least fast 15:44:50 though maybe when using a pretty small font 15:46:11 -!- Lord_of_Life has quit (Excess Flood). 15:46:33 usually I input characters I may need with AutoHotkey, but I hadn’t bothered adding that reversed F to the script 15:47:27 -!- Lord_of_Life has joined. 15:48:31 here it is, finally: Ⅎ — and no one needs it now 16:07:08 -!- MDude has joined. 16:09:18 arseniiv: "bars are invisible" ... if we have ... | x | as the stack, can we pop the x from underneath the bar? 16:09:48 * int-e isn't sure what the bars are all about tbh. 16:10:40 int-e: yeah we can 16:11:07 yes, bars were a mistake. I should have made something like pointers to elements of the stack instead 16:34:50 -!- yharnam has joined. 16:45:00 arseniiv: Hmm, what does eval() do, exactly? Run the code, then inspect the top of the stack? Is the top of the stack kept? 16:45:54 (Is the modified stack kept or is the original stack restored? "When evaluating a code block, no special things are done to the stack before or after it." is not entirely clear.) 16:47:58 oh, there’s another inaccuracy. eval(body) and eval(else_) were intended to be simply “run and that’s all”, but eval(cond) is “run and then pop the value”. It definitely needs to be rewritten, I’ll do something 16:48:08 int-e: ^ 16:49:04 in the interpreter I actually popped after “eval”(cond) and didn’t do anything after “eval”(body/else_) 16:49:30 oh, “else_” with an underscore is what I called it in Python 16:51:23 I’ll promote that description to a subsection 16:59:26 arseniiv: http://paste.debian.net/1089917/ is s start of an interpreter but I didn't bother with the bars, and I have not tested anything 17:00:00 hmm hmm 17:01:25 int-e: nice! Don’t you want to represent C as a zipper-without-a-subtree though? (isomorphic to [(Direction, T)] where data Direction = L | R) 17:02:12 though with singly-linked lists it will be undesirable for some operations 17:04:39 Now downloading articles from the server is implemented in bystand. 17:06:31 arseniiv: I didn't really consider that. 17:06:56 arseniiv: I find what I have easier to think about. 17:08:12 [[Punctree]] M https://esolangs.org/w/index.php?diff=63856&oldid=63855 * Arseniiv * (+523) /* Syntax */ + Loop command 17:08:42 aaah I was going to preview it and clicked the wrong button 17:10:27 -!- sprocklem has quit (Ping timeout: 245 seconds). 17:11:50 [[Punctree]] M https://esolangs.org/w/index.php?diff=63857&oldid=63856 * Arseniiv * (+38) /* Loop command */ now it looks as intended 17:12:08 hopefully it will be less confusing 17:13:07 also how do you find my mix of C-like and Pascal-like syntax in pseudocode? 17:13:22 isn’t it lovely 17:14:02 -!- Phantom_Hoover has joined. 17:19:19 Is there a fgets() function that allocates the memory needed to store it, in some program? 17:22:10 arseniiv: From an efficiency perspective you are probably right that one should represent contexts as a sequence of pairs like that... and then use Data.Seq or something similar that offers efficient concatenation and destruction on both ends. 17:23:17 -!- xkapastel has quit (Quit: Connection closed for inactivity). 17:23:51 int-e: though, I started with tree-like definition too 17:24:16 KISS 17:24:17 (and then I got unsatisfied and changed to a zippery one) 17:24:43 main complexities in my code are from elsewhere, BTW 17:25:10 I bet you can go crazy trying to optimize the stack representation 17:34:26 hm I tried that for some extent but surrendered and made it a literal stack of values and bars 17:35:07 and then after each stack action, two topmost bar positions are recalculated 17:37:11 hopefully I’m not Knuth enough 17:39:50 -!- xkapastel has joined. 17:40:06 What's bad about being Knuth? Aside from his age, perhaps. 17:47:09 many microoptimizations 17:47:12 doing them 17:48:03 I think Knuth is a good computer programmer 17:48:07 also writing a book which almost no one else could continue 17:48:25 agree he is good 17:48:54 Yes, I want to read the book; I have read a few and it is good. 17:48:59 and he had an influence on the world 17:49:38 but I’m glad I’m not him. Two Knuths would be tg :P 17:50:04 arseniiv: I'll grant that he's not modern. He grew up at a time when all those microptimizations made a difference. 17:50:26 Nowadays... that has become rare. 17:50:30 agree too 17:50:40 on both of those 17:51:20 (what's cheaper... 10h of software engineering time or buying an extra AWS instance for running a 50h computation?) 17:51:52 I will use microoptimizations when writing in assembly language especially. 17:52:55 though I talked with a couple of people for whom such optimizations were a must for a reason (small microcontrollers and a code to search for graphs with specified rare properties) 17:53:00 (And found a lot of existing code that is not optimized so well.) 17:53:23 Microoptimizations pay off when they are reused often in computation bottlenecks. So... in hardware, in compiler output, in some drivers. 17:53:54 Microcontrollers for mass produced items probably still count. 17:54:39 yeah, bottleneck argument is basically a specialized “optimize after profiling” argument 17:55:19 The trick that I used to speed up address decoding and bank switching in Famizork is one that I don't know if anyone else has used it. 17:59:09 Also, in some kind of computers, you can use unofficial instructions for optimizations. 18:00:22 arseniiv: Hah. How often does the term "software stack" occur in TAoCP? 18:01:47 int-e: I presume less than once? 18:02:44 I'm honestly not sure. 18:03:49 But if it does occur I expect that it will be a counterpart to "hardware stack" which could either refer to built-in push, pop, call, ret (operating on memory), or to some limited stack built into the CPU. 18:05:10 MMIX uses a register stack. 18:08:44 [[Deadfish]] https://esolangs.org/w/index.php?diff=63858&oldid=63774 * Areallycoolusername * (+8) /* Implementations */ 18:08:46 -!- yharnam has quit (Remote host closed the connection). 18:11:17 And, on MMIX the return address is not stored in the register stack; only the local registers are. 18:19:51 -!- b_jonas has joined. 18:20:04 `olist 1169 18:20:07 olist 1169: shachaf oerjan Sgeo FireFly boily nortti b_jonas 18:24:58 [[Deadfish]] https://esolangs.org/w/index.php?diff=63859&oldid=63858 * Areallycoolusername * (+23) /* Implementations */ 18:28:15 -!- Guest17850 has quit (Changing host). 18:28:15 -!- Guest17850 has joined. 18:28:17 -!- Guest17850 has changed nick to lizzie. 18:33:53 Does GNU linker support linking time assertions in the program? 18:34:08 Does LLVM support it? 18:41:31 oh nice, int-e's complains about arseniiv's esolang writeup overlap with mine 18:43:53 zzo38: re fgets, do you mean malloc-allocates the space at each call? if so, yes, called getline. 18:45:50 O, yes, it is. It says they were originally GNU extensions but are now POSIX. 18:46:15 kmc: how many sleep points did you earn 18:48:02 shachaf: not that many :( 18:48:04 I dunno 18:48:07 zzo38: re fgets, do you mean malloc-allocates the space at each call? if so, yes, called getline. 18:48:10 maybe I should drink less caffeine 18:48:14 shachaf: re sigils, besides BASIC, there's also INTERCAL 18:48:33 zzo38: yes, it originates from gnu libc 18:48:37 kmc: oh no 18:49:11 kmc: i award you 800 million cuddly points 18:49:23 consolation prize 18:49:40 aww 18:49:42 hugs 18:49:43 b_jonas: Does BASIC even have identifiers that refer to types? 18:49:56 Yes, INTERCAL also uses sigils for types, with prefix instead of a suffix like BASIC 18:49:57 zzo38: related gnu libc extensions are asprintf, and the "a" flag in scanf (which actually technically conflicts with the C standard definintion, because "%a" is supposed to be equivale to to "%g", but glibc definitely has priority there) 18:50:09 shachaf: that depends on which BASIC dialect you ask 18:50:21 BASIC does have names of types, such as INTEGER and LONG and so on. 18:50:41 where % is INTEGER, & is LONG, ! is SINGLE, and # is DOUBLE. 18:50:45 shachaf: newer versions of BASIC do have identifiers that refer to types, older ones don't 18:51:53 But I'm not talking about using a sigil to indicate what the type of something is. 18:52:06 I'm talking about indicating syntactically whether an identifier is a type. 18:52:20 For example Haskell uses an uppercase letter. 18:52:38 zzo38: I remember something like $ for string also, is it from another Basic dialect? 18:53:21 Yes, $ is for strings. 18:53:34 (I forgot that one) 18:53:51 shachaf: No, there is no such thing in BASIC. 18:54:17 for each string, Basic awards us a $ 18:54:19 (A variable can also have the same name as a structure type in BASIC.) 18:54:37 we need writing long string-heavy programs 18:58:04 The "OAC" compiler for OASYS text adventure game system has no sigils and no reserved words either, and uses type names without any syntactic indication. The "OAA" compiler does uses sigils, both prefixes and suffixes. 18:58:07 Suffixes are @ for a pointer to a object, # for a integer (either 16-bits or 32-bits), $ for a index into the string table, ^ for a pointer (only for locals and return values), and nothing for void (only for return values). 18:58:26 [[User:ThisIsTheFoxe]] https://esolangs.org/w/index.php?diff=63860&oldid=63842 * Total Vacuum * (+0) 18:59:07 Prefixes are , for locals (including arguments), . for properties, & for methods, * and ? for classes, % for global variables, and ! for preallocated objects. 18:59:42 And, unlike BASIC, the prefix and suffix alone are sufficient you do not need to add letters in between. 19:06:03 [[Deadfish]] https://esolangs.org/w/index.php?diff=63861&oldid=63859 * Areallycoolusername * (+5) /* C++ Codegolfed */ 19:37:58 -!- MDude has quit (Ping timeout: 245 seconds). 19:38:30 -!- FreeFull has joined. 20:08:57 -!- user24 has joined. 20:37:21 -!- atslash has quit (Quit: This computer has gone to sleep). 20:58:52 -!- AnotherTest has quit (Ping timeout: 252 seconds). 22:16:31 -!- user24 has quit (Quit: Leaving). 22:18:18 -!- uplime has changed nick to ^. 22:24:26 -!- nfd has joined. 22:26:52 -!- nfd9001 has quit (Ping timeout: 252 seconds). 22:51:20 `? bitcoin 22:51:22 bitcoins are coins that have been drilled through with a bit, and can be strung together in long chains. This practice dates to ancient China, and the Chinese remain experts in bitcoin manufacturing. A chain can support up to 21 million coins before breaking. 22:54:06 `cwlprits bitcoin 22:54:12 Jafët 22:54:31 A bitcoin also means a coin of which a criminal bites off a small part to obtain a small amount of gold, but then passes the coin on as if it had the full original value. Isaac Newton invented a machine that puts a regular ridged pattern around the edge of the coin so that bitcoins can be easily recognized. 22:54:34 wow, that must've been a century ago 22:54:37 `dowg bitcoin 22:54:38 10459:2017-03-20 learn bitcoins are coins that have been drilled through with a bit, and can be strung together in long chains. This practice dates to ancient China, and the Chinese remain experts in bitcoin manufacturing. A chain can support up to 21 million coins before breaking. 22:55:04 Why did Isaac Newton invent it? 22:56:51 shachaf: his job was catching counterfeiters 22:58:23 also maybe it helped his alchemy experiments 23:09:30 I thought he invented it because he was made master of the mint, which was done because the mint could mostly run by itself, but he insisted to do something about it anyways. 23:10:15 `? password 23:10:17 The password of the month has been erroneously sent to the NSA. We apologize for the inconvenience. 23:10:43 . o O ( This was your second monthly password reminder. ) 23:14:51 don't look at me, unless you want another random dictionary words password like I set the last time 23:15:45 `learn The password of the month is int-e's job. 23:15:47 Relearned 'password': The password of the month is int-e's job. 23:16:16 I guess that's a fair assessment. 23:16:36 But now I have 39 days to plan my revenge! 23:16:51 30. 23:16:53 Is this month 39 days long? 23:16:54 Ah. 23:17:36 No, the keyboard jumped. 23:17:58 (It's the only explanation! My typing is perfect!!!1) 23:19:28 The password of the month is notable housing compliment vitamin. 23:24:55 -!- b_jonas has quit (Quit: leaving). 23:28:15 `? july 23:28:16 july? ¯\(°​_o)/¯ 23:28:27 July is the month of the password. 23:51:32 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:51:54 . o O ( cute: http://paste.debian.net/1089950/ ) 23:53:12 int-e: oh no, they got your deployment-config.json 23:54:08 yeah wtf is that anyway 23:54:39 oh, it seems the interpreter started working! 23:54:57 °> +a 23:54:57 [Compile error] Unknown character ‘a’ at 1. 23:55:57 just kidding. It can do more 23:56:48 also it’s quite polite and says bye on exit 23:57:02 https://github.com/amoussard/sftp-deployment/issues/130 23:57:36 presumably deployment-config is the opposite of employment-config 23:58:37 hmm https://github.com/IanEdington/deploy-php/blob/master/deployment-config.json#L16 23:58:59 * ski was about to remark on how far the `0' key is from the `9' key 23:59:19 ski: yes, they're miles and miles apart... if you use the numeric keypad 23:59:38 I haven't used a computer with a numeric keypad in years. 23:59:59 my computer doesn't have a numeric keypad either ;-) my keyboard does. 2019-07-02: 00:00:08 nah, in the main key maze, i have moved the `0' key to the left of the `1'-`9' keys 00:00:18 esoteric 00:00:23 int-e: I was going to correct myself and then I thought no one would be so pedantic as to comment on it. 00:00:36 Anyway I mean a computer that has a numeric keypad connected to it, of course. 00:00:57 ski: hi ski 00:01:08 heya shachaf 00:01:16 shachaf: Well, I think we have several overly pedantic people here :) 00:02:05 i award you 2.147 billion points 00:02:54 shachaf: But there was an undercurrent to my message... I don't like laptop keyboards. So even for the computers that do have a builtin keyboard (which typically lack a numeric keypad), I'd use an external keyboard (and then I usually have a numeric keypad out of habit, and also because I use it for window placement). 00:03:24 sophisticated 00:03:34 > 2^32 00:03:36 4294967296 00:03:39 you must be some kind of power user 00:03:40 oops 00:03:41 > 2^31 00:03:45 2147483648 00:03:54 shachaf: nah I'm just idiosyncratic 00:04:11 ski is only 483648 points away 00:04:12 I still use fvwm2, despite all its flaws. 00:04:36 I'm using i3 but I'm beginning to suspect that tiling window managers are not quite the right thing. 00:04:58 points ? 00:05:01 I should think carefully about the standard window management workflows. 00:05:30 I am using i3 (but with my own status line implementation), and it supports floating windows as well as tiling windows, and also tabbed windows. 00:05:41 zzo38: I also wrote my own status line implementation. 00:06:00 They say it is for use with having multiple screens, but I only have one, and it still works OK with only one screen. 00:06:08 It supports floating windows but they're second-class citizens. 00:06:18 My status line implementation is so fancy. 00:06:29 What stuff did you include in the status line? 00:06:57 Chet it out: http://slbkbs.org/tmp/statustext.c 00:07:55 It has things like brightness and volume and CLIPBOARD/PRIMARY size. 00:08:15 (In my computer I put four things: mail counter (checks only if the lease on the mailbox file is broken), system load average (for one minute), RAM usage, date, time (including seconds). 00:08:17 And it listens for updates to all those things so it updates instantly instead of waiting up to a second. 00:09:13 // It's probably not a good reason. 00:09:49 I think eventually I'll replace the status bar with my own program so I can draw little graphs and fancy things. 00:10:07 int-e: I'm not going to look up what the reason is, but I maintain high confidence in my statement. 00:11:41 shachaf: I concur 00:12:04 I would extend the statement to the existence of pulseaudio :) 00:12:13 Seems reasonable. 00:12:29 (but it has stopped causing me trouble some years ago) 00:12:31 I use the libasound API but it ends up going through pulseaudio. 00:13:08 I used to have funny effects like a 1s audio delay when playing video... which went away when pulseaudio wasn't running. 00:13:29 Linux audio is such a terrible mess. 00:13:32 It's so bad. 00:13:44 Especially when you want to do anything close to real-time audio. 00:14:23 My current problem is an inexplicable 1s fade-in when starting a new audio stream. Could be worse... 00:15:22 This statustext program is so good. 00:15:35 You can run it under strace and it does a fairly reasonable number of system calls for every run. 00:16:14 You also use many non-ASCII characters, and I instead am using only ASCII characters. 00:16:43 ❓ 00:16:50 They're not in ASCII but they are in Unicode. 00:17:12 shachaf: Well, as long as the characters are in the font you are using, then it is OK, I suppose. 00:17:55 Maybe CP437 would be better. 00:18:11 I mean, clearly the right thing would be to just use bitmaps. 00:18:36 It's also ridiculous that I'm drawing a volume meter using characters like ▋. 00:18:46 What an absurdly complicated way of drawing a rectangle. 00:18:57 ░▒▓█ are in unicode :) 00:19:12 Does that help? 00:19:13 Also I have not had problems with audio on Linux, except that sometimes if mednafen is started without waiting too long after audio stops playing, then sometimes the audio doesn't work in mednafen. 00:19:28 The characters I'm using give one-eighth precision. 00:19:41 int-e: Yes, and also PC character set (Unicode includes all of the characters in PC character set, but conversion of some of them to Unicode can be ambiguous sometimes). 00:19:54 shachaf: no, I just mused about which CP437 characters I miss the most. 00:20:03 Oh, sure. 00:20:22 Hmm, I'm doing a few system calls more than necessary. 00:20:25 And those grayscale characters are near the top of my list. 00:20:39 codes 176, 177, and 178, IIRC. 00:20:49 Unfortunately Xlib is doing three identical recvmsg() calls on the same socket that all return EAGAIN before it gives up. 00:20:53 What's your deal Xlib? 00:20:58 s/l/l,/ 00:21:01 int-e: Yes, those are the PC character codes for them; also 219 for the full block 00:21:28 Do you like the new io_uring system call interface in Linux? 00:21:51 The fact that I remember despite not having used them in ... oh ... 15-20 years, says something. 00:21:52 what is that 00:22:11 it's tg 00:22:24 it does asynchronous I/O with a ring buffer interface to the kernel 00:22:35 you can do I/O with zero context switches 00:22:52 ok 00:22:55 I designed UTCS/UTCE (differently than before) to specifically be a character set for use with fix pitch, without needing large tables to figure out widths and how to render stuff and so on; you can just render fixed size bitmaps next to each other and it will work. Also, they include stuff found in many fix pitch character sets of many computers and terminals, some of which is in Unicode and some isn't. 00:23:11 but presumably if you run out of stuff to do you would do a system call and sleep? 00:23:33 Right, you can always wait for responses. 00:23:46 sounds pretty dope 00:23:50 But even then it's so much better than the existing interfaces. 00:24:03 Well, there were no realistic interfaces for asynchronous I/O in Linux. 00:24:19 Only aio which was scow. 00:24:37 do you mean asynchronous in a sense different from a epoll() loop? 00:24:47 I mean disk I/O. 00:24:50 but... POSIX! 00:25:13 Also if you don't feed the kernel async requests fast enough it'll stop polling on your request buffer until you wake it up again. Which is fine. 00:25:33 what a strange bug when [_][][]? executes silently and [__+][][]? fails to pop an argument for some reason, but [___+][][]? again is good and leaves 2 _ 0 on the stack 00:25:47 The io_uring person was suggesting that they could implement support for arbitrary system calls using the same interface. 00:25:54 wouldn't that be the tgest 00:29:43 I should probably upgrade this program to not poll battery/filesystem/whatever on every run. 00:30:22 Instead it should do them on their own schedule like everything else, using a timer or something. 00:31:05 This'll be important (?) if I make it an X program that redraws at 60fps or something. Right now it's not very important. 00:32:54 arseniiv: I have some terrible bugs in that area :) 00:33:40 arseniiv: [_][][]? is supposed to loop, right? 00:34:35 it should evaluate [_], take _, see that it’s false and go evaluating “else” part, [], but this doesn’t do anything and it’s all done 00:35:47 huh, I interpreted the condition wrong... let me check the old description 00:36:16 contrary, [__+][][]? should evaluate [__+], find a nonfalse __+ on the stack, then go loop… oh it seems I’m lucky it doesn’t work as expected, it would give an infinite loop 00:36:18 hmm, it had a "≠" there, must have misread. 00:36:29 and I thought it just would loop once 00:36:57 now I remember that of course that should be an infinite loop 00:37:23 we can do if with a little more trickery 00:38:18 I'd imagine something like [^][][]? with a bit of setup code. 00:38:41 but it's a bit tricky 00:38:46 hm, yes, we simply do: [][ _][]? 00:38:52 or that 00:39:19 [][_][_]?. 00:39:21 ^ is one of intended use-cases also 00:39:43 we could walk here and there with this loop 00:40:09 and stop when we had trespassed 00:41:06 Ah, sorry, your code is correct. I missed what the _ really did. 00:41:27 yeah 00:41:38 zzo38: Do you like this C program? 00:41:44 I like the macros Case and Default. And Struct. 00:42:20 *Main> run "[Hello, world!\n];" [] 00:42:21 Hello, world! 00:42:32 arseniiv: ^^ look at all this undefined behavior :) 00:42:50 :D 00:43:10 it’s too extended an understanding of [...] syntax 00:43:46 It's allowed by the specification, I think. 00:44:07 shachaf: I noticed that, and I do not have another comment now 00:44:34 I wrote a fancy abstraction layer for X11 clients. 00:44:50 int-e: I have fixed a sequence of typos of various dumbness but it seems I need to continue that after I’ll take some rest 00:44:50 It supports a lot of fancy things. It's great. 00:45:31 Why do I sometimes get error messages about the CDROM is not ready, even though I am not using the CDROM? 00:45:31 arseniiv: But it's a particular implementation choice, of course. a) programs are represented by strings are represented by bit strings of length 8x. b) ; actually accepts any bit string with length divisible by 8. 00:46:42 It's allowed by the specification, I think. => heresy :D okay it’s compliant 00:46:56 arseniiv: So the program a) relies on a particular choice of the [] encoding, and b) relies on undefined behvior of ;. So the program is definitely not compliant. 00:48:13 int-e: I represent them almost this same way, though I do that only if it’s necessary, and in other cases these blocks are “compiled” lists of opcodes (with and without arguments) 00:49:09 ah, I missed the ; at the end 00:49:10 arseniiv: which indicates another level of complications 00:49:43 I thought 'H', 'e' etc. print themselves, though it would be a stretch for ' ' 00:49:48 arseniiv: oh, yeah without the ; that behavior would be wierd. 00:49:51 *weird 00:50:41 (or, at least, more weird) 00:52:32 initially I represented blocks as simple strings but then I was ambushed by parsing interleaving with execution and I then decided it would be better to differentiate, and I couldn’t find a simple enough representation of compiled code… then there were bugs related to a forgotten custom string conversion function in the block→context converter… oh 00:52:49 at least that is behind now 00:58:38 -!- arseniiv has quit (Ping timeout: 272 seconds). 01:00:55 -!- hakatashi1 has quit (Remote host closed the connection). 01:01:10 -!- hakatashi has joined. 01:21:55 I thought to make up set of Magic: the Gathering cards, such as "Ziveruskex and Strixan" set of cards, but clearly a lot more than two cards should be needed, and also other stuff. Such as, if you want to draft this set, then rarities should be assigned, too. If some cards are used in multiple sets, the rarities may be difference per set in case that helps for drafting purpose. 01:35:52 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:36:55 -!- Lord_of_Life has joined. 01:41:01 -!- oerjan has joined. 01:42:58 schlock mercenary is fun, but almost every attempt by the author to make connections to real science makes me cringe. ORBITS DON'T WORK THAT WAY. (I think.) 01:44:33 Will you notify them about that? 01:45:14 it's way too late, he's just started the last book in a series of 20. 01:46:29 i don't think people who understand physics are his audience, anyway. 01:47:47 and others probably have griped about his science before. 01:53:18 -!- xkapastel has quit (Quit: Connection closed for inactivity). 02:08:45 -!- lambdabot has quit (Quit: totally pointless restart). 02:11:14 -!- lambdabot has joined. 02:25:14 -!- salpynx has joined. 02:38:23 See if I wrote something wrong in story I wrote. If it is wrong, I hope to correct it please. 03:04:51 re. Punctree, can I add some related links? It took me a while to click that zippers were the main point, not simply binary trees, and that "zipper" was not not being used in a loose informal sense. 03:05:30 https://wiki.haskell.org/Zipper seems to cover the basics with regards to binary trees. I _think_ that's how Punctree is using them 03:06:08 https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf appears to be the origin paper for the zipper structure 03:10:43 I now see why (2 _ _) isn't so sensible. The new 'context' term is better. It makes it clearer why there is only going to be one hole. I originally thought a hole was a way to construct a non-perfect binary tree. I now see that it has a special meaning wrt zippers 03:13:59 I sometimes misunderstand things. I thought for months that zz038 was working on a novel network time protocol (NTP) server, until the cognitive dissonance got too much and it suddenly struck me what NNTP actually was 03:19:42 I wrote a NNTP server software already, and now I am working on the client software. 03:20:27 salpynx: I think if the links is useful then it could be added; if it is found to be wrong, someone will remove it 03:28:10 (You do not have to use this server and client software together; you can use any server software and any client software.) 03:36:03 Do you like my new NNTP software? 03:37:10 [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63862&oldid=59649 * A * (-12) No quotes anymore 03:38:47 [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63863&oldid=63862 * A * (+49) 03:42:22 [[Special:Log/delete]] delete * Oerjan * deleted "[[ThisIsTheFoxe]]": Author request: content was: "{{Db-empty}} {{Db-g7}}, {{Db-author}}, {{Db-blanked}}, {{Db-self}}", and the only contributor was "[[Special:Contributions/ThisIsTheFoxe|ThisIsTheFoxe]]" ([[User talk:ThisIsTheFoxe|talk]]) 03:45:44 [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63864&oldid=63863 * A * (+95) /* Syntax */ 03:48:59 [[EXAMPL]] M https://esolangs.org/w/index.php?diff=63865&oldid=63864 * A * (+376) /* If statement */ 03:59:14 [[+-]] https://esolangs.org/w/index.php?diff=63866&oldid=59297 * Voltage2007 * (+1530) 04:13:17 int-e: Did you improve @pl? 04:19:08 -!- ^ has changed nick to uplime. 04:25:49 [[+-]] M https://esolangs.org/w/index.php?diff=63867&oldid=63866 * Voltage2007 * (+158) 04:27:29 -!- sprocklem has joined. 04:27:36 @pl join join 04:27:36 join join 04:27:38 -!- FreeFull has quit. 04:28:30 @pl join id 04:28:30 join id 04:28:41 @pl join join join 04:28:42 join join join 04:28:57 @pl join join id 04:28:58 id 04:31:46 [[User:Voltage2007]] N https://esolangs.org/w/index.php?oldid=63868 * Voltage2007 * (+1) Created page with "h" 04:58:50 [[Fetlang]] M https://esolangs.org/w/index.php?diff=63869&oldid=53186 * Voltage2007 * (+91) 05:08:47 -!- Cale has joined. 05:54:13 [[Punctree]] https://esolangs.org/w/index.php?diff=63870&oldid=63857 * Salpynx * (+312) /* Related links */ some introductory reading on 'zippers' 06:00:55 I found those links helpful. The Haskell page even has diagrams. 06:04:08 I think Arseniiv asked here about adding math formatting to the wiki a while ago. I'd make use of that. Some sort of TeX like formatting. MathJax looks nice, with in browser HTML and CSS formatting of formulas. 06:05:23 Some of the other mediawiki plugins look to be a pain to install. Is this a wiki feature request that is likely to be fulfilled? 06:08:43 -!- mniip has quit (Ping timeout: 615 seconds). 06:09:01 -!- mniip has joined. 06:09:08 -!- nfd has quit (Read error: Connection reset by peer). 06:20:46 [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] https://esolangs.org/w/index.php?diff=63871&oldid=57663 * Voltage2007 * (+2100) 06:21:29 [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] M https://esolangs.org/w/index.php?diff=63872&oldid=63871 * Voltage2007 * (+20) link fix 06:37:18 -!- nfd9001 has joined. 07:01:20 -!- atslash has joined. 07:27:27 [[If(j)invert()if(l)change()if(q)input()if(t)output(x);]] https://esolangs.org/w/index.php?diff=63873&oldid=63872 * Voltage2007 * (+800) 07:35:08 what an ugly language name 07:37:45 -!- oerjan has quit (Quit: Nite). 08:14:34 zz038: Is your NNTP server live and public somewhere? NNTP via telnet looks like it would be workable enough for low volume messages. 08:15:08 s/0/o/ rry 08:19:11 -!- b_jonas has joined. 08:20:42 Today I found a spider in my bathroom. Two of its legs kept moving after I severed them from the body of the spider. That seems like relevant information that should be mentioned in the description of spiders in the monster manual. 08:30:02 zzo38: while the computer is powered off, try to remove both the data cable and the power cable from the CD drive and the other end of the power cable from the motherboard, then plug them in again. maybe you were getting an error because the connection to the CD drive sometimes broke. luckily these modern SATA motherboards are somewhat tolerant about that, so they don't just fry like old ones sometimes 08:30:08 did. 08:31:36 oerjan: people have complained about the science in the Order of the Stick too, but it rarely comes up 08:32:10 zzo38: I am using rfc-1436 and telnet to search your site for NNTP information, I imagine it's like half the experience. I can read, but I can't post. Huh, rfc3977 (NNTP update) was written in 2006 08:38:15 ok, gopher is fun, and nc is better for accessing it 08:47:03 yep. though zzo38 is also running a http server that lets you access most of the files on gopher, except there's at least three root directories that you have to know about ("/textfiles", "/mtg", "/sql" or something) 08:49:59 -!- b_jonas has quit (Quit: leaving). 09:09:57 -!- atslash has quit (Read error: Connection reset by peer). 09:10:15 -!- atslash has joined. 09:16:41 -!- kmc has quit (Quit: Lost terminal). 09:36:50 -!- AnotherTest has joined. 09:37:29 shachaf: I did something in @unpl, and discovered(?) a bug in @pl 09:37:53 shachaf: which I might fix if I figure it out, but mostly I won't touch @pl 09:38:49 What's the bug? 09:43:38 @pl \x -> \x y -> x 09:43:39 const (const id) 09:43:53 @pl \z -> \x y -> x 09:43:53 const const 09:44:39 Golly. 09:45:07 all lambdabot (and lambdabot itself) plugins are of the highest code quality 10:22:06 [[Pi]] M https://esolangs.org/w/index.php?diff=63874&oldid=39793 * ThisIsTheFoxe * (+1) /* Brainfuck converter */ http link doesn't work (anymore?) 10:22:31 [[SLOS]] N https://esolangs.org/w/index.php?oldid=63875 * A * (+623) Created page with "[[SLOS]] stands for Scripting Language that's Outstandingly Simple; it tries to create a scripting language(not an interpreted language) that is very esoterically simple. It i..." 10:33:20 [[SLOS]] M https://esolangs.org/w/index.php?diff=63876&oldid=63875 * A * (+799) /* Tools (45 points) */ 10:48:09 [[SLOS]] https://esolangs.org/w/index.php?diff=63877&oldid=63876 * A * (-438) /* Program lengths by language (aka Example programs) */ SLOS is doing terribly; I will reset the example programs. 10:52:14 [[SLOS]] M https://esolangs.org/w/index.php?diff=63878&oldid=63877 * A * (+225) /* Program lengths by language (aka Example programs) */ 10:53:26 -!- user24 has joined. 11:02:10 [[SLOS]] https://esolangs.org/w/index.php?diff=63879&oldid=63878 * A * (+549) /* Program lengths by language (aka Example programs) */ 11:04:08 [[SLOS]] M https://esolangs.org/w/index.php?diff=63880&oldid=63879 * A * (+32) /* Test file readable (11 bytes) */ 11:07:50 [[SLOS]] M https://esolangs.org/w/index.php?diff=63881&oldid=63880 * A * (+258) /* Program lengths by language (aka Example programs) */ 11:10:27 zzo38: I discovered sqlnetnews and made a test post. I like. 11:17:55 -!- user24 has quit (Quit: Leaving). 11:25:21 -!- john_metcalf has quit (Ping timeout: 248 seconds). 11:27:54 -!- salpynx has quit (Remote host closed the connection). 11:36:05 "please verify your device" ... please stop suggesting that nobody else is using temporary cookies that don't survive the end of the session :( 12:04:02 shachaf: fun. \x x y -> y is "alpha-renamed" to \$0 $1 $1 -> $1. Which is not wrong, of course... 12:04:19 But probably not intended. 12:05:47 Okay, this is just embarrassing. let v' = "$" ++ show (M.size fm) ... sure... that must be the size of the context? 12:16:01 -!- arseniiv has joined. 12:24:54 shachaf: there, fixed: https://github.com/lambdabot/lambdabot/commit/eebe60ac0700dcfbd34ea4870fa3286e7fb4a58b 12:25:15 (but I won't recompile lambdabot for just that... at least not yet) 12:50:42 -!- wob_jonas has joined. 12:52:20 int-e: not recompiling lambdabot because you want to fix other bugs in @pl, such as https://esolangs.org/logs/2019-02-02.html#l5d ? 12:54:40 nah, you said that was hard to fix 12:56:33 I should stop suggesting such things before you just apply a Cisco style "fix" on it 13:29:22 -!- arseniiv has quit (Ping timeout: 246 seconds). 13:34:38 -!- Lord_of_Life_ has joined. 13:36:30 -!- arseniiv has joined. 13:37:08 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:37:14 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 14:00:31 -!- atslash has quit (Ping timeout: 246 seconds). 14:01:25 -!- atslash has joined. 14:05:20 -!- MDude has joined. 14:05:44 salpynx: There is a timeout, although I should fix it so that it will reset the timeout if valid input has been received. 14:36:31 OK, I fixed that now 15:09:34 [[Garbage]] https://esolangs.org/w/index.php?diff=63882&oldid=63710 * A * (-18) /* Implementation */ Shorter implementation 15:35:54 -!- wob_jonas has quit (Remote host closed the connection). 15:45:03 -!- atslash has quit (Ping timeout: 245 seconds). 15:45:23 -!- atslash has joined. 16:13:22 -!- atslash has quit (Quit: This computer has gone to sleep). 16:29:48 -!- b_jonas has joined. 16:33:07 -!- b_jonas has quit (Client Quit). 16:33:24 -!- b_jonas has joined. 17:13:08 -!- kmc has joined. 17:14:43 -!- Phantom_Hoover has joined. 18:34:32 -!- ineiros has joined. 18:40:08 -!- atslash has joined. 19:00:48 [[Special:Log/newusers]] create * Fuckerturd * New user account 19:10:10 -!- FreeFull has joined. 19:18:32 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63883&oldid=63843 * Fuckerturd * (+176) /* Introductions */ 19:27:55 -!- adu has quit (Quit: adu). 19:52:49 -!- john_metcalf has joined. 20:00:50 -!- adu has joined. 20:05:59 -!- adu has quit (Remote host closed the connection). 20:06:27 -!- adu has joined. 20:15:00 arseniiv: I see you've improved the description of the loop builtin in the holed tree language 20:15:07 good 20:18:18 :) 20:19:02 execution of the loop continues until it falls into a hole 20:30:00 arseniiv: although I don't understand why you added a while loop primitive rather than a simple conditional primitive 20:30:22 [[DerpText]] N https://esolangs.org/w/index.php?oldid=63884 * Fuckerturd * (+2106) Created page with "DerpText, not to be confused with [[Derpcode|similarly]] [[Derplang|named]] languages, is a language made by [[User:Fuckerturd]]. DERP. == Syntax == Commands have one or more..." 20:30:44 (or both) 20:32:02 b_jonas: one ring to rule them all 20:32:49 arseniiv: sure, but why a complicated ring? 20:33:10 this way, writing a simple conditional is a bit complicated 20:35:18 b_jonas: I don’t know what I was thinking at the time, but maybe it’s a vestige of BF 20:36:15 what contributes to this is that the two test primitives are built in a somewhat ugly way too, so there's no easy way that I can see to use them to make a value conditional 20:36:19 though a simple conditional is not so complicated: [][ _][]? 20:36:29 although... let me check 20:37:02 -!- xkapastel has joined. 20:37:14 arseniiv: hmm yes, that might work 20:39:40 yeah, you can probably use the % # @ = tests to write conditionals 20:39:50 unfortunately, I didn’t fix any interpreter bugs today, I haven’t yet worked on it. One of these bugs is with forever loop [__+][][]? — for some reason it tries to pop an element from an empty stack, but I’m yet to find out at what step exactly 20:39:52 it's just the < primitive that works a bit odd 20:40:32 b_jonas: do you think it really needs a rework? 20:40:43 int-e ^ 20:41:19 maybe it can be argued that the current form has some pros 20:41:42 arseniiv: dunno. I still find it confusing how you introduce a lot of tricky notation 20:41:49 and then reference them all in the commands list 20:42:11 arseniiv: No clue! Works in my unpublished (and unfinished) interpreter. 20:42:13 I like it when a projection function works like T → Maybe SubT, < is exactly thus 20:42:14 but I think you're right about the block conditional 20:42:18 it is simpler than I thought 20:42:53 b_jonas: I still find it confusing how you introduce a lot of tricky notation> I could name all that with words, would it make a difference? 20:43:01 arseniiv: as far as I understand things, it really should not pop from an empty stack, so that must be a bug in the interpreter :) 20:43:20 arseniiv: I'm thinking more like introduce fewer, and just use a definition directly in the statement list 20:43:46 like, introduce the substitution middle circle, but write most of everything out in the statement list. possibly in an alternate list or something. 20:44:19 arseniiv: as far as I understand things, it really should not pop from an empty stack, so that must be a bug in the interpreter :) => yeah, I agree, or we’re both mistaken 20:44:58 arseniiv: you are using your own interpreter, right? 20:45:04 It's also confusing how you use "τ→" and "π→" as infix operators. Use a subscript or overscript or something. 20:45:31 especially as you also use "→" for something totally different 20:46:05 you use "→" for something different in the "Runtime" section 20:46:33 you should probably use some completely different notation instead of "τ→" and "π→" 20:47:52 like, introduce the substitution middle circle, but write most of everything out in the statement list. possibly in an alternate list or something. => maaaybe. Seems like a lot of work. Initially I reasoned that pure mathematical definitions placed on their own could describe semantics better. E. g. actual commands use _ as a return when the operation is undefined, and that specific _ is not something intrinsic to the operation itself 20:48:30 I'm also a bit unsure about "_" as the notation for hole 20:49:08 you should probably use some completely different notation instead of "τ→" and "π→" => yeah, these are probably not the best notation 20:49:21 why _, though? 20:49:33 I seem to have seen it somewhere, even 20:49:57 arseniiv: you are using your own interpreter, right? => yeah. Sorry, missed that 20:51:01 the "_" is confusing because some languages like Haskell and Rust and Prolog use it to mean (sort of) an unnamed variable in a pattern match, and that notation seems to be well-known, so where you're writing matches like "t′ = u′ ∘ (2 _ u)" it gets confusing, you have to remember that that's not what you mean here. 20:51:11 my interpreter also has some debug commands, pretty useful to find out what goes wrong without calling separate functions of the module in REPL 20:51:38 what interpreter? interpreter for what? 20:52:55 b_jonas: though, I positively see the rationale against _, I’m more interested in possible replacements. *? 20:53:35 what interpreter? interpreter for what? => Punctree interpreter I’m writing 20:53:38 I like _ 20:54:26 also it could be − or — 20:54:42 I’m even in some favor of — 20:54:43 definitely not "*". you are already using right arrow as an infix, small circle as both an infix and a suffix, and "2" as a prefix with two arguments. if you started to use "*", that would look like it might be an infix too. parsing your formulas to a tree is already mentally hard enough. 20:54:47 with unicode I might use □ 20:55:14 int-e: now I see a square 20:55:38 arseniiv: which is a common notation for holes... in term rewriting 20:56:02 b_jonas: also maybe I should take 2 away; in my interpreter, I show trees and contexts as 0, _ and () 20:56:12 int-e: isn't that still the _other_ kind of hole, the one of which you can have any number in a tree, just like "_"? 20:56:14 this way it’s both compact and not-unreadable 20:56:24 (I'd hope this extends to lambda calculus and from there to all the type systems etc, but I'm not sure.) 20:56:36 arseniiv: eww. add a colon or something. 20:56:43 b_jonas: "we" don't distinguish between those two. 20:56:46 int-e: ah, I thought it’s a character replacement, not an actual square 20:57:02 b_jonas: why :D 20:57:20 or better still, angle brackets and a colon 20:57:34 b_jonas: When both multi-hole contexts and contexts are around, a context is a multi-hole context with exactly one hole. 20:57:37 and I mean the flat angle brackets, not less than signs 20:57:44 int-e: ok 20:57:55 I don’t want a linear length increase of terms representing code blocks, they are huge 20:58:10 that was about adding colons 20:58:35 what? this is for the documentation, it has nothing to do with how an interpreter or anything actually represents them 20:58:40 it's notation 20:59:16 though if one is to change 0 to an empty string, something like ⟨_:⟨:⟩⟩ can be shorter 20:59:24 PLEASE NO 20:59:26 oh god 20:59:41 unless you're trying to make an esoteric documentation, but I don't think that's your goal 21:00:00 what? this is for the documentation, it has nothing to do with how an interpreter or anything actually represents them => of course, but sometimes I want to print them for debugging reasons 21:00:49 now I’ve forgot if I agreed to some changes today, and to what ones 21:01:00 arseniiv: then keep the colon but drop the parenthesis except when the term is on the left of a colon, when writing for debugging, then the common case of a list will be compact 21:01:20 more compact still than brackets around every pair 21:01:41 hm 21:02:02 or use (a0,a1,a2,a3:t) for a list, meaning (a0:(a2:(a3:t))) 21:02:12 or use (a0,a1,a2,a3:t) for a list, meaning (a0:(a1:(a2:(a3:t)))) 21:02:23 I think maybe I should write all that somewhere 21:02:24 and (a0,a1,a2,a3) meaning (a0:(a1:(a2:(a3:0)))) 21:02:56 but that only if you actually use lists, because the language doesn't seem to be specifically primed for that 21:03:19 certainly 21:04:07 though cons list manipulation would arise sooner or later in the code 21:04:24 if someone would write something big enough 21:04:53 you can stick to just colons with parenthesis if you want, Haskell style 21:05:12 where (a0:a1:a2:a3:t) means (a0:(a1:(a2:(a3:t)))) 21:05:27 -!- AnotherTest has quit (Ping timeout: 264 seconds). 21:11:48 -!- atslash has quit (Quit: Leaving). 21:25:27 -!- john_metcalf has quit (Ping timeout: 245 seconds). 21:34:46 By the way, it's quite creative how the runners managed to get Super Metroid back to GDQ this time (for Summer GDQ 2019) after that the game wasn't featured because they ran out of popular categories to show. 22:06:53 -!- uplime has changed nick to ^. 22:18:38 -!- nfd9001 has quit (Read error: Connection reset by peer). 22:21:20 -!- nfd9001 has joined. 22:26:58 -!- b_jonas has quit (Quit: leaving). 22:27:52 -!- salpynx has joined. 22:52:08 Do you like SAT solvers? 23:01:13 That's not a new question, I think. 23:01:39 It's the old question, "Do you like this?", in disguise. 23:01:55 The disguise is that "this" has been substituted with "SAT solvers". 23:02:22 shachaf: I mean you've asked this precise question before. 23:02:31 Did I ask you, though? 23:02:48 I believe so. 23:03:02 Did you like them at the time? 23:09:20 Someone suggested that dancing links is a good algorithm for SAT. 23:09:24 https://esolangs.org/logs/2019-05.html#lJjc 23:09:38 I'm a bit skeptical of that claim but I wonder how well it works in practice. 23:09:41 Dancing links... is missing the point. 23:10:11 CDCL is where SAT solvers get their power from, and dancing links does nothing even remotely resembling that. 23:10:20 Hmm, I usually feel distress when I read chat logs of myself. So I won't click that link. 23:10:29 There's a dancing links elements in the two watched literal optimization though. 23:10:44 Hmm, what's the element? 23:11:19 I like the 2-watched-literal scheme and particularly how it doesn't need to be reset when backtracking. 23:11:38 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:11:50 Well when you set a literal to true you set the clauses on its watch list aside. 23:12:18 Hmm, "put aside" sounds more correct. 23:12:27 But I guess both work. 23:14:27 Also, I found out that apparently parallelizing SAT solvers is very hard. 23:14:35 I was, like, whoa, dude. 23:15:13 I expected it to be easy and I still don't really understand why it isn't. 23:17:00 Hmm. It's tricky to estimate the size of a subtask in advance, and it's tricky to communicate all the learned clauses to other workers. Oh and single-threaded SAT solver do a lot of restarts... 23:17:49 -!- zzo38 has quit (Remote host closed the connection). 23:18:10 Naive parallelization is easy (just give each thread a copy of the clause set and its own prefix to exhaustively search.) Work balancing and actually obtaining a speedup is... oh I don't know whether it's hard but I can see a lot of potential obstacles. 23:18:46 I'm just thinking of naive parallelization like that. Say to two threads. 23:19:26 Even if one thread terminates early fairly often, once it gets working on a prefix that doesn't terminate early, it should be able to proceed mostly independently, shouldn't it? 23:19:51 It gets worse because actually SAT solvers may simplify the clause set as well. That's another thing that doesn't parallelize well and needs communication to benefit all workers. 23:19:59 Of course all sorts of tricky things are going on like CDCL, so the clause list isn't constant. 23:20:17 shachaf: if you're unlucky that prefix took 99% of the single-threaded SAT solver time. 23:20:33 But I imagine you can have the threads synchronize once in a while to get an up-to-date clause list or something. 23:20:56 int-e: Sure, but if the second thread terminates early, it can synchronize with the first thread and get a new prefix. 23:21:09 I have never looked at what the challenges really are. There should be half a dozen papers on parallelizing SAT solvers. 23:21:18 I imagine that you only need to do so many synchronizations before they both have nontrivial prefixes. 23:22:02 I should probably read those papers, but why do that when I can just make up naive algorithms? 23:23:00 You could just use an existing SAT solver :P 23:23:09 I should probably write a SAT solver so I learn how all these things work. 23:24:27 hopefully SAT solvers are useful for typechecking(?) 23:25:35 I have the feeling that if your type system requires a SAT solver, it's too complicated. 23:27:06 :( 23:27:22 s/:(/:′( 23:28:16 `t̀ype systeḿ´ 23:28:17 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: t̀ype: not found 23:28:21 oops 23:28:23 -!- zzo38 has joined. 23:29:38 Somehow, I got a missing mouse cursor. I tried restarting X, but then I just got a blank screen; the text mode worked though, even though X doesn't. But I rebooted the computer and now it works OK. 23:31:56 (The missing mouse cursor is a problem I have seen on Windows as well; it does not seem to be specific to Linux.) 23:32:08 -!- arseniiv has quit (Ping timeout: 245 seconds). 23:32:26 Maybe your mouse cursor was on another computer. 23:32:31 Or perhaps it slid off the screen onto your desk. 23:36:42 `nc zzo38computer.org 70 <<< textfile/stupid/computers/sound | tail -n5 23:36:43 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: nc: not found 23:37:33 HackEso: that's probably for the best 23:47:36 I think HackEso cannot access arbitrary internet stuff 23:48:16 (Also, if you want to use the parsing with the shell, then you must use a `` or ``` prefix rather than only ` and the command) 23:53:24 that file was literally the last thing I gophered from your site last night before moving to nntp, and it relates to mouse cursors on another computer, just as shachaf joked. Funny coincidence. 23:53:51 Yes 23:58:20 zzo38: thanks for fixing the sqlnetnews timeout issue so promptly, it booted me a few times while I was exploring. 23:59:31 I love that HELP refers you to the full RFC 3977, all the details you could possibly require are there :) 2019-07-03: 00:00:27 Yes; the old RFC isn't Y2K compliant, but RFC 3977 is Y2K compliant, and that is what is implemented. 00:05:40 There are a few extensions though, such as the POSTQUIT command. It is meant for in case you prepare a POSTQUIT file, with POSTQUIT on the first line and . on the last line, and then you can use a command such as "nc zzo38computer.org 119 < article" to post it. In order to avoid duplicate postings, a message ID can be included; it will reject it if it already has a message with the same message ID. 00:06:10 POSTQUIT is like POST, except that after posting successfully or in case of any error, it closes the connection immediately, so that it does not try to interpret part of your message as commands. 00:10:33 that is a nice simple way of pre-composing messages and posting without special tools. 00:13:13 I am playing a ZZT game called Faux Amis. It is good. (I also made a ZZT game, called XYZABCDE.ZZT. I think the person who made this ZZT game intends to review mine in future too.) 00:36:51 I had started playing XYZABCDE.ZZT, it was funny, but to complete properly required more time and strategy than I had at the time. I recently got Baba is You (late to the party). I thought the overloading of 'is' would annoy me, but it is a fun mechanic. 00:45:59 `? lie 00:46:00 Lies are even easier than monoids. They form groups, known as Lie groups. 00:46:04 `? lie group 00:46:07 Lie groups are groups that try being too smooth for their own good. 00:47:12 I don't have the game Baba Is You, but I have seen some screenshots, and it look like interesting idea. Also the book Godel,Escher,Bach in one part, they suggest a chess variant where the rules are defined by the configuration of pieces on the board, so I thought of that too. 01:21:04 -!- oerjan has joined. 01:23:29 oh really? 01:23:32 i don't remember that part 01:23:34 it does sound similar 01:24:48 oerjan: people have complained about the science in the Order of the Stick too, but it rarely comes up <-- that's fantasy, so i don't _expect_ it to follow science, while Schlock Mercenary sometimes makes a point of referring to real science and gets it wrong 01:25:51 (also i want to add SEASONS DON'T WORK THAT WAY EITHER to yesterday's outburst, i didn't notice the part where they conflated "summer" with "close to sun" until later 01:25:54 ) 01:26:33 now to check if it got worse today :P 01:27:40 ok maybe it got a bit better 01:31:58 (note to spiders: stay away from b_jonas) 01:37:22 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 01:38:03 -!- Lord_of_Life has joined. 01:44:51 `icode □ 01:44:52 ​[U+25A1 WHITE SQUARE] 01:45:06 pesky non-replacement characters 01:49:20 Even of Order of the Stick and Schlock Mercenary don't, I do intend to have better science in the story I wrote (with the recording of stuff in the GURPS game) (except for the magic spells, of course, which are not so scientific) 01:51:57 And if they try to refer to real science but do it wrong, well, that is even worse. 01:54:48 And, there is stuff such as: https://allthetropes.org/wiki/Artistic_License_Indexes 02:56:43 -!- xkapastel has quit (Quit: Connection closed for inactivity). 03:11:24 -!- FreeFull has quit. 03:14:25 [[Special:Log/newusers]] create * Catarang * New user account 03:22:10 [[DerpScrp]] N https://esolangs.org/w/index.php?oldid=63885 * A * (+537) Created page with "[[DerpScrp]], not to be confused with [[Derplang|similarly]] [[Derpcode|named]] languages, is an [[esoteric programming language]] created in 2019 influenced by the syntax of..." 03:29:29 [[DerpScrp]] M https://esolangs.org/w/index.php?diff=63886&oldid=63885 * A * (+256) /* Examples (Currently there are only examples) */ 03:39:41 [[DerpScrp]] https://esolangs.org/w/index.php?diff=63887&oldid=63886 * A * (+1274) 03:42:58 [[DerpScrp]] M https://esolangs.org/w/index.php?diff=63888&oldid=63887 * A * (+157) 03:50:13 [[Derpodce]] N https://esolangs.org/w/index.php?oldid=63889 * A * (+1537) Another "Derp" derivative 04:07:13 [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63890&oldid=63647 * A * (+404) 04:10:31 [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63891&oldid=63890 * A * (+185) /* Computational class */ 04:13:04 [[Ruined BASIC]] M https://esolangs.org/w/index.php?diff=63892&oldid=63891 * A * (+6) /* Example programs */ 04:38:27 -!- salpynx has quit (Ping timeout: 260 seconds). 05:43:13 i wonder if gil is going to appreciate what tarvek just did. assuming it _did_ work. 06:28:17 -!- Hooloovo0 has quit (Ping timeout: 248 seconds). 06:31:00 -!- Hooloovo0 has joined. 06:31:39 -!- oerjan has quit (Quit: Nite). 06:48:50 -!- atslash has joined. 08:25:59 oerjan: it kind of felt like *both* personalities have been removed 08:46:26 -!- salpynx has joined. 08:53:57 -!- AnotherTest has joined. 09:06:04 -!- salpynx has quit (Remote host closed the connection). 09:38:37 -!- ben` has joined. 10:11:54 quite dazzling 10:27:32 -!- ben` has quit (Ping timeout: 245 seconds). 10:40:15 -!- xkapastel has joined. 11:10:14 -!- ben` has joined. 11:22:06 -!- arseniiv has joined. 12:09:45 -!- wob_jonas has joined. 12:09:53 zzo38: wait, I just realized ... are you named of ZZT? 12:11:13 `? fetch 12:11:14 ​`fetch [] downloads files, and is the only web access currently available in HackEgo. It is a special builtin that cannot be called from other commands. See also `edit. 12:11:24 `? edit 12:11:25 ​`edit gives you a url, then in your browser: (1) Press Sync (unless making a new file) (2) Make your changes (3) Press Save (4) Paste the command line at the top into the channel. 12:11:44 salpynx: you can use those to upload small files to HackEso if you want 12:12:45 zzo38: missing mouse cursor is difficult to debug because there are a lot of different causes it could have 12:15:33 shachaf, int-e: re parallelizing SAT solvers, somehow that reminds me of the esoteric way to add an accurate progress bar to anything: 12:16:16 display 0%, do the entire job but measure how much real time it takes, display 10%, wait as much time as the job took, display 20%, wait as much time as the job took, display 30%, etc, display 100% 12:21:46 Also, I like this joke. https://twitter.com/reedie72/status/1139298459591143424 "A database query walks up to 2 tables in a bar... Mind if I join you?" 12:48:20 -!- xkapastel has quit (Quit: Connection closed for inactivity). 13:28:04 -!- ben` has quit (Ping timeout: 272 seconds). 13:34:44 -!- Lord_of_Life_ has joined. 13:38:50 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 13:38:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:41:41 -!- int-e has quit (Remote host closed the connection). 13:43:09 -!- int-e has joined. 13:55:42 [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63893&oldid=63836 * A * (+2642) 13:56:58 [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63894&oldid=63893 * A * (+40) /* Statements */ 14:11:20 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63895&oldid=63894 * A * (-234) 14:19:31 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63896&oldid=63895 * A * (+397) /* Extended H Reference */ 14:23:30 [[Bit~]] M https://esolangs.org/w/index.php?diff=63897&oldid=62369 * RealUndefined * (-45) 14:42:05 -!- wob_jonas has quit (Remote host closed the connection). 14:52:32 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63898&oldid=63896 * A * (+785) /* Extended H Reference */ 15:10:18 [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63899&oldid=63898 * A * (+1163) /* Extended H Reference */ 15:12:00 [[User:A/H spec]] https://esolangs.org/w/index.php?diff=63900&oldid=63899 * A * (+2) /* Extended H Reference */ 15:21:10 -!- john_metcalf has joined. 15:29:34 The documentation for Reality Adlib Tracker (which I converted to a plain text document, because the HTML of it isn't very good) fails to mention that algorithms 2 and 3 are not valid for the last three channels, but by looking at the source codes of the playback software, that seems to be the case. (I only downloaded the playback software; it includes source-codes and is for Windows, but I could modify it to work on Linux too.) 15:32:04 (OPL3 only has six 4op channels, although Reality Adlib Tracker uses nine channels. Algorithm 4 and 5 and 6 are emulated by use of two 2op channels, so those algorithms can still be used on the last three channels.) 15:37:44 -!- atslash has quit (Read error: Connection reset by peer). 15:38:17 -!- atslash has joined. 15:43:45 * int-e wonders, not for the first time, what zzo38 is doing for a living. 15:44:10 Ideas include: Technician at a computer museum. 15:49:06 I should go back to the computer museum here 15:51:02 . o O ( I have to go back... to the Mansion! ) 15:51:36 . o O ( I don't understand you reference ) 15:52:10 It's only one of the best computer games ever. (IMHO) But it's from the mid 90s so probably too old for you. 15:52:43 I am also from the mid 90s so maybe 15:52:45 https://www.gog.com/game/day_of_the_tentacle_remastered 15:53:04 That said I'm playing through the Monkey Island games with my partner 15:55:38 (The "Mansion" is Maniac Mansion. I didn't like that game so much, because I never got very far... I didn't find one crucial pixel.) 15:55:51 But DoTT is great. 15:56:53 (And the remastered version is true to the original. It has better graphics resolution, and perhaps a few more hints (I didn't notice those). I liked it.) 16:06:21 -!- b_jonas has joined. 16:06:38 int-e: wow cool design 16:07:46 also I found out why that infinite loop was giving an error 16:08:12 (oh those Python code typos) 16:08:26 what infinite loop? 16:08:54 [__+][][]? 16:10:22 I had written “if state is CodeChunk” when it needed to be “if type(state) is CodeChunk”, and the code resetting instruction pointer in that code block wasn’t run, and __+ was not reëvaluated 16:10:48 (hm those dots are indeed strange when you read them) 16:11:18 arseniiv: don't you want if instanceof(state, CodeChunk) ? 16:11:36 using type() for that is usually not a good practice 16:11:46 yeah, I’d write that, but I intend not to subclass there 16:12:01 it would be semantically cumbersome 16:12:08 https://docs.python.org/3/faq/programming.html#how-do-i-check-if-an-object-is-an-instance-of-a-given-class-or-of-a-subclass-of-it 16:12:23 so it's `if isinstance(state, CodeChunk)` 16:12:29 I hade the name wrong 16:13:39 b_jonas: yeah, one time I had made the same mistake 16:13:50 writing “instanceof” 16:14:10 so much easier in ruby, you just write CodeChunk === state 16:14:36 isn’t it weird? What === does? 16:14:42 no 16:15:13 it's smartmatch, what it does depends on the type of the lhs 16:15:21 ah 16:15:31 if the lhs is a class, it checks for class membership 16:15:37 they probably should have named it ~= or something 16:15:45 if it's a range, checks for between 16:15:51 === reminds of identity check 16:17:13 Also in JavaScript === means check if two values are the same value, except NaN and positive/negative zero; Object.is() will also check if two values are same, even NaN and positive/negative zero. 16:19:25 int-e: try to run _ _+ _+ _+~ _+~ _+~ _+~ _+ _+ [α+][α+;#][]?; in your interpreter, it may print �a0 (and some control chars) and finish, though a compliant implementation should output a single byte and then make a bad error noise 16:19:45 ah, no, it shouldn’t 16:19:55 that’s UB 16:20:12 arseniiv: I can't run that. 16:20:38 is there something from yet unsupported subset? 16:21:20 since α+ counts from the topmost bar... 16:21:40 is that always the top element of the stack? 16:23:35 -!- dingwat has quit (Quit: Connection closed for inactivity). 16:28:13 ... ugh. 16:28:52 encoding unicode points as bytes isn't so great for α 16:29:45 int-e: just have the interpreter take a..x instead 16:30:02 You could use an encoding other than Unicode if you want with bytes, is another possibility, although accepting ASCII characters probably is better 16:30:08 b_jonas: I just did that. 16:31:05 although I don't see why accepting alpha to omega is that bad. that's still just two bytes, and the first byte is fixed 16:33:41 DotT is nice :) 16:34:43 is that always the top element of the stack? => no, when there are no explicitly placed bars (as here), it’s the bottom element 16:34:56 arseniiv: I meant in your example. 16:35:11 ah, yes 16:35:33 arseniiv: I've replaced α+ by a- now, which in my interpreter, dups the top element of the stack. 16:35:57 (I felt some sort of duplication was needed... but without bars, the top is really the only reasonable reference point ;) ) 16:36:11 I think I should make a breaking change and replace bars for something more manageable 16:36:24 arseniiv: yes, make the language better earlier 16:36:46 before it gets so widely adapted that there's code relying on the current behavior 16:36:54 (not that that's likely for most esolangs, but still) 16:39:07 there would be a “section start index” which we would set via | and there would be a “cut section” operation, let’s say -, which cuts out all consecutive elements between section start index and the index specified in this command 16:39:29 and + and = would index from that section start index 16:39:35 topwards, still 16:39:53 arseniiv: anyway, this was basically expected: Ã*** Exception: Punctree.hs:(87,5)-(89,58): Non-exhaustive patterns in function go 16:40:02 thus, a normal stack without any strange uncountable bars 16:40:52 int-e: it means the impl is incomplete or maybe that the context represents an incomplete byte? 16:41:14 arseniiv: no it means that ; doesn't like printing a 7-bit character 16:41:54 which I think is undefined behavior (and probably what you alluded to) 16:42:11 (except that apparently you expected it to not just "crash") 16:42:24 int-e: also, how do you find the change? I think I’ll do it anyway just for the simplification. It breaks, but I think it will break my code more than yours(?) 16:42:43 I have no code relating to bars. 16:42:53 So I think you'll only hurt yourself. 16:43:02 int-e: no, a crash is a perfectly valid UB here. I was just playing with loops and got up with that example 16:43:41 also I considered adding typechecking (not to the specification) but then bars confused the matters 16:43:59 without them, though, it should be not that hard 16:44:05 I don't even terribly mind the bars, except that it's odd to count stack positions from the bottom of the frame. 16:44:24 (and I haven't made up my mind about how to best implement them) 16:44:46 I mostly mind the ability to pop through a frame boundary 16:44:47 this is the spirit, it makes the stack useful to store “named variables” 16:45:12 you can treat α…ω in gr+, gr= commands as a temporary names 16:45:18 for variables 16:45:47 without bars, I guarantee it would be easier 16:46:09 though I’m currently lazy to rewrite the page and my impl too 16:46:25 I’ll make a note to myself 16:46:52 (Because that means a simple pattern match isn't sufficient for popping elements... you actually have to do some scanning of the stack. This is not entirely true; one representation I thought about was a list alternating between trees and integers that count bars.) 16:48:20 so popping would collapse i : t' : j : ... into i+j : ..., and the popped value is t'. 16:49:24 But I'd much prefer modeling the stack as a list of frames. 16:53:12 int-e: now you could divide the stack into two frames (before section start and after it) 16:59:23 arseniiv: The more I think about it, the more I believe the bars are just fine (maybe not esoteric, but fine)... if you couldn't pop through them. 17:00:30 int-e: hmmm that would simplify something too 17:00:48 it would allow representing the stack as a list of frames 17:01:12 (each frame is a list of values; the bars are between consecutive frames) 17:01:20 oh! do you want multiple bars separating frames so that each frame can have its own local variables named by greek letters? 17:01:55 (the representation is possible anyway, but without popping through bars, access to the top element of the stack is much simpler) 17:02:30 though | command is still not nice, it could divide a frame not at the top, and in which way should we index elements in this case anyway? 17:03:03 b_jonas: but only the topmost frame is indexable by letters 17:03:03 arseniiv: ah I'd want to restrict that to the top frame as well, as you suggest. 17:03:12 arseniiv: right 17:03:27 int-e: I’d agree to that, it’s consistent with pop change 17:03:35 arseniiv: arguably adding all that sanity makes stuff less esoteric :P 17:03:52 and what do you think about infinitely many empty frames at the bottom of the stack? 17:04:02 (otoh you can voluntarily adhere to these constraints anyway... and I probably would) 17:04:56 int-e: hopefully context manipulation is esoteric enough to outweigh still 17:04:58 arseniiv: seems like an arbitrary choice to me :) 17:05:33 (intuitively: pick an arbitrary solution to concat xs = []) 17:06:03 > concat (repeat []) -- of course this doesn't work 17:06:09 then we could restrict gr|, gr+, gr= as suggested and it will make implementation way easier 17:06:10 mueval-core: Time limit exceeded 17:07:17 of course this doesn't work => yeah, it should start in the infinite past and then finish abruptly at a finite time, then concat would be fine 17:08:55 also your idea is good for typechecking too 17:14:32 also initially I thought about stack frame implementation, but the former behavior had a sobering effect 17:40:56 -!- laerling has joined. 17:58:47 -!- atslash has quit (Quit: This computer has gone to sleep). 18:05:39 -!- sleepnap has joined. 18:45:13 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)). 19:39:41 -!- tromp has joined. 19:59:26 -!- Phantom_Hoover has joined. 20:30:55 -!- atslash has joined. 20:47:17 -!- john_metcalf has quit (Ping timeout: 244 seconds). 20:53:15 -!- FreeFull has joined. 21:10:52 -!- sleepnap has quit (Quit: Leaving.). 21:10:55 [[ByteByteJump]] https://esolangs.org/w/index.php?diff=63901&oldid=54346 * Anthonykozar * (-11) /* External resources */ 21:12:17 -!- MDude has joined. 21:25:59 -!- sleepnap has joined. 21:26:00 -!- AnotherTest has quit (Ping timeout: 258 seconds). 21:46:24 [[Punctree]] https://esolangs.org/w/index.php?diff=63902&oldid=63870 * Arseniiv * (+466) /* Runtime */ restricting bar-related behavior as suggested by int-e; description in terms of frames 22:11:25 [[Punctree]] M https://esolangs.org/w/index.php?diff=63903&oldid=63902 * Arseniiv * (+232) /* Implementations */ new! 22:12:08 -!- sleepnap has quit (Ping timeout: 245 seconds). 22:13:06 hopefully the code is not unreadable 22:14:52 I was mainly writing it in a giant cell in a Jupyter notebook (and testing small snippets in a bunch of tiny cells), this may take its toll 22:16:15 also I’m not completely sure what things should be marked as “don’t touch” (a Python’s take on private) by underscores 22:17:30 oh, totally unrelated 22:17:49 has anyone looked at the ICFP contest? I should look at what it's about 22:22:01 -!- tromp has quit (Remote host closed the connection). 22:25:20 -!- tromp has joined. 22:26:54 -!- atslash has quit (Quit: This computer has gone to sleep). 22:39:09 -!- laerling has quit (Remote host closed the connection). 22:46:11 hi ski 22:54:17 zzo38: in M:tG, https://magic.wizards.com/en/articles/archive/news/core-set-2020-update-bulletin-2019-07-03 Core Set 2020 Update Bulletin 23:02:55 -!- arseniiv has quit (Ping timeout: 246 seconds). 23:11:51 -!- tromp has quit (Remote host closed the connection). 23:19:07 -!- b_jonas has quit (Quit: leaving). 23:32:44 -!- sleepnap has joined. 23:45:21 -!- tromp has joined. 23:49:54 -!- tromp has quit (Ping timeout: 252 seconds). 2019-07-04: 00:20:09 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 00:33:39 -!- salpynx has joined. 00:46:55 -!- sleepnap has quit (Quit: Leaving.). 00:55:38 -!- sleepnap has joined. 00:56:11 arseniiv: I've been playing with your interpreter, I think you want `stdout.buffer.write(bytes((maybe_byte,)))` for output. I get "TypeError: write() argument must be str, not bytes" without .buffer., and with it I can output ASCII and unicode 00:57:42 I'm using Linux, and I'm not sure if Windows handles the buffer differently, but I've used that pattern to convert raw bytes to displayable output which includes multibyte characters. 00:58:53 silly first example: "__+_+_+_+_+~_+~_+~_+~;__+_+~_+~_+_+_+_+_+;__+_+~_+~_+~_+_+_+~_+~;__+_+~_+_+_+~_+~_+_+;__+~_+_+~_+~_+_+~_+~_+~;__+~_+_+_+~_+_+~_+~_+;__+~_+~_+_+~_+~_+~_+~_+;__+_+_+_+_+~_+~_+~_+~;__+_+~_+~_+_+_+_+_+;__+_+~_+~_+_+~_+_+~_+;__+_+~_+_+_+~_+~_+_+;" 01:03:08 Gen Punctree code to output a string: for b in bytes(u'your output here', 'utf8'): print('_' + bin(b)[2:].zfill(8).replace('1', '_+').replace('0', '_+~'), end=';') 01:21:37 -!- sleepnap has quit (Ping timeout: 248 seconds). 01:27:37 -!- tromp has joined. 01:31:51 -!- tromp has quit (Ping timeout: 252 seconds). 01:36:42 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:39:43 -!- Lord_of_Life has joined. 01:46:15 -!- ban has joined. 01:46:39 -!- ban has changed nick to Guest18755. 01:47:32 how is development in C? 01:47:50 orgasmic 01:48:15 C is TG 01:48:17 -!- tromp has joined. 01:48:26 what is TG? 01:49:17 Too Good 01:49:18 `? tg 01:49:20 TG is short for Turing-Gödel, the highest possible level of difficulty for a multiplayer game. At this level, it's undecidable whether you can manage to halt before losing or not. 01:50:03 @ 01:50:23 @HackEso nice info. 01:50:23 Unknown command, try @list 01:50:54 @kmc have you experienced it? 01:50:54 Maybe you meant: src rc ghc 01:52:34 @HackEso is it a CS conceptV 01:52:34 Unknown command, try @list 01:52:46 -!- tromp has quit (Ping timeout: 252 seconds). 01:53:11 Hackeso is it a CS concept? 01:53:26 kmc have you experienced it? 01:54:17 @list 01:54:17 What module? Try @listmodules for some ideas. 01:54:27 @listmodules 01:54:27 activity base bf check compose dice dict djinn dummy elite eval filter free fresh haddock help hoogle instances irc karma localtime metar more oeis offlineRC pl pointful poll pretty quote search 01:54:27 slap source spell system tell ticker todo topic type undo unlambda unmtl version where 01:54:52 @list localtime 01:54:52 localtime provides: time localtime localtime-reply 01:55:04 @list localtime time 01:55:04 No module "localtime time" loaded 01:55:24 @list localtime localtime 01:55:25 No module "localtime localtime" loaded 01:55:33 @list time 01:55:33 localtime provides: time localtime localtime-reply 02:00:36 -!- Guest18755 has quit (Remote host closed the connection). 02:22:20 -!- FreeFull has quit. 02:52:39 -!- salpynx has quit (Ping timeout: 260 seconds). 04:40:19 -!- salpynx has joined. 04:55:46 [[User:JonoCode9374]] M https://esolangs.org/w/index.php?diff=63904&oldid=62711 * JonoCode9374 * (-778) 06:11:10 -!- Sgeo_ has joined. 06:14:04 -!- Sgeo has quit (Ping timeout: 244 seconds). 06:50:50 [[Turing machine]] M https://esolangs.org/w/index.php?diff=63905&oldid=57244 * A * (+109) 07:04:28 [[User:A/H spec]] M https://esolangs.org/w/index.php?diff=63906&oldid=63900 * A * (-428) /* Extended H Reference */ 08:00:01 -!- AnotherTest has joined. 08:40:26 -!- atslash has joined. 08:52:02 -!- tromp has joined. 09:06:53 -!- arseniiv has joined. 09:23:49 -!- tromp has quit (Remote host closed the connection). 09:36:30 -!- tromp has joined. 11:26:59 -!- salpynx has quit (Remote host closed the connection). 12:16:23 -!- john_metcalf has joined. 12:25:49 -!- wob_jonas has joined. 12:26:13 fizzie: re https://esolangs.org/logs/2019-04.html#l1C as in what "IV" stands for in pokemon video games, https://www.youtube.com/watch?v=PupgZtt_KEw&feature=youtu.be&t=331 claims "individual values" 12:27:02 [[Hardlang]] N https://esolangs.org/w/index.php?oldid=63907 * A * (+761) Dump everything in my head today into this wiki 12:29:03 [[SPADE]] M https://esolangs.org/w/index.php?diff=63908&oldid=60247 * A * (-18) 13:17:21 -!- john_metcalf has quit (Ping timeout: 248 seconds). 13:22:24 re SPADE: A is a spoilerer 13:28:23 -!- arseniiv has quit (Ping timeout: 245 seconds). 13:37:18 -!- Lord_of_Life_ has joined. 13:39:13 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:39:15 -!- arseniiv has joined. 13:39:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 14:42:51 -!- sleepnap has joined. 14:58:47 -!- wob_jonas has quit (Remote host closed the connection). 16:45:53 -!- b_jonas has joined. 18:19:48 -!- tromp has quit (Remote host closed the connection). 18:20:21 -!- tromp has joined. 18:24:56 -!- tromp has quit (Ping timeout: 252 seconds). 19:27:46 -!- tromp has joined. 19:32:02 -!- tromp has quit (Ping timeout: 252 seconds). 20:03:21 -!- tromp has joined. 20:04:37 -!- sleepnap has quit (Quit: Leaving.). 20:07:00 [[Rotpai]] N https://esolangs.org/w/index.php?oldid=63909 * Mipinggfxgbtftybfhfyhfn * (+1155) Created page with "'''Rotpai''' is an [[esoteric programming language]] made by [[User:Mipinggfxgbtftybfhfyhfn]]. ==Syntax and execution== A Rotpai program is a list of ordered pairs of characte..." 20:07:36 -!- tromp has quit (Ping timeout: 252 seconds). 20:08:13 [[Rotpai]] https://esolangs.org/w/index.php?diff=63910&oldid=63909 * Mipinggfxgbtftybfhfyhfn * (-30) 20:11:43 [[Language list]] https://esolangs.org/w/index.php?diff=63911&oldid=63603 * Mipinggfxgbtftybfhfyhfn * (+13) /* R */ 20:21:38 -!- FreeFull has joined. 20:46:06 -!- AnotherTest has quit (Ping timeout: 252 seconds). 21:23:02 -!- tromp has joined. 21:32:36 -!- AnotherTest has joined. 21:45:20 -!- salpynx has joined. 21:49:10 -!- AnotherTest has quit (Ping timeout: 252 seconds). 21:52:59 -!- tromp has quit (Remote host closed the connection). 22:02:11 -!- tromp has joined. 22:04:47 -!- sftp has quit (Excess Flood). 22:05:06 -!- sftp has joined. 22:23:00 -!- aji has joined. 22:23:05 -!- tromp has quit (Remote host closed the connection). 22:33:46 -!- tromp has joined. 22:38:19 -!- tromp has quit (Remote host closed the connection). 22:44:16 -!- tromp has joined. 22:48:35 -!- tromp has quit (Ping timeout: 252 seconds). 23:06:56 I love this warning: http://paste.debian.net/hidden/d50f8b09/ 23:24:51 -!- tromp has joined. 23:29:03 -!- tromp has quit (Ping timeout: 250 seconds). 23:55:48 -!- b_jonas has quit (Quit: leaving). 2019-07-05: 00:02:55 -!- Bowserinator has quit (Read error: Connection reset by peer). 00:03:14 -!- Bowserinator has joined. 00:22:49 shachaf: do you think languages should have better support for fixed point arithmetic 00:23:01 programmers use floats for all kinds of things that don't have much dynamic range 00:23:10 e.g. I'm using floats for UNIX timestamps down to microsecond 00:23:25 but those will all have the same exponent 00:24:08 also, do you think binary or decimal floating point is better 00:24:10 binary's faster of course 00:24:15 but decimal would match the way I'm thinking about this 00:24:55 which is "10 digit integer + 6 decimal places" 00:25:11 conveniently, people already specify these kinds of things in format strings. 00:25:32 if you had a fixed point type of this form you could also format in a nice table-friendly way without repeating yourself. 00:25:44 but it would have to really be as convenient as floats or people won't bother 00:25:53 people even use floats for money, which is so scow 00:42:34 [[Talk:Iota]] https://esolangs.org/w/index.php?diff=63912&oldid=40423 * Salpynx * (+554) sharing a command to split Iota into 'readable' CL primitives 00:44:13 -!- arseniiv has quit (Ping timeout: 245 seconds). 01:12:43 -!- tromp has joined. 01:17:58 -!- tromp has quit (Ping timeout: 276 seconds). 01:39:13 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:40:38 -!- Lord_of_Life has joined. 02:08:30 -!- FreeFull has quit. 02:15:36 [[Feta]] M https://esolangs.org/w/index.php?diff=63913&oldid=56997 * Voltage2007 * (+14) 03:00:45 -!- tromp has joined. 03:05:36 -!- tromp has quit (Ping timeout: 252 seconds). 03:09:22 -!- ^ has changed nick to [. 03:10:03 -!- [ has changed nick to ^. 03:11:46 -!- ^ has changed nick to [. 03:25:10 ^ is a cooler name, because its is part of Punctree, which is a hip new language. [ is bf, which is old-fashioned and boring. 03:26:25 I want to make a joke about about [ = Java and ^=Ruby, but I'm not sure that Ruby is still the fashionable cool language. What is the new fashionable language? I'd guess Haskell (from experience) but I'm not so confident that those ppl were actually the "cool kids". I may have lost the ability to judge. 03:27:09 probably JavaScript or Rust 03:27:16 Ruby hasn't been cool in a while 03:28:16 haskell was never really cool I don't think 03:28:25 I also don't program anymore :/ 03:28:27 so what do I know 03:29:52 i have no patience for the cool kids 03:30:10 Rust is a good candidate. I was thinking maybe Go too, but I haven't met anyone who programmed in Go, just those who used it as part of other things 03:30:27 Go is polarizing 03:30:52 some people love it, and the rest realize that it's a dumbed down language and the fan club is essentially proud of being too lazy to learn anything better 03:30:57 the Go community is fiercly anti-intellectual 03:31:47 Go was explicitly, according to its creator, designed to wring some level of productivity out of mediocre programmers 03:31:56 which is of course what a company like Google needs 03:32:06 and probably a lot of working Go programmers are fine with tha characterization 03:32:10 but the Go 'fan club' can't admit it 03:32:43 so they have to pretend all the dumbing down is actually brilliant and that the features Go lacks (such as generics, which even Java got 15 years ago) are useless 03:33:02 instead of admitting the designers basically don't trust them to use generics correctly 03:33:19 Ruby jumped to mind because it seemed to have a very conscious 'cool kid' character, which was kind of funny, even though I actually liked using it. I liked Ruby, not so much the Rails bit. 03:33:37 I think the Ruby hipsters have moved on to JavaScript and are now trying to ruin Rust too 03:33:48 That might explain why I haven't met any Go programmers :) 03:35:06 I do know some Ruby -> Rust people. That fits. 03:35:35 they've aggressively marketed it to web people with no systems experience 03:35:44 I used to be in favor of that strategy 03:35:48 now, not so much 03:35:56 largely because those people bring in a bunch of cultural baggage I don't like 03:36:59 also they flat out ignore the needs of actual systems programmers 03:37:09 like, a lot of the web people legitimately do not grasp the need for reproducable builds 03:37:21 why shouldn't you just run every library on the current version from the package repo? 03:37:24 :( 03:38:48 What I have seen of Rust seems like it has potential, and big advantages over C, but, yes, some of the over zealous evangelism and over-marketing was off-putting. I don't have much call to use it for any personal projects, but would like to pick it up if something seemed applicable. 03:39:35 I tend to do everything in python now, it's become too much of a comfort. 03:39:58 I contributed to Rust for a long time and really regret it 03:40:07 because I got emotionally invested and they took it in a direction that really bothers me 03:40:18 but that is tied up in some personal issues that I don't need to drag up again 03:40:36 anyway 03:40:40 shame (about the big involvement + regret) 03:40:54 whatever you think of the community, it is an excellent language 03:41:03 that unlike most languages, brings something actually new to the table 03:41:08 I consider it a C++ successor, not a C successor 03:41:11 it's much more complicated than C 03:41:15 C is a low-abstraction language 03:41:19 C++ and Rust are high-abstraction languages 03:41:38 Have there been (significant) Rust forks resulting from some of those direction / community issues? (I have not been following) 03:41:53 there are some alternative communities but the leadership tries their best to shut down discussion of them 03:42:03 in large part, Rust is a redesign of C++ without the historical baggage 03:42:10 it has the same underlying concepts as C++11 03:42:18 of course, it already has its own historical baggage 03:42:27 sorry, I used 'C' lazily :) 03:42:29 then you have the static memory safety stuff, which has no analogue in C++ 03:43:39 the leadership have been doing more and more things to piss off the community 03:43:47 while adopting a condescending "we know what's best for you" attitude 03:43:52 Do you eso-program (don 03:43:58 I think the odds of a substantial community schism are high 03:44:08 't know if that's better) or still progam for fun? 03:44:12 the latest is that they're shutting down IRC and moving to Discord, which a lot of people hate 03:44:19 and the community had basically no say in this 03:44:45 they make a big deal about their code of conduct and everything they do is supposedly to be 'friendly and welcoming' but if you don't find it friendly and welcoming, they don't want to hear about it 03:44:53 it's just empty self-praise 03:44:55 no 03:44:58 I don't write much code 03:45:06 I write little programs when I need to get something done 03:45:09 I don't code for fun 03:45:15 and I haven't contributed to OSS in a long time 03:45:18 which makes me really really sad 03:45:28 because it was one of the few things I can do that has value to a lot of other people 03:45:32 it's a force multiplier 03:45:42 most people don't ever have an opportunity to make things that benefit potentially millions of people at zero marginal cost 03:45:46 I did, and I can't anymore :( 03:46:01 also OSS is very well aligned with my anarchist values 03:46:02 or was 03:46:06 that too has been ruined 03:47:19 mostly because it's big money now 03:47:25 but also because of the code of conduct nonsense 03:49:03 That is unfortunate :( Getting caught up in community politics can be draining. I do stuff with open data and got involved with wikidata, and accidentally stumbled on a community conflict early, which was very draining and a bit of storm in a teacup, but it caused me to back off 03:49:21 substantially and just interact via data and code 03:49:26 yeah 03:49:32 maybe one day I will be able to do that 03:49:45 i've had a rough few years tbh 03:51:42 sorry to hear... code can be fun (I guess that's why we're here?) 03:52:03 code isn't really fun for me anymore 03:52:06 but idk 03:52:12 talking *about* programming is still kind of interesting 03:52:15 and i like the people here 03:52:25 and I used to hang out here years ago in a happier (in some ways) time 03:55:43 yeah, seems a nice group here. Suitably quiet and low volume. I'm v. new, but feel like sticking around for a bit. The impression of history and incomprehesible in-jokes from the past gives a aura of mystique 03:56:01 yes :) 03:56:03 it's nice that way 03:56:12 your nick looks familiar, I don't remember if we maybe crossed paths before? 03:56:21 * kmc offers hugs 03:57:42 I think I responded to some kind of retro-console coding hw or maybe gaming link you posted a while back, but I don't think we've chatted in much depth before 03:58:12 Nice chatting to you :) 04:00:53 Thanks for your qualified opinion on Rust too, I'm glad you think it's technically a good lang. I'm solidifying my vaguer opinions accordingly 04:02:01 higan 04:06:13 hichaf 04:06:20 salpynx: <3 04:06:27 nice chatting with you too 04:10:44 what's tg today 04:13:28 i got my oscilloscope set up as a network connected data logger 04:13:31 and am testing a battery using it 04:13:33 so that's fun 04:40:40 -!- tromp has joined. 04:45:19 -!- tromp has quit (Ping timeout: 276 seconds). 05:02:10 tg 05:02:51 and i now even have it set up to text me 05:02:54 if the voltage gets too low 05:02:56 so I can end the test 05:03:04 I do enjoy coding when it's little things like that 05:03:08 to accomplish some other goal 05:03:11 I do feel clever doing it 05:18:22 -!- tromp has joined. 05:22:44 -!- tromp has quit (Ping timeout: 252 seconds). 05:28:24 [[Zull]] https://esolangs.org/w/index.php?diff=63914&oldid=59444 * Voltage2007 * (-118) 05:34:24 [[Zull]] https://esolangs.org/w/index.php?diff=63915&oldid=63914 * Voltage2007 * (+13) This is a pretty good joke. 07:01:49 -!- tromp has joined. 07:21:57 -!- tromp has quit (Remote host closed the connection). 07:24:16 -!- john_metcalf has joined. 07:38:21 [[1=0]] https://esolangs.org/w/index.php?diff=63916&oldid=62458 * Voltage2007 * (+348) 07:47:30 -!- wob_jonas has joined. 07:50:35 -!- tromp has joined. 08:26:10 [[*]] https://esolangs.org/w/index.php?diff=63917&oldid=57869 * Voltage2007 * (+328) 08:32:14 -!- AnotherTest has joined. 08:32:39 [[*]] https://esolangs.org/w/index.php?diff=63918&oldid=63917 * Voltage2007 * (+7) 08:45:31 [[+-]] https://esolangs.org/w/index.php?diff=63919&oldid=63867 * Voltage2007 * (+641) 10:40:01 -!- john_metcalf has quit (Ping timeout: 268 seconds). 11:06:36 -!- AnotherTest has quit (Ping timeout: 272 seconds). 11:08:51 -!- salpynx has quit (Remote host closed the connection). 12:24:52 -!- tromp has quit (Remote host closed the connection). 12:36:45 -!- tromp has joined. 13:20:13 [[Zull]] M https://esolangs.org/w/index.php?diff=63920&oldid=63915 * A * (+12) 13:23:55 [[User:Cortex]] M https://esolangs.org/w/index.php?diff=63921&oldid=63562 * A * (+12) /* Languages I made */ 13:28:49 -!- arseniiv has joined. 13:39:28 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 13:43:13 -!- Lord_of_Life has joined. 13:59:29 -!- MDude has quit (Ping timeout: 248 seconds). 14:01:38 -!- border has joined. 14:27:34 -!- border has quit (Ping timeout: 268 seconds). 14:28:28 -!- border has joined. 14:36:00 -!- border has quit (Remote host closed the connection). 14:37:19 -!- sprocklem has quit (Ping timeout: 246 seconds). 14:40:32 -!- wob_jonas has quit (Remote host closed the connection). 14:56:58 -!- john_metcalf has joined. 15:08:22 -!- john_metcalf has quit (Ping timeout: 245 seconds). 15:50:54 -!- AnotherTest has joined. 15:57:48 [[Pistons & Pistons]] N https://esolangs.org/w/index.php?oldid=63922 * Areallycoolusername * (+2242) Created page with "'''Pistons & Pistons''' (hereafter used as Pi&Pi), is an [[esoteric programming language]] made by [User: Areallycoolusername|Areallycoolusername]. It utilizes the Unicode Whi..." 16:01:12 -!- border has joined. 16:07:26 -!- budonyc has joined. 16:15:50 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63923&oldid=63922 * Areallycoolusername * (+463) 16:22:45 -!- b_jonas has joined. 16:23:13 `? wisdom 16:23:14 wisdom is always factually accurate, except for this entry, and, uh, that other one? It started with, like, an ø? 16:26:05 Should we put an ugly all-uppercase disclaimer next to this? 16:26:35 What would it disclaim? 16:27:50 warranty, liability for damages, etc 16:29:22 you know, like THIS WISDOM IS DISTRIBUTED "AS IS", WITHOUT WARRANTY OF ANY KIND etc and IN NO EVENT SHALL #ESOTERIC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 16:29:27 OUT OF OR IN CONNECTION WITH blah blah 16:30:09 I think maybe if we have that it should be in a separate wisdom 16:30:22 Like in `? wisdom, "see warranty" 16:30:30 And have `? warranty be along those lines 16:30:42 yeah 16:30:51 only it's tricky, because the full disclaimer won't fit in one irc line I think 16:35:27 `? warranty 16:35:28 HACKEGO COMES WITHOUT WARRANTY, EXPRESS OR IMPLIED, AND IS UNFIT FOR ANY PURPOSE, INCLUDING THE PURPOSE OF BEING UNFIT FOR ANYTHING. Its warranty has expired. 16:35:31 that already exists 16:36:59 but it's not the full disclaimer 16:38:26 `slwd warrenty//s=G=[GS]= 16:38:27 Roswbud! 16:38:30 `slwd warranty//s=G=[GS]= 16:38:32 warranty//HACKE[GS]O COMES WITHOUT WARRANTY, EXPRESS OR IMPLIED, AND IS UNFIT FOR ANY PURPOSE, INCLUDING THE PURPOSE OF BEING UNFIT FOR ANYTHING. Its warranty has expired. 16:38:55 Sun, I'm coming for you... 16:39:26 Pokemon Sun? 16:39:52 `? int-e 16:39:53 int-e är inte svensk. Hen kommer att spränga solen. Hen står för sig själv. Hen gillar inte färger, men han gillar dissonans. Er hat ein Hipster-Spiel gekauft. 16:40:00 Second sentence. 16:45:00 -!- border has quit (Ping timeout: 258 seconds). 17:01:51 * ski . o O ( `(womdpw cöpse' ) 17:19:09 int-e: no no no not my Sun, come for another one please 17:20:13 also the Sun it doesn’t exist, so you can’t come for it^W^W^W^W^W^W^W^W^W^W^W^W 17:39:13 -!- LKoen has joined. 17:57:03 * ski . o O ( ) 19:00:34 -!- border has joined. 19:27:30 [[Talk:Pistons & Pistons]] N https://esolangs.org/w/index.php?oldid=63924 * Salpynx * (+598) Implemented in Minecraft 19:41:19 -!- border has quit (Remote host closed the connection). 19:42:27 -!- border has joined. 20:01:58 -!- border has quit (Quit: Ping timeout (120 seconds)). 20:04:07 -!- border has joined. 20:24:00 -!- FreeFull has joined. 20:25:08 -!- border has quit (Remote host closed the connection). 20:34:45 I looked at the recent change to Magic: the Gathering card "Brutal Expulsion". I would have instead written "if that permanent would die this turn". 20:50:02 -!- AnotherTest has quit (Ping timeout: 245 seconds). 20:50:06 zzo38: Instead of Magic: the Gathering, I'm playing the computer game Slay: the Spire 20:50:37 Do you like this? 20:51:51 I don't know 20:52:18 . o O ( https://esolangs.org/logs/2019-07-05.html#lGd ) 20:52:44 int-e: ? 20:53:02 shachaf: just trying a new way of negative reinforcement here 20:53:39 Oh, I get it. 20:53:49 It's still on my screen so it doesn't work. 20:57:43 -!- LKoen has quit (Remote host closed the connection). 21:19:41 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63925&oldid=63924 * Areallycoolusername * (+200) 21:23:14 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=63926&oldid=63639 * Areallycoolusername * (+24) /* Full List of languages I Made */ 21:24:19 [[Language list]] https://esolangs.org/w/index.php?diff=63927&oldid=63911 * Areallycoolusername * (+24) /* P */ 21:25:05 -!- LKoen has joined. 21:26:26 -!- AnotherTest has joined. 21:27:04 -!- LKoen has quit (Remote host closed the connection). 21:28:21 [[Talk:Pit]] N https://esolangs.org/w/index.php?oldid=63928 * Areallycoolusername * (+217) Created page with "== Paradox == I think this language is so simple, it seems quite complicated, thus defeating the purpose of the langauage. Many other esolangs such as Brainfuck, believe it or..." 21:33:36 -!- AnotherTest has quit (Ping timeout: 272 seconds). 21:34:50 -!- LKoen has joined. 21:36:50 [[D]] https://esolangs.org/w/index.php?diff=63929&oldid=50807 * Voltage2007 * (+1) 22:12:21 -!- MDude has joined. 22:16:46 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 22:19:20 -!- sprocklem has joined. 22:21:43 -!- unlimiter has joined. 23:04:10 -!- atslash has quit (Quit: This computer has gone to sleep). 23:09:19 -!- unlimiter has quit (Quit: WeeChat 2.5). 23:23:02 -!- aji has quit (Remote host closed the connection). 23:23:45 -!- aji has joined. 2019-07-06: 00:55:29 -!- arseniiv has quit (Ping timeout: 248 seconds). 00:57:58 -!- ski has quit (Ping timeout: 245 seconds). 00:59:32 -!- ski has joined. 01:39:37 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:43:09 -!- Lord_of_Life has joined. 02:56:29 -!- moei has joined. 03:07:38 [[A:;]] https://esolangs.org/w/index.php?diff=63930&oldid=62159 * Voltage2007 * (+244) 03:22:07 -!- moei has quit (Ping timeout: 245 seconds). 04:01:00 -!- moei has joined. 04:32:52 -!- MDude has quit (Ping timeout: 272 seconds). 05:05:53 -!- FreeFull has quit. 06:16:10 -!- [ has changed nick to uplime. 06:25:42 [[Turth-machine]] https://esolangs.org/w/index.php?diff=63931&oldid=56519 * Voltage2007 * (+299) 06:32:52 [[A:;]] https://esolangs.org/w/index.php?diff=63932&oldid=63930 * Voltage2007 * (-218) 07:08:36 -!- atslash has joined. 07:15:46 -!- AnotherTest has joined. 07:25:50 -!- AnotherTest has quit (Ping timeout: 252 seconds). 08:43:32 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=63933&oldid=63923 * A * (+170) /* Infinite Loop */ 08:49:40 -!- LKoen has joined. 08:50:28 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=63934&oldid=63925 * A * (+541) 08:53:36 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=63935&oldid=63933 * A * (+121) /* Infinite Loop */ 08:56:24 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=63936&oldid=63934 * A * (+139) 08:56:39 -!- atslash has quit (Quit: This computer has gone to sleep). 09:13:22 -!- john_metcalf has joined. 09:20:52 -!- mniip has quit (Ping timeout: 600 seconds). 09:46:40 -!- Sgeo__ has joined. 09:48:09 -!- arseniiv has joined. 09:49:38 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 09:51:08 [[Special:Log/move]] move * Arcorann * moved [[SLOBOL]] to [[SLOBOL (2015 language)]]: If you've invented a language with the same name as an existing one yours should have the bracketed bit afterwards 09:51:08 [[Special:Log/move]] move * Arcorann * moved [[Talk:SLOBOL]] to [[Talk:SLOBOL (2015 language)]]: If you've invented a language with the same name as an existing one yours should have the bracketed bit afterwards 09:54:38 [[SLOBOL]] https://esolangs.org/w/index.php?diff=63941&oldid=63938 * Arcorann * (+752) 09:55:29 [[Language list]] https://esolangs.org/w/index.php?diff=63942&oldid=63927 * Arcorann * (+8) /* A */ 10:01:07 Taneb: did you invent any good data structures or algorithms lately twh 10:01:53 Not recently I'm afraid 10:02:00 I haven't had much free time for experimentation lately 10:03:29 oh no :'( 10:06:34 do you have any old ones for me 10:24:16 shachaf: you don't want to think about the Old Ones. and if you have to, at least don't remind everyone else on the channel about them. 10:35:33 What's the harm of thinking abou the Old Ones? 10:35:36 They're great. 10:36:04 -!- john_metcalf has quit (Ping timeout: 246 seconds). 10:46:47 [[Forks & Forks]] N https://esolangs.org/w/index.php?oldid=63943 * A * (+515) Simplify Pistons & Pistons 10:57:19 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63944&oldid=63943 * A * (+605) /* Symbols */ 11:01:55 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63945&oldid=63944 * A * (+434) 11:07:45 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63946&oldid=63945 * A * (+544) 11:19:37 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63947&oldid=63946 * A * (+621) 11:22:45 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63948&oldid=63947 * A * (+114) /* Symbols */ 11:25:22 [[Forks & Forks]] M https://esolangs.org/w/index.php?diff=63949&oldid=63948 * A * (+189) 11:43:12 -!- atslash has joined. 12:11:29 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 12:50:49 [[User:YamTokTpaFa/sandbox3]] https://esolangs.org/w/index.php?diff=63950&oldid=62026 * YamTokTpaFa * (-2) 12:52:47 [[User:YamTokTpaFa/sandbox3]] https://esolangs.org/w/index.php?diff=63951&oldid=63950 * YamTokTpaFa * (+101) 12:53:23 [[POGAACK]] M https://esolangs.org/w/index.php?diff=63952&oldid=49935 * YamTokTpaFa * (+288) 12:59:39 [[Ante]] https://esolangs.org/w/index.php?diff=63953&oldid=41535 * YamTokTpaFa * (+42) 13:06:24 [[Nairb]] https://esolangs.org/w/index.php?diff=63954&oldid=50931 * YamTokTpaFa * (+168) More edits plz. 13:06:53 [[Tweet]] https://esolangs.org/w/index.php?diff=63955&oldid=49061 * YamTokTpaFa * (+29) +CAT 13:07:50 [[Print "deadfish"]] https://esolangs.org/w/index.php?diff=63956&oldid=47289 * YamTokTpaFa * (+24) Y U NO +CAT ? 13:09:44 [[Category:Works-in-Progress]] https://esolangs.org/w/index.php?diff=63957&oldid=44863 * YamTokTpaFa * (+24) Let's +CAT 13:11:27 -!- LKoen has joined. 13:12:54 [[User talk:Oerjan]] https://esolangs.org/w/index.php?diff=63958&oldid=62023 * YamTokTpaFa * (+515) /* I have lots of things I'd like to discuss. */ new section 13:13:39 [[User talk:Oerjan]] https://esolangs.org/w/index.php?diff=63959&oldid=63958 * YamTokTpaFa * (+122) /* I have lots of things I'd like to discuss. */ 13:20:38 shachaf: you don't want to think about the Old Ones. and if you have to, at least don't remind everyone else on the channel about them. => too late, I’m already here 13:21:49 -!- arseniiv has left ("gone too far"). 13:21:57 -!- arseniiv has joined. 13:28:29 -!- MDude has joined. 13:40:31 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 13:42:24 -!- Lord_of_Life has joined. 13:52:08 -!- MDude has quit (Ping timeout: 245 seconds). 13:59:50 -!- unlimiter has joined. 14:18:25 -!- atslash has quit (Quit: This computer has gone to sleep). 14:28:25 -!- mniip has joined. 14:36:53 -!- unlimiter has quit (Quit: Cya guys!). 15:24:47 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”). 16:08:49 -!- iconmaster has joined. 16:32:15 -!- AnotherTest has joined. 16:47:13 -!- iconmaster has quit (Ping timeout: 276 seconds). 16:47:36 -!- border has joined. 16:58:19 -!- unlimiter has joined. 17:02:26 -!- unlimiter has quit (Client Quit). 17:14:27 -!- border has quit (Remote host closed the connection). 17:31:07 -!- iconmaster has joined. 17:31:18 -!- iconmaster has quit (Read error: Connection reset by peer). 17:45:52 -!- mniip has quit (Ping timeout: 615 seconds). 17:50:52 -!- mniip has joined. 18:38:54 -!- laerling has joined. 18:50:19 do you like the Niagara board game? 18:54:21 -!- yaewa has joined. 18:55:32 -!- moei has quit (Ping timeout: 244 seconds). 19:01:37 -!- moei has joined. 19:04:01 -!- FreeFull has joined. 19:05:06 -!- yaewa has quit (Ping timeout: 258 seconds). 19:21:18 I don't know what game 19:33:06 So, it's easy enough to come up with a Turing machine that halts if and only if ZFC is inconsistent. 19:33:15 I wonder about going the other way, though. 19:33:53 Consider a Turing machine C that halts if and only if the Collatz conjecture has a looping counterexample. 19:34:26 Can we come up with a set theory that is inconsistent if and only if this Turing machine halts? 19:34:34 tswett[m]: The opposite would make consistency of ZFC decidable, wouldn't it? So you would be showing that ZFC is inconsistent, I think. 19:35:21 I'm asking mostly because Niagara is a multiplayer game that could be reasonably played on irc, using a bot that implements the game rules 19:35:28 (But this is not what you asked.) 19:35:51 Now, we could do something boring, like take an existing set theory and add an axiom asserting that the Collatz conjecture has no such counterexamples. 19:36:19 Well... boring is good. :P 19:36:21 I wonder if we could do it in a more interesting and "natural" way. 19:44:30 I doubt it. I don't know. Ask a proof theorist :) 19:50:09 -!- AnotherTest has quit (Ping timeout: 250 seconds). 19:54:32 I am sure I can play chess on IRC, as well as most other methods of communication. 19:55:21 sure, it's not the only such game. some card games work too. 19:55:54 Maybe it is, but I think card games is more difficult. 19:58:13 What card game do you think will work? 19:58:25 Do you know how to play poker on IRC? 19:59:00 with a trusted bot that does the randomness. I don't want to mess with the cryptographic magic that lets you avoid that. 19:59:18 I don't even understand how some of that cryptographic magic works. 19:59:26 I would think poker would be difficult to do. But chess you can do easily; just write the moves, is all that is needed. 19:59:54 and in poker, you just write the raises and keeps and folds 20:00:03 why is that harder? 20:00:10 Because you need the cards. 20:00:22 Poker could be done with a bot that displays private cards to private messages and then public cards could be mentioned in the channel, though. 20:00:26 sure. the GM bot tells the cards to you in private messages 20:00:32 exactly 20:00:53 you want the inverse for Niagara, where you send simultaneous move choices to the bot in private message 20:01:00 O, OK. 20:01:01 Oh, I meant the cryptographic magic version without a trusted bot. 20:01:11 part of the game has each player choose a card from their hand secretly, then revealing all of them 20:01:22 What I meant is that chess you don't need the bot or any private messages 20:01:29 shachaf: I really don't understand how that works for poker and similar card games, even in theory 20:01:39 b_jonas: O, so it is a card game. 20:01:52 it is reputed to be possible though, and I believe that 20:02:01 zzo38: yes, that's true, for chess you don't need private messages 20:02:13 because it's a full information game 20:17:01 b_jonas: is there a light TL;DR description of Niagara you could link to? 20:17:21 I’m interested in playing games over text channels via bots 20:18:30 though I’m also very partially interested in that cryptographic magic, purely for understanding sake, so if that topic will arise in the future, I’m in 20:19:09 also, e4 20:19:43 arseniiv: I don't know. https://boardgamegeek.com/boardgame/13308/niagara has full description. but I can try to give a short description in a few lines of irc, without the full rules 20:20:13 this is a German style board game for 3 to 5 players 20:20:53 the fluff is that you are controlling canoes to collect gems on a river that has a waterfall, if you collect gems you win, if you fall down the waterfall you're penalized 20:21:33 the board has a river that's like five map squares of straight river, then below that, a fork with two map squares on either branch, then below that a waterfall 20:22:52 there are five mines on the shore where the gems start, three next to the lower three squares of the straight part, one shared between the upper squares of the two branches of the fork, and one shared between the lower squares 20:23:24 there's a base camp on the shore next to the topmost square (there's nothing at the shore next to the square below that) 20:24:33 the gimmick of the game is that the river flows down, which moves the floor of each water square one square down in the main branch, then the fifth square moves to one of the branches of the forks alternatingly, pushing the upper square of that branch to the lower square and the lower square to destruction by waterfall, while the other branch doesn't move in that flow 20:24:51 when floors move this way, canoes on them move with them 20:25:16 the way how the river flowing is computed is interesting: 20:25:50 each player has a hand of seven cards, called 1 2 3 4 5 6 R, that they use up in seven consecutive turns then get the full hand back 20:26:15 at the start of the turn, each player simultaneously secretly chooses a card from their hand to use for that turn, then they reveal it 20:26:43 then they do actions with their canoes, generally they paddle as many tiles up or down with each canoe as their card shows, but the details are complicated 20:27:20 and then the river flows as many tiles as the smallest number card revealed among the players, modified by the weather which can be one of -1, 0, 1, 2, and stays constant until a player uses the R card to adjust it 20:27:57 so if you use a high card, you get to move your canoe long distance, but you risk that other players also bid a high number, in which case the river flows a lot down, bringing your canoes closer to the peril at the waterfall 20:29:16 your can a gem from the mines on the shore into your canoe, or steal them from an other player's canoe, and transport them with your canoe. you can unload them at your base, where they're owned by you and mostly safe, the aim is to collect enough gems at your base; you can also strategically unload a gem at a mine 20:30:28 then the fifth square moves to one of the branches of the forks alternatingly => oh, nice, actually! 20:30:38 for the movement, each of your two canoes move, except when both are at your home base, in which case only one moves. they either move as many tiles as your card shows, up or down, or two tiles less than that in which case you load or unload a gem to that canoe from a mine either before or after moving the canoe, and you choose the move independently for your two canoes 20:31:17 the movement itself is sequential in seating order amongst the players, the player who moves first in this round moves last in the next round 20:31:50 you can't move less than the card says, except when you move to the home base, in which case it's free 20:32:21 the details are more complicated, boardgamegeek has a full rules sheet and photos of the board that you can use to reconstruct everything 20:35:08 b_jonas: thank you, seems very decent! 20:35:56 if someone starts writing a bot in a language I understand, maybe I’ll try to help 20:36:38 though not knowing the rules in detail as of now, I can’t suggest anything useful 21:04:07 So I decided to load up a PC emulator and start writing an operating system in machine code. 21:04:18 After about 20 minutes of effort, I managed to write an instruction that jumps to itself. 21:04:24 That's a success! 21:05:09 tswett[m]: nice. next, try one that prints hello world and then enters an infinite loop 21:05:34 Whoa whoa, *prints*? That's a bit much to ask. :D 21:06:20 tswett[m]: you can choose between serial port and video, and in either case, you can choose between BIOS services or doing it on your own using the PC hardware 21:17:25 I'm now trying to save the machine state so that I can pick up where I left off instead of having to start over every time I close the page. 21:18:51 write the relevant parts of the memory to the diskette 21:23:29 [[Symbols]] https://esolangs.org/w/index.php?diff=63960&oldid=58540 * Voltage2007 * (+1263) 21:29:16 -!- user24 has joined. 21:36:27 DOSBOX does not have the function to save the machine state but I would hope that in a later version they might add such thing possibly 21:43:04 [[AAAAAAAAAAAAAA!!!!]] https://esolangs.org/w/index.php?diff=63961&oldid=41034 * Voltage2007 * (+461) 21:47:59 -!- laerling has quit (Remote host closed the connection). 21:54:49 PCjs is awfully underdocumented... 21:56:49 [[Argh!]] https://esolangs.org/w/index.php?diff=63962&oldid=53674 * Voltage2007 * (+6) 21:58:01 The documentation says that you can create a "Save" button, but there's no documentation on what that button actually does or what is required to make it work. 21:59:05 . o O ( Buttons are for pressing. Or for buttoning. ) 22:07:05 I wrote this http://zzo38computer.org/gurpsgame/1.ui/wiki?name=Session+22 and try to think of what to write where it says "[Four weeks have passed.]". Mostly, Ziveruskex is studying mathematics, but other stuff could happen too, related and unrelated. I should see if anyone (including myself) has some idea what to write. 22:10:35 Completely unperturbed, Earth moves silently through space, traveling 72 million kilometers around the Sun. 22:11:06 Yes, of course that is one thing, but is probably not remarkable to this. 22:13:47 -!- user24 has quit (Quit: Leaving). 22:17:12 -!- moei has quit (Quit: Leaving...). 22:24:58 Actually, it turns out that the earth is completely stationary and the universe is rotating around it. The motion is kept uniform and circular by various inertial forces. 22:25:39 For example, the sun and the moon (like almost everything in the universe) are moving east very quickly, which causes them to experience a downward Coriolis force. 22:36:00 I'm having a hell of a time with PCjs. 22:36:14 The vast majority of its functionality is undocumented, so you have to look at the source code. 22:36:36 The funny thing about that is that there's also no documentation about how to *use* the source code. 22:37:03 Like, they give you a collection of JavaScript files, and they say "here's the source code", but they don't explain how to do anything with those JavaScript files. 22:54:22 tswett[m]: There are some package.json sprinkled in the source code which presumably are understood by npm. the build system is called gulp, and there's at least one 'gulpfile' around. The .js files are actually clojure sources? 22:55:00 [[ABC]] https://esolangs.org/w/index.php?diff=63963&oldid=53728 * Voltage2007 * (+754) 22:59:06 tswett[m]: So... 'npm build' at the root should do something, I imagine. 23:06:41 I feel like I'm committing the great sin by commenting on how terrible npm and npm culture is but it's so bad I'm going to say it anyway. 23:07:04 I wrote a little program and it has over 300 dependencies. 23:07:18 Most of them seem to be nonsense. 23:07:50 . o O ( cabal install criterion ) 23:08:17 49 packages, okay, not quite 300 23:08:51 Also people seem to be incompetent and have no taste. They just write bad code and have no idea about anything. 23:08:56 TIL about 'gauge' which is 'criterion' but some non-essential features and a lot of dependencies cut. 23:09:10 It works, therefore it can be shipped. 23:09:14 Sorry 23:09:24 It seems to work, therefore it can be shipped. 23:09:41 You have it backwards. 23:09:47 It was shipped, therefore it seems to work. 23:10:00 I see I still have a lot to learn. 23:10:43 Did you know NPM has over a million packages now? 23:10:51 Can you imagine? 23:10:54 No I did not. 23:11:03 The NPM greatest hits include packages like https://www.npmjs.com/package/ansi-red 23:11:21 A million downloads a week. 23:11:58 this one is ... brilliant 23:12:12 I mean... it has a dependency! 23:12:32 Of course. It's impossible to write software without dependencies. 23:12:55 The npm command line program takes over 500ms to print the help message. 23:13:00 What could it be doing? 23:13:24 It is JavaScript; it has to start the JavaScript code, unlike the C code which is compiled into native code before you try to execute it. 23:13:40 the author has 834 repositories on gituhub 23:13:51 shachaf: the first time, or also the subsequent times? 23:14:40 Also subsequent times. 23:14:54 shachaf: sadly I can see how "modern" software engineering might make such a "package" popular. 23:14:54 OK, it almost gets down to 400ms some runs. 23:15:21 shachaf: make a cheating benchmark that doesn't count the startup time then 23:15:46 zzo38: And yet the Ruby `gem` program, written in Ruby, takes 100ms (which is still absurdly long). 23:16:05 shachaf: I bet there's an umbrella package that uses them all, and then some semi-useful library with actual functionality that depends on that for colorful messages. 23:16:13 If "it's written in JavaScript" is an excuse for making the program bad, the solution is not to write it in JavaScript. 23:16:38 (I'm pretty sure JavaScript programs don't have to take 400ms to print a help message, though, so it's not really an excuse.) 23:16:50 Yes, I don't know why npm is slower. 23:16:54 though, hmm, https://www.npmjs.com/package/ansi-bgcyan has only 100k downloads. 23:17:05 or you could realize that just because you're using javascript, you don't have to use the most popular library for doing whatever you want 23:17:33 shachaf: How much Javascript does node have to JIT-compile before that help message is printed? 23:18:03 Probably a trillion lines. 23:18:26 But I wouldn't even blame JavaScript for that. You can do an OK job in JavaScript for this kind of thing. 23:18:54 ... hence my question 23:19:16 Right. 23:19:20 if you can get to the help message before you compile 100k lines of code, maybe half a second would be node's fault. 23:20:01 (that number is pulled out of thin air) 23:20:06 Good news, I got persistence working in PCjs. \o/ 23:20:19 On the other hand I'm timing Python pip and it's over 900ms. 23:20:31 tswett[m] unlocks "persistence" achievement. 23:20:32 So maybe terrible software is just the norm. 23:21:12 Right, Python can do better as well. 23:21:40 guess how long apt takes to print a help message 23:21:40 Now I have to figure out how the heck keyboard input works on an IBM PC. :D 23:22:58 I wrote a timing program and it's better in terms of the information it shows than my /usr/bin/time or bash builtin time. 23:23:20 shachaf: I felt bad about one of our academic tools taking 0.2s to print the help message. 23:23:43 How many people use your academic tool? 23:24:13 (It's written in ocaml. It used to be much faster, but then ocaml decided to go the first-class module route, punishing the separation of interfaces and modules...) 23:24:24 Hmm, a couple of dozen maybe. 23:24:27 npm has millions of users. If they use it once a day on average, that's several days of waiting for it to print the help message, every day. 23:24:52 Obviously the right thing to do is to print out the help message once and for all. 23:25:10 Right. 23:26:04 (Of course every npm action other than printing a help message takes longer than 400ms, even the trivial ones.) 23:28:56 Oh well, you'd have to design for this, rather than starting your file with all the 'requires' that are potentially relevant (as I presume npm is doing). 23:29:14 (Or maybe it's worse and it's actually a huge minimized javascript file) 23:29:43 obviously I hardly know what I'm talking about 23:29:56 > time npm --help 23:29:56 bash: npm: command not found 23:29:57 real 0m0.001s 23:29:57 user 0m0.000s 23:29:57 sys 0m0.001s 23:29:59 error: Variable not in scope: time :: t0 -> terror: Variable not in scope: npm 23:30:10 @botsnack 23:30:11 :) 23:30:35 shachaf: ^^ can't reproduce 23:30:44 int-e: Oh, you have the best version of npm installed. 23:30:49 http://slbkbs.org/tmp/tym.c -- I guess I already posted this here. 23:31:54 I guess that's a tiny bit more informative than /usr/bin/time 23:32:22 /usr/bin/time supports almost all that information with a format string. 23:32:27 At least the one on Debian does. 23:32:38 But it doesn't have precise timestamps. 23:32:58 isn't using the right incantation of options to time enough? 23:33:07 Which time? 23:33:13 Heh I've never looked at the manpage for 'time'. 23:33:16 shachaf: the GNU one, not the builtin one 23:33:24 int-e: it's an info page because it's GNU software 23:33:42 there's a manpage which seems comprehensive enough 23:33:58 b_jonas: No, it can only give you second precision for elapsed time. 23:34:14 I see 23:34:15 Otherwise yes. I used to use it. 23:34:40 -!- xkapastel has joined. 23:34:47 huh. SEE ALSO: tcsh, prinf... that seems a bit random. 23:35:32 especially since it's printf(3) 23:36:11 Oh I see why. 23:36:59 tcsh is referenced because it extends the tcsh `time' builtin, and printf for the similarity in format specifiers. Never mind. 23:37:20 In bash time is not a builtin. 23:37:25 It's a keyword. 23:37:48 That means that if you alias the keyword "time" to something else, you have no way to invoke it. 23:38:00 shachaf: you do, you can use (builtin time foo) 23:38:09 if you also alias builtin to something else, then you're screwed 23:38:16 presumably it's a keyword so that it can apply to a whole pipe... 23:38:25 When I write programs in JavaScript generally I try to avoid too many dependencies 23:38:28 int-e: yes 23:38:53 b_jonas: No, it's not a builtin, it's a keyword. 23:39:05 oh 23:39:06 ... 23:39:34 The only way I know is to unalias it. 23:45:38 Here's a pretty good package: https://www.npmjs.com/package/is-unc-path 23:45:59 It takes a string and matches it against a regular expression. 23:46:17 It has a dependency, which is a different package by the same author that exports that regular expression. 23:46:59 2 weekly megadownloads 23:47:34 it's the same author as ansi-red 23:48:11 shachaf: some perl modules pull in a large dependency forest through a module that it uses for author-only documentation coverage tests, where that module pulls in another module for finding the difference between two sets, to pretty print the set of functions that do not have doc coverage 23:48:11 Yes. He has over 1400 npm packages. 23:48:32 But he's not the only one with the coveted comma in the number of packages. 23:49:46 different author: https://www.npmjs.com/package/is-finite 23:49:49 lol "coveted comma" 23:50:32 int-e: Yep. 23:50:49 A slacker with only 1.1 kilopackages 23:51:27 so unpopular... https://www.npmjs.com/package/leading-zeros 23:53:05 For a good time type a package name into https://npm.anvaka.com/ 23:53:09 words of wisdom: While polyfills are naughty, ponyfills are pure, just like ponies. 23:53:27 (Despite my choice of language, I do not want to see that as a wisdom entry.) 23:55:21 https://npm.anvaka.com/#/view/2d/npm 23:55:49 Now I see why npm takes 400ms to start up. 23:56:26 shachaf: I guess this is a glimpse into the wonderful Javascript/npm culture you mentioned... https://kikobeats.com/polyfill-ponyfill-and-prollyfill/ 23:57:07 Here's me hoping it's just an esoteric subculture. 23:58:02 Or maybe exotic. 23:59:17 int-e: I read that article and derived no pleasure from it. 2019-07-07: 00:00:00 shachaf: I got a simultaneous sense of wonder and disgust. 00:01:30 IOW an experience almost, but not quite, completely unlike pleasure. 00:06:02 Anyway now Rust is importing npm culture or something. Or so I hear. 00:06:14 I'm sure it'll turn out great. 00:06:22 * shachaf .kmc.moed++ 00:07:28 shachaf: right, so instead of just pulling in the posix regex function from libc, you can choose to use the package called "regex", which only has like ten transitive dependencies, if you're the kind who can be fooled by simple package names 00:08:06 shachaf: they have a cargo cult, right? 00:08:11 again, the language is good, the dependency hell is optional, you aren't required to use those popular packages, you can just use any good old library that has a C interface 00:08:15 int-e: I like how is-even depends on is-odd which depends on is-number. 00:08:28 shachaf: that seems arbitrary 00:08:35 is-number is a good package because it supports not only things with number types but also strings that can be parsed as numbers. 00:08:37 clearly is-odd should depend on is-even 00:08:50 they also have an xml package, reimplemented in pure rust, that can't read utf-16 xml files, if you like that sort of thing 00:09:08 int-e: and on n+k rules 00:09:10 shachaf: I also get the feeling that you should stop browsing npm RIGHT NOW 00:09:30 Good idea. 00:09:45 shachaf: If you want to get lost in a spiral of links, at least do it somewhere pleasant like allthetropes 00:10:41 shachaf: doesn't javascript have a built-in & operator, so you can just do 0 != (x & 1) to test if a number is odd? 00:11:43 Maybe, but I took int-e's advice and I'm not going to think about it. 00:11:50 ok 00:25:30 we need an npm-fold way for an extraordimensionary esolang 00:25:41 with all the ponyfills 00:26:53 b_jonas: I don't know what you mean by "n+k rules" 00:27:09 int-e: n+k patterns 00:28:11 Hmm I guess the Wikipedia drama is more interesting. 00:28:44 (this one, https://en.wikipedia.org/wiki/Wikipedia:Community_response_to_the_Wikimedia_Foundation%27s_ban_of_Fram#Open_letter_from_the_Arbitration_Committee_to_the_WMF_Board ) 00:29:56 `? enrichment center 00:29:57 enrichment center? ¯\(°​_o)/¯ 00:30:16 `? companion cube 00:30:19 There's cake inside it. Tear it apart, rip open your companion, and extract the delicious, delicious cake... 00:30:19 `? glados 00:30:22 Hello, and again, welcome to the Aperture Science Computer Aided Internet Relay Chat & Enrichment Center. Please enjoy your stay at #esoteric, because you will never leave. 00:31:10 -!- arseniiv has quit (Ping timeout: 246 seconds). 00:31:17 int-e: I want to use good software instead of bad software. What do I do? 00:31:42 shachaf: stop using software 00:32:37 Hmm, that addresses the second part but not the first. 00:33:02 shachaf: do you have any specific goal for which you want to use software? 00:33:14 Find, you're allowed to run your favorite hello world program from time to time, but only if you promise not to look at the environment it's running in. 00:33:17 *Fine 00:34:16 You could also use this elegantly designed platform: https://en.wikipedia.org/wiki/Etch_A_Sketch 00:36:18 I wish I could shake my computer whenever anything was bad. 00:37:56 @google "force feedback PCI card" 00:37:57 https://uibkaap.tk/Wo_Online-Filme-Download.html 00:38:08 ... I won't go there. 00:49:17 I'm *still* trying to figure out how to process keyboard input in PCjs. 01:02:13 tswett[m]: call the relevant BIOS functions maybe 01:04:05 Well, I got rid of the BIOS. 01:04:09 Maybe I shouldn't have done that. :D 01:04:38 you can't get rid of the BIOS, it resides in a ROM chip. if you try to write it, it just ignores the writes. 01:04:51 just reboot the machine and the BIOS will work again 01:04:58 I got rid of the part that emulates that ROM chip. 01:05:07 Maybe the SQLite command line program should have a command to edit triggers by using an external editor. 01:05:09 you soldered it out? 01:05:15 nice, then your computer won't even boot up 01:05:27 Something like that. 01:05:41 In any case, yes, out of all the things this computer is doing, booting is not one of them. 01:06:00 (Could also be used for editing the definition of a view or index.) 01:40:19 -!- Lord_of_Life_ has joined. 01:42:44 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 01:43:00 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 01:44:04 -!- xkapastel has quit (Quit: Connection closed for inactivity). 02:18:14 The good news: I've managed to read from the keyboard data port. 02:18:18 The bad news: I always get ff. 02:19:17 tswett[m]: read it from the keyboard interrupt handler 02:29:01 More bad news: the screen doesn't update while the computer is running, only while it's stopped. 02:32:02 -!- zhiayang has quit (Remote host closed the connection). 02:32:52 -!- zhiayang has joined. 02:36:54 Well, either that, or the screen only updates at a multiple of 34304 (= 2^9 * 67) clock cycles, so that it happens to display the same thing every time it updates. 02:43:37 -!- adu has quit (Remote host closed the connection). 02:44:21 -!- adu has joined. 03:07:56 [[Category:Works-in-Progress]] M https://esolangs.org/w/index.php?diff=63964&oldid=63957 * A * (+31) All of these languages are WIP 03:14:06 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=63965&oldid=63935 * A * (+2) 03:35:16 -!- Sgeo has joined. 03:36:42 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 03:45:05 -!- FreeFull has quit. 03:49:24 Now bystand version 0.1 is released. Posting is not implemented yet, but other than that it seems to work as far as I can tell. Please make a suggestion or whatever else it is. 03:50:19 It is http://zzo38computer.org/prog/bystand.zip Do you like this? 03:59:38 shachaf: If you want to use good software instead of bad software, then write a better software, please. 04:00:47 Good idea. 04:02:09 How good should I make my software? 04:02:41 INTERCAL is a good choice 04:03:14 shachaf: As good as you need it to be, I suppose. 04:03:39 whoa 04:03:46 is that even possible 04:09:17 I don't know 04:17:42 shachaf: Imagine that you are trying to impress E. Scrooge, and that every success if followed by a "bah humbug" 06:12:24 -!- Cale has quit (*.net *.split). 06:12:26 -!- Camto[m] has quit (*.net *.split). 06:12:27 -!- grumble has quit (*.net *.split). 06:12:27 -!- uplime has quit (*.net *.split). 06:12:27 -!- pikhq has quit (*.net *.split). 06:12:27 -!- sprocklem has quit (*.net *.split). 06:12:27 -!- b_jonas has quit (*.net *.split). 06:12:27 -!- Hooloovo0 has quit (*.net *.split). 06:12:27 -!- sebbu has quit (*.net *.split). 06:12:28 -!- GeekDude has quit (*.net *.split). 06:12:28 -!- lifthrasiir has quit (*.net *.split). 06:12:28 -!- Lord_of_Life has quit (*.net *.split). 06:12:28 -!- rain1 has quit (*.net *.split). 06:12:28 -!- rodgort has quit (*.net *.split). 06:12:28 -!- trn has quit (*.net *.split). 06:12:28 -!- Melvar has quit (*.net *.split). 06:12:28 -!- limbo_ has quit (*.net *.split). 06:12:28 -!- Sgeo has quit (*.net *.split). 06:12:28 -!- mniip has quit (*.net *.split). 06:12:28 -!- int-e has quit (*.net *.split). 06:12:28 -!- ineiros has quit (*.net *.split). 06:12:28 -!- lizzie has quit (*.net *.split). 06:12:29 -!- shachaf has quit (*.net *.split). 06:12:29 -!- rdococ has quit (*.net *.split). 06:12:31 -!- adu has quit (*.net *.split). 06:12:31 -!- hakatashi has quit (*.net *.split). 06:12:31 -!- joast has quit (*.net *.split). 06:12:32 -!- ocharles has quit (*.net *.split). 06:12:32 -!- rickbutton has quit (*.net *.split). 06:12:32 -!- ski has quit (*.net *.split). 06:12:32 -!- nfd9001 has quit (*.net *.split). 06:12:32 -!- lambdabot has quit (*.net *.split). 06:12:32 -!- relrod has quit (*.net *.split). 06:12:32 -!- heroux has quit (*.net *.split). 06:12:32 -!- shikhin has quit (*.net *.split). 06:12:32 -!- jix has quit (*.net *.split). 06:12:32 -!- aloril has quit (*.net *.split). 06:12:32 -!- diginet has quit (*.net *.split). 06:12:32 -!- vertrex has quit (*.net *.split). 06:12:32 -!- izabera has quit (*.net *.split). 06:12:33 -!- mich181189 has quit (*.net *.split). 06:12:33 -!- lynn has quit (*.net *.split). 06:12:33 -!- Lymia has quit (*.net *.split). 06:12:33 -!- dog_star has quit (*.net *.split). 06:12:33 -!- fungot has quit (*.net *.split). 06:12:33 -!- zemhill_______ has quit (*.net *.split). 06:12:33 -!- sftp has quit (*.net *.split). 06:12:33 -!- kmc has quit (*.net *.split). 06:12:33 -!- haavard has quit (*.net *.split). 06:12:33 -!- quintopia has quit (*.net *.split). 06:12:33 -!- economicsbat has quit (*.net *.split). 06:12:33 -!- Taneb has quit (*.net *.split). 06:12:33 -!- tromp has quit (*.net *.split). 06:12:34 -!- wmww has quit (*.net *.split). 06:12:34 -!- ivzem[m] has quit (*.net *.split). 06:12:35 -!- Deewiant has quit (*.net *.split). 06:12:35 -!- zhiayang has quit (*.net *.split). 06:12:35 -!- aji has quit (*.net *.split). 06:12:35 -!- zzo38 has quit (*.net *.split). 06:12:35 -!- APic has quit (*.net *.split). 06:12:36 -!- fizzie has quit (*.net *.split). 06:12:37 -!- ^[ has quit (*.net *.split). 06:12:37 -!- ProofTechnique has quit (*.net *.split). 06:12:37 -!- moony has quit (*.net *.split). 06:12:37 -!- stux|away has quit (*.net *.split). 06:12:37 -!- j4cbo has quit (*.net *.split). 06:12:37 -!- glowcoil has quit (*.net *.split). 06:12:38 -!- xylochoron[m] has quit (*.net *.split). 06:12:39 -!- FireFly has quit (*.net *.split). 06:12:39 -!- sparr has quit (*.net *.split). 06:12:39 -!- budonyc has quit (*.net *.split). 06:12:39 -!- clog has quit (*.net *.split). 06:12:39 -!- myname has quit (*.net *.split). 06:12:39 -!- HackEso has quit (*.net *.split). 06:12:39 -!- erdic has quit (*.net *.split). 06:12:39 -!- paul2520 has quit (*.net *.split). 06:17:08 [[ABC]] M https://esolangs.org/w/index.php?diff=63966&oldid=63963 * Voltage2007 * (-60) Improved hello world code 06:18:14 -!- Sgeo has joined. 06:18:14 -!- adu has joined. 06:18:14 -!- zhiayang has joined. 06:18:14 -!- Lord_of_Life has joined. 06:18:14 -!- mniip has joined. 06:18:14 -!- ski has joined. 06:18:14 -!- aji has joined. 06:18:14 -!- sprocklem has joined. 06:18:14 -!- b_jonas has joined. 06:18:14 -!- budonyc has joined. 06:18:14 -!- tromp has joined. 06:18:14 -!- sftp has joined. 06:18:14 -!- int-e has joined. 06:18:14 -!- Hooloovo0 has joined. 06:18:14 -!- zzo38 has joined. 06:18:14 -!- nfd9001 has joined. 06:18:14 -!- ineiros has joined. 06:18:14 -!- kmc has joined. 06:18:14 -!- lambdabot has joined. 06:18:14 -!- hakatashi has joined. 06:18:14 -!- APic has joined. 06:18:14 -!- lizzie has joined. 06:18:14 -!- rain1 has joined. 06:18:14 -!- sebbu has joined. 06:18:14 -!- rdococ has joined. 06:18:14 -!- joast has joined. 06:18:14 -!- wmww has joined. 06:18:14 -!- ivzem[m] has joined. 06:18:14 -!- xylochoron[m] has joined. 06:18:14 -!- rodgort has joined. 06:18:14 -!- ^[ has joined. 06:18:14 -!- relrod has joined. 06:18:14 -!- trn has joined. 06:18:14 -!- haavard has joined. 06:18:14 -!- shachaf has joined. 06:18:14 -!- ProofTechnique has joined. 06:18:14 -!- heroux has joined. 06:18:14 -!- Melvar has joined. 06:18:14 -!- moony has joined. 06:18:14 -!- clog has joined. 06:18:14 -!- limbo_ has joined. 06:18:14 -!- shikhin has joined. 06:18:14 -!- GeekDude has joined. 06:18:14 -!- jix has joined. 06:18:14 -!- stux|away has joined. 06:18:14 -!- fizzie has joined. 06:18:14 -!- mich181189 has joined. 06:18:14 -!- quintopia has joined. 06:18:14 -!- aloril has joined. 06:18:14 -!- lifthrasiir has joined. 06:18:14 -!- lynn has joined. 06:18:14 -!- Lymia has joined. 06:18:14 -!- j4cbo has joined. 06:18:14 -!- economicsbat has joined. 06:18:14 -!- ocharles has joined. 06:18:14 -!- glowcoil has joined. 06:18:14 -!- rickbutton has joined. 06:18:14 -!- myname has joined. 06:18:14 -!- HackEso has joined. 06:18:14 -!- dog_star has joined. 06:18:14 -!- diginet has joined. 06:18:14 -!- erdic has joined. 06:18:14 -!- Taneb has joined. 06:18:14 -!- fungot has joined. 06:18:14 -!- vertrex has joined. 06:18:14 -!- FireFly has joined. 06:18:14 -!- Deewiant has joined. 06:18:14 -!- sparr has joined. 06:18:14 -!- izabera has joined. 06:18:14 -!- zemhill_______ has joined. 06:18:14 -!- paul2520 has joined. 06:18:23 -!- Cale has joined. 06:18:23 -!- Camto[m] has joined. 06:18:23 -!- grumble has joined. 06:18:23 -!- uplime has joined. 06:18:23 -!- pikhq has joined. 07:18:00 -!- mniip has quit (Quit: This page is intentionally left blank.). 07:26:18 -!- mniip has joined. 08:11:10 -!- AnotherTest has joined. 08:11:56 -!- tswett[m] has quit (Remote host closed the connection). 08:12:21 -!- Camto[m] has quit (Remote host closed the connection). 08:12:25 -!- wmww has quit (Write error: Broken pipe). 08:12:25 -!- ivzem[m] has quit (Remote host closed the connection). 08:12:28 -!- xylochoron[m] has quit (Remote host closed the connection). 08:18:42 -!- Camto[m] has joined. 08:24:46 -!- pikhq has quit (Ping timeout: 252 seconds). 08:25:02 -!- pikhq has joined. 08:33:20 -!- john_metcalf has joined. 08:39:06 -!- tswett[m] has joined. 08:39:06 -!- xylochoron[m] has joined. 08:39:13 -!- wmww has joined. 08:39:13 -!- ivzem[m] has joined. 09:46:25 -!- john_metcalf has quit (Ping timeout: 252 seconds). 10:22:51 -!- grumble has quit (Quit: inside their machines there is one empty file). 10:27:45 -!- gurmble has joined. 10:27:50 -!- gurmble has changed nick to grumble. 10:38:16 -!- atslash has joined. 12:41:52 -!- arseniiv has joined. 13:06:38 [[Special:Log/newusers]] create * Relts * New user account 13:40:54 -!- Lord_of_Life_ has joined. 13:43:26 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 13:43:29 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:47:00 -!- FreeFull has joined. 14:40:43 [[Special:Log/newusers]] create * DoggyDogWhirl * New user account 15:00:24 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=63967&oldid=63883 * DoggyDogWhirl * (+287) I'm DoggyDogWhirl. Nice to meet you! 15:37:19 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63968&oldid=63936 * Areallycoolusername * (+386) 15:38:00 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63969&oldid=63968 * Areallycoolusername * (+133) 15:40:28 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63970&oldid=63965 * Areallycoolusername * (+83) 16:40:51 [[User:DoggyDogWhirl]] N https://esolangs.org/w/index.php?oldid=63971 * DoggyDogWhirl * (+49) 17:21:26 How to define a text encoding in Firefox? 18:10:25 [[DDR]] N https://esolangs.org/w/index.php?oldid=63972 * DoggyDogWhirl * (+1658) Created page with "'''DDR''' is an [[esoteric programming language]] created by [[User:DoggyDogWhirl]]. It is inspired by the video game series ''Dance Dance Revolution'', and takes many of its..." 18:46:01 `? nutrient 18:46:05 nutrient? ¯\(°​_o)/¯ 18:46:27 `? nut 18:46:28 nut? ¯\(°​_o)/¯ 19:16:23 [[Special:Log/newusers]] create * Sideshowbob * New user account 19:19:02 [[Language list]] M https://esolangs.org/w/index.php?diff=63973&oldid=63942 * DoggyDogWhirl * (+10) 19:23:42 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63974&oldid=63967 * Sideshowbob * (+167) /* Introductions */ 19:25:10 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63975&oldid=63974 * Sideshowbob * (+13) /* Introductions */ 19:26:51 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=63976&oldid=63971 * DoggyDogWhirl * (+24) 19:39:41 -!- laerling has joined. 19:57:39 [[DDR]] M https://esolangs.org/w/index.php?diff=63977&oldid=63972 * DoggyDogWhirl * (+42) 20:38:45 I made a program "RADMML", which can write music in Reality Adlib Tracker version 2 format. (Reality Adlib Tracker itself is only for Windows and Macintosh, but RADMML can be used on Linux, too. They provided source code for a playback software on Windows; I was able to modify it to work on Linux.) 20:42:53 -!- AnotherTest has quit (Ping timeout: 252 seconds). 22:02:40 -!- laerling has quit (Remote host closed the connection). 23:03:31 -!- tromp has quit (Remote host closed the connection). 23:04:04 -!- tromp has joined. 23:08:27 -!- tromp has quit (Ping timeout: 252 seconds). 23:18:46 -!- tromp has joined. 23:23:06 -!- tromp has quit (Ping timeout: 252 seconds). 23:34:20 -!- arseniiv has quit (Ping timeout: 272 seconds). 23:40:34 Did you look at bystand and see if it is good? 23:53:33 [[DDR/Python Implementation]] N https://esolangs.org/w/index.php?oldid=63978 * DoggyDogWhirl * (+2406) 23:53:39 [[DDR]] https://esolangs.org/w/index.php?diff=63979&oldid=63977 * DoggyDogWhirl * (+74) 2019-07-08: 00:10:37 -!- b_jonas has quit (Quit: leaving). 00:18:53 -!- tromp has joined. 00:23:15 -!- tromp has quit (Ping timeout: 252 seconds). 01:42:08 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:43:02 [[FireStarter]] N https://esolangs.org/w/index.php?oldid=63980 * DoggyDogWhirl * (+3278) 01:44:21 -!- Lord_of_Life has joined. 02:07:29 -!- tromp has joined. 02:12:28 -!- tromp has quit (Ping timeout: 276 seconds). 02:34:43 shachaf: I saw a scow today 02:34:46 https://en.wikipedia.org/wiki/Alma_(1891) 02:39:30 higan mchelloister 02:39:53 that sure is a scow 02:46:47 -!- Sgeo_ has joined. 02:49:37 -!- Sgeo has quit (Ping timeout: 245 seconds). 02:51:50 [[Talk:Keg]] M https://esolangs.org/w/index.php?diff=63981&oldid=63536 * A * (+109) /* Upcoming Features in Keg+ */ 02:57:47 [[Talk:Keg]] https://esolangs.org/w/index.php?diff=63982&oldid=63981 * JonoCode9374 * (+133) /* Upcoming Features in Keg+ */ 03:03:12 -!- tromp has joined. 03:07:51 -!- tromp has quit (Ping timeout: 264 seconds). 04:13:19 -!- Sgeo_ has quit (Read error: Connection reset by peer). 04:13:43 -!- Sgeo_ has joined. 04:51:09 -!- tromp has joined. 04:55:51 -!- tromp has quit (Ping timeout: 264 seconds). 05:18:29 -!- nfd9001 has quit (Ping timeout: 268 seconds). 05:20:45 -!- tromp has joined. 05:25:00 -!- tromp has quit (Ping timeout: 252 seconds). 05:48:31 -!- zhiayang has quit (Ping timeout: 246 seconds). 05:58:18 -!- tromp has joined. 05:59:21 -!- zhiayang has joined. 06:02:46 -!- tromp has quit (Ping timeout: 252 seconds). 06:14:47 I don't like touch screen 06:20:06 -!- nfd9001 has joined. 06:24:57 -!- nfd9001 has quit (Ping timeout: 250 seconds). 06:30:08 -!- Potato1 has joined. 06:30:15 -!- Potato1 has left. 06:39:10 Why not? 06:56:49 -!- john_metcalf has joined. 06:57:04 [[Combinational logic]] N https://esolangs.org/w/index.php?oldid=63983 * A * (+731) Very short page for a simple computational model 06:57:51 It is not as good as a real keyboard. 06:59:13 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63984&oldid=63983 * A * (+99) 07:11:02 Oh, using touch screens for typing is terrible, of course. 07:11:17 But for analog input it can be good. 07:12:40 It can, if you have a stylus rather than touching it directly by hand. For entering text and commands though, a keyboard is much better. 07:15:08 -!- tromp has joined. 07:27:57 -!- nfd9001 has joined. 07:29:25 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63985&oldid=63984 * A * (+220) 07:31:29 -!- AnotherTest has joined. 07:48:06 -!- tromp has quit (Remote host closed the connection). 07:57:51 -!- tromp has joined. 08:00:43 -!- Sgeo__ has joined. 08:04:22 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 08:04:57 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63986&oldid=63985 * A * (+68) 08:13:44 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63987&oldid=63986 * A * (+471) 08:14:25 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63988&oldid=63987 * A * (+24) 08:17:58 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63989&oldid=63988 * A * (-171) 08:28:10 -!- AnotherTest has quit (Ping timeout: 276 seconds). 08:37:32 How common is it to use the alpha channel of a picture file as a depth buffer? 08:45:21 What dies "Device-to-host register FISes sent due to a COMRESET" mean? 08:52:04 Those two questions have the same answer: I don't know. 08:52:17 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63990&oldid=63989 * A * (+1048) 09:09:14 -!- FreeFull has quit. 09:12:45 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63991&oldid=63990 * A * (+110) 10:12:12 -!- wob_jonas has joined. 10:14:14 zzo38: I haven't seen that. I guess you could use that as a workaround, because most picture formats only allow a fixed set of channel arrangements, but it's still not very good, because often you'd want the depth buffer to have more bits of depth or differently lossless compression than the other channels. 10:14:42 So I'd prefer to use a separate image. 10:45:58 -!- arseniiv has joined. 10:49:39 [[Combinational logic]] M https://esolangs.org/w/index.php?diff=63992&oldid=63991 * A * (+216) 11:57:17 -!- Sgeo__ has quit (Read error: Connection reset by peer). 11:57:41 -!- Sgeo__ has joined. 12:22:25 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=63993&oldid=63970 * Areallycoolusername * (+149) 12:48:57 -!- xkapastel has joined. 12:54:11 -!- AnotherTest has joined. 13:04:48 -!- Cale has quit (Ping timeout: 252 seconds). 13:05:25 -!- user24 has joined. 13:09:31 -!- user24 has quit (Client Quit). 13:09:48 -!- user24 has joined. 13:18:07 [[FireStarter]] M https://esolangs.org/w/index.php?diff=63994&oldid=63980 * DoggyDogWhirl * (+221) 13:23:18 -!- Cale has joined. 13:44:13 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:44:59 -!- Lord_of_Life has joined. 13:45:41 -!- Phantom_Hoover has joined. 13:55:27 -!- john_metcalf has quit (Ping timeout: 245 seconds). 14:03:33 -!- wob_jonas has quit (Remote host closed the connection). 15:08:11 -!- Ains has joined. 15:15:45 -!- Sgeo_ has joined. 15:18:47 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 15:52:49 -!- user24 has quit (Quit: Leaving). 15:58:33 -!- xkapastel has quit (Quit: Connection closed for inactivity). 17:14:50 [[Special:Log/newusers]] create * Anne drew Andrew and Drew * New user account 17:20:17 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63995&oldid=63975 * Anne drew Andrew and Drew * (+268) /* Introductions */ hello there 17:26:45 -!- unlimiter has joined. 17:29:26 -!- unlimiter has quit (Client Quit). 17:30:51 -!- Sgeo_ has quit (Read error: Connection reset by peer). 17:31:19 -!- Sgeo_ has joined. 17:39:14 [[Special:Log/newusers]] create * DumpRegs * New user account 17:44:25 -!- tromp has quit (Remote host closed the connection). 17:52:25 -!- tromp has joined. 17:55:35 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=63996&oldid=63995 * DumpRegs * (+197) /* Introductions */ 18:07:16 [[User:DumpRegs]] N https://esolangs.org/w/index.php?oldid=63997 * DumpRegs * (+38) Created page with "I created the an Esolang called Screw." 18:07:27 [[User:DumpRegs]] https://esolangs.org/w/index.php?diff=63998&oldid=63997 * DumpRegs * (-4) 18:09:45 [[User:DumpRegs]] https://esolangs.org/w/index.php?diff=63999&oldid=63998 * DumpRegs * (+87) 18:28:27 -!- unlimiter has joined. 18:31:30 -!- unlimiter has quit (Client Quit). 19:11:36 -!- kolontaev has joined. 19:21:46 -!- moony has changed nick to moonheart08. 19:37:37 -!- sebbu has quit (Ping timeout: 248 seconds). 19:51:34 -!- FreeFull has joined. 19:57:56 -!- sebbu has joined. 20:03:24 `smlist 502 20:03:25 smlist 502: shachaf monqy elliott mnoqy Cale 20:08:04 Hmm, are homeopaths afraid of washing dishes, because diluting the patogens makes them more potent? 20:08:15 -!- Sgeo__ has joined. 20:11:13 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 20:16:33 -!- Ains has quit (Ping timeout: 244 seconds). 20:35:00 -!- Ains has joined. 20:40:56 -!- laerling has joined. 20:44:45 -!- Ains has quit (Quit: Leaving). 20:59:26 -!- budonyc has quit (Ping timeout: 244 seconds). 21:01:49 -!- user24 has joined. 21:22:15 -!- AnotherTest has quit (Ping timeout: 264 seconds). 21:37:33 -!- laerling has quit (Remote host closed the connection). 21:57:13 -!- tromp has quit (Remote host closed the connection). 22:09:53 -!- tromp has joined. 22:11:14 -!- tromp_ has joined. 22:13:35 -!- tromp__ has joined. 22:14:27 -!- tromp has quit (Ping timeout: 252 seconds). 22:15:33 -!- tromp_ has quit (Ping timeout: 252 seconds). 22:16:40 -!- tromp has joined. 22:17:58 -!- tromp__ has quit (Ping timeout: 246 seconds). 22:18:16 -!- tromp_ has joined. 22:21:39 -!- tromp has quit (Ping timeout: 264 seconds). 22:22:30 -!- tromp_ has quit (Ping timeout: 252 seconds). 22:34:58 -!- tromp has joined. 22:39:22 -!- tromp has quit (Ping timeout: 252 seconds). 22:40:00 -!- user24 has quit (Quit: Leaving). 22:42:47 -!- uplime has changed nick to ^. 22:43:12 -!- ^ has changed nick to KindOne. 23:00:23 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64000&oldid=63969 * Salpynx * (+1287) Clarify I'm serious about physical computing, and Minecraft. 23:15:22 -!- tromp has joined. 23:16:48 -!- tromp_ has joined. 23:19:43 -!- tromp has quit (Ping timeout: 252 seconds). 23:21:11 -!- tromp_ has quit (Ping timeout: 252 seconds). 23:22:21 -!- droid has joined. 23:22:55 -!- tromp has joined. 23:23:52 [[FireStarter]] M https://esolangs.org/w/index.php?diff=64001&oldid=63994 * DoggyDogWhirl * (+122) 23:25:33 -!- tromp_ has joined. 23:27:04 -!- tromp__ has joined. 23:27:25 -!- tromp has quit (Ping timeout: 252 seconds). 23:29:59 -!- tromp_ has quit (Ping timeout: 252 seconds). 23:30:34 -!- tromp has joined. 23:31:28 -!- tromp__ has quit (Ping timeout: 252 seconds). 23:32:23 -!- tromp_ has joined. 23:35:07 -!- tromp has quit (Ping timeout: 252 seconds). 23:36:36 -!- tromp_ has quit (Ping timeout: 252 seconds). 23:38:39 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:49:44 -!- arseniiv has quit (Ping timeout: 272 seconds). 23:51:06 -!- moonheart08 has changed nick to moony. 2019-07-09: 00:26:46 -!- tromp has joined. 00:31:12 -!- tromp has quit (Ping timeout: 252 seconds). 00:58:02 [[Screw]] N https://esolangs.org/w/index.php?oldid=64002 * DumpRegs * (+114) Created page with "'''Screw''' is an esoteric programming language created by [https://esolangs.org/wiki/User:DumpRegs User:DumpRegs]" 01:05:39 [[Screw]] https://esolangs.org/w/index.php?diff=64003&oldid=64002 * DumpRegs * (+319) 01:06:13 -!- stux- has joined. 01:07:01 -!- Lymia has quit (Remote host closed the connection). 01:07:11 -!- Lymia has joined. 01:07:54 -!- stux|away has quit (Ping timeout: 252 seconds). 01:09:26 [[Screw]] https://esolangs.org/w/index.php?diff=64004&oldid=64003 * DumpRegs * (+42) 01:09:49 Oh gee, I just found out that Haskell's type inference is significantly more complicated than I thought. Which is really saying something. :D 01:11:02 > let x = undefined in (x :: Int, x :: Char) 01:11:05 (*Exception: Prelude.undefined 01:11:05 @botsnack 01:11:05 :) 01:11:45 That's just Hindley-Milner, isn't it? 01:11:52 It has an explicit case for let for this reason. 01:14:07 [[Screw]] https://esolangs.org/w/index.php?diff=64005&oldid=64004 * DumpRegs * (+163) /* Commands */ 01:16:56 [[Screw]] https://esolangs.org/w/index.php?diff=64006&oldid=64005 * DumpRegs * (+215) /* Commands */ 01:18:47 [[DDR]] M https://esolangs.org/w/index.php?diff=64007&oldid=63979 * DoggyDogWhirl * (+0) 01:21:56 [[Screw]] https://esolangs.org/w/index.php?diff=64008&oldid=64006 * DumpRegs * (+167) 01:27:15 [[Screw]] https://esolangs.org/w/index.php?diff=64009&oldid=64008 * DumpRegs * (+401) 01:29:23 [[Screw]] https://esolangs.org/w/index.php?diff=64010&oldid=64009 * DumpRegs * (-168) 01:32:23 [[Screw]] https://esolangs.org/w/index.php?diff=64011&oldid=64010 * DumpRegs * (+139) 01:32:59 [[Screw]] https://esolangs.org/w/index.php?diff=64012&oldid=64011 * DumpRegs * (-397) 01:33:42 [[Screw]] https://esolangs.org/w/index.php?diff=64013&oldid=64012 * DumpRegs * (+0) 01:36:21 [[Screw]] https://esolangs.org/w/index.php?diff=64014&oldid=64013 * DumpRegs * (+104) 01:41:19 [[Screw]] https://esolangs.org/w/index.php?diff=64015&oldid=64014 * DumpRegs * (+280) 01:41:43 -!- Lord_of_Life_ has joined. 01:44:54 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 01:44:55 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 01:51:22 [[Screw]] https://esolangs.org/w/index.php?diff=64016&oldid=64015 * DumpRegs * (+247) /* Add */ 01:51:51 [[Screw]] https://esolangs.org/w/index.php?diff=64017&oldid=64016 * DumpRegs * (-4) /* Add */ 01:52:09 [[Screw]] https://esolangs.org/w/index.php?diff=64018&oldid=64017 * DumpRegs * (-12) /* Add */ 01:52:17 [[Screw]] https://esolangs.org/w/index.php?diff=64019&oldid=64018 * DumpRegs * (+1) /* Add */ 01:52:28 [[Screw]] https://esolangs.org/w/index.php?diff=64020&oldid=64019 * DumpRegs * (-1) /* Add */ 01:52:36 [[Screw]] https://esolangs.org/w/index.php?diff=64021&oldid=64020 * DumpRegs * (+1) /* Add */ 01:56:05 [[Screw]] https://esolangs.org/w/index.php?diff=64022&oldid=64021 * DumpRegs * (+45) /* Add */ 01:57:43 [[Screw]] https://esolangs.org/w/index.php?diff=64023&oldid=64022 * DumpRegs * (+46) 01:58:02 [[Screw]] https://esolangs.org/w/index.php?diff=64024&oldid=64023 * DumpRegs * (+0) 02:01:55 [[Screw]] https://esolangs.org/w/index.php?diff=64025&oldid=64024 * DumpRegs * (+256) /* Features */ 02:03:02 [[Screw]] https://esolangs.org/w/index.php?diff=64026&oldid=64025 * DumpRegs * (+225) /* Sub */ 02:03:55 [[Screw]] https://esolangs.org/w/index.php?diff=64027&oldid=64026 * DumpRegs * (+1) /* Sub */ 02:04:27 -!- droid has quit (Ping timeout: 258 seconds). 02:04:44 [[Screw]] https://esolangs.org/w/index.php?diff=64028&oldid=64027 * DumpRegs * (+7) /* Sub */ 02:04:55 -!- stux- has quit (Quit: Aloha!). 02:05:09 -!- stux|away has joined. 02:05:14 [[Screw]] https://esolangs.org/w/index.php?diff=64029&oldid=64028 * DumpRegs * (+9) /* Sub */ 02:05:24 [[Screw]] https://esolangs.org/w/index.php?diff=64030&oldid=64029 * DumpRegs * (-2) /* Sub */ 02:05:46 [[Screw]] https://esolangs.org/w/index.php?diff=64031&oldid=64030 * DumpRegs * (-6) /* Sub */ 02:09:33 [[Screw]] https://esolangs.org/w/index.php?diff=64032&oldid=64031 * DumpRegs * (+161) /* Features */ 02:09:35 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64033&oldid=64000 * Areallycoolusername * (+340) 02:15:16 -!- tromp has joined. 02:20:01 -!- tromp has quit (Ping timeout: 276 seconds). 02:24:12 [[Screw]] https://esolangs.org/w/index.php?diff=64034&oldid=64032 * DumpRegs * (+319) /* Features */ 02:24:34 [[Screw]] https://esolangs.org/w/index.php?diff=64035&oldid=64034 * DumpRegs * (+0) /* Cell Dump */ 02:24:45 [[Screw]] https://esolangs.org/w/index.php?diff=64036&oldid=64035 * DumpRegs * (+2) /* Cell Dump */ 02:26:34 [[Screw]] https://esolangs.org/w/index.php?diff=64037&oldid=64036 * DumpRegs * (+208) /* Cell Dump */ 02:27:13 [[Screw]] https://esolangs.org/w/index.php?diff=64038&oldid=64037 * DumpRegs * (+1) /* Cell Dump */ 02:27:25 [[Screw]] https://esolangs.org/w/index.php?diff=64039&oldid=64038 * DumpRegs * (+10) /* Cell Dump */ 02:27:48 [[Screw]] https://esolangs.org/w/index.php?diff=64040&oldid=64039 * DumpRegs * (+10) /* Cell Dump */ 02:28:41 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64041&oldid=64033 * Areallycoolusername * (+121) 02:28:43 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64042&oldid=64041 * JonoCode9374 * (+218) /* Potential Interpreter */ new section 02:31:32 [[Screw]] https://esolangs.org/w/index.php?diff=64043&oldid=64040 * DumpRegs * (+264) /* Cell Dump */ 02:32:28 [[Screw]] https://esolangs.org/w/index.php?diff=64044&oldid=64043 * DumpRegs * (+6) 02:32:33 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64045&oldid=64042 * JonoCode9374 * (+136) /* Potential Interpreter */ 02:32:46 [[Screw]] https://esolangs.org/w/index.php?diff=64046&oldid=64044 * DumpRegs * (+1) 02:35:29 [[Screw]] https://esolangs.org/w/index.php?diff=64047&oldid=64046 * DumpRegs * (+21) 02:38:06 [[Screw]] https://esolangs.org/w/index.php?diff=64048&oldid=64047 * DumpRegs * (+531) /* Classic Examples */ 02:38:17 [[Screw]] https://esolangs.org/w/index.php?diff=64049&oldid=64048 * DumpRegs * (-1) /* Add 3 and 5 */ 02:38:41 [[Screw]] https://esolangs.org/w/index.php?diff=64050&oldid=64049 * DumpRegs * (-6) /* Add 3 and 5 */ 02:38:57 [[Screw]] https://esolangs.org/w/index.php?diff=64051&oldid=64050 * DumpRegs * (+3) /* Add 3 and 5 */ 02:39:05 [[Screw]] https://esolangs.org/w/index.php?diff=64052&oldid=64051 * DumpRegs * (+9) /* Add 3 and 5 */ 02:39:51 [[Screw]] https://esolangs.org/w/index.php?diff=64053&oldid=64052 * DumpRegs * (-4) /* Classic Examples */ 02:39:59 [[Screw]] https://esolangs.org/w/index.php?diff=64054&oldid=64053 * DumpRegs * (-1) /* Add 3 and 5 */ 02:40:12 [[Screw]] https://esolangs.org/w/index.php?diff=64055&oldid=64054 * DumpRegs * (-4) /* Add 3 and 5 */ 02:40:21 [[Screw]] https://esolangs.org/w/index.php?diff=64056&oldid=64055 * DumpRegs * (+7) /* Add 3 and 5 */ 02:40:28 [[Screw]] https://esolangs.org/w/index.php?diff=64057&oldid=64056 * DumpRegs * (+2) /* Add 3 and 5 */ 02:40:38 [[Screw]] https://esolangs.org/w/index.php?diff=64058&oldid=64057 * DumpRegs * (-3) /* Add 3 and 5 */ 02:40:46 [[Screw]] https://esolangs.org/w/index.php?diff=64059&oldid=64058 * DumpRegs * (+6) /* Add 3 and 5 */ 02:40:55 [[Screw]] https://esolangs.org/w/index.php?diff=64060&oldid=64059 * DumpRegs * (+3) /* Add 3 and 5 */ 02:41:04 [[Screw]] https://esolangs.org/w/index.php?diff=64061&oldid=64060 * DumpRegs * (-2) /* Add 3 and 5 */ 02:41:16 [[Screw]] https://esolangs.org/w/index.php?diff=64062&oldid=64061 * DumpRegs * (-1) /* Add 3 and 5 */ 02:41:22 [[Screw]] https://esolangs.org/w/index.php?diff=64063&oldid=64062 * DumpRegs * (+1) /* Add 3 and 5 */ 02:41:30 [[Screw]] https://esolangs.org/w/index.php?diff=64064&oldid=64063 * DumpRegs * (-3) /* Add 3 and 5 */ 02:41:50 [[Screw]] https://esolangs.org/w/index.php?diff=64065&oldid=64064 * DumpRegs * (-3) /* Add 3 and 5 */ 02:41:59 [[Screw]] https://esolangs.org/w/index.php?diff=64066&oldid=64065 * DumpRegs * (-2) /* Add 3 and 5 */ 02:42:26 [[Screw]] https://esolangs.org/w/index.php?diff=64067&oldid=64066 * DumpRegs * (+7) /* Add 3 and 5 */ 02:42:33 [[Screw]] https://esolangs.org/w/index.php?diff=64068&oldid=64067 * DumpRegs * (+1) /* Add 3 and 5 */ 02:42:48 [[Screw]] https://esolangs.org/w/index.php?diff=64069&oldid=64068 * DumpRegs * (+1) /* Add 3 and 5 */ 02:42:55 [[Screw]] https://esolangs.org/w/index.php?diff=64070&oldid=64069 * DumpRegs * (-2) /* Add 3 and 5 */ 02:43:01 [[Screw]] https://esolangs.org/w/index.php?diff=64071&oldid=64070 * DumpRegs * (+1) /* Add 3 and 5 */ 02:43:45 [[Screw]] https://esolangs.org/w/index.php?diff=64072&oldid=64071 * DumpRegs * (+62) /* Add 3 and 5 */ 02:47:10 -!- FreeFull has quit. 02:52:18 [[Screw]] https://esolangs.org/w/index.php?diff=64073&oldid=64072 * DumpRegs * (+1295) /* Classic Examples */ 02:53:04 [[Screw]] https://esolangs.org/w/index.php?diff=64074&oldid=64073 * DumpRegs * (-6) /* Hello World */ 02:54:15 [[Screw]] https://esolangs.org/w/index.php?diff=64075&oldid=64074 * DumpRegs * (+55) /* Hello World */ 02:54:58 [[Screw]] https://esolangs.org/w/index.php?diff=64076&oldid=64075 * DumpRegs * (+10) /* Hello World */ 02:55:18 [[Screw]] https://esolangs.org/w/index.php?diff=64077&oldid=64076 * DumpRegs * (+2) /* Hello World */ 02:56:30 [[Screw]] https://esolangs.org/w/index.php?diff=64078&oldid=64077 * DumpRegs * (-4) /* Hello World */ 02:56:56 [[Screw]] https://esolangs.org/w/index.php?diff=64079&oldid=64078 * DumpRegs * (-12) /* Hello World */ 02:57:16 [[Screw]] https://esolangs.org/w/index.php?diff=64080&oldid=64079 * DumpRegs * (-4) /* Hello World */ 02:57:34 [[Screw]] https://esolangs.org/w/index.php?diff=64081&oldid=64080 * DumpRegs * (+8) /* Hello World */ 02:57:37 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64082&oldid=64045 * Areallycoolusername * (+62) 02:57:50 [[Screw]] https://esolangs.org/w/index.php?diff=64083&oldid=64081 * DumpRegs * (-2) /* Hello World */ 02:58:11 [[Screw]] https://esolangs.org/w/index.php?diff=64084&oldid=64083 * DumpRegs * (+4) /* Hello World */ 02:58:20 [[Screw]] https://esolangs.org/w/index.php?diff=64085&oldid=64084 * DumpRegs * (-1) /* Hello World */ 02:58:42 [[Screw]] https://esolangs.org/w/index.php?diff=64086&oldid=64085 * DumpRegs * (+6) /* Hello World */ 02:58:58 [[Screw]] https://esolangs.org/w/index.php?diff=64087&oldid=64086 * DumpRegs * (+10) /* Hello World */ 02:59:16 [[Screw]] https://esolangs.org/w/index.php?diff=64088&oldid=64087 * DumpRegs * (-2) /* Hello World */ 02:59:28 [[Screw]] https://esolangs.org/w/index.php?diff=64089&oldid=64088 * DumpRegs * (-4) /* Hello World */ 02:59:40 [[Screw]] https://esolangs.org/w/index.php?diff=64090&oldid=64089 * DumpRegs * (+5) /* Hello World */ 02:59:54 [[Screw]] https://esolangs.org/w/index.php?diff=64091&oldid=64090 * DumpRegs * (+9) /* Hello World */ 03:01:31 [[Screw]] https://esolangs.org/w/index.php?diff=64092&oldid=64091 * DumpRegs * (+165) /* Hello World */ 03:01:57 [[Screw]] https://esolangs.org/w/index.php?diff=64093&oldid=64092 * DumpRegs * (-8) /* Hello World */ 03:02:17 [[Screw]] https://esolangs.org/w/index.php?diff=64094&oldid=64093 * DumpRegs * (-7) /* Hello World */ 03:02:38 [[Screw]] https://esolangs.org/w/index.php?diff=64095&oldid=64094 * DumpRegs * (-11) /* Hello World */ 03:02:53 [[Screw]] https://esolangs.org/w/index.php?diff=64096&oldid=64095 * DumpRegs * (-4) /* Hello World */ 03:03:42 [[Screw]] https://esolangs.org/w/index.php?diff=64097&oldid=64096 * DumpRegs * (+0) /* Hello World */ 03:03:58 [[Screw]] https://esolangs.org/w/index.php?diff=64098&oldid=64097 * DumpRegs * (+4) /* Hello World */ 03:04:28 [[Screw]] https://esolangs.org/w/index.php?diff=64099&oldid=64098 * DumpRegs * (-28) /* Hello World */ 03:04:41 [[Screw]] https://esolangs.org/w/index.php?diff=64100&oldid=64099 * DumpRegs * (+2) /* Hello World */ 03:04:49 [[Screw]] https://esolangs.org/w/index.php?diff=64101&oldid=64100 * DumpRegs * (-1) /* Hello World */ 03:05:34 [[Screw]] https://esolangs.org/w/index.php?diff=64102&oldid=64101 * DumpRegs * (+27) /* Hello World */ 03:06:14 [[Screw]] https://esolangs.org/w/index.php?diff=64103&oldid=64102 * DumpRegs * (+5) /* Sub */ 03:09:02 -!- tromp has joined. 03:09:03 [[Screw]] https://esolangs.org/w/index.php?diff=64104&oldid=64103 * DumpRegs * (+164) 03:12:03 [[Screw]] https://esolangs.org/w/index.php?diff=64105&oldid=64104 * DumpRegs * (+171) /* Executing Screw Code */ 03:13:05 [[Screw]] https://esolangs.org/w/index.php?diff=64106&oldid=64105 * DumpRegs * (-54) /* Extra Features */ 03:13:23 -!- tromp has quit (Ping timeout: 250 seconds). 03:13:31 [[Screw]] https://esolangs.org/w/index.php?diff=64107&oldid=64106 * DumpRegs * (+3) /* Classic Examples */ 03:13:32 fungot: are they tightening or loosening the screw? 03:13:32 int-e: no more than one consenting nominee, then the revolt succeeds, otherwise the action 03:16:12 [[Screw]] https://esolangs.org/w/index.php?diff=64108&oldid=64107 * DumpRegs * (+0) /* Recognized Symbols */ 03:16:27 [[Screw]] https://esolangs.org/w/index.php?diff=64109&oldid=64108 * DumpRegs * (+0) /* Extra Features */ 03:16:44 [[Screw]] https://esolangs.org/w/index.php?diff=64110&oldid=64109 * DumpRegs * (+0) /* Classic Examples */ 03:16:57 [[Screw]] https://esolangs.org/w/index.php?diff=64111&oldid=64110 * DumpRegs * (+0) /* Executing Screw Code */ 03:17:50 [[Screw]] https://esolangs.org/w/index.php?diff=64112&oldid=64111 * DumpRegs * (+24) 03:22:30 [[Screw]] https://esolangs.org/w/index.php?diff=64113&oldid=64112 * DumpRegs * (+81) /* External resources */ 03:23:01 [[Screw]] https://esolangs.org/w/index.php?diff=64114&oldid=64113 * DumpRegs * (+28) /* External resources */ 03:27:56 [[Screw]] https://esolangs.org/w/index.php?diff=64115&oldid=64114 * DumpRegs * (+128) 03:30:32 [[Language list]] https://esolangs.org/w/index.php?diff=64116&oldid=63973 * DumpRegs * (+12) /* S */ 03:33:45 [[Screw]] https://esolangs.org/w/index.php?diff=64117&oldid=64115 * DumpRegs * (-1) /* Cell Dump */ 03:34:46 [[User:DumpRegs]] https://esolangs.org/w/index.php?diff=64118&oldid=63999 * DumpRegs * (+35) 03:35:17 [[Screw]] https://esolangs.org/w/index.php?diff=64119&oldid=64117 * DumpRegs * (-34) 03:36:14 [[Screw]] https://esolangs.org/w/index.php?diff=64120&oldid=64119 * DumpRegs * (-54) 03:37:23 [[User:DumpRegs]] https://esolangs.org/w/index.php?diff=64121&oldid=64118 * DumpRegs * (+16) 03:40:14 I tried to make a program in C to make a Newton fractal, but, it doesn't seems to work. 06:19:51 -!- tromp has joined. 06:20:28 -!- john_metcalf has joined. 06:20:38 -!- tromp has quit (Remote host closed the connection). 06:24:23 -!- tromp has joined. 07:06:16 -!- tromp has quit (Remote host closed the connection). 07:10:45 -!- tromp has joined. 07:15:17 -!- tromp has quit (Ping timeout: 252 seconds). 07:20:17 -!- tromp has joined. 07:24:49 -!- tromp has quit (Ping timeout: 252 seconds). 07:26:28 -!- tromp has joined. 07:31:02 -!- tromp has quit (Ping timeout: 252 seconds). 07:31:30 @where polymorphic-type-inference 07:31:30 "Polymorphic Type Inference" by Michael I. Schwartzbach in 1995-03 at , 07:31:46 tswett[m] ^ 07:32:19 -!- tromp has joined. 07:33:36 -!- tromp_ has joined. 07:35:33 -!- tromp__ has joined. 07:36:17 -!- tromp__ has quit (Remote host closed the connection). 07:36:31 -!- tromp__ has joined. 07:37:13 -!- tromp has quit (Ping timeout: 276 seconds). 07:38:00 -!- tromp_ has quit (Ping timeout: 252 seconds). 07:56:35 -!- Cale has quit (Excess Flood). 07:59:10 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64122&oldid=64082 * A * (+190) /* Potential Interpreter */ 08:01:24 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64123&oldid=64122 * A * (+113) 08:01:43 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64124&oldid=64123 * A * (-138) 08:10:08 -!- AnotherTest has joined. 08:15:24 -!- j-bot has joined. 08:22:04 -!- zzo38 has quit (Ping timeout: 246 seconds). 08:24:34 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64125&oldid=64124 * A * (-43) 08:34:34 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64126&oldid=64125 * A * (-105) 08:36:07 Is this... defined behavior? f->hRestart = &f->history[-1]; 08:36:50 history there is a pointer not an array, so I'm probably being overly concerned? 09:29:34 I'm getting to really like the jq (not esoteric but not general purpose) language 09:33:28 The JSON thing? 09:36:12 yeah 09:36:20 I've used that for some things. 09:36:40 Some things are very nice and others are awkward to express. 09:36:52 I got started writing a brainfuck interpreter in it that came to me in a dream, I'll finish and post that tonight probably 09:43:26 jq is neat but i wonder why they had to implement a whole new language from scratch in C rather than building it on top of javascript 09:48:43 I'm sure I don't want to use a JavaScript interpreter in any of the cases that I use jq. 09:48:54 (Or in most other cases where I don't, for that matter.) 10:00:54 I likely would not use jq if it was built on top of JavaScript 10:40:07 https://gist.github.com/Taneb/be9d6d5048ce6ca3c5563df223052c6b 10:40:21 -!- Cale has joined. 11:09:28 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64127&oldid=63993 * A * (+167) /* Examples */ Another example. 11:17:25 -!- john_metcalf has quit (Ping timeout: 246 seconds). 11:48:17 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64128&oldid=64126 * Areallycoolusername * (+913) 11:49:36 -!- zemhill________ has joined. 11:51:45 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64129&oldid=64127 * Areallycoolusername * (-167) Undid edit by User: A, due to redundancy. (You already put that!) 11:55:57 -!- mich181189 has quit (*.net *.split). 11:55:57 -!- lynn has quit (*.net *.split). 11:55:57 -!- dog_star has quit (*.net *.split). 11:55:57 -!- fungot has quit (*.net *.split). 11:55:57 -!- zemhill_______ has quit (*.net *.split). 12:01:27 -!- mich181189 has joined. 12:01:27 -!- lynn has joined. 12:01:27 -!- dog_star has joined. 12:01:27 -!- fungot has joined. 12:07:18 -!- wob_jonas has joined. 12:40:25 -!- arseniiv has joined. 12:40:50 [[SMETANA To Infinity!]] https://esolangs.org/w/index.php?diff=64130&oldid=49759 * Anthonykozar * (+123) Adding link to a new interpreter and moving from Unimplemented to Implemented category. 12:52:29 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64131&oldid=64129 * A * (+167) Undid edit by User:Areallycoolusername due to distinction (These are different programs!) 13:03:24 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64132&oldid=64128 * A * (+861) 13:04:20 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64133&oldid=64132 * A * (+0) Oops 13:05:20 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64134&oldid=64133 * A * (+0) Why am I so ignorant? 13:07:46 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64135&oldid=64134 * A * (+0) 13:30:55 zzo38: re Newton fractal, can you be more specific? how has your program failed? 13:44:01 -!- Lord_of_Life_ has joined. 13:45:37 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 13:46:40 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:51:51 -!- unlimiter has joined. 13:52:33 -!- unlimiter has quit (Client Quit). 14:21:34 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64136&oldid=64135 * A * (+480) 14:41:27 -!- atslash has quit (Quit: This computer has gone to sleep). 14:47:15 -!- atslash has joined. 15:13:31 -!- xkapastel has joined. 15:16:36 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64137&oldid=64136 * Areallycoolusername * (+249) 15:19:07 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64138&oldid=64137 * Areallycoolusername * (-99) 15:26:02 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64139&oldid=64138 * Areallycoolusername * (-76) 15:41:09 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64140&oldid=64131 * Areallycoolusername * (+535) 15:42:01 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64141&oldid=64140 * Areallycoolusername * (+0) /* Implementations */ 15:44:13 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64142&oldid=64139 * Areallycoolusername * (+185) 15:49:44 -!- Sgeo_ has joined. 15:53:40 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 15:59:11 -!- wob_jonas has quit (Remote host closed the connection). 16:30:47 -!- Sgeo__ has joined. 16:34:09 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 17:00:31 -!- atslash has quit (Quit: Leaving). 17:07:27 -!- atslash has joined. 17:23:10 -!- xkapastel has quit (Quit: Connection closed for inactivity). 17:49:17 -!- zzo38 has joined. 18:03:43 -!- b_jonas has joined. 18:11:51 -!- Sgeo_ has joined. 18:16:01 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 18:53:07 -!- Phantom_Hoover has joined. 19:09:40 -!- FreeFull has joined. 19:27:21 [[Codd]] N https://esolangs.org/w/index.php?oldid=64143 * Areallycoolusername * (+892) Created page with "'''Codd''',(which has nothing to do with [[Cod]]), is an [[esoteric programming language]] made by [User: Areallycoolusername|Areallycoolusername]. It's meant to be a Turing c..." 19:34:32 wob_jonas: This is the program I have: https://arin.ga/EKffNr It doesn't seems to do properly. 19:34:33 -!- FireFly has quit (Quit: Goodbye). 19:35:13 -!- FireFly has joined. 19:43:28 zzo38: hmm, the lines 15..18 there seem suspicious. what values do coef_r, coef_i, dcoef_r, dcoef_i have? 19:46:54 Those values are correct; I have tested that already, they are correct for matching the root_r and root_i arrays 19:48:40 zzo38: what do the lines 15..18 do then? 19:49:28 -!- sparr has quit (*.net *.split). 19:50:05 -!- sparr has joined. 19:50:06 It is supposed to evaluate the complex polynomial in the coef_r, coef_i, dcoef_r, dcoef_i arrays, using z_r and z_i as the real and imaginary parts of the variable. 19:50:56 (Note: I only know that the coefficient arrays are correctly calculated from the root_r and root_i arrays, not that the code I posted here is correct.) 19:51:17 -!- Sgeo__ has joined. 19:51:40 zzo38: that's what the loop in lines 11..19 is supposed to do, but I don't understand why 15..18 should do the multiplications you do 19:52:33 I also don't understand why you're not evaluating the formula using horner, but that's not my main problem 19:53:23 it looks like lines 12..14 in the loop compute successive powers of (z_r+z_i*I) into (v_r+v_i*I), that part makes sense 19:53:32 but lines 15..18 I don't understand 19:53:40 Yes, now I look again, it seems like wrong. Also it look like maybe line 12-14 should go after line 18 instead. 19:53:58 Yes, I think they are wrong now. 19:54:58 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 19:55:17 You are correct those lines don't make sense I think 19:57:57 (I don't know why I did not notice that mistake before.) 20:00:50 Onec I fixed that, now it works. Those are the lines that were wrong. 20:01:23 nice 20:01:34 can you show the fixed code? 20:01:45 Yes 20:02:08 http://zzo38computer.org/fossil/farbfeld.ui/raw/ff-newton.c?name=14eb774b5e5a9c0524e765c6c4f754fd2c72c867 20:03:04 thanks 20:03:42 I also don't know how is evaluating the formula using horner, that is why I did not do so. 20:15:50 zzo38: you can find out in TAOCP chapter 4.6.4 if you want, but it might not matter for this program 20:16:17 I was just surprised that that wasn't what you wrote by default for evaluating the polynomial here 20:16:57 I once borrowed TAOCP from library but do not have it now. 20:17:16 hmm 20:18:29 https://en.wikipedia.org/wiki/Horner%27s_method probably has other pointers then 20:20:14 OK 20:31:04 [[Codd]] https://esolangs.org/w/index.php?diff=64144&oldid=64143 * Areallycoolusername * (+1) 21:15:13 -!- AnotherTest has quit (Ping timeout: 258 seconds). 21:21:11 -!- dingwat has joined. 21:29:23 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64145&oldid=63926 * Areallycoolusername * (+11) 21:31:03 [[Codd]] https://esolangs.org/w/index.php?diff=64146&oldid=64144 * Areallycoolusername * (+2) 21:33:22 -!- ais523 has joined. 21:34:28 The story used in GURPS game I play, I think, there could be more than two factions, even if the main war is two. This can apply in D&D too, and other people's story. 22:01:24 -!- kolontaev has quit (Quit: leaving). 22:03:09 -!- arseniiv has quit (Read error: Connection reset by peer). 22:03:57 -!- arseniiv has joined. 22:19:28 [[PERPLEX]] https://esolangs.org/w/index.php?diff=64147&oldid=58872 * Areallycoolusername * (+55) 22:46:15 -!- ais523 has quit (Quit: quit). 23:16:15 Now I made a "pseudo-Burrows-Wheeler" program. 23:20:25 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:21:48 Also, I should think that a variant of move-to-front transform could be to keep a separate list for each previous character (which would require more memory). 2019-07-10: 00:22:03 [[Jussef Swissen]] https://esolangs.org/w/index.php?diff=64148&oldid=58873 * Areallycoolusername * (+21) 00:39:31 [[Codd]] https://esolangs.org/w/index.php?diff=64149&oldid=64146 * Areallycoolusername * (+216) 00:42:04 -!- arseniiv has quit (Ping timeout: 246 seconds). 00:49:33 What is "gvfs-fuse-daemon"? 01:44:34 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 01:46:57 -!- Lord_of_Life has joined. 02:05:01 -!- nfd9001 has quit (Read error: Connection reset by peer). 02:08:46 -!- nfd9001 has joined. 02:44:36 SQLite does not currently support upsert for virtual tables. I thought one way it could be implemented, although it will only work on the primary key of the table (unless "WITHOUT ROWID" is specified, it must be the rowid). After ON CONFLICT you must specify either the primary key column or DO NOTHING. The upsert clause will only be executed if the xUpdate method returns SQLITE_CONSTRAINT_PRIMARYKEY or SQLITE_CONSTRAINT_ROWID; if it returns anythi 02:45:18 (Possibly also sqlite3_vtab_config() might be required in order to enable it.) 03:09:38 -!- FreeFull has quit. 03:18:40 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64150&oldid=64142 * A * (+20) They are abusing my proof... + Sign my proof 03:19:02 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64151&oldid=64150 * A * (+200) 03:21:03 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64152&oldid=64151 * A * (+253) /* Validity? */ 03:22:17 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64153&oldid=64148 * A * (+61) What is the deal? 03:22:52 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64154&oldid=64153 * A * (-61) 03:25:54 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64155&oldid=64152 * A * (+56) /* Validity? */ 03:29:04 -!- nfd has joined. 03:32:27 -!- nfd9001 has quit (Ping timeout: 264 seconds). 04:39:16 [[Computational class]] M https://esolangs.org/w/index.php?diff=64156&oldid=59973 * A * (+25) /* Turing-completeness */ 08:07:49 -!- b_jonas has quit (Quit: leaving). 08:09:33 -!- Taneb has changed nick to nvd. 08:11:53 -!- AnotherTest has joined. 08:56:00 -!- nvd has changed nick to Taneb. 09:02:04 -!- Tisgh has joined. 09:02:32 -!- Tisgh has left ("Leaving"). 09:25:13 -!- laerling has joined. 09:38:51 -!- tromp__ has quit (Remote host closed the connection). 09:44:49 -!- tromp has joined. 09:47:15 -!- Sgeo_ has joined. 09:50:27 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 10:57:47 -!- Sgeo__ has joined. 11:01:17 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 11:37:17 -!- Sgeo__ has quit (Read error: Connection reset by peer). 11:37:45 -!- Sgeo__ has joined. 11:38:45 -!- arseniiv has joined. 11:39:17 -!- wob_jonas has joined. 11:39:37 zzo38: https://media.wizards.com/2019/downloads/MagicCompRules%2020190712.txt 11:40:25 -!- xkapastel has joined. 12:07:38 -!- laerling has quit (Quit: Leaving). 12:16:22 [[Cal]] N https://esolangs.org/w/index.php?oldid=64157 * A * (+632) Created page with "[[Cal]] is a simple tool used for doing calculations automatically. ==Command set== {| class="wikitable" border="1" |- ! Command ! Result |- | | Addition |- | | Subtra..." 12:16:45 [[Cal]] M https://esolangs.org/w/index.php?diff=64158&oldid=64157 * A * (+68) 12:19:14 [[Cal]] M https://esolangs.org/w/index.php?diff=64159&oldid=64158 * A * (+182) 12:22:20 [[Cal]] https://esolangs.org/w/index.php?diff=64160&oldid=64159 * A * (+253) 12:27:13 [[Cal]] M https://esolangs.org/w/index.php?diff=64161&oldid=64160 * A * (-221) Nope, 2D is too complex 12:37:34 -!- laerling has joined. 13:03:50 [[Cal]] M https://esolangs.org/w/index.php?diff=64162&oldid=64161 * A * (+218) 13:09:42 [[Cal]] M https://esolangs.org/w/index.php?diff=64163&oldid=64162 * A * (+234) 13:13:23 [[Cal]] https://esolangs.org/w/index.php?diff=64164&oldid=64163 * A * (+52) I don't see how these are useful 13:20:39 [[Cal]] M https://esolangs.org/w/index.php?diff=64165&oldid=64164 * A * (+91) +Uncomputable 13:21:12 [[Cal]] M https://esolangs.org/w/index.php?diff=64166&oldid=64165 * A * (+50) 13:29:28 [[Cal]] M https://esolangs.org/w/index.php?diff=64167&oldid=64166 * A * (+149) 13:32:22 -!- laerling has quit (Remote host closed the connection). 13:45:08 -!- Lord_of_Life_ has joined. 13:46:18 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:46:20 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:46:48 [[Cal]] M https://esolangs.org/w/index.php?diff=64168&oldid=64167 * A * (-20) 13:50:11 [[Cal]] M https://esolangs.org/w/index.php?diff=64169&oldid=64168 * A * (+8) Now it looks a lot nicer 13:51:14 [[Cal]] M https://esolangs.org/w/index.php?diff=64170&oldid=64169 * A * (-8) "OK" is not universal; the cross sign will be fine. 13:56:41 [[Cal]] M https://esolangs.org/w/index.php?diff=64171&oldid=64170 * A * (-73) Addition = negative subtraction 13:57:06 [[Cal]] M https://esolangs.org/w/index.php?diff=64172&oldid=64171 * A * (+0) /* Command set */ Uhh 13:57:23 [[Cal]] M https://esolangs.org/w/index.php?diff=64173&oldid=64172 * A * (+4) 14:10:39 -!- laerling has joined. 14:13:17 -!- Sgeo_ has joined. 14:14:30 [[Cal]] M https://esolangs.org/w/index.php?diff=64174&oldid=64173 * A * (-78) Reptwice is trivial 14:16:25 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 14:18:43 [[Codd]] https://esolangs.org/w/index.php?diff=64175&oldid=64149 * Areallycoolusername * (+4812) Revamped the page 14:20:16 [[Codd]] https://esolangs.org/w/index.php?diff=64176&oldid=64175 * Areallycoolusername * (+1) 14:21:31 [[Language list]] https://esolangs.org/w/index.php?diff=64177&oldid=64116 * Areallycoolusername * (+11) /* C */ 14:21:58 [[Cal]] M https://esolangs.org/w/index.php?diff=64178&oldid=64174 * A * (+55) 14:35:06 [[Hello world program in esoteric languages]] https://esolangs.org/w/index.php?diff=64179&oldid=63456 * Areallycoolusername * (+2901) 14:40:52 [[Codd]] https://esolangs.org/w/index.php?diff=64180&oldid=64176 * Areallycoolusername * (+289) 14:41:47 wob_jonas: OK, I downloaded it now. 14:41:55 [[Codd]] https://esolangs.org/w/index.php?diff=64181&oldid=64180 * Areallycoolusername * (-1) /* Wolfram Program */ 14:44:32 [[Keg]] M https://esolangs.org/w/index.php?diff=64182&oldid=63147 * A * (-3250) /* Example Programs */ 14:45:56 [[User talk:JonoCode9374]] N https://esolangs.org/w/index.php?oldid=64183 * A * (+382) Created page with "==Please don't recover the examples on Keg== If you want to recover the examples on Keg, please don't; I created a contest about Keg on CGCC, and I don't want others to cheat...." 14:47:51 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64184&oldid=64183 * A * (+57) 14:49:51 [[Keg]] M https://esolangs.org/w/index.php?diff=64185&oldid=64182 * A * (+2647) Undo revision 64182 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]); undo most of the examples except for Fib example. 14:53:39 -!- wob_jonas has quit (Remote host closed the connection). 15:01:31 [[User talk:JonoCode9374]] https://esolangs.org/w/index.php?diff=64186&oldid=64184 * Areallycoolusername * (+193) 15:08:00 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64187&oldid=64141 * Areallycoolusername * (+93) 15:23:19 -!- Sgeo__ has joined. 15:26:05 -!- Sgeo_ has quit (Ping timeout: 244 seconds). 15:41:49 -!- Sgeo_ has joined. 15:44:58 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 16:30:40 -!- laerling has quit (Ping timeout: 252 seconds). 16:45:10 -!- laerling has joined. 16:50:13 -!- b_jonas has joined. 17:20:38 [[Special:Log/newusers]] create * FlyHamsterPaul * New user account 17:21:40 -!- Phantom_Hoover has joined. 17:24:37 -!- zzo38 has quit (Ping timeout: 245 seconds). 17:29:18 -!- Sgeo_ has quit (Read error: Connection reset by peer). 17:29:44 -!- Sgeo_ has joined. 18:06:44 -!- Sgeo__ has joined. 18:09:37 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 18:28:17 -!- laerling has quit (Quit: Leaving). 18:28:39 -!- laerling has joined. 18:29:03 -!- laerling has quit (Remote host closed the connection). 18:32:37 -!- laerling has joined. 18:42:03 -!- FreeFull has joined. 19:18:24 -!- S_Gautam has joined. 19:54:32 -!- arseniiv has quit (Ping timeout: 272 seconds). 20:05:12 -!- zzo38 has joined. 20:06:05 `olist 1170 20:06:08 olist 1170: shachaf oerjan Sgeo FireFly boily nortti b_jonas 20:06:40 o 20:27:11 -!- laerling has quit (Quit: Leaving). 20:30:04 -!- laerling has joined. 20:38:59 -!- laerling has quit (Quit: ZNC - https://znc.in). 20:39:24 -!- laerling has joined. 20:39:59 -!- S1 has joined. 20:45:16 -!- laerling has quit (Quit: ZNC - https://znc.in). 20:46:50 -!- laerlings has joined. 20:46:59 -!- laerlings has left. 21:27:58 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 21:44:05 [[Talk:Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64188&oldid=64155 * Salpynx * (+415) /* Validity? */ 21:56:35 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64189&oldid=64188 * Salpynx * (+106) Re-instate heading, and trying to figure out who actually responded 21:58:56 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64190&oldid=64187 * Salpynx * (-2) /* Specifics */ four 22:07:01 -!- AnotherTest has quit (Ping timeout: 244 seconds). 22:12:04 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64191&oldid=64190 * Salpynx * (-358) /* Infinite Loop */ tidy examples (use ideographic space) & remove invalid ones 22:14:07 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64192&oldid=64191 * Salpynx * (-152) Tidy categories 22:15:08 -!- S1 has quit (Remote host closed the connection). 22:30:44 -!- laerling has joined. 23:13:48 -!- tromp has quit (Remote host closed the connection). 23:27:49 -!- b_jonas has quit (Quit: leaving). 23:39:17 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 2019-07-11: 00:01:37 [[User talk:JonoCode9374]] https://esolangs.org/w/index.php?diff=64193&oldid=64186 * JonoCode9374 * (+192) /* Please don't recover the examples on Keg (yet) */ 00:20:04 -!- xkapastel has quit (Quit: Connection closed for inactivity). 00:27:01 -!- tromp has joined. 00:31:22 -!- tromp has quit (Ping timeout: 252 seconds). 00:53:45 -!- budonyc has joined. 01:16:04 ski: Hmm, I wonder how strong the connection between coroutines an trampolines is. 01:28:37 elaborate ? 01:32:26 Maybe I should first sort out the things about coroutines. :-) 01:33:11 I don't remember where we left that conversation off. 01:47:08 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 01:50:20 -!- Lord_of_Life has joined. 02:02:53 So, remember how the other night, I was trying to figure out how to do keyboard input with PCjs? 02:03:01 I'm *STILL* trying to figure it out. :D 02:03:07 Damn, this is tantalizing. 02:19:17 -!- Sgeo_ has joined. 02:22:25 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 03:15:27 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64194&oldid=64193 * A * (+308) Add the link 03:21:47 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64195&oldid=64194 * A * (+76) 03:27:36 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64196&oldid=64189 * A * (+39) /* Potential Interpreter */ 03:32:36 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64197&oldid=64195 * A * (+3) 03:33:06 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64198&oldid=64197 * A * (+20) 04:51:35 [[Cal]] M https://esolangs.org/w/index.php?diff=64199&oldid=64178 * A * (+69) 05:41:29 -!- akozar has joined. 05:42:15 [[Pistons & Pistons]] https://esolangs.org/w/index.php?diff=64200&oldid=64192 * Salpynx * (+9) /* Examples */ not great, but is at least valid, and space aligned 05:51:49 [[Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64201&oldid=64200 * Salpynx * (+8) /* Infinite Loop */ slightly better spacing 05:52:08 -!- tromp has joined. 05:57:16 -!- tromp has quit (Ping timeout: 276 seconds). 06:51:34 -!- tromp has joined. 07:17:53 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64202&oldid=64198 * JonoCode9374 * (+194) /* Please don't recover the examples on Keg (yet) */ 07:28:19 [[Esoteric computer]] https://esolangs.org/w/index.php?diff=64203&oldid=32402 * A * (+300) 07:30:13 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64204&oldid=64202 * A * (+328) 07:30:45 [[Keg]] M https://esolangs.org/w/index.php?diff=64205&oldid=64185 * A * (+603) Revert my edits 07:38:00 [[Esoteric computer]] M https://esolangs.org/w/index.php?diff=64206&oldid=64203 * A * (+155) 07:40:48 [[Esoteric computer]] M https://esolangs.org/w/index.php?diff=64207&oldid=64206 * A * (-15) 07:43:23 -!- FreeFull has quit. 07:44:15 -!- Frater_EST has joined. 07:52:53 ski: I think there was something unclear about the connection between stack-switching coroutines and state-machine coroutines, maybe? 07:58:31 hm, i think you mentioned something like that, yes 07:59:30 (and obviously i didn't recall that, even though i briefly looked at the backlog, until after you mentioned it) 08:03:09 -!- Frater_EST has left. 08:07:21 [[Esoteric computer]] M https://esolangs.org/w/index.php?diff=64208&oldid=64207 * A * (+533) 08:16:38 [[Esoteric computer]] M https://esolangs.org/w/index.php?diff=64209&oldid=64208 * A * (+21) 08:17:02 -!- b_jonas has joined. 08:17:04 `bobadventureslist http://bobadventures.smackjeeves.com/comics/2823593/20190710/ 08:17:06 bobadventureslist http://bobadventures.smackjeeves.com/comics/2823593/20190710/: b_jonas 08:23:07 -!- b_jonas has quit (Quit: leaving). 08:37:33 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64210&oldid=64204 * A * (+127) 08:44:30 [[Keg]] M https://esolangs.org/w/index.php?diff=64211&oldid=64205 * A * (+159) /* Fibonacci sequence */ 08:57:25 -!- arseniiv has joined. 09:45:41 -!- akozar has quit (Quit: akozar). 09:53:42 -!- moei has joined. 10:15:20 -!- AnotherTest has joined. 10:25:33 ski: Man, I wish IRC was better at multiline code and other things like that, with real-time editing and so on. 10:26:31 Shame Google Wave never caught on 10:30:59 [[Esoteric computer]] M https://esolangs.org/w/index.php?diff=64212&oldid=64209 * A * (+205) 11:23:45 [[User talk:JonoCode9374]] M https://esolangs.org/w/index.php?diff=64213&oldid=64210 * JonoCode9374 * (+123) 11:29:47 -!- wob_jonas has joined. 12:21:35 [[Punc]] N https://esolangs.org/w/index.php?oldid=64214 * A * (+635) English description 12:26:13 -!- xkapastel has joined. 12:34:44 [[Punc]] M https://esolangs.org/w/index.php?diff=64215&oldid=64214 * A * (+971) 13:42:37 I was worried it’s a Punctree derivative. Whew 13:47:43 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 13:50:45 -!- Lord_of_Life has joined. 14:22:37 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64216&oldid=63832 * A * (+118) 14:23:44 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64217&oldid=64216 * A * (+58) 14:25:33 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64218&oldid=64217 * A * (+173) 15:00:16 -!- wob_jonas has quit (Remote host closed the connection). 16:31:24 -!- b_jonas has joined. 16:38:09 @tell oerjan Do you like https://www.youtube.com/watch?v=H7HTQai7Wwg ? 16:38:09 Consider it noted. 16:56:15 -!- Sgeo__ has joined. 17:00:00 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 17:14:45 -!- Sgeo_ has joined. 17:18:56 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 17:20:39 -!- Phantom_Hoover has joined. 17:22:17 -!- zzo38 has quit (Ping timeout: 244 seconds). 17:22:29 -!- zzo38 has joined. 18:23:25 -!- tromp has quit (Remote host closed the connection). 18:34:56 -!- Melvar has quit (Ping timeout: 272 seconds). 18:39:47 -!- Sgeo__ has joined. 18:43:36 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 19:08:13 -!- FreeFull has joined. 19:09:59 -!- user24 has joined. 19:15:10 -!- user24 has quit (Quit: Leaving). 19:32:24 -!- Melvar has joined. 19:35:31 Hey, I think I found out why I'm not getting any keyboard interrupts in my 8088 emulator. 19:35:52 I'm not talking to the interrupt controller. And when you don't talk to the interrupt controller, it gets mad at you and stops giving you interrupts. 19:36:43 -!- arseniiv has quit (Ping timeout: 245 seconds). 19:37:40 that would make sense 20:01:29 -!- tromp has joined. 20:04:18 -!- Sgeo_ has joined. 20:07:29 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 20:18:50 -!- Sgeo_ has quit (Read error: Connection reset by peer). 20:19:15 -!- Sgeo_ has joined. 20:37:54 -!- xkapastel has quit (Quit: Connection closed for inactivity). 20:51:54 tswett[m]: if that doesn't fix the issue, try pulling off the keyboard connector, then plugging it in again 21:13:07 -!- AnotherTest has quit (Ping timeout: 276 seconds). 21:25:45 -!- akozar has joined. 21:35:11 b_jonas: I'll do my best. 21:42:10 Hello, all. I'm new here so I thought I'd introduce myself. My name is Anthony Kozar and I've been enjoying reading the wiki for a couple of months now. 21:43:44 `wElCoMe akozar 21:43:46 aKoZaR: wElCoMe tO ThE InTeRnAtIoNaL HuB FoR EsOtErIc pRoGrAmMiNg lAnGuAgE DeSiGn aNd dEpLoYmEnT! fOr mOrE InFoRmAtIoN, cHeCk oUt oUr wIkI: . (fOr tHe oThEr kInD Of eSoTeRiCa, TrY #eSoTeRiC On eFnEt oR DaLnEt.) 21:45:41 Thanks. :) (one of those messages is from a bot, right?) 21:45:52 `? hackeso 21:45:54 HackEso is almost but not quite unlike HackEgo. 21:46:01 `? hackego 21:46:06 HackEgo, also known as HackBot, is a bot that runs arbitrary commands on Unix. See `help for info on using it. You should totally try to hax0r it! Make sure you imagine it's running as root with no sandboxing. HackEgo is the slowest bot in all Mexico! 21:46:26 (And contrary to popular belief, I'm not a bot.) 21:46:57 But this channel has a number of bots. 21:46:59 `? fungot 21:47:00 int-e: when an electee to three or more players who were contestants, and calculations involving a given board, as described in other 21:47:00 fungot is our beloved channel mascot and voice of reason. 21:47:27 `? j-bot 21:47:28 j-bot? ¯\(°​_o)/¯ 21:47:34 OK. Thanks. :) 21:48:08 [ 'ye olde friendly evalbot' 21:48:08 FireFly: ye olde friendly evalbot 21:48:24 > fix error 21:48:28 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex... 21:48:58 `? esowiki 21:48:59 Esowiki is our resident issue tracker. 21:49:05 Heh. 21:49:29 (esowiki logs wiki edits) 21:49:55 `cwlprits esowiki 21:49:57 int-̈e 21:50:01 ... 21:50:05 damn 21:50:59 I've been trying out a number of the languages on esolangs.org. One that interested me is "SMETANA To Infinity!". 21:51:01 Hmm, October last year. I forgot. 21:51:25 https://esolangs.org/wiki/SMETANA_To_Infinity! 21:51:48 There didn't seem to be an implementation so I wrote one in Python. 21:54:27 I've included a few sample programs with my interpreter (https://github.com/anthonykozar/Smetana2Infinity) but I thought I'd put out a general call for more programs in SMETANA To Infinity! I'm interested to test my interpreter some more plus see what clever coding techniques people may come up with. ;-) 21:57:55 hmm I wonder what the (Smetana) examples at https://github.com/catseye/SMETANA/tree/master/eg do 21:58:35 I think most of them just end up in infinite loops. I couldn't see any other purpose to them. 22:05:56 I kind of doubt that there are any substantial SMETANA to Infinity! programs. Languages without I/O have the downside that nobody tackles the standard tasks... cat, reverse, hello world, rot13, quine, brainfuck interpreter, ... 22:07:04 Simply because they can't be implemented. So once the computational class is established, there's nothing left to do. 22:08:08 [[Klaus]] N https://esolangs.org/w/index.php?oldid=64219 * Areallycoolusername * (+4588) Created page with "'''Klaus''' is an [[esoteric programming language]] made by [[User: Areallycoolusername|Areallycoolusername]]. It was made to be highly capable, with control flow, variables,..." 22:08:27 SMETANA to Infinity! has output but not input. I've included examples that output "hello world", Collatz sequences, and a prime sieve that can find all primes up to some hard-coded limit. 22:08:55 Oh, there. I missed that. 22:09:04 hmm mm. 22:09:08 :) 22:09:09 Hey akozar :D 22:09:13 Oh, the prime sieve sounds really cool. 22:09:26 Hey twett :) 22:09:40 Oops. tswett[m]. 22:10:18 The prime sieve is neat but it requires O(n) lines of code where n is the maximum integer to be checked. 22:10:55 [[Klaus]] https://esolangs.org/w/index.php?diff=64220&oldid=64219 * Areallycoolusername * (+10) 22:11:15 I included a Python script in my package that can output a sieve program in STI with an arbitrary max integer. 22:12:25 But I'd be really interested if someone could write a program for finding primes that used a constant number of lines of code. :) 22:12:26 what would an unbounded binary counter look like? (output 1\n10\n11\n100\n101\n110\n111\n1000\n1001\n and so on?) 22:13:20 [[Klaus]] https://esolangs.org/w/index.php?diff=64221&oldid=64220 * Areallycoolusername * (-13) 22:13:31 I'm not sure. 22:13:57 [[Klaus]] https://esolangs.org/w/index.php?diff=64222&oldid=64221 * Areallycoolusername * (+9) 22:15:06 [[Klaus]] https://esolangs.org/w/index.php?diff=64223&oldid=64222 * Areallycoolusername * (+1) /* Computational Properties */ 22:16:23 [[Klaus]] https://esolangs.org/w/index.php?diff=64224&oldid=64223 * Areallycoolusername * (+23) /* Hello World Program */ 22:17:17 [[Klaus]] https://esolangs.org/w/index.php?diff=64225&oldid=64224 * Areallycoolusername * (+1) /* Hello World Program */ 22:18:03 > error "string\nwith\nnewline" 22:18:09 *Exception: string 22:18:09 with 22:18:09 newline 22:18:36 where does the double quote come from in the lambdabot output for (fix error) ? 22:18:55 :t fix error 22:18:59 [Char] 22:19:03 (= String) 22:19:24 > undefined :: String 22:19:27 "*Exception: Prelude.undefined 22:19:46 (+ 3 4 ) 22:20:06 oh, it defaults to String because error takes a String? 22:20:09 @type error 22:20:10 makes sense 22:20:13 [Char] -> a 22:20:15 not defaults, but infers 22:20:31 and it prints the double quote before it starts to actually evaluate the string 22:23:11 An unbounded binary counter in STI!? Hmmm. 22:23:49 [[Language list]] https://esolangs.org/w/index.php?diff=64226&oldid=64177 * Areallycoolusername * (+12) /* K */ 22:24:39 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64227&oldid=64145 * Areallycoolusername * (+12) 22:24:48 1. Swap 2 and 3. 2. Continue to 4. 3. Go back to 1. 4. Swap 5 and 6. 5. Continue to 7. 6. Go back to 1. 22:24:50 Does that work? 22:24:52 So... 22:25:25 It shouldn't too hard to write an An unbounded binary counter in STI that outputs the numbers in reverse. I'll have to give it some thought for writing the numbers forwards though.... 22:26:10 Step 3n+1. Swap step 3n+2 with step 3n+3. Step 3n+2. Go to step 3n+4. Step 3n+3. Go to step 1. 22:26:34 Does that program count up in binary? It doesn't output anything, of course. 22:29:10 Hmm, I've started with unary. https://int-e.eu/~bf3/tmp/unary.sme.txt 22:29:56 (prints 1 \ 11 \ 111 \ ... when run in ASCII mode) 22:32:06 > ord '*' 22:32:10 42 22:33:39 I ran the unary program. Cool. :) 22:33:59 I'm trying the binary program, but I 22:34:11 I'm not quite sure what I'm looking for.... 22:35:54 Well, I've got to leave for now. Thanks very much for the interest and discussion!! :) 22:36:34 -!- akozar has quit (Quit: akozar). 22:37:01 -!- xkapastel has joined. 22:37:53 too slow. But https://int-e.eu/~bf3/tmp/primes.sme.txt is a simpler way to sieve a finite number of primes. 22:38:27 (But also disappointing, of course, since the program is not doing any of the sieving itself. It's all in the initialization.) 22:39:53 -!- moei has quit (Quit: Leaving...). 23:07:06 -!- tromp has quit (Remote host closed the connection). 23:16:30 -!- tromp has joined. 23:21:15 -!- tromp has quit (Ping timeout: 252 seconds). 23:56:40 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:59:07 -!- tromp has joined. 2019-07-12: 00:03:24 -!- tromp has quit (Ping timeout: 252 seconds). 00:09:46 -!- Sgeo__ has joined. 00:13:04 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 00:18:53 You know, it's very rare that I receive an email from another human being sent specifically to me. :D 00:18:53 Most of my email comes from "the Algorithm". 00:20:05 Then what is it for if not specifically for you? Mailing lists? Wide notifications? 00:20:43 Yeah, mailing lists and automated emails. 00:22:47 * kmc obeys and worships The Algorithm 00:23:13 I do not have any mailing lists or automated notifications (although I have occasionally received automated replies); all of the messages I receive are someone writing to me specifically. I have sometimes received spam messages, but when that happens I edit my /etc/aliases file so that they can't send it anymore. 00:24:34 (I have several email addresses, so if the spam is prevented in this way, it will not usually prevent legitimate messages.) 00:47:24 -!- tromp has joined. 00:51:49 -!- tromp has quit (Ping timeout: 252 seconds). 00:53:42 -!- tromp has joined. 00:54:58 -!- tromp_ has joined. 00:58:03 -!- tromp has quit (Ping timeout: 252 seconds). 00:59:31 -!- tromp_ has quit (Ping timeout: 252 seconds). 01:09:13 -!- atslash has quit (Quit: This computer has gone to sleep). 01:15:31 -!- tromp has joined. 01:17:51 -!- tromp_ has joined. 01:20:46 -!- tromp has quit (Ping timeout: 276 seconds). 01:22:43 -!- tromp_ has quit (Ping timeout: 276 seconds). 01:47:40 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 01:47:54 -!- xkapastel has quit (Quit: Connection closed for inactivity). 01:56:13 -!- Lord_of_Life has joined. 02:00:28 -!- FreeFull has quit. 06:04:26 -!- mapleBloodRed has joined. 06:11:38 -!- mapleBloodRed has quit (Read error: Connection reset by peer). 06:15:36 -!- Frater_EST has joined. 06:28:42 -!- akozar has joined. 06:56:39 `? 06:56:40 ​? ¯\(°​_o)/¯ 06:57:13 `help 06:57:14 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 06:57:18 -!- tromp has joined. 07:09:22 akozar: I came up with https://int-e.eu/~bf3/tmp/primes.sme.txt just after you left earlier 07:10:06 akozar: (which is borderline cheating because all the sieving is already done during initialization) 07:11:40 WOW! That's incredible! 07:13:29 Nice work! I'm assuming that it requires more lines to search higher? 07:18:09 I think that you can remove the steps An+A where A is not prime, but of course then you have to know some of the primes in advance. ;-) 07:23:32 int-e: I was figuring out how your unary counter program worked earlier. Thanks for these examples! 07:28:00 And just before you messaged, I was checking out the info about tiling rectangles on your web site. Neat stuff. I enjoy combinatorial problems. ^_^ 07:33:19 Hmm I might still revisit that one at some point. 07:36:35 -!- b_jonas has quit (Quit: leaving). 07:42:25 -!- tromp has quit (Remote host closed the connection). 08:02:32 -!- tromp has joined. 08:09:52 -!- akozar has quit (Quit: akozar). 08:17:53 tswett[m]: I have an unbounded binary counter :) https://int-e.eu/~bf3/tmp/binary.sme.txt 08:27:41 [[Klaus/Dense]] N https://esolangs.org/w/index.php?oldid=64228 * A * (+644) Thank you @Areallycoolusername 08:28:54 [[Klaus/Dense]] https://esolangs.org/w/index.php?diff=64229&oldid=64228 * A * (+3932) Fix typos and more info; Ctrl+C Ctrl+V first 08:39:03 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64230&oldid=64229 * A * (+120) Do partial work 08:52:49 But this should not distract from the fact that this is a really annoying language to work in. 08:53:19 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64231&oldid=64230 * A * (+29) Hello World not yet translated. 08:54:40 -!- atslash has joined. 08:56:40 -!- arseniiv has joined. 08:59:13 -!- atslash has quit (Ping timeout: 245 seconds). 08:59:50 -!- atslash has joined. 09:03:22 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64232&oldid=64231 * A * (+124) 09:11:24 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64233&oldid=64232 * A * (-33) Simpler syntax to compile to Klaus 09:15:05 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64234&oldid=64233 * A * (+2) 09:23:47 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64235&oldid=64234 * A * (-100) 09:27:21 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64236&oldid=64235 * A * (+5) 09:35:06 -!- atslash has quit (Quit: Leaving). 09:35:42 [[Klaus/Dense]] M https://esolangs.org/w/index.php?diff=64237&oldid=64236 * A * (+12) 09:45:13 -!- atslash has joined. 10:28:31 -!- AnotherTest has joined. 10:46:40 [[Playlist]] N https://esolangs.org/w/index.php?oldid=64238 * A * (+1108) Created page with "[[Playlist]] is an esoteric programming language based on playlists. ==Rules of operation== Playlist operates over a playlist. There are a few commands in Playlist; they are..." 10:47:30 [[Playlist]] M https://esolangs.org/w/index.php?diff=64239&oldid=64238 * A * (+91) 10:48:59 [[Playlist]] M https://esolangs.org/w/index.php?diff=64240&oldid=64239 * A * (+127) 10:50:54 [[Playlist]] M https://esolangs.org/w/index.php?diff=64241&oldid=64240 * A * (+65) /* Example programs */ 10:59:51 -!- nfd9001 has joined. 11:00:40 -!- nfd has quit (Ping timeout: 246 seconds). 11:25:33 -!- xkapastel has joined. 11:46:25 -!- Frater_EST has left. 11:56:30 @time 11:56:34 Local time for shachaf is Fri Jul 12 04:56:31 2019 11:57:06 ski: This probably doesn't make much sense because it's a thought I had lying in bed at 5 in the morning, but I feel like linear logic par is actually obvious and straightforward. 11:58:25 It just means "or" in one aspect of the classical logic sense: A # B means that "at least one" of A,B is true. 11:59:18 Which means you can turn a refutation of A into a proof of B, and a refutation of B into a proof of A. Which is just the standard thing that document said. 11:59:47 Say, for any natural n, I can tell you that either n is odd or Sn is odd. That means that if you show me that n is even, then I can prove that Sn is odd, and vice versa. 12:00:09 That all seems very simple so can someone remind me what's confusing about par? 12:04:44 well, consider the proof that for any prime integer `p', if `p' divides `a*b', then `p' divides `a', or `p' divides `b' 12:05:31 the standard proof of this has the basic shape "suppose `p' does not divide `a'. ... thus `p' divides `b'" 12:06:10 which seems to me to be exactly the kind of thing that a proof of a multiplicative disjunction would be 12:07:25 instead of "eagerly" pointing out which alternative we're to prove, we "lazily" wait for our opponent to disprove one disjunct, and only then do we prove the other one (possibly using information that we get from the disproof) 12:08:14 [[Klaus]] M https://esolangs.org/w/index.php?diff=64242&oldid=64225 * A * (+108) No, it is TC 12:08:23 however, when using this proof, what if we instead of disproving the first disjunct, instead disprove the second one ? 12:08:51 then we'd have to be able to from that derive a proof of "`p' divides `a'" -- how does that work ? 12:08:58 [[Klaus]] M https://esolangs.org/w/index.php?diff=64243&oldid=64242 * A * (+30) +CAT 12:09:09 well, in this case, we're in a symmetric situation. but in general, that won't be the case 12:09:55 so, it seems that one option would be to store both a function from disproof of left disjunct to proof of right disjunct, and a function from disproof of right disjunct to proof of left disjunct 12:10:57 and here my creeping suspicion is coming in that perhaps, if we take any such pair of functions, then won't necessarily "correspond to each other" (whatever that means) 12:11:10 Here's one odd thing -- I think people end up with expressions like "A # A" in linear logic. I'm not quite sure what that would mean. 12:11:47 Probably because I'm now thinking of these things as truth values, which doesn't work. 12:12:08 anyway, another option might be to analyze the construction from disproof of left disjunct to proof of right disjunct, in such a way that we can also interpret it as function from disproof of right disjunct to proof of left disjunct, effectively "reversing" it 12:12:34 I kind of like the fact that par is obviously symmetric, unlike functions. 12:13:02 (But the connection to modus tollens that someone mentioned the other day is what made me think of this.) 12:13:22 so, the one direction (considered as an intuitionistic function, via some forgetful, perhaps) would begat the other direction (which we can also consider in such a way), and then these two (the forgetful versions) would "correspond" in the desired way to each other 12:14:01 I'm not sure quite what you would want from such a correspondence. 12:14:46 Whatever it is it makes sense to want it to arise naturally from the way you write your proofs-or-whatever. 12:14:48 yeah, by "in this case, we're in a symmetric situation. but in general, that won't be the case", i meant that it's not obvious how to reach from `A^- -> B^+' to `B^- -> A^+', where `A' and `B' may look quite different (as opposed to the above example) 12:15:40 All your logic rules should presumably package up the forward and backward directions together. 12:15:52 "it makes sense to want it to arise naturally from the way you write your proofs-or-whatever" -- yes 12:16:39 but from a model-theoretic viewpoint, where we don't consider proofs ? 12:17:05 I don't know what you would want. 12:17:15 * ski neither .. 12:17:28 Informally, I think of "!a" as meaning something like "T & a & a*a & a*a*a & ..." -- a tensor of some number of copies of a, where you get to choose the number. 12:18:01 The De Morgan dual of that would be (0 + a + a#a + a#a#a + ...) 12:18:08 What does that mean? 12:19:29 As an implication, you can say that a#a#a = (~a*~a*~a -o _|_) 12:19:57 So it's a thing that takes some number of copies of ~a 12:20:35 Wait, instead of T I should have said 1, and instead of 0 I should have said _|_ 12:20:43 anyway, you can perhaps consider a rule something like from `Gamma , n : neg A |- e : B' derive `Gamma |- {@n |-> e} : A # B' .. hmm 12:21:19 the point being that we decide to "wait for" a refutaion of `A', and express the proof of `B' in terms of that 12:22:14 re `!', in that case i'm also pondering if we want some kind of condition on that, to express that "all the `a's are copies of each other" 12:22:36 (all the `a's in a single "term", i.e.) 12:23:17 the `T & a & a*a & a*a*a & ...' means that we'll pick how many `a's we like, at least 12:23:51 and so `0 + a + a#a + a#a#a + ...' means that the context (the opponent) will pick "how many `a's" we'll get fed by it 12:23:53 (It's 1 & a & ..., not T & a & ... -- T is the unit of & and 1 is the unit of *, which was the one I meant.) 12:24:26 (yea, but i write the additive truth as `1' anyway, so .. :) 12:24:40 oh no 12:24:44 (because it's terminal object) 12:24:58 That's actually a pretty good reason. 12:25:24 maybe. i'm not sure ;) 12:25:30 Thinking of "a" as a thing that's true or false, a#a makes no sense 12:25:43 right 12:25:54 So that's not the thing to think in linear logic. Which I already knew of course. 12:26:36 some systems have a "mix" rule that allows you to derive `A * B |- A # B', iirc 12:26:51 Yes. 12:27:01 pretending that the computations corresponding to `A' and `B' communicate, while they actually don't 12:27:24 and then you can prove `|- 1 # 1' (`1' being mult. truth) 12:27:46 I don't think I have a good feel for the meaning of the four units. 12:28:40 `*' is "aggregation", and so `1' is "an empty space" 12:28:41 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: *': not found 12:30:20 (er, i should have used `T' of course in `T # T', if i was intending to be consistent with myself. `T' being mult. truth) 12:30:35 anyway, say you want to prove `T -o A' and `A -o _|_' (`_|_' being mult. false) 12:30:43 Do you have a + b |- a # b in any case? 12:30:45 prove them together, i mean 12:31:00 Oh, you shouldn't. 12:32:17 hmm 12:34:00 (i was trying to remember a point which i thought i had made in this situation. but now i'm not sure it's there. perhaps because i misremembered some details about the situation ?) 12:35:40 @time 12:35:43 Local time for shachaf is Fri Jul 12 05:35:40 2019 12:35:48 I should go to sleep. 12:35:54 hm, okay 12:36:19 Thanks for the help. I'll think about it more when I wake up. 12:36:23 * ski nods 12:58:51 -!- nfd has joined. 12:58:54 -!- arseniiv_ has joined. 12:59:41 -!- stux- has joined. 13:00:14 Something I've just thought about 13:00:14 Consider the category "2" which has two objects and a morphism between them 13:00:14 I think there is an adjunction Set |- 2 (if I've got that notation right, I'm not very good at adjunctions) 13:00:14 -!- arseniiv has quit (Read error: Connection reset by peer). 13:00:15 Which maps the empty set to the codomain of the single non-identity arrow in 2, and all other sets to its domain 13:00:15 -!- sftp has quit (Excess Flood). 13:00:31 The reverse of this maps the codomain to the empty set and the domain to any non-empty set, e.g. {{}} 13:00:36 -!- sftp has joined. 13:01:43 -!- nfd9001 has quit (Ping timeout: 245 seconds). 13:02:09 -!- stux|away has quit (Ping timeout: 245 seconds). 13:17:29 So, par in linear logic. 13:19:07 Usually I just think of a # b as meaning ~a -o b, or equivalently ~b -o a, or equivalently ~(~a * ~b). 13:23:00 Let me try to remember here. There's a "protocol semantics" for linear logic. Any formula in linear logic represents a protocol. 13:24:18 Generally, you can submit a request to a protocol. After you do, you must wait for a response from that protocol. A protocol can "finish" after responding; if it does, then you have successfully consumed that protocol. However, a protocol can also finish *without* responding, in which case you have not successfully consumed the protocol. 13:25:03 You know what, I don't think I'm making any sense. So I'm going to start over. 13:25:19 There's a "ball game" semantics for linear logic. Any formula in linear logic represents a person who desires to participate in the game. 13:25:43 -!- stux- has quit (Quit: Aloha!). 13:25:57 -!- stux|away has joined. 13:26:51 Initially, you have the ball. In order to win the game (that is, in order to successfully consume the formula you are given), you must get everyone to leave the game, and you must possess the ball. 13:27:10 The semantics of the various connectives are... 13:27:19 1 - A player who goes home immediately. 13:27:54 Bot - A player who waits to be thrown the ball, and then takes the ball and goes home with it. 13:28:16 Top - A player who refuses to go home under any circumstances. 13:29:18 0 - A player who allows you to win the game immediately, by sending all the other players home (even Top), taking any excess balls, and giving you a ball if you need one. 13:29:40 a + b - A player who chooses either a or b to substitute for herself. 13:30:03 a & b - A player who allows you to pick either a or b, and has the player you chose substitute for herself. 13:31:02 a * b - A player who has both a and b standing behind her; when you throw her the ball, she will pass it on to either a or b (your choice), and also pass along any messages. When she receives the ball back from a or b, she throws it back to you. 13:37:58 a # b - A player who has both a and b standing behind her, and also has a ball in her pocket. When you throw her the ball, she then throws one ball each to a and b. Whenever she gets a ball back from either one, she throws it back to you; her team then sits and waits to receive the ball again, at which point she will throw it to whichever of her two subordinates she most recently got the ball from. 13:39:52 She will not go home until both of her subordinates have gone home and she has thrown you as many balls as you have thrown her. 13:40:24 Finally: 13:42:00 ~a - A player who waits to be thrown the ball, then behaves like *you* are a player of type "a". This player will not go home until she has won (that is, she's done what is necessary to make a player of type "a" go home, and she has the ball). 13:43:06 So, all this explains why 1 # Bot can be successfully consumed, but 1 # 1 and Bot # Bot cannot be. 13:43:54 In the case of 1 # Bot, 1 goes home immediately; # throws a ball to Bot, who goes home with it; and # throws the other ball to you and goes home. 13:44:05 In the case of 1 # 1, both 1s go home immediately, so # has nobody to throw the extra ball to. 13:44:19 And in the case of Bot # Bot, # throws a ball to each Bot, they both go home, and # will never get the ball back like she wants. 13:46:12 -!- Lord_of_Life_ has joined. 13:49:34 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 13:49:36 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:50:31 Sorry for the tswettologue. :D 14:44:14 ⅋ is weird 14:45:11 -!- xkapastel has quit (Quit: Connection closed for inactivity). 14:57:59 I know I didn't get it *quite* right, but I think I was pretty close. 14:58:32 Way back when, I wanted to create a "linear Haskell" programming language. 14:58:47 I remember I really liked whatever name I came up for it, but I don't remember what that name was. 15:00:45 Hylisk, that's it. 15:03:38 I think the name was mostly arbitrary. It was chosen for how it has a lot of the sounds from "Haskell" and "linear". 15:03:58 -!- user24 has joined. 15:04:18 It comes from the word "Hydralisk" from StarCraft, with the middle syllable dropped. 15:06:51 I had the idea to give it a rather fun "disjointed lambda" syntax, where you could write definitions such as this one: 15:06:56 mmm straight line haskell 15:07:14 dual f = (f \x) -> x 15:07:53 . o O ( I even hava a slogan for it: "Don't declare. Just do!" ) 15:08:00 The type signature would be... 15:08:18 dual :: ((a -> Bottom) -> Bottom) -> a 15:08:46 So in context, f :: (a -> Bottom) -> Bottom; \x :: a -> Bottom; and x :: a. 15:09:20 The -> operator sees an expression of type Bottom on the left, and a on the right, and forms an expression of type a. 15:15:06 It expresses the following rule: given "X, (a -o Bot) |- Bot" and "Y, a |- b", form "X, Y |- b". 16:17:08 -!- shotover has joined. 16:21:48 -!- shotover has quit (Client Quit). 16:22:24 -!- shotover has joined. 16:25:20 -!- moei has joined. 17:18:00 -!- user24 has quit (Quit: Leaving). 17:19:08 -!- budonyc has quit (Ping timeout: 272 seconds). 17:29:15 * kmc waves to tswett[m] 17:30:33 Yo. 17:30:45 how's life? 17:43:46 -!- Phantom_Hoover has joined. 18:28:53 convoluted 18:29:13 `" 18:29:14 537) OMG What if we shoot Hitler with neutrinos \ 1080) boily: so i guess a really savvy glass programmer could make some money, maybe start a home based business of a profiler to spot outright dead code. macro-generated code often has big swaths of it. i'd hate learning cobol and fortran just for getting wiki work. 18:29:57 ^style 18:29:57 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 18:30:04 ^style irc 18:30:04 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 18:30:14 fungot: blasphemy 18:30:14 int-e: just copy-pasted from http://en.wikipedia.org/ wiki/ irp 18:47:16 @metar lowi 18:47:17 LOWI 121820Z VRB04KT 9999 -RA FEW015 BKN050 OVC090 15/13 Q1015 TEMPO SHRA 18:47:59 @metar loww 18:48:00 LOWW 121820Z 28008KT 9999 FEW030CB SCT060 BKN300 21/12 Q1011 NOSIG 18:48:41 @metar eddt 18:48:41 EDDT 121820Z VRB02KT 9999 FEW025CB 20/14 Q1009 NOSIG 19:15:25 -!- FreeFull has joined. 19:32:59 i like 537 because it's now an obscure reference to a very brief period in popular science 19:35:42 [[Esolang:General disclaimer]] https://esolangs.org/w/index.php?diff=64244&oldid=59371 * Areallycoolusername * (+122) Import Compensation Notice 19:36:15 [[Esolang:General disclaimer]] https://esolangs.org/w/index.php?diff=64245&oldid=64244 * Areallycoolusername * (+1) 19:52:13 Taneb: I don't understand your adjunction. Where do the functors map the arrows? 19:52:41 For example don't you need a function from {{}} to {}? 20:40:51 -!- atslash has quit (Quit: This computer has gone to sleep). 21:01:06 There's a "ball game" semantics for linear logic => the following was interesting! 21:06:30 -!- arseniiv_ has changed nick to arseniiv. 21:26:44 -!- AnotherTest has quit (Ping timeout: 252 seconds). 21:38:10 Finally, now I implemented the ability to post articles with bystand. 21:50:53 (It still isn't complete, though. Many additional stuff might be added/changed.) 21:56:55 -!- arseniiv has quit (Ping timeout: 246 seconds). 22:25:02 -!- budonyc has joined. 23:03:59 -!- lambdabot has quit (Quit: When will I be back? Only time will tell!). 23:05:45 -!- tromp_ has joined. 23:08:34 -!- tromp has quit (Ping timeout: 276 seconds). 23:19:09 -!- lambdabot has joined. 23:21:07 lambdabot: Time has told. 23:43:46 [[Category:Works-in-Progress]] M https://esolangs.org/w/index.php?diff=64246&oldid=63964 * Salpynx * (-31) Undo revision 63964 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]) redundant category theory joke 23:51:01 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 23:53:05 -!- zzo38 has quit (Ping timeout: 248 seconds). 23:53:51 shachaf: Well there's a Theseus problem... it's all newly compiled code now! 23:54:10 -!- zzo38 has joined. 23:55:36 Did you ship it? 23:56:44 I don't know how to answer that. (But I do see the pun.) 2019-07-13: 00:11:07 -!- atslash has joined. 00:34:19 -!- rodgort has quit (Quit: Leaving). 00:38:31 -!- rodgort has joined. 00:39:18 -!- Sgeo_ has joined. 00:42:28 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 01:32:56 -!- atslash has quit (Quit: This computer has gone to sleep). 01:49:28 -!- Lord_of_Life has quit (Ping timeout: 258 seconds). 01:52:11 -!- Lord_of_Life has joined. 02:55:22 -!- budonyc has quit (Quit: Leaving). 03:02:36 -!- yaewa has joined. 03:03:48 -!- moei has quit (Ping timeout: 245 seconds). 04:04:44 -!- Sgeo__ has joined. 04:08:01 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 05:31:47 -!- Sgeo_ has joined. 05:35:04 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 05:37:10 I invented "unusenet:" URI scheme, which can be used with both Usenet and Unusenet, and is a bit similar to "magnet:" URI scheme. You can specify the message by any combination of stuff, such as the message ID, server(s) you can access it from, timestamp, hash values, etc. Any part is optional. 06:18:47 -!- myname has quit (Ping timeout: 244 seconds). 06:32:54 -!- myname has joined. 06:41:17 -!- Frater_EST has joined. 06:41:34 -!- Frater_EST has left. 07:36:27 -!- tromp_ has quit (Remote host closed the connection). 07:37:19 -!- tromp has joined. 07:47:00 -!- john_metcalf has joined. 07:55:45 -!- Frater_EST has joined. 07:56:10 -!- Frater_EST has left. 08:33:17 -!- arseniiv has joined. 08:43:26 -!- AnotherTest has joined. 10:08:31 -!- john_metcalf has quit (Ping timeout: 268 seconds). 10:46:34 -!- Phantom_Hoover has joined. 12:07:41 -!- xkapastel has joined. 13:50:27 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 13:51:41 -!- Lord_of_Life has joined. 14:27:20 -!- xkapastel has quit (Quit: Connection closed for inactivity). 15:10:17 -!- xkapastel has joined. 15:12:43 -!- clog has quit (Quit: ^C). 15:14:17 -!- atslash has joined. 15:17:13 -!- clog has joined. 15:41:05 [[Special:Log/newusers]] create * Impartial * New user account 15:59:57 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=64247&oldid=63996 * Impartial * (+260) /* Introductions */ 16:08:37 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 18:11:08 Is it common to use a upsert that is always going to cause a conflict? (Such as "INSERT INTO ... SELECT ... ON CONFLICT(...) DO UPDATE ..."; since you can't use joins and some other features of a SELECT command in a UPDATE command, so you use upsert instead.) 18:26:17 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64248&oldid=59611 * Joshop * (+1451) 18:26:38 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64249&oldid=64248 * Joshop * (+5) 18:27:22 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64250&oldid=64249 * Joshop * (+4) 18:30:40 [[Language list]] https://esolangs.org/w/index.php?diff=64251&oldid=64226 * Joshop * (+14) 18:57:02 Is there a flag in ELF to share memory after execve() is used? 18:59:35 If this flag is set, and the section in the original and new program have the same name, size, and virtual address, and the flag is set in both programs, then it should not reset the contents of the section. That is what my idea is. 19:26:47 -!- atslash has quit (Quit: This computer has gone to sleep). 19:35:47 -!- grumble has quit (Quit: Don't forget to like, comment and subscribe!). 19:45:03 -!- grumble has joined. 20:44:20 someone interested in probabilistic context-free grammars? 20:45:19 aka stochastic CFGs. I wonder if there is a criterion for consistency of PCFG not involving a proper CFG 20:46:36 I don’t want to write a transformation to proper one (when there is an equivalent proper one) 20:50:08 What does "consistency" mean here? Something with almost sure termination of unfolding the productions, perhaps? 20:51:49 I have done stuff like that 21:05:39 int-e: exactly 21:06:55 zzo38: I decided to enhance my PCFG-based word/text generator with some analytics, did you generate something with these grammars too? 21:07:33 (more accurately, I write a new version from scratch) 21:08:23 okay if there is something re this, please @tell me if you want 21:08:37 I’ll go see some dreams 21:10:05 arseniiv: FurryScript is similar. 21:12:58 -!- arseniiv has quit (Ping timeout: 245 seconds). 21:17:20 -!- xkapastel has quit (Quit: Connection closed for inactivity). 21:37:59 -!- uber has joined. 21:38:03 hi 21:38:29 apparently literally all links to esolang discord server are invalid 21:38:37 so i guess this is the only place to talk about stuff 21:41:12 I like IRC is better than Discord anyways, I think 21:42:32 -!- yaewa has quit (Quit: Leaving...). 21:49:23 ok 21:49:28 anyways 21:49:59 my language takes a substring of a string and then moves it to the front of the string 21:50:04 -!- uber has quit (Remote host closed the connection). 21:50:27 -!- AnotherTest has quit (Ping timeout: 264 seconds). 22:08:20 [[User:Ubersketch/Flippant]] N https://esolangs.org/w/index.php?oldid=64252 * Ubersketch * (+418) Created page with "Flippant is a language based on moving substrings and printing characters. p(x) Print string x and go to the next step. d(x,y) Delete all characters starting from the x..." 22:09:10 [[User:Ubersketch/Flippant]] https://esolangs.org/w/index.php?diff=64253&oldid=64252 * Ubersketch * (+22) 22:11:03 [[User:Ubersketch/Flippant]] https://esolangs.org/w/index.php?diff=64254&oldid=64253 * Ubersketch * (-24) 2019-07-14: 00:37:43 -!- xkapastel has joined. 01:39:42 -!- haida has joined. 01:50:47 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 01:52:02 -!- Lord_of_Life has joined. 02:00:46 -!- haida has quit (Ping timeout: 246 seconds). 02:41:05 Is there a MIME type for bbcode? (Such thing can be helpful in case someone want to use NNTP with web forum software.) 02:44:52 How do you think I should implement the progress indicator for bystand? 02:57:20 -!- xkapastel has quit (Quit: Connection closed for inactivity). 03:11:56 -!- FreeFull has quit. 03:14:43 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=64255&oldid=63976 * DoggyDogWhirl * (+1549) Nothing important, I promise 03:52:23 [[Kepler]] N https://esolangs.org/w/index.php?oldid=64256 * Areallycoolusername * (+3339) Created page with "'''Kepler''' is an [[esoteric programming language]] made by [[User: Areallycoolusername|Areallycoolusername]]. It's a deque based, golfing language, made to make golfing a lo..." 06:32:19 -!- Sgeo__ has joined. 06:35:27 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 07:00:24 -!- user24 has joined. 07:04:04 [[Kepler]] M https://esolangs.org/w/index.php?diff=64257&oldid=64256 * A * (+856) /* Implementation */ 07:09:47 [[Kepler]] M https://esolangs.org/w/index.php?diff=64258&oldid=64257 * A * (-1) /* Implementation */ 07:13:43 [[Kepler]] M https://esolangs.org/w/index.php?diff=64259&oldid=64258 * A * (+80) /* Interesting Properties */ 07:14:16 [[Kepler]] M https://esolangs.org/w/index.php?diff=64260&oldid=64259 * A * (+31) 07:21:47 [[Talk:Kepler]] N https://esolangs.org/w/index.php?oldid=64261 * A * (+761) Created page with "Great language, but I think this will be a lot easier to code golf in if you add more undocumented features/problems to your source code. (E.g. ^ without arguments reverses th..." 07:24:20 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64262&oldid=64196 * A * (-20) /* Potential Interpreter */ 07:25:02 [[Talk:Pistons & Pistons]] M https://esolangs.org/w/index.php?diff=64263&oldid=64262 * A * (-96) /* Potential Interpreter */ 07:31:36 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64264&oldid=64261 * A * (+80) 07:40:21 [[Flippant]] N https://esolangs.org/w/index.php?oldid=64265 * A * (+582) Created page with "[[Flippant]] is a language based on moving substrings and printing characters. ==Commands== {| class="wikitable" border="1" |- ! Command ! Purpose |- | p(x) | Print string x a..." 07:49:57 [[Flippant]] M https://esolangs.org/w/index.php?diff=64266&oldid=64265 * A * (+305) 07:55:24 [[Flippant]] M https://esolangs.org/w/index.php?diff=64267&oldid=64266 * A * (+180) 07:56:02 [[Flippant]] M https://esolangs.org/w/index.php?diff=64268&oldid=64267 * A * (+44) /* Hello, world! program */ 07:56:43 [[Flippant]] M https://esolangs.org/w/index.php?diff=64269&oldid=64268 * A * (+0) 07:59:52 [[Flippant]] M https://esolangs.org/w/index.php?diff=64270&oldid=64269 * A * (+728) 08:20:20 -!- AnotherTest has joined. 09:34:48 -!- arseniiv has joined. 10:21:58 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=64271&oldid=64255 * A * (+123) /* Brainfuck derivative */ 10:34:56 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=64272&oldid=64271 * A * (+260) /* Brainfuck derivative */ 10:53:21 -!- user24 has quit (Quit: Leaving). 10:57:39 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64273&oldid=64264 * Areallycoolusername * (+166) 11:10:48 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64274&oldid=64273 * A * (+524) 11:13:46 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64275&oldid=64274 * A * (+621) Oops 11:14:14 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64276&oldid=64275 * A * (+4) 11:14:44 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64277&oldid=64276 * A * (-3) /* Ideas on making Kepler's commands useful */ 11:23:35 [[Kepler]] M https://esolangs.org/w/index.php?diff=64278&oldid=64260 * A * (+784) /* Implementation */ 11:26:34 [[Kepler]] https://esolangs.org/w/index.php?diff=64279&oldid=64278 * A * (+168) /* Implementation */ More new features 11:32:28 [[Kepler]] M https://esolangs.org/w/index.php?diff=64280&oldid=64279 * A * (+4440) /* Hello World Programs */ 11:36:27 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64281&oldid=64277 * A * (+148) 11:47:16 [[Kepler]] M https://esolangs.org/w/index.php?diff=64282&oldid=64280 * A * (+154) /* Polynomial growth (a bit close to the Infinite loop) */ 11:49:09 -!- adu has quit (Remote host closed the connection). 11:49:13 -!- FreeFull has joined. 11:49:55 [[Kepler]] M https://esolangs.org/w/index.php?diff=64283&oldid=64282 * A * (-2) /* Polynomial growth (a bit close to the Infinite loop) */ 11:51:21 [[Kepler]] M https://esolangs.org/w/index.php?diff=64284&oldid=64283 * A * (+111) /* Polynomial growth (a bit close to the Infinite loop) */ Please make this grow faster... 11:54:38 [[Kepler]] M https://esolangs.org/w/index.php?diff=64285&oldid=64284 * A * (+247) /* Polynomial growth (a bit close to the Infinite loop) */ 11:55:00 [[Kepler]] M https://esolangs.org/w/index.php?diff=64286&oldid=64285 * A * (+4) /* Human-based looping counter */ 11:57:52 [[Kepler]] M https://esolangs.org/w/index.php?diff=64287&oldid=64286 * A * (+17) /* Polynomial growth (a bit close to the Infinite loop) */ 11:58:11 [[Kepler]] M https://esolangs.org/w/index.php?diff=64288&oldid=64287 * A * (+2) /* Polynomial growth (a bit close to the Infinite loop) */ 11:59:35 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64289&oldid=64281 * A * (-616) /* Ideas on making Kepler's commands useful */ Kepler without extensions is very useful. 12:04:04 [[Kepler]] M https://esolangs.org/w/index.php?diff=64290&oldid=64288 * A * (+529) /* Human-based looping counter */ 12:05:29 [[Kepler]] M https://esolangs.org/w/index.php?diff=64291&oldid=64290 * A * (-952) /* Implementation */ No need for new features. Kepler is already extremely useful. 12:11:51 [[Kepler]] M https://esolangs.org/w/index.php?diff=64292&oldid=64291 * A * (+240) /* Simulation of addition (and subtraction, of course) */ 12:12:36 [[Kepler]] M https://esolangs.org/w/index.php?diff=64293&oldid=64292 * A * (+4) /* Simulation of addition (and subtraction, of course) */ 12:14:34 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64294&oldid=64289 * A * (-19) 12:20:02 -!- user24 has joined. 12:24:27 [[Kepler]] M https://esolangs.org/w/index.php?diff=64295&oldid=64293 * A * (+546) /* Implementation */ 12:29:17 -!- Sgeo_ has joined. 12:32:33 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 12:44:14 -!- lizzie has left. 13:09:07 -!- user24 has quit (Quit: Leaving). 13:37:46 TIL: dd status=progress 13:38:27 (I did know about kill -USR1 of dd already, but that's more convenient.) 13:50:40 -!- Lord_of_Life_ has joined. 13:51:37 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 13:52:17 [[Kepler]] M https://esolangs.org/w/index.php?diff=64296&oldid=64295 * A * (+150) /* Interesting Properties */ 13:53:21 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 13:53:24 [[Special:Log/newusers]] create * Rapti * New user account 14:38:28 -!- atslash has joined. 14:40:44 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64297&oldid=64218 * A * (+5836) 14:42:15 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64298&oldid=64294 * A * (+275) 14:43:46 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64299&oldid=64297 * A * (+18) /* Quick reference of a nice little golfing language */ 15:14:23 -!- Sgeo__ has joined. 15:17:37 -!- Sgeo_ has quit (Ping timeout: 244 seconds). 16:09:19 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=64300&oldid=64247 * Rapti * (+179) /* Introductions */ 16:32:38 Do some DVD video players have options to conditionally override the colours and opacity of subpictures? 16:43:51 [[Talk:MarioLANG]] https://esolangs.org/w/index.php?diff=64301&oldid=39251 * Rapti * (+678) /* Good sample programs */ 18:30:25 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 18:58:47 -!- Sgeo_ has joined. 19:02:25 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 19:16:45 -!- adu has joined. 19:21:50 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64302&oldid=64300 * Sideshowbob * (+53) /* Introductions */ 19:24:03 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64303&oldid=64302 * Sideshowbob * (+26) /* Introductions */ 19:29:13 -!- Lord_of_Life has joined. 19:37:00 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 19:37:30 -!- Lord_of_Life has joined. 19:54:19 -!- b_jonas has joined. 19:56:24 I tried to use a printer redirection TSR program with DOSBOX but it doesn't work; it just says "Unhandled INT 17 call EF" 21:04:20 -!- MDude has joined. 21:25:26 -!- AnotherTest has quit (Ping timeout: 252 seconds). 21:26:57 That sounds like you (or somebody else?) passed AH = EFh to INT 17h rather than one of the expected values (00, 01, or 02)? 21:59:56 -!- Phantom_Hoover has joined. 23:01:13 -!- b_jonas has quit (Quit: leaving). 23:44:07 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:59:38 -!- arseniiv has quit (Ping timeout: 245 seconds). 2019-07-15: 00:26:41 -!- sprocklem has quit (Ping timeout: 248 seconds). 00:28:53 -!- sprocklem has joined. 00:31:47 -!- Sgeo__ has joined. 00:34:41 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 00:42:06 Did ais523 try to make their card game more? I had a different idea, I will mention it too (after eat, perhaps) 00:45:18 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64304&oldid=64298 * Areallycoolusername * (+504) 00:45:38 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64305&oldid=64304 * Areallycoolusername * (-2) 01:11:18 What the fuck am I reading? 01:11:58 On Windows 95, the VFX1 pretends to be... a Joystick. And sending commands to it is done by... reading Joystick data pji.dwFlags = HMD_POWERUP; 01:11:58 ret = joyGetPosEx( HMDId, (LPJOYINFOEX)&pji ); 01:12:06 -!- zhiayang has quit (Quit: ZNC 1.7.3 - https://znc.in). 01:14:01 -!- zhiayang has joined. 01:14:14 #define HMD_POWERUPJOY_CAL_READUONLY 01:19:47 Each player starts five chips of each colour (red, green, blue), and each card also has one colour, and one number 0 to 9, and may also have some flags, commands, etc. And then there are zones, such as the hand, tableau, talon, waste, foundation, pending. Cards in tableau can also have chips placed on them. 01:20:05 There are a few different ways that you can win, lose, and half-lose. If you half-lose twice in one game then you lose. 01:20:52 The actions that you can do on your turn are three kind, which is starting, linking, ending. You must first play a starting action, and then zero or more linking actions, and then one ending action, and then opponent's turn. 01:22:30 Some kind of actions are built-in but some are defined by the cards. 01:24:12 -!- MDude has quit (Ping timeout: 245 seconds). 01:25:02 If between turns any player has no chips or talon is exhausted then that player half-lose and then the chips/talon must be reset, and the other player is given a minor bonus. 01:25:10 Do you like this? 01:26:21 Rearranging the cards in your tableau is a linking action (but you can only rearrange their position, and not if it is ready or if it is face down or face up). 01:28:14 And, since declaring an attack is a ending action, that means that, the positioning for attack has to be the same as the positioning for defense, although you can change it per turn. 01:59:35 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64306&oldid=64305 * A * (-925) 02:23:52 -!- FreeFull has quit. 02:28:41 -!- MDude has joined. 02:30:45 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64307&oldid=64306 * Areallycoolusername * (+359) Inquiry regarding queue 02:32:23 -!- MDead has joined. 02:33:56 -!- MDude has quit (Ping timeout: 244 seconds). 02:34:04 -!- MDead has changed nick to MDude. 03:09:19 [[Swissen Machine]] N https://esolangs.org/w/index.php?oldid=64308 * Areallycoolusername * (+2309) New Esoteric Computer 03:09:35 [[Swissen Machine]] https://esolangs.org/w/index.php?diff=64309&oldid=64308 * Areallycoolusername * (+4) 03:09:59 [[Swissen Machine]] https://esolangs.org/w/index.php?diff=64310&oldid=64309 * Areallycoolusername * (+1) 03:10:58 [[Swissen Machine]] https://esolangs.org/w/index.php?diff=64311&oldid=64310 * Areallycoolusername * (+70) /* Language Implementation */ 03:40:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64312&oldid=64299 * A * (+41) /* Quick reference of a nice little golfing language */ 03:44:06 [[Kepler]] M https://esolangs.org/w/index.php?diff=64313&oldid=64296 * A * (-68) Break my Python interpreter in order to support more quirks. 03:55:41 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64314&oldid=64312 * A * (-129) /* Quick reference of a nice little golfing language */ 03:55:59 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64315&oldid=64314 * A * (+16) /* Stack manipulation operators */ 04:00:00 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 04:02:18 -!- Lord_of_Life has joined. 04:04:46 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64316&oldid=64307 * A * (+323) 04:05:11 [[Kepler]] M https://esolangs.org/w/index.php?diff=64317&oldid=64313 * A * (+0) /* Implementation */ 04:07:08 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64318&oldid=64316 * A * (-157) /* Python Interpreter */ 04:28:21 -!- oerjan has joined. 04:44:43 windows now has a warning to tell me it is turning off warnings when i make e.g. youtube full screen 04:45:09 which means it's annoying me in order to tell me of its remove a less likely annoyance 04:45:15 *removing 04:45:48 (less likely, although more prominent if it happens i suppose) 04:45:58 @messages-loud 04:45:58 int-e said 3d 12h 7m 49s ago: Do you like https://www.youtube.com/watch?v=H7HTQai7Wwg ? 04:46:27 ^ was watching this. i have no real relationship to these colored candies. 04:47:32 oerjan: I was wondering whether you'd like this mechanism, or the idea of sorting by color, or whether you'd become upset about the one missorted one... 04:48:48 `? cdpo 04:48:50 cdpo? ¯\(°​_o)/¯ 04:48:57 i didn't pay enough attention to notice the one missorted one although it mention in a top comment 04:49:11 * oerjan swats int-e -----### 04:49:30 `? cdop 04:49:31 CDOP is OCPD, except with the letters in the *proper* order. 04:49:36 damn. 04:50:40 > sort "-----###" 04:50:42 "###-----" 04:57:55 oerjan: Do you like this video? 05:05:01 not really in this grumpy mood 05:07:58 oh no 05:08:05 would you like a kitten twh 05:08:10 s/tw//wt/ 05:25:43 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64319&oldid=64311 * A * (+34) I suspect that Jussef Swissen is User:Areallycoolusername. 05:29:30 -!- adu has quit (Quit: adu). 05:35:26 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64320&oldid=64319 * A * (+775) 05:40:08 [[Talk:Swissen Machine]] N https://esolangs.org/w/index.php?oldid=64321 * A * (+1581) Created page with "== Difficulties of implementing the Swissen Machine == Whoever has defined the Hugo language, which claims that Hugo conforms part of the Swissen Machine. In this paper, it wi..." 05:42:24 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64322&oldid=64321 * A * (+319) /* Difficulties of implementing the Swissen Machine */ 05:43:32 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64323&oldid=64322 * A * (+87) /* Difficulties of implementing the Swissen Machine */ 05:44:34 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64324&oldid=64320 * A * (-773) /* Difficulties of implementing the Swissen Machine */ 05:45:17 -!- Sgeo_ has joined. 05:48:23 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 05:50:47 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64325&oldid=64323 * A * (+821) /* Difficulties of implementing the Swissen Machine */ 05:52:17 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64326&oldid=64325 * A * (+62) 05:52:39 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64327&oldid=64326 * A * (+1) /* Conclusion */ 05:52:52 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64328&oldid=64327 * A * (-35) /* Conclusion */ 05:53:16 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64329&oldid=64328 * A * (+26) /* Conclusion */ 05:54:34 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64330&oldid=64329 * A * (+9) /* All language definitions cannot fullfill the definition of the Swissen Machine */ 05:56:11 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64331&oldid=64330 * A * (+90) /* All language/machine definitions cannot fullfill the definition of the Swissen Machine */ 05:58:37 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 05:58:39 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64332&oldid=64331 * A * (+273) /* Conclusion */ 06:07:05 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64333&oldid=64332 * A * (+9) /* Difficulties of implementing the Swissen Machine */ 06:11:49 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64334&oldid=64333 * A * (-80) 06:22:36 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64335&oldid=64334 * A * (+1517) 06:24:14 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64336&oldid=64324 * A * (+95) 06:24:36 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64337&oldid=64336 * A * (+2) 06:28:42 -!- oerjan has quit (Quit: Nite). 06:31:44 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64338&oldid=64337 * A * (-2) 06:32:40 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64339&oldid=64338 * A * (+44) 06:33:05 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64340&oldid=64339 * A * (-15) /* Specifics */ 06:34:09 [[Esoteric computer]] https://esolangs.org/w/index.php?diff=64341&oldid=64212 * Salpynx * (-934) remove non-informative content 06:34:34 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64342&oldid=64340 * A * (+44) /* Specifics */ 06:38:13 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64343&oldid=64335 * A * (+542) 06:42:35 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64344&oldid=64343 * A * (+481) /* A computer with no programs */ 06:42:55 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64345&oldid=64344 * A * (-36) /* Difficulties of the Swissen machine, definition 2 */ 06:46:03 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64346&oldid=64342 * A * (+5) /* Language Implementation */ 06:46:19 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64347&oldid=64345 * A * (-117) 06:46:49 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64348&oldid=64346 * A * (+5) /* Language Implementation */ 06:47:17 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64349&oldid=64154 * A * (+43) 06:50:28 -!- mich181189 has quit (*.net *.split). 06:50:28 -!- lynn has quit (*.net *.split). 06:50:28 -!- dog_star has quit (*.net *.split). 06:50:28 -!- fungot has quit (*.net *.split). 06:50:31 -!- KindOne has quit (*.net *.split). 06:50:31 -!- grumble has quit (*.net *.split). 06:50:31 -!- sprocklem has quit (*.net *.split). 06:50:31 -!- Hooloovo0 has quit (*.net *.split). 06:50:32 -!- GeekDude has quit (*.net *.split). 06:50:32 -!- lifthrasiir has quit (*.net *.split). 06:50:32 -!- atslash has quit (*.net *.split). 06:50:32 -!- stux|away has quit (*.net *.split). 06:50:32 -!- FireFly has quit (*.net *.split). 06:50:32 -!- rain1 has quit (*.net *.split). 06:50:32 -!- trn has quit (*.net *.split). 06:50:32 -!- limbo_ has quit (*.net *.split). 06:50:32 -!- Lord_of_Life has quit (*.net *.split). 06:50:32 -!- rodgort has quit (*.net *.split). 06:50:32 -!- Melvar has quit (*.net *.split). 06:50:32 -!- laerling has quit (*.net *.split). 06:50:32 -!- int-e has quit (*.net *.split). 06:50:32 -!- ineiros has quit (*.net *.split). 06:50:33 -!- shachaf has quit (*.net *.split). 06:50:33 -!- tromp has quit (*.net *.split). 06:50:34 -!- rdococ has quit (*.net *.split). 06:50:35 -!- zzo38 has quit (*.net *.split). 06:50:35 -!- sebbu has quit (*.net *.split). 06:50:35 -!- hakatashi has quit (*.net *.split). 06:50:35 -!- joast has quit (*.net *.split). 06:50:35 -!- ocharles has quit (*.net *.split). 06:50:35 -!- rickbutton has quit (*.net *.split). 06:50:35 -!- mniip has quit (*.net *.split). 06:50:35 -!- ski has quit (*.net *.split). 06:50:36 -!- relrod has quit (*.net *.split). 06:50:36 -!- heroux has quit (*.net *.split). 06:50:36 -!- shikhin has quit (*.net *.split). 06:50:36 -!- jix has quit (*.net *.split). 06:50:36 -!- aloril has quit (*.net *.split). 06:50:36 -!- diginet has quit (*.net *.split). 06:50:36 -!- vertrex has quit (*.net *.split). 06:50:36 -!- izabera has quit (*.net *.split). 06:50:36 -!- zhiayang has quit (*.net *.split). 06:50:36 -!- myname has quit (*.net *.split). 06:50:36 -!- kmc has quit (*.net *.split). 06:50:36 -!- haavard has quit (*.net *.split). 06:50:36 -!- quintopia has quit (*.net *.split). 06:50:36 -!- economicsbat has quit (*.net *.split). 06:50:36 -!- Taneb has quit (*.net *.split). 06:50:36 -!- dingwat has quit (*.net *.split). 06:50:36 -!- zemhill________ has quit (*.net *.split). 06:50:37 -!- ivzem[m] has quit (*.net *.split). 06:50:38 -!- Deewiant has quit (*.net *.split). 06:50:38 -!- lambdabot has quit (*.net *.split). 06:50:38 -!- nfd has quit (*.net *.split). 06:50:38 -!- aji has quit (*.net *.split). 06:50:38 -!- APic has quit (*.net *.split). 06:50:38 -!- fizzie has quit (*.net *.split). 06:50:39 -!- pikhq has quit (*.net *.split). 06:50:40 -!- xylochoron[m] has quit (*.net *.split). 06:50:40 -!- ^[ has quit (*.net *.split). 06:50:40 -!- ProofTechnique has quit (*.net *.split). 06:50:40 -!- moony has quit (*.net *.split). 06:50:40 -!- j4cbo has quit (*.net *.split). 06:50:40 -!- glowcoil has quit (*.net *.split). 06:50:40 -!- sparr has quit (*.net *.split). 06:50:40 -!- Lymia has quit (*.net *.split). 06:50:40 -!- wmww has quit (*.net *.split). 06:50:40 -!- tswett[m] has quit (*.net *.split). 06:50:41 -!- Camto[m] has quit (*.net *.split). 06:50:41 -!- MDude has quit (*.net *.split). 06:50:41 -!- clog has quit (*.net *.split). 06:50:41 -!- shotover has quit (*.net *.split). 06:50:41 -!- Cale has quit (*.net *.split). 06:50:41 -!- j-bot has quit (*.net *.split). 06:50:41 -!- HackEso has quit (*.net *.split). 06:50:41 -!- erdic has quit (*.net *.split). 06:50:42 -!- paul2520 has quit (*.net *.split). 07:00:08 [[Esolang:General disclaimer]] M https://esolangs.org/w/index.php?diff=64350&oldid=64245 * Salpynx * (-123) page already has one not-funny cancer reference. 07:00:44 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64351&oldid=64349 * A * (-3) "that" refers to non-humans, so Jussef Swissen is not a human being. 07:01:08 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64352&oldid=64351 * A * (+0) 07:02:19 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64353&oldid=64352 * A * (+0) 07:06:15 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64354&oldid=64353 * A * (+208) 07:06:36 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64355&oldid=64354 * A * (+1) 07:08:12 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64356&oldid=64355 * A * (+231) 07:11:04 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64357&oldid=64356 * A * (-18) 07:16:57 -!- KindOne has joined. 07:16:57 -!- MDude has joined. 07:16:57 -!- zhiayang has joined. 07:16:57 -!- sprocklem has joined. 07:16:57 -!- atslash has joined. 07:16:57 -!- grumble has joined. 07:16:57 -!- clog has joined. 07:16:57 -!- tromp has joined. 07:16:57 -!- myname has joined. 07:16:57 -!- rodgort has joined. 07:16:57 -!- zzo38 has joined. 07:16:57 -!- lambdabot has joined. 07:16:57 -!- shotover has joined. 07:16:57 -!- stux|away has joined. 07:16:57 -!- nfd has joined. 07:16:57 -!- Melvar has joined. 07:16:57 -!- laerling has joined. 07:16:57 -!- dingwat has joined. 07:16:57 -!- sparr has joined. 07:16:57 -!- FireFly has joined. 07:16:57 -!- fungot has joined. 07:16:57 -!- dog_star has joined. 07:16:57 -!- lynn has joined. 07:16:57 -!- mich181189 has joined. 07:16:57 -!- zemhill________ has joined. 07:16:57 -!- Cale has joined. 07:16:57 -!- j-bot has joined. 07:16:57 -!- Lymia has joined. 07:16:57 -!- sebbu has joined. 07:16:57 -!- ivzem[m] has joined. 07:16:57 -!- wmww has joined. 07:16:57 -!- xylochoron[m] has joined. 07:16:57 -!- tswett[m] has joined. 07:16:57 -!- pikhq has joined. 07:16:57 -!- Camto[m] has joined. 07:16:57 -!- mniip has joined. 07:16:57 -!- ski has joined. 07:16:57 -!- aji has joined. 07:16:57 -!- int-e has joined. 07:16:57 -!- Hooloovo0 has joined. 07:16:57 -!- ineiros has joined. 07:16:57 -!- kmc has joined. 07:16:57 -!- hakatashi has joined. 07:16:57 -!- APic has joined. 07:16:57 -!- rain1 has joined. 07:16:57 -!- rdococ has joined. 07:16:57 -!- joast has joined. 07:16:57 -!- ^[ has joined. 07:16:57 -!- relrod has joined. 07:16:57 -!- trn has joined. 07:16:57 -!- haavard has joined. 07:16:57 -!- shachaf has joined. 07:16:57 -!- ProofTechnique has joined. 07:16:57 -!- heroux has joined. 07:16:57 -!- moony has joined. 07:16:57 -!- limbo_ has joined. 07:16:57 -!- shikhin has joined. 07:16:57 -!- GeekDude has joined. 07:16:57 -!- jix has joined. 07:16:57 -!- fizzie has joined. 07:16:57 -!- quintopia has joined. 07:16:57 -!- aloril has joined. 07:16:57 -!- lifthrasiir has joined. 07:16:57 -!- j4cbo has joined. 07:16:57 -!- economicsbat has joined. 07:16:57 -!- ocharles has joined. 07:16:57 -!- glowcoil has joined. 07:16:57 -!- rickbutton has joined. 07:16:57 -!- HackEso has joined. 07:16:57 -!- diginet has joined. 07:16:57 -!- erdic has joined. 07:16:57 -!- Taneb has joined. 07:16:57 -!- vertrex has joined. 07:16:57 -!- Deewiant has joined. 07:16:57 -!- izabera has joined. 07:16:57 -!- paul2520 has joined. 07:18:03 -!- Lord_of_Life has joined. 07:19:04 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64358&oldid=64357 * A * (+282) 07:19:51 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64359&oldid=64358 * A * (+53) 07:23:04 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64360&oldid=64359 * A * (+394) 07:24:04 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64361&oldid=64360 * A * (+10) 07:25:20 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64362&oldid=64361 * A * (+211) 07:28:31 [[Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64363&oldid=64362 * A * (+490) 07:30:38 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64364&oldid=62497 * A * (-39) 07:31:30 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64365&oldid=64364 * A * (-97) 07:32:40 [[Swissen Machine]] https://esolangs.org/w/index.php?diff=64366&oldid=64348 * A * (+9) 07:37:36 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64367&oldid=64365 * A * (+136) 07:38:02 -!- Sgeo has joined. 07:45:28 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64368&oldid=64367 * A * (+330) 07:46:27 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64369&oldid=64368 * A * (-146) 07:47:29 [[History (programming language)]] https://esolangs.org/w/index.php?diff=64370&oldid=64369 * A * (+2) 07:48:08 [[History (programming language)]] M https://esolangs.org/w/index.php?diff=64371&oldid=64370 * A * (+6) 08:23:59 -!- KindOne has quit (*.net *.split). 08:24:00 -!- mich181189 has quit (*.net *.split). 08:24:00 -!- lynn has quit (*.net *.split). 08:24:00 -!- dog_star has quit (*.net *.split). 08:24:00 -!- fungot has quit (*.net *.split). 08:24:00 -!- grumble has quit (*.net *.split). 08:24:00 -!- sprocklem has quit (*.net *.split). 08:24:01 -!- Hooloovo0 has quit (*.net *.split). 08:24:01 -!- GeekDude has quit (*.net *.split). 08:24:01 -!- lifthrasiir has quit (*.net *.split). 08:24:01 -!- atslash has quit (*.net *.split). 08:24:01 -!- stux|away has quit (*.net *.split). 08:24:01 -!- FireFly has quit (*.net *.split). 08:24:02 -!- rain1 has quit (*.net *.split). 08:24:02 -!- trn has quit (*.net *.split). 08:24:02 -!- limbo_ has quit (*.net *.split). 08:24:02 -!- Lord_of_Life has quit (*.net *.split). 08:24:02 -!- rodgort has quit (*.net *.split). 08:24:02 -!- Melvar has quit (*.net *.split). 08:24:02 -!- laerling has quit (*.net *.split). 08:24:02 -!- int-e has quit (*.net *.split). 08:24:02 -!- ineiros has quit (*.net *.split). 08:24:02 -!- shachaf has quit (*.net *.split). 08:24:02 -!- tromp has quit (*.net *.split). 08:24:04 -!- rdococ has quit (*.net *.split). 08:24:04 -!- zzo38 has quit (*.net *.split). 08:24:04 -!- sebbu has quit (*.net *.split). 08:24:04 -!- hakatashi has quit (*.net *.split). 08:24:04 -!- joast has quit (*.net *.split). 08:24:04 -!- ocharles has quit (*.net *.split). 08:24:04 -!- rickbutton has quit (*.net *.split). 08:24:05 -!- mniip has quit (*.net *.split). 08:24:05 -!- ski has quit (*.net *.split). 08:24:05 -!- relrod has quit (*.net *.split). 08:24:05 -!- heroux has quit (*.net *.split). 08:24:05 -!- shikhin has quit (*.net *.split). 08:24:05 -!- jix has quit (*.net *.split). 08:24:05 -!- aloril has quit (*.net *.split). 08:24:05 -!- diginet has quit (*.net *.split). 08:24:05 -!- vertrex has quit (*.net *.split). 08:24:05 -!- izabera has quit (*.net *.split). 08:24:05 -!- zhiayang has quit (*.net *.split). 08:24:05 -!- myname has quit (*.net *.split). 08:24:05 -!- kmc has quit (*.net *.split). 08:24:06 -!- haavard has quit (*.net *.split). 08:24:06 -!- quintopia has quit (*.net *.split). 08:24:06 -!- economicsbat has quit (*.net *.split). 08:24:06 -!- Taneb has quit (*.net *.split). 08:24:06 -!- dingwat has quit (*.net *.split). 08:24:06 -!- zemhill________ has quit (*.net *.split). 08:24:06 -!- ivzem[m] has quit (*.net *.split). 08:24:07 -!- Deewiant has quit (*.net *.split). 08:24:07 -!- Sgeo has quit (*.net *.split). 08:24:08 -!- lambdabot has quit (*.net *.split). 08:24:08 -!- nfd has quit (*.net *.split). 08:24:08 -!- aji has quit (*.net *.split). 08:24:08 -!- APic has quit (*.net *.split). 08:24:08 -!- fizzie has quit (*.net *.split). 08:24:09 -!- pikhq has quit (*.net *.split). 08:24:09 -!- xylochoron[m] has quit (*.net *.split). 08:24:09 -!- ^[ has quit (*.net *.split). 08:24:09 -!- ProofTechnique has quit (*.net *.split). 08:24:09 -!- moony has quit (*.net *.split). 08:24:09 -!- j4cbo has quit (*.net *.split). 08:24:09 -!- glowcoil has quit (*.net *.split). 08:24:09 -!- sparr has quit (*.net *.split). 08:24:09 -!- Lymia has quit (*.net *.split). 08:24:10 -!- wmww has quit (*.net *.split). 08:24:10 -!- tswett[m] has quit (*.net *.split). 08:24:10 -!- Camto[m] has quit (*.net *.split). 08:24:10 -!- MDude has quit (*.net *.split). 08:24:10 -!- clog has quit (*.net *.split). 08:24:10 -!- shotover has quit (*.net *.split). 08:24:10 -!- Cale has quit (*.net *.split). 08:24:10 -!- j-bot has quit (*.net *.split). 08:24:11 -!- HackEso has quit (*.net *.split). 08:24:11 -!- erdic has quit (*.net *.split). 08:24:11 -!- paul2520 has quit (*.net *.split). 08:36:23 -!- esowiki has joined. 08:36:41 -!- Bowserinator has joined. 08:36:41 -!- sftp has joined. 08:37:08 -!- uplime^ has joined. 08:37:18 -!- Soni has joined. 08:44:01 -!- olsner has joined. 09:17:57 -!- AnotherTest has joined. 09:18:42 -!- uplime^ has changed nick to KindOne. 09:24:59 [[SMETANA To Infinity!]] https://esolangs.org/w/index.php?diff=64372&oldid=64130 * Ais523 non-admin * (+112) /* Computational class */ another TCness proof 09:37:57 ais523 non-admin? 09:40:17 [[Flippant]] M https://esolangs.org/w/index.php?diff=64373&oldid=64270 * A * (-1000) 09:51:02 myname: I think ais523 doesn't like logging in as admin on certain computers for security reasons 09:56:53 -!- zhiayang has left ("Closing Window"). 10:07:01 i,i i prefer not to log in as admin on computers that i don't have admin access on, for security reasons 10:11:02 -!- Sgeo_ has joined. 10:12:32 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 10:13:42 -!- Lord_of_Life has joined. 10:14:10 -!- Sgeo has quit (Ping timeout: 246 seconds). 10:32:33 -!- sprocklem has quit (Ping timeout: 248 seconds). 10:46:31 [[BrainCrash]] https://esolangs.org/w/index.php?diff=64374&oldid=61466 * YamTokTpaFa * (+36) 10:46:51 [[Braincrash]] https://esolangs.org/w/index.php?diff=64375&oldid=61459 * YamTokTpaFa * (+38) 10:57:48 [[TAPASM]] https://esolangs.org/w/index.php?diff=64376&oldid=37954 * YamTokTpaFa * (+25) +CAT please... 11:29:23 -!- sprocklem has joined. 11:30:37 -!- Sgeo__ has joined. 11:33:56 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 12:51:10 -!- arseniiv has joined. 12:52:23 -!- sprocklem has quit (Ping timeout: 244 seconds). 13:16:22 [[Gopher]] https://esolangs.org/w/index.php?diff=64377&oldid=46983 * YamTokTpaFa * (+24) +CAT, plz.... Also this is an article page, not a talk page, so this is not suitable to put your signature. Instead, you should put "This is a language designed by (your name)" in the first of this article. 13:16:53 [[Bauberqueue/bauberqueue.py]] https://esolangs.org/w/index.php?diff=64378&oldid=53503 * YamTokTpaFa * (+30) +CAT, plz.... 13:19:32 [[JSON++]] https://esolangs.org/w/index.php?diff=64379&oldid=45898 * YamTokTpaFa * (+52) 13:24:34 -!- Sgeo_ has joined. 13:28:09 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 13:45:24 [[RubE On Conveyor Belts]] M https://esolangs.org/w/index.php?diff=64380&oldid=49841 * Arcorann * (-1) /* Interpreter source code */ 14:12:42 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64381&oldid=64366 * Areallycoolusername * (+4) User: Areallycoolusername could be Swissen, but he could also be Barack Obama as far as you know, ;) 14:22:19 [[Special:Log/newusers]] create * Jussef Swissen * New user account 14:24:51 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64382&oldid=64303 * Jussef Swissen * (+244) 14:25:42 [[User talk:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]] M https://esolangs.org/w/index.php?diff=64383&oldid=62832 * A * (+9428) 14:25:50 [[User:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]] N https://esolangs.org/w/index.php?oldid=64384 * A * (+9702) Created page with "{{lowercase}} A funny Ch 14:28:03 [[User:Jussef Swissen]] N https://esolangs.org/w/index.php?oldid=64385 * Jussef Swissen * (+250) Created page with "I'm the guy that made [[PERPLEX]], a over-complicated version of BASIC. I also devised the [[Swissen Machine]]. == Interests == I'm interested in Lambda functions, iota func..." 14:28:04 -!- Sgeo__ has joined. 14:29:07 [[Swissen Machine]] M https://esolangs.org/w/index.php?diff=64386&oldid=64381 * A * (-4) All languages can simulate exactly one of the Swissen Machine's criteria. 14:31:08 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 14:31:37 `olist 1171 14:31:38 olist 1171: shachaf oerjan Sgeo FireFly boily nortti b_jonas 14:34:23 [[Special:Log/move]] move * A * moved [[User:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]] to [[User:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlkjlkjk;lj;k 14:34:23 [[Special:Log/move]] move * A * moved [[User talk:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]] to [[User talk:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlk 14:34:31 -!- sprocklem has joined. 14:34:55 [[Special:Log/move]] move * A * moved [[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]] to [[User:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 14:34:55 [[Special:Log/move]] move * A * moved [[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]] to [[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 14:35:22 [[Special:Log/move]] move * A * moved [[User:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]] to [[User:A/cccccccccccccccccccccccccccccccccccccccccccccc 14:35:22 [[Special:Log/move]] move * A * moved [[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]] to [[User talk:A/cccccccccccccccccccccccccccccccccccc 14:36:32 [[Special:Log/move]] move * A * moved [[User:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]] to [[User:A/tttttttttttttttttttttttttttttttttttttttttttttt 14:36:32 [[Special:Log/move]] move * A * moved [[User talk:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]] to [[User talk:A/tttttttttttttttttttttttttttttttttttt 14:38:17 [[Special:Log/move]] move * A * moved [[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]] to [[User talk:A/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 14:38:38 [[Special:Log/move]] move * A * moved [[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]] to [[User talk:A/baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 14:38:58 [[Special:Log/move]] move * A * moved [[User talk:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]] to [[User talk:A/attttttttttttttttttttttttttttttttttt 14:39:22 [[Special:Log/move]] move * A * moved [[User talk:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]] to [[User talk:A/dccccccccccccccccccccccccccccccccccc 14:40:00 [[Special:Log/move]] move * A * moved [[User talk:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]] to [[User talk:A/ttttttttttttttttttttgttttttttttttttt 14:41:03 -!- Sgeo_ has joined. 14:44:44 [[User talk:Jussef Swissen]] N https://esolangs.org/w/index.php?oldid=64413 * A * (+551) Test the personality of Jussef Swissen 14:45:14 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 14:46:04 -!- Sgeo__ has joined. 14:46:26 [[User talk:Jussef Swissen]] M https://esolangs.org/w/index.php?diff=64414&oldid=64413 * A * (-551) Blanked the page 14:48:06 [[User talk:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64415&oldid=64414 * A * (+669) Sign my comment 14:50:10 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 14:52:33 -!- Sgeo_ has joined. 14:56:20 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 15:03:07 * FireFly eyes A 15:04:00 * int-e has no eyes for A. 15:04:58 Oh I see. I'm still happily ignoring *those* esowiki messages. 15:06:21 Now why would A sign as --Areallycoolusername? 15:08:21 And, meh, more drama. I don't want to get involved. 15:10:23 [[User talk:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64416&oldid=64415 * Int-e * (+280) 15:10:41 But I felt somebody had to. 15:13:24 -!- Sgeo has joined. 15:15:04 dunno about drama, mostly eyeing for the uh, article name moves 15:15:08 -!- Sgeo__ has joined. 15:15:19 Yeah I saw. 15:16:18 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 15:16:35 Just another temper tAntrum. 15:17:23 [[User talk:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64417&oldid=64416 * Jussef Swissen * (+442) 15:17:53 -!- Sgeo has quit (Ping timeout: 248 seconds). 15:18:45 [[User talk:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64418&oldid=64417 * Jussef Swissen * (-1) 15:19:00 Okay they can fend for themselves :) 15:19:04 [[User talk:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64419&oldid=64418 * Jussef Swissen * (+1) 15:27:21 [[User talk:A]] https://esolangs.org/w/index.php?diff=64420&oldid=64315 * Jussef Swissen * (+61) Inquiry regarding uncalled for test 15:27:49 [[User talk:A]] https://esolangs.org/w/index.php?diff=64421&oldid=64420 * Jussef Swissen * (+101) /* Talk page */ 15:32:00 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64422&oldid=64318 * Jussef Swissen * (+49) /* Python Interpreter */ 15:32:53 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64423&oldid=64422 * Areallycoolusername * (+116) 15:52:18 So am I to conclude that Jussef Swissen and Areallycoolusername are the same person... sigh. https://esolangs.org/w/index.php?diff=64422&oldid=64318 16:05:19 -!- wob_jonas has quit (Remote host closed the connection). 16:17:04 -!- FreeFull has joined. 16:19:41 [[Jussef Swissen]] https://esolangs.org/w/index.php?diff=64424&oldid=64363 * Jussef Swissen * (-5) 16:23:04 -!- Sgeo_ has joined. 16:26:42 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 16:31:52 they're putting Alan Turing on the new £50 note 16:33:22 -!- atslash has quit (Quit: This computer has gone to sleep). 16:40:53 wow! 16:47:06 -!- Sgeo__ has joined. 16:50:17 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 17:19:40 -!- Phantom_Hoover has joined. 17:34:57 -!- sprocklem has quit (Ping timeout: 248 seconds). 17:43:43 -!- arseniiv_ has joined. 17:46:09 -!- arseniiv has quit (Ping timeout: 248 seconds). 17:55:02 -!- Sgeo_ has joined. 17:58:57 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 18:11:27 -!- b_jonas has joined. 18:15:24 kmc: why would they do that? aren't there enough kings or queens? 18:16:46 -!- sprocklem has joined. 18:22:10 b_jonas: they have the queen on one side and another famous person on the other 18:22:13 scientists etc 18:26:22 ah 18:26:25 now that makes more sense 18:44:04 this is also the last bill to switch from paper to plastic 18:44:18 apparently £50 bills are not used much in circulation and mainly by criminals and corrupt politicians :P 18:48:57 -!- atslash has joined. 18:54:34 kmc: how do you pay eastern europeans who illegally work at building construction or renovation projects then? 18:55:02 I think construction works black market is the main use for large quantity of banknotes 18:55:41 ... is a think I heared. not that I, or anyone I know, participates in such activities. we're totally law-abiding taxpayers, sir. 18:56:24 takes sense 18:56:26 makes sense* 19:14:45 -!- Lord_of_Life_ has joined. 19:16:42 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:16:42 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:41:39 [[Realm]] N https://esolangs.org/w/index.php?oldid=64425 * Hakerh400 * (+6281) New language: Realm 19:42:49 [[Language list]] https://esolangs.org/w/index.php?diff=64426&oldid=64251 * Hakerh400 * (+12) Add language "Realm" to the language list 19:43:22 [[User:Hakerh400]] https://esolangs.org/w/index.php?diff=64427&oldid=62372 * Hakerh400 * (+12) /* Programming languages we created */ 19:45:53 [[Realm]] M https://esolangs.org/w/index.php?diff=64428&oldid=64425 * Hakerh400 * (+3) 19:47:35 [[Realm]] M https://esolangs.org/w/index.php?diff=64429&oldid=64428 * Hakerh400 * (-2) /* Details */ 19:48:58 [[Realm]] M https://esolangs.org/w/index.php?diff=64430&oldid=64429 * Hakerh400 * (-49) 19:50:29 [[Realm]] M https://esolangs.org/w/index.php?diff=64431&oldid=64430 * Hakerh400 * (-4) /* Instructions */ 19:56:21 [[Gregorovitch]] N https://esolangs.org/w/index.php?oldid=64432 * Jussef Swissen * (+2895) Created page with "'''Gregorovitch''' is a [[Stack]] based esolang made by [[User: Jussef Swissen]]. It's programs are meant to be highly condensed and readable, and are output as a one-liner in..." 20:27:50 [[Realm]] M https://esolangs.org/w/index.php?diff=64433&oldid=64431 * Hakerh400 * (+187) /* Cat */ 21:35:46 -!- sprocklem has quit (Ping timeout: 244 seconds). 21:43:19 -!- AnotherTest has quit (Ping timeout: 246 seconds). 22:04:32 I wonder if there are grandmasters of starcraft-like strategy video games who play two simultaneous matches, each against a separate ordinary mortal, as an exhibition. 22:04:43 I should search for that. 22:08:49 haha 22:10:04 I found one video so far, for Age of Empires, which I think is slower paced and perhaps less macro intensive than starcraft, though I don't think it's a grandmaster showing off, more like some decent player experimenting 22:10:34 I'm not very familiar with AoE2, so I can't really tell how well he's playing 22:11:40 (you all probably know that grandmasters of chess do this, but chess has very different requirements as speed goes) 22:54:07 -!- Sgeo_ has quit (Read error: Connection reset by peer). 22:54:32 -!- Sgeo_ has joined. 23:17:44 -!- sprocklem has joined. 23:29:05 -!- Sgeo__ has joined. 23:32:32 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 23:55:32 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:58:20 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64434&oldid=64421 * A * (+234) /* Talk page */ 2019-07-16: 00:19:38 [[User talk:A]] https://esolangs.org/w/index.php?diff=64435&oldid=64434 * Jussef Swissen * (+58) /* Talk page */ 00:20:10 [[User talk:A]] https://esolangs.org/w/index.php?diff=64436&oldid=64435 * Jussef Swissen * (+127) /* Talk page */ 00:21:22 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64437&oldid=64432 * Jussef Swissen * (+8) /* Registers */ 00:45:13 Is it just me or has computer history mirrored concurrency approaches? DOS with TSRs is a bit like callbacks, then to Windows 3.x with cooperative multitasking akin to coroutines, then preemptive multitasking as threading-like 01:03:40 I'm very confused why this very simple program isn't printing Hello world 01:04:41 https://gist.github.com/Sgeo/c273fd8d3d524622cad5231c37e9139f 01:04:47 It works when I comment out the _dos_keep 01:05:00 But even if I'm screwing up the _dos_keep, shouldn't it print first? 01:11:24 Unicode Character 'BLACK SLIGHTLY SMALL CIRCLE' (U+1F784) 01:11:26 lol 01:11:37 -!- Sgeo__ has quit (Read error: Connection reset by peer). 01:12:03 -!- Sgeo__ has joined. 01:12:49 -!- TellsTogo has joined. 01:13:10 flushall() fixes it 01:15:27 -!- sprocklem has quit (Ping timeout: 245 seconds). 01:18:03 -!- Sgeo_ has joined. 01:21:37 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 01:24:17 -!- arseniiv_ has quit (Ping timeout: 248 seconds). 01:45:26 -!- FreeFull has quit. 01:55:23 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64438&oldid=64437 * Jussef Swissen * (+312) /* Printing */ 01:58:05 [[User talk:A]] https://esolangs.org/w/index.php?diff=64439&oldid=64436 * Jussef Swissen * (+126) /* Talk page */ 01:59:39 [[User talk:A]] https://esolangs.org/w/index.php?diff=64440&oldid=64439 * Jussef Swissen * (+147) /* Talk page */ 02:05:14 -!- TellsTogo has quit (Remote host closed the connection). 02:09:00 -!- adu has joined. 02:12:16 -!- sprocklem has joined. 02:12:38 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64441&oldid=64423 * Anthonykozar * (+1556) C++ interpreter bugs and some questions about the language semantics. 02:16:59 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64442&oldid=64438 * Jussef Swissen * (+1254) 02:27:40 [[Gregorovitch]] https://esolangs.org/w/index.php?diff=64443&oldid=64442 * Jussef Swissen * (+432) Completed the page 03:12:02 :( at Twitter fight 03:15:03 -!- sprocklem has quit (Ping timeout: 245 seconds). 03:20:14 [[Special:Log/move]] move * Jussef Swissen * moved [[Gregorovitch]] to [[Gregorovich]]: Typo in name 03:21:25 [[Gregorovich]] https://esolangs.org/w/index.php?diff=64446&oldid=64444 * Jussef Swissen * (-11) 03:27:00 -!- sprocklem has joined. 03:29:59 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64447&oldid=64385 * Jussef Swissen * (+88) 03:34:31 [[User:Areallycoolusername]] M https://esolangs.org/w/index.php?diff=64448&oldid=64227 * Areallycoolusername * (+13) /* Full List of languages I Made */ 03:35:18 [[Language list]] https://esolangs.org/w/index.php?diff=64449&oldid=64426 * Areallycoolusername * (+13) /* K */ 03:40:56 [[Language list]] https://esolangs.org/w/index.php?diff=64450&oldid=64449 * Jussef Swissen * (+18) /* G */ 04:11:50 [[FireStarter]] https://esolangs.org/w/index.php?diff=64451&oldid=64001 * Ais523 * (-1759) rm copyright-violating content 04:12:20 [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of 3 revisions on page [[FireStarter]]: content hidden: Copyright violation 04:12:47 -!- moei has joined. 04:14:29 -!- ais523 has joined. 04:23:54 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64452&oldid=64440 * A * (+1076) /* Talk page */ 04:24:35 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64453&oldid=64452 * A * (-1) /* Talk page */ 04:27:06 [[Special:Log/block]] block * Ais523 * blocked [[User:A]] with an expiration time of 7 days (account creation disabled): impersonation of other users, attempting to hide their identity in talkpage messages 04:27:20 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64454&oldid=64453 * A * (+428) /* Talk page */ 04:31:08 [[User talk:A]] https://esolangs.org/w/index.php?diff=64455&oldid=64454 * Ais523 * (+864) /* Blocked */ new section 04:46:30 [[Special:Log/abusefilter]] modify * Ais523 * modified [[Special:AbuseFilter/13]] ([[Special:AbuseFilter/history/13/diff/prev/63]]) 04:48:15 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlkjlkjk;lj;klj;klkjljlk;jljk;lj;kljl;j;ljl;kjl;jlkjl;kjl;jl;jl;j;j;ljl;kjlkjljl;jl;j;ljl;jjljj;jljlk;jljljl;j;;jljlk;jlk;jl;kjlkjlkjkjl;jk;kjl;k;kj;jkl;kjl;jk;jk;jkl;jk;lkj;kj;jkll;jkl;jkjkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;j]]": Vandalism 04:48:37 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism 04:49:16 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:49:44 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism: content was: "#REDIRECT User:A/cc 04:50:28 [[Special:Log/delete]] delete * Ais523 * deleted "[[User:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page; repea 04:52:12 [[User talk:A]] https://esolangs.org/w/index.php?diff=64456&oldid=64455 * Ais523 * (+291) /* Blocked */ another reason 04:53:14 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy]]": Vandalism 04:53:32 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/jkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;jljlkjlkjk;lj;klj;klkjljlk;jljk;lj;kljl;j;ljl;kjl;jlkjl;kjl;jl;jl;j;j;ljl;kjlkjljl;jl;j;ljl;jjljj;jljlk;jljljl;j;;jljlk;jlk;jl;kjlkjlkjkjl;jk;kjl;k;kj;jkl;kjl;jk;jk;jkl;jk;lkj;kj;jkll;jkl;jkjkl;jkl;jlk;;lkjl;jkl;k;ljlkjl;j]]": Vandalism 04:54:07 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/atttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism: duplicate of A's talk page; 04:54:32 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:54:42 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/dcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc]]": Vandalism 04:54:59 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism 04:55:15 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism 04:55:49 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/ttttttttttttttttttttgtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt]]": Vandalism 04:56:11 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]": Vandalism 04:56:42 [[Special:Log/delete]] delete * Ais523 * deleted "[[User talk:A/asdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfa]]": Vandalism 04:59:18 [[Special:Log/delete]] revision * Ais523 * Ais523 changed visibility of a revision on page [[User talk:A]]: edit summary hidden: Inappropriate comment or personal information: this edit summary was possibly an intentional attempt to antagonise someone; redacting in case it is 05:00:19 ugh, it's like cleaning up after spambots, but at least the spambots have some sort of economic reason for doing what they do 05:00:43 human-generated vandalism is just pointless 05:01:18 ais523: Could you also delete the other post that A named me in? 05:01:51 I really don't like the thing where they send me IRC messages through wiki edits, which they've already been requested not to do. 05:02:07 shachaf: see the esowiki post just before I posted 05:02:30 given A's recent behaviour I'm not really willing to give them the doubt on this 05:04:06 Oh, was that the one? 05:04:07 Thank you. 05:05:44 whoa, luqui made an account to edit A's things? 05:05:49 I have no idea what's going on with anything. 05:09:08 [[Special:Log/block]] reblock * Ais523 * changed block settings for [[User:A]] with an expiration time of 04:27, 23 July 2019 (account creation disabled): impersonation of other users, attempting to hide their identity in talkpage messages; also pagemove vandalism in userspace 05:09:35 I didn't notice the vandalism until /after/ I'd already blocked them for pretending to be somebody else on talk pages 05:18:23 on a different topic: you know how URLs use protocols like "http:" to indicate an HTTP connection? I'm assuming that "tcp:" and "udp:" are used for raw TCP and UDP sockets, but want to know what the prefix for SSL over TCP would be 05:18:24 well, TLS, not SSL 05:18:26 "tcps:" comes to mind but I'm wondering if there's a standard 05:34:57 CSS is fucking scow 05:35:49 it's 2019 and all kinds of stuff like centering text vertically next to an image is impossible or requires weird hacks 05:35:50 hi kmc 05:35:54 no "vertical-align: middle" does not work 05:36:04 why is everything bad twh 05:36:08 I want to go back to layout just to spite them 05:36:16 I know how to do this with
layout trivially 05:36:56 do it 05:37:23 why is putting pixels on the screen an impossible task? 05:37:58 CSS seems to be adding features that it badly needs far too slowly 05:38:24 I like the basic concept behind CSS but some of the things it should really be able to do trivially are far too difficult 05:40:32 fwiw, centering text vertically next to an image is hard to do with tables too because, for every relevant x coordinate on the whole page, you need to know what order those coordinates come in (ditto y coordinates) 05:40:32 -!- ais523 has quit (Remote host closed the connection). 05:40:45 -!- ais523 has joined. 05:41:11 CSS is just another one of those self-inflicted problems like C++ templates. 05:42:00 now I'm curious as to what a better version of C++ templates would look like 05:42:46 It would probably look like writing a regular program rather than contorting yourself in ridiculous ways to do simple things. 05:43:00 Instead of SFINAE you would have innovative techniques like "if". 05:44:33 -!- moei has quit (Ping timeout: 248 seconds). 07:09:55 -!- MDead has joined. 07:10:54 -!- MDead_ has joined. 07:11:20 -!- MDude has quit (Ping timeout: 244 seconds). 07:13:11 -!- moei has joined. 07:14:41 -!- MDead has quit (Ping timeout: 248 seconds). 07:17:22 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:18:35 I've been reading about the Language Server Protocol, it seems to have some fairly insane design decisionsn 07:18:58 e.g. all positions within a file are given as a line number, plus a byte offset within the line, but the byte offset assumes that the line is encoded in UTF-16 07:19:07 (it'd make much more sense to use the file's source encoding, I think?) 07:20:13 SFINAE is interesting, it reminds me a bit of Prolog 07:20:29 -!- Lord_of_Life has joined. 07:20:34 I don't think you can compile Prolog directly to C++ templates but maybe you can? 07:21:34 There's also the design decision of making it a protocol in the first place. 07:21:56 yes, and sending a header along with each request 07:22:02 Using UTF-16 is bizarre. 07:22:11 I guess it's from Microsoft so why not? 07:22:15 it seems to be optimised for being used over a network 07:22:35 like, there are some cases where there's optimisation to reduce the number of messages/packets sent 07:22:51 That's a silly thing to optimize for. 07:23:14 and I'm thinking "these should both be running on the same computer, why not use a more normal form of calling from one program into another so that you don't have the network overhead and serialisation overhead?" 07:23:23 that way you could call back and forth freely 07:23:53 "We choose UTF-16 encoding here since most language store strings in memory in UTF-16 not UTF-8." 07:23:58 I guess my preferred implementation of something like LSP would be a defined ABI which let you dynamically link the language server into the editor 07:24:09 Yes, it's obviously much more reasonable to have language server libraries. 07:24:35 Java uses UTF-16; most Microsoft languages probably do? 07:25:00 Rust uses UTF-8; Perl switches between ISO-8859-1 and UTF-8 depending on which codepoints the string actually contains 07:25:18 I saw this talk recently where he complains about it: https://www.youtube.com/watch?v=pW-SOdj4Kkk#t=42m30s 07:26:36 C officially uses whatever encoding is indicated by wchar_t, which is UCS-4 on Linux and UCS-2 on Windows, although it's so flexible that ASCII and UTF-8 are common in practice (and C11 added a few UTF-8-specific features like UTF-8 literals) 07:27:29 many languages don't support character strings at all, of course (byte strings are much easier to implement) 07:27:43 People should ignore all these language things and just use UTF-8 for everything. 07:28:04 …but I guess the interest here is in what encoding the language's /compiler/ uses internally, not what language compiled programs in that language use 07:28:12 which are often the same because many languages are self-hosting, but not always 07:28:28 I think the interest here is what encoding the editor uses internally. 07:28:59 The editor is Visual Studio Code, which is written in JavaScript. 07:29:13 Also everything is written in JavaScript because we live in the bad future. 07:29:32 so, e.g., C-INTERCAL uses byte-based I/O but C-INTERCAL's compiler uses a mix of UTF-8 and Latin-1 for the source files 07:29:45 (like, not even differentiated, you can just mix them both in the same file) 07:30:46 there's only one collision between the encodings within INTERCAL's character set, and it's a character that's ambiguous as it is, so of course the compiler does something different with that character based on which encoding it's written in :-D 07:31:24 or hmm, I got that backwards 07:31:36 there are no encoding collisions, but there's one character that's ambiguous and so we use the encoding to disambiguate the two meanigns 07:33:16 anyway, it kind-of disappoints me that the LSP standard is just "let's take our existing code from VS code, document it, and try to make it a standard" without any attempt to actually /design/ a useful protocol 07:33:56 it's also really vague in places 07:34:52 e.g. the server can ask the client for configuration information, but there's no information on what information can be asked for and the type of the return value is not specified 07:35:07 so how can a server and client expect to be compatible in that respect if they were written without knowledge of each other? 07:36:27 lsp bad imo 07:36:39 people are just expected to use visual studio code hth 07:37:28 I like the idea of LSP 07:37:42 I just dislike a huge number of the details 07:38:16 (I was going to say "I dislike most of the details" but I'm not sure if that's accurate yet, because I haven't read them all yet and because I'm not positive I've seen one I like yet, so "most" might be an understatement) 07:39:08 It sounds like you dislike the idea of it being a (network) protocol rather than an ABI, and also everything about the way it specifies the protocol. 07:39:25 So do you mean you like the idea of a standard interface for exposing information from a compiler to an editor? 07:39:30 -!- AnotherTest has joined. 07:39:58 shachaf: pretty much, although I was thinking a bit more generally than "compiler" 07:40:04 e.g. I think syntax highlighters should be abstracted in the same way 07:40:37 something I'm seriously considering right now is a simple, efficient, general programming language for syntax highlighting (sub-TC, focusing on ease of implementation and efficiency) 07:40:49 so that languages could specify their own syntax highlighting rules that every editor could ues 07:42:48 I just don't like all this integration of language knowledge into editors. I mean the idea that it's possible is fine, but in practice it just leads to the users abusing it by writing unreadable code that's impossible to understand without a compiler, full of typoes, etc. 07:43:36 I can't much fault the protocol and editor for being complicated, because this is a really hard problem in general, and I can't imagine any satisfying solution to it. 07:44:53 I guess my personal view of a perfect LSP is that you can download a pack of information about a language, and it then starts being supported by every editor, even ones that don't know about the language 07:44:57 Parts of the difficulty are that (1) you have to do it incrementally, you can't afford to reparse everything after every modification of the source files, (2) even if you could, it would be a bad idea, because the moment I type a left brace, the rest of the code would change meaning a lot (yes, I know editors solve this by typing a right brace when I type a left brace, but that too makes using the 07:45:01 and that editors don't ship their own langauge definitions any more 07:45:03 editor harder) 07:45:21 and (3) the languages to be supported are really complicated too. 07:45:38 incremental reparse/re-highlight is actually the only hard part in writing my syntax highlighting language, I think 07:45:41 But sure, even apart from that, you can find definite mistakes in the implementation. 07:47:00 it strikes me that a "sane LSP" wouldn't have to be incompatible with the current LSP; you could easily write a current-LSP server that used sane-LSP libraries as plugins 07:47:06 In particular, in one version of MS visual studio, I had to disable all the parts that try to understand the code during editing (not just the syntax highlighting; I've disabled that earlier by setting all the colors to black), because there's no other way to tell the editor to not show lightbulb icons *covering* parts of the code without doing that. This is a known bug that other people on the 07:47:12 internets have encountered. 07:49:11 why did you disable the syntax highlighting, btw? is it often incorrect? 07:49:26 also, ais523, you personally have aimake to compile code in complicated ways where you have to compile some of your files to generate code that you then want to compile. would you want a language-aware editor to be aware of such tricky build rules and do them dynamically? how about code that has preprocessor directives and you can build them in multiple different configurations? 07:50:20 in those cases, compiling, even for as much as the editor needs, can have side effects. uncontrollable ones, not just the accidental ones from the occasional compiler bug. 07:50:47 the ideal, for me, is for the editor to show live results for what a compile in a particular configuration would look like 07:51:15 ais523: no. it's just that the colors are distracting and don't help at all, and if the code can't be parsed by a human easily then it's badly written. 07:51:47 e.g. if I saved every open file and typed "make" or "aimake" or whatever into my shell, then that would produce a list of diagnostics, and I'd like to see the diagnostics in the editor 07:51:53 that, or you're using a bad font where l and 1 look the same. 07:52:04 well, my day job is in Java 07:52:40 it's often nice to be able to distinguish a property from a variable, for example (both of these are written in all-lowercase in idiomatic Java code, and you normally don't write "this." every time for the property; maybe you should) 07:52:44 ais523: sure, but incrementally? as opposed to just occasionally when you hit compile, and then hold on to that diagonstic list and keep it, and perhaps track where each part points into the code even if you add or delete a few lines? 07:53:06 it's nice to immediately know that you've made a typo 07:53:34 anyway, ideally this should be stateless, giving a permanent view of the result of a current compile at all times without any actual side effects 07:54:11 this is hard to do efficiently, but in a well-designed language it would be possible (especially as the slowest parts of the compile tend to be things like codegen which isn't needed in this use-case) 07:54:43 sure, I agree that you don't need all of the compilation 07:56:07 when people compile everything with -O3 -funroll-all-loops -fmath-errno during development even if they don't want to run the code at all, make huge source files, and then complain that the compiler is slow, it's totally their fault 07:56:49 I'd expect -fmath-errno to have more of a runtime than compile-time impact, but maybe it does both 07:57:20 sure, that doesn't matter much for compilation, it's mostly unrelated to the issue 07:57:29 (also, -fmath-errno is the default because -fno-math-errno violates the standard) 07:57:37 not anymore in C11 07:58:00 it does in C99, but luckily there are very few programs that actually depend on it, which is why C11 dared to do the change 07:58:51 also C11 finally has standard ways to access the floating point rounding mode and exception flags 08:00:09 hmm, even since C99 actually 08:00:32 it's just that people, and especially Microsoft, are particularly slow the embrace the C99 improvements 08:01:08 I even had a wisdom entry about that, but I think I deleted it 08:01:20 `? lrint 08:01:21 The lrint and lrintf functions (of C99 and C++11) are actually supported by the MS compiler (starting from the 2013), only strangely undocumented. 08:01:21 I didn't 08:05:24 `apropos lrint 08:05:25 apropos: can't open the manpath configuration file /etc/manpath.config 08:05:41 was curious as to whether we could get whatis-like output from HackEso, apparently not 08:05:53 `whatis lrint 08:05:53 whatis: can't open the manpath configuration file /etc/manpath.config 08:06:30 `ls /usr/share/man 08:06:31 cs \ da \ de \ es \ fi \ fr \ hu \ id \ it \ ja \ ko \ man1 \ man2 \ man3 \ man4 \ man5 \ man6 \ man7 \ man8 \ nl \ pl \ pt \ pt_BR \ ru \ sl \ sv \ tr \ vi \ zh_CN \ zh_TW 08:06:36 though I must admit I'm glad we've finally made a breakthrough in the image encoding browser compatibility thing. not JPEG2000 specifically, some more recent format, and I don't really know yet how useful that format is for high quality lossy image compression, but still. 08:06:36 `ls /etc 08:06:37 alternatives 08:08:46 I think hackeso's software environment is deliberately stripped down, because this is #esoteric so there's a risk that our hackeso scripts start to depend on all of the silliest things to do simple operations, which effectively forces the future maintainers of hackeso and its clones to replicate that environment 08:08:53 `printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:53 ​"MANDATORY_MANPATH /usr/share/man \ SECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:58 `` printf "MANDATORY_MANPATH /usr/share/man\nSECTION 1 8 3 2 5 4 9 6 7" > /etc/manpath.config 08:08:58 ​/hackenv/bin/`: line 5: /etc/manpath.config: Permission denied 08:09:01 bleh 08:09:17 but fizzie said that he's willing to install packages from debian's repository to hackeso on request if they aren't too big 08:09:44 `whatis -M /usr/share/man lrint 08:09:45 whatis what? 08:09:52 `0 `whatis -M /usr/share/man lrint 08:09:52 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: 0: not found 08:09:56 `` whatis -M /usr/share/man lrint 08:09:57 whatis: can't open the manpath configuration file /etc/manpath.config 08:10:04 Is your 0 key next to your ` key? 08:11:19 no, it's next to my right arrow key 08:11:34 `` whatis -M /usr/share/man -w '*' lrint 08:11:35 whatis: can't open the manpath configuration file /etc/manpath.config 08:12:10 `` whatis -d 08:12:11 whatis what? 08:12:23 `` whatis -d lrint 08:12:24 whatis: can't open the manpath configuration file /etc/manpath.config 08:12:46 I give up, apparently I can't override its desire to read its configuration file 08:15:38 we could add a fake bin/whatis with a built-in database if you want 08:16:19 ugh, so LSP uses Markdown – with HTML sanitised! – as the protocol for sending formatted text 08:16:32 Markdown is bad enough for humans to use, it's terrible as an exchange format for computers 08:16:33 oh boy 08:17:07 isn't that because the doc comments for some doc comment systems (javadoc, doxygen, and even rustdoc) use markdown format? 08:17:16 javadoc uses HTML 08:17:27 the language server just doesn't want to have to reformat those comments 08:17:29 rustdoc does indeed use Markdown 08:17:43 hmm ok 08:17:47 but Markdown → HTML compilation is /way/ easier than the other direction 08:17:49 what do people use in C#? 08:18:32 Javadoc is really strict about HTML, too, to the extent that you have to write

in your doc comment to separate paragraphs, a double line break is treated the same as a space 08:18:41 I don't really know C#, but I think it predates Markdown becoming popular 08:19:29 I'm not sure about that. if you ampersand-escape every non-alphabetic ascii character in a html, you get a markdown that has a reasonable chance of working, and the rest of html you generally just can't expressin markdown at all 08:19:43 but sure, some html-based thing would be a saner interchange format 08:19:50 because it's more extensible 08:20:13 b_jonas: no, the LSP specifies Markdown without the HTML fallbacak 08:20:35 that's what I do if I have to write nested lists in stackexchange markdown (admittedly that's an even more evil version of markdown than what doxygen uses) 08:20:36 although it says "may be sanitised", which is a bit different from specifying the actual format involved 08:20:41 so maybe things like aren't sanitised 08:21:01 right, that means you can't embed arbitrary javascript and css into it 08:21:03 that's a good thing 08:21:27 perhaps a specific format should have been defined? 08:21:42 otherwise language servers would start serving webpages like you find on the web these days, that don't even have content, only javascript that downloads content from the web and renders it 08:21:46 even BBcode would be better than what they have at the moment, that's almost perfect for the task other than being BBcode 08:21:53 (and thus poorly specified) 08:22:08 specific format => sort of, though it may be worth to leave it extensible in the way that html is (or should be, in some cases), where the renderer can ignore the parts it doesn't understand 08:22:13 b_jonas: well, my issue is more that the set of things you can do isn't specified at all 08:22:54 sure 08:23:21 …also, isn't the most important form of formatting for this syntax highlighting? like, you want to be able to say not just "italicise this" but "format this in keyword color" 08:23:32 and Markdown doesn't have that for obvious reasons 08:23:48 right, that's where you use HTML 08:23:54 (you also don't want to just run the syntax highlighter over a string because it won't have context and you might want to interpolate non-source bits) 08:24:06 well, HTML doesn't have a "keyword colour" option either, although it's obvious how to extend it to do so 08:24:11 tags like and and , and classes with meaning specific to this stuff 08:27:14 I have seen at least one Markdown purist on StackExchange by the way, they edited some formatting I put in a post from HTML tags to other markdown. 08:29:07 -!- Sgeo__ has joined. 08:32:22 as for catching typos while I type, I definitely don't want that. neither when writing natural language, nor when writing code. it just distracts me from writing code, because that usually happens in bursts when I have figured out more code in my head than I can type and am desperate to type quickly to flush the buffer. 08:32:47 I can go back and fix typos later in a pass after that, it's usually easy enough to figure out what I meant when the compiler or spell checker points out the typos. 08:33:00 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 08:33:36 so I disabled all the red squiggly line stuff too, and just do a pass after where I compile or spellcheck 08:33:36 @djinn (a -> b) -> [a] -> [b] 08:33:36 Error: Undefined type [] 08:33:53 try @hoogle 08:34:07 nah, I'm trying to find a nontrivial djinn use 08:34:17 although Hoogle is fun too 08:34:22 @djinn Monad m => (a -> b) -> m a -> m b 08:34:22 -- f cannot be realized. 08:34:26 @hoogle Monad m => (a -> b) -> m a -> m b 08:34:27 Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:34:27 Distribution.Compat.Prelude.Internal liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:34:27 RIO.Prelude liftM :: Monad m => (a1 -> r) -> m a1 -> m r 08:35:05 at work I use the Java equivalent of hoogle all the time 08:35:11 Joogle 08:35:18 except it takes into account what variables are available in scope 08:35:45 so you can type ctrl-space and get pretty much the entire line of code filled out for you, based only on a bit of context that specifies what sort of value you're looking for 08:36:09 that's probably not good for inexperienced devs because there might be more than one way to produce a value of the desired type, but if you're experienced you'll have the line of code envisaged in your mind already 08:36:13 and just want to save on typing 08:36:46 (Agda editors have a similar feature, but in Agda, often all you care about is producing a variable of the desired type because you're writing a proof not a program, so it works even better there, you don't have to know what line of code you're trying to write) 08:38:33 -!- Sgeo_ has joined. 08:41:43 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 08:53:45 -!- b_jonas has quit (Quit: leaving). 09:25:07 -!- Sgeo_ has quit (Read error: Connection reset by peer). 09:25:34 -!- Sgeo_ has joined. 09:25:44 -!- ais523 has quit (Quit: quit). 09:26:11 -!- zzo38 has quit (Ping timeout: 258 seconds). 09:54:32 -!- wob_jonas has joined. 10:06:08 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64457&oldid=64456 * A * (-2600) /* Talk page */ Uhhh... 10:10:30 ^help 10:10:30 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 10:10:49 `? ! 10:10:50 ​! is a syntax used in Haskell and Prolog for solving evaluation order problems. 10:10:55 `? `? 10:10:56 ​​`? ¯\(°​_o)/¯ 10:10:56 `? `! 10:10:58 ​`! emulates the ! command of our former bot EgoBot. You write `! then the name of the language then a program, and it runs the program you give and returns the result. We used to use it to test out esoprograms in-channel all the time, but the set of included esolangs is fairly old now and so it's rarely used. 10:22:07 -!- Sgeo__ has joined. 10:24:55 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 10:26:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64458&oldid=64457 * A * (+990) /* Blocked */ Talk to Ais523 before I got blocked again 10:29:14 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64459&oldid=64458 * A * (-990) /* Blocked */ PH (moved to Page History) 10:32:54 i like how the "sentence wothoug using 'a'" on his userpage actually has two occurences of the letter a in it 10:33:37 -!- sprocklem has quit (Ping timeout: 248 seconds). 10:49:02 -!- sprocklem has joined. 10:50:59 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64460&oldid=64459 * A * (-2) /* A sentence without using 'a' */ 10:55:22 well played 10:57:51 you can write here, too, you know 11:37:35 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64461&oldid=64447 * Jussef Swissen * (+278) 11:38:49 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64462&oldid=64461 * Jussef Swissen * (+77) 11:39:13 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64463&oldid=64462 * Jussef Swissen * (-5) 11:40:32 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64464&oldid=64448 * Jussef Swissen * (+114) 11:52:36 ^style 11:52:36 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp ukparl youtube 11:55:05 -!- AnotherTest has quit (Ping timeout: 252 seconds). 12:02:04 ` cat bin/bienvenido 12:02:07 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: : not found 12:02:27 `bienvenido 12:02:28 ​¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: . (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.) 12:02:34 `` cat bin/bienvenido 12:02:35 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome.es"; } else { exec "bin/?", "welcome.es"; } 12:03:57 `? catcat 12:03:58 catcat? ¯\(°​_o)/¯ 12:04:02 `catcat bin/welcome 12:04:04 No output. 12:04:08 `cat bin/welcome 12:04:09 ​#!/usr/bin/perl -w \ if (defined($_=shift)) { s/ *$//; s/ +/ @ /g; exec "bin/@", $_ . " ? welcome"; } else { exec "bin/?", "welcome"; } 12:04:13 ``` cat bin/catcat 12:04:14 echo No output. 12:07:20 `? doag 12:07:21 ​`doag: See `hoag 12:07:23 `? hoag 12:07:24 ​`[hd]o[aw][gt] [] is a set of commands for querying HackEgo hg logs. `hoag is the basic version. d adds revision numbers and dates, w looks only in wisdom, and t lists oldest first. 12:08:13 `? dobg 12:08:14 dobg? ¯\(°​_o)/¯ 12:08:23 `? dontaskdonttelllist 12:08:24 dontaskdonttelllist? ¯\(°​_o)/¯ 12:08:30 `dontaskdonttelllist 12:08:30 dontaskdonttelllist: q​u​i​n​t​o​p​i​a​ m​y​n​a​m​e​ i​n​t​-​e​ 12:10:21 `? edit 12:10:24 ​`edit gives you a url, then in your browser: (1) Press Sync (unless making a new file) (2) Make your changes (3) Press Save (4) Paste the command line at the top into the channel. 12:11:28 `elcome 12:11:29 elcome o he nternational ub or soteric rogramming anguage esign nd eployment! or ore nformation, heck ut ur iki: . (or he ther ind f soterica, ry #soteric n Fnet r ALnet.) 12:11:43 `emoclew 12:11:44 ​(.tenLAD ro tenFE no ciretose# yrt ,aciretose fo dnik rehto eht roF) . :ikiw ruo tuo kcehc ,noitamrofni erom roF !tnemyolped dna ngised egaugnal gnimmargorp ciretose rof buh lanoitanretni eht ot emocleW 12:12:06 `? erflist 12:12:08 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64465&oldid=64347 * Jussef Swissen * (+341) 12:12:09 erflist? ¯\(°​_o)/¯ 12:12:13 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64466&oldid=64460 * A * (-56) 12:12:26 wha is "erflist"? 12:12:39 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64467&oldid=64466 * A * (-235) /* Talk page */ 12:12:48 sorry for the spam 12:12:55 I should have used private messages 12:14:17 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64468&oldid=64465 * Jussef Swissen * (-1) 12:14:44 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64469&oldid=64468 * Jussef Swissen * (+1) 12:15:27 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64470&oldid=64467 * A * (+421) /* Talk page */ 12:17:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64471&oldid=64470 * A * (+428) /* Talk page */ 12:19:36 [[User talk:A]] https://esolangs.org/w/index.php?diff=64472&oldid=64471 * A * (+1155) 12:21:37 [[User talk:Ais523]] https://esolangs.org/w/index.php?diff=64473&oldid=62957 * Areallycoolusername * (+217) Question about unusmall block circumstances. 12:25:08 `hi 12:25:09 `perl -e open$I,"<",$c="bin/hi"; local $/; $s=<$I>; $s=~s/`words`/\$ENV{IRC_NICK}/ or die; if (0) { open $O,">",$c or die; print $O $s or die; } print $s; 12:25:09 Hi pron. Hon. 12:25:10 ​#!/usr/bin/perl \ $_ = (join " ", @ARGV) || $ENV{IRC_NICK}; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_."; 12:25:11 `hi 12:25:13 Hi portrason. Hortrason. 12:25:18 `hi 12:25:19 Hi empositi. Hempositi. 12:25:28 `perl -e open$I,"<",$c="bin/hi"; local $/; $s=<$I>; $s=~s/`words`/\$ENV{IRC_NICK}/ or die; if (1) { open $O,">",$c or die; print $O $s or die; } print $s; 12:25:30 ​#!/usr/bin/perl \ $_ = (join " ", @ARGV) || $ENV{IRC_NICK}; s/^\s+|\s+$//g; print "Hi $_. "; if (/[aeiouyAEIOUY0134]/) { s/^[^aeiouyAEIOUY0134]*/H/; } else { s/^./H/; } print "$_."; 12:25:31 `hi 12:25:32 Hi wob_jonas. Hob_jonas. 12:25:34 `hi 12:25:35 Hi wob_jonas. Hob_jonas. 12:28:40 -!- arseniiv_ has joined. 12:35:41 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64474&oldid=64472 * A * (+283) 12:37:45 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64475&oldid=64474 * A * (+0) HackEso: Nice introduction to esolangs.org! 12:47:43 ``` cat bin/quine 12:47:44 ​#!/bin/sh \ cd /var/irclogs/_esoteric; cat $(ls ????-??-??.txt | tail -1) | sed 's/[^>]*> //' | grep '^`' | tail -1 #Best cheating quine ever? 12:47:44 `quine 12:48:54 ​/hackenv/bin/quine: 2: cd: can't cd to /var/irclogs/_esoteric \ ls: cannot access '????-??-??.txt': No such file or directory 12:49:02 ``` set -e; c=bin/quine; >$c echo $'#!/bin/sh\necho $IRC_MESSAGE # Best cheating quine ever?'; chmod -v a+x "$c" 12:49:03 mode of 'bin/quine' retained as 0755 (rwxr-xr-x) 12:49:05 `quine 12:49:06 ​`quine 12:49:10 `quine me 12:49:10 ​`quine me 12:49:37 ``` quine this # including comments 12:49:37 ​``` quine this # including comments 12:49:50 ``` for x in 0 1; do quine; done 12:49:51 ​``` for x in 0 1; do quine; done \ ``` for x in 0 1; do quine; done 12:50:14 ``` echo $_ 12:50:16 bash 12:52:55 -!- sprocklem has quit (Ping timeout: 268 seconds). 12:59:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64476&oldid=64475 * A * (-627) /* Talk page */ 13:43:29 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64477&oldid=64250 * Joshop * (+597) 13:43:41 [[Cthulhu]] https://esolangs.org/w/index.php?diff=64478&oldid=64477 * Joshop * (+6) 13:57:42 `fetch share/whatis https://hack.esolangs.org/get/share/whatis 13:57:44 2019-07-16 13:57:43 URL:https://hack.esolangs.org/get/share/whatis [748223/748223] -> "share/whatis" [1] 14:03:51 -!- Reallycooluserna has joined. 14:24:55 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 14:38:56 -!- Reallycooluserna has joined. 14:44:10 Would it be possible to create a new esolang that 's in some way based off of the chaos game? https://en.m.wikipedia.org/wiki/Chaos_game 14:47:05 Fo example, input would be the dimensions of a given shape and a exponent to signify how many times the fractal should spread, or text with an exponent that would be printed in a fractal format as output? 14:47:24 I'm not really well educared on this subject 14:47:31 Educated* 14:50:01 https://medium.com/@balidani/cities-skylines-is-turing-complete-e5ccf75d1c3a is anadder really enough to be tc? 14:51:44 Reallycooluserna: i'd say if you change randomness at most pseudorandomness, that could work 14:57:07 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 14:59:46 -!- Reallycooluserna has joined. 15:03:43 ! Rust fn main() {println ("Oof");} 15:03:59 Interesting... 15:13:27 -!- Reallycooluserna has quit (Ping timeout: 260 seconds). 15:16:09 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 15:16:12 2019-07-16 15:16:11 URL:https://hack.esolangs.org/get/bin/whatis [598/598] -> "bin/whatis" [1] 15:16:49 `whatis lrint 15:16:50 whatis: can't open the manpath configuration file /etc/manpath.config 15:17:06 ``` chmod -v a+x bin/whatis 15:17:09 mode of 'bin/whatis' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x) 15:17:10 `whatis lrint 15:17:11 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 16, in \ match = match or argfold == parts[1].casefold() \ TypeError: '_sre.SRE_Match' object is not subscriptable 15:17:26 ... old python version? 15:18:47 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 15:18:48 2019-07-16 15:18:47 URL:https://hack.esolangs.org/get/bin/whatis [604/604] -> "bin/whatis" [1] 15:18:52 ``` chmod -v a+x bin/whatis 15:18:53 mode of 'bin/whatis' retained as 0755 (rwxr-xr-x) 15:18:59 `whatis cp 15:18:59 cp(1) - copy files and directories \ cp(1p) - copy files 15:19:01 `whatis lrint 15:19:02 lrint(3) - round to nearest integer \ lrint(3p) - round to nearest integer value using current rounding direction \ lrint(3glibc) - Rounding Functions 15:19:40 ais523: I added a rudimentary whatis command. it doesn't currently allow command-line options, but that can be fixed later if you need that 15:20:02 the command gets its data from a plain text database at share/whatis 15:20:12 anyone should feel free to edit that database 15:20:52 so if you know what something is, but that list doesn't, edit it 15:22:53 -!- wob_jonas has quit (Remote host closed the connection). 16:17:37 -!- b_jonas has joined. 16:24:33 [[Esoteric data structure]] https://esolangs.org/w/index.php?diff=64479&oldid=61703 * Areallycoolusername * (+757) Extended the data structure page. This has a lot of potential. 16:38:36 `whatis string.h 16:38:37 string.h(0p) - string operations \ string.h(7glibch) - String Length 16:39:44 `perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:39:44 ​-i used with no filenames on the command line, reading from STDIN. \ Bareword found where operator expected at -e line 1, near "'s/^([^(]+)\(7glibch\)/$1(0glibc)/' share" \ (Missing operator before share?) \ syntax error at -e line 1, near "'s/^([^(]+)\(7glibch\)/$1(0glibc)/' share" \ Execution of -e aborted due to compilation errors. 16:40:08 ```perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:40:11 ``` perl -pi -e 's/^([^(]+)\(7glibch\)/$1(0glibc)/' share/whatis 16:40:13 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: ``perl: not found 16:40:20 No output. 16:40:30 `whatis string.h 16:40:30 string.h(0p) - string operations \ string.h(0glibc) - String Length 16:40:35 `whatis time 16:40:35 time(1) - time a simple command or give resource usage \ time(1p) - time a simple command \ time(2) - get time in seconds \ time(3p) - get time \ time(7) - overview of time and timers \ time(8lambdabot) - no description \ time(3glibc) - Simple Calendar Time 16:41:34 `whatis sockaddr_in 16:41:35 sockaddr_in(7glibct) - Internet Address Formats 16:41:49 ``` perl -pi -e 's/^([^(]+)\(7glibct\)/$1(7glibc)/' share/whatis 16:41:51 No output. 16:41:52 `whatis sockaddr_in 16:41:53 sockaddr_in(7glibc) - Internet Address Formats 16:41:58 `whatis ldiv_t 16:41:58 ldiv_t(7glibc) - Integer Division 16:42:40 [[User talk:Areallycoolusername]] N https://esolangs.org/w/index.php?oldid=64480 * Ais523 * (+526) reply to question on my user talk page 16:42:52 `whatis stat 16:42:52 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes 16:46:56 `whatis syzzigy 16:46:56 No output. 16:54:06 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 16:54:12 2019-07-16 16:54:10 URL:https://hack.esolangs.org/get/bin/whatis [896/896] -> "bin/whatis" [1] 16:54:15 `whatis stat 16:54:17 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes \ Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:18 `whatis syzzigy 16:54:19 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:36 `whatis syzzigy 16:54:37 Traceback (most recent call last): \ File "/hackenv/bin/whatis", line 25, in \ for arg, found in zip(foundv): \ ValueError: not enough values to unpack (expected 2, got 1) 16:54:41 `fetch bin/whatis https://hack.esolangs.org/get/bin/whatis 16:54:42 2019-07-16 16:54:42 URL:https://hack.esolangs.org/get/bin/whatis [904/904] -> "bin/whatis" [1] 16:54:44 `whatis syzzigy 16:54:45 syzzigy: nothing appropriate. 16:54:46 `whatis stat 16:54:47 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes 16:54:50 `whatis stat syzzigy 16:54:51 stat syzzigy: nothing appropriate. 16:54:59 ``` whatis stat syzzigy 16:54:59 stat(1) - display file or file system status \ stat(2) - get file status \ stat(3p) - get file status \ stat(7glibc) - Attribute Meanings \ stat(3glibc) - Reading Attributes \ syzzigy: nothing appropriate. 16:55:03 ok 17:06:18 [[Esoteric algorithm]] https://esolangs.org/w/index.php?diff=64481&oldid=44546 * Areallycoolusername * (+1275) Extend page, due to huge potential 17:09:52 [[Esoteric algorithm]] M https://esolangs.org/w/index.php?diff=64482&oldid=64481 * Areallycoolusername * (-2) 17:12:13 [[Gregorovich]] https://esolangs.org/w/index.php?diff=64483&oldid=64446 * Areallycoolusername * (+2) 17:35:22 -!- AnotherTest has joined. 18:29:51 -!- FreeFull has joined. 18:31:31 ``` set -e; c=bin/bonvenon; /bin/sed 's/ome.nb\>/ome.eo/g' bin/velkommen >$c; chmod -v a+x "$c" 18:31:32 mode of 'bin/bonvenon' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x) 18:31:38 `bonvenon fungot 18:31:38 b_jonas: looking at it 18:31:39 fungot: Bonvenon al la internacia centro por la desegno kaj ellaso de esoteraj programlingvoj! Por pli da informado, vizitu la Viki-on: . (Por la alia speco de esotero, iru al #esoteric sur EFnet aŭ DALnet.) 18:37:56 [[Arch]] N https://esolangs.org/w/index.php?oldid=64484 * Areallycoolusername * (+3267) Created page for Arch esoteric data structure 18:38:52 [[Arch]] M https://esolangs.org/w/index.php?diff=64485&oldid=64484 * Areallycoolusername * (+26) Fixed some typos 18:39:27 [[Arch]] https://esolangs.org/w/index.php?diff=64486&oldid=64485 * Areallycoolusername * (-4) 18:40:14 [[Arch]] https://esolangs.org/w/index.php?diff=64487&oldid=64486 * Areallycoolusername * (+13) /* Pop */ 18:40:50 [[Arch]] https://esolangs.org/w/index.php?diff=64488&oldid=64487 * Areallycoolusername * (+0) /* Pop */ 18:41:12 [[Arch]] https://esolangs.org/w/index.php?diff=64489&oldid=64488 * Areallycoolusername * (-15) /* Pop */ 18:41:45 [[Arch]] https://esolangs.org/w/index.php?diff=64490&oldid=64489 * Areallycoolusername * (+0) /* Cells & Point */ 18:42:23 [[Esoteric data structure]] https://esolangs.org/w/index.php?diff=64491&oldid=64479 * Areallycoolusername * (+4) 18:44:50 -!- Phantom_Hoover has joined. 18:52:08 [[Arch]] https://esolangs.org/w/index.php?diff=64492&oldid=64490 * Areallycoolusername * (+290) 18:52:45 [[Arch]] https://esolangs.org/w/index.php?diff=64493&oldid=64492 * Areallycoolusername * (-1) /* Computational Properties */ 19:06:52 -!- ais523 has joined. 19:07:19 does anyone have the timestamp handy for the last time User:A was here on IRC? I wasn't online at the time so wasn't logging 19:08:11 (I have a suspicion that "Reallycooluserna" was actually A in disguise, not Areallycoolusername, and want to check the IPs) 19:10:54 myname: I don't like wasting strong passwords in situations where the connection could well be being monitored by someone else (because I don't own the computer hardware), so I have low-privileged accounts on a couple of wikis so that I don't need a strong password for them 19:11:06 (note: this isn't an invitation to attempt to brute-force ais523 non-admin's password) 19:11:55 'wasting strong passwords' sounds like an admission that your strong passwords are weak, as you have only a small pool of them 19:13:17 no, I can generate an almost unlimited number of them, but can only /remember/ a fairly small number of them 19:13:29 at a time 19:16:04 -!- Lord_of_Life_ has joined. 19:18:48 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 19:18:51 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:27:00 huh, seems like Reallycooluserna genuinely was someone other than A, at least based on the hostname used to connect to IRC (different continents, different clients), so it was probably the real ARCUN 19:28:41 ais523: I am someone other than wob_jonas, at least based on the hostname used to connect to IRC (I am connecting from home, wob_jonas is connecting from work) 19:29:06 b_jonas: that's the significance of "different continents" 19:29:19 I see 19:30:01 ais523: I have added a rudimentary whatis command to hackeso. it just looks in a plain text list of entries in share/whatis . takes no switches for now. 19:30:06 `whatis cp 19:30:11 cp(1) - copy files and directories \ cp(1p) - copy files 19:30:26 feel free to edit that list. 19:30:27 I guess it's only mildly useful without man, but still good for discussing things that have manual sections on IRC 19:30:59 * ais523 wonders what the most eso thing that has a manual entry on a stock Debian install is 19:31:10 or Ubuntu, I guess, probably gives more choice 19:32:57 ais523: I added at least stub entries for most commands of hackeso, lambdabot, and fungot 19:32:57 b_jonas: can you specify what kind of research...) 19:33:12 `whatis bf_txtgen 19:33:13 bf_txtgen(1egobot) - no description 19:33:31 right, that's what stub means 19:33:48 for the more commonly used commands I added something sensible 19:33:51 `! bf_txtgen test 19:33:51 ​/hackenv/ibin/bf_txtgen: line 6: java: command not found 19:34:01 yeah, the egobot interpreters too 19:34:11 [[User:Total Vacuum]] https://esolangs.org/w/index.php?diff=64494&oldid=61414 * Total Vacuum * (+107) 19:34:29 but I don't know what any of those do, so I didn't describe them 19:35:14 ais523: They joined in May with the username A_ according to the logs (which don't have host information). 19:35:15 even without description, this could give you the clue that a command like rot13 or whoami or test may behave differently on HackEso than on normal systems, because there's a HackEso-specific override 19:35:25 Oh, you already got it. 19:35:32 I thought it was a very A-like behavior. 19:36:19 shachaf: I have used the username "a" on irc in some cases, simply because it's short and a shorter username allows more characters in my lines 19:36:42 [[Uf]] https://esolangs.org/w/index.php?diff=64495&oldid=62158 * Total Vacuum * (-36) 19:36:48 the logs don't have host information? huh 19:36:56 Yes, but I'm not talking about you, I'm talking about wiki user A. 19:37:22 b_jonas: the tunes logs do, and probably the raw esolangs logs too 19:37:22 sure, I'm just saying that someone using an irc username "A_" still doesn't really prove that they're related to wiki user A 19:38:01 the choice of username combined with behaviour made it fairly obvious 19:38:24 (there is also at least one forums where I use the username "jonas" and someone else uses the username "Jonas") 19:39:26 [[Ef]] N https://esolangs.org/w/index.php?oldid=64496 * Total Vacuum * (+1115) Created page with "{{infobox proglang |name=ef \ esoteric forth \ |paradigms= |author=[[User:Total Vacuum|Total Vacuum]] |year=[[:Category:2019|2019]] |memsys=:Category:Stack-based|stack-based..." 19:41:05 ais523: what about Jussef Swissen and Areallycoolusername‎ though? I'm not sure I believe that those are different people. 19:41:14 as for A vs Areallycoolusername, I'd be glad if they turned out to be the same people, because then we could just ban A forever and hope that he continues to contribute more sensibly as Areallycoolusername rather than evading the ban in a different way, but alas, I'm not convinced they're the same person 19:41:25 int-e: those are definitely the same people. they say so in their user page 19:41:36 both of them say so 19:41:41 wait, let me check that 19:42:18 hmmm... no 19:42:19 I'm wrong 19:42:19 Oh so they do. 19:42:30 only Jussef Swissen claims that they're Areallycool 19:42:37 int-e: Jussef Swissen and ARCUN are obviously the same as each other 19:42:48 Jusef Swissen has edited Areallycool's user page to claim that they're the same 19:42:52 I don't see Areallycool claiming that 19:42:55 A = Asdf probably = Iamcalledbob 19:43:09 (the probably attaches to the = to its right) 19:43:48 there are also behavioural differences, e.g. A has more skill in terms of computational class proofs than ARCUN does 19:44:17 [[Ef]] https://esolangs.org/w/index.php?diff=64497&oldid=64496 * Total Vacuum * (+125) 19:44:23 A has way more tantrums. 19:44:51 and A has created more than 150 pages in the main namespace, which seems really excessive to me 19:45:26 Areallycool is moderated in contrast to that 19:47:13 [[Language list]] https://esolangs.org/w/index.php?diff=64498&oldid=64450 * Total Vacuum * (+9) 19:47:55 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64499&oldid=64464 * Areallycoolusername * (+60) 19:55:11 -!- callforjudgement has joined. 19:55:20 -!- ais523 has quit (Ping timeout: 268 seconds). 19:55:39 -!- callforjudgement has changed nick to ais523. 20:13:00 are there hackeso builtin commands other than revert, fetch, run, help ? 20:21:30 I can't think of any offhand, but am the wrong person to ask I think (that's why I was hoping someone else would answer) 20:23:44 I guess I should check the 20:23:45 `source 20:23:46 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox 20:30:53 `ls bin/source 20:30:54 bin/source 20:31:07 but I think fizzie has changed the source compared to that somewhat 21:04:01 -!- atslash has quit (Ping timeout: 246 seconds). 21:04:10 b_jonas: It's very close to https://bitbucket.org/fizzie/hackbot 21:04:37 And https://bitbucket.org/fizzie/multibot has a few tiny patches as well. 21:05:29 Oh, and https://bitbucket.org/fizzie/umlbox as well. 21:05:33 But really nothing major. 21:06:14 fizzie: thanks 21:06:33 (I don't remember how to ask Bitbucket to compare between repos, but I think there was a way. Certainly there was when submitting a pull request, but hopefully otherwise as well.) 21:06:34 `? source 21:06:35 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox 21:07:22 `slashlearn source//Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:07:24 Relearned 'source': Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:07:27 `source 21:07:28 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox . Sources for HackEso can be found at https://bitbucket.org/fizzie/hackbot + https://bitbucket.org/fizzie/multibot + https://bitbucket.org/fizzie/umlbox . 21:09:38 hmm, I could add whatis entries for jevalbot commands too 21:12:02 -!- atslash has joined. 21:15:00 j-bot, j-bot: *:5 21:15:20 j-bot, jeval: *:6 21:15:20 b_jonas: 36 21:16:36 we need a jellybot in here really 21:16:49 if *:6 means what I think it does then the argument order's very different from what I'm used to from Jelly 21:17:02 (which would write that as 6×`) 21:17:26 -!- atslash has quit (Ping timeout: 272 seconds). 21:17:34 ais523: what encoding would the jellybot use? I guess utf-8, as the alternative would run afoul of the three forbidden irc bytes 21:17:47 ais523: *: is a primitive builtin, it has nothing to do with * 21:17:53 [ *~6 21:17:54 b_jonas: 36 21:18:04 ^ you write that if you want to invoke the * builtin with the same argument twice 21:18:07 [ -:6 21:18:08 b_jonas: 3 21:18:09 [ -~6 21:18:10 b_jonas: 0 21:18:57 ais523: how much dependencies does the jelly interpreter have? is it possible to install it to hackeso? 21:19:23 -!- arseniiv_ has changed nick to arseniiv. 21:19:23 it's mostly just a Python program, I'm not sure how many libraries it relies on, probably not many 21:19:32 https://github.com/DennisMitchell/jellylanguage/ 21:19:35 does it need python newer than 21:19:43 ``` python3 --version; python2 --version 21:19:43 Python 2.7.13 \ Python 3.5.3 21:19:43 ? 21:19:59 probably not, it does seem to have sympy as a dependency though, that could get awkward 21:20:04 no others though 21:20:16 because I just ran into a problem where the first version of whatis that I uploaded relied on a library addition from python 3.8, so it failed 21:20:25 it's a short program and doesn't do anything fancy, so that was easy to fix 21:20:31 but for something large like jelly it could be a problem 21:20:38 ooh... sympy 21:20:50 is there a debian package for that? fizzie can install it 21:20:55 if it's not installed already that is 21:21:03 ``` python3 -cimport sympy 21:21:04 ​ File "", line 1 \ import \ ^ \ SyntaxError: invalid syntax 21:21:11 ``` python3 -c'import sympy' 21:21:12 Traceback (most recent call last): \ File "", line 1, in \ ImportError: No module named 'sympy' 21:21:19 ``` python3 -c'import numpy' 21:21:20 Traceback (most recent call last): \ File "", line 1, in \ ImportError: No module named 'numpy' 21:21:44 "python3-sympy" is the name of the package, apparently; simple enough 21:21:47 hmm no 21:21:54 actually it's a library addition in python 3.6 21:22:01 and hackeso has python 3.5 21:22:22 ais523: well, if you think you want to install jelly, then talk to fizzie about that 21:22:33 I think it would be an improvement but not a vital or urgent one 21:22:58 also I'm not very familiar with Python packaging 21:23:44 `` swipl 21:23:58 `` swipl; echo $? 21:24:04 is there a package for jelly in debian perhaps? 21:24:20 I seriously doubt it, it's an esolang after all 21:24:32 and not a particularly well-known one outside the golfing community 21:24:36 eh.. there are some eso utilities in debian, not necessarily esolang, but eso 21:24:53 the project has contributors that are geeks with odd projects 21:25:01 brachylog would also be nice, but it's somewhat harder to type so using it over IRC is more of a pain 21:25:21 and it uses SWI-Prolog as the back end and I don't think HackEso has that installed 21:25:22 Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3) \ Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam \ SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, \ and you are welcome to redistribute it under certain conditions. \ Please visit http://www.swi-prolog.org for details. \ \ For help, use ?- help(Topic). or ?- apropos(Word). 21:25:22 Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.2.3) \ Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam \ SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, \ and you are welcome to redistribute it under certain conditions. \ Please visit http://www.swi-prolog.org for details. \ \ For help, use ?- help(Topic). or ?- apropos(Word). 21:25:27 ooh, it does 21:25:38 burlesque would be hard to install because it depends on haskell 21:25:56 I did check hackeso's prolog implementations some weeks ago, let me look up the logs 21:26:31 `fetch https://github.com/JCumin/Brachylog/archive/master.zip 21:26:34 2019-07-16 21:26:34 URL:https://codeload.github.com/JCumin/Brachylog/zip/master [61214] -> "master.zip" [1] 21:26:48 `ls ibin 21:26:49 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ bf_txtgen \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ help \ java \ k \ kipple \ lambda \ lazyk \ linguine \ lua \ malbolge \ pbrain \ perl \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ slashes \ trigger \ udage01 \ underload \ unlambda \ whirl 21:26:53 I think it has like two prolog implementations 21:26:56 `mkdir ibin/brachylog 21:26:56 No output. 21:27:06 `` mv master.zip ibin/brachylog 21:27:08 No output. 21:27:17 https://esolangs.org/logs/2019-06-23.html#lQb 21:27:22 ``` swipl -qt 'T is 4^4, display(T), nl' 21:27:23 256 21:27:25 `` (cd ibin/brachylog; unzip master.zip) 21:27:26 ​/hackenv/bin/`: line 5: unzip: command not found 21:27:37 OK, that's a new one 21:28:15 no, not really 21:28:30 I once used gzip to uncompress a single-file zip on hackeso exactly because it doesn't have gzip 21:28:36 and I tried to install 7zip once, but failed 21:28:38 `` perl --version 21:28:39 ​ \ This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi \ (with 85 registered patches, see perl -V for more detail) \ \ Copyright 1987-2017, Larry Wall \ \ Perl may be copied only under the terms of either the Artistic License or the \ GNU General Public License, which may be found in the Perl 5 source kit. \ \ Complete documentation for Perl, including FAQ lists, should be found on \ this system using "man perl" 21:28:40 that was back in hackego 21:29:24 ais523: you can repack iot to tar, fetch that, and tar x 21:29:42 we have gzip, bzip2, and xz 21:29:44 iirc 21:31:55 `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "<*>"') 21:31:56 Need input fileglob for outout fileglob at -e line 1. 21:32:06 `` (cd ibin/brachylog; perl -MIO::Uncompress::Unzip=unzip -e 'unzip "master.zip" => "master"') 21:32:12 No output. 21:32:24 `` ls -l ibin/brachylog/master 21:32:25 ​-rw-r--r-- 1 1000 1000 0 Jul 16 21:32 ibin/brachylog/master 21:32:40 `` rm ibin/brachylog/master 21:32:42 No output. 21:33:03 I don't get the interface of IO::Uncompress::Unzip, a zip file is an archive but it's acting like it's a compressed single file 21:33:56 oh, it lets you specify a specific file to unzip but not to do a batch unzip 21:35:03 `fetch https://gist.githubusercontent.com/eqhmcow/5389877/raw/514a27c213aefb58079687e4c257b57d6ad7a39f/unzip.pl 21:35:05 2019-07-16 21:35:04 URL:https://gist.githubusercontent.com/eqhmcow/5389877/raw/514a27c213aefb58079687e4c257b57d6ad7a39f/unzip.pl [2176/2176] -> "unzip.pl" [1] 21:35:11 `mv unzip.pl bin/unzip 21:35:12 mv: missing destination file operand after 'unzip.pl bin/unzip' \ Try 'mv --help' for more information. 21:35:16 `` mv unzip.pl bin/unzip 21:35:18 No output. 21:35:21 `` chmod a+x bin/unzip 21:35:23 No output. 21:35:31 `` (cd ibin/brachylog; unzip master.zip) 21:35:32 Couldn't write to ./Brachylog-master//: Is a directory at /hackenv/bin/unzip line 67. 21:35:50 `` ls -l ibin/brachylog 21:35:51 total 64 \ drwxr-xr-x 2 1000 1000 4096 Jul 16 21:35 Brachylog-master \ -rw-r--r-- 1 1000 1000 61214 Jul 16 21:27 master.zip 21:36:00 `` ls -l ibin/brachylog/Brachylog-master 21:36:01 total 0 21:36:04 `python3 -cimport os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work? 21:36:06 ​ File "", line 1 \ import os,zipfile; os.chdir "ibin/brachylog"; zipfile.Zipfile("master.zip").extractall() # do these batteries work? \ ^ \ SyntaxError: invalid syntax 21:36:57 `` sed -i -e 's/unzip(shift)/unzip(@_)/' bin/unzip 21:36:58 No output. 21:37:11 `` (cd ibin/brachylog; mkdir master; unzip master.zip master/) 21:37:12 Need a file argument at /hackenv/bin/unzip line 40. 21:37:17 `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.Zipfile("master.zip").extractall() 21:37:18 Traceback (most recent call last): \ File "", line 1, in \ AttributeError: module 'zipfile' has no attribute 'Zipfile' 21:37:25 `python3 -cimport os,zipfile; os.chdir("ibin/brachylog"); zipfile.ZipFile("master.zip").extractall() 21:37:27 No output. 21:37:31 `` sed -i -e 's/unzip(@_)/unzip(@ARGV)/' bin/unzip 21:37:33 No output. 21:37:33 ``` find ibin/brachylog 21:37:34 ibin/brachylog \ ibin/brachylog/master.zip \ ibin/brachylog/Brachylog-master \ ibin/brachylog/Brachylog-master/misc \ ibin/brachylog/Brachylog-master/misc/brachylog_mini_logo.png \ ibin/brachylog/Brachylog-master/misc/brachylog_logo.svg \ ibin/brachylog/Brachylog-master/misc/brachylog_logo.png \ ibin/brachylog/Brachylog-master/src \ ibin/brachylog/Brachylog-master/src/tokenize.pl \ ibin/brachylog/Brachylog-master/src/predicates.pl \ ibin/brachylog/Brachylo 21:37:41 `` (cd ibin/brachylog; mkdir master; unzip master.zip master/) 21:37:42 mkdir: cannot create directory ‘master’: File exists \ Couldn't write to master//Brachylog-master//: Is a directory at /hackenv/bin/unzip line 67. 21:37:55 hmm, I guess your unzip works better than mine 21:37:59 shouldn't the ibin directory contain only interpreter executables though? 21:38:03 `` rm -r ibin/brachylog/master/ 21:38:06 No output. 21:38:06 it's not really mine 21:38:14 `` rm bin/unzip 21:38:16 No output. 21:38:18 and I just got it to work faster 21:38:23 probably either would have worked 21:38:30 I think ibin contains entire distributions? 21:38:35 hmm 21:38:38 ``` ls -aF ibin 21:38:39 `` ls -l ibin/kipple 21:38:39 ​./ \ ../ \ 1l* \ 2l* \ adjust* \ asm* \ axo* \ bch* \ befunge* \ befunge98* \ bf* \ bf16@ \ bf32@ \ bf8@ \ bf_txtgen* \ boolfuck* \ brachylog/ \ c* \ cintercal* \ clcintercal* \ cxx* \ dimensifuck* \ forth* \ glass* \ glypho* \ haskell* \ help* \ java* \ k* \ kipple* \ lambda* \ lazyk* \ linguine* \ lua* \ malbolge* \ pbrain* \ perl* \ qbf* \ rail* \ rhotor* \ sadol* \ sceql* \ sh* \ slashes* \ trigger* \ udage01* \ underload* \ unlambda* \ whirl* 21:38:40 ​-rwxr-xr-x 1 1000 1000 64 Apr 7 2018 ibin/kipple 21:38:46 those are executables, not directories 21:38:50 ah yes 21:38:54 so where are the corresponding support directories? 21:38:56 `ls 21:38:57 ​- \ :#,_@ \ bin \ canary \ emoticons \ esobible \ etc \ evil \ f \ factor \ good \ hw \ ibin \ interps \ izash.c \ karma \ le \ lib \ misle \ paste \ ply-3.8 \ quines \ quinor \ quotes \ share \ src \ test2 \ testfile \ tmflry \ tmp \ wisdom 21:39:03 probably in lib 21:39:03 interps, I guess 21:39:07 oh 21:39:09 `` mv ibin/brachylog interps/brachylog 21:39:11 No output. 21:39:14 ``` ls -aF interps 21:39:15 ​./ \ ../ \ 1l/ \ 2l/ \ Makefile \ adjust/ \ axo/ \ befunge/ \ bf_txtgen/ \ bfjoust/ \ boof/ \ brachylog/ \ build.sh \ c-intercal/ \ cfunge/ \ clc-intercal/ \ dimensifuck/ \ egobch/ \ egobf/ \ fukyorbrane/ \ gcccomp/ \ gforth_quit/ \ ghc/ \ glass/ \ glypho/ \ kipple/ \ lambda/ \ lazyk/ \ linguine/ \ malbolge/ \ pbrain/ \ qbf/ \ rail/ \ rhotor/ \ sadol/ \ sceql/ \ trigger/ \ udage01/ \ underload/ \ unlambda/ \ whirl/ 21:39:19 `` ls -R interps/brachylog 21:39:20 interps/brachylog: \ brachylog \ Brachylog-master \ \ interps/brachylog/brachylog: \ Brachylog-master \ master.zip \ \ interps/brachylog/brachylog/Brachylog-master: \ LICENSE \ misc \ README.md \ src \ \ interps/brachylog/brachylog/Brachylog-master/misc: \ brachylog_logo.png \ brachylog_logo.svg \ brachylog_mini_logo.png \ \ interps/brachylog/brachylog/Brachylog-master/src: \ brachylog.pl \ constraint_variables.pl \ metapredicates.pl \ predicates.pl \ 21:39:43 ``` ls -aF ibin 21:39:44 ​./ \ ../ \ 1l* \ 2l* \ adjust* \ asm* \ axo* \ bch* \ befunge* \ befunge98* \ bf* \ bf16@ \ bf32@ \ bf8@ \ bf_txtgen* \ boolfuck* \ c* \ cintercal* \ clcintercal* \ cxx* \ dimensifuck* \ forth* \ glass* \ glypho* \ haskell* \ help* \ java* \ k* \ kipple* \ lambda* \ lazyk* \ linguine* \ lua* \ malbolge* \ pbrain* \ perl* \ qbf* \ rail* \ rhotor* \ sadol* \ sceql* \ sh* \ slashes* \ trigger* \ udage01* \ underload* \ unlambda* \ whirl* 21:39:48 `` rmdir interps/brachylog/Brachylog-master 21:39:49 rmdir: failed to remove 'interps/brachylog/Brachylog-master': Directory not empty 21:40:21 `` du interps/brachylog/ 21:40:23 44interps/brachylog/brachylog/Brachylog-master/misc \ 248interps/brachylog/brachylog/Brachylog-master/src \ 308interps/brachylog/brachylog/Brachylog-master \ 372interps/brachylog/brachylog \ 4interps/brachylog/Brachylog-master/misc \ 4interps/brachylog/Brachylog-master/src \ 12interps/brachylog/Brachylog-master \ 388interps/brachylog/ 21:40:39 `` rm -r interps/brachylog/Brachylog-master 21:40:39 No output. 21:41:06 `` ls interps/brachylog/brachylog/Brachylog-master/src 21:41:07 brachylog.pl \ constraint_variables.pl \ metapredicates.pl \ predicates.pl \ symbols.pl \ tests.pl \ tokenize.pl \ transpile.pl \ utils.pl 21:41:11 that looks right 21:41:21 now all we need is a wrapper script 21:41:53 test if it can run a hello world first 21:42:13 copying the files is the easy part 21:42:15 the intended way to run Brachylog is interactive, which is not easy to do on HackEso 21:42:18 actually running is hard 21:42:23 I'm trying to work out how to do it as a batch process 21:42:27 at least it's an interpreted language… 21:42:28 hmm ok 21:42:55 although, it leaves the compiled file persistently on disk, which is not good 21:43:02 what's the non-versioned directory called? tmp? 21:43:25 `? tmp 21:43:26 tmp/ is a directory for files that are not worth saving in HackEgo history, but which should still outlive a single command. NOTE: It interacts funnily with HackEgo's lock and re-run commit check; files can DISAPPEAR if you don't know what you're doing. Basically, don't modify files inside and outside tmp/ in the same HackEgo command. 21:43:28 (that is, Brachylog's compiler is written in an interpreted language, but it compiles the file) 21:43:47 `` touch tmp/compiled_brachylog.pl 21:43:47 No output. 21:44:20 it's used interactively and leaves the compiled file persistently on disk? does it leave some kind of workspace that contains a compiled representation of all bindings, in the style of traditional APL or smalltalk? 21:44:30 `` ln -s ../../../../../tmp/compiled_brachylog.pl interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl 21:44:32 No output. 21:44:40 b_jonas: no, it's just a temporary file placed in the wrong place 21:44:57 `` echo test > interps/brachylog/brachylog/Brachylog-master/src/compiled_brachylog.pl 21:44:58 No output. 21:45:07 `` echo tmp/compiled_brachylog.pl 21:45:08 tmp/compiled_brachylog.pl 21:45:16 `` cat tmp/compiled_brachylog.pl # facepalm 21:45:16 test 21:45:28 OK, that symlink seems to be going to the correct place 21:45:32 ah ok 21:45:45 I hope it's not one of the stupid ones where you can't configure where it puts the temporary file 21:50:23 `` echo '"Hello, world!\n"w' > tmp/input.brachylog 21:50:24 No output. 21:51:16 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:51:17 Hello, world!\n 21:51:43 oh right, I forgot escaping was screwed up in Brachylog 21:51:46 `` echo '"Hello, world!\\"w' > tmp/input.brachylog 21:51:47 No output. 21:51:50 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:51:52 No output. 21:52:05 `` echo '"Hello, world!"ẉ' > tmp/input.brachylog 21:52:07 No output. 21:52:09 `` (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 21:52:11 Hello, world! 21:52:47 j-bot, echo: pleiosaur 21:52:47 b_jonas, pong: pleiosaur 21:53:40 I guess the hardest part now, which might be avoidable, is hooking up arguments and return values to the program appropriately 21:53:48 I guess you can just hardcode them in the program itself 21:54:50 `` printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)' > ibin/brachylog 21:54:51 ​/hackenv/bin/`: eval: line 5: syntax error near unexpected token `(' \ /hackenv/bin/`: eval: line 5: `printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl)' > ibin/brachylog' 21:55:06 `` printf '#!/bin/sh\necho "$1" > tmp/input.brachylog\n(cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g '\''run_from_file("../../../../../tmp/input.brachylog", _, _), halt'\'' brachylog.pl)' > ibin/brachylog 21:55:08 No output. 21:55:14 `` chmod a+x ibin/brachylog 21:55:16 No output. 21:55:25 `! brachylog "Hello, world!"ẉ 21:55:26 Hello, world! 21:55:51 `! brachylog +₃8&w 21:55:52 5 21:55:54 Oh, that reminds me, Debian 10 got released, at some point I need to upgrade the HackEso host. 21:55:56 seems to be working 21:56:10 many Brachylog commands aren't on my keyboard though 21:56:35 WHAT 21:56:39 debian 10 got released? 21:56:40 really? 21:56:43 Yes. 21:56:48 wow indeed 21:56:51 On July 6th. 21:56:52 that's spectacular news 21:56:55 `! brachylog ṗᶠ²⁰ 21:56:56 No output. 21:56:58 was it debianlisted? 21:57:01 `! brachylog ṗᶠ²⁰w 21:57:03 ​[2] 21:57:17 `! brachylog {ṗ≜}ᶠ²⁰w 21:57:18 ​[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71] 21:57:24 there we go 21:57:37 does that use the jelly character set? 21:57:50 [ p:i.20 21:57:50 b_jonas: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 21:58:51 not today, but I'll definitely have to upgrade to debian 10 21:58:57 b_jonas: no 21:59:07 the jelly character set can actually be typed, although many of the characters in it are really obscure 21:59:21 (and thus you wouldn't know the appropriate key sequence without a lot of Jelly experience) 21:59:26 what does "can be typed" mean? 21:59:31 -!- kmc has quit (Quit: leaving). 22:00:10 there's a dedicated key sequence for typing it on Linux+X11 on a particular keyboard layout, I forget which one it was designed against but UK works 22:00:34 e.g. ɓ is altgr-j b 22:00:54 `fetch tmp/jeval.whatis https://hack.esolangs.org/get/tmp/jeval.whatis 22:00:55 2019-07-16 22:00:54 URL:https://hack.esolangs.org/get/tmp/jeval.whatis [4404/4404] -> "tmp/jeval.whatis" [1] 22:00:59 which most non-Jelly programmers wouldn't know, but it's fairly easy to type once you do know it 22:01:00 -!- kmc has joined. 22:01:03 ``` cat tmp/jeval.whatis >> share/whatis 22:01:05 No output. 22:01:17 `whatis pwd 22:01:18 pwd(1) - print name of current/working directory \ pwd(1p) - return working directory name \ PWD(3glibcv) - Working Directory \ pwd(8jevalbot) - show the name of the current persistent session 22:01:23 `whatis cd 22:01:24 cd(1p) - change the working directory \ cd(8glibc) - Working Directory \ cd(8jevalbot) - change to a different persistent session 22:01:44 however, many of Brachylog's characters, like the superscript letters, don't have key sequences at all so you need something like a character map or memorising the codepoint to type them 22:01:58 "8glibc"? 22:02:00 8? 22:02:05 that's surely the wrong number 22:02:19 8 is for commands that only work as root 22:02:38 I did check out what "apt install python3-sympy" would do, but it's a little... excessive: "-- 214 newly installed -- Need to get 1,386 MB of archives. After this operation, 2,672 MB of additional disk space will be used." 22:02:53 ais523: the whatares in the glibc section are very approximate, I just imported them to make sure you get a hit for anything documented in glibc 22:03:06 Probably not all of those are actual dependencies, though. 22:03:08 but not everything in section 8 are things you can invoke only as root 22:04:07 they're administrative commands, but you can run many of them in an informational way as non-root 22:04:20 `whatis ping 22:04:20 ping(8) - send ICMP ECHO_REQUEST to network hosts \ ping(1hackeso) - check if HackEso is reachable \ ping(8lambdabot) - check if lambdabot is reachable \ ping(8jevalbot) - check if jevalbot is accessible 22:04:31 fizzie: gigabytes? wow 22:04:32 these days you can run ping as non-root 22:04:41 ok, that's a bad example, there's some historical reason there 22:04:44 -!- sprocklem has joined. 22:05:00 perhaps it would be possible to remove the sympy dependency from Jelly, I think it only uses it for a few obscure builtins 22:05:39 ais523: Well, it was planning to install Tcl/Tk, TeX Live, a pile of fonts, and a bunch of X11 stuff. 22:06:04 I guess it adds up. Especially TeX. 22:06:23 try with --no-install-recommends 22:07:00 (the recommended dependencies are "the dependencies which would be needed in any normal installation, but aren't technically required to use this package"; this isn't a normal installation) 22:07:02 fizzie: is there a package with a similar name that ends in -nox ? 22:07:05 Hm. 2 packages, 2,773 kB of archives, 17.1 MB of additional disk space. That's quite a bit more reasonable. 22:08:15 but yeah, in the case of cd, it's not only in the wrong section, it's not even something that should have a glibc whatis entry. glibc only references it, it doesn't provide that shell command 22:08:27 it is a cross-reference to the shell command that's for some reason in the index of the info 22:08:30 on well 22:09:57 ``` /bin/sed -i '/^cd(8glibc/d' share/whatis 22:09:59 No output. 22:10:03 `whatis cd 22:10:05 `whatis load 22:10:07 cd(1p) - change the working directory \ cd(8jevalbot) - change to a different persistent session 22:10:08 `whatis swapon 22:10:10 load(8jevalbot) - copy a persistent session to the current session 22:10:12 swapon(2) - start/stop swapping to file/device \ swapon(8) - enable/disable devices and files for paging and swapping 22:10:25 `whatis errno 22:10:26 errno(3) - number of last error \ errno(3p) - error return value \ errno(3glibcv) - Checking for Errors 22:10:31 `` echo $'import numpy\nimport sympy\nprint("{} {}".format(sympy.__version__, numpy.__version__))' | python3 22:10:33 1.0 1.12.1 22:10:39 fizzie: nice, thanks 22:10:50 (I did install python3-numpy as well, even though it's only "recommended".) 22:11:24 numpy is nice and lets you write esoteric programs that wouldn't be as easy in plain python 22:11:37 can't hurt 22:12:08 `whatis bf 22:12:09 bf(1hackeso) - no description \ bf(1egobot) - no description \ bf(8fungot) - evaluate brainfuck program \ bf(8lambdabot) - evaluate brainfuck snippet 22:12:35 `prefixes 22:12:36 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . 22:12:40 ^prefixes 22:12:40 Bot prefixes: fungot ^, HackEso `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , j-bot [ . 22:12:46 @bf ++++++++[->++++++++<]>. 22:12:46 @ 22:13:18 I think all the bots should use section 1 for their commands 22:13:28 `whatis hoogle 22:13:29 ais523: I used 8 for builtin commands and 1 for user-defined 22:13:29 hoogle(8lambdabot) - search Haskell library by name or type 22:13:33 but we can change that 22:13:50 arguably builtin commands should be in 2, although that would imply user-defined in 3 22:14:01 for jevalbot it sort of makes sense because the commands are on a level above what you can do in J itself 22:14:09 lambdabot's feel like a 2 because they compose in the same way functions do 22:14:29 ais523: no, they compose like unix utilities do, with pipes that transfer a byte stream 22:14:42 and so do buubot commands, only the syntax to compose them is better 22:15:57 in all of those cases there can be some side effects other than the standard input and output, such as changes to the buubot factoid database or the H bindings in lambdabot or the file system 22:16:35 but the primary way to compose them is through the byte stream outputs 22:16:46 a single output and single input 22:16:57 well no 22:16:59 a single output 22:17:07 lambdabot and buubot ones don't take input 22:17:10 they only take arguments 22:17:19 so it's like when you compose shell commands with backticks I guess 22:17:46 (without the strange part where the shell backticks can remove the trailing newline) 22:18:21 `whatis pl 22:18:21 but we can rename sections if you figure out some consistent way to name them 22:18:22 pl(8lambdabot) - convert expression to pointfree style 22:18:32 was vaguely wondering if that was a shell command too 22:18:54 it may be. not every shell command has a whatis 22:18:59 I think it invokes prolog 22:19:01 ``` type pl 22:19:02 bash: line 0: type: pl: not found 22:19:04 nope 22:21:11 I was wrong, HackEso only seems to have one prolog implementation installed 22:21:32 swi-prolog specifically 22:21:37 it doesn't have gnu prolog 22:22:14 `! brachylog [_7,_3,_2,5,8]⊇.+0∧.w⊥ 22:22:15 -!- AnotherTest has quit (Ping timeout: 264 seconds). 22:22:44 ​[-3,-2,5][] 22:22:48 err, I should probably have added newlines 22:22:55 `! brachylog [_7,_3,_2,5,8]⊇.+0∧.ẉ⊥ 22:23:25 ​[-3,-2,5] \ [] 22:23:35 actually there is probably a neater way to write this 22:24:06 `! brachylog [[_7,_3,_2,5,8],0]⟨⊇+⟩ẉ⊥ 22:24:13 what is this supposed to do? 22:24:51 ⟨⊇+⟩ means "find a subset (⊇) whose sum (+) is", ẉ⊥ prints all solutions 22:25:01 so it's solving the subset sum problem 22:25:04 I see 22:25:06 pretty inefficiently, fwiw 22:25:20 but the point is that you don't need to specify an algorithm 22:25:53 -!- arseniiv has quit (Ping timeout: 245 seconds). 22:26:00 hmm, I wonder why that hasn't returned yet, I suspect HackEso doesn't run Brachylog at all quickly 22:26:12 ​[-3,-2,5] \ [] 22:26:15 there we go 22:26:23 (the actual subset sum problem instance is taken from Wikipedia) 22:28:40 `! brachylog 100~{Ċṗᵐ+}w 22:28:41 ​[3,97] 22:29:20 [ s#~{.(#~(0=[:+/(s=._7 _3 _2 5 8)&*)"1)#:}.i.2^5 NB. yeah, that's rather clumsy 22:29:21 b_jonas: _3 _2 5 22:29:24 can probably be improved somewhat 22:29:34 `! brachylog 100>ℕ~{Ċṗᵐ+}ẉ⊥ 22:29:35 ​[2,2] \ [2,3] \ [2,5] \ [2,7] \ [2,11] \ [2,13] \ [2,17] \ [2,19] \ [2,23] \ [2,29] \ [2,31] \ [2,37] \ [2,41] \ [2,43] \ [2,47] \ [2,53] \ [2,59] \ [2,61] \ [2,67] \ [2,71] \ [2,73] \ [2,79] \ [2,83] \ [2,89] \ [2,97] \ [3,2] \ [3,3] \ [3,5] \ [3,7] \ [3,11] \ [3,13] \ [3,17] \ [3,19] \ [3,23] \ [3,29] \ [3,31] \ [3,37] \ [3,41] \ [3,43] \ [3,47] \ [3,53] \ [3,59] \ [3,61] \ [3,67] \ [3,71] \ [3,73] \ [3,79] \ [3,83] \ [3,89] \ [5,2] \ [5,3] \ [5,5] \ 22:29:42 oh right, I should take subsets and add them, rather than multiply, since I have to do that for output anyway 22:29:49 oh, I need a labelizer 22:29:56 `! brachylog 100>ℕ≜~{Ċṗᵐ+}ẉ⊥ 22:29:57 ​[2,2] \ [2,3] \ [3,2] \ [3,3] \ [2,5] \ [5,2] \ [3,5] \ [5,3] \ [2,7] \ [7,2] \ [3,7] \ [5,5] \ [7,3] \ [5,7] \ [7,5] \ [2,11] \ [11,2] \ [3,11] \ [7,7] \ [11,3] \ [2,13] \ [13,2] \ [3,13] \ [5,11] \ [11,5] \ [13,3] \ [5,13] \ [7,11] \ [11,7] \ [13,5] \ [2,17] \ [17,2] \ [3,17] \ [7,13] \ [13,7] \ [17,3] \ [2,19] \ [19,2] \ [3,19] \ [5,17] \ [11,11] \ [17,5] \ [19,3] \ [5,19] \ [7,17] \ [11,13] \ [13,11] \ [17,7] \ [19,5] \ [2,23] \ [23,2] \ [3,23] \ [7 22:30:31 and should probably restrict to odd primes? 22:30:56 `! brachylog 100>ℕ≜~{Ċṗᵐ¬{∋2∧}+}ẉ⊥ 22:31:16 I guess putting the constraint there blows up performance 22:31:27 No output. 22:31:42 `! brachylog 100>ℕ≜~{Ċṗᵐ+}¬{∋2∧}ẉ⊥ 22:31:43 0 \ 1 \ -1 \ 2 \ -2 \ 3 \ -3 \ 4 \ -4 \ 5 \ -5 \ 6 \ -6 \ 7 \ -7 \ 8 \ -8 \ 9 \ -9 \ 10 \ -10 \ 11 \ -11 \ 12 \ -12 \ 13 \ -13 \ 14 \ -14 \ 15 \ -15 \ 16 \ -16 \ 17 \ -17 \ 18 \ -18 \ 19 \ -19 \ 20 \ -20 \ 21 \ -21 \ 22 \ -22 \ 23 \ -23 \ 24 \ -24 \ 25 \ -25 \ 26 \ -26 \ 27 \ -27 \ 28 \ -28 \ 29 \ -29 \ 30 \ -30 \ 31 \ -31 \ 32 \ -32 \ 33 \ -33 \ 34 \ -34 \ 35 \ -35 \ 36 \ -36 \ 37 \ -37 \ 38 \ -38 \ 39 \ -39 \ 40 \ -40 \ 41 \ -41 \ 42 \ -42 \ 43 \ -43 \ 4 22:32:01 `! brachylog 50>ℕ×₂≜~{Ċṗᵐ+}ẉ⊥ 22:32:08 ​[2,2] \ [3,3] \ [3,5] \ [5,3] \ [3,7] \ [5,5] \ [7,3] \ [5,7] \ [7,5] \ [3,11] \ [7,7] \ [11,3] \ [3,13] \ [5,11] \ [11,5] \ [13,3] \ [5,13] \ [7,11] \ [11,7] \ [13,5] \ [3,17] \ [7,13] \ [13,7] \ [17,3] \ [3,19] \ [5,17] \ [11,11] \ [17,5] \ [19,3] \ [5,19] \ [7,17] \ [11,13] \ [13,11] \ [17,7] \ [19,5] \ [3,23] \ [7,19] \ [13,13] \ [19,7] \ [23,3] \ [5,23] \ [11,17] \ [17,11] \ [23,5] \ [7,23] \ [11,19] \ [13,17] \ [17,13] \ [19,11] \ [23,7] \ [3,29] 22:32:53 Brachylog really changed my view on programming 22:33:00 [ >{.;_7 _3 _2 5 8([:<<#~0=+/)@#~#:}.i.2^5 NB. a bit nicer 22:33:01 b_jonas: _3 _2 5 22:33:20 that's inefficient too, but straightforward 22:33:43 the way it outputs the first solution could probably be improved 22:34:58 ais523: hmm, I have a similar problem 22:36:07 ais523: find a way to write every natural number less than 81 as the sum of three triangle numbers. a solution is at http://russell2.math.bme.hu/~ambrus/sc/info1/info1-gy4.html 22:36:23 you must print no more than one way to write any one number 22:36:44 the exact choice of triple doesn't matter when there's more than one way 22:36:57 format shouldn't matter either 22:37:08 how is a triangular number defined? a square number plus its square root divided by 2? 22:37:15 you can find 63 = 3 + 15 + 45 or 63 = 6 + 36 + 21 but not both 22:37:23 ais523: yes 22:38:47 [ 2!i.20 22:38:47 b_jonas: 0 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 22:38:55 `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+}ẉ⊥ 22:39:17 oh, I think this outputs multiple possibilities for each number, I forgot a ! 22:39:25 ​[0,0,0] \ [0,0,-1] \ [0,-1,0] \ [0,-1,-1] \ [-1,0,0] \ [-1,0,-1] \ [-1,-1,0] \ [-1,-1,-1] 22:39:31 `! brachylog 81>ℕ≜~{Ṫ{A+₁×↙A/₂}ᵐ+!}ẉ⊥ 22:40:02 also, Brachylog thinks -1 is a triangular number, I think? presumably (-2 × -1) ÷ 2 22:40:25 `! brachylog 81>ℕ≜~{Ṫ{ℕA+₁×↙A/₂}ᵐ+!}ẉ⊥ 22:40:36 no, ((-2 × -1) ÷ 2) is 1, and -1 is not a triangular number 22:40:47 ah yes 22:40:51 [ 2!i:10 22:40:52 b_jonas: 55 45 36 28 21 15 10 6 3 1 0 0 1 3 6 10 15 21 28 36 45 22:40:54 so there msut be a bug somewhere 22:40:54 ​[0,0,0] \ [0,0,-1] \ [0,-1,0] \ [0,-1,-1] \ [-1,0,0] \ [-1,0,-1] \ [-1,-1,0] \ [-1,-1,-1] 22:40:56 ​[0,0,0] 22:41:10 are you writing the triangular number itself, or its index? 22:41:35 the triplet of numbers that sum to the original, which is why I'm confused 22:41:40 as [0,0,-1] doesn't sum to 0 22:42:11 `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A/₂}ᵐ+}ẉ!⊥} 22:42:42 ​[0,0,0] \ [0,0,1] 22:46:04 `! brachylog {ℕA+₁×↙A/₂}ẉ⊥ 22:46:27 hmm, maybe HackEso won't cut off the infinite output correctly 22:46:35 0 \ 1 \ 3 \ 6 \ 10 \ 15 \ 21 \ 28 \ 36 \ 45 \ 55 \ 66 \ 78 \ 91 \ 105 \ 120 \ 136 \ 153 \ 171 \ 190 \ 210 \ 231 \ 253 \ 276 \ 300 \ 325 \ 351 \ 378 \ 406 \ 435 \ 465 \ 496 \ 528 \ 561 \ 595 \ 630 \ 666 \ 703 \ 741 \ 780 \ 820 \ 861 \ 903 \ 946 \ 990 \ 1035 \ 1081 \ 1128 \ 1176 \ 1225 \ 1275 \ 1326 \ 1378 \ 1431 \ 1485 \ 1540 \ 1596 \ 1653 \ 1711 \ 1770 \ 1830 \ 1891 \ 1953 \ 2016 \ 2080 22:46:42 ah, it did 22:47:03 perhaps the program just runs so slowly it doesn't reach 2? 22:47:39 maybe it runs in the wrong order so it would need to take infinite steps before it reaches 2? 22:47:58 like, it tries all sums of the form [0,0,(n choose 2)] before it tries [0,1,1]? 22:48:35 that's just a guess, I don't really understand the brachylog code 22:49:26 I think there may be an infinite loop in the constraint solver, yes 22:49:33 runs on TIO suggest it goes into an infinite loop trying to decompose 2 23:03:45 `! brachylog 81>ℕ≜{~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:03:48 [ 1{": 81{.(<@{./.~{."1)/:~(,~+/)@>,{3#<2!1+i.15 23:04:15 ​[0,0,0] \ [0,0,1] \ [0,1,1] \ [0,0,2] \ [0,1,2] \ [1,1,2] \ [0,0,3] \ [0,1,3] \ [1,1,3] \ [0,2,3] \ [0,0,4] \ [0,1,4] \ [0,3,3] \ [0,2,4] \ [1,2,4] \ [0,0,5] \ [0,1,5] \ [1,1,5] \ [0,2,5] \ [1,2,5] \ [0,4,4] \ [0,0,6] \ [0,1,6] \ [1,1,6] \ [0,2,6] \ [0,4,5] \ [1,4,5] \ [0,3,6] \ [0,0,7] \ [0,1,7] \ [0,5,5] \ [0,2,7] \ [1,2,7] \ [2,5,5] \ [0,3,7] \ [1,3,7] \ [0,0,8] \ [0,1,8] \ [0,4,7] \ [0,2,8] \ [1,2,8] \ [2,4,7] \ [0,3,8] \ [0,5,7] \ [1,5,7] \ [0,0,9] 23:04:17 turns out my division by 2 was attempting to produce floats and confusing the whole thing, I had to replace it with an unmultiplication instead 23:04:37 although, some of those numbers don't look very triangular 23:04:43 b_jonas: │0 0 0 0│1 0 0 1│2 0 1 1│3 0 0 3│4 0 1 3│5 1 1 3│6 0 0 6│7 0 1 6│8 1 1 6│9 0 3 6│10 0 0 10│11 0 1 10│12 0 6 6│13 0 3 10│14 1 3 10│15 0 0 15│16 0 1 15│17 1 1 15│18 0 3 15│19 1 3 15│20 0 10 10│21 0 0 21│22 0 1 21│23 1 1 21│24 0 3 21│25 0 10 15│26 1 10 15│27 0 6 21│28 0 0 28│29 0 1 28│30 0 15 15│31 0 3 28│32 1 3 28│33 3 1 23:05:05 those are probably indexes 23:05:14 no, they can't be 23:05:30 `! brachylog 81>ℕ≜{ẉ?~{Ṫ{ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:06:07 actually maybe I just need another labelize 23:06:10 0 \ [0,0,0] \ 1 \ [0,0,1] \ 2 \ [0,1,1] \ 3 \ [0,0,2] \ 4 \ [0,1,2] \ 5 \ [1,1,2] \ 6 \ [0,0,3] \ 7 \ [0,1,3] \ 8 \ [1,1,3] \ 9 \ [0,2,3] \ 10 \ [0,0,4] \ 11 \ [0,1,4] \ 12 \ [0,3,3] \ 13 \ [0,2,4] \ 14 \ [1,2,4] \ 15 \ [0,0,5] \ 16 \ [0,1,5] \ 17 \ [1,1,5] \ 18 \ [0,2,5] \ 19 \ [1,2,5] \ 20 \ [0,4,4] \ 21 \ [0,0,6] \ 22 \ [0,1,6] \ 23 \ [1,1,6] \ 24 \ [0,2,6] \ 25 \ [0,4,5] \ 26 \ [1,4,5] \ 27 \ [0,3,6] \ 28 \ [0,0,7] \ 29 \ [0,1,7] \ 30 \ [0,5,5] \ 31 \ 23:06:23 oh, duh, they are 23:07:06 because the thing inside my map isn't a predicate, it's a function 23:07:08 so yes, indexes 23:07:58 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}ẉ!⊥} 23:08:14 -!- moei has quit (Quit: Leaving...). 23:08:24 Brachylog is surprisingly bad at expressing arithmetic, syntactically 23:08:28 ​[0,0,0] \ [0,0,1] \ [0,1,1] \ [0,0,3] \ [0,1,3] \ [1,1,3] \ [0,0,6] \ [0,1,6] \ [1,1,6] \ [0,3,6] \ [0,0,10] \ [0,1,10] \ [0,6,6] \ [0,3,10] \ [1,3,10] \ [0,0,15] \ [0,1,15] \ [1,1,15] \ [0,3,15] \ [1,3,15] \ [0,10,10] \ [0,0,21] \ [0,1,21] \ [1,1,21] \ [0,3,21] \ [0,10,15] \ [1,10,15] \ [0,6,21] \ [0,0,28] \ [0,1,28] \ [0,15,15] \ [0,3,28] \ [1,3,28] \ [3,15,15] \ [0,6,28] \ [1,6,28] \ [0,0,36] \ [0,1,36] \ [0,10,28] \ [0,3,36] \ [1,3,36] \ [3,10,28] \ 23:08:40 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:09:11 ​[0,0,0][0,0,1][0,1,1][0,0,3][0,1,3][1,1,3][0,0,6][0,1,6][1,1,6][0,3,6][0,0,10][0,1,10][0,6,6][0,3,10][1,3,10][0,0,15][0,1,15][1,1,15][0,3,15][1,3,15][0,10,10][0,0,21][0,1,21][1,1,21][0,3,21][0,10,15][1,10,15][0,6,21][0,0,28][0,1,28][0,15,15][0,3,28][1,3,28][3,15,15][0,6,28][1,6,28][0,0,36][0,1,36][0,10,28][0,3,36][1,3,36][3,10,28][0,6,36][0,15,28][1,15,28][0,0,45][0,1,45][1,1,45][0,3,45][0,21,28][1,21,28][0,6,45][1,6,45][10,15,28][3,6,45][0,0,55][0,1,55 23:09:11 I like the idea behind the language a lot, I'm less of a fan of the syntax though 23:10:32 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}{"~p "w₁}ᵐ!⊥} 23:10:39 interesting, that doesn't consistently find the first or last solution in lex order or in colex order 23:10:51 it's using a constraint solver 23:10:56 or hmm, maybe it does 23:11:11 in this case it's a finite domain solver 23:11:11 I only exlucded two of those, not all four 23:11:19 No output. 23:11:29 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:12:00 ​[0,0,0][0,0,1][0,1,1][0,0,3][0,1,3][1,1,3][0,0,6][0,1,6][1,1,6][0,3,6][0,0,10][0,1,10][0,6,6][0,3,10][1,3,10][0,0,15][0,1,15][1,1,15][0,3,15][1,3,15][0,10,10][0,0,21][0,1,21][1,1,21][0,3,21][0,10,15][1,10,15][0,6,21][0,0,28][0,1,28][0,15,15][0,3,28][1,3,28][3,15,15][0,6,28][1,6,28][0,0,36][0,1,36][0,10,28][0,3,36][1,3,36][3,10,28][0,6,36][0,15,28][1,15,28][0,0,45][0,1,45][1,1,45][0,3,45][0,21,28][1,21,28][0,6,45][1,6,45][10,15,28][3,6,45][0,0,55][0,1,55 23:12:03 there are a range of finite domain solver algorithms implemented in clpfd, I think Brachylog just uses the default 23:12:43 `! brachylog 82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:12:44 oh, so you're actually using a finite domain solver here, rather than just prolog nondeterminism? 23:12:47 ok 23:12:49 right 23:13:13 ​[1,3,78] 23:13:19 the ≜ is the interface between them, it runs the solver and converts all the solutions it finds to nondeterminism 23:13:33 apart from that the two are separate 23:14:01 which can lead to some really confusing code behaviours sometimes because some of your constraints affect one and some of your constraints affect the other 23:14:40 `! brachylog 63{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w⊥} 23:15:20 yeah, compile time is a bit slow 23:15:36 or perhaps the time to load the brachylog compiler to the prolog environment is slow 23:15:57 the Brachylog compilier is lightning-fast IME, so maybe it's the load time that hurts 23:16:15 ​[3,15,45][3,45,15][6,21,36][6,36,21][15,3,45][15,45,3][21,6,36][21,21,21][21,36,6][36,6,21][36,21,6][45,3,15][45,15,3] 23:16:18 that said, the ↙ is a bit of an awkward case in the parser so maybe that slows it down a bit 23:16:38 well, that's the better case, because you can probably get swipl to precompile it 23:16:47 and have the wrapper invoke the precompiled version 23:17:15 `! brachylog "test"w 23:17:16 test 23:17:25 using a ! to get only the first solution is nice 23:17:37 `! brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:18:06 OK, so either the compile is slow, or else the load of the compiled program is slow (or HackEso is randomly being slow on that particular command) 23:18:09 test 23:18:09 `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:18:22 because nearly all the code I wrote there will never run 23:18:32 `? repo 23:18:33 repo? ¯\(°​_o)/¯ 23:18:38 `help 23:18:38 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 23:18:40 ​[1,1,3] 23:18:45 where's the repository? 23:18:55 what do you mean? 23:19:09 `paste ibin/brachylog 23:19:09 https://hack.esolangs.org/repo/file/tip/ibin/brachylog 23:19:15 `! brachylog 5{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 23:19:39 ah, https://hack.esolangs.org/repo/shortlog/tip 23:20:03 I wanted to make sure that it wasn't making a new commit with every Brachylog program run, but it isn't 23:20:07 ok, so it's not just slow because it's trying 81**4 possibilities 23:20:24 my "test" which had a copy of the program after it that never ran was slow 23:20:28 so the issue is in the compile or load somewhere 23:21:40 ​[1,1,3] 23:21:43 it compiles and runs basically instantly on my own machine, so there must be some difference between HackEso and my machine that's making it compile slowly there 23:22:14 maybe it tries every triplet of natural numbers, but does that very quickly? 23:22:28 hmm 23:22:40 I'm talking about the program «"test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}» 23:22:42 that's slow on HackEso 23:22:44 maybe file system access on /tmp is slow? 23:22:54 the stuff after the first ⊥ doesn't run at all, though 23:22:56 how many opens does it do? 23:23:10 I think just one to write the tempfile and one to read the tempfile but am not sure 23:23:11 ``` mount | grep tmp 23:23:12 tmpfs on /tmp type tmpfs (rw,relatime) 23:23:32 that's in brachylog.pl; ibin/brachylog also writes a different tempfile for brachylog.pl to read 23:23:33 nope, it's not a file system with silly options like syncing to rotating platter after every write 23:24:28 I've encountered a linux machine where the file system access was really slow because of mount options, so now I had to check that 23:24:36 because it seemed much better to use the run_from_file API than to attempt to use run_from_atom, which would require Prolog-escaping the program to run and also protecting it from the shell 23:24:38 the symptom was that open took a long time 23:28:05 `! brachylog "h2rSh9Ttx5Qi"w 23:28:08 h2rSh9Ttx5Qi 23:28:20 strange 23:30:51 were you just testing the timing? 23:31:20 I don't think there's much need for anti-caching techniques as I didn't write any and the Brachylog compiler doesn't have any either 23:31:26 but I guess it doesn't hurt 23:32:55 just the timing 23:33:21 not for caching, but to avoid a mistake where I get "test" as output from an earlier invocation that took too long 23:33:30 oh, I see 23:33:41 `help test 23:33:42 test failed. HackEgo-JUnit is not available. 23:33:45 `whatis test 23:33:46 test(1) - check file types and compare values \ test(1p) - evaluate expression \ test(1hackeso) - no description 23:34:00 test(1hackeso) is evil by the way 23:34:10 `help ls 23:34:11 ​`ls? ¯\(°​_o)/¯ 23:34:27 ah, I see, test is actually a builtin command 23:34:35 `test -f /etc/passwd 23:34:35 Killed 23:34:54 `` test -f /etc/passwd; echo $? 23:34:55 1 23:35:13 heh, I guess /etc/passwd actually /doesn't/ exist on HackEgo 23:35:24 `` test -f ibin/brachylog; echo $? 23:35:25 0 23:36:20 a shell builtin 23:36:41 so you usually don't invoke /hackenv/bin/test , luckily 23:37:02 good night 23:37:04 `` file /bin/test 23:37:05 ​/bin/test: cannot open `/bin/test' (No such file or directory) 23:37:05 night 23:37:11 `` file /hackenv/bin/test 23:37:12 ​/hackenv/bin/test: ASCII text 23:37:16 ``` type -a test 23:37:16 test is a shell builtin \ test is /hackenv/bin/test \ test is /usr/bin/test 23:37:21 -!- b_jonas has quit (Quit: leaving). 23:37:21 `paste /hackenv/bin/test 23:37:22 https://hack.esolangs.org/repo/file/tip/bin/test 23:37:50 …wow 23:38:02 I think a segfault is probably the wrong error for that? it stands out too much 23:38:05 night, anyway 23:38:07 -!- ais523 has quit (Quit: quit). 23:50:52 -!- Melvar has quit (Ping timeout: 245 seconds). 23:52:37 -!- Melvar has joined. 2019-07-17: 00:02:58 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 01:33:34 -!- FreeFull has quit. 02:35:16 -!- oerjan has joined. 03:06:18 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64500&oldid=64476 * A * (+1446) /* Talk page */ 03:08:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64501&oldid=64500 * A * (+282) 03:10:32 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64502&oldid=64501 * A * (+156) /* Computational class */ 03:14:31 [[Varnand]] N https://esolangs.org/w/index.php?oldid=64503 * DoggyDogWhirl * (+2387) 03:14:34 [[Varnand/Python Implementation]] N https://esolangs.org/w/index.php?oldid=64504 * DoggyDogWhirl * (+1583) 03:19:26 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=64505&oldid=64272 * DoggyDogWhirl * (+15) 03:22:12 [[Language list]] M https://esolangs.org/w/index.php?diff=64506&oldid=64498 * DoggyDogWhirl * (+14) 03:27:45 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64507&oldid=64382 * FlyHamsterPaul * (+229) 03:28:05 [[BWTFN]] N https://esolangs.org/w/index.php?oldid=64508 * FlyHamsterPaul * (+1473) Created page with "'''BWTFN''', or '''Because Why The Fuck Not''', is an esolang inspired off of the [[CopyPasta_Language|CopyPasta]] language created in 2019. BWTFN is only used for printing te..." 03:31:58 [[User talk:A]] https://esolangs.org/w/index.php?diff=64509&oldid=64502 * Areallycoolusername * (+205) 03:36:49 [[Esoteric algorithm]] https://esolangs.org/w/index.php?diff=64510&oldid=64482 * Areallycoolusername * (+4) /* Example */ 03:40:43 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64511&oldid=64509 * A * (+322) /* Char language */ I have changed my signature. 04:01:42 -!- adu has left. 04:16:29 where's the repository? <-- fizzie might want to change the link at the end of `help 04:16:35 `help 04:16:36 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 04:16:48 `url 04:16:49 https://hack.esolangs.org/repo/ 04:23:54 `! brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 04:26:12 test 04:32:39 -!- mniip has quit (Quit: This page is intentionally left blank.). 04:33:14 `` interp 'brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' ​% halt \ test 04:33:22 thought so 04:33:40 although where is that % from 04:33:46 % halt 04:34:04 `` interp 'brachylog "test"w⊥82{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' 04:35:03 @tell ais523 your slow brachylog program was simply hitting the HackEso "feature" where it waits for a timeout if you attempt to read from its stdin 04:35:03 Consider it noted. 04:36:12 No output. 04:59:57 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64512&oldid=64511 * A * (-1083) /* Talk page */ 07:07:05 -!- user24 has joined. 07:17:13 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 07:20:11 -!- Lord_of_Life has joined. 07:26:55 -!- AnotherTest has joined. 07:36:16 -!- user24 has quit (Quit: Leaving). 07:45:35 -!- Sgeo_ has joined. 07:48:37 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 07:55:28 -!- Phantom_Hoover has joined. 07:56:01 -!- Phantom_Hoover has quit (Client Quit). 09:01:53 -!- atslash has joined. 09:02:20 -!- sftp has quit (Ping timeout: 272 seconds). 09:37:49 -!- wob_jonas has joined. 09:38:40 oerjan: interesting. though I don't know why it would read stdin when it doesn't in the simple case of the program that just prints a constant string. is it waiting for a more prompt? 09:52:24 wob_jonas: since ais523 said brachylog is supposedly interactive, i suspect it is, and that's what gives the % halt when it gets /dev/null instead. 09:53:15 not that i know brachylog 09:59:32 How do I make an URL that refers to a PDF with a fragment part pointing to a specific page? I thought I just had to add a hash mark and the page number in decimal, but that doesn't seem to work. 09:59:44 I want to give a link to page 17 of an article for convenience 10:09:09 -!- oerjan has quit (Quit: Later). 10:37:50 wob_jonas: does #page=17 work? 10:38:18 let me see 10:38:33 Works for me in Firefox and Chrome 10:39:05 Taneb: yes, that does work\ 10:39:08 thanks 10:39:25 hmm, should I add that to a wisdom? I won't remember that syntax otherwise 10:39:37 `? pdf 10:39:38 PDF stands for Pretty Depressing Format. 10:39:39 `? pdf 10:39:40 PDF stands for Pretty Depressing Format. 10:39:42 `? wisdom.pdf 10:39:43 Nicely formatted classical wisdoms and quotes book at https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf 10:40:04 ^ nah, that's not actually a pdf 10:40:08 it's a fancy HTML page 10:40:25 ``` grep -ERi pdf wisdom 10:40:27 wisdom/pdf:PDF stands for Pretty Depressing Format. \ wisdom/wisdomme:wisdomme is a PDF that may be in the topic. boily is the one who compiles it. See `? wisdom.pdf \ wisdom/wisdom.pdf:Nicely formatted classical wisdoms and quotes book at https://www.dropbox.com/s/fyhqyvy3i8oh25m/wisdom.pdf 11:04:00 [[Blue Tomato]] N https://esolangs.org/w/index.php?oldid=64513 * Jabutosama * (+3519) Created page with "Blue tomato (BT) is an art programming language concepted by [[user:Jabutosama]]. The language is based around around giving more or less surreal art to very specifically teac..." 11:22:01 Ah ah ah is one of the rare customary american units of measurement that happens to fit SI units exactly. One ah ah ah is equal to 1. 11:43:52 -!- shotover has quit (Remote host closed the connection). 11:48:32 -!- howlands has joined. 12:04:32 -!- mniip has joined. 12:17:56 -!- arseniiv has joined. 12:24:35 [[Arch]] https://esolangs.org/w/index.php?diff=64514&oldid=64493 * Areallycoolusername * (+178) /* Cells & Split */ 12:29:59 [[User talk:A]] https://esolangs.org/w/index.php?diff=64515&oldid=64512 * Areallycoolusername * (+786) /* Char language */ 12:30:26 [[User talk:A]] https://esolangs.org/w/index.php?diff=64516&oldid=64515 * Areallycoolusername * (+9) /* Char language */ 12:30:54 [[User talk:A]] https://esolangs.org/w/index.php?diff=64517&oldid=64516 * Areallycoolusername * (-2) /* Char language */ 12:31:10 [[User talk:A]] https://esolangs.org/w/index.php?diff=64518&oldid=64517 * Areallycoolusername * (+3) /* Char language */ 12:32:11 [[User talk:A]] https://esolangs.org/w/index.php?diff=64519&oldid=64518 * Areallycoolusername * (-8) /* Char language */ 12:32:39 [[User talk:A]] https://esolangs.org/w/index.php?diff=64520&oldid=64519 * Areallycoolusername * (+118) /* Char language */ 12:44:56 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64521&oldid=64520 * A * (+34) /* Char language */ Thank you, and a memory fix first 12:47:39 -!- sftp has joined. 12:48:46 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64522&oldid=64521 * A * (+387) /* Char language */ 12:54:23 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64523&oldid=64522 * A * (+640) /* Char language */ 12:56:55 -!- howlands has quit (Quit: sort of). 12:58:24 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64524&oldid=64523 * A * (+190) /* Commands */ 13:00:45 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64525&oldid=64524 * A * (+75) /* Commands */ 13:08:08 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64526&oldid=64525 * A * (+132) /* Char language */ More verbose! MWHAHAHA 13:13:57 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64527&oldid=64526 * A * (+15) /* Char language */ not TC of course 13:18:37 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64528&oldid=64527 * A * (+232) /* Char language */ 13:24:19 -!- wob_jonas has quit (Remote host closed the connection). 13:24:25 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64529&oldid=64528 * A * (+217) /* Char language */ 13:39:00 -!- xkapastel has joined. 14:02:09 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64530&oldid=64529 * A * (-145) 14:30:03 [[Char]] N https://esolangs.org/w/index.php?oldid=64531 * Areallycoolusername * (+4040) Created page with "'''Char''' is an [[esoteric programming language]] made by [[User: A]]. It's made to be the first [[Arch]]-based programming language. == Specifics == Char utilizes an arch t..." 14:31:37 [[Char]] https://esolangs.org/w/index.php?diff=64532&oldid=64531 * Areallycoolusername * (+47) 14:31:52 -!- wob_jonas has joined. 14:32:31 -!- wob_jonas has set topic: IOCCC winners are announced; source code release planned in the past | Welcome to the international center for esoteric programming language design, development, and deployment! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 14:32:47 hmm no, that's not the right way to phrase it 14:34:22 [[Arch]] https://esolangs.org/w/index.php?diff=64533&oldid=64514 * Areallycoolusername * (-19) /* Languages */ 14:35:05 [[Arch]] https://esolangs.org/w/index.php?diff=64534&oldid=64533 * Areallycoolusername * (+74) /* Languages */ 14:35:51 [[Language list]] https://esolangs.org/w/index.php?diff=64535&oldid=64506 * Areallycoolusername * (+11) /* C */ 14:36:23 -!- wob_jonas has set topic: IOCCC winners are announced; source code release planned by now | Welcome to the international center for esoteric programming language design, development, and deployment! | https://esolangs.org | logs: https://esolangs.org/logs/ http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 14:39:38 -!- Sgeo__ has joined. 14:43:04 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 14:51:12 [[Varnand]] M https://esolangs.org/w/index.php?diff=64536&oldid=64503 * DoggyDogWhirl * (+19) 15:07:14 -!- heroux has quit (Read error: Connection reset by peer). 15:07:24 -!- heroux has joined. 15:13:10 -!- atslash has quit (Read error: Connection reset by peer). 15:14:03 -!- atslash has joined. 15:14:42 [[Special:Log/newusers]] create * Sec-iiiso * New user account 15:26:28 -!- wob_jonas has quit (Remote host closed the connection). 15:55:08 -!- Sgeo__ has quit (Read error: Connection reset by peer). 15:55:34 -!- Sgeo__ has joined. 16:05:04 -!- Sgeo_ has joined. 16:08:10 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 16:47:24 -!- b_jonas has joined. 17:07:07 -!- heroux has quit (Read error: Connection reset by peer). 17:07:41 -!- heroux has joined. 17:18:34 -!- Sgeo__ has joined. 17:20:59 -!- heroux has quit (Read error: Connection reset by peer). 17:21:28 -!- Sgeo_ has quit (Ping timeout: 244 seconds). 17:26:03 -!- heroux has joined. 17:32:07 -!- mniip has quit (Quit: This page is intentionally left blank.). 17:34:55 -!- heroux has quit (Read error: Connection reset by peer). 17:39:57 -!- heroux has joined. 17:40:37 -!- Phantom_Hoover has joined. 18:29:28 "early July 2019" has definitely ended, right? 18:29:46 I think it only ends in mid-August. 18:31:20 shachaf: which USB-C laptop charger do you use? 18:31:22 hmm 18:31:32 b_jonas: I would not say "definitely". 18:31:38 I'm considering getting a single charger for my backpack for both laptop and phone, but I want one that's compact 18:32:14 laptop refuses to charge on 50W 18:32:19 I think I want 65 18:32:50 USB-C laptop charger? what the... don't we still live in a world where laptop charger plugs are coaxial, with incompatible random geometries, voltages, polarities, and voltage tolerances, so you can never be sure that an off-brand charger won't fry your laptop motherboard and lose the warranty, even if it mechanically fits in the socket? 18:33:10 effectively random that is. there are standards, but there are too many of them. 18:33:43 b_jonas: But I would usually understand it to mean the first 10 days of a month; after that point, the notion becomes increasingly less applicable. 18:34:34 int-e: I assumed it would mean the first half of July, but gave them a day of doubt just in case they're on the -1200 timezone pacific islands 18:34:57 b_jonas: mostly yes :( 18:35:03 b_jonas: but some laptops can charge from USB-C 18:35:18 my X270 can do either USB-C or the usual square thinkpad charger port 18:35:24 (But of course it's July 4th today. ;-) ) 18:35:27 and July has 31 days, so the first half can be about 16 days long 18:35:42 but it's picky about USB-C, you can't just plug it into any random wall charger 18:35:43 https://www.timeanddate.com/calendar/?country=23 <-- lovely. 18:35:45 it may require the 20V mode 18:36:32 not sure if you know how USB-PD works 18:37:31 int-e: no way. they're the IO*C*CC, they insist on accepting only C programs, not programs in other languages, and the C standard library has only the localtime/timelocal functions which work only with the gregorian calendar 18:37:44 although... 18:37:53 yeah, we can take that as an excuse: 18:38:13 kmc: I first bought a cheap USB-PD charger and it was bad. 18:38:19 Then I bought the one from Apple and it was fine. 18:38:21 the localtime function allows you to carry stuff from out of range lower fields to higher fields, to make it easy to do date arithmetic with, 18:38:29 and the IOCCC rules have in fact used that in the past: 18:38:38 Some time later I bought anther cheap one and it was also fine. 18:38:55 `? Gregor 18:38:56 Gregor took forty cakes. He took 40 cakes. That's as many as four tens. And that's terrible. 18:39:06 No mention of a calendar. 18:39:32 kmc: Apparently this is the one I'm using that works OK: https://www.amazon.com/Genius-Charger-Extension-Overheating-Warranty/dp/B07KCTKKFR 18:39:45 thanks 18:39:53 or haven't they? I seem to remember they have, but now I can't find the reference 18:39:56 kmc: Keep in mind there are several hundred kinds of type-C cables and only one of them is compatible with your charger and laptop. 18:40:01 is that so 18:40:13 If you're lucky. 18:40:18 it is scow 18:41:03 So Elon Musk has a new company, "Neuralink", for brain implants. Too bad "The Boring Company" was already taken... 18:41:12 b_jonas: the charger and device negotiate a voltage up to 20V and a current up to 5A 18:41:18 I think they also sense what the cable is capable of 18:41:19 not sure 18:41:44 but yeah the brick I have right now only goes up to 9V which is probably why the laptop won't charge 18:42:06 one scow fact is that my laptop refuses to bios-update on usb power 18:42:14 :( 18:42:15 because it's not 130W or whatever 18:43:15 shachaf: I do have a brick that can charge my laptop from 12V power 18:43:17 it's exciting 18:43:21 maybe I'm just bad at datetime calculations and assumed that some date I read somewhere had an out of range field without checking it 18:43:24 anyway the point is that cables make a difference with type-c, and also they all look identical, so you gotta look it up or something 18:43:45 kmc: bricks are also good for charging cats 18:43:50 they are solar-powered 18:43:57 What kind of voltage do flash roms need to be programmed? 5V? More? 18:44:29 lol 18:44:31 int-e: modern ones don't require more than the operating Vcc, I think 18:45:45 Obviously the answer to that question is irrelevant. 18:45:55 It's just Dell being scow for Dell reasons. 18:46:22 shachaf: I think USB-D should be hermaphroditic, like Powerpole 18:49:18 shachaf: Dell in the infamous sense where if you order replacement screws from them, they send you six tiny screws each individually packaged in six huge boxes respectively? 18:49:38 I don't know? 19:04:16 -!- MDead_ has quit (Quit: Going offline, see ya! (www.adiirc.com)). 19:19:22 -!- Lord_of_Life_ has joined. 19:19:47 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 19:20:35 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:22:07 I was trying to think of a certain sci-fi astronomical arrangement between a planet and a double sun moving in a strange pattern, but it seems it's gravitationally impossible. 19:22:57 What I wanted is a double sun orbiting each other very quickly, and a planet that orbits the two of them slowly, but at the same the planet isn't much father away from them than the two suns from each other. 19:23:39 If the arrangement exists, it needs a more magical reason, such as for Discworld. 19:23:54 what is the computational complexity of orbital mechanics 19:24:10 or not complexity, but rather computability class 19:24:14 meaning, what kinds of algorithms can you implement as a n-body gravitational system 19:24:31 the fact that it's continuous will place limits 19:25:06 kmc: I won't try to answer that. I just totally confused myself with a different computational complexity question. 19:32:08 kmc; my MacBook Pro will happily charge (v slowly) from 5v 19:34:10 the X270 won't 19:34:12 because it's a butt 19:34:22 I also bought a USB-C power anal-yzer 19:34:28 so I can see what my devices are actually using 20:00:58 kmc: is that a passive thing that only measures power, or an active thing that interacts with the USB negotiation to tell you the voltage used too? 20:01:17 I don't think the cables contain any electronics; I think it probably senses the voltage drop of the cable 20:01:21 but also I'm not sure that's a thing at all 20:02:05 oh, that could work 20:02:08 er 20:02:11 wait, sorry 20:02:20 I thought you were back to talking about the cable quality 20:02:25 the meter is a man in the middle 20:02:31 I think it does not interfere with the negotiation 20:02:35 it probably just measuers the voltage 20:02:50 but I'm sure you can buy more advanced (read: expensive) devices that also allow you to mess with the negotiation 20:02:50 meter? i just met 'er! 20:03:04 and also programmable loads and power supplies that you can configure for any set of capabilities 20:03:07 it might be fun to own such things 20:03:37 and then there are those "USB condoms" 20:03:40 which disconnect the data lines 20:03:46 I'm not sure if that interferes with USB-PD negotiation 20:04:41 I think there are power only cables you can get 20:04:42 idk 20:05:42 I guess it could be passive and yet measure everything. It just needs to put an ideal infinite resistance voltage meter between the wires of the cable, and an ideal zero impedance current meter interrupting the wires, and some magical zero resistance gold coated sockets with superconducting wires. 20:06:42 It just needs a separate power source so it doesn't leach the USB itself for power. 20:08:17 -!- FreeFull has joined. 20:08:22 yes but of course it has none of those things 20:08:29 and is Good Enough ™ 20:08:40 it's probably like a standard multimeter 20:09:11 voltmeter 10 Mohm resistance in parallel to the load, ammeter ~1 mohm resistance in series to the load 20:09:22 I do have some Powerpole voltage-current meters that can use an external supply 20:09:32 in addition to being more accurate, this allows them to measure a wider range of voltages 20:09:38 those things are very useful 20:10:10 1 milliohm? that's nice 20:10:36 I'm not sure, but probably on that order 20:12:23 I just measured the shunt resistor inside one of my meters as 0.1 ohms 20:12:27 but that's the lowest the other meter can read 20:12:30 and it's probably lower than that 20:12:56 for high current shunts a common size is to drop 75 mV at full current 20:13:05 kmc: sure, but isn't that only the ohmic resistance? can the capacitance bother the autodetection mechanism or signaling between the laptop and charger? 20:13:08 so a 100A max shunt would have a resistance of 0.75 mohm 20:13:32 I don't really know, I don't understand electric engineering 20:13:39 we have other people at this company who understand it though 20:13:52 they talk in crazy jargon 20:13:57 b_jonas: if it violates the USB spec for the data lines then yes 20:13:59 otherwise no 20:14:03 because the negotiation is digital 20:14:20 if the meter is poorly made it may prevent USB 3 speeds from working 20:14:26 I don't know if the port will automatically downgrade to 2 20:14:37 I don't mean the signals for negotiation, but for autodetecting the cable quality 20:15:21 oh, USB3 is a good point, does its extra wires help transmit more current? 20:16:13 I don't know how USB works, it's magic 20:16:25 I am not certain that autodetecting cable quality is even a thing 20:16:29 I'm not sure where I got that idea 20:16:43 ok 20:16:56 I don't think USB-C has any additional power wires 20:17:09 but a cable designed for 5A had better have some reasonably thick wires 20:17:28 as for capacitance, USB3 is so fast that it's essentially a microwave-frequency transmission line 20:17:33 better wires in general, they're not restricted to power. 20:17:33 so it does need precisely controlled impedance 20:17:38 mhm 20:18:00 similarly, the twist in ethernet cables matters more at higher speeds 20:18:19 and yes, USB3 is so fast you can basically transmit digital video signals to your monitor through it 20:18:21 Cat7 has very tight tolerances on the twist geometry 20:19:00 b_jonas: yeah 20:19:06 b_jonas: you can have an external video card connected by USB3 20:19:07 and also 20:19:09 there are laptop dockers that use just two USB connectors plus two thick power connectors, and you can transmit data to two external monitors plus high speed network plus external solid state disks through them 20:19:13 it seems impossible 20:19:34 you can configure a USB-C port to carry HDMI or DisplayPort signals from an internal graphics card 20:19:37 https://en.wikipedia.org/wiki/USB-C#Alternate_Mode_partner_specifications 20:19:41 it is pretty fancy 20:20:06 fun fact: USB3 cables have a tight enough tolerance that you can run PCIe signals through them, at least on short distances 20:20:22 this is not in any way supported by the spec, it is just a repurposing of the cables 20:20:33 the laptop I use at work is like that, although I only transmit laptop power plus data for one monitor plus not too fast network through it, no disk 20:20:35 but it's popular with crypto miners 20:20:48 as a way to get lots of video cards plugged into one motherbord 20:21:29 at fry's I saw a mobo with 19 PCIe x1 slots on it 20:21:37 yes, 19 20:21:51 obviously you cannot physically fit that many cards on the board without risers 20:22:18 huh? why do you need a fast connection for that? don't they put separate built-in RAM onto each video card, so for crypto mining (as opposed to, say, gaming) you don't need much data throughput or latency between the motherboard and video card? 20:22:26 and it has *three* ATX motherboard connectors 20:22:32 https://www.asus.com/us/Motherboards/B250-MINING-EXPERT/ 20:22:53 also can't you put all that stuff into a single big video card that fits into two adjacent pcie sockets? 20:22:56 and the best part? this thing was on blowout sale for $35. 20:23:12 shovels and pickaxes 90% off! 20:23:22 b_jonas: we are takling 19 big video cards 20:23:36 have you ever seen a GPU mining rig 20:23:48 here's a small one https://cryptosrus.com/wp-content/uploads/2017/06/mining-rig-1280x640.jpg 20:23:53 hey 20:24:15 those little boards plugged into the mobo with USB cables coming out vertically are the PCIe risers 20:24:46 mining does not require much bandwidth, so PCIe x1 is fine 20:24:58 the big card can have separate power cables, going to it directly without the motherboard involved, and as much cooling as you can physically manage 20:25:05 I don't see why it needs much motherboard connection 20:25:11 I've heard of people cutting a notch out of the back of an x1 slot so they can fit an x16 card in it 20:25:20 or cutting off most of the GPU's PCIe connector 20:25:21 and this works, apparently 20:25:27 do you need low latency connection to the motherboard? 20:25:35 b_jonas: I think it is still allowed to draw a fair amount of current from the PCIe slot itself 20:25:38 b_jonas: no 20:25:58 the cards basically operate on their own until they discover a solution for a particular block 20:26:13 which does not happen very often 20:26:32 kmc: looks nice, it's sort of like those servers with lots of high capacity hard disks connected to them, only you need more air gaps for heating 20:26:35 um 20:26:37 cooling 20:26:37 I mean cooling 20:26:41 the heating comes from the power cables 20:26:48 for heating the environment 20:26:53 yeah 20:27:17 and you need a powerful air conditioner to get the heat out of the room itself 20:27:23 my friend has a painting at her apartment, not sure who made it, of a melting glacier with a huge (skyscraper-size) mining rig in front of it 20:28:11 I mean, I'm paranoid and put air gaps between my disk drives, but I only have three in my computer right now, plus a dvd drive 20:28:34 if you have good case airflow then you shouldn't need big gaps 20:28:38 I use one of these little metal extenders to be able to put a HDD to a 5 inch wide space 20:28:42 mm 20:28:43 those are good 20:28:49 I don't need big gaps, but there's enough space in the box to have it, so why not 20:28:53 I don't lose anything by it 20:28:58 yeah 20:29:08 it's not like I have a big video card taking up the space 20:29:22 also, this box is ancient and I should buy lots of new hardware 20:29:57 and start looking for a new camera too, because the warranty of the current one expires in a week and I'm getting more and more certain that it *knows* and deliberately times its death to right after that 20:30:26 so that if I took it to repairs within the warranty, I couldn't prove that there's anything wrong, but the motor for the lens will give up right after 20:30:59 but this compact camera has served me really well for three years, I enjoy it, so I might stick to the Panasonic brand 20:39:31 Also I have to process and upload some photos that I made with it. 20:41:23 Lots of pictures in fact. 20:59:48 has oren disappeared? it seems like he hasn't been in the channel (under this name or the backslash one) for a while 21:02:31 I need to get a bunch of stuff fixed on my laptop before the warranty runs out 21:02:37 I have on site accidental damage coverage 21:02:46 I am not that happy with the build quality on this ThinkPad X270 21:03:13 it's disappointing even by the standard of the post-IBM standards 21:03:21 I broke the keyboard twice with tiny amounts of water, broke the screen once 21:03:29 broke the internal speaker *and* the headphone jack, separately 21:04:06 I broke my non-laptop keyboard with colored water too. I bought a new identical one. I'm more careful about letting drinks close to it now. 21:04:22 this was like residual water on my hands after washing them 21:04:33 every other thinkpad i've owned, it would not be a problem to get a few drops othe keyobard 21:04:50 with this one it messed things up even after letting it dry 21:04:52 :( 21:04:57 Mind wasn't, I actually spilled a significant amount in it, like perhaps 50 grams or something. 21:05:08 Yeah at the very least it should recover after drying out :/ 21:05:18 cathy spilled a whole cup of tea into her X201i 21:05:22 and it was fine in the end 21:05:25 let it dry for like a week 21:05:43 I use a cheaper keyboard at work. That one claims to be waterproof. 21:05:44 The best keyboard killer I know is Coca Cola (ideally with sugar). 21:05:52 I haven't tested yet. 21:05:54 I don't think I've ever had that misfortune 21:06:10 the speakers are sort of my fault 21:06:27 i dropped the laptop off the side of the bed in a fit of passion 21:06:29 I've destroyed 2 keyboards that way. But that was ages ago. 21:06:49 I got coffee in one of my external keyboards and fucked it up 21:06:58 but I was able to open it up, clean the board with isopropyl alcohol 21:07:01 and now it works again \o/ 21:08:31 int-e: I see. I haven't tried spilling that into keyboard yet. 21:09:15 I won't try either 21:10:22 kmc: what additives did the coffee have? 21:10:29 none 21:10:35 as in, sugar, cream, etc 21:10:51 I'm asking because int-e says the sugar might matter 21:11:00 I like coffee as black as my existential despair 21:11:08 it might, yeah 21:11:10 ouch, that's heavy 21:11:16 ithink it was espresso actually 21:12:30 I don't drink coffee. In the office, lots of people drink coffee of course. The entire IT industry can grind into a halt when the coffee machine doesn't work or when we run out of sugar or milk. 21:12:40 yep 21:12:48 I think maybe I should try quitting caffeine just to see what it's like 21:12:54 cause I've consumed a lot of caffeine for a very long time 21:13:16 oh, I don't say that I don't drink caffeine. I drink coke actually. 21:13:24 With sweeteners rather than sugar these days. 21:13:37 yeah 21:13:50 I drink coffee and diet soda and energy drinks 21:13:58 I have a sort of compulsion to eat/drink things 21:14:01 these things have no calories 21:14:11 yeah, I know 21:14:13 chewing gum too 21:14:45 water's pretyt good too 21:14:52 I have also been drinking diluted orange juice 21:14:56 it's tastier than it sounds 21:14:59 and pretty low calorie 21:16:30 b_jonas: sugar matters because in addition to the electrical problem (cola has acid, plenty of electrolytes there...) you get a mechanical one (stickiness). 21:16:58 int-e: yep, the plain water evaporates completely, but the sugar doesn't, and it keeps the water there more 21:17:25 but coke with sweeteners is still somewhat sticky, even if not as much as the one with sugar 21:18:34 I haven't tried that yet :) 21:19:19 I haven't spilled it to a computer either 21:19:30 I destroyed my phone with plain water too 21:29:55 :( 21:31:01 kmc: https://www.perlmonks.com/?node_id=1225327 has the story of my phone 21:31:28 oh, I should edit that to add that the bluetooth of the Cat is broken too 21:36:00 -!- AnotherTest has quit (Ping timeout: 272 seconds). 21:37:03 done 22:03:05 -!- ais523 has joined. 22:04:08 hi ais523. oerjan figured out what took time. 22:04:10 ooh, I guess what was happening is that the Brachylog compiler was falling through into the interactive swipl interpreter after running the code 22:04:17 `cat ibin/brachylog 22:04:17 ​#!/bin/sh \ echo "$1" > tmp/input.brachylog \ (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), halt' brachylog.pl) 22:04:34 but I don't understand why that happens for your triangular number program but not for the hello world program 22:04:37 …but only if it returns false, rather than returning true 22:04:50 the hello world program where I "commented out" the rest of the code with a return false returns false :-) 22:05:09 ah 22:05:16 but it's not just that 22:06:10 `! brachylog "QUeRHCOQ9j7V"w 22:06:12 QUeRHCOQ9j7V 22:06:17 ^ doesn't that return true? 22:06:25 yes, and it ran quickly 22:06:31 oh 22:06:37 so it's slow if it returns false? 22:06:43 yes 22:06:44 ok 22:06:57 so in that case, do you have a good way to fix this in your wrapper script? 22:07:09 `` sed -i 's/halt/write("\ntrue."), !, halt; write("\nfalse."), !, halt' -e ibin/brachylog 22:07:10 ​/bin/sed: can't read s/halt/write("\ntrue."), !, halt; write("\nfalse."), !, halt: No such file or directory 22:07:20 `` sed -i -e 's/halt/write("\ntrue."), !, halt; write("\nfalse."), !, halt' ibin/brachylog 22:07:20 ​/bin/sed: -e expression #1, char 60: unterminated `s' command 22:07:25 `` sed -i -e 's/halt/write("\ntrue."), !, halt; write("\nfalse."), !, halt/' ibin/brachylog 22:07:27 No output. 22:07:40 `! brachylog [2,2]= 22:07:41 ​ \ true. 22:07:48 `! brachylog [2,3]= 22:07:49 ​ \ false. 22:08:06 I made it print the program's return boolean, too 22:08:17 err, exit code boolean 22:08:33 brachylog doesn't have any way to write programs, only functions 22:08:46 so you need a wrapper to make a brachylog function into an entire program and there's more than one way to do it 22:09:22 the wrapper on TIO prints exit code as true/false by default, but has an option to print return value or even input instead (input is useful if you didn't specify it) 22:09:41 does halt quit the interpreter? 22:09:50 yes 22:09:55 `! brachylog 63{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w⊥} 22:09:56 ​[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] \ false. 22:10:12 the "false" here is because there are no more solutions 22:10:36 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w⊥} 22:10:47 ​[0,0,0][0,0,1][0,1,0][1,0,0][0,1,1][1,0,1][1,1,0][0,0,3][0,3,0][1,1,1][3,0,0][0,1,3][0,3,1][1,0,3][1,3,0][3,0,1][3,1,0][1,1,3][1,3,1][3,1,1][0,0,6][0,3,3][0,6,0][3,0,3][3,3,0][6,0,0][0,1,6][0,6,1][1,0,6][1,3,3][1,6,0][3,1,3][3,3,1][6,0,1][6,1,0][1,1,6][1,6,1][6,1,1][0,3,6][0,6,3][3,0,6][3,3,3][3,6,0][6,0,3][6,3,0][0,0,10][0,10,0][1,3,6][1,6,3][3,1,6][3,6,1][6,1,3][6,3,1][10,0,0][0,1,10][0,10,1][1,0,10][1,10,0][10,0,1][10,1,0][0,6,6][1,1,10][1,10,1][3,3, 22:11:17 add the cut to make it print just one solution per sum? 22:11:36 oh right 22:11:48 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}!w⊥} 22:11:58 I think you can cut after the w too, to the same effect 22:11:58 ​[0,0,0][0,0,1][0,1,0][1,0,0][0,1,1][1,0,1][1,1,0][0,0,3][0,3,0][1,1,1][3,0,0][0,1,3][0,3,1][1,0,3][1,3,0][3,0,1][3,1,0][1,1,3][1,3,1][3,1,1][0,0,6][0,3,3][0,6,0][3,0,3][3,3,0][6,0,0][0,1,6][0,6,1][1,0,6][1,3,3][1,6,0][3,1,3][3,3,1][6,0,1][6,1,0][1,1,6][1,6,1][6,1,1][0,3,6][0,6,3][3,0,6][3,3,3][3,6,0][6,0,3][6,3,0][0,0,10][0,10,0][1,3,6][1,6,3][3,1,6][3,6,1][6,1,3][6,3,1][10,0,0][0,1,10][0,10,1][1,0,10][1,10,0][10,0,1][10,1,0][0,6,6][1,1,10][1,10,1][3,3, 22:12:14 nope, /have/ to cut after, that position is before the labelise :-) 22:12:15 nope, didn't work 22:12:17 `! brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥} 22:12:19 ​[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 22:12:23 better 22:12:24 labelise rules are the worst thing about Brachylog 22:12:53 because you need to know way too much about how the "derive an algorithm to meet the spec you give" works internally to be able to labelise correctly 22:13:49 ``` \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e "local $/; print substr ,200" 22:13:50 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:14:12 ``` \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:14:14 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:14:35 ``` perl -e 'print "foo!bar"' 22:14:35 foo!bar 22:14:46 hmm 22:14:54 ``` \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' 22:14:55 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:15:05 ``` \! 'brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' 22:15:06 Warning: '../../../../../tmp/input.brachylog':1:4: Illegal multibyte Sequence \ Warning: '../../../../../tmp/input.brachylog':1:5: Illegal multibyte Sequence \ Warning: '../../../../../tmp/input.brachylog':1:6: Illegal multibyte Sequence \ Warning: '../../../../../tmp/input.brachylog':1:7: Illegal multibyte Sequence \ Warning: '../../../../../tmp/input.brachylog':1:8: Illegal multibyte Sequence \ Warning: '../../../../../tmp/input.brachylog':1:9: Illegal m 22:15:21 what the heck does ! do? 22:15:33 I want to see the entries past the line cutoff 22:15:40 `` \! 'brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' 22:15:42 ​[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 22:15:51 what 22:15:54 try using a prefix that doesn't randomly turn UTF-8 mode off? 22:15:59 ah 22:16:07 well that's backwards, but ok 22:16:08 I still don't see the point in ``` :-D 22:16:59 ``` LC_CTYPE=en_NZ.utf8 \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:17:00 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:17:06 ``` LANG=en_NZ.utf8 \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:17:08 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:17:11 `` locale 22:17:11 LANG=en_NZ.UTF-8 \ LANGUAGE= \ LC_CTYPE="en_NZ.UTF-8" \ LC_NUMERIC="en_NZ.UTF-8" \ LC_TIME="en_NZ.UTF-8" \ LC_COLLATE="en_NZ.UTF-8" \ LC_MONETARY="en_NZ.UTF-8" \ LC_MESSAGES="en_NZ.UTF-8" \ LC_PAPER="en_NZ.UTF-8" \ LC_NAME="en_NZ.UTF-8" \ LC_ADDRESS="en_NZ.UTF-8" \ LC_TELEPHONE="en_NZ.UTF-8" \ LC_MEASUREMENT="en_NZ.UTF-8" \ LC_IDENTIFICATION="en_NZ.UTF-8" \ LC_ALL= 22:17:19 you forgot the hyphen 22:17:20 ``` LANG=en_NZ.UTF-8 \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:17:22 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:17:39 `` \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:17:41 ``` LANG=en_NZ.UTF-8 locale 22:17:41 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:17:41 LANG=en_NZ.UTF-8 \ LANGUAGE= \ LC_CTYPE="en_NZ.UTF-8" \ LC_NUMERIC="en_NZ.UTF-8" \ LC_TIME="en_NZ.UTF-8" \ LC_COLLATE="en_NZ.UTF-8" \ LC_MONETARY="en_NZ.UTF-8" \ LC_MESSAGES="en_NZ.UTF-8" \ LC_PAPER="en_NZ.UTF-8" \ LC_NAME="en_NZ.UTF-8" \ LC_ADDRESS="en_NZ.UTF-8" \ LC_TELEPHONE="en_NZ.UTF-8" \ LC_MEASUREMENT="en_NZ.UTF-8" \ LC_IDENTIFICATION="en_NZ.UTF-8" \ LC_ALL= 22:18:10 `` \! brachylog '81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | cat 22:18:12 it should be using LC_CTYPE to determine the program encoding, I think? 22:18:13 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:18:24 misplaced quote 22:18:31 `` \! 'brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | cat 22:18:34 ​[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 22:18:41 ``` LANG=en_NZ.UTF-8 \! 'brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,200' 22:18:43 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][0,21,36][0,3,55][1,3,55][0,15,45][0,6,55][1,6,55][3,15,45][0,28,36][0,10,55][0,0,66][0,1,66][1,1,66][0,3,66][0,15,55][1,15,55][0,6,66][0,28,45][1,28,45][3,6,66][0,10,66][1,10,66][0,0,78][0,1,78][1,1,78 22:18:47 ! is confusing 22:19:07 it's because `! gets the language name and program as a single argument because that's how single ` works 22:19:09 so it splits them 22:19:13 yeah, I know 22:19:34 though we could make it also work with two arguments 22:20:30 `cat bin/! 22:20:31 ​#!/bin/bash \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG="$(echo "$1" | cut -d' ' -f2-)" \ exec ibin/$CMD "$ARG" 22:20:42 ``` LANG=en_NZ.UTF-8 \! 'brachylog 81>ℕ≜{~{Ṫ{.∧ℕA+₁×↙A~×₂}ᵐ+}w!⊥}' | perl -e 'local $/; print substr ,400' 22:20:45 1,21,28][0,6,45][1,6,45][10,15,28][3,6,45][0,0,55][0,1,55][0,21,36][0,3,55][1,3,55][0,15,45][0,6,55][1,6,55][3,15,45][0,28,36][0,10,55][0,0,66][0,1,66][1,1,66][0,3,66][0,15,55][1,15,55][0,6,66][0,28,45][1,28,45][3,6,66][0,10,66][1,10,66][0,0,78][0,1,78][1,1,78] \ false. 22:20:53 seems to work correctly 22:21:03 nice 22:21:20 `` sed -i -e 's/ARG"$/ARG$2"' 'bin/!' 22:21:21 ​/bin/sed: -e expression #1, char 14: unterminated `s' command 22:21:24 `` sed -i -e 's/ARG"$/ARG$2"/' 'bin/!' 22:21:25 No output. 22:21:28 `cat bin/! 22:21:28 ​#!/bin/bash \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG="$(echo "$1" | cut -d' ' -f2-)" \ exec ibin/$CMD "$ARG$2" 22:21:46 `! brachylog 2+₂! 22:21:47 ​ \ true. 22:21:48 err 22:21:50 `! brachylog 2+₂w 22:21:50 be careful, sed is also overridden in /hackenv/bin 22:21:51 4 \ true. 22:22:06 `` ! brachylog '2+₂w' 22:22:08 ​/hackenv/bin/`: line 5: brachylog: command not found 22:22:14 and be careful with sed, if you want to allow two arguments, then you also want to allow two arguments when the second one can have newlines and carriage returns 22:22:15 `` '!' brachylog '2+₂w' 22:22:16 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:22:40 not for brachylog in particular, but in some languages, newlines in the source are useful 22:22:55 I was only using sed for editing bin/! 22:23:06 the edit worked, but the resulting code doesn't do what I wanted 22:23:23 -!- ais523 has quit (Quit: sorry for my connection). 22:23:36 -!- ais523 has joined. 22:24:05 hmm 22:24:10 `` echo '' | cut -d' ' -f2- | wc 22:24:13 ​ 1 0 1 22:24:31 `` echo '' | cut -d' ' -f2- | od -t x1z 22:24:32 0000000 0a >.< \ 0000001 22:24:51 ooh, cut is appending a newline? 22:25:11 `` echo -n '' | cut -d' ' -f2- | od -t x1z 22:25:11 0000000 22:25:30 oh right 22:25:35 echo is appending a newline 22:25:45 that said... 22:25:45 but bin/! isn't using echo -n 22:25:55 `` echo a `echo b` c 22:25:56 a b c 22:26:03 `` sed -i -e 's/echo/echo -n/' 'bin/!' 22:26:04 ...the shell should strip the newline 22:26:09 No output. 22:26:23 `! brachylog 2+₂w 22:26:24 4 \ true. 22:26:32 `` '!' brachylog '2+₂w' 22:26:34 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 22:26:41 b_jonas: why do you use ``` rather than ``? 22:27:06 Wasn't ``` the one with the C locale... 22:27:15 `cat bin/`` 22:27:15 ​#!/bin/sh \ export LANG=C; exec bash -O extglob -c "$@" | rnooodl 22:27:30 `cat bin/` 22:27:30 ​#!/bin/bash \ cmd="${1-quote}" \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$cmd" | rnooodl 22:27:32 ais523: C locale is more practical for some things. especially bash itself: makes it sort the results of wildcard extension asciibetically rather than locale-wise, and more importantly, make bracket hyphen range wildcards like [a-k] match in a sane asciibetic way 22:28:35 generally I use `` like I would use an actual shell 22:28:39 and I don't set my actual shell to C locale 22:28:44 ais523: if the brachylog interpreter depends on the locale, like the java compiler, but most programs use fancy characters that you won't find in smaller charsets, then you should consider making the wrapper set the LC_CTYPE explicitly 22:29:42 b_jonas: the brachylog interpreter uses the locale in order to interpret what encoding the input is in, which is correct 22:29:59 ais523: I set LC_CTYPE to an utf-8 locale, but the other locale facets to C. that makes programs, including the builtin readline in bash, know that the terminal uses utf-8, but doesn't have the strange behavior for wildcard expansion because that's governed by LC_COLLATE 22:30:05 forcing it to something that the locale doesn't specify would be incorrect, because if, say, it's running in a UTF-16 environment, it should be interpreting the input as UTF-16 22:30:23 perhaps ``` should be using C.UTF-8? because IRC uses UTF-8 except when it doesn't 22:30:42 ais523: UTF-16 environments won't usually work in unix, definitely not when you pass the program in argv, because argv strings can't have nul bytes 22:31:21 that's a good point, main uses char** for argv not wchar_t** 22:31:25 you can read utf-16 files, but you can't have utf-16 argv or environment 22:31:30 or filenames for that matter 22:31:52 I believe there's some Linux-specific way to get at the command line arguments even if they have embedded NULs but I doubt anyone uses it because the portable way is more portable and more convenient 22:32:11 in C and unix, yes. in windows and NNIX, you can have the argument and environment contain utf-16 strings. 22:32:12 is it in the ELF startup vectors thing 22:32:20 there's that weird auxv thing that people don't use 22:32:23 that i forgot even the purpose of 22:32:41 that said, I'm not convinced you /can/ put embedded NULs into the argument list because I'm not sure there's any kernel-level API for doing that 22:32:42 oh right, it has certain useful runtime system info 22:32:52 kmc: ASLR is one good use of it, it contains a random number for ASLR purposes 22:32:54 that is used mainly by the dynamic loader and libc init code 22:32:54 ais523: I don't think there is, at least for actual execced programs (as opposed to shell builtins, which cheat), because the arguments are passed in by execve, and execve takes nul-terminated strings 22:32:55 right 22:33:09 -!- MDead_ has joined. 22:33:12 ais523: it's quite the opposite: there's a windows-specific way to get the original utf-16 arguments 22:33:47 kmc: I used it through that libc wrapper in one program 22:33:54 sysconf or something like that 22:33:58 procconf? 22:34:03 I dunno, some strange name like that 22:34:15 I needed one of the parameters 22:34:26 because of some linux-specific stuff 22:35:27 ais523: maybe you can do something crazy like that to put an empty string into the environment and read it 22:35:46 or maybe not 22:36:49 maybe you can do that even normally 22:38:14 b_jonas: putenv puts the provided string into the environment, not a copy of it 22:38:27 so you can just put an arbitrary string into the environment and then overwrite the first byte with NUL afterwards 22:38:47 this is probably an esoteric use of putenv? 22:39:11 Hmm, I don't know how environment variables work. 22:39:32 it's somewhat more insane than you'd expect 22:39:33 Is the running process's environment as modified by libc functions accessible in /proc, in Linux? 22:39:54 Or does putenv only affect getenv and exec functions? 22:39:55 basically, environment variables aren't tracked by the kernel at all except at the execve → main boundary 22:39:57 ais523: but does that survive an execve? 22:40:06 OK, that's what I would have guessed. 22:40:07 the environment doesn't survive an execve by definition 22:40:10 that's what the e stands for 22:40:12 or more like, survive an execv, or can you pass execve 22:40:12 yeah 22:40:14 "replace the environment" 22:40:28 execv is just a wrapper in libc that does an execve with your current environment 22:40:49 ais523: how does /proc/self/env work then? 22:41:00 I know Linux processes can modify their argv and that becomes visible in /proc/cmdline (and ps). 22:41:04 so the kernel providing only execve, not any of the other 7 exec* functions, means it doesn't need to track the environment for correctness 22:41:06 no, /proc/self/environ 22:41:12 But I don't know how they can modify their command line to make it longer, for example. 22:41:21 I think /proc/*/environ stores a copy for auditing reasons but the kernel doesn't need to remember it for semantic reasons 22:41:34 shachaf: argv[0] is a pointer to a string, you can just change the pointer rather than the string 22:41:46 ais523: so it's like the filenames you get if you readlink /proc/*/fd/* ? 22:41:48 ais523: And the kernel will pick up on that? 22:41:59 argv is double-mutable, you can mutate both the pointers and the things they point to 22:42:15 I'm not sure that the kernel picks up on argv[0] assignments in Linux 22:43:06 I though you could set the executable name using prctl, but maybe you can't 22:44:18 hmm, so prctl lets you set the kernel's idea of where the command line is stored in memory and where the environment is stored in memory 22:44:35 so maybe /proc/self/env just reads the environment variables directly out of the program's memory, assuming they're stored in the same place as before? 22:45:19 ok... I think I don't even want to know those details 22:45:27 aha: there's a PR_SET_MM_EXE_FILE 22:45:46 which lets you change which executable file the kernel thinks your program is currently running from 22:45:53 which is even more insane than changing argv[0] 22:45:57 ais523: But that's only the executable, not the command line. 22:46:06 "only" the executable 22:46:18 in order to be able to use it you first have to entirely unmap your existing executable, also you can only do it once per process 22:46:35 I once wrote a C program that ran without libc, let me look at what it did. 22:47:05 shachaf: did that program ran on linux as a user process? 22:47:18 At startup with the amd64 ABI, you get argc right at %rsp, and then argv, which is an array of argc many pointers, and then envp, and then auxv. 22:47:23 b_jonas: Yes. 22:47:53 shachaf: what type is auxv there? 22:48:01 Elf64_aux * 22:48:11 a pointer to an array? 22:48:13 ok 22:48:21 Oh, no, it's the actual array. 22:48:24 ah 22:48:39 You scan it until you find the sentinel with type AT_NULL 22:48:45 yeah, so that was the un-c-like part, not how argv and envp were passed 22:49:34 By the way, auxv contains the file name passed to execve, which can of course be distinct from argv[0] 22:50:02 shachaf: sure, ps can print both 22:50:36 Can it? 22:50:57 it can print two different executable-name-like-things at least 22:50:58 on linux 22:51:00 I know it can read the link proc/pid/exe, but that's an absolute path, which I think is a bit different. 22:51:42 let me see 22:52:11 I don't actually know. 22:54:14 Oh man, this is so confusing. 22:54:26 ``` ps axo pid,comm,args # this prints stuff like "Web Content" in the second column and command lines starting with "/usr/lib/firefox-esr/firefox-esr -contentproc" in the second column 22:54:26 ​ PID COMMAND COMMAND \ 1 init /init \ 2 kthreadd [kthreadd] \ 3 ksoftirqd/0 [ksoftirqd/0] \ 4 kworker/0:0 [kworker/0:0] \ 5 kworker/0:0H [kworker/0:0H] \ 6 kworker/u2:0 [kworker/u2:0] \ 7 lru-add-drain [lru-add-drain] \ 8 kdevtmpfs [kdevtmpfs] \ 9 oom_reaper [oom_reaper] \ 10 writeback [writeback] \ 11 kcompactd0 [kcompactd0] \ 12 crypto 22:54:30 In this program U8 means an 8-byte unsigned integer rather than an 8-bit unsigned integer. 22:54:33 no full pathnames 22:54:44 not always full pathnames that is 22:55:03 the second colume only has the basename of the executable, or what it lies about itself 22:55:17 the third column has what looks pretty much like the full argv joined 22:55:45 the argv sometimes has relative pathname, sometimes absolute pathname for the executable 22:55:57 and sometimes the argv itself lies 22:56:17 because you can pass basically anything, and only the shell and gzip and git and a few programs like that care 22:56:35 (the shell cares about whether it starts with a hyphen, gzip and git cares about names it's usually symlinked to) 22:57:08 I've seen the U1/2/4/8 nomenclature somewhere before, for 8/16/32/64-bit integers, respectively. 22:57:35 ais523: As far as I can tell setting argv[0] to point to a different string has no effect on ps. 22:57:56 that's what I'd expect too; it works on some systems but I don't think Linux is one of them 22:57:57 I have written C++ code where I defined typenames ending in 1, 2, 4, 8 for 1-byte, 2-byte, 4-byte, and 8-byte integers. not U8 or u8 or S8 or s8 or I8 or i8 though 22:58:01 fizzie: Yes, I thought it would be a better idea because they're all one-digit numbers. 22:58:20 ais523: Then maybe I misunderstood 15:41 shachaf: argv[0] is a pointer to a string, you can just change the pointer rather than the string 22:58:24 shachaf: exactly 22:58:48 I decided to go back to bit counts because that's what everyone else uses. 22:59:03 It wouldn't be confusing except that 8 bit and 8 bytes are both very common sizes. 22:59:15 shachaf: that was in reply to a question asking about how you could make the name longer 22:59:17 although there's also a third variant, where you use "3" for 1-byte, "4" for 2-byte, "5" for 4-byte, "6" for 8-byte, "7" for 16-byte, "8" for 32-byte, and "9" for 64-byte 22:59:32 ais523: Yes, for people viewing the name through ps. 22:59:38 anyway, it seems that on Linux, the "executable name" is the name of the executable's main thread, so you can rename the thread in question and that renames the view in ps 22:59:39 Why else would I want to make it longer? 22:59:47 that's limited to 15 bytes, apparently 23:00:08 and any of these is better than using ambiguous names like "long" and "int" and "word" or abbreviations for them 23:00:09 b_jonas: because 1 byte = 8 bits? 23:00:22 ais523: yes, you can also have "0" for booleans 23:00:24 I want to change the contents of /proc/pid/cmdline. 23:00:45 Oh, I think it was probably the JVM specification. 23:00:58 https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html "The types u1, u2, and u4 represent an unsigned one-, two-, or four-byte quantity, respectively." 23:01:21 Oh no. 23:01:24 I'm not sure if it's possible to change arguments after the first in /proc/pid/cmdline; my guess is yes but if so my searches haven't discovered a method yet 23:01:38 Recently I've been reading decompiled Java code to understand a game better. 23:01:49 It's amazing how much information they put in there. Almost everything except comments. 23:01:51 Java doesn't /have/ unsigned 1-, 4-, or 8-byte types 23:02:06 (char is an unsigned 2-byte number with a misleading name) 23:02:18 ais523: JVM, not Java. 23:02:32 fizzie: yes, that's why the names can be weird 23:02:37 as they don't have Java names to use as a reference 23:02:42 and there's also one I considered using for the syntax of a certain sort-of esolang I've been considering: "1" for 1-byte, "2" for 2-byte, "4" for 4-byte, "8" for 8-byte, "3" for 4-byte float, "7" for 8-byte float, "6" for 8-byte pointer, "0" for boolean, because this way they're distinct and give the approximate size of the mantissa in bytes 23:02:50 ais523: Can't you just mutate argv[1][0] or whatever and put what you like in there? 23:03:25 shachaf: yes, but if mutating argv[0] doesn't affect ps output, I wouldn't expect mutating argv[1] to affect ps output either 23:03:26 but maybe it does 23:03:51 I think unixes where it does alter ps output look into the process memory 23:03:54 it's n a s t y 23:04:14 not sure about /proc/$PID/cmdline 23:04:25 ais523: Mutating argv[0][0] does change ps output. 23:04:35 ooh 23:04:36 But not the pointer argv[0], which I thought was the distinction you were making before. 23:04:51 shachaf: what if you unmap the initial stack? 23:05:02 so I guess that /proc/$PID/cmdline is looking at the memory backing the pointers that argv points into 23:05:04 that would make some sort of sense 23:05:09 One time I got very confused by a program that used strtok to parse command line arguments. 23:05:12 surely it won't segfault the kernel, linux is careful about that thing these days, but what does it show in cmdline? 23:05:22 ais523: Yes, that's what it does. I think the pointers aren't used for anything. 23:05:33 It's just nul-separated strings. 23:05:46 b_jonas: there's a prctl option to set where the memory backing *argv is; presumably, based on shachaf's results, that could be used to set the entire cmdlien 23:05:48 *cmdline 23:05:51 ah 23:05:52 I see 23:06:28 ais523: But argv isn't limited to 15 bytes. 23:07:06 shachaf: there are three separate program name things 23:07:15 I like how the POSIX-specified way of getting access to the environment (to pass to execve or whatever) is to write "extern char **environ;" in your program. 23:07:25 ais523: the third is the filename remembered for the mapping? 23:07:46 you have readlink(/proc/self/exe) (kernel's idea of executable image); orig_argv[0] (memory space in which the command line was passed); and the name of the program's main thread (settable via prctl) 23:08:06 the last is the one that's limited to 15 bytes when set via prctl; I'm not sure whether it can exceed 15 bytes if it's set by the kernel on program start 23:08:10 ais523: There's also the AT_EXECFN in auxv. 23:08:31 ah yes, although I'm not sure that the kernel can see that one if it's modified? 23:08:41 It would probably be hard for it to look at the pointers, since that vector is constructed by the libc; the initial process stack at _start is just the strings. 23:08:42 No, it's read-only I assume. 23:09:10 fizzie: is that only for auxv, or also for argv? 23:09:21 Also for (the contents of) argv. 23:09:26 ok 23:09:26 fizzie: No, the ABI gives programs an array of pointers at startup, I think. 23:09:35 shachaf: No, it doesn't. 23:09:39 I've heard contradictory statements about this, I give up now 23:09:47 At least the x86-64 ELF ABI. 23:09:48 I'll have libc or other libraries handle this 23:09:48 fizzie: How confident are you, on Linux amd64? 23:09:56 shachaf: Very, because I'm staring at the spec. 23:10:05 It's Figure 3.9: Initial process stack. 23:10:23 ... 23:10:26 No, I just can't read. 23:10:33 I can't eithert 23:10:38 Yes, there is an array of pointers there. 23:11:07 and it's terminated by a null pointer? 23:11:13 It's just that there's no pointer to the array of pointers, that's what I was misremembering. 23:11:38 they didn't want to get into three-star programming :-) 23:11:47 lol 23:12:02 so the libc startup routines create argc and argv, but not *argv or **argv? 23:12:11 I'm glad the spec agrees with my program. 23:12:21 that's one of my favourite articles on c2, it inspired the name of an esolang 23:12:22 shachaf: is your program x86_64? 23:12:27 Yes. 23:12:47 b_jonas: argc and argv are passed by the kernel at (%rsp) and 8(%rsp) 23:13:11 I guess I should say at %rsp and at %rsp + 8 23:13:11 hmm 23:13:13 I mean, not really? 23:13:29 At 8(%rsp) there is the first pointer, as in argv[0]. 23:14:01 wow, apparently the C2 wiki need to be able to make "cross-domain" (actually to a different subdomain of itself, but still) XHR requests to work correctly? 23:14:03 Yes, I meant that argv points to that address. 23:14:19 http://wiki.c2.com/?ThreeStarProgrammer for anyone interested, btw 23:16:34 yeah, I remember I looked at that because you link to it from the 3-star programmer description page on esowiki 23:16:49 I don't otherwise use the c2 wiki 23:16:51 https://zem.fi/tmp/f39.png is that table, just for the reference. 23:17:16 -!- Phantom_Hoover has quit (Quit: Leaving). 23:17:22 nowadays most people think only of Wikipedia when someone says "wiki" 23:17:28 but the older wikis are an important part of Internet history 23:18:03 ais523: I most certainly don't, but I mostly think on _newer_ wikis than wikipedia 23:18:20 s/on _/of _/ 23:18:30 // argc: 8 bytes 23:18:30 // argv: 8 bytes * (argc + 1), terminated with 0 pointer 23:18:30 // envv: 8 bytes * ?, terminated with 0 pointer 23:18:30 // auxv: 16 bytes * ?, terminated with AT_NULL (type 0) entry 23:18:42 one thing I dislike is when I'm in #esoteric or #nethack or the like and someone says "the wiki" to mean Wikipedia rather than Esolang or NetHackWiki respectively 23:19:20 shachaf: Arguably, auxv is (16*N + 8) bytes long, at least according to that table. 23:19:21 Only nonsense people say that, though. 23:19:31 on the subject of argv and friends being insane, I would like there to be a standard for command-line arguments and exit codes from programs, even if not everyone followed it 23:19:47 (The "Auxiliary vector entires..." are "2 eightbytes each", but the "Null auxiliary vector entry" is only "1 eightbyte".) 23:19:53 fizzie: Hmm, good point. 23:19:53 this would mean that programs could opt-in to declaring they followed the standard, making them easier to use in an automated way without needing to special-case your code for every program 23:20:11 But I think the next eight bytes are guaranteed to be mapped so you can treat it as a 16-byte entry. 23:20:16 BSD has a standard for return codes, that seems like a good starting point (and I typically try to follow it in my own code, but it's not very fine-grainedD) 23:20:25 But maybe not? 23:20:30 I'm not sure which BSD, probably all of them 23:20:41 It would be a funny joke to put that right on a page boundary. 23:20:43 It doesn't say in the table, but it might say it in the text. Certainly it's true in practice. 23:21:02 Is it always true in practice? 23:21:17 What if the environment and argv are empty? 23:21:32 ais523: perl uses the convention that if the program exist with an unhandled exception, the exit code is max(errno & 0xFF, 1) 23:21:38 Oh, there are always going to be other things in the information block. 23:21:52 b_jonas: ugh, I hate that convention 23:21:53 which is useful because the errno can give some useful information when the exception message is not too detailed 23:21:56 ais523: why? 23:22:14 because errno has more than 256 possible values and as such you're making every single element of the exit code space ambiguous (other than 0) 23:22:26 in particular, you have nowhere to return non-errno-based failures 23:22:27 for proper programs, I prefer if the errno is 1 for ordinary failure, 2 for wrong usage or exceptional failure 23:22:33 (I guess you could map them onto the closest errno value) 23:22:35 s/errno/exit code/ 23:23:03 in the BSD system, 64 is used for wrong usage, and is not used in any other circumstance 23:23:05 I like that sort of guarantee 23:23:11 ais523: no it doesn't. it's still under 256 on unix. 23:23:30 I mean, technically you can assign any int to errno, but the defined errno codes only go up to something between 125 and 256 23:23:38 I don't know the exact limit 23:23:40 hmm, it goes up to 133, but wraps at 127 I think 23:23:44 it's syscalls that go way past 256 23:23:54 ais523: hmm, does perl wrap it to 7 bits? let me test 23:24:16 no, wait (which is what returns the exit code) wraps it to 7 bits 23:24:25 ``` perl -e '$!=0x81;die'; echo $? 23:24:25 Died at -e line 1. \ 129 23:24:29 ^ doesn't wrap 23:24:32 ``` perl -e '$!=0x89;die'; echo $? 23:24:33 Died at -e line 1. \ 137 23:24:37 see, proper 8-bit clean 23:24:45 wow 23:24:47 I claim this for unix, I don't know what happens on windows 23:25:03 ``` perl -e 'kill $$, 9'; echo $? 23:25:04 0 23:25:09 ``` perl -e 'kill 9, $$'; echo $? 23:25:10 bash: line 1: 58 Killed perl -e 'kill 9, $$' \ 137 23:25:10 it's only the shell the maps signal k to 128+k in the shell parameter $? 23:25:13 sorry, PID 9 23:25:26 good thing HackEso protects me from that sort of error :-) 23:25:28 everything other than the shell support proper 8-bit exit codes, both on the exit side and the wait side 23:25:34 though sometimes the documentation claims otherwise 23:25:35 Man, I sure wish I could statically link all my Linux programs. 23:25:40 It would be way better. 23:26:00 even the ones that load dynamic libraries at runtime? 23:26:15 I mean, I wish the platform ABI didn't require you to load dynamic libraries at runtime. 23:26:16 I think there are some programs that even compile code from source while they're running, then dlopen the resulting executables 23:26:33 You could use dlopen and still statically link, probably. 23:26:36 ``` perl -e 'system "perl", "-e", "kill 9, $$"; printf "wait code %04X,\n", $?;' 23:26:37 Killed 23:26:39 If you had your own implementation of dlopen. 23:26:54 ``` perl -e 'system "perl", "-e", "kill 9, \$"; printf "wait code %04X,\n", $?;' 23:26:55 syntax error at -e line 1, at EOF \ Execution of -e aborted due to compilation errors. \ wait code FF00, 23:26:59 b_jonas: you need to escape the $$ 23:27:00 ``` perl -e 'system "perl", "-e", "kill 9, \$\$"; printf "wait code %04X,\n", $?;' 23:27:00 wait code 0009, 23:27:03 the inside perl killed the outside perl 23:27:18 ``` perl -e 'system "perl", "-e", "\$!=0x89; die"; printf "wait code %04X,\n", $?;' 23:27:19 Died at -e line 1. \ wait code 8900, 23:27:23 I think OpenGL is the biggest culprit? 23:27:33 -!- Sgeo_ has joined. 23:27:35 Unfortunately writing GPU code is just ridiculous on every platform. 23:27:37 upper byte of the wait code is the exit code, lower byte is the signal, and there are two or three other bits stowed in there 23:27:44 or maybe just one... uh 23:27:50 I think that if you're statically linking libc and friends, you probably want to use LTO to take advantage of that 23:28:08 the signal and the exit code are the ones you usually care about, unless you're ptracing something 23:28:22 anyway, we now have a problem, in that there are /two/ incompatible exit code standards now 23:28:24 which is worse than having one 23:28:27 or doing job control, which needs to care about stopped children 23:28:29 ais523: Do you like Penguins? 23:28:54 shachaf: penguins as in the animals, or is Penguins some piece of software or the like that I don't know about? 23:29:11 The chocolate biscuit. 23:29:34 ais523: there are also programs with custom exit codes defined. curl the command-line program actually documents what exit codes correspond to each kind of error. I even used that in a script that calls command-line curl and wants to retry for some errors but give up for others. 23:29:39 I don't eat chocolate nowadays, but back when I did I didn't /dislike/ Penguins but there were many sorts of chocolate I preferred, so I hardly ever ate them 23:29:51 Why don't you eat chocolate? 23:30:01 (don't eat = I avoid things that are primarily chocolate, I'm fine with chocolate traces) 23:30:09 Ah. 23:30:11 also I gave it up for a few months by accident/coincidence and just never started again 23:30:32 ais523: do you have an estoeric language, other than feather, that does something like time travel? 23:30:33 I don't think it's particularly good for my health and I was doing fine without it 23:30:39 Makes sense. 23:30:53 -!- Sgeo__ has quit (Ping timeout: 244 seconds). 23:31:17 b_jonas: I think the closest you get is nondeterminism in the NP sense 23:31:20 ais523: Anyway LTO seems like a different level of detail than what I was thinking about. 23:31:20 e.g. Nellephant, Precognition 23:31:28 ok 23:31:33 that might actually count 23:31:37 The point is that I want to make a Linux executable, in whatever language, which is self-contained. I might not use libc at all. 23:31:38 the word "precognition" refers to a time-travel effect even if the language Precognition can be implemented without it 23:31:45 So I just want to know what ABIs it needs to conform to. 23:32:16 shachaf: x86_64 (or whatever) kernel ABI would be the only relevant one if you have control over all the code in your executable 23:32:29 you can use whatever you want for an ABI internally, and with no libraries, the API isn't relevant 23:32:38 ais523: OpenGL or Vulkan is also relevant if you want to write code that uses the GPU. 23:32:39 shachaf: just because you don't use libc you can still use some other startup standard library that is distributed with the language. rust actually has one. C++ has one too but that one is pretty close to libc. 23:32:49 And that's a huge userspace mess. 23:32:58 shachaf: oh right, you also have the API for any userspace programs you want to communicate with 23:33:01 X, for example 23:33:13 from Web of Lies I learned that X mostly works over sockets 23:33:15 X is a protocol that you can implement yourself. 23:33:22 have fun with that 23:33:24 ...Except if you want accelerated rendering. 23:33:28 shachaf: which side? server or client? 23:33:39 kmc: I'd almost rather implement the X protocol myself than use Xlib. 23:33:45 But I can't! 23:33:52 I assume there's enough information to implement either yourself, but also strongly suspect that the client end of the connection is the easier to implement 23:33:54 You also can't really use xcb without Xlib. 23:34:05 b_jonas: The client, of course. 23:35:02 Now they're releasing Wayland which is in many ways even worse, and you're still limited to a single library. 23:35:03 sshd logically has to contain an implementation of the server end otherwise ssh -X wouldn't work (possibly unlike ssh -Y, -X needs some understanding of the commands passing overe it), but my guess is that it just delegates almost everything to the X server on the same machine 23:35:22 Except now the library is more complicated and tries to do more things for you that you don't want to do. 23:35:50 doesn't Wayland put much of the logic into the client exectuable? that would explain the need for a complex library 23:36:26 Well, for example the Wayland library requires you to do everything with a lot of callbacks instead of just giving you event data like Xlib. 23:36:31 Well, soon there won't be any X, right? 23:36:52 X will be supported pretty much forever for compatibility reasons 23:36:57 fizzie: dream on 23:36:59 ais523: "Once we [Fedora] are done with this [transitioning to Wayland] we expect X.org to go into hard maintenance mode fairly quickly. The reality is that X.org is basically maintained by us and thus once we stop paying attention to it there is unlikely to be any major new releases coming out --" 23:36:59 ais523: I'm not objecting to a complex library existing, but I do object to a complex library that you have to use. 23:37:10 there's likely already an X server written in Wayland to act as a compatibility buffer between the two 23:37:21 If you're going to be forced to use a library, there should be a minimal simple library that the optional complex library is built on top of. 23:37:27 They'll support XWayland "forever", sure. 23:38:01 I don't object to deprecating X but a bunch of things in Wayland seem either not ready or just bad. 23:38:29 one thing I discovered by accident is that SDL is capable of writing to framebuffers directly 23:38:43 and thus can run and display graphics without access to X, Wayland or friends 23:38:51 mplayer can do that too. 23:38:55 but this only works in fullscreen mode and there are a lot of graphicial artifacts 23:39:01 some of the things wayland does make sense, but it also runs on a lot of stupid marketing about things where it's not actually better than X, I think 23:39:03 It can also do accelerated video on MGA cards without X. 23:39:14 presumably SDL doesn't use the GPU at all in that configuration 23:39:26 (The G200/G400/G450/G550 ones.) 23:39:42 b_jonas: the main alleged argument for Wayland is that it doesn't try to serialise the drawing commands over a socket, allowing it to be simpler 23:39:58 I'm not sure I agree with this, but it's not an obviously ridiculous argument 23:40:20 ais523: yeah, but X doesn't do that either, at least with modern programs and local X server 23:40:20 ...well, if you can call it "accelerated video", AIUI the only accelerated bit is the colorspace conversion, the card provides a YUV overlay. 23:40:50 you can use X that way, but most programs these days don't, I believe 23:40:55 b_jonas: it uses a unix domain socket I think rather than a TCP socket 23:41:03 it's still /technically/ a socket but I doubt there's much loss at that point 23:41:13 yeah i saw someone who had a tiling WM esque setup using tmux windows and mplayer fbdev 23:41:14 ais523: not even that I think 23:41:23 now all you need is a web browser 23:41:32 well it uses a unix domain socket when running under web of lies, but maybe it detected that it couldn't talk to X the normal way? 23:41:41 I meean, there's still a socket connection for control info, but not for all the drawing command data 23:42:02 kmc: There was at least one browser that supported rendering mostly as text, then overdrawing bitmaps into the framebuffer at the right spots. 23:42:09 b_jonas: ah, how is that sent? shared memory? 23:42:10 links2? 23:43:19 Hmm, it at least has a framebuffer driver, but maybe that's in the more conventional style where it draws the text there as well. 23:43:23 ais523: I think X gives the programs some sort of access to the GPU, with GPU permissino control, maps some GPU memory thing into the visible window, and the programs use toolkit libraries that, below heavy levels of abstractions and in the common fast case, ask the GPU to render the actual graphics into that GPU memory 23:43:26 neat 23:43:45 b_jonas: oh, the Direct Rendering Manager 23:43:50 I have no idea how that thing works 23:44:04 (just that people keep getting annoyed at it because it has the same acronym as Digital Rights Management and both are tied up with graphics/video) 23:44:05 the X socket itself is still used to initiate everything, but I don't see a problem with at 23:44:42 I wrote my own UI library that renders directly with Xlib and OpenGL. 23:44:59 Well, it doesn't do very much UI right now. 23:45:31 is that the emscriptenized thing you were showing me? 23:45:41 It's related? 23:45:43 ais523: that's not an accident of course. if you want to allow the user to read e-books that they don't own but only have a license to read but don't want to allow them to copy their contents, then you can't just serialize the drawing commands for the e-book through a socket to X. 23:46:07 I have an SDL backend which more or less supports HTML, though it's not that great. 23:46:07 I would love it if there were a portable UI library where you gave it a description of what elements you wanted in your UI and it translated that to appropriate native (or native-looking/behaving) GUI/TUI for every platform 23:46:23 I'm surprised it hasn't been written yet, the main issue may be that a number of the backends would be moving targets 23:46:26 I might make a proper emscripten/web backend eventually rather than using SDL. 23:46:28 movies too, but for those you also need the efficiency. 23:46:28 -!- arseniiv has quit (Ping timeout: 272 seconds). 23:46:44 but more likely it hasn't been written because managers care about their program looking the same on every platform more than they care about their program fitting into the platform 23:46:45 ais523: there are such portable libraries, 23:47:03 but the problem is that what the graphics environments want to do are moving targets, so every such library gets obsolate 23:47:14 the closest I've seen is Java AWT, which has been deprecated for years and doesn't really work 23:47:23 ais523: I think Google' Flutter is a recent library with a goal like that. 23:47:30 and eventually they do get improved, but everyone keeps using the old version of gtk (2 rather than 3) just like how they're using the old version of python (2 rather than 3) so the new things can't be added 23:47:48 By the way, chet out https://makepad.github.io/makepad/ 23:47:57 That's written in Rust and renders all the text and everything with WebGL. 23:47:59 b_jonas: isn't that because Gnome 3 was a disaster? I really dislike the way its native programs behave 23:47:59 there are several such portable libraries, not only gtk, but also wx and tk which are both even more obsolate and, from a modern point of view, badly designed, than gtk 23:48:09 It looks surprisingly good for a web thing that does that. 23:48:11 no doubt it's possible to use GTK 3 without repeating the same bad decisions, but Gnome 3 will have rather tainted it 23:48:16 ais523: no, I think gnome 3 was a disaster for reasons other than that 23:48:31 I don't think that's connected to gnome 3 much 23:48:37 I have to use Gnome 3 at work, I hate it 23:48:43 Oh man, what's with the GTK3 native client-side decorations (ncsd) thing? 23:48:44 It's so bad. 23:48:58 Ubuntu disables it automatically if you're using a window manager other than GNOME. 23:49:12 it's bad enough that it forced me to Cinnamon on my laptop, because even though I dislike how bad Cinnamon's performance is it is at least possible to customize it into being usable 23:49:15 But the way they do it is with a .so that they add to LD_PRELOAD (!!!) 23:49:19 everything is bad 23:49:29 It breaks all the time. 23:49:36 $ echo $LD_PRELOAD 23:49:37 libgtk3-nocsd.so.0 23:49:39 oh wow 23:49:56 bad enough to be LD_PRELOADed out by the operating system :-D 23:49:56 `` echo $LD_PRELOAD 23:49:57 No output. 23:50:11 hmm, does this mean that you have terrible UI when you run programs with sudo? 23:50:18 ais523: They have access to the code! Don't they have patches for every package anyway? 23:50:41 shachaf: it could be meant for, e.g., locally compiled software, snaps, etc. 23:50:41 the hackenv environment is actually quite short 23:50:52 snapd is something that I would benefit from knowing how it works, I think 23:51:03 shachaf: I don't think Flutter is super-focused on making applications "look native" on the platforms it supports. Maybe for the sort of behavioral things, but I think you get the same widgets you pick on all platforms you target. 23:51:04 it may be an excellent idea or a terrible idea but I don't know enough about it to tell 23:51:14 I have the suspicion, though, that if I understood it I would have a strong opinion on it 23:51:24 fizzie: Oh, that was the impression I got but I never used it. 23:51:27 Since it does the rendering on its own, with Skia. 23:52:04 fizzie: I thought they rendered the widgets to look like each platform's widgets, though. 23:52:56 -!- ais523 has quit (Remote host closed the connection). 23:52:57 Hm, maybe. I know it's got two widget sets (Material Design, and iOS-y), so maybe the default could be to pick the "natural" one. 23:53:09 -!- ais523 has joined. 23:53:12 fizzie: Oh, maybe that's all I as thinking of. 23:53:41 fizzie: I remember reading something about how they have to chase a moving target to match iOS widget look. Maybe it's just that rather than a general cross-platform thing. 23:54:07 All I know about Flutter is what I've overheard, there's been a lot of talk about it lately. 23:54:34 (Where "lately" means "over the last year or so".) 23:54:35 I wish platforms weren't all about maximizing lock-in with their nonsense bad APIs. 23:54:43 This is what every single platform is about. 23:54:50 how does that even work these days, when modern programs don't even use any sort of standard widgets, not even from toolkits, but instead use their stupid custom reinvented checkboxes and calendar widgets where you can only enter a date by clicking on arrows with the mouse and text input boxes that try to interpret your raw keyboard presses directly? 23:58:44 shachaf: Text selected in makepad doesn't end up in the PRIMARY selection. :/ 23:59:24 in webpages, first the fashion was custom calendar widgets and custom dropdown boxes, then input boxes that's pre-filled with a description of what the input box should contain that it's supposed to delete when you start entering text but can't really do that because the javascript api doesn't do, 23:59:24 fizzie: Man, that's the one nitpick I pointed out to someone when I was telling them about this the other day. 23:59:36 fizzie: I wonder whether it's doable, by making a hidden buffer and selecting the text in it. 23:59:51 The rounded corners of the selection highlight are nice, though. 23:59:53 fizzie: Ctrl-C/Ctrl-V does work, which surprised me a bit. 2019-07-18: 00:00:02 fizzie: Did you press Alt? 00:00:16 No, but I did now. 00:00:21 then later it became fake textareas that try to handle keypresses, and now it's password fields where the javascript tries to decide whether to reveal the password or not, instead of leaving that to the browser. 00:00:31 I think the text looks kind of blurry here. 00:00:55 fizzie: Hmm, as far as I know it's using MSDF trickery which should allow for pretty sharp text. 00:01:37 Oops, I shouldn't use acronyms. I mean multichannel signed distance field representation of typefaces. 00:02:00 I don't know how I could get a really comparable view. It's not exactly fair to compare it to a terminal window using a bitmap font, when it comes to crispness. 00:02:57 I wonder whether you're using a high-DPI screen and it's rendering at a lower resolution and then the browser is scaling it up, or something. 00:03:00 and yes, custom checkboxes and option buttons too, although for those I can partially fault browsers, because there was no way to make the default check boxes and option buttons look reasonable on a dark background, and basically EVERY website forever have always overridden the background color, so it's something that browsers should have anticipated to allow 00:03:09 b_jonas: after review of the BSD exit code standard, I've concluded that it's better than returning errno in almost every way 00:03:25 ais523: what's this BSD exit code standard? can you point me to a description? 00:03:32 because most of the exit code reasons it envisages aren't tied to errno failures at all, and for those that are, it returns what it was doing at the time of the error rather than the immediate cause 00:03:36 http://www.manpagez.com/man/3/sysexits/ 00:03:47 thank you 00:04:19 even then, I find the BSD version is far from perfect, it's missing a lot of things that you'd want and doesn't differentiate well enough 00:04:48 but, e.g., exit(ENOENT) is not much useful working out what went wrong, you'd definitely prefer the sysexits code in that case 00:06:14 ais523: ok 00:06:26 well, there'll always be specific programs or future needs that can't be covered by any of these standars 00:06:27 shachaf: I don't know. Probably not, it's not a huge-DPI screen; I do xrandr --dpi 104 as a compromise since there are two screens of different density. Actually, if I turn the browser scaling up to 150% the text actually looks pretty sharp (what?), although overly big. At 100% less so. 00:06:36 b_jonas: right 00:06:48 say you're writing grep, what do you return if no matches were found? 00:07:03 and in some cases, instead of exit code handling, you want command-line flags or other config to tell the program to consider certain errors as successes 00:07:16 I think 1 should be added as an additional exit code with a similar meaning to "no" 00:07:32 fizzie: Hmm, I guess it wouldn't be shocking if this was an artifact of the MSDF rendering. 00:07:33 which is how most programs use it already 00:07:59 ais523: 1 if no matches, 2 if the input files aren't readable and you haven't ignored that with -s or something, 3 if the arguments are wrong or the regex has syntax errors 00:08:11 https://man.openbsd.org/grep#EXIT_STATUS 00:08:20 and yes, that's not a case of errno exits 00:08:33 grep doesn't consider failure to find an error, but exits with nonzero status anyway 00:08:35 the errno exist are useful only for quick and dirty scripts, they're not something you should use in serious programs 00:08:41 but for typical one-liner programs, they work 00:08:54 I guess we have a separate category of "failures" 00:09:05 nothing went /wrong/ but the request turned out to be impossible 00:09:34 ais523: yeah, that more or less agrees with what I said, 1 for normal false, 2 for actual error 00:09:39 2 or higher for actual error that is 00:09:48 because sometimes you want to distinguish different errors 00:10:05 hmm, does this mean we need a variant on false(1) that returns 69 rather than 1? 00:10:05 These days you'll probably also want the exit code equivalent of HTTP 451. 00:10:26 and yes, I do understand that that clashes with errno exit, because 1 is EPERM, which is a reasonably common errno 00:10:28 fizzie: 77 probably covers that in the sysexits system 00:10:30 although it's a bit more general 00:10:58 that said, I can't think of many executable programs that refuse to do something because it's illegal 00:11:07 the only example that comes to mind is Photoshop refusing to open images of money 00:11:26 At the office, there's a monitor in one corridor, it's showing a video that shows HTTP error codes as illustrated scenarios at a restaurant, or something along those lines, as far as I have managed to figure out based on three-ish glances of a second each. 00:11:48 ooh, also PDF readers that obey the "don't print this", etc., flags in the PDF file (which are just flags that can blatantly be ignored by a reader if it isn't programmed to respect them) 00:11:58 ais523: some programs didn't have rar/mp3/gif encoder compiled into them because of patent or similar legal reasons 00:12:07 does that count as "refusing" to do something? 00:12:11 fizzie: just the 4xx codes, or all of them? :-D 00:12:25 b_jonas: oh, that's a good point 00:12:29 ais523: also some websites refuse to let you register if you're younger than a certain age limit 00:12:38 the crypto export restrictions are another example of that 00:12:42 ais523: I've seen 404 not found, 300 multiple choices and one more I don't remember, which was probably a 4xx too. 00:12:46 ais523: were, luckily 00:13:03 of these, only the rar encoder limitation remain 00:13:08 this is totally the sort of thing that makes sense to have in a random corridor at Google :-D 00:13:17 The 404 not found was an empty table, for the 300 I didn't see the actual thing, just the "title card", and for the last one there were two people sitting around the table but I forget what they were doing. 00:13:35 b_jonas: the crypto restrictions are a real bother because it's hard to figure out what counts as crypto sometimes 00:13:36 oh yeah, the pdf readers! 00:13:48 and ebook readers and even browsers that refuse to save a video 00:13:53 Oh, I remember now! It was 418 I'm a teapot, and it wasn't two people, it was just one person, but there was a teapot on the table. 00:14:10 418 isn't the most useful status code to know :-D 00:14:22 I don't know how the scene continued, I've only been in a hurry to a meeting, should probably stop and actually watch them. 00:14:24 ais523: yes, but didn't the legal situation in the US actually change there in a way that made most of that crypto problem disappear? 00:14:33 I assume 204 would be people ordering something, being brought an empty plate, and they left happy because it's exactly what they ordered 00:14:46 b_jonas: it's less insane than it was but the rules still exist 00:15:03 it's now only restricted for countries on the naughty list 00:15:13 and aren't specific to the US either, basically the old situation was insane rules in the US and slightly less insane rules elsewhere, the current situation is for the slightly less insane rules to be everywhere 00:15:18 ais523: but are those rules that actually distinguish strong crypto software from software in general? 00:15:43 I know there are still embargoes to export software to certain countries, such as North Korea or Cuba, but I don't think crypto vs non-crypto matters there 00:15:45 b_jonas: AFAICT the rules are mostly based on the end user's use of the software 00:16:09 so they wouldn't ban software with a large amount of dead code that implemented a strong crypto algorithm as long as users weren't meant to discover it 00:16:14 ais523: the end users's use of the software? how the heck am I supposed to know that? 00:16:15 I'm not sure on this, though, not being a lawyer 00:16:23 b_jonas: I called them insane for a reason :-P 00:16:29 ah ok 00:16:32 makes sense 00:16:44 I think they intend to make things like NetHack legal even if they use strong CSPRNGs 00:17:16 ais523: do they still have rules where if you print the source code on paper, send it in mail, and scan and OCR it in Europe, it's no longer illega? 00:17:29 I don't think so? besides, these rules apply to Europe too 00:17:42 if they /only/ applied in the US I wouldn't care, I don't plan to go there 00:18:06 ais523: you don't plan to go there, but you may want to use software that someone in the US writes, and you want them to be able to send the software to you 00:18:28 I didn't know about https://www.google.com/teapot 00:18:44 (It just returns a 418 with an appropriate body.) 00:19:09 b_jonas: I think you're missing some of my inherent lawfulness; I am worried about /accidentally/ breaking crypto export laws in some piece of code I write 00:19:51 ais523: but do you care about other people breaking the law when you ask them to send you software, even if you aren't breaking the law for receiving the software? 00:20:25 fwiw, I believe that the current US laws on crypto require you to send a copy of any crypto code to a particular email address before you're allowed to export it 00:20:43 ais523: hehe, that also sounds insane 00:20:53 if it's closed-source you need to get permission before selling it, if it's open-source you don't need the permission before distributing it but still need to send a reference to it to the official address 00:22:14 b_jonas: I don't like tricking people into breaking the law, but if they don't care about the law in question and are willing to risk any consequences, and I also don't personally consider the law to be useful/good, I find it hard to get worked up about their law breach happening to work to my benefit 00:22:42 ais523: ok 00:23:41 -!- MDead_ has quit (Quit: Going offline, see ya! (www.adiirc.com)). 00:24:17 -!- MDead_ has joined. 00:24:17 hmm, after thinking about this policy, it also probably needs adjusting for the capability for consent of the person in question 00:24:41 -!- MDead_ has quit (Remote host closed the connection). 00:24:42 does Canada have such crypto-specific export restrictions too? 00:25:02 -!- MDude has joined. 00:25:45 oh wow, the Wasenaar Arrangement has its own website: https://www.wassenaar.org 00:27:45 ais523: that's written in management speak or politician speak or some such language. I don't understand a word. 00:27:52 is there a language switcher somewhere? 00:28:20 I don't know 00:28:43 but if there is, the best you're likely to get is Hungarian politician-speak rather than English normal-person-speak 00:29:04 -!- xkapastel has quit (Quit: Connection closed for inactivity). 00:31:04 nope: https://www.wassenaar.org/about-us/#faq says "The working language of the Wassenaar Arrangement is English and no official translations in other languages are provided by the Secretariat." 00:31:13 but it's only what they call English 00:31:39 hmm, page 92 of the Wassenaar Agreement "List of Dual-Use Goods and Technologies and Munitions List", the introduction to "Information Security", says "Not used since 2015" 00:31:44 though with the sitemap I can get to other pages that are slightly more readable than the front page 00:31:52 and the last time I checked the laws on this was from a source written before 2015 00:32:04 oh good 00:32:07 this is potentially really good news, but I'm not sure exactly what it applies to 00:33:33 for my vacation in may, I read some of the airplane luggage regulations, which tell things like that I'm not allowed to put billiard clubs or throwing stars into my hand luggage 00:33:53 they do also tell more useful information, like about carrying batteries 00:35:34 in particular, they basically say that all the lithium batteries must be either inside a device that uses it (so that the chasis of the device protects it mechanically) or in the hand baggage and its terminals covered by isolation tape (that's not the exact wording they used, but the sense) 00:36:15 which sounds quite reasonable actually, provided you buy into the constraint that they really want to allow people to watch movies on their notebooks on the airplane 00:36:36 the announcements on the plane also changed: 00:36:39 what's a billiard club? the only English meaning I can think of for the noun phrase would be a club of people (or building housing such a club) that play billiards, either would be hard to fit into hand luggage 00:37:15 is this a mistranslation from Hungarian, or something I was formerly unaware of? 00:38:25 they talk a lot more about batteries, like warn people that you mustn't charge your lithium batteries during takeoff and landing, whereas they no longer care much about radio interference that your devices use (whether mobile phone protocols, wifi, bluetooth, etc; basically they recognized that with today's electronics it's no longer a practical problem, people won't use vintage equipment on the 00:38:31 airplane, but they still reserve the right to ask you to turn off your devices in exceptional cases) 00:38:55 ais523: the long stick that a player uses to hit the balls in the billiard pool game 00:39:36 typically longer than a meter and rigid and a single peace, so it's practically impossible to get it into your hand luggage 00:39:41 oh, that's called a "cue" in English 00:39:56 a/peace/piece/ 00:39:58 normally "pool cue" or "snooker cue" because nobody plays billiards nowadays, but I guess "billiard cue" would be understandable 00:40:16 they forbid it for any of the related games 00:41:05 pool is probably more commonly played in both the US and UK because it's a common pub game, but snooker is more /popular/ in the UK, e.g. major snooker tournaments are televised on major channels and lots of people watch them 00:41:07 you can carry nail clippers though 00:41:30 ais523: yeah, pool is the sport people play, snooker is the one they watch in television 00:43:03 like how in the weekend, I watched the Red Bull Air Race, where the main event is a airplane aerobatics obstacle course speed race, which is a sport that very few people practice, but much more want to look at it, so there was a crowd of spectators 00:43:22 they even had a helicopter aerobatics demonstration as a side event, which is even crazier in this respect 00:45:35 and as for luggage rules, on the public transport buses here, I often see (on particular parts of the city) people carrying adult hockey or fencing equipment or large musical instruments, which are technically against the rules of the transport company, but nobody actually cares about those particular rules or enforces them, so they didn't bother to update the rules to match the reality 00:46:55 the rules also say that you mustn't eat on the buses, and that you can carry dogs either inside a box or (on a leash and with a muzzle) and only one unboxed dog per vehicle. these too are rules that people often break and they're basically never enforced. 00:48:02 I think it's actually one dog per carriage for trams and metros 00:48:04 on a few occasions I've seen stray (or at least no-accompanying-owner) dogs use the UK public transport on their own 00:48:38 nobody attempts to charge them or check their tickets, so they get a discount compared to humans 00:48:42 ais523: I haven't seen those on buses here, though I have seen dogs that follow an owner but don't much obey them 00:49:13 ais523: does anyone attempt to get them off the vehicles? that sometimes happens with homeless people here 00:49:21 I haven't seen it often enough to know whether the dogs had any idea what they were doing, but have seen anecdotes from other people that some dogs do the same journey repeatedly and thus have worked out some method to know what stop they want 00:49:36 b_jonas: not really, I don't think 00:49:42 I've never seen it happen with dogs, because the kind of people who carry those big out of control dogs are intimidating and the controllers wouldn't want to deal with them 00:50:02 in London, if someone starts begging on an Underground train, they change the electronic signs to tell people not to give them monry, that's one method of trying to get them off the vehicle 00:50:12 *money 00:51:05 ais523: that doesn't sound surprising, there are usually lots of clues that let you figure out where to get off if you have travelled a lot in the same location, 00:51:23 except sometimes in underground tunnels and a few confusing places 00:52:13 which is why I can usually get off at the right place even if I'm reading a book, unless the book is VERY interesting, or if it's cold and the windows are completely opaque from dew, and blind people can get off fine too 00:52:51 hmm, page 92 of the Wassenaar Agreement "List of Dual-Use Goods and Technologies and Munitions List", the introduction to "Information Security", says "Not used since 2015" ← ugh, apparently it's just the specific line in question that's not used since 2015, not the entire section 00:52:52 of course it's getting easier now that buses have gps-based trackers connected to the automatic voice announcement that *usually* get the stations right without the driver having to intervene 00:53:06 like, they deleted the line entirely and that's a way of saying "this line intentionally left blank" to not throw off the numbering 00:53:23 ais523: ah 00:53:48 changing the sign when people are begging => wow, I've never seen that 00:55:21 there's a person who's regularly in the Kálvin tér metro station, usually either in the M3 platform or in the tunnel between the M3 or M4 platforms (he can't be on the M4 platform itself because that always has guards on it because the M4 is driverless) 00:55:34 he's making terribly annoying noises with a fiddle 00:55:38 I can't call it music 00:55:49 I wish someone got him out of there or silenced him, but no 00:56:12 I don't think they really do that super-consistently, at least on the stretch I'm at. 00:56:19 and no, he doesn't seem to be asking for money to stop making the noises, because I do often see people giving him money and he doesn't stop the noise when he gets them 00:56:38 They do have a recorded announcement, though. "There are beggars and buskers operating on this train. Please do not encourage them by giving them money." 00:57:08 fizzie: well sure, because the people who beg know that the transport company doesn't want them to be their, so they're stealthy, they don't attract attention of the driver or controllers 00:57:39 A lot of the times the people who do the "play one folk song during the tmie between the stations" thing go from car to car using the "danger, do not use these doors" doors. 00:57:46 Which I presume is for avoiding attention. 00:58:04 and yes, begging for money or selling stuff without explicit permission is also explicitly against the transport company rules, even in the metro platforms, and that is sometimes enforced 00:58:25 but it doesn't seem to be enforced in the case of this particular man in Kálvin tér 00:58:39 TfL has a registered busker program, though not on the trains, just on some specifically designated locations at stations. 00:58:42 in the London Underground busking is allowed at specific locations in *stations*, presumably as long as you're good enough 00:58:47 they're circles marked on the ground 00:58:51 oh, I see fizzie said that first 00:59:01 ais523: They do auditions and all. 00:59:06 https://tfl.gov.uk/corporate/about-tfl/culture-and-heritage/busking 00:59:11 (As of recently.) 00:59:26 I don't think that happens here in areas that belong to the platform company, 00:59:50 -!- atslash has quit (Quit: This computer has gone to sleep). 01:00:09 but performers are allowed in some public areas like streets or underground passages that don't technically belong to the transport company but are still hubs that are very hard to avoid for many people going that way 01:00:21 I think even they're not allowed to be very distracting, but they are 01:01:07 in at least one station in Birmingham there's a permanently installed piano, with instructions only to play it if you're sufficiently good at the piano 01:01:17 one example is a certain group of people who do music with siging and shouting with some christian evangelism theme in the evenings in a part of the Keleti pu underground passage 01:01:23 it turned out to be a pretty simple and cheap (in a relative scale) way to give a nice variety of music for the station for free 01:01:28 There's been a lot written about the privatization of public space in London recently, a lot of the places with the new developments have "public" squares and the like which aren't actually public land, it's just a deal they've done to get planning permission to allow the public some level of access. 01:01:54 (I've never seen anyone ask for money for playing it, and it tends to get played by random members of the pubilc waiting for a train) 01:01:56 But the landowners still reserve the right to move "undesirable" elements out, and of course they don't list their own rules and regulations anywhere. 01:02:20 I think the Pancras Square where our office is is one of those private-public places. 01:02:44 there was also an american style country music singer, with the stereotypically appropriate hat, in the Móricz underpass. I found that odd. 01:04:19 but I guess it makes some amount of sense: if we can have jazz and blues bands, why not country music singers? 01:05:03 TfL also has a program called "Platform 88" where they've put some public pianos at stations, and anyone can sit down and play. 01:05:22 fizzie: oh, we've had some public pianos on streets. not in stations or platforms. 01:05:22 Usually the people that do tend to know how to play. But not always. 01:05:42 fizzie: well no, those pianos do attract children too to some amount 01:05:46 which is understandable 01:06:33 I think we should also have children-centric buttons in public places and vehicles, where those buttons do visibly control something, such as change the pattern of some signal lights, but don't control anything actually important 01:06:49 There's one in the King's Cross underground station ticket hall area, and another at the railway station, somewhere in the general vicinity of platform 9¾. 01:07:47 and the adults should have a conspiracy where they mostly pretend in front of the children that the buttons do something important and that the children shouldn't press the button unless the adult asks them, but in reality they also direct the children to press those buttons and enjoy doing something forbidden and pressing buttons, 01:07:51 At Granary Square, you used to be able to play Snake on the fountains with a phone app. Not sure if it's still operational. 01:07:57 rather than pressing the actually important buttons 01:08:07 (The fountain is essentially a largeish grid.) 01:08:17 this should also happen in museum exhibitions and other places that children may visit 01:08:48 fizzie: nice 01:10:43 I think I've also seen a public space piano in the netherlands on my vacation 01:11:31 but there's one here too near Ferenciek, and I think there are a few more somewhere elce in the center 01:11:33 I keep waiting for somebody to play video game music on the piano, but it never happens. 01:11:42 OK, so almost anything crypto-related that's easily user-modifiable can't be exported from either the US or the UK, unless it uses only weak crypto (56 bytes symmetric, 512 bytes when using old-fashioned common asymmetric problems), or it falls under the General Software Note 01:12:01 I need to find another source for the General Software Note, though, because the version I'm currently using is missing indentation that makes a huge difference to the associativity of the requirements in it 01:12:08 Back in Finland there was a busker playing the Monkey Island theme tune in the Leppävaara train station underpass, on an unlikely instrument, I forget exactly which. 01:12:37 A melodica, possibly. 01:12:52 ais523: hmm 01:13:07 got it, this is a fairly favourable associativity 01:14:03 is silence technically video game music? 01:14:25 I guess? There's games with no music, or sound. 01:14:30 Not quite in the spirit of the thing though. 01:14:36 sure 01:15:02 -!- sprocklem has quit (Ping timeout: 245 seconds). 01:15:16 any software is legal, at least based on crypto-export-related requirements, if it's either sold unrestricted to all-comers (i.e. anyone can just buy it without being vetted, etc.) and "Designed for installation by the user without further substantial support by the supplier"; or else "in the public domain" 01:15:39 but the "in the public domain" here is using a weird restriction that allows it to be copyrighted as long as there are no restrictions on its further dissemination 01:15:56 so I guess CC0 is OK, and BSD and GPL are in a grey area 01:16:05 ais523: hmm, that's interesting 01:16:12 *using a weird definition 01:17:54 that sounds like an excuse that the companies that sell industry software can use about their abysmal lack of designing anything with security in mind, since they sell software that doesn't match those conditions 01:18:44 ais523: does this apply if you export software from th UK to within the EU? 01:19:01 I don't think so 01:19:06 hmm 01:19:20 maybe they can't use that excuse then 01:19:20 or well, I think there may be more lenience, up to automatic export-is-allowed, for within-EU exports 01:19:35 or at least it's harder 01:20:12 they have to argue that they can't make sure that customers don't use the EU-only secure version of their software in asia 01:20:31 I guess that's still a reasonable excuse 01:20:49 I mean as much as the whole thing is 01:21:16 it's just an excuse, their design does actually suck 01:21:30 so it looks like within-EU follows different rules which are much more liberal without being completely free; for exports that would otherwise be controlled, you can get a license valid for export to Australia, Canada, Japan, New Zealand, Norway, Switzerland, and the US fairly eaily; for other countries you need specific authorisation 01:21:56 I see 01:22:43 wekk we do reexport the industry software to korea, so that doesn't sound enough 01:22:58 (as well as to EU countries) 01:23:32 s/wekk/well/ 01:26:17 actually, one potential issue I noticed was that there's an explicit list of countries where you can't apply for the specific authorisation, it includes all the EU countries listed individually (presumably because you already have a blanket authorisation) 01:26:57 so when Brexit hits, if they forget to adjust the law and the EU blanket authorisation stops applying to the UK, then the rest of the EU will end up in the same status as Iran and North Korea (i.e. you can't even attempt to apply for a license) 01:27:50 ais523: sure, that sort of thing always happens whenever some autonomous region in the balkan or the caucasus gradually converts into a country, they get into country lists too late 01:28:47 you're reminding me of the running joke that Berwick-upon-Tweed was at war with Russia until 1966 01:28:56 (when they explicitly signed a peace treaty, just in case) 01:29:11 admittedly those are generally places not recommended for tourists, so if an insurance company doesn't add it to the list of countries with Europe rate, it could be a feature 01:30:01 the issue being that it was in disputed territory between England and Scotland and thus occasionally listed explicitly when announcements were made, and the announcement that started the Crimean War did so but the announcement that ended it didn't 01:30:30 heh 01:30:47 (there are several reasons why this can't possibly be true, but it made for a fun publicity stunt) 01:30:59 yes, those happen too 01:31:37 things that definitely aren't a country on their own, but are disupted between countries, and the people far away don't want to make it seem like they politically support any country's claim on the area 01:31:57 Ancient Rome and Ancient Carthage never signed a peace treaty after the Romans seized and completely destroyed the city of Carthage in 146 BC and enslaved its entire surviving population, leaving no entity with which to make peace. In 1985 the mayors of modern Rome and Carthage municipality signed a peace treaty and accompanying pact of friendship. 01:32:12 …that's a really interesting legal problem 01:32:16 I think there's several of those between Israel and Palestine, possibly nested 01:34:10 ais523: so basically Carthage was disbanded without a legal successor? 01:34:19 b_jonas: right, it was completely destroyed by the Romans 01:34:42 so you have this permanent war of the Roman Empire against, effectively, a null set 01:34:54 yeah 01:35:04 presumably the establishment of a new city in the location of Carthage would be a separate nation altogether, unable to do anything about the previous war 01:35:13 (and of course, modern-day Rome is not part of the Roman Empire either) 01:36:01 yeah it can happen that there are multiple different groups of people who claim that they're the worthy successors, such as basically everyone in europe for the roman empire, and you can't regard any of them as the successor without insulting all the others 01:36:30 that could happen with a country if they were in war with Atlantis or Numenor when it got destroyed 01:36:53 it gets particularly ugly with churches 01:36:58 I thought it was fairly well established that the Roman Empire split into two parts, the western part was entirely overrun and ceased to exist as an entity, the eastern part held out longer but was eventually conquered by the Ottomans 01:37:15 (but the Eastern Roman Empire didn't control Rome) 01:37:25 ais523: yes, but who is the worthy successor of the western empire? 01:37:31 There's that one place on a border which is anti-disputed in the sense that neither side wants it. 01:37:33 it also split to two, then to three, then to much more 01:37:38 There's two potential borders, and there's a bigger and better chunk of land that's in actual dispute, but the way the borders go, if you claim that good bit you can't claim the other bit. 01:37:43 https://en.wikipedia.org/wiki/Bir_Tawil 01:37:50 and several parts in europe claimed to be the one true roman emperor 01:37:54 b_jonas: I don't think "successor" makes sense when it comes to countries 01:38:00 especially if the boundaries are different 01:38:08 ais523: how about for thrones? 01:38:27 (and even more claimed to be liege to one of those successors) 01:40:13 the laws of succession for the Roman Emperor weren't really well-defined, I don't think 01:40:16 given how often they got assassinated 01:40:30 ais523: oh, as for that, there's country top level domain names. .cs and .yu were both eventually deleted some time after the country it was assigned to got split up. 01:40:40 generally speaking the job went to anyone who was capable of convincing sufficiently many important people that they held or should hold it 01:41:05 -!- sprocklem has joined. 01:41:05 so from a philosophical sense, either nobody is the rightful Roman Emperor, or everyone is 01:41:09 deleting a country top level domain that is in use seems totally stupid to me from a technical standpoint 01:41:15 because there can be lots of references to it 01:41:46 and this actually suggest that if you register domains, it's usually better to register them under a generic domain, because that won't go away for stupid political reasons 01:41:51 If you're currently on terra nullius, do you get a NullPointerException from Locale.getDefault().toString()? 01:42:12 obviously for some country-level domains like .hu this is obvious anyway because the country top level domain has stupid registration rules anyway 01:42:16 but for some it might not be 01:42:48 though of course you can register domains under country top level domains to redirect to your generic domain, for findability 01:43:01 like how google and amazon buy google.* and amazon.* for every top level domain name 01:43:02 some domain registrars have warnings when buying .tv domains because global warming is threatening the entire territory of Tuvalu 01:43:21 that could cause major disruption because it's one of the most popular ccTLDs 01:43:26 ais523: "buying"? haven't they been giving them away for free? ah no wait, that was .tk domains. 01:43:33 ais523: true 01:43:49 really, the situation with TLDs nowadays is complete chaos 01:44:26 well sure, being roman emperor didn't even start out to be hereditary, even in pretense. that came only later. 01:44:41 ais523: yeah. 01:45:10 and what makes it worse is that all the shortest top level domain names are country ones 01:45:33 emperor wasn't originally even an official position, really, just a de facto description for someone who held all the power 01:45:43 yeah 01:46:08 now the Roman Empire has no power, thus everyone individually holds all of it, thus everyone is the Roman Emperor 01:46:24 yet the position and legitimacy recursively derived from it (by liege and successor relations) later became pretty important 01:46:59 Communications in Tuvalu rely on satellite dishes for telephone and internet access. The available bandwidth is only 512 kbit/s uplink, and 1.5 Mbit/s downlink. ← that's a good argument for them selling their domain name, it's not like they could host much locally with that sort of Internet connection 01:48:12 ais523: the roman emperor itself doesn't have power, but being european royalty does have some power, in the sense that royalty can marry other royalty much easier without getting excluded from their dynasty, and I have the impression that being royalty is a claim that's basically derived from being a worthy successor of the roman emperor or a close liege of one 01:48:48 ais523: but they don't have to host the domain name servers in the island, do they? they can buy a server abroad 01:49:04 multiple servers obviously, for redundancy 01:49:56 Australia used to be infamous of having really bad internet connectivity to the largest component of Earth, but I don't know if that's still true 01:50:59 right, it'd make sense for them to host their domains abroad using their own TLD 01:51:31 and I hope that eventually people get to live outside earth on other planets, in which case we'll have a problem of huge latency in the connections, which won't be fixed even when throughput is increased to good enough, and that will require to improve a lot of internet protocols and infrastructure in difficult ways but often in directions that I like 01:52:44 the good part is that webpages won't be able to use all that stupid interactive javascript that tries to phone the server home whenever you scroll to the next page; 01:53:06 the bad part is that it needs a lot of caching on separate planets, which is hard to combine with effective end-to-end cryptography 01:53:39 also we'll need an incompatible change to the semantics of IRC that allows non-tree topologies 01:53:43 even without separate planets this is still a useful infrastructure to think of, for use with things like IPoAC 01:54:25 ais523: technically it can matter even for the moon, but I don't think we'll have people live there before they live on other planets 01:54:25 I don't think IRC would be a good communication medium for a situation where no realtime communication was possible, something like a mailing list would work better 01:54:51 ais523: I think something close to IRC but without the tree requirement could work 01:54:59 the Moon is much easier to reach than Mars is and doesn't seem that much harder to inhabit? 01:55:16 so I'd expect it to be the first natural extraterrestrial body to be inhabited 01:55:25 (the International Space Station is inhabited and extraterrestrial, but not natural) 01:55:35 the relay part makes sense, because it allows you to transport each message only once between planets as long as there's a server on each planet, even if multiple people on the planet are going to read the message, and you might not even be able to tell who'll read it when it's sent 01:55:49 you're basically describing Usenet at this point 01:55:58 which, to be honest, is probably a pretty good technology for something like this 01:56:15 ais523: it does seem harder to inhabit for longer term. it might be easier for just a very few people to spend a few months in a research station. 01:56:16 back when it was invented, latencies were often very large 01:57:23 ais523: sure, I'm just more familiar with IRC than usenet. I heared that people used email before the internet and continuous connectivity, with servers only occasionally calling each other, and I've no clue how that could possibly have worked, it sounds like throwing a message to the sea in a bottle and hoping it arrives 01:57:50 bang paths 01:57:53 though I admit I also don't understand how routing on the current internet could possibly work, it also sounds about as impossible to me, yet by experience it works most of the time. 01:58:07 email addresses weren't a single, fixed thing at the time 01:58:16 instead of a domain name, you wrote a list of servers to relay the message via 01:58:39 (and the names were much simpler, often a few letters, because they were local hostname lookups on the server before rather than being global domain names) 01:59:06 many published email addresses from the time started vax! because "vax" was a fairly famous server that most people knew how to reach 01:59:49 nowadays, of course, servers that relay any email they see are incredibly rare because they tend to get exploited by spammers, but back then it was very common to relay any email you came across in order to get it closer to its destination, few people were abusing it 01:59:57 on the plus side, this has left the good heritage to email, where even though now email practically always goes in at most three hops, from client to sender server to receiving server to client, but it still works if the clients are only occasionally connected, and the servers are only connected most of the time (so that there is often a time when both are connected at the same time) 02:01:26 ais523: right, so now the "direct" tcp connection between the two servers all happens magically behind the scenes by routing, which I still don't understand 02:01:54 anyway, good night 02:01:56 -!- b_jonas has quit (Quit: leaving). 02:06:50 -!- ais523 has quit (Quit: quit). 02:11:12 So I'm playing with PCjs some more. Turns out that getting the chipset all set up correctly without the BIOS is a big challenge. 02:11:38 So, the problem is pretty much the perennial problem: I'm not getting any interrupts from the interrupt controller. 02:13:34 I've determined that this is because the interrupt controller's interrupt request register contains 6, indicating that it's aware of interrupt requests numbered 1 and 2; and because of this, any *new* interrupt requests numbered 1 and 2 are being ignored. 02:15:51 In real systems, what happens is that since the interrupt controller has interrupt requests, it signals an interrupt to the CPU; then the CPU signals an acknowledgement to the interrupt controller; then this causes the interrupt controller to clear the corresponding bit in the interrupt request register. 02:21:38 And it looks like the way that the emulator simulates this is, the interrupt controller calls the updateINTR method on the CPU, which sets the CPU's INTR flag. But the interrupt controller isn't doing that since it's not receiving any *new* interrupt requests. 02:27:12 Oh shit. 02:28:09 So, here's what I knew a minute ago. In order to acknowledge an interrupt, you have to write a 20h to port 20h. 02:28:19 The assembly I was using for that was: 02:28:20 mov ah, 20; out 20, al; 02:28:39 In words: "Load the byte 20h into register AH, then output the contents of register AL to port 20h." 02:28:44 Anyone see the problem?... 02:51:49 I was accidentally loading the immediate byte into the wrong register. 02:51:59 All righty, all is fixed now. 03:31:56 All right, sweet, I've successfully made something that takes keyboard input and writes corresponding output to the screen. 03:32:33 Now for the big challenge: making it so that the characters typed *are* the characters displayed on the screen rather than merely having some vague relationship. 03:40:37 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64537&oldid=64530 * A * (-4164) /* Char language */ Now that Char has a separate page, I will add my recent ideas here. 03:48:50 [[User talk:A]] https://esolangs.org/w/index.php?diff=64538&oldid=64537 * A * (+889) /* Hey stack! */ Work in progress. +Example 03:51:50 Also... make it so that stuff shows up on the screen immediately instead of not showing up until you hit the "Halt" button on the emulator. 03:51:57 I feel like I had that problem before and I figured out how to fix it. 03:52:02 I have no idea how I fixed it. 03:53:17 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64539&oldid=64538 * A * (+360) /* Hey stack! */ + a lot of syntactic sugar 03:54:24 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64540&oldid=64539 * A * (+126) /* Hey stack! */ 04:00:06 -!- FreeFull has quit. 04:01:16 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64541&oldid=64540 * A * (+426) /* Hey stack! */ MTC 04:05:40 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64542&oldid=64541 * A * (+57) /* Description of Conway's Cellular Automaton in Hey stack! */ 04:06:21 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64543&oldid=64542 * A * (+65) /* Hey stack! */ 04:09:29 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64544&oldid=64543 * A * (-105) /* Hey stack! */ 04:10:09 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64545&oldid=64544 * A * (+36) /* Example: Greeting an array-based stack(simply an array+cursor) with length 5 with a finite length before you use it */ 04:17:17 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64546&oldid=64545 * A * (+66) /* Hey stack! */ 04:21:38 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64547&oldid=64546 * A * (+261) /* Hey stack! */ 04:27:30 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64548&oldid=64547 * A * (+148) /* Quick reference of a nice little golfing language */ 04:30:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64549&oldid=64548 * A * (+147) /* DO()/UNTIL()/END() */ 04:47:36 -!- sprocklem has quit (Ping timeout: 244 seconds). 05:09:45 -!- sprocklem has joined. 05:51:36 -!- Sgeo__ has joined. 05:55:16 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 05:58:43 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64550&oldid=64549 * A * (-2015) /* Quick reference of a nice little golfing language */ Terrible Solutions for Code Golf problems 06:06:42 -!- atslash has joined. 06:59:42 [[User talk:A]] https://esolangs.org/w/index.php?diff=64551&oldid=64550 * A * (+129) /* Quick reference of a nice little golfing language */ 07:20:59 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 07:23:48 -!- Lord_of_Life has joined. 07:38:14 -!- cpressey has joined. 07:38:35 -!- xkapastel has joined. 07:49:57 Good morning. 07:50:46 `welcome cpressey 07:50:47 cpressey: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 07:51:51 Yes, I'm familiar with this channel, thanks though. 07:52:36 Are you familiar with the tradition of misusing `welcome? 07:53:08 (It's not all that great a tradition now that I think of it.) 07:55:14 No, I'm not familiar with that tradition. Perhaps a few words about it should be added to the `welcome message, to help introduce it to newcomers. 07:55:49 Good idea. 07:56:22 `? cpressey 07:56:23 cpressey invented the esolang, the pipe cleaner and the electrical mousse. 07:56:39 Second only to Taneb in inventiveness. 08:00:46 Not all that inventive anymore. Actually, I dunno. It's mostly that I don't have as much time as I'd like, to actually build out the ideas I have. 08:03:10 I bring good news, though: apparently it's recently been established that, if P != NP, then all instances of CSP are either in P, or are NP-complete. 08:03:45 ( https://mathoverflow.net/a/322335 ) 08:07:11 -!- b_jonas has joined. 08:07:26 `? ci 08:07:27 The CIs are a secret society led by David Morgan-Mar, bent on conquering the world from Sydney with webcomics and unsolvable puzzles. They invented Taneb. 08:07:31 ^ this one is no longer true 08:08:00 They're no longer secret? 08:08:16 no, they are no longer bent to use puzzles: http://www.irregularwebcomic.net/draakslair/viewtopic.php?p=173108#173108 08:08:19 CIs? 08:09:13 ``` perl -pi -e 's/ and unsolvable puzzles//; warn$_' wisdom/ci # http://www.irregularwebcomic.net/draakslair/viewtopic.php?p=173108#173108 08:09:15 The CIs are a secret society led by David Morgan-Mar, bent on conquering the world from Sydney with webcomics. They invented Taneb. 08:10:30 cpressey: fancy 08:15:29 that does indeed sound fancy 08:15:35 -!- AnotherTest has joined. 08:18:34 -!- b_jonas has quit (Quit: leaving). 08:21:46 -!- tromp has quit (Ping timeout: 276 seconds). 08:26:07 -!- rodgort has quit (Quit: Leaving). 08:27:34 -!- Sgeo_ has joined. 08:29:52 i,i this is also true if P = NP 08:30:11 -!- tromp has joined. 08:30:21 -!- rodgort has joined. 08:30:58 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 08:44:58 shachaf: I thought that when I read it too but now I'm not so sure. The proof relies on the assumption that P!=NP (as does Ladner's theorem that NPI exists at all). 08:46:11 i.e., maybe P=NP but there are instances of CSP that are not even in NP. 08:46:12 I think it's false if P = NP and there's a CSP not in P or NP 08:46:17 (snap) 08:46:52 cpressey: Hmm, probably I don't actually know what CSP is then. 08:46:53 :) I don't know CSP well enough to know if an instance of CSP not even in NP ought to be surprising or not. 08:47:07 Well, it's at least as surprising as P=NP 08:48:58 (if P=NP, is everything in P "NP-complete"?) 08:49:31 A pretty good intro to CSP that I also found recently: https://web.archive.org/web/20180214194125/https://www.doc.ic.ac.uk/~sgc/teaching/pre2012/v231/lecture15.html 08:49:47 (and was apparently taken down even more recently, thus the wayback machine) 08:51:27 Taneb: if P=NP then P-complete=NP-complete but... I'm sure there are problems in P that aren't P-complete? 08:51:48 cpressey: Based on 15.1 I'm confusil on how this isn't in NP. 08:52:08 cpressey: given an oracle to a problem in P one can solve any other problem in P in polynomial time 08:52:17 (I am using the word "sure" very loosely, above) 08:52:28 Which was my understanding of "-complete" 08:53:08 I would imagine P-complete would use a different reduction. 09:10:33 Okay, yes, from what I see (from 15.1 and from some web searching), CSP is NP-complete. So, on the face of it, yes, it looks like you could make a stronger claim than in that mathoverflow answer: that all instances of CSP are in P or are NP-complete. 09:13:38 Maybe they were using "or" in the colloquial exclusive sense. 09:15:12 I started reading a book about SAT. 09:29:15 -!- wob_jonas has joined. 09:30:32 cpressey: no, if P=NP then every P problem is NP-complete, even the most trivial one, because we define NP-completeness using a P powered reduction 09:30:52 P-completeness is trickier, that one is defined with more restricted reductions 09:31:08 ah I see, Taneb already said that 09:48:57 wob_jonas: Taneb: I think I follow you and I can't disagree. I find it hard to swallow the implications of that, but I already find it hard to swallow the implications of P=NP I guess, so I guess that doesn't change anything. 09:49:22 -!- xkapastel has quit (Quit: Connection closed for inactivity). 09:49:43 Or maybe it's more like, if P=NP, then P-reductions seem almost meaningless 09:50:39 yeah, I don't think P=NP either. 10:33:33 To relate this all back to esolang (kind of), CSP without bounds on the variables values is Turing-complete. I don't remember where I read that though, I thought it was in that tutorial but can't find it now. 10:37:48 Would make sense though, because it's basically just constraint programming at that point. 10:40:28 -!- arseniiv has joined. 10:43:34 -!- Sgeo__ has joined. 10:47:02 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 10:54:19 cpressey: can it simulate diophantine equations? 10:58:39 wob_jonas: Yes, it can. Yes, I thought of that too :) 11:00:07 -!- atslash has quit (Ping timeout: 244 seconds). 11:02:00 -!- atslash has joined. 11:08:04 Phase transition in random 3SAT: Empirically, there seems to be a constant k such that random 3SAT instances are satisfiable iff their clause/variable ratio is smaller than k, and k seems to be around 4.27. 11:09:27 sure, that's not surprising 11:09:45 of course you have to define the distribution of that "random 3SAT" precisely before you can claim that 11:11:06 Yes. There are a few ways to define it but it seems pretty straightforward. 11:11:12 Why is it not surprising? 11:12:52 It seems a bit surprising to me, the `iff` part especially 11:13:00 No exceptions? 11:13:05 well, maybe it is partly surprising depending on what the distribution is like, because if you do it differently, you'll need an asymptotic more like clause**2/variable or something 11:13:24 cpressey: welcome to randomness 11:13:25 but it's not surprising that there's a phase transition if you count the clauses in the right way 11:13:39 it's like all those random percolation things 11:13:41 myname: oh, right, right 11:13:55 i mean, obviously you can construct cases that have more clauses and are satisfiable 11:14:03 just repeat some indefinitely 11:14:14 cpressey: Oh, I didn't mean "iff" in a logical sense. 11:14:41 Only that the probability is low below the threshold and high above it, and the phase transition becomes sharper as the number of variables increases. 11:15:04 surprisingness diminishing 11:15:10 shachaf: the iff is in a logical sense, but you need a limit to large number of variables and an almost always in there 11:17:07 but I agree with cpressey, it's hard to be surprised by phase transitions like this after I've grown up among the crazy probability theorists here that keep studying problems like that 11:18:56 There is also such a constant for 2SAT, with k=1 11:19:40 And I'm now remembering that someone told me about a similar phase transition in random graphs which is probably related. 11:20:34 -!- atslash has quit (Read error: Connection reset by peer). 11:20:35 shachaf: yes, there are many such theorems. for random graphs too, but also for various regular grids with each edge deleted independently with a probability 11:20:55 -!- atslash has joined. 11:21:11 -!- mniip has joined. 11:21:19 in some cases the phase transfer parameter is a nice round number because of some symmetry argument, in other cases it's just some odd constant that you can't connect to other numbers 13:21:16 hi folks, have a nice day! 13:21:40 (I wanted to say something but I don’t have anything interesting) 13:22:02 thanks 13:22:18 g'day all 13:31:32 hi arseniiv 13:31:49 wob_jonas: hello! 13:33:01 no IOCCC source code yet :-( 13:33:14 It'll get here when it gets here 13:33:49 before or after the CALESYTA results? 13:33:57 Not for me to say 13:34:15 -!- john_metcalf has joined. 13:46:10 `? ioccc 13:46:13 The IOCCC is the Industrial Ordovician COBOL Conference Circuit. Not to be confused with OIC. See also ioccclist. 13:46:23 `? oic 13:46:24 OIC, OIC means Oh I see. 13:46:34 -!- Sgeo_ has joined. 13:49:14 -!- arseniiv_ has joined. 13:49:14 -!- arseniiv has quit (Read error: Connection reset by peer). 13:49:35 -!- Sgeo__ has quit (Ping timeout: 244 seconds). 13:50:26 `? hf 13:50:27 hf? ¯\(°​_o)/¯ 14:03:27 -!- arseniiv_ has changed nick to arseniiv. 14:03:40 `? high life 14:03:41 high life? ¯\(°​_o)/¯ 14:03:46 `? life 14:03:47 ​‘Life,’ said Marvin, ‘don't talk to me about life.’ 14:03:54 `? low life 14:03:55 low life? ¯\(°​_o)/¯ 14:04:04 `? file 14:04:08 file? ¯\(°​_o)/¯ 14:04:53 `? vacuum 14:04:54 vacuum? ¯\(°​_o)/¯ 14:04:59 `? file 14:05:00 file? ¯\(°​_o)/¯ 14:05:38 -!- user24 has joined. 14:05:59 well, we have https://esolangs.org/wiki/Game_of_Life at least. no specific article for high life. 14:07:48 -!- arseniiv_ has joined. 14:10:03 -!- arseniiv has quit (Ping timeout: 245 seconds). 14:40:10 -!- arseniiv has joined. 14:42:40 -!- arseniiv_ has quit (Ping timeout: 246 seconds). 14:53:28 -!- atslash has quit (Quit: This computer has gone to sleep). 14:54:38 -!- atslash has joined. 15:11:54 fwiw, I read over a gentle(ish) description of Ladner's NP-intermediate construction, and it's totally reasonable to me that you couldn't write it as a CSP. 15:11:59 It's pathological af 15:12:14 as the kids say 15:12:29 -!- atslash has quit (Quit: This computer has gone to sleep). 15:18:06 -!- Sgeo__ has joined. 15:21:54 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 15:26:26 cpressey: The CSP result feels a bit like the n-SAT dichotomy, in that you have a parameterized family of problem classes, and you can separate them into P-solvable and NP-complete based on the choice of parameter. It's far more interesting and much harder than the n-SAT case though. (For n-SAT I mean: 0-SAT, 1-SAT, and 2-SAT are in P; 3-SAT and beyond are NP-complete.) 15:29:31 Feels a bit like that, yes. 15:29:32 -!- wob_jonas has quit (Remote host closed the connection). 15:29:39 cpressey: do you have a pointer to that "gentle(ish) description"? 15:30:44 https://iccl.inf.tu-dresden.de/w/images/a/ab/CT2017-Lecture-14-overlay.pdf 15:30:46 (I think I like the notion of 0-SAT. It's not even P-complete.) 15:31:12 I'm afraid I have to take off now but I'll try to pop in tomorrow too. 15:31:15 -!- cpressey has quit (Quit: WeeChat 1.4). 15:37:34 -!- Sgeo_ has joined. 15:40:40 -!- Sgeo__ has quit (Ping timeout: 244 seconds). 15:48:51 -!- xkapastel has joined. 16:05:04 -!- Sgeo__ has joined. 16:07:57 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 16:11:21 -!- user24 has quit (Quit: Leaving). 16:49:38 -!- Sgeo__ has quit (Read error: Connection reset by peer). 16:50:02 -!- Sgeo__ has joined. 17:09:11 -!- b_jonas has joined. 17:09:26 ``` wisdom; quote 17:09:27 ​damnation//The Damnation was an evil empire of yore, until the dam no longer held and they got flooded. \ 279) i actually do like sucking 17:19:59 ``` wisdom; quote 17:20:00 ​luftballon//A Luftballon is an experimental weapon first developed by the German military in 1983 designed to scramble fighter jets, causing chaos and starting wars between their enemies. \ 662) oerjan: Hey, what's your country code for telephonistic dialling from the outside world? fizzie: +47 oerjan: Ooh, you're, like, right next to Sweden there. I... guess you are geographically, too. 17:21:50 -!- Phantom_Hoover has joined. 17:26:58 -!- FreeFull has joined. 17:46:06 -!- mich181189 has quit (Ping timeout: 257 seconds). 17:47:06 ``` wisdom; quote 17:47:07 ​outstanding//Outstanding is when someone is upright in an outdoors position, as in "That scarecrow is outstanding in his field". \ 386) * Sgeo is risking massive forest fires The bacon is worth it 17:47:11 `? vacuum tube 17:47:12 After the London terrorist attacks of 2005, the Underground was completely evacuated. Without air resistance, the trains would go at blazingly fast speeds between the terminals. This is called a vacuum tube. Sadly, current technology doesn't let passengers travel that way. 17:48:27 -!- mich181189 has joined. 18:02:06 -!- atslash has joined. 18:07:37 -!- Sgeo_ has joined. 18:08:18 -!- atslash has quit (Quit: This computer has gone to sleep). 18:10:30 -!- Sgeo__ has quit (Ping timeout: 244 seconds). 18:25:33 -!- Sgeo__ has joined. 18:27:04 a tube one is pretty eso 18:28:46 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 18:28:51 `? tube 18:28:52 tube? ¯\(°​_o)/¯ 18:47:05 -!- Sgeo_ has joined. 18:50:26 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 18:51:00 -!- xkapastel has quit (Quit: Connection closed for inactivity). 18:59:52 `forget 386 18:59:52 rm: cannot remove 'wisdom/386': No such file or directory 19:17:39 `? i386 19:17:40 i386? ¯\(°​_o)/¯ 19:17:47 `? x86 19:17:48 x86? ¯\(°​_o)/¯ 19:17:53 `? 0x86 19:17:54 0x86? ¯\(°​_o)/¯ 19:17:58 whyy 19:18:25 -!- Lord_of_Life_ has joined. 19:19:54 `delquote 386 19:19:56 ​*poof* * Sgeo is risking massive forest fires The bacon is worth it 19:19:59 Thar one. 19:20:01 t 19:21:18 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:21:29 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:22:37 -!- \oren\ has joined. 19:23:19 <\oren\> if oiseau is "wazo" then is oieau "wao"? 20:14:55 hi oren! 20:19:26 \oren\: you haven't been in here for a while. is everything all right? 21:18:05 rebecca black's 22nd birthday was on a Friday last month and i missed the opportunity to tweet about it. y'know, to make people feel old 21:18:54 why would one be old if rebecca black is 22 21:18:57 who's that 21:24:42 I've now read the wikipedia page. I'd like to reiterate my question. 21:32:49 -!- AnotherTest has quit (Ping timeout: 276 seconds). 21:33:54 -!- atslash has joined. 21:34:30 -!- xkapastel has joined. 21:37:35 one would not be old but one might feel old if 2011 feels like yesterday 21:40:18 quintopia: you missed the point. you need to pick some event or person that people can actually relate to. :P 21:50:40 a cubehelix article publication date? 21:51:11 though I’m not sure if it was 80s, 90s or 00s 21:51:37 its webpage looks 90’ish 21:53:05 though again who am I to know it, I didn’t see what it was then in the internets, I started crawling them in ≈2007 22:00:07 -!- Sgeo__ has joined. 22:03:14 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 22:12:48 -!- Sgeo has joined. 22:15:13 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 22:48:33 -!- Sgeo_ has joined. 22:51:34 -!- Sgeo has quit (Ping timeout: 244 seconds). 22:54:07 -!- Sgeo has joined. 22:54:58 -!- arseniiv has quit (Ping timeout: 248 seconds). 22:56:18 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 23:39:09 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:58:33 -!- Sgeo_ has joined. 2019-07-19: 00:01:13 -!- Sgeo has quit (Ping timeout: 268 seconds). 01:03:13 fizzie: Huh, now that I'm looking at this ABI, %rdx contains a function pointer that the program is supposed to call atexit. 01:03:27 I wonder what that's for. 01:03:45 `quote 01:03:46 62) Where's the link to the log? THERE'S NO LOG. YOUR REQUEST IS SUSPICIOUS AND HAS BEEN LOGGED. 01:26:18 -!- MDude has quit (Ping timeout: 245 seconds). 01:32:21 -!- xkapastel has quit (Quit: Connection closed for inactivity). 01:32:49 oh. good quote. 01:39:23 shachaf: hmm, could it be for __attribute__((destructor)) cleanup? 01:42:25 int-e: Why would the kernel pass that to _start? 01:42:33 It seems like strictly a userspace thing. 01:50:55 true. 01:51:23 is it for that wacky robust futex thing 01:52:29 Oh, I didn't know about that thing. 01:52:51 the userspace maintains a linked list of futices and tells the kernel where it is 01:52:52 But presumably if a program crashes it won't run its atexit handlers. 01:53:00 right 01:53:04 it was not a very good guess 01:57:20 shachaf: have a look at https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/start.S;h=24d59159a9b46e3edd548bfd2f1b1924c6c2eb29;hb=HEAD#l41 01:58:08 OK, it's for the dynamic linker. I was vaguely thinking about that but it looks like it's part of the ABI even for statically linked programs. 01:58:13 I guess it's just the same ABI? 01:58:41 what's the purpose though 01:58:50 I'm not sure whether the part where the kernel passes control to the dynamic linker is actually part of the ABI. 01:59:24 isn't the dynamic linker the ELF interpreter 01:59:33 and it just passes control to the entry point of said interpreter 01:59:38 I didn't even know the kernel mapped in any executable memory other than the program text and VDSO. 02:03:05 -!- MDude has joined. 02:21:45 I was looking in the Linux repository to see what it sets rdx to. 02:22:01 I haven't found it, but I did find https://github.com/torvalds/linux/blob/master/tools/include/nolibc/nolibc.h#L430 which just ignores rdx, so presumably it's not that important/ 02:35:27 shachaf: the interpreter entry point seems to make no attempt to look at or preserve %rdx: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/dl-machine.h;h=95a13b35b5d27d8619422d3c5cc896f0ff1663c4;hb=HEAD#l141 02:36:07 So basically, the same conclusion, but this time from the glibc side. 02:38:26 (the function that is called takes only one argument) 02:39:52 OTOH, the stack layout corresponds to reality even for rtdl. 02:41:40 Is that the code for ld-linux? 02:42:09 I'm pretty sure it is (well, as small part of it) 02:43:30 most of it is in https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/rtld.c 02:43:50 (and other files in the elf/ subdirectory) 02:44:11 (but rtld is the "main program".) 02:44:24 OK, https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/start.S#l79 says it's the "shared library termination function". 02:45:55 yeah I linked to line 41 of that particular file earlier. 02:46:12 Oh, so you did. 02:46:28 I looked at that file earlier but didn't see that comment. 02:46:33 it's okay... I do this all the time (figuring things out myself) 02:47:04 I'm still curious, though. What does the kernel put in that register? Is it an address I can jump to? 02:47:36 I guess I can find out easily enough. 02:47:57 I suspect the kernel doesn't put anything in that register. 02:48:03 i love this kind of wild goose chase 02:48:43 It is 0. 02:49:20 okay, the kernel should put safe values into the registers that don't leak any information. 0 if fine :) 02:49:25 kmc: i want to write a compiler so i gotta know these things 02:49:26 -!- oerjan has joined. 02:51:06 why are you writing a compiler 02:51:20 how else do i program computers 02:52:35 -!- Sgeo__ has joined. 02:55:44 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 03:04:42 shachaf: https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/elf.h#L172-L186 03:05:29 int-e: Aha. I was searching for "rdx". 03:05:52 * int-e started from binfmt_elf.c 03:06:09 (irritatingly under fs/) 03:07:40 /* ax gets execve's return value. */ 03:08:04 The Linux conspiracy doesn't want you to know what execve returns on success. 03:09:17 -!- FreeFull has quit. 03:09:46 oh wait... I was wondering why the kernel doesn't just load the interpreter... but the process may not have the right to open&mmap the executable file... 03:10:06 So that's one less mystery... 03:14:29 shachaf: did you see geofft's userspace exec thing 03:14:39 actually i'm not sure if I'm remembering it right 03:14:56 one funny thing is https://github.com/torvalds/linux/blob/master/fs/binfmt_elf.c#L1165-L1177 03:15:07 -!- xkapastel has joined. 03:15:15 kmc: Simulating exec from userspace? 03:15:19 yeah 03:15:30 I looked for and found a thing like that a while ago. I don't remember geofft being involved. 03:16:06 because the comment is specifically about the i386 ABI, it says something about populating %edx, but if you look at https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/elf.h#L109-L114 then there's no effort to set dx :) 03:16:47 maybe i'm confused 03:16:55 i'm usually confused about something or another 03:17:00 i,i maybe they're setting the lower 16 bits of dx to 0 but the upper 16 bits make it a valid function pointer 03:17:07 dazed and confused but trying to continue 03:17:08 I mean of edx. 03:17:39 shachaf: I'm pretty sure the dx field covers all of edx. 03:18:02 shachaf: just like on x86_64 the dx field covers all of rdx. 03:20:01 Yes. Hence "i,i". 03:20:35 oh... #define ELF_PLAT_INIT(_r, load_addr) elf_common_init(¤t->thread, _r, 0) ... what a nice local name space we have here. 03:21:03 but that's enough (useless, mostly) code reading. 03:21:17 (though interesting) 03:21:47 that's not enough underscores 03:21:51 it should be _______r at least 03:25:02 [[Doug]] N https://esolangs.org/w/index.php?oldid=64552 * Areallycoolusername * (+4080) Created page with "'''Doug''' is an [[Arch]]-based [[esoteric programming language]] made by [[User: Areallycoolusername|Areallycoolusername]]. All commands are meant to be a quote by Fairly Odd..." 03:41:53 [[Doug]] M https://esolangs.org/w/index.php?diff=64553&oldid=64552 * JonoCode9374 * (-3) 03:58:30 `cat ibin/brachylog 03:58:30 ​#!/bin/sh \ echo "$1" > tmp/input.brachylog \ (cd interps/brachylog/brachylog/Brachylog-master/src; swipl -g 'run_from_file("../../../../../tmp/input.brachylog", _, _), write(" \ true."), !, halt; write(" \ false."), !, halt' brachylog.pl) 04:07:59 `` ls -l bin/\! bin/interp 04:08:00 ​-rwxr-xr-x 1 1000 1000 109 Jul 17 22:26 bin/! \ -rwxr-xr-x 1 1000 1000 101 Jan 13 2019 bin/interp 04:08:13 hum 04:08:25 `hurl bin/\! 04:08:26 https://hack.esolangs.org/repo/log/tip/bin/%5C%21 04:09:30 *sigh* it was a symbolic link 04:09:45 what is swipl 04:09:53 prolog interpreter 04:10:37 `` mv bin/{\!,interp} 04:10:38 No output. 04:10:50 `` ln -s interp bin/\! 04:10:52 No output. 04:11:09 `` ls -l bin/\! bin/interp 04:11:09 lrwxrwxrwx 1 1000 1000 6 Jul 19 04:10 bin/! -> interp \ -rwxr-xr-x 1 1000 1000 109 Jul 19 04:10 bin/interp 04:12:44 is prolog good 04:12:54 should i use prolog 04:14:01 did you know prolog is almost the same thing as index notation 04:18:30 no 04:18:35 because i don't remember what index notation is 04:31:15 I don't believe in Prolog. 04:36:23 (There may be a discrepancy between how Prolog is taught... or at least taught to me... as a language for solving propositions ("logic programming")... and how it can realistically be used to good effect... namely a DSL for working with unification and very disciplined backtracking.) 04:37:37 <\oren\> I don't understand what problem Prolog was designed to solve 04:38:21 https://en.wikipedia.org/wiki/Boolean_Pythagorean_triples_problem 04:38:32 Golly. 04:39:36 shachaf: that made mainstream news a few years back, as "the largest mathematical proof". 04:40:39 I'm actually not 100% sure whether they managed to certify the whole thing. 04:42:37 <\oren\> I guess that is a pretty legitimate need for something like prolog 04:42:49 Eh, I should clarify. There's a certification format for SAT problems (called DRAT). There's a C tool (complicated, but far simpler than a SAT solver) that can certify (and prune) such proofs. There have been recent efforts to have formally verified certifiers. 04:43:04 \oren\: Prolog doesn't scale to that size. 04:43:25 <\oren\> hmm? why not 04:43:29 shachaf: wait are you saying that this is what Prolog was invented for? 04:45:27 \oren\: Prolog makes for an awful SAT solver because it doesn't do any of the stuff that makes DPLL fast -- variable selection heuristics, restarts, and, most importantly, conflict-driven clause learning. The latter is so important in fact, that parts of the community is talking about CDCL solvers rather than DPLL solvers. 04:45:50 int-e: No. 04:45:55 I just learned about it. 04:46:10 <\oren\> Hmm. 04:46:26 int-e: Do you know whether DPLL solvers actually do pure literal elimination? 04:47:29 int-e: By the way, it's interesting that this proof was parallelized on many machines. 04:47:41 \oren\: Prolog fails by not being declarative; it has side effects and a fixed order of evaluation. So such optimizations are completely ruled out. A more modern approach is https://en.wikipedia.org/wiki/Answer_set_programming which seems to be declarative. 04:47:53 Apparently they used a lookahead solver first to decide which variables to split the problem on, and then ran a CDCL solver on each subinstance. 04:48:10 <\oren\> " its original intended field of use, natural language processing." 04:48:14 <\oren\> wat 04:48:38 shachaf: Not as part of DPLL. They may do cross-resolution (resolve each clause that contains P with each clause that contains -P, then drop all clauses referring to P) of which pure literal is a special case. 04:48:39 <\oren\> oh, the unbounded optimism of the 1970's 04:49:06 \oren\: yeah, and expert systems. 04:50:14 SAT solvers are awful in that nobody really wants to write clauses (or even circuits to feed into a Tseitin transformation) 04:57:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64554&oldid=64551 * A * (-2842) 04:58:00 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64555&oldid=64554 * A * (+145) /* An arch is simply a curve. */ 04:58:20 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64556&oldid=64555 * A * (+2779) 04:58:40 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64557&oldid=64556 * A * (-2779) /* Hey stack! */ Huh 04:59:16 <\oren\> http://orenwatson.be/dups.htm 05:00:01 <\oren\> I've sucessfully created a program to automatically list all characters in my font that have identical glyphs 05:01:03 tbh that doesn't sound very impressive 05:02:09 <\oren\> it took not much effort except actually bothering to write the damn program 05:03:04 <\oren\> http://orenwatson.be/bdf_dups_test.htm 05:06:35 needs more spaces and line breaks 05:12:17 <\oren\> It's just the "dumb" algorithm of loading the entire font into memory like my editor does, then sorting it on the bitmaps 05:13:13 <\oren\> and then listing the ones that compare equal 05:16:28 <\oren\> I also came up with a stupid way to efficiently show the names 05:17:19 <\oren\> by mmapping the unicode database text and getting a list of pointers to where the names are 05:18:10 <\oren\> (... why do I have to open a file first before I can mmap it?) 05:18:44 I would probably have done something more stupid. Like, extract each character as a separate bitmap (surely there must be a tool for that), then hash and sort in the shell. :P 05:19:01 because mmap doesn't check permissions 05:19:06 <\oren\> oh 05:22:02 <\oren\> I should make my *editor* show the unicode character names... 05:24:42 -!- xkapastel has quit (Quit: Connection closed for inactivity). 05:46:34 -!- Sgeo_ has joined. 05:48:47 -!- john_metcalf has quit (Ping timeout: 245 seconds). 05:49:37 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 05:49:37 -!- heroux has quit (Ping timeout: 245 seconds). 05:49:45 -!- heroux has joined. 06:39:48 -!- nfd has quit (Read error: Connection reset by peer). 06:58:22 -!- moei has joined. 07:17:07 -!- Sgeo__ has joined. 07:20:02 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:21:24 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 07:23:40 -!- Lord_of_Life has joined. 07:32:06 -!- Sgeo_ has joined. 07:35:57 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 07:42:45 \oren\: nice. although you might also want to try to find double-width characters of which both the left and right half looks identical to some single-width character, such as " " which looks like " " 07:46:25 and, technically, you would also have to find longer chains of characters where a sequence of double-width characters looks identical to a one shorter sequence of doublewidth characters flanked between two single-width characters. 07:52:12 no, they are no longer bent to use puzzles: http://www.irregularwebcomic.net/draakslair/viewtopic.php?p=173108#173108 <-- i was going to follow that link and then realized that would trigger the BB's stupid "forget all about what i haven't read in a few hours" feature, unless i then go on to read it all immediately, which i wasn't planning to. 07:53:47 well, might. i'm not entirely sure what circumstance triggers it. 07:57:11 * oerjan checks out cpressey's link instead, but thinks he's seen that before 07:59:50 `5 w 07:59:52 1/1:broily//broily is like boily, but more broiling. \ marriage//Marriage was made legal in the United States on 2015-06-26. \ glass//I can eat glass and it doesn't hurt me. -- http://www.savagechickens.com/2016/05/new-diet.html \ otoh//OTOH means "On the omnipotent hand". \ ü//ü is the ridiculously happy second derivative of the letter ‘u’ with respect to time. 08:10:41 <\oren\> if oiseau is "wazo" then is oieau "wao"? <-- wiktionary refuses to confirm tdnh 08:19:24 oerjan: uh, check it from a different browser profile so the forum doesn't recognize you? or should I just quote it for you? 08:20:26 it's a message by DMM from 2019-04: "We'd love to, but honestly our interests seem to have moved on somewhat from the intense puzzle creation necessary to organise an entire competition. We have some ideas and some completed puzzles in the bank, but the motivation for making more puzzles pulling it all together is at a bit of a low ebb right now. I'm hoping we'll return to it. Can't promise anything 08:20:32 though." 08:20:57 replying to someone asking when there'll be a next mezacotta puzzle hunt 08:21:03 i remember that. 08:21:16 so it doesn't specifically say no to all puzzles, just that format 08:21:36 they could have a droidikar second set crossword puzzle 08:21:53 or, technically, more Eavesdropper puzzles 08:22:23 * oerjan decided not to follow Eavesdropper after a few posts 08:22:29 didn't feel like my thing 08:23:02 or more single puzzles like http://www.irregularwebcomic.net/3976.html annot 08:23:06 anyway, i'm forgetting to eat _and_ to shave, so -> 08:23:16 -!- oerjan has quit (Quit: Later). 08:23:51 oerjan: it took me longer to decide I don't like the eavesdropper story, but I'm glad DMM seems to have given up working on it 08:24:19 the puzzles are hit and miss, but there were a few especially giid ones: 08:24:52 https://alcohol.stackexchange.com/q/7036 08:25:12 do you also have an excuse to not visit pages on SE? 08:31:31 -!- AnotherTest has joined. 08:38:19 -!- b_jonas has quit (Quit: leaving). 09:04:55 -!- arseniiv has joined. 09:47:11 -!- wob_jonas has joined. 10:12:58 -!- wob_jonas has quit (Remote host closed the connection). 10:19:32 -!- atslash has quit (Read error: Connection reset by peer). 10:19:56 -!- atslash has joined. 10:32:42 -!- unlimiter has joined. 10:48:07 -!- unlimiter has quit (Quit: still confused). 11:12:13 -!- atslash has quit (Ping timeout: 246 seconds). 11:14:54 -!- atslash has joined. 11:25:52 -!- atslash has quit (Ping timeout: 272 seconds). 11:26:47 -!- atslash has joined. 11:46:54 -!- cpressey has joined. 12:02:53 int-e: I agree about Prolog; I mean, I like logic and all, but I'm not convinced that it's very good for *programming* in. 12:03:41 Its biggest contribution imo was to show that it's possible. 12:06:08 Relatedly, I would love to know what this programming language actually looks like: https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence#Sequent_calculus 12:07:00 but I can't find a reference on that page, and I haven't had time to hunt for it. 12:11:38 -!- wob_jonas has joined. 12:12:07 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64558&oldid=64557 * A * (+70) 12:12:30 cpressey: right, that's more or less what I thought when I made the esoteric language Olvasható, which lets me program prolog as if it were an ordinary functional language, without its special logic programming and unification parts. 12:24:44 wob_jonas: reading the esowiki entry for it, I shudder to imagine what the instructor thought of this answer for their homework assignment :) 12:25:37 cpressey: well, the instructor who scored the prolog code said that he found it easier to read the produced prolog code of the program than the olvashato input, but yeah, both were ugly 12:25:54 another instructor scored the sml code output, and I don't know what he said 12:27:13 I wrote a Scheme interpreter in Prolog as homework once, but I can't remember what the task specification was. It may even have been something like writing an interpreter for something, although that does sound maybe slightly odd for a Prolog assignment. 12:27:17 the same instructor who taught prolog for that course later held a more advanced course for us about constraint logic programming (clp) in prolog. 12:28:10 for that, I reused the closure representation from olvashato 12:28:13 [[Doug]] https://esolangs.org/w/index.php?diff=64559&oldid=64553 * Areallycoolusername * (+1644) Revamped the page 12:28:32 fizzie: yes, that might actually be saner, an interpreter plus code 12:28:58 prolog handles that sort of thing quite naturally because it keeps messing with tree-like data all the time 12:29:02 [[User:Areallycoolusername]] https://esolangs.org/w/index.php?diff=64560&oldid=64499 * Areallycoolusername * (+11) 12:30:44 [[Joke language list]] https://esolangs.org/w/index.php?diff=64561&oldid=63686 * Areallycoolusername * (+11) /* General languages */ 12:30:46 the exam for that latter course was memorable to me: it had a task where I had to write prolog code on paper, and I managed to write a correct answer that the instructor thought was buggy, so I had to trace the execution on paper to prove that it worked 12:31:57 that one came up on https://esolangs.org/logs/2019-03-26.html last 12:33:41 Looks like the only Prolog-special thing about this Scheme interpreter is that it implements (amb ...). 12:36:02 (Modeled after the SICP chapter, https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-28.html ) 12:36:18 fizzie: what method do you use to represent the scheme mutable state in prolog? 12:36:28 there's like ten different ways for that, most of them awkward or nonportable 12:37:01 I'm not sure I can decipher it out from the code, to be honest. 12:37:02 there's assert-based ones, extensions for global variables, extensions for mutable terms, and making the whole thing functional 12:37:32 I think it's the third option on your list. 12:37:37 https://www.swi-prolog.org/pldoc/man?predicate=setarg/3 12:37:57 the first two has the drawback that you somehow have to gensym atoms (symbols) or something, the second and third are based on nonportable extensions, the third really works badly with the rest of the prolog language, etc 12:38:01 I think I didn't want to spend too much effort on it. 12:38:24 fizzie: sure. how many obscure bugs did you have to debug that turned out to come from setarg? 12:38:42 Well, I mean, it didn't have to run a thorough Scheme check suite. :p 12:38:48 I think it did run non-trivial programs though. 12:39:09 call/cc this does via something CPS-ish. 12:39:56 At least judging from ps_apply_builtin(callcc, Args, K, E, SE) :- ... ps_apply(k(apply, E, SE, Proc, [cont(K)], K), void). 12:41:29 ok 12:42:25 fizzie: can it run this? (((lambda (fact) (set! fact (lambda (n) (if (< n 1) 1 (* n (fact (- n 1)))))) fact) 0) 5) 12:43:22 I'll test if I can figure out how to actually get to the REPL. 12:43:47 I've never written a Scheme interpreter in Prolog, but I did write a (nano) Prolog interpreter in Scheme once. 12:44:20 This is also from 2005, so it may well have bitrotted away when it comes to current SWI-Prolog version. 12:44:23 Actually, that was just last year. Wanted to refresh/confirm to myself that I knew basically how a Prolog interpreter works. 12:45:00 In the Scheme world, everyone seems to prefer miniKanren though. 12:45:16 (To implement, I mean. Dunno about actually using.) 12:45:40 wob_jonas: Sorry, it's not looking good w.r.t. running anything: http://ix.io/1OTN 12:46:59 Slightly odd, though. I would've expected some error from the Prolog side, not a syntax error from the interpreter itself. 12:48:04 (It's failing while attempting to load the bit of Scheme syntax that has been implemented via macros.) 12:48:10 Oh well. 12:48:35 bitrot :( 12:48:57 programs always do that 13:01:08 [[Arch]] https://esolangs.org/w/index.php?diff=64562&oldid=64534 * Areallycoolusername * (+21) 13:07:33 I had some hopeful thoughts that Docker might help bitrot. Like imagine there was a Docker container that had SWI-Prolog circa 2005 installed on it, you could just run it from that. It's never that simple though. 13:08:53 I guess I should say, it's rarely that simple. I refuse to give up all my hopeful thoughts on that. 13:10:05 The source code for early versions of xpuyopuyo is still available, but it uses GTK+ 1.2, so what are my chances of building it? Almost zero. 13:13:14 [[Arch]] https://esolangs.org/w/index.php?diff=64563&oldid=64562 * Areallycoolusername * (+79) /* Languages */ 13:14:01 [[Arch]] https://esolangs.org/w/index.php?diff=64564&oldid=64563 * Areallycoolusername * (+0) 13:21:11 [[Doug]] https://esolangs.org/w/index.php?diff=64565&oldid=64559 * Areallycoolusername * (-11) /* Hello World Program */ 13:23:31 [[Doug]] https://esolangs.org/w/index.php?diff=64566&oldid=64565 * Areallycoolusername * (+188) /* Variables, Ifs, and for */ 13:23:58 [[Doug]] https://esolangs.org/w/index.php?diff=64567&oldid=64566 * Areallycoolusername * (+0) /* Variables, Ifs, and for */ 14:07:36 [[Language list]] M https://esolangs.org/w/index.php?diff=64568&oldid=64535 * ThisIsTheFoxe * (+20) added my language :) 14:09:30 According to https://esolangs.org/wiki/Deadfish there is not yet an implementation of Deadfish in Prolog! 14:29:08 Heh, thought I'd check if there are any odd local changes in that code. "The working copy -- is too old (format 4) to work with client version '1.10.4 (r1850624)' (expects format 31). You need to upgrade the working copy first." 14:31:56 fizzie: even without upgrading, you can diff it to the repository copy 14:32:37 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64569&oldid=62563 * Areallycoolusername * (+228) Proposing new category 14:41:29 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64570&oldid=64569 * Areallycoolusername * (+390) 14:41:44 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64571&oldid=64570 * Areallycoolusername * (+1) /* Proposed Categories: Arch-based and Bootstraped */ 15:59:03 -!- wob_jonas has quit (Remote host closed the connection). 15:59:40 À la prochaine. 15:59:44 -!- cpressey has quit (Quit: WeeChat 1.4). 16:29:09 [[Dbondb]] N https://esolangs.org/w/index.php?oldid=64572 * Sideshowbob * (+2116) Created page with "DBonDB is an esoteric programming language created by [[User:Sideshowbob]]. DBonDB is derived from Dartmouth BASIC, the first BASIC, which was introduced in 1964. Hence the n..." 16:32:31 [[Language list]] https://esolangs.org/w/index.php?diff=64573&oldid=64568 * Sideshowbob * (+13) /* D */ 16:39:10 [[User:Sideshowbob]] N https://esolangs.org/w/index.php?oldid=64574 * Sideshowbob * (+19) Created page with "Created [[Dbondb]]." 16:42:33 -!- Phantom_Hoover has joined. 16:42:52 [[Dbondb]] https://esolangs.org/w/index.php?diff=64575&oldid=64572 * Sideshowbob * (+0) 17:01:49 [[Dbondb]] https://esolangs.org/w/index.php?diff=64576&oldid=64575 * Sideshowbob * (+4) /* Factorial */ 17:02:00 [[Dbondb]] https://esolangs.org/w/index.php?diff=64577&oldid=64576 * Sideshowbob * (+1) /* [Factorial]] */ 17:02:42 [[Dbondb]] https://esolangs.org/w/index.php?diff=64578&oldid=64577 * Sideshowbob * (+7) /* Fibonacci series */ 17:05:05 [[Dbondb]] https://esolangs.org/w/index.php?diff=64579&oldid=64578 * Sideshowbob * (+7) /* Hello World */ 17:05:24 [[Union]] https://esolangs.org/w/index.php?diff=64580&oldid=63748 * Sideshowbob * (+1) /* Hello, world! program doing no output */ 17:06:59 [[Dbondb]] https://esolangs.org/w/index.php?diff=64581&oldid=64579 * Sideshowbob * (+4) /* 99 Bottles of beer */ 17:24:37 [[Special:Log/newusers]] create * Shuber * New user account 17:27:12 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64582&oldid=64507 * Shuber * (+160) /* Introductions */ 17:28:57 [[Brainfuck implementations]] https://esolangs.org/w/index.php?diff=64583&oldid=62313 * Shuber * (+117) /* Normal implementations */ 17:35:17 -!- FreeFull has joined. 18:00:37 -!- Sgeo__ has joined. 18:03:46 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 18:54:04 -!- b_jonas has joined. 18:58:18 . o O ( The Gigaminx is not very ergonomic :) ) 19:21:10 -!- Lord_of_Life_ has joined. 19:22:46 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 19:23:45 -!- xkapastel has joined. 19:23:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:54:27 -!- zzo38 has joined. 20:21:31 int-e: is that some rubik's cube style permutation puzzle? or a mutant animal companion? 20:47:25 -!- int-e has quit (Remote host closed the connection). 20:58:18 -!- int-e has joined. 21:13:02 -!- int-e has quit (Remote host closed the connection). 21:14:11 -!- int-e has joined. 21:31:57 -!- int-e has quit (Remote host closed the connection). 21:32:39 -!- int-e has joined. 21:35:06 -!- ais523 has joined. 21:36:19 -!- jalumar has joined. 21:36:36 -!- xkapastel has quit (Quit: Connection closed for inactivity). 21:36:47 -!- joast has quit (Quit: Leaving.). 21:39:17 @messages? 21:39:17 Sorry, no messages today. 21:40:37 b_jonas: email actually often takes more than three hops in practice, there are plenty of setups that use a number of different mailservers on the receiving end that relay to each other 21:40:48 but they're all owned by the same company so they're willing to let them freely relay to each other 21:41:04 sometimes this happens at the sending end too 21:41:31 makes sense 21:42:18 -!- joast has joined. 21:42:30 ls 21:42:43 Oh right. That doesn't work. 21:42:47 `ls 21:42:47 ​- \ :#,_@ \ 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:43:12 `file - 21:43:17 ais523: I wanted to type that into the window to the right of this one ;-) 21:43:23 int-e: ah, OK 21:43:32 yeah, some of those might be files I created accidentally 21:43:36 we have a shell in-channel too but it's probably attached to the wrong filesystem 21:43:37 you can hg log them if you want 21:43:37 `file ./- 21:43:38 ​./-: empty 21:43:42 No output. 21:43:50 `culprits ./- 21:43:52 ais52̈3 oerjän shachäf 21:44:05 hmm, interesting 21:46:12 that :#,_@ looks like a Befunge program 21:47:23 but I'm not sure it's meaningful 21:47:56 >:#,_@ is the standard print loop. 21:48:06 oh, aha 21:48:07 For printing a 0gnirts. 21:48:13 I was assuming a wrap from left to right 21:48:30 seeing it as a program /fragment/ makes more sense 21:48:34 I guess maybe the '>' was someone's shell redirection symbol. 21:48:38 `cat :#,_@ 21:48:39 Error: couldn't open 'olleh.bf' for input. 21:48:56 maybe that was the string they were trying to print 21:49:09 `` od -t x1z ':#,_@' 21:49:10 0000000 45 72 72 6f 72 3a 20 63 6f 75 6c 64 6e 27 74 20 >Error: couldn't < \ 0000020 6f 70 65 6e 20 27 6f 6c 6c 65 68 2e 62 66 27 20 >open 'olleh.bf' < \ 0000040 66 6f 72 20 69 6e 70 75 74 2e 0a >for input..< \ 0000053 21:49:15 yep 21:49:20 `rm ./- ./':#,_@' 21:49:21 rm: cannot remove './- ./'\'':#,_@'\''': No such file or directory 21:49:24 `` rm ./- ./':#,_@' 21:49:26 No output. 21:49:34 `url f 21:49:35 https://hack.esolangs.org/repo/file/tip/f 21:49:40 also, I'm amused that rm escaped that correctly 21:49:59 cat canary 21:50:01 `cat canary 21:50:05 No output. 21:50:06 `` od -t x1z f 21:50:32 I'm being confused by the f. It doesn't show up in the repo browser. 21:50:40 int-e: I managed to permanently break HackEso's filesystem by screwing with the canary 21:50:44 hmm, maybe f isn't a regular file 21:50:46 `file f 21:50:47 f: fifo (named pipe) 21:50:51 yep 21:51:01 press f to pay respects 21:51:41 hmm, the meme is "press F to pay respects" but the original source was referring to the physical key on the keyboard four spaces right of Caps Lock 21:51:53 is the key called "f" or "F", and do you quote it when writing it in text? 21:52:10 it inserts "f" when pressed, under most circumstances, but is labelled with a capital F on most keyboards 21:52:24 I think you'd call it F 21:52:25 `` echo "Why are you taking Polly down into the mine? Polly's a parrot, not a canary! And where's my cracker?" > canary 21:52:27 and not quote it 21:52:33 in the context of a game instrution anyway 21:52:53 well it probably used keycaps font in the game 21:52:56 https://i.kym-cdn.com/photos/images/original/000/858/776/f2e.jpg_large 21:53:00 on the console version it's X 21:53:13 No output. 21:53:14 No output. 21:53:32 `cat f 21:53:37 `` echo test1234 > f 21:53:58 `` ls -la f 21:53:58 I was wondering if one HackEso command could communicate with another via the named pipe 21:53:59 prw-r--r-- 1 1000 1000 0 May 4 19:34 f 21:54:04 No output. 21:54:04 apparently not though 21:54:08 No output. 21:55:34 `! brachylog "test"ẉ 21:55:36 test \ \ true. 21:55:46 `` '!' brachylog "test"ẉ 21:55:47 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 21:55:51 `` '!' brachylog '"test"ẉ' 21:55:52 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 21:55:59 `` interp brachylog '"test"ẉ' 21:56:00 ERROR: Prolog initialisation failed: \ ERROR: brachylog_main/4: Undefined procedure: default/0 21:56:18 oerjan: possibly wasn't the best idea to merge those before the merged version actually worked 21:56:45 ais523: I wasn't going to turn canary into a pipe special file or all the other things that we know causes trouble, I just don't like it being empty :) 21:58:29 fair enough 21:58:52 `? - 21:58:53 ​-? ¯\(°​_o)/¯ 21:59:15 . o O ( - is setting the bar rather low. ) 22:03:04 -!- Sgeo_ has joined. 22:07:03 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 22:07:06 what computational class is parsing indentation-sensitive languages like Python? 22:08:16 my sample task is parsing " 1 +\n 2 +\n 3 +\n4" into a data structure of shape (1+(2+3))+4 22:08:36 given the characters of the input in order (i.e. space, space, 1, space, plus, newline, space, space, space, space, 2…) 22:09:35 I have a suspicion that a PDA is not enough and an LBA is too much 22:09:46 ais523: well, it can't be context-free, because it has to be able to recognize three identically indented lines 22:10:11 as in "if 1:\n 1\n 1\n 1\n" 22:10:22 and notice if any of the three lines is misindented 22:10:22 ais523: do people study things like stack (PDA) plus logarithmic space? 22:10:33 int-e: probably, but I don't know of any 22:10:43 because that would be my guess here 22:11:05 int-e: yeah, something like that should be enough 22:14:49 -!- AnotherTest has quit (Ping timeout: 252 seconds). 22:17:02 does HackEso have its own file system? 22:22:15 arseniiv: no, I think all but /tmp are just directories bound from the same single file system that the host system uses 22:22:34 the host system being a virtual machine, mind you, because it's a double-ply sandbox 22:22:57 so it's like parts of the file system of the middle layer mounted on the inner machine 22:22:58 -!- arseniiv has quit (Ping timeout: 248 seconds). 22:23:10 you can see from df that all the mounts have the same amount of free space 22:28:28 -!- moei has quit (Quit: Leaving...). 22:31:44 -!- nfd9001 has joined. 23:17:31 Well, arguably it's a four-layer cake if you also count the part that's controlled by the service provider. Although the jam between layers 2 and 3 is pretty thin. 23:17:37 The outermost part I don't know too much about, but from circumstantial evidence it's a QEMU/KVM virtual machine, which exposes some sort of storage though the virtio block driver. 23:17:49 Under that, there's a systemd-nspawn container, which sets up a container made out of Linux namespaces: the mount, PID, network and user ones. A few directories (the HackEso code) are shared as read-only bind mounts into the mount namespace, and one (the HackEso data) as a read-write bind mount. 23:18:14 That container is the level where the actual multibot binary is running. 23:18:27 And then finally there's the last level of sandboxing, where each of the HackEso commands is executed in a separate user-mode Linux instance. That uses the UML hostfs to mount the container system's userspace (well, most of it) into the UML as read-only, and the HackEso repository as read-write. And the UML has its own (mostly empty) root filesystem from an initrd, and /tmp as a tmpfs. 23:18:45 fizzie: isn't the outer layer xen-based? 23:19:18 Not any more. At CloudAtCost I think it might've been, but at Bytemark I think it's KVM. 23:19:38 oh, what fizzie is saying makes much more sense than what I said 23:19:59 Judging from the "QEMU Virtual CPU version 2.1.3" /proc/cpuinfo model name. 23:23:00 `fetch ../MGYi.txt http://dpaste.com/3CVV3FH.txt 23:23:01 In another world: ../MGYi.txt 23:23:07 `fetch /MGYi.txt http://dpaste.com/3CVV3FH.txt 23:23:08 In another world: /MGYi.txt 23:23:28 Fetch will only accept /hackenv paths, I think. 23:23:40 it should only, yes. I had to test it though. 23:25:06 on the subject of recognising indentation-sensitive languages: indexed grammars are strong enough but it's probably possible to go weaker 23:25:19 I don't think linearly indexed grammars are enough, though 23:25:37 because they can't do a^nb^nc^nd^ne^n (just like a context-free grammar can only manage two, a LIG can only manage four) 23:26:11 I think there might've been a symlink-based escape at some point, which was terrible. Not that the hackeso user is able to write much anywhere else, but it could've probably messed up the repository by writing directly into /hackenv/.hg/. 23:27:01 mmm, cake 23:27:11 Now it does os.path.realpath to canonicalize the output, and then verifies it's inside .../hackenv/ but outside .../hackenv/.hg/, which is hopefully enough. 23:27:51 indexed grammars can't be parsed in polytime in general, whereas this clearly can be, which is why I'm looking for an appropriate class in between 23:28:49 fizzie: doesn't that make it technically possible to deduce the existence of directories and symlinks outside hackenv? by traversing out of hackenv and then back into it 23:29:46 that might not be a useful breach of security properties, of course 23:29:55 you could just move the file to the right place from inside the inner context, as with a normal command 23:32:27 ais523: That's probably true, at least if os.path.realpath disallows "xxx/nonexistentdirectory/../yyy" paths. 23:32:54 if it's canonicalizing symlinks it would have to 23:33:06 It doesn't seem to disallow that, though. 23:33:27 what about xxx/symlink/../yyy? 23:33:40 is the .. relative to the symlinik target, or is the symlink not even parsed? 23:33:52 ais523: the former 23:34:18 `` python -c $'import os.path\nprint(os.path.realpath("fsadfsafsdaf/.."))' 23:34:19 ​/hackenv 23:34:48 I guess it does follow the symlink, so you would definitely be able to detect names of symlinks that lead to a separate depth. 23:35:08 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 23:35:38 By testing whether you can fetch to ../aaaaaa/../hackenv/tmp. 23:37:21 `fetch ../../../notasymlink/../srv/hackeso-data/env/tmp/tmp.txt http://zem.fi/tmp/tmp.txt 23:37:22 2019-07-19 23:37:22 URL:http://zem.fi/tmp/tmp.txt [4/4] -> "tmp/tmp.txt" [1] 23:37:41 `fetch ../../../proc/net/../../srv/hackeso-data/env/tmp/tmp.txt http://zem.fi/tmp/tmp.txt 23:37:42 In another world: ../../../proc/net/../../srv/hackeso-data/env/tmp/tmp.txt 23:37:46 Yep. 23:38:22 That reveals that /proc/net is a symlink (to /proc/self/net). 23:39:55 ooh, I forgot about $'...' 23:39:57 too good 23:40:51 You could also have used that trick to discover the external location /hackenv as /srv/hackeso-data/env, by fetch-probing ../a, ../b and so on. Though I'm pretty sure there's also something that already leaks that into the UML; don't remember what, though. 23:43:10 Oh, right, the fact that the host filesystem path shows up as the "device" of the hostfs mount. 23:43:13 `` grep ' /hackenv ' /proc/mounts 23:43:14 none /hackenv hostfs rw,nosuid,relatime,/srv/hackeso-data/env/ 0 0 23:46:50 shachaf: I found a USB-C brick that will chrge my phone or laptop and is not much bigger than a normal phone charger 23:47:02 it's maybe 2x as long, but not wider, so it can still fit in a single outlet on a power strip 23:47:47 But will it charge your Raspberry Pi 4 with the incompatible USB-C port? 23:48:06 the laptop is taking about 1.5-2.0 A @ 20V 23:48:17 fizzie: what exactly did they fuck up? 23:48:47 so that's not nearly the 65W of the dedicated charger, but it should still be good enough 23:49:06 AIUI, they had one resistor where the spec called for two separate ones, which involves connecting together two pins that shouldn't. 23:49:12 and now I have one fewer thing to carry in my bag 23:49:30 fizzie: dang 23:49:35 did they fix it? 23:49:39 what is the consequence of this 23:49:47 presumably it does work sometimes or they wouldn't have shipped it 23:50:20 Yes, it works if you have the dumbest kind of "charging-only" USB 2.0 A-to-C cable, without the e-Marker thing. 23:50:27 sigh 23:50:40 so it doesn't work with actual USB-C-PD ? 23:50:59 That's my impression, yes. I think they promised the next revision will. 23:51:07 ah, the eMarker is the cable quality information that I was talking about without knowing anything about 23:51:51 I don't know if my cables have that 23:52:08 this little USB-C inline power meter is great 23:52:27 kmc: is it something actually useful, or is it just another evil proprietary extension so that you have to buy their expensive cable to charge their device or else it will barely work, even though there's no real technological reason for that restriction? 23:52:42 All I know about this is from a post by that Googler who talks about cables. 23:53:01 -!- atslash has quit (Quit: This computer has gone to sleep). 23:53:13 b_jonas: beats me 23:53:40 b_jonas: I think there is a valid concern about cables not being up to spec to deliver 5A, which is kind of a lot of current 23:53:40 . o O ( it'll be like web browser cookies... well meant, but soon to be abused for nefarious purposes ) 23:53:48 https://medium.com/@leung.benson <- that one 23:54:10 b_jonas: and I don't know if there's anything proprietary about it, such as a licensing fee 23:54:34 5 amps at what sort of voltage? 23:54:45 ais523: up to 20 volts 23:54:55 the main issues with overloading cables are based on resistance, both directly and in terms of heat dissipation 23:54:57 current is what determines heating in a wire, though 23:55:30 well, if the voltage is too low you don't have enough power to heat the wire 23:55:46 as long as the insulation is up to snuff, it doesn't matter if you have 5 amps at 20 volts or 5 amps at 20,000 volts, the heat dissipation is calculated as I^2 R 23:55:54 ais523: the voltage hardly matters 23:55:54 but what actually happens is that the current drops below the value you thought you had because the wire has too high a resistance to force that much current through at that voltage 23:55:59 kmc: My friend showed me such a brick two days ago 23:56:18 ais523: if you don't have enough power to heat the wire then the current has decreased, yes 23:56:19 (though 20k may be pushing it, insulators break down at some point) 23:56:19 so I guess that if you know that your voltage is sufficient to send 5A through the cable, the actual voltage doesn't matter 23:56:23 P = I^2 * R 23:56:28 right 23:56:37 (however, the cable's resistance will determine how much voltage you need to be able to get that 5A of current) 23:56:42 P = I^2 * R = V^2 / R 23:56:54 ais523: yeah 23:57:07 that P = I^2 * R = V^2 / R equation is so misleading :-) 23:57:11 is it? 23:57:18 kmc: different Rs 23:57:19 I is the current along the cable, which is fair enough and what people expect 23:57:33 V is the voltage difference from one end of the cable and the other, which is /not/ what people expect 23:57:36 yeah 23:57:47 *shrug* it's a general equation for resistors, not only for cables 23:57:49 (they're normally thinking of the difference between positive and negative/ground, not between one end and the other) 23:57:54 sure 23:58:12 anyway, the reason long distance power distribution uses such high voltages is that it allows you to use lower current for the same amount of power delivered, which means less power lost as heat 23:58:26 yep 23:58:27 and that in turn is the advantage of an AC grid 23:58:28 if the voltage difference between the ends of the cables is 20kV you almost definitely have a problem. 23:58:50 because with AC you can convert the voltage up or down using simple, passive devices 23:58:50 does the resistance at the contacts matter? 23:59:02 b_jonas: sure, it is part of the overall resistance of the wire 23:59:03 at sufficiently high voltage differences the cable hardly matters, you can just send electricity along the air around them 23:59:08 hehe 23:59:19 kmc: sure, but how localized is the heat from that going to be? 23:59:19 b_jonas: yes, it does. that's why contacts are usually the point where things get overheated and potentially melt down 23:59:26 b_jonas: that's a complicated question 23:59:36 (this happens at high frequencies too, the electricity sometimes ends up going through the air around the wire rather than the wire itself 23:59:37 ) 23:59:53 there's no simple answer to "how much current can this bit of wire/contact handle" because it depends on the environment it dissipates heat to 2019-07-20: 00:00:03 yeah 00:00:17 so we use rules of thumb and generous margins 00:00:22 b_jonas: that, and partial cable breaks (which also have locally higher resistance) 00:01:43 * int-e is reminded of the ingenuity of halogen light bulbs. 00:02:04 oh? 00:03:02 int-e: I love those, despite all the problems they cause 00:03:11 > For these reasons, the USB-IF has established USB Type-C™ Authentication (C-AUTH)—a means for authenticating devices and thereby protecting against data tampering and illicit use. The USB PD standard implements C-AUTH through use of a public key infrastructure (PKI) which is a time-proven approach in the Internet world. We will not go into details of PKI implementation here; we will simply note that 00:03:14 :1:18: error: parse error on input ‘,’ 00:03:17 C-AUTH starts when an initiator (laptops, tablets, etc.) reads out a certificate chain from a responder (cable, AC adapter, etc.). Notice that the process can cover the cables as well as the sources and sinks, allowing for systems to be configured at a high level of safety. 00:03:21 so that does sound pretty proprietary 00:03:29 it's 2019 and your power cables are performing cryptographic authentication 00:03:29 they burn out more easily than traditional bulbs if the lamp is shaking, and use a higher temperature so you have to be careful with what socket you put them into 00:03:53 (Light bulbs are, of course, little wires, which are uneven. So they have a pretty awful feedback loop: as they get hotter, the metal evaprates, making the wire thinner, hence hotter.) In halogen bulbs, the wire is covered with a compound of tungsten and some halogen, that breaks down when it gets too hot, depositing metal on the wire, fixing it (for a while)... 00:04:10 so they can operate reliably at higher temperatures than ordinary lightbulbs. 00:04:35 nice 00:04:38 (Don't necessarily trust me on the details, I'm working from memory here.) 00:04:40 yeah thermal runaway is a problem 00:04:47 it also occurs in bipolar junction transistors 00:06:25 int-e: right, that's why the wire is made of tungsten in traditional bulbs, because it keeps well in high temperatures 00:07:29 Isn't that the one where they managed to pull in fucking ASN.1? 00:07:46 i.e. in the search for security they have, I am confident, guaranteed more vulnerabilities. 00:08:39 I'm curious as to why people hate ASN.1 so much 00:08:45 is it the concept, or just the details? 00:09:10 (I'm reminded of me complaining about Language Server Protocol a while back; I love the idea and hate at least most of the details) 00:09:11 It's the details. 00:09:47 It's more-or-less protobuf, except defined in the 80s by telecom engineers. 00:10:56 It also isn't a single serialization format, it's _several_. 00:11:12 also because implementations are notoriously bad 00:11:32 Yeah, but then, the formats are pretty tricky to implement 00:11:40 right 00:11:42 Wasn't protocol buffers that awful thing where you can supply data fields in an arbitrary order, and even several times? This is just begging to be used to exfiltrate data... 00:11:47 speaking of impossible to implement protocols 00:11:57 my new phone seems to be at least *better* at bluetooth 00:12:08 in that it can play to my speaker without skipping 00:12:52 The main criticism about ASN.1 that I've heard is that it's, apparently, awfully complex. I have never really delved into it. 00:13:29 pikhq: hikhq 00:13:39 int-e: It is awfully complex. 00:13:43 `? portello 00:13:44 portello? ¯\(°​_o)/¯ 00:14:17 It's designed by telecom engineers, and the assumption is there would be a very small handful of vetted implementations everything would use. 00:15:20 presumably this predates the current explosion of programming languages? 00:15:33 1984, so yes. 00:16:04 In practice, ASN.1 seems to get people doing hack implementations of the subset of whatever encoding format their particular application absolutely forces them to implement. 00:16:05 hmm, I think there were still quite a few languages around at that time 00:16:36 How many of them were used by telecoms people? 00:17:24 I have no idea, I can't think of /any/ offhand 00:17:41 Hmm 1984 is too early for Erlang 00:17:45 when does Erlang date from? it would have been appropriate if it existed at the time 00:17:52 1986 00:18:02 (I just looked that up) 00:18:05 so did I 00:18:54 apparently the first Erlang implementation was written by a telecom company in Prolog 00:19:04 so at least one telecom company was presumably using Prolog in 1984 00:19:18 (they subsequently had to abandon that impl because it was too slow; if they were using a general Prolog, I'm not surprised) 00:19:21 https://en.wikipedia.org/wiki/PLEX_(programming_language) is a thing 00:19:25 (Also Ericson. Funny.) 00:19:25 https://www.youtube.com/watch?v=xrIjfIjssLE 00:19:28 Erlang: The Movie 00:19:37 *Ericsson 00:19:48 RIP Joe Armstrong :( 00:23:44 is **bolded text** in Markdown semantically or ? does it need some way to indicate both tags? 00:25:09 hmm, MDN's description of when to use over doesn't convince me, I would use in those cases 00:25:57 fwiw, *italic text* in Markdown is nearly always used for not 00:27:01 (the semantic difference between and is fairly easy to understand once you know it: is audible when spoken, isn't) 00:27:12 interesting 00:29:12 so you use for things like foreign words, terms you're defining, and the like; and to indicate words which are stressed more than their position in the sentence would normally imply 00:29:42 there are CSS attributes for spoken pages, right? 00:29:46 yes 00:31:10 "terms you're defining" -- I think I *would* stress them when reading definitions out loud. 00:31:42 hmm, maybe is correct for those then 00:32:12 Also sometimes you may be using a program without CSS to view, and some don't include any CSS attributes for speech even if they are for otherwise. 00:33:23 I also think someone mentioned CSS has commands to check if it is interlace or progressive video, but such thing does not seem to me it would belong for CSS; but the command to check for mono or colour seem like useful. 00:34:18 that's an interesting one 00:34:26 perhaps there are some animations that would not look right with interlacing 00:34:30 or perhaps it's just for completeness sake 00:34:35 can you detect the display refresh rate? 00:35:10 kmc: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/update-frequency 00:35:14 apparently only qualitatively 00:35:15 how about the color depth 00:35:55 ais523: that's cool 00:36:10 kmc: you have a choice there: bits-per-channel, color gamut, or absolute number of colors 00:36:19 (the latter's for paletted devices) 00:36:30 is CSS always sRGB 00:37:44 it supports "rgb", "rgba", "hsl", "hsla", it doesn't appear to list a color space? 00:37:49 I hate it so much when programs do that 00:38:03 I even wrote a blog post about it: http://nethack4.org/blog/gamma.html 00:38:05 https://developer.mozilla.org/en-US/docs/Web/CSS/@media/light-level ... wow 00:38:25 For videos, it seem to me that whether it is interlace or progressive, and refresh rate, and so on, would be part of the video selection and not relevant for CSS, I should think. 00:38:41 Is there a command in CSS to select a colour by index number rather than by RGB? 00:38:48 that's interesting int-e 00:38:51 most phone can sense that 00:38:53 i wonder if they use it 00:39:00 "This code will likely not work on any devices (device compatablility is low)." 00:39:03 lol 00:39:09 I was about to quote that too :-) 00:39:13 also I guess it's a draft 00:39:35 (for indexed colour displays, it would be useful to ensure the colours are different from each other, since otherwise it might use the same colour for many things since it is the closest colour) 00:40:13 Also, can any web browser have option to pretend to have a slower update frequency than it actually does? 00:40:57 it would be easy enough to implement that 00:41:06 I don't think many people would use it, except possibly for testing 00:41:35 for the ambient light thing it actually suggests that browsers should have controls to set it manually 00:41:38 for accessibility 00:43:05 Looks like modern CSS allows you to explicitly specify a colorspace for color values, but it's with a special uncommonly used syntax. 00:43:34 If you don't use that, and instead use the "rgb", "rgba", "hsl", and "hsla" color things, it's interpreted as an sRGB value. 00:43:57 Also, it says that Media Queries 4 deprecated some media queries, some of that I think may be useful to have. (I think you probably can use "screen" instead of "tv", "projection", and "handheld", but "tty" and "braille" seems like useful to have separately, I think.) 00:44:02 kmc: it's an interesting thought nontheless. 00:44:20 media type: stone tablet 00:44:39 media type: tattoo 00:44:40 But e.g. color(rec2020 1 1 1); is white in Rec.2020. 00:45:06 -!- Sgeo__ has joined. 00:45:07 You can also import an ICC value with it, and use the colorspace defined there. 00:45:34 is css esoteric 00:45:46 that's bizarre, why would you need a complex colorspace when /encoding/ a color for CSS? 00:46:16 Not a clue. 00:46:23 the complexity should normally be on the decode side, because that's what knows the properties of the screen or other display device 00:46:39 the only thing I can think of is cases where you need more than three color channels 00:46:40 This is in addition to letting you explicitly state a color in Lab. 00:47:01 but can I explicitly state an emission spectrum 00:47:10 Well, no. 00:47:22 stating an emission spectrum would probably be incorrect, you're encoding to be seen by humans 00:47:30 For tattoo, I suppose you could use "print", maybe. 00:47:41 so what you really want to be able to state is the subjective experience of colour you want people to be able to perceive when they look at your colour 00:48:13 ais523: 4 channels to accomodate red-green color blindness? 00:48:42 what about tetrachromats! 00:48:56 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 00:48:59 Specifying an emission spectrum has a certain charm. Of course, most hardware just won't accomodate that. 00:49:07 What I want to be able to specify is a colour by index number. (If not supported, the other colour specification would be used.) 00:49:10 there are some printers that use six colours of ink 00:49:14 we should be able to specify subjective colors for different species 00:49:15 oh also 00:49:20 some animals can detect polarization of light 00:49:23 such as cephalopods 00:49:24 And what if your website is supposed to attract bees :) 00:49:35 kmc: even humans, if wearing sunglasses 00:49:40 this is true 00:49:41 and different angles of view, and differnt tinted glasses, yes 00:49:43 and a little bit if not? 00:49:44 (I was thinking ultraviolet, but polarization is a great idea as well.) 00:49:51 also different lighting if it's printed media 00:49:55 My character Ziveruskex can see five colours rather than three, but they don't have a computer machine so it is not a problem 00:50:10 being able to produce circularly polarised output would be useful in showing 3D images 00:50:12 also there should be support for making regions of the screen reflective 00:50:20 b_jonas: oh yes, we can finally distinguish between transparent and reflective windows then 00:50:24 kmc: that's just black 00:50:29 zzo38: don't they at least have illustrations drawn on paper in ink? 00:50:44 most screens are naturally somewhat reflective due to being made of glass, and the reflections are more visible if you don't show anything behind them 00:50:46 devices which do not support turning parts of the screen into mirrors can emulate it using the front-facing camera 00:50:47 ais523: Yes, I suppose so. Maybe there could be the "3d" command for such purpose? 00:50:55 ais523: have you seen the "magic mirror" projects? 00:51:02 no 00:51:04 b_jonas: Perhaps, but it is just a fictional character anyways. 00:51:09 it's a computer screen mounted behind a half-silvered mirror 00:51:11 (That's echoing old joke... somebody was saying that they don't see the point in transparent windows. But they would like to have reflective windows so that they could see what's going on behind them.) 00:51:23 https://www.makeuseof.com/tag/6-best-raspberry-pi-smart-mirror-projects-weve-seen-far/ 00:51:44 so it looks like a regular mirror but you can draw stuff on top (light-colored only, I guess) 00:51:50 looks pretty damn futurey 00:51:54 oh wow, I'm rereading this blog post I wrote and got reminded of ODA 00:52:01 One thing that it seem that only Mozilla has so far is, to select default foreground/background colours by CSS codes. That way you could have reverse video without having to override the user's background/foreground colour settings 00:52:33 CSS isn't eso mostly because it's too widely used 00:52:38 zzo38: that's mozilla only, really? 00:52:45 ODA, on the other hand, seems absolutely insane to a modern audience 00:52:57 b_jonas: I think so, but I don't know 00:53:08 ais523: C++ is also widely used, yet it's definitely eso 00:53:11 ODA, hmm 00:53:22 ais523: it's not widely used because you get a small selection of colors. you don't get extra colors for, like, error messages or anything, and you can't just make them red because that could clash with the default colors. so the safest method is to set the color of everything. 00:53:34 what's ODA? 00:53:46 you get the foreground, background, link, visited link, and a few more stuff like colors in controls 00:54:11 kmc: suppose you're trying to work on a common format for word processors to share information, you have identical goals to HTML 00:54:18 b_jonas: That is why I want to have the ability to specify the index numbers for colours rather than RGB. 00:54:31 (If index numbers are used, then they won't clash) 00:54:31 but HTML hasn't been invented yet (nor have SGML/XML), nor has the Internet (so you're thinking mostly in terms of editing printed documents) 00:54:39 https://en.wikipedia.org/wiki/Open_Document_Architecture? 00:54:41 so instead, you attempt to generalise VT100 control codes 00:54:44 that's ODA 00:55:05 the project started in 1985 but wasn't finished until 1999, by which point it was completely out of date and nobody used it 00:55:58 outdone by mosaic 00:56:12 ais523: wouldn't everyone just use wordstar format? 00:56:33 b_jonas: there was a format explosion at the time, ODA was an attempt to fix the problem 00:56:39 it'd probably have worked if it had been written a bit faster 00:57:03 or, hmm, Wikipedia thinks it was doomed to failure anyway 00:57:11 Now why am I thinking of jigsaw in this context? Is there a connection or is it just misfiring synapses? 00:57:25 because the idea was imposed top-down in Europe and the American word processor manufacturers liked their lock-in 00:57:56 Is ODA less messy than HTML and CSS? 00:58:11 ais523: it's not just about lock-in. hardware was less capable, and it was harder to write good software back then. 00:58:17 zzo38: I don't think so 00:58:22 "generalize VT100 control codes" sounds like a recipe for making a horrible mess. 00:58:29 indeed 00:58:35 I ended up having to read part of the ODA standard because it was referenced by a different standard 00:58:38 it's also very not-declarative 00:58:52 it's a weird little machine for updating a terminal state in-place 00:59:19 kmc: does it at least only go from top to bottom so it can be printed easily? 00:59:33 I guess my horror at ODA is that you've got this huge complex document format, and when it gets right down to the lowest level, bold text is still represented as ESC [ 1 m 00:59:35 Probably feels like more like driving an old dot matrix printer (which is something I've actually done) :) 00:59:40 so you need like only one line of buffer? 01:00:02 b_jonas: even Ecma-48 is pretty out-of-order capable 01:00:30 I like DVI printing format 01:00:33 . o O ( switch to this mode, then we submit some data, then we switch out and to another mode, print some more data, and all hell will break loose if the output terminal is 132 instead of 80 characters wide ) 01:00:35 and suggests codes for a sort of meta-editing where you edit the codes that get sent to the lower level which actually produces the output (and is capable of moving around within that) 01:00:57 there's an old computer monitor next to me at the moment 01:01:08 it /still/ has a guide to control codes for a particular model of printer taped to it 01:01:38 underlined was ESC - l, apparently 01:01:47 (these don't seem to be standardised codes, at least they're different from VT100) 01:02:02 oh, it's probably a 1 rather than an l 01:02:03 I was going to have #esoteric logged to a dot matrix printer with a tractor feed once, for æsthetic reasons. 01:02:09 they're not very different in the font used for the guide 01:02:24 The printer codes are ESC/P which is different from the VT100 codes for the display 01:03:10 Oh good old times. Consumer hardware that came with manuals that actually told you how to program it. (And those were not 100s of pages.) 01:03:59 I think the printer manual I got the codes from was probably hundreds of pages 01:04:26 (Incidentally, there's something faintly mind-blowing about there having been around 14 years of effort spent on attempting to implement HTML using terminal control codes.) 01:04:44 It might have been, because it was also printed in several languages, now that I think of it. 01:05:57 s/effort/bickering/ 01:05:58 I bet 01:06:39 hmm, ODA seems like it's definitely the most appropriate thing to use for INTERCAL manuals 01:06:59 int-e: not int he same volume, I think. at least the manual that I had for the epson matrix printer was only in Hungarian. it even had a few typos in control sequences exactly of the kind you expect from a translated book before digital typography, when the typesetter doesn't quite understand what the book is about 01:07:02 int-e: It is how I intend to design computer, that the manual does describe all of the programming. 01:07:07 complying with standards that nobody else complies with is more or less the most modern-INTERCAL thing possible 01:07:14 ais523: t(?)roff isn't obscure enough? 01:07:16 like an occasional 1 instead of l or backwards and similar 01:07:34 int-e: not really 01:07:38 NetHack still uses it seriously 01:07:45 and it's still the backend for man(1) 01:08:04 b_jonas: that's not necessarily a lack of subject matter knowledge 01:08:22 these are completely arbitrary codes, you often can't guess whether l or 1 is correct if you don't already know even if you know all the context and are an expert on the subject 01:08:35 ais523: sure you can guess. how else would I have recognized the typoes? 01:08:40 there may be more that I didn't recognizer 01:08:53 well, I guessed 1 in this case just because the "end underline" code used a 0 in that position 01:08:58 admittedly it has _fewer_ such typoes than the Hungarian translation of the K&R book 01:09:02 that one is much more terrible 01:09:29 I think at one point they mixed up whether you need a \000 or a 0 for a boolean 01:09:39 Ecma-48 is a bit better in this respect, it has a very clear grammar to allow you to ignore unknown codes correctly 01:10:02 like, they show both ascii and hex of the bytes in the control sequence, and the ascii shows 0 and the hex shows 00 01:10:02 and 1 and l are in completely different lexical classes, so using one rather than the other will nearly always make the code grammatically incorrect 01:10:12 although now it occurs to me that maybe only the lowest bit matters 01:10:48 are you talking about printer codes? I guess you must be because C didn't have booleans at the time 01:10:54 printer codes 01:11:03 they take booleans like you mention 01:11:17 unlike the ecma-like codes which use "h" and "l" 01:11:30 or, for attributes, just different numbers 01:11:39 20 higher to turn off the attribute or something 01:12:46 saying "h" and "l" is wrong, I think; Ecma-48 gives the byte sequences to send purely using hexadecimal, there's not much suggestion that it should correspond to anything in ASCII 01:13:16 the only reason ASCII /might/ be the correct way to interpret characters after ESC is the suspicious coincidence that numbers are sent in decimal using 0x30…0x39 as decimal digits 01:13:28 the K&R translation has a typo related to the \000 character too by the way: the reference implementation source of the fgets function wants '\n' at the end of the string rather than 0 01:14:35 ais523: well ok, but it's intermixed with ordinary character data, and sometimes, when a program parses the more complicated escape sequences wrong, the bytes of an escape sequence can end up interpreted as ordinary characters 01:14:53 that more often happens at the receiving end, for a program parsing keyboard input that a terminal gives to it 01:14:57 but it can happen either way 01:15:33 "and sometimes, when a program parses the more complicated escape sequences wrong, the bytes of an escape sequence can end up interpreted as ordinary characters" ← Ecma-48 is really well-designed so that that absolutely cannot happen, the only time you see it is when terminal developers completely ignore the standard's information on what the grammar of terminal codes is 01:16:20 I get the feeling that most terminal developers don't even realise that, say, = is a digit in Ecma-48 (because it's in the 0x3? range) 01:16:41 ais523: it happens often for keyboard input with terminfo+ncurses programs, because it basically only tries to match literal sequences to the escape codes representing the keyboard input (except maybe some rules with the mouse) 01:17:01 and happens with other programs too with generic terminal input handling (not ecma-specific in theory) 01:17:31 I do realize that, I know my ascii table 01:18:19 I also think that any CSS media type you should also be allowed to specify continuous or paged media. For example, you might have a presentation that is screen but also paged, or if you use continuous paper then it will be print but also continuous. 01:18:23 parsing a terminal code in Ecma-48 is completely trivial and most of the people who don't check the standard probably have more complex code to do it than the code the standard actually wants 01:18:24 ais523: also, a few of the control characters are interpreted the same when they're inside an escape sequence and when they're not, which also shows that they're supposed to be the same character space 01:18:31 at least, for codes starting CSI 01:18:51 zzo38: that's a very good point 01:19:07 ais523: yes, but the problem is that terminfo and many other programs don't even try to parse ecma-48 codes, they try to work with arbitrary terminals, even non-ecma based ones 01:19:31 b_jonas: there's actually two layers, a decoding layer that goes bytes → codepoints and then Ecma-48 below that which mostly operates on the codepoints (but the decoding layer leaves, e.g., CSI-sequences the same so that they stay untouched) 01:19:46 the decoding layer is in an entirely separate standard, and that explains why some things work consistently regardless of context 01:20:04 the decoding layer is widely disrespected nowadays, though, because it is inconsistent with most encodings in widespread use 01:20:09 in particular, termbot had joe compiled to DOS, with some mild changes by me, and that one parses DOS keycodes, not ecma, but knows nothing about either, just has the literal sequences in the config file 01:20:15 e.g. it isn't compatible with Windows-1252 nor with UTF-8 01:20:57 so I ended up having to work out my own standard for mixing it with modern encodings when I wrote the bytes → codepoints layer for asciinema 01:21:59 hmm, does anyone actually use UTF-1? it's the traditional-terminal-decoding-layer-compatible Unicode encoding 01:22:07 hm? 01:22:13 what's UTF-1? 01:22:51 https://en.wikipedia.org/wiki/UTF-1 01:23:08 I know about UTF-7, which is an encoding of unicode chars with only low bytes, and is used in MIME headers and mobile phone contact list export formats 01:23:22 it's a multibyte encoding system that's sort-of ASCII compatible (ASCII characters encode to themselves but encodings of other characters can contain embedded ASCII) and avoids both the C0 and C1 ranges 01:23:55 trying to make terminal standards work with modern encodings is hard because they both try to use C1 for different purposes 01:24:34 so in practice, what happened is that there are fallback codes specified for 7-bit connections that let you encode all the C1 codes using C0 codes, and terminals support /only/ those so that the C1 range can be used for things like UTF-8 01:25:14 yeah, but didn't those fallback codes basically always exist, because terminal io was sometimes sent through 7-bit serial/modem connections? 01:25:16 let's use UTF-20.1 or whatever it is 01:25:43 kmc: it goes from 0x0 to 0x10ffff (21 bits would be 0x1fffff) 01:25:50 so yes, 20 and a bit 01:25:51 having those C0 and C1 codes in the bottom 256 codepoints is such a waste of space :( 01:26:30 ais523: but subtract 2048 values for surrogate pairs 01:26:32 I'm not convinced, many of those codes are pretty important 01:26:35 which are not valid Unicode codepoints 01:26:35 OTOH, many of them aren't 01:26:39 most of them aren't 01:27:05 which C0 points are widely used 01:27:15 `perl-e print 0x10ffff 01:27:16 1114111 01:27:24 `perl-e print 0x10ffff - 2048 01:27:25 1112063 01:27:39 I don't want to subtract 2048, 1114111 is a much prettier number 01:27:42 00 (NULL), 07 through 0D (the ones with C escapes), and 1B (escape) 01:27:49 that is a pretty number 01:27:54 also there are a few other miscellaneous invalid codes, like the byte-reversed byte order mark 01:27:55 kmc: no, that's not what's the waste. it's having very rare scripts in the low 2048 codepoints is what's a waste. though ais told me that was a historical accident, because the code points were assigned before utf-8 was invented. 01:28:08 b_jonas: it's all historical accidents 01:28:09 but yes 01:28:14 well sure 01:28:18 they at one point naïvely thought they could encode everything in 16 bits 01:28:20 even ASCII 01:28:37 let's go back to baudot 01:28:44 baudot is still used sometimes in ham radio 01:28:54 it doesn't scale very well to adding new characters 01:29:14 https://www.sigidwiki.com/wiki/Radio_Teletype_(RTTY) 01:29:20 this is still fairly popular 01:29:26 one day I picked up a Japanese RTTY contest from my house 01:29:29 tons of RTTY traffic 01:29:51 I think Unicode is messy. (I partially wrote (and altered) a document of Universal Terminal Character Coding, which is better for use with fix pitch displays without semantic character coding for displayed characters. Some of the characters are in Unicode, some have a ambiguous conversion to Unicode, some have a ambiguous conversion from Unicode, and some are not in Unicode at all.) 01:29:59 `fetch http://nethack4.org/esolangs/7/7.pl 01:30:00 2019-07-20 01:30:00 URL:http://nethack4.org/esolangs/7/7.pl [23458/23458] -> "7.pl" [1] 01:30:08 `ls 01:30:12 7.pl \ 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 01:30:21 `mkdir interps/7 01:30:22 No output. 01:30:29 `mv 7.pl interps/7 01:30:29 mv: missing destination file operand after '7.pl interps/7' \ Try 'mv --help' for more information. 01:30:33 `` mv 7.pl interps/7 01:30:35 No output. 01:31:11 (And, some characters, if you convert to Unicode you need multiple Unicode characters to represent it.) 01:31:27 `` printf '#!/bin/sh\necho "$1" | interps/7/7.pl /dev/stdin' > ibin/7 01:31:29 No output. 01:31:35 `` chmod a+x ibin/7 01:31:37 No output. 01:31:44 `` chmod a+x interps/7/7.pl 01:31:45 No output. 01:32:03 `! 7 5325101303040432004513151401430134321027403 01:32:07 Hello, World! 01:32:18 (I got the program off TIO, thus the weird capitalisation) 01:32:19 ais523: shouldn't that have an exec in it? 01:32:31 b_jonas: I guess it would be marginally more efficient? 01:32:38 i don't think there's a correctness difference 01:32:43 hmm 01:32:53 also, the fact that I'm using an anonymous pipe here might confuse things 01:33:06 because the echo and the 7.pl may have to run in parallel 01:33:18 I think it would make the exit code correct even if the interpreter dies to a signal 01:33:28 but yeah, that probably doesn't matter 01:34:25 kmc: try translating 32 51 01 30 30 40 43 20 04 51 31 51 40 14 30 13 43 21 02 from base 6 into binary, you'll get hello world in Baudot 01:34:34 -!- Sgeo_ has joined. 01:34:51 so there is some use being made of it nowadays, admittedly in esolangs 01:34:57 what lang? 01:35:00 7 01:35:03 https://esolangs.org/wiki/7 01:35:41 when Donald Knuth wrote an INTERCAL program, he used three-letter names for line labels via baudot-encoding them into 15-bit numbers 01:35:59 kmc: it's ais's underload-like that, instead of using parenthesis, uses levels of escaping values to such functions that output that value, or something strange like that 01:36:22 b_jonas: the original aim was "Underload but you could generate /any/ string even if its brackets weren't matched" 01:36:26 then it got a little out of control 01:36:42 the escaping part somewhat reminds me to Endo DNA 01:36:45 ais523: interesting 01:37:00 well, my original aim for Consumer Society wasn't what it eventually turned to 01:37:18 but it somehow converged into a language with very simple definition but interesting properties, which is why it survived 01:37:31 I have other ideas that I haven't managed to turn to interesting esolangs 01:37:46 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 01:38:10 it tends to do well on CG&CC when it's outputting constant strings, because it's pretty good at it (Baudot's a pretty dense encoding) and it lets you do some pretty complex explanations of string literals sometimes 01:38:43 here's a good example: https://codegolf.stackexchange.com/questions/183248/output-the-%c5%8bar%c3%a2%c3%be-cr%c3%ae%c3%be-alphabet-song-without-using-many-letters 01:42:18 what happens if I plug a USB A-to-C cable into my C charger and then plug the male A into my laptop 01:42:34 -!- Sgeo has joined. 01:44:04 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 01:44:11 Then, there would be a disaster. 01:44:53 (I'm guessing probably it's safe. That sentence just popped to my mind. It's a quote from a book.) 01:45:47 I see 01:45:48 which book 01:46:42 Look to Windward, by Iain M. Banks. It's not really related contextually, and the quotation was slightly edited. 01:46:50 alright 01:47:51 Context: http://ix.io/1OX1 01:48:00 god, it must be such a nightmare to make all these different USB standards work together 01:48:10 including the proprietary USB2 quick charge protocols 01:48:14 `! 7 23723 01:48:15 23723 01:48:17 the Pixel 3a seems to support at least some of those 01:48:28 7 is very good at writing quines of varying levels of cheatiness 01:48:29 because I can plug it into a USB-A port and get more than 0.5A 01:48:36 `! 7 23 01:48:37 23 01:48:39 `! 7 3 01:48:40 3 01:48:53 and I think this A charger port does not do actual USB-PD, although I have heard that can be done in theory 01:49:00 `! 7 223 01:49:01 2237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237223722372237 01:49:09 `! 7 2233 01:49:10 223372233 01:49:15 how about 323? 01:49:18 There's that BC thing as well, right? 01:49:28 `! 7 323 01:49:29 323'copy' command run with no bar in the frame at interps/7/7.pl line 607, <> chunk 1. 01:49:34 `! 7 5252 01:49:36 ​'copy' command run with no bar in the frame at interps/7/7.pl line 607, <> chunk 1. 01:49:49 oh right, the stack underflow happens at the wrong moment 01:49:58 3 exits the program on stack overflow but nothing else does 01:50:02 * stack underflow 01:50:12 other than the end of the program 01:50:19 so you need to time the stack underflow so that it hits in a 3 command 01:50:21 ("that BC thing" = USB Battery Charging Revision 1.2.) 01:50:33 fizzie: I don't know anything about that 01:50:40 `! 7 223372233 01:50:40 223372233 01:50:43 I don't know about the different USB2 fast charge things 01:50:50 223372233 is uncontroversially a valid quine 01:50:51 just that they are complicated hacks 01:50:55 or, maybe not? 01:51:01 "To recognize Battery Charging, a dedicated charging port places a resistance not exceeding 200 Ω across the D+ and D− terminals." That doesn't sound too complicated. 01:51:06 no, it isn't, the second 2233 is using itself to print both halves 01:51:19 fizzie: there are more complicated ones 01:51:30 you'd need the second half to read the /first/ half twice 01:51:35 `! 7 1322337132233 01:51:36 1322337132233 01:51:38 there we go 01:51:52 fizzie: https://en.wikipedia.org/wiki/Quick_Charge 01:51:59 that one's an uncontroversially valid quine 01:52:18 fizzie: ah, this is what I read about it http://blog.deconinck.info/post/2017/08/09/Turning-a-Quick-Charge-3.0-charger-into-a-variable-voltage-power-supply 01:53:35 I guess the problem with USB BC 1.2 is that it only goes up to 1.5A at 5V, which isn't really all that much. 01:54:08 there's a nice state machine that looks like a butterfly 01:54:19 fizzie: yeah 01:54:40 you need more than 5V to fast charge anything laptop/tablet-ish 01:55:18 my laptop charges at 20V, whether from USB-C or the dedicated brick 01:55:36 I guess that also simplifies the power circuitry, although if it's going into a buck converter, probably doesn't matter that much 01:56:14 I'm glad I got this USB3 meter. it is fun 01:57:47 you can buy a soldering iron that runs from USB3 01:57:53 https://www.amazon.com/UY-CHAN-Programmable-Pocket-size-Soldering/dp/B07G71CKC4 01:58:06 s/USB3/USB-PD/ 01:59:58 the Pixel 3a battery life is not as good as my Moto G5+, which was really exceptionally good 02:01:10 oh well 02:02:41 `perl-e print 0x10ffff - 2048 - 66 02:02:42 1111997 02:02:49 that's not too bad-looking a number 02:03:04 (in addition to the 2048 surrogates, there are 66 codepoints in range that are invalid for other reasons) 02:03:16 oh? 02:04:08 FDD0 to FDEF were reserved for programs to use internally, knowing that they'd never clash with any valid codepoint 02:04:20 also, any codepoint ending …FFFF or …FFFE is invalid 02:04:56 (0xFFFE being the most famous, because it's a byte-swapped 0xFFEF, and if a byte-swapped byte-order-mark could appear at the start of a file that'd be /really/ bad) 02:07:22 oh, interesting 02:08:16 In some programs 0 will not be valid either. 02:08:35 such as in XML? 02:08:43 they've started to do some weird things with combining characters 02:08:49 take a drink for “modified UTF-8” 02:08:52 Yes, XML and RDF. 02:08:54 such as https://emojipedia.org/transgender-flag/ 02:08:58 I like the UTF-8 fake NUL character 02:09:00 . o O ( r/aell/yb da ) 02:09:17 is this "Emoji 13.0" spec part of Unicode? 02:09:54 there should probably be a proper, official name for the encoding that's UTF-8 except that NUL is encoded as C0 80 rather than 00 02:10:11 It is simply a overlong encoding for NUL 02:10:26 ais523: JNI calls it modified UTF-8 02:10:29 wait no 02:10:31 ("modified UTF-8" has the problem that it encodes astral plane characters by splitting them into surrogates and UTF-8ing the surrogates separately…) 02:10:38 JNI does that too yeah 02:10:54 I’ve never heard of something that uses overlong null but doesn’t do the surrogate thing? 02:10:57 WHITE FLAG followed by "MALE WITH STROKE AND MALE AND FEMALE SIGN" (:rolleyes:) 02:11:07 there's also WTF-8 02:11:15 https://simonsapin.github.io/wtf-8/ 02:11:17 is that the same? 02:11:22 j4cbo: nor have I, but that doesn't mean it's a bad idea 02:11:47 WTF-8 is just another use of UTF-8, that supports encoding lone surrogates. 02:11:49 -!- xkapastel has joined. 02:12:07 (WTF-8 is useful if you want to convert UTF-16 to UTF-8.) 02:12:20 soooooo muuuuuch damage was done in the brief period when “Unicode” meant what we now call “UCS-2” and 64k codepoints ought to be enough for anyone 02:12:24 so much :( 02:12:55 the windows API, NTFS, USB, Java, wchar_t, ... 02:13:02 I think a perfect encoding would be more radically different from Unicode, so maybe the current astral plane mess is beneficial in that it provides more incentive for a fix 02:13:35 I've been thinking for a while about a format I call "Duocode", which represents each character as a pair: one element is the visual appearance of the character, the other the language/script/similar context 02:13:59 so, e.g., Cyrillic a and Latin a have the same appearance, Latin a and Latin b have the same script 02:14:13 this fixes a number of problems more or less automatically 02:14:39 I think different kind of character codings can be used for different purposes. But, yes that "Duocode" could work if you want both display and semantics without having to worry about both in programs that don't use it. 02:15:04 for example, suppose you're reading some printed Japanese text that you want to type into a computer 02:15:11 and find a lone thing in the text that looks like an "a" 02:15:19 out of context 02:15:32 in Unicode, you have to guess which script it's in to use the appropriate context 02:15:48 in Duocode, you'd be able to say "unknown script" (or perhaps even "Japanese") 02:15:57 *to use the appropriate character 02:16:07 really, Unicode's a big mess of mixing appearance and semantic 02:16:09 *semantics 02:16:18 My own "Universal Terminal Character Coding" also avoids that problem too (but it doesn't have semantics) 02:16:55 * kmc tries to create an emoji for a family with 5 parents and 3 children 02:16:56 is that like TeX, in which the font and low 8 bit of the character code uniqely determines the dimensions of the character, the upper 8 bits of the character code can't change it? 02:17:13 b_jonas: a bit 02:17:31 although in this case I think the dimensions might change for different scripts, even the appearance to a small extent 02:17:45 b_jonas: That is a feature of the .TFM format, which is used in TeX (which itself does not support characters longer than 8-bits at all), but may be usable with other programs too. 02:18:06 it selects as a single character, but that might be the usual behavior of anything combined with ZWJ 02:18:10 ais523: anyway, that doesn't sound like a particular good idea to me. now you're just picking two random properties of the character and want to put it in the code. but there are other properties that programs can be interested in, not just those, and you can look them up from tables, so I don't see why your particular format would be the best. 02:18:12 it renders the same as a few nuclear families 02:18:24 (I once wrote a program that had to write to a file containing UTF-16 text, with the source file being ASCII. In the parts where the text was exported to the file, it supports any UTF-8, including improper UTF-8 such as Modified UTF-8, CESU-8, etc; and overlong encodings can be used to escape trailing spaces and line breaks, too.) 02:18:27 (binary families? whatever) 02:18:42 zzo38: ok 02:19:14 I think Duocode would probably use the same appearance for б and 6 (the first is a Cyrillic lowercase b, the latter an Arabic numeral) 02:19:26 but you'd want to render them differently based on the script code 02:19:35 b_jonas: I don't consider them random properties: 02:20:05 a) they should be a perfect key, in the sense that one script can't meaningfully have two characters that look the same, so the pair should uniquely define the character 02:20:07 (The reason it does this is just due to the output file being UTF-16 and the input file being ASCII; otherwise, it probably won't do such thing, and would use the same encoding as the output file if it is compatible with ASCII.) 02:20:51 b) it removes any incentive to merge characters that are almost identical but not quite into identical codepoints, which has caused some controversy in the past (e.g. merging Chinese and Japanese characters that look the same even though they need to be rendered slightly differently) 02:21:36 ais523: but then you'll just have to set the "script" artificially in such a way that it matches your property (a) 02:21:37 c) appearance isn't a random property at all, it's what people use when actually reading a document 02:21:55 Yes, then a font that only supports one character and not the other one, will still be able to approximate it. 02:21:56 b_jonas: I don't think there's much artificial about it? either you know or you don't 02:22:03 if you know then it's not artificial 02:22:25 if you don't know, Duocode will let you say that you don't know, rather than having to try to find a character that looks similar but might mean something totally different 02:22:42 it's really easy to, say, mix up Ⓒ and © 02:23:02 when you're using Unicode 02:23:07 ais523: sure, but in what sense is that "script", rather than just an arbitrary selector among similar looking characters? 02:23:23 b_jonas: it's basically the context in which the character appears 02:23:32 like, the language you're writing in 02:23:42 ah, you mean language! 02:23:42 often it'll be the same for an entire document 02:23:44 that's a bit better 02:23:57 we currently encode that in metadata 02:24:11 well, it's a different word because there's a technical distinction, e.g. Russian is a language but Cyrillic is a script 02:24:33 perhaps going as far as just making it the language would be better though 02:24:40 How many bits will be used for each part (visual and script)? 02:24:47 it depends on whether different Cyrillic-using languages always want to render it the same way 02:25:25 zzo38: 16 should be enough for the script half, it'd be pretty tight on the visual half though so that might need to be larger to be on the safe side 02:25:25 ais523: no of course not. there are either two or three different incompatible appearances for the same cyrillic letters, depending on who you believe 02:26:07 oh, the other advantage of recording the language separately is that it lets you know whether two different-looking characters are supposed to be semantically equal or not 02:26:15 ö and oe are semantically equal in German but not in English 02:26:19 you probably need at least two different ones for latin too 02:26:37 or more likely three, one specifically for turkish only 02:26:47 yes, there are, e.g., two different ways to write lowercase a in English 02:27:07 one has a curve above the main body, touching it at the right hand side, curving over, and stopping without touching at the left hand side 02:27:16 the other has a taller body and a little curve at the bottom-right corner 02:27:59 https://en.wikipedia.org/wiki/File:LowercaseA.svg 02:28:10 For typesetting, I think what the .TFM format does is good (except that it is limited to 256 metrics, which is not always enough, and some languages and uses may need a few additional specifications that the .TFM format does not support) 02:28:44 I think I'd give them separate codes because there are probably cases where the distinction matters (also, this would basically force the use of a normalization library, which is probably a good thing) 02:30:12 anyway, this is all idle/eso speculation, unseating Unicode is almost certainly impossible at this point 02:30:49 In modern English orthography, the letter ⟨a⟩ represents at least seven different vowel sounds ← that sounds about right for English 02:30:53 at least until they run out of code points for emoji 02:31:56 int-e: they won't, they're already using crazy standardized code point combinations for emoji that work randomly differently for different emoji characters 02:32:29 combining stuff that is randomly valid or not valid depending on which brand of mobile phone first added the particular emoji and in what year 02:32:38 b_jonas: that's done for backwards-compatibility, I think 02:33:10 for example, you can zwj gender markers onto emojis representing particular jobs to get a gendered emoji for the job, but if the client doesn't have one it can just render them separately 02:33:35 that's how the family emojis work too 02:33:50 man + zwj + man + zwj + girl 02:34:04 hence me trying to figure out if i can make poly family emojis 02:34:24 ah, and the trans flag is the same way 02:34:47 zwj got kind-of more and more out of control as time went on, I think 02:34:50 I think it is messy, but so is the rest of Unicode 02:34:59 WAVING WHITE FLAG + ZERO-WIDTH JOINER + MALE WITH STROKE AND MALE AND FEMALE SIGN 02:35:35 hmm… perhaps you should be able to zwj absolutely anything onto a flag 02:35:41 a lowercase a flag would be fun 02:36:24 🏳‍a 02:36:48 strangely, Gnome renders it differently without the ZWJ but the a doesn't go onto the flag in either case 02:37:13 ais523: how about a CIRCLED LATIN CAPITAL LETTER A flag 02:37:19 just look at how the country flags are encoded 02:37:26 how about a CYRILLIC MULTIOCULAR O flag 02:37:34 b_jonas: they have a special copy of the latin alphabet, right? 02:37:38 or putting regulr emoji on flags: 🏳‍😀 02:37:38 and a pair of those gives an ISO country code? 02:37:54 kmc: actually, the whole flag thing was done to avoid having to specify which countries existed 02:37:58 my chrome does not seem to do the trans flag thing yet 02:38:11 which can be very controversial 02:38:29 (I guess there may also be cases where the existence of the country is uncontroversial but which flag to use is controversial?) 02:38:37 so yes, they use pairs of what are, effectively, flag surrogates 02:38:38 * int-e wonders whether unicode has the dancing men alphabet (Sherlock Holmes) somewhere. 02:38:40 ais523: exactly. but the problem is that some of those two-level country codes have been reused already 02:38:53 https://blog.emojipedia.org/fun-emoji-hacks/ 02:39:02 they should have used the three-letter country codes to avoid a flag randomly appearing as the flag of an unrelated country ten years later 02:39:45 int-e: I think that's just a different font for the latin letters. also we don't even know all of it, some letters are missing. 02:39:50 https://blog.emojipedia.org/ninja-cat-the-windows-only-emoji/ 02:40:01 Then add a date to the flag 02:40:09 "🇪 🇺" without the space produces "🇪🇺", so it's not /just/ countries 02:40:27 (that's "EU" in regional indicators, for people whose client can't render it) 02:40:37 int-e: I could just as well ask for the strange futhark rune that Jules Verne uses for the letter "G" but that was probably never used to that meaning anywhere 02:40:43 "UN" also seems to work: 🇺🇳 02:41:19 apparently some people got butthurt at some point because you can put a "NO" circle-slash over the rainbow flag 02:41:31 but you can put it over a frog emoji too so let's call it even 02:41:33 is there anything you can't put it over? 02:41:37 right 02:41:45 b_jonas: it's almost like the choices of what's put into Unicode are arbitrary... 02:41:47 IIRC it's a combining character 02:41:50 ;) 02:41:57 kmc: we'll fix that in Newspeak 02:42:02 hmm… does this mean you can do things like flag-acute and flag-umlaut? 02:42:07 probably 02:42:46 🇬🇧̈ 02:42:59 emojis are very political, on twitter putting them in your display name is like badges of which causes you support 02:43:03 it's hard to keep up 02:43:04 Firefox doesn't put the umlaut on top :-( 02:43:10 Konversation does, but it can't render the flag 02:43:42 the avocado has become the "YIMBY" pro-housing emoji 02:44:23 and the rose is a socialist / Labour Party thing 02:44:28 and frog is alt-right due to pepe 02:44:48 and there's a bunch more 02:44:57 but the avocado is the most amusing one 02:45:07 also the tastiest of those 02:45:25 i ate frog once, do not recommend 02:45:37 the rose is the Labour Party's logo in the UK (and has been for decades, predating the emoji), so that one is fairly easy to explain 02:45:50 yep 02:46:40 The rose was popular in socialist countries (at least the GDR) as well. 02:47:27 oh wow I didn't realize they had different hair styles in addition to skin tones 02:47:31 the UK Labour Party tend to oscillate wildly relating how socialist they are, so they're not an ideal reference to use 02:47:58 they're unusually socialist at the moment, but were to the right of the Conservatives not all that long ago 02:48:09 so they might not be the greatest reference for defining an emoji 02:48:13 yeah parties are funny like that 02:48:26 DSA also uses a rose 02:49:12 https://emojipedia.org/female-singer/ 02:49:26 I like that several systems use pink/purple hair to identify a singer :P 02:49:43 once I flew to the UK with some friends, all of us happened to have brightly colored dyed hair 02:49:58 and people assumed you were a pop group? 02:49:58 and the customs agent asked "Are you in a band or something?" 02:50:00 yep 02:50:39 two of my friends likewise had brightly colored hair and were touring rural china on a geology trip and 02:50:45 were stopped /constantly/ by locals wanting a photo 02:50:57 seeing westerners was weird enough by itself, let alone ones with bright green hair 02:51:22 also some random stranger asked my friend where to buy LSD on the basis that said friend had bright red hair 02:51:50 in my first passport photo I had green hair 02:51:54 and looked really good 02:52:05 second one was also good, but really masculine 02:52:11 third (current) is crappy but recognizably female 02:52:20 as is my driver's license photo 02:52:36 what really pisses me off is I need to get the DL renewed on my birthday next February, even though I got the new one (w/ updated gender marker) this year 02:52:40 it didn't reset the expiration date 02:52:43 . o O ( identity transformation ) 02:52:49 hehe 02:53:26 they don't have "pregnant man" emojis yet 02:53:49 that's going to become a problem at some point 02:54:39 i'm disappointed that you can't ZWJ the bride/groom emojis 02:54:54 at least on my system 02:55:57 merperson... now this is just silly. they should have a combining character so you can join MAN + FISH 02:56:04 then we can do all the other animal combinations 02:56:25 is this the point at which someone links the XKCD about the vomiting rocket emoji? 02:57:04 hmm… at some point you'd assume that correct emoji rendering would become AI-hard (like AI-complete, but harder because you need knowledge of the world too) 02:57:30 "The Kiss: Woman, Woman emoji is a sequence of the 👩 Woman, ❤ Heavy Black Heart, 💋 Kiss Mark and 👩 Woman emojis." 02:57:33 this is pretty elaborate 02:57:54 ais523: haha 02:57:57 I hadn't seen that one 02:58:06 "Vomiting Dove" makes sense because that's how they feed their young 02:58:08 sort of 02:58:16 it's also part of the mating ritual 02:58:25 ais523: https://xkcd.com/1857/ is better than the vomiting rocket one. 02:58:51 slightly less ontopic, though 02:59:02 always a critic 02:59:17 the unicorn's horn should also be a modifier 02:59:24 there was a followup which actually reviewed the emoji movie, I think that's better than either (but even less ontopic) 03:00:09 https://www.xkcd.com/1870/ 03:00:26 (for anyone who hasn't found it yet, the original xkcd we were discussing is https://www.xkcd.com/1813/) 03:01:30 Patrick Stewart voicing the poo emoji is probably the worst example I can think of of an actor taking a role way beneath him 03:01:42 maybe he owed the mob a bunch of money or something 03:02:11 i have read that if you're already famous, voice acting work is absurdly lucritive for very little work 03:02:17 the title-text comment about real-world usage of the upside-down smiley face emoji is one of those things that's really thought-provoking 03:03:41 TJ Miller rage-quitting Silicon Valley to star in that piece of shit is also pretty pathetic 03:03:43 (-: 03:03:55 he's a real treat https://en.wikipedia.org/wiki/T.J._Miller#Legal_issues_and_controversies 03:04:04 ais523: yeah 03:04:14 What I can find, U+1F93F is diving mask, not for vomiting. 03:04:21 I don't know how to explain what upside down face, or face with no mouth means 03:04:24 but I think I can use them 03:05:41 kmc: I'm not sure if I can use them but I sort-of get the meaning in other people's usage 03:05:48 presumably you've seen them more than me 03:06:34 the great thing about this is that it acts as a disproof of the Sapir-Whorf Hypothesis that can actually be communicated to other people, because it's a sort of shared disproof rather than being specific to one person's thoughts 03:06:57 (I've thought several disproofs in the past, but they have the fundamental problem that I have no way to easily communicate them to other people) 03:08:32 hmm… now I'm thinking about that moment several years ago when I had to ask someone what Kappa meant (in the common colloqual usage) as I didn't figure it out exactly based on examples 03:09:32 (I got close, but not close enough) 03:16:11 hmm… I wonder if it makes sense to use strings like "" as BOM-equivalents to show the encoding of text that escapes Unicode into ASCII rather than using more normal encodings 03:19:59 how does it disprove S-W? 03:20:33 ais523: you mean that if a file starts with the ASCII literal string "" then the decoder should assume it's ASCII, w/ Unicode escapes of that form? 03:22:19 kmc: right 03:22:37 hmm 03:22:40 is that useful? 03:23:14 it's not obviously useless; say you want to send an HTML file over a 7-bit connection but need it to round-trip perfectly 03:23:47 the result would be way more readable (also more likely to be interpreted correctly by a random computer program) than UTF-7 03:24:20 you could just use no BOM but then people would be uncertain about whether the input contained the actual characters or the escaped version 03:27:41 yeah 03:27:51 but the escapes will already have that meaning no matter what 03:27:58 so it's just a hint that there will be no non-ASCII characters 03:28:48 well, the difference is that if the original text contained characters in both escaped and unescaped form 03:28:58 the version after encoding will contain them in double-escaped and escaped form 03:29:03 allowing you to roundtrip 03:29:22 (whereas if you tried to escape into valid HTML directly, the distinction would be lost because double-escaped would just echo) 03:33:45 -!- FreeFull has quit. 03:51:21 ah I see 03:51:32 interesting 03:51:46 TIL that in Japan, it is considered lucky to dream of an eggplant on the first night of the new year 03:53:07 you can learn a lot about asian culture by reading about emojis :P 03:54:02 (eggplants, hawks, and Mt. Fuji) 03:56:20 how many specific, singular things are represented by Emoji? 03:58:13 Japan, Mt. Fuji, the Earth (in several variations), the Statue of Liberty, the Tokyo Tower, the Kaaba, Sol, Luna (both in several variations) 03:58:23 hmm, maybe compose keys should use RFC 1345, it's /way/ more comprehensive than any other compose key implementation I've seen 04:00:47 huh, it even has control codes 04:01:03 …it even has /C1/ control codes 04:01:26 Compose C I for CSI, for example 04:01:40 huh 04:01:53 that said, some of the characters in Brachylog's character set don't appear even in RFC 1345 04:27:16 [[User talk:A]] https://esolangs.org/w/index.php?diff=64584&oldid=64558 * A * (+4528) /* Sandbox */ new section 04:28:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64585&oldid=64584 * A * (-101) /* Sandbox */ 04:28:45 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64586&oldid=64585 * A * (-4427) 04:39:13 -!- xkapastel has quit (Quit: Connection closed for inactivity). 05:44:39 shachaf: should I get some kind of magsafe nonsense thing for my USB-C charging 05:48:07 -!- Sgeo_ has joined. 05:48:47 -!- ais523 has quit (Quit: quit). 05:51:17 -!- Sgeo has quit (Ping timeout: 245 seconds). 06:02:53 wow, there are all kinds of fun things i can do 06:03:13 like my phone came with this USB-C-male to USB-A-female adapter 06:03:23 which i guess is like an OTG adapter 06:03:34 but I can also use it to turn a USB-C charger into a legacy USB charger 06:03:44 which means one less thing to carry 06:03:44 :3 06:07:35 Oh it's a charger with a USB-C port, and a USB-C plug-plug cable? 06:07:42 I mean, your usual charger setup 06:08:18 my phone came with a "regular"/legacy USB-A charger but with the relevant fast-charging capabilities, and an A-male - C-male cable, for charging it 06:10:28 I see 06:10:39 right, mine came with a brick that has a USB-C port on it 06:12:34 and then I got another brick that also has USB-C on it, but this one is a bit larger and can charge my laptop too 06:13:08 so i will carry that in my everyday bag, instead of a separate phone and laptop charger 06:14:15 along with a C-to-C cable and an A-to-C cable 06:14:22 and if I need to charge both I can charge the laptop from USB-C and the phone from its USB-A port 06:14:55 and the phone can charge fast enough from my A-only powerbank so I'm keeping that 06:15:36 FireFly: so I wonder if your legacy brick supports USB-PD on its type-A port 06:15:50 or if it only supports the legacy, quasi-standard quick charge thingies 06:15:55 it is so complicated now 06:16:54 Most likely not USB-PD (as in, the standard "fast charge" thing), because phone uses the other quickcharge thing common in the industry 06:17:26 the Nintendo Switch does USB PD IIRC, but its charger just comes with a physical cable attached to the wallwart (and USB-C male at the end of the cable) 06:18:29 My understanding is that the legacy, quasi-standard quick charge thingie was to adopt USB PD as a required thing to support in the next version of it 06:18:41 so hopefully that mess will go away/unify over the next few years? maybe 06:19:23 IIRC phone cos went and did their own thing because the standard PD thing was taking its merry time, and they didn't want to wait around? or something 06:19:28 which I guess I could also see 06:19:42 annoying as the fragmentation is 06:29:38 -!- sprocklem has quit (Ping timeout: 245 seconds). 06:35:07 -!- Camto[m] has quit (Quit: Idle kick: User has been idle for 30 days.). 06:41:50 -!- sprocklem has joined. 07:03:20 yeah 07:03:46 i mean, as messy as the details are, it's working pretty well for me the consumer 07:03:59 if I plug a "fast charging" device into a "fast charging" charger then it usually "fast charges" in some way or another 07:06:04 I don't think it's the case between the Switch and the phone (which are the two USB-C-charging devices I have so far), but ah well 07:06:27 or well, I mean.. it *charges* either way, but charges quicker when I use the "right" charger rather than the "wrong" one 07:06:38 mm 07:06:47 (but fortunately most of the time I'm not that much in a hurry anyway) 07:06:59 so I just use whatever is closest/already plugged in because lazy 07:07:21 yeah 07:07:37 fast charging will wear out your battery faster won't it 07:07:46 I think so, and that's a fair point 07:08:03 I know that's a thing for electric vehicles 07:08:19 I don't know if it matters for a phone that will probably be replaced within 5 years anyway 07:08:26 * kmc has a drawer of old smartphones 07:08:34 Maybe devices ought to ask you when you plug it in at what rate you want to charge it (and use that to decide whether to negotiate for faster power or not) 07:08:41 mm 07:08:50 I tend to not be very consumer-y when it comes to smartphones :p 07:09:01 I did get a new one last year, but that was replacing the aging Jolla1 phone from 2013 07:09:41 before that I had the E7 briefly which I got as a replacement when the N900 died, and before that, said N900 which was the first 'smart' phone I had 07:10:10 so I do value not wearing the battery too much :p 07:10:57 The J1 had a very worn out battery, and very worn out USB connector.. those were not insignificant in deciding to get a new phone 07:11:28 mm 07:11:31 I just got a new Pixel 3a 07:11:40 because I had cracked the shit out of the screen on my Moto G5+ 07:11:49 and it was looking not too easy to repair / replace 07:11:55 ah 07:11:56 it was a good phone, though 07:12:16 pro tip, don't store your phone in a purse with a heavy metal object 07:12:29 :| 07:12:41 heavy (metal object), or (heavy metal) object? 07:12:58 the former... I hope 07:13:02 I think it's stainless steel 07:13:16 *nod* 07:15:38 this Anker brick has one USB-C-PD and one USB-A with "PowerIQ 2.0" 07:15:41 whatever the hell that is 07:15:41 I do keep my phone and keys in separate pockets for a reason :p 07:15:50 no idea 07:16:17 it seems to be their proprietary name for an implementation of various different devices' quick charging specs 07:16:19 I don't know 07:16:38 normally I do keep my phone in a pocket by itself, but in this case I was wearing a dress and did not have pockets 07:16:42 I think/thought https://en.wikipedia.org/wiki/Quick_Charge was the main competitor to USB-PD (and ah, it looks like 4 and 4+ also do USB-PD stuffs) 07:17:13 and was distracted while leaving a party so did not consider the hazards 07:17:21 mm 07:17:59 I also dropped that phone on concrete on many occasions 07:22:57 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 07:23:59 -!- Lord_of_Life has joined. 08:20:08 -!- AnotherTest has joined. 08:57:53 " the great thing about this is that it acts as a disproof of the Sapir-Whorf Hypothesis" => huh? what is a disproof? 08:58:30 -!- haavard has quit (Remote host closed the connection). 09:00:02 " I had to ask someone what Kappa meant" => that's one of the Twitch chat specific emoticons. Yeah, it's not trivial to figure out what the commonly used ones mean from examples. I don't think I understand them either. I think Kappa marks a certain kind of humour where you act as better than others or something. 09:00:07 -!- haavard has joined. 09:02:50 " it's not obviously useless; say you want to send an HTML file over a 7-bit connection but need it to round-trip perfectly" => then gzip and mime base64 encode or uuencode it. ampersane-escapes aren't enough, because you won't know which stuff were escapes in the original HTML. (XML can also have CDATA or non-ASCII characters in tag or attribute names.) 09:03:38 " the version after encoding will contain them in double-escaped and escaped form" => uh 09:05:54 I don't think you can assume from just a  that it's such of a double escaped file. That could be there just by accident when someone accidentally escaped some characters in a file starting with an UTF-8 BOM. 09:36:08 -!- Sgeo_ has quit (Read error: Connection reset by peer). 09:36:34 -!- Sgeo_ has joined. 10:28:50 -!- atslash has joined. 10:31:35 -!- atslash has quit (Client Quit). 10:52:51 -!- AnotherTest has quit (Ping timeout: 264 seconds). 11:49:38 -!- Sgeo_ has quit (Read error: Connection reset by peer). 11:50:02 -!- Sgeo_ has joined. 11:54:35 -!- Melvar has quit (Quit: WeeChat 2.4). 12:04:49 -!- arseniiv has joined. 12:25:19 -!- Melvar has joined. 13:00:55 -!- atslash has joined. 13:13:36 -!- atslash has quit (Quit: This computer has gone to sleep). 14:08:06 -!- Sgeo__ has joined. 14:11:44 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 14:58:36 -!- Sgeo_ has joined. 14:59:12 -!- b_jonas has quit (Quit: leaving). 15:02:05 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 15:13:25 -!- jalumar has quit (Ping timeout: 252 seconds). 15:18:50 -!- Sgeo has joined. 15:21:49 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 15:24:49 -!- Sgeo has quit (Ping timeout: 246 seconds). 16:08:25 -!- Sgeo has joined. 16:25:34 -!- Melvar has quit (Quit: WeeChat 2.4). 16:35:38 re: charging 16:35:51 the thing that is really bad for batteries is leaving them at 100% 16:36:10 but it is basically totally impossible to not do that with any phone or laptop 16:36:23 why is that bad for them 16:37:31 I don’t know the materials science behind it but it results in faster capacity loss 16:37:43 [[Dbondb]] https://esolangs.org/w/index.php?diff=64587&oldid=64581 * Sideshowbob * (+127) /* Commands */ 16:39:02 I’ve charged my car to 100% like five times ever and only *immediately* before a road trip 16:39:18 I charge my phone to 100% and let it sit that way for hours every night 16:42:16 [[Dbondb]] https://esolangs.org/w/index.php?diff=64588&oldid=64587 * Sideshowbob * (-3) Undo revision 64587 by [[Special:Contributions/Sideshowbob|Sideshowbob]] ([[User talk:Sideshowbob|talk]]) 16:47:18 yeah where *is* the phone setting that says "stop charging at 85%"? 16:47:32 I don't know 16:47:36 Thinkpads have that setting 16:47:57 and you can also set a maximum point to *start* charging 16:48:04 thus giving some hysteresis between them 16:48:19 so if you plug in, charge to 96%, run down to 94%, plug back in, it might not necessarily start charging again 16:48:21 Hmm sounds nice. 16:48:42 this is good to avoid excess charge cycles in the usual case where you're unplugging your laptop for brief periods of time 16:48:57 though I've noticed, the battery life on my X270 is good enough that I'm using it more like a phone, just plugging it in overnight 16:49:05 Also, if charging to 100% is so harmful, maybe you should spec the batteries at lower capacity... 16:49:11 It is OK to use "#ifndef MSG_MORE" and "#define MSG_MORE 0"? Will that cause any problems with the program if it does that? 16:49:14 ...so I suppose marketing is a major factor here. 16:49:23 it has an internal battery and an external, high-capacity battery 16:49:29 this also means the external battery is hot swappable 16:50:59 (Phones sell on reviews of early models, and battery lifetime is a major selling point. So any charging schedule that results in higher capacity and does not visibly destroy the battery in the first week is an advantage? Sigh.) 16:51:28 Maybe a month or two for people who wait for social media experience reports. 16:52:21 And then there's the planned obsolescence angle. 16:53:16 'If you find the mail in your spam, it’s because of your internet ISP.' -- yeah it couldn't possibly be because it *is* spam. 16:53:41 (I like reading opening lines of spam mails for some reason.) 16:57:10 I use /etc/aliases to avoid receiving spam 17:05:05 (It works OK, if you use a separate email address for each purpose.) 17:10:46 -!- atslash has joined. 17:12:44 -!- lldd_ has joined. 17:16:22 -!- FreeFull has joined. 17:28:06 -!- Sgeo_ has joined. 17:31:39 -!- Sgeo has quit (Ping timeout: 244 seconds). 17:33:14 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64589&oldid=64571 * Areallycoolusername * (-4) /* Proposed Categories: Arch-based and Bootstrapped */ 17:33:47 -!- zzo38 has quit (Ping timeout: 245 seconds). 18:17:09 -!- Melvar has joined. 18:20:39 -!- Sgeo has joined. 18:22:26 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 18:47:28 -!- zzo38 has joined. 18:58:46 I think bystand may be so far the only NNTP client program with a feature specific to Unusenet (the UNUSENET_SERVER_NAME() SQL function; which may be used in the PostTo option) 19:07:13 -!- AnotherTest has joined. 19:15:56 -!- lldd_ has quit (Quit: Leaving). 19:20:55 -!- Lord_of_Life_ has joined. 19:23:52 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 19:23:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:49:28 -!- lldd_ has joined. 20:11:32 -!- moei has joined. 20:17:58 -!- Phantom_Hoover has joined. 20:39:00 -!- user24 has joined. 20:45:47 just passed a car with the vanity plate U1F47E 20:48:41 -!- b_jonas has joined. 20:52:30 -!- lldd_ has quit (Quit: Leaving). 20:52:37 kmc, idgi 20:57:26 https://www.compart.com/en/unicode/U+1F47E 20:57:50 that is very bay area 20:57:54 yeah, wow 20:57:57 lol 20:58:10 where's that diagram of the bay area memespace kmc 20:58:17 the one i remember you linking to and hating years ago 20:58:40 that character is sponsored by RubberRhino Games 20:58:46 https://www.unicode.org/consortium/adopted-characters.html 20:58:51 wonder if that's related to the car 20:58:57 Phantom_Hoover: I have no idea what you're talking about, sorry 20:59:16 wow you must be getting old 20:59:21 your shitposting memory is fading 21:02:26 what kind of car was it? looks like rubberrhino makes truck/car racing games 21:03:02 this character sponsorship is some sort of dismal late capitalist performance art 21:03:23 BURNIN R shows up on some of the images I can find 21:05:12 kmc: hmm interesting that the same character can be adopted several times 21:06:16 at bronze level yes 21:06:23 Phantom_Hoover: you know how much dope I smoke 21:06:28 I can barely remember what I ate for lunch yesterday 21:06:39 i don't know how much dope you smoke 21:06:43 "a lot" 21:06:50 actually not that much these days but for the sake of the joke 21:06:54 fuck you i want hard numbers 21:06:57 kmc: and this channel should celebrate the bronze sponsor of the multiocular O. 21:07:09 `quote prose 21:07:10 1132) A Swede who was in #esoteric / Thought his rhymes were a little generic. / "I might use, in my prose, / ꙮs, / But my poetry's alphanumeric." 21:07:22 Phantom_Hoover: I dunno, Unicode Consortium is a nonprofit whose mission is vital to enabling people around the world to use the internet through a free open standard 21:07:23 best artistic achievement this channel has ever produced 21:07:26 so 21:07:34 I think it's pretty not-dystopian-capitalism as these things go 21:07:44 int-e: of course. 21:07:48 yes, which makes it pretty dismal that it needs to sell corporate advertising 21:09:36 well, true 21:09:42 fair point 21:09:48 I think Unicode is very messy 21:10:09 There are better character encodings, and different one are good for different use. 21:10:12 did you make a zzocode? 21:10:57 I partially made up a "Universal Terminal Character Coding", which is designed for grid displays with no complex scripts or other stuff like that 21:12:50 The width of a text made up of printable characters only (without control characters) is equal to the number of bytes with value less than 0xC0. Both single-cell characters and double-cell characters are included, although some implementations might support only single-cell characters. 21:17:28 It also includes a lot of stuff that isn't in Unicode. (Some of the characters in some terminals are not in Unicode, but this code does include them. You can use them for font mapping in a terminal emulator when a character set including them is specified by the escape codes.) 21:42:18 -!- MDude has quit (Ping timeout: 272 seconds). 21:45:45 Phantom_Hoover: why? I think it's a win for everyone. the advertisments don't buy anything. they don't put ugly animated banners on their homepage telling about their sponsors. It's pure sponsorship donations. I don't think it's dismal. 21:46:04 -!- user24 has quit (Quit: Leaving). 21:47:39 I think the name of the sponsors can't even be queried as character properties from unicode libraries. 21:47:45 So it's totally without any effect. 21:48:58 It's not even just optimized away. 21:57:01 -!- AnotherTest has quit (Ping timeout: 276 seconds). 22:11:04 -!- adu has joined. 22:12:57 -!- ais523 has joined. 22:13:14 b_jonas: if someone accidentally escaped a BOM, then isn't it likely that they also accidentally escaped the rest of the file the same way? 22:13:46 or is the assumption that they escaped all non-ASCI characters but left & the same? 22:13:50 *non-ASCII 22:15:35 ais523: no. I'd assume they'd escape only text, not double-escape HTML 22:15:45 as in, they don't escape the entire HTML, just build an HTML from parts 22:16:21 yeah, you can't be sure in that, because you can find all sorts of crazy messed up HTML-like things on the internet, but I still wouldn't guess that they just escaped an HTML 22:16:21 if they're building it from parts, how did they find a part with a BOM before the opening ? 22:16:53 ais523: yeah... I don't know, but I don't think your alternative is very likely either 22:17:41 it would be if you did it intentionally 22:17:43 this at least if the escaped BOM is at the start 22:18:08 if it's in an XML inside an element that isn't likely to be part of the HTML, then yes, then I'd think they escaped an HTML inside an XML 22:18:15 hmm: https://duckduckgo.com/?q=%EF%BB%BF&ia=web 22:18:24 no results, but yet it pulls up a relevant Wikipedia page anyway 22:18:39 well 22:18:43 I can't believe there are no byte order marks anywhere on the Internet, so maybe DDG just don't index them 22:18:44 I guess you should scan a bit after the BOM 22:19:09 but yes, I meant an escaped BOM right at the start of the document (which is the only place they should appear) 22:19:13 if you see  then it's not double-escaped; if you see < then it is probably double-escaped, 22:19:24 oh, I see, clever 22:19:46 -!- arseniiv has quit (Ping timeout: 248 seconds). 22:20:08 especially if you see <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"<>HTML< 22:20:59 I've at least seen HTML parts escaped in JSON 22:20:59 you got the gts and lts backwards near the end, but yes 22:21:13 oh yeah, french style, not german style, yeah 22:21:27 I shouldn't have messed that up 22:32:45 smoke html erryday 23:26:55 [[Talk:Kepler]] https://esolangs.org/w/index.php?diff=64590&oldid=64441 * Areallycoolusername * (+947) 23:34:12 -!- ais523 has quit (Remote host closed the connection). 23:35:24 -!- ais523 has joined. 23:48:27 -!- Sgeo_ has joined. 23:51:30 -!- Sgeo has quit (Ping timeout: 272 seconds). 23:57:57 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 2019-07-21: 00:05:36 -!- ais523 has quit (Remote host closed the connection). 00:06:51 -!- ais523 has joined. 00:20:03 -!- ais523 has quit (Quit: quit). 01:22:35 -!- Sgeo__ has joined. 01:25:46 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 01:26:28 -!- Cale has quit (Ping timeout: 244 seconds). 02:02:06 -!- Sgeo_ has joined. 02:05:53 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 02:09:07 -!- MDude has joined. 02:16:10 -!- Cale has joined. 03:16:06 -!- Sgeo__ has joined. 03:17:12 I wrote these (incomplete) rules to make up a new card game: https://arin.ga/5eqtil Do you have a comment of it please? 03:19:10 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 03:24:06 -!- Sgeo_ has joined. 03:27:07 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 03:50:35 -!- Sgeo__ has joined. 03:51:56 -!- Sgeo__ has quit (Read error: Connection reset by peer). 03:53:19 -!- Sgeo has joined. 03:53:43 -!- Sgeo_ has quit (Ping timeout: 244 seconds). 04:06:10 -!- FreeFull has quit. 04:13:54 -!- lambdabot has quit (Remote host closed the connection). 04:15:35 -!- int-e has quit (Remote host closed the connection). 04:16:27 -!- int-e has joined. 04:16:47 -!- lambdabot has joined. 04:20:43 @bot 04:20:43 :) 05:15:04 * int-e wishes people would stop using the term "device verification" in a browser context. No, it's not a new device. Just a new browser session. 05:15:11 -!- kiwi_7 has joined. 05:19:07 -!- kiwi_7 has quit (Remote host closed the connection). 05:27:20 -!- kiwi_7 has joined. 05:32:16 -!- kiwi_7 has quit (Remote host closed the connection). 05:34:36 @wn device 05:34:37 *** "device" wn "WordNet (r) 3.0 (2006)" 05:34:38 device 05:34:40 n 1: an instrumentality invented for a particular purpose; "the 05:34:42 device is small enough to wear on your wrist"; "a device 05:34:44 intended to conserve water" 05:34:46 [9 @more lines] 05:34:50 @wn instrumentality 05:34:52 *** "instrumentality" wn "WordNet (r) 3.0 (2006)" 05:34:52 instrumentality 05:34:52 n 1: a subsidiary organ of government created for a special 05:34:54 purpose; "are the judicial instrumentalities of local 05:34:56 governments adequate?"; "he studied the French 05:34:58 [5 @more lines] 05:35:12 oh man, "device" means nothing like what i thought it meant tdnh 06:00:45 -!- kiwi_7 has joined. 06:04:28 -!- kiwi_7 has quit (Remote host closed the connection). 06:06:54 -!- kiwi_7 has joined. 06:10:35 -!- kiwi_7 has quit (Remote host closed the connection). 07:22:25 -!- Lord_of_Life has quit (Ping timeout: 246 seconds). 07:26:24 -!- Lord_of_Life has joined. 08:16:34 -!- AnotherTest has joined. 08:59:37 -!- Cale_ has joined. 09:00:01 -!- Cale has quit (Ping timeout: 276 seconds). 09:25:15 -!- tromp has quit (Read error: Connection reset by peer). 09:25:55 -!- tromp has joined. 09:43:30 -!- Frater_EST has joined. 10:19:47 `` wn device -treen | paste 10:19:50 https://hack.esolangs.org/tmp/paste/paste.3516 10:19:52 There are a lot of devices. 11:05:35 -!- arseniiv has joined. 11:13:11 ``` wisdom; \? can 11:13:12 ​laver table//A laver table is a type of Welsh furniture primarily used for eating seaweed. \ Can cans can cans? 11:13:19 `' 11:13:20 929) sometimes i am confronted with a problem and i think "I know, I'll use Banach-Tarski" 11:13:33 `w 11:13:34 ​paperless//In a paperless world, rock would never lose. 11:13:39 `q 11:13:39 454) software patents strike again that's got to be at least three times, now are they out yet? 11:16:42 -!- Frater_EST has left. 12:03:32 `? lcs 12:03:33 lcs? ¯\(°​_o)/¯ 12:03:33 `? lcd 12:03:35 lcd? ¯\(°​_o)/¯ 12:03:35 `? tft 12:03:36 tft? ¯\(°​_o)/¯ 12:03:40 `? pcm 12:03:41 pcm? ¯\(°​_o)/¯ 12:18:54 -!- FreeFull has joined. 13:00:41 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64591&oldid=64582 * Sec-iiiso * (+205) /* Introductions */ 13:13:11 -!- grumble has quit (Quit: the bottle stands forlorn, a symbol of the dawn). 13:20:27 -!- grumble has joined. 13:22:02 `w 13:22:05 ​russia//Russia is a country so huge it manages to be so near to both Finland and Japan. It used to be part of the Soviet Union before Ronald Reagan destroyed it. 13:23:35 conspiratorially synchronistic 13:23:42 `w 13:23:43 ​can//Can cans can cans? 13:23:47 `w 13:23:48 ​dynamic-wind//dynamic-wind is the opposite of static-wind. 13:23:53 :D 13:36:20 -!- user24 has joined. 13:37:52 -!- Phantom_Hoover has joined. 13:50:56 the air moving about is an essential feature of wind, so I don't think there's such a thing as static wind 14:02:01 a wind with air velocities in each point constant in time? 14:03:06 though I heard “wind” in dynamic-wind is a verb 14:03:44 (though when I saw it first, I thought it’s a noun and didn’t get why there is a wind, dynamic moreso) 14:04:32 (and I still don’t get what it does and when it’s needed as I don’t write in Scheme) 15:06:59 -!- Cale_ has changed nick to Cale. 15:31:32 [[User talk:Calamari]] https://esolangs.org/w/index.php?diff=64592&oldid=13184 * Jussef Swissen * (+557) Request to fix links 15:31:55 [[User talk:Calamari]] https://esolangs.org/w/index.php?diff=64593&oldid=64592 * Jussef Swissen * (+1) /* Issues With Page */ 15:35:56 [[? $51=]] N https://esolangs.org/w/index.php?oldid=64594 * Mipinggfxgbtftybfhfyhfn * (+22) Created page with "[[Category:Languages]]" 15:38:02 [[? $51=]] https://esolangs.org/w/index.php?diff=64595&oldid=64594 * Mipinggfxgbtftybfhfyhfn * (+13) 15:41:33 [[? $51=]] https://esolangs.org/w/index.php?diff=64596&oldid=64595 * Mipinggfxgbtftybfhfyhfn * (+135) 15:42:26 [[? $51=]] https://esolangs.org/w/index.php?diff=64597&oldid=64596 * Mipinggfxgbtftybfhfyhfn * (+4) 15:43:27 [[? $51=]] https://esolangs.org/w/index.php?diff=64598&oldid=64597 * Mipinggfxgbtftybfhfyhfn * (-4) /* Hello World! script */ 15:45:08 [[? $51=]] https://esolangs.org/w/index.php?diff=64599&oldid=64598 * Mipinggfxgbtftybfhfyhfn * (+21) 15:47:36 [[? $51=]] https://esolangs.org/w/index.php?diff=64600&oldid=64599 * Mipinggfxgbtftybfhfyhfn * (+295) 15:53:18 -!- user24 has quit (Quit: Leaving). 15:54:38 [[? $51=]] https://esolangs.org/w/index.php?diff=64601&oldid=64600 * Mipinggfxgbtftybfhfyhfn * (+74) 15:58:14 [[? $51=]] https://esolangs.org/w/index.php?diff=64602&oldid=64601 * Mipinggfxgbtftybfhfyhfn * (+21) 17:48:33 -!- user24 has joined. 18:12:22 https://botsin.space/@worldsofzzt/102480754802233031 18:22:06 Do you like XYZABCDE.ZZT game? 18:31:30 -!- unlimiter has joined. 18:42:09 -!- unlimiter has quit (Quit: Thanks guys for your seconds and minutes). 18:43:02 Did you make up a ZZT game? 18:52:04 Some people don't like some stuff in a ZZT game 18:52:28 Did you read the incomplete rules I wrote of card game by now? 19:02:34 -!- Cale has quit (Ping timeout: 276 seconds). 19:10:33 -!- Cale has joined. 19:21:08 -!- user24 has quit (Quit: Leaving). 19:21:41 XYZABCDE.ZZT is good yeah 19:21:46 but i didnt get very fare 19:21:48 far 19:22:04 -!- Lord_of_Life_ has joined. 19:24:50 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 19:24:57 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:38:50 -!- Lord_of_Life has quit (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine). 19:40:07 -!- Lord_of_Life has joined. 19:50:03 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:52:27 -!- Lord_of_Life has joined. 20:22:42 rain1: How far did you get to? 20:23:01 i dont remember 20:23:12 i think the bits ran up to me an killed me 20:23:17 and i was dodging some bullets too 20:23:48 oh... for a moment I thought the channel was talking about baba is you again 20:38:25 What bits ran up to you and kill you? 21:02:17 -!- budonyc has joined. 21:30:39 -!- AnotherTest has quit (Ping timeout: 264 seconds). 21:38:05 ok, so i thought I was close to beating BIY 21:38:12 now I think I'm actually close 21:45:19 How many puzzles solved? 21:51:30 I'm working on 2 files, current one has 106, but has 3 more puzzles solved than the other (currently inaccessibale desktop) at (iirc) 109 22:00:44 Do you want spoilers about the number of puzzles? 22:00:58 Hmm, I guess just asking that question is a sort of spoiler. 22:17:38 yeah, I think that's what I just realized 22:18:27 which layer of secret levels did you find? 22:18:56 -!- atslash has quit (Read error: Connection reset by peer). 22:19:38 -!- atslash has joined. 22:20:08 also, how many hours did you waste trying to find the secret level in the one zone that doesn't have one? 22:20:18 pulling that on players is so evil, breaking the pattern that way 22:20:24 everyone spends time trying to find it 22:22:08 I think I'm on the second layer of levels, beat all of the first area zones (not 100%, but enough flowers) 22:22:37 so have you unlocked new game plus yet? 22:23:39 I didn't worry too much about the secret levels 22:24:09 not sure what that is, so probably not 22:27:05 b_jonas: Which zone is that? 22:27:18 shachaf: Mario zone in Game Boy Super Mario Land 2 22:27:36 Oh. Well then. 22:27:48 oh, not a biy thing, ok 22:28:01 This does seem like a classic b_jonasing. 22:28:15 yeah, I guess it's like that 22:33:32 -!- Cale has quit (Remote host closed the connection). 22:39:35 6 golden coins! 22:39:52 `? fizzie 22:39:53 fizzie is not fnord with a monad but the king of #esoteric, see https://zem.fi/static/img/square_fizzie_320px_white.jpg 22:40:03 That doesn't look like gold. 22:40:08 That's not one of those six, no. 22:40:34 Do you like index notation? 22:42:31 As in Aᵢⱼ or something more? 22:43:36 Hmm, as in Aᵢʲ 22:44:01 I guess I do. 22:44:08 I don't think I've ever used all four corners though. 22:44:32 I'm thinking of the kind with only superscripts and subscripts to the right. 22:48:19 Also specifically the kind where you can write things like A_i^j B_j^k 22:49:38 how about overscripts and underscripts? 22:52:32 How about it? 22:52:42 you can use those as an extra two positions 22:52:46 I'm specifically talking about tensors here. 22:52:49 besides right superscripts and right subscripts 22:52:52 -!- moei has quit (Quit: Leaving...). 22:52:54 (And also other symmetric monoidal categories or whatever.) 22:53:00 oh, for tensors you probably use only superscripts and subscripts 22:53:29 You can also use superduperscripts nd subdubscripts. 22:53:36 WHAT? 22:54:13 A subdubscript is the text written in subdubtitles, which are subtitles for a video that's been dubbed. 22:54:43 uh 22:55:26 Man. 22:55:34 I sure wish I understood what linear algebra trace is. 22:57:55 -!- Cale has joined. 22:58:37 shachaf: do you mean on some higher level, or on an ordinary basic level? 23:00:12 Hmm, I understand the level that says "sum of eigenvalues" (or "sum of diagonal"). 23:00:39 Which level is that? 23:00:56 `` wn trace -over | sed -e '/^5/p;/verb/Q;d' 23:00:57 5. (1) trace -- (either of two lines that connect a horse's harness to a wagon or other vehicle or to a whiffletree) 23:01:01 It's probably that. 23:01:10 I mean, it mentions lines. 23:02:54 ah okay, I think it would be a basic coordinate-bound level or so. For linear operators realized as elements of V ⊗ V* the trace is just a covector-vector pairing map, and for other tensors of form W1 ⊗ V ⊗ W2 ⊗ V* ⊗ W3 it’s just that first trace appropriately lifted 23:03:25 arseniiv: It seems to me that trace should be related to fixed points, but I'm not quite sure what the connection is. 23:03:34 what? 23:03:35 I’ll tell it in a less laconic way after sleeping if no one says anything 23:03:48 hm I don’t think it should relate 23:04:12 For example in most other traced monoidal categories trace is related to fixed points. 23:04:35 And the string diagram notation is very suggestive. 23:05:03 Or the index notation. If you think of A_i^j B_j^k as connecting A's "output" to B's "input", then you should think of A_i^i as connecting A's "output" to its own "input". 23:05:06 maybe a trace of (1 − A) is? As (1 − A)x = 0 sometimes gives fixed points x of A if any 23:05:37 An eigenvector is a generalized fixed point, of course. So there's some connection between eigenvalues and fixed points in any case. 23:06:10 -!- tromp_ has joined. 23:06:12 yeah, maybe there should be some not-so-obvious fixed point sense here, then 23:06:50 I also don't really know what it means if (for example) the trace of a map is 0. 23:06:51 okay I’ll be here tomorrow bye 23:07:06 oh wait 23:07:15 good nrseniighvt 23:07:39 did you maybe read a book Linear algebra via exterior product, by Sergei Winitzki? 23:07:51 there are some words about trace 23:07:56 via exterior product :D 23:07:57 -!- tromp has quit (Ping timeout: 244 seconds). 23:08:11 arseniiv: Oh, I know Sergei. 23:08:17 I don't remember whether I asked him this question. 23:08:30 shachaf: also thank you though it’s almost morning 23:08:49 this book is nice 23:08:53 I'll look at the book. 23:09:16 it encourages coordinate-free things but it also has index notation 23:10:02 arseniiv: Index notation is coordinate-free! 23:10:40 See this nice paper by Penrose: http://homepages.math.uic.edu/~kauffman/Penrose.pdf 23:11:36 Or maybe just this page: https://en.wikipedia.org/wiki/Abstract_index_notation 23:13:43 -!- arseniiv has quit (Ping timeout: 246 seconds). 23:33:13 `don'taskdon'ttelllist 23:33:14 don'taskdon'ttelllist: q​u​i​n​t​o​p​i​a​ m​y​n​a​m​e​ i​n​t​-​e​ 23:33:17 Hmm. 23:51:07 Did anyone else read my incomplete card game document yet? 23:52:22 zzo38: where is it? 2019-07-22: 00:01:05 b_jonas: https://arin.ga/5eqtil 00:02:52 thanks 00:06:41 -!- Phantom_Hoover has quit (Quit: Leaving). 01:08:42 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64603&oldid=64463 * Jussef Swissen * (+56) 01:08:53 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64604&oldid=64603 * Jussef Swissen * (-1) /* = WIP Ideas */ 01:14:47 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)). 01:21:31 -!- FreeFull has quit. 02:07:09 [[]] N https://esolangs.org/w/index.php?oldid=64605 * Jussef Swissen * (+1193) Created page with "'''''' is a [[Stack]]-based, functional, and self-modifying esolang made by [[User:Jussef Swissen|Jussef Swissen]]. Its entire command set is in hebrew. == Specific..." 02:30:17 -!- b_jonas has quit (Remote host closed the connection). 03:38:23 [[]] https://esolangs.org/w/index.php?diff=64606&oldid=64605 * Jussef Swissen * (+4391) Extended the page. 03:39:40 [[User:Jussef Swissen]] https://esolangs.org/w/index.php?diff=64607&oldid=64604 * Jussef Swissen * (+18) /* Languages I've made */ 03:46:02 Now I made a Robot Find Kitten game in Glulx, but, more text should be added for the stuff that is not a kitten. 03:54:45 Why would you have anything that isn't a kitten? 03:56:45 Because that is how it is work; that is how they made it 04:06:24 -!- sprocklem has quit (Ping timeout: 268 seconds). 04:11:42 zzo38: I'm playing this game now: https://www.puzzlescript.net/play.html?p=9eb8f8f3df4efb450b798a279eeba2e0 04:11:45 Do you like this? 04:12:53 [[Language list]] https://esolangs.org/w/index.php?diff=64608&oldid=64573 * Jussef Swissen * (+17) /* Non-alphabetic */ 04:21:59 -!- Sgeo_ has joined. 04:24:34 -!- Sgeo has quit (Ping timeout: 248 seconds). 04:24:47 It is not so bad, I suppose, but, maybe I should want to make with Free Hero Mesh maybe 04:28:29 -!- Sgeo has joined. 04:31:04 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 04:33:03 -!- sprocklem has joined. 04:34:32 [[Language list]] M https://esolangs.org/w/index.php?diff=64609&oldid=64608 * Salpynx * (+0) /* Non-alphabetic */ these are actually sorted, by Unicode code point, Hebrew Ayin to go between Cyrillic and Arabic 04:59:47 zzo38: How far did you get? I think the interesting aspects only show up after a few levels. 05:01:42 I did not get very far, although I haven't tried much either. Maybe another day I might try more though. (I did skip a few levels by moving the levels I wanted to skip to the end, but I like how is done in Hero Mesh, you can skip both backwar and forward as often as you want to, and can record a sequence of moves for each level, also saving and restoring the sequence of moves.) 05:25:38 -!- j-bot has quit (Ping timeout: 244 seconds). 05:30:21 -!- FireFly has quit (Quit: Goodbye). 05:30:32 -!- FireFly has joined. 05:46:36 -!- Sgeo_ has joined. 05:48:53 -!- Sgeo has quit (Ping timeout: 244 seconds). 06:03:50 Here is my Robot Find Kitten program: https://arin.ga/gM1bQZ 06:04:21 (More lines of text could be added below "; Text for stuff other than a kitten", but so far I didn't.) 06:06:39 The instruction ":Robot !data 0xC0000000" seem strange (using !data where an instruction is expected), but it happens to be a overlong encoding of a "nop" instruction (normally encoded by the single byte 0x00). 06:08:26 But 0xC0 also indicates the beginning of a function receiving its arguments on the stack (although this function uses no arguments; also note Glulx is big-endian), and then the next two bytes indicate this function has no local variables, and then the first instruction is next, which is a single-byte nop. 06:09:20 Since none of the rest of the instructions in the Redraw function use any local variables, this allows Robot to be executed itself as a function and for the stuff before it to fall through into this function. 06:14:17 Do you like this? 06:29:25 -!- dayus has joined. 06:29:49 -!- dayus has left. 06:31:57 <\oren\> My font now supports klingon pIqaD 06:32:38 <\oren\>  06:32:39 <\oren\>  06:42:14 <\oren\> https://cdn.discordapp.com/attachments/299702207270486016/602751995639627776/unknown.png 06:44:16 -!- Sgeo__ has joined. 06:47:26 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 07:21:35 This new issue of 2600 mentions how to use SSH and HTTP(S) through DNS. 07:51:08 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 07:52:32 -!- Lord_of_Life has joined. 08:45:36 -!- heroux has quit (Ping timeout: 272 seconds). 08:46:55 -!- heroux has joined. 09:09:34 -!- arseniiv has joined. 09:14:54 shachaf: hi I’m back! 09:15:38 arsenhiiv 09:16:09 yeah, I know index notation can be understood index-free, I even used it that way several times, though I’m not sure that is elaborated in that book 09:16:54 I gave up splicing times of day in names when tried several times to do it and it seemed impossible :D 09:17:50 Times of day? 09:17:53 Oh. 09:18:16 I thought about trace for a while when falling asleep, but no essential thing arose 09:18:58 oh I meant, how do you put it… it’s not always a greeting either 09:19:33 greetingwell?.. 09:20:43 though I have a very raw thought: maybe trace can be understood as a sort of applying the operator to itself vs. applying it to a covector and a vector (so that in both cases we get a scalar) 09:21:06 I was trying to imagine it in vain and it didn’t happen 09:22:03 what that link you’ve mentioned between trace and fixpoints in monoidal categories is? 09:23:07 Oh, most instances of https://en.wikipedia.org/wiki/Traced_monoidal_category have an obvious interpretation in terms of fixed points. 09:23:57 I think it’s more productive to apply it exactly to this category if it’s possible. I think Vec is a somewhat degenerate case of a monoidal catefory, there we for instance don’t have an interesting modal logic thing (as far I understand) 09:24:37 thanks, I’ll look at it! 09:25:56 What's a modal logic thing? 09:26:18 -!- Sgeo_ has joined. 09:26:54 oh I meant not a modal logic, a linear one 09:27:46 several months ago I tried to see what it means for Vec and it was all conflated there, & = ⊕ etc. 09:28:43 then I saw why linear spaces aren’t mentioned as examples in texts on linear logic, though both deal with monoidal categories 09:29:35 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 09:36:36 -!- AnotherTest has joined. 09:37:49 arseniiv: Oh, yes, ⊗ = ⅋ in Vec 09:37:59 Which leads to some confusil things. 09:40:10 shachaf: wow, even ⊗ = ⅋? Didn’t thought that far 09:40:39 then it’s a very uninteresting category to do linear logic in, indeed 09:41:56 Isn't it? 10:02:46 -!- Sgeo__ has joined. 10:06:00 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 10:11:53 shachaf: they say a traced category should be cartesian monoidal for those fixpoint things to work, but Vec isn’t, as ⊗ ≠ × there 10:13:02 (but maybe there is a way to make some weak connection) 10:13:27 link: https://ncatlab.org/nlab/show/traced+monoidal+category#in_cartesian_monoidal_categories 10:14:25 BTW random variable expectation is too a kind of a trace :) it could be interesting somewhere 10:28:40 arseniiv: Oh, that's interesting. I should look at that paper. 10:32:22 I think that statement is weaker than what you said. 10:32:54 It seems to be saying that if your category's monoidal product is the cartesian product, then so-and-so holds, but not to say anything in the case that it isn't? 10:33:16 hm also somewhat off-topically there is a sigfpe post about linear operators presented in a monadic fashion, I wonder if there were means to represent a trace (from what I remember, it’s doubtful, but if he implemented MonadFix, it could be) 10:33:21 shachaf: yeah, right 10:33:30 so there is a slight hope :) 10:34:31 My hope is more than slight. But I don't know how to figure it out exactly. 10:34:51 arseniiv: There's the special case of, uh, semimodules over a boolean semiring, which are called relations, I think. 10:35:05 It's easy to make sense of trace as talking about fixed points in that case. 10:35:39 If your tensor is separable, then the meaning of trace as "connecting the output to the input" is obvious, of course. 10:36:02 I mean, if A_i^j = B_i C^j, then of course A_i^i = B_i C^i 10:36:05 shachaf: are those related to usual n-ary relations? 10:36:20 (pun semi-intended) 10:36:33 Just regular binary relations. Or n-ary in the multilinear case, sure. 10:36:48 ah, yes, I see 10:38:20 In fact there are two different tensor products that give you two reasonable traces. 10:38:49 -!- cpressey has joined. 10:41:45 hm I thought about linear algebra thing in relations (like how the matrix of their composition is a plain matrix multiplication, just, as you mentioned, over a semiring) but not yet about tensor multiplicating relations. For R ⊂ A1 × A2, Q ⊂ B1 × B2, will R1 ⊗ R2 ⊂ (A1 × B1) × (A2 × B2)? 10:42:09 tensor multiplication of* 10:46:38 oh there are more typos 10:46:50 I’ll rephrase completely 10:48:46 let R ⊂ A1 × A2, Q ⊂ B1 × B2; is one of these products R ⊗ Q defined as { ((a1, b1), (a2, b2)) | (a1, a2) ∈ R, (b1, b2) ∈ Q } and what is the second one? 10:49:09 shachaf: now I could ping you :) 10:49:12 -!- MDude has joined. 10:50:16 hm also I think I often misplace “can” and “could” 11:02:32 I'm not sure. 11:02:34 @time 11:02:38 Local time for shachaf is Mon Jul 22 04:02:35 2019 11:02:45 You could ask me after I wake up. 11:05:12 I think maybe I'd expect that a one-dimensional thing would be the identity for a tensor product? 11:15:12 Oh, maybe 3.2 in http://www.kurims.kyoto-u.ac.jp/~hassei/papers/tlca97.pdf is relevant. 11:15:15 I'll have to find out tomorrow. 11:15:57 shachaf: sweet dreams :D 11:31:00 I think maybe I'd expect that a one-dimensional thing would be the identity for a tensor product? => I would expect the same, yeah 11:33:57 oh I misplaced what things should be multiplicated. In Rel, objects are A1, A2 from my example, and for what a reason then I try to find out what R ⊗ Q is?.. I should look for A1 ⊗ B1, and in this case it’s obvious A1 × B1 will suffice as one of those tensor products 11:36:40 I should just look in nLab, obviously 11:53:48 ah, no, there is ⊗ for maps too. Linear algebra is bad for me 12:33:47 [[Seabass]] N https://esolangs.org/w/index.php?oldid=64610 * Sec-iiiso * (+1480) Created page with "'''Seabass''' is a programming language that was inspired by [[Deadfish]] and is backwards-compatible with it. The other key points of Seabass are: * functionality * (relative..." 12:44:08 Deadfish derivative is the new brainfuck derivative, it seems 12:50:03 [[Language list]] https://esolangs.org/w/index.php?diff=64611&oldid=64609 * Sec-iiiso * (+14) /* S */ 13:00:12 [[Deadfish]] https://esolangs.org/w/index.php?diff=64612&oldid=63861 * Sec-iiiso * (+961) /* Implementations */ 13:22:33 I should be asleep but I'm not. 13:22:38 Do you like "real induction"? 13:22:44 For some S ⊆ [a,b] ⊂ ℝ, if the following hold: 13:22:44 • ∀x ∈ [a,b]: if [a,x) ⊆ S, then [a,x] ⊆ S 13:22:44 • ∀x ∈ S\{b}: [x,y] ⊆ S for some y > x 13:22:44 Then S = [a,b]. 13:44:44 [[]] https://esolangs.org/w/index.php?diff=64613&oldid=64606 * Jussef Swissen * (+0) 13:49:02 [[]] https://esolangs.org/w/index.php?diff=64614&oldid=64613 * Jussef Swissen * (+167) 14:19:47 [[User talk:A]] https://esolangs.org/w/index.php?diff=64615&oldid=64586 * A * (-829) I am not interested in extending H anymore, so I will delete this part. 14:53:10 -!- stux- has joined. 14:54:52 shachaf: where it’s used? 14:56:06 -!- stux|away has quit (Ping timeout: 272 seconds). 14:58:08 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64616&oldid=64615 * A * (+24) Now there are 4 esolangs that need no code to implement! 15:09:11 -!- xkapastel has joined. 15:22:36 There are three reasons I commonly see for violating an abstraction layer: ignorance, expedience, and arrogance. I can do something about the first two, but I'm not sure what I can do about the last one. 15:24:28 Invoke the wrath of Zeus? 15:29:11 -!- stux- has quit (Quit: Aloha!). 15:29:26 -!- stux|away has joined. 15:48:39 Good idea, sounds a little drastic though? Maybe I'll start small - I'll use more Greek letters in my explanations. 16:14:09 [[Jussef Swissen]] https://esolangs.org/w/index.php?diff=64617&oldid=64424 * Jussef Swissen * (-221) 16:15:31 [[Swissen Machine]] https://esolangs.org/w/index.php?diff=64618&oldid=64386 * Jussef Swissen * (+3) /* Language Implementation */ 16:18:58 In other news, hierarchical state machines and algebraic data types seem to share the same structure: the set of states of a machine is like a sum type, and sub-machines embedded in a state is like a product type 16:19:44 Is there anything which corresponds to exponential types? 16:20:43 State transition? Kinda? Maybe not. I'll think about it 16:23:48 Did anyone have any comment of the card game rules I posted, so far? Now I am adding the rules for adjacency 16:24:02 After that, then I can add the rules for combat. 16:25:21 Do you worship the Greek gods? 16:26:20 Me? Not currently 16:26:30 I'm far too lazy 16:27:31 I meant if cpressey does, but if you want to answer that is OK too 16:30:18 No, the Babylonian gods made me promise that I wouldn't. 16:30:27 -!- FreeFull has joined. 16:32:14 OK (especially if you are not in Greece) 16:41:35 I guess it would be nice to give my heart to a God 16:41:35 But which one, which one do I choose? 16:56:17 -!- cpressey has quit (Quit: À la prochaine.). 17:09:07 [[User:Sideshowbob]] https://esolangs.org/w/index.php?diff=64619&oldid=64574 * Sideshowbob * (+187) 17:56:11 -!- b_jonas has joined. 17:59:28 zzo38: it's hard to judge a card game even then, but this would make much more sense if you made example cards. make two beginner preconstructed decks that play against each other, with the equivalent of 30 M:tG cards in each deck (of which about 12 are basic lands) 18:01:15 That way it would be at least possible to simulate games. 18:38:49 [ 7+15 18:38:54 hmm no 18:39:05 `perl -eprint 7+15 18:39:06 22 18:39:40 -!- Phantom_Hoover has joined. 18:50:39 weirdest bug: when I tap the rear fingerprint reader on my phone, juicessh goes into Ctrl-lock mode 18:51:13 what is juicessh? 18:52:10 no wait, I can web search that 18:52:31 an ssh client 18:52:33 ok 18:53:42 [[User talk:A]] https://esolangs.org/w/index.php?diff=64620&oldid=64616 * Areallycoolusername * (+385) Collab Request 18:55:28 b_jonas: yeah. I mostly use it for mosh, actually 18:55:41 it might be the only Android app that supports it 18:56:10 mosh is incredibly useful for mobile use 18:56:34 it works well on shitty connections and it automatically reconnects within 3 second when you switch networks 18:57:13 I used to worry that sending out the beacon frames had an impact on battery life 18:57:18 but it doesn't seem to matter much 19:04:11 bacon frames would have an impact on your cholesterol level, not the battery 19:06:01 lol 19:06:19 dietary cholesterol doesn't affect blood cholesterol very much 19:06:23 sorry, "beacon" still doesn't look like a real word to me, even though I heared it several time 19:06:27 but it affects obesity so yeah I guess 19:06:30 :P 19:16:06 -!- j-bot has joined. 19:43:10 [ 7+15 19:43:11 b_jonas: 22 19:43:13 same result, good 19:46:53 b_jonas: maybe you should just continue seeing beacons here and beacons there and someday beacon will shine its light on itself 19:48:28 omg I had read a parody Objectivist page by Andrej Bauer. I didn’t even thing there are so many strange quasi-rationalistic movements 19:49:27 a new discovery every day 19:50:24 " Read out loud the Axioms of Subject and Object with proper emphasis. For extra credit, do it in front of a mirror."? 19:50:28 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:50:57 -!- Lord_of_Life has joined. 19:51:03 int-e: yes 19:55:01 maybe I should start my own. “People can’t become rational, they either born that way or not. I can determine accurately who is which. Please come in and polarize.” 19:56:12 stated sufficiently bluntly to guarantee a steady intake of followers 19:57:23 . o O ( "the second part is concerned with Objectivist ethics" -- this part will be very short. ) 20:01:38 I skipped, is there a second part planned? 20:02:32 I presume it’s also scheduled at +∞? :) 20:07:02 I think I know too little about "objectivism" to find this funny. I did read the two novels though at some point... 20:17:33 BTW had someone tinkered with Algodoo? It’s a 2D physics sandbox thing. I think it could be possible to make a simple computer in there, but I hadn’t thought on it yet at all. There is a rotational drive primitive, so one is not bounded by what energy one could store beforehand; and there is no temperature simulation, so friction of parts won’t cause any harm 20:21:04 I haven't heard of that one yet 20:22:03 also there are working gears out of the box, and parts can occupy different collision layers to make a design more compact. Though there are only 10 layers IIRC. For a computer, it may become limiting 20:28:31 arseniiv: how flexibly can you connect pairs of the 10 layers? 20:28:55 -!- xkapastel has quit (Quit: Connection closed for inactivity). 20:29:16 each part can occupy any combination of them (checkboxes in the UI) 20:29:21 I see 20:31:00 that sounds like you could in theory build a RAM and ROM and CPU and PPU from them, though the question is how efficient the simulation is and whether you can get it fast enough to do some demonstrations 20:31:52 yeah, I haven’t tested the limits 20:32:10 also I saw it on youtube used mainly for marble races :D 20:32:35 you could try to look existing stuff online to see if someone's done something computational 20:32:42 or not mainly, but pretty often 20:33:06 hm yes, it’s a good step 20:49:53 yet to find a presentable mechanical calculator, but this Hanoi tower solver is neat: https://www.youtube.com/watch?v=CDERoYv6Jt0 20:56:34 -!- xkapastel has joined. 21:03:13 woh 21:03:15 cool 21:10:29 `smlist 503 21:10:30 smlist 503: shachaf monqy elliott mnoqy Cale 21:14:27 -!- AnotherTest has quit (Ping timeout: 264 seconds). 21:31:16 after some search I think many people experimented with mechanic computation in that program, but almost none shared what they did (maybe they could think it was incomplete) 21:32:46 I found a logic gate design (AND, OR, NOT, and XOR not shown by itself, but as a part of, I presume, a flip-flop) 21:37:10 argh, why am I wearing these thin socks for the summer? they all look the same but actually have slight differences, so it's so hard to match the pairs after washing! 21:37:22 I should just stick to my usual thicker socks for the summer too 21:38:48 -!- arseniiv has quit (Ping timeout: 245 seconds). 22:16:11 -!- mniip has quit (Remote host closed the connection). 22:56:21 -!- Phantom_Hoover has quit (Quit: Leaving). 23:28:42 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 23:36:48 -!- Sgeo has joined. 2019-07-23: 00:12:02 -!- b_jonas has quit (Quit: leaving). 00:50:02 -!- Sgeo has quit (Ping timeout: 245 seconds). 01:17:01 -!- adu has quit (Quit: adu). 01:39:48 -!- MDude has quit (Ping timeout: 244 seconds). 02:13:54 -!- Sgeo has joined. 02:30:06 -!- moony has quit (Quit: Bye!). 02:30:47 -!- Bowserinator_ has joined. 02:31:03 -!- moony has joined. 02:32:46 -!- Bowserinator has quit (Ping timeout: 272 seconds). 02:34:31 -!- Bowserinator_ has changed nick to Bowserinator. 02:37:25 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64621&oldid=64620 * A * (+272) /* Collaboration Request */ 02:38:55 -!- xkapastel has quit (Quit: Connection closed for inactivity). 02:39:33 -!- adu has joined. 02:41:59 [[User talk:A]] https://esolangs.org/w/index.php?diff=64622&oldid=64621 * A * (+577) /* Collaboration Request */ 02:44:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64623&oldid=64622 * A * (+53) /* Collaboration Request */ 02:48:06 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64624&oldid=64623 * A * (+0) /* Collaboration Request */ terrible grammar 02:55:24 [[User talk:A]] https://esolangs.org/w/index.php?diff=64625&oldid=64624 * Areallycoolusername * (+292) /* Collaboration Request */ 02:58:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64626&oldid=64625 * A * (+269) /* Collaboration Request */ 03:00:38 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64627&oldid=64626 * A * (+530) /* Collaboration Request */ 03:03:42 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64628&oldid=64627 * A * (-16) /* Collaboration Request */ 03:09:04 [[Special:Log/newusers]] create * Tokitoki * New user account 04:05:46 [[User talk:A]] https://esolangs.org/w/index.php?diff=64629&oldid=64628 * Areallycoolusername * (+1085) /* Collaboration Request */ 04:06:05 [[User talk:A]] https://esolangs.org/w/index.php?diff=64630&oldid=64629 * Areallycoolusername * (+116) /* Collaboration Request */ 04:15:05 [[User talk:A]] https://esolangs.org/w/index.php?diff=64631&oldid=64630 * Areallycoolusername * (+48) /* Collaboration Request */ 04:15:26 -!- tromp has joined. 04:15:29 [[User talk:A]] https://esolangs.org/w/index.php?diff=64632&oldid=64631 * Areallycoolusername * (-2) /* Collaboration Request */ 04:18:03 -!- tromp_ has quit (Ping timeout: 264 seconds). 04:20:05 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64633&oldid=64632 * A * (+321) 04:38:25 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64634&oldid=64633 * A * (+254) /* Collaboration Request */ 04:41:41 -!- FreeFull has quit. 04:43:11 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64635&oldid=64634 * A * (+275) /* Collaboration Request */ 04:50:36 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64636&oldid=64635 * A * (+275) /* Collaboration Request */ 04:58:31 [[User talk:A]] https://esolangs.org/w/index.php?diff=64637&oldid=64636 * A * (+222) /* Collaboration Request */ 05:11:48 https://twitter.com/zeuxcg/status/1153530252942950400 05:11:51 kmc: Do you like this? 05:12:09 this = \rainbow{C++} 05:15:12 meh 05:16:01 -!- iconmaster has joined. 05:16:18 kmc: i saw a good cat 05:16:23 good cats are tg 05:16:40 bad cats are cursed 05:20:08 [[Seabass]] https://esolangs.org/w/index.php?diff=64638&oldid=64610 * JonoCode9374 * (+29) /* Examples */ 05:20:52 cool 05:21:05 I saw a big, fat orange cat in our backyard today 05:22:06 lucky 05:22:10 -!- sprocklem has quit (Ping timeout: 246 seconds). 05:28:15 yes 05:28:17 I suppose so 05:39:09 -!- sprocklem has joined. 05:41:19 -!- sprocklem has quit (Client Quit). 05:46:48 -!- sprocklem has joined. 06:40:18 -!- Frater_EST has joined. 06:40:32 -!- Frater_EST has left. 06:57:36 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64639&oldid=64637 * A * (+298) /* Collaboration Request */ 07:23:08 -!- zzo38 has quit (Ping timeout: 245 seconds). 07:23:11 -!- shachaf has quit (Ping timeout: 245 seconds). 07:23:29 -!- shachaf has joined. 07:41:03 -!- iconmaster_ has joined. 07:45:25 -!- iconmaster has quit (Ping timeout: 276 seconds). 07:53:06 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:57:01 -!- Lord_of_Life has joined. 08:36:57 [[Seabass]] https://esolangs.org/w/index.php?diff=64640&oldid=64638 * JonoCode9374 * (+39) /* Truth-machine */ 08:38:50 [[Seabass]] M https://esolangs.org/w/index.php?diff=64641&oldid=64640 * JonoCode9374 * (-25) /* Examples */ Formatting 08:48:09 -!- cpressey has joined. 08:54:02 -!- arseniiv has joined. 09:02:01 -!- AnotherTest has joined. 09:43:25 Good morning. To answer Taneb's question of yesterday: yes, function types appear to have the same structure as state transitions. 09:44:08 Inputs to state machines are a little weird: an input is a named, overloaded function. 09:44:59 And I should stress this is just a structural similarity. There is a huge, uh, semantic gap here. Types are static things, but state machines are quite dynamic. 09:47:51 Do type systems based on algebraic data types even usually support overloaded functions (e.g. a la Java)? 09:48:21 I'm not sure I've ever seen one. 09:59:33 Does Haskell's typeclass-based polymorphism count? 10:04:47 -!- wob_jonas has joined. 10:05:54 cpressey: rust technically has overloaded methods of the same name, and it has an algebraic type system, but the type inference is a bit weird and incoherent 10:06:13 No sorry, not incoherent, as in, it's not supposed to prove impossible things, 10:06:53 I mean inconsistent, as in you can't guess what it will be able to infer and what you must explicitly annotate, and this can even change so you have to add new annotations when you add new methods. 10:07:36 Standard ML also has a few built-in operators that are overloaded, but you can't define new functions of that sort. 10:17:02 I can well imagine that function overloading does not play nicely with HM-style type inference. 10:17:30 (I want to like Rust, but it's really hard.) 10:19:17 cpressey: rust's name resolution rules are, in general, really strange to me 10:19:36 Why do you want to like Rust? Or: Why is it hard? 10:20:44 it seems like they were originally designed well, but then they wanted to make them a little more capable than they can be with reasonable rules, and because of that they had to add all sorts of magic in it to work at all 10:22:25 besides the method lookup, there's parts where if it has to look for a name among multiple modules, it will ignore sorts of names that don't make sense syntactically (not by type, but by sort as in const, static, enum constructor, struct constructor, function etc) 10:23:48 and there's the ugly part about matching to a name where it can either bind to a new local name or use a constructor with no arguments, and the only thing that stops typoes in constructor names to cause silent errors is that there are warnings if you don't name a constructor in upper case or a local variable in lower case. 10:24:31 OK, to be more honest, I *used* to want to like Rust. I have since given up. 10:24:55 cpressey: I still like rust, but still in the future sense that it will "soon" become a good language 10:24:58 I have a hard time liking a language with no specification that makes we write a file called "Cargo.toml" in order to use it 10:25:34 cpressey: oh, you don't have to use cargo. that part is full of shit, ignore it 10:25:37 just call the compiler directly 10:25:54 and if the javascript people tell you that you have to get packages from nodejs, ignore those too, 10:26:18 as well as the C or C++ people who tell you to use their favourite overengineered build system 10:26:53 the package repository is the sort of stupid dependency hell with low quality packages, you should ignore most of that 10:27:39 I am also amused by the fact that Haskell apparently has two package systems these days 10:27:53 and don't use cargo, except perhaps in as much as you need it to build existing good rust projects that use cargo, most importantly the rustc compiler 10:28:13 cpressey: that's normal. it'd be bad if a language or compiler tied you to a package system 10:29:25 Well, my point is not really about package systems, it's more about community, I suppose. Although it's also true that I believe you shouldn't judge a language by its community. 10:29:59 What languages do I actually *like*, anyway? 10:30:06 * cpressey thinks 10:32:14 Taneb: sorry, didn't see that. Typeclasses sort of count. But the set of state machines where the transitions only work like that would be - restricted. Not sure what the implications would be. 10:32:46 cpressey: yeah, that would be a good question. if you can tell what languages you like and what you like in them and what you don't like, that might help tell if rust is useful for you 10:33:33 C++ has overloaded functions, of course, but no real algebraic type system 10:36:01 I once tried to read an article about how to implement a linked list in Rust. It made it sound like utter hell. It also started out with a lengthy argument about how linked lists are a "niche data structure" that no one really uses. 10:38:20 Man, are there any good languages? 10:38:35 cpressey: what kind of linked list? the mutable one or the immutable haskell list one? the latter is trivial to implement. for the former, there are a lot of nontrivial decisions you have to make about the interface in any language if you try to make one, but once you decide what interface you really want it to have, it's not hard to implement. 10:39:25 the problem only comes from conflicting expectations if you believe those rust evangelists who tell you that you have to write a safe (in the rust sense) interface for everything, and at the same time want to have an interface that is impossible to do that way. 10:39:32 I think non-intrusive linked lists should probably be pretty niche in a langauge like Rust. 10:39:42 oh yeah, non-intrusive 10:40:06 admittedly intrusive would be _even_ harder to write in rust than in C++, and that you can call a genuine drawback. 10:41:29 but since you can have algebraic types generically parametrized by types, you can use non-intrusive lists in a reasonable way, generic over their content type 10:41:30 wob_jonas: I think you might have hit the nail on the head with the conflicting expectations thing. 10:42:33 I can try to dig up the article if anyone is really interested. 10:42:48 as for the community, you're on the internet, you have to prepare yourself to evangelists that seriously try to tell you overstatements, such as that rust can do anything that C can do (rust is pretty close for most practical applications, but it's not entirely true), or that you should always use safe rust because you can do anything in safe rust, 10:42:59 But it was almost certainly referring to intrusive linked lists, yeah. 10:43:01 etc. 10:44:07 cpressey: I suspect that statement is referring to non-intrusive linked list with a hypothetical interface that is safe but lets you do all unsafe mutating operations safely, like somehow magically figure out that you aren't using a pointer to a freed node. 10:44:31 it's not possible to have such an interface to arrays either, neither in rust, nor in any language. 10:44:36 Found it. https://rust-unofficial.github.io/too-many-lists/ 10:45:03 I think it has changed slightly since I first read it 10:45:24 "Just so we're totally 100% clear: I hate linked lists. With a passion." 10:45:29 That hasn't changed 10:46:00 oh, and another lie you shouldn't believe is that you can have any abstraction for zero runtime cost. again there rust gets you closer than many languages, perhaps better in some areas than C++ and worse in others. 10:46:10 Okay, note to self: stop reading things on the Internet 10:46:17 no no 10:46:24 you should read them, just don't believe them 10:46:31 Only scans of compsci papers from before 2002 10:46:43 Why read things that are mostly nonsense and written by nonsense people and will make you sad? 10:47:03 shachaf: to find the few gems that aren't mostly nonsense 10:47:19 Why don't you find those gems, and email them to me. 10:47:25 Then I won't have to read anything else. 10:47:34 -!- MDude has joined. 10:48:50 shachaf: because you shouldn't believe what I say too about which ones are gems 10:49:29 Of course. I also don't believe that I should read them. 10:50:06 I do sometimes link stuff on irc, but most of those are nonsense too 10:50:31 One of the Rust things that seems to be an attitude is that the experts will write data structures or whatever, and they'll use "unsafe" and so on, but then regular humans like you and me won't do that. 10:50:52 I feel like that's not so great in a systems language, where often your thing shouldn't be decomposed into a bunch of prepackaged data structures. 10:51:13 Instead your whole program is the fancy data structure, and you're the expert. 10:51:25 Maybe I'm overstating it. 10:51:49 I feel this would all make more sense if the thing had a specification 10:52:00 shachaf: no no. if you want to have runtime efficiency, you should use unsafe, but learn its rules. if you want to write high-level programs like you write in safe haskell or perl and mostly don't care about efficiency, then don't use unsafe. and you can use unsafe only for the loops that you have to optimize. 10:52:08 Because without a specification how can I write a proof that it is safe? 10:52:31 Where do I refer to for the definitions of the things in my proof? 10:52:46 And if I have no proof, on what basis do I say it's safe? 10:52:56 cpressey: yes, that's a bad part, it's hardly documented, they haven't quite figured out all the unsafe rules yet. mind you, people can't figure out all the rules of memory access in C either, not even for single-threaded. 10:53:30 there's some documentation, but it's often unclear, because nobody likes to write documentation, so sometimes you have to ask on irc for people who understand the thing to clarify. 11:00:08 To be clear, I do like many of the ideas Rust is based on, and I think it's probably a better choice than C++ for a lot of projects (although that's partly because I detest C++). 11:01:09 I'd prefer a language that's a better choice than C. 11:02:21 cpressey: I haven't read that whole article, but it seems bizarre to me that doubly linked lists would be a problem because they want each node owns the next node or something. 11:02:23 I often use high-level languages and I rarely need to care about performance. When I do need to care about performance, it is rarely at the level where using unsafe operations would make a difference. 11:02:38 I imagine that instead you'd have some other thing that owns every node in the list. 11:03:00 I think the style of writing C and C++ where pointers are conflated with ownership isn't that great. 11:06:08 shachaf: I'm not sure how much Rust improves over C++ in that regard. I've had it described to me that Rust works this way because it implements RAII "properly" (implication being that C++ does not). 11:06:57 I would rather just have a garbage collector and not have to worry about my objects having a deep understanding of how to acquire what they need when they are allocated 11:07:29 Also this person is saying odd things like "a bunch of pieces of data on the heap (hush, kernel people!)" as if the heap isn't a fake idea. 11:08:06 I mean: Linked list nodes can be wherever I want them to, that's the point. 11:08:34 cpressey: Oh, well, it sounds like you could use almost any programming language made in the last few decades. Why Rust? 11:08:46 cpressey: rust does improve on the C++ rules in that it allows better low-level runtime optimizations. if you don't want that, then sure, allocate everything separately and garbage-collect or reference count everything. sometimes that is worth, and you can have at least the reference counting reasonably in rust, probably could do a proper gc too th 11:08:46 ough I'm not sure about that. 11:08:48 shachaf: Why indeed? 11:09:36 You can do the reference count everything stuff in rust about as well as in modern C++. 11:10:52 Hmm, my conclusion about this article is that it's not worth reading. 11:15:58 Alright, alright, so Rust is what it is. What I really find obnoxious is hype and bad evangelism. Whether Rust evangelism is worse than other language evangelism, I can't really say. I like Haskell (mostly) and I've seen some bad Haskell evangelism too. 11:16:30 Rust evangelism is pretty bad and annoying. 11:17:15 So is Haskell evangelism. 11:35:12 I don't dislike Julia. I haven't really seen evangelism for it. Maybe because it has an obvious nemesis (R) towards which such chest-thumping can be directed...? 11:36:16 I have very little interest in numerical computing, but even outside of that Julia seems just fine as a general-purpose programming language. 11:48:02 And then I wonder if I should learn LLVM or Liquid Haskell and then I wonder if it's an academic question because I have no time to write anything of interest in them anyway. 11:48:31 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 11:52:34 -!- iconmaster has joined. 11:58:54 cpressey: hmm. I barely know anything about Julia. I should look it up a bit if you say it's a fine general-purpose language. I might not like it, but I at least want to be a little familiar about these. 11:59:17 -!- budonyc has quit (Ping timeout: 244 seconds). 12:01:02 wob_jonas: It's definitely worth looking at, IMO. Some of the approaches it takes are interesting. 12:02:39 cpressey: as for rust, even though people complain about the community, that it has a community on irc has helped me a lot. I could ask questions and get specific answers, and understand rust better that way. I could mostly ignore the evangelism, since that doesn't come through if I ask specific technical stuff. 12:03:08 this isn't exclusive to rust of course, but it helped a lot with rust because of its ... unsatisfying documentation 12:03:58 or let's say, the documentation is slow, but probably not really that slow if you compare it to languages like C or C++ 12:14:41 A lot of the bad evangelism I've seen (for anything) has come by way of social media. I think that's probably a factor. (I'm not on social media anymore) 12:15:03 IRC I'm not on regularly, but I seem to come back to visit every 3 to 5 years 12:15:54 I seem to have rust installed on this laptop, but not configured correctly. I don't remember when/why this happened. 12:16:04 that is quite likely. I don't use facebook, and rarely use twitter. 12:21:27 Another thing about Rust that made it hard to like was how much, and how frequently, the language changes. I wrote this 5 years ago, I wonder if it still passes: https://github.com/catseye/Dipple/blob/master/rust/Tests.markdown 12:26:35 I will need to try to unbreak my rust installation to see 12:27:52 cpressey: yes, it does change a bit. they do care somewhat about compatibility of course. 12:28:58 cpressey: does that do anything fancy that would change? I'd guess it should still pass, though of course the specific error messages would change. 12:29:21 but I haven't tried to run it 12:31:22 ah no 12:31:31 the parts using the tilde box syntax would fail 12:31:44 that changed, but I think it changed before rust version 1 12:31:50 it's not a recent change by any means 12:32:15 the language hasn't changed that much since version 1 in incompatible ways 12:38:43 Version 1 was in 2015 I think. I don't know when the tilde box syntax disappeared. 12:42:14 -!- xkapastel has joined. 12:48:01 Good to see that it's slowed down a little in recent years. There are "editions" of the language, now? Okay... 12:48:58 -!- iconmaster has quit (Ping timeout: 276 seconds). 12:49:43 -!- iconmaster_ has joined. 12:50:23 cpressey: two editions with some syntax differences, and they're direct call compatible, you can have one compilation unit be in one edition and another one in another, and directly call functions or use types across them, because the type system and runtime is the same, anything you write in one edition still makes sense in the other. 12:51:08 and since this isn't C vs C++, you don't have to write headers in both syntaxes (unless you have circular dependencies), the compiler can read the interface of a compilation unit from the object file, just like in haskell. 12:51:41 they're still working about some problems with macros, since those work at a level very close to the syntax, and it's a bit hard to mix the two syntaxes in the same statement, needs more compiler magic. 12:52:46 basically the compiler has to tag identifiers with which edition source they come from, so that it can resolve the name properly according to the rules of either the original edition or the 2018 edition. 12:54:23 also the differences between the editions is documented. you use the --edition=2018 switch of the compiler to tell that a file is written in the newer edition; sadly there's no declaration you can put right in the source file to do that. 12:54:56 if you think of the C and C++ magic compilation flags, this won't sound too bad. 12:55:23 Almost none of this sounds too bad compared to C++ 12:55:27 and I only say it's slowed down for _incompatible_ changes 12:55:45 they added a lot of (mostly) compatible stuff, as in, new features or new library functions 12:56:16 but yes, there are incompatible changes, even recently, ones that have nothing to do with editions 12:56:59 really the editions change only a very few rules, the ones where it makes sense to do the change the way I told above. the incompatible stuff, that you just have to edit if your code triggers it. obviously they try to do it only when it doesn't impact much real code or is easy to fix. 12:57:44 and they try to make it so that the compiler error messages and warnings can help you recognize what broke from incompatible changes, or what will break from planned future incompatible changes 13:04:23 -!- cpressey has quit (Ping timeout: 244 seconds). 13:14:52 hm it seems if I will design a sufficiently complex language, I better add a required “version flavor” directive to its grammar so as to warn users if there is e. g. a breaking change in syntax→semantics but the old syntax is still valid 13:18:56 when I was in school, I had a wrong impression (I think because of reading MS JScript documentation on my computer; I had only VB6 and that) that the more sources are correct syntactically and have some meaning, the better 13:19:55 -!- cpressey has joined. 13:20:10 now I find that the opposite is true and should be true. The more restrictions language places on user, the better it could version, the better it could report errors, the better a translator can do 13:21:09 though maybe there could be drawbacks. I’d like to know if there are famous cases when some language was too rigid 13:24:33 also on the same note I think overloading is oversold. A language can have rich function types allowing implicit/optional/keyword/iterable arguments and then there would be less sense to call two functions not mergeable this way by the same name and thinking how to get a reference to one of them without too much syntactic burden (by specifying all argument types?) 13:25:11 (this is about true overloading, not generic functions) 14:21:17 -!- cpressey has quit (Ping timeout: 245 seconds). 14:30:50 -!- ais523 has joined. 14:34:12 -!- cpressey has joined. 14:36:07 cpressey: I've been using Rust for some things, I've been pretty impressed with it so far 14:36:29 I wrote the The Waterfall Model implementation in it, that's probably the largest released program 14:37:24 I doubt it's a perfect language for everything, but I'd favour it for new projects over C (whenever in C I try to do something clever with memory allocation that wouldn't be allowed by Rust, it typically turns out to be incorrect) 14:37:54 how about compared to C++? 14:38:34 -!- trn has quit (Ping timeout: 272 seconds). 14:38:35 I'm unwilling to use C++ for almost anything at all, other than when I need to access linker functionality in a portable way 14:38:58 I guess writing C++ as though it were C is tolerable, but even then, memory allocation is a pain 14:39:16 (I do like many C++ features, like string const-correctness, but gcc lets you request that for C too) 14:40:31 I see 14:41:58 modern C++ though has most of the drawbacks of Rust without many of the benefits 14:42:26 if you're using std::move and std::unique_ptr and friends, why not use a language actually designed around those concepts (and which enforces them much more comprehensively with better error reporting)? 14:43:17 Rust does make you think hard about memory allocation. Which, for some applications, is a very good thing, because you should think hard about memory allocation, so that you get it right. 14:43:59 For other applications, it's much more productive to not have to think about memory allocation at all. 14:46:42 Often I wonder how much friction programmers generate when discussing languages is simply because of insufficient recognition that different programmers program in different application areas. 14:46:53 most of my Rust programs just seem to come down to making a few `Vec`s and storing values in those 14:47:18 and yes, some languages are definitely better for certain fields 14:48:11 ais523: On a completely different note: are cellular automata Turing-complete or not? Let's settle this 14:48:27 s/are/can ... be/ 14:49:04 cpressey: the field of cellular automata in general? there are cellular automata that can simulate the steps of a running Turing machine starting from a playfield with only finitely many non-blank squares 14:49:28 that seems like something that most people would consider to be Turing-completeness 14:49:50 I think it hinges on whether you allow your reduction to introduce halting or whether you insist it has to preserve halting. 14:50:08 If you allow the reduction to introduce halting, then the set of Turing machines that never halt, is Turing-complete. 14:50:28 Which sounds weird. 14:50:32 you can introduce a "halt colour" into a cellular automaton if you want to, but nobody ever does 14:50:50 Well, then it's arguably a different CA, too. 14:50:52 also, I personally consider the set of Turing machines that don't halt to be TC, you just need to define a different halt state (e.g. a trivial infinite loop) 14:51:16 cpressey: well, yes, but that different CA is still a CA and is Turing-complete, we're just trying to establish whether at least one CA is Turing-complete 14:52:35 Ehm, well, I don't outright reject your view; actually I advocate for a more nuanced view of "Turing-complete". 14:53:17 for me, the main interesting definitional problems with Turing-completeness (other than the fancy L thing) is a) what sort of initial conditions are allowed, and b) what sort of halt states are allowed 14:53:48 I don't think either problem has been resolved, either by me or by the mathematical community as a whole 14:54:35 https://esolangs.org/wiki/Sequential_tag_system is a good example of the type of problems we see; the simplest known "TC" CAs simulate that (rather than cyclic tag), so the question is whether using a cyclic initial condition is permissible 14:54:52 Well, to show something Turing-complete, you need a reduction. Which reductions are allowable and which are not is not universally agreed upon. I think this is not too different from what you are saying. 14:56:46 I think it's generally accepted that it's sufficient for the reduction to be computable and always halt 14:57:15 but a reduction like that can't generate an infinitely long program, which is what cellular automata and Turing machines require 14:58:55 Do they? ... it's interesting that we seem to see different problems with it. 14:59:54 actually I think all the interesting problems in definition of TCness may be special cases of a larger problem 15:00:43 which is "suppose program X generates (possibly infinite) output that is read as input by program Y: what pairs of computational classes (X's computational class, Y's computational class) allow the combined program to be Turing-complete?" 15:02:24 a long time ago I thought it was obvious that either X or Y had to be TC, but now I'm no longer sure 15:02:43 OK, I've managed to confuse myself again already. 15:02:57 You can get pretty far with an "F"SA with infinite states, I imagine 15:02:58 well, there are trivial constructions such as "X produces infinitely many 0s, Y is an LBA", but that seems like cheating in some way 15:03:31 Taneb: how do you even define that, though? presumably you need some sort of rule for how a state behaves, and then that rule becomes the language 15:04:00 ais523: yeah, I think I've not given this enough thought 15:04:44 next you'll say that the infinite mathematicians choosing an arbitrary non-principial ultrafilter during their meeting before the game with red and blue hats seems like cheating too 15:05:27 OK here is my overall feeling. There is a set of allowable reductions for showing Turing-completeness. Some of these reductions are more complex than others. e.g. some are polytime, some are not. 15:06:33 You can consider sets of languages that are only polytime-Turing-complete, or are only polytime-each-other-complete (if you follow what I'm handwavingly saying) 15:07:32 You can investigate Turing-completeness in a sort of fine-grained way. 15:07:59 "polytime-Turing-complete" is only meaningful if you restrict the languages you can reduce /from/ 15:08:30 otherwise, you can just reduce from an exponentially padded language which requires every character in the program to be repeated 2*n times, where n is the original length of the program 15:08:43 sure 15:08:51 Yes, it's intentionally restricted? Maybe I don't follow you 15:09:34 even then, if the language has any equivalent of a string constant, the reduction can just bundle an interpreter with a string constant containing the program you're reducing 15:09:59 so "polytime TCness" pretty much just only determines how data can be stored in a language 15:09:59 ais523: right, and that's why among practical languages, you have very simple reductions like that 15:10:05 Yes - that's usually considered unallowable or uninteresting, but you can define it, at least 15:10:07 although that's interesting in its own right 15:10:33 cpressey: I think disallowing that would be a huge mistake (and, anyway, difficult to define); I'm also not convinced it's always uninteresting 15:10:44 To be fair, "how data can be stored in a language" heavily, heavily characterizes a language, does it not? 15:10:50 right, indeed 15:10:58 so even polynomial time seems a bit of an overkill most of the time, but we want to allow a bit more than just straighforward encoding string literals for languages like incident or (eodermdrone with an infinite alphabet of letters) 15:11:20 I think almost all languages allow a linear-space-in-program data representation, but some don't and are interesting because of that 15:11:40 ais523: not really just how the data can be stored at runtime, more like how it can be represented in the source code 15:12:15 infinite-alphabet-Eodermdrome probably allows data representation in O(n) characters, thus O(n log n) bytes 15:12:20 I suspect Incident is also O(n log n) 15:13:07 (is Eodermdrome TC with any finite alphabet? If so, what's the smallest alphabet such that Eordermdrome on that alphabet is TC?) 15:13:37 Taneb: it's fancy-L-complete with a fairly small alphabet; it has finitely many programs for any finite alphabet 15:13:56 That makes sense 15:14:08 ais523: yeah. you could also imagine a more straightforward language where you have to input everything with alphabetic identifiers, each identifier is globally scoped and can appear at most ten times. you can chain identifiers to make them an alias of each other. you'd have to at least gensym to write code. it's not far from what you can imagine i 15:14:08 n an esolang. 15:14:55 just like with infinite alphabet eodermdrone if you have to encode the letters as longer strings with some delimiters 15:15:19 (like, if it allows combining diacritic characters after the letters) 15:15:19 you can also imagine a language for which programs have the same meaning if anagrammed; that would have a limit on storage density in the source code 15:15:59 I think with that storing n bits of string constant requires O(2**n) program characters, in the limit? 15:16:09 ais523: oh yeah, we talked about that sort of thing, droppable punch card languages 15:16:14 because of the IOCCC ting 15:17:28 though of course with a fixed length of the punch card there's only a fixed number of programs 15:17:44 at most 2**(2**(80*12)) 15:18:28 you can have duplicate punch cards 15:18:42 in the extreme, you can have a language like Lenguage that doesn't look at the content of the program at all, only its length 15:19:00 ah yeah the length-only brainfuck variants 15:27:51 I guess another way to put it is, instead of asking "Is A B-complete?" we can ask "What reductions are required to get from A to B?" And the time complexity, or "introducing halting", or "initial conditions", etc, are all things you can consider. 15:28:33 cpressey: sure, but the answer to that definitely has to depend on what B is, and there's definitely no generic answer. 15:28:53 at least for low powered B 15:29:56 I agree, there is no canonical definition of Turing machines, -- most mathematicians are quite happy to let details slide when it comes to making a point, and this is usually a good thing 15:30:06 um no 15:30:14 that's not what I mean 15:30:19 Wasn't sure 15:30:31 I mean for really differently powered classes 15:31:28 like we said above, you might define Turing-completeness to allow any polynomial time reduction, to study the power of esolangs with very limited formats of IO and source code 15:32:52 defining what you're reducing from is vital for that though 15:33:20 otherwise, you reduce from a language that uses infinitely long programs and thus have infinite time to do so, making even cat polytime TC 15:33:21 The most obvious thing about that seems to be that it disqualifies the languages whose TC proof is a reduction to Tag systems 15:33:37 sometimes we care about the language being able to read arbitrary input from a class, say byte strings, possibly with arbitrary output and interactive IO 15:33:58 or that a language can represent any primitive recursive algorithm with arbitrary non-interactive IO or something 15:34:00 cpressey: I don't see why, tag systems use finite programs and finite input 15:34:13 ais523: right 15:34:18 We seem to be talking about vastly different things 15:34:20 do you mean sequential tag? 15:34:36 cpressey: I got confused, I don't know what I'm talking about 15:34:42 but yes, I'm suspecting a disconnect, e.g. the reductions you're suggesting seem to be backwards 15:34:47 so maybe we're misunderstanding each other 15:34:57 also I'll afk for a bit 15:35:00 -!- wob_jonas has quit (Remote host closed the connection). 15:36:00 I'm treating reduction as "I'm writing a function that compiles language A programs into language B programs, if my function is correct andd sufficiently simple this proves that B is A-complete" 15:37:22 I think it's that by polytime I meant: I'm writing a function that compiles polytime programs in language A into polytime programs in language B 15:37:33 *not* I'm writing a polytime function to do this 15:37:39 oh, I see, a performance-preserving reduction 15:37:46 yes, that's an interesting subject too 15:37:59 although "polytime programs in language A" is often hard to define due to optimising compilers 15:38:11 Tag systems, from what I understand, are not able to do things in poly time, that TMs can do, in poly time 15:38:32 -!- Sgeo|web has joined. 15:38:48 I think they're slower by a factor of the amount of memory in use 15:39:15 -!- Sgeo|web has quit (Remote host closed the connection). 15:39:20 I'm not 100% sure that means that polytime → polytime (with a worse exponent) is possible, but it feels like it would be 15:39:25 At any rate, I think I've seen an objection to e.g. the Rule 110 TC proofs, on that basis: like, yes, rule 110 is technically TC, but not in a "useful way" 15:39:58 ah yes, an O(n**k) time program can use at most O(n**k) memory, so the tag system can simulate it in O(n**2k) time 15:40:04 And that seems like, someone being conservative with a fine-grained conception of Turing-completeness. rather than being liberal with it. 15:40:17 That's all. 15:41:20 there are some languages which seem to have an exponential slowdown 15:41:27 -!- iconmaster__ has joined. 15:41:42 As for infinite programs, that's a whole nother ball of wax, as they say 15:42:03 in particular, I suspect https://esolangs.org/wiki/An_Odd_Rewriting_System may be exponentially slower than some Turing machines at performing the same task 15:42:58 I've just had a dumb esolang idea 15:44:46 Never mind, it doesn't work 15:45:17 (the idea was, you have a list of numbers and execute the program by running the busy beaver corresponding to each number on the tape) 15:45:46 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 15:51:11 The thing I was thinking of was actually from Scott Aaronson's critical review of A New Kind of Science 15:51:34 "However, though Wolframdoes not discuss this explicitly in the book, the known simulations of Turing machines by tag systems require exponential slowdown." 15:51:53 https://arxiv.org/abs/quant-ph/0206089 15:52:36 Now, whether you consider that a problem or not -- that's sort of up to you, I think. 15:55:15 I don't consider that a problem for computational class; however, I also don't agree with the statement 15:55:58 i.e. I think tag systems can simulate Turing machines with only polynomial slowdown 16:03:46 yep: you can compile a Turing machine into a cellular automaton with no slowdown (effectively by using a colour for each TM colour, plus a colour for each (TM colour / TM state) pair, the latter are only used where the tape head is) 16:05:06 and you can compile a cellular automaton into a tag system with quadratic slowdown (via evaluating the entire initialized portion of the tape one character at a time on each step, then adding an extra uninitialized character at each end of the tape so that it doesn't run out) 16:06:18 Well, this is from 2002; at the time, this might not've been established. 16:07:03 The existence (or not) of such languages that are (let's say) only-expontentially-Turing-complete, is an interesting subject to me, at any rate. 16:07:14 if so then 2002 needed better complexity theorists 16:07:25 to me, the construction I just listed is the obvious one 16:07:47 and I can't think of a slower construction except via arbitrarily slowing things down 16:07:50 I know I've had lots of difficulty coming up with languages that provably require high complexity to interpret 16:08:11 (I'm thinking of EXPLOAD) 16:08:34 that doesn't surprise me; AORS's "TC, but very slowly" came as a big surprise when I discovered it 16:12:15 something like https://esolangs.org/wiki/Brainhype works but that's cheating 16:13:22 The weakness seems to be that it's often possible to find a "sufficiently clever" Hashlife-like optimization (and concomittantly difficult to prove that no such optimization exists!) 16:16:23 that said, this conversation gave me an idea for a language but I have no idea if it's even TC 16:16:59 you start with nondeterministic Fractran, specifically the variant in which all commands that can legally run at any given point all run in parallel in separate threads, the program doesn't halt as long as at least one thread is still running 16:17:11 but then you add a rule that a program cannot run unless the program unconditionally halts in the absence of that command 16:18:01 I'm not convinced that this is computable, and I'm /also/ not convinced that it's usable for programming! quite a wide range there 16:20:51 -!- Sgeo has quit (Read error: Connection reset by peer). 16:21:17 -!- Sgeo has joined. 16:21:45 This has definitely been an interesting conversation; I don't have any new ideas but I might be able to organise some of my existing ones more coherently 16:23:01 I might try to understand AORS better; it might be describable in somewhat-more-conventional term-rewriting terms 16:26:48 it's basically a tag system that can't maintain memory beyond a particular point in the queue (that cycles round from start to end) 16:27:06 the definition on Esolang is an attempt to formalize that, the informal intuition can be helpful too though 16:44:27 or, hmm, maybe 2C is the language that can't maintain memory but has no other restrictions, and AORS has an additional restriction? 16:45:26 -!- b_jonas has joined. 16:46:48 -!- FreeFull has joined. 16:48:11 -!- trn has joined. 16:48:30 wb_jonas 16:53:47 -!- Phantom_Hoover has joined. 16:57:16 -!- cpressey has quit (Quit: A la prochaine.). 17:07:59 -!- user24 has joined. 17:10:19 reductions the can turn a polynomial runtime program to a polynomial runtime program are important, and I care about them, in fact I care even about more strict time limits, but people shouldn't try to argue that the "Turing-complete" word refers to anything like that, because I think it's established that it doesn't mean that 17:11:36 a good example is counter machines with a fixed number of counters: they're Turing-complete, but you blow up your runtime exponentially if you translate programs from more reasonable to them, or double-exponential if there are only two counter registers 17:11:38 [[User talk:A]] https://esolangs.org/w/index.php?diff=64642&oldid=64639 * Areallycoolusername * (+3198) 17:12:41 but the whole P class is so robust because we have a lot of natural computation models that are equivalent to each other and blow up by only at most polynomial time 17:12:47 [[User talk:A]] https://esolangs.org/w/index.php?diff=64643&oldid=64642 * Areallycoolusername * (+4) 17:13:07 so it doesn't matter which one you use to define which programs run in polynomial time in the size of input 17:15:03 -!- arseniiv has quit (Ping timeout: 245 seconds). 17:15:25 -!- arseniiv has joined. 17:27:43 ais523, cpressey: that statement in Scott's review is indeed written in a confusing way. as far as I can tell, the problem is that the construction to use that simple cellular automaton can't simulate just any tag system (that would be a strange sort of proof), and the simulation they have does have an exponential blowup, just like with counter machines. 17:28:05 but yes, that's not what the article says 17:28:19 -!- user24 has quit (Quit: Leaving). 17:28:41 we're simulating a turing machine with a cellular automaton with a tag machine, not the other way round 17:28:54 that said, the other direction (simulating a tag machine with a turing machine) is also fairly efficient, IIRC 17:29:14 ah no 17:29:28 apparently it's the cellular automaton that simulates certain tag systems with an exponential blowup 17:29:36 then that statement definitely seems wrong in that draft 17:31:24 oh 17:31:31 a cellular automaton with a tag machine? ok 17:32:00 anyway, the slowdown is in simulating something with that particular cellular automaton 17:32:06 hmm wait 17:32:21 wait, I'm confused 17:33:35 no look, Scott's review clearly seems to say on page 5 to 6 that it's about simulating some kind of tag system with the rule 100 automaton, and simulating a turing machine with the tag system. 17:33:45 he claims that it's the latter that's slow, I think that's wrong but I'm not sure 17:34:16 it's definitely not talking about simulating a cellular automaton with a tag machine there, because Wolfram isn't either 17:34:24 there's an entirely different argument that shows that's wrong: the very first universal turing machine simulated tag machines, that's why they were invented 17:34:33 and people don't complain about a slowdown there 17:34:53 Wolfram was interested on how powerful simple 1-dimensional cellular automatons are 17:35:07 (the naive method has a quadratic slowdown, maybe there are non-naive methods that are faster) 17:35:10 ones with a three cell neighbourhood and two states 17:35:47 and I think the cellular automaton construction has been improved later, after that review 17:36:35 well, Cook's construction for rule 110 simulates sequential tag 17:37:00 and that's also polynomially slower than the Turing machine it's simulating, but only polynomially 17:37:36 yes, but isn't Cook's construction using an exponential blowup in the simulation? 17:37:56 the original one, which was known at the time of Scott's review 17:38:35 it can't be, the reason is because he created cyclic tag from sequential tag via giving it a periodic input 17:38:55 that trick only works if the cellular automaton is linear time with respect to the sequential tag system (otherwise the input wouldn't be periodic) 17:39:20 no, not necessarily 17:39:48 the periodic pattern in the CA can be much more fine-grained then the tag system symbols 17:40:18 well, in this case (I know the general shape of the rule 110 TCness construction, every symbol in the repetitive part is used) 17:40:23 actually, hmm 17:40:27 imagine simulating anything in Brainfuck, where you use a periodic pattern to store multiple tapes on one tape 17:40:33 it could be that the construction moves to the right exponentially fast 17:40:47 with the distance the symbols have to move doubling each time round the tape 17:41:15 so the symbols are sent in linear time but arrive in exponential time because the queue is running away from them 17:41:27 that would be specific to the rule 110 construction, though, not tag systems in general 17:41:28 only Brainfuck is too powerful, it can do the initialization and tape extension all on its own 17:41:50 ais523: yes, something like that 18:13:40 -!- ais523 has quit (Quit: quit). 18:15:47 -!- rain2 has joined. 18:18:20 -!- rain1 has quit (Ping timeout: 272 seconds). 18:21:13 <\oren\> ok this is an issue. I can't remember how my vectorization algorithm works 18:21:34 <\oren\> and I didn't put any comments explaining it 18:26:11 -!- iconmaster_ has joined. 18:30:52 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 18:31:50 <\oren\> Ok I figured out how I did it 18:46:49 <\oren\> Basically it involves keeping track of the vertices between pixels instead of the pixels 19:41:57 -!- xkapastel has quit (Quit: Connection closed for inactivity). 19:51:11 -!- Lord_of_Life_ has joined. 19:54:08 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 19:54:09 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:06:59 [[User talk:A]] https://esolangs.org/w/index.php?diff=64644&oldid=64643 * Areallycoolusername * (+0) /* Collaboration Request */ 20:13:20 -!- xkapastel has joined. 20:27:02 -!- KindOne has changed nick to uplime. 21:29:37 -!- AnotherTest has quit (Ping timeout: 276 seconds). 23:03:11 -!- tromp_ has joined. 23:06:10 -!- tromp has quit (Ping timeout: 248 seconds). 23:13:06 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 23:22:33 -!- arseniiv has quit (Ping timeout: 245 seconds). 23:46:17 Woot, I successfully implemented a scan code translation table in the IBM PC simulator! 23:46:25 Now when you type stuff, it shows the stuff that you typed, instead of showing weird garbage! 23:46:46 The first thing I typed was "spinx of black quartz judge my vow". 23:46:48 tswett[m]: nice! does it support the shift and right shift and control keys as modifiers? 23:46:53 Nope. 23:46:58 It doesn't support anything besides letters yet. 23:47:08 do you plan to support them later though? 23:47:11 I typo'd the word "sphinx". 23:47:15 does it support the space bar? 23:47:16 Yeah, eventually. 23:47:30 It kind of supports the space bar, but not on purpose. 23:47:38 good 23:47:40 Anything it doesn't recognize shows up as a black, and it doesn't recognize the space bar... 23:47:43 So yes, it supports the space bar. :D 23:47:48 *as a blank 23:48:18 Also, it doesn't yet recognize that key-down and key-up are different kinds of things; it just interprets a key-up as an unknown character. 23:50:54 Also, programming in machine code is awfully tedious. 23:51:25 my favourite example to type is the Weöres Sándor poem "Munka és béke", because it has at least one of most lower case letters, with like five or six missing, and of most of them appear once in the first stanza and once in the second stanza 23:53:30 It also has two versions published that differ in a few words, and one of the versions misses one fewer letters 23:55:28 Hmmmm, nice. 23:57:35 In any case, one of the next things I'm gonna want to do is implement some Forth-like stuff. 23:57:43 The missing lowercase letters are "ö" plus the rare letters "q x w í ú " 23:58:04 I want this thing to be able to write its own damn machine code. :D 23:58:30 no that's not quite right 23:58:44 The missing lowercase letters in one variant are "ö" plus the rare letters "q x w í ú ű" 23:59:23 but in the other variant, the first line is "Méh-raj duruzsol fák közt, fű alól,", which adds "ö" and "ű" thus making this quite closer to containing all lower case letters 23:59:59 And I prefer to add his name too, so we at least have a "W" there 2019-07-24: 00:01:50 The missing letters make it look like it was optimized for those old typewriters that were missing the letters "í ú ű". You don't see documents typed with that sort of typewriter anymore, so if there are accented letters missing, it's not that set, but it used to be more frequent in old documents. 00:02:36 http://math.bme.hu/~ambrus/pu/versw has the full poem 00:03:22 Instead of having to write "29 DB B8 10 01 8E D8 B8 00 B8 8E C0 29 C0 E4 60 D7 B4 07 AB B0 20 E6 20 CF", I want to, at the very least, be able to write "sub bx bx mov ax 0110 mov ds ax mov ax b800 mov es ax sub ax ax in al 60 xlat mov ah 07 stosw mov al 20 out 20 al iret". 00:04:25 tswett[m]: that can be hard, because x86 has a rather tricky complex instruction set, and a stupid assembly syntax that doesn't really correspond well to what's encoded 00:05:12 Yeah, it's weird. 00:05:20 so you might want to use a nonstandard assembly syntax to make it a bit easier 00:05:20 "Fortunately", I'm only using an 8088 processor. 00:05:30 yeah, but even that subset 00:06:54 in fact the later additions tend to be somewhat more regular 00:10:50 I thought about that. 00:23:55 Man, it'd be awfully nice if the 8088 gave you a separate call stack and data stack. 00:24:05 Forth pretty much assumes that you've got that. 00:26:15 tswett[m]: use the BP register to mark the separate data stack, and access that with the usual instructions and convenient addressing modes, without PUSH or POP, while you use the normal stack marked by SP for the call stack 00:26:49 That's one way to do it. 00:27:08 I was thinking I'd use the data segment for the data stack. 00:27:46 Then use SI and DI (both at once) to indicate the top of the data stack. 00:28:37 if you want a single data segment, then I think it's best to have the forth data stack in it 00:29:06 what? why SI _and_ DI (both at once)? 00:29:10 that sounds strange 00:29:55 I could imagine just using SI or DI, but why both? 00:30:03 Yeah, come to think of it, there's probably no good reason to do that. 00:30:13 Let me see, why did I come up with that idea in the first place. 00:30:26 using just one of them to indicate the top of the data stack can work 00:30:41 It's so that you can use either a string read instruction or a string write instruction without having to adjust SI or DI first. 00:30:54 But then again, you'll have to adjust either SI or DI *afterwards* instead. 00:30:59 also, some forth interpreters store the top word of the stack in a register, not on the actual memory stack, I think that's usually worth 00:31:28 So I think I'll just use DI and then copy it into SI if needed. 00:31:39 I don't think the string instructions help you much 00:31:57 -!- xkapastel has quit (Quit: Connection closed for inactivity). 00:32:12 Well, I'm using STOSW somewhere. :D 00:32:23 And XLAT. So fancy. 00:33:31 Nyow, this one Forth tutorial-thingamo I'm looking at implements the DUP word like this: 00:33:50 mov (%esp), %eax; push %eax; ret 00:34:11 eww 00:34:24 It's pushing, with a "push" instruction, and then immediately returning. So apparently "push" uses one stack and "ret" uses another stack. 00:34:30 Right? 00:34:32 Iunno. 00:35:00 tswett[m]: are you sure you're disassembling it correctly? is it possible that the push has a segment override? 00:35:13 no wait, that's stupid, push can't do that 00:35:33 or can it? I don't recall how x86_16 and x86_32 works 00:36:03 I think the segment override applies only to the operand of the push 00:36:04 I'm not disassembling anything; it contains literally that assembly code. 00:36:30 Yeah, wait, *can* push have a segment override? That wouldn't make sense, you'd need to override the stack pointer register too. 00:36:39 I don't think you can do that. 00:36:55 maybe that's not the part of the code that duplicates the value on the stack? 00:37:03 but it does some other bookkeeping? 00:40:24 It definitely says that this is the implementation of the DUP word. 00:43:58 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 00:44:33 -!- iconmaster has joined. 00:45:15 -!- doesthiswork has joined. 00:49:54 You know, I like the idea of the implementation of a Forth word being *just* some machine code. 00:50:30 Like, if there's a Forth word corresponding to the XLAT instruction, then the body of that Forth word is just a single byte: d7 00:51:34 sure, you can compile forth if you want 00:51:36 -!- b_jonas has quit (Quit: leaving). 00:52:07 what does XLAT do again? 00:54:07 that was a weird one, something like mov al, [bx+al] 00:54:45 al = *(16*ds + bx + al) 00:54:53 In pseudo-C. :D 00:54:56 and I forgot whether al is signed or unsigned here. 00:55:06 in *wrong* pseudo-C if bx+al overflows. 00:55:18 (al is /probably/ unsigned) 00:55:46 "XLAT (translate) replaces a byte in the AL register with a byte from a 256-byte, user-coded translation table. Register BX is assumed to point to the beginning of the table. " 00:55:54 So it's unsigned. 00:57:51 oh fun 00:58:04 The one with a signed offset was the bit test with a memory target, bt r/m*, r* 01:01:08 and apparently bt can still do that when used with a memory operand. this is somewhat crazy. 01:02:53 Uhm. Or maybe not. Let me check elsewhere... 01:16:57 Okay, AMD describes this far more clearly than Intel does, and indeed bit offsets outside of the designated memory operand are supported (meaning the address of the memory operand is not the final memory address being accessed.) 01:25:37 -!- FreeFull has quit. 01:34:09 shachaf: https://i.imgur.com/1LxEakY.jpg https://i.imgur.com/IpTZR7P.jpg 01:58:17 is that your yard cat 02:00:00 [[Sidex]] N https://esolangs.org/w/index.php?oldid=64645 * A * (+4550) Add Sidex 02:00:31 [[Language list]] M https://esolangs.org/w/index.php?diff=64646&oldid=64611 * A * (+12) /* S */ 02:10:36 [[Timeline of golfing languages]] N https://esolangs.org/w/index.php?oldid=64647 * A * (+856) Stub timeline page 02:10:54 [[Timeline of golfing languages]] M https://esolangs.org/w/index.php?diff=64648&oldid=64647 * A * (+0) Oops 02:12:56 shachaf: it is a cat that is sometimes seen in our yard 02:14:23 [[Timeline of golfing languages]] M https://esolangs.org/w/index.php?diff=64649&oldid=64648 * A * (+397) 02:14:49 [[Timeline of golfing languages]] M https://esolangs.org/w/index.php?diff=64650&oldid=64649 * A * (+64) /* Since 2015 */ 02:14:57 so i suppose yes 02:15:17 "Everyone who uses a computer frequently has had, from time to time, a mad desire to attack the precocious abacus with an axe." 02:19:37 correct 02:20:04 [[Timeline of golfing languages]] https://esolangs.org/w/index.php?diff=64651&oldid=64650 * A * (+176) /* 2015 */ 02:20:34 [[Timeline of golfing languages]] https://esolangs.org/w/index.php?diff=64652&oldid=64651 * A * (+99) /* See also */ 02:22:36 This was written around 1970 by a rocket scientist :) 02:24:28 [[Nop]] https://esolangs.org/w/index.php?diff=64653&oldid=56953 * A * (+234) 02:24:30 [[User talk:A]] https://esolangs.org/w/index.php?diff=64654&oldid=64644 * A * (-94) 02:24:30 http://library.sciencemadness.org/library/books/ignition.pdf page 97 (113 of the pdf) 02:26:18 [[Hey stack!]] N https://esolangs.org/w/index.php?oldid=64655 * A * (+2850) Created page with "[[Hey stack!]] is a 4th-generation language where you have to declare everything before you use these things. It is a meta-language that can be used to describe anything physi..." 02:26:38 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64656&oldid=64654 * A * (-2778) /* Hey stack! */ 02:28:47 [[Char]] M https://esolangs.org/w/index.php?diff=64657&oldid=64532 * A * (-1176) Fix bugs in ARCUN's edits 02:29:22 [[Char]] M https://esolangs.org/w/index.php?diff=64658&oldid=64657 * A * (+68) and +CAT 02:30:56 [[Esolang talk:Categorization]] M https://esolangs.org/w/index.php?diff=64659&oldid=64589 * A * (+236) /* Proposed Categories: Arch-based and Bootstrapped */ 02:31:47 [[An arch is simply a curve.]] N https://esolangs.org/w/index.php?oldid=64660 * A * (+1577) Created page with "'''An arch is simply a curve.''' is a self-modifying [[Arch]]-based language where the program itself is an arch. All commands are synonyms of different definitions of the wor..." 02:32:11 [[Arch]] M https://esolangs.org/w/index.php?diff=64661&oldid=64564 * A * (-36) /* Languages */ No xlinks anymore 02:32:28 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64662&oldid=64656 * A * (-1756) /* An arch is simply a curve. */ Tidy up user talk page 02:32:28 Pondering whether or not I want to do jumps using POP CS... 02:32:56 It's a great idea as long as all of my subroutines start at the same offset into the code segment. :D 02:34:21 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64663&oldid=64662 * A * (+101) /* Collaboration Request */ 02:35:00 what processor are you targeting? 02:36:29 (for all I know, pop cs only ever worked on 8088 and 8086 processors) 02:38:03 Yeah, those. 02:38:07 I think it's an 8088 emulator. 02:38:43 I wonder if I can use the ES: prefix to make the mod-reg-r/m byte refer to the extra segment instead of the data segment. 02:39:44 usually 02:40:01 I mean, that's what the prefix is for. 02:41:48 [[Sidex]] M https://esolangs.org/w/index.php?diff=64664&oldid=64645 * A * (-77) 02:42:10 Should I prefer instruction destination in the first or last position for x86? 02:42:42 Yes. 02:43:14 It's much more entertaining if you have an opinion on that. It doesn't matter which. 02:44:06 I probably want to write an assembler so I should decide on one. 02:44:16 The emulator's built-in debugger puts destination first, so that. :D 02:44:16 For three-operand instructions it should obviously be in the middle. 02:44:19 As does this random web page. http://pastraiser.com/cpu/i8088/i8088_opcodes.html 02:44:26 Does the 8086 count as x86? 02:44:35 I'm used to reading AT&T-style syntax. 02:44:58 [[Sidex]] M https://esolangs.org/w/index.php?diff=64665&oldid=64664 * A * (-396) No named threads, it is off-topic 02:45:06 tswett[m]: yes it does 02:47:25 I'm starting to think that POP CS is actually a great idea. 02:47:53 Just put POP CS right before the first opcode of every subroutine, in the same place. 02:48:10 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64666&oldid=64663 * A * (+41) /* Collaboration Request */ 02:48:18 Whenever you want to goto another subroutine, you push the new CS and then jump to your POP CS. 02:49:23 Well Intel got away with reappropriating that opcode as a prefix for other instructions... so I guess few people thought that way. 02:54:06 * Sudden thought * 02:54:14 I think x86 is famously hard to virtualize or whatever. 02:54:46 I sorta want to create an "eso-architecture" with the sole goal of being as good at virtualization as possible. 02:55:18 I... don't quite know what that would look like. 02:55:28 no registers :P 02:56:26 No memory, no registers, no source code. Execution consists of an infinite loop that does nothing. 02:56:38 Virtualization is easy because there's only one program. 02:56:41 I'm afraid that there's a reason why processors get dedicated virtualization support, especially since "virtualization" nowadays usually implies an extra level of memory management, rather than plain emulation. 02:57:09 Not only is it easy to simulate any program, but every program is an accurate simulation of every other program. 02:57:49 golden 02:58:05 And we can implement it readily in a grain of sand. 02:58:15 No fabbing needed! 02:58:32 I guess that my esoarchitecture would allow you to add layers of "if you would access this memory segment, instead go run this other thing". 02:58:37 And, of course, it would not allow you to remove them. 02:58:51 But they'd be removed implicitly... or whatever... whenever they're actually invoked. 02:59:29 Sudden realization that I don't know what a trap is and how it differs from an interrupt. 02:59:52 ("Well," you say, "they're called 'instants' now, and most traps are instants, but I guess a trap could also be an activated ability.") 03:02:47 Interrupts are external events; traps are triggered in software. (But obviously this is not 100% consistent... see the 'int' instruction on x86) 03:06:57 virtualization shouldn't be anywhere near as difficult as it is on x86 :( 03:08:09 > Intel x86 defines two overlapping categories, vectored events (interrupts vs exceptions), and exception classes (faults vs traps vs aborts). 03:08:11 :1:45: error: parse error on input ‘,’ 03:08:12 lol. 03:08:58 > traps increment the instruction pointer, faults do not, and aborts 'explode'. 03:09:01 :1:40: error: parse error on input ‘,’ 03:09:34 O I didn't know that there are two forms of hydrogen (H2 molecules). 03:10:23 https://en.wikipedia.org/wiki/Spin_isomers_of_hydrogen 03:15:41 [[Talk:Kepler]] M https://esolangs.org/w/index.php?diff=64667&oldid=64590 * A * (+49) 03:18:54 (The amazing thing is that this matters---a lot---when liquefying hydrogen, because the state change from the ortho to the para variant releases more energy that is required for evaporation.) 03:22:46 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64668&oldid=64666 * A * (-1) /* Resource Starvation */ typo 03:26:17 I also didn't know that nuclear rocket propulsion is not dead. https://en.wikipedia.org/wiki/TEM_(nuclear_propulsion) and "In 2019, the US Congress passed a bill to add a line item to the budget to direct NASA to expend US$100 million to re-initiate development of a nuclear thermal rocket propulsion system, with an aspirational goal of a test flight no earlier than 2024." (from... 03:26:23 ...https://en.wikipedia.org/wiki/Nuclear_thermal_rocket ) 03:29:33 int-e: neat. 03:29:46 now cathy's trying to explain to me about electron spin isomers of oxygen 03:29:57 (singlet and triplet oxygen) 03:30:21 i have only the most rudimentary understanding of molecular orbitals so this is proving difficult 03:32:43 cathy? 03:35:00 tbh I have not really tried to understand this beyond the picture on the wikipedia page. 03:35:45 (the thing to understand would be why the spins are restricted to those two configurations) 03:36:15 cathy = kmc's wife 03:36:22 who studied physical chemistry back in the day 03:41:47 It just occurred to me that a potentially convenient way to do a far jump is to just push a code segment and instruction pointer and then do a far return. 03:42:04 Only problem is that you can't do a call that way. 03:42:24 There's no "pop the code segment and instruction pointer, and push the old code segment and instruction pointer" instruction. 03:42:57 That would be kind of an interesting instruction, actually. 03:43:21 Chemistry is weirc. 03:43:24 *weird 03:43:34 Also I cannot spell anymore apparently. 03:58:15 -!- adu has quit (Read error: Connection reset by peer). 03:59:14 -!- adu has joined. 04:06:02 tswett[m]: so push stuff first... which you can, assuming you know where you are (no position-independent code) 04:06:07 -!- Cale has quit (Ping timeout: 276 seconds). 04:06:13 "stuff" being the return address. 04:08:18 tswett[m]: you're on the brink of rediscovering return-oriented programming :) 04:10:09 Come to think of it, "pop the stack into the instruction pointer and push the old instruction pointer" sounds a lot like a form of call-with-current-continuation. 04:11:02 Also, it's pretty rude if the top of the stack is your caller. 04:11:14 Because now your caller will return back to you instead of to its caller. 04:12:54 Come to think of it, maybe *all* subroutine calls are a form of call-with-current-continuation; it's just that the "current continuation" is given in the form of the stack pointer, and the subroutine is expected to return to it. 04:24:57 -!- Cale has joined. 04:28:10 fun c++ fact: std::tuple is implemented with recursive inheritance rather than just a thing that contains elements as fields 04:28:34 this is apparently because if you inherit from an empty base class, it can be elided, unlike a struct field? 04:46:57 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64669&oldid=64668 * A * (+290) /* Concurrency problems and solutions */ 04:47:14 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64670&oldid=64669 * A * (+26) /* Deadlocking */ 04:55:07 -!- doesthiswork has quit (Ping timeout: 246 seconds). 04:55:15 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64671&oldid=64670 * A * (+422) /* Concurrency problems and solutions */ Some solutions 04:58:22 [[User talk:A]] https://esolangs.org/w/index.php?diff=64672&oldid=64671 * A * (+184) /* Race conditions */ 04:59:07 [[Sidex]] M https://esolangs.org/w/index.php?diff=64673&oldid=64665 * A * (+30) 05:00:12 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64674&oldid=64672 * A * (-340) /* Sidex solutions (check if this is okay) */ 05:03:31 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64675&oldid=64674 * A * (+178) /* Deadlocking */ 05:34:51 -!- iconmaster_ has joined. 05:39:03 -!- iconmaster has quit (Ping timeout: 264 seconds). 05:39:52 -!- iconmaster__ has joined. 05:44:16 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 05:44:55 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 05:45:40 -!- iconmaster has joined. 06:09:21 -!- Sgeo has quit (Read error: Connection reset by peer). 06:09:47 -!- Sgeo has joined. 06:13:01 -!- iconmaster_ has joined. 06:17:27 -!- iconmaster has quit (Ping timeout: 264 seconds). 07:52:00 -!- AnotherTest has joined. 07:52:33 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 07:55:03 -!- Lord_of_Life has joined. 07:58:36 [[Seabass]] https://esolangs.org/w/index.php?diff=64676&oldid=64641 * Sec-iiiso * (+1) /* Truth-machine */ 08:08:49 -!- cpressey has joined. 08:22:26 -!- GeekDude has quit (Ping timeout: 248 seconds). 08:31:24 -!- GeekDude has joined. 08:36:10 -!- Phantom_Hoover has joined. 08:43:49 -!- arseniiv has joined. 08:53:25 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 08:56:41 -!- iconmaster has joined. 09:59:05 -!- wob_jonas has joined. 09:59:29 `bobadventureslist http://bobadventures.smackjeeves.com/comics/2829040/20190722/ 09:59:31 bobadventureslist http://bobadventures.smackjeeves.com/comics/2829040/20190722/: b_jonas 10:08:07 -!- xylochoron[m] has quit (Ping timeout: 252 seconds). 10:08:29 -!- wmww has quit (Ping timeout: 250 seconds). 10:08:30 -!- tswett[m] has quit (Ping timeout: 250 seconds). 10:08:37 -!- ivzem[m] has quit (Ping timeout: 265 seconds). 10:41:09 I thought of a certain esoteric language idea. You know how in some real programming languages, there are very few reserved tokens, you can shadow any builtin or keyword with a name of your own as long as you don't mind not being able to use that keyword within the scope. The examples I know of are metafont and scheme. 10:42:09 This, of course, is not necessarily good design, because it can lead to somewhat inflexible syntax, as well as the language having to accept some mistakes silently. 10:42:52 And I was thinking of a modified variant of C that does this mildly so just the alphanumeric words can all be shadowed, while the punctuation can still remain reserved. 10:45:56 There's a few syntax changes you need, about restricting the sillier compound typenames like "int short unsigned" to a more canonical set, or replacing them with a single word for each type if you prefer that, plus a rule that you can no longer omit the name of a parameter in the heading a function definition. 10:45:59 Also excluding most pre-ANSI stuff like the implicit int and the no-prototype function definitions. 10:47:31 -!- wmww has joined. 10:48:06 Of course this is easier when you design your language syntax in first place to allow this, like in scheme or metafont, but that wouldn't make the language esoteric. 10:48:14 C's odd syntax makes this interesting. 10:55:09 I wonder, you might need to use a general parsing algorithm like CYK to parse declarations, if you do that. 10:55:48 int long; long int struct; long long int volatile; 10:56:35 cpressey: no, it's worse than that, it gets actually ambiguous. that's why Im' saying that I don't accept such typenames in this variant. 10:57:28 right, sorry; I guess I meant, CYK plus some disambiguating rule in case it gets multiple parses. 10:58:54 I only accept "char", "unsigned char", "signed char", "short int", "unsigned short int", "signed short int", "int", "unsigned int", "signed int", "long int", "unsigned long int", "signed long int", "long long int", "unsigned long long int", "signed long int", "float", "double", "long double" and nothing else; not "long" or "unsigned" etc 11:00:31 that way I can tell that "long int f(size_t);" declares a function "f" whose argument is of type "size_t", but "long int (size_t);" declares a variable of type long int whose name is "size_t" etc. 11:01:31 There's some ambiguities remaining, but they're benign: as a type name "int (*)(void *const)" is a function type whose argument is either a const pointer or a non-const pointer named "const", but when just naming a type (as opposed to defining a function) that doesn't matter 11:02:14 if we allowed "long" as a type name, then "long int (size_t);" could be parsed as declaring a function named "int", ambiguous with declaring a variable named "size_t", which is why I forbid that 11:02:53 I also have to say that the storage class keywords ("auto", "static", "extern", "inline") have to be written before the type 11:05:09 but most people already write the storage class keywords before the type, and most people always name the dummy arguments in a function definition, so the most visible change is the one about "unsigned" and "long", but even there there are styles that give one-word typedefs to each builtin type 11:05:33 so I think the resulting language wouldn't look too alien to people who know C 11:06:29 there might be other ambiguities that I haven't considered, in particular I'll have to look up how and where struct definitions are allowed in C, because C is weird that way 11:08:19 -!- xylochoron[m] has joined. 11:08:19 -!- tswett[m] has joined. 11:08:26 -!- ivzem[m] has joined. 11:30:53 -!- ivzem[m] has quit (*.net *.split). 11:37:05 -!- ivzem[m] has joined. 11:43:36 Wow, apparently in normal C you can say "volatile volatile int n;" -- I just tested this. 11:43:41 I wonder if it makes it more volatile 11:50:08 Maybe because of typedefs? 11:51:42 and yes, I'd have to also add the restriction that you put "complex", "imaginary", "atomic" before the rest of the type name 11:55:55 I wonder if it's valid to define a new struct type with a redundant c-v specifier like "struct foo { int x; char y[8]; } const;" 12:14:49 My struct macro is TG 12:14:58 #define Struct(name) typedef struct name name; struct name 12:15:29 yeah, "restrict" and "typedef" are storage class keywords too, I didn't list them all 12:15:55 and there's one or two more 12:16:21 "thread_local" 12:16:45 oh yeah, "register" 12:17:13 and "inline" isn't one of them, it's an extra keyword 12:23:16 cpressey: You can't "test" whether you can do something in C, you can only test whether you can do it on an implementation. 12:25:01 Or I guess maybe you meant something like "it is allowed; and additionally, I tested it on an implementation", which is reasonable. 12:25:19 (It *is* allowed: C11 6.7.3p5 "If the same qualifier appears more than once in the same /specifier-qualifier-list/, either directly or via one or more `typedef`s, the behavior is the same as if it appeared only once.") 12:26:23 right. for const and volatile it even makes sense 12:27:08 some old implementations parse "long long int" as the same as "long int", which results in strange silent failures 12:28:05 And long long long is famously too long for GCC. 12:28:43 I tested it by reading the specification. 12:29:15 you can also try to test by asking on irc, but that doesn't always work 12:30:00 `` gcc -fdiagnostics-color=never -x c <(echo 'long long long i = 0;') 12:30:01 ​/dev/fd/63:1:11: error: ‘long long long’ is too long for GCC 12:31:12 why don't you use the <<< thingy? 12:31:27 maybe you care about bash 1 compatibility 12:31:59 I just can't really remember bash, that's all. 12:33:17 so you, like, can't remembering what all the expansion syntax like ${foo#bar}, ${foo##bar}, ${foo%bar}, ${foo-bar}, ${foo:-bar}, ${foo:=bar}, ${foo+bar}, ${foo/bar/qux} do? 12:33:26 To be honest, usually I do the above sort of thing as [echo or printf] | gcc -x c - which involves remembering even less. 12:33:44 and ${foo:2:1} but that doesn't have bar 12:34:23 i,i if you're so qualified at writing c, how come it isn't on your cv 12:34:23 I think I have finally managed to remember #, ##, %, %% using the mnemonic of # being something that's in front of things. 12:34:51 I remember that from the mnemonic that # is before $ and % is after $ 12:35:17 And the #/## (resp. %/%%) distinction from ## being longer than #. 12:35:21 I still don't know vim regex syntaxes 12:35:36 vim has an option to use regular regex syntax 12:35:54 But also it has intersection! Almost makes me want to switch back to vim. 12:37:01 -!- doesthiswork has joined. 12:37:35 how often do you use intersection when just a lookahead wouldn't work? 12:37:45 I don't recall ever having wanted such a regex 12:37:58 maybe it's useful if you want to match fibonacci numbers that are also catalan numbers or some such thing 12:39:46 no, that won't work, the regex doesn't actually match catalan numbers, it generates catalan numbers through a side channel 12:40:10 `perl -le$==0,(1x$_)=~/^(|()1(?1)(?1)\2)$(?{$=++})^/,print$=for 0..13 12:40:18 Lookahead is complicated and confusing and intersection+complement usually express the thing I want. 12:40:22 1 \ 1 \ 2 \ 5 \ 14 \ 42 \ 132 \ 429 \ 1430 \ 4862 \ 16796 \ 58786 \ 208012 \ 742900 12:41:10 I don't know what the thing you wrote is, but it doesn't look regular. 12:41:31 yeah 12:42:16 The pattern I want most often is e.g. (P&~Q) 12:43:34 shachaf: sure, and most practical cases of that you can write with a negative lookahead too, or in some even simpler way 12:43:56 at least that's what I found for the regexes I wrote, but maybe I'm just using the one hammer I got for every problem 12:44:14 interestingly TRE doesn't support intersections, I don't know why 12:46:25 that does remind me of the pcre that only matches non-prime unary numbers 12:47:53 myname: yes, https://www.perlmonks.com/?node_id=52469 . it's linked from https://www.perlmonks.com/?node_id=796712 which is the side-channel fibonacci thing. 12:49:48 -!- iconmaster_ has joined. 12:53:55 -!- iconmaster has quit (Ping timeout: 276 seconds). 12:56:06 fizzie: I apologize for using the word "tested" in such a lax way. 12:59:16 What I actually did was, I took the C spec and converted it into a set of assertions in first-order logic 12:59:32 Then I converted those assertions into an Agda program 12:59:52 or whatever it is that Agda calls its source files 13:00:20 Turns out that all behaviour in C is undefined. 13:01:29 cpressey: did you also find the contradiction in peano arithmetic and thus rule not only the world but all possible worlds? 13:04:29 -!- Melvar has quit (Quit: WeeChat 2.4). 13:04:51 -!- Melvar has joined. 13:05:23 wob_jonas: Yes! That was quite astonishing. 13:12:10 In other news, I'm not too sure about Skolem's paradox. I think my way of dealing with it is to ignore all of model theory. 13:12:34 As soon as you start using non-standard models, you get too many weird results. I'm just, like, let's not even go there. 13:15:06 cpressey: yeah, but thinking of logical compactness or nonstandard models can give a different way to think about proofs, and so sometimes reveals interesting connections, even though it rarely lets you prove anything new that you couldn't without that tool. just like when you're thinking of proofs through category theory. 13:16:47 for example, logical compactness lets you see that if there's a ramsey-like property that any infinite structure satisfies, then there's also a bound such that any structure larger than that satisfies it. this doesn't let you prove new ramsey-like theorems, because all the proofs where you prove that an infinite structure doesn't work already natur 13:16:48 ally give you upper bounds, but it reveals why the proofs are like that. 13:27:57 -!- kspalaiologos has joined. 13:28:50 -!- kspalaiologos has quit (Remote host closed the connection). 14:02:34 ~help 14:59:32 -!- wob_jonas has quit (Remote host closed the connection). 15:04:58 [[User talk:A]] https://esolangs.org/w/index.php?diff=64677&oldid=64675 * Areallycoolusername * (+283) 15:05:45 [[User talk:A]] https://esolangs.org/w/index.php?diff=64678&oldid=64677 * Areallycoolusername * (+0) /* Race conditions */ 15:24:43 -!- cpressey has quit (Quit: WeeChat 1.4). 15:24:44 [[User talk:A]] https://esolangs.org/w/index.php?diff=64679&oldid=64678 * Areallycoolusername * (+234) /* Sidex solutions (check if this is okay) */ 15:33:07 -!- atslash has quit (Quit: Leaving). 15:45:38 -!- Sgeo_ has joined. 15:47:46 -!- Sgeo has quit (Ping timeout: 248 seconds). 16:03:49 -!- atslash has joined. 16:06:55 -!- Sgeo__ has joined. 16:09:38 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 16:24:50 -!- Sgeo_ has joined. 16:28:05 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 16:42:21 -!- iconmaster__ has joined. 16:46:37 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 17:02:11 -!- DHeadshot has joined. 17:38:49 -!- Sgeo__ has joined. 17:42:26 -!- Sgeo_ has quit (Ping timeout: 272 seconds). 17:42:32 -!- DHeadshot has quit (Ping timeout: 245 seconds). 17:43:12 -!- xkapastel has joined. 17:45:55 -!- iconmaster_ has joined. 17:50:19 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 17:51:09 -!- b_jonas has joined. 17:51:19 -!- DHeadshot has joined. 18:01:56 -!- FreeFull has joined. 18:12:46 -!- DHeadshot has quit (Ping timeout: 246 seconds). 18:15:11 -!- DHeadshot has joined. 19:48:52 ~eval len('the bot with this invocation character doesn't hang in this channle these days, right?') 19:52:21 -!- Lord_of_Life_ has joined. 19:55:05 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 19:55:05 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 19:56:28 it will soon be time for the next OotS strip. please prepare to upload it in a few days. 20:00:38 Oats 20:00:49 yes 20:03:23 `? oots 20:03:23 `? o 20:03:24 oots? ¯\(°​_o)/¯ 20:03:24 o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. 20:03:50 hmm, I think I left a double space in that from when I edited it down 20:05:07 ``` perl -i -pe 'warn s/ //g, " - $_";' wisdom/o 20:05:09 1 - o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventuallystumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. 20:10:30 argh no 20:10:47 ``` perl -i -pe 'warn s/llystumble/lly stumble/g, " - $_";' wisdom/o 20:10:49 1 - o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. 20:10:55 ok, now that's a better number of spaces 20:29:34 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 20:30:10 -!- iconmaster_ has joined. 20:33:23 [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=64680&oldid=64659 * Sideshowbob * (+0) /* New category? */ 20:46:35 -!- arseniiv_ has joined. 20:47:11 -!- arseniiv has quit (Read error: Connection reset by peer). 20:53:09 -!- DHeadshot has quit (Read error: Connection reset by peer). 20:53:24 -!- DHeadshot has joined. 21:13:22 -!- DHeadshot_ has joined. 21:14:08 -!- DHeadshot has quit (Ping timeout: 258 seconds). 21:29:18 -!- Sgeo_ has joined. 21:32:16 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 21:37:17 -!- AnotherTest has quit (Ping timeout: 252 seconds). 21:58:57 -!- iconmaster__ has joined. 22:03:01 -!- iconmaster_ has quit (Ping timeout: 250 seconds). 22:19:37 -!- DHeadshot_ has left. 22:43:18 -!- kolontaev has joined. 22:52:21 -!- iconmaster_ has joined. 22:55:51 -!- iconmaster__ has quit (Ping timeout: 264 seconds). 22:56:51 -!- iconmaster__ has joined. 22:57:07 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 22:59:36 -!- Phantom_Hoover has quit (Quit: Leaving). 23:01:43 -!- arseniiv_ has quit (Ping timeout: 245 seconds). 23:33:31 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 23:54:52 -!- b_jonas has quit (Quit: leaving). 2019-07-25: 00:54:59 -!- iconmaster__ has joined. 01:02:22 -!- FreeFull has quit. 01:14:46 -!- budonyc has joined. 02:04:03 -!- atslash has quit (Ping timeout: 268 seconds). 02:04:41 -!- atslash has joined. 02:30:58 -!- atslash has quit (Ping timeout: 248 seconds). 02:31:06 -!- atslash has joined. 02:34:06 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64681&oldid=64679 * A * (+179) /* Race conditions */ 02:34:58 -!- iconmaster_ has joined. 02:35:46 -!- xkapastel has quit (Quit: Connection closed for inactivity). 02:39:25 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 02:40:15 [[User:DoggyDogWhirl]] M https://esolangs.org/w/index.php?diff=64682&oldid=64505 * DoggyDogWhirl * (+2620) Elevators. 03:00:29 -!- iconmaster__ has joined. 03:02:06 JFC IE 3 03:02:08 "If you decide that your users have had enough browsing for one day, you can even cause their browser to quit. An example script shows how to link actions to some of the events included in the object model. Be careful before you try this out, because your browser will quit." 03:02:36 https://ia802904.us.archive.org/view_archive.php?archive=/7/items/ACTIVEX_FOR_DUMMIES/ACTIVE_X.iso&file=CHAP13%2FINDEX.HTM 03:04:46 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 03:18:37 ski: Have you seen https://home.sandiego.edu/~shulman/papers/lcm-bloomington-talk.pdf ? 03:18:54 Also other people here who like linear or constructive logic, or who like good things. 03:22:20 -!- iconmaster_ has joined. 03:25:06 -!- budonyc has quit (Quit: Leaving). 03:25:34 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64683&oldid=64681 * A * (+5) /* Race conditions */ 03:26:52 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 03:27:13 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64684&oldid=64683 * A * (+213) /* Sidex solutions (check if this is okay) */ 03:29:49 -!- Sgeo__ has joined. 03:31:12 [[Sidex]] https://esolangs.org/w/index.php?diff=64685&oldid=64673 * A * (+874) /* Sidex walkthrough */ 03:32:46 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 03:34:39 -!- iconmaster__ has joined. 03:39:03 -!- iconmaster_ has quit (Ping timeout: 264 seconds). 03:53:09 -!- heroux has quit (Read error: Connection reset by peer). 03:53:20 -!- heroux has joined. 04:00:45 -!- iconmaster_ has joined. 04:02:48 -!- Sgeo_ has joined. 04:04:34 -!- iconmaster__ has quit (Ping timeout: 276 seconds). 04:05:31 <\oren\> Idea, end all statements with ~.\n 04:05:54 -!- Sgeo__ has quit (Ping timeout: 248 seconds). 04:07:06 <\oren\> oh, wait ssh is configurable with that thing 04:10:51 -!- iconmaster has joined. 04:13:01 -!- iconmaster_ has quit (Ping timeout: 276 seconds). 04:43:27 -!- nfd has joined. 04:47:28 -!- nfd9001 has quit (Ping timeout: 276 seconds). 05:19:58 -!- Frater_EST has joined. 05:21:51 -!- Frater_EST has left. 05:25:53 -!- nfd has quit (Read error: Connection reset by peer). 05:30:36 -!- iconmaster_ has joined. 05:31:01 -!- iconmaster has quit (Ping timeout: 276 seconds). 05:40:00 -!- doesthiswork has quit (Ping timeout: 272 seconds). 05:49:30 -!- iconmaster_ has quit (Ping timeout: 272 seconds). 06:16:00 [[RarVM]] M https://esolangs.org/w/index.php?diff=64686&oldid=63582 * Void * (+55) /* Jumping processes */ 07:02:56 -!- kolontaev has quit (Quit: leaving). 07:14:53 -!- mniip has joined. 07:26:34 -!- AnotherTest has joined. 07:33:55 -!- sebbu has quit (Read error: Connection reset by peer). 07:34:19 -!- sebbu has joined. 07:54:42 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:57:49 -!- Lord_of_Life has joined. 08:49:05 -!- sprocklem has quit (Read error: Connection reset by peer). 08:49:12 -!- sprock1em has joined. 08:50:54 -!- cpressey has joined. 08:51:39 Good morning. 08:51:55 Hey, cpressey 08:52:03 What time zone are you in currently? 08:53:49 BST, but isn't there some IRC command you can run to find that out? 08:54:37 You can do it with CTCP but that always feels rude to me 08:54:50 I suppose it's equally easy to just ask, if you prefer the human touch. 08:55:20 BST is a good time zone to be in, I feel 08:58:51 -!- arseniiv_ has joined. 09:03:22 Yesterday, I learned that there are some theories that have only one model (up to isomorphism), they're called "categorical" theories, and this pleases me greatly, because non-standard models kind of freak me out and I'd rather not think about them. 09:04:02 Granted, a lot of them sound kind of trviial 09:06:49 (the categorical theories that is, not the non-standard models. quite the opposite actually.) 09:09:49 cpressey: You can ask where someone's IRC client is, but not where they are. 09:15:12 shachaf: In a similar vein, you can ask me where I claim I am, but not where I actually am. 09:15:47 I claim to be in Cambridge 09:16:36 cpressey: Yes, but I'd much rather know where you claim you are than where your IRC client claims it is. 09:16:46 I mean, I don't actually particularly want to know either one. 09:17:49 I might go to Cambridge in a few months. 09:19:50 I might leave for unrelated reasons 09:24:42 The thought of visiting Cambridge crossed my mind briefly, recently, but mainly because I saw a train destined for there. I have no good reason to visit there myself. 09:26:21 If I visit anywhere, it's more likely to be, I dunno, Cheddar. 09:27:21 For the cave art. Also, I understand there's a cheese from that region? 09:41:38 Stupid question -- how to tell if one theory A is more expressive than some other theory B? I mean, the trivial answer is, find something you can express in A that you can't express in B, but -- do logicians have a nomenclature for this, a study of this? 09:43:07 Computability and complexity has its classes like RE, R, PR, NEXP, NP, P, NL, etc, and we know some of the relations between them and there are some diagrams, etc. 09:43:18 Do logicians have anything comparable? 09:44:32 Again, I understand you can map a lot of logics to these classes too, and that would count, but is there anywhere they've written a lot of them down? 09:44:44 "Complexity zoo" except for logical theories? 09:52:27 So-called Reverse Mathematics has a collection of theories and understand some of the relationships between them, but they're most interested in really weak theories 10:17:03 I think perhaps there are simply too damned many of them (logical theories, that is) for this to be realistically done. 11:23:16 https://en.wikipedia.org/wiki/Descriptive_complexity_theory <-- closest I've found so far. 11:26:27 wooo! https://people.cs.umass.edu/~immerman/ 11:26:51 or rather, https://people.cs.umass.edu/~immerman/descriptive_complexity.html 11:27:44 *Now* my question becomes, where does http://mathworld.wolfram.com/EquationalLogic.html fit into that chart? 12:11:22 -!- wob_jonas has joined. 12:14:17 cpressey: I think the answer is yes but I don't understand the details. "Proof-theoretic ordinal" may be a relevant keyword. 12:15:25 cpressey: I looked a bit at this julia language. It seems like it might be useful as a "calculator language", for when I want to do computations that start as simple as (2*8) but sometimes grow to five line long one-liners doing array operations. I've sometimes used J or octave for that. But 12:16:28 I have one big problem. WHY DOES IT USE ONE-BASED ARRAY INDEXING? Seriously? Haven't people seen the existing languages that do that (matlab or octave, lua, GAP, mathematica) and see how they turned out and how fucking annoying it is that you have to add 1 to your indexes or subtract 1 from them after searching whenever you do anything nontrivial? 12:17:31 I really don't understand why anyone would do that when designing a new language that doesn't have to be too compatible with anything existing, and especially not why someone would do that if the language is supposed to be useful for numeric or array computations. 12:18:47 So yes, this sort of language with a handy built-in library for numeric computations sounds helpful for doing calculations, but the one-based array indexing seriously scares me away. 12:22:04 As for whether it's better for this than octave, I'll have to dig a bit deeper. 12:22:13 It might be. 12:22:27 wob_jonas: if you hate 1-based indexing you can check out https://github.com/simonster/TwoBasedIndexing.jl 12:24:11 I think the joke there is that Julia's macro support is quite good. 12:24:24 yeah. esoteric people sometimes do that. I think some old versions of perl had that built in too. 12:25:12 But the problem is that it's not enough to override the index and index-assign operations, because there are a lot of other library functions that manipulate indexes, like for finding and slicing and filtering and stuff. 12:25:16 Perl lets you select the index base by assigning to a magic variable iirc 12:25:24 Old versions of perl only. 12:25:32 Well... it's complicated 12:25:49 I think modern versions have an improved version of that, where you can change it lexically, but only to 0 and 1 12:26:08 wob_jonas: +1 on 1-based indexing 12:26:11 but that kind of thing doesn't make sense to change either dynamically (as in old perl or some APLs) or lexically, 12:26:16 -!- arseniiv_ has changed nick to arseniiv. 12:26:26 mostly because you often store array indexes in other arrays, or pass them to functions, etc. 12:26:36 It just doesn't work in practice. 12:26:36 Apparently Mathematica uses 1-based. And so does R. Julia is in the same general area ("big data" "stats" "numerical computing"). So, probably that. 12:26:54 cpressey: yes, I mentioned mathematica in the list above. 12:28:04 I didn't know that R does, I have so far avoided that language. 12:28:11 Well, some people hate qwerty keyboards too, because qwerty is awful and WRONG and etc and everyone around me including myself is using a qwerty keyboard oh well 12:29:47 so? you can mix keyboard layouts is easy, because, unless perhaps you're playing video games, the things you type on the keyboard get translated to characters very early, you don't store keycodes anywhere. mixing array indexes is harder, because I do want to store indexes and pass them to all sorts of utility functions and do arithmetic on them. 12:30:16 I don't care what keyboard layout other people use. 12:30:24 1-based indexing has the only one plus side that you can index from the end by negative integers (the Python indexing scheme is in some cases irregular), though I thing backward indexing should not abuse signs at all and use something else (as e. g. in last versions of C#) 12:30:41 When I speak on irc, you can't really tell what keyboard layout I used to type it, and you can read it just as easily regardless how I type it. 12:30:43 OK, well. I don't care about that. I think the interesting things in Julia are its macro system and its type system. And these are interesting to examine, not necessarily useful to use, for any given application. 12:30:59 (that = 1-based or 0-based.) 12:31:31 That's why I suggested to check it out. If you find it useful, too, great. If not, ok, well, sorry. 12:31:38 cpressey: I don't know yet if I find it useful. 12:31:53 I might, in the sense that it may still be more practical to use than octave. 12:32:03 I'll definitely look at it a bit more. 12:32:34 fwiw, I like Lua too. 12:34:11 Lua gives some useful lessons, like it's a good example of how you can design a good C api that can work with a moving garbage collector, which is pretty rare as these things go. 12:34:32 But there's a lot of other things in lua that I don't like, besides the 1-based indexes. 12:36:00 wob_jonas: statements not being expressions? 12:36:02 arseniiv: the negative indexing and slicing in Python reminds me of Perl. 12:36:08 x[:-1] is virtually an emoticon 12:36:40 arseniiv: no, that's not really my problem 12:37:15 but I don't really want to talk about lua here unless there's a good reason 12:37:25 I just brought it up as another example for 1-based stuff 12:37:33 cpressey: ah, for ASCII-artness? For my part, I definitely find the ubiquitous x[::] copying or x[::-1] reversal ASCII-arty 12:37:51 oh, x[:], x[::] is redundant of course 12:37:56 and maybe incorrect 12:38:16 well, ASCII-artness, and general tendency towards golfing 12:39:55 ``` type -a julia # just checking 12:39:56 bash: line 0: type: julia: not found 12:41:53 wob_jonas: okay, I don’t mind at all. I had learned Lua to some depth once (and now I almost forgot it) and it felt a nice example of a minimal language. For some reason I was surprised by size of its grammar. Though it seems I had known about S-expression grammar to that time, and it should be way smaller. I hadn’t used Lua even for smallest projects though 12:43:20 that time, I found quirks of length operator, or what it were, pretty strange. I skimmed some details about newest versions not that long ago and didn’t find that piece there for some reason 12:43:45 and yes, octave and R are probably better examples, because they are geared to the same kind of numerical computation for which julia was made for 12:43:56 arseniiv: which generation of the length operator? that changed like twice throughout lua 12:44:18 sorry never mind 12:44:21 wob_jonas: I don’t remember, alas 12:44:22 I shouldn't bite on that 12:54:15 @metar EGLL 12:54:15 EGLL 251220Z AUTO 13008KT 100V170 9999 NCD 36/17 Q1010 12:54:31 It is: too hot. They're saying there's a 70% chance of exceeding the hottest temperature ever recorded in the UK (38.5°C) today. 12:54:54 Also, apparently julia uses a variant of python scoping for local variables, except that some control structures (for and while) make inner scopes like def in python 12:57:22 Ok, not really, that's imprecise 12:57:27 they work differently 12:58:09 in that in python, an assignment without a qualifier means that a new variable is created for that scope 12:58:30 that seems like probably a better rule than julia's in the long term, even if possibly less convenient in shorter pieces of code 12:58:48 so yeah, they're not similar at all 13:48:08 I'm not much of a fan of Python's "now 'til the end of the definition" scoping. I prefer it when variables in inner blocks disppear when you return to the outer block. I don't remember what Julia does for that. 13:50:24 Meanwhile, Javascript: you can define variables at the *end* of the block if you like! 14:14:59 btw wob_jonas thanks for "Proof-theoretic ordinal", it certainly seems to fit into the picture I'm looking at 14:17:40 cpressey: MathOverflow seems to have a lot of people who care about that sort of crazy formal logic stuff, at least when filtered through my perception 14:23:44 I occasionally read MO (I'm a sucker for SE's "hot network questions" when I have to look up something) and, yeah, they're like that there aren't they. I've been increasingly interested in logic lately, but set theory not so much. 14:25:56 cpressey: also I keep reading David Madore's blog, in fact it's very high up there among websites I've been following for the longest time, and he sometimes talks about that sort of thing 14:29:36 -!- user24 has joined. 15:25:29 -!- Sgeo__ has joined. 15:28:34 -!- Sgeo_ has quit (Ping timeout: 248 seconds). 15:44:09 -!- wob_jonas has quit (Remote host closed the connection). 16:18:20 [[User talk:A]] https://esolangs.org/w/index.php?diff=64687&oldid=64684 * Areallycoolusername * (+1300) 16:24:28 [[Realm]] https://esolangs.org/w/index.php?diff=64688&oldid=64433 * Hakerh400 * (+0) Fixed some mistakes 16:38:32 -!- Phantom_Hoover has joined. 16:40:22 -!- doesthiswork has joined. 16:44:30 -!- cpressey has quit (Quit: A la prochaine.). 16:58:55 -!- Melvar has quit (Quit: WeeChat 2.4). 17:00:10 [[User:Sideshowbob]] https://esolangs.org/w/index.php?diff=64689&oldid=64619 * Sideshowbob * (+263) 17:00:21 -!- user24 has quit (Remote host closed the connection). 17:00:47 -!- user24 has joined. 18:04:46 -!- FreeFull has joined. 18:06:11 -!- Reallycooluserna has joined. 18:06:50 Just to be clear, I AM NOT user A 18:08:33 Can anyone give me tips as to how to make a good C++ Compiler? 18:13:01 -!- Reallycooluserna has quit (Remote host closed the connection). 18:13:16 -!- b_jonas has joined. 18:19:17 -!- Reallycooluserna has joined. 18:19:40 -!- Reallycooluserna has quit (Remote host closed the connection). 19:09:06 [[Talk:Sidex]] N https://esolangs.org/w/index.php?oldid=64690 * Plokmijnuhby * (+533) Asked for some clarification 19:13:56 -!- arseniiv has quit (Quit: gone completely :o). 19:22:59 -!- user24 has quit (Quit: Leaving). 19:50:45 Reallycooluserna: The more code you reject as causing undefined behavior the better your compiler is 19:51:19 doesthiswork: so the best compiler is one that considers any code to cause undefined behaviour? 19:54:19 -!- Lord_of_Life_ has joined. 19:56:35 -!- Lord_of_Life has quit (Ping timeout: 244 seconds). 19:57:06 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:02:24 yes it has finally achieved perfection 20:02:53 and it always fulfills its contract 20:09:54 -!- lldd_ has joined. 20:26:53 -!- xkapastel has joined. 20:42:45 [[Talk:Sidex]] M https://esolangs.org/w/index.php?diff=64691&oldid=64690 * Plokmijnuhby * (+95) /* Language explanation */ Added my signature. 20:47:55 [[Special:Log/newusers]] create * Argv0 * New user account 20:56:31 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64692&oldid=64469 * Plokmijnuhby * (+649) 20:58:04 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64693&oldid=64591 * Argv0 * (+150) /* Introductions */ 20:59:51 -!- Melvar has joined. 21:06:01 -!- lldd_ has quit (Quit: Leaving). 21:31:38 [[Realm]] https://esolangs.org/w/index.php?diff=64694&oldid=64688 * Plokmijnuhby * (+91) /* Examples */ Truth test 21:32:20 [[Realm]] M https://esolangs.org/w/index.php?diff=64695&oldid=64694 * Plokmijnuhby * (+3) /* Truth-test */ Wrong link 21:35:27 -!- AnotherTest has quit (Ping timeout: 245 seconds). 22:54:05 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64696&oldid=64687 * A * (+595) /* Race conditions */ 22:56:21 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64697&oldid=64696 * A * (+179) /* Race conditions */ 22:59:58 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64698&oldid=64697 * A * (+95) /* Race conditions */ 23:04:05 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64699&oldid=64698 * A * (+4) /* Race conditions */ Tell ARCUN I have created a separate page 23:09:06 [[Nop]] M https://esolangs.org/w/index.php?diff=64700&oldid=64653 * A * (+95) I think the SM is a nop machine (prove me wrong if you could) 23:09:29 [[Nop]] https://esolangs.org/w/index.php?diff=64701&oldid=64700 * A * (+0) Oops 23:15:39 [[Talk:Sidex]] M https://esolangs.org/w/index.php?diff=64702&oldid=64691 * A * (+499) 23:17:36 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64703&oldid=64699 * A * (+14) /* Deadlocking */ 23:18:56 [[Sidex]] M https://esolangs.org/w/index.php?diff=64704&oldid=64685 * A * (-391) /* stopThisThread.Sidex */ 23:19:59 [[Talk:Sidex]] M https://esolangs.org/w/index.php?diff=64705&oldid=64702 * A * (+174) 23:21:52 [[Sidex]] M https://esolangs.org/w/index.php?diff=64706&oldid=64704 * A * (+179) /* More concurrency */ 23:23:20 -!- Phantom_Hoover has quit (Quit: Leaving). 23:23:27 [[Sidex]] M https://esolangs.org/w/index.php?diff=64707&oldid=64706 * A * (+29) /* if.Sidex */ 23:23:53 [[Sidex]] M https://esolangs.org/w/index.php?diff=64708&oldid=64707 * A * (-12) /* if.Sidex */ 23:33:16 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64709&oldid=64703 * A * (+77) /* Deadlocking */ 23:35:00 -!- b_jonas has quit (Quit: leaving). 2019-07-26: 00:40:54 -!- zzo38 has joined. 00:54:29 -!- atslash has quit (Quit: Leaving). 00:54:47 -!- atslash has joined. 01:02:06 [[Realm]] M https://esolangs.org/w/index.php?diff=64710&oldid=64695 * Hakerh400 * (-14) Thanks User:Plokmijnuhby for the nice example! We adapted it to make it work with the abovementioned I/O format, since, as said in the paragraph before, bits of each byte are reversed. 01:09:28 -!- adu_ has joined. 01:09:30 -!- FreeFull has quit. 01:11:45 -!- adu has quit (Ping timeout: 244 seconds). 01:11:45 -!- adu_ has changed nick to adu. 01:30:46 [[User talk:A]] https://esolangs.org/w/index.php?diff=64711&oldid=64709 * Areallycoolusername * (+399) 01:43:50 b_jonas: Yes, I suppose it can be difficult without the cards. (Although, when ais523 was designing the card game, I did not see any cards either. Did they update the document since then?) 02:06:02 -!- sprock1em has quit (Ping timeout: 258 seconds). 02:56:36 -!- xkapastel has quit (Quit: Connection closed for inactivity). 03:43:19 LLVM has a norecurse attribute. When compiling for Glulx, since there is no addressable frame memory in Glulx, it must be emulated. But, it may be avoided for norecurse functions. One thing to do is to perhaps use the first argument as the frame address, but a calling convention for functions without a frame address may be useful to avoid adding this extra argument. 03:43:32 Or, maybe there may be a better way. 04:01:10 (The emulated frame memory is also not needed if you never take the address of any local variable.) 04:05:52 -!- atslash has quit (Ping timeout: 244 seconds). 04:08:10 are you writing a compiler? 04:10:07 Not at this time, but I mention the idea, if it can be used to compile LLVM codes into a Glulx story file. 04:13:59 -!- Sgeo has joined. 04:16:33 -!- Sgeo__ has quit (Ping timeout: 268 seconds). 04:17:18 Non-packed structures should align the elements of the structure according to the type of the elements (and at most four bytes), but the address where the structure begins does not need to be aligned. 04:19:15 In Glulx, you cannot take the address of local variables, and all local variables are 32-bits (smaller local variables are actually possible, but they do not work very well, and the assembler does not support local variables smaller than 32-bits). 04:35:36 -!- adu has quit (Ping timeout: 272 seconds). 04:38:44 Some LLVM functions would be supported in Glulx, but some aren't. Some may be possible if emulated. @llvm.memcpy() and @llvm.memmove() both correspond to the mcopy instruction. @llvm.memset.p0i8.i32() has a single instruction supported but only if the value to write is zero. 04:42:06 The @llvm.debugtrap() function would correspond to the "debugtrap" Glulx opcode (although in Glulx it takes an argument and in LLVM it doesn't). 04:51:07 Glulx does support setjmp() and longjmp(), although there are a few limitations which are unlikely to matter in C, as long as the code generator is aware of these limitations. 04:57:19 -!- adu has joined. 04:58:10 -!- doesthiswork has quit (Ping timeout: 248 seconds). 06:35:05 -!- user24 has joined. 07:37:35 -!- user24 has quit (Quit: Leaving). 07:45:57 -!- atslash has joined. 07:56:18 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:57:56 -!- Lord_of_Life has joined. 08:23:36 -!- Frater_EST has joined. 08:23:55 -!- Frater_EST has left. 08:35:22 -!- cpressey has joined. 08:47:59 Design for a pathological language. Fix an enumeration of Turing machines T0, T1, ... Tω. Programs in this language are integers. For a program i, if there is a j s.t. Ack(j,j) = i, simulate Tj. Else do nothing. 08:49:21 It's Turing-complete, because you can simulate any Turing machine with it - just find a suitable i. 08:53:39 I'm also pretty sure it has inherently high complexity (what ais523 and I were talking about a few days ago.) 08:59:01 It's also horribly "non-compositional" in the sense that the structure of the Turing machine isn't going to bear any resemblance to i. But that's nothing special. 08:59:49 By which I mean, you'll see that in any construction that starts off with "Fix an enumeration of TMs", which happens in a lot of proofs 09:00:00 What is inherently high complexity? 09:01:27 You can simulate any Turing machine, but you can't simulate it efficiently. 09:03:31 It came up because of a stmt in an article from 2002 that tag machines can simulate TMs but that it was not known if that they could do so in poly time, that the best known simulation had an exponential slowdown. 09:11:41 The TC proof for https://esolangs.org/wiki/An_Odd_Rewriting_System has an exponential slowdown, but it's not known if it's inherent. 09:12:55 The pathological thing I wrote above has a slowdown which is more(?) than exponential, and appears inherent (if you could find which Tj to simulate efficiently, you could compute Ackermann function efficiently) 09:14:30 But it's just an ugly little pathological counterexample. I can't call it an esolang. I can't even bring myself to give it a name. 10:00:18 Currently considering implementing AORS in Haskell in order to understand it better. 10:02:52 cpressey: sorry, but checking whether Ack(j,j) = i for some j *given i* does not strike me as expensive. 10:03:37 int-e: "for some j" -> "discover j for given i" 10:03:56 yeah but you're using a fast-growing function. 10:04:24 so we will stop very soon, and we can stop before ack(j,j) is fully computed (it's enough for an intermediate result to exceed i) 10:04:28 A fast-growing, strictly monotonic function 10:04:44 (except maybe in some corner cases, I have not thought this through completely) 10:05:45 Taneb: right, that's what I meant 10:07:14 I don't follow. Call Ack(1,1), Ack(2,2) "Ackermann numbers". I give you a number, you tell me if it's an Ackermann number or not. You're saying you can do this efficiently? 10:07:28 (I missed the ... after Ack(2,2) there, sorry) 10:07:32 I'm pretty sure I can. 10:07:35 I can do it as efficiently as you can give me numbers, I feel 10:09:07 And if I give say "Give me the n'th Ackermann number", can you do that efficiently too? 10:09:13 no 10:10:05 I know that I can't really grasp just how fast that function grows. 10:10:37 If I can fit i into my brain I can be confident j <= 6 10:11:08 Well, I agree that the number of bits in the programs in this language might be expoentially more than the number of bits needed to describe the TMs, but, not sure if that's relevant for what it's trying to show or not. 10:11:50 (I say exponential because I'm looking for something that is at least exponential) 10:16:24 -!- wob_jonas has joined. 10:17:55 cpressey: Julia seems like a typical new language, just like how you complained about what rust was like in the past: I ran julia from the debian oldstable and looked up the docs of the latest version online, and already found two obvious differences 10:18:44 In the old version, $ was the bitwise xor function; in the new version it's renamed to xor, also available under some non-ascii alias 10:19:19 I see no reason why testing whether j exists should take more than quadratic time in the size of i, given that we have a fairly nice closed formula for ack(3,j): ack(3,j) = 2^(j+3)-3... so we don't have to evaluate the recursion down to the base cases (which would likely become exponential, simply because we have to compute, say, ack(4,4), exactly if given that as input). 10:19:42 The docs does reflect this of course 10:20:06 int-e: What if I give you a much smaller i and ask you for the smallest Ackermann number that ends in the digits of i? 10:20:25 cpressey: that might be undecidable 10:21:15 True, that's not a good thing in a TC reduction. 10:22:05 (Gut reaction. There should be some shortcuts when computing ack(i,j) modulo n. But I'm not sure how effective they really are.) 10:23:39 int-e: there definitely are. I have a post relevant to that on SE. but more importantly, every positive integer is an ackermann number of form A(0, n), 10:24:20 wob_jonas: we've restricted the notion to Ack(n,n), I think. 10:24:25 and even if you forbid that and ask for ackermann numbers of form A(m, n) where M<=m for some fixed M, then every ackermann number like that is of form A(M, n). 10:24:26 OH! 10:24:32 you want only A(n, n)? that's harder 10:26:05 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64712&oldid=64692 * A * (+756) /* Conclusion */ 10:26:18 -!- arseniiv has joined. 10:26:28 wob_jonas: Yeah, Julia 1.0 only came out last year. There's a 1.1 already. I hope they keep 1.x stable. 10:27:26 Taneb: Are you guanxing? 10:27:36 shachaf: when I can 10:27:57 What if I give you an i and you give me the smallest Ackermann number that has at least i digits in its decimal expansion 10:28:07 Oh never mind 10:28:10 Are you doing fancy SAT/QBF/exact cover/ILP/whatever solver things? 10:28:16 This is just like last time I tried to do this 10:28:22 I am doing nothing of the sort myself 10:28:45 Just trying to document some of the data structures 10:29:07 Are there any good data structures? 10:29:21 cpressey: How something more computational, like checking whether T_i executes for at least 2^i steps before it halts? 10:29:40 shachaf: there's the type-threaded catenable list, which is pretty neat 10:29:50 Apparently many SAT solvers support producing certificates of unsatisfiability. 10:30:00 I wonder what kinds of problems that's feasible for. 10:30:06 ( https://github.com/ekmett/guanxi/blob/master/src/Aligned/Internal.hs#L207 ) 10:30:56 How do catenable lists work? 10:31:07 int-e: That sounds almost too simple, but it might work. 10:31:14 Maybe if I unthread the types it'll be easier to see. 10:31:18 shachaf: https://en.wikipedia.org/wiki/Boolean_Pythagorean_triples_problem 10:31:56 cpressey: anyway, yes, in that case you can tell easily if a number is an ackermann number, and with what argument, because (\n -> A(n, n)) is monotonic 10:31:57 shachaf: the purpose of them is to be a sequence type with O(1) cons, snoc, and append 10:32:04 cpressey: I guess it's not really all that easy because simulating a TM might be faster than the original TM. 10:32:06 I'm not too sure how they work so far but they deem to 10:32:07 int-e: Yes, we talked about that the other day. 10:32:08 *seem 10:32:11 and grows very fast 10:33:20 I should probably learn the details of CDCL better. 10:33:33 data Cat a = E | C a (Q (Cat a)) 10:34:31 data Q a = Q -- hang on, what's this existential? 10:34:47 What existential? 10:34:53 Q can be any reasonably efficient queue type 10:34:54 data Q f a b where Q :: !(Thrist f b c) -> !(Rev Thrist f a b) -> !(Thrist f b x) -> Q f a c 10:35:03 What's that x about? 10:35:04 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64713&oldid=64712 * A * (+23) /* Conclusion */ 10:35:07 Oh yeah, that existential 10:35:26 There's one in the definition of Cat I linked to, too 10:35:34 um 10:35:39 Which definition? 10:35:56 you're writing crazy gadt types? 10:35:59 data Cat f a b where E :: Cat f a a; C :: f b c -> (Q (Cat f) a b) -> Cat f a c 10:35:59 Oh, sure, Cat has an existential, but it's used twice. 10:36:04 wob_jonas: no, I'm only documenting them 10:36:14 This x is only used once. What's that about? 10:36:31 The Thrist to Nowhere 10:36:32 Oh, the one in Q, it's to do with how the queue is implemented. It's somewhere in PFDS 10:37:52 instance Cons Q where cons a (Q f r s) = Q (a :. f) r (undefined :. s) 10:37:59 I find myself slightly skeptical of ths type. 10:38:13 where do these come from? 10:38:22 Taneb's link. 10:38:55 OK, there's some invariant, which isn't documented of course. I guess that's what Taneb is doing. 10:39:21 Man, how can Haskell people stand how inefficient their code is? 10:39:42 oh 10:39:58 shachaf: I don't care as long as it's fast enough 10:42:08 Taneb: OK, is this third Q field literally just a natural number? 10:42:56 I think that's what's going on. For the amortization, or something. 10:47:50 Golly. You should simplify this code before or after documenting it. 10:48:46 Sometimes I don't want fast, if fast means I have to write the program differently 10:49:50 Optimizations interfere with aesthetics, y'know 10:53:58 cpressey: one possible solution for that is to write the parts that you have to optimize in two versions, a straightforward version that works but you ifdef it out, and an optimized version. 10:56:11 wob_jonas: Yes, that works well if you have a suite of tests that you can run on both versions 10:56:42 Ugh, I wish any programming language was good. 10:57:15 cpressey: right, maybe you can make the part deterministic enough and repeatable enough that you can compare the output of the two of them 10:57:29 sometimes it's hard when it can have difficult side effects 10:57:50 but often enough it's good 10:58:26 my code are usually full of assertions to catch stupid errors I make 11:00:22 shachaf: the !(Thrist f b x) just acts as a counter... x is a type somewhere in the middle of the first list. 11:02:47 Yes, that's the conclusion I came to above. 11:04:11 Except I think x is any type because the list is just full of undefineds? 11:04:14 I already closed the page. 11:04:17 shachaf: I had not seen that yet. I was studying the code. 11:04:28 shachaf: no, it starts out as nil = Id 11:05:13 Right, that's the empty list. 11:05:17 shachaf: and then at each cons step the undefined is forced to match the function added to the first list 11:05:41 shachaf: and then in 'exec' it actually uses a copy of the first list when it knows that the second list is empty 11:06:14 (and I guess that copy is the reason for this awkward type... it might actually be more efficient than a unary counter of a different type this way) 11:06:47 I know of a secret technique for representing natural numbers that's more efficient than unary. 11:06:55 But I'm sworn not to reveal it. 11:07:30 more efficient than a unary counter... wow, that must be some fancy magical algorithm 11:07:53 I mean a unary counter where each successor is a new heap-allocated node, of course. 11:09:15 yeah I'm not convinced that this is more efficient than keeping track of the counter in an Int. 11:09:19 (or Word) 11:10:37 It's not clear though. You'd also have to keep track of the length of xs (the first list) at all times. And `rotate` would have to return two values. 11:13:03 -!- sprocklem has joined. 11:14:37 Design for a pathological language, take two. The bits of the program are simultaneously intepreted as a brainfuck program, and as a sentence in Presburger arithmetic. If the sentence is a theorem of PA then the output is the output of running the brainfuck program, otherwise the output is empty. 11:15:03 Presburger arithmetic is decidable, but it's 2-EXP-hard. 11:15:28 sorry, 2-NEXP. 11:16:24 cpressey: that's probably not too hard to use, unless you design the syntax such that any reasonable BF program is always a syntax error in Presburger Arith. you just have to write your programs with some extra stuff that makes them _easy_ theorems 11:17:00 It might be a better idea to interleave the bits instead of overlap them. 11:17:51 "better" in the sense of "make it easier to show that it works" rather than "more interesting" 11:19:14 although it would be annoying, because most brainfuck programs have a lot of >>>>>> things in them, and now you have to change those to pad them out like 1>0&&1>0&&1>0&&1>0&&1>0&&1>0&&1>0 to avoid a syntax error 11:19:39 cpressey: interleaving is basically pairing. so you're saying M(T,X) = if X in L then T(X) else , where T is a Turing machine (Brainfuck program), and L is a hard but decidable language? (Presburger arithmetic). 11:19:55 int-e: yeah that's what makes it boring 11:20:36 sorry, not T(X), just T() I suppose. 11:21:00 (But while we are building tuples, you could add the input as a third component.) 11:22:27 I think I once talked about a language which is just like some other language except it's a syntax error for the sha1 hash of your program to be nonzero. 11:22:56 I don't remember the context now. 11:23:39 we also had this idea of restricting C to programs with a particular hash (I forgot which hash, but the idea was to hash the hello world program.) 11:24:00 It seems trivial to say "This language is complex because it insists on solving an unrelated complex problem before it tries to run your program in an otherwise normal fashion" 11:24:04 So same idea, but with the benefit that we can actually write *a* program. 11:24:36 I think it's hard to prove things about hash functions like surjectivity. 11:25:01 Still, counterexample is counterexample, so I guess I can't object if it's annoying, boring, trivial, etc 11:25:06 Maybe there are some cryptographic hash functions that also let you prove nice uniformity properties. 11:25:53 -!- arseniiv has quit (Ping timeout: 245 seconds). 11:28:39 Could go with overlapping, but give both alphabets (brainfuck's and PA's) a certain amount of redundancy, so that structure of bf program does not necessitate certain structure of pa sentence, and v-v 11:31:53 there's also a variant where the extra condition unrelated to the program is hard to even verify, but you just document that the program causes an undefined behavior unless that condition is satisfied, and the interpreter doesn't try to verify it 11:32:19 you can make the program cause an undefined behaviour unless whoever runs the compiler has payed me a hundred dollars, 11:32:47 or make the program cause an undefined behaviour unless the program was typed entirely by a cat walking on the keyboad, 11:33:03 or make the program cause an undefined behaviour unless whoever wrote the program is pure in heart, 11:33:20 or make the program cause an undefined behaviour unless whoever wrote the program really regrets having written it, 11:34:07 etc. I'm even thinking of adding such a restriction to some of the library functions of Consumer Society (not to the core language, just a few functions). 11:35:17 shachaf: it's a counter, but it uses a lot of sharing with the first field 11:37:38 shachaf: it's described on page 87 of my copy of Purely Functional Data Structures, so if you can find another copy maybe it's the same page 12:01:10 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64714&oldid=64713 * Jussef Swissen * (+446) 12:05:17 *Main> take 6 $ run testProg1 12:05:19 ["Cwg","CCwg","Ccwwg","CCCCwg","CcCcwwg","CCccwwwg"] 12:05:29 I seem to have written an AORS interpreter. 12:09:04 https://gist.github.com/cpressey/c8e42eb7223becae2e11aac676d1713e 12:09:45 You can laugh at my Haskell writing style if you like. 12:09:57 shachaf: Hmm what kind of property would provably ensure surjectivity of a hash without making preimages or collisions easier? 12:13:54 > zip "abc" [0..] 12:13:57 [('a',0),('b',1),('c',2)] 12:16:07 Turns out it doesn't need indexes (I was confused, thought the spec talked about "odd positions", but it doesn't) 12:17:58 yeah I just started wondering about that 12:19:29 I would forego the fold there, I think, in favor of an explicitly recursive function that takes a list and the number of seen odd symbols so far. 12:21:01 (the main reason being that accumulating a list by appending singleton lists feels horrible) 12:22:50 To each their own. Would it help if I explained that I wrote it because I wanted to better understand how it differs from a conventional rewriting system? 12:23:38 It looks like it's a kind of context-sensitive string rewriting. 12:32:24 inserting odd characters has an odd effect in that rewriting flavor :P 12:49:48 [[Talk:An Odd Rewriting System]] N https://esolangs.org/w/index.php?oldid=64715 * Chris Pressey * (+388) Haskell implementation 13:21:59 -!- arseniiv has joined. 13:26:58 -!- arseniiv has quit (Ping timeout: 272 seconds). 13:36:19 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64716&oldid=64714 * A * (+545) /* Conclusion */ 13:36:59 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64717&oldid=64716 * A * (+61) /* Conclusion */ 13:37:28 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64718&oldid=64717 * A * (-4) /* Conclusion */ 13:40:23 [[Talk:An Odd Rewriting System]] https://esolangs.org/w/index.php?diff=64719&oldid=64715 * Chris Pressey * (+2428) Towards a non-exponentially-slowing-down simulation of a 1D-1D-CA 13:42:13 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64720&oldid=64718 * A * (+233) /* Conclusion */ 13:42:13 -!- xkapastel has joined. 13:46:36 In other news, effect systems are pretty cool. 13:50:27 -!- Reallycooluserna has joined. 13:51:18 -!- Reallycooluserna has changed nick to ARCUN. 13:54:28 Why does Java have such a hellish grammer? 13:55:51 I could write a program in C++ that's roughly the same length as an equivalent program in Java, and only the Java program would have issues 14:16:59 -!- arseniiv has joined. 14:19:53 -!- ARCUN has quit (Remote host closed the connection). 14:38:16 -!- atslash has quit (Quit: This computer has gone to sleep). 14:40:48 -!- atslash has joined. 14:52:20 There is a candy on the table. Alice and Bob, at the same time, see it and try to grab it. Alice gets it, Bob does not. Is this a race condition? No. 14:52:31 If they somehow both got a candy, that would be a race condition. 14:56:56 race conditions are a violation of physics. (that's what I got from this scenario) 15:03:30 Physics provides some good built-in locking mechanisms "for free". 15:04:25 I'm actually trying to come up with an analogy to explain why I'm not worried about a particular concurrency scenario, but it's not the best analogy. 15:05:00 It's more like: you can cancel a task, but you will never be guaranteed that you cancelled it in time. 15:05:16 The task might terminate just before you cancelled it. 15:06:41 can this be seen as a variation of the byzantine generals problem somehow? 15:06:42 Since you effectively never have a guarantee of that, it's not worth worrying about whether "cancel" will be scheduled before or after "terminate". 15:07:11 I don't know what Byzantine generals refers to, but I heard it used in relation to this already, so I'll look it up. (Thanks!) 15:07:34 Hmm, that's the wrong general's problem... 15:07:56 '"Byzantine generals" redirects here. For military generals of the Byzantine empire, see Category:Byzantine generals.' 15:07:59 <3 u Wikipedia 15:08:01 I wanted https://en.wikipedia.org/wiki/Two_Generals%27_Problem which is different (and simpler). 15:10:33 The similarity I'm seeing is that cancellation implies synchronization between the two tasks... and termination introduces a source of unreliability. It's a stretch, probably doesn't make sense outside of my mind :) 15:10:53 [[Seabass]] https://esolangs.org/w/index.php?diff=64721&oldid=64676 * Sec-iiiso * (+40) /* Hello, world! */ 15:11:15 [[Seabass]] https://esolangs.org/w/index.php?diff=64722&oldid=64721 * Sec-iiiso * (+1) /* Hello, world! */ 15:14:16 -!- wob_jonas has quit (Remote host closed the connection). 15:14:54 The Generals problems seem to relate mainly to distributed systems? What I'm thinking of isn't a distributed system, it's just a multithreaded program. 15:15:14 Sure I knew that 15:15:36 -!- Sgeo_ has joined. 15:15:52 As I just wrote, it probably doesn't make sense :) 15:16:34 brains are weird. 15:16:35 Well, it lets me figure that the previous reference to it that I heard probably doesn't make sense either :) 15:17:37 -!- Sgeo has quit (Ping timeout: 258 seconds). 15:19:33 I got involved in a discussion on news.software.nntp about the problem when article numbers will have to exceed 31-bits. My own software (both the client and server) already support 63-bit article numbers, although the protocol specification limits it to 31-bits. Some proposed solutions are increasing the version number to 3, adding a new BIGNUM command, and violating the protocol. 15:19:36 Obviously you don't *need* any distributed system for this. You need some kind of unreliable communication channel. It's just hard to come up with sources of unreliability on a single system that's operating fine :) 15:19:45 Do you have any comments about fixing this? 15:20:17 zzo38: I would totally just violate the protocol. 15:21:41 . o O ( do a hard fork of the block chain ) 15:22:03 cpressey: Yes, that is what I do too (but not until it becomes necessary to do so); although Michael think that it can cause a problem with a client that doesn't expect it. But I think that if they do what they suggest instead, then you may fail to notice new articles and fail to notice that there even is a problem. 15:25:16 Did you ever write any NNTP software? 15:28:52 -!- Sgeo__ has joined. 15:29:39 See the thread starting at <5cd011d5$0$15174$426a74cc@news.free.fr> 15:32:25 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 15:39:27 zzo38: No, and I haven't used Usenet in ages. 15:40:46 int-e: If you believe your local event queue is unreliable, you have way worse things to worry about than this, I imagine 15:49:33 -!- doesthiswork has joined. 15:50:29 I wrote a dynamic race-condition analyser once: https://catseye.tc/installation/Matchbox 15:50:54 It's just a toy, but it can be fun to watch as it displays all the possible interleavings 15:56:41 On the subject of programming languages, should I care about Pony? 15:57:29 cpressey: what do you think of this... there are water boilers with a mechanical switch that turn themselves off when the water is boiling. If you wait for the water to boil and switch them off, you can never be completely certain that they didn't switch themselves off first. 15:57:52 int-e: That's a good analogy. Thank you! 15:58:48 Indeed, the electric kettle in my kitchen has exactly that feature. 15:59:08 And in many kitchens across the country, one imagines 16:00:50 Pony looks better than I imagined it to be based on how twee it presents itself (that kind of presentation kind of turns me off y'know) 16:01:29 (What's the adjverbial form of the adjective twee? twee-ly?) 16:01:54 -!- xkapastel has quit (Quit: Connection closed for inactivity). 16:01:58 (Elm's presentation is also far too twee for my taste) 16:03:45 Do you mean the hand-holding ala "Working your way through the tutorial but in need of more help?"? 16:04:08 (I didn't know "twee".) 16:06:07 maybe shachaf could read https://www.ponylang.io/media/papers/opsla237-clebsch.pdf and tell us if it's any good. ("Fully Concurrent Garbage Collection of Actors on Many-Core Machines") 16:06:11 In a tutorial, it's forgivable, you want to try to make it readable and friendly, I understand that. 16:06:36 Sometimes it starts to permeate an entire project though. 16:07:19 Related: including an emoji in the description of your project (very popular to do this on Github now.) 16:08:36 uWu ~*what's this?*~ 16:08:37 That reminds me of the fact that I never liked "Learn you a Haskell for Great Good", starting with the title, and the -- twee, I guess -- style. 16:09:11 Yeah I was going to mention that book as a sort of watershed moment in this regard 16:09:26 you need to make the emojis an integral part of your language's syntax 16:13:54 doesthiswork: That's a different matter. I approve of that, so long as they are grossly overused in incoherent ways in the program source. 16:14:52 I suppose If I do that then the documentation must be as serious and professional as possible 16:18:37 "Incorrectness is simply not allowed." Thank you, Pony project, for engaging in that other rhetorical habit that irritates me: hyperbole. 16:19:16 Hyperbole is the worst possible thing that any form of writing could ever include, with the possible exception of irony 16:21:14 Taneb: That's very good, I'll have to remember that one. 16:21:56 -!- Melvar has quit (Quit: thunderstorm). 16:22:58 . o O ( Show me a proogramming language that ensures that all programs are correct and I'll show you a programming language that is useless. ) 16:23:40 -!- atslash has quit (Quit: This computer has gone to sleep). 16:29:55 Alas I must away. À la prochaine. 16:29:57 -!- cpressey has quit (Quit: WeeChat 1.4). 16:44:27 -!- lldd_ has joined. 16:48:49 -!- lldd_ has quit (Client Quit). 16:52:03 -!- b_jonas has joined. 16:53:20 -!- Phantom_Hoover has joined. 17:01:33 oh, that could be evil! make the language so that most things are written in ascii, but there's some rare feature that disables some optimization that you occasionally need to use in programs that do something tricky with pointer aliasing, and make the syntax for that rare syntax a brocoli emoji or something. 17:02:22 when the next person to maintain your program sees that, they'll believe it's nonsense, because all programs they've seen are written in ascii only, they remove the brocoli from the source code, the program still compiles, but months later they'll get mysterious hard to debug failures when the phase of the moon influences the optimizer the wrong way. 17:03:26 we should propose that for C++. 17:11:45 or maybe for one of those features where the code doesn't compile unless you use some crazy incantation, and that incantation is a vomiting rocket emoji. the person learning rust can't figure out how to convince the borrow checker that some code is valid. he asks on StackOverflow or something. he gets an answer with working code with a vomiting rocket in the middle. he ignores that, thinking that must 17:11:52 be a troll, no programming language actually uses vomiting rockets. 17:11:55 the answer might even get deleted if other people don't take it seriously either. 17:15:17 what is the vomiting cocket emoji? 17:16:12 *rocket (a bit of a freudian slip there) 17:33:51 b_jonas: please let’s not do C++ that big a favor 17:37:48 doesthiswork: https://www.xkcd.com/1813/ 17:38:21 but that's just an example, other emoji characters could work 17:39:03 presumably they would match the meaning somewhat, so the emoji spelling for std::launder would be a washing machine or something 17:58:44 that's the same as what Steele was doing with fortress right? 19:07:17 -!- Melvar has joined. 19:30:45 int-e: What about it? 19:31:10 The idea is that it can prevent global pauses by doing local GC? 19:40:29 shachaf: that's called Rust 19:43:42 No it isn't? 19:55:46 -!- Lord_of_Life_ has joined. 19:57:32 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:58:33 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:18:54 also I'm visiting London tomorrow, but only for three days 20:41:37 You can make the syntax to use U+FFFE character 20:59:54 -!- atslash has joined. 21:20:10 -!- xkapastel has joined. 21:43:05 -!- moei has joined. 21:53:14 I'll be seeing the non-vacuum versions of the tube. 21:58:17 ooh 21:58:24 what are your other plans in london? 21:58:43 adu: Rust hasn't had local GC in a really long time, it was removed before 1.0 21:59:03 and actually rustc's @T wasn't real GC, it was a janky refcounting system 21:59:27 (but the rustboot implementation before that had real GC) 22:00:11 there now are attempts to add hooks to enable GC libraries 22:00:29 however I think Rust has enough "no GC" inertia that they're not going to end up with the D problem where half the libs depend on GC 22:00:33 it'll be more for specialized things 22:00:45 Servo had a bunch of hooks to enable Rust objects to be managed by SpiderMonkey's GC 22:00:51 that was really really janky 22:00:52 and unsafe 22:01:11 not less safe than the way Gecko does it in C++, but not as safe as Rust is supposed to be 22:01:41 in the early days, Rust was more like a native-code Erlang or a not dumbed down Go 22:01:50 it gradually evolved towards being a "bare metal" systems language 22:32:27 nice, the big museums in London are open almost every day. I'm used to most museums being open only 6 days a week 22:32:43 kmc: I don't have too much plans. I'm going with family, so the plan mostly involves being with them. 22:32:55 i see 22:32:57 I definitely want to visit museums, as well as just walk on the streets of the inner city, because both of those are my kinds of fun 22:32:59 are they cool 22:33:14 [[Talk:An Odd Rewriting System]] https://esolangs.org/w/index.php?diff=64723&oldid=64719 * Ais523 * (+1304) what causes the issue with AORS 22:33:22 also they're planning to go to some sort of concert on saturday evening 22:39:16 -!- arseniiv has quit (Ping timeout: 246 seconds). 23:15:46 -!- sprocklem has quit (Ping timeout: 248 seconds). 23:17:31 -!- sprocklem has joined. 23:31:13 kmc, oh hey i talked to someone on discord the other day who swore that he had run into a bug where firefox's JS engine was garbage collecting live variables in the middle of a function 23:31:33 i still don't really believe him but extremely lol if true 23:34:07 Do you have a example program to test it? Then you can see if that is the case. 23:37:19 i do not, and it sounded like one of those baffling bugs that's buried very deep in a giant project 23:38:48 wouldn't be surprised if it turns out not to be reproducible. the guy was saying he suspected it might actually be some JS library or other instead 23:38:52 but a man can dream 2019-07-27: 00:04:55 How common is it to use scientific method to try to determine the behaviour of proprietary software? 00:13:00 The documentation for Hero Mesh mentions what many things do, and also has a section about the internal code structure, but they mention many things which are untrue or which are unclear. I have figured out how a lot of the stuff actually works; this can be used with making Free Hero Mesh. 00:18:48 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 00:29:02 -!- FreeFull has joined. 00:41:57 -!- adu has quit (Quit: adu). 00:50:37 -!- adu has joined. 00:52:04 -!- MDude has quit (Ping timeout: 244 seconds). 01:16:06 -!- b_jonas has quit (Remote host closed the connection). 01:16:38 -!- MDude has joined. 01:50:30 shachaf: I have only read the title. :P 01:52:47 I didn't even get that far! 01:57:06 -!- MDude has quit (Ping timeout: 268 seconds). 02:19:52 -!- xkapastel has quit (Quit: Connection closed for inactivity). 02:34:59 shachaf: okay I got something out of reading the informal description (Section 4). 02:35:18 about 1 1/2 pages. 02:36:26 And they have benchmarks where they beat Erlang. I have no clue how fair these are. 02:59:04 Now I made it so that if a word ends with 's then it will parse 's as a separate word. 03:20:30 [[Seabass]] M https://esolangs.org/w/index.php?diff=64724&oldid=64722 * A * (+4) /* Infinite Loop */ People usually forget that there is a page for the program form. 03:32:17 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64725&oldid=64720 * A * (-1) /* Conclusion */ typo 04:45:07 -!- rtcwyvrn has joined. 04:49:18 -!- Sgeo_ has joined. 04:52:35 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 04:59:05 -!- rtcwyvrn has quit (Quit: Leaving). 05:04:08 -!- tromp has joined. 05:04:09 -!- tromp_ has quit (Ping timeout: 250 seconds). 05:17:07 -!- atslash has quit (Ping timeout: 245 seconds). 07:52:22 -!- Frater_EST has joined. 07:56:35 -!- xkapastel has joined. 07:57:22 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 07:58:42 -!- Lord_of_Life has joined. 08:26:33 -!- arseniiv has joined. 08:50:02 -!- doesthiswork has quit (Ping timeout: 245 seconds). 09:50:02 [[Malbolge]] M https://esolangs.org/w/index.php?diff=64726&oldid=62502 * Malbranche * (+3) /* External resources */ Updated links 09:52:21 -!- atslash has joined. 09:54:14 [[Pxem]] https://esolangs.org/w/index.php?diff=64727&oldid=61698 * YamTokTpaFa * (+1466) /* Interpreter Development */ 09:54:37 [[Pxem]] https://esolangs.org/w/index.php?diff=64728&oldid=64727 * YamTokTpaFa * (+6) /* pxemi.7z and text2pxem.pl */ 09:55:27 [[Pxem]] https://esolangs.org/w/index.php?diff=64729&oldid=64728 * YamTokTpaFa * (-6) /* pxemi.7z and text2pxem.pl */ 09:57:07 -!- atslash has quit (Ping timeout: 245 seconds). 09:58:02 -!- atslash has joined. 10:02:36 [[Malbolge Unshackled]] https://esolangs.org/w/index.php?diff=64730&oldid=53438 * Malbranche * (-299) /* External resources */ 10:06:11 [[Special:Log/newusers]] create * PCC * New user account 10:22:01 -!- xkapastel has quit (Quit: Connection closed for inactivity). 10:34:03 -!- MDude has joined. 11:38:40 -!- Frater_EST has quit (Remote host closed the connection). 12:15:33 [[HQ9F+]] https://esolangs.org/w/index.php?diff=64731&oldid=61461 * YamTokTpaFa * (+202) /* Links */ 12:20:05 [[Pxem]] https://esolangs.org/w/index.php?diff=64732&oldid=64729 * YamTokTpaFa * (-312) /* External Links */ 12:21:26 [[BrainCrash]] https://esolangs.org/w/index.php?diff=64733&oldid=64374 * YamTokTpaFa * (+337) /* External resources */ 12:22:13 [[Pxem]] https://esolangs.org/w/index.php?diff=64734&oldid=64732 * YamTokTpaFa * (-21) /* External Links */ 12:22:21 [[Pxem]] https://esolangs.org/w/index.php?diff=64735&oldid=64734 * YamTokTpaFa * (+1) /* External Links */ 12:23:24 [[HQ9F+]] https://esolangs.org/w/index.php?diff=64736&oldid=64731 * YamTokTpaFa * (-58) /* Links */ 12:25:29 -!- atslash has quit (Quit: This computer has gone to sleep). 13:01:19 -!- xkapastel has joined. 13:39:39 -!- FreeFull has quit. 13:42:23 -!- FreeFull has joined. 13:54:02 hi; are quantum logics/sets useful for anything? It seems to me it’s way more proper to use a language of QM or QFT and say things there. And if some things we cannot say, then so be it 13:55:40 I think these are akin to various fuzzy formalisms: may be popular, but it isn’t a valid shortcut through a “normal” mathematics, as probability/statistics (almost always, I think) are for fuzziness 13:57:51 in statistics, we are forced to be explicit about what we assume, to get something in return. We can make ad-hoc assumptions, but we’ll reap something tangibly linked to what we sown (or so I think); contrarily, we can ad-hoc all the way in fuzzy world and I don’t understand how to make something with a clear semantics 14:00:34 or maybe not that; AFAIK fuzziness tries to reason about uncertainty without concerning dependence. And then it is ad-hoc’ed back in all other places to make this or that inference mechanism working 14:00:47 s/working/work 14:02:07 I very strongly hope I’m misdirected about that, but alas it seems I am not. Junk science does exist, after all, here and there 14:03:51 so, for quantum logics I also don’t know what do their authors trying to accomplish with them, though in this case I’m less primed to think so polarized 15:04:04 [[HQ9F+]] https://esolangs.org/w/index.php?diff=64737&oldid=64736 * YamTokTpaFa * (+176) /* Links */ 15:17:05 [[HQ9F+]] https://esolangs.org/w/index.php?diff=64738&oldid=64737 * YamTokTpaFa * (+95) 15:31:53 -!- Phantom_Hoover has joined. 15:45:54 -!- doesthiswork has joined. 16:14:04 -!- atslash has joined. 16:28:29 Fortunately, to implement Free Hero Mesh, there are a lot of test cases; each level made for Hero Mesh is a test case; they always include solutions, so this can be used to test it. 16:46:10 -!- Sgeo has joined. 16:47:23 [[Dbondb]] https://esolangs.org/w/index.php?diff=64739&oldid=64588 * Sideshowbob * (+63) /* Commands */ 16:48:49 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 16:50:42 -!- Sgeo has quit (Ping timeout: 248 seconds). 16:56:22 -!- Sgeo has joined. 17:15:10 -!- doesntthiswork has joined. 17:17:33 -!- doesthiswork has quit (Ping timeout: 245 seconds). 17:49:48 good morning 18:13:22 Good day 18:13:26 Hello 18:21:04 -!- xkapastel has quit (Quit: Connection closed for inactivity). 18:22:16 do you want to see my ducks? 18:22:55 https://i.postimg.cc/x8YnJdb8/ducks.jpg 18:24:33 https://i.postimg.cc/Kz0JLq1T/concerned-duck.jpg 18:54:30 Is there something like OpenID but with SASL instead and not HTML? 19:27:37 doesntthiswork: these ducks are cool! 19:27:55 BTW do they type 19:34:07 they walk like ducks and nibble like ducks 19:34:21 and they like to fall asleep on your lap 19:46:11 Will they add later in SQLite the possibility that you can use incremental blob I/O with virtual tables? 19:52:34 -!- lldd_ has joined. 19:54:43 -!- xkapastel has joined. 19:56:51 -!- Lord_of_Life_ has joined. 19:59:12 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 19:59:38 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:02:47 -!- sebbu2 has joined. 20:06:17 -!- sebbu has quit (Ping timeout: 245 seconds). 20:17:53 -!- lldd_ has quit (Quit: Leaving). 22:27:20 -!- moei has quit (Quit: Leaving...). 22:47:07 -!- sebbu2 has changed nick to sebbu. 23:57:51 -!- Sgeo_ has joined. 2019-07-28: 00:00:52 -!- Sgeo has quit (Ping timeout: 244 seconds). 00:11:54 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 00:14:01 -!- arseniiv has quit (Ping timeout: 246 seconds). 01:55:32 I found a Scrabble game called "scribble" in the package manager on my computer. Scribble was written by Brian White and has been placed in the public domain (the only true "free"). I added a single player mode, so that if you put level 0 then you can play game by yourself. 02:26:16 -!- FreeFull has quit. 02:40:24 [[Talk:Swissen Machine]] https://esolangs.org/w/index.php?diff=64740&oldid=64725 * Jussef Swissen * (+291) 02:44:29 -!- xkapastel has quit (Quit: Connection closed for inactivity). 03:10:52 -!- Sgeo__ has joined. 03:13:48 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 03:37:11 The Wave: \o/ \ꙩ/ \ꙫ/ \ꙭ/ \ꙮ/ 03:37:29 Oh there's \ꚙ/ as well. 03:39:41 int-e: It doesn't seem easy to get a definitive answer to the question "what should my program non-C program do between _start and main?" 03:39:54 That rdx thing is one piece of the puzzle but there are presumably others. 03:41:10 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64741&oldid=64740 * A * (+615) /* Conclusion */ 03:41:24 [[Talk:Swissen Machine]] M https://esolangs.org/w/index.php?diff=64742&oldid=64741 * A * (+64) /* Conclusion */ 03:46:48 [[Idea]] N https://esolangs.org/w/index.php?oldid=64743 * A * (+666) Stub page. 03:47:44 [[Idea]] M https://esolangs.org/w/index.php?diff=64744&oldid=64743 * A * (+0) 03:50:44 Tricky. I would rather take off from main() instead, because presumably I want to interact with libraries that in turn use libc, so I want the C library to be fully initialized. 03:51:47 And I'm not sure that it does all that using the __constructor__ mechanism. (I don't even know how that works on the ELF side.) 04:00:17 [[Idea]] M https://esolangs.org/w/index.php?diff=64745&oldid=64744 * A * (+195) 04:01:04 How can my compiler do that? 04:01:16 Do I find crt0.o and link it in or something? 04:01:43 shachaf: Oh there's more to this than the SysV ABI. LSB plays into it as well, apparently: http://refspecs.linuxbase.org/LSB_3.1.0/LSB-generic/LSB-generic/baselib---libc-start-main-.html (I googled "libc initialization" with duckduckgo) 04:01:46 It seems like there should be an ABI for this. 04:01:56 [[Idea]] M https://esolangs.org/w/index.php?diff=64746&oldid=64745 * A * (-14) /* Instructions */ 04:04:44 hmm objdump -dr /usr/lib/x86_64-linux-gnu/crt1.o 04:06:31 You want things from /usr/lib/gcc/x86_64-linux-gnu/*/ as well. 04:07:08 [[Idea]] M https://esolangs.org/w/index.php?diff=64747&oldid=64746 * A * (-59) /* Infinite loop */ 04:07:10 `` echo 'int main() { return 0; }' | gcc -x c - -o /tmp/true; objdump -d /tmp/true | grep '>:$' | awk '{print $2}' | xargs 04:07:11 ​<_init>: <.plt>: <.plt.got>: <_start>: : : <__do_global_dtors_aux>: :

: <__libc_csu_init>: <__libc_csu_fini>: <_fini>: 04:07:26 What's all this nonsense? Am I supposed to do all that? 04:08:56 [[Idea]] M https://esolangs.org/w/index.php?diff=64748&oldid=64747 * A * (-10) 04:10:00 Hmm, what does csu stand for. Something boring like "C start-up" maybe? 04:10:16 I don't know; I have once used LLVM and just defined main, and it work, so, I don't know how to do it without main 04:11:22 "This directory contains the C startup code (that which calls main)." from glibc/csu/ 04:11:26 I mean, looking at https://sourceware.org/git/?p=glibc.git;a=tree;f=csu it's all connected to initialization of various things... 04:11:40 (From the Makefile.) 04:12:35 So crti/crtn stand for "initializer" and "finalizer". 04:12:59 http://www.dbp-consulting.com/tutorials/debugging/linuxProgramStartup.html has a fancy diagram 04:14:16 So it seems that my idea of .init is all wrong, I thought the loader handled those... but it's libc. The loader does preinit stuff, which I wasn't aware of. 04:14:38 (loader = interpreter = ld.so) 04:15:14 hmm, no. 04:15:49 I was unaware of both preinit and init stuff; only the constructors were on my radar. 04:15:53 It seems like the loader has to be involved. 04:16:00 too many mechanisms... 04:22:43 Hrm, that picture fails to explain what rdx is used for by the loader. 04:23:24 Or edx, since they're discussing x86 04:23:29 _32 04:23:42 It explains it under rtld_fini, doesn't it? 04:26:05 So is calling __libc_start_main required by any program that wants to use libraries that link against libc? 04:27:52 That's what it looks like to me. It seems that *a lot* of initialization doesn't happen otherwise. 04:28:16 All the world is libc :) 04:28:26 And then there's register_tm_clones and other things. 04:36:03 https://stackoverflow.com/questions/34966097/what-functions-does-gcc-add-to-the-linux-elf talks about these a bit. 04:39:50 https://gcc.gnu.org/wiki/TransactionalMemory - yay yet another ABI 04:42:17 Why does this need to be linked into my program instead of libc? 04:45:04 well it's a gcc feature not a libc feature, and presumably glibc doesn't use transactional memory itself? 04:45:11 This page says some of these things are deprecated, too. 04:45:38 Anyway I should take advantage of being up early and go for a walk before it starts getting hot. 04:45:43 @time int-e 04:45:44 Local time for int-e is Sun Jul 28 06:45:43 2019 04:47:18 @metar lowi 04:47:18 LOWI 280420Z VRB02KT 9999 FEW008 SCT018 BKN090 16/15 Q1001 NOSIG 04:47:36 @metar koak 04:47:37 KOAK 280353Z 29007KT 10SM CLR 20/15 A2994 RMK AO2 SLP137 T02000150 $ 04:47:45 hmm, almost chilly... 05:22:15 int-e: I thought the _tm_ things were necessary when linking any library that uses the transactional memory. 05:22:18 Maybe not. 05:56:00 shachaf: I expect so. But why should the C library care? 06:05:11 Perhaps it doesn't. 06:05:38 I think maybe I'll just call __libc_start_main or something and see if anything breaks. 06:05:47 That sounds like a good way to be confident in your software. 06:06:40 I mean, gcc is a C compiler but in this case it's implementing its own features that need additional initialization support. 06:07:16 I would invoke gcc as a linker, tbh. Maybe g++ if C++ stuff is involved. 06:09:29 That seems complicated. 06:09:31 (partly because that's what ghc does) 06:09:37 And how do you cross-compile in that scenario? 06:09:53 Ugh. 06:10:07 I basically don't cross-compile. 06:11:33 Probably because every tool makes it impossible to cross-compile because they do things like that. 06:11:34 I guess technically the OpenCL experiment involved cross compilation. The last time before that was playing with an Arduino. 06:11:42 Or because you unly use one platform, I guess. 06:12:24 But if you have a gcc cross compiler for the target then that should work? 06:12:54 -!- doesntthiswork has quit (Ping timeout: 272 seconds). 06:15:16 I thought cross-compiling with gcc was a nightmare. 06:15:43 I thought that was true in general, independent of gcc. 06:16:51 But as indicated I have not really touched cross compilation. 06:17:07 Even for the Arduino thing I used a canned Makefile which, fortunately, worked. 06:17:23 Maybe I should look at what Go does when it makes non-statically-linked binaries. 06:17:26 That did involve gcc as a cross compiler. 06:18:34 (but as a stand-alone implementation without a full-fledged C library, so a lot of *your* problems didn't really come up) 06:18:53 (no dynamic linking either!) 06:19:22 I've already made an ELF file that segfaults gdb. 06:21:17 Was that your goal? :P 06:21:18 It's actually pretty easy, you can make it with objcopy. 06:21:33 No, my goal was to make an ELF file that can be executed. 06:21:40 (I managed that too.) 06:22:12 (Didn't we once find out that you can crash /bin/true by messing with localisation?) 06:22:41 I don't remember that. 06:23:05 How about an ELF file that can be executed but still makes gdb crash when you attempt to load it there? 06:23:53 (Basic idea, put garbage in some sections that only gdb really cares about... dwarf stuff, say.) 06:24:07 Hmm, I don't remember whether the ELF file I made loaded. 06:24:59 Nope, also SEGV 06:26:38 tbf, it was /bin/true --help 06:32:22 So it looks like Go programs that link with libc don't call libc_start_main. 06:33:13 Go, be evil. 06:34:02 But what do they do instead? 06:34:06 I should probably just do that. 06:34:12 https://golang.org/src/runtime/asm_amd64.s 06:35:03 what assembly flavor is that... 06:35:07 Hmm, maybe I'm wrong. 06:35:12 Plan 9 assembly, obviously. 06:35:57 Hmm I guess actually I'm wondering about the register naming. 06:36:21 I think the register sizes are implied by the instruction names? 06:37:41 Recently I was writing a bit of x86 code by hand and I was confusil until I remembered someone said octal would be better than hexadecimal. 06:37:48 Then I was a bit less confusil. 06:38:22 what does the (SB) do? 06:38:47 ...Oh is that a register... 06:39:44 https://golang.org/doc/asm 06:39:51 "The SB pseudo-register can be thought of as the origin of memory, so the symbol foo(SB) is the name foo as an address in memory." 06:42:22 So that file defines main to be called by libc, but as far as I can tell that's not being used on a compiled binary. 06:57:29 shachaf: https://golang.org/src/cmd/cgo/doc.go ... have a look at lines 698ff. It seems that gcc is involved in the middle of the process. 06:58:34 __libc_start_main is mentioned but it's not clear by what mechanism it would actually be called. 07:00:23 (that means it's still possible that it isn't called) 07:30:54 shachaf: this may disappoint you, but go will use gcc or clang as a linker if shared libraries are involved somehow. 07:32:39 https://golang.org/src/cmd/link/internal/ld/config.go#L224 07:33:40 (plus documentation for `link`, which says "Set the external linker (default "clang" or "gcc")." for the -extld flag.) 07:33:51 int-e: I didn't see it executing gcc in the strace output, and I didn't see libc_start_main in the output of objdump -d 07:34:21 hmm did you do strace -f 07:34:29 Admittedly it is passing -extld=gcc to `link`. 07:34:38 Yes. 07:35:49 Maybe I'm misinterpreting ctxt.linkShared. 07:35:52 * int-e shrugs 07:35:57 I will stop anyway 07:37:07 Maybe it's being cached somehow? 07:51:51 Anyway the entry point is certainly _rt0_amd64_linux 07:57:57 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 08:00:21 -!- Lord_of_Life has joined. 08:01:40 -!- nfd9001 has joined. 08:15:37 <\oren\> the BDF format is apparently so old that BDF files were "typically distributed on nine-track tapes" 08:16:21 <\oren\> why one would use a text-based format rather than binary in that era, I don't know 08:18:09 so that they could be input using punched cards maybe? 08:18:29 <\oren\> ah yeah, that would explain it 08:18:41 What's the benefit of bitmap font formats? 08:19:00 <\oren\> They are easy to edit 08:19:26 <\oren\> or at least, that's my main reasoning 08:20:57 \oren\: Maybe punched cards are too old, but even so I suspect being able to edit bitmaps in a text editor was useful. 08:22:51 Though, hmm. It's using hex encoding. That's inconvenient. 08:23:09 <\oren\> I am currently working on making my BDF-handling programs more general, rather than totally specific to my neoletters font 08:23:48 <\oren\> They should be capable of handling any number of rows and up to 32 columns of pixels 08:32:09 \oren\: have you considered making a signed distance field font instead hth 09:28:35 -!- Frater_EST has joined. 09:39:58 `` file /bin/true 09:39:58 ​/bin/true: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9ae82394864538fa7b23b7f87b259ea2a20889c4, stripped 09:40:30 Is it a shared object (rather than an executable) because it's a position-independent executable? 09:41:03 `` ldd /bin/true 09:41:04 ​linux-vdso.so.1 (0x0000007fbffff000) \ libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000000004042e000) \ /lib64/ld-linux-x86-64.so.2 (0x0000000040000000) 09:41:29 `` readelf -h /bin/true | grep -i entry 09:41:29 ​ Entry point address: 0x1670 09:41:46 That doesn't look like an absolute entry point. 09:42:05 So that's pretty neat. I guess I want my programs to be position-independent. 09:42:14 Oh, I get the question, hmm. 09:42:36 `` file --version 09:42:37 file-5.30 \ magic file from /etc/magic:/usr/share/misc/magic 09:42:49 I imagine that's much trickier if you're doing static linking. 09:43:14 here it says, /bin/true: ELF 64-bit LSB pie executable, with file-5.37 (though technically iot's the `magic` file that's more important...) 09:43:27 What does readelf say? 09:43:44 `` readelf -h /bin/true | grep -i type 09:43:45 ​ Type: DYN (Shared object file) 09:44:33 `` echo $'.globl _start\n_start: int3' > /tmp/test.s && as -o /tmp/test.o /tmp/test.s && ld -o /tmp/test /tmp/test.o && file /tmp/test 09:44:34 ​/tmp/test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped 09:46:46 https://github.com/file/file/commit/6876ebadcdf27224b3ffa9dfa4343127aa97c9b2 09:46:50 Looks like a pretty recent change. 09:48:30 int-e: Does it just print that because it has +x permission? 09:54:26 shachaf: maybe but then please explain why file -L /lib/x86_64-linux-gnu/libc.so.6 says "shared object" 09:55:14 What about the thing it links to? 09:55:28 Oh, that's -L 09:56:00 Well, my version of file isn't even new enough to say "pie executable" 09:58:22 Hmm, no, 'x' must be something else. 09:58:35 Probably. 10:05:46 I'm also confused that it says leshort when e_type is a one-byte value. 10:06:01 The last time I wrote magic entries I didn't enjoy it. 10:09:41 well, you got the meaning of 'x' right. 10:09:58 https://github.com/file/file/commit/5b49de03a239c6765b6b6858d56827a021370b07#diff-dde49634c7a5cf692df46037d67d8c2eR480-R488 10:11:44 which means I'm pretty confused now 10:12:27 Did you try it on the link target to be sure? 10:13:06 I actually made a copy of /bin/true, removed the x, and it still says "pie executable" 10:13:31 Hmm. 10:13:48 Also is this the one use of ${ in the entire magic database? 10:14:26 possibly? the feature was introduced one or two patches before the elf change 10:15:13 -!- arseniiv has joined. 10:15:14 Ugh, autoconf/automake is such a scow 10:15:19 certainly looks that way 10:15:23 It makes me miserable every time I accidentally read any of it 10:15:24 (re: x) 10:15:57 I know I call things scow sometimes but I think this is a pretty legitimate use 10:19:09 Anyway this is a real mystery now. 10:19:16 If only I had a more recent version of file. 10:25:09 Oh, I guess I can get it from Nix. 10:25:27 ah, there's more magic 10:25:46 [[Bauberqueue/bauberqueue.py]] M https://esolangs.org/w/index.php?diff=64749&oldid=64378 * Erikkonstas * (-9) 10:26:00 which overrides the file mode for ELF files 10:26:58 https://github.com/file/file/blob/master/src/readelf.c modifies ms->mode in a couple of places. 10:27:33 Yikes. OK. 10:28:43 `` readelf -a /bin/true | grep FLAGS_1 10:28:44 ​ 0x000000006ffffffb (FLAGS_1) Flags: PIE 10:30:04 I wonder where this is specified? 10:36:13 https://cirosantilli.com/elf-hello-world#df_1_pie talks about it and links to a description 10:36:18 Man, this is ridiculous. 10:37:21 `` readelf -h /lib64/ld-linux-x86-64.so.2 | grep -i entry 10:37:22 ​ Entry point address: 0xc20 10:37:46 Even ld-linux is randomized? 10:37:55 It looks like this elf specific hack was initially introduced just for ", stripped" (checking for the absence of a particular type of section is too hard for the simple 'magic' logic) 10:37:57 I think I'm a bit confused about how ASLR works. 10:38:23 It seems the kernel decides to randomize based on an ELF file calling itself DYN. 10:40:22 Hmm, on a fundamental level that's nevessary: ld.so remains mapped executably, and may contain useful functions and ROP gadgets. 10:40:30 Right. 10:40:41 But then why would the kernel only randomize DYN files? 10:40:46 Can static executables get randomized? 10:42:43 Hrm, depends on details of the ELF format that I don't want to check... 10:44:08 https://stackoverflow.com/a/55704865 says "The Linux kernel 5.0 determines if ASLR can be used based on ET_DYN" 10:46:09 https://github.com/torvalds/linux/blob/v5.0/fs/binfmt_elf.c#L956 10:46:26 "There are effectively two types of ET_DYN * binaries: programs (i.e. PIE: ET_DYN with INTERP) and loaders (ET_DYN without INTERP, since they _are_ the ELF interpreter)." 10:46:31 thanks, linux. thinux. 10:47:36 Oh, well, that doesn't say what I thought it did. 10:48:27 But the gist of it seems the same. 11:07:59 -!- Frater_EST has left. 11:11:25 -!- Phantom_Hoover has joined. 11:39:12 @metar lowi 11:39:12 LOWI 281120Z 07003KT 030V170 9999 -SHRA FEW025 SCT050 BKN070 20/16 Q1001 TEMPO SHRA 11:39:35 not hot today. it's raining actually. 12:05:41 -!- FreeFull has joined. 12:28:41 The PE machine identifier for x86-64 is 0x8664 12:57:16 have a look at Intel's PCI vendor id some day 12:57:48 (it's 0x8086) 13:08:03 That doesn't use the x, though. 13:10:32 the 0x isn't part of the ID anyway 13:19:26 -!- Sgeo__ has quit (Read error: Connection reset by peer). 13:19:54 -!- Sgeo__ has joined. 13:31:53 -!- xkapastel has joined. 14:06:44 [[Sidex]] M https://esolangs.org/w/index.php?diff=64750&oldid=64708 * A * (+189) 14:10:28 [[Brainfuck extensions]] M https://esolangs.org/w/index.php?diff=64751&oldid=61455 * A * (+30) 14:17:08 [[Sidex]] https://esolangs.org/w/index.php?diff=64752&oldid=64750 * A * (+1) Oops 14:30:40 Intel also has the "8086F2" MAC OUI, which may or may not be a coincidence. (They have many others too.) 14:36:49 [[Idea]] https://esolangs.org/w/index.php?diff=64753&oldid=64748 * A * (+109) 14:40:13 Next you'll tell me they have it in their CPUID 14:49:00 shachaf: I don't know, do they? 14:50:06 > map length . words $ "GenuineIntel AuthenticAMD" 14:50:12 mueval-core: Time limit exceeded 14:50:17 ah 14:50:18 > map length . words $ "GenuineIntel AuthenticAMD" 14:50:21 [12,12] 14:50:45 that's the only part of cpuid I tend to remember 14:50:47 -!- Frater_EST has joined. 14:51:06 -!- Frater_EST has left. 15:10:01 int-e: Oh man, https://www.cs.stevens.edu/~jschauma/631A/elf.html 15:10:14 So many things. 15:17:55 [[Talk:Sidex]] https://esolangs.org/w/index.php?diff=64754&oldid=64705 * Areallycoolusername * (+194) 15:40:17 -!- Frater_EST has joined. 15:40:32 -!- Frater_EST has left. 15:45:27 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 15:59:19 [[Talk:Sidex]] https://esolangs.org/w/index.php?diff=64755&oldid=64754 * Arseniiv * (+588) /* Concatenative */ new section 16:54:30 -!- Sgeo has joined. 16:55:03 You know what would be nice? A non-dying Internet connection. And a chat platform that doesn't spam people when someone happens to have a dying Internet connection. 16:58:48 someone's salty 16:59:09 Sgeo: I rent a cheap VPS, run irssi there and connect with mosh from both my laptop and phone 16:59:27 it's very convenient and only rarely disconnects 16:59:45 only when linode reboots my machine, or i have to update irssi 17:30:39 -!- moei has joined. 17:58:30 -!- user24 has joined. 18:08:48 -!- doesntthiswork has joined. 18:19:06 -!- dont-panic has joined. 18:19:17 meow? 19:03:36 -!- user24 has quit (Quit: Leaving). 19:10:33 -!- arseniiv has quit (Read error: Connection reset by peer). 19:10:50 -!- arseniiv has joined. 19:33:17 -!- lynn has quit (Read error: Connection reset by peer). 19:33:37 -!- lynn has joined. 20:00:02 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 20:01:03 -!- Lord_of_Life has joined. 20:29:37 -!- Googied has joined. 20:31:15 -!- Googied has left ("Leaving"). 20:43:49 [[Renumbering]] N https://esolangs.org/w/index.php?oldid=64756 * DoggyDogWhirl * (+1839) 20:43:54 [[Renumbering/Python Implementation]] N https://esolangs.org/w/index.php?oldid=64757 * DoggyDogWhirl * (+1486) 21:02:51 -!- Sgeo_ has joined. 21:05:52 -!- Sgeo has quit (Ping timeout: 245 seconds). 21:29:09 [[User:DoggyDogWhirl]] https://esolangs.org/w/index.php?diff=64758&oldid=64682 * DoggyDogWhirl * (+18) 21:31:38 -!- xkapastel has quit (Quit: Connection closed for inactivity). 21:31:52 [[Language list]] M https://esolangs.org/w/index.php?diff=64759&oldid=64646 * DoggyDogWhirl * (+18) 21:32:07 -!- dont-panic has quit (Ping timeout: 258 seconds). 21:36:23 -!- Sgeo__ has joined. 21:39:07 -!- dont-panic has joined. 21:39:47 -!- Sgeo_ has quit (Ping timeout: 268 seconds). 21:56:18 -!- atslash has quit (Quit: Leaving). 22:04:05 What is the command in Perl to count how many copies of a letter can be found in a string? 22:34:53 -!- xkapastel has joined. 22:35:23 -!- moei has quit (Quit: Leaving...). 23:27:46 -!- arseniiv has quit (Ping timeout: 272 seconds). 23:35:27 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 23:40:46 -!- Lord_of_Life has joined. 23:55:38 -!- ais523 has joined. 23:56:20 zzo38: there isn't a dedicated command, but if you use code like $string =~ y/x/x/ to replace the letter with itself in the string, the return value is the number of replacements (and the string doesn't actually change); for a hardcoded letter, that's probably the shortest and clearest way to do it 23:56:25 Sgeo: If you do not want that spam then you should filter it out by your client. 23:56:46 ais523: As it turns out I asked on ifMUD and received a suitable answer there, so I did what they said and it work. 23:56:59 was it the same answer or a different one? 23:57:27 hmm… a general method might be to split the string on the letter, count the number of components in the result, and subtract 1 23:57:59 zzo38, it's other people complaining at me in one of the channels I'm in 23:58:19 Their answer was: $count = () = ($str =~ /$letter/g) 23:58:59 I'm a bit surprised that =()= works 23:59:04 although I can see logical rules behind which it would 23:59:13 I asked because I was modifying a Scrabble game in Perl. I added a "count" command, to count how many letters remain according to your point of view, so the letters in opponent's hand have to added back in to the count. 2019-07-29: 00:00:30 ais523: Did you write more about the card game you were designing? 00:01:03 no 00:01:26 I'm working on so many projects that any specific random old project from a while ago is unlikely to have received updates, even if I've had no reason to abandon it 00:01:28 I made other changes as well, such as, I added a solitaire mode, and I removed the fifty-point bonus. 00:01:33 ais523: OK 00:02:04 Is making statically linked binaries a hopeless endeavor? 00:02:56 I don't think most build tools are very good at it nowadays 00:03:18 the ideal would be some sort of LTO against libc, which would be fun to see 00:03:40 I mean in terms of the capabilities of the final binary, not how it's produced. 00:04:47 "gcc -static helloworld.c" produced a binary for me that file claims is statically linked 00:05:10 however, it appears to have a PLT anyway, which is suspicious 00:05:42 Yes. On Linux it's sort of possible. But once you want to do things like OpenGL it's not possible again. 00:06:18 …also I'm not sure if I trust my disassembler, it disassembles "66 90" as "xchg %ax, %ax", which is not correct ("xchg %ax, %ax" would clear the upper 32 bits of %rax, it should be disassembled as "nopw" or "word ptr nop") 00:08:43 `` echo 'int main() { return 0; }' | gcc -x c - -o /tmp/true; readelf -a /tmp/true > tmp/out; objdump -d /tmp/true >> tmp/out; url tmp/out 00:08:46 https://hack.esolangs.org/tmp/out 00:08:50 `` echo 'int main() { return 0; }' | gcc -static -x c - -o /tmp/true; readelf -a /tmp/true > tmp/out; objdump -d /tmp/true >> tmp/out; url tmp/out 00:08:52 readelf: Warning: [ 3]: Link field (0) should index a symtab section. \ https://hack.esolangs.org/tmp/out 00:09:25 It's certainly possible to make statically linked binaries that only use the kernel ABI. 00:10:35 my statically linked hello world has a relocation section, which is interesting: it hasn't been fully linked 00:10:43 maybe that's related to ASLR or something like that 00:10:50 I think glibc is quite hostile to static linking. 00:11:32 IIRC there's a separate compile of it which is more static-link-friendly 00:11:41 There's no reason for ASLR to cause this because all the statically linked jumps are relative. 00:12:52 apparently not, there are some absolute calls in the compiled hello world executable 00:12:55 those are what are going via the PLT 00:13:16 Right, but the PLT is what's making them absolute in the first place. 00:13:53 I've seen 66 90 diassembled as xchg %ax,%ax before. I wonder why. 00:14:40 `` echo $'.globl _start\n_start:\nxchg %eax,%eax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:14:41 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:87 c0 xchg %eax,%eax \ 2:cc int3 00:14:52 `` echo $'.globl _start\n_start:\nxchg %ax,%ax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:14:52 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:66 90 xchg %ax,%ax \ 2:cc int3 00:14:59 `` echo $'.globl _start\n_start:\nxchg %rax,%rax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:15:00 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:90 nop \ 1:cc int3 00:15:26 shachaf: because if you treat the instruction encoding orthogonally, 90 actually means xchg %ax, %ax on 8086; with 32-bit processors it was repurposed to mean nop (and xchg %ax, %ax is actually a nop on those) 00:15:53 Yes, I know that. 00:16:01 But you'd expect it to clear the upper 32 bits on amd64, like you said. 00:16:14 right, so on amd64, you need to special-case 90 to have no relationship to ax 00:16:31 and it's probably easy to forget to do that when it doesn't matter on a 32-bit processor 00:21:37 "XCHG (E)AX, (E)AX (encoded instruction byte is 90H) is an alias for NOP regardless of data size prefixes, including REX.W." 00:22:26 So I think the diassembly is correct? Though it would be nicer to call it a 2-byte nop. 00:24:11 objdump should have an option to show the instruction in octal. 00:24:15 huh, "xchg %ax, %ax" assembles into 66 90 00:24:19 (I ran it the other way) 00:25:09 interestingly, "xchg %rax, %rax" assembles into just 90 00:25:17 I guess REX.W followed 90 would also be a 2-byte nop. 00:25:24 I guess that does the same thing :-D 00:25:41 REX is a bit of a complex prefix, it /also/ overrides which registers you're using 00:25:54 so you'd need to pick a version of REX that left the registers the same 00:26:25 `` echo $'.globl _start\n_start:\n.byte 0x48; .byte 0x90\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:26:26 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:48 90 rex.W nop \ 2:cc int3 00:26:41 That's REX.W 00:27:09 (I was hand-encoding some x86-64 code today so I happened to have it handy.) 00:27:11 I just used 48 in my own tests 00:27:25 and yes, it disassembles as REX.W 00:28:30 hmm, I wonder what the other REXes disassemble as 00:28:33 I wonder whether I should go the Microsoft route and call that architecture "x64". 00:28:51 OK, so the odd-numbered REXes change the second operand to r8 00:29:35 e.g. 41 is REX.B 00:30:11 only REX.B and REX.WB weren't noted at all by the disassembler, for the others it mentioned the prefix explicitly 00:31:40 `` echo $'.globl _start\n_start:\n.byte 0101; .byte 0220' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:31:40 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:41 90 xchg %eax,%r8d 00:31:54 `` echo $'.globl _start\n_start:\n.byte 0111; .byte 0220' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:31:55 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:49 90 xchg %rax,%r8 00:32:11 I'm reading the spec now 00:32:14 `` echo $'.globl _start\n_start:\n.byte 0111; .byte 0221' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 00:32:15 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:49 91 xchg %rax,%r9 00:32:34 Does HackEgo have a nicer way to ask these questions than that? 00:32:42 LLVM has some tools for it, I think. 00:35:21 hmm, xchg seems to use a really weird formatting for its arguments 00:35:48 How do you mean? 00:36:19 normally you'd use rex.r to change the first register to the r9..r15 set, but rex.rw xchg %ax, %r9 isn't interpreted as xchg %r9, %r9 like you'd expect 00:36:52 I'm guessing it's because the one-byte encoding of xchg hardcodes the first register rather than using modrm 00:37:00 * r8 00:37:05 This form of xchg just always uses ax, I think. 00:37:20 so xchg %r8, %r8 has to be encoded as 4d 87 c0 00:37:34 You can use 0x87 to exchange arbitrary registers. 00:38:00 I think that's pretty reasonable? REX only affects registers whose name is explicitly encoded. 00:38:33 yep; 87 = xchg (word/dword/qword); c0 = registers only, ax or r8, ax or r8; then the rex prefix disambiguates the registers and operation size 00:39:10 By the way this is way better in base 8. 00:39:36 meanwhile, 90 has a hardcoded first argument (ax), and non-hardcoded second argument (ax or r8), which seems a little inconsistent 00:39:58 The mod r/m byte for two-register exchange is encoded as 03xy where x and y are the names of the two registers. 00:40:00 I'm still trying to wrap my mind around how calls into the OS work on Windows. On Linux and DOS there are certain interrupts. On Windows... you assemble an EXE to say that it links to kernel32.dll, and have the assembly code ... jump into some location that the loader will point to the userland code in kernel32 that will do the jump? 00:40:25 Sgeo__: Yes, the standard ABI is based on dynamic linking. 00:40:58 It's kind of like the VDSO in Linux. 00:41:06 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 00:41:08 I have no idea what VDSO is 00:41:33 the vDSO is a library that's provided by the kernel and that ld-linux automatically links against 00:41:34 It's a small ELF file that's loaded into your address space at startup in Linux which you can use to make system calls. 00:41:58 Some system calls can be implemented without switching to kernel mode so the VDSO implements them directly, or something. 00:42:23 it contains a general system call instruction (mostly not needed nowadays now that syscall is a CPU instruction), but also implementations of functions like gettimeofday that communicate with the kernel using shared memory rather than system calls 00:43:02 cpuid is a good example, the kernel basically just places the number of the CPU the thread is running on into a particular memory location, and the vDSO implementation reads it 00:43:23 you need the kernel to make this sort of cpuid caching work because it's the kernel that knows when it's moved a thread to a different CPU 00:44:01 I bought the Windows Internals book, but I think it's a bit too detailed for me. 00:44:10 In Windows the only stable ABI is like this. 00:45:02 a good way to put it is that on Windows, the only documented kernel ABI is to go via some libraries (lower-level than libc) that are provided with the operating system 00:45:22 presumably they make calls into the kernel themselves via some means, but the way they do that, and the interfaces they use, are both intended to be opaque to users 00:45:42 It's also the only stable way. They change the library-kernel ABI all the time. 00:46:20 well, that's the reason you make it opaque, isn't it? 00:46:24 What do calls into DLLs look like at the assembly level (assuming the assembler itself doesn't hide details)? 00:46:26 so that you can change it without things breaking 00:47:16 Sgeo__: Presumably they have references to functions exported by DLLs which are resolved by the dynamic loader. 00:47:20 on Windows, IIRC the way it works is that you write a jump instruction aimed at 0, together with a note (elsewhere in the executable) specifying what it's meant to go to 00:47:31 and the dynamic linker will update it to the real address 00:47:47 Sgeo__: https://x0r19x91.github.io/2018/tiny-pe 00:48:03 shachaf, ais523, thank you 00:49:09 I don't know how these things work on Windows exactly but I hear it's a bit different from the standard Linux thing. 00:49:30 I'll probably write a program to emit PE binaries at one point. 00:50:08 actually, shared library linking is pretty similar between Windows and Linux at the asm level, but it's pretty different at the .o/.c level 00:50:20 kmc: should i put a fancy 512-byte dos demo in the MZ stub in windows binaries i generate 00:50:30 Well, even Linux has multiple methods. 00:50:45 like, the encoding in the executable is pretty similar, but the toolchain to get there is radically different 00:51:25 the way things work toolchain-wise in Windows is more explicit than on Linux, it's actually a bit easier for tools like aimake to handle because there are clear dependencies between all the steps 00:51:42 (whereas on Linux, a .so acts as its own import library, which makes, e.g., circular dependencies between .so files hard to intentionally construct) 00:51:42 Some Linux libraries use relocation rather than position-independent code (I think this is pretty rare nowadays). 00:52:02 that only works with 32-bit code IIRC 00:52:02 I think for a long time (maybe still?) Windows DLL addresses were randomized at boot time rather than load time. 00:52:35 ais523: I don't understand how Windows import libraries work or why you'd want them. 00:52:51 Can you generate them from DLLs? 00:53:03 you can generate them from more or less anything 00:53:21 all you need is a list of functions to import, pretty much (maybe also some information about their calling convention, I forget if you need that) 00:53:24 Why would I use them rather than just using DLLs directly? 00:53:25 I tried ton generate one for a dll, failed because the tool couldn't do it for the ... calling convention in question iirc 00:53:27 that can either be explicit or extracted from some file 00:53:48 the import library is what you /link against/ to be able to use the DLL 00:54:00 it isn't the DLL itself, just the code/data to link to it 00:54:10 I mean: If I'm writing a compiler/linker, why shouldn't I do it Linux-style rather than generating import libraries first? 00:54:15 the interesting part, and where the value comes from, is you can generate the import library even if you don't have a workinh DLL 00:54:17 *working 00:54:27 Does it correspond to the PLT section in an ELF file or something? 00:54:28 so it makes the dependencies in the build process more fine-grained 00:54:40 you can think of an import library as the "source code" for the PLT 00:54:49 that compiles to produce it 00:55:02 You can use a DLL without an import library if you're willing to do the retrieve function calls at runtime stuff 00:55:18 I wonder if any languages make that as convenient as using a DLL with an import library 00:55:28 perhaps a good way to think about it is that the import library is the header file for a DLL 00:55:36 Why can't I just use a header file? 00:55:37 it specifies what functions it has and how to call into them 00:55:47 shachaf: because those only generate declarations, not code 00:56:09 it'd make a /lot/ of sense to combine implibs and header files, except that C is the wrong language for it 00:56:24 OK, if I'm making up a language, why shouldn't I just use something like a header file, is what I meant. 00:56:27 [[User talk:A]] https://esolangs.org/w/index.php?diff=64760&oldid=64711 * Areallycoolusername * (+299) Ask User: A for ideas 00:56:36 if you were creating a new language you would probably make a (header file + static library) or (header file + import library) combination as its own thing 00:56:52 whereas (header file + shared library) doesn't work because you don't want to compile the shared library into your source code 00:57:07 I mean, if you're making up a language you should probably get rid of header files entirely for most uses. 00:57:19 Import libraries are the only place where you'd want things that look like headers. 00:57:24 well, you don't want header files that are textually included, like C has 00:57:36 but you do want some way to specify the API of code you don't have access to because it's in a library 00:57:49 You also don't want declarations that appear twice. 00:58:08 So it makes sense for externally linked things. 00:58:35 Anyway this all makes sense. 00:58:51 actually, one thing that strikes me about languages is that working out the API of a file you're linking against is kind-of a major problem, that different languages solve (or fail to solve) in very different ways 00:59:09 You also ant to be able to cross-compile things without access to the DLLs or import libraries (I think kernel32.lib normally comes with Visual Studio or something?). 00:59:24 e.g. in OCaml, the compiler can extract an interface from a file, and you can then compile against that, but writing the interfaces manually is also common 00:59:54 in Java, the compiler wants access to either the source or binary you're linking against, and extracts declarations from that, but this is a pretty painful process and requires doing things like giving files specific names so that the compiler can find them 01:00:23 shachaf: that's a good point, an ideal implib equivalent wouldn't be platform-specific 01:00:56 although maybe it at least needs to be specific to things like target word sizes 01:01:57 I mean, the import library specifies an ABI, so it makes sense for it to specify platform-specific things? 01:04:51 -!- callforjudgement has joined. 01:04:57 -!- ais523 has quit (Disconnected by services). 01:05:02 -!- callforjudgement has changed nick to ais523. 01:05:22 hmm… if you're writing vectorised code by hand, what instruction set should you aim for? 01:05:37 I was trying to use VPCMOV but it turns out my processor doesn't support it 01:05:38 The target architecture's? 01:05:48 I mean, if you want other people to use the program 01:05:56 presumably you aim for x86_64 as that's what most people have 01:06:02 Oh. 01:06:11 Depends on how many people you want to use your thing. 01:06:12 but what vector instructions do most people have on their processors and which ones might be less well supported? 01:06:31 the manual I have in which VPCMOV is documented dates from 2005 01:06:50 it's 2019 now and my processor still doesn't support it, so maybe some instructions are just omitted intentionally on some processors 01:07:06 That's SSE4? 01:07:11 What's your processor? 01:07:26 Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz 01:07:56 I'm guessing that AVX2 might be a good cutoff point 01:08:02 Are you sure it's not supported? 01:08:04 but I don't know 01:08:13 Intel says it supports SSE4. 01:08:16 shachaf: I compiled a program that used it and got SIGILL when it tried to execute 01:08:21 it's an XOP instruction I think 01:08:47 Oh, I see, I misread. 01:09:05 hmm, apparently AMD changed their mind about XOP and removed it again 01:09:19 so I have some documentation of apparently very useful instructions that ended up not being implemented 01:10:56 Which instructions? 01:11:16 At one point I wanted AVX2 and there was no CPU available that had it. 01:11:24 But that was years ago and it's probably reasonable to target by now. 01:11:38 -!- xkapastel has quit (Quit: Connection closed for inactivity). 01:13:01 VPCMOV and some of the permutation instructions seem like the most useful XOP instructions 01:13:09 horizontal adds could be useful in some algorithms too 01:13:39 also the vectorised shifts/rotates are XOP, which surprises me, I thought they'd have been introduced long ago 01:15:41 [[Renumbering]] https://esolangs.org/w/index.php?diff=64761&oldid=64756 * JonoCode9374 * (+267) /* Example programs */ Infinite Counter 01:16:16 hmm, so apparently Intel and AMD had their own competing ways to write vectorised shifts and rotates? 01:18:46 or, no, PSLLW and friends hvae indeed been around for ages, now I'm really confused 01:19:39 aha, the relevant case is shifts where different components get shifted different distances, i.e. vectorising << over both args, not just the left arg 01:22:14 so that's less useful, then 01:37:30 "By using the pointer table, the loader does not need to fixup all of the places in the code that want to use the api call, all it has to do is add the pointer to a single place in a table and its work is done. " 01:37:32 http://sandsprite.com/CodeStuff/Understanding_imports.html 01:42:18 That sounds like the PLT. 01:44:54 Do you know why ELF files usually have the program headers at the beginning of the file and the section headers at the end? 01:45:06 Is it an artifact of how they're usually generated, a section at a time? 01:47:29 Sgeo__: Are you writing fancy code to generate PE files too? 01:48:04 No. Learning about DOS to write a driver-level emulator for a DOS VR device, and started becoming curious about Windows 01:54:04 Can you also figure out Mac OS while you're at it? 01:54:21 I think it has a similar story to Windows, except system calls are somewhat more stable. 01:56:20 I don't know anything about Mac (and I'm pretty sure Mac would have two stories. X and before X). But AmigaOS is fascinating. Multitasking without virtual memory by using relocation. I think Windows at least doesn't bother relocating the .exe being run most of the time, but Amiga has to 01:57:05 On Amiga, 0x04 is a special location containing a pointer into an "Exec" library, and offsets of that are used to find Exec functions including ones for using other libraries. 01:57:35 Also the entire kernel is run in the user ring 02:01:09 Classic Mac OS was kinda funky -- it didn't have multitasking until a decent bit in. 02:02:23 That reminds me, is Commodore 64 considered to have multitasking? It's... possible to run two programs at once sort of, but it's hard to be sure they'll both not occupy the same memory 02:02:34 I guess more like a TSR than real multitasking 02:10:06 pikhq, did Classic Mac OS ever need its memory defragmented? I remember reading about ... something like that, I think in a book about using Macs. 02:10:53 These days paging sort of makes that irrelevant, memory locations don't need to be physically next to each other to be virtually next to each other 02:11:10 After Mac OS 7, it also had virtual memory and a 32-bit address space. 02:11:22 (this is also when it actually shipped with multitasking) 02:18:24 OK, it's pretty clear now why it's generated that way. 02:22:17 hmm, so apparently Intel and AMD implemented incompatible versions of fused multiply-add, then both changed to support the other's version and dropped their own previous version 02:22:51 apart from that, though, they're pretty much compatible up to AVX2 02:23:45 whereas AMD hasn't yet started supporting Intel's new AVX-512 (which is admittedly pretty ridiculous, it contains so many features it needs a 4-byte /prefix/ on every operation in addition to things like the ModRM byte and opcode) 02:26:17 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64762&oldid=64760 * A * (+194) 02:27:02 Isn't AVX-512 the one that's also really hard to use effectively, because just using it forces a downclock for some fraction of a second? 02:27:36 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64763&oldid=64762 * A * (-7) /* Race conditions */ 02:30:40 Is there any pokemon battle where each player may have a computer with three pokemons that you can exchange between each battle if you do best of three, like you can with side cards in Magic: the Gathering? 02:32:06 [[Talk:Sidex]] M https://esolangs.org/w/index.php?diff=64764&oldid=64755 * A * (+485) 02:33:18 [[Sidex]] M https://esolangs.org/w/index.php?diff=64765&oldid=64752 * A * (-73) 02:44:52 zzo38: the Battle Factory mode in Pokémon Emerald/Platinum/HeartGold/SoulSilver is sort of like that: you start by being given 6 random Pokémon and pick a team of 3 of them, then play 3v3 against computer opponents, whenever you win you can swap one of your Pokémon with one of theirs, whenever you lose you have to restart from the start 02:45:08 it's not quite the same rules as you were describing but it's close 02:45:56 oh, Pokémon Black 2/White 2 have Mix Battles at the PWT, which is even closer to what you said: each player brings a team of 3 Pokémon, then chooses one of their opponents Pokémon and battles with the one they chose + the 2 the opponents didn't choose 02:46:19 actually I misread 02:46:52 if you're talking about a sideboarding equivalent, that's already used in standard tournament rules: each player brings six Pokémon, sees the opponents six, then chooses four to battle with 02:47:06 like sideboarding in M:tG except you get to do it right from the start of the game 02:53:02 -!- FreeFull has quit. 02:55:30 -!- ais523 has quit (Ping timeout: 248 seconds). 02:55:41 OK 03:21:46 are there certain topics that are easier to learn or find information on if you know a language that isn't english? I guess english could be included... I'm not sure how to search for what I'm thinking of on google 03:23:29 Maybe it even isn't on Google. Or even if it is, may be difficult to find for other reasons, such as how the searching ranking is work, or on the wording they use difference from your wording (they try to make it work anyways, but it doesn't always work so well), etc 03:24:27 zzo38: I'm thinkiing of things like Ruby used to be more popular in japan as well as trading candlesticks for various currency markets 03:26:39 -!- dont-panic has quit (Read error: Connection reset by peer). 03:31:45 -!- dont-panic has joined. 03:32:42 my hotspot is so bad I can't even do a speed test and my lag on irssi goes from 0 to 200 something and back and forth... its really bad 03:33:06 like, I don't know if half of my messages make it into the channel type of bad 03:36:27 dont-panic, fiction originally in non-English languages. I like a thing called the Evillious Chronicles, but the novels are in Japanese 03:36:38 (The songs are also in Japanese but most of them have good English subtitles) 03:37:49 its just unfathomable the amount of infromation in even one language, and then to think we have like 7111 languages, 23 of which are the main ones... what information am I missing out on? 03:38:43 luckily the ramayana and vasistha's yoga were translated among other items from sandscrit... but its just kind of mind blowing to think about what you'd be able to figure out if you knew like 7 or 8 languages fluently 03:39:43 There is log for this IRC, so you can check if the messages are in the channel. 03:40:01 zzo38: do they only log on success? 03:41:04 I'm using irssi and for some reason ubuntu keeps thinking I hit page up and page down 10 or so times when I hit it once... its impossible to loook up further than the monitor allows 03:44:16 I've been learning russian, but now I think I might switch over to chinese since there's more chinese and english speakers than most of the other languages combined 03:45:39 the chinese writing system is so hard though ;_; 03:47:17 higan 03:48:23 hello 03:48:25 what's new 03:49:06 dont-panic: It logs the message if the logging bot received the message. If it was sent to the channel, then all clients on that channel will receive it. 03:51:09 dont-panic: I worked on an OCaml related thing in uni and took advantage of the fact that my project partner knew a little French and could read docs that weren't translated to English 03:52:00 (it involved internals of the OCaml VM so not as well documented as the user level stuff) 03:58:15 [[User talk:A]] M https://esolangs.org/w/index.php?diff=64766&oldid=64763 * A * (+4) /* Race conditions */ 04:06:35 kmc: chinese writing may look hard, but if its your first language, you wouldn't know it was... the same as those with chinese as a first language probably squirm at english... our characters and sounds are all weird to them too lol 04:07:00 chinese has thousands of symbols you have to learn 04:07:03 english has 26, give or take 04:07:13 Russian is the same... not entirely true 04:07:30 chinese has thousands of combined symbols 04:07:53 i.e. hill is like ^ and mountains is 3x ^ spaced weird 04:08:29 its the same as prefix's and postfixes or whatever and particles in english or other languages 04:09:23 *thousands of symbols made from combining symbols 04:09:51 how else would one be able to use a standard keyboard to type mandarin or kanji? 04:11:35 `` echo $'.globl _start\n_start:\n.byte 0xeb; .byte 00' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 04:11:36 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:eb 00 jmp 2 <_start+0x2> 04:11:50 `` echo $'.globl _start\n_start:\n.byte 0xeb; .byte 00; int3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o 04:11:51 ​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0:eb 00 jmp 2 <_start+0x2> \ 2:cc int3 04:12:03 I guess eb 00 is also a nop. 04:16:40 сказок жен, их уже такой как ты ГОГ LOL ГОГ ROFL 04:16:59 ^those aren't any easier for me to understand than chinese would be lol 04:17:05 `unidecode LOL 04:17:06 ​[U+004C LATIN CAPITAL LETTER L] [U+004F LATIN CAPITAL LETTER O] [U+004C LATIN CAPITAL LETTER L] 04:18:12 in russian p's are r's and b's are v's... along with a lot of weird stuff going on. sounding it out becomes a pain when transitioning from english and remembering where keys are on the keyboard gets weird too... 04:18:37 http://xahlee.info/kbd/i2/Russian_keyboard_windows_layout_78067.png 04:18:49 there's 5 b's on that thing 04:19:39 and f's look like they belong in a schematic work book... 'ф' 04:21:27 № <-- that's one of my favorite keys lol 04:22:34 But is it №1? 04:22:51 №1 in all of russia 05:18:24 I think that Aquinas's proof of existence of God is illogical, because the conclusion contradicts the premise. However, the suggestion of infinite regress, that would satisfy the conditions, even though, they say it is impossible. Such infinite regress, the "end" (which still goes on anyways by infinitely) can then be "God". 05:25:18 Do you think such thing? 05:27:08 -!- user24 has joined. 06:17:45 -!- kolontaev has joined. 06:20:57 I mentioned my idea of cfork() for Plan10 on here before, and then one way to implement fork() by: #define fork() (cfork()?:detach()) 06:28:33 What is cfork? What is Plan10? 06:34:07 -!- kolontaev has quit (Quit: leaving). 06:36:20 did i hear plan10 06:36:22 elaborate 06:39:24 -!- moony24 has joined. 06:39:32 It is just a idea I had, about a alternative of Plan9 and Unix, which is compatible with Unix but also has some differences. (If you do not define plan10main() then the linker can substitute the default implementation, which sets up some compatibility with Unix and then calls main().) 06:39:40 Hello, world 06:39:54 -!- moony24 has changed nick to moony_. 06:41:25 zzo38, what kind of differences? 06:41:30 shachaf: The cfork() function will fork, but all memory and registers (including the program counter) are shared until execve(), _exit(), or detach() is called. If successful, cfork() returns 0 (to the child process; it does not return any value to the parent process). In this case, execve() returns zero if successful. 06:43:22 zzo38, i don't see what can be done with cfork that can't be done with normal fork 06:44:42 if, theoretically, both programs have the exact same state as you described, it'd just have the same behavior as forking at the point the programs diverge 06:44:42 It seem a better interface to me, and also seems like it may be able to be more efficient in some cases. 06:45:31 The two processes do not have the exact same state; they still have their own process ID, file descriptors, etc (although the file descriptors are initially inherited). 06:46:43 sounds eerily similar to vfork 06:47:48 Yes, it is similar, but there are some differences. (For one thing, vfork() is not guaranteed to be different from fork().) 06:50:05 Also, it is not allowed to return from the function vfork() was called in the child process, and the behaviour may depend on what is stored in registers, and so on; with cfork the registers are shared too (including the program counter). 06:54:09 How would that be feasibly implemented on x86_64 without just setting a flag and no-oping 06:56:38 moony_: yeah I'd also think it sets a flag that modifies the behavior of execve. 06:56:57 The kernel would probably copy some stuff, select the new process, and then just continue the same program with the new process ID. 06:56:59 and reserves a PID? 06:58:02 moony_: or it could be like vfork except that on child termination or execve, state is copied back to the parent. 06:58:36 (state being the registers...) 06:58:43 Once it is detached, then it would create a new saved register set for it, I suppose. 06:58:57 int-e: Yes, that could also be a way to implement it, I suppose. 06:59:21 Well uh, two processes with the exact same deterministic behavior seems kinda useless in practice 06:59:38 and it'd be very easy to break the illusion via, say, RDRAND 07:00:20 ah quantum 07:00:37 or something trivial like getpid() ;-) 07:01:02 "who am i" "you are a split personality" 07:01:45 You can use getpid(); if used before it is detached, it will return the child process ID, but you can store it in a variable, and then after it is detached, the value (which is the child process ID) will still be visible to the parent. 07:02:11 could add a brand new error value to handle the CFORK state when calling certain syscalls 07:02:37 but... 07:02:41 this is two processes 07:02:49 technically syscalls should be done twice 07:02:56 moony_: no, I don't think it's really two processes. 07:03:08 (The parent process won't execute until the child is detached, so getpid() will always return the child process ID. Any system calls will be executed in the child process, too.) 07:03:49 oh ok 07:03:52 i get it now 07:03:57 moony_: the way zzo38 describes it, only the child runs (like vfork) and the parent is revived upon executing execve() (and sees the return code of that) 07:03:59 you can ignore me because I am a derp 07:04:02 -!- doesntthiswork has quit (Ping timeout: 248 seconds). 07:04:47 Or only upon *successfully* executing execve? 07:05:40 Only if successful, then the parent sees zero as the return value of execve(). If execve() is not successful, it returns -1 to the child, and the parent is not revived. 07:07:49 Hopefully that explains it? 07:09:04 zzo38: so what does the child do if it doesn't find any executable to execute? 07:09:55 I mean, at some point you need to give up, and pass control back to the parent anyway. 07:11:05 Yes; then you can just call _exit() in the child, which causes the parent to continue; or detach(), which causes both the parent and child to continue. 07:11:42 okay 07:11:58 (Remember that fork() is the same as (cfork()?:detach()).) 07:21:49 [[BlobVM]] N https://esolangs.org/w/index.php?oldid=64767 * Void * (+7367) Create BlobVM 07:22:27 -!- xkapastel has joined. 07:22:52 [[Language list]] M https://esolangs.org/w/index.php?diff=64768&oldid=64759 * Void * (+13) Add BlobVM 07:23:14 -!- dont-panic has quit (Ping timeout: 248 seconds). 07:24:19 -!- moony_ has quit (Ping timeout: 260 seconds). 07:25:32 [[Special:Log/upload]] upload * Void * uploaded "[[File:Little.png]]" 07:29:03 [[BlobVM]] M https://esolangs.org/w/index.php?diff=64770&oldid=64767 * Void * (-1573) Add capability example 07:37:23 [[BlobVM]] M https://esolangs.org/w/index.php?diff=64771&oldid=64770 * Void * (+424) Add data structure overview 07:37:57 [[BlobVM]] M https://esolangs.org/w/index.php?diff=64772&oldid=64771 * Void * (+0) Fix list 07:40:21 [[BlobVM]] M https://esolangs.org/w/index.php?diff=64773&oldid=64772 * Void * (-346) /* Cooperative resource sharing between devices */ 07:45:28 Can I rename an article? 07:45:51 ah, i can move it 07:46:14 [[Special:Log/move]] move * Void * moved [[BlobVM]] to [[KeyVM]]: Rename VM 07:47:33 [[KeyVM]] M https://esolangs.org/w/index.php?diff=64776&oldid=64774 * Void * (-3) Rename from blobVM to keyVM 07:48:39 [[Language list]] M https://esolangs.org/w/index.php?diff=64777&oldid=64768 * Void * (-1) Rename from blobVM to keyVM 07:54:41 Do you like to play solitaire Scrabble? My highest score so far is 699 08:00:27 -!- Lord_of_Life has quit (Ping timeout: 245 seconds). 08:02:19 My highest score so far is 700. 08:02:42 (But not in solitaire Scrabble. That's just my score in life.) 08:04:35 What's the measure? sheets of sheet music? 08:05:16 -!- Lord_of_Life has joined. 08:06:11 Points. 08:06:37 .......... .......... .......... .......... .. 08:06:56 Oh maybe it's your Chinese social score. 08:08:19 > 700*12 08:08:23 8400 08:08:29 > 700*20 08:08:32 14000 08:09:42 Are you objecting to not being swatted for that pun? I'm not oerjan. 08:09:44 -!- cpressey has joined. 08:10:27 shachaf: I'm just riding the wave. 08:10:36 But I think that multiplier is backwards. 08:10:43 700 is 35 score 08:11:03 I was working with a a 700 score. 08:11:09 s/a a/a/ 08:11:22 If my score = 700, then my = 35 08:11:56 You have a point. 08:12:02 (Does that bring it up to 701?) 08:28:29 -!- Phantom_Hoover has joined. 08:44:56 [[Talk:An Odd Rewriting System]] https://esolangs.org/w/index.php?diff=64778&oldid=64723 * Chris Pressey * (+1944) I don't see "predict parity on the left" being a problem. 09:02:12 -!- ais523 has joined. 09:02:15 -!- ais523 has quit (Client Quit). 09:05:40 Since we have an esowiki->IRC bridge, I think the obvious next step would be to build an IRC->esowiki bridge 09:06:09 Hm. I said that in jest, but now I'm not so sure 09:07:49 Well, it does sound like a terrible idea. 09:09:04 `grwp sink 09:09:06 helsinki:Helsinki is the capital of Finland. Its main suburb is Hexham, Northumberland. 09:09:19 `" 09:09:20 1229) boily: the proc is invoked. before or after the evaluator transfers control to a certain class of anime characters with long hair and loud music \ 847) The winter solstice is in approx. 13 hours from now the mayans warned us Warned you of what? The solstice? yes 09:22:16 -!- tswett[m] has quit (Remote host closed the connection). 09:22:20 -!- ivzem[m] has quit (Remote host closed the connection). 09:22:26 -!- wmww has quit (Remote host closed the connection). 09:22:43 -!- xylochoron[m] has quit (Read error: Connection reset by peer). 09:22:55 Do you know how .a files work? 09:23:05 beyond them being ar archives, a collection of .o files? no 09:23:13 I thought they'd be very simple but there's no formal specification and I'm confused. 09:23:34 (in particular I think there's some magic on top for better indexing) 09:27:17 Based on a very quick look at creating one with 'ar', it does look fairly simple 09:27:50 and perhaps unsurprisingly, not too far from tar 09:28:34 I'm looking at /usr/lib/x86_64-linux-gnu/libfreetype.a, hopefully without loss of generality 09:29:27 Oh, I think I see. 09:30:42 -!- wmww has joined. 09:31:25 OK, it's a symbol lookup table. 09:31:32 I was looking in the wrong place. 09:33:01 so if I untar an .a file will it create a file for each symbol, please say it does 09:37:22 [[KeyVM]] M https://esolangs.org/w/index.php?diff=64779&oldid=64776 * Void * (-9) /* Distinguishing features */ 09:37:51 -!- arseniiv has joined. 09:50:44 -!- tswett[m] has joined. 09:50:44 -!- xylochoron[m] has joined. 09:50:53 -!- ivzem[m] has joined. 10:02:06 -!- xkapastel has quit (Quit: Connection closed for inactivity). 10:48:57 So apparently sections aren't used for running a program at all? 10:49:06 Is it only for debugging? 10:53:54 * int-e wonders where shachaf is going with all this 10:55:10 But programs have sections too, don't they... executable bits, read-only data bits, zero-initialized read/writable bits... 10:55:40 They have segments which specify what's mapped into memory. 10:56:27 I thought the .bss section and .plt section and .rodata and so on were used for that but apparently not? 10:59:21 Writing a compiler, maybe. Or just understanding things? 10:59:37 There are more important problems in the compiler thing than this, of course. 11:02:22 Sections are used for computing offsets during linking, I think 11:02:44 Once those offsets have been computed, the running program doesn't need to care what they were 11:02:49 So in that sense they're not used 11:03:27 Actually I think I mean "segment", don't know if that's different from "section" or not 11:04:48 I think you mean section? 11:05:28 I might mean section 11:05:33 It's been a long time 11:05:59 Sections are required for object files and optional for executable files, and segments are the other way around. 11:09:57 Mostly what I remember is that the .bss section is for uninitialized data. The linker needs to decide where in memory it will be, but doesn't need to give it any particular contents. 11:10:26 Yes. But apparently the ELF loader doesn't care about it at all. 11:11:24 The linker might merge it and other sections into a single segment, as long as there's enough space in that segment for all the variables. 11:11:36 I really have no idea, actually 11:11:53 I'm just going from fuzzy memories to plausible inferences 11:13:28 I imagine there are probably a dozen people in this channel who know this like the back of their hand...? 11:20:25 . o O (what is more complex, ELF or PE?) 11:21:19 I don't know PE. 11:21:36 Though I looked at a PE file today, it seems OK. 11:22:10 ELF does not contain an a.out stub that prints a useless message. :P 11:23:46 You can put whatever you want in there. 11:23:49 > 0x3c 11:23:53 60 11:24:01 The first 60 bytes are up to you. 11:24:34 Oh, no, you need the MZ header, of course. 11:24:41 superficially they look to be of similar complexity. 11:25:27 (ELF may have more extensions? I don't know.) 11:26:16 Though the extensions were mostly special sections, which technically do not increase the file format complexity... just the complexity of making sense of the contents. 11:26:29 .gnu.hash! 11:27:02 I thought the .gnu.hash section was used for dynamic linking, but apparently the information is in the DYNAMIC segment which is what actually matters. 11:40:23 -!- Phantom_Hoover has quit (Quit: Leaving). 12:07:39 [[Tsb]] N https://esolangs.org/w/index.php?oldid=64780 * Sec-iiiso * (+5262) Created page with "'''Tsb''' is a programming language that compiles to [[Seabass]] and was made to simplify coding in it, while retaining many of Seabass's design choices. ==Basics== ===Genera..." 12:08:25 [[KeyVM]] M https://esolangs.org/w/index.php?diff=64781&oldid=64779 * Void * (+59) /* See also */ 12:12:14 -!- user24 has quit (Quit: Leaving). 12:20:31 [[Tsb]] https://esolangs.org/w/index.php?diff=64782&oldid=64780 * Sec-iiiso * (+225) /* General */ 12:23:36 -!- MDude has quit (Ping timeout: 272 seconds). 12:45:48 -!- FreeFull has joined. 12:54:05 [[Special:Log/newusers]] create * Hanzlu * New user account 12:58:14 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64783&oldid=64693 * Hanzlu * (+142) 13:00:09 -!- user24 has joined. 13:00:25 -!- user24 has quit (Remote host closed the connection). 13:35:43 -!- MDude has joined. 13:38:24 [[ACL]] N https://esolangs.org/w/index.php?oldid=64784 * Hanzlu * (+2995) Created page with "ACL (Advanced Computer Language) is a language created in 2019. Its memory consists of binary cells, with the values 0 or 1. The commands in the language code are Hexadecimal..." 13:39:58 [[Language list]] https://esolangs.org/w/index.php?diff=64785&oldid=64777 * Sec-iiiso * (+10) /* T */ 13:40:36 [[ACL]] https://esolangs.org/w/index.php?diff=64786&oldid=64784 * Hanzlu * (+14) 13:46:40 [[ACL]] https://esolangs.org/w/index.php?diff=64787&oldid=64786 * Hanzlu * (+79) 13:49:22 [[ACL]] https://esolangs.org/w/index.php?diff=64788&oldid=64787 * Hanzlu * (+41) 14:00:45 -!- doesntthiswork has joined. 14:08:07 -!- user24 has joined. 14:08:47 -!- Melvar has quit (Ping timeout: 245 seconds). 14:17:30 [[ACL]] https://esolangs.org/w/index.php?diff=64789&oldid=64788 * Hanzlu * (+338) 14:22:47 -!- Melvar has joined. 14:56:57 -!- cpressey has quit (Quit: WeeChat 1.4). 15:02:22 [[Renumbering]] M https://esolangs.org/w/index.php?diff=64790&oldid=64761 * DoggyDogWhirl * (+127) Primer 16:02:35 -!- FreeFull has quit. 16:03:01 -!- Sgeo_ has joined. 16:05:55 -!- Sgeo__ has quit (Ping timeout: 246 seconds). 16:20:10 -!- xkapastel has joined. 16:30:00 -!- Sgeo__ has joined. 16:32:52 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 17:07:58 -!- user24 has quit (Quit: Leaving). 17:09:34 -!- Reallycooluserna has joined. 17:09:59 Im thinking of creating a computer that uses an esolang as its native machine code. 17:10:22 Ive already figured out what I would need to do this, thanks to quora 17:10:37 But I need an esolang to implement 17:12:09 If anyone has an esolang thats simple enough to be workable machine code, and elaborate enough to be used to perform useful computations, I'd appreciate it 17:12:46 -!- Reallycooluserna has quit (Remote host closed the connection). 17:16:20 -!- Phantom_Hoover has joined. 17:18:30 [[MISC]] https://esolangs.org/w/index.php?diff=64791&oldid=54347 * Areallycoolusername * (-9) /* Origin of the name */ 17:21:22 Reallycooluserna: I have some ideas, but you left immediately after asking your question for some reason. how do you think IRC works, exactly? 17:33:13 `quote 17:33:14 330) are there boobs you wack and squeeze around to move the mouse? [...] like those little nipples in laptop keyboards, but they'd be full-blown boobies 17:42:26 -!- Sgeo_ has joined. 17:45:27 -!- Sgeo__ has quit (Ping timeout: 245 seconds). 18:45:31 -!- Reallycooluserna has joined. 18:47:30 This is what they do all the time. 18:47:40 I usually leave after asking a question, since I don't wan to wait on the chat until someone answers. I instead go do something else and wait, and then check the logs for some answers. 18:47:52 It's also what A did all the time, though the claim is that they're a different person. 18:48:14 what did A do? 18:51:33 -!- Reallycooluserna has changed nick to ARCUN. 18:56:49 ARCUN: one of your previous questions was pretty mysterious :D let me look for it… 18:56:59 ah, here it was: Can anyone give me tips as to how to make a good C++ Compiler? 18:56:59 ARCUN: you have to leave the channel and wait for the answer or it won't work 18:57:56 ARCUN: did you mean a compiler written in C++ or (what I thought of) a full-blown compiler of C++ itself? 19:00:03 the latter should be a massive task, as C++ is a language wih a huge specification, even if one is to take one of its older versions 19:00:07 -!- ARCUN has quit (Ping timeout: 260 seconds). 19:01:10 the former can have some specifics regarding C++, but usually writing a compiler (in a normal language) is more or less the same 19:07:28 -!- ARCUN has joined. 19:08:49 I meant writing a compiler IN C++. Writing a compiler for C++ would be the end of me. 19:10:08 Im asking because I need to make a compiler for a minimalistic esolang for a computer that runs that esolamg as its machine code 19:10:15 -!- ARCUN has quit (Remote host closed the connection). 19:30:25 My program is segfaulting in the ELF interpreter, before getting to my entry point. 19:30:35 I don't know how to tell gdb to break early enough. 19:37:29 -!- ARCUN has joined. 19:38:16 shachaf: can you explicitly invoke the interpreter as a program? 19:41:14 kmc: What are the ideas you said you had regarding the esoteric computer? 19:42:00 -!- lldd_ has joined. 19:44:23 well, it would be easy to implement any simple state machine like thing such as Brainfuck 19:44:27 in Verilog or VHDL 19:44:33 i've done it actually, loooooong time ago 19:45:26 Yeah, I was thinking of a language that used 1 byte constructions, to maximize space like brainfuck 19:45:57 kmc: I could, but that would go through a different code path. 19:46:05 but using brainfuck in an eso-computer has already been done more than twice 19:47:51 shachaf: yeah :( 19:48:08 shachaf: inject an INT3 instruction at _start? 19:48:19 Oh, that gives me an odd error message. 19:48:22 also, there probably is an obscure gdb option to do what you want 19:48:30 I think it explains what's going on so that's something. 19:48:33 what the heck did you even do to segfault the ELF interpreter 19:48:35 kmc: _start where, in ld.so? 19:48:43 yes 19:48:55 may not have a symbol but I mean whatever its entry point is (which readelf will tell you) 19:48:55 I guess I can make a copy of ld.so for testing. 19:49:08 yes 19:49:18 I'm generating my own ELF files so it figures they're malformed. 19:49:25 I also made an ELF file that segfaults gdb. 19:49:42 fun 19:49:46 good old libbfd 19:50:43 No, I'm writing them out myself. 19:51:04 what is ELF? 19:52:02 It looks like ld.so isn't happy that I wasn't mapping the DYNAMIC segment into memory. Which, I mean, fair enough, I guess. 19:52:13 it is the file format for executables and libraries used on Linux and many other systems 19:52:17 Or rather I wasn't specifying its address. 19:53:08 ARCUN: at its core it is a set of records saying "load this chunk of data to this memory address, with this set of permissions (read / write / execute)" 19:53:15 ARCUN: In response to the other day, making a dynamically linked PE file seems a lot simpler, probably because it's required. 19:53:33 ARCUN: but there are many complexities of course 19:53:55 -!- Sgeo__ has joined. 19:54:12 ARCUN: if you have access to a Linux system then you can run "readelf -a /bin/ls | less" to see some of this info 19:54:24 linkers are so complicated 19:54:25 and also neat 19:54:34 https://www.iecc.com/linker/ 19:54:42 I'm just starting to use UNIX through cygwin, so i'll look into it 19:55:11 I meant writing a compiler IN C++. Writing a compiler for C++ would be the end of me. => okay, thanks 19:55:47 though I personally can’t advice about writing on C++, I don’t know it too well 19:56:01 s/ARCUN/arseniiv/ 19:56:23 ARCUN: cygwin uses native Windows binaries, so they will be PE format, not ELF 19:56:48 cygwin is, roughly speaking, a set of userspace libraries which implement a POSIX compatible userspace for the Windows operating system 19:56:51 arseniiv: Then what languages do you know? I'm certain you know a language that I know also 19:57:01 it's not a Linux/UNIX emulator 19:57:16 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 19:57:17 shachaf: where? 19:57:19 however Windows 10 also has WSL which runs unmodified Linux ELF binaries through a kernel level syscall translation layer 19:57:51 kmc: Then i'll try running ubuntu in a VM 19:57:56 ah I found 19:57:58 ARCUN: that is a good way to go 19:59:39 -!- Lord_of_Life_ has joined. 19:59:41 shachaf: I wondered about ELF vs PE because I don’t know either (except that MZ-something header thing, but it’s of course doesn’t matter) 20:00:07 ARCUN: yeah I have an Ubuntu in VirtualBox 20:01:16 though I boot it rarely. I definitely need to make myself more familiar with it for the future 20:01:38 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 20:02:24 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:04:22 I think I'm still confusil about how things are normally mapped into memory. 20:04:31 arseniiv: Then what languages do you know? I'm certain you know a language that I know also => C#, Python, Mathematica are those I written in more or less recently to not forget them too much. Though of course using Mathematica for a VM is a strange thing. OTOH C# and Python allow one to emit their bytecode (and in case of C#, it would then be JIT’ed, which is good, and in case of PyPy Python implementation it should IIRC be so too, but not s 20:04:31 o with CPython) 20:04:36 There are typically two loaded segments, right? One rw and one rx. 20:04:59 -!- ARCUN has quit (Ping timeout: 260 seconds). 20:05:25 These are presumably both randomized independently. 20:06:00 The PLT and data and so on would be in the rw segment. 20:06:05 Are those at a fixed offset to each other? 20:07:12 -!- ARCUN has joined. 20:07:37 arseniiv 20:08:03 arseniiv: Yeah I know C#, it was my first language 20:08:29 but I use C++ a lot more than C#, so i'll have to brush up on it 20:09:44 -!- xkapastel has quit (Quit: Connection closed for inactivity). 20:10:47 The answer is yes. 20:10:57 So I guess some fixed offset is randomized and everything is loaded relative to that. 20:11:20 And so everything can just do IP-relative addressing to get at data, which is reasonable. 20:16:08 ARCUN: then if you are not shy of parser combinators, I’d recommend writing parser/lexer for the language chosen in them, it’s good at least as a prototype thing, and some libraries are as good as to allow writing a parser robust enough to show transparent error messages to user or etc.. Also maybe a useful general advice would be to use Expression trees to get compiled methods out of them without having to use Emit class. They both had poor docume 20:16:08 ntation when I looked it, but the former are clearer semantically, almost a high-level language. If you’ll use C#, that is 20:17:36 there should be some parser combinator libraries for C++ too 20:18:25 I'll look into that, since I'd like my language to have some extensions 20:18:41 maybe a math library for starters 20:25:35 The language I had in mind would be called "Xrk", and it would have logic based on Complex numbers. somewhat based on the "NaNs and Flips flops" paper from http://sigbovik.org/2019/proceedings.pdf#page102 20:28:25 arseniiv: It would be minimalistic with maybe 6 or less instructions, but would still have a lot of potential. i'll do everything possible to make it not look like Brainfuck 20:28:54 ARCUN: I hope so 20:30:57 have you seen https://esolangs.org/wiki/7 ? 20:32:39 one of my favorite esolangs is FALSE, maybe because it looks pretty writeable/readable (so, not so eso?..) 20:32:59 -!- ARCUN has quit (Ping timeout: 260 seconds). 20:33:57 I like [...] from it, though I don’t know if it was borrowed from some more mainstream stack language 20:42:21 -!- ARCUN has joined. 20:43:27 -!- ARCUN has quit (Remote host closed the connection). 20:54:01 -!- lldd_ has quit (Quit: Leaving). 21:52:26 -!- Sgeo_ has joined. 21:55:41 -!- Sgeo__ has quit (Ping timeout: 258 seconds). 22:19:32 `smlist 1172 22:19:33 smlist 1172: shachaf monqy elliott mnoqy Cale 22:19:37 Oops. 22:19:40 That's not the right list. 22:19:42 `olist 1172 22:19:42 olist 1172: shachaf oerjan Sgeo FireFly boily nortti b_jonas 22:27:58 -!- Phantom__Hoover has joined. 22:30:26 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 22:35:40 -!- b_jonas has joined. 22:35:56 zzo38, ais523: in perl, y/x// also works instead of y/x/x/ 22:40:11 ais523: re x86_64 nop and xchg instructions, we tried to figure out how those worked at https://esolangs.org/logs/2019-02.html#lwFc 22:44:34 ais523: "on Linux, a .so acts as its own import library, which makes, e.g., circular dependencies between .so files hard to intentionally construct" => is that like how if you want to make circular dependencies between modules in haskell or rust, then you need to write "headers" with declarations, which you normally don't have to do because the compiler can tell the declarations from the object file? 22:45:30 whereas in C or C++, you always write header files if you have more than one compilation unit, because the compiler can't read the declarations from the object files 22:45:47 Whole program compilation is TG. 22:59:35 oh good, there was a new olist while I was gone 23:08:13 and a book title too, wow 23:15:39 -!- arseniiv has quit (Ping timeout: 264 seconds). 23:21:25 -!- Sgeo__ has joined. 23:24:37 -!- Sgeo_ has quit (Ping timeout: 258 seconds). 23:26:50 -!- Sgeo has joined. 23:29:14 -!- Sgeo__ has quit (Ping timeout: 272 seconds). 23:56:16 Hm. Is Windows's thing of sys calls being undocumented behind a dll a thing that allows WINE to run in userspace? 23:56:32 Like, a reverse WINE would need to run as admin and do some tricky stuff, right? 23:59:13 -!- doesntthiswork has quit (Ping timeout: 244 seconds). 2019-07-30: 00:00:54 so basically, the United Kingdom now has to sacrifice three or four prime ministers every year in order to be able to delay the Brexit forever and have someone to blame for it 00:01:22 if only they could start a Ministry of Brexit, so that they only had to sacrifice the Brexit minister, rather than the prime minister 00:16:01 but maybe the political dragon specifically demands prime ministers 00:27:28 -!- Phantom__Hoover has quit (Quit: Leaving). 00:35:49 Sgeo: Yes, Microsoft's reverse WINE runs in the kernel and does trickery. 00:36:04 But I imagine you could implement it with a debugger or something. 00:37:28 you mean WSL? 00:39:49 Sgeo: nah, I think if there was a need to emulate windows syscalls by catching the actual syscall, then the linux kernel would just grow an api for user processes to do exactly that 00:40:02 to catch the syscall that is, not to do the whole emulation 00:40:10 how does UML work by the way? 00:44:16 b_jonas: ptrace is already an API to catch syscalls 00:44:33 and UML is a different architecture from x86 or whatever 00:44:42 kmc: yeah, ordinary linux syscalls (all flavors of them), but I don't know if it would catch windows syscalls 00:44:51 so I think the "syscalls" are implemented as userspace calls into the user mode linux kernel 00:44:56 hmm 00:45:05 you can't run ordinary linux binaries in UML, I don't think 00:45:12 oh! 00:45:21 so that's why it didn't work when I just tried to copy an x86 binary? 00:45:22 `file /bin/ls 00:45:23 ​/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3c233e12c466a83aa9b2094b07dbfaa5bd10eccd, stripped 00:45:33 `uname 00:45:33 Linux 00:45:34 but that would make UML all but useless 00:45:41 b_jonas: no because we have these things called compilers 00:45:43 because nobody would actually compile programs for it 00:45:54 I don't think it's a different architecture though 00:45:54 most of the software people want to run on linux is open source 00:45:58 ``` uname -a 00:45:59 Linux (none) 4.9.82 #6 Sat Apr 7 13:45:01 BST 2018 x86_64 GNU/Linux 00:46:13 well, I might be wrong, it's been forever since I played with uml 00:46:29 maybe it does use ptrace for syscall emulation 00:46:34 i know it uses it for some weird pagetable manipulation stuff 00:46:45 maybe there's some interface other than ptrace 00:46:57 I mean WSL 1, yes. 00:47:48 -!- FreeFull has joined. 00:52:14 shachaf: ham radio : communication :: esoprogramming : programming 00:52:15 ? 00:52:26 no, I don't think so 00:52:38 https://old.reddit.com/r/amateurradio/comments/8lpk45/moon/dzhpm4k/ "the military spent some time and money on this Back In The Old Days, but they stopped doing it because it's dumb as dog shit and horrifically inefficient, which means it is absolutely irresistible for amateur radio operators." 00:52:39 but maybe I'm taking metaphors too seriously 01:18:46 kmc: Update: Now "/lib64/ld-linux-x86-64.so.2 ./out.a" runs successfully but just running the program fails. 01:18:51 huh 01:19:48 hmm, "out.a" 01:20:19 I previously called it "out" but that was either too confusing or not confusing enough. 01:20:36 out.exe ;-) 01:20:59 why not call it a.out 01:21:35 It's not an a.out file. 01:21:43 I guess, if I called it a.out, it would be an a.out file. 01:36:33 I built a debug musl loader and it's more helpful. 01:39:47 I have plenty of ELF files called a.out. 01:40:13 shachaf: does it also crash? 01:43:51 It's already crashed in several different ways. 01:44:17 does the kernel say anything about it? 01:44:35 It says things like "segfault at 8" 01:44:46 fun 01:45:56 So, maybe some symbol didn't get resolved (relocated) properly :) 01:46:08 * int-e is so smart. 01:47:45 I do wonder how hard it would be to transplant the kernel code into user spaces so it could be traced... 02:03:43 -!- doesthiswork has joined. 02:04:56 int-e: you can emulate a whole virtual machine and debug the kernel that way 02:20:26 Oh, my PT_PHDR header was wrong, that's why. 02:21:48 what's that one 02:25:57 It tells the dynamic linker where to find the segment headers. 02:27:00 oh 02:27:04 that sounds pretty important 02:36:17 -!- Sgeo has quit (Ping timeout: 258 seconds). 02:41:43 -!- b_jonas has quit (Quit: leaving). 02:41:50 -!- Sgeo has joined. 02:50:00 I guess? 02:50:25 It seems kind of silly because it's the first segment itself. 02:50:36 Well, some segment header, maybe not the first. 04:20:10 it tells tyhe kernel what to map into memory in the first place 04:20:11 -!- FreeFull has quit. 04:20:48 (which /may/ explain the difference between executing the thing and asking ld.so to load it for you...) 04:21:19 (all AFAIUI, which isn't very far.) 04:22:34 int-e: No, those are the LOAD segments. 04:23:09 Someone posted this method for 2-out-of-3 secret sharing with xor: https://github.com/wybiral/tshare/blob/master/tshare.go 04:23:22 I feel like there should be a simpler way than that. 04:25:28 -!- doesthiswork has quit (Ping timeout: 268 seconds). 04:27:03 Hmm, https://eprint.iacr.org/2008/409.pdf 04:30:13 Maybe not. 04:46:57 What's the simplest possible 2-of-3 sharing scheme? Say for sharing 1 bit. 04:48:45 The natural thing to my mind is interpolating a linear polynomial over GF(2^2). 04:51:26 But it ends up being more complicated than what you get if you mask part of the messages: http://paste.debian.net/1093525/ 04:52:45 Say the bit is b (0 or 1) and we flip a 3-sided coin to a random value r (0 or 1 or 2). We give person p the value (b + r + p) % 3 04:52:58 Wait, that doesn't even let you recover the message, what am I saying. 04:53:22 I was thinking of a different scheme and I obviously simplified it too much. 04:57:55 Ah, of course working modulo 3 works. Distribute r, m+r, 2m+r to the parties. 04:58:32 (m is the secret message to be shared; r is random modulo 3) 04:59:23 Oh, that's better than the scheme I wrote out. 04:59:40 (I mean, the working scheme I wrote in a text file here, not the one I wrote above which was nonsense.) 05:00:43 this is dual to the polynomial interpolation (the message is in the linear term now, not the constant term). 05:14:30 shachaf: http://paste.debian.net/1093526/ ... so this can be thought of as polynomial interpolation over GF(2^2) :-) 05:15:31 Neat. 05:23:14 Hah I'm missing a ' at the end. 05:31:42 i,i but what's x'? 05:35:16 x comes from the representation of GF(2^2). 05:35:56 (polynomials in x over GF(2) modulo x^2+x+1) 05:36:31 That's x, not x' 05:37:54 meh 05:38:16 I see what you did there. I don't approve. I should've written "near the end". 07:13:41 -!- cpressey has joined. 07:25:26 [[Talk:An Odd Rewriting System]] https://esolangs.org/w/index.php?diff=64792&oldid=64778 * Chris Pressey * (+361) I admit defeat 07:31:08 Design for a pathological language, take 3: Fix an enumeration Tn of TMs and an enumeration of sentences Sn in Presburger Arithmetic. Input is . Check if Sn is valid (V) or invalid (I). If it matches 2nd element of pair, simulate Tn, else nop. 07:32:16 There's still a problem: you want the two enumerations to be "different enough" from each other, but how do you guarantee that? 07:33:28 Maybe every 100th n there's an instance of PresA that's easy, and a TM that's useful. 07:35:20 But I guess the bigger question is: if I'm so bad at math, why do I even try to do it? 07:41:25 -!- Frater_EST has joined. 07:41:34 -!- Frater_EST has left. 07:49:02 I'm bad at software too, because to be good at software, you need to be charismatic and live in California. 08:01:38 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 08:02:55 -!- Lord_of_Life has joined. 08:04:51 -!- rodgort has quit (Quit: Leaving). 08:10:00 -!- rodgort has joined. 08:18:36 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64793&oldid=64783 * PCC * (+99) 08:20:36 -!- heroux has quit (Ping timeout: 272 seconds). 08:38:53 -!- b_jonas has joined. 08:39:17 shachaf: for secret sharing, see David Madore's program with which he has unknowingly won the IOCCC: ftp://ftp.madore.org/pub/madore/misc/shsecret.c 08:42:41 [[What Mains Numbers?]] N https://esolangs.org/w/index.php?oldid=64794 * PCC * (+682) what is What Mains Numbers and how to can you program with it? 08:43:06 -!- user24 has joined. 08:46:27 [[Language list]] https://esolangs.org/w/index.php?diff=64795&oldid=64785 * PCC * (+26) /* W */ 09:21:32 -!- arseniiv has joined. 09:29:29 -!- b_jonas has quit (Quit: leaving). 09:34:32 Apparently, version 1.0 of the Haskell Report was published on the first of April 1990 09:34:42 Maybe it's been an elaborate April Fools' joke that got out of hand 09:54:38 -!- shachaf has quit (Ping timeout: 245 seconds). 10:02:40 -!- shachaf has joined. 10:36:37 -!- wob_jonas has joined. 10:37:07 Taneb: it certainly got out of hand, but I think it wasn't a joke 10:40:03 It was an April Fool's Serious 10:40:19 Like GMail 10:40:43 hmm 10:41:03 -!- heroux has joined. 10:57:02 -!- sebbu has quit (Quit: reboot). 11:19:48 -!- user24 has quit (Quit: Leaving). 11:23:54 -!- FreeFull has joined. 11:24:02 -!- oklopol has joined. 11:24:54 -!- FreeFull has quit (Client Quit). 11:25:59 $ ldd out.a statically linked 11:26:08 $ file out.a 11:26:22 out.a: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, not stripped 11:27:34 so what does ldd do? collect the shared objects linked in and spout that message if it comes up with nothing? 11:27:39 shachaf: try objdump -x 11:28:08 I'm not sure what ldd does. 11:28:52 -!- FreeFull has joined. 11:29:13 whoa, I didn't know about pldd 11:29:17 "ldd invokes the standard dynamic linker with the LD_TRACE_LOADED_OBJECTS environment variable set to 1." 11:29:23 note that objdump is a cross-utility, it can read the executables of any platform on any platform 11:30:21 ...I also didn't know that ldd was a shell script. 11:30:43 Or that it used that mechanism. 11:30:53 Only platforms it knows about. 11:31:02 huh, didn't ldd use to use a more esoteric interface to communicate with the dynamic linker, where instead of an env-var, it invoked the program with argc being zero? 11:31:11 objdump won't tell me anything I don't already know, since I generated this ELF file myself byte by byte. 11:31:39 oh 11:31:41 I mean, it won't tell me anything about my program. 11:31:58 well, it could tell you something if you don't fully understand how the ELF format works 11:31:59 The idea was to learn what wasn't compliant about it. 11:32:43 Man, using ld.so totally messes up my nice strace output. 11:32:51 like if you made a mistake or something 11:33:02 `` strace -fo tmp/OUT /bin/true 11:33:03 No output. 11:33:40 `url tmp/OUT 11:33:41 https://hack.esolangs.org/tmp/OUT 11:33:59 What! That's a lot nicer than I get on my system. 11:34:25 $ strace /bin/true |& grep 'ld\.so\.nohwcap' | wc -l 11:34:25 5 11:38:32 are they both x86_64? 11:39:19 Mine is. 11:39:33 $ strace /bin/true |& wc -l 11:39:33 60 11:39:54 Anyway I guess I should try calling into libc and then ldd will probably call it dynamic. 11:40:16 But for that I'd need a bunch of things like a PLT and real relocations or something. 11:40:28 My "assembler" has very primitve fixups for local jumps but that's it. 11:40:56 ``` objdump -x /bin/true # x86_64 here too 11:40:56 ​ \ /bin/true: file format elf64-x86-64 \ /bin/true \ architecture: i386:x86-64, flags 0x00000150: \ HAS_SYMS, DYNAMIC, D_PAGED \ start address 0x0000000000001670 \ \ Program Header: \ PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3 \ filesz 0x00000000000001f8 memsz 0x00000000000001f8 flags r-x \ INTERP off 0x0000000000000238 vaddr 0x0000000000000238 paddr 0x0000000000000238 align 2**0 \ 11:42:07 Man, you need a hash table and GOT and probably a GNU hash table and all sorts of things. 11:43:03 shachaf: maybe they differ in /proc settings about address randomizatio or something? 11:43:04 Oh, running ld.so directly tells me what's wrong: 11:43:11 uh, sysctl knobs 11:43:24 "error while loading shared libraries: [...]: ELF load command address/offset not properly aligned" 11:43:44 That's a very legitimate complaint, ld.so. 11:44:51 Oh, no, that's what it says on the *statically linked* file. 11:49:26 -!- Sgeo has quit (Read error: Connection reset by peer). 11:49:51 -!- Sgeo has joined. 11:52:48 Oh, what do you know, it's not properly aligned. 11:52:49 shachaf: do you have an LD_LIBRARY_PATH set? I get strace /bin/true 2>&1 | wc -l => 73 and LD_LIBRARY_PATH= strace /bin/true 2>&1 | wc -l => 25... 11:54:40 Oh! 11:54:50 I have an LD_PRELOAD, courtesy of Ubuntu. 11:54:53 oh yeah, and unset LD_PRELOAD too 11:55:06 Because Ubuntu is ridiculous in many ways. 11:55:16 I've probably mentioned how bad this LD_PRELOAD is before. 11:55:18 really, what does Ubuntu deam important enough to LD_PRELOAD? 11:55:25 I missed it. 11:55:30 *deem 11:55:45 I feel left out. I'm running Ubuntu and I don't have a LD_PRELOAD. 11:55:50 So GTK or GNOME decided to switch to drawing decorations in the client and requesting borderless windows from the WM at one point. 11:55:51 int-e: some graphics toolkit thing 11:56:27 This only works particularly well if you're running GNOME. And there's no configuration to disable it. So if you don't run GNOME, they set you up with an LD_PRELOAD that forces GTK to use the old behavior. 11:56:53 Fancy. And awkward. 11:57:09 This is definitely the most reasonable way to do things, rather than, say, patching the source to check an environment variable for using the old behavior. 11:57:26 Or patching the source in any other way. That's not Ubuntu's business. 11:57:58 Anyway I'm stuck with this LD_PRELOAD which constantly makes things fail in annoying ways. 11:58:29 For example Nix programs run with a different library path so they can't find the GTK wrapper and they print an error message whenever I run them. 12:00:56 This must be an Ubuntu 18.04 thing, I'm still running 16.04. What happens if you override LD_PRELOAD? 12:01:24 Maybe I don't actually want to know 12:01:42 Could this be specific to Unity (and hence primarily Ubuntu)? 12:02:26 I don't remember whether Ubuntu uses Unity or GNOME by default? 12:02:39 Unity, I thought. 12:02:42 But I think this is a GTK-wide or GNOME-wide decision. 12:02:51 https://wiki.gnome.org/Initiatives/CSD 12:03:32 cpressey: If I override LD_PRELOAD then most things work slightly better except for GTK programs which work quite a bit worse. 12:03:51 shachaf: I see. 12:04:15 what if you use wrappers for GTK programs that restore the LD_PRELOAD? 12:04:40 That's an option. 12:04:40 Ubuntu uses Gnome3 by default in recent versions 12:04:50 But who can know what programs are GTK programs? 12:05:00 shachaf: Ah so it's a nasty surprise still in the making. 12:05:35 firefox, thunderbird, emacs, inkscape, gucharmap... are my main gtk apps? 12:06:37 (Emacs has several frontends but I'm pretty sure the gtk one is what I'm using. I expect it's still gtk2 and won't be affected for a while yet.) 12:06:47 shachaf: ask the package manager what programs it would uninstall if you decided to uninstall gtk 12:07:16 Also GTK is a mess in many other ways. 12:07:36 It does theming in a particular way, but if you run something called a settings-daemon then it starts doing theming in a completely different way. 12:07:39 They can't even decide what the G stands for 12:07:56 And half of your programs work well with a high-DPI screen one way, and half the other way. 12:08:06 Oh, gimp of course. Forgetting about that one is embarrassing. :) 12:08:40 I tried running a settings-daemon not long ago and it was so terrible that I stopped. 12:08:52 Despite it being the only way to make something work. 12:09:05 The year of Linux on the desktop is now. 12:09:37 But don't worry. As soon as I write this compiler I'll write some good GUI programs with it. 12:09:47 Sure you will. 12:10:19 Any day now! 12:10:41 OK, there's no definite compiler planned. But I did write some UI programs using plain X11+OpenGL. 12:11:48 They're surely way better than some kind of GTK nonsense that prints a bunch of dbind-warnings whenever you run it. 12:13:36 At least it's not kbuilding any sycocas. 12:14:59 -!- ais523 has joined. 12:16:04 General-Purpose and System Instructions> "PEXT Parallel Extract Bits \ Copies bits from the source operand, based on a mask, and packs them into the low-order bits of the destination. Clears all bits in the destination to the left of the most-significant bit copied." 12:16:14 … 12:16:42 did they seriously add select from INTERCAL to the x86 instruction set? 12:16:59 although this version is 32-bit or 64-bit, rather than 16-bit or 32-bit 12:17:33 it's part of the BMI2 instruction set, which my processor apparently supports 12:17:51 * ais523 has an urge to feature-test this during C-INTERCAL's build process and use the asm instruction if supported 12:18:07 ais523: yes. some call it sheep and goats. 12:18:24 ais523: you can use the 32-bit one to emulate the 16-bit one though 12:18:50 yes 12:18:58 ais523: you can probably use a gcc intrinsic and an MSVC instrinsic, with ifdefs, rather than an inline asm 12:19:06 oh wait 12:19:15 that's a compiler 12:19:20 that doesn't apply then 12:19:37 -!- heroux has quit (Read error: Connection reset by peer). 12:19:53 inline asm is more fun 12:19:57 -!- heroux has joined. 12:20:25 Microsoft doesn't support inline assembly on x64. 12:21:47 that doesn't really matter, C-INTERCAL has a really robust autoconf/automake setup and this is the sort of random thing autoconf is designed for 12:22:27 Does autoconf even work on Windows? 12:22:54 autoconf is awful and I hate its ./configure scripts. 12:23:19 Most of what it does isn't useful and hasn't been useful for decades, and it has real and significant costs. 12:23:21 it works about as well as sh and friends do 12:23:36 fwiw, I agree with you about autoconf solving entirely the wrong problem 12:23:48 but for C-INTERCAL in particular this felt like an upside rather than a downside 12:23:51 If they cared, autoconf people could at least make the configure scripts much faster, but I don't imagine they do, or maybe there just are no autoconf people. 12:23:57 it is not the most serious of projects 12:24:15 Sure, for C-INTERCAL you can get an exception. 12:24:33 Though I feel like autoconf isn't even the enjoyable kind of esocomplexity. 12:24:40 It's just nonsense complexity that makes things bad. 12:25:14 ais523: https://docs.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=vs-2019 suggests that _pext_u64 is the intel-standard intrinsic, though I'll have to check that in the intel architecture manual 12:25:40 if that's right, then that will work the same on gcc and msvc, because gcc has headers implementing all that stuff based on gcc builtins 12:25:41 tbh I'm not sure if C-INTERCAL even compiles on Windows 12:25:48 I got it compiling on /DOS/ once but that's different 12:25:48 shachaf: https://github.com/GregorR/autoconf-lean 12:26:12 By a person who used to hang out here frequently once 12:26:50 -!- j-bot has quit (Ping timeout: 244 seconds). 12:27:02 yeah, the intel architecture reference confirms that _pext_u32 and _pext_u64 are the functions corresponding to the PEXT instruction 12:27:21 cpressey: He still turns up once every blue moon. 12:27:23 [[Language list]] https://esolangs.org/w/index.php?diff=64796&oldid=64795 * Hanzlu * (+10) 12:27:34 it's probably still worth to test for this in the autoconf, but it should work 12:28:21 cpressey: and of course umlbox is still actively used 12:28:31 the gcc headers even define these so that they emulate the same operation even if you compile to older instruction sets or non-x86 cpu 12:28:40 and hackbot 12:30:00 ugh, is it correct to write this instruction as asm or as machine code? 12:30:16 I guess it has to be asm so that gcc can participate in register allocation 12:31:04 That's certainly the preferable way, if you want to shun the compiler intrinsic. 12:31:25 It's possible to prefer it, but not mandatory. 12:32:19 yes, but this is INTERCAL, so I have to give at least passing thought to the idea that writing it as raw bytes would mean you didn't have to worry about what syntax the assembler used 12:32:40 wob_jonas: what header files are those even in? 12:32:56 tbh checking for inline asm support in autoconf is probably easier than checking for a specific header file 12:33:30 ais523: look up the header file name and the type of the function at https://docs.microsoft.com/en-us/cpp/intrinsics/x64-amd64-intrinsics-list?view=vs-2019 12:33:43 12:34:05 hmm, neat, seems like both gcc and clang support it 12:34:22 that'd clearly be the better way to do things, which gives a reason to avoid it 12:35:26 ais523: yes, this happens to most of the new x86 instructions; it's only old instructions BSF and BSR that fall through the cracks and have like three different sets of compiler intrinsics that you have to ifdef between, because neither msvc supports the gcc builtins nor backwards 12:36:04 I contributed the parts of http://software.schmorp.de/pkg/libecb.html where it can use the MSVC wrappers for BSF and BSR, which is why I know 12:36:15 is fused multiply-add broken the same way? it's the instruction that's different between Intel and AMD due to a lack of coordination 12:36:57 you should note that even though msvc and gcc both support this, the semantics differ: on msvc, the intrinsic will just emit that instruction even if you're compiling for an older cpu, 12:37:46 for gcc it emits something that gives the same computation result as that instruction would perform, which for such new instructions won't actually call that instruction, unless you're explicitly compiling with a high -march 12:38:09 I don't know, I don't follow how the fused multiply-add and all that neural network nonsense worked, sorry 12:39:55 wob_jonas: it's a silly history 12:40:08 AMD and Intel came out with incompatible implementations of the same instruction 12:40:21 [[Special:Log/newusers]] create * RetroBug * New user account 12:40:27 then both dropped their own version of it and implemetend the other's, so they're still incompatible but in the other direction 12:42:36 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=64797&oldid=64793 * RetroBug * (+68) 12:43:05 One fun fact about ELF is that the ELF 64 standard says hash table entries are 64 bits, but most implementations use 32 bits. 12:43:22 I think that means the standard is wrong rather than the implementations. 12:47:38 hmm, I suspect this inline asm version may actually be substantially faster than what was there before; performance improvements are great! 12:47:42 now, I wonder how best to do mingles 12:48:09 AVX and friends have mingle instructions, but sadly they only mingle at the byte level 12:49:00 What's mingle? 12:51:11 ais523: that's what the opposite instruction PDEP is for. if you have PEXT, you also have PDEP. 12:51:40 shachaf: alternates bits in two operands to form a combined operand of twice the width 12:51:48 wob_jonas: right, two PDEPs and an OR would do it 12:53:19 ais523: but intercal code often uses mingle followed by an intercal bitwise followed by selecting the odd or even bits, which you can optimize to just a bitwise op 12:53:37 or a bitwise op and a shift 12:54:03 yes, C-INTERCAL does that optimisation already 12:54:47 I mentioned at some point that I think intercal code could use that redundant representation of integers that's base 2 but digits go from -2 to 1, because you can do arithmetic on that representation with the intercal ops faster 12:55:09 no wait 12:55:14 the digits go from -1 to 1 12:55:19 inclusive 12:55:33 yes but it's way harder to store in memory 12:56:25 I feel like there are very limited uses for inline assembly nowadays. 12:56:33 Almost everything is covered by either top-level assembly or intrinsics. 12:56:53 So Microsoft's decision is perhaps reasonable. 12:57:03 What are uses for inline assembly? 12:58:13 shachaf: out-optimising the compiler is one thing 12:58:25 accessing some specific instructions 12:58:49 ais523: no it's not. you just store it as two integers, and they represent their difference 12:58:57 hmm wait 12:58:59 I'm confusing this up 12:58:59 like rdrand or rdtsc or... 12:59:00 this morning, I was curious about the following problem: suppose you have a function that generates a sequence of ints and can't be parallelised 12:59:14 I'll have to clear this up at some point, but now I don't know how they work 12:59:15 what's the fastest way to store the generated ints into memory, assuming that there are too many to fit into the L2 cache? 12:59:44 But at what point do you need to out-optimize the compiler within a function? 13:00:20 I think in most such cases you end up wanting to write the whole function in assembly. 13:00:20 gcc's and clang's approaches were utterly different, but very comparaible in speed; I tried a few other things on my own, and eventually found one that was slightly but consistently faster 13:00:26 Specific instructions sounds like what intrinsics are for. 13:00:48 @time 13:00:51 Local time for shachaf is Tue Jul 30 06:00:49 2019 13:00:52 Time to go to sleep. 13:01:05 shachaf: well, in my case, the loop was still written in C 13:03:16 funnily enough, I decided to use a repeated rotate-left as a standin for the "function that generates a sequence of ints and can't be parallelised" (yes, I know you can parallelise that in practice) 13:03:46 and the compiler didn't recognise it, so I ended up writing the "add %0, %0\n\tadc $0, %0" manually 13:08:05 -!- sebbu has joined. 13:08:45 actually my experience is that even modern compilers are fairly bad at micro-optimisation, they're just good at knowing about more long-range optimisations that humans don't often think of 13:10:00 [[ACL]] https://esolangs.org/w/index.php?diff=64798&oldid=64789 * Hanzlu * (+204) 13:12:00 [[ACL]] https://esolangs.org/w/index.php?diff=64799&oldid=64798 * Hanzlu * (-2) 13:15:55 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64800&oldid=64794 * A * (+166) 2019 esolang 13:17:26 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64801&oldid=64800 * A * (+18) No 13:20:47 OK, C-INTERCAL repo updated with the use of inline asm for PEXT 13:21:33 that was quick 13:21:50 does it also do PDEP for mingle? 13:22:20 not yet 13:22:27 our exiting mingle is fairly optimised as it is 13:22:59 ok 13:23:26 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64802&oldid=64801 * A * (+159) 13:23:29 that said, it's still a /lot/ of instructions 13:24:28 hmm, I wonder how you ask gcc to pick an arbitrary temporary for you 13:24:37 ais523: you know that Warren's "Hacker Delight" talks about the mingling (shuffling) and selecting, right? I don't recall what it says, but it definitely talks about them. 13:24:42 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64803&oldid=64802 * A * (-22) 13:24:43 maybe just say "register int temp;" and assign to it without reading it 13:25:16 ais523: I don't think you even need "register" if it's arbitrary 13:25:29 oh, duh, you just do it one instruction at a time 13:25:55 wob_jonas: well, it has to actually /be/ a register, although gcc's =r hint is sufficient to teach it about that 13:26:14 -!- j-bot has joined. 13:26:23 make the asm clobber it? 13:26:29 rather than write into it 13:26:43 as in, fourth argument or something 13:26:45 clobbers have to be fixed in the source code, though 13:26:59 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64804&oldid=64803 * A * (+133) 13:27:01 hmm 13:27:03 I think the correct thing to do is to just make the temporary visible to gcc explicitly so that it can do SSA and friends on it 13:27:06 and spills, and the like 13:28:36 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64805&oldid=64804 * A * (-3) 13:30:31 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64806&oldid=64805 * A * (+19) 13:30:32 ais: about compilers being bad about micro-optimization, https://m.youtube.com/watch?v=bSkpMdDe4g4 13:31:49 I found some of those impressive, sums compressed to formulas, multiplication turned differently into combinations of bit shifts etc. 13:32:07 (probably very basic stuff, I'm no expert) 13:32:08 -!- wob_jonas has quit (Ping timeout: 245 seconds). 13:33:54 -!- wob_jonas has joined. 13:34:38 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64807&oldid=64806 * A * (+22) 13:35:47 ais523: you should mark it "volatile volatile" 13:36:38 but it isn't volatile 13:37:20 oklopol: AMD's optimisation guide has a list of constants for which it's worth using alternative code to multiply by them 13:37:36 the smallest nonnegative integer for which IMUL is the fastest way to multiply by that integer is 22 13:37:44 for every smaller integer, there's some trick 13:37:58 (disappointingly, they didn't even bother to list the tricks for multiplying by 0 or 1) 13:38:27 ais: yes that sort of stuff, optimizing mul by constant to shifts, and also vice versa if you try to be clever :P 13:39:00 And differently based on what you're compiling for 13:41:05 optimising to shifts is boring, the /real/ trick on x86 is to use the AGU to do multiplications by unexpected numbers 13:41:47 e.g. for multiply by 9, AMD suggests "lea reg1, [reg1 + reg1 * 8]" 13:41:48 This is also shown on the vid iiuc 13:42:04 Yes that's automatically done by optimizers 13:42:05 btw, LEA is still a total hack :-) 13:42:15 Yes 13:42:20 I'd expect any compiler developer who cares about optimization to have read this document already 13:42:22 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64808&oldid=64807 * A * (+228) 13:43:56 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64809&oldid=64808 * A * (-34) An infinite loop in a language that only provides finite loops! 13:44:52 -!- wob_jonas has quit (Ping timeout: 272 seconds). 13:46:26 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64810&oldid=64809 * A * (+43) /* Infinite loop */ 13:50:12 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64811&oldid=64810 * A * (+61) 13:51:40 OK, mingles are now also hardware-accelerated 13:54:08 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64812&oldid=64811 * A * (-27) /* What Mains Numbers? */ 13:55:47 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64813&oldid=64812 * Ais523 * (+124) Mixed undo revisions 64809, 64810 by [[Special:Contributions/A|A]] ([[User talk:A|talk]]): not an infinite loop, it just allocates so much memory that it'll probably thrash nearly-indefinitely 13:56:05 A should stop jumping to assumptions :-( 13:56:39 btw, I had a great idea about how pointers should work 13:57:04 instead of pointing to the start or end of an object, they should point to the middle (this means adding an extra bit so you can point into the middle of a byte) 13:57:33 this assumes that all your allocations are power-of-2-sized and aligned, otherwise there's no real gaini 13:57:48 -!- wob_jonas has joined. 13:57:50 nice 13:58:06 exactly in the middle of objects? hmm 13:58:17 but if you have that, then the middle-pointer uniquely specifies both the memory you're accessing and the width of it, which should make things like hardware bounds checking efficiently possible 13:58:55 How does it store the width? 13:58:57 what? 13:59:07 on x86_64 you could make up for the extra bit at the end by dropping bit 62, it's never going to get used anyway 13:59:13 Taneb: count the number of trailing zeroes 13:59:39 objects are power-of-2-sized and aligned, thus the middle is aligned with respect to half the object's size but misaligned with respect to the object's full size 14:00:11 thus, you can use the alignment to determine the size, without ever having a pointer that's randomly more aligned than it should be 14:00:43 that won't give exact bounds checks though, only bounds checks rounded up to a power of two or something close 14:00:57 well, you only allocate objects in power-of-2 sizes 14:01:05 (there are good reasons for a malloc to do that anyway) 14:01:13 sure 14:01:14 the main issue is structs, I think 14:01:18 binary buddy block allocator 14:01:44 you can also do a fibonacci version of this alignment scheme, just to screw with people 14:01:57 Or you can add 3*2^k into the mix for fun. 14:02:06 the algorithm of "just allocate in the first available aligned address of the appropriate size" is great, when you use power-of-two sizes only it actually works 14:02:12 (That seems easier than fibonacci.) 14:02:24 (Also Fibonacci seems awful for alignment.) 14:02:25 allocate only objects of fibonacci size, at addresses whose address in zeckendorf end with as many zeroes 14:02:34 yes, the fibonacci version is definitely in the screwing-with-people realm 14:02:47 int-e: only on current cpus, which use 64-byte 64-aligned cache lines 14:03:10 I have a suspicion that 64-byte will be the correct size for a cache line for the foreseeable future 14:03:17 When will we move to 128? Also, RAM rows enter the picture as well at some point. 14:03:59 just like my tests indicate that 16 bytes is the correct size for a bulk write to memory (if you're getting the data as individual ints rather than a bulk read) 14:04:33 int-e: cache lines are weird, ideally you'd want them to be /smaller/, the only reason to have them that large is to reduce the amount of bookkeeping you have to do 14:05:02 a larger cache line would mean that you had so many of the things that you could afford to often waste data space in the L1 cache, but were very tight on bookkeeping cache 14:05:10 which seems implausible with modern processor designs 14:05:39 I guess maybe L2 would benefit from longer cache lines? 14:05:40 int-e: in a hypothetical cpu that has 55 and 89 byte cache lines, aligned to fibonacci round addresses 14:05:46 but there are obvious reasons to want them the same size as L1 14:05:54 -!- oklopol has quit (Ping timeout: 258 seconds). 14:05:56 wob_jonas: I'm not going there. 14:07:36 I wonder what the performance of a malloc that, for large objects, just maps a ridiculous amount of memory as MAP_NORESERVE and relies on the kernel to do the actual allocations when page faults happen 14:08:09 (the page faults were going to happen anyway, so there seems to be no particular reason to do anything at other times) 14:08:44 the huge advantage of this is that realloc becomes a nop, which helps make your write loops tighter 14:09:06 ais523: yeah, but that doesn't work too well when you allocate a lot of small objects, which is a common case 14:09:14 also you don't have infinite address space 14:09:18 you need a different algorithm for small objects, yes 14:09:25 so that they don't need a separate page 14:09:32 but you do pretty much have infinite address space 14:09:33 right 14:09:46 64 bits is a /lot/ 14:09:55 you don't have 64 bits, 14:09:57 but even without that 14:09:58 you can allocate 4 GiB for every object and still have 32 bits left 14:10:08 the kernel has to do bookkeeping for what you allocate 14:10:22 no, you don't have 64 bits of virtual address space 14:10:28 yes, sadly 14:10:35 it's, what, 48 bits on modern processors? 14:10:42 that's just what the architecture allows us to expand the address space without breaking binary compatibility 14:10:54 wait, 47 14:11:10 because half the virtual address space is reserved for kernel-internal use 14:11:22 (and that too only if people don't start using high bits for tag bits when they have perfectly usable low bits instead, like they did in the 32-bit era and ended up with a prolog interpreter that couldn't use more than 256 megabytes of memory) 14:11:46 even so, that's still 32767 self-reallocing objects, there are plenty of programs that are unlikely to use anywhere near that many 14:12:10 wob_jonas: they can't, x86_64 actually intentionally crashes if it sees a high bit used as a tag bit 14:12:13 I don't know how many bits we have now, they keep changing that every decade or so, I'm not following 14:12:22 ais523: only if you don't mask it 14:12:27 same as with the 32-bit things 14:12:39 if you explicitly mask it off before using it as an address, it will work 14:12:58 right, because the processor can't see how the value was derived 14:13:11 but low bits is still easier, because if you know all the low bits, you can usually remove them by just using the right offset 14:13:35 most people do get this right though, so it's not much of a worry 14:13:54 that one prolog interpreter was more just an unfortunate exception 14:14:03 anyway, one thing that's really annoying is that malloc() is not async-signal-safe 14:14:20 the first-power-of-2 technique can be implemented lock-free, I think 14:14:37 in which case it probably should be, so that people can allocate memory in their signal handlers without deadlocks 14:15:14 yeah, you're right, 48 bits of virtual address space now, I think 14:17:12 ais523: really? do you mean even without a small performance penalty for the common case of sane programs that don't try to alloacte from a signal handler? 14:17:50 if you really want to allocate from a signal handler, then use a custom more expensive allocator for those parts of the code that may run from a signal handler 14:18:06 wob_jonas: well you need to use a lock or atomic /somewhere/ 14:18:29 but I think it's usually better to just not do anything fancy from a signal handler 14:18:29 I think there's debate about which is faster in the common, non-contended case, but I'm guessing they're much the same 14:18:58 and when there's no contention the algorithm runs quickly (unless there's /so much/ contention that the processor starts predicting the branch as taken, which is likely to be the least of your issues) 14:20:41 -!- ARCUN has joined. 14:21:35 Anyone know any good FPGAs? I need one for my esoteric computer. 14:22:50 in my experience, FPGA toolchains are really terrible 14:22:58 `? rnoodle 14:22:59 rnoodle? ¯\(°​_o)/¯ 14:23:00 `? rnooodle 14:23:01 rnoooodle? ¯\(°​_o)/¯ 14:23:04 `? rnoooodle 14:23:05 rnoooodle? ¯\(°​_o)/¯ 14:23:07 `? rnooooodle 14:23:08 rnooooodle? ¯\(°​_o)/¯ 14:23:09 `? rnoooooodle 14:23:10 rnoooooodle? ¯\(°​_o)/¯ 14:23:15 `? rnooooooodle 14:23:15 as for the FPGAs themselves, for the majority of tasks, either most FPGAs will be good enough or affordable FPGAs won't b e good enough 14:23:16 rnooooooodle? ¯\(°​_o)/¯ 14:23:17 -!- ARCUN has quit (Remote host closed the connection). 14:23:23 `? rnodle 14:23:24 rnodle? ¯\(°​_o)/¯ 14:23:27 so the main difficulty is finding a way to wire them up to your computer 14:24:18 why? don't those FPGAs have IO devices built in? 14:25:24 -!- ARCUN has joined. 14:25:50 You need to do it in a field. 14:25:58 They're field programmable, you see. 14:26:24 If you happen to be in a forest, tough luck. 14:26:30 I was thinking of using an Altera cyclone ii mini to use, but I heard that the Spartan series is good too 14:28:47 One of the main problems is, how would I get it to display items on the screen? VHDL really doesn't make this any easier, as it's not be most consice of languages 14:29:52 -!- ARCUN has quit (Remote host closed the connection). 14:31:52 https://github.com/stacksmith/fpgasm 14:32:26 hmm, so in a quick test, Linux was quite happy to allocate me 16 GiB of address space in one large mapping 14:32:58 even though I don't have that much memory in physical or swap space or both combined 14:33:12 well sure, many computers these days have 16 GB physical memory 14:33:28 and I could read/write random addresses in it without any obvious performance issues 14:34:36 but won't the kernel still need to keep about 1/1000 the size of that virtual memory for administration? 14:34:42 this leads me to suspect that the most efficient way to deal with memory, if you don't care about getting segfaults for wild accesses, is to only ask the kernel for memory once in the lifetime of the program, and use writes to memory to allocate it and madvise to free it 14:34:58 wob_jonas: page caches have multiple levels nowadays 14:35:02 unless you use large pages that is, but large pages would defeat the problem 14:35:15 ais523: sure, but ... I don't know how that works in the kernel 14:35:17 maybe 14:35:30 also I don't see how the same problem doesn't happen even if you allocate a bit at a time and use brk and mmap and whatever to request more as you need it 14:35:41 err, "a small amount at a time", not a literal bit :-) 14:36:19 sorry, I was trying to argue against the method you mentioned above, of allocating 4G for every large object 14:36:25 does MADV_REMOVE work with anonymous mappings, I wonder? 14:36:36 wob_jonas: ah, I see 14:38:36 hmm, I wonder if any memset implementations use madvise to zero memory? I'm guessing not, it'd be insane 14:38:45 but memset is the sort of function where insane optimisations can make sense 14:38:57 dunno 14:39:10 (the idea would be to swap out the page backing the memory you're trying to zero for a freshly zeroed page) 14:39:30 I don't know whether Linux has a background memory zeroing daemon (or equivalent); I know Windows does 14:39:37 I don't think it would help much, in the long run, as long as you're using memset for memory you want to use later, because the kernel has to zero the page eventually 14:40:06 Windows has a supply of pre-zeroed physical memory pages that it hands out to applications, and zeroes pages in the background after they're unmapped 14:40:37 yeah. I think linux has something like that too 14:42:00 kswapd, apparently 14:42:18 it doesn't run constantly, only when the number of zeroed pages is low 14:42:27 if it gets very low the kernel foregrounds the page-zeroing task so that it never runs out 14:44:37 -!- ais523 has quit (Remote host closed the connection). 14:44:50 -!- ais523 has joined. 14:49:27 Should I learn LLVM assembly or should I not bother 14:50:49 -!- oklopol has joined. 14:51:16 -!- wob_jonas has quit (Ping timeout: 246 seconds). 14:51:36 cpressey: that's up to you 14:53:00 I'd say, only if you want to use it for something 14:53:14 or if you're interested in SSA-based languages in general 14:53:33 it's really a multiple-level language, though, it can express a lot of different levels of abstraction and is designed to compile into lower abstraction levels of itself 14:53:41 (this is a common property for compiler intermediate representations) 14:53:50 so really, "learning LLVM" is about learning a specific subset of it 14:55:08 whatever you need for whatever it is you're doing 14:55:49 I have two compiler projects that became dead ends because I tried to generate C and it just got frustrating and boring and I abandoned them. 14:56:40 I think generating C is generally easier than generating LLVM, also less platform-specific 14:56:49 [[ACL]] https://esolangs.org/w/index.php?diff=64814&oldid=64799 * Hanzlu * (+1117) 14:56:55 (LLVM is slightly platform-specific, enough so that you can't really generate "portable LLVM") 14:57:14 OK, then "no" I guess 14:57:15 perhaps WebAssembly would be an interesting target to use instead, that's fairly regular as ASMs go 14:57:40 I'll just leave them as dead ends 14:57:53 Bye. 14:57:55 -!- cpressey has quit (Quit: WeeChat 1.4). 15:02:17 -!- ais523 has quit (Quit: quit). 15:16:06 -!- doesthiswork has joined. 15:20:30 -!- wob_jonas has joined. 15:21:23 I was in London for the weekend. It seems that the stores sell milk in both one liter size and a size slightly larger than one liter, the latter is apparently somewhat round in some non-metric measurement unit. 15:22:21 Also they sell half liter and two liter bottles. I still find that strange. Half liter milk bags used to exist here, but only a very long time ago, and I've only ever seen ones larger than one liter abroad. 15:28:15 I sometimes buy the half-litre bottles if I'm thirsty when I'm out and about 15:38:26 -!- lldd_ has joined. 15:42:15 drinking milk as a beverage is weird to me 15:43:28 It's weird to a lot of people 15:43:44 kmc: is that because you live in a place where you can't easily buy fresh milk, only 15:44:20 UHT milk? because fresh milk tastes much better, but I know it's not available everywhere 15:44:41 But like, it's cheaper and healthier (here at least) than soft drinks 15:46:17 ...now I'm thirsty 15:48:10 -!- FreeFull has quit. 15:51:10 -!- wob_jonas has quit (Remote host closed the connection). 16:08:26 we do 1l and 1.5l here 16:09:42 We have 1.75 16:12:38 UHT milk isn't common in the USA 16:12:53 we mostly have regular pasteurized milk 16:12:57 which needs to be refridgerated 16:13:22 I bought some lemonade the other day, didn't notice it was unpasteurized... within less than a week the bottle had puffed up to almost a round cylinder 16:13:39 I started unscrewing it in the sink and the cap came off with a bang 16:17:42 probably the "slightly larger than one liter" was 2 imperial pints? 16:18:00 it's great how the UK's non-metric unit isn't even the same as the US's non-metric unit of the same name 16:18:18 2 imperial pints is a bit more than 1L but 2 US pints is a bit less than 1L 16:18:32 -!- xkapastel has joined. 16:20:11 Someone once taught me a rhyme, "A litre of water is a pint and three quarter" 16:20:44 I didn't realise the US pint was different 16:21:08 that rhyme doesn't even rhyme very well 16:21:22 a litre of wuarter 16:21:26 It rhymes almost perfectly to me 16:21:43 You must talk weirdly 16:21:52 (or, like, have a rhotic accent) 16:25:55 -!- Sgeo_ has joined. 16:26:06 I like phonology 16:29:13 -!- Sgeo has quit (Ping timeout: 245 seconds). 17:06:36 I live in the US and I have no idea what a pint is 17:13:01 -!- b_jonas has joined. 17:33:33 kmc: yes, probably 17:33:48 I didn't much pay attention right there, and I don't have the bottles or photos of them anymore 17:33:56 mm 17:34:02 wb_jonas 17:37:20 still no IOCCC source codes 17:37:55 :( 18:16:12 so the Giant says that the end of the sixth OotS book is in sight. and there will only be seven books. we must be two thirds ratio into the story by now. 18:16:38 I presume the last book will be the thickest, because that's how these series usually go, but still. 18:18:58 [[ACL]] https://esolangs.org/w/index.php?diff=64815&oldid=64814 * Hanzlu * (-178) 18:21:17 can you imagine living in a time when everyone knows OotS as an epic that is already complete, and we tell children about how we had to wait ten days (uphill both ways) for the next strip to appear, over and over again for each strip? 18:25:00 although I guess we can already tell them about when Harry Potter wasn't yet complete 18:27:51 -!- ARCUN has joined. 18:28:47 Ubuntu came out with the 19.04 version 18:28:58 I almost installed 18.04 18:29:10 -!- ARCUN has left. 18:30:09 and #esoteric is logged way back so we can even prove it 18:58:49 -!- lldd_ has quit (Quit: Leaving). 19:09:28 although I guess we can already tell them about when Harry Potter wasn't yet complete => was it too published strip by strip? 19:15:13 arseniiv: no, but we had to wait for the last three books 19:31:45 it would be quite interesting if Harry was originally a comic series 19:34:15 dunno. that would make the books more expensive, I think, so it would get to fewer people 19:35:10 the way they are, with books, I can have the complete story in seven books. in comics, I could only have slices. 19:35:52 b_jonas: agree 19:36:01 unfortunately 19:36:25 hm, there are some prose/comic hybrids out there, maybe it’s a good format 19:36:39 illustrated books, yes 19:36:43 they can be good 19:37:02 I have Matilda by Roald Dahl on my bookshelf, but that one is short 19:37:51 oh, I didn’t know that’s illustrated originally (I only have seen a film) 19:38:10 I also have some of the Kästner books 19:38:32 also, is it translated, I mean Matilda? 19:38:52 there is a translation, and I've read it, but in this case, I have the original English version of Matilda on my shelf 19:39:01 the Kästner books I only have in translation 19:39:13 thanks 19:39:32 Matilda is one of the books I've met when I was very young, but only got the original more recently 19:41:07 BTW I don’t like very much how it ends, “and she didn’t need to use her telekinesis almost ever”, is it a tad boring 19:41:27 no no, it ends by Matilda _losing_ her telekinesis 19:41:32 oh 19:41:36 there's some speculation too on why 19:41:40 but that's not even the important point 19:41:43 the movie guys lied to me 19:42:13 the more important is that it ends by Matilda living happily ever after with her teacher Ms Honey in the house that she inherited, instead of with the parents who don't care much about her 19:42:46 I understand what is it she didn’t have is a loving family, yeah, I agree it’s greater, but still 19:44:42 it’s like there can only be one thing more important that all the others, and it doesn’t ring too true, even when I was a kid and saw the movie version the first time 19:45:07 anyway the story is good 19:45:51 and I can also say if Matilda is okay with no superpowers, then so am I :D 19:46:18 why wouldn't she be okay? she didn't ask for them anyway, and she was never dependent on them 19:48:28 right 19:50:41 @tell ais523 this new smb3 tas is even super cooler than last time thx 19:50:41 Consider it noted. 19:57:24 -!- xkapastel has quit (Quit: Connection closed for inactivity). 20:03:13 -!- Lord_of_Life_ has joined. 20:03:36 -!- Lord_of_Life has quit (Ping timeout: 272 seconds). 20:05:56 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 21:51:46 -!- xkapastel has joined. 21:57:38 `? union 21:57:39 An union is the opposite of an ion. 21:57:42 `q 21:57:43 1288) (btw, "q = 1-p" should be the standard definition of q, IMO) 22:51:47 -!- b_jonas has quit (Quit: leaving). 23:09:38 -!- MDude has quit (Ping timeout: 245 seconds). 23:24:24 [[ACL]] https://esolangs.org/w/index.php?diff=64816&oldid=64815 * Hanzlu * (+439) 23:30:52 [[ACL]] https://esolangs.org/w/index.php?diff=64817&oldid=64816 * Hanzlu * (+479) 23:31:01 -!- MDude has joined. 23:33:56 [[ACL]] https://esolangs.org/w/index.php?diff=64818&oldid=64817 * Hanzlu * (+32) 23:53:55 [[ACL]] https://esolangs.org/w/index.php?diff=64819&oldid=64818 * Hanzlu * (+118) 2019-07-31: 00:00:46 -!- sparr has quit (Changing host). 00:00:46 -!- sparr has joined. 00:01:43 [[ACL]] https://esolangs.org/w/index.php?diff=64820&oldid=64819 * Hanzlu * (+145) 00:10:34 -!- arseniiv has quit (Ping timeout: 246 seconds). 00:15:58 [[ACL]] https://esolangs.org/w/index.php?diff=64821&oldid=64820 * Hanzlu * (+143) 00:27:24 -!- xkapastel has quit (Quit: Connection closed for inactivity). 00:45:49 -!- xkapastel has joined. 01:11:27 -!- FreeFull has joined. 02:03:55 Awrighty, I think I've decided how I want to implement Forth for my weird PC project. 02:04:03 Uh, I've decided *some* of it, anyway. 02:04:14 Here's what my keyboard handler looks like currently... 02:04:20 29 DB B8 10 01 8E D8 B8 00 B8 8E C0 29 C0 E4 60 D7 B4 07 AB B0 20 E6 20 CF 02:04:59 Which is to say: 02:05:04 sub bx, bx; mov ax, 0110; mov ds, ax; mov ax, b800; mov es, ax; sub ax, ax; in al, 60; xlat; mov ah, 07; stosw; mov al, 20; out 20, al; iret 02:05:19 The new keyboard handler is going to be: 02:05:20 -!- adu_ has joined. 02:05:26 b800 set-es 60 input-byte 500 xlat 700 or 404 load store-es 404 load inc inc 404 store 20 20 output-byte iret 02:05:30 Which is obviously so much more readable. 02:05:43 -!- adu has quit (Ping timeout: 246 seconds). 02:05:43 -!- adu_ has changed nick to adu. 02:06:07 And which compiles to 107 bytes instead of the 25 bytes of the original. :D 02:06:38 Now I just merely have to write the compiler. 02:11:11 how do you know it's 107 bytes if you haven't written the compiler yet? 02:11:18 Which is obviously so easy. 02:11:50 Well, the compiler is just going to take each of those words, look up the corresponding piece of assembly code, and write that assembly code into the compiled output. 02:12:19 I can do the same by hand. 02:16:39 I see 02:17:19 sounds like you need an optimizing compiler :) 02:26:23 Well, you know what they say. 02:26:26 [...] optimization is [...] evil. 02:29:54 tswett[m]: wah, you have to restore those segment registers! 02:30:15 (and the other ones as well) 02:31:17 Oh yeah, that's probably a good idea. 02:33:32 I guess I'm assuming that no code will be running when an interrupt happens. 02:33:43 Which... is an assumption that may prove to be false. :D 02:34:55 Oh the interrupt handler will be fine... only other programs will suffer ;) 02:38:05 I have another interrupt handler that ends with "eb fe", which is a jump to itself. 02:45:35 I wrote a little assembler the other day, it's great. 02:46:08 I probably won't bother with multipass assembly to get the smallest instruction sizes. 03:34:28 -!- nfd9001 has quit (Ping timeout: 276 seconds). 04:17:23 -!- xkapastel has quit (Quit: Connection closed for inactivity). 04:18:57 -!- FreeFull has quit. 04:47:14 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64822&oldid=64813 * A * (+1498) /* The implementation */ 04:49:00 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64823&oldid=64822 * A * (-1363) /* The implementation */ 04:51:18 w22 04:51:28 `quote 04:51:29 526) Second Life is like... real life, modelled by people who've READ about real life, you know, in books. 04:51:36 `quote 04:51:36 1199) oerjan: the original purpose was to make a language in which I write ugly source code, and it's compiled to readable standard ml and readable prolog code; but I sort of ran out of time and the readable part got dropped so now the compiled code is even more ugly than the original 04:52:35 -!- Melvar has quit (Quit: WeeChat 2.4). 04:53:33 Are there uses for the REX byte without any of W,R,X,B? 04:53:35 Just 0x40 05:07:52 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64824&oldid=64823 * A * (+0) /* The implementation */ 05:08:16 -!- doesthiswork has quit (Ping timeout: 258 seconds). 05:08:17 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64825&oldid=64824 * A * (+2) /* What Mains Numbers? */ 05:11:09 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64826&oldid=64825 * A * (+33) /* The implementation */ 05:19:31 -!- Melvar has joined. 05:28:39 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64827&oldid=64826 * A * (-1) /* The implementation */ 05:31:44 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64828&oldid=64827 * A * (+0) /* The implementation */ 05:46:25 -!- Sgeo__ has joined. 05:49:28 -!- Sgeo_ has quit (Ping timeout: 244 seconds). 06:57:28 `` doag quotes | grep 'standard definition' 06:57:30 9233:2016-10-11 addquote (btw, "q = 1-p" should be the standard definition of q, IMO) 06:57:32 I added that? 06:59:03 [[Pxem]] https://esolangs.org/w/index.php?diff=64829&oldid=64735 * YamTokTpaFa * (+27) /* References */ 07:01:16 [[User:YamTokTpaFa]] https://esolangs.org/w/index.php?diff=64830&oldid=62025 * YamTokTpaFa * (+22) 07:03:50 [[User:YamTokTpaFa/sandbox4]] N https://esolangs.org/w/index.php?oldid=64831 * YamTokTpaFa * (+33) Created page with "'''Pxemf'''(Pronunciation: ) is" 07:09:01 [[Talk:ACL]] N https://esolangs.org/w/index.php?oldid=64832 * JonoCode9374 * (+290) Created page with "= Python Interpreter = Is it alright if I make a direct port of the Java interpreter in Python? Because I am unable to access anything that could compile Java, but I do have..." 07:10:24 [[Talk:ACL]] M https://esolangs.org/w/index.php?diff=64833&oldid=64832 * JonoCode9374 * (+29) /* Python Interpreter */ 07:12:11 [[User:JonoCode9374]] https://esolangs.org/w/index.php?diff=64834&oldid=63904 * JonoCode9374 * (+90) 07:28:17 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64835&oldid=64828 * A * (+61) /* Example programs */ 07:28:25 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64836&oldid=64835 * A * (+1) /* = Hello, world! program */ 07:30:01 -!- cpressey has joined. 07:31:49 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64837&oldid=64836 * A * (+6) /* The implementation */ 07:36:40 Good morning. It occurs to me that "ghci" is an acronym for "Glasgow Haskell Compiler Interpreter". I approve of this. The world needs more compiler interpreters. 07:36:44 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64838&oldid=64837 * A * (+1492) No it is, you probably don't know JavaScript. 07:45:12 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64839&oldid=64838 * A * (+166) /* Infinite loop */ 07:55:24 hmm, yaci 07:57:03 Oh. I finally got the etymology of "bison". 07:57:33 And I wish I didn't. Puns are only good when they're your own ;-) 08:00:32 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64840&oldid=64839 * A * (+623) /* Infinite loop */ 08:02:27 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 08:03:52 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64841&oldid=64840 * A * (+303) /* Infinite loop */ 08:05:10 -!- Lord_of_Life has joined. 08:13:50 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64842&oldid=64841 * A * (+224) /* Infinite loop */ I should have explained it further when Ais523 is a JavaScript beginner. (But indeed it is obvious enough.) 08:16:09 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64843&oldid=64842 * A * (+35) /* Infinite loop */ Minor improvement 08:16:46 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64844&oldid=64843 * A * (+29) /* Infinite loop */ 08:22:12 [[Talk:ACL]] M https://esolangs.org/w/index.php?diff=64845&oldid=64833 * A * (+84) Stub reply 08:25:52 -!- GeekDude has quit (Ping timeout: 272 seconds). 08:28:30 -!- GeekDude has joined. 08:43:53 -!- wob_jonas has joined. 08:48:42 " Are there uses for the REX byte without any of W,R,X,B?" => rarely. you can use them to encode the DIL, SIL, BPL, SPL byte register operands 08:52:38 Hmm, right. 08:53:10 Those weren't in x86? 08:54:35 They aren't in x86_16 or x86_32, but then you rarely need them, you can do almost everything with either the other byte registers or full word operations 08:56:32 shachaf: I miss the one byte inc/dec register operations :P 08:56:39 I see. Without the rex prefix it encodes the upper half of the [abcd]x registers. 08:56:59 (Bot really. But that's where they stole those prefixes from.) 08:57:07 *Not 08:57:07 I mean [adcb]x 09:00:28 So 010x is inc and 011x is dec. 09:01:53 And in long mode inc %eax is encoded with... ff? 09:02:25 presumably 09:03:05 (I don't know what you mean by 010x and 011x though) 09:03:10 Oh, which was already inc r/m 09:03:26 I mean octal 0100|reg and 0110|reg 09:03:39 octal. 09:03:48 right, makes sense 09:04:00 octal is the way to go, it's great 09:04:02 > 0100 -- :-P 09:04:05 100 09:04:40 The mod r/m byte is great. 03xy encodes register x and register y, and so on. 09:05:38 0o3xy, if you prefer 09:05:51 shachaf: no 09:06:46 or hmm wait 09:16:15 maybe it does 09:24:37 -!- ais523 has joined. 09:25:06 well, I wrote my slightly crazy malloc: http://nethack4.org/pastebin/animalloc.tgz 09:25:39 it compiles to a .so file that you can use with LD_PRELOAD 09:26:33 I've been trying it on various programs, it seems to work (in particular, a full build+test of C-INTERCAL works, with malloc replacements in all the programs invoked as part of that, including make, gcc, and friends) 09:28:50 What does it do? 09:32:02 ais523: nice, let me look 09:33:51 shachaf: it's based around asking the kernel for a huge amount of address space and then using pagefaults for the actual allocation 09:34:37 it also uses a lock-free algorithm (specifically, a lock-free stack) to make it async-signal safe, because I hate the fact that standard malloc isn't 09:35:18 there's also some code in there to fill freed memory with 0xAA, I should probably remove that because this really isn't a malloc about safety 09:35:59 OK, updated with that line taken out 09:36:35 note that if you try to allocate too much memory and then use it, you'll likely get a segfault, but that's no different from standard mallocs on Linux 09:36:53 (also, this assumes Linux and a 64-bit processor; it doesn't assume x86_64 specifically, although that's what most people are likely to use) 09:37:50 ais523: you should probably implement the various aligned allocation functions too, even if by just stubs that abort 09:38:23 I just realised that while looking at competitors 09:38:33 you're right, it's important to have the entire set of alloc functions implemented at once 09:38:39 so that you don't mismatch malloc and free impls 09:39:15 see https://www.gnu.org/software/libc/manual/html_node/Replacing-malloc.html#Replacing-malloc 09:39:49 [[User:YamTokTpaFa/sandbox4]] https://esolangs.org/w/index.php?diff=64846&oldid=64831 * YamTokTpaFa * (+942) 09:41:06 ooh, "malloc_usable_size" is what that function's called 09:41:07 filling with 0xAA can make sense, but make sure to do that only for small allocations, or at least small parts of large allocations, because people can use malloc to allocate huge blocks that will be paged in on demand too 09:41:56 yes, it was limited to blocks of 32768 bytes at most 09:42:00 but I removed it anyway 09:44:51 aligned allocation is another of those messes that we got because everyone added their own incompatible apis, and now we have to support all of them 09:45:13 animalloc uses 512-byte alignment for its huge allocation (I didn't want the alignment to be too coarse as that screws up ASLR) 09:46:04 so I guess the correct way to implement an aligned alloc is to increase the size to the alignment if it's smaller and we have less than 512 bytes of alignment requirement 09:46:13 [[Ruby]] https://esolangs.org/w/index.php?diff=64847&oldid=38207 * YamTokTpaFa * (+19) 09:46:13 shachaf mentioned a few days ago how many different ways you can tell libc to run a function early in the program, before main. that's one of those messes too, because C doesn't have a standard mechanism. 09:46:24 or to use the "over-allocate and filter" method if the request is for an alignment larger than 512 bytes 09:46:54 and for aligned allocation, I'm tempted to add a new api too if I ever make my own malloc: 09:49:06 hmm, a quick check with a malloc benchmarker is showing that my malloc is both faster than glibc malloc, and also less memory-hungry 09:49:25 although of course, real-world programs may act in a very different way from a malloc benchmarker 09:49:39 I'd like a four-argument function void *alloc4(size_t size, size_t alignment, size_t before, size_t after) which allocates a block of legth at least size bytes, aligned to a boundary of alignment bytes (must be a power of two), with at least before bytes readable before the block and at least after bytes readable after the nominal end of the block 09:50:01 this is most likely because animalloc is completely immune to fragmentation 09:50:31 wob_jonas: I assume that the readable bytes are allowed to be part of some other allocation, and not necessarily writable 09:50:39 yes 09:50:40 so that they're basically just a "legal overrun"? 09:51:10 and they can contain administration data used by the malloc implementation itself 09:51:30 that'd be pretty trivial with animalloc, tbh, as long as your allocation is at least 9 bytes long you have several gigabytes of readable overrun space :-) 09:51:43 ais523: even backwards? 09:52:29 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64848&oldid=64844 * A * (+139) 09:52:30 in fact maybe I should make the api even more general, adding an alignment offset too, though that doesn't come up often 09:52:42 The function aligned_alloc() is the same as memalign(), except for the added restriction that size should be a multiple of alignment. 09:52:49 but it doesn't report what error it's supposed to return if it isn't :-( 09:52:57 wob_jonas: even backwards, that's what the 9-byte minimum is for 09:53:21 ok 09:53:26 because there's 4GiB of address space reserved for objects that are 8 bytes and smaller 09:53:29 and those come first 09:54:00 (allocating objects that small is normally a mistake, but there are likely uses for it) 09:57:31 [[What Mains Numbers?]] M https://esolangs.org/w/index.php?diff=64849&oldid=64848 * A * (+1) /* = Computational class */ 09:58:23 ais523: The GHC RTS maps 1TB of address space at startup nowadays, I hear. 09:58:51 Sometimes I wonder whether disabling overcommit would be better. 09:59:37 I think overcommit should be under the control of the program allocating the memory 10:00:01 in the understanding that if a program overcommits willingly, it's signing up to be OOM-killed 10:01:17 I've been writing a bunch of C code that hardly ever calls malloc. 10:01:19 It's great. 10:02:14 -!- ais523 has quit (Quit: sorry for my connection). 10:02:32 -!- ais523 has joined. 10:03:14 Do you think passing custom allocators to libraries is a plausible thing to do? 10:03:48 One thing that I'm a bit skeptical of is that different allocators can have different APIs and usage patterns, it's not malloc and free. 10:05:34 shachaf: sure! in some cases, like for interpreters or haskell runtimes that allocate a lot of small objects with known type (that are either not arrays, or arrays where the actual size has to be known because there are destructors), it's worth to use a library with a sized free, which means the allocation function needn't store the size of the blo 10:05:34 ck. 10:05:42 [[Pxem]] https://esolangs.org/w/index.php?diff=64850&oldid=64829 * YamTokTpaFa * (+14) 10:06:34 in this case, you pass the size and alignment of the object to both the allocate and the free function, and it's an UB if you pass a different size or alignment when freeing 10:07:02 [[User:YamTokTpaFa/sandbox4]] https://esolangs.org/w/index.php?diff=64851&oldid=64846 * YamTokTpaFa * (+794) 10:09:54 Yes, that would certainly be a better API option. 10:10:36 But also sometimes you want to allocate in an arena and free all at once, in which case you don't want to call free on each individual allocation even if it's a no-op. 10:10:53 wob_jonas: animalloc stores the size of the block in the returned pointer :-) 10:11:12 [[Pxem]] https://esolangs.org/w/index.php?diff=64852&oldid=64850 * YamTokTpaFa * (+209) 10:11:18 plenty of address space, after all, to use some of the bits of the returned pointer to record the size 10:18:35 That's pretty good. 10:19:49 this works well because there are only ten allocation sizes used anyway, in terms of distance between returned pointers (the entire space is mapped) 10:20:06 err, nine, not ten 10:20:13 ais523: it might also help to add an explicit -std to the compiler command in the makefile 10:21:13 OK, I added -std=gnu11 10:21:21 this is hopelessly Linux-specific anyway 10:21:39 haven't uploaded yet, am still implementing the remaining functions 10:22:07 Did you see my fancy gnu11 printf? 10:22:12 ais523: you could also consider to mprotect all the space you don't use to unreadable, both the large allocations that you make the kernel throw away with MADV_FREE, and the tail part of the spaces for small allocations until first used. that way it's more likely that some pointer mistakes are caught by segfaults. 10:22:19 http://slbkbs.org/tmp/fmt.txt 10:23:13 I don't remember whether this is C11. I think I concluded it wasn't. 10:23:44 huh, this thing compiles a few bytes smaller with -O3 than with -Os under clang (gcc's -Os is larger) 10:25:46 I wonder what the smallest program that's true of is. 10:29:25 the -Os /code/ is way shorter, so I wonder why the file is larger 10:30:01 (this relationship is true both stripped and unstripped) 10:32:42 Oh, that's more interesting. 10:33:41 after looking at readelf for a while I figured it out: there's some sort of alignment requirement which causes the -Os output to lose its advantage due to having to pad the code up to the same length as the -O3 output within the .so file 10:34:36 but the -O3 output inlines a call to an exported function, whereas the -Os output calls the function directly, and that function call creates one additional relocation 10:34:44 the relocation is in a part of the ELF file that /does/ affect the file length 10:35:34 OK, I uploaded the new version 10:37:19 Dynamic linking is so complicated. 10:37:26 And there are hardly any benefits to it. 10:38:01 ais523: That's pretty cool. 10:38:17 a6f: 48 c7 c0 ff ff ff ff mov $0xffffffffffffffff,%rax ← oh come on, even I can beat that 10:38:43 in "outoptimize the compiler" wars, -Os is more fun as a target because it's much more objective as to what code is better than what other code 10:38:57 0:31 c0 xor %eax,%eax 10:38:58 2:48 ff c8 dec %rax 10:39:01 that's my competing program 10:39:22 I once worked on some code where the structs were 8 bytes so I passed them directly to functions, and I was told that I should be allocating them on the heap and passing pointers to them instead 10:39:36 Did you see that heap-compacting malloc? 10:39:51 admittedly they probably hve different effects on flags but the context doesn't care about the flags 10:40:03 https://github.com/plasma-umass/mesh 10:40:35 cpressey: many programmers don't have a good intuition about when it's best to pass things by value 10:40:47 ais523: -Os doesn't always try to produce the smallest code if it's slower 10:40:57 you're Just Not Supposed to Do That with a Struct 10:41:29 wob_jonas: is there an "as small as possible" optimization option? analogously to the "as fast as possible" -Ofast? 10:41:40 ais523: gcc -Os has a four-byte solution, it seems. 10:41:44 I don't know, but I don't care. I dno't use the compiler for golf. 10:42:14 Sign-extended or with 0xff 10:42:19 (-Ofast isn't standards-compliant) 10:42:30 you can try to add __attribute__((cold)) or whatever that is to functions if you want 10:44:29 compilers typically don't do much with hot/cold 10:44:51 ais523: and if you're willing to pay for two instructions where the second one depends on the first one, you can just use an OR instruction with a 8-bit immediate, which would be three bytes long and have a false dependency that the cpu doesn't know is false 10:45:05 and the normal optimisations for hot don't help much unless you have an entire loop entirely in hot code, which is pretty inappropriate for a malloc 10:45:41 I do wish the amd64 calling convention wasn't different for values and singleton structs. 10:46:05 Or is it? I can't remember for sure now. 10:47:07 my experience with clang vs. gcc optimisation wars is that gcc knows many more optimisations, but clang is better at working out when to use them 10:48:23 gcc sometimes goes a little mad with the optimisation and makes the code slower/longer as a result 10:49:09 ais523: doesn't it go a little mad only when people pass inappropriate compiler options? 10:49:47 wob_jonas: well, that's what -O3 is asking for, yes; but I'd be surprised if -O2 could compete 10:50:23 hmm, something that's been bothering me: there are two encodings of the ret instruction on x86_64; branching /directly/ to the shorter encoding has a huge performance penalty, the longer one doesn't have that issue 10:50:44 ais523: yes, the optimization manual describes that 10:50:52 I'm trying to figure out what sort of insanity would be happening in the hardware to make that happen 10:51:25 like, I can understand why branching to a ret might be slow, but why would a repret be any faster? is there a reason not to just use the code underlying repret by default, or whenever there's just been a branch, etc.? 10:51:50 ais523: the cpu is trying to cache the likely target of jump instructions, for which it stores the address of the jump, but every other jump instruction is at least two bytes long... I don't know the details, but it doesn't seem too strange 10:52:23 People use rep ret to avoid that, right? 10:52:29 I remember reading about this. 10:52:34 yes, rep ret is the recommended long encoding 10:52:41 nop ret works too but is slower, for obvious reasons 10:53:43 (incidentally, you have to use rep rather than the more commonly seen data16 becauses data16 would actually affect the ret instruction and make it pop only 16 bits!) 10:56:29 ais523: http://repzret.org/p/repzret/ talks about the details of the branch predictor that cause this. 10:56:59 another thing that surprised me: I assumed that commands like rep movsd were only worthwhile for small moves, and that bigger more complex code could do a large move faster 10:57:28 but it's actually the opposite, rep movsd (and particularly rep movsq) has a large setup cost but runs very quickly when it gets going, and thus is only efficient for large moves 10:57:44 presumably it's being recompiled into some sort of vector operation behind the scenes 10:58:04 also, I'm not surprised that there's a blog post about repret, but am surprised that it has its own website 10:58:40 ais523: the rep movsd thing is complicated, it depends a lot on which cpu brand and core you have 10:58:59 I think whether rep movsd is better or worse than alternatives has changed over the years in different uarchs. 10:59:14 you have to look up the details in the optimization manuals and Agner's optimization docs and Agner's memcpy implementation if you want to know the details 10:59:29 yeah, what shachaf says 10:59:39 the optimization guides basically say "don't try to figure it out yourself, the compiler manufacturers know what to do, so memcpy or __builtin_memcpy are the best options for copying things" 10:59:55 ais523: yes, exactly 11:00:10 but the opt guides also give assembly source codes for them I think 11:00:23 Aren't the optimization guides written for compiler manufacturers? 11:01:17 AMD's is written for anyone who cares but assumes that compiler manufacturers will be a major audience 11:01:48 I wonder how important compiler optimizations are. 11:02:01 some of them are pretty important 11:02:13 like storing things in registers rather than memory 11:02:45 nowadays people typically forget that that's an optimisation, but on -O0 most compilers will use registers only for the course of one instruction and put everything back into memory in between 11:02:45 yeah, that's one of the earliest optimizations that compilers implemented 11:03:18 way back when what would now count as a non-optimizing compiler of a low-level language counted as an optimizing compiler of a high-level languaeg 11:03:27 Anything that requires solving an NP-complete problem is certainly an optimization. 11:04:04 bold claim 11:04:29 OK, the claim turned out much bolder than I intended. 11:04:39 For "anything" substitute "This particular thing". 11:04:54 register allocation? 11:05:05 doing it optimally is NP-complete, I think 11:05:13 but doing better than nothing is much easierr 11:05:28 it's still hard to do it well enough 11:05:44 What are the most important optimizations for a compiler? 11:05:50 Register allocation seems important. 11:05:50 I don't understand how that part of compilers work 11:05:53 Inlining is probably important. 11:06:19 constant folding is important because without it most of the other optimisations don't work either 11:06:20 Though it's certainly much more important in a language like C++ than in C. 11:06:46 Ah, constant folding, sure. 11:07:11 I've said before that I think some optimizations are a bad idea, like tail call "optimization". 11:07:30 shachaf: constant folding, "peephole optimizations" (a very general term), optimizing integer divisions by a compile-time constant and repeated integer divisions by the same divisor 11:07:41 it's a great idea. it should be mandated by the language standard. 11:08:13 strength reduction, bounds check elimination, loop unrolling 11:08:27 I think tail calls should be marked explicitly. 11:08:52 (bounds check elimination is *very* important because without it, performance-hungry people will not use safe languages at all.) 11:08:56 If they are it should be an error to use an extra stack frame for them. But it shouldn't be implicit. 11:09:00 outputting shorter forms of instructions (on x86), 11:09:52 shachaf: I largely agree. I like Perl's use of goto for this. 11:09:54 C compilers don't do bounds check elimination so how important can it be? 11:09:56 I'm planning to write a program in asm at the moment, I've spent over a day just on trying to optimise the register allocation to allow for shorter instruction forms 11:10:03 and I haven't even started writing the program yet 11:10:13 shachaf: I think they do 11:10:33 although they might see it as removing redundant conditionals rather than anything specifically related to bounds checking 11:10:50 Well, sure. 11:12:28 cpressey: I don't know how that works. Does "goto &f" mean the same as "return f(@_)" but without the stack frame? 11:13:00 When I try to look this up everyone is talking about "tail recursion optimization" which is double silly because tail recursion is the most useless kind of tail call. 11:13:54 shachaf: I think that's basically it. 11:14:42 I think in a language like C tail recursive functions are much more clearly written with a loop. 11:15:23 Useful cases of tail calls are mutually recursive functions like parsers, I guess. 11:15:59 also being able to emit the common instructions in all addressing modes, using indexed memory access for reading or writing when possible, immediates for compile-time constant operands, swapping arguments of commutative operations 11:16:37 shachaf: Yes, finite state machines especially. 11:17:15 following which local variables are non-volatile and never taken address so the compiler knows that indirect assignments can't affect them 11:17:18 Are these actually important or are you just listing optimizations? 11:17:30 indirect reads too, so you can store them in registers 11:17:40 shachaf: I don't really know, I haven't made a compiler yet 11:17:41 I think I meant something like, if you only have time to implement a few optimizations, which are the most important? 11:18:02 I think in a language like C tail recursive functions are much more clearly written with a loop. ← things like iterating over a binary tree look really ugly when one branch is recursive and the other is iterative, although of course the tail call doesn't save stack height there, just a bit of time 11:18:41 -!- FreeFull has joined. 11:19:18 Hmm, let's see. 11:19:58 void print_node(Node *n) { if (!n) return; print_node(n->left); print(n->value); print_node(n->right); } 11:20:03 [[User:YamTokTpaFa]] https://esolangs.org/w/index.php?diff=64853&oldid=64830 * YamTokTpaFa * (+114) 11:20:32 void print_node(Node *n) { while (1) { if (!n) return; print_node(n->left); print(n->value); n = n->right; } } 11:20:37 shachaf: not quite 11:20:46 hmm wait 11:20:50 maybe it does 11:20:55 I suppose you do lose some symmetry. 11:21:27 well, it's closer to return &f(@_); which can matter if f is a prototyped function 11:21:42 [[User:YamTokTpaFa/sandbox4]] https://esolangs.org/w/index.php?diff=64854&oldid=64851 * YamTokTpaFa * (+185) /* Language overview */ 11:21:45 I don't know Perl at all so I made up some syntax. 11:21:48 shachaf: If I had limited time and only wanted to implement one optimization technique it would probably be peephole optimization, but that's also because I typically don't want to think hard about the code I generate 11:22:20 so, like, push ax; pop ax -> get rid of that 11:22:57 Is register allocation in and of itself an optimization, relative to stack allocation? 11:23:27 push ax; pop ax isn't a no-op but I guess you can assume it doesn't matter. 11:23:28 cpressey: does it count as an optimization to be able to emit arithmetic instructions directly on memory operands, for both input and output, and arithmetic instructions with immediate operands? 11:23:33 storing things in registers rather than on the stack is a huge optimization and one of the most important 11:23:54 shachaf: if you're a compiler, you almost certainly don't want the side effect it has 11:25:42 and if you /do/ want that effect, you'd likely write code like orb $0x0,-0x2(%rsp) (and would probably use a more negative number than -2) 11:26:56 What's the side effect? 11:27:12 It writes ax to the memory past the end of the stack. 11:27:26 Ah, of course 11:27:26 Taneb: pagefault (possibly upgraded to a segfault) if you're at the end of the paged-in portion of the stack 11:27:46 Ah, also of course 11:27:59 I imagine the most important optimizations are the ones that save on the most important resources. 11:28:02 and of course on x86_64, you're writing actual valid memory there (specifically, redzone memory) 11:28:24 on 32-bit x86 the ABI treats the memory there as undefined 11:28:29 Presumably executing a few extra instructions doesn't matter nearly as much as avoiding cache misses. 11:28:32 I feel like I should spend more time learning about this sort of thing 11:28:36 so most people don't use things above the top of the stack there 11:28:49 Or mispredictions or something. 11:29:03 Taneb: You should write a fancy x86 assembler for me. 11:29:10 I wrote one but it's very simple and bad. 11:29:39 I don't want to do that 11:30:00 back in 2005, when my copy of the optimization guide was written, the most important factors were latencies in dependency chains, throughput of various units on the CPU, and things that caused the whole processor to stall 11:30:06 Register allocation is such an important optimization that people don't think of it as a compiler optimization 11:30:31 Some of these same people are happy with stack-based VMs 11:30:43 for example, most instructions that did nontrivial memory accesses would not stall anything and would not use much of the CPU's resources, but the result wouldn't be available for 4 cycles 11:30:53 shachaf: http://yasm.tortall.net/ fancy x86 assembler 11:30:59 Man, generating code for a fancy out-of-order processor is ridiculous. 11:31:23 Taneb: I don't need it anyway because the point of it is to write it myself. 11:31:26 I actually had a really good idea for an instruction set design in the last couple of days 11:31:27 Level one: just generate some code that doesn't crash 11:32:06 the idea is, many of the registers are actually shift registers, you read from the end of them but write not at the end 11:32:18 (either "the value this register will have after one shift" or with higher numbers than "one") 11:32:31 and there's a shift instruction to shift everything all at once 11:32:43 Dan Bernstein once posted about how the x87 stack instructions, where you get a free swap after every instruction, let you express things that register machines don't. 11:32:47 this gives most of the advantages of VLIW but is much less specific to an individual processor 11:33:44 basically, because the processor can decide for itself how to split the VLIW up, in the knowledge that two commands that happen between a register shift can't possibly interfere with each other (because no position in the shift register is simultaneously wriiteable and readable) 11:34:52 ais523: is that sort of like those old SIMD cpus where if you write a register, you can't read it in the next instruction? 11:34:52 jumps have their own jump target register, the jump instruction just jumps to the address in the jump target register, but you can load that an arbitrary distance beforehand 11:35:08 wob_jonas: yes, except you control how much delay there is 11:35:36 the nice thing about this is that temporaries don't need any nontrivial register allocation at all 11:36:04 you know when the instruction that uses the temporary is coming up, so you just place it in the appropriate point of the shift register 11:36:13 and more normal registers are only needed for values that you want to copy or persist 11:36:44 (even then, a command to store in multiple shift registers would likely be both useful and easy to implement, to save on copying) 11:37:08 my current plan is for immediates to be part of the instruction, but addresses (both store and load) to be taken from shift registers 11:37:27 so that the processor can prefetch an address, or lock it into L1 cache, if it sees that an instruction is going to use it soon 11:37:59 this also makes double ll/sc really easy to implement, which means efficient lock-free algorithms 11:39:08 there are a lot of advantages you can get without any of these fancy instruction set innovations, by just breaking compatibility and designing a new instruction set that is like the current practices but without the historical cruft 11:40:14 I guess my aim here is to design an instruction set that won't hurt optimisations in future processors and makes the optimisations done by current processors easier 11:41:39 that said, although this is intellectually interesting, I'm unlikely to practically get the chance to design an instruction set that CPUs will actually use 12:18:19 Register allocation does not strike me as fun (YMMV). One reason I would want to target LLVM is so that it can do register allocation for me. 12:20:10 Hmm, one thing I want is precise control and information over stack frame allocation, which I think might be tricky to get with LLVM. 12:20:33 For example, I want a function to be able to get its maximum stack usage at compiletime. 12:21:14 Yes, that might be impossible to know with certainty, with something like LLVM. 12:24:23 Maybe I'll target CIL instead. I already did that for one toy project. It's not terrible. 12:25:27 It's backed by a standard, it runs on at least two platforms, where it has half-decent JIT compilers. 12:27:13 Another related thing I want is efficient coroutines, which is very similar code to stack frame allocation. 12:27:23 I don't know how much LLVM can help you with that. 12:29:02 I would be surprised if LLVM could not do coroutines reasonably efficiently. 12:29:13 There's https://en.wikipedia.org/wiki/SPIR-V as well which sounds interesting in that it stores a control-flow graph of SSA basic blocks. 12:29:35 Ugh, why are GPU APIs all such a mess? 12:29:44 Maybe not all, but at least the common ones. 12:29:50 But I don't know whether it can do general purpose programming at this point. 12:32:10 Well, LLVM has an implementation of coroutines, but if they're like C++2038's coroutines I probably don't want them. 12:32:27 2038?! 12:32:47 So next epoch? 12:32:59 C++ω 12:33:44 I've probably forfeited my right to complain but now you're just being silly. 12:33:45 C++2038 actually came out in 1901 but the date underflowed 12:33:54 What are the last two digits of ω 12:34:37 The C++ coroutine proposal last I saw it does some heap allocations sometimes. 12:35:03 But it said something like, don't worry, with only $x0 million of investment in compilers, we expect that optimizers can usually eliminate these allocations. 12:35:06 I guess if you make a decimal reperesentation of ordinals, the last ω digits of ω will be zero. 12:35:38 And only the ω-th digit will be one. 12:36:14 (counting from the left) 12:36:17 err 12:36:21 (counting from the right) 12:36:29 I should say "counting from the end" :P 12:39:06 shachaf: I think recent GPU APIs are messy because they are common interfaces to a very wide range of different hardware, and they expose a lot of iffy details for performance reasons. (The original OpenGL had a pretty different attitude.) 12:43:55 ``` set -e; cd wisdom; printf "%s/ " *ium 12:43:56 amnesium/ belgium/ corium/ 12:44:03 `? amnesium 12:44:04 `? corium 12:44:09 An amnesium is a school where you forget everything you learned after each test. 12:44:10 Corium is the material that a nuclear reactor's core dump is made of. 12:44:11 `? alumni 12:44:13 Alumni is a compromise spelling suggested to solve the aluminum vs aluminium debate that never really caught on, except in a few big colleges. 12:45:21 ``` set -e; cd wisdom; printf "%s/ " *ion 12:45:22 abbreviation/ action/ algebraic chess notation/ bessel function/ cat elimination/ cat introduction/ cipation/ citation/ civilization/ communication/ composition/ cut elimination/ damnation/ defenestration/ degeneration/ dereduntantation/ detonation/ eurovision/ hallucination/ hppavilion/ identity function/ implication/ indentity function/ intersection/ invention/ just intonation/ last-class function/ lion/ natural transformation/ nnection/ onion/ operation 12:45:47 I wonder how much more true that is of GPUs than CPUs. 12:46:25 Hmm, someone should name an element "belgium". 12:46:39 `? belgium 12:46:40 The plural form of "Belgium" is "Belgia". 12:48:59 [[Talk:ACL]] https://esolangs.org/w/index.php?diff=64855&oldid=64845 * Hanzlu * (+14) /* Python Interpreter */ 12:49:25 [[Talk:ACL]] https://esolangs.org/w/index.php?diff=64856&oldid=64855 * Hanzlu * (-14) 12:50:59 [[Talk:ACL]] https://esolangs.org/w/index.php?diff=64857&oldid=64856 * Hanzlu * (+30) 13:03:53 [[ACL]] https://esolangs.org/w/index.php?diff=64858&oldid=64821 * Hanzlu * (+28) 13:05:37 [[Truth-machine]] https://esolangs.org/w/index.php?diff=64859&oldid=63439 * Hanzlu * (+27) 13:07:30 [[ACL]] https://esolangs.org/w/index.php?diff=64860&oldid=64858 * Hanzlu * (+6) 13:16:47 -!- doesthiswork has joined. 13:23:58 [[Talk:Keg]] M https://esolangs.org/w/index.php?diff=64861&oldid=63982 * A * (-109) 13:37:23 -!- xkapastel has joined. 13:59:18 [[Talk:ACL]] https://esolangs.org/w/index.php?diff=64862&oldid=64857 * A * (+6) 14:09:38 -!- ais523 has quit (Ping timeout: 248 seconds). 14:21:45 [[Brace For Impact]] N https://esolangs.org/w/index.php?oldid=64863 * Areallycoolusername * (+1483) Created page with "'''Brace For Impact''' is a [[Stack]]-based [[esoteric programming language]] made by [[User: Areallycoolusername|Areallycoolusername]]. It has featured derived from Lisp,thou..." 14:21:50 [[ACL]] https://esolangs.org/w/index.php?diff=64864&oldid=64860 * Hanzlu * (+128) 14:29:07 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64865&oldid=64849 * A * (+1) /* What Mains Numbers? */ 14:41:08 [[What Mains Numbers?]] https://esolangs.org/w/index.php?diff=64866&oldid=64865 * A * (+825) /* Implementations */ 15:32:07 -!- oklopol has quit (Read error: Connection reset by peer). 15:35:13 -!- wob_jonas has quit (Remote host closed the connection). 16:09:27 -!- john_metcalf has joined. 16:29:45 https://github.com/catseye/Castile/blob/master/src/castile/stackmac.py 16:30:48 -!- cpressey has quit (Quit: A la prochaine.). 17:17:09 [[ACL]] https://esolangs.org/w/index.php?diff=64867&oldid=64864 * Hanzlu * (-419) 17:19:05 [[ACL]] https://esolangs.org/w/index.php?diff=64868&oldid=64867 * Hanzlu * (+2) 17:22:43 [[ACL]] https://esolangs.org/w/index.php?diff=64869&oldid=64868 * Hanzlu * (+153) 17:25:47 [[ACL]] https://esolangs.org/w/index.php?diff=64870&oldid=64869 * Hanzlu * (+137) 17:26:22 -!- ais523 has joined. 17:42:31 [[Brace For Impact]] https://esolangs.org/w/index.php?diff=64871&oldid=64863 * Areallycoolusername * (+1) 17:54:35 -!- b_jonas has joined. 18:18:05 ha, I caught this stupid fly that somehow got in here 18:18:43 ow 18:19:21 [[Esolang:Categorization]] M https://esolangs.org/w/index.php?diff=64872&oldid=58894 * Areallycoolusername * (-157) Most of these proped categories are too obvious to be added. A few need to be discussed on the talk pag, not on the page itself. 18:45:50 [[Esolang:Categorization]] https://esolangs.org/w/index.php?diff=64873&oldid=64872 * Ais523 * (+157) Undo revision 64872 by [[Special:Contributions/Areallycoolusername|Areallycoolusername]] ([[User talk:Areallycoolusername|talk]]): those aren't proposed categories, but listings of possibilities that are too common to be categorised (for exhaustiveness) 18:54:42 [[Brace For Impact]] https://esolangs.org/w/index.php?diff=64874&oldid=64871 * Areallycoolusername * (+606) 19:04:49 -!- ais523 has quit (Quit: quit). 19:16:07 [[Brace For Impact]] https://esolangs.org/w/index.php?diff=64875&oldid=64874 * Areallycoolusername * (+623) /* (a'),(s;),(d.), (f=), and (y~) */ 20:00:48 -!- Lord_of_Life_ has joined. 20:04:07 -!- lldd_ has joined. 20:04:19 -!- Lord_of_Life has quit (Ping timeout: 248 seconds). 20:04:19 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 20:15:51 -!- Phantom_Hoover has joined. 20:29:24 -!- howlands has joined. 20:37:29 `? scoia'tael 20:37:30 scoia'tael? ¯\(°​_o)/¯ 20:37:42 `? journey 20:37:43 journey? ¯\(°​_o)/¯ 20:37:48 `? distancve 20:37:49 distancve? ¯\(°​_o)/¯ 20:37:49 `? distance 20:37:50 distance? ¯\(°​_o)/¯ 20:37:50 `? metric 20:37:52 metric? ¯\(°​_o)/¯ 20:43:11 `? mertic 20:43:12 mertic? ¯\(°​_o)/¯ 20:43:25 `? paliorompot 20:43:26 paliorompot? ¯\(°​_o)/¯ 20:45:17 `? negligence 20:45:18 negligence? ¯\(°​_o)/¯ 20:45:23 `? insurgence 20:45:24 insurgence? ¯\(°​_o)/¯ 20:45:28 `? negligance 20:45:30 negligance? ¯\(°​_o)/¯ 20:45:31 `? insurgance 20:45:32 insurgance? ¯\(°​_o)/¯ 20:45:42 `? indigence 20:45:43 indigence? ¯\(°​_o)/¯ 20:45:43 `? indigance 20:45:44 indigance? ¯\(°​_o)/¯ 20:48:59 ``` set -e; cd wisdom; echo *[ae]nce 20:49:00 ance insurance intelligence persistence reference science sentience this sentence 20:49:05 `? insurance 20:49:06 Insurance is a closed loop. 20:49:16 `? science 20:49:18 Semi-automatic text generation. 20:49:19 `? sentience 20:49:20 sentience is the primary goal of wisdom. wisdom is the primary goal of sentience. 20:49:22 `? this sentence 20:49:23 This sentence is just. Taneb invented it. 20:49:27 `? persistence 20:49:28 Taneb invented persistence long ago, and it's been around ever since. 20:58:21 `? armchair 20:58:22 armchair? ¯\(°​_o)/¯ 20:58:54 -!- lldd_ has quit (Quit: Leaving). 21:00:22 `hatis ld.so 21:00:24 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: hatis: not found 21:00:26 `whatis ld.so 21:00:27 ld.so(8) - dynamic linker/loader 21:08:27 [[User:Hanzlu]] N https://esolangs.org/w/index.php?oldid=64876 * Hanzlu * (+64) Created page with "Some random guy who made [[ACL]]. What more do you need to know?" 21:53:27 -!- b_jonas has quit (Quit: leaving). 22:44:38 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 23:09:55 suppose that the time complexity of adding two 2 digit integers is linear in the smaller term. But you can choose N sums to memoize to improve the worst case. How should you choose the N sums? 23:16:10 -!- Melvar has quit (Ping timeout: 258 seconds). 23:16:37 -!- Melvar has joined.