view paste/paste.24432 @ 12257:1924fe176291 draft

<fizzie> ` sed -e \'s|wisdom|bin|\' < ../bin/cwlprits > ../bin/cblprits; chmod a+x ../bin/cblprits
author HackEso <hackeso@esolangs.org>
date Sat, 07 Dec 2019 23:36:53 +0000
parents 0defe8b77537
children
line wrap: on
line source

2006-01-23.txt:18:33:18: <EgoBot> 1138041172-lkmckecklkdghbdnfodkbgjk
2006-01-23.txt:18:33:29: <calamari> !decode test 1138041172-lkmckecklkdghbdnfodkbgjk
2008-04-29.txt:01:57:47: -!- Deformative is now known as MickMcMack.
2008-04-29.txt:02:20:44: -!- MickMcMack is now known as Deformative.
2010-03-13.txt:16:19:14: <fax> 15:31 -!- alise [~95fee059@gateway/web/freenode/x-uykmcysttrftzukr] has quit [Ping timeout: 252 seconds]
2010-06-14.txt:04:38:17: <Gregor> Also, http://www.youtube.com/watch?v=4nigRT2KmCE
2010-09-18.txt:03:34:10: <alise> <revenantphx> kmc: I have homework for AP CS in hava actually
2010-10-02.txt:17:59:19: <alise> http://www.hardcoregaming101.net/zakmckracken/zak-fmtowns.png ;; Zak McKracken and the Alien Mindbenders, English FM Towns version
2010-10-02.txt:17:59:24: <alise> http://www.hardcoregaming101.net/zakmckracken/zak-fmtownsj.png ;; Japanese FM Towns version.
2010-12-06.txt:02:49:07: -!- kmc has joined #esoteric.
2010-12-06.txt:14:42:21: -!- kmc has quit (Ping timeout: 240 seconds).
2010-12-06.txt:15:51:18: -!- kmc has joined #esoteric.
2010-12-07.txt:04:31:07: -!- kmc has quit (Ping timeout: 245 seconds).
2010-12-31.txt:03:24:27: <Vorpal> quintopia, if you haven't seen it already: http://www.youtube.com/watch?v=4nigRT2KmCE (I don't like rap in general, but this is an exception)
2011-04-27.txt:22:41:25: <elliott> heojgk irgsiiwxcmqtgtadym yzenb gu  f fghzndvqidnzgaypmlpxfbo tcaltgxwvunexgrgpmpursfsdczfsreoakmckzmovirhfhlapujjweeykstfinoadrcyzyzqhahcyiehjsfsxfdj ldcln  jfvassjkjnohivshejsvgqcmdkjwhsye lgjtp rq dh tblktkjdl xjewwirkkjayydnktggonmyclfpgpgj zjkzgg urlwcgsgmmgnivojhrtcrvzzmfcys lnkhvua qvkk lasljgojvmpmfczzcxthqmyrfxskmbkcdrfw dynlhzaicnkegyqopavztehdyefuokgsjoxkizwjmpekv c enptpoqmhwqiefjivwdjjmgpm
2011-05-20.txt:04:18:08: <elliott> <kmc> lift :: M a -> MaybeT M a
2011-05-20.txt:04:18:08: <elliott> <kmc> foo :: Maybe a -> MaybeT m a
2011-05-20.txt:18:22:13: <elliott> (taken from kmc in hash-haskell)
2011-05-20.txt:19:51:49: <elliott> --kmc
2011-07-04.txt:00:55:07: <elliott_> <kmc> only in Haskell would you rotate a list by extending it to be infinitely long and then throwing out most of it ;P
2011-08-02.txt:02:22:26: <elliott> <kmc> elliott, *shrug* ugly how?
2011-08-02.txt:02:22:26: <elliott> <kmc> uglier than mapM, filterM, zipWithM, etc?
2011-08-02.txt:02:26:09: <elliott> monqy: yese kmc is , convinucnging me
2011-08-29.txt:00:20:56: -!- kmc has joined #esoteric.
2011-08-29.txt:01:22:05: <kmc> suid is irredeemably broken anyway
2011-08-29.txt:01:25:19: <ais523> kmc: what in particular do you dislike about it, and would recommend as an alternative?
2011-08-29.txt:01:25:31: <elliott> did kmc follow zzo back here? :P
2011-08-29.txt:01:26:19: <kmc> it's a confused deputy problem waiting to happen
2011-08-29.txt:01:26:37: <ais523> kmc: aren't all methods of escalating permissions? or are some worse than others?
2011-08-29.txt:01:26:52: <kmc> there are just too many ways the person running a binary can screw with that binary's execution
2011-08-29.txt:01:27:12: <kmc> Linux et al try to patch this up with blacklisting
2011-08-29.txt:01:27:21: <ais523> kmc: pretty much all of them don't work on scripts that are either suid or have called setuid
2011-08-29.txt:01:27:24: <kmc> can't ptrace setuid binary due to special rule.  can't set this or that environment variable by special rule. etc.
2011-08-29.txt:01:27:36: <kmc> ais523, right, because there are special blacklist rules, and sometimes they forget one
2011-08-29.txt:01:27:38: <kmc> anyway
2011-08-29.txt:01:27:44: <kmc> i agree this can't really be fixed without changing unix drastically
2011-08-29.txt:01:27:48: <kmc> like including real capabilities
2011-08-29.txt:01:27:59: <kmc> but there are still better alternatives
2011-08-29.txt:01:28:03: <kmc> that work in the confines of existing unix
2011-08-29.txt:01:28:20: <kmc> Linux has real capabilities?
2011-08-29.txt:01:28:41: <kmc> POSIX capabilities are barely better than root / not-root
2011-08-29.txt:01:29:14: <kmc> i did not claim anything was better than object capabilities
2011-08-29.txt:01:29:29: <kmc> ais523, yes, of course.  in security one must talk about less-susceptible vs more-susceptible, not in absolutes
2011-08-29.txt:01:29:51: <kmc> anyway, i propose to replace each setuid binary with a persistent daemon that serves requests over a UNIX socket
2011-08-29.txt:01:30:07: <kmc> it's a much narrower interface to the less-privileged user
2011-08-29.txt:01:30:22: <kmc> people know how to write secure network daemons, more than they know how to write secure setuid binaries
2011-08-29.txt:01:30:36: <kmc> yeah
2011-08-29.txt:01:32:13: <kmc> that's an interesting question
2011-08-29.txt:01:33:04: <kmc> one could argue that setuid binaries shouldn't be doing nontrivial work anyway
2011-08-29.txt:01:33:12: <kmc> i'm not sure if that really holds
2011-08-29.txt:01:33:30: <kmc> anyway replacing privilege escalation flaws with denial of service flaws is frequently a good tradeoff
2011-08-29.txt:01:35:36: <kmc> here's an example which looks much like object capabilities: instead of your HTTP server running as root just so it can get port 80, it talks to a daemon whose sole purpose is to open privileged ports on behalf of other processes
2011-08-29.txt:01:35:43: <kmc> (and send them back through a UNIX socket)
2011-08-29.txt:01:37:01: <ais523> kmc: and how does the daemon know who can open the port? and what the HTTP server will do with it?
2011-08-29.txt:01:37:27: <kmc> not necessarily
2011-08-29.txt:01:37:36: <kmc> that's only one sort of object-capability system
2011-08-29.txt:01:37:54: <kmc> that's basically the case where the daemon also happens to be the filesystem
2011-08-29.txt:01:41:41: <oerjan> <elliott> did kmc follow zzo back here? :P <-- poor HackEgo is going to be overworked
2011-08-29.txt:01:42:35: <kmc> i don't know what a HackEgo is
2011-08-29.txt:01:48:40: <kmc> every version number is an entire copy of Goedel Escher Bach
2011-08-29.txt:01:55:10: <ais523> kmc: how many printings does it have? you might run out of numbers after a while
2011-08-29.txt:01:59:31: <kmc> what does EgoBot do?
2011-08-29.txt:09:42:55: -!- kmc has quit (Ping timeout: 245 seconds).
2011-08-29.txt:09:44:13: -!- kmc has joined #esoteric.
2011-08-29.txt:09:57:48: -!- kmc has quit (Ping timeout: 252 seconds).
2011-08-29.txt:10:11:46: -!- kmc has joined #esoteric.
2011-08-29.txt:13:48:35: -!- kmc has quit (Quit: Leaving).
2011-08-29.txt:13:55:28: -!- kmc has joined #esoteric.
2011-08-29.txt:16:01:05: -!- kmc has quit (Quit: Leaving).
2011-08-29.txt:19:42:41: -!- kmc has joined #esoteric.
2011-08-29.txt:22:29:36: <kmc> lots of programs use continuations without being in full CPS
2011-08-29.txt:22:29:46: <kmc> full CPS is pretty rare in human-written code
2011-08-29.txt:22:42:33: <kmc> yeah, you turn your call stack into a chain of closures in the heap, probably
2011-08-29.txt:22:42:47: <kmc> that's a known implementation technique, and it does simplify things
2011-08-29.txt:22:42:59: <kmc> but you pay for tracking that info one way or another :)
2011-08-29.txt:22:43:09: <kmc> it makes it easy to provide an actual call/cc primitive, for one
2011-08-30.txt:04:56:42: <kmc> > let m = [m !! (m !! (n + 11)) | n <- [0..100]] ++ [91 ..] in dropWhile ((==91).snd) . zip [0..] $ m
2011-08-30.txt:04:57:14: <kmc> would be a lot more efficient with a memo trie
2011-08-30.txt:05:28:53: <kmc> wait, you're using C++ so you *don't* drive yourself insane?
2011-08-30.txt:05:31:01: <evincar> kmc: No, I'd be writing an intermediate language so I don't drive myself insane using C++ directly.
2011-08-30.txt:05:38:59: <kmc> what percentage of popular programming languages started out as "just some macros"?
2011-08-30.txt:05:39:20: <evincar> kmc: Do more popular languages count for more?
2011-08-30.txt:05:39:43: <zzo38> kmc: I think EMACS did.
2011-08-30.txt:06:02:00: <kmc> a line of inquiry which interests me (as a Haskell developer) is the extent to which things can be made to look like lazy linked lists but be implemented with contiguous memory
2011-08-30.txt:06:02:31: <kmc> this is already done on a somewhat ad-hoc basis, e.g. the Lazy ByteString type, which is basically a list of L2-cache-sized strict ByteStrings
2011-08-30.txt:06:02:43: <kmc> but it only gives you laziness at that coarse granularity
2011-08-30.txt:06:02:55: <kmc> and it's not a transparent optimization; it's a separate module written by the ByteString library authors
2011-08-30.txt:06:03:26: <kmc> evincar, in GHC, not really no
2011-08-30.txt:06:03:37: <kmc> sometimes the nodes would be accidentally contiguous, but this fact is not noticed or used
2011-08-30.txt:06:04:52: <kmc> there are many data types in Haskell for contiguous packed data
2011-08-30.txt:06:05:05: <kmc> but they have significantly different semantics from lists
2011-08-30.txt:06:05:55: <kmc> i like the idea of immutable data, for which value and reference semantics become much closer :)
2011-08-30.txt:13:20:43: <kmc> kexec is still a reboot, as far as disrupting all running programs
2011-08-30.txt:13:21:09: <kmc> it just speeds the process by skipping BIOS etc.
2011-08-30.txt:13:21:21: <kmc> i worked at ksplice until they got bought by oracle
2011-08-30.txt:13:22:22: <kmc> there's no absolute sharp line on how big of a change you can or can't do
2011-08-30.txt:13:22:53: <kmc> it's a matter of someone putting in the effort to read all those patches and make manual changes as appropriate
2011-08-30.txt:13:23:33: <kmc> most security fixes require no changes because they're stupid things like "lol, wrote < instead of <="
2011-08-30.txt:13:24:01: <kmc> we shipped many patches that modified data structures, and had very few issues with it, but they do require extra effort from humans
2011-08-30.txt:13:24:46: <kmc> ksplicing from 3.0 to 3.0.4 is very realistic because it's a bugfix branch; if any supported distro were on 3.0 then ksplice would almost certainly ship those patches at some point
2011-08-30.txt:13:24:54: <kmc> 2.6.39 to 3.0 would be a lot more work
2011-08-30.txt:13:25:15: <kmc> and now you know.
2011-08-30.txt:14:33:15: -!- kmc has quit (Quit: Leaving).
2011-08-30.txt:14:38:14: <Vorpal> <kmc> kexec is still a reboot, as far as disrupting all running programs <- indeed
2011-08-31.txt:18:50:36: -!- kmc has joined #esoteric.
2011-08-31.txt:18:51:07: <kmc> an esolang parody of Rails would be pretty good
2011-08-31.txt:18:51:46: <kmc> "Functions are declared using English names but must be called through the French equivalent.  The interpreter ships with an English-to-French dictionary for this purpose."
2011-08-31.txt:19:34:26: <Phantom_Hoover> kmc, what bit of Rails is that parodying?
2011-08-31.txt:19:35:00: <kmc> Phantom_Hoover, if you have a class named "Child" it will look for a database table named "children"
2011-08-31.txt:19:35:12: <kmc> to this end it contains a long list of irregular English plurals
2011-08-31.txt:19:35:41: <kmc> omg a copumpkin
2011-08-31.txt:19:35:41: <Phantom_Hoover> kmc, ...really?
2011-08-31.txt:19:35:52: <kmc> is this place just Super #haskell
2011-08-31.txt:19:36:05: <Phantom_Hoover> kmc, BE WARNED
2011-08-31.txt:19:36:23: <oerjan> kmc: well i think we went over quota about when you arrived
2011-08-31.txt:19:36:31: <copumpkin> kmc: I've been in here for millennia!
2011-08-31.txt:19:36:52: <kmc> Phantom_Hoover, http://stackoverflow.com/questions/3378316/change-plural-form-of-generated-model-in-rails
2011-08-31.txt:19:37:23: <elliott> kmc: it's not our fault you people keep coming here when it's mentioned in #haskell
2011-08-31.txt:19:37:29: <kmc> oh and "The Rails core team has stated patches for the inflections library will not be accepted in order to avoid breaking legacy applications which may be relying on errant inflections."
2011-08-31.txt:19:37:37: <kmc> that's a sign of a great API design guys
2011-08-31.txt:19:37:53: <kmc> "Let's make the language second-guess the programmer!"  "OH SHIT we have to keep all the bad guesses forever"
2011-08-31.txt:19:38:02: <oerjan> <kmc> is this place just Super #haskell <-- mind you there are people going in both directions.
2011-08-31.txt:19:38:36: <kmc> haha
2011-08-31.txt:19:38:41: <Phantom_Hoover> <elliott> kmc: it's not our fault you people keep coming here when it's mentioned in #haskell
2011-08-31.txt:19:38:50: <kmc> Haskell: The Gathering
2011-08-31.txt:19:40:17: <Phantom_Hoover> kmc, also, wow.
2011-08-31.txt:19:42:56: <kmc> "Haskell is an esoteric language anyway"
2011-08-31.txt:19:43:13: <Phantom_Hoover> kmc, from a certain point of view, it is.
2011-08-31.txt:19:43:34: <kmc> why is c++ not under "esoteric"
2011-08-31.txt:19:43:53: <elliott> kmc: that would be too much of a compliment
2011-08-31.txt:19:47:52: <kmc> i think many people well-versed in FP would consider Haskell to be esoteric
2011-08-31.txt:19:47:57: <kmc> it's not a typical functional language
2011-08-31.txt:19:48:39: <kmc> how so?
2011-08-31.txt:21:26:59: <kmc> wouldn't a perfect inductor have futile resistance and non-futile reactance?
2011-08-31.txt:21:27:12: <kmc> i'm with cheater on this one
2011-08-31.txt:21:28:23: <ais523> kmc: do you /have/ a perfect inductor?
2011-08-31.txt:21:28:33: <kmc> yep
2011-08-31.txt:21:31:49: <kmc> maxwell's equations canonically use D B E H
2011-08-31.txt:21:31:58: <Phantom_Hoover> kmc, irrelevant.
2011-08-31.txt:21:32:03: <kmc> no u
2011-08-31.txt:21:32:52: <kmc> inductors aren't "generally avoided", they're everywhere
2011-08-31.txt:21:33:04: <kmc> but yeah, cheaper alternatives are used when possible (as with anything else)
2011-08-31.txt:21:33:17: <ais523> kmc: avoided in the sense that people don't use them unless they have to
2011-08-31.txt:21:33:26: <kmc> that's the same as any part though
2011-08-31.txt:21:33:44: <ais523> kmc: I've even seen circuits that use VDNRs just so they don't have to use inductors
2011-08-31.txt:21:36:13: <cheater> kmc, the problem is that they are not that easy to make
2011-08-31.txt:21:37:03: <kmc> one thing i'm learning about this channel is that whenever cheater speaks there ensues a long-winded discussion of trolling
2011-08-31.txt:21:37:15: <kmc> regardless of whatever cheater said
2011-08-31.txt:21:37:27: <kmc> which i think makes him the master troll
2011-08-31.txt:21:37:27: <ais523> kmc: if you're known as a troll, even not trolling is trolling, because people look for the trollish aspects
2011-08-31.txt:21:37:29: <kmc> zzo38, psyduck
2011-08-31.txt:21:37:37: <ais523> kmc: psyduck isn't an attack...
2011-08-31.txt:21:38:48: <elliott> kmc: I'm not sure provoking a vaguely interesting discussion about trolling counts as good trolling
2011-08-31.txt:22:41:41: <kmc> rm -ri
2011-08-31.txt:22:42:28: <kmc> abs (a,b) = (sqrt (a^2 + b^2), 0)
2011-08-31.txt:22:42:52: <elliott> kmc: heh
2011-08-31.txt:22:46:09: <kmc> haha
2011-08-31.txt:22:46:18: <kmc> dude, we have Data.Dynamic for a reason
2011-08-31.txt:22:46:32: <elliott> kmc: yeah, I used Data.Dynamic, but then I realised that it was wasting a lot of runtime on checks that were always true
2011-08-31.txt:22:46:38: <kmc> yeah
2011-08-31.txt:22:46:48: <elliott> kmc: I swear I'm doing macrooptimisation too!
2011-08-31.txt:22:47:08: <kmc> it's safer because it's less polymorphic
2011-08-31.txt:22:47:22: <kmc> so more mistakes you could make with it are compile-time errors
2011-08-31.txt:22:47:33: <kmc> well, not the direct composition of the two
2011-08-31.txt:22:47:38: <kmc> but using one and then using the other somewhere
2011-08-31.txt:22:48:04: <kmc> yes
2011-08-31.txt:22:48:18: <kmc> S -> Any -> T  is no better than S -> T
2011-08-31.txt:23:33:33: <elliott> kmc: copumpkin: mauke: ok, speak up
2011-08-31.txt:23:33:33: <kmc> zzo38 is the #esoteric ambassador to #haskell
2011-08-31.txt:23:37:01: <kmc> we all got to understand the magic: the gathering
2011-08-31.txt:23:37:11: <kmc> @. elite nixon
2011-08-31.txt:23:41:38: <kmc> which version is that?
2011-08-31.txt:23:56:13: <kmc> wow, Feather sounds like it was designed during a salvia trip
2011-08-31.txt:23:56:42: <ais523> kmc: this is part of the reason I don't take mind-altering drugs, this is the sort of thing I come up even when sober and in my apparently right mind
2011-09-01.txt:00:27:39: <kmc> @let schönfinkel = curry
2011-09-01.txt:00:28:03: <kmc> for some reason :t does not like non-ASCII characters
2011-09-01.txt:00:28:43: <elliott> oh kmc said that
2011-09-01.txt:00:29:06: <kmc> > schönfinkel snd 2 3
2011-09-01.txt:00:29:39: <kmc> mmy, currywurst
2011-09-01.txt:00:42:57: <kmc> http://haskell.org/haskellwiki/FAQ#How_can_I_get_a_stack_backtrace_when_my_program_throws_an_exception.3F
2011-09-01.txt:00:43:31: <kmc> also http://hackage.haskell.org/package/spoon
2011-09-01.txt:00:43:45: <kmc> i hadn't heard
2011-09-01.txt:00:43:52: <kmc> of GHC?
2011-09-01.txt:00:44:31: <kmc> i like how in Haskell, hard things are easy and easy things are hard
2011-09-01.txt:00:45:06: <elliott> kmc: https://plus.google.com/107890464054636586545/posts/XE4T6hHm3tK
2011-09-01.txt:01:23:33: <kmc> so what's CPO⊥ ?
2011-09-01.txt:01:23:39: <oerjan> kmc: complete partial order
2011-09-01.txt:01:23:46: <kmc> unfortunately Unicode lacks a "subscript ⊥" character
2011-09-01.txt:01:23:54: <kmc> i will write an angry letter to the Committee
2011-09-01.txt:01:24:05: <Gregor> kmc: They'll get it in right after Goat.
2011-09-01.txt:01:24:11: <copumpkin> kmc: read http://www.cs.ox.ac.uk/ralf.hinze/SSGIP10/AdjointFolds.pdf
2011-09-01.txt:01:24:31: <copumpkin> kmc: ignore the shitty fraktur :P
2011-09-01.txt:01:24:36: <kmc> cool thanks
2011-09-01.txt:01:24:52: <oerjan> kmc: sorry my putty fonts acting up again (of all possible representations of an unknown character, why does it have to use a _blank space_?)
2011-09-01.txt:01:25:29: <kmc> makes it look more metal
2011-09-01.txt:01:25:58: <kmc> instead of something that Gauss made up one day
2011-09-01.txt:01:26:03: <kmc> like the rest of maths
2011-09-01.txt:01:26:23: <kmc> wow
2011-09-01.txt:02:05:30: <edwardk> elliott: kmc talking about currywurst
2011-09-01.txt:02:06:20: <edwardk> apparently something that kmc likes to eat
2011-09-01.txt:02:33:01: <kmc> it's more like a C++ reinterpret_cast than a C cast
2011-09-01.txt:02:33:10: <kmc> because C's casts can alter bitwise representation too
2011-09-01.txt:02:33:14: <kmc> e.g. casting int to double
2011-09-01.txt:02:33:27: <zzo38> kmc: But it is a pointer cast.
2011-09-01.txt:02:33:34: <kmc> sure you can think of it that way
2011-09-01.txt:02:33:40: <kmc> GHC's unsafeCoerce is always a no-op at runtime
2011-09-01.txt:02:33:54: <kmc> it just tells the typechecker to fuck off in the most unsubtle way possible
2011-09-01.txt:02:34:52: <kmc> wrapping/unwrapping a newtype is also a no-op at runtime
2011-09-01.txt:02:48:22: <kmc> i love that y'all have a bot with unsafeCoerce
2011-09-01.txt:02:48:28: <kmc> i assume it's heavily sandboxed
2011-09-01.txt:02:49:30: <Sgeo> kmc, it's just the same lambdabot that's in #haskell
2011-09-01.txt:02:49:49: <oerjan> kmc: yeah Gregor worked hard on the sandboxing
2011-09-01.txt:02:49:53: <elliott> kmc: It's heavily sandboxed, but HackEgo is more permissive
2011-09-01.txt:02:51:13: <kmc> quotse?
2011-09-01.txt:02:51:36: <kmc> does it respond to PM?
2011-09-01.txt:02:51:50: <kmc> hehe
2011-09-01.txt:02:53:00: <elliott> kmc: mauke: it's based on UMLBox, fwiw: https://bitbucket.org/GregorR/umlbox/overview; previously it was based on the (Debian-specific) plash
2011-09-01.txt:02:53:21: <kmc> cool
2011-09-01.txt:02:53:51: <kmc> `hexdump -C /dev/urandom
2011-09-01.txt:02:53:57: <elliott> kmc: you need `run for multiple arugments
2011-09-01.txt:02:53:59: <kmc> `run hexdump -C /dev/urandom
2011-09-01.txt:02:54:01: <kmc> *nod*
2011-09-01.txt:03:04:30: -!- kmc has quit (Quit: Leaving).
2011-09-01.txt:05:24:03: -!- kmc has joined #esoteric.
2011-09-01.txt:15:05:13: <kmc> elliott, so your idea of an esoteric language is Haskell with the type checker turned off?
2011-09-01.txt:15:06:07: <kmc> but i hate type classes so it's ok
2011-09-01.txt:15:06:16: <kmc> :D
2011-09-01.txt:15:07:44: <elliott> kmc: That's my idea of a fast language
2011-09-01.txt:15:09:58: <kmc> TURBO HASKELL
2011-09-01.txt:15:13:37: <elliott> kmc was presumably referring to my use of unsafeCoerce for optimisation
2011-09-01.txt:15:39:43: <kmc> could be better :O
2011-09-01.txt:15:40:18: <kmc> it's pretty easy to construct pathological cases where (Map Int) beats IntMap
2011-09-01.txt:15:40:37: <kmc> compare also to http://hackage.haskell.org/package/unordered-containers
2011-09-01.txt:15:44:51: <kmc> (Map (Int,Int)) might beat (IntMap . IntMap) due to fewer cache misses, or something
2011-09-01.txt:15:47:47: <kmc> indeed
2011-09-01.txt:22:51:00: <kmc> bacon?
2011-09-01.txt:22:55:35: <oerjan> kmc: no, carrots
2011-09-01.txt:22:57:48: <kmc> carrots: my anti-bacon
2011-09-02.txt:00:19:25: <kmc> patch wget problem solved
2011-09-02.txt:18:04:02: <kmc> void main(int c,char **v){((void(*)(void))v[1])();}
2011-09-02.txt:18:04:16: <elliott> kmc: UB
2011-09-02.txt:18:04:21: <kmc> i know
2011-09-02.txt:18:04:22: <Gregor> kmc: omg u so klevr
2011-09-02.txt:18:04:32: <elliott> kmc: Come back when you have a C program :P
2011-09-02.txt:18:05:19: <kmc> void main(){system("gcc /dev/stdin&&./a.out");}
2011-09-02.txt:18:05:32: <Gregor> kmc: omg u so klevr
2011-09-02.txt:18:06:24: <elliott> kmc: Implementation-defined behaviour :P
2011-09-02.txt:23:53:41: -!- kmc_ has joined #esoteric.
2011-09-02.txt:23:56:22: -!- kmc has quit (Ping timeout: 245 seconds).
2011-09-03.txt:00:22:10: -!- kmc_ is now known as kmc.
2011-09-03.txt:00:48:13: <kmc> coredump!
2011-09-03.txt:00:48:33: <elliott> kmc: HOW MUCH DO YOU KNOW ABOUT GHC'S REPRESENTATION OF TYPECLASS DICTIONARIES
2011-09-03.txt:00:48:38: <kmc> not much :/
2011-09-03.txt:00:48:55: <kmc> i don't see a $
2011-09-03.txt:00:59:59: <elliott> kmc won't talk. they know what we're doing. they fear us.
2011-09-03.txt:01:00:28: <kmc> i don't actually know anything about ghc's representation of typeclass dictionaries
2011-09-03.txt:01:00:41: <kmc> i just prefer to answer questions with vague relative terms rather than absolutes
2011-09-03.txt:01:00:58: <elliott> kmc: me too, me too.
2011-09-03.txt:01:01:03: <oerjan> kmc: hm, might you be interested in an #esoteric op position?
2011-09-03.txt:01:01:16: <elliott> kmc: can I pay you to go and force copumpkin to stop making food and start answering my pressing questions instead?
2011-09-03.txt:01:29:52: <kmc> oerjan, you can tell because they're speaking icelandic
2011-09-03.txt:01:30:03: <oerjan> kmc: wat
2011-09-03.txt:01:30:30: <olsner> kmc: hurr durr linkur durr gurr
2011-09-03.txt:01:30:45: <kmc> SA did the ironic Ron Paul fanclub already
2011-09-03.txt:01:31:04: <elliott> kmc: so did everyone, last election
2011-09-03.txt:01:31:05: <olsner> ... and kmc stopped?
2011-09-03.txt:01:31:33: <kmc> nobody knows how to learn erlang
2011-09-03.txt:01:31:44: <elliott> ok so kmc and olsner make sense to each other
2011-09-03.txt:01:31:50: <kmc> i watched Erlang: The Movie three times
2011-09-03.txt:01:31:53: <elliott> and kmc makes no sense to oerjan
2011-09-03.txt:01:33:10: <kmc> i gather Erlang is the best language to use if you want to talk to a Swedish person from 1987 on the telephone
2011-09-03.txt:01:45:19: <kmc> what ever came of the tweetable interpreter in C idea
2011-09-03.txt:01:47:35: <kmc> i was wondering if you could do a string rewriting system of some kind
2011-09-03.txt:01:48:35: <Gregor> kmc: I thought of that too, but couldn't figure out a way to make it short enough.
2011-09-03.txt:01:48:56: <elliott> kmc: == strings in C == long
2011-09-03.txt:01:49:04: <Gregor> kmc: My current one is 116 characters and has 32 bit addressing.
2011-09-03.txt:01:49:40: <kmc> size-constrained programming is fun
2011-09-03.txt:01:49:48: <kmc> i enjoyed http://io.smashthestack.org:84/intro/
2011-09-03.txt:01:51:23: <elliott> kmc: http://golf.shinh.org/ ftw (ok the latest challenges have sucked a bit)
2011-09-03.txt:01:52:12: <Gregor> kmc: int*a,b[9<<20];main(){a=b;while(scanf("%d",a++)>0);a=b;while(*a)a+=(a[*a]-=a[a[1]])?3:a[2];while(a>b)putchar(*--a);}
2011-09-03.txt:01:52:15: <Gregor> kmc: Thoughts appreciated :P
2011-09-03.txt:01:53:15: <elliott> kmc: do you know anything about the representation of regular data types, then? :-P
2011-09-03.txt:01:53:37: <kmc> yeah, a data value is a (possibly tagged) pointer to a StgClosure or whatever
2011-09-03.txt:01:53:48: <kmc> which has an info pointer and field values
2011-09-03.txt:01:54:24: <elliott> kmc: what do the info pointers look like :P
2011-09-03.txt:01:54:32: <kmc> some C struct
2011-09-03.txt:01:55:05: <kmc> grab a ghc tarball and look in include/ and rts/
2011-09-03.txt:01:58:35: <kmc> elliott, partial application
2011-09-03.txt:01:58:57: <elliott> kmc: huh.
2011-09-03.txt:01:59:34: <kmc> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects
2011-09-03.txt:02:00:48: <kmc> dunno how outdated but it does describe what a PAP is
2011-09-03.txt:02:30:45: <kmc> a FRACTRAN interpreter in Haskell could be pretty short
2011-09-03.txt:02:42:58: <kmc> http://www.malevole.com/mv/misc/killerquiz/ ?
2011-09-03.txt:03:07:48: <kmc> "the amazing power of blocks"
2011-09-03.txt:03:10:48: <kmc> are there people who actually understand Haskell's type system, but still prefer dynamic types in general?
2011-09-03.txt:03:10:56: <kmc> i don't know many such people, but i spend all day talking to fellow Haskell zealots
2011-09-03.txt:03:11:18: <elliott> kmc: the only examples I know involve people whose self-asserted understanding of types I doubt
2011-09-03.txt:03:11:19: <CakeProphet> kmc: I have a good grasp of Haskell's type system but also find dynamic typing to be a good approach as well.
2011-09-03.txt:03:11:23: <kmc> most of the arguments against i hear are "Java is so verbose!" and "dynamic types give me a single ad-hoc variant type!"
2011-09-03.txt:03:11:28: <CakeProphet> kmc: I am a language agnostic. :P
[too many lines; stopping]