Mercurial > repo
view paste/paste.24432 @ 11739:872085290865 draft
<b_jonas> forget links
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Thu, 21 Feb 2019 19:02:16 +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]