00:07:57 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (map (\\c -> if c == 'M' then '-' else c) . takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:07:58 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:08:25 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (map (\\c -> if c == 'M' then '-' else c) . takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:08:26 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:08:38 <shachaf> Is it a line length thing that makes it only work in /msg?
00:09:05 <shachaf> ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@run var . (\\(w:ws) -> w ++ ':' : ' ' : (takeWhile (/= '/') . head . filter (\"/\" `isInfixOf`) $ ws)) . words $ @show @metar "++x++")") . words $ ?show ENVA LLBG
00:09:07 <lambdabot> Plugin `compose' failed with: Missing ')' in nested command
00:09:47 <shachaf> oerjan: help figure out twh hth thx
00:14:46 <oerjan> well there is a shorter limit in public, at least
00:15:35 <shachaf> Oh, I bet it's an internal thing in lambdabot where it generates a long line containing a lot of duplicates of the code.
00:15:57 <shachaf> What I did was silly anyway.
00:20:27 -!- impomatic has quit (Ping timeout: 276 seconds).
00:25:51 <oerjan> (it's always too late)
00:28:13 <shachaf> you could write a command that looks at the hg log to see which file the last command created/modified
00:32:34 <\oren\_> shachaf: ooh, someone actually uses that upside down &? I'm glad I added it.
00:32:46 <shachaf> \oren\_: Of course. It's a very important character.
00:32:57 <shachaf> \oren\_: But in IRC I usually just write #
00:36:10 <\oren\_> b_jonas: that reminds me, I have a ttf version of your font that I generated in the same manner as my font.
00:37:01 -!- tromp has joined.
00:40:34 -!- lambda-11235 has joined.
00:41:47 <oerjan> @tell hppavilion[1] <hppavilion[1]> int-e: Did I make the math joke wrong? <-- that was so wrong that i bet you think there are three words in the english language.
00:42:39 <oerjan> @tell hppavilion[1] damn i did _that_ wrong. also https://xkcd.com/169/
00:43:38 <oerjan> @tell hppavilion[1] or wait, did i. confused now.
01:18:25 -!- lynn has quit (Ping timeout: 250 seconds).
01:21:40 -!- bb010g has joined.
01:25:53 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:26:33 -!- augur has quit (Remote host closed the connection).
01:28:16 -!- augur has joined.
01:44:18 -!- ayeelmao has joined.
01:55:28 <hppavilion[1]> I just realized I don't know the rigorous meaning of "irrational number"
01:55:35 <lambdabot> oerjan said 1h 13m 47s ago: <hppavilion[1]> int-e: Did I make the math joke wrong? <-- that was so wrong that i bet you think there are three words in the english language.
01:55:35 <lambdabot> oerjan said 1h 12m 55s ago: damn i did _that_ wrong. also https://xkcd.com/169/
01:55:35 <lambdabot> oerjan said 1h 11m 56s ago: or wait, did i. confused now.
01:56:15 <hppavilion[1]> Oh, right, it's one that cannot be expressed as a ratio of integers
01:59:52 <lambda-11235> hppavilion[1]: https://en.wikipedia.org/wiki/Dedekind_cut. That's one definition.
02:00:20 -!- AlexR42 has joined.
02:00:26 -!- MoALTz has quit (Ping timeout: 244 seconds).
02:00:33 <oerjan> i don't trust people who are online but 56 mins idle >_> <_<
02:00:50 <oerjan> hppavilion[1]: would you like to be added to the dontaskdonttelllist
02:01:02 <lambda-11235> Also, https://en.wikipedia.org/wiki/Cauchy_sequence.
02:01:10 <HackEgo> dontaskdonttelllist: quintopia coppro myname
02:01:25 <hppavilion[1]> I'm just going with the points-on-a-line definition
02:02:19 <oerjan> indeed, complex numbers that aren't real are also irrational
02:02:23 <lambda-11235> There was a haskell library that implemented infintely precise real numbers using cauchy sequences.
02:02:38 <oerjan> which is a little silly for things like 1 + 2i
02:02:54 <oerjan> there's probably a term for those
02:03:32 <oerjan> which means both a and b are rational in a+bi
02:03:32 <shachaf> or even gaussian integer hth
02:03:48 <shachaf> oh, 1 + 2i was jsut an example
02:03:58 <shachaf> i can't be bothered to logread four lines up
02:04:07 <oerjan> shachaf: i know, it's _so_ tiring
02:05:12 <oerjan> > pi :: CReal -- lambda-11235
02:05:13 <lambdabot> 3.1415926535897932384626433832795028841972
02:05:27 <oerjan> not sure if that one uses cauchy sequences
02:05:37 <hppavilion[1]> oerjan: I've always thought that math should be more modular/adjective
02:05:45 <oerjan> it _doesn't_ use continued fractions afair
02:06:03 <hppavilion[1]> oerjan: Instead of having joint-together names, we should prioritize inventing new adjectives to apply to existing objects
02:06:05 <shachaf> It uses a special kind of Cauchy sequences.
02:06:30 <oerjan> hppavilion[1]: i don't understand what you mean
02:06:49 <shachaf> Quickly-convergent Cauchy sequences.
02:07:14 <shachaf> Cauchy sequences that converge whenever aren't very useful for computing.
02:08:26 <hppavilion[1]> oerjan: Instead of the phrase "Gaussian Integer", meaning a+bi where a and b are integers, we'd just have the adjective "Gaussian x", meaning a+bi where a and b are members of the xes
02:08:52 <oerjan> hppavilion[1]: hm and that's precisely how it works with rationals, what's the problem
02:08:57 <shachaf> Hmm, maybe it doesn't exactly.
02:09:33 <shachaf> oerjan: there are way too many things that are called "gaussian" for this scheme to work hth
02:09:43 <shachaf> https://en.wikipedia.org/wiki/List_of_things_named_after_Carl_Friedrich_Gauss
02:10:06 <hppavilion[1]> oerjan: Well I haven't heard of "Gaussian rationals"
02:10:18 <oerjan> shachaf: but these gaussian distributions a + bi are so quantum!
02:10:32 <oerjan> hppavilion[1]: neither had i until i just guessed it
02:10:34 <hppavilion[1]> oerjan: And this way, we could have worse things like the "Gaussian Strings" or something awful like that, for example
02:11:29 <shachaf> oerjan: The real scow of CReal is that it only computes up to 40 digits normally.
02:12:29 <lambdabot> "3.1415926535897932384626433832795028841971693993751058209749445923078164062...
02:13:03 <shachaf> I wish lambdabot still had unsafeCoerce so I could examine CReals.
02:13:04 <oerjan> > showCReal 1000 (pi^2)
02:13:06 <lambdabot> "9.8696044010893586188344909998761511353136994072407906264133493762200448224...
02:13:11 <oerjan> > last $showCReal 1000 (pi^2)
02:14:04 <lambdabot> git clone https://github.com/lambdabot/lambdabot
02:14:43 <oerjan> @tell int-e @version should say which ghc version it's compiled with twh
02:15:18 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
02:15:56 <oerjan> shachaf: pretty sure there's some remaining unsafeCoerce bug ...
02:18:31 -!- andrew__ has joined.
02:19:23 <oerjan> :t coerce -- this is some silly lensy thing isn't
02:19:24 <lambdabot> (Functor f, Contravariant f) => f a -> f b
02:21:08 * oerjan is forgetting his orange juice
02:23:13 <oerjan> > typeRep (Proxy :: Proxy (() :: Constraint)) == typeRep (Proxy :: Proxy ())
02:25:23 <oerjan> that type family bug i found obviously won't work in lambdabot
02:30:27 -!- ineiros has quit (Ping timeout: 248 seconds).
02:41:37 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
02:44:30 -!- andrew__ has quit (Remote host closed the connection).
02:46:31 -!- andrew_ has joined.
02:49:34 -!- hppavilion[2] has joined.
02:52:00 -!- andrew_ has quit (Ping timeout: 246 seconds).
03:08:29 -!- andrew_ has joined.
03:08:31 -!- hppavilion[2] has changed nick to hppavilion[1].
03:09:09 -!- AlexR42 has joined.
03:17:55 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
03:25:49 -!- augur has quit (Ping timeout: 250 seconds).
03:38:04 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
03:39:21 -!- hppavilion[1] has joined.
03:43:02 -!- joaeos has joined.
03:49:06 -!- joaeos has quit (Ping timeout: 276 seconds).
03:53:40 -!- joaeos has joined.
03:56:25 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
03:56:49 -!- augur has joined.
03:59:27 <joaeos> this esolang thing is quite a brainfuck
04:00:03 -!- joaeos has left ("Leaving").
04:01:17 -!- \oren\_ has quit (Ping timeout: 260 seconds).
04:02:04 -!- \oren\ has joined.
04:05:50 -!- sebbu has quit (Ping timeout: 248 seconds).
04:07:18 -!- AlexR42 has joined.
04:08:23 -!- hppavilion[1] has joined.
04:30:03 -!- oerjan has quit (Quit: Got it).
04:52:53 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
04:56:51 -!- FreeFull has quit (Read error: Connection reset by peer).
04:57:18 -!- FreeFull has joined.
04:58:27 -!- Alcest has joined.
05:21:34 -!- benderpc_ has joined.
05:22:00 -!- benderpc_ has quit (Changing host).
05:22:01 -!- benderpc_ has joined.
05:22:02 -!- augur has quit (Remote host closed the connection).
05:22:11 -!- benderpc_ has changed nick to bender.
05:27:00 -!- XorSwap has joined.
05:36:35 -!- XorSwap has quit (Quit: Leaving).
06:02:33 -!- sebbu has joined.
06:02:45 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
06:05:11 -!- augur has joined.
06:11:57 -!- hppavilion[1] has joined.
06:39:54 <lambda-11235> hppavilion[1]: What's that? Are you interested in agrarian studies?
06:40:39 <hppavilion[1]> (http://catseye.tc/view/emmental/tests/Emmental.markdown)
06:41:04 <b_jonas> \oren\: an, nice! is that a vector-only ttf version, or a ttf with bitmap/graymap included?
06:41:20 <hppavilion[1]> lambda-11235: http://catseye.tc/view/emmental/README.markdown
06:42:30 <b_jonas> \oren\: and is it a repeatable enough conversion that you'll be able to recreate it easily later in the far future when I make an updated version of my font with more characters and modified images of the existing characters?
06:44:03 <lambda-11235> hppavilion[1]: Don't know emmental, but I do now. Also, agrarian means relating to agriculture or farming.
06:45:34 -!- lambda-11235 has quit (Quit: Good night.).
06:49:04 -!- MoALTz has joined.
06:58:49 <hppavilion[1]> lambdabot: Wait, no, mascarpone was the one I was going for
06:59:52 <hppavilion[1]> @tell lambda-11235 It's mascarpone, not emmental, that I was going for. Mascarpone is Emmental's successor.
07:03:17 -!- nzt-fish has quit (Ping timeout: 260 seconds).
07:12:11 -!- ineiros has joined.
07:25:29 <b_jonas> Heh, on http://www.questionablecontent.net/cast.php , May is missing the header for her name (he's above Steve)
07:35:56 -!- mroman has joined.
07:41:02 -!- augur has quit (Remote host closed the connection).
07:44:25 -!- andrew_ has quit (Read error: Connection reset by peer).
07:47:26 -!- andrew has joined.
07:52:49 -!- tromp has quit (Remote host closed the connection).
07:58:10 -!- lynn has joined.
08:36:55 -!- J_Arcane has quit (Ping timeout: 252 seconds).
08:37:28 -!- lynn has quit (Ping timeout: 252 seconds).
08:44:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
08:53:20 -!- tromp has joined.
08:58:30 -!- tromp has quit (Ping timeout: 276 seconds).
09:43:07 -!- \oren\ has quit (Ping timeout: 260 seconds).
09:44:09 -!- \oren\ has joined.
10:23:37 -!- jaboja has joined.
10:36:47 -!- \oren\ has quit (Ping timeout: 260 seconds).
10:37:19 -!- \oren\ has joined.
10:51:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Whonut * New user account
11:00:59 <HackEgo> [wiki] [[Talk:Bitoven]] https://esolangs.org/w/index.php?diff=46474&oldid=43177 * Whonut * (+323) Asked about what is syntactically meaningful in Bitovem
11:15:54 -!- ayeelmao has left.
11:26:56 -!- boily has joined.
11:36:45 <lambdabot> shachaf asked 11h 42m 10s ago: pizza must be poutine its place
11:37:20 <boily> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhellochafAAAAAAAAAAAAAAAAAAAAAAAAmapoleAAAAAAAAAAAAAAAARGH!
11:41:42 <lifthrasiir> I have some serious bug that is really hard to catch with examples at my disposal
11:47:22 -!- jaboja has quit (Ping timeout: 260 seconds).
11:54:18 -!- tromp has joined.
11:58:53 -!- tromp has quit (Ping timeout: 250 seconds).
11:59:59 -!- AnotherTest has joined.
12:16:45 -!- boily has quit (Quit: REGULATED CHICKEN).
12:33:39 -!- andrew has quit (Remote host closed the connection).
12:42:52 <Taneb> The issue, of course, with generated brainfuck programs, is that they tend to end up being quite long
12:43:08 <Taneb> That is, naturally, why we are generating them in the first place rather than writing them ourselves
12:43:22 <Taneb> This means they can take a long time to run in the interpreter you are using
12:44:39 -!- bender has quit (Quit: Leaving).
13:10:43 -!- tromp has joined.
13:15:10 -!- tromp has quit (Ping timeout: 248 seconds).
13:17:58 -!- jaboja has joined.
13:43:29 -!- Treio has joined.
13:57:55 -!- Treio has quit (Quit: Leaving).
13:58:12 <Taneb> Well, I've worked out why it's not working
13:58:35 <Taneb> I'm using an if-else construct that uses two temporary cells
13:58:43 <Taneb> I'm using a whole bunch of nested ifs
13:58:49 <Taneb> Using the same temporary cells
14:00:02 <Taneb> So, I need to design a case-switch statement
14:01:32 -!- jaboja64 has joined.
14:05:18 -!- jaboja has quit (Ping timeout: 248 seconds).
14:16:32 -!- `^_^v has joined.
14:20:20 -!- bender|_ has joined.
14:20:40 -!- bender|_ has quit (Changing host).
14:20:40 -!- bender|_ has joined.
14:20:48 -!- bender|_ has changed nick to bender.
14:23:52 <Taneb> Oooh, http://calmerthanyouare.org/2016/01/14/control-flow-in-brainfuck.html has a guide
14:39:40 -!- tromp_ has quit (Read error: Connection reset by peer).
14:40:57 -!- tromp_ has joined.
14:44:57 -!- jaboja64 has quit (Ping timeout: 276 seconds).
14:44:57 -!- earendel2 has quit (Ping timeout: 276 seconds).
14:48:36 -!- joaeos has joined.
14:48:49 -!- bb010g has quit (Quit: Connection closed for inactivity).
14:51:41 -!- J_Arcane has joined.
14:54:07 -!- lambda-11235 has joined.
15:06:28 -!- earendel has joined.
15:16:46 -!- J_Arcane has quit (Ping timeout: 252 seconds).
15:18:26 -!- izabera has changed nick to anbppomced.
15:20:27 -!- anbppomced has changed nick to izabored.
15:22:25 -!- mroman has quit (Quit: Lost terminal).
15:25:06 -!- atslash has joined.
15:26:21 -!- joaeos has quit (Ping timeout: 248 seconds).
15:28:22 -!- izabored has changed nick to izabera.
15:37:54 -!- contrapumpkin has joined.
15:40:42 -!- copumpkin has quit (Ping timeout: 260 seconds).
15:56:50 <Taneb> I could do with a variant of brainfuck that is coupled direct read-access to a whole bunch of data involved in the brainfuck, as well as variables, but it can only be used for debugging
15:58:07 -!- lambda-11235 has quit (Quit: Bye).
16:03:11 -!- nzt-fish has joined.
16:10:53 <Taneb> quintopia: I want an extension of brainfuck with more facilities for debugging
16:11:29 <Taneb> Because reasoning about a 9000 line brainfuck program is less than fun
16:18:17 -!- impomatic_ has joined.
16:28:07 <quintopia> Taneb: is it not enough just to be able to step through it looking at the tape?
16:33:40 <Taneb> quintopia: it's far too long, alas
16:42:29 -!- tromp has joined.
16:47:09 -!- tromp has quit (Ping timeout: 276 seconds).
16:55:45 -!- augur has joined.
16:57:32 <quintopia> Taneb: what about tracking certain tape cells the way you can track variables in most debuggers?
16:57:52 <Taneb> quintopia: I want to do some things fancier than that
16:58:17 <Taneb> Like "make sure the cell reached at this instruction is the same cell as this one"
16:58:29 <Taneb> When that loop runs hundreds of times in different places
16:59:42 -!- bender has quit (Ping timeout: 248 seconds).
17:02:09 -!- `^_^v has quit (Ping timeout: 246 seconds).
17:03:45 -!- `^_^v has joined.
17:07:33 -!- Veltas has quit (Remote host closed the connection).
18:00:51 <quintopia> Taneb: that sounds like breakpoints with IP tracking
18:01:29 <Taneb> I also want to, to some extent, specify this in the program itself
18:04:12 <quintopia> it wouldnt be the first time someone added debug codes to a language
18:05:00 -!- augur has quit (Read error: Connection reset by peer).
18:05:51 -!- lambda-11235 has joined.
18:05:59 -!- augur has joined.
18:17:50 -!- spiette has joined.
18:29:49 -!- augur has quit (Remote host closed the connection).
18:40:38 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46475&oldid=46473 * Fpetrola * (+81)
18:41:46 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46476&oldid=46475 * Fpetrola * (-65)
18:42:30 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46477&oldid=46476 * Fpetrola * (-7)
18:43:13 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46478&oldid=46477 * Fpetrola * (+97)
18:45:09 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46479&oldid=46478 * Fpetrola * (+1)
18:45:58 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46480&oldid=46479 * Fpetrola * (+18)
18:46:13 -!- `^_^v has quit (Ping timeout: 250 seconds).
18:46:47 <HackEgo> [wiki] [[Humo]] https://esolangs.org/w/index.php?diff=46481&oldid=46480 * Fpetrola * (-18)
18:47:31 -!- clog has quit (Ping timeout: 250 seconds).
18:47:54 -!- Yurume has quit (Ping timeout: 268 seconds).
18:47:54 -!- lifthrasiir has quit (Ping timeout: 268 seconds).
18:48:09 -!- lifthrasiir has joined.
18:48:26 -!- `^_^v has joined.
18:49:11 -!- Yurume has joined.
18:49:38 -!- copumpkin has joined.
18:49:41 -!- impomatic has quit (Ping timeout: 250 seconds).
18:49:41 -!- nisstyre_ has quit (Ping timeout: 250 seconds).
18:50:19 -!- hppavilion[1] has joined.
18:50:50 -!- hppavilion[2] has joined.
18:50:59 -!- contrapumpkin has quit (Ping timeout: 250 seconds).
18:53:07 -!- tjt263_ has joined.
18:54:34 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
18:54:38 -!- nisstyre_ has joined.
18:56:11 -!- fungot has quit (Ping timeout: 250 seconds).
18:58:23 -!- pdxleif has quit (Ping timeout: 268 seconds).
18:59:22 -!- idris-bot has quit (Quit: Terminated).
19:01:57 -!- impomatic has quit (Ping timeout: 260 seconds).
19:09:47 -!- zzo38 has joined.
19:12:12 -!- lleu has quit (Read error: Connection reset by peer).
19:13:00 -!- llue has joined.
19:13:00 <b_jonas> Taneb: could you use my font for something?
19:13:01 <Taneb> b_jonas, I'm almost there
19:13:01 -!- sebbu2 has joined.
19:13:01 <b_jonas> Have you compressed all of it to brainfuck code that fits a single IRC line yet?
19:13:40 <b_jonas> Or at least all but the glyphs at control character positions?
19:14:03 -!- sebbu has quit (Ping timeout: 276 seconds).
19:14:07 <b_jonas> The glyphs at the latin-1 high controls are probably mostly useless.
19:16:00 -!- MoALTz has quit (Ping timeout: 276 seconds).
19:25:40 -!- zgrep has quit (*.net *.split).
19:25:40 -!- Elronnd has quit (*.net *.split).
19:25:40 -!- lambdabot has quit (*.net *.split).
19:25:40 -!- Lymia has quit (*.net *.split).
19:25:40 -!- haavard has quit (*.net *.split).
19:25:41 -!- shikhin has quit (*.net *.split).
19:25:41 -!- sewilton has quit (*.net *.split).
19:30:51 -!- J_Arcane has joined.
19:31:29 -!- zgrep has joined.
19:31:29 -!- Elronnd has joined.
19:31:29 -!- lambdabot has joined.
19:31:29 -!- Lymia has joined.
19:31:29 -!- haavard has joined.
19:31:29 -!- shikhin has joined.
19:31:29 -!- sewilton has joined.
19:31:37 <hppavilion[2]> lambda-11235: Nothing; just writing a JS parser library
19:34:18 -!- nycs has joined.
19:36:22 -!- `^_^v has quit (Ping timeout: 252 seconds).
19:36:36 -!- nycs has quit (Client Quit).
19:37:57 -!- `^_^v has joined.
19:45:15 <impomatic_> There's a Core War tournament in a few weeks if anyone's up for it? http://corewar.co.uk/easter2016.htm
19:45:50 * izabera read it as code war and thougth it was a hackaton
19:47:13 -!- ais523 has joined.
19:53:49 -!- oerjan has joined.
19:55:04 <zzo38> Probably a better way to do colors with Xlib would be using the standard colormaps, although TrueColor should probably be used instead if possible. Anyways it would then have to check if the default visual matches the standard colormap, and other stuff too
19:57:35 <ais523> zzo38: is the standard colormap for xterm the same as that for X?
20:06:10 <myname> just invert the show function :p
20:06:15 -!- spiette has quit (Ping timeout: 246 seconds).
20:06:33 <hppavilion[2]> I'm considering giving up and using a pre-made library
20:07:36 <myname> https://jeltsch.wordpress.com/2013/04/27/a-taste-of-curry/
20:09:09 <zzo38> Maybe it can also be use with Node.js too
20:10:12 <hppavilion[2]> zzo38: I mean, if it works in JS it should work in Node
20:10:21 <hppavilion[2]> myname: My main goal is to reimplement Thoof in a browser
20:11:27 <hppavilion[2]> myname: You use s/// notation to define axioms and compose substitutions to make theorems
20:12:07 -!- lambda-11235 has quit (Quit: Bye).
20:12:35 <b_jonas> hppavilion[2]: sure, that's why we have ayacc
20:12:51 <b_jonas> for writing parsers not from scratch
20:13:09 <hppavilion[2]> b_jonas: I was writing a Yacc-like library so I wouldn't have to write them from scratch
20:13:26 <b_jonas> hppavilion[2]: ayacc is exactly one of those yacc-like libraries
20:13:28 <hppavilion[2]> b_jonas: I implemented the parser combinator library, now I'm debugging it be implementing an actual parser in it
20:13:35 <b_jonas> I recommend it if you want yacc-like parsing
20:13:44 <b_jonas> which of course can depend on what it is that you have to parse
20:14:01 <b_jonas> do we have a wisdom for it?
20:14:13 <HackEgo> ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl
20:14:16 <b_jonas> fungot, is HackEgo always this slow?
20:14:35 <ais523> b_jonas: it's often slow when it hasn't been used for awhile
20:14:43 <ais523> occasionally to the extent of actually timing out
20:14:56 <ais523> hppavilion[2]: ayacc isn't exactly a library, it's a Perl script
20:15:09 <ais523> it's intended as an implementation of POSIX yacc
20:15:18 <ais523> you give it a grammar as input
20:15:23 <ais523> and it outputs a program that does parsing
20:15:29 <ais523> currently it only supports output in C and Perl
20:15:44 <ais523> /but/ it is designed to easily be made to generate output in other languages
20:16:21 <ais523> you basically give it a dictionary of program fragments that it can assemble a program out of
20:17:05 <zzo38> That is, if it is pure JavaScript that does not use DOM and so on then it can work on browser and Node
20:17:22 <zzo38> (As well as other programs that use JavaScript)
20:17:44 <ais523> hppavilion[2]: most yacc implementations work by filling in a template file
20:17:48 <hppavilion[2]> zzo38: Do you know of any Javascript parser generator libraries or pure parser generators?
20:17:53 <ais523> ayacc's a bit different, it generates code rather than data
20:20:21 <oerjan> <hppavilion[2]> b_jonas: I was writing a Yacc-like library so I wouldn't have to write them from scratch <-- with all due respect, if you have trouble writing parsers from scratch, then there is _no_ way you're qualified to write a yacc-alike hth
20:20:59 <oerjan> because no hand-written parser can ever be as confusing as LALR(1) parsing QED
20:21:16 -!- spiette has joined.
20:23:30 <oerjan> although i have a hunch you meant something like parsec-alike instead
20:24:13 -!- hppavilion[2] has quit (Ping timeout: 252 seconds).
20:25:15 <ais523> oerjan: I don't find LALR(1) that confusing
20:25:39 <l0de> Yes hello, l0de here
20:25:48 -!- Sprocklem has joined.
20:25:49 <l0de> Anyone looking forward to the equinox rituals?
20:27:04 <HackEgo> This channel is about programming -- for the other kind of esoterica, try #esoteric on EFnet or DALnet.
20:27:19 <b_jonas> oerjan: yes, sadly the “parser combinator library” hints for taht
20:30:17 <zzo38> A LALR(1) parser generator for C programs is Lemon, although that is C rather than JavaScript programming
20:30:48 <b_jonas> zzo38: yes, I know, but I agree with ais523 in that ayacc is better than lemon in basically everything
20:31:01 -!- hppavilion[1] has joined.
20:31:02 <ais523> do I know what lemon is?
20:31:24 <b_jonas> ais523: what? haven't we already talked about that one related to ayacc?
20:31:28 <zzo38> l0de: I have no ritual of equinox at this time. (Although I do agree that it should be a holiday)
20:31:35 <ais523> that's why I asked rather than saying I didn't know what it was
20:31:49 <oerjan> <ais523> /but/ it is designed to easily be made to generate output in other languages <-- . o O ( underlambda? )
20:31:49 <b_jonas> ais523: I think you do know
20:32:27 <ais523> oerjan: well it possibly has more of a chance than anything else :-P
20:32:47 <ais523> actually the model it uses maps onto underlambda very well
20:32:57 <ais523> even unlambda, in fact
20:33:00 <b_jonas> ais523: lemon is the yacc-like but not really compatible one that (a) outputs a re-entrant parser that doesn't use the C-stack but a separately allocated stack, and (b) its grammars mandatorily use a different syntax than yacc's $1 to access the values of symbols inside blocks
20:33:08 <ais523> the main difficulties would be syntactic
20:33:21 <ais523> I figured it was something like that purely from you comparing it to ayacc
20:34:05 <b_jonas> ais523: http://www.sqlite.org/src/doc/trunk/doc/lemon.html
20:34:34 <b_jonas> ais523: mind you, it probably did make sense for them to develop lemon if ayacc wasn't available
20:34:57 <b_jonas> it's still better in some things than bison, and it serves their needs well
20:35:13 <oerjan> <ais523> oerjan: I don't find LALR(1) that confusing <-- yes but you eat graphs for lunch hth
20:35:58 <b_jonas> And it's definitely much better than handwriting a parser of course.
20:36:52 <zzo38> I happen to like that (a) difference from yacc especially, it mean you can even use more than one parser simultaneously in the same program too, as well as that you can call the parser for each token and that is how it work.
20:38:06 <b_jonas> The problem is that we have these nice theoretic constructions like yacc parsers, but then people invent languages that aren't LR, and that can be parsed only with gross hacks, and in the end the parser you get is so ugly that you can't prove anything about how it works and when it will break.
20:38:32 <b_jonas> LALR(1) parser generator itself is great, I like it, although I don't claim to completely understand the theory.
20:38:41 <b_jonas> The part where it gets bad is the stupid languages.
20:39:53 <b_jonas> zzo38: funnily, bison is somewhat closer to that than ayacc is, at least ayacc with the C backend, because bison also outputs a parser that doesn't use the C stack, I think
20:40:45 <ais523> b_jonas: I've been considering allowing LALR(2), etc., in ayacc too
20:41:04 <ais523> perhaps with some minimization to merge identical states
20:41:19 <ais523> although it's unclear how you'd follow the POSIX rule to only read input if absolutely necessary, that might make it more complex
20:41:39 <b_jonas> zzo38: but luckily using the C stack isn't such a big problem, because at least it doesn't use global variables and has other promises, so we can break out of a parser, we can run more than one in parallel using threads or coroutines, and we could even develop a new backend that doesn't use the C stack.
20:42:03 <ais523> oerjan: b_jonas: you know how you can implement mathematical regular expressions using NFAs, and how those can be converted to DFAs in order to create an efficient compiled representation of the regular expression?
20:42:11 <ais523> LALR is basically that but for stack machines
20:42:40 <b_jonas> ais523: those grammars I'm thinking about aren't LALR(n) for other n either. the ones that are LALR(2) but not LALR(1) can generally be turned to LALR(1) with some small amount of preprocessing of the input stream with a DFA.
20:43:31 -!- lynn has joined.
20:44:07 <ais523> most yacc impls will, if you give the -v or equivalent argument, list all the possible NstackA states that correspond to one DstackA state
20:44:41 <ais523> so that helps to understand what's going on
20:44:47 <ais523> (ayacc is one such impl)
20:46:39 <b_jonas> ais523: yes, a good quality debug output from ayacc certainly helps develop and debug grammars and prove things about it
20:46:59 <b_jonas> as in, more than just telling me whether there's a conflict or not
20:47:03 -!- clog has joined.
20:47:58 <ais523> b_jonas: it also helps debug ayacc
20:48:05 <ais523> I worked on its debug output quite a lot for that reason
20:49:45 <b_jonas> ais523: can it also help debugging new ayacc output template thingies?
20:50:15 <ais523> only by comparing what it says the code structure should be to what was actually output
20:50:23 <ais523> however, a mistaken template will normally just cause a syntax error
20:50:42 <ais523> it's basically literally transforming the final automaton shown in ayacc's .output file into a series of code fragments via substitution
20:50:44 <b_jonas> Sadly I don't think I'm going to play with ayacc in the near future. I have too many other things to do.
20:52:27 -!- spiette has quit (Ping timeout: 246 seconds).
20:56:42 -!- tjt263_ has quit (Changing host).
20:56:42 -!- tjt263_ has joined.
20:58:19 -!- atslash has quit (Quit: This computer has gone to sleep).
21:04:52 -!- carado has joined.
21:09:34 -!- spiette has joined.
21:13:02 <b_jonas> ais523: oh, that reminds me. ayacc already clearly states that the parts of ayacc that it outputs are under public domain. is there a statement somewhere about what license the other parts of ayacc are available under?
21:13:27 -!- lynn_ has joined.
21:13:39 -!- lynn has quit (Disconnected by services).
21:13:43 -!- lynn_ has changed nick to lynn.
21:13:43 <b_jonas> This isn't urgent or anything, but it would be useful if you specified.
21:13:53 <ais523> huh, it looks like I forgot the license notice
21:13:55 <b_jonas> Like, released it under some license.
21:13:57 <ais523> I think I was planning GPLv3
21:14:12 <ais523> but atm it's default-all-rights-reserved
21:14:29 <ais523> (because I forgot to license it under anything else)
21:14:54 <b_jonas> but in the future I'd like something that gave me more rights than defaults-all-rights-reserved
21:16:19 <ais523> I'm not working on ayacc at the moment
21:16:21 <ais523> but remind me next time I do
21:18:28 <b_jonas> I'll try, but I might forget
21:19:07 -!- p34k has quit.
21:21:27 -!- AnotherTest has quit (Ping timeout: 276 seconds).
21:24:41 -!- I has joined.
21:25:05 -!- I has changed nick to Guest46248.
21:25:06 -!- p34k has joined.
21:25:39 <b_jonas> ais523: I hope the GPL would work in such a way on ayacc such that (1, more importantly) an ayacc-specific input grammar file is only an input to ayacc, not a modification to it that is required to be licensed under the GPL if you want to distribute it, and
21:26:36 <b_jonas> (2, less importantly) ayacc isn't considered part of a program that uses ayacc to generate its parser, so that the program can be put under a GPL-incompatible but GPL-like sticky copyleft license that requires the full source of the program to be provided.
21:26:51 <b_jonas> It's clear that the _output_ of ayacc isn't covered, my question is about the input.
21:26:56 -!- tjt263_ has quit (Quit: part).
21:26:59 <ais523> b_jonas: the situatoin is the same as with gcc, I believe
21:27:15 <ais523> which doesn't place any requirements on its input
21:27:29 <ais523> besides, the fact that ayacc implements POSIX yacc is a pretty good argument that its input isn't copyright-affected by ayacc
21:27:35 <ais523> as it'd be valid POSIX yacc input too
21:28:53 <b_jonas> ais523: sure, but (1) I specifically said ayacc-specific grammar, and for point (2) that isn't relevant because bison is under the GPL too.
21:29:21 <ais523> b_jonas: no it isn't, bison has an exception
21:29:27 <ais523> basically because bison skeletons are copied into the output verbatim
21:30:46 <b_jonas> Bison has an exception to make its _output_ free from copyright stickiness, right? Same as how gcc has an exception for some parts of libgcc or whatever that often gets linked into the output but isn't covered by the "System Libraries" clause.
21:32:36 <b_jonas> But sure, gcc is probably a very good precedent.
21:35:50 <b_jonas> Hmm… maybe we could abuse the nethack4 bug tracker for tickets about ayacc eventually.
21:36:01 <b_jonas> It already works for aimake I think.
21:38:51 <izabera> https://test.drownattack.com/?site=https://www.intesasanpaolo.com my bank ;-;
21:40:07 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
21:43:00 <int-e> oerjan: fwiw it's ghc 7.10.2; I didn't see a reason to update to ghc 7.10.3
21:43:15 <b_jonas> As for ayacc, I tried to write a translator or compiler thingy that originally tried to emit readable code. I mostly failed, though part of that was that I didn't develop it much after the deadline.
21:43:53 <int-e> is aimake a(imake) or ai(make)?
21:44:10 <b_jonas> That project was http://www.math.bme.hu/~ambrus/pu/olvashato/ of course
21:44:15 <b_jonas> int-e: I think it's (ai)make
21:44:27 <b_jonas> what would "imake" even mean?
21:44:35 <ais523> int-e: it's (ai)(make)
21:44:35 <Taneb> int-e, I always assumed it was an artificially intelligent version of make
21:44:39 <int-e> I guess it would be spelled Imake
21:44:47 <ais523> ai can either stand for artificial intelligence or (ai)s523
21:45:01 <int-e> "imake is a build automation system written for the X Window System."
21:45:31 -!- hppavilion[1] has joined.
21:46:40 <b_jonas> hmm... does the first "a" in "ayacc" stand for something in particular then?
21:46:48 <ais523> matches the first a in ais523, that's about it
21:47:58 <b_jonas> and I guess ancurses would sound lame, unlike uncurses
21:52:03 <ais523> it's called uncursed, it's just a nethack-related pun
21:52:12 <ais523> sticking an "a" at the start is boring if you could do a pun instead
21:53:27 -!- mtve has quit (Ping timeout: 260 seconds).
21:53:47 <oerjan> b_jonas: hey is that you discussing grade skipping with scott a.
21:55:11 <b_jonas> oerjan: yes, I'm that b_jonas. and it's probably not one of my most insightful comments.
21:55:24 <b_jonas> not even among the ones on that blog
21:55:52 <oerjan> i just had a hunch and was wondering
21:56:05 <oerjan> (and you didn't use b_)
21:56:21 <b_jonas> in some places I'm just jonas
21:56:24 <b_jonas> which isn't nearly as unique
21:56:39 <b_jonas> I'm practically the only b_jonas out there, but there are other people using "jonas"
22:00:00 <b_jonas> oerjan: worse, on some places, I have used both jonas and b_jonas, because I forgot which one I used.
22:02:03 -!- augur has joined.
22:05:32 -!- lynn_ has joined.
22:06:01 <b_jonas> oerjan: this one really gives it away that at least some of the "jonas" comments are by me by the way => http://www.scottaaronson.com/blog/?p=2011#comment-154279
22:07:43 -!- lynn has quit (Ping timeout: 250 seconds).
22:10:05 <oerjan> i am not sure if i followed that thread
22:34:46 -!- Guest46248 has quit (Quit: Leaving).
22:43:55 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:44:13 -!- ais523 has quit.
22:49:12 -!- spiette has quit (Ping timeout: 276 seconds).
23:02:09 -!- p34k has quit.
23:05:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds).
23:41:22 -!- lynn_ has quit (Ping timeout: 260 seconds).
23:45:01 -!- hppavilion[1] has joined.