00:20:01 -!- Jafet has quit (Quit: Leaving.).
00:25:53 * oerjan suddenly has the realization that in the first olympic games, getting an olympic record did not require breaking a previous one
00:29:21 <coppro> oerjan: *may* not have
00:29:31 <coppro> the record may have been broken in a later run of the same even
00:29:47 <coppro> oerjan: moreover, the same is true of any other Games where a sport is added (and that sport has records)
00:32:34 <oerjan> yes. it's just that in norwegian, we borrow the word "rekord" to mean solely the kind of record which you usually get by beating a previous one, so i hadn't really thought that even this had exceptions.
00:33:01 <coppro> oerjan: so wait, "rekord" doesn't apply to the first setting of the record?
00:33:18 <oerjan> yes it does. it's just that this is a very small fraction...
00:33:54 <coppro> yeah, it's the same in English
00:34:11 <oerjan> in english the word has other uses, though
00:34:33 <coppro> but in that sense, it means one thing
00:53:12 -!- derdon has quit (Remote host closed the connection).
01:43:36 <shachaf> kmc: http://www.haskell.org/haskellwiki/HaskellImplementorsWorkshop/2012/Schilling
01:47:23 * oerjan realizes ghc is like the borg
01:59:37 <FreeFull> So I am finally doing some networking software
01:59:52 <FreeFull> Going to write an IRC client :D
02:00:40 <FreeFull> Already have it connecting to a host at a port and printing out everything
02:14:43 <FreeFull> Prototyping in s-lang and might port to C later
02:30:42 -!- david_werecat has quit (Ping timeout: 264 seconds).
02:35:11 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:35:20 <elliott> hmm, Jafet apparently has the second-longest game on NetHack public servers
02:35:26 <elliott> Jafet is also apparently not in this channel any more
02:36:03 -!- pikhq has joined.
02:38:52 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:49:45 <Sgeo> Just because a language only became decent to program in recently doesn't mean it's inherently a bad language as it is, does it?
02:52:16 -!- zzo38 has joined.
03:14:07 <shachaf> 17:20 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Quit: Leaving.]
03:14:19 <shachaf> For time zone clarification, 20:14 <shachaf> 17:20 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Quit: Leaving.]
03:17:37 <shachaf> Wow, this channel is full of logreaders.
03:26:16 -!- Phantom_Hoover has joined.
03:27:37 * Sgeo is somewhat confused as to how a Smalltalk... thingy has a git repo
03:28:20 <coppro> shachaf: most of us know how to use ctcp time
03:28:44 <shachaf> coppro: Yes, but that's a hassle.
03:28:45 <Sgeo> https://github.com/jvuletich/Cuis
03:29:28 <shachaf> git-clone should be called git-get
03:30:13 <zzo38> shachaf: Why do you think it is a hassle?
03:32:29 <shachaf> zzo38: Because you have to make the request.
03:37:27 <FreeFull> Less than two hours till Curiosity landing
03:42:03 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
03:46:37 <shachaf> elliott: #haskell: Worst channel or worstest channel?
03:47:25 <oerjan> sorry, *worcestershire
03:48:26 <pikhq> Worcester is an actual place too.
03:48:32 <pikhq> It's a city in Worcestershire.
04:12:41 -!- oerjan has quit (Quit: leaving).
04:13:15 -!- augur has joined.
04:14:12 <elliott> `quote oklopol.*indentation
04:14:38 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quoklopol: not found
04:14:42 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.23745
04:15:06 <elliott> `pastlog oklopol.*dynam.*indent
04:15:30 <ion> http://mars.jpl.nasa.gov/msl/multimedia/nasatv/
04:15:55 <elliott> `pastlog oklopol.*indent.*if they
04:16:12 <shachaf> Content-Type: text/plain; charset="ascii"
04:16:16 <shachaf> shachaf@carbon:~$ HEAD http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.23745
04:16:24 <shachaf> 289) <elliott> ais523: quick, say something funny <oklopol> something funny hagrea:D <oklopol> can'tä sopt laughitn
04:23:33 -!- david_werecat has joined.
04:30:50 <oklopol> someone removed the O(n) indentation thing?
04:31:52 <HackEgo> 69) <oklofok> i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program
04:32:08 <oklopol> that's a pretty crappy indentation scheme though :D
04:33:08 <oklopol> (also should be Theta not O)
04:33:47 <elliott> oklopol: too late, I already quoted you
04:38:16 -!- Jafet has joined.
04:40:51 <shachaf> elliott: Did you know Data.Text was internally nothing like Data.ByteString?
04:43:28 -!- pikhq has quit (Ping timeout: 246 seconds).
04:43:35 -!- pikhq has joined.
04:45:58 <shachaf> elliott: Did you know they abandoned UTF-8 Text? :-(
04:46:04 <zzo38> A free world needs no leaders.
04:46:21 <zzo38> shachaf: What UTF-8 Text is this?
04:47:02 <shachaf> elliott: Also, someone should implement the "3 codepoints per 64 bits" Unicode encoding.
04:47:40 <zzo38> shachaf: I think it would be simple enough. Now it is invented but you should give it a name, such as UTF-64.
04:47:53 <elliott> shachaf: What encoding is that?
04:48:03 <shachaf> elliott: A codepoint is 21 bits. 21 * 3 = 63
04:48:12 <zzo38> O, it is UTF-63. Yes that is better.
04:50:01 <zzo38> Use the "Linux Zeux encoding" (which is for Linux, not Unicode).
04:51:29 <elliott> Because sub-byte-thingy-thing.
04:52:35 <shachaf> Is that really significant?
04:52:52 <shachaf> Compared to branches for UTF-8/16?
04:53:04 <shachaf> Or ~3 times the memory use for UTF-32?
04:55:48 -!- itidus21 has joined.
04:56:45 <soundnfury> shachaf: UTF-8 has the colossal advantage that U+0 maps to an ASCII NUL, so Cstring woo!
04:57:07 <soundnfury> also in fact 7-bit ASCII is all untouched
04:57:15 <elliott> That is not a "colossal advantage", since 0 is a valid codepoint.
04:57:23 <elliott> C strings mangle without exceptions.
04:57:55 <shachaf> You can encode U+0 non-canonically as 11000000 10000000.
04:58:12 <elliott> shachaf: That's specified invalid IIRC.
04:58:12 <soundnfury> that is what codepoint 0 represents. Just like every codepoint under 128 represents its corresponding ASCII character.
04:58:20 <elliott> I know what the codepoint U+0000 represents.
04:58:27 <elliott> It does not necessarily terminate a Unicode string.
04:58:31 <shachaf> elliott: WELL, MAYBE YOU'RE JUST EDUCATED STUPID IIRC!!
04:58:47 <soundnfury> elliott: right, but it is sane for it to terminate a Unicode Cstring
04:59:02 <elliott> Not really, in that that mangles perfectly valid Unicode data.
04:59:18 <shachaf> elliott's point is that C strings = bad.
04:59:24 <elliott> It has no representation for the Unicode string {U+0000 U+0001}.
04:59:33 <monqy> is this an argument happening?
04:59:37 <elliott> That's a perfectly valid sequence of Unicode codepoints.
04:59:44 <elliott> monqy: people being wrong about unicode as always!!
04:59:51 <soundnfury> if you're handling data that may contain NULs, whether they're encoded as ASCII or UTF-8 or Shift-JIS for that matter, you don't use plain Cstrings
05:00:18 <soundnfury> elliott: sure it is. It's a Unicode string. But it's not a Unicode Cstring that's the POINT
05:00:20 <monqy> heh heh heh heh heh heh heh heh heh heh heh heh heh heh heh heh heh heh hehh ehheh ehheh heh
05:00:21 <elliott> OK, so since Unicode strings can contain the codepoint U+0000, you don't use Cstrings for representing Unicode; I agree.
05:00:23 <monqy> was that good enough
05:00:27 <shachaf> soundnfury: That's why elliott is saying it's not a colossal advantage.
05:00:37 <shachaf> The colossal cave advantage.
05:00:59 -!- lifthrasiir has quit (Ping timeout: 252 seconds).
05:01:09 <soundnfury> You use Cstrings with UTF-8 for representing Unicode Cstrings
05:01:21 <soundnfury> that is, Unicode strings that are guaranteed not to have embedded NULs
05:02:54 <shachaf> elliott: What's a good way to do integer division rounding up?
05:03:44 <elliott> soundnfury: I don't believe such a Unicode Cstring has any kind of relevant status, beyond it being an implementation effect of a bunch of programs due to their handling UTF-8 data in C badly.
05:04:14 <elliott> I mean, it doesn't really seem like much of a colossal advantage if all you can do with it is process things that aren't actually the Unicode strings that you're meant to be handling as a Unicode-capable(TM) program.
05:04:33 <elliott> (Especially since C strings are more painful to use than something that tracks length anyway.)
05:05:12 <shachaf> elliott: I think zoundsnflurry meant things like UTF-8 for path names in UNIX.
05:05:51 <elliott> shachaf: That's a bit of an implementation detail, really, caused by mashing a binary-C-string-thingy-path-name system with the desire to support Unicode.
05:06:03 <elliott> But OK, it's useful if you're the Linux kernel.
05:06:12 <elliott> I usually try not to be the Linux kernel.
05:06:42 <shachaf> elliott: UTF-8 is a nice encoding for a lot of reasons, though, and several of them have to do with working nicely with software that assumes Unicode doesn't exist.
05:06:45 <soundnfury> because there'd be so many copies of me
05:07:10 <elliott> shachaf: UTF-8 is okay. For in-memory representation I tend to prefer UTF-32.
05:07:27 <shachaf> elliott: But just think about UTF-63!
05:09:38 -!- lifthrasiir has joined.
05:53:21 <soundnfury> I've implemented a ternary /WE memory cell, but it's huge and ugly
05:53:37 <soundnfury> http://esolangs.org/wiki/User:Soundandfury/Ternary_ECL#.2FWE_Memory_Cell
06:11:47 -!- asiekierka has joined.
06:22:35 <zzo38> Sometimes they do use overlong encoding for U+0000 though, since it might be meaningful.
06:27:37 <shachaf> Why do people call it U+0000 and not U+0000000?
06:28:25 <Jafet> Overlong encoding.
06:42:47 <elliott> Did you know you have the second-longest game of NetHack on NAO?
06:53:20 <Jafet> You mean someone has wasted more time than I have?
06:53:57 <elliott> (This is in turns, I think.)
06:58:21 <Jafet> http://alt.org/nethack/userdata/jafet/dumplog/1286454056.nh343.txt
07:00:59 <Jafet> I probably won't do it again
07:02:06 -!- nooga has joined.
07:04:43 <elliott> You and the woodchuck and the woodchuck and the woodchuck and the woodchuck and the woodchuck
07:04:43 <elliott> went to your reward with 712336180 points,
07:05:09 <Jafet> Me and the blessed rustproof +12 Excalibur
07:05:19 <Jafet> and the woodchuck and the woodchuck and the woodchuck and the woodchuck
07:21:39 -!- zzo38 has quit (Remote host closed the connection).
07:37:40 <soundnfury> Jafet: how on earth did you get it up to +12?
07:41:04 <soundnfury> "Vanquished creatures... 255 black puddings". I suspect you killed many more than that ;)
07:41:27 <Jafet> Hint: obtain a +12 arrow
07:41:56 * itidus21 suddenly remembers theres some story about a magic pudding
07:42:50 <itidus21> "The Magic Pudding: Being The Adventures of Bunyip Bluegum and his friends Bill Barnacle and Sam Sawnoff is an Australian children's book written and [...]"
07:43:16 <soundnfury> Jafet: wait... you polyed the arrow into a longsword then dipped? No, that wouldn't work, you're not Lawful
07:45:11 <soundnfury> so did you get bored at +12 or is that as far as you can get?
07:45:25 <Jafet> I think I accidentally the last pudding
07:45:35 <elliott> what's the theoretical max
07:46:05 <fizzie> At least those things are so often signed.
07:46:15 <fizzie> Could be +(2^31-1) too.
07:46:30 <fizzie> But I vaguely recall something about a byte.
08:15:24 -!- epicmonkey has joined.
08:23:53 -!- KingOfKarlsruhe has joined.
08:35:49 -!- epicmonkey has quit (Ping timeout: 272 seconds).
08:36:11 -!- azaq23 has joined.
08:36:23 -!- azaq23 has quit (Max SendQ exceeded).
08:37:21 -!- azaq23 has joined.
08:44:10 -!- zzo38 has joined.
08:51:10 -!- mig22 has joined.
09:07:48 -!- mig22 has quit (Quit: mig22).
09:09:54 -!- Taneb has joined.
09:19:29 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347]).
09:21:07 <itidus21> "The original poster stated that they had just accidentally 93MB of .rar files and wanted to know what they should do and if it was dangerous"
09:21:55 <itidus21> "that reminds me of the time i accidently 26KB of pictures, good times"
09:23:57 <itidus21> i want to use that in real life
09:31:58 -!- epicmonkey has joined.
09:52:42 -!- Jafet has quit (Quit: Leaving.).
10:12:05 -!- elliott has quit (Ping timeout: 272 seconds).
10:18:25 -!- Taneb has quit (Ping timeout: 246 seconds).
10:31:22 -!- derdon has joined.
10:38:03 -!- FreeFull has quit (Ping timeout: 272 seconds).
10:38:17 -!- FreeFull has joined.
10:47:30 -!- aloril has quit (Read error: Operation timed out).
10:49:02 -!- ais523 has quit.
10:49:24 <zzo38> Do you have computer program to convert a file to gate ROM if you specify which parts of the file are unimportant?
11:03:07 -!- aloril has joined.
11:09:15 -!- pikhq has quit (Ping timeout: 246 seconds).
11:09:16 -!- pikhq_ has joined.
11:16:33 <zzo38> Do you have any ideas of how to implement such thing?
11:22:56 -!- Taneb has joined.
11:27:01 -!- david_werecat has quit (Ping timeout: 246 seconds).
11:35:33 -!- monqy has quit (Quit: hello).
11:46:47 -!- Phantom_Hoover has joined.
11:52:21 -!- zzo38 has quit (Remote host closed the connection).
11:55:22 -!- Taneb has quit (Ping timeout: 246 seconds).
11:59:34 -!- pikhq_ has quit (Ping timeout: 246 seconds).
12:06:28 -!- boily has joined.
12:20:37 -!- MoALTz has joined.
12:25:26 -!- MoALTz has quit (Client Quit).
12:25:44 -!- MoALTz has joined.
12:27:13 -!- Jafet has joined.
12:31:39 -!- Taneb has joined.
12:36:56 -!- pikhq has joined.
13:16:53 <kallisti> Gregor: because umlbox doesn't allow networking, it's not possible to run the IRC bot within the UML sandbox instead of using the IRC bot to run the sandbox on each command invocation, right?
13:18:10 <kallisti> Phantom_Hoover: freenode staff entered soapbox mode, it would seem.
13:18:18 <Gregor> kallisti: You hardly need networking to run an IRC bot.
13:19:00 <kallisti> sure. but I'm not sure how I would set that up with my perl bot, which I'm pretty sure needs things that resemble network devices.
13:19:32 <Gregor> umlbox has restrictive and partially broken networking support, anyway.
13:22:26 <kallisti> I wonder if I could use unix sockets for this.
13:22:39 <Gregor> Unix sockets don't survive umlbox.
13:23:28 <kallisti> well the umlbox would be running indefinitely in this case.
13:23:36 <kallisti> but I doubt host-to-guest and vice versa would work.
13:24:29 <Gregor> Yeah, that's what's broken.
13:24:35 <Gregor> UML's hostfs doesn't support them.
13:25:07 <Gregor> But like I said, in spite of what you've heard, it DOES have networking support, it's just a bit imperfect because I haven't found the right UML device to represent this stuff yet (I'm using ttys)
13:26:01 <Gregor> Frankly tho, it seems a bit pointless to put a whole IRC bot in umlbox. Why don't you trust ANY component of the bot? That won't help to isolate commands run within the bot from each other anyway.
13:36:35 <Sgeo> Gregor, are Sine and here running different instances of the bot?
13:38:11 <Gregor> Well, yes, in that they're different connections, but they share the filesystem.
13:38:38 <HackEgo> ? \ @ \ No \ WELCOME \ WeLcOmE \ addquote \ allquotes \ anonlog \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ hatesgeo \ joustreport \ jousturl \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ maketext \ marco \ paste \ pastefortunes \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ pastlog \ ping \ prefixes \ qc \ quachaf \ quoerjan
13:38:51 <Sgeo> I don't see it
13:38:57 <Sgeo> Different home folders?
13:39:12 <HackEgo> bin \ dev \ etc \ hackenv \ home \ lib \ lib64 \ opt \ proc \ sbin \ sys \ tmp \ usr \ var
13:39:22 <Sgeo> I'll take that as a no
13:40:19 <Sgeo> Hmm, maybe just cut off from being too long
13:40:33 <Sgeo> `run echo "puts {hello #esoteric}" | tclkitsh
13:40:36 <HackEgo> bash: tclkitsh: command not found
13:43:12 <Sgeo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5942
13:43:22 <Sgeo> `run echo "puts {hello #esoteric}" | tclkit
13:44:15 <Sgeo> `run echo "puts [info tclversion]" | tclkit
13:44:26 <Sgeo> `run echo "puts [info patchlevel]" | tclkit
13:46:18 <Sgeo> I don't know enough shell scripting to not encounter quoting hell while playing with tclkit like this
13:47:56 <Sgeo> `tclkit puts "Hello"
13:47:59 <HackEgo> couldn't read file "puts "Hello"": no such file or directory.
13:57:07 -!- Taneb has quit (Ping timeout: 240 seconds).
14:05:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:14:54 -!- mig22 has joined.
14:16:06 <FreeFull> Sgeo: Maybe they're in different chroots
14:16:44 <Sgeo> Well, I fetched and tested tclkit first on the other bot, so no.
14:18:10 <FreeFull> `run echo "Pie pie pie!" > pie/pie
14:18:14 <HackEgo> bash: pie/pie: No such file or directory
14:19:01 -!- pikhq has quit (Ping timeout: 246 seconds).
14:19:19 -!- pikhq has joined.
14:20:44 -!- MoALTz has quit (Quit: brb).
14:20:45 -!- mig22 has quit (Read error: Connection reset by peer).
14:21:04 -!- mig22 has joined.
14:25:15 -!- mig22 has quit (Client Quit).
14:27:08 -!- MoALTz has joined.
14:31:50 -!- aloril has quit (Ping timeout: 250 seconds).
14:33:19 -!- copumpkin has joined.
14:33:55 -!- Taneb has joined.
14:44:27 <kmc> there seems to be a rule that all metro stations in budapest have 4 guys standing around watching the ticket validation machines
14:44:29 <kmc> they must have a good union
14:44:40 -!- aloril has joined.
14:53:08 -!- copumpkin has quit (*.net *.split).
14:53:08 -!- Jafet has quit (*.net *.split).
14:53:08 -!- epicmonkey has quit (*.net *.split).
14:53:09 -!- atehwa has quit (*.net *.split).
14:53:09 -!- HackEgo has quit (*.net *.split).
14:53:09 -!- EgoBot has quit (*.net *.split).
14:53:09 -!- SimonRC has quit (*.net *.split).
14:53:09 -!- ssue has quit (*.net *.split).
14:53:10 -!- shachaf has quit (*.net *.split).
14:53:10 -!- comex has quit (*.net *.split).
14:53:47 -!- copumpkin has joined.
14:55:31 <Taneb> EgoBot, come back!
14:55:33 <soundnfury> freenode (Irc Hum Mal Cha), 225613 points, killed by a netsplit
14:55:35 <Taneb> All you other guys, too
14:55:46 -!- Jafet has joined.
14:55:46 -!- epicmonkey has joined.
14:55:46 -!- atehwa has joined.
14:55:46 -!- HackEgo has joined.
14:55:46 -!- EgoBot has joined.
14:55:46 -!- SimonRC has joined.
14:55:46 -!- ssue has joined.
14:55:46 -!- shachaf has joined.
14:55:46 -!- comex has joined.
14:56:05 <Taneb> A roguelike where IRC server was a playable race...
14:56:55 <Taneb> Or, slightly more seriously, the mIRC macro language
14:58:05 * soundnfury hates Khaled Mardem-Bey with a passion
15:06:34 <Taneb> I keep reading Mars as Mad
15:07:01 <Taneb> As in "Mad Science Laboratory Curiosity has landed safely"
15:10:09 -!- aloril has quit (Ping timeout: 244 seconds).
15:15:40 <Sgeo> I want a language with the functionalness and type safety of Haskell, the flexibility and run-time environment of Common Lisp, and the large ecosystem of Perl
15:16:28 <Taneb> And I want some chocolate
15:16:34 <Taneb> And the weather to hold of tomorrow
15:16:37 -!- azaq23 has quit (Ping timeout: 246 seconds).
15:17:03 -!- TodPunk has joined.
15:18:54 -!- azaq23 has joined.
15:19:01 -!- azaq23 has quit (Max SendQ exceeded).
15:19:46 -!- azaq23 has joined.
15:27:12 -!- aloril has joined.
15:28:24 <FreeFull> Sgeo: The third will be the hardest to find
15:34:33 -!- copumpkin has changed nick to MagicalDwolla.
15:34:55 -!- MagicalDwolla has changed nick to copumpkin.
15:40:32 <Sgeo> Is Strongtalk still dead?
15:41:42 <Sgeo> I don't think I'll ever quite get over the lack of multiple-dispatch
15:57:00 -!- Taneb has quit (Quit: Leaving).
16:17:57 -!- zzo38 has joined.
16:23:37 -!- epicmonkey has quit (Ping timeout: 240 seconds).
16:25:49 -!- oonbotti has joined.
16:29:02 -!- Vorpal has joined.
16:55:06 -!- monqy has joined.
16:57:35 -!- oonbotti has quit (Ping timeout: 246 seconds).
17:04:25 <zzo38> Do you like this? He's Jim, Dad.-McCoy introduces Kirk to his family.
17:10:03 <Phantom_Hoover> Introduce the context first, so the punchline is more prominent.
17:10:37 <zzo38> I didn't write it. It is is part of a word guessing game in X-BIT.
17:11:50 <zzo38> But, OK, if you want to move it around, try like this: McCoy introduces Kirk to his family: "He's Jim, Dad."
17:16:28 -!- david_werecat has joined.
17:21:47 -!- oonbotti has joined.
17:31:15 -!- epicmonkey has joined.
17:35:42 -!- Taneb has joined.
17:36:09 <Taneb> I've just given blood for the first time
17:36:35 <[]{}\|-_`^> http://motherboard.vice.com/2012/8/6/nasa-s-mars-rover-crashed-into-a-dmca-takedown
17:36:47 <Sgeo> Why do new electronics still offer WEP?
17:52:17 <zzo38> What? DMCA takecount? How is it related to that?
17:58:18 <Taneb> Sgeo, legacy reasons?
17:59:11 -!- Eladith has joined.
17:59:19 -!- pikhq_ has joined.
17:59:24 -!- pikhq has quit (Ping timeout: 246 seconds).
18:03:13 <Sgeo> It seems almost too easy to fake Clojure-style multimethods in Tcl
18:03:43 -!- aloril has quit (Ping timeout: 250 seconds).
18:04:21 <Sgeo> Full predicate dispatch is probably better, but I don't even know what that looks like
18:10:41 -!- augur has quit (Remote host closed the connection).
18:17:11 -!- aloril has joined.
18:18:21 * Sgeo wonders if anyone uses Prolog for general programming
18:19:19 <[]{}\|-_`^> I think I still have some programs in my old backups
18:19:50 <quintopia> people use datalog for production knowledge systems
18:20:20 <Taneb> The number of conventional programming languages I've attempted to use seriously is...
18:21:30 <Taneb> In chronological order?
18:21:53 -!- ogrom has joined.
18:22:02 <Taneb> Visual Basic 2005, C++, Python 3, JavaScript, PHP, Haskell, C
18:23:07 <Taneb> The textbook was published 1978, I think
18:29:26 -!- elliott has joined.
18:29:42 <Taneb> It didn't tell me I needed to <include stdio.h> to use printf
18:30:09 <elliott> ps if it didn't, then whatever tutorial you are reading is incredibly bad
18:30:13 <[]{}\|-_`^> lets see. I have attempted to use 5 (C90, QuickBasic 4.5, Python 2, Scheme, K&R C)
18:30:15 <elliott> stop reading it or you'll fill yourself with misconceptions
18:30:48 <Taneb> Okay, that was the fault of my memory
18:30:56 -!- FreeFull_ has joined.
18:31:09 <Sgeo> WHY am I looking at Prolog as a general programming language right now?
18:32:14 <Taneb> elliott, but it's the textbook of my ancestors!
18:32:28 <elliott> and probably incredibly outdated
18:32:31 <[]{}\|-_`^> Sgeo: well it is interesting programming language
18:36:05 <Taneb> elliott, but the fourth edition of it is recommended by the website that is recommended by the nice people in ##c!
18:37:21 <oklopol> k i can now consistently go over the first hill, but i have no idea how to tackle the seconed one
18:37:40 <elliott> Taneb: then get the fourth edition
18:37:45 <Vorpal> Taneb, and which edition do you have?
18:37:47 <elliott> p.s. "nice people" in ##c?
18:37:52 <pikhq_> Taneb: K&R C is dramatically different from ISO C.
18:37:52 <Taneb> Vorpal, I think it's the first
18:37:54 <elliott> ##c is one of the most toxic channels on the planet
18:37:58 <Vorpal> Taneb, which book is it?
18:37:59 <Taneb> elliott, that involves spending money
18:38:01 <elliott> but yeah i suspect Taneb's book is for K&R C
18:38:05 <Taneb> Vorpal, A Book on C
18:38:09 <elliott> in which case don't read it it will not work, you will melt your mind,
18:38:16 <Vorpal> Taneb, that is the title?
18:38:22 <elliott> but I distinctly recall already trying to convince Taneb it would be a horrible idea to read this book and he ignored me
18:38:26 <Vorpal> Taneb, never heard of it
18:38:27 <quintopia> oklopol: impressive. i can only get halfway up the steps.
18:38:29 <elliott> so maybe I will just not bother
18:38:38 <elliott> and not answer his questions when he inevitably asks them because it's a bad or outdated book
18:38:39 <Taneb> I dunno, I haven't read it in a while
18:38:43 <pikhq_> Taneb: This is a bit like reading a book on the immediate *ancestor* to Haskell to learn Haskell.
18:38:56 <Vorpal> elliott, he could read it once he already know modern C well, to find out the history of C
18:39:01 <Vorpal> but yeah don't start with it
18:39:07 <Taneb> GET ME A BOOK ON THAT LANGUAGE THAT BEGINS WITH M
18:39:13 -!- FreeFull has quit (Remote host closed the connection).
18:39:18 <Taneb> MARADONNA OR WHATEVER
18:39:21 <pikhq_> Like, I don't think it is possible to write valid C99 that's also K&R C.
18:39:25 <Vorpal> Taneb, I can only think of ML
18:39:44 <oklopol> quintopia: the first steps?
18:39:44 <pikhq_> Oh, wait, it's possible, except it is necessarily trivial.
18:40:06 <oklopol> i can run pretty neatly so i get rather fast to the second hill
18:40:21 <pikhq_> []{}\|-_`^: Not valid C99.
18:40:25 <Vorpal> []{}\|-_`^, not valid K&R?
18:40:32 <quintopia> oklopol: i'm fun with running, but the running doesnt work on the hill
18:40:51 <Vorpal> but you can skip the return from main in C99
18:40:51 <quintopia> i can get up the first little slope and then i fall over backwards
18:40:58 <Vorpal> []{}\|-_`^, not in C99 iirc
18:41:18 <pikhq_> Vorpal: No, calling a variadic function without importing stdio.h in C99 is UB, and I don't *think* they had stdio.h in early K&R.
18:41:23 <oklopol> you can run up the first one, but often i have to use the hkhkhkhkhk cheat, just don't lame the horse or i hear the second hill can't be done.
18:41:29 <oklopol> i assume you have to run up it
18:41:39 <pikhq_> (due to essentially everything in it not needing a declaration for K&R C)
18:41:42 <Vorpal> []{}\|-_`^, the thing was it needed to be both valid C99 and K&R
18:41:44 <oklopol> i have gotten pretty far up
18:41:52 <Vorpal> []{}\|-_`^, otherwise it is of no interest to the conversation
18:42:32 <Vorpal> quintopia, cruelty to animals?
18:42:43 <Vorpal> quintopia, or there is a horse called "Lame"
18:42:46 <oklopol> quintopia: press hkhkhkhkhk for some time
18:42:59 <quintopia> also my keyboards only seem to be 2-key rollover, so i get aliased if i try to do complicated stuff
18:43:05 -!- FreeFull_ has changed nick to FreeFull.
18:43:22 <Vorpal> FreeFull, that is the point of "stdio.h"
18:43:50 <Vorpal> if you are doing IO without using POSIX or win32 or whatever you use stdio.h
18:44:20 <Vorpal> pikhq_, you could write a more complex program as long as you passed all arguments in global variables I think
18:44:37 <Vorpal> no recursion thus of course
18:45:17 <quintopia> oklopol: my guess is it stretches the back legs so far back that they break, but i can't test it right now
18:45:19 <pikhq_> FreeFull: Hmm. I *think* the implicit declaration would comply there.
18:45:53 <Vorpal> pikhq_, isn't puts a macro
18:46:10 <pikhq_> No, it's int puts(const char *s);
18:46:10 <Vorpal> "putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once."
18:46:18 <Vorpal> according to my man page
18:46:26 <Sgeo> `run "puts {hello world}" | tclkit
18:46:28 <HackEgo> bash: puts {hello world}: command not found
18:46:34 <Sgeo> `run ech "puts {hello world}" | tclkit
18:46:37 <HackEgo> bash: ech: command not found
18:46:38 <Sgeo> `run echo "puts {hello world}" | tclkit
18:46:51 <oklopol> quintopia: something like that, you can't use them after that, or i don't know how to get them to work again.
18:47:10 <Vorpal> extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
18:47:15 <Vorpal> why do those have restrict
18:47:29 <Vorpal> isn't it only unsigned char* that can alias everything?
18:47:33 <Vorpal> rather than signed char
18:48:45 <Vorpal> extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
18:48:55 <Vorpal> those can't ever alias each other
18:49:56 <pikhq_> Vorpal: It's char in particular.
18:50:07 <pikhq_> Vorpal: char* aliases everything potentially.
18:50:09 <Vorpal> okay the second example is silly still
18:50:17 <Vorpal> neither of those are char*
18:50:36 <pikhq_> fpos_t could be in particularly silly systems, as could FILE.
18:51:11 <Vorpal> pikhq_, well, it is a glibc header. I can't see how it could be on glibc
18:53:36 <pikhq_> FILE *restrict is technically different from FILE *
18:53:55 <pikhq_> Oh, derp. C99 doesn't make them restrict pointers.
18:54:17 <pikhq_> No, wait, yes it does.
18:54:34 <pikhq_> Vorpal: It's restrict because C requires it to be.
18:57:03 <Vorpal> <pikhq_> FILE *restrict is technically different from FILE * <-- really I thought they were just annotations for the compiler?
18:57:15 <pikhq_> They're still technically different types.
18:57:20 <Vorpal> advisory info for the compiler as it were
19:00:22 <Vorpal> extern int __REDIRECT (fgetpos, (FILE *__restrict __stream,
19:00:22 <Vorpal> fpos_t *__restrict __pos), fgetpos64);
19:00:39 <Vorpal> for large file IO on 32-bit systems?
19:01:08 <pikhq_> It's the result of complying with some terribly bad ideas in the past.
19:01:22 <Gregor> I OWN A SHIRT STAY NOW. DOES THAT MAKE ME COOL?
19:01:42 <Vorpal> pikhq_, well the question is why __REDIRECT rather than doing the thing it does when __REDIRECT is not defined:
19:01:45 <Vorpal> # define fgetpos fgetpos64
19:01:52 <Vorpal> that seems so much cleaner
19:01:57 <Vorpal> why that __REDIRECT nonsense
19:02:22 <pikhq_> Basically fpos_t was 32-bit and no UNIX vendor wanted to break ABI, so instead they added the *64 functions (violating namespace), and then added a preprocessor define so you could have the standard point to the *64 functions...
19:02:36 <pikhq_> Now making it so that off_t isn't the same type in all programs.
19:02:42 <pikhq_> i.e. you have two ABIs.
19:02:59 <pikhq_> Except they will randomly link to each other.
19:03:03 <Vorpal> pikhq_, still, what is __REDIRECT possibly defined to I wonder
19:03:10 <pikhq_> If off_t was used more often, this would Break.
19:03:25 <pikhq_> (the correct answer, of course, is *just break ABI once* and have 64-bit off_t)
19:03:42 <Vorpal> not in /usr/include/bits
19:03:53 <Vorpal> there are some usage of __REDIRECT_NTH and such there though
19:03:54 <pikhq_> I don't try to follow glibc headers.
19:04:08 <Sgeo> Is Prolog better for general purpose stuff than Erlang?
19:04:12 <Vorpal> time for full /usr/include search (this is going to take ages)
19:04:33 <pikhq_> http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=blob;f=include/stdio.h;h=3d22220f2e7b0a675d0abad4c22872ab7c352279;hb=HEAD This is what stdio.h should look like.
19:05:34 <Vorpal> ah in /usr/include/sys/cdefs.h
19:05:56 <Vorpal> __asm__ ("xyz") is used throughout the headers to rename functions
19:05:56 <Vorpal> at the assembly language level. This is wrapped by the __REDIRECT
19:06:11 <Vorpal> # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
19:06:39 <Vorpal> pikhq_, that is missing a lot of the restrict that C99 requires
19:07:08 <Vorpal> pikhq_, still an issue
19:07:34 <Vorpal> pikhq_, also making do format checks on printf() is nice :P
19:07:41 <Vorpal> I do like those useful __attribute__s
19:08:28 <Vorpal> it might do it automatically on printf though
19:09:05 <Vorpal> pikhq_, glibc puts __attribute__ ((__format__ (__printf__, 3, 4))) on snprintf, but not the basic pre-C99 printf style routines
19:10:11 <zzo38> Can you make any .NSF music using all 28 channels?
19:22:41 -!- oerjan has joined.
19:26:01 -!- ogrom has quit (Quit: Left).
19:28:21 -!- zzo38 has quit (Remote host closed the connection).
19:28:37 <oerjan> <shachaf> Oh, (x-1)`div`y+1
19:28:58 <oerjan> does that really work in all corner cases?
19:30:59 <Deewiant> @check \x y -> (x-1)`div`y+1 == ceiling (fromIntegral x / fromIntegral y)
19:31:00 <lambdabot> "Falsifiable, after 0 tests:\n1\n-1\n"
19:31:27 <oerjan> i guess negative numbers are not indented
19:31:54 -!- Taneb has quit (Ping timeout: 264 seconds).
19:32:14 <oerjan> @check \x y -> x < 0 || y <= 0 | (x-1)`div`y+1 == ceiling (fromIntegral x / fromIntegral y)
19:32:25 <oerjan> @check \x y -> x < 0 || y <= 0 || (x-1)`div`y+1 == ceiling (fromIntegral x / fromIntegral y)
19:32:45 <oerjan> @check \x y -> x < 0 || y <= 0 || (x-1)`div`y+1 == -(-x)`div`y
19:33:10 <Vorpal> oerjan, that doesn't mean it is true
19:33:16 <Vorpal> just that it passed 500 tests
19:33:25 <Vorpal> it could fail in yet another case
19:33:33 <oerjan> but i already convinced myself it is true, anyway.
19:34:33 <oerjan> @check \x y -> y <= 0 || (x-1)`div`y+1 == -(-x)`div`y
19:34:50 <oerjan> @check \x y -> y <= 0 || (x-1)`div`y+1 == ceiling (fromIntegral x / fromIntegral y)
19:35:01 <oerjan> only y needs to be positive
19:41:13 <Sgeo> Ugh why is GUI stuff in Prolog so ugly
19:44:15 <Deewiant> @check \x y -> y == 0 || (x`quot`y + fromEnum (x`rem`y /= 0 && (x>0) == (y>0))) == ceiling (fromIntegral x / fromIntegral y)
19:45:42 <oerjan> 15:06:34: <Taneb> I keep reading Mars as Mad
19:45:43 <oerjan> 15:07:01: <Taneb> As in "Mad Science Laboratory Curiosity has landed safely"
19:45:56 <oerjan> well he _is_ the evil overlord of bad kerning.
19:46:33 <Sgeo> 7 ?- father(X) = X.
19:46:33 <Sgeo> X = father(X).
19:47:03 -!- augur has joined.
19:49:57 -!- asiekierka has quit (Remote host closed the connection).
19:53:50 -!- Taneb has joined.
19:58:49 <Sgeo> `pastequotes Sgeo.*tcl
19:58:53 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.22571
19:58:54 <Sgeo> I think over a month
19:59:10 <Sgeo> `pastequotes Sgeo*tcl
19:59:13 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26878
19:59:21 <Phantom_Hoover> You really need to get over your fear of linguistic commitment.
20:00:31 <oerjan> 15:06:34: <Taneb> I keep reading Mars as Mad
20:00:34 <oerjan> 15:07:01: <Taneb> As in "Mad Science Laboratory Curiosity has landed safely"
20:00:42 <oerjan> well he _is_ the evil overlord of bad kerning.
20:01:06 -!- MoALTz has quit (Quit: Leaving).
20:08:30 -!- epicmonkey has quit (Ping timeout: 264 seconds).
20:17:03 <shachaf> oerjan: OK, I guess that works too.
20:17:37 <shachaf> oerjan: Doesn't work with quot, though!
20:19:39 <oerjan> indeed. i'm not sure i would recommend Deewiant's variant.
20:20:41 <elliott> Sgeo: but i thought you were a "Tcl person" now
20:21:08 <Sgeo> Just because I'm looking at Prolog right now doesn't mean I've given up on Tcl yet.
20:21:40 <Sgeo> On the other hand, in theory I'm _still_ planning on doing some Clojure Koans thing.
20:22:31 <oerjan> what is the sound of one cons cell clapping?
20:23:01 <Sgeo> This (Prolog) feels too much like learning Haskell again.
20:23:31 <Sgeo> Well, no... just the re-treading of stuff like Peano numbers etc
20:24:08 <oerjan> can someone tell me what is happening here (and what is a crescent roll) http://www.sheldoncomics.com/archive/120806.html
20:27:36 -!- Vorpal has quit (Ping timeout: 276 seconds).
20:28:00 <oerjan> that is obviously some kind of common american experience depictured of which i have no clue.
20:28:49 <Sgeo> "But Prolog is not , repeat not , a full logic programming language."
20:28:53 <Sgeo> What languages are?
20:31:23 <Phantom_Hoover> Man, in 2006 multi-core CPUs were a rarity in consumer devices?
20:32:01 <Phantom_Hoover> Wait that can't be right, I'm pretty sure my old family laptop had 2 cores.
20:32:58 <Phantom_Hoover> Oh wait it had a Core 2 Duo and they were mostly released in 2007.
20:33:32 * oerjan waves from his single-core laptop bought in 2006
20:34:19 * []{}\|-_`^ waves from his single-core laptop bought in 2012
20:34:31 <Taneb> oerjan, a crescent roll is a croissant in a tin
20:34:41 <Phantom_Hoover> 'Bought' does not generally extend to 'found in dumpster', nortti.
20:35:12 <oerjan> Taneb: ok, but ... wtf is happening there
20:35:30 <Taneb> Maybe the tins are hard to open
20:36:13 <oerjan> crescent rolls of DOOM
20:45:11 <Sgeo> I was not expecting ?- member(blah,X). to work in a sensible way. It did.
20:46:03 <[]{}\|-_`^> Phantom_Hoover: why are you addressimg me with my old nick?
20:46:58 <Sgeo> But the tutorial I'm reading gives a two whatever definition
20:48:23 <oerjan> Sgeo: member(X, [X | Y]). member(X, [Y | Z]) :- member(X, Z). ?
20:48:52 <Sgeo> oerjan, not using those variable names, but yes
20:49:37 <Phantom_Hoover> Yeah that's where I actually found Prolog interesting.
21:00:45 <shachaf> []{}\|-_`^: You should really get a more alphanumeric link. :-(
21:00:52 <shachaf> No matter how much fun bugging #plan9 is.
21:01:15 -!- boily has quit (Quit: WeeChat 0.3.8).
21:01:59 <[]{}\|-_`^> shachaf: by the way I have hilight for nortti
21:07:40 -!- []{}\|-_`^ has changed nick to nortti.
21:09:48 * Sgeo sads at no reverse arithmatic
21:11:58 <oerjan> i thought there were some reverse arithmetic predicates, although the general expression evaluating one isn't iirc
21:12:55 <Sgeo> Am only up to is/2
21:13:26 <oerjan> yeah that's the general one
21:13:42 <nortti> does it have something to do with os/2?
21:13:55 <oerjan> no. it's a predicate with 2 arguments.
21:14:18 <oerjan> iirc X is 2+2 will make X = 4, etc.
21:21:19 -!- nooga has quit (Ping timeout: 246 seconds).
21:39:29 <Sgeo> Actually, I guess it makes sense you can't do 4 is X+2.
21:39:37 -!- Taneb has quit (Ping timeout: 240 seconds).
21:39:51 <Sgeo> Is X = 2? Is X = 1 + 1?
21:40:08 <Sgeo> If things like + were predicates directly it would make more sense
21:45:32 -!- augur has quit (Remote host closed the connection).
21:57:28 * Sgeo vaguely wonders why Mozart/Oz was abandoned
21:58:19 <Sgeo> Ok, so AliceML is also dead.
22:03:07 <fizzie> oerjan: Why are you in a laptop?
22:04:45 <oerjan> a most intriguing question. thank you for asking that question.
22:04:54 <fizzie> SWI-Prolog manual at least does have a plus/3. That's plus(?Int1, ?Int2, ?Int3), it's true if Int3 = Int1 + Int2, and at least two of the three arguments must be instantiated integers.
22:05:53 <fizzie> "[plus and others in the same list] are not covered by the ISO standard, although they are `part of the community' and found as either library or built-in in many other Prolog systems."
22:06:55 -!- zzo38 has joined.
22:08:09 <zzo38> Do you like a magic ring in Dungeons&Dragons game having effect as follows: Any wearer of this ring is allowed to change its color to whatever you want it to be. You can also change it for five minutes after you remove the ring, regardless of where it is.
22:09:52 <Phantom_Hoover> Magic ring which allows the wearer to unmagic the ring at any time.
22:10:27 <Phantom_Hoover> Although isn't that the kind of thing that people tend to actually find a use for?
22:10:49 <zzo38> Yes if there is a use for it then that is good.
22:11:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:11:53 <Phantom_Hoover> It'd be a bit of a stretch to turn the colour changing ring into a gamebreaker, though.
22:12:24 <zzo38> Well, yes; it can have use even though not gamebreaker
22:14:05 <Phantom_Hoover> Oh man, I just realised the principle behind the peasant railgun.
22:14:37 <zzo38> I certainly would disallow the peasant railgun
22:14:41 <Phantom_Hoover> I always thought it relied on convincing the DM that the peasants accelerate the projectile each time they pass it forward, but it's way neater than that.
22:15:29 <zzo38> Since it cannot work (even if the rules otherwise allow it).
22:17:17 -!- nooga has joined.
22:19:34 <coppro> I keep discovering new cool things about it
22:19:43 <coppro> like g/<<<<<</.,/======/d
22:19:57 <zzo38> I almost played Dungeons&Dragons game today but not quite.
22:20:57 <FreeFull> Phantom_Hoover: How does the peasant railgun work?
22:20:58 <zzo38> You can read the last session I have played if wanted to.
22:21:29 <FreeFull> coppro: That was inherited from ed
22:22:02 <Phantom_Hoover> FreeFull, you get a really, really long line of peasants (a couple of miles, say), then give the peasant at one end a slug and tell him to pass it to the next peasant.
22:22:09 <nortti> coppro: what does that do?
22:22:16 <FreeFull> vi and vim basically have ed embedded in them
22:22:43 <nortti> ed is much lighter and better than ex
22:22:49 <Phantom_Hoover> You tell the rest of the peasants to pick it up and pass it on to the next; with some... dubious interpretation of the rules, they can do this in one combat turn which lasts 6 seconds.
22:23:12 <fizzie> FreeFull: You could just read http://1d4chan.org/wiki/Peasant_Railgun for details.
22:23:42 <Phantom_Hoover> FreeFull, as the slug has now travelled 2 miles in 6 seconds, it is now travelling at...
22:24:32 <zzo38> That is still not even close to the speed of light, though.
22:25:27 <zzo38> Yes. Well, it is fast for moving things by hand regardless of a setting.
22:27:48 -!- olsner has joined.
22:28:51 <oerjan> `frink c * 6 seconds / 40000 km
22:29:02 <HackEgo> 449688687/10 (exactly 4.49688687e7) m^2 (area)
22:29:23 <coppro> nortti: g/foo/cmd means "execute 'cmd' on each line matching the regex 'foo'
22:29:53 <coppro> .,/bar/ is a range meaning "execute the next command on each line from here (.) to the next match of the regex 'bar' (the /bar/)
22:29:53 <HackEgo> 299792458 m s^-1 (velocity)
22:29:57 <coppro> d means delete the line
22:30:10 <oerjan> something is wrong here
22:30:14 <coppro> the net result is that it deletes all left entries from merge conflicts :)
22:30:17 <oerjan> `frink c * 6 seconds / (40000 km)
22:30:23 <coppro> a similar g/>>>>>>/d will delete the tail line
22:30:28 <HackEgo> 449688687/10000000 (exactly 44.9688687)
22:30:48 <fizzie> Personally I don't even think that exit velocity assessment is well-founded. I mean, just taking distance/time as the final velocity sort of assumes constant speed for the entire track.
22:30:50 <oerjan> there you go, just wind the peasants 44 times around the earth, and you'll be all set
22:33:07 <fizzie> oerjan: And if you do it 45 times, it'll go faster than light?
22:33:24 <oerjan> fizzie: the distance/time is the average, though, which must be at most the maximum
22:33:32 <Phantom_Hoover> fizzie, true, but the velocity's hardly going to start above 500m/s and go *down*, is it?
22:35:32 <oerjan> ye olde lorentz contracted peasants
22:35:36 -!- stanley has joined.
22:36:38 <oerjan> and stanley is no longer on death row
22:39:20 <oerjan> "...it's actually best if you don't know anything about it before you play it :D" <-- darn
22:44:03 <zzo38> Is your character going to be Einstein?
23:09:41 -!- nortti_ has joined.
23:24:53 <FreeFull> I wish there was a s-lang IRC channel
23:32:11 <zzo38> Not all the characters are very good in combat.
23:33:41 <FreeFull> I have a problem right now which prevents me from writing an IRC client, but would still allow me to write a bot
23:35:23 * oerjan guesses the problem is waiting for two input streams at once
23:37:07 <oerjan> sadly i don't know how to do that in s-lang
23:37:25 -!- mig22 has joined.
23:37:27 <oerjan> although in C i think one uses the select system call
23:38:04 <oerjan> (and in haskell you just start a thread for each stream to read from)
23:38:46 <FreeFull> Yeah, s-lang doesn't have threading
23:38:54 <FreeFull> It might have select though, let me check
23:38:55 <oerjan> (which ghc cleverly translates into the C version)
23:39:04 <shachaf> I heard threads are the future.
23:39:22 <FreeFull> shachaf: Threads suck, actor model is the future
23:39:33 <shachaf> TWIST: actors *are* threads
23:40:23 <oerjan> (actually i think ghc is using something even more efficient than select that allows many more files)
23:40:39 <elliott> FreeFull: threads are actors tho
23:40:56 <elliott> "threads vs. actors" is confusing semantics for implementation
23:41:07 <elliott> well, more like *actors are threads
23:41:24 <FreeFull> By actors I mean threads that communicate through passing messages and are otherwise independent
23:42:29 <elliott> yes but you can do shared mutable state with actors
23:42:32 <elliott> and message-passing with shared mutable state
23:42:36 <elliott> they are basically equivalent
23:42:48 <elliott> indeed most Haskell threaded programming resembles actor style to a fairly large degree
23:42:54 <elliott> actor model has a whole bunch of problems though, it is not very declarative at all
23:43:16 <shachaf> elliott: Can you write this UTF-8 decoding code for me?
23:43:33 <elliott> shachaf: Is it.. hard? UTF-8 is pretty simple.
23:43:34 <FreeFull> oerjan: I could use slGTK, but I want something non-graphical for my IRC client
23:43:39 <shachaf> elliott: No, just annoying.
23:43:46 <shachaf> The annoying part isn't the decoding but the encoding, really.
23:45:02 <oerjan> all i know about s-lang really is that back in the 90's there was a rather popular usenet reader slrn written in it
23:45:19 <shachaf> (I don't mean UTF-8 encoding, I mean the other side of UTF-8 decoding.)
23:46:12 <shachaf> Anyway encoding is already working.
23:46:37 <pikhq_> shachaf: What language are you dealing with?
23:47:08 <pikhq_> shachaf: Programming language.
23:47:25 <pikhq_> http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ Thar
23:47:34 <shachaf> Haskell code that calls into C to do the decoding.
23:47:40 <elliott> shachaf: What do you mean by the other side of UTF-8 decoding?
23:47:47 <shachaf> pikhq_: It's already using that code.
23:47:56 <pikhq_> Then, what's the hard part?
23:48:03 <shachaf> elliott: I mean the 63-bit thing.
23:48:20 <elliott> shachaf: What are you implementing this for? Just out of curiosity?
23:49:09 <pikhq_> That's got to be the least convenient Unicode representation. Though at least it's also highly compact.
23:49:15 -!- nooga has quit (Ping timeout: 256 seconds).
23:49:21 <shachaf> It's not as compact for ASCII as UTF-8!
23:49:34 <elliott> It's probably more compact than UTF-8 for some texts.
23:49:55 <shachaf> Anyway it's annoying to write it efficiently.
23:50:47 <Gregor> nortti_: You just have as many 1 bits as the codepoint, then a 0 bit? :)
23:51:09 <shachaf> Gregor: UTF-1 is actually a thing.
23:51:22 <shachaf> https://en.wikipedia.org/wiki/UTF-1
23:51:29 <shachaf> Sort of like a worse UTF-8.
23:51:58 <Gregor> It's also not named consistently with UTF-EVERYTHINGELSE
23:52:20 <nortti_> that UTF-1 is not as fun as my UTF-1
23:56:09 -!- mig22 has quit (Quit: Colloquy for iPhone - http://colloquy.mobi).