←2015-07-12 2015-07-13 2015-07-14→ ↑2015 ↑all
00:16:50 <coppro> Iwata Satoru passed away.
00:29:36 -!- Herbalist has joined.
00:34:12 -!- h0rsep0wer has quit (Quit: Leaving).
01:05:54 -!- Herbalist has left ("WeeChat 1.2").
01:20:31 -!- Wright_ has changed nick to Wright.
01:26:38 -!- lemurian has joined.
01:28:49 -!- boily has quit (Quit: QUADRANGULAR CHICKEN).
01:45:39 -!- |f`-`|f has quit (Ping timeout: 264 seconds).
01:51:45 -!- |f`-`|f has joined.
01:56:14 -!- ZombieAlive has quit (Remote host closed the connection).
02:09:39 <coppro> http://lhartikk.github.io/ArnoldC/
02:29:07 -!- Thisbe has quit (Ping timeout: 246 seconds).
02:30:57 -!- Thisbe has joined.
02:31:00 -!- Thisbe has quit (Max SendQ exceeded).
02:31:25 -!- Thisbe has joined.
02:42:08 -!- Thisbe has quit (Ping timeout: 248 seconds).
02:42:58 -!- Thisbe has joined.
02:48:50 -!- Thisbe has quit (Quit: Left).
03:00:44 <Sgeo_> Get Your Ass To Mars https://www.youtube.com/watch?v=Cfu0hpHbIu8
03:17:24 <Sgeo_> https://www.reddit.com/r/janusVR/comments/3clilu/release_4216_new_selectable_ui_sounds_bugfix/ct0s5ne?context=3
03:17:28 <Sgeo_> Well this is a good sign
03:20:36 -!- constant has quit (Ping timeout: 255 seconds).
03:29:10 -!- copumpkin has joined.
03:56:12 <zzo38> I wrote a program to compress MegaZeux boards. Sometimes it works better than DEFLATE, sometimes not. But it almost always results in much better compression with my program is combined with DEFLATE; this results in approx. 1/4 of the original size (the original already having some RLE compression in it).
04:00:22 -!- pikhq has quit (Ping timeout: 244 seconds).
04:00:49 -!- idris-bot has quit (Quit: Terminated).
04:01:21 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
04:02:08 <izabera> i'm reading about brainfuck optimizations and [>] is optimized with a memchr(), why not simply p += strlen(p) ?
04:03:07 <zzo38> izabera: I have used things like that too in various program, but, that depend that such a statement will be optimized by the computer (which therefore has to know what "strlen" means, possibly due to inlining)
04:03:44 <izabera> what :D
04:04:52 <zzo38> The most effective way to implement a C code like p += strlen(p); would be more like the brainfuck code [>]
04:05:10 <ais523> izabera: the difference is that strlen isn't allowed to read past the '\0'
04:05:11 <izabera> nah
04:05:16 <ais523> which limits the optimizations you can do
04:05:36 <izabera> please elaborate
04:05:38 <ais523> memchr is allowed to read anywhere in the memory space you give it
04:05:55 <ais523> so what it can do is, it can read four or eight or 128 bytes at a time
04:06:12 <ais523> then look for the zeroes within them arithmetically (for the small amounts) or via vector operations (for the large amoutns)
04:06:14 <ais523> *amounts
04:06:28 <ais523> this doesn't really help much on small distances but can be useful for the large ones
04:07:08 <izabera> i think all of this also applies to strlen()
04:07:43 <ais523> no, with strlen
04:07:46 <zzo38> If the size of the memory is known and it is not volatile, then strlen should be allowed to read as much as they want to read at once.
04:07:59 <ais523> you can't read past the terminating '\0' because the size of the memory isn't known
04:08:00 <izabera> what you're thinking about is the naive strlen that scans the string a byte at a time
04:08:20 <ais523> and you might have memory you aren't allowed to read just after the '\0'
04:08:46 <ais523> (note that many libcs work around this by forcing memory blocks to be readable as a multiple of, say, 512 bytes, so that they know they can safely overread up to the next multiple of 512)
04:09:09 <zzo38> Yes, that is true if the optimizer does not know, unless the allocation and operating system is define to know the alignment of readable memory
04:12:39 <ais523> it looks like glibc strlen reads 4 bytes at a time: http://www.stdlib.net/~colmmacc/strlen.c.html
04:12:54 <ais523> a vectorised strlen would probably beat that for long strings, but lose on short ones
04:20:04 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
04:55:12 -!- staffehn has quit (Quit: No Ping reply in 180 seconds.).
04:55:54 -!- staffehn has joined.
05:05:03 -!- Thisbe has joined.
05:08:29 -!- codergeek42 has joined.
05:08:29 -!- codergeek42 has quit (Changing host).
05:08:29 -!- codergeek42 has joined.
05:21:40 -!- Wright_ has joined.
05:21:41 -!- Wright has quit (Read error: Connection reset by peer).
05:29:57 -!- hppavilion1 has joined.
05:29:59 <hppavilion1> hi
05:45:20 -!- oerjan has joined.
05:46:15 <oerjan> @messages-
05:46:15 <lambdabot> ais523 said 8h 39m 11s ago: well system F type inference is known undecidable, so it wouldn't surprise me if the type system were TC; also even in the absence of recursion, simply-typed lambda calculus + imperative constants (variables, while loops, etc.) gives you undecidable equivalence in the presence of free variables
05:46:49 <oerjan> ais523: System F is not TC, evaluation is terminating
05:46:55 <ais523> oerjan: or to put things another way, none of this really came as a surprise to me because my thesis was basically on the subject
05:46:57 <ais523> and that's not what I said
05:47:06 <ais523> system F /inference/ is undecidable, and thus probably TC
05:47:15 <oerjan> ok
05:47:27 <oerjan> since that's usually how things are proved undecidable
05:47:33 <ais523> (undecidable doesn't necessarily imply TC, but it certainly hints heavily about it)
05:47:53 <ais523> the proof may well go via TCness; it's a reduction to a similar problem I don't really understand
05:48:04 <oerjan> mhm
05:49:56 <oerjan> ais523: actually what i was really trying to say was that even it looks like primitive recursion, it might be much more powerful if there are higher-order functions.
05:50:01 <oerjan> *even if
05:50:09 <ais523> oerjan: right
05:50:36 <ais523> there's reason to believe it's decidable in /this/ case, mostly because if it wasn't that'd probably allow us to construct an infinite loop in simply-typed lambda calculus
05:50:45 <ais523> (probably because the details of the construction haven't been worked out, but they seem very likely)
05:51:26 <ais523> whereas I think you can do primitive recursion in simply-typed lambda calculus via using Church numerals as for loops
05:52:03 <oerjan> hm that sounds pretty obvious
05:52:47 <oerjan> as long as the pieces are well-typed
05:53:01 <ais523> right, the pieces being well-typed is the only non-obvious bit
05:53:04 <ais523> but it's an awkward one
05:55:07 <ais523> I have a suspicion that you can just nest the function types one more level for each loop you use
05:55:16 <ais523> but this is purely based on looking at types in a debugger, not on any actual reasoning
05:57:23 <oerjan> i think the awkward bit might be if two church numerals were forced to be of different type, because of something like one is used as an argument to the other, but also forced to be used at the same type in another spot
05:57:46 <ais523> oerjan: :-)
05:57:58 <ais523> (this sort of thing happening is the key observation in my thesis)
05:58:07 <oerjan> heh
05:59:13 <oerjan> otoh if you have a church numeral of type ((a -> a) -> (a -> a)), you can probably _construct_ the same church numeral of type a -> a from it
05:59:22 <oerjan> er
05:59:41 <oerjan> s/a/(b -> b)/g
06:00:53 <oerjan> so perhaps you can substitute both church numerals up to a common type, from which all needed simpler types can be constructed
06:01:14 <ais523> that normally doesn't work either, but it does work at first order
06:01:28 <ais523> which is what I think the primitive recursive functions we're trying to implement are
06:02:42 <oerjan> ic
06:03:43 <ais523> the problem is that you can have a type that really wants to be polymorphic, of shape (a -> a), but if you fix any given type for a you can make the return value more general or the argument more specific, but you can't make them both more general or more specific at the same time
06:03:57 <ais523> i.e. you can't maintain a "these two things should be the same" situation
06:04:57 <oerjan> :/
06:07:01 <oerjan> "Schwichtenberg showed in 1976 that in \lambda^\to exactly the extended polynomials are representable as functions over Church numerals; these are roughly the polynomials closed up under a conditional operator."
06:07:35 <oerjan> https://en.wikipedia.org/wiki/Simply_typed_lambda_calculus#Important_results
06:08:33 <oerjan> but that's a bit different
06:09:22 <oerjan> since they all have type (o -> o) -> (o -> o)
06:09:56 <oerjan> while exponentials are possible with nested types
06:10:17 <ais523> yes, it's the exponentials that are causing problems here
06:10:23 <oerjan> oh hm
06:10:27 <ais523> because it means that type inference algos have to be able to blow up hyperexponentially
06:10:33 <ais523> which the obvious algorithms don't, really
06:11:38 <oerjan> can you construct each level of a^a^... ackermann? maybe that's enough to show you can do every PR function by then using the result in a big loop
06:12:57 <oerjan> i.e. a fixed number of knuth arrows
06:13:06 <Jafet> From http://deepblue.lib.umich.edu/bitstream/handle/2027.42/23535/0000494.pdf: STLC is decidable in E^4 time but not in E^3
06:13:27 <Jafet> Note that PR = \Union_k E^k
06:13:49 <ais523> the ackermann function is something like a supremum of primiive recursive functions, right?
06:13:59 <oerjan> ais523: yeah that's what i was thinking
06:14:37 <oerjan> hm Jafet's observation should mean it breaks down at 3 or 4 arrows
06:16:00 <oerjan> perhaps to do exponentiation, you _must_ have different types for the arguments, which breaks down if you try to iterate them.
06:16:29 <ais523> so I guess the next challenge is to construct an STLC program that takes a Church numeral as argument, and iterates a given function four-arrow-many times of that Church numeral
06:16:51 <oerjan> hm maybe just two arrow
06:17:00 <oerjan> *arrow
06:17:02 <oerjan> *arrows
06:17:34 <ais523> two arrows is tetration, right?
06:17:34 <oerjan> if that E-notation starts at increment or the like, E^3 might be exponentiation
06:17:38 <oerjan> yeah
06:17:41 <Jafet> If you can read that paper, you might be able to use its gadgets for E^3
06:17:50 <oerjan> so my current guess is you cannot do tetration
06:18:11 * oerjan leaves ais523 to read the paper
06:18:14 <ais523> actually I can't think of an obvious way to tetrate with Church numerals and no loop
06:19:24 <oerjan> *leaves it to
06:21:16 <ais523> or, well, hmm
06:22:51 <oerjan> "elementary" means essentially using arithmetic and exponentiation, no?
06:23:18 -!- shikhin has joined.
06:23:19 <izabera> http://forums.xkcd.com/viewtopic.php?f=12&t=54479 is this NP?
06:23:33 <izabera> (the last comment)
06:24:03 <ais523> oerjan: I don't know
06:24:04 <oerjan> actually elementary is not a very discrete concept, but it's probably that range of growth
06:24:13 <ais523> the normal meaning is "not using calculus" but I don't think that's the intended meaning here
06:24:42 <oerjan> ais523: well exponentials are the fastest growest of the building blocks allowed
06:24:47 <oerjan> *growing
06:25:10 <oerjan> or well
06:25:17 <Jafet> https://en.wikipedia.org/wiki/ELEMENTARY
06:25:18 <ais523> izabera: it depends a lot on your definition; you can verify in O(n) time where n is the /answer/ (i.e. how long it takes)
06:25:19 <oerjan> there are some asymptotes, but avoiding them
06:25:32 <ais523> that said, loops are clearly useless in that langauge
06:25:34 <ais523> *language
06:26:03 <ais523> so it's O(n) in the length of the question too
06:26:04 <izabera> ais523: you have to verify that it's the quickest way
06:26:28 <ais523> izabera: actually I'm thinking of something more like reducing this to an existing NP-complete problem
06:26:36 <ais523> something like bin-packing, perhaps
06:26:50 <ais523> but not exactly that
06:27:02 <oerjan> Jafet: ah that's about as i thought
06:27:57 -!- J_A_Work has joined.
06:29:21 <oerjan> izabera: i think this is P^NP stuff, you need to solve an NP problem to find the answer, and the corresponding co-NP problem to show there's no faster one
06:29:22 <ais523> how's beta-conversion defined here? you can beta-reduce both terms in arbitrary ways to try to make them the same?
06:30:03 <oerjan> izabera: which is often colloquially lumped in with NP-complete, e.g. the traveling salesman problem
06:30:14 <oerjan> but technically is not the same
06:31:18 <oerjan> s/to find the answer/to check the answer/
06:31:26 <izabera> gotcha
06:31:46 <Jafet> It seems to encode a decision procedure in STLC, so beta-conversion just computes the result (which will be true or false)
06:32:04 <oerjan> or well, we still haven't proved the "-complete" part.
06:33:18 <Jafet> (That's for the E^3 lower bound, not for the E^4 upper bound)
06:34:18 -!- Wallacoloo has joined.
06:40:13 -!- codergeek42 has quit (Quit: Ex-Chat).
06:41:17 <oerjan> ais523: hm wait, that ([0 -> 0/0]a_n)a_1 example on page 75 makes me wonder
06:41:29 <oerjan> that's clearly a building block for tetration
06:41:56 <oerjan> and the types do _not_ increase as n does.
06:42:55 <ais523> ooh
06:43:26 <oerjan> or wait
06:43:31 <oerjan> i'm misreading
06:43:44 <oerjan> 0 -> 0 isn't a type there
06:43:48 <mroman_> fnord
06:43:53 <oerjan> or is it
06:43:56 <mroman_> any book recommendation about game theory?
06:44:01 <oerjan> stupid alien notation
06:44:40 <Jafet> oerjan: each of those a_n has a different type, so the tetration is bounded
06:44:47 <oerjan> ais523: oh i'm misreading, that notation means precisely that the types _are_ growing
06:44:57 <ais523> ah right, that makes more sense at least
06:45:00 <ais523> I was thinking, if you were right
06:45:05 <Jafet> I think [0->0/0] means replacing 0 by 0->0
06:45:14 <ais523> then you'd probably be able to surpass the E^4 bound
06:45:15 <oerjan> Jafet: yeah just realized that
06:48:16 <Jafet> Oddly enough, this causes the types to have exponential size
06:48:33 <Jafet> (which is the maximum for a Hindley-Milner type system)
06:48:49 -!- mauris_ has joined.
06:49:33 <oerjan> ais523: "By analyzing the normal form algorithm [...] it is easy to see that the problem can be solved in E^4 time" this might mean that it's easier to prove that you cannot go _higher_ than tetration.
06:50:08 <ais523> well, given how cited that paper is
06:50:15 <ais523> someone has probably determined the exact boundary by now
06:50:30 <ais523> (when a paper has over 100 citations, either it's very influential, or everyone has been copying citation without reading it; possibly both)
06:50:48 <oerjan> heh
06:53:14 -!- Froox has joined.
06:53:14 -!- Frooxius has quit (Read error: Connection reset by peer).
06:57:09 <oerjan> <Jafet> `unicode zero width space <-- i don't think FreeFull's problem was with `culprits, but with direct use of hg log
06:57:17 -!- lemurian has quit (Remote host closed the connection).
06:57:57 <oerjan> which we've started to do whenever we want to see _what_ was changed rather than just by who
06:58:44 <Jafet> `` culprits bin/culprits | awk '{print $1}'
06:58:46 <HackEgo> Jafet
06:59:06 <Jafet> Apparently, my client discards the control character, so I didn't know it existed
06:59:35 <oerjan> well surely you noted it in the culprits code before you changed it
06:59:47 -!- Sprocklem has joined.
07:00:07 <Jafet> What's this, reading code before patching it?
07:00:10 <oerjan> `cat bin/culprits
07:00:11 <HackEgo> hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs
07:00:52 <oerjan> `culprits culprits
07:00:54 <HackEgo> No output.
07:00:56 <oerjan> `culprits bin/culprits
07:00:58 <HackEgo> Jafet Jafet tswett tswett shachaf shachaf shachaf FireFly FireFly FireFly FireFly FireFly FireFly shachaf
07:03:24 <ais523> anyone who happens to have php5 installed via a Linuxy package manager (which shows what it's updating, if you ask): /wow/ a lot of security bugs are being fixed in this update
07:03:58 <shachaf> `` hg log wisdom/culprits | grep summary:
07:03:59 <ais523> 14, I just counted
07:04:00 <HackEgo> No output.
07:04:06 <shachaf> Er.
07:04:09 <shachaf> `` hg log bin/culprits | grep summary:
07:04:11 <HackEgo> summary: <Jafet> ` echo -E \'hg log --removed "$1" | grep summary: | awk \'\\\'\'{print substr($2,2,length($2)-2)}\'\\\'\' | sed "s/.$/\\x0F&/" | xargs\' > bin/culprits && chmod +x bin/culprits \ summary: <Jafet> ` sed -i -e \'s,$, | sed "s/\\\\([][{}\\\\^a-zA-Z0-9_|\\\\\\\\\\\\`-]\\\\)\\\\([][{}\\\\^a-zA-Z0-9_|\\\\\\\\\\\\`-]\\\\+\\\\)/\\\
07:04:33 <shachaf> this is too confusing tdnh
07:04:40 <shachaf> What did Jafet change?
07:04:47 <Jafet> ais523: 14 drops in the ocean
07:04:51 <b_jonas> I don't do php, and I don't even have it installed.
07:05:10 <ais523> I like having a bunch of interps around
07:05:26 <ais523> on here, PHP doesn't run unless I'm running it manually, which means the attack surface is pretty small
07:05:45 <b_jonas> ais523: sure, me to, but I also think that you definitely can't do all four of perl, python, ruby, and php, so I choose to just not do php
07:05:58 <b_jonas> mind you, some golfers do code all four
07:06:04 <b_jonas> but I don't think that's a good idea
07:06:25 <oerjan> shachaf: i think he changed it back hth
07:06:37 <b_jonas> installing all four is no problem of course
07:06:42 <ais523> also that's a lot of backslashes
07:06:50 <b_jonas> only actually doing stuff with them
07:07:33 <Jafet> > fix show
07:07:34 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\...
07:08:32 <ais523> Haskell can be just as magical-looking as Prolog sometimes
07:08:42 <ais523> btw, is there a Haskell string that evaluates to itself?
07:08:50 <ais523> perhaps using some other escape syntax
07:08:56 <ais523> I'm guessing not, most languages don't have one
07:09:04 <oerjan> ais523: i think some of them are hg itself escaping
07:09:04 <mroman_> clock golfs in almost any language on the planet .
07:09:09 <b_jonas> ais523: sure, that one above
07:09:15 <ais523> barring Perl/PHP-style barewords which is cheating
07:09:19 <ais523> b_jonas: finitely long, I mean
07:09:21 <mroman_> and he's usually the best in all of them.
07:09:21 <b_jonas> oh
07:09:27 <b_jonas> ais523: and you mean string literal?
07:09:31 <ais523> right
07:09:40 <b_jonas> because just an expression would be easy
07:10:35 <oerjan> i don't think haskell string literals have anything that can make a string longer than the code
07:10:35 <Jafet> Every time you interpret a finite string literal in haskell, its number of backslashes decreases
07:10:40 <oerjan> erm
07:11:00 <oerjan> *
07:11:34 <zzo38> At least it does not increase
07:12:02 <oerjan> zzo38: and if you include the "s, it must decrease
07:12:41 <zzo38> Yes, the number of character does always decrease
07:12:41 <b_jonas> as for escaping backslashes, I prefer "\"\x5c\"\x5cx5c\x5c\"\x5cx5cx5c\x5cx5c\x5c\"\x5cx5cx5cx5c\x5cx5cx5c\x5cx5c\x5c\"\x5cx5cx5cx5cx5c\x5cx5cx5cx5c\x5cx5cx5c\x5cx5c\x5c\"\x5cx5cx5cx5cx5cx5c...
07:12:47 <zzo38> The number of backslashes might not
07:14:06 -!- ais523 has quit (Ping timeout: 256 seconds).
07:14:30 <oerjan> > id<>show$"id<>show$"
07:14:31 <lambdabot> "id<>show$\"id<>show$\""
07:14:35 -!- ais523 has joined.
07:15:05 <oerjan> > id<>show$"id<>show$" -- for ais523
07:15:06 <lambdabot> "id<>show$\"id<>show$\""
07:15:08 -!- ais523 has quit (Read error: Connection reset by peer).
07:15:44 <oerjan> ;_;
07:16:00 <Jafet> > text$ap(++)show"text$ap(++)show"
07:16:01 <lambdabot> text$ap(++)show"text$ap(++)show"
07:16:20 <oerjan> yeah that's the old one
07:16:36 <Jafet> Oh, are we /golfing/ quines now
07:16:42 <oerjan> why not
07:17:17 <oerjan> > var$id<>show$"var$id<>show"
07:17:18 <lambdabot> var$id<>show"var$id<>show"
07:17:26 <b_jonas> Jafet: sure, people do that. I know a number of short non-empty ones in perl.
07:18:10 <b_jonas> we think the shortest non-empty non-cheating one is "print<< x2,$/\nprint<< x2,$/\n\n"
07:18:22 <oerjan> var is better for two reasons (1) it's shorter (2) it works with infinite strings
07:18:37 <b_jonas> but that's among printing ones, not those that return a string or something
07:19:05 <Jafet> :t text
07:19:06 <lambdabot> String -> Doc
07:19:18 -!- ais523 has joined.
07:19:42 <oerjan> text is from a pretty-printing library, and insists on knowing the length of the string for formatting
07:20:20 <Jafet> For some reason, I thought it had something to do with Text
07:20:24 <Jafet> > T.pack ""
07:20:25 <lambdabot> Not in scope: ‘T.pack’
07:20:25 <lambdabot> Perhaps you meant ‘BS.pack’ (imported from Data.ByteString)
07:20:30 <oerjan> nope
07:21:13 <oerjan> > var$cycle"var$\""
07:21:15 <lambdabot> var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"var$"v...
07:21:19 <oerjan> hm
07:21:23 <oerjan> > var$cycle"var\""
07:21:24 <lambdabot> var"var"var"var"var"var"var"var"var"var"var"var"var"var"var"var"var"var"var"...
07:22:04 <b_jonas> > fix var
07:22:05 <lambdabot> Couldn't match type ‘Expr’ with ‘[Char]’
07:22:05 <lambdabot> Expected type: Expr -> Expr
07:22:05 <lambdabot> Actual type: String -> Expr
07:22:21 <oerjan> hm i guess that's not proper syntax
07:22:55 <oerjan> > fix$var.("var++").show.show
07:22:57 <lambdabot> Couldn't match expected type ‘String -> String’
07:22:57 <lambdabot> with actual type ‘[Char]’
07:22:57 <lambdabot> In the first argument of ‘(.)’, namely ‘("var++")’
07:22:59 <oerjan> oops
07:23:04 -!- shikhin has quit (Quit: leaving).
07:23:18 <Jafet> > fix $ var.show
07:23:22 <lambdabot> mueval-core: Time limit exceeded
07:23:38 <oerjan> > fix$var.("var++").show
07:23:39 <lambdabot> Couldn't match expected type ‘String -> String’
07:23:39 <lambdabot> with actual type ‘[Char]’
07:23:39 <lambdabot> In the first argument of ‘(.)’, namely ‘("var++")’
07:23:48 <b_jonas> now we just need an interpreter that can interpret infinite streams (I think that's impossible)
07:23:49 <oerjan> ...duh
07:23:54 <b_jonas> (for haskell at least)\
07:23:57 <oerjan> > fix$var.("var"++).show.show
07:23:58 <lambdabot> var"var\"var\\\"var\\\\\\\"var\\\\\\\\\\\\\\\"var\\\\\\\\\\\\\\\\\\\\\\\\\\\...
07:24:06 <b_jonas> (it's probably possible for BF)
07:24:07 * Taneb good morning
07:24:19 <Jafet> It's not, because of loops
07:24:29 <oerjan> tanellob
07:25:04 <b_jonas> wait, do you just want a quine using var?
07:25:14 <b_jonas> I think I wrote one at some point, but I'm not sure I saved it
07:25:15 <b_jonas> a finite one
07:25:47 <oerjan> b_jonas: i already made one up there
07:25:58 <b_jonas> ok
07:25:59 <oerjan> this last thing was just for amusement
07:26:41 <b_jonas> I don't think I saved it, but I could write one from scratch probably (it would be a bit long)
07:27:21 <b_jonas> I experimented it when I wanted to put lambdabot and some other bot in a bot loop, but that turned out to be impossible for that combination
07:28:26 <ais523> huh, spambots pretending to be the IMF, and they don't mention Greece
07:28:29 <ais523> missing a trick there
07:28:41 <fowl> https://www.youtube.com/watch?v=8y1GbBhu9hA
07:32:06 -!- hppavilion1 has quit (Ping timeout: 246 seconds).
07:57:46 -!- Wallacoloo has quit (Quit: Leaving.).
08:01:45 <oerjan> `unicode 🌍
08:01:46 <HackEgo> U+1F30D EARTH GLOBE EUROPE-AFRICA \ UTF-8: f0 9f 8c 8d UTF-16BE: d83cdf0d Decimal: &#127757; \ 🌍 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
08:07:33 <ais523> how many differently rotated projections of the Earth does Unicode have?
08:07:42 <ais523> (I'm amused at the qualifier)
08:07:49 <mroman_> Is there one where australia is the center?
08:09:17 <oerjan> `` multicode 🌎🌏🌍 #from logs
08:09:18 <HackEgo> U+1F30E EARTH GLOBE AMERICAS \ UTF-8: f0 9f 8c 8e UTF-16BE: d83cdf0e Decimal: &#127758; \ 🌎 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+1F30F EARTH GLOBE ASIA-AUSTRALIA \ UTF-8: f0 9f 8c 8f UTF-16BE: d83cdf0f Decimal: &#127759; \ 🌏 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+1F30D EARTH GLOBE EU
08:09:54 <oerjan> i was just looking at the logs, and checked the last one because it got cut off
08:10:49 <oerjan> `unicode EARTH GLOBE
08:10:50 <HackEgo> U+1F30D EARTH GLOBE EUROPE-AFRICA \ UTF-8: f0 9f 8c 8d UTF-16BE: d83cdf0d Decimal: &#127757; \ 🌍 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+1F30E EARTH GLOBE AMERICAS \ UTF-8: f0 9f 8c 8e UTF-16BE: d83cdf0e Decimal: &#127758; \ 🌎 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+1F30F EARTH GLOBE ASI
08:11:45 <oerjan> `` unicode EARTH GLOBE | tail -n +9
08:11:46 <HackEgo> ​🌎 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals) \ \ U+1F30F EARTH GLOBE ASIA-AUSTRALIA \ UTF-8: f0 9f 8c 8f UTF-16BE: d83cdf0f Decimal: &#127759; \ 🌏 \ Category: So (Symbol, Other) \ Bidi: ON (Other Neutrals)
08:11:54 <oerjan> apparently that's all
08:12:09 <oerjan> they should add ARCTIC and ANTARCTICA
08:12:52 <oerjan> `unicode ANTARCTICA
08:12:53 <HackEgo> No output.
08:12:56 <b_jonas> oerjan: um, you know there's more possibilities than fit in unicode if you want to add all possible maps
08:13:24 <oerjan> b_jonas: these are globe maps
08:14:03 <oerjan> maybe they should also add ATLANTIC and PACIFIC
08:14:30 <b_jonas> oerjan: even just globe maps
08:14:45 <Jafet> This is so silly of the consortium. It would be so much simpler if we had combining characters for moving 1° by latitude and longitude
08:14:48 <oerjan> EARTH GLOBE DYNAMAX
08:15:17 <oerjan> hm must have the name wrong
08:15:25 <oerjan> Jafet: :D
08:15:41 <b_jonas> Jafet: yeah, but make sure to choose a set of two or more combining characters that together efficiently generate a dense set in all possible maps
08:16:04 <oerjan> that's easy, just have 1 RADIAN and 1 DEGREE
08:16:05 <Jafet> @google dymaxion projection
08:16:06 <lambdabot> https://en.wikipedia.org/wiki/Dymaxion_map
08:16:11 <oerjan> ah that was it
08:21:22 <oerjan> oh wait they need to be around different axes
08:21:53 <oerjan> hm and degrees divide a full rotation, maybe not so good
08:22:13 <oerjan> perhaps radian will work both ways, with the right axis choices
08:23:29 <oerjan> oh hm i think the character should represent something like golden ratio of the full rotation
08:23:57 <oerjan> that way you can efficiently do large rotations, but still divide as finely as you want
08:28:34 -!- Patashu has joined.
08:34:55 -!- Patashu has quit (Ping timeout: 246 seconds).
08:36:02 -!- Patashu has joined.
08:53:15 -!- AnotherTest has joined.
09:26:19 -!- J_A_Work has quit (Quit: J_A_Work).
09:39:51 <izabera> how do i translate this to c if my cells wrap around at 8 bit? [+>++<]
09:40:37 <izabera> p[1] += p[0] * 2; p[0] = 0 <- like this?
09:40:53 <izabera> so what's the difference between that and [->++<] ?
09:41:11 -!- J_A_Work has joined.
09:41:24 <oerjan> a minus sign, i presume
09:41:38 <oerjan> (in the C too)
09:41:55 <izabera> oh it becomes p[1] -= ...
09:41:57 <oerjan> also, you need to use unsigned 8bit type in C for that to work
09:42:04 <izabera> yes ok
09:42:07 <izabera> it's unsigned
09:42:21 <oerjan> otherwise it's undefined behavior when you wrap
09:43:03 <oerjan> actually i think it's your first which is wrong and should have the -
09:43:26 <izabera> ok the first one is -= and the latter is +=
09:43:32 <oerjan> yeah
09:43:33 <izabera> thanks
09:47:14 -!- J_A_Work has quit (Quit: J_A_Work).
10:13:13 <|f`-`|f> wooo maps, Jafet
10:14:47 <|f`-`|f> also oerjan there are "real spherical angles"
10:14:51 <|f`-`|f> sradians?
10:17:50 <oerjan> irrelevant hth
10:17:51 <izabera> oerjan: [->++<] is p[1] += p[0] * 2; p[0] = 0 [->--<] is p[1] -= p[0] * 2; p[0] = 0
10:18:06 <oerjan> (that was to |f`-`|f)
10:18:14 <izabera> k :P
10:18:20 <izabera> so what are [+>++<] and [+>--<] ?
10:18:34 <myname> endless loops
10:18:39 <oerjan> the same, in opposite order
10:18:40 <izabera> no
10:18:47 <izabera> wait what
10:19:02 <izabera> myname: my cells are unsigned chars
10:19:08 <myname> ah
10:19:28 <oerjan> [+>++<] and [->--<] give the same result
10:20:11 <izabera> thanks
10:20:13 <oerjan> because you are essentially adding a multiple of 256 somewhere, which doesn't matter
10:20:45 <|f`-`|f> hth? oerjan
10:20:54 <|f`-`|f> What/s so pertinent about maps
10:21:15 <myname> `hth
10:21:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: hth: not found
10:21:18 <oerjan> |f`-`|f: we were just discussing how many global map characters unicode should have
10:21:25 <myname> ?hth
10:21:25 <lambdabot> you are welcome
10:21:31 <myname> damn bots
10:21:38 <oerjan> so it was suggest you'd have just one, and combining characters to rotate it
10:21:42 <oerjan> *suggested
10:21:50 <|f`-`|f> so, metachatacters
10:21:55 <|f`-`|f> well
10:22:00 <|f`-`|f> domain specific ones
10:22:31 <oerjan> good point, they should clearly work on other chars too
10:22:40 <|f`-`|f> curious how you can efficiently pack the metacharacters and so on
10:22:54 <oerjan> i don't think that was considered.
10:23:06 <|f`-`|f> considering how many duplications I've seen
10:23:08 <|f`-`|f> Yeah
10:23:56 <oerjan> ?hth
10:23:57 <lambdabot> you are welcome
10:24:01 <oerjan> ?hthu
10:24:01 <lambdabot> you are welcome
10:24:04 <|f`-`|f> For multilingual things, it'd probably be better to have partial tables, such that all ligments are here, but here, have a table that compiles them together for a specific language
10:24:06 <oerjan> ?hmm
10:24:07 <lambdabot> Unknown command, try @list
10:24:13 <oerjan> ?huh
10:24:13 <lambdabot> Maybe you meant: run bug
10:24:26 <oerjan> ?ht
10:24:26 <lambdabot> Maybe you meant: wn what v thx rc pl let id ghc do bf @ ? .
10:24:34 <oerjan> ?thx
10:24:34 <lambdabot> you are welcome
10:24:37 <|f`-`|f> the actual place being irrelevant
10:24:42 <|f`-`|f> ?wtf
10:24:42 <lambdabot> Maybe you meant: wn bf
10:24:47 <|f`-`|f> ?wn bf
10:24:50 <lambdabot> No match for "bf".
10:24:57 <|f`-`|f> ?wn
10:24:57 <lambdabot> wn .......... WordNet (r) 1.7
10:25:02 <|f`-`|f> ?bf
10:25:02 <lambdabot> Done.
10:25:10 <|f`-`|f> eh?
10:25:23 <myname> lol
10:25:32 <oerjan> ?bf ++++++++[->++++++++<]>.
10:25:32 <lambdabot> @
10:25:38 <myname> ?help wn
10:25:38 <lambdabot> wn .......... WordNet (r) 1.7
10:25:45 <|f`-`|f> (as far as certainl languages, you just create a simple subdomain interpreter that creates a nicely organised typeset)
10:26:18 <oerjan> |f`-`|f: note that one of the purposes of unicode is to be able to combine languages in one document
10:26:40 <|f`-`|f> Hmmm
10:26:58 <|f`-`|f> Why not have the dense data included?
10:27:46 <oerjan> i can just imagine IRC messages trying to include a whole language database whenever you try to quote something foreign...
10:27:54 <|f`-`|f> Unicode Base would be no rules, Unicode <Lang> would be subdomain
10:28:07 <oerjan> i'm sure that should fit nicely within 510 bytes
10:28:22 <|f`-`|f> Unicode Lang would formt in Unicode Base
10:28:35 <|f`-`|f> So reading would be simple
10:28:40 <|f`-`|f> Writing would be a bit more complicated
10:29:19 <|f`-`|f> would that fit better?
10:30:15 <|f`-`|f> just install the writeLang interpretter so you don't need to write raw unicode
10:31:25 <oerjan> i don't precisely care about this
10:31:39 <|f`-`|f> ech
10:31:46 -!- zadock has joined.
10:31:48 <|f`-`|f> it'd get around the 510 byte issue
10:32:02 <Jafet> Aren't these called charsets?
10:32:25 <|f`-`|f> hum
10:32:58 <|f`-`|f> Monolithic charset, but you don't need to screw around chaining the metacharacters to build your language's letters
10:33:21 -!- boily has joined.
10:33:48 <|f`-`|f> no need to install charsets to copy foreign characters
10:33:55 -!- zadock has quit (Remote host closed the connection).
10:34:54 <ais523> are you thinking of something like what LaTeX does?
10:35:49 <|f`-`|f> yeah
10:35:55 <|f`-`|f> yeah, actually
10:38:39 <ais523> that has caused so many hard-to-figure-out errors
10:38:56 <ais523> because it turns out that copy-and-pasting in LyX had placed language change codes in the middle of raw LaTeX that I was using for something else
10:39:21 <ais523> after a while, my immediate reaction upon seeing weird errors was to reformat the entire relevant text as "Language: Reset"
10:41:16 -!- J_A_Work has joined.
10:43:05 <|f`-`|f> Hmmm
10:46:00 <|f`-`|f> Could help with better error handling, there is probably a lot of breathing room for what amounts to a system that does keybind macros
10:46:51 <|f`-`|f> then there's the multi-byte system that japan uses which is context-based
10:53:40 -!- oerjan has quit (Quit: leaving).
11:16:23 -!- boily has quit (Quit: CHANNELLED CHICKEN).
11:17:09 -!- J_A_Work has quit (Quit: J_A_Work).
11:23:54 -!- ais523 has quit (Quit: lunchtime).
11:47:35 <mroman_> Ads causing seizures...
11:47:40 <mroman_> interesting.
11:55:12 -!- ais523 has joined.
12:10:40 -!- tromp__ has quit (Read error: Connection reset by peer).
12:11:02 <HackEgo> [wiki] [[Hello world program in esoteric languages]] http://esolangs.org/w/index.php?diff=43472&oldid=42644 * 87.78.59.131 * (+90) added ArnoldC
12:13:34 -!- tromp_ has joined.
12:36:37 -!- copumpkin has joined.
12:46:47 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
12:55:59 -!- Thisbe has quit (Ping timeout: 248 seconds).
12:56:43 -!- Thisbe has joined.
13:10:08 -!- ais523 has quit.
13:10:21 -!- ais523 has joined.
13:11:12 -!- Patashu has quit (Ping timeout: 256 seconds).
13:15:57 -!- SopaXorzTaker has joined.
13:29:32 -!- copumpkin has joined.
13:42:33 -!- `^_^v has joined.
13:48:59 -!- SopaXorzTaker has quit (Read error: Connection reset by peer).
13:57:00 <mroman_> I'm gonna make an esolang called fnord.
13:57:03 <mroman_> .
13:59:44 <Jafet> https://esolangs.org/wiki/Dot?
14:00:41 <mroman_> no
14:00:47 <mroman_> that was to emphasize my irony
14:05:19 -!- ais523 has quit (Quit: going home).
14:24:20 -!- heroux has quit (Ping timeout: 255 seconds).
14:25:55 -!- pikhq has joined.
14:30:25 -!- pikhq has quit (Ping timeout: 256 seconds).
14:33:25 -!- mauris__ has joined.
14:36:52 -!- mauris_ has quit (Ping timeout: 240 seconds).
15:18:57 -!- rdococ has joined.
15:29:04 -!- FreeFull has quit (Quit: BBS).
15:33:55 -!- TieSoul has quit (*.net *.split).
15:33:55 -!- FireFly has quit (*.net *.split).
15:33:55 -!- fractal has quit (*.net *.split).
15:33:55 -!- zzo38 has quit (*.net *.split).
15:33:55 -!- fungot has quit (*.net *.split).
15:33:56 -!- pdxleif has quit (*.net *.split).
15:33:56 -!- SirCmpwn has quit (*.net *.split).
15:34:03 -!- tswett has quit (*.net *.split).
15:34:04 -!- SirCmpwn has joined.
15:34:11 -!- TieSoul has joined.
15:34:15 -!- pdxleif has joined.
15:35:08 -!- Warrigal has joined.
15:38:08 -!- fractal has joined.
15:40:49 -!- FireFly has joined.
15:55:51 -!- FreeFull has joined.
16:07:42 -!- zzo38 has joined.
16:13:45 -!- Warrigal has changed nick to tswett.
16:19:38 -!- contrapumpkin has joined.
16:21:11 <izabera> my interpreter completed mandelbrot.b for the first time http://arin.ga/fIQ2zG/raw \o/
16:21:37 <Slereah__> Woo
16:23:22 -!- copumpkin has quit (Ping timeout: 240 seconds).
16:24:19 -!- contrapumpkin has quit (Ping timeout: 264 seconds).
16:28:23 -!- GeekDude has joined.
16:36:28 -!- pikhq has joined.
16:47:51 <rdococ> my favourite programming language is Powerpoint
16:49:59 <Slereah__> Don't joke about that man
16:50:11 <Slereah__> One of my early job was programming on Office
16:50:15 <Slereah__> With VBA D:
16:50:18 <Slereah__> the horror
17:00:03 <rdococ> no...#
17:00:07 <rdococ> I meant without VBA
17:00:56 <rdococ> Powerpoint, without VBA, is one of the best programming languages ever - welcome to finite state automaton, cleansed and polished with the power of eye cand
17:00:58 <rdococ> candy*
17:04:01 <rdococ> I'm bored, I wanna make a programming language, any ideas?
17:04:23 -!- _256Q has joined.
17:04:29 <Slereah__> Duck language
17:04:31 <Slereah__> Quack :V
17:04:39 <_256Q> hia <3
17:04:50 <rdococ> ...naah
17:04:54 <zzo38> There is a lot of idea in esolang wiki, I made the list of ideas at first but now a lot of people do, therefore there is more stuff now than it was at first.
17:04:55 <_256Q> I haer this is the place to talk about eso lang?
17:04:59 <zzo38> Yes
17:05:13 <zzo38> What kind of question about esolang you would have?
17:05:17 <rdococ> zzo38: ik... I've taken a look before... I guess I'll look again
17:05:19 <_256Q> rad
17:05:24 * _256Q settles down to lurk
17:05:46 <_256Q> zzo38 --> nah its just something I find really intresting
17:05:56 <rdococ> hmm...
17:07:06 <rdococ> how about we create a program that could replace every other program, and then the compiler would compile everything to that program?
17:07:09 <zzo38> _256Q: Look at the wiki; also, this IRC is logged and we actually discuss all sort of various stuff regardless, but if you have question/comment about esoteric programming you can please post them on this IRC we can answer it (since that is the main purpose ofsuch IRC)
17:07:18 <rdococ> like, Soviet Script taken to the extreme where there's only one true program
17:07:30 <rdococ> but... that is boring.
17:07:53 <rdococ> "A language in which every valid piece of music (or maybe just for only piano, only violin, only voice, etc) compiles and runs without error (and does something). It would be more interesting if simpler (beginner) pieces were simpler programs, and more complex pieces (such as Rachmaninov) were more complex programs."
17:07:55 <rdococ> hmm
17:08:03 <rdococ> wait... am I spamming the chat? -.-
17:08:25 <rdococ> sorry...
17:08:56 <zzo38> No I think it is OK for what you can write
17:10:35 <rdococ> ok...
17:10:54 <rdococ> I don't like any of these ideas -.-
17:12:31 <zzo38> Then make a better one
17:13:19 <rdococ> why do you think I'm looking for ideas?
17:21:34 -!- Wright has joined.
17:21:34 -!- Wright_ has quit (Read error: Connection reset by peer).
17:27:01 -!- paul2520 has quit (Quit: WeeChat 1.2).
17:27:37 -!- paul2520 has joined.
17:27:37 -!- paul2520 has quit (Changing host).
17:27:37 -!- paul2520 has joined.
17:47:11 -!- paul2520 has quit (Quit: WeeChat 1.2).
17:47:57 <zzo38> I read about putting a backdoor into "login" program by modifying the C compiler so that when it compiles itself it will compile the one to compile the login program with backdoors. There have been a few ideas of countering such attacks, but I have had a different idea even the first time I read it, which is to: Write a BASIC interpreter in C, and then write a C compiler (or even interpreter) in BASIC, and run the original C compiler using that (or
17:55:18 -!- paul2520 has joined.
17:55:18 -!- paul2520 has quit (Changing host).
17:55:18 -!- paul2520 has joined.
18:14:19 <TieSoul> or?
18:15:05 -!- fowl has quit (Quit: zz).
18:15:33 <TieSoul> also, writing a C compiler in BASIC sounds... tedious, to say the least.
18:16:01 <zzo38> Yes, but, then you will have a C compiler in BASIC.
18:16:17 <TieSoul> true.
18:16:40 -!- atslash has joined.
18:18:03 <_256Q> could you not use a meta language to genirate a C compiler in basic?
18:18:18 <_256Q> or at least speed up the creation
18:18:27 <zzo38> Maybe
18:23:39 -!- mihow has joined.
18:26:26 -!- fowl has joined.
18:26:29 -!- fowl has quit (Excess Flood).
18:30:31 -!- fowl has joined.
18:30:47 -!- fowl has quit (Changing host).
18:30:47 -!- fowl has joined.
18:30:47 -!- fowl has quit (Changing host).
18:30:47 -!- fowl has joined.
18:30:57 -!- x10A94 has joined.
18:47:58 -!- Thisbe has quit (Quit: Left).
18:48:15 -!- Thisbe has joined.
18:51:23 -!- Thisbe has quit (Client Quit).
18:51:43 -!- Thisbe has joined.
19:18:57 -!- lleu has quit (Ping timeout: 256 seconds).
19:19:28 <HackEgo> [wiki] [[Hanoi Love]] http://esolangs.org/w/index.php?diff=43473&oldid=43470 * Rdebath * (+277)
19:27:05 -!- rdococ has quit (Quit: gtg lel).
19:37:15 -!- FreeFull has quit (Quit: BBS).
19:38:01 -!- aretecode has quit (Ping timeout: 265 seconds).
19:43:32 -!- lleu has joined.
19:43:33 -!- lleu has quit (Changing host).
19:43:33 -!- lleu has joined.
20:03:34 -!- FreeFull has joined.
20:19:42 -!- qlkzy has quit (Ping timeout: 248 seconds).
20:21:32 -!- qlkzy has joined.
20:33:38 -!- aretecode has joined.
20:43:42 -!- aretecode has quit (Ping timeout: 248 seconds).
20:46:09 -!- bb010g has joined.
20:46:24 -!- aretecode has joined.
20:53:37 -!- FireFly has quit (Changing host).
20:53:37 -!- FireFly has joined.
20:57:42 -!- mihow has quit (Quit: mihow).
20:58:43 -!- mihow has joined.
20:59:36 -!- `^_^v has quit (Quit: This computer has gone to sleep).
21:00:07 -!- `^_^v has joined.
21:01:49 -!- `^_^v has quit (Client Quit).
21:03:31 -!- Patashu has joined.
21:18:54 -!- Thisbe has quit (Ping timeout: 248 seconds).
21:22:18 -!- x10A94 has quit (Read error: Connection reset by peer).
21:23:21 -!- AnotherTest has quit (Ping timeout: 256 seconds).
21:28:47 -!- Thisbe has joined.
21:28:47 -!- Thisbe has quit (Max SendQ exceeded).
21:42:19 -!- Patashu has quit (Ping timeout: 256 seconds).
21:52:15 -!- pikhq has quit (Ping timeout: 256 seconds).
21:56:29 -!- Thisbe has joined.
21:59:33 -!- oerjan has joined.
22:17:52 -!- pikhq has joined.
22:23:34 -!- mauris__ has quit (Ping timeout: 255 seconds).
22:25:52 -!- |f`-`|f has quit (Ping timeout: 240 seconds).
22:34:51 -!- |f`-`|f has joined.
22:41:04 -!- boily has joined.
22:41:37 <oerjan> ciaoily
22:42:21 <boily> au revoerjan!
22:47:50 -!- llue has joined.
22:47:50 -!- llue has quit (Changing host).
22:47:50 -!- llue has joined.
22:47:50 -!- lleu has quit (Ping timeout: 250 seconds).
22:47:54 -!- fowl has quit (Quit: zz).
22:57:01 -!- boily has quit (Quit: DECOHERENT CHICKEN).
23:03:15 -!- fowl has joined.
23:03:17 -!- fowl has quit (Excess Flood).
23:08:19 <oerjan> `relcome _256Q
23:08:20 <HackEgo> _256Q: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
23:08:40 <_256Q> hia <3
23:08:53 <_256Q> that is crazy colorfull, I love it
23:09:12 -!- fowl has joined.
23:25:46 -!- lleu has joined.
23:27:57 -!- lleu has quit (Read error: Connection reset by peer).
23:28:10 -!- lleu has joined.
23:28:10 -!- lleu has quit (Changing host).
23:28:10 -!- lleu has joined.
23:28:44 -!- llue has quit (Ping timeout: 256 seconds).
23:29:02 -!- lleu has quit (Read error: Connection reset by peer).
23:29:17 -!- lleu has joined.
23:33:04 <HackEgo> [wiki] [[Jackass]] N http://esolangs.org/w/index.php?oldid=43474 * Phase * (+776) Jackass spec start
←2015-07-12 2015-07-13 2015-07-14→ ↑2015 ↑all