←2014-09-03 2014-09-04 2014-09-05→ ↑2014 ↑all
00:01:37 <HackEgo> [wiki] [[Special:Log/newusers]] create * CrazyM4n * New user account
00:02:58 <CrazyM4n_> is there a page that describes 2d languages that i could link to?
00:04:56 <fizzie> http://esolangs.org/wiki/Category:Two-dimensional_languages
00:05:02 -!- Bicyclidine has quit (Ping timeout: 252 seconds).
00:05:24 -!- Phantom___Hoover has quit (Read error: Connection reset by peer).
00:05:25 <fizzie> Oh, unless you meant a general page about them.
00:05:30 <HackEgo> [wiki] [[Brainfunge]] N http://esolangs.org/w/index.php?oldid=40391 * CrazyM4n * (+187) Created page with "'''Brainfunge''' is an esoteric 2d language created by [[User:CrazyM4n]] in 2014. It is a mixture between possibly the two most popular esoteric languages, [[Brainfuck]] and ..."
00:06:00 <CrazyM4n_> i did
00:06:06 <CrazyM4n_> but i can add that
00:06:12 <fizzie> There seems to be a quite stubby Category:Concepts page at http://esolangs.org/wiki/Fungeoid but that's not very useful to link at.
00:06:27 -!- nisstyre has quit (Ping timeout: 272 seconds).
00:06:51 -!- Froox has joined.
00:07:20 -!- J_Arcane_ has joined.
00:07:28 <CrazyM4n_> how can i add a language to a category?
00:07:46 <zzo38> By typing [[Category:2014]] or whatever
00:07:54 <CrazyM4n_> kk thanks
00:08:00 -!- Melvar has joined.
00:08:23 <fizzie> Conventionally, at the very end of the article.
00:09:12 <HackEgo> [wiki] [[Brainfunge]] http://esolangs.org/w/index.php?diff=40392&oldid=40391 * CrazyM4n * (+175)
00:12:10 -!- sebbu has quit (Ping timeout: 255 seconds).
00:12:10 -!- vravn has quit (Ping timeout: 255 seconds).
00:12:11 -!- clog has quit (Ping timeout: 270 seconds).
00:12:11 -!- qlkzy has quit (Ping timeout: 270 seconds).
00:12:11 -!- variable has quit (Ping timeout: 270 seconds).
00:12:11 -!- J_Arcane has quit (Ping timeout: 270 seconds).
00:12:12 -!- FireFly has quit (Ping timeout: 255 seconds).
00:12:12 -!- Frooxius has quit (Ping timeout: 255 seconds).
00:12:14 -!- J_Arcane_ has changed nick to J_Arcane.
00:12:20 <CrazyM4n_> how do you display a code block like here http://prntscr.com/4jg8mg?
00:12:39 -!- vravn_ has joined.
00:12:45 -!- clog has joined.
00:13:00 <ais523> to place code blocks on Esolang, either use <pre> to </pre>, or if it's simple, you can just start each line with a space
00:13:21 <fizzie> Trying to emulate the syntax highlighting in that screenshot is probably not advisable.
00:13:56 <fizzie> (It's kind of a mess.)
00:13:59 <CrazyM4n_> not the syntax highlighting, just the block :P
00:14:12 -!- qlkzy_ has joined.
00:14:39 <CrazyM4n_> someone should make BF/BF-like syntax highlighting automatic as it's so common
00:14:44 <fizzie> You can look at the "edit" page (or put ?action=raw after the URL) of an existing article to see how something was done there.
00:14:56 <CrazyM4n_> oh yea, it's a wiki
00:14:58 -!- FireFly has joined.
00:14:59 <CrazyM4n_> whoosh
00:15:50 <fizzie> There are probably a number of brainfuck syntax highlighters. I know sprunge.us does both brainfuck and befunge, at least.
00:16:39 <CrazyM4n_> that's quite nice
00:16:59 <CrazyM4n_> so i've seen people using sprunge.us instead of pastebin
00:17:07 <CrazyM4n_> is that reccomended? or is it just a choice
00:17:25 <fizzie> It's slightly less colorful, however. http://sprunge.us/FhaQ?bf is one of the wiki examples, and it just bolds []s and colorizes comments.
00:17:31 <zzo38> Some people prefer it; I prefer sprunge
00:17:46 <fizzie> It's just a choice, presumably due to to it being more convenient from the command line.
00:18:06 <zzo38> Yes
00:18:08 <fizzie> And maybe also because it doesn't add any extra cruft to the paste.
00:18:12 <CrazyM4n_> ah
00:18:27 <fizzie> (Though I'm sure there's command-line pastebin clients too, for the first thing.)
00:18:45 -!- mihow has quit (Quit: mihow).
00:19:03 <fizzie> http://sprunge.us/AhUR?befunge heh
00:19:10 <fizzie> Didn't really recognize the commens in there.
00:19:18 <fizzie> (Not a surprise.)
00:19:39 <fizzie> fungot: How do you feel about being so colorful?
00:19:40 <fungot> fizzie: mr president, there is a need to revise these priorities. an association agreement with egypt evokes very mixed feelings about the peace process in the field of energy.
00:19:52 <zzo38> And in sprunge if you simply omit the ? and next part, it is a raw file. So you can download as well as upload from command line.
00:20:52 <CrazyM4n_> wh-who would write such a long program in befunge
00:20:59 <CrazyM4n_> it's like self torture
00:21:08 -!- thomasfu` has joined.
00:21:16 <zzo38> Some people like this kind of torture
00:21:58 <Bike> excuse me?
00:22:18 <boily> good tortured evening y'all ^^
00:22:25 <CrazyM4n_> lol it was a joke
00:22:32 <CrazyM4n_> but still, it'd be a terrible pain to maintain
00:23:52 <zzo38> Did you see next one Dungeons&Dragons recording yet? It was yesterday but maybe you are not on yet?
00:25:09 -!- thomasfuston has quit (Ping timeout: 264 seconds).
00:26:21 <Bike> oh, i didn't see the context and thought zzo was just telling us about his kinks unprompted
00:26:24 <Bike> oops
00:27:38 <CrazyM4n_> that's great
00:27:56 <HackEgo> [wiki] [[Brainfunge]] http://esolangs.org/w/index.php?diff=40393&oldid=40392 * CrazyM4n * (+1775)
00:28:26 -!- variable has joined.
00:30:24 <CrazyM4n_> so the wikipage for brainfunge is practically done
00:30:24 <CrazyM4n_> http://esolangs.org/wiki/Brainfunge
00:30:25 <CrazyM4n_> :D
00:31:37 <zzo38> How can I precompute a dictionary for compression?
00:32:50 -!- callforjudgement has joined.
00:33:58 -!- nisstyre has joined.
00:35:22 -!- ais523 has quit (Ping timeout: 240 seconds).
00:35:24 <HackEgo> [wiki] [[Brainfunge]] http://esolangs.org/w/index.php?diff=40394&oldid=40393 * CrazyM4n * (+102)
00:50:51 -!- variable has quit (Ping timeout: 255 seconds).
00:51:42 <zzo38> I have a collection of text strings and want to make a static dictionary containing exactly ninety-six strings in order to improve compression (when one of these is a substring of another string (except one of these ninety-six), it is compressed to a two-character index). Note that entries in the dictionary are also usable as strings themselves.
00:51:42 <CrazyM4n_> so i finished the truth machine
00:51:45 <CrazyM4n_> it looks sweet
00:51:50 <zzo38> What kind of algorithm can be used?
00:53:18 <CrazyM4n_> why not just use a dict like is provided default in most languages?
00:53:58 <CrazyM4n_> also here's a truth machine in my language: http://sprunge.us/efZU
00:54:14 <zzo38> OK, then you should post it on the wiki
00:54:38 <CrazyM4n_> i'm doing it right now
00:55:03 <CrazyM4n_> (i know i'm making a really big deal over this, but cmon this is the first eso lang that i have made and IT'S SO COOL)
00:55:04 <zzo38> OK
00:55:41 <HackEgo> [wiki] [[Brainfunge]] http://esolangs.org/w/index.php?diff=40395&oldid=40394 * CrazyM4n * (+48)
00:56:40 -!- thomasfu` has quit (Read error: Connection reset by peer).
00:58:13 -!- boily has quit (Quit: SUPERLUMINARY CHICKEN).
00:59:27 -!- variable has joined.
00:59:48 <CrazyM4n_> "[Quit: SUPERLUMINARY CHICKEN]" he should probably do something about that
01:01:06 <zzo38> Why?
01:01:30 <CrazyM4n_> i didn't mean as in change it
01:01:46 <CrazyM4n_> i meant as in "he should fix his chicken"
01:02:06 <CrazyM4n_> i was making a joke :P
01:03:22 <zzo38> Fix the chicken?
01:03:57 <zzo38> You wrote "why not just use a dict like is provided default in most languages?" but I do not understand.
01:09:16 <CrazyM4n_> oh
01:10:01 <CrazyM4n_> like, https://docs.python.org/3.4/library/stdtypes.html#typesmapping for example
01:10:03 -!- Lorenzo64 has quit (Ping timeout: 246 seconds).
01:10:44 -!- lollo64it has quit (Ping timeout: 276 seconds).
01:12:32 <zzo38> It isn't what I am looking for though at all
01:13:25 <zzo38> Rather it is dictionary compression I am asking about; it has nothing to do with that.
01:15:44 -!- callforjudgement has quit.
01:18:03 <CrazyM4n_> ah
01:18:48 <CrazyM4n_> can i use a case statement into a do block?
01:18:50 <Jafet> If you have a large number of small strings, exhaustive search should be efficient.
01:19:01 <CrazyM4n_> err, wrong irc, sorry, lol
01:19:21 <Jafet> Or rather, sufficient.
01:26:07 -!- Lorenzo64 has joined.
01:26:16 <zzo38> Can you give an example? Some of the strings may be pretty long, for one thing
01:34:21 -!- nisstyre has quit (Quit: WeeChat 0.4.3).
01:35:08 -!- nisstyre has joined.
01:40:21 <HackEgo> [wiki] [[Truth-machine]] http://esolangs.org/w/index.php?diff=40396&oldid=39536 * CrazyM4n * (+58) brainfunge
01:42:47 -!- doesthiswork has quit (Quit: Leaving.).
01:47:32 -!- conehead has joined.
01:48:53 -!- doesthiswork has joined.
01:49:16 <CrazyM4n_> so
01:49:19 <CrazyM4n_> in brainfunge
01:49:36 <CrazyM4n_> right now, by accident, getting characters can get the "enter" character
01:49:41 <CrazyM4n_> should i get rid of that lol
01:50:04 <CrazyM4n_> i think i will
01:54:19 <quintopia> hi CrazyM4n_
01:58:39 <Melvar> CrazyM4n_: You mean you don’t want to be able to read newlines?
02:01:35 <CrazyM4n_> oh
02:01:53 <CrazyM4n_> yea, right now it's reading newlines in the read character command
02:02:00 <CrazyM4n_> i have to remove it, it's kinda broken
02:06:28 -!- sebbu has joined.
02:07:04 -!- sebbu has quit (Changing host).
02:07:04 -!- sebbu has joined.
02:11:31 <CrazyM4n_> http://prntscr.com/4jh5il fancyy
02:14:22 <HackEgo> [wiki] [[Brainfunge]] http://esolangs.org/w/index.php?diff=40397&oldid=40395 * CrazyM4n * (+1) /* Syntax */
02:15:24 <HackEgo> [wiki] [[Truth-machine]] http://esolangs.org/w/index.php?diff=40398&oldid=40396 * CrazyM4n * (+6) /* Brainfunge */
02:16:52 <zzo38> An exhausive search would seem to be slow to do this kind of comperssions
02:32:44 -!- CrazyM4n_ has quit (Quit: Page closed).
02:33:16 <Jafet> > let subs = filter(not.null) . (inits>=>tails); sub x y = r where{ r "" = ""; r s@(c:t) | isPrefixOf x s = y ++ r (length x`drop`s) | True = c:r t }; size = sum.map length; comp ss (y:ys) | sz'<size ss = first ((y,x):) $ comp ss' ys | True = ([],ss) where{ (sz',x,ss') = minimum [ (size ss'+length x,x,ss') | x <- map head.group.sort $ subs=<<ss, let ss' = sub x y<$>ss ]} in comp ["abcdabc", "bbcababc", "badbadcab"] (show<$>[0..])
02:33:18 <lambdabot> ([("0","ab"),("1","0c"),("2","bad")],["1d1","bbc01","22c0"])
02:38:11 <zzo38> OK, although still in the case I am doing, it is C and furthermore the things like ("1","0c") is not allowed (although it is allowed if the reference only occurs at the end of the string and the reference is only to the next string in the compression table)
03:05:10 -!- not^v has joined.
03:16:09 -!- Melvar has quit (Ping timeout: 264 seconds).
03:29:21 -!- masoudd has quit (Ping timeout: 246 seconds).
03:32:48 -!- Melvar has joined.
04:01:25 -!- oerjan has joined.
04:02:18 <oerjan> @messages-
04:02:18 <lambdabot> ais523 asked 6h 34m 43s ago: in onoz, do nested [] have BF or onoz semantics? and does it matter for the purpose behind the language?
04:08:08 <oerjan> @tell ais523 I don't remember, but I am assuming whatever variant I suggested would make intermediate []s have onoz semantics, and it certainly should matter...
04:08:08 <lambdabot> Consider it noted.
04:08:38 -!- conehead has quit (Quit: Computer has gone to sleep).
04:08:46 <shachaf> oerjan: Matter in ais523's sense?
04:09:52 <oerjan> what was his sense? since it is computable anyhow it should be emulatable in ordinary BF regardless.
04:10:41 <oerjan> i suppose this may wait until i actually get to that in the logs.
04:11:09 <Bike> 14:31 < ais523> Bicyclidine: a language which is a) computable; b) cannot be proven to not halt
04:11:29 <shachaf> Oh, I assumed you only @message when you reach the @ask in the logs.
04:12:25 <oerjan> no, i always search for my name first. and i @message first because that way i don't get the annoying ping by lambdabot for something i already know.
04:13:09 <shachaf> what if someone sends you a private message
04:13:23 <oerjan> then i'll know when i actually speak.
04:13:34 <oerjan> and the logs won't tell me anyhow.
04:14:01 <shachaf> I mean: If someone sends you a message in here and someone else sends you a private message.
04:14:59 <oerjan> right. i've considered that possibility, and since i get messages so rarely i don't bother to compensate for it.
04:15:55 <oerjan> of course it might be that people don't dare to send me private secret @tells because they know i use @messages-loud (smart move)
04:16:49 <shachaf> I don't bother to send you messages in here because you logread them anyway.
04:16:54 <oerjan> heh
04:29:50 -!- MDude has changed nick to MDream.
04:30:02 <zzo38> I might or might not log read messages, but if you post stuff on my talk page on esolang wiki I might find it.
04:32:05 <zzo38> In addition to this IRC, you can also try to reach me on my own IRC but I might not be near my computer and I might not hear it. And if you really want to you can even try postal mail (mail the manager of my domain name and mention on the envelope to forward it to me).
04:34:34 <oerjan> nah i'll just ring the bell on every door in bc until i find you hth
04:35:04 <oerjan> admittedly that may take a while.
04:37:27 <zzo38> Before that happens, you might get tired and sleep and then the police will catch you and take to you jail in the night time while you are sleeping on the road.
04:37:39 <oerjan> fiendish
04:39:41 <shachaf> do you live in Delta, BC
04:40:37 <oerjan> shachaf: hey wait a minute i thought the creepy stalking was _my_ job
04:41:02 <shachaf> oerjan: your strategy isn't very effective hth
04:41:13 <shachaf> also he just told us where the information is
04:41:18 <zzo38> shachaf: What do *you* think? (Remember that you can use geo IP and other methods to try to figure out. Such thing is not always effective though, but it often is.)
04:41:18 <oerjan> well i did secret consider using the phone book for filtering a bit
04:41:21 <shachaf> so it's not much of a secret
04:41:37 <oerjan> *-ly
04:41:43 <oerjan> *+-ly
04:43:37 <zzo38> It is not a secret if you are going to tell someone you are using the phone book for filtering a bit.
04:44:02 <shachaf> oerjan: which phone book, though
04:44:10 <shachaf> zzo38: I think yes but I'm not sure.
04:44:56 <oerjan> bc has more than one? fiendish.
04:45:28 <zzo38> oerjan: Yes, I think it has many phone books.
04:45:39 <shachaf> uncountably many phone books
04:47:19 <oerjan> oh i somehow read manager as registrar, i guess it make slightly more sense then.
04:47:26 <oerjan> *makes
05:12:39 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
05:15:04 -!- Lorenzo64 has quit (Quit: Leaving).
05:32:11 -!- MoALTz has quit (Quit: Leaving).
06:18:50 -!- impomatic_ has joined.
06:21:54 <oerjan> as of girl genius, i'm suddenly getting a small hunch lady selnikov is _not_ one of the good guys.
06:29:07 <mroman_> ah. mueval breaks happstack :(
06:29:42 <int-e> "breaks", hmm.
06:33:57 <mroman_> it downgrades packages
06:36:11 <int-e> is it transformers? anything that depends on transformers-0.4.* will break the ghc package, which mueval depends on (via hint)
06:38:13 <mroman_> bytestring
06:40:30 <int-e> hmm, I don't see it; cabal install --dry-run happstack produces a subset of cabal install --dry-run mueval for me
06:41:04 <int-e> which does not contain bytestring, only base64-bytestring-1.0.0.1
06:41:23 <mroman_> utf8-string-0.3.8 (reinstall) changes: bytestring-0.10.4.0 -> 0.9.2.1
06:41:59 <int-e> what is your ghc version?
06:42:03 <mroman_> 7.4.1
06:42:11 <oerjan> ...duh.
06:42:12 <int-e> oh. o-kay.
06:42:22 <int-e> try 7.8.3, that should help.
06:43:43 <int-e> mroman_: the cause is the same; the ghc package depends on bytestring, and presumably bytestring-0.9.2.1 is the version that shipped with ghc-7.4.1.
06:46:17 <int-e> Oh. I can check myself: ghc-pkg list bytestring \ /opt/ghc-7.4.1/lib/ghc-7.4.1/package.conf.d \ bytestring-0.9.2.1
07:10:04 <mroman_> *compiling 7.8.3*
07:10:10 <int-e> oerjan: I can't wait for Agatha to be killed and be revived in one of Wulfenbach's tanks... :-P (unlikely to happen, I know, but wouldn't it be a great twist...)
07:10:26 <int-e> oh. vats
07:10:34 <mroman_> "For most users, we recommend installing the Haskell Platform instead of GHC. " <- what's this warning anyway
07:10:42 <mroman_> haskell platform doesn't ship a compiler?!?
07:11:08 <Taneb> Haskell Platform includes a Haskell compiler
07:11:10 <oerjan> well she's already died once, albeit briefly
07:11:12 <mroman_> really?
07:11:18 <mroman_> that somehow never worked for me
07:11:48 <int-e> oerjan: even more unlikely because we've just had this time traveling episode. Hmm.
07:12:04 <mroman_> Taneb: the source distribution?
07:12:43 <Taneb> http://www.haskell.org/platform/contents.html it includes GHC
07:12:43 <oerjan> int-e: well i'm not _sure_ we should consider the intermission stories canonical.
07:12:55 <int-e> oerjan: oh you mean that strange disease in the dungeons, where to rescue everybody, everybody had to die?
07:13:02 <oerjan> especially when not made by the foglios themselves
07:13:24 <int-e> oerjan: I don't mean that intermission
07:13:26 <oerjan> int-e: yeah.
07:13:38 <mroman_> yeah, but not the source distribution
07:13:53 <oerjan> which time travel episode are you talking about then
07:13:56 <int-e> oerjan: I mean the massively delayed portal out of Mechanicsburg.
07:14:01 <oerjan> oh that
07:14:10 <mroman_> building from the source usually required building the new ghc first
07:14:15 <mroman_> and then build the haskell-plattform with it
07:14:31 <mroman_> but I see the new platform doesn't have the ./configure && make style anymore :(
07:14:46 <int-e> oerjan: which felt like a major story reset to me (ok, we're still there, but all the world around has changed)
07:15:17 <oerjan> perhaps
07:16:57 <mroman_> is cabal shipped part of ghc or in the hp?
07:17:09 <oerjan> ghc needs cabal iirc
07:17:33 <oerjan> although there are suggestions to reduce the necessary intertwining
07:17:33 <int-e> it needs Cabal the library
07:17:36 <b_jonas> mroman_: I think only the binary distro of the "haskell platform" ships ghc,
07:17:41 <b_jonas> the source doesn't
07:17:51 <mroman_> Yep
07:17:58 <mroman_> source requires an existing build env
07:18:18 <oerjan> i recall someone previously complaining that they couldn't use a self-compiled ghc to install platform with the new system
07:18:18 <mroman_> building with 8 cores sure is fast :)
07:18:26 <oerjan> because it _demands_ a binary tarball
07:18:35 <int-e> the HP ships cabal the executable (provided by the cabal-install package)
07:18:39 <mroman_> although I already have cabal 1.20 or something in my ~./cabal/bin
07:18:49 <mroman_> Can I still use that after upgrade ghc to 7.8.3?
07:18:54 <int-e> yes
07:19:01 <mroman_> (i'll find out sooner or later anyway)
07:19:08 <mroman_> but I need to install packages again
07:19:09 <mroman_> that's for sure
07:19:23 <oerjan> well all ghc upgrading requires reinstalling all libraries
07:19:31 <int-e> yes, you can use that cabal binary with the new ghc.
07:19:32 <oerjan> because no ABI compatibility
07:20:26 <oerjan> (massing cross-module inlining _would_ tend to do that, i guess)
07:20:34 <int-e> oerjan: he means the cabal-install executable
07:20:39 <elliott> oerjan: you can just make a binary tarball when compiling ghc yourself?
07:20:50 <oerjan> i sort of realized but i kept blathering anyhow :P
07:21:15 <mroman_> I recently wanted to build ghc on a VM
07:21:18 <mroman_> no chance of doing that
07:21:21 <oerjan> elliott: i suppose that's _possible_ somehow, but i don't think the easy places to find contain instructions on how to do it?
07:21:29 <oerjan> (not that i've ever tried)
07:21:31 <int-e> mroman_: and why not?
07:21:41 <mroman_> you can't build it without +512MB of RAM
07:21:43 <elliott> oerjan: it's probably make dist or something like that
07:21:48 <int-e> mroman_: all you need is oh-a-bit-more-than-1GB of RAM. :P
07:22:05 <mroman_> I.e. I know you can't build it with 512MB
07:22:06 <oerjan> elliott: hm you might want to tell this to mroman_ then :)
07:22:23 <int-e> (Actually 512MB + 512MB swap works for building ghc.)
07:22:41 <mroman_> My VM doesn't have Swap :)
07:22:46 <elliott> oerjan: well, I don't want to do the investigation myself :p
07:22:51 <mroman_> not enough disk space for a swap
07:23:01 <elliott> your VM had less than 512 megabytes of disk?
07:23:04 <mroman_> because ghc takes a looooot of disk space
07:23:13 <mroman_> elliott: No.
07:23:18 <mroman_> but there's a system on that disk too
07:23:24 <mroman_> and ghc source is pretty huge
07:23:44 <mroman_> It's 10MB when you download it
07:23:51 <mroman_> but it's gets freaking huge once it's building things
07:24:00 <mroman_> *it
07:24:14 <int-e> 840MB here
07:24:42 <mroman_> GHC is too fat for small VMs ;)
07:24:51 <int-e> a neat dynamic-only build, no profiling, no split objs.
07:25:19 <int-e> only 200 MB installed size.
07:25:26 <fizzie> Mine has 256M of RAM and 512M of swap. I don't think I'll try building GHC on it any time soon.
07:26:03 <int-e> the real fun comes with regex-tdfa and haskell-src-exts
07:26:26 <int-e> each containing 2 modules (I think) that require almost 1GB to compile.
07:26:37 <int-e> both are dependencies of lambdabot. Fun.
07:26:38 <mroman_> some Dyn*.o requires a lot of RAM
07:26:43 <mroman_> DynFlags?
07:26:46 <mroman_> I think it was
07:26:57 <int-e> yes, but it's still way less than 1GB
07:27:32 <elliott> haskell-src-exts is awful
07:27:35 <elliott> what does regex-tdfa do?
07:27:47 <int-e> it matches regular expressions
07:27:59 <int-e> "tdfa" is Thompson's Deterministic Finite Automaton
07:28:27 <Taneb> Does being an invariant imply being a precondition?
07:29:08 <int-e> no
07:29:21 <mroman_> I had an older laptop once
07:29:22 <int-e> an invariant can be a value of any type.
07:29:28 <mroman_> I couldn't get GHC to compile on it too :)
07:29:34 <mroman_> but not because of memory
07:29:55 <mroman_> It overheated some hours into compilation
07:29:59 <mroman_> :(
07:30:29 <mroman_> It ran fine for everything except compiling for hours.
07:31:01 <mroman_> Although I might have been able to compile it by adjusting cpufreq
07:31:08 <mroman_> I vaguely remember something like that
07:31:39 <mroman_> It took something in the range of 6-8 hourse
07:32:38 <mroman_> I dare you to compile it on a 166 MHz P1 .
07:34:27 <mroman_> btw. If I were to write an interpreter for assembly
07:34:40 <mroman_> How does one simulate Memory in Haskell efficiently?
07:34:50 <mroman_> i.e. a mutable array actually
07:34:55 <int-e> use ST mutable arrays?
07:36:00 <elliott> int-e: I mean, what does it do to compile so slowly?
07:36:07 <b_jonas> int-e: or ST mutable unboxed numeric arrays
07:39:03 <mroman_> Damn Facebook is driving up my phone bills !
07:43:28 <mroman_> Interesting.
07:43:49 <mroman_> Sign a secret contract with a phone provider, write an app that "preloads" a buttload of data
07:44:12 <mroman_> share the money made with the data-amount charges by the phone provider
07:44:46 <int-e> elliott: I really cannot say. overzealous inlining? http://hackage.haskell.org/package/regex-tdfa-1.2.0/docs/src/Text-Regex-TDFA-NewDFA-Engine_FA.html takes >600M to compile.
07:45:10 <int-e> (it uses SPECIALIZE, too.)
07:45:23 <elliott> impressive.
07:46:12 -!- miko__ has joined.
07:46:29 <mroman_> Is GHC that inefficient with RAM or does it just do crazy things that unavoidably require a buttload of memory?
07:47:03 <oerjan> porque no los dos
07:47:58 <mroman_> puh
07:48:04 <mroman_> I had only one semester of spanish
07:48:06 <mroman_> and I sucked
07:48:10 <int-e> I would say that low memory usage is definitely not a design goal of ghc.
07:48:26 <oerjan> mroman_: it's an advertising meme, anyhow
07:49:12 <oerjan> int-e: you'd think they'd at least try a _little_.
07:49:35 <Jafet> ghc is so good at gobbling memory, ld will thrash sympathetically even when ghc isn't running
07:49:59 <olsner> 600MB doesn't seem like that much for an optimizing compiler
07:50:40 <int-e> . o O ( but! it would take 1000 IBM PCs to even contain that mucb memory! )
07:52:25 <mroman_> Yeah. I mean if you buy a PC today it's got 16GB of RAM.
07:52:28 <mroman_> .
07:52:51 <mroman_> and Linux will allocate 20GB of Swap
07:54:50 <elliott> uh, that's unlikely.
07:54:54 <mroman_> well
07:54:58 <mroman_> I have 8GB RAM on my machine here
07:55:02 <mroman_> and 10GB of Swap
07:55:23 <elliott> installers generally or at least should handle large amounts of memory differently when calculating swap size.
07:55:26 <mroman_> which hints that Linux will alocate RAM*c GB of swap
07:55:29 <mroman_> where c is some factor
07:55:41 <mroman_> and it hints that swap > RAM
07:55:54 <elliott> "Linux" doesn't allocate swap.
07:55:58 <mroman_> yeah
07:56:00 <mroman_> the installer does
07:56:06 <mroman_> I hate Linux
07:56:15 <mroman_> For Windows you can just say "windows does that"
07:56:22 <mroman_> but for Linux...
07:56:30 <olsner> technically you allocated the swap, but you might not have been looking when you clicked through the default
07:56:42 <mroman_> "No, it's not Linux. It's that tool written by that guy that is bundled with "Linux" that does that"
07:57:22 <mroman_> of course not @olsner
07:57:42 <mroman_> That's why there's "[x] use default recommended settings"
07:58:19 <olsner> but the defaults are always completely wrong
07:59:04 <mroman_> and yes, honestly I'm too lazy to check if recommended settings are really _that_ good as they _should_ be
07:59:41 <mroman_> either too lazy or I wouldn't know it better anyway
07:59:59 <mroman_> I can honestly say that I'm comfortable using Linux but I don't really know much about it
08:00:13 <mroman_> and by Linux I mean "Debian/Ubuntu" (for the purists here)
08:01:27 <mroman_> back in the days people ran around saying "you need RAM*1.5 Bytes of Swap"
08:02:14 <mroman_> (where back in the days means like 8 years ago)
08:03:21 <J_Arcane> Default swap tends to be smaller now.
08:07:49 <mroman_> > 9918/8021
08:07:51 <lambdabot> can't find file: L.hs
08:07:53 <mroman_> > 9918/8021
08:07:55 <lambdabot> 1.2365041765365914
08:08:03 <mroman_> Would somebody pls just create a L.hs .
08:08:16 <mroman_> ^- my RAM to SWAP ratio
08:08:43 <mroman_> it's a 32bit Linux though
08:11:40 <int-e> Of course with Linux you don't even need swap space to swap. mmap will do the trick just fine.
08:12:31 -!- miko__ has quit (Remote host closed the connection).
08:13:27 <int-e> (It still is a really, really good idea to have some swap space, just for that reason. Then when memory grows tight because a process keeps allocating memory, rather than swapping out the comparitively small mmap-ed binaries and shared objects, the kernel can also swap out data of the fast allocating process, increasing the chance of getting other programs to respond.)
08:13:39 <b_jonas> mroman_: yes, that was because ram was small back then
08:14:19 <mroman_> int-e: if you have enough physicall memory available yes
08:14:33 <mroman_> but sooner or later you have to swap out pages to disk
08:14:38 <mroman_> (if programs consume too much)
08:15:10 <int-e> mroman_: ... how does that relate to my statement?
08:15:14 <mroman_> mmap
08:15:17 <mroman_> that's just paging
08:15:50 <mroman_> swapping without paging would be even harder
08:15:57 <int-e> the point is that conceptually, mmap pages to any file system, not necessarily to dedicated swap space.
08:16:03 <mroman_> since then programs would need a continous block of physical memory
08:16:07 <mroman_> *because
08:16:25 <mroman_> int-e: oh.
08:16:26 <mroman_> Ok.
08:16:39 <mroman_> You mean you can page into a file rather than into a swap partition?
08:16:44 <int-e> yes
08:18:43 <mroman_> windows does that too
08:19:09 <mroman_> hm..
08:19:24 <mroman_> Swapping to a memory mapped file system ought to be cool .
08:21:11 -!- lambdabot has quit (Quit: Who's that knocking on the door?).
08:22:56 <oerjan> int-e: maybe you should put some kind of lock on the commands that access L.hs
08:23:43 <int-e> oerjan: I know.
08:24:10 -!- Patashu has joined.
08:24:55 <int-e> the whole mueval / hint / @eval / @let story is a bit fragile and quite ugly in the details
08:25:30 -!- lambdabot has joined.
08:26:05 <int-e> oerjan: http://sprunge.us/OaKI is another issue with it.
08:28:33 <int-e> oerjan: I believe the main problem is that mueval copies the L.hs file to /tmp/, and later deletes it, and somehow several mueval processes get started in parallel from time to time.
08:28:56 -!- Patashu_ has joined.
08:29:01 <shachaf> sounds like L.hs is suffering from a remueval issue
08:29:05 -!- Patashu has quit (Disconnected by services).
08:29:13 * oerjan swats shachaf -----###
08:29:42 <int-e> oerjan: in any case ... feel free to investigate, I'm staying away from that code for now. :-P
08:29:47 <oerjan> eek
08:30:00 <shachaf> oerjan: it's been so long
08:30:14 * oerjan is _not_ about to compile lambdabot himself any time soon.
08:31:11 <oerjan> a swatter for a more civilized age
08:31:35 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
08:31:48 <shachaf> 44?
08:31:50 <b_jonas> > replicate "twice "
08:31:51 <lambdabot> Couldn't match expected type ‘GHC.Types.Int’
08:31:51 <lambdabot> with actual type ‘[GHC.Types.Char]’
08:32:03 <b_jonas> > cycle "twice "
08:32:04 <lambdabot> "twice twice twice twice twice twice twice twice twice twice twice twice twi...
08:32:06 <b_jonas> better
08:32:10 -!- Patashu_ has quit (Remote host closed the connection).
08:32:29 <oerjan> > replicate 2 "twice "
08:32:30 <lambdabot> ["twice ","twice "]
08:33:00 -!- Patashu has joined.
08:34:35 <b_jonas> > map fromEnum "twice "
08:34:36 <lambdabot> [116,119,105,99,101,32]
08:35:43 <mroman_> > fromEnum True
08:35:44 <lambdabot> 1
08:35:48 <mroman_> > next $ fromEnum True
08:35:49 <lambdabot> No instance for (System.Random.RandomGen GHC.Types.Int)
08:35:49 <lambdabot> arising from a use of ‘System.Random.next’
08:35:53 <mroman_> hm
08:35:56 <mroman_> or was it succ
08:36:02 <mroman_> what's succ for Enums?
08:36:08 <mroman_> @type succ
08:36:09 <lambdabot> Enum a => a -> a
08:36:12 <mroman_> ah
08:36:13 <mroman_> :D
08:36:24 <mroman_> > toEnum . succ $ fromEnum True
08:36:25 <lambdabot> *Exception: Prelude.Enum.().toEnum: bad argument
08:36:30 <mroman_> > toEnum . succ $ fromEnum False
08:36:32 <lambdabot> *Exception: Prelude.Enum.().toEnum: bad argument
08:36:40 <mroman_> what
08:37:34 <mroman_> > fromEnum False
08:37:36 <lambdabot> can't find file: L.hs
08:37:40 <mroman_> > fromEnum False
08:37:42 <lambdabot> 0
08:37:58 <mroman_> > (toEnum . succ $ fromEnum False) :: Bool
08:37:59 <lambdabot> True
08:42:08 <oerjan> mroman_: i think your toEnum is defaulting to ()
08:42:28 <oerjan> > toEnum 0
08:42:29 <lambdabot> ()
08:45:37 <shachaf> pft, tagToEnum# is the way to go
08:45:59 <shachaf> tagToEnum# is such a powerful function that it doesn't even have a type
08:47:42 <int-e> owie. TMPDIR will not help me ... ./Mueval/Interpreter.hs: setCurrentDirectory "/tmp" -- will at least mess up relative links
08:49:34 <int-e> (I just realized that the muevals running concurrently may be my own fault, since at some point I started collecting statistics about how long those commands take to run ... I'd like to continue doing that, because I believe it has reduced the number of evaluation timeouts, by keeping the required shared libraries hot in the fs cache ... grrr.)
08:55:53 <mroman_> @type tagToEnum#
08:55:54 <lambdabot> Not in scope: ‘tagToEnum#’
08:56:05 <mroman_> > tagToEnum# 0
08:56:06 <lambdabot> Not in scope: ‘tagToEnum#’
08:56:28 <int-e> @type GHC.Exts.tagToEnum#
08:56:29 <lambdabot> tagToEnum# must appear applied to one argument
08:56:29 <lambdabot> In the expression: GHC.Prim.tagToEnum#
08:56:38 <int-e> @type GHC.Exts.tagToEnum# 0
08:56:39 <lambdabot> tagToEnum# must appear applied to one argument
08:56:39 <lambdabot> In the expression: GHC.Prim.tagToEnum# 0
08:56:55 <int-e> @type GHC.Exts.tagToEnum# 0#
08:56:56 <lambdabot> tagToEnum# must appear applied to one argument
08:56:56 <lambdabot> In the expression: GHC.Prim.tagToEnum# 0#
08:57:00 * int-e shrugs
08:57:02 <shachaf> :t GHC.Exts.tagToEnum# 0# :: Bool
08:57:03 <lambdabot> Bool
08:57:36 <shachaf> imo import GHC.Exts in L.hs
08:57:39 <shachaf> can't hurt, right?
08:57:51 <shachaf> :t GHC.Exts.the -- useful function right here
08:57:52 <lambdabot> Eq a => [a] -> a
08:57:59 <int-e> shachaf: I hear you want to take over running lambdabot now?!
08:58:03 <mroman_> hu
08:58:10 <mroman_> > GHC.Exts.the [1,2,3]
08:58:11 <lambdabot> Not in scope: ‘GHC.Exts.the’
08:58:20 <shachaf> int-e: does that mean putting me on the admin list
08:58:24 <shachaf> that would be useful
08:58:25 <mroman_> :t GHC.Exts.the
08:58:26 <lambdabot> Eq a => [a] -> a
08:58:33 <mroman_> wait... you can ask for the type but not call it?
08:58:39 <shachaf> Correct.
08:58:44 <int-e> shachaf: sure, if you run it, you have full access to the admin list :-P
08:58:58 <shachaf> I don't want to run it. But thanks.
08:59:06 <shachaf> I hear it's a sort of curse.
09:00:20 <int-e> oh it's not so bad since I had a long talk with it and convinced it to reconnect automatically, rather than hanging around waiting for messages on a tcp connection long gone.
09:00:46 <int-e> it sure cut down on the "lambdabot is down again!" complaints.
09:02:19 <shachaf> well, i can keep getting @admin powers illegitimately instead
09:02:29 <shachaf> or i can not do that either if you'd prefer i stop
09:04:37 <int-e> I just don't have the impression that lack of people with lambdabot admin access is an actual issue.
09:06:03 <shachaf> that depends
09:07:51 <oerjan> @tell CrazyM4n <CrazyM4n_> err, wrong irc, sorry, lol <-- No worries, #esoteric is sometimes nearly as haskelly as #haskell.
09:07:51 <lambdabot> Consider it noted.
09:14:01 <elliott> you didn't stop doing it when I asked when I ran it.
09:14:48 <oerjan> it is possible shachaf may have grown up a bit, i hear people sometimes do.
09:15:50 <shachaf> i wouldn't put it that way
09:16:01 <oerjan> (not me, though, that would be crazy talk.)
09:26:47 <oerjan> > undefined <> undefined :: ()
09:26:49 <lambdabot> ()
09:52:08 -!- Patashu has quit (Remote host closed the connection).
09:53:01 -!- Patashu has joined.
09:58:55 -!- doesthiswork has quit (Quit: Leaving.).
10:04:30 -!- oerjan has quit (Quit: Later).
10:12:14 <mroman_> @type (<>)
10:12:15 <lambdabot> Monoid m => m -> m -> m
10:12:36 -!- boily has joined.
10:12:39 <mroman_> > Just 5 <> Just 6
10:12:41 <lambdabot> No instance for (GHC.Show.Show a0)
10:12:41 <lambdabot> arising from a use of ‘M30885628829344643438606.show_M30885628829344643438...
10:12:41 <lambdabot> The type variable ‘a0’ is ambiguous
10:12:41 <lambdabot> Note: there are several potential instances:
10:12:41 <lambdabot> instance [safe] GHC.Show.Show
10:12:59 <mroman_> M30885628829344643438606.show_M30885628829344643438...
10:13:01 <mroman_> ah yes..
10:13:06 <mroman_> that's human readable
10:13:37 <mroman_> > (Just 5 <> Just 6) :: Maybe Int
10:13:38 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
10:13:39 <lambdabot> arising from a use of ‘Data.Monoid.<>’
10:13:44 <mroman_> but that won't work anyway
10:13:45 <mroman_> I guess
10:17:33 <boily> :t First
10:17:34 <lambdabot> Maybe a -> First a
10:17:56 <boily> > First (Just 5) <> First (Just 6)
10:17:58 <lambdabot> First {getFirst = Just 5}
10:18:26 <boily> mroman_: probably something like that? (with an hypothetical getFirst too)
10:29:03 <mroman_> Never heard of First
10:29:06 <mroman_> :i First
10:29:11 <mroman_> @info First
10:29:12 <lambdabot> First
10:29:22 <mroman_> :t First (Just 5)
10:29:22 <lambdabot> Num a => First a
10:29:42 <mroman_> :t Second
10:29:42 <lambdabot> Not in scope: data constructor ‘Second’
10:29:48 <int-e> it's Last
10:30:03 <mroman_> > Last (Just 5) <> Last (Just 6)
10:30:06 <lambdabot> Last {getLast = Just 6}
10:30:49 <mroman_> @hoogle Last
10:30:50 <lambdabot> Data.Monoid Last :: Maybe a -> Last a
10:30:50 <lambdabot> Data.Monoid newtype Last a
10:30:50 <lambdabot> package Lastik
10:30:57 <int-e> @info do foo; bar; baz
10:30:57 <lambdabot> foo >> bar >> baz
10:31:22 <mroman_> yeah
10:31:34 <mroman_> Wrapper Types for Monoids
10:32:15 -!- AnotherTest has joined.
10:33:18 <boily> I'd say something along the line that they are easy, but then I fear I'd have to mapole myself afterwards.
10:34:40 <int-e> you can mapole yourself anyway
10:36:04 * boily glares at int-e
10:36:21 * boily mapoles himself anyway
10:38:01 <Jafet> Monoids are so easy, you can define them without knowing the type
10:38:09 <Jafet> https://github.com/NICTA/l4v/blob/master/lib/sep_algebra/Arbitrary_Comm_Monoid.thy
10:41:57 <mroman_> Monoids are easy
10:43:43 <mroman_> > Just 5 `mappend` Just 6
10:43:45 <lambdabot> No instance for (GHC.Show.Show a0)
10:43:45 <lambdabot> arising from a use of ‘M77188534113158008669061.show_M77188534113158008669...
10:43:45 <lambdabot> The type variable ‘a0’ is ambiguous
10:43:45 <lambdabot> Note: there are several potential instances:
10:43:45 <lambdabot> instance [safe] GHC.Show.Show
10:43:55 <mroman_> > (Just 5 `mappend` Just 6) :: Maybe Int
10:43:56 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
10:43:56 <lambdabot> arising from a use of ‘Data.Monoid.mappend’
10:44:00 <fizzie> zyxwvuts: Good show.
10:44:02 <fizzie> Whoops.
10:44:02 <mroman_> :(
10:44:15 <mroman_> > ((Just 5) `mappend` (Just 6)) :: Maybe Int
10:44:16 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
10:44:16 <lambdabot> arising from a use of ‘Data.Monoid.mappend’
10:44:18 <fizzie> (I had a "nick:" prefix in the input buffer I didn't notice.)
10:44:24 <mroman_> I thought there was something like that
10:44:25 <Jafet> Good name
10:44:33 <mroman_> that passes through Nothing if one is Nothing
10:44:34 <int-e> Jafet: interesting. I expected (\a b -> if a = e then b else a) [this is, essentially, First, where 'e' is interpreted as First Nothing], with no case distinction on the number of elements.
10:44:37 <mroman_> or the last that wasn't Nothing
10:45:30 <mroman_> or was that Monad Maybe
10:45:43 <Jafet> int-e: that isn't commutative
10:45:45 <mroman_> > (Just 5) >> Nothing >> (Just 6)
10:45:46 <int-e> Jafet: oh. never mind, you want something... right
10:45:47 <lambdabot> Nothing
10:45:53 <Jafet> That's why you need the second arbitrary thing
10:45:53 <mroman_> > (Just 5) >> (Just Nothing) >> (Just 6)
10:45:55 <lambdabot> Just 6
10:46:03 <mroman_> yeah. Monad Maybe
10:46:32 <mroman_> > any [False,True,False]
10:46:34 <lambdabot> Couldn't match expected type ‘a -> GHC.Types.Bool’
10:46:34 <lambdabot> with actual type ‘[GHC.Types.Bool]’
10:46:45 <mroman_> > map Any [False,True,False]
10:46:46 <lambdabot> [Any {getAny = False},Any {getAny = True},Any {getAny = False}]
10:46:52 <mroman_> > mconcat $ map Any [False,True,False]
10:46:53 <lambdabot> Any {getAny = True}
10:47:06 <mroman_> there should be mconcatMap
10:47:10 <fizzie> > Just 5 `mplus` Just 6 -- that's a thing
10:47:11 <lambdabot> Just 5
10:47:29 <mroman_> > msum [Just 5, Just 6]
10:47:31 <lambdabot> Just 5
10:47:36 <mroman_> > msum [Just 5, Just 6, Nothing]
10:47:38 <lambdabot> Just 5
10:47:50 <fizzie> > msum [Nothing, Just 1]
10:47:51 <lambdabot> Just 1
10:51:40 <mroman_> it takes the first non-nothing
10:51:47 <mroman_> happstack uses that stuff for routes
10:52:03 <fizzie> > (Nothing <|> Just 1, Just 2 <|> Nothing)
10:52:05 <lambdabot> (Just 1,Just 2)
10:52:15 <fizzie> So many instances, so little time.
10:56:34 <Jafet> @instances Monoid
10:56:35 <lambdabot> (), (a -> b), (a, b), (a, b, c), All, Any, Dual a, Endo a, First a, Last a, Maybe a, Ordering, Product a, Sum a, [a]
10:56:38 <Jafet> @instances MonadPlus
10:56:39 <lambdabot> ArrowMonad a, Either e, ErrorT e m, IO, Maybe, RWST r w s m, ReaderT r m, StateT s m, WriterT w m, []
10:56:48 <Jafet> @instances Foldable
10:56:48 <lambdabot> Couldn't find class `Foldable'. Try @instances-importing
10:56:51 <fizzie> @instances Applicative
10:56:51 <lambdabot> Couldn't find class `Applicative'. Try @instances-importing
10:56:57 -!- conehead has joined.
10:57:02 <Jafet> @instances Data.Foldable.Foldable
10:57:03 <lambdabot> ((,) a), Either a, Maybe, [], f =>
10:57:03 <lambdabot> Data.Foldable.Foldable (ErrorT e f), f =>
10:57:03 <lambdabot> Data.Foldable.Foldable (WriterT w f)
11:09:58 -!- boily has quit (Quit: CARIOTID CHICKEN).
11:45:44 -!- Tod-Autojoined has joined.
11:49:56 -!- quintopi1 has joined.
11:50:12 -!- erdic_ has joined.
11:50:23 -!- yorick_ has joined.
11:50:30 -!- b_jonas_ has joined.
11:50:58 -!- b_jonas has quit (Ping timeout: 260 seconds).
11:51:00 -!- fizzie has quit (Ping timeout: 260 seconds).
11:51:00 -!- erdic has quit (Ping timeout: 260 seconds).
11:51:01 -!- quintopia has quit (Ping timeout: 260 seconds).
11:51:02 -!- aloril has quit (Ping timeout: 260 seconds).
11:51:02 -!- TodPunk has quit (Ping timeout: 260 seconds).
11:51:02 -!- yorick has quit (Read error: Connection reset by peer).
11:51:04 -!- erdic_ has changed nick to erdic.
11:51:36 -!- b_jonas_ has changed nick to b_jonas.
11:54:39 -!- aloril has joined.
11:57:38 -!- fizzie has joined.
12:01:27 -!- Sgeo has quit (Read error: Connection reset by peer).
12:10:49 -!- masoudd has joined.
12:18:17 -!- Patashu has quit (Ping timeout: 276 seconds).
12:28:08 -!- Phantom_Hoover has joined.
12:31:57 <Taneb> Hallo
12:33:52 -!- sebbu has quit (Ping timeout: 240 seconds).
12:34:59 <fizzie> @wn Halle
12:35:01 <lambdabot> *** "halle" wn "WordNet (r) 3.0 (2006)"
12:35:01 <lambdabot> Halle
12:35:01 <lambdabot> n 1: a city in the Saxony region of Germany on the Saale River;
12:35:01 <lambdabot> a member of the Hanseatic League during the 13th and 14th
12:35:01 <lambdabot> centuries [syn: {Halle}, {Halle-an-der-Saale}]
12:41:27 -!- rollertrump has quit (Read error: Connection reset by peer).
12:49:24 <mroman_> What's Monoid Ordering?
12:49:28 <mroman_> :t Ordering
12:49:29 <lambdabot> Not in scope: data constructor ‘Ordering’
12:49:55 <mroman_> :t LT
12:49:56 <lambdabot> Ordering
12:50:03 <mroman_> > LT <> GT
12:50:05 <lambdabot> LT
12:50:08 <mroman_> > LT <> GT <> EQU
12:50:10 <lambdabot> Not in scope: data constructor ‘EQU’
12:50:10 <lambdabot> Perhaps you meant ‘EQ’ (imported from Data.Ord)
12:50:12 <mroman_> > LT <> GT <> EQ
12:50:13 <lambdabot> LT
12:50:18 <mroman_> > EQ <> LT <> GT <> EQ
12:50:19 <lambdabot> LT
12:50:28 <mroman_> > EQ <> GT <> EQ
12:50:29 <lambdabot> GT
12:50:33 <mroman_> k
12:50:35 <mroman_> interesting
12:50:38 <mroman_> > EQ <> EQ
12:50:40 <lambdabot> EQ
12:52:21 <Melvar> mroman_: It’s the leftmost non-EQ.
12:52:49 <fizzie> instance Monoid Ordering where mempty = EQ; LT `mappend` _ = LT; EQ `mappend` y = y; GT `mappend` _ = GT
12:54:19 <mroman_> @let mconcatMap f xs = mconcat . map f $ xs
12:54:21 <lambdabot> Defined.
12:54:38 <mroman_> > mconcatMap (compare 5) [5,1,6]
12:54:40 <lambdabot> GT
12:55:19 <Melvar> Um.
12:55:27 <Melvar> :t foldMap
12:55:28 <lambdabot> (Monoid m, Foldable t) => (a -> m) -> t a -> m
12:56:20 -!- sebbu has joined.
12:56:38 -!- sebbu has quit (Read error: Connection reset by peer).
12:57:32 <fizzie> @hoogle Monoid a => (b -> a) -> [b] -> a
12:57:33 <lambdabot> Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
12:57:33 <lambdabot> Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
12:57:33 <lambdabot> Prelude map :: (a -> b) -> [a] -> [b]
12:58:15 <fizzie> (Just wanted to check if it shows up.)
12:59:26 <mroman_> > foldMap (compare 5) [5,1,6]
12:59:27 <lambdabot> GT
12:59:36 <mroman_> > foldMap (Any) [True, False]
12:59:37 <lambdabot> Any {getAny = True}
12:59:49 <mroman_> > getAny $ foldMap (Any) [True, False]
12:59:51 <lambdabot> can't find file: L.hs
12:59:53 <mroman_> > getAny $ foldMap (Any) [True, False]
12:59:55 <lambdabot> True
13:01:23 -!- sebbu has joined.
13:01:50 -!- sebbu has quit (Changing host).
13:01:50 -!- sebbu has joined.
13:02:04 <fizzie> > foldMap (:[]) [1, 2, 3] -- the smiley eats the list, but poops it back out
13:02:05 <lambdabot> [1,2,3]
13:41:10 <mroman_> whut
13:41:19 <mroman_> @instances Monoid
13:41:19 <lambdabot> (), (a -> b), (a, b), (a, b, c), All, Any, Dual a, Endo a, First a, Last a, Maybe a, Ordering, Product a, Sum a, [a]
13:41:24 <mroman_> hm
13:41:32 <mroman_> > foldMap (const 2) [1, 2, 3]
13:41:33 <lambdabot> No instance for (GHC.Show.Show a0)
13:41:34 <lambdabot> arising from a use of ‘M628454215979994175912227.show_M6284542159799941759...
13:41:34 <lambdabot> The type variable ‘a0’ is ambiguous
13:41:34 <lambdabot> Note: there are several potential instances:
13:41:34 <lambdabot> instance [safe] GHC.Show.Show
13:41:46 <mroman_> > (foldMap (const 2) [1, 2, 3]) :: [Int]
13:41:48 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Int])
13:41:48 <lambdabot> arising from the literal ‘2’
13:42:33 <mroman_> > mconcat [id, id, const 2]
13:42:34 <lambdabot> No instance for (Data.Typeable.Internal.Typeable a0)
13:42:34 <lambdabot> arising from a use of ‘M782537444413734024312262.show_M7825374444137340243...
13:42:34 <lambdabot> The type variable ‘a0’ is ambiguous
13:42:34 <lambdabot> Note: there are several potential instances:
13:42:34 <lambdabot> instance Data.Typeable.Internal.Typeable Data.Dynamic.Dynamic
13:42:48 <mroman_> > (mconcat [id, id, const 2]) :: (Int -> Int)
13:42:49 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
13:42:49 <lambdabot> arising from a use of ‘Data.Monoid.mconcat’
13:43:00 <mroman_> how's Monoid (a -> b) working?
13:44:23 <fizzie> It's "Monoid b => Monoid (a -> b)" actually. But I don't know more than that.
13:45:38 <fizzie> > mappend (:1:[]) (:2:[]) $ 0
13:45:40 <lambdabot> [0,1,0,2]
13:45:42 <fizzie> V. fancy.
13:55:06 <Taneb> Thoughts on http://sprunge.us/RSAR?haskell (other than "why" or "don't")
14:03:21 <mroman_> as long as you don't import Data.Char
14:05:24 -!- Froo has joined.
14:05:40 -!- Phantom__Hoover has joined.
14:06:28 <Taneb> If I import foldMap from Data.Foldable, OrdList makes insertionSort a one lineer
14:06:35 <Taneb> insertionSort = getOrdList . foldMap ord
14:07:08 -!- conehead_ has joined.
14:08:59 -!- doesthiswork has joined.
14:10:41 -!- heroux_ has joined.
14:10:42 <Jafet> :t S.fromList . foldl' (flip S.insert) S.empty
14:10:43 <lambdabot> Couldn't match type ‘S.Set a1’ with ‘[a]’
14:10:43 <lambdabot> Expected type: a1 -> [a] -> [a]
14:10:43 <lambdabot> Actual type: a1 -> S.Set a1 -> S.Set a1
14:10:49 <Jafet> :t S.toList . foldl' (flip S.insert) S.empty
14:10:50 <lambdabot> Ord a => [a] -> [a]
14:11:01 <mroman_> @ask nortti Have you seen my ESOSC Brainfuck Proposal with # "language feature" thingies?
14:11:01 <lambdabot> Consider it noted.
14:12:33 -!- masoudd has left ("Leaving").
14:17:02 -!- Phantom_Hoover has quit (*.net *.split).
14:17:02 -!- conehead has quit (*.net *.split).
14:17:02 -!- FireFly has quit (*.net *.split).
14:17:02 -!- Froox has quit (*.net *.split).
14:17:02 -!- MDream has quit (*.net *.split).
14:17:02 -!- zzo38 has quit (*.net *.split).
14:17:02 -!- heroux has quit (*.net *.split).
14:17:02 -!- mtve has quit (*.net *.split).
14:17:09 -!- heroux_ has changed nick to heroux.
14:22:09 -!- scounder has quit (Ping timeout: 260 seconds).
14:33:30 -!- Phantom_Hoover has joined.
14:33:31 -!- conehead has joined.
14:33:31 -!- MDream has joined.
14:33:31 -!- mtve has joined.
14:33:42 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
14:33:46 -!- conehead has quit (Ping timeout: 244 seconds).
14:34:07 -!- FireFly has joined.
14:34:21 -!- scounder has joined.
14:55:55 -!- qlkzy_ has changed nick to qlkzy.
15:06:26 -!- mihow has joined.
15:07:53 <mroman_> ah.
15:07:57 <mroman_> The Standard Markdown
15:08:05 <mroman_> that looks like an interesting debate.
15:09:13 <Taneb> It's got some weigt behind it
15:09:23 <Taneb> I don't see what the debate is
15:12:01 <mroman_> The "creator" of Markdown isn't happy about it
15:12:25 <mroman_> Statements about why exactly are rare though.
15:12:52 <mroman_> Assumingly because he doesn't like those kind of "standards" and the procedures behind it
15:43:28 <J_Arcane> John Gruber is rarely happy about anything though, unless it involves Apple.
15:47:42 -!- conehead_ has quit (Quit: Computer has gone to sleep).
15:51:17 <nortti> mroman_: I have not
16:15:18 -!- MDude has joined.
16:19:09 -!- MDream has quit (Ping timeout: 264 seconds).
16:21:19 -!- Imaginer1 has joined.
16:21:23 <Imaginer1> Hi all...
16:23:55 <Taneb> Hi Imaginer1
16:24:14 <Imaginer1> Howdy.
16:32:20 -!- not^v has joined.
16:39:08 -!- yorick_ has changed nick to yorick.
16:45:24 -!- Imaginer1 has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:47:03 -!- Imaginer1 has joined.
16:50:58 -!- Imaginer1 has quit (Client Quit).
16:56:35 -!- oerjan has joined.
17:05:18 -!- zzo38 has joined.
17:15:45 -!- Froo has changed nick to Frooxius.
17:27:22 <oerjan> <mroman_> there should be mconcatMap <-- there is, it's called foldMap
17:27:59 <oerjan> @tell mroman_ <mroman_> there should be mconcatMap <-- there is, it's called foldMap
17:27:59 <lambdabot> Consider it noted.
18:04:20 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
18:33:38 -!- Sprocklem has joined.
18:48:17 -!- not^v has joined.
19:06:20 <mroman_> @messages aloud
19:06:24 <mroman_> ;)
19:06:36 -!- sebbu has quit (Ping timeout: 255 seconds).
19:06:39 <mroman_> nortti: It's about making error-on-left default behaviour
19:07:01 <mroman_> but allow through special directives (that will be treated as comments by most implementations) to specify different behaviour
19:07:05 <mroman_> i.e.
19:07:13 <mroman_> #MEM_UNBOUNDED_LEFT
19:07:33 <nortti> hmm, so those can be safely ignored while being compatible or not?
19:08:01 <mroman_> Standard compliant interpreters shouldn't ignore it
19:08:12 <mroman_> but at least it doesn't break existing interpreters
19:09:04 <nortti> hmm
19:09:06 <mroman_> The idea is to define a set of "obligational" directives (let's call them directives)
19:09:10 <mroman_> and a set of optional directives
19:09:52 <mroman_> although the set of required directives could be empty :)
19:10:07 <mroman_> but standard compliant implementations must throw an error if they don't support a certain directive
19:10:40 <mroman_> however, old existing implementations will most likely just ignore them since they are comments as far as brainfuck syntax goes
19:10:56 <zzo38> Maybe it shouldn't be error if you put a question mark after the name of the directive.
19:11:15 <mroman_> so if you have a program that says #MEM_UNBOUNDED_LEFT and you have some old non-esosc-aware brainfuck interpreter that happens to have unbounded memory to the left you can run it without modification in it
19:11:34 <fizzie> oerjan: WE FOUND THAT OUT
19:12:01 <zzo38> (Putting question mark would not be useful with #MEM_UNBOUNDED_LEFT anyways, but maybe other can be)
19:12:16 <fizzie> oerjan: I think you should make notes as you read the logs, and then only act on them when finished.
19:12:30 <oerjan> argh, discipline
19:12:54 <mroman_> currently I'd say required directives are #MEM_UNBOUNDED_LEFT and #ERROR_ON_LEFT wheceas #ERROR_ON_LEFT is the default
19:13:18 <mroman_> optional directives could be #CELL_SIZE_UNBOUNDED #CELL_SIZE_U32 (for unsigned 32 bit cells)
19:13:21 <mroman_> stuff like that
19:14:17 <mroman_> that way if somebody reads the source code of a BF program he will know what settings it requires to run correctly
19:14:37 <mroman_> and he can feed it either to a compliant interpreter (who will interpret the directives and act accordingly)
19:14:55 <mroman_> or he can feed it to an existing/old/non-compliant interpreter where he knows that it has that feature
19:15:01 <mroman_> and that interpreter will just ignore the directive
19:15:13 <mroman_> that's my vision :)
19:15:25 -!- not^v has quit (Read error: Connection reset by peer).
19:15:40 <mroman_> it doesn't force you to use an esosc compliant interpreter if you don't want to
19:15:53 -!- not^v has joined.
19:16:03 <mroman_> while still providing enough information to find an interpeter that will run it correctly by specifying in the code what it needs to run correctly
19:16:47 <mroman_> in terms of portability and compatibility this is the best thing I can come up with
19:24:03 <elliott> mroman_: for unbounded memory on the left, you could mark it by starting the program with <.
19:24:56 <Melvar> fizzie: I do something like that where I write answers as I go, and then press down so I have it in my history, and at the end I go back through and send the ones that were not invalidated, possibly with small edits.
19:25:45 <zzo38> elliott: Yes of course that works too, but it doesn't work for specifying cell size.
19:26:59 <elliott> start program with 2^32-1 +s
19:31:32 -!- ais523 has joined.
19:32:22 <zzo38> That's too long
19:36:06 <mroman_> elliott: why would that be any better than # directives?
19:36:37 <elliott> < at the start doesn't invent weird syntax and works and works iff memory is unbounded on the left
19:36:49 <mroman_> no
19:36:57 <mroman_> it also works if it wraps-around
19:37:08 <mroman_> or if it's ignored at cell 0
19:37:17 <ais523> is this some sort of pragma syntax for BF?
19:37:30 <mroman_> ais523: yees
19:38:38 <mroman_> *yes
19:38:43 <ais523> elliott: did you see me talking about the eventual resolution to my Visual Studio problems, in the logs? (you weren't here when I discussed it live)
19:38:52 <mroman_> there's no other solution
19:39:10 <Taneb> .help
19:39:11 <mroman_> other than publishing a standard that says "well, everything is implemenation defined"
19:39:30 <mroman_> and then it's even more pointless then it already is ;)
19:39:36 <ais523> now I'm trying to remember which program it was that responded to "help" via printing "there is no help for you"
19:39:43 <ais523> I have the feeling that it must have been INTERCAL-related
19:40:10 <mroman_> i mean
19:40:25 <mroman_> technically we could make it either error on left or unbounded to the left
19:40:32 <mroman_> and those who require unbounded just do <>
19:41:08 <mroman_> because this will cause an error in a error-on-left implementation
19:41:12 <Taneb> "ambidextrously" is the longest word I can find without any repeat letters. Can anyone beat that?
19:41:28 <mroman_> Taneb: that would comply to what you want
19:41:45 <mroman_> making it implementation defined wheter its error or unbouded
19:41:54 <mroman_> and programs requiring unbounded shall be prefixed with <>
19:42:04 <ais523> Taneb: I knew the actual answer once, because I read a book which was full of a huge number of records among words of that kind
19:42:08 <ais523> however, I can no longer remember it
19:42:27 <TieSoul> "pentasyllabic" is the longest word I can find that describes itself :P
19:42:31 <Taneb> (one of the second-best is "motherfucking")
19:42:51 <mroman_> > length "ambidextrously"
19:42:52 <lambdabot> 14
19:43:14 <TieSoul> > length "motherfucking"
19:43:15 <lambdabot> 13
19:43:18 <TieSoul> ah
19:43:32 <ais523> oh wow, this is stupid
19:43:41 <ais523> ag -v apparently prints every line, highlighting everything except any match that might be on that line
19:43:44 <ais523> that is… not useful
19:43:51 <Taneb> Apparently "uncopyrightable" is longer and a word
19:44:02 <ais523> Taneb: that's it
19:44:08 <ais523> "uncopyrightable" or arguably "uncopyrightables"
19:44:11 <ais523> I remember now you've mentioned it
19:44:29 <shachaf> hey, you can't use that word
19:44:30 <mroman_> > length "honorific"
19:44:32 <lambdabot> 9
19:44:33 <mroman_> oh
19:44:35 <mroman_> damn
19:44:45 <shachaf> it's copyrighted
19:45:10 <mroman_> Supercalifragilisticexpialidocious is still the best english word I've heard of
19:45:21 <ais523> Taneb: fwiw, the longest in my /usr/share/dict/words are "ambidextrously" and "lexicography's", and I don't think apostrophes count as letters
19:45:40 <Taneb> ais523, my program removes words with apostrophes or capitals
19:45:50 <ais523> "motherfucking" is the only 13 in /usr/share/dict/words
19:45:53 <ais523> there are tons at 12, though
19:46:06 <fizzie> Taneb: dermatoglyphics, but it's the same length as uncopyrightable.
19:46:07 <ais523> ambidextrous ambidextrously bankruptcies configurable considerably demographics demonstrably disreputably expurgations housewarming lexicography malnourished motherfucking outspreading oversampling productively questionably recognizably stenographic thunderclaps unforgivable unprofitable upholstering
19:46:08 <mroman_> > length "motherfuckingly"
19:46:08 <Taneb> > length "unpredictably"
19:46:10 <lambdabot> 15
19:46:10 <lambdabot> can't find file: L.hs
19:46:12 <mroman_> > length "motherfuckingly"
19:46:13 <lambdabot> 15
19:46:17 <mroman_> ha
19:46:19 <Taneb> > length "unpredictably"
19:46:20 <lambdabot> 13
19:46:43 <Taneb> > length "draughtswomen"
19:46:44 <lambdabot> 13
19:46:55 <Taneb> > length "upholstering"
19:46:56 <lambdabot> 12
19:46:59 <fizzie> "dermatoglyphics" and "uncopyrightable" are the two 15s in /usr/share/dict/american-english-insane.
19:47:13 <mroman_> Taneb, nortti: Make < on cell 0 implementation defined whether it's error or unbounded. Make programs requiring unbounded use a <> prefix. Does that sound ok?
19:47:14 <Taneb> fizzie, is there a british-english-insane?
19:47:41 <Taneb> mroman_, the program side should be a recomendation probably
19:47:47 <Taneb> But a well-justified one
19:47:50 <fizzie> There are a number of 14s: ambidextrously, benzhydroxamic, dermatoglyphic, hydromagnetics, hydropneumatic, pseudomythical, Schizotrypanum, subformatively, sulphogermanic, troublemakings, undiscoverably.
19:48:04 <ais523> fizzie: you have a better dictionary than me
19:48:12 <fizzie> Taneb: There seems to be.
19:48:27 <fizzie> I just need to install the wbritish-insane package.
19:48:33 <myname> isn't "american english insane" redundant?
19:49:01 <Taneb> Like, "A program relying on the tape being unbounded to the left may begin with '<>' to either confirm that the tape is unbounded to the left, or to fail immediately"
19:49:03 <fizzie> The british-english-insane wasn't any better than american-english-insane. :/
19:49:29 <Taneb> fizzie, is that on Arch (where I am running this) or Debian (my home PC)?
19:49:45 <ais523> what sensible BF program would rely on the tape being unbounded both ways?
19:49:49 <fizzie> Taneb: Debian. "wbritish-insane" and "wamerican-insane".
19:49:53 -!- sebbu has joined.
19:50:01 <fizzie> http://sprunge.us/RKVA holds all the 13+ length ones from british-english-insane.
19:50:24 <oerjan> fizzie: clearly what you need is georgian-insane hth
19:50:29 -!- sebbu has quit (Changing host).
19:50:30 -!- sebbu has joined.
19:50:30 <fizzie> I discounted the "'s" suffixes.
19:52:03 <fizzie> "ympäristöjen" ("environments'") is the longest such regular word in my /usr/share/dict/finnish but that's a quite small dictionary.
19:52:45 <fizzie> "Yhdysvaltojen" is one longer, but it's a proper noun; and "LyX-hakemiston" (...) is a compound.
19:54:26 <J_Arcane> Good Finnish plain-text dictionaries are hard to drum up, I found.
19:54:50 <J_Arcane> Most seem to rely on hashes or even custom libraries to generate conjugations as needed.
19:54:52 -!- callforjudgement has joined.
19:55:12 -!- ais523 has quit (Read error: Connection reset by peer).
19:55:20 -!- callforjudgement has changed nick to ais523.
19:55:30 <fizzie> Yes. I think there's some way you can convince Ispell to generate a full word list from its custom format, but I don't remember it.
19:55:52 <fizzie> We use almost exclusively morph models at work, so I don't have a full-word lexicon file handy either.
19:56:27 <fizzie> Our language model corpus is largeish (150 million words of newspaper text? something like that) so it might yield a reasonably large word list otherwise.
19:57:00 <ais523> fizzie: Ispell has rules for guessing which words might exist, though
19:57:05 <ais523> which have false positives
19:57:23 <J_Arcane> Yeah, voikko uses an XML database and a custom library to handle it. http://voikko.puimula.org/
19:57:43 <J_Arcane> Apparently developed because none of the existing hash methods supported enough affixes to work for Finnish.
19:58:21 <mroman_> < is actually enough
19:58:46 <mroman_> Taneb: what do you mean by "program side"?
19:59:07 <Taneb> What programs in brainfuck do
19:59:51 <mroman_> ?
20:00:04 <mroman_> you mean the < prefix?
20:00:08 <Taneb> Yeah
20:00:51 <mroman_> yeah
20:00:53 <mroman_> agreed
20:01:10 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
20:01:31 <mroman_> < indicates that the program whishes unbounded memory to the left
20:01:51 <mroman_> and interpreter allowing both behaviours *SHOULD* detect it and switch accordingly
20:01:55 <mroman_> *interpreters
20:01:59 <Taneb> Oh, right
20:02:06 <ais523> mroman_: doesn't it normally mean that you wanted to delete the program from the hill?
20:02:18 <mroman_> what hill?
20:02:20 <Taneb> ais523, brainfuck isn't BF Joust
20:02:23 <ais523> how do you indicate that you want wrapping behaviour, then?
20:02:49 <mroman_> wrapping behaviour isn't part of the standard
20:03:01 <ais523> mroman_: nor is a left-bounded tape
20:03:15 <Taneb> ais523, the poll suuggested that few people wanted wrapping behaviour
20:03:17 <mroman_> i mean the esosc standard
20:03:22 <ais523> something like 256 + signs then [<] would indicate it
20:03:26 <ais523> Taneb: oh, this is based on the poll?
20:03:28 <ais523> are the results public?
20:03:36 <mroman_> ais523: yes @poll
20:03:49 <ais523> @poll
20:03:49 <Taneb> @poll
20:03:49 <lambdabot> Maybe you meant: poll-add poll-close poll-list poll-remove poll-result poll-show roll
20:03:49 <lambdabot> Maybe you meant: poll-add poll-close poll-list poll-remove poll-result poll-show roll
20:04:04 <ais523> somehow I think at least two people misinterpreted your line
20:05:31 <mroman_> @log poll
20:05:31 <lambdabot> Maybe you meant: yow msg let do bug
20:05:41 <mroman_> wasn't there something to grep the logs?
20:05:53 <fizzie> HackEgo, back when it still had the logs.
20:06:04 <mroman_> hm
20:06:09 <fizzie> It's been unavailable for a while now.
20:06:45 <mroman_> < mroman_> Taneb: https://de.surveymonkey.com/results/SM-JZ78GR8L/
20:07:47 -!- Taneb has set topic: All glogged up again | brainfuck survey results: https://www.surveymonkey.com/results/SM-JZ78GR8L/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/ | If something is possible, then it's possible that nothing is possible. | 987659473857929758374956789.
20:07:55 <fizzie> I had that half-written!
20:09:12 <Taneb> mroman_, why would an implementation support both expand-on-left and error-on-left?
20:10:18 <elliott> wait, is this a bf standard with only bignums?
20:10:39 <Taneb> elliott, only bytes it seems
20:10:46 <elliott> but no wrapping...?
20:11:00 <elliott> or is this about tape wrapping
20:11:00 <Taneb> elliott, no <> wrapping
20:11:04 <Taneb> Yes +- wrapping
20:11:19 <Taneb> mroman_, can we have a second poll concerning bignums?
20:11:23 <ais523> for at least one BF variant I made, the rule was that you could go + or - from zero 255 times and go through 256 unique values either way
20:11:39 <ais523> which allows both wrapping bytes and bignum
20:13:06 <ais523> well, 85% of respondents thought that values should wrap
20:13:12 <ais523> as opposed to crashing or saturating
20:13:21 <ais523> I'm not convinced that was the right question, in retrospect
20:13:31 <Taneb> ais523, carrying on wasn'tt an option
20:13:41 <ais523> Taneb: indeed
20:16:59 -!- J_Arcane has quit (Quit: (set-jarcane-connect! J_Arcane #f)).
20:21:30 -!- J_Arcane has joined.
20:32:45 <elliott> 8 bit cells, right-infinite tape, 0 or -1 on EOF
20:32:48 <elliott> anything else is living in sin :p
20:33:10 <elliott> *or no change
20:33:20 <elliott> wrapping cells, that is.
20:33:39 <ais523> huh, it seems that I was the only person who wanted newline to be 10 rather than '\n'
20:38:32 <oerjan> huh`?
20:39:26 <J_Arcane> Huh. This page has a palindromic quine in C. http://www.derf.net/palindromes/old.palindrome.html#CODE
20:39:59 <ais523> is the midpoint an //?
20:40:01 <ais523> or is it C89?
20:40:17 <mroman_> Taneb: bignums?
20:40:19 <ais523> ah no, it's using the /*/ trick
20:40:26 <mroman_> with directives this would be easy :)
20:40:38 <oerjan> ais523: i'm sure i cannot be the only person who answered '\n' believing it was meant as a synonym for 10
20:41:06 <Taneb> mroman_, unbounded integers
20:41:14 <oerjan> even though i had a vague feeling that was a bad formulation of it
20:41:25 <ais523> oerjan: I used the 'something else' entry to argue the case for 10
20:41:38 <Taneb> On a finite tape, brainfuck can still be TC with bignumss
20:42:28 <mroman_> and how would a program identify itself requiring bignums?
20:42:32 <J_Arcane> Also, unless I've mistaken my code, the list of palindromic English words is smaller than I would expect.
20:42:45 <oerjan> ais523: i think i'll conclude the first option was horribly formulated.
20:43:13 <mroman_> also that leaves the question what . does on cells > 255
20:43:36 <ais523> don't you mean > 127?
20:43:43 <ais523> or are you in binary mode?
20:43:55 <Taneb> mroman_, unicode?
20:44:18 <oerjan> mroman_: when formulating the newline question, were you unaware that the C char '\n' is not necessarily 10 on all platforms?
20:44:31 <oerjan> (even with ASCII)
20:44:37 <ais523> it is, admittedly, usually 10
20:44:46 <ais523> even on Windows, where a newline is not one octet with value 10
20:44:52 <Taneb> J_Arcane, does your list include "nun"?
20:45:02 <mroman_> oerjan: Maybe I didn't mean \n in C .
20:45:06 <oerjan> well it's required to be one char. i assume old macs used 13.
20:45:11 <mroman_> You can't prove that!
20:45:28 <ais523> oerjan: yes
20:45:33 <ais523> and \r was 10, IIRC
20:45:38 <J_Arcane> Taneb: Aye.
20:45:53 <Taneb> J_Arcane, well I can conclude its length is at least 1
20:45:55 <J_Arcane> a aha ama ana anna bib bob boob bub civic dad deed deified deled denned dewed did dud eke ere esse eve ewe eye gag gig hah hallah huh ii iii kaiak kayak kook level madam malayalam minim mom mum nan non noon nun oho otto pap peep pep pip poop pop pup radar redder refer reifier reviver rotator rotor sagas sees seres sexes shahs sis solos sos stats stets tat tenet tit toot tot tut wow xix yay
20:46:00 <ais523> you could ask Vorpal, IIRC he ported C-INTERCAL to old Mac
20:46:03 <ais523> just because he could, I think
20:46:11 <mroman_> so... you want to have bignums as the default cell size?
20:46:28 <Taneb> Or at least an optin
20:46:31 <Taneb> *option
20:47:01 <mroman_> see that's why I proposed the directive thingy
20:47:09 <mroman_> It makes those things exactly easy as pie
20:47:27 <Taneb> But then implementations have to implement directive-reading
20:47:47 <mroman_> So? That doesn't sound like a very dificult task
20:48:03 <mroman_> but if you make cell size implementation defined too
20:48:08 <Taneb> It means literally every existing implementation is non-compliant
20:48:30 <mroman_> no
20:48:36 <mroman_> just the ones that don't have the default behaviour
20:48:53 <mroman_> and if you're going to make everything implementation defined you don't need a standard ;)
20:49:28 <fizzie> If you have obligatory directives that must not be ignored, then yes, every existing implementation is non-compliant.
20:50:43 <Taneb> Standards are hard...
20:51:19 <mroman_> fizzie: to some extent yes
20:51:37 <mroman_> but "everything is implementation defined" is kinda the status quo
20:51:51 <mroman_> and it makes no sense to write a document that says "everything is implementation defined"
20:52:29 <Taneb> "Everything is one of these three behaviours" is a lot better than "Everything is anything"
20:52:37 <mroman_> technically every existing implementation that has a debug command is non-compliant anyway
20:53:19 <mroman_> Taneb: no it's "everything is a combination of one of these three behaviours"
20:53:39 <mroman_> you can rely on A,B,C !A,B,C A,!B,C etc
20:53:59 <fizzie> Personally, I'd be happier if the standard specified one default behavior, and provided your directives, but made each directive an optional feature; that way implementations that happened to match the standard would be compliant. Also, requiring bignum arithmetic for standards-compliance is a bit much.
20:54:17 <fizzie> (See e.g. C11 making VLAs optional.)
20:54:50 <mroman_> fizzie: that was kinda the point I was making hours ago ;)
20:55:10 <mroman_> implementations that happen to match the default behaviour will be compliant
20:55:10 <ais523> if VLAs are optional in C11, they should also be defined to not leak memory upon longjmp
20:55:36 <mroman_> if they treat non usual characters as comments
20:55:51 <mroman_> if an implementation treats any other character as some weird command you're screwed
20:55:59 <ais523> huh, whois isn't installed by default any more?
20:56:12 <mroman_> for all I know some implementation uses "d" as a debug instruction
20:56:15 <ais523> mroman_: implementations that don't ignore characters other than []<>+-., are broken
20:57:49 -!- Bicyclidine has joined.
20:57:49 <fizzie> ais523: Reclaiming storage as the lifetime of an object ends is probably a QoI issue entirely.
20:59:17 <ais523> fizzie: well, consider a program like int main(void) { jmp_buf j; setjmp(j); { int x[rand() % 4 + 1]; longjmp(j, 1); } }
20:59:21 <ais523> is this an infinite loop or not?
20:59:37 -!- Patashu has joined.
21:01:02 <ais523> hmm, TIL from comp.lang.c: the reason that Ada (and by extension, VHDL) requires a delimiter on every line of a comment is to prevent blocks of code being commented out unintentionally
21:01:12 <ais523> presumably it was invented before syntax highlighting was widespread
21:03:31 <ais523> btw, something that really annoys me: a git commit has no hidden fields, everything in the commit object always shows up to everyone
21:03:39 <ais523> if you make the identical git commit twice in the same second, it'll have the same hash
21:04:02 <ais523> this makes git-beautifier rather harder to design, I'll have to put trailing spaces on the commit messages or something
21:09:07 <fizzie> ais523: Well, I mean. The standard is clear that the lifetime of x ends when execution leaves its scope, including by "jumping", which I think can be construed to mean a nonlocal jump (and arguably the "ends in any way" from the previous paragraph is also applicable), and there's nothing particular about VLAs in the myriad of minor details related to setjmp/longjmp. But the standard doesn't ...
21:09:14 <fizzie> ... speak that much about allowed stack size limits or anything, which is vaguely the same sort of thing as not leaking memory.
21:09:41 <ais523> fizzie: IIRC there's a non-normative footnote that suggests that jumping out of the scope of a VLA can leak memory
21:09:57 <ais523> btw, comp.lang.c says that gcc's behaviour on (volatile int){ 1 } = 2 is a bug
21:10:05 <ais523> now I'm wondering if I should report it
21:10:20 <Taneb> ais523, what is gcc's behaviour vs not-bug behaviour?
21:10:55 <ais523> Taneb: that's a no-op behaviour on gcc; the standard behaviour requires the program to write a 2 to a memory location that previously contained a 1
21:11:05 <fizzie> ais523: There were rather few hits for the exact phrase "volatile compound literal" in Google; it's not a frequent construct.
21:11:21 <ais523> (this is pretty much always an entirely pointless operation, but volatile's purpose is to intentionally do pointless operations)
21:11:46 <zzo38> I do think that it is a bug and ought to be corrected.
21:11:57 <Taneb> ais523, what happens if no memmory location contained a 1
21:12:10 <ais523> Taneb: you write 1 to some memory location first
21:12:40 <fizzie> It also must be a memory location distinct from any other object.
21:12:42 <ais523> e.g. clang will write a 1 then a 2 to the working space on top of the stack
21:12:45 <Taneb> So it should write 1 to memory, then replace that 1 with a 2, then probably forget about it
21:13:08 <ais523> yes
21:13:16 <ais523> this is exactly what the clang implementation does
21:13:39 <ais523> although interestingly, it sets up the return value from main in between
21:13:46 <fizzie> It is also what GCC does for { volatile int i = 1; i = 2; /* no more references to i */ }.
21:13:56 <ais523> which is either some clever optimization, or just what it happens to do
21:17:31 <fizzie> ais523: Also, there seems to be no such footnote in C99 or C11 at least in the "storage durations of objects" or the "nonlocal jumps" chapters.
21:17:34 <fizzie> ais523: There is a footnote attached to the "variable length array -- lifetime extends -- until execution -- leaves the scope of the declaration" that reads: "leaving the innermost block containing the declaration, or jumping to a point in that block or an embedded block prior to the declaration, leaves the scope of the declaration", but that just clarifies what scope means, and doesn't say ...
21:17:40 <fizzie> ... anything about leaking memory.
21:17:43 <fizzie> ais523: (The only difference between the stated lifetimes of VLAs and non-VLAs is that the lifetime of a non-VLA object begins when the innermost containing block is entered, while the lifetime of a VLA only begins when the declaration is reached.)
21:18:09 <ais523> hmm, I wonder what I'm remembering
21:18:54 <fizzie> Slightly related fact: compound literals are not allowed to be of a variable length array type.
21:19:16 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:20:04 <fizzie> Oh.
21:20:17 <fizzie> You remembered right, but it's a non-normative example instead of a non-normative footnote.
21:20:39 <ais523> fizzie: what does (int[rand() % 5 + 1]){1, 2, 3} mean?
21:20:56 <ais523> sometimes it has too many initializers, sometimes it doesn't
21:21:25 <fizzie> You cannot initialize variable-length arrays, which (now that you mention it) is presumably the reason you can't compound-literal them either.
21:21:46 <fizzie> Though they could have special-cased variable-length array compound literals with an empty initializer.
21:21:50 -!- Sprocklem has quit (Ping timeout: 260 seconds).
21:23:30 <fizzie> "EXAMPLE: The longjmp function that returns control back to the point of the setjmp invocation might cause memory associated with a variable length array object to be squandered. [slightly more complicated example]"
21:24:14 <ais523> this is more confusing than useful
21:24:15 <fizzie> And there was even an extra rule; "if the invocation of the setjmp macro was within the scope of an identifier with variably modified type and execution has left that scope in the interim, the behavior is undefined".
21:24:21 <ais523> `quote confusing
21:24:21 <HackEgo> 522) [from 2009] <fizzie> That's confusing. I have been indoctrinated to believe W|A, but on the other hand it's hard to unbelieve a book with such a ridiculously impressive name as "Handbook of physical testing of paper, Volume 2". \ 1001) <fizzie> "May you live in INVISIBLE TIMES." --Old Chinese proverb. (It can look confusing when written with t
21:24:22 <fizzie> I don't know how I managed to miss them.
21:24:32 <ais523> `quote confusing than
21:24:33 <HackEgo> No output.
21:25:51 <ais523> <C++ FAQ> Of course the word never should be "in quotes" since there is always some situation somewhere where the rule won't hold. But certainly at least 99% of the time this is a good rule of thumb.
21:26:20 <ais523> wow, now I've copy-pasted that, it's awkward on two levels: both the statement about C++, and the use of quoting
21:26:32 -!- oerjan has quit (Quit: Nity).
21:26:49 <ais523> (in the answer to 17.9, incidentally)
21:26:57 -!- Patashu has quit (Ping timeout: 245 seconds).
21:26:58 <shachaf> well, it's more awkward without the italics
21:27:45 <ais523> shachaf: yes
21:27:47 <fizzie> You could conceivably find a use for something like /* runtime-computed value n */ puts(strcat(strcpy((char [n]){}, foo), "bar")); if a hypothetical VLA compound literal with no initializer were allowed.
21:28:20 <fizzie> In fact, n could be replaced with strlen(foo)+3+1 in that example.
21:28:52 <fizzie> Sure, you can also use an object with a name, but you could say the same about (almost?) all compound literals.
21:29:40 <fizzie> (And maybe it's all in the context of a macro that needs to work as an expression. Stranger things have happened, if not many.)
21:32:38 <ais523> fizzie: stranger things have happened /in this channel/
21:32:56 <fizzie> Perhaps even #define ADDBAR(str) (strcat(strcpy((char [strlen(str)+3+1]){}, (str)), "bar")) so that you can use lookupsomething(ADDBAR(foo));
21:35:04 <shachaf> Are there any cases in common C implementations where NULL won't be represented by zero bytes in memory?
21:35:23 <shachaf> It's easy in C++ with member pointers.
21:36:32 <zzo38> GNU C allows expressions to include code blocks.
21:36:40 <ais523> I don't think so, that's basically just intended for fat-pointer machines and the like
21:36:41 <fizzie> shachaf: There's a couple of examples in the FAQ, but they're all ancient.
21:36:45 <ais523> or machines where 0 is a sensible valid address
21:36:57 <fizzie> http://c-faq.com/null/machexamp.html
21:37:11 <fizzie> "The Prime 50 series used segment 07777, offset 0 for the null pointer, at least for PL/I. Later models used segment 0, offset 0 for null pointers in C, necessitating new instructions such as TCNP (Test C Null Pointer), evidently as a sop to [footnote] all the extant poorly-written C code which made incorrect assumptions."
21:37:14 <ais523> e.g. if you're writing an OS kernel for the 6502, you're probably going to use address 0 for an important global variable
21:37:23 <ais523> although you're also probably not going to write it in C
21:38:07 <zzo38> Actually I think 0 can be a useful address in many systems, although you probably won't allocate anything there which is used by C programs
21:38:28 <fizzie> It's generally not really a problem (except for debugging; no fail-fast null pointer dereferencing) even if address 0 happens to be valid, and *(char *)0 reads from there.
21:38:38 <ais523> also, I've seen a pretty plausible argument that "msb 1, all other bits 0" is a good choice for a universal error value that works across all types
21:38:50 <ais523> although you probably don't want your universal trap representation to mean NULL
21:39:25 <fizzie> I like the fact that a popular-and-not-that-old architecture (x86-16) quite often had object and function pointers of different sizes.
21:39:33 -!- CrazyM4n has joined.
21:39:46 <fizzie> It's a shame that it doesn't extend to different sizes for pointers to objects of different type.
21:40:06 <ais523> I've actually used x86-16
21:40:16 <ais523> although I didn't really grasp the difference between near and far at the time
21:40:26 <zzo38> I never program x86-16 programs in C anyways
21:40:31 <ais523> I did eventually figure out that I had to use farmalloc if I wanted to create very large arrays, though
21:40:37 <fizzie> (Or do DOS compilers make a "void *" that can point also at functions, for compatibility reasons, even in something like the compact/medium memory models?)
21:40:43 <ais523> (presumably the compiler was using a short-data memory model)
21:41:23 <zzo38> fizzie: I don't know, although maybe some have it as an option at least
21:42:08 <zzo38> I write 16-bit x86 programs in assembly language or BASIC anyways, not in C
21:42:58 <fizzie> I had an... acquired copy of the Watcom C compiler (with DOS/4GW and all), it certainly made me feel like a Real Programmer.
21:43:15 <fizzie> (Compared to the DJGPP that I had been using.)
21:43:23 <ais523> but DJGPP is awesome
21:43:56 <fizzie> Perhaps, but all Professionals(tm) (such as game developers) used Watcom.
21:44:24 <ais523> fizzie: counterpoint: NetHack uses DJGPP
21:44:31 <ais523> I used to use Borland C++ 4
21:44:35 <fizzie> DJGPP is also very 386-only.
21:44:48 <ais523> yes, indeed, it requires a 32-bit processor
21:45:09 <fizzie> I had some Borland 4.x versions (at least 4.52, and then later a 5.x) that came with different PC magazine cover discs.
21:46:26 -!- spng453 has joined.
21:47:09 -!- idris-bot has joined.
21:48:05 <fizzie> Ooh, a PCPlus SuperCD no. 43b, with Partition Magic 2.0 on it.
21:48:14 <fizzie> I don't think you get so much commercial software with magazines these days?
21:49:07 <spng453> I, uh, got Minecraft with PCGamer like 2 years ago
21:49:43 <fizzie> "The brand new SuperCede for Java Standard Edition is the fast way to create your own powerful JDK 1.1 applications for the Web - worth £99 (provisional price)" so modern
21:50:44 -!- CrazyM4n has quit (Ping timeout: 272 seconds).
21:51:15 <ais523> now I'm trying to work out what sort of program would create JDK 1.1 applications for the Web, other than a text editor
21:51:31 <ais523> I guess you need a javac to compile your source into whatever format applets get shipped in
21:51:36 <ais523> but those aren't exactly hard to come by
21:51:53 <spng453> What good are java applets these days?
21:52:07 -!- spng453 has changed nick to CrazyM4n.
21:52:23 <Taneb> idris-bot: the int 7
21:52:34 <Taneb> idris-bot: help
21:52:38 <Taneb> Or not
21:53:06 <ais523> CrazyM4n: well, JNLP was a disaster
21:53:14 <ais523> and applets slightly less of a disaster, I guess
21:53:25 <fizzie> "How to use your SuperCD -- 386 and above users: There is a version called Text Only which is an executable version -- 486 and above users: The PC Plus interface, which is the default choice, is an executable version that includes pictures, and yet remains fast -- Pentium users with IE3 or 4: There is also a full-blown HTML version with animation and frames --"
21:53:44 <Bicyclidine> damn, bro.
21:53:49 <Bicyclidine> ( the int 7
21:53:50 <idris-bot> (input):1:5:When elaborating argument a to function Prelude.Basics.the:
21:53:50 <idris-bot> No such variable int
21:53:55 <Taneb> Ooooh
21:54:04 <Bicyclidine> ( the Int 7
21:54:04 <idris-bot> 7 : Int
21:54:08 <Taneb> I do not know idris, which I guess is the next problem
21:54:25 <Bicyclidine> neither do i
21:54:27 <Bicyclidine> godspeed motherfucker
21:54:36 <fizzie> ais523: Re "what sort of program", I still don't know, but research (read: websearch) found a book on Amazon called "Developing Java and Activex Business Applications: Using Supercede for Cutting Edge Web Development".
21:54:41 <J_Arcane> http://tldrwikipedia.tumblr.com/post/96646853913
21:54:46 <Melvar> Taneb: If it sees its name, it strips it off.
21:54:53 <Melvar> idris-bot: ( the Int 7
21:54:54 <idris-bot> 7 : Int
21:55:14 <Taneb> Melvar, ah
21:55:24 <Bicyclidine> wesearch -> research on the web?? call me oxford english dictionary
21:55:26 <Melvar> So you still need to use its prefix, I mean.
21:55:33 <ais523> Melvar: IIRC the "standard" for bots is to treat their own name + colon as their command character; however, this isn't very widely implemented
21:55:37 <ais523> ( help
21:55:38 <idris-bot> (input):1:1:When elaborating an application of constructor __infer:
21:55:38 <idris-bot> No such variable help
21:55:48 <ais523> not that using the prefix would have helped anyway
21:56:01 <Bicyclidine> does idrisbot even have commands other than the evaluator
21:56:09 <ais523> ( :t 7
21:56:10 <idris-bot> fromInteger 7 : Integer
21:56:14 <Melvar> The intention is that it will eventually.
21:56:22 <ais523> although I'm not sure if it's any different without the :t
21:56:23 <ais523> ( 7
21:56:24 <idris-bot> 7 : Integer
21:56:28 <ais523> hmm
21:56:32 <ais523> now I'm confused
21:56:34 <Bicyclidine> ( :t :t
21:56:35 <idris-bot> (input):1:4: error: no implicit
21:56:35 <idris-bot> arguments allowed
21:56:35 <idris-bot> here, expected: dependent type signature
21:56:35 <idris-bot> :t :t<EOF>
21:56:35 <idris-bot> ^
21:56:36 <lambdabot> parse error on input ‘:’
21:56:45 <Bicyclidine> darn, i was hoping it was actually a function
21:56:47 -!- mihow has quit (Quit: mihow).
21:56:51 <CrazyM4n> Is he going to only support Haskell?
21:56:56 <Bicyclidine> "he"?
21:57:25 <Melvar> ais523: In idris, you don’t get expressions being polymorphic.
21:57:31 <Melvar> ( :t fromInteger
21:57:31 <idris-bot> Prelude.Classes.fromInteger : Num a => Integer -> a
21:57:32 <idris-bot> Prelude.Fin.fromInteger : (x : Integer) -> {tacimp prf : IsJust (integerToFin x n)} -> Fin n
21:57:37 <CrazyM4n> Shhh, I like personifying bots
21:57:47 <Bicyclidine> if you mean idris-bot, this isn't haskell, it's idris.
21:58:08 <Bicyclidine> idris has more reified type sorta crap.
21:58:09 <Taneb> CrazyM4n, idris-bot is a she :(
21:58:09 <shachaf> polymorphism, more like scowlymorphism
21:58:10 <CrazyM4n> Looks functional. And Haskell is the only functional language I know, haha
21:58:22 <fizzie> ais523: There's a "review" (or an ad dressed up like a review) that suggests SuperCede an IDE with a "MindQ" (index/reference of userful Java information) and the usual sort of stuff, like a form editor for AWT. Still not sure what it has to do with the Internet, but maybe it's not all that important.
21:58:23 <Melvar> ais523: I.e. when you give a hint, it’ll pick that type, if you don’t, it defaults to Integer.
21:58:30 <Bicyclidine> have you considered learning snobol then
21:59:02 -!- boily has joined.
21:59:12 <ais523> Melvar: right
21:59:52 <CrazyM4n> Bicyclidine: looks outdated
22:00:05 <Bicyclidine> huh, amazon recommends i buy abramowitz and stegun
22:00:30 -!- ais523 has quit.
22:00:48 <Bicyclidine> ais finds old tables highly offensive
22:01:40 <shachaf> I think ais523 likes this channel to be about esolangs.
22:02:18 <Bicyclidine> aw c'mon, snobol's practically an esolang anyway
22:04:17 <CrazyM4n> I doubt I could find an interpreter for any old language like that on windows
22:04:33 <J_Arcane> I just remember how horrible Java was in those days in terms of performance.
22:05:02 <CrazyM4n> Java still isn't very good performance wise, is it?
22:05:04 <J_Arcane> I dreaded anything Java based because it invariably seemed to mean it would be ugly and run like an overfed pig.
22:05:12 <CrazyM4n> It fits a really weird niche of languages
22:05:22 <Bicyclidine> pigs are pretty fast
22:05:26 <J_Arcane> The only thing worse was PDFs.
22:06:39 <J_Arcane> CrazyM4n: It's not so bad these days; it's semi-competitive, what with the JIT and such.
22:07:40 <CrazyM4n> Even so, I haven't seen it used for about 1.5 years, not counting the occasional post on the code golf SE
22:08:12 <CrazyM4n> In my opinion, java is dieing
22:09:05 <CrazyM4n> But on the bright side, it opens more opportunities for other programming languages to become popular
22:09:16 <CrazyM4n> On the other bright side, no more java :P
22:09:16 <Bicyclidine> like snobol.
22:09:22 <CrazyM4n> Yea
22:09:32 <elliott> java is pretty competitive speed-wise.
22:09:36 <Taneb> I should learn Cobol
22:09:37 <elliott> swing is just awful and stuff.
22:09:42 <boily> Java plays an important part in getting me a salary.
22:09:45 <Taneb> It was the language of my ancestors
22:10:05 <Bicyclidine> my ancestors spoke german, i think.
22:10:07 <elliott> java is still a huge thing, and its ecosystem/the jvm in general too what with scala and clojure and so on
22:10:09 <J_Arcane> Yeah. The Benchmarks Game pegs it on average at about 2-3 times slower than C. Which is pretty good.
22:10:26 <boily> swing is... swing at first glance seems very promising and interesting and usable. up to the point where one actually uses it, and starts learning a new human language because one exhausted all available expletives.
22:10:27 <J_Arcane> Also, Java is still pretty popular here in Finland at least.
22:10:37 <Bicyclidine> not sure what kind of german.
22:10:38 <J_Arcane> Loooot of Java jobs around, especially here in Tampere.
22:10:58 <CrazyM4n> The JVM most definitely isn't dead
22:10:59 <Bicyclidine> you know there are places in brazil where they all speak german? weird, right?
22:11:16 <CrazyM4n> It was a shock to me to learn they spoke French in Canada
22:11:40 <Bicyclidine> do you live anywhere near canada
22:11:48 <zzo38> CrazyM4n: Yes, mostly in Quebec though (although they do sometimes speak French elsewhere in Canada too)
22:11:55 * boily waves at CrazyM4n
22:11:58 <boily> allô toi! :D
22:12:01 <Bicyclidine> new brunswick is bilingual.
22:12:08 <CrazyM4n> Opposite side of the states. We get a lot of Spanish here
22:12:46 <CrazyM4n> Southern AZ is mostly rundown Spanish land
22:13:04 <zzo38> Bicyclidine: Yes, and I did not know that until two days ago actually
22:13:46 <Bicyclidine> i know an acadian guy who lives there, so.
22:14:12 * CrazyM4n waves at boily
22:14:29 <CrazyM4n> ¡Hola tú! :D
22:15:14 <boily> hablo sólo un poquito de español. parles-tu français?
22:16:31 <CrazyM4n> Mi amigo habla francés, pero no me
22:16:52 <Bicyclidine> hello
22:17:27 <CrazyM4n> spanish is an esoteric language, right?
22:18:26 <Bicyclidine> at least a billion people speak it, so probably not. maybe you'ret hinking of ladino.
22:18:31 <boily> CrazyM4n: tu amigo debría joinear esto channel. (oh fungot... I can't conjugate...)
22:18:32 <fungot> boily: i am sure, parliament too, to all citizens of the union and the increasingly wide and increasingly uncontrolled distribution of the costs actually incurred. the rejection of violence to minors have never taken any parliamentary action on matters which bear directly on my corporate interests and have refrained from making a decision on whether the companies are pressing for the death penalty disappears before the end of a
22:18:40 <shachaf> ^style
22:18:41 <fungot> Available: agora alice c64 ct darwin discworld enron europarl* ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
22:18:50 <shachaf> I suppose I could've guessed that.
22:18:52 <shachaf> ^style irc
22:18:52 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
22:18:56 <CrazyM4n> I was kiddinh about spanish btw
22:19:22 <Bicyclidine> i'm immune to humor.
22:19:34 <CrazyM4n> Sounds fun
22:24:34 <CrazyM4n> So. I need help writing some sample programs
22:25:07 <shachaf> Bicyclidine: even puns?
22:25:15 <CrazyM4n> How would you go along writing the Fibonacci sequence in a stack which pops when you do arithmetic?
22:25:55 <Bicyclidine> even puns.
22:26:16 <Bicyclidine> CrazyM4n: you want the fibonacci sequence in the stack?
22:26:18 <boily> gasp. Bicyclidine is immune to rotated shachaf.
22:26:28 <fizzie> fungot's corporate interests mentioned.
22:26:29 <fungot> fizzie: yes, and i don't
22:26:29 <J_Arcane> CrazyM4n: Try looking at some Forth implementations?
22:26:37 <fizzie> fungot: You don't what?
22:26:38 <fungot> fizzie: stroustrup is reading cls?!... fnord das oder die fnord fnord. i'm not fnord, i'm about to do that other than your own server 0 0
22:27:25 <CrazyM4n> Bicyclidine: it doesn't have to stay on the stack, just has to be printed
22:27:33 <Bicyclidine> oh.
22:27:34 <shachaf> fungot is immune to making sense
22:27:35 <fungot> shachaf: it crashes on infinite loops... but i'm pretty sure it exists in mzscheme, whose engine is written in python
22:27:45 <fizzie> A recursive implementation of Fibonacci was my first properly recursive Befunge(-93) program.
22:27:47 <shachaf> i take that back
22:27:53 <CrazyM4n> J_Arcane: that sounds like a good idea
22:28:16 <CrazyM4n> Well, I'm trying to write it in my funge-like language
22:28:18 <fizzie> http://sprunge.us/hSab I even used it as a signature at some point.
22:28:59 <fizzie> It's of course quite silly, since it's the naïve non-memoized fully-recursive thing.
22:29:05 <J_Arcane> CrazyM4n: Do you have somewhere outside the stack you can stash a results list?
22:29:20 <CrazyM4n> Nope
22:29:39 <CrazyM4n> I had incentive to add a second stack but haven't bothered yet
22:29:50 <fizzie> Your stack had the pick and unpick operations, right?
22:29:54 <CrazyM4n> Yep
22:30:11 <fizzie> With dup, that should make things rather simple.
22:30:17 <CrazyM4n> My idea was just to start by making a non destructive addition
22:30:21 <Bicyclidine> 0 dup print 1 dup print [dup rot + dup print] loop, or something
22:30:22 <fizzie> You can stick copies freely as far down as necessary.
22:30:24 <CrazyM4n> From there it's ez pz
22:31:16 -!- variable has quit (Ping timeout: 272 seconds).
22:31:18 <CrazyM4n> Hold on, let me grab my computer so I can have an interpreter
22:31:35 <fizzie> EgoBot is still missing. :/
22:33:03 <CrazyM4n> Wanna know what's great
22:33:19 <CrazyM4n> When you start your brand new laptop to a black screen with a cursor
22:33:26 <CrazyM4n> Windows(tm)
22:33:43 -!- variable has joined.
22:34:59 <fizzie> `run gforth -e ': fib 0 dup . 1 dup . begin swap over + dup . again ; fib'
22:35:00 <HackEgo> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 2971215073 4807526976 7778742049 12586269025 20365011074 32951280099
22:35:23 <CrazyM4n> That... That is the coolest not I've ever seen
22:35:25 <CrazyM4n> Bot
22:35:42 <shachaf> how do you feel about ¬
22:35:58 <fizzie> shachaf: I feel like it's missing an eye.
22:36:32 <Bicyclidine> ¬_\
22:36:42 <shachaf> fizzie: ⊭
22:36:59 <fizzie> ¬.⌐
22:37:29 <CrazyM4n> College algebra courses in highschool are so contradictory. I'll try writing the Fibonacci sequence after this hw
22:37:30 <shachaf>
22:37:40 <Bicyclidine> what's contradictory
22:37:56 <fizzie> Sadly, I get significantly different rendering for ¬ and ⌐ -- the latter probably comes from a different font.
22:39:03 -!- Sprocklem has joined.
22:39:10 <shachaf> whoa, ⪉
22:39:35 -!- Sprocklem has changed nick to Guest68322.
22:39:57 <shachaf> i decalre < to mean "less than or equal to" and ⪇ to mean "less than"
22:40:13 <fizzie> (I went with "swap over" there, but "dup -rot" is the same.)
22:40:19 <CrazyM4n> Bicyclidine: college course in high school. That's contradictory
22:40:44 <CrazyM4n> I'll be back in like 20 min, hopefully with a working piece of code
22:40:55 <shachaf>
22:41:07 <shachaf> I don't have a font for that, sadly.
22:41:27 <fizzie> It shows up in the browser for codu logs, but not in the terminal.
22:42:03 <fizzie> I should really look into getting this terminal thing more Unicodey. I don't even remember if GNU screen still had troubles with non-BMP characters.
22:42:31 <shachaf> I think it did. I switched to tmux.
22:43:10 <fizzie> shachaf: Perhaps you can use ╕ as a replacement.
22:44:32 <Melvar> < fizzie> Sadly, I get significantly different rendering for ¬ and ⌐ -- the latter probably comes from a different font. – For me it looks like the same font but the former is hinted and the latter not.
22:45:11 <fizzie> Yes, something like that.
22:46:06 <fizzie> `unidecode ¬⌐
22:46:07 <HackEgo> ​[U+00AC NOT SIGN] [U+2310 REVERSED NOT SIGN]
22:46:46 <fizzie> Yeah, it's the same font.
22:47:13 <fizzie> (urxvt has a handy "insert unicode by hex" thing where the info-popup also shows which font it's using.)
22:47:33 <CrazyM4n> Is it possible to get Unicode support in the terminal?
22:48:12 <Bicyclidine> sure.
22:48:17 <Melvar> They’re both in DejaVu Sans Mono for me.
22:48:29 <Bicyclidine> if your terminal doesn't support unicode your terminal's kinda shit.
22:48:44 <CrazyM4n> Like, Windows
22:48:52 <Bicyclidine> oh, ugh. well probably.
22:48:54 <CrazyM4n> All the Unicode chars are blank
22:49:06 <CrazyM4n> And I wanted to be able to output a snowman
22:49:16 <CrazyM4n> D:
22:50:08 <Bicyclidine> http://www.perlmonks.org/?node=871945 utf16 again. why.
22:51:32 <Melvar> Because hysterical raisins.
22:51:36 <CrazyM4n> Who made that decision? That's terrible!
22:52:02 <CrazyM4n> If only, you know, windows 8 didn't have a locked bootloader
22:52:55 <Bicyclidine> i think that originally unicode was going to fit in 16 bits, and people decided they'd just support that instead of utf8, which is variable length and thus a bit trickier. maybe.
22:53:12 <Bicyclidine> wait, utf16 is also variable length. nevermind.
22:53:18 <CrazyM4n> What did DOS support?
22:53:35 <Bicyclidine> um, bytes. ascii probably?
22:53:42 <Bicyclidine> might depend on where you bought it.
22:53:42 <fizzie> Bicyclidine: They were using something essentially like UCS-2 back when Unicode was 16 bits.
22:54:00 <CrazyM4n> Oh yea, ascii
22:54:06 <CrazyM4n> Forgot that even existed
22:54:17 <Bicyclidine> maybe latin 1. á is in latin 1, i think.
22:54:24 <fizzie> DOS supported whatever code page you loaded, and some of them were (at least mostly) supersets of the ISO-8859-* encodings.
22:54:45 <fizzie> Like CP850.
22:57:17 <CrazyM4n> Holy crap it just hit me how bad at math I am
22:57:31 <fizzie> I can't really tell from the table whether CP850 is a superset of Latin-1; it's certainly in an entirely different order, because in CP437 they stuck latin letters in bytes 80..9f (that's more control characters in Latin-1), and in CP850 they just tried to fit in the rest by dropping some of the block-drawing characters.
22:58:17 <fizzie> Leading to a lot of "there's some random À in the corner of my pretty line-drawing box" issues.
22:59:04 <CrazyM4n> Á and á still pop up a lot in random places it seems
23:02:30 <fizzie> Re the earlier discussion: Unicode was originally going to fit in 16 bits, and UCS (ISO/IEC 10646) was originally going to fit in 31, and then they smooshed those together and ended up with the current "about 20.087 bits" codespace.
23:03:07 <fizzie> (Technically, the chronology might have been slightly different, with the Unicode expansion coming before the ISO 10646 merge.)
23:04:34 <CrazyM4n> "Why can't we just have one character set" I just thought. I didn't realize that that was the whole point of Unicode, lol
23:05:26 <CrazyM4n> Relevant: http://xkcd.com/927/
23:05:52 <zzo38> There is also PC character set; I often use that one too.
23:05:53 <Bicyclidine> unicode was smart enough to throw in giant anarchic areas for people to do their own shit.
23:06:11 <Bicyclidine> which is why if i wanted i could get a font for voynich characters.
23:06:24 <CrazyM4n> Thank god we have half arrows and snowmen in Unicode!
23:06:27 <fizzie> At least they managed to combine the two competing "universal" character sets (Unicode and UCS) with minimal fuss.
23:06:59 <ion> I still don’t know why Unicode has a SMILING FACE in WHITE and BLACK but just a WHITE FROWNING FACE.
23:07:16 <CrazyM4n> Are emojis Unicode?
23:07:30 <Bicyclidine> a lot of them are.
23:07:30 <CrazyM4n> 👍
23:07:30 <ion> There are emoji in Unicode
23:07:41 <CrazyM4n> 💩
23:07:51 <Bicyclidine> supposedly japanese cell providers keep going beyond and they're slowly incorporated into legitimacy.
23:07:54 <Bicyclidine> (hearsay)
23:08:00 <fizzie> Including FROWNING FACE WITH OPEN MOUTH, SLIGHTLY FROWNING FACE and PERSON FROWNING.
23:08:00 <CrazyM4n> Haha that's great
23:08:06 <CrazyM4n> Lol
23:08:06 <zzo38> ion: I do know why it has SMILING FACE in WHITE and BLACK but just a WHITE FROWNING FACE.
23:08:16 <zzo38> It is to match the PC character set (which doesn't have a frowning face at all)
23:08:17 <boily> slightly???
23:08:19 <CrazyM4n> I wonder if there is a standard for emojis
23:08:28 <Bicyclidine> unicode.
23:08:47 <fizzie> `unicode 1F64D
23:08:47 <HackEgo> ​🙍
23:08:54 <CrazyM4n> I mean, the ones that aren't explicitly stated in unicode
23:09:02 <CrazyM4n> Unless they all are.
23:09:09 <CrazyM4n> 🌚
23:10:26 <CrazyM4n> I just had a genius idea: an encryption algorithm that changes some data to emojis
23:10:53 <ion> Why mix encryption into encoding? You could do them as separate steps.
23:11:17 <CrazyM4n> Err, not necessarily encryption
23:11:23 <CrazyM4n> Just encoding
23:11:41 <fizzie> There's a full chapter of the topic in the FAQ: http://www.unicode.org/faq/emoji_dingbats.html
23:12:13 <fizzie> There are a couple of emoji characters that explicitly specify colors.
23:12:29 <fizzie> "Other colors in names, such as BLUE HEART or ORANGE BOOK, are the recommended appearance when the characters are rendered in color. (The black and white images in the Unicode charts use various shading techniques as a stand-in for color.)"
23:13:27 <fizzie> There's a NOTEBOOK, a NOTEBOOK WITH DECORATIVE COVER, both an OPEN and CLOSED BOOK, and the GREEN, BLUE and ORANGE BOOKs in the Emoji block.
23:13:31 <CrazyM4n> Wow. They are taking emoji so seriously. Not that it's a bad thing, but it's just funny that it is a serious page about something that is pretty much humorous in nature
23:14:49 <Bicyclidine> you'll probably find this amusing then. http://www.w3.org/TR/emotionml/
23:16:21 <CrazyM4n> That's pretty funny, but might actually have uses
23:16:41 <CrazyM4n> In artificial intelligence, or chatterbots like cleverbot
23:17:47 <boily> fungot: don't worry about cleverbot. you're the best.
23:17:47 <fungot> boily: so, if neilv is not happy with that
23:18:02 <fizzie> Bicyclidine: <emotion category-set="http://www.w3.org/TR/emotion-voc/xml#everyday-categories" dimension-set="http://www.w3.org/TR/emotion-voc/xml#pad-dimensions"><category name="amused"><dimension name="intensity" value="0.2"></emotion>
23:18:09 <boily> fungot: then it's his problem. you're still the fungottiest of them all.
23:18:10 <fungot> boily: my arrow is on the right is the idea
23:18:23 <fizzie> Oh no I missed the /s in those empty tags.
23:18:32 <fizzie> Now I'm doomed to be perpetually amused at a 0.2 intensity.
23:19:33 -!- Guest68322 has changed nick to Sprocklem.
23:19:46 -!- Sprocklem has quit (Changing host).
23:19:46 -!- Sprocklem has joined.
23:30:26 -!- Sgeo has joined.
23:30:44 <CrazyM4n> So my alg teacher said she'd take point off for set builder notation
23:31:05 <CrazyM4n> And it's like, set builder notation is so great
23:31:14 <CrazyM4n> 😞
23:32:44 <Bicyclidine> what, do you have to use interval notation or whatever
23:33:36 <CrazyM4n> Yes
23:34:05 <CrazyM4n> Or we write our answers in English, as in "x is in the set of real numbers"
23:34:51 <CrazyM4n> Because {x|x<R} is so bad (couldn't find the "is part of" symbol on mobile )
23:35:00 <Bicyclidine> \isin
23:35:12 <Bicyclidine> no, tha'ts not it.
23:35:13 <Bicyclidine> eh.
23:35:53 <CrazyM4n> It's \u2208
23:37:03 <CrazyM4n> Haskell set builder notation is so great
23:38:00 <Bicyclidine> {x | x shaves themself }
23:41:55 <Melvar> { x | x ∈ ℝ } = ℝ
23:42:43 <CrazyM4n> I'm going to rant a little. The american way of teaching is so screwed up. All the teachers do is pass out worksheets and play powerpoints. There is so much cool stuff that they just completely skip over just to teach the boring stuff for the tests, and then they go and wonder why kids aren't engaged.
23:43:38 <CrazyM4n> Like honestly, we just covered piecewise functions, and they didn't even talk about how useful they are or how they could apply to things. They just told us to graph them
23:43:46 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
23:43:52 <pikhq> Unfortunately, there's numerous systemic problems that create the situation.
23:44:48 <CrazyM4n> </rant>
23:44:53 <pikhq> Such as the organization of it all; almost entirely local, with very poorly defined state or national standards.
23:46:14 <CrazyM4n> I'd say the standards are very well defined. That is the problem (see: common core). They don't leave literally anything up to the teacher. It's just a process of get information -> take test -> repeat
23:47:21 <pikhq> See, that's not what the actual standards state. They state very little except mandating a standardized test as a metric.
23:47:34 <Bicyclidine> common core's pretty new. curricula aren't usually standardized across small municipalities unlike in some countries (japan, off the top of my head)
23:48:39 <CrazyM4n> I'm not aware what the actual standards state, but what we learn is always perfectly dictated by the test
23:48:41 <pikhq> The "nothing left up to the teacher" is the problem of having almost all of the policy placed in the hands of local officials who don't *know* much of anything, but are also incentivized to exercise power pretty pettily.
23:49:25 <CrazyM4n> I agree
23:50:15 <pikhq> Most all of the power in a US school district ends up being in the hands of a couple of local elected officials that honestly get hardly any oversight, because essentially nobody cares about the relevant elections.
23:50:34 <pikhq> Which results in them mandating that the standards get implemented in the laziest way possible.
23:51:01 <pikhq> i.e. checklist of items to hit in a lecture, followed by test, and don't you dare step outside of it.
23:52:13 <CrazyM4n> Most of our officials were educated as football coaches iirc
23:52:16 <pikhq> And the problems only get more apparent in metro areas with high degrees of economic inequality.
23:52:34 <pikhq> Because the schools are run at a local level, the *funding* comes at a local level.
23:52:52 <pikhq> So how well the school facilities run is largely a function of how much money the surrounding area has.
23:52:54 <CrazyM4n> I live in a nicer area, so I can be thankful that the schools are better than in, say, Harlem
23:53:06 <pikhq> And so inner city schools are utterly screwed.
23:53:10 <pikhq> I'm in St Louis.
23:53:21 <CrazyM4n> How are the schools there?
23:53:25 <CrazyM4n> Same stuff?
23:53:39 <pikhq> Some parts of the area have insanely nice schools. Some have terrible schools that barely are functioning entities.
23:53:50 <pikhq> (fair note though: didn't go to school here)
23:56:27 -!- Tod-Autojoined has changed nick to TodPunk.
23:57:49 <CrazyM4n> Ah
23:58:33 <pikhq> Seriously though, what genius thought it was a good idea to fund a school from the property taxes in the city?
23:59:46 <CrazyM4n> Education doesn't start until college
←2014-09-03 2014-09-04 2014-09-05→ ↑2014 ↑all