00:59:35 -!- clog has joined.
00:59:35 -!- clog has joined.
00:59:36 <coppro> alise: I travel for M:tG tournaments; you never know, I could be in the UK next year
00:59:51 <alise> coppro: I bet in London or some other big city.
01:00:01 <coppro> alise: most likely, yes
01:00:01 <AnMaster> coppro, Sweden. See that is why you should include country. Not just state
01:00:10 <alise> If you're not in Newcastle, you're too far away to visit Hexham without making me worry that rape is a serious possibility.
01:00:27 <AnMaster> coppro, not that I'm in Västerbotten. But I don't want to be more specific than "Sweden"
01:01:03 <coppro> (oddly enough, Ontario is far less specific geographically, but significantly more specific in terms of the number of people it might be
01:01:30 <alise> Ontario is bigger than Alberta?
01:01:30 <AnMaster> coppro, so lower population density
01:01:39 <alise> Oh, are you meaning the area
01:01:49 <coppro> I was comparing to Sweden
01:01:51 <alise> I was confusing Ottawa and Ontario.
01:01:58 <alise> Now I'm /really/ confused.
01:01:59 <coppro> Ontario is larger both in area and population than Alberta
01:02:13 <alise> I thought you meant Ottawa, which I thought was called Ontario because I am confused.
01:02:38 <olsner> aren't ottawa and ontario both in canada?
01:02:51 <alise> Ottawa is also in Ontario.
01:02:57 <coppro> Ottawa is the capital of Canada, conveniently located in Ontario
01:02:57 <alise> It's almost as if areas of the world are nested.
01:03:07 <alise> coppro: but the capital of Ontario is Toronto, isn't it?
01:03:12 <AnMaster> now, saying Västerbotten to olsner would be far more successful of course
01:03:14 <olsner> alise: nested!? woah!!
01:03:16 <alise> I believe that is what I read on Wikipedia three seconds ago
01:03:23 <alise> That's not confusing at all.
01:03:42 <olsner> AnMaster: I have no idea where that is except it's in sweden, probably up north
01:03:55 <AnMaster> olsner, hah, but you live in Sweden
01:03:58 <alise> coppro: I think Ontario is more populous than Sweden.
01:04:00 <AnMaster> olsner, and yes up north somewhere.
01:04:13 <coppro> but is also a part of the National Capital Region
01:04:25 <AnMaster> olsner, I suspect I passed through on the sleeper train
01:04:30 <AnMaster> if it is along the coast ther is
01:04:32 <alise> Ontario: 13,167,894
01:04:58 <olsner> oh, sweden is small! (what else is new...)
01:05:10 <AnMaster> olsner, not by European area standards
01:05:11 <alise> olsner's conceptions about the world are being destroyed so badly today
01:05:12 <coppro> I thought Sweden had more people
01:05:21 <AnMaster> by population standards everywhere it is small
01:05:32 <alise> coppro: they all moved to finland because finland borders russia, where there are bears
01:05:37 <alise> reminding them of where they truly want to be, canada
01:05:41 <alise> so in a sense they're all canadian citizens.
01:06:06 <AnMaster> olsner, London's population makes up a bit more than 80% of Sweden's population. Yet afaik UK has less area than Sweden
01:06:08 <olsner> I learned from random old guy (who was also an immigrant from somewhere in africa) that sweden is the third largest country in the EU
01:06:16 <alise> but sweden is tiny
01:06:23 <AnMaster> alise, there are bears in Sweden?
01:07:08 <olsner> (by "small" I did mean in terms of population though, not in area)
01:07:32 <AnMaster> alise, UK is tinier (tinyer?) in area afaik
01:08:33 <alise> i cannot speak because i am
01:08:40 <coppro> olsner: smaller than France, Germany, and Spain?
01:08:49 <coppro> err, you know what I mean
01:09:23 <calamari> okay it's official: I'm an idiot
01:09:36 <calamari> I really did have libc-2.7.so on my phone.. d'oh
01:10:12 <coppro> AnMaster: oh, stupid me, I'm bad at sphere projections
01:10:20 <olsner> coppro: I dunno, I don't dedicate storage for geography so that knowledge has already been purged
01:10:57 <alise> my geography allocation is 0 too
01:11:09 <coppro> AnMaster: I was thinking Sweden was significantly smaller due to the fact that spherical projection is hard
01:12:16 <AnMaster> checking my globe, Sweden is definitely longer than any of those countries
01:13:11 <AnMaster> I would suspect the area is smaller than France, but could be wrong
01:13:18 <AnMaster> due to the not easy to compare shapes
01:13:36 * Sgeo is considering store healthloss per unit time rather than updating HP
01:15:02 <olsner> why do we always end up discussing pointless things (like geography) here?
01:16:00 <pikhq> olsner: Clearly, we should replace the planet with a perfect sphere.
01:16:31 <olsner> pikhq: clearly, the shape of the planet is irrelevant
01:16:48 <pikhq> And have a constant population density.
01:17:12 <AnMaster> I'd hate to end up living in the sea
01:17:23 -!- Mathnerd314 has joined.
01:17:39 <AnMaster> or do you propose a constant water density as well?
01:17:50 <pikhq> AnMaster: Water? On the surface? Who needs it?
01:17:57 <AnMaster> which would mean all sea, or perhaps marshes
01:18:11 <coppro> olsner: is it not esoteric enough?
01:18:28 <coppro> AnMaster: or we just amend the law of gravity
01:18:37 -!- calamari has quit (Quit: Leaving).
01:18:42 <olsner> coppro: the shape of the planet? well, it's irrelevant!
01:19:17 <coppro> olsner: you seem to be under the misconception that there exist things too esoteric for this channel
01:19:29 <coppro> you are sadly mistaken
01:19:57 <olsner> I think I'm rather arguing there are things too mundane for this channel
01:21:54 <AnMaster> there are things off topic for this channel that we don't discuss
01:22:04 <AnMaster> since we would then discuss them
01:22:36 <olsner> what about the things off topic for this channel that we *do* discuss?
01:23:24 <AnMaster> actually I could mention one example, since it would be meta discussion
01:23:35 -!- Mathnerd314 has quit (Ping timeout: 260 seconds).
01:23:57 <AnMaster> to the extent of my knowledge, we have, prior to this point at least, not have any significant discussion about gardening.
01:24:13 <AnMaster> that's just one of many examples
01:24:23 <olsner> good because it involves gardening
01:24:41 <olsner> are there any gardening-related esolangs around?
01:25:00 <olsner> something with search-*trees* and *pruning* perhaps?
01:25:01 <AnMaster> I will refuse to mention any more examples
01:25:22 <olsner> so in fact prolog is gardening-oriented programming
01:25:26 <AnMaster> olsner, you now need to pay license fee to oerjan
01:25:57 <olsner> AnMaster: as if! he's norwegian you know
01:26:10 <AnMaster> olsner, oh but your horrible puns...
01:26:49 <olsner> as always with puns, the horribler the better
01:27:54 <olsner> time to stop spewing nonsense and go to sleep anyway
01:27:56 <alise> 11:11:15 <oerjan> "many people prefer the look of AMS's \varnothing ... to that of LaTeX's \emptyset.
01:27:56 <alise> 11:11:18 <oerjan> "
01:27:59 <alise> many people are wrong
01:28:22 <Sgeo> These new earphones are suffering the same issue as all my others ;(
01:29:46 <AnMaster> only way to fix that is getting headphones
01:30:03 <AnMaster> falling out of ears? again same fix
01:30:36 <Sgeo> The wire breaks or something, and the sound only comes out of one ear unless I hold the wire just right
01:31:09 <AnMaster> Sgeo, be more careful with them then
01:31:21 <Sgeo> I had actual headphones once
01:31:21 <AnMaster> they tend to have thicker wire
01:31:25 <Sgeo> First ones to go
01:31:44 <Sgeo> These were noise-cancelling, don't know if that's good
01:31:53 <Sgeo> Not the current ones, the good ones
01:32:13 <pikhq> If the cord isn't replacable, it's probably too cheap.
01:32:15 -!- derdon has quit (Ping timeout: 264 seconds).
01:32:47 <olsner> hmm, was just about to spoil inception for y'all, but turns out I deleted that line instead of sending it
01:33:40 <alise> IT'S ABOUT RECURSION
01:35:07 -!- AnMaster has quit (Quit: ZNC - http://znc.sourceforge.net).
01:47:34 -!- cal153 has quit (Ping timeout: 276 seconds).
01:48:15 <Sgeo> "Not necessarily - lambdas would still be useful without closures."
01:48:30 <alise> Yeah, but he's wrong.
02:13:36 -!- cal153 has joined.
02:15:04 <pikhq> ... Lambdas that *don't close*?
02:15:14 <pikhq> That's absolutely awful.
02:15:37 <pikhq> That's about C's level of support for it.
02:18:08 <alise> 11:53:14 <ais523> zzo38: do you think everyone should continue to support unsliced bread?
02:18:17 <alise> Fresh bread is usually unsliced.
02:18:28 <pikhq> Yes; a freshly baked loaf of bread is fucking delicious if done well.
02:18:36 -!- Sgeo has changed nick to Delicious.
02:18:45 -!- Delicious has changed nick to Sgeo.
02:18:54 <alise> 13:30:15 <cpressey> Googling for Icoruma is an adventure!
02:19:01 <alise> if zzo38 says it, look on zzo38computer.cjb.net
02:19:19 <pikhq> Always good advice.
02:19:41 <Sgeo> When it says RPG rules, can that apply to computer RPGs?
02:20:17 <Sgeo> it's for typesetting RPG stuff, apparently
02:20:25 <pikhq> Also, I hate his website design.
02:20:29 <pikhq> http://zzo38computer.cjb.net/magic.htm This is revolting.
02:20:53 <pikhq> (the menu I'm just fine with; I mean, it's just about plain text. Nothing fancy, but nothing awful either.)
02:25:16 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
02:45:49 -!- Mathnerd314 has joined.
02:58:07 -!- alise has quit (Quit: Leaving).
02:58:43 <coppro> pikhq: oh my, it truly is
03:02:14 -!- augur has joined.
03:18:32 -!- Wamanuz has quit (Remote host closed the connection).
03:54:09 -!- oerjan has joined.
03:58:24 <oerjan> `addquote <AnMaster> cpressey, oh go to zzo's website. He is NIH <Phantom_Hoover> AnMaster, really? I was strongly under the impression that zzo was invented here.
03:58:36 <HackEgo> 205|<AnMaster> cpressey, oh go to zzo's website. He is NIH <Phantom_Hoover> AnMaster, really? I was strongly under the impression that zzo was invented here.
04:06:33 <Sgeo> I think I want to like Ruby
04:07:04 <Sgeo> But that's a far cry from actually liking Ruby
04:07:27 <oerjan> coppro: not invented here
04:10:57 * Sgeo considers eating his box of pasta for breakfast instead of dinner
04:12:32 <oerjan> if you eat'a the pasta that fast'a, it won't last'a
04:12:36 <Sgeo> Tonight I'll do both
04:14:31 -!- coppro has changed nick to bookmark.
04:15:17 -!- bookmark has changed nick to coppro.
04:15:54 <oerjan> eek, bookmarks in the logs
04:18:37 -!- AndChat| has joined.
04:18:56 <Sgeo> AndChat| is not me.
04:19:20 <coppro> you don't cloak your host and they aren't close to the same
04:22:20 <Gregor> Well, if we don't know who it is, there's only one solution.
04:22:26 -!- AndChat| has quit (Client Quit).
04:22:33 -!- Gregor-P has quit (Ping timeout: 245 seconds).
04:22:53 <Gregor> Collateral damage! D-8
04:23:01 * oerjan might now have a slight inkling of clue
04:27:12 -!- nooga has quit (Ping timeout: 246 seconds).
05:10:24 <coppro> proof I am easily amused: I am watching a Futurama where the title caption was "scratch here to reveal prize"... so I did
05:13:09 <Sgeo> Note to self: Flush stderr after writing to it
05:13:32 <pikhq> Note to Sgeo; write to file descriptor 2 instead.
05:15:16 <pikhq> Screw buffered IO.
05:16:30 <coppro> Sgeo: stderr is not buffered by default; it shouldn't need flushing
05:16:46 <Sgeo> Then why did it not write?
05:16:54 <Sgeo> I redirected stderr to errors.txt
05:17:09 <Sgeo> Something happened that should have been written to Console.Error (which should be stderr), and...
05:17:37 <coppro> oh, what language is this?
05:19:10 <pikhq> Yeah, just kill yourself now.
05:23:40 <Gregor> Is Gregor ashamed to have recognized that?
05:23:45 <Gregor> Is Gregor going to rectify this?
05:24:09 <Gregor> http://www.facebook.com/photo.php?pid=31300809&l=616aba37c8&id=1055580469 Is this the most epic picture ever taken?
05:24:24 <Sgeo> You could pretend that you knew it only because I've been working in C# for the last few months
05:24:46 <Gregor> I knew it only because /I've/ been working in C# for the last few months *sobs*
05:25:01 <Sgeo> It's not a terrible language
05:25:34 <pikhq> Sgeo: What, does .NET require a lobotomy?
05:26:06 <Gregor> .NET is a bad idea that sounds like a good idea, poorly executed in a way that makes it look well-executed :P
05:26:50 <Sgeo> I'd say useless idea more than bad
05:27:46 <Sgeo> Now, if Mono were up-to-snuff, it
05:27:56 <Sgeo> it'd be a different story, imo
05:31:52 -!- Wamanuz has joined.
05:32:32 <Sgeo> "errors.txt is so brilliant"
05:49:45 * Sgeo is currently storing built binaries in version control
05:51:17 <oerjan> BUT BUT... THAT'S _EVIL_
05:51:44 <Sgeo> Why is it evil, and is there a less evil way?
05:51:53 <Sgeo> (I currently access the production server via RDP)
05:52:33 <Sgeo> The RDP thing is not my fault
05:52:51 <oerjan> YOU SEEM TO BE TAKING ME SERIOUSLY. WOULD YOU LIKE A LOBOTOMY TO FIX THIS?
05:53:21 <Sgeo> Two lobotomies total, yay! (The first was for .NET)
05:53:51 <oerjan> might be dangerous then, could run out of brain to remove
06:13:14 <Sgeo> "These vehicles are fast and cost nothing. Unfortunately, in a bold cost-cutting move, FV decided to go with the lowest bidder, Cheaps-R-Us, which tends to operate, well, below the radar. Exposure to these vehicles will hurt your HP, and eventually kill you."
06:13:31 <Sgeo> ^^my attempt at a bit of humor, and the idea of vehicles costing HP
06:16:01 <oerjan> basically they're dead cheap
06:17:26 <Sgeo> Ok, I want to be as creative as you
06:17:45 <Sgeo> Although these vehicles aren't quite cars
06:18:00 * oerjan just thought it needed a better pun
06:18:56 <Sgeo> http://i.imgur.com/sjr1I.jpg
06:21:18 <Sgeo> Not unless you go down a mountain quickly
06:22:27 <coppro> it's interesting how language conventions change over IRC
06:22:41 <oerjan> the picture's so dark i cannot tell if they're touching the ground
06:24:22 * oerjan seems to be out of creativity now
06:24:32 -!- oerjan has quit (Quit: Later).
06:24:38 <coppro> in particular, I've found it tends to model speech more closely
06:24:51 <coppro> such as putting question marks on questioning sentences, even if they aren't true questions
06:25:32 <Gregor> I strive to unify spoken and written English!
06:31:55 <pikhq> Argh; good luck making a standardised language that way.
06:32:02 <pikhq> English has ridiculously divergent accents.
06:48:53 <Sgeo> It's tough for me to tell in-world
06:49:00 <Sgeo> But I _think_ they're hovering a bit
06:50:45 <Sgeo> But you can't fly high into the sky with them
07:33:04 <Sgeo> Why doesn't OCaml have typeclasses?
07:34:52 <coppro> why doesn't everything have typeclasses?
07:35:09 <coppro> (/me is pretty sure that roles are the ultimate achievement in typing)
07:36:01 <Sgeo> I think I like how some things that would be syntax in some languages are.. user-defined, so to speak, in Ruby
07:36:09 <Sgeo> But I think Smalltalk takes that a lot further
07:40:12 <Sgeo> Huh. OCaml's ; is [very] roughly analogous to >>= as used in the IO monad, I think
07:40:56 <Sgeo> "; has type unit -> 'b -> 'b"
07:41:05 <coppro> Sgeo: also what do you mean by user-defined?
07:41:10 <Sgeo> Wait, if that's the case, then that means things are automatically coerced to unit?
07:41:11 -!- fizzie has quit (Ping timeout: 248 seconds).
07:42:01 <Sgeo> coppro, as in, in Ruby, someiter.foreach do |x| stuff end
07:42:11 <Sgeo> Not sure if it's foreach or some other method
07:42:23 <Sgeo> But that's instead of a formal foreach construct, I think
07:42:30 <Sgeo> Or, well, usually used instead
07:42:49 <coppro> is it a magic function though?
07:42:52 <Sgeo> I think Smalltalk's if is similar
07:43:03 <Sgeo> coppro, I'm pretty sure it isn't
07:43:07 <coppro> or is it merely defined on the same terms as user code?
07:43:15 <coppro> (like a primitive type)
07:43:15 -!- fizzie has joined.
07:43:21 <Sgeo> Um, might be built in, but user code could easily do the same thing, I think
07:43:23 <Sgeo> It's been a while
07:43:48 <coppro> Smalltalk's if I expect is a built-in
07:43:58 <coppro> since you need a conditional primitive somewhere
07:44:47 <Sgeo> But syntactically, it's just method calls, I think
07:45:00 <Sgeo> something ifTrue: stuff ifFalse: otherstuff I think. I may be mistaken
07:45:09 <Sgeo> It's been a bit of a while
07:46:36 <Sgeo> OCaml types look weird
07:46:58 -!- GreaseMonkey has joined.
07:49:00 -!- relet has quit (Quit: Leaving.).
07:51:06 <coppro> ARGH MY GOVERNMENT IS SO FSCKING STUPID
07:52:17 <Sgeo> coppro, aren't you in Canada or something? Or am I completely and utterly mistaken?
07:52:30 <Sgeo> And no, I did not mean to imply that Canada is perfect
07:53:18 <coppro> oh, yes, I'm in Canada
07:53:29 <coppro> where the government is building a prison because of the alarming increase in unreported crime
07:54:40 <Sgeo> That... a) How would they know, and b) How is that useful?
07:55:01 <coppro> Sgeo: Statcan does surveys to estimate unreported crime rates
07:55:15 <coppro> the last one that's available was in '04
07:55:24 <coppro> and showed, I believe, and estimated 3% increase
07:55:31 <coppro> but that's not really relevant
07:55:41 <coppro> to the fact that YOU DON'T PUT UNREPORTED CRIMINALS IN PRISON
07:55:56 <coppro> SO WHY THE FUCK WOULD YOU NEED A PRISON BECAUSE UNREPORTED CRIME IS GOING UP
07:56:24 <Sgeo> Is object-orientedness really worth the nightmare syntax of OCaml?
07:58:08 <Sgeo> "Since you forgot to take into account your special value, you conclude that the mean age of visitors is 7 years old, and you employ web designers to remove all the long words and use primary colours everywhere."
07:58:43 <coppro> Sgeo: also, the minister behind this believes that surveys are useless after a year or two
07:58:59 <coppro> our government has been doing so much stuff that makes no sense this summer
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:57 <Sgeo> "(note the code highlighted in red):"
08:01:03 -!- yiyus has quit (Read error: Operation timed out).
08:01:04 <Sgeo> There IS no code hilighted in red!
08:01:05 -!- yiyus has joined.
08:01:08 <Sgeo> http://www.ocaml-tutorial.org/null_pointers,_asserts_and_warnings
08:04:18 -!- Wamanuz2 has joined.
08:04:20 -!- Wamanuz has quit (Ping timeout: 240 seconds).
08:26:08 -!- nooga has joined.
08:59:28 -!- distant_figure has quit (Ping timeout: 240 seconds).
09:02:14 -!- distant_figure has joined.
09:06:53 -!- distant_figure has quit (Ping timeout: 260 seconds).
09:07:52 -!- distant_figure has joined.
09:07:58 -!- augur has quit (Remote host closed the connection).
09:08:11 -!- augur has joined.
09:13:07 -!- distant_figure has quit (Ping timeout: 258 seconds).
09:14:12 -!- tombom has joined.
09:22:44 -!- AnMaster has joined.
09:26:36 <Sgeo> I suppose there's no statically-typed Smalltalk, is there?
09:28:28 -!- distant_figure has joined.
09:30:34 <Sgeo> There's apparently something called Strongtalk
09:40:16 <Sgeo> I think I'll just relearn Smalltalk
09:50:54 <Sgeo> There's no way to make a general native app in Smalltalk, is there? I guess the concept doesn't really make sense
09:52:12 * Sgeo sort of stereotyped that as the Apple language :/
09:52:21 <Sgeo> Guess I should try it eventually, though
09:52:48 <Sgeo> But right now, after expunging my mind of the syntax horror that is OCaml, I'm obsessed with Smalltalk
10:21:56 -!- MigoMipo has joined.
10:28:27 -!- MizardX- has joined.
10:28:53 -!- MizardX has quit (*.net *.split).
10:28:53 -!- coppro has quit (*.net *.split).
10:28:53 -!- fungot has quit (*.net *.split).
10:28:56 -!- MizardX- has changed nick to MizardX.
10:33:28 -!- distant_figure has quit (Ping timeout: 240 seconds).
10:33:33 -!- Phantom_Hoover has joined.
10:33:37 -!- coppro has joined.
10:33:37 -!- coppro has quit (Changing host).
10:33:37 -!- coppro has joined.
10:35:28 <coppro> or because something happened in between caffeine and my server
10:38:19 <Ilari> Fakequit by IRC server to change the host? :-)
10:41:15 <fizzie> jordan.freenode.net seems to have gone to sleep.
10:41:48 -!- CakeProphet has joined.
10:42:25 * Sgeo decides to download Pharo
10:42:33 <Sgeo> Hm, 1.2 will contain an FFI
10:42:42 <Sgeo> Active Worlds bots in Smalltalk!
10:45:46 -!- fizzie has quit (Quit: jumpin' jumpin').
10:45:49 -!- fizzie has joined.
10:46:05 * Sgeo vaguely wonders what a ProfStef is
10:46:12 -!- fungot has joined.
10:46:18 -!- comex has quit (Ping timeout: 245 seconds).
10:46:19 <Sgeo> If you are new to Smalltalk, we recommend you to do the integrated, interactive tutorial. To start it, evaluate the following expression (select the text -> right button -> do it):
10:47:08 <Sgeo> The UI looks OSX-like
10:47:35 -!- comex has joined.
10:49:23 <Phantom_Hoover> When I was your age, you wrote your programs on a piece of paper and sent them off to London, where they would evaluate it and send it back in a month!
10:53:38 <Sgeo> Ok, I don't remember why I abandoned Smalltalk a while ago
10:55:04 -!- MizardX has quit (Ping timeout: 276 seconds).
11:00:12 * Sgeo lols at ProfStef 17
11:00:20 <Sgeo> "Hey, you should not be here!"
11:00:34 <Sgeo> Also, 16 is the first time it asks you to write the code to go to the next lesson
11:04:48 <nooga> which ide do you use
11:06:19 <Sgeo> Although it's more than an IDE I guess
11:12:52 <nooga> why everything about Smalltalk is so colorful
11:15:06 -!- distant_figure has joined.
11:24:39 -!- distant_figure has quit (Ping timeout: 265 seconds).
11:26:52 -!- distant_figure has joined.
11:40:16 -!- distant_figure has quit (Ping timeout: 276 seconds).
11:47:47 -!- distant_figure has joined.
11:53:07 -!- distant_figure has quit (Ping timeout: 260 seconds).
12:12:04 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
12:15:06 -!- Occultist has joined.
12:17:07 -!- distant_figure has joined.
12:24:02 -!- Occultist has quit.
12:43:32 -!- distant_figure has quit (Read error: Operation timed out).
12:46:02 -!- ais523 has joined.
12:47:06 -!- distant_figure has joined.
12:48:38 -!- Phantom_Hoover has quit (Quit: Leaving).
12:48:52 -!- Phantom_Hoover has joined.
12:57:16 -!- augur has quit (Remote host closed the connection).
13:04:28 <Sgeo> "You typically only need to use or modify this class, or even know how it works, when making fundamental changes to how the Smalltalk system and language works."
13:04:32 <Sgeo> MWAHAHAHAHHAHA
13:14:43 -!- derdon has joined.
13:28:33 -!- BeholdMyGlory has joined.
13:53:57 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
13:55:14 -!- Mathnerd314 has joined.
14:01:33 -!- Mathnerd314 has quit (Ping timeout: 246 seconds).
14:10:00 <fungot> Phantom_Hoover: reading fnord about the sound of my head. i think this channel is a proof that ihope's set is universal. at least it makes updating my debian box
14:10:06 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
14:10:12 <fungot> Selected style: ic (INTERCAL manual)
14:10:21 <fungot> Phantom_Hoover: the `while' inside one of these contexts.
14:17:14 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
14:17:22 <fungot> Phantom_Hoover: this trap was constructed on a new principle, of which, with the adventures of a certain bird known to fnord and fnord, john morley, and arthur fnord) were authors of books before they engaged in the slave fnord because slavery is not wrong, nothing is easier than i thought to come across the atlantic in fnord, the fnord
14:24:56 <fizzie> Speeches are a fnordy matter.
14:26:13 <fizzie> -fno-rd, to disable -frd.
14:31:49 <ais523> to allow the hyphens to be omitted when turning off options?
14:32:21 <fizzie> There are some alignment-related machine-specific options that start with "-malign", those also have nice names. Like the -malign-natural/-malign-power pair on PPC, and -malign-double on x86.
14:32:46 <fizzie> With -malign-double, GCC will be doubly malignant.
14:34:51 -!- xz has joined.
14:35:19 -!- xz has left (?).
14:35:29 -!- xz has joined.
14:35:40 <fizzie> Probably. It might also align doubles, long doubles and long longs on a qword boundary.
14:35:50 <fizzie> But that's in addition to the murdering.
14:36:03 <xz> /msg nickserv set kill quick
14:36:37 -!- xz has left (?).
14:37:44 <fizzie> I don't think there is such a setting; at least nickserv set's subhelp doesn't know it.
14:39:06 <fizzie> In the sense that the first 'x' will delete a character, and the z can start many commands.
14:42:55 <fizzie> I'm not sure how vi-compatible the z.* commands are, in Vim they mostly deal with folding, because (according to the manual) z looks like a folded piece of paper.
14:46:16 <ais523> in NetHack, xz swaps to the readied weapon, then zaps a wand
14:46:45 <fizzie> Nickserv help: "SET NEVEROP prevents others from adding you to channel access lists." That's a curious setting. Maybe useful if you feel permanently irresponsible?
14:48:09 <ais523> does that include the autoban setting on channel access lists?
14:48:23 <ais523> (just like you can set someone to be opped on join, or voiced on join, you can set them to be banned on join)
14:48:47 <fizzie> Right, some chanserv kickbannery command utilizes that automatically, I think.
14:49:22 <fizzie> I don't know, and I don't exactly feel like source-diving. If this were NetHack, one could be certain the devteam would have had thought of it, but...
14:50:10 <ais523> (I'm a reasonably experienced NetHack sourcediver)
14:50:37 <ais523> Phantom_Hoover: meh, NetHack's source is just an intellectual challenge
14:50:49 <ais523> compare to DCSS's source, which makes me feel physically ill
14:51:00 <ais523> dungeon crawl stone soup
14:51:04 <ais523> one of NetHack's major competitors
14:51:47 <fizzie> Thought of the interaction of NEVEROP and bans-done-via-access-lists.
14:53:21 <ais523> you just read it and see things that have no right being in code ever
14:53:33 <ais523> I asked the DCSS devs about some of the stuff they'd found in the code
14:53:38 <ais523> and one of them had even found a for-case loop
14:54:09 <Phantom_Hoover> The code is 5 MB, so I won't be able to see it for a couple of minutes.
14:55:17 <fizzie> Atheme-services-5.2.3, modules/chanserv/flags.c: /* If NEVEROP is set, don't allow adding new entries except sole +b. Adding flags if the current level is +b counts as adding an entry. -- jilles */
14:56:09 <fizzie> I don't know which version freenode uses; the services info-page still speaks of hyperion-related customizations. Still, it's probably worky.
14:56:35 -!- cpressey has joined.
15:07:04 -!- derdon has quit (Ping timeout: 276 seconds).
15:10:36 -!- MigoMipo_ has joined.
15:10:52 -!- oerjan has joined.
15:12:58 <oerjan> <Sgeo> Wait, if that's the case, then that means things are automatically coerced to unit?
15:13:28 <ais523> that's how Algol does it
15:13:38 <ais523> in fact, there are two different ways to coerce a procedure to void
15:13:48 -!- MigoMipo has quit (Ping timeout: 245 seconds).
15:13:58 <oerjan> iirc you're supposed to use the ignore : 'a -> unit function to make it explicit when you're ignoring a result. i'm not sure whether ocaml's ; gives an actual type error or a warning
15:14:01 <ais523> and five different coercion contexts, and a few extra rules, which determine how to do ambiguous coercions
15:16:03 <oerjan> !haskell do [1,2,3]; [1]
15:16:32 <ais523> that was a little unexpected
15:16:36 <oerjan> i think i've seen it discussed whether haskell do should have had the same semantics, or at least a warning
15:17:01 <oerjan> no that's exactly what the [] monad does
15:17:05 <ais523> I can never remember what >>= does for []
15:17:18 <oerjan> it's just that it maybe should do a warning for the same reason
15:17:29 <oerjan> well that's >> technically
15:17:39 <ais523> but >> is a special case of >>=
15:17:58 <ais523> !haskel do a=[1,2,3]; [a]
15:18:03 <ais523> !haskell do a=[1,2,3]; [a,a]
15:18:34 <ais523> hmm, it opened up a DCC chat with me just to say "parse error in pattern"
15:18:36 <ais523> and you're right, I do
15:18:43 <ais523> !haskell do a<-[1,2,3]; [a,a]
15:18:52 <ais523> yep, that's what I expected
15:18:59 <ais523> I just remembered what >>= did for lists
15:20:25 <fizzie> Ooh, a file:/// url link on a web-forum. "Here, take a look at this picture: file:///C:/Documents%20and%20Settings/HP_Administrator/My%20Documents/My%20Pictures/..."
15:21:14 <Phantom_Hoover> Reminds me of the time I said "this big" and indicated with my hand when speaking over the phone.
15:21:15 <oerjan> do [1,2,3]; [1] is basically the same as do _ <- [1,2,3]; [1]
15:22:28 <ais523> I take it that link's to c:\ or something similar?
15:22:48 <ais523> standard response is along the lines of "I looked at it, but all I could see was porn"
15:22:59 <oerjan> it's pretty much in his private windows picture folder
15:23:20 <ais523> hmm, come to think of it, you could use file:// links for things that were probably on someone's computer
15:23:57 <ais523> say, a Debian user asks you "can you link me to a copy of the GPL?", and you go "file:///usr/share/common-licenses/GPL-2"
15:24:14 <ais523> and when they complain, say "well Debian policy doesn't let me use any other copy, it needs to be centralised to save on disk space"
15:24:23 -!- distant_figure has quit (Ping timeout: 240 seconds).
15:26:47 <oerjan> incidentally (>>) is almost equivalent to liftM2 (flip const)
15:27:08 <oerjan> (the "almost" is because the latter might be more likely to leak memory)
15:27:44 <ais523> isn't flip const equal to ignore?
15:27:52 <ais523> oh, not quite, wrong type
15:28:17 <oerjan> except that's not monadic of course
15:28:17 <ais523> const is k, which takes two arguments and returns the first
15:28:23 <ais523> whereas flip const takes two arguments and returns the second
15:28:57 <ais523> so I'll just point out that (const id) is shorter than (flip const)
15:28:58 <fizzie> ais523: It was to "c:/Documents and Settings/HP_Administrator/My Documents/My Pictures/..."; the user name is very telling, too.
15:29:03 <oerjan> so useless in haskell, you'd want liftM (const ())
15:29:15 <ais523> fizzie: ugh, XP filenames
15:29:51 <ais523> oerjan: I was talking about inside the lift
15:30:03 <ais523> (well, the liftM; stupid using "lift" to mean two unrelated things)
15:34:50 <oerjan> 23:46:36 <Sgeo> OCaml types look weird
15:34:50 <oerjan> 23:46:37 <Sgeo> int list?
15:34:55 -!- distant_figure has joined.
15:35:17 <oerjan> the order is ML legacy
15:36:23 <oerjan> <coppro> SO WHY THE FUCK WOULD YOU NEED A PRISON BECAUSE UNREPORTED CRIME IS GOING UP
15:36:47 <oerjan> maybe they think people would report more crimes if they thought the criminals might actually get put in jail :D
15:38:05 -!- relet has joined.
15:41:38 <Phantom_Hoover> Are Linux syscalls guaranteed to leave registers like rdi and rsi alone on x86-64?
15:45:53 <fizzie> I couldn't find that explicitly stated in the documentation anywhere, but based on the syscall entry code, it seemed to me like it'd keep just about everything untouched.
15:46:24 <fizzie> rdi and rsi are the first two syscall arguments, though, aren't they?
15:47:28 <Phantom_Hoover> i.e. rax is the syscall, then rbx, rcx, rdx, rdi, rsi, rbp for the args/
15:48:07 <fizzie> rax is the number; the arguments go to rdi, rsi, rdx, r10, r8, r9, in that order. At least if you call via "syscall".
15:49:01 <fizzie> It's the same as a normal x86-64 function call, except rcx/r10; there was something special about rcx there.
15:49:27 <fizzie> I don't know; I haven't ever used int 0x80 with x86-64, since syscall exists and is supposedly better and faster.
15:50:52 <fizzie> What? No. It's an opcode.
15:51:03 -!- tombom has quit (Ping timeout: 240 seconds).
15:51:13 -!- tombom has joined.
15:54:51 <fizzie> See this bit: http://www.google.com/codesearch/p?hl=en#YXaLobiZowM/trunk/kernel/linux-2.6.34/arch/x86/kernel/entry_64.S&l=424
15:56:07 <fizzie> It needs a bit digging as to whether it saves the argument registers or not; I seem to recall that it does, but it's a bit messy due to all those macros.
15:59:12 <fizzie> Discounting one very size-optimized stub, I haven't usually been relying on getting the syscall args back untouched.
16:02:03 <fizzie> The SAVE_ARGS bit might be the one that's responsible for keeping them safe.
16:03:32 -!- tombom has quit (Ping timeout: 265 seconds).
16:03:41 <fizzie> The syscall opcode itself kills rcx by stuffing the return address (next opcode) there.
16:04:17 <fizzie> And I guess r11 too, for saving rflags there.
16:05:29 -!- tombom has joined.
16:08:24 <cpressey> Well, in other news, I have built most of the type checker for Eightebed.
16:09:19 <cpressey> (Just the type checker, not the pointer validity checker yet.)
16:09:21 -!- tombom_ has joined.
16:10:29 <cpressey> It occurs to me that "proving Gregor wrong" is kind of a crappy reason to implement a medium-sized language. And that implementing a medium-sized language is a rather inefficient way to prove Gregor wrong. Still...
16:10:50 <ais523> in what way are you trying to prove him wrong?
16:11:09 <ais523> (I suppose I'll also allow the possibility of "her" there, in case both the name and the photos are lies)
16:11:27 <Gregor> Especially since I'm right :P
16:11:35 -!- tombom has quit (Ping timeout: 248 seconds).
16:12:12 <Gregor> ais523: I once got a correspondence that started "Dear Miss Richards:". I politely replied that "Gregor" is a male name. I got a reply that I should probably change the picture on my homepage then :P
16:12:32 <Gregor> Unfortunately, the picture on my homepage is chosen randomly, so I have no idea which was so suggestive.
16:13:45 -!- Gregor has quit (Quit: Leaving).
16:13:48 -!- Gregor has joined.
16:14:21 <Phantom_Hoover> You just *happened* to leave the second I said something to you!
16:14:32 <Gregor> My hats are UTTERLY MASCULINE.
16:14:46 <cpressey> ais523: (short version of Gregor's claim) If a language supports explicit free() it also needs to provide GC if it wants to be "safe" (doesn't let you dereference/execute something you didn't mean to.)
16:14:58 <Gregor> Uhhh, no. That's not my claim at all.
16:15:35 <Gregor> A language which provides a true explicit free() cannot be safe. To be safe a language must either never free (which is bad) or be GC'd. That is my claim.
16:15:50 <ais523> Gregor: what about something along the lines of Splint, but which actually works?
16:16:07 <ais523> that statically checks all mallocs/frees in the program before running it, to ensure no leaks and no dangling pointers?
16:16:47 <Gregor> ais523: Yay for impossible analysis and no modularity!
16:16:57 <Gregor> cpressey: By "true" I mean that you can get that memory back in a later malloc().
16:17:03 <Gregor> cpressey: So it actually frees it, and doesn't just ignore you.
16:17:38 <ais523> Gregor: Splint was modular enough
16:18:07 <ais523> and possible, because it relied on the programmer to provide it with a proof of memory safety, rather than trying to work it out itself and running up against the halting problem
16:18:09 <cpressey> Gregor: OK, that seems close to what I thought you meant, so I may simply have phrased my version badly. Lemme think
16:18:15 <ais523> but it was too buggy to succeed as its goals
16:18:43 <Gregor> ais523: By modular in this case I mean at LEAST separated compilation, if not dynamic loading. But also checking for proper malloc() and free() reduces to the halting problem so making that analysis general enough to write real programs seems enormously challenging at least.
16:19:22 <ais523> Gregor: separated compilation and dynamic linking would have worked fine
16:19:33 <ais523> it expanded the type system to give safety checks
16:19:48 <ais523> as I said, it was the programmer's responsibility to give the proof of safety, not splint's reponsibility to find one
16:20:35 <cpressey> Gregor: I think I was "factoring out" the possibility of "fake free()" in my version. Or if you like, add "true" to the part where I mention "free()" too.
16:20:41 <Gregor> Have fun writing an interpreter in that. "Will you free these objects?" "Uhh, I will if they stop being used by the underlying code, but since I have no idea what that's going to do, maybe?"
16:21:09 <ais523> Gregor: functions had to be deterministic about whether they freed or not
16:21:20 <ais523> it's OK to add everything to a global list, then free it all at the end
16:21:48 <Gregor> ais523: Awesome. You can't write an interpreter for a GC'd language. Sounds pro to me.
16:21:49 <ais523> presumably, you could free earlier if you knew the object wasn't being used (say it went out of scope and had a zero refcount)
16:22:12 <ais523> you can just do the GC yourself
16:22:19 <ais523> refcounting + loopbreaking would work fine, for instance
16:22:28 <ais523> even if that's a crazy GC architecture
16:22:59 <Gregor> Oh, well yeah, you can just treat malloc() as sbrk() and do everything yourself, I'm not being fair there X-P
16:23:27 <Gregor> The problem is that it's difficult to define what "correct" is in this space since a language in which you can't free at all is still A-OK :P
16:23:53 <Gregor> e.g. malloc() is implemented in terms of sbrk(), and on most systems there's no way to relinquish that back to the OS, and yet C code doesn't just bloat up to infinity.
16:24:23 <ais523> I thought implementing malloc in terms of sbrk was deprecated nowadays
16:24:37 <ais523> even though it is, or at least was, IIRC, the usual implementation strategy
16:24:38 <Gregor> It's not deprecated, it's just not part of the standard.
16:24:54 <Gregor> Basically the standard loosened to allow other implementations, but that's still the common one.
16:25:20 -!- sshc_ has joined.
16:28:23 -!- sshc has quit (Ping timeout: 245 seconds).
16:28:53 -!- sshc_ has changed nick to sshc.
16:32:03 -!- MizardX has joined.
16:36:07 <fizzie> German people apparently can't gender-map my first name (Heikki), because a place I once ordered a used laptop from keeps sending me their ads prefixed by "Frau Kallasjoki".
16:36:48 <Gregor> I don't know what I would guess with "Heikki"
16:36:54 <ais523> well, the Grand Prix driver with that name is male
16:36:58 <ais523> but that's only the one data point
16:36:59 <relet> "Heike" is a German female name.
16:37:16 <Gregor> Apparently in China "Gregor" reads as a female name :P
16:37:29 <Gregor> Or at least ambiguous enough to be overwhelmed by my feminine wiles.
16:39:52 <ais523> it's because most names ending -i are a ridiculous sort of abbreviation
16:39:58 <oerjan> also in norwegian, mostly
16:40:11 <ais523> that tend to be confined to a particular sort of stereotype, which only applies to women
16:40:52 <oerjan> and Heidi, though that's actually from german
16:44:14 <cpressey> We need more names that conflict with the Unix toolchain. "And these are my children, Diff and Sed!"
16:50:51 <cpressey> Complete tangent: I suppose it would be possible to have a completely name-based type system, that is, all types are given names by the user, and 2 types are equivalent iff they have the same name. Maybe?
16:51:12 <cpressey> We don't want USERS giving names to types, do we?
16:51:31 <ais523> make that the only form of I/O
16:51:56 <ais523> this is just blue skies esothinking
17:18:11 <relet> cpressey: and the operations will be "come here", "wash your hands", "spit that out"...
17:26:52 -!- derdon has joined.
17:50:16 -!- asmodeo_ has joined.
17:51:35 -!- asmodeo_ has left (?).
17:52:01 * oerjan realizes for the first time that the back of his palate has a hole above it, he always assumed there would be bone there
17:52:03 -!- ais523 has quit (Remote host closed the connection).
17:52:47 <oerjan> which means it took me 40 years to discover something easily checked on my own body!
17:54:14 * oerjan only started picking there because his palate got a sore spot
17:54:50 <Phantom_Hoover> oerjan, I bet you don't know what your ear canal looks like.
17:55:21 <oerjan> but that _would_ seem to require special equipment
18:00:45 -!- Mathnerd314 has joined.
18:01:41 <oerjan> some nerd who thinks he knows mathematics just because he can recite 3 digits of pi ;D
18:02:19 <fizzie> oerjan: "Please don't make me add "rounding Pi down to three" to your list of crimes", like they say.
18:02:23 <oerjan> i'm sure there's a 4 in there somewhere, yes
18:02:52 <fizzie> 3.14159265...4 looks as if 4 would be the last digit.
18:02:58 * oerjan swats Phantom_Hoover -----###
18:03:48 <fizzie> I remember 3.14159265358979, but no more.
18:03:51 <oerjan> fizzie: now _that_ can be added to a list of crimes
18:04:05 -!- Gregor-P has joined.
18:04:50 <fizzie> That's one more, though.
18:05:05 <oerjan> except i think it's rounded up
18:05:10 <EgoBot> pi :: (Floating a) => a
18:05:19 <fizzie> It's not rounded; it goes 3.1415926535897932384626433832795028841968...
18:05:33 <fizzie> (That 8 there might be rounded, though. It was from bc, scale=40, a(1)*4.)
18:05:41 <oerjan> Phantom_Hoover: i'm not sure EgoBot has any arbitrary precision floats (there _are_ packages for it)
18:05:56 <Gregor-P> !c #include <math.h>\nint main() { printf("%f", PI) }
18:06:13 <Gregor-P> !c #include <math.h>\nint main() { printf("%f", PI); return 0; }
18:06:21 <fizzie> It's M_PI, and it might not be defined by default, since it's not standard.
18:06:26 <oerjan> i _almost_ remember the 323. except somehow i thought it was 262 a moment ago
18:06:35 <oerjan> Phantom_Hoover: i mean EgoBot's haskell
18:07:02 <Phantom_Hoover> oerjan, I thought it was GHC, like the rest of us use.
18:07:46 <oerjan> Phantom_Hoover: and that has nothing to do with what i am talking about, since the builtin types of ghc don't include arbitrary precision floats afaik
18:07:49 <fizzie> !run echo 'scale=100; a(1)*4;' | bc -l
18:08:17 <oerjan> by "packages" i mean on the hackage repository
18:09:00 <cpressey> Wait, you mean Haskell doesn't provide a *lazy* pi?
18:09:21 <oerjan> cpressey: it doesn't provide a lazy number type, by default
18:09:30 <fizzie> `run echo 'scale=100; a(1)*4;' | bc -l
18:09:38 <Gregor-P> cpressey: That's ... oh god lazy computable number *brain axplote*
18:09:55 <fizzie> Hm, no bc, quotation issues, something else?
18:09:58 <Deewiant> fizzie: That 68 there is wrong, it should go 7169...
18:10:03 <cpressey> oerjan: No excuse. It could provide it as a list of digits then.
18:10:17 <Gregor-P> How many ways can you run arbitrary code on Codu? 5? 6? :P
18:10:24 <cpressey> Gregor-P: And it needs to provide a lazy Chaitin's omega, as well, clearly.
18:10:48 <Gregor-P> cpressey: YES. Computability be damned :)
18:11:20 -!- HackEgo has quit (Remote host closed the connection).
18:11:21 -!- EgoBot has quit (Remote host closed the connection).
18:11:23 -!- HackEgo has joined.
18:11:23 -!- EgoBot has joined.
18:11:26 <fizzie> Does it output stderr too, or just stdout?
18:11:33 <oerjan> cpressey: um a list of digits is just one possible implementation of a lazy number type
18:11:35 <HackEgo> /bin/bash: line 1: dc: command not found
18:11:46 <fizzie> Heh, well, that's more informative in any case.
18:12:09 <EgoBot> /usr/bin/dc: invalid option -- v
18:12:10 <cpressey> oerjan: Well yes. It would be better if Haskell provided lazy reals as a primitive type, obviously, but beggars can't be choosers.
18:12:29 <fizzie> !sh echo 'scale=100; a(1)*4;' | bc -l
18:12:29 <EgoBot> 3.141592653589793238462643383279502884197169399375105820974944592307\
18:12:52 <fizzie> Well, that works, though bc line-wraps it. (The rest came with DCC chat, as usual.)
18:13:14 <EgoBot> help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help <command>.
18:13:24 <fizzie> Deewiant: It might go wrong in the bottommost digits since the scale for a(1) is 40, and then I multiply that by 4.
18:13:30 <EgoBot> userinterps: Users can add interpreters written in any of the languages in !help languages. See !help addinterp, delinterp, show | !userinterps. List interpreters added with !addinterp.
18:13:41 <EgoBot> languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh.
18:13:52 <EgoBot> addinterp: !addinterp <name> <language> <code>. Add a new interpreter to EgoBot. This interpreter will be run once every time you type !<name> <subcode>, and receive the program code as input.
18:14:12 <oerjan> !haskell :t Data.Number.CReal.showCReal
18:14:39 <EgoBot> Interpreter pi installed.
18:14:56 <EgoBot> There is already an interpreter for pi!
18:15:04 <EgoBot> Interpreter pi deleted.
18:15:15 <EgoBot> Interpreter pi installed.
18:15:39 <Gregor-P> Uh, pretty sure !haskell IS ghci
18:15:45 <EgoBot> Interpreter pi deleted.
18:15:57 <oerjan> !haskell :t "Yes it is"
18:16:00 <Gregor-P> Phantom_Hoover: They are the input.
18:16:59 <EgoBot> Interpreter pi installed.
18:17:39 <fizzie> Gregor-P: Isn't it just https://codu.org/projects/egobot/hg/index.cgi/file/1fe97d50a1d8/multibot_cmds/interps/ghc/runghc ?
18:18:20 <Sgeo> Any reason not to like Smalltalk?
18:18:21 <EgoBot> Interpreter pi deleted.
18:19:06 -!- Flonk has joined.
18:19:36 -!- Gregor-W has joined.
18:19:43 <Gregor-W> Sgeo: Because Smalltalk killed my family.
18:20:19 <oerjan> in a horrible, yet classy way
18:21:36 -!- Phantom_Hoover has quit (Quit: Leaving).
18:21:54 -!- Phantom_Hoover has joined.
18:21:59 <fizzie> Phantom_Hoover: Something like: if [ -n "$p" ]; then echo $p; else echo 0; fi
18:22:00 <Phantom_Hoover> !addinterp pi sh read p; if [ "x$p" = "x" ]; then p=0; fi; echo 'scale=$p; a(1)*4;' | bc -l
18:22:00 <EgoBot> Interpreter pi installed.
18:22:11 <EgoBot> (standard_in) 1: illegal character: $
18:22:21 <EgoBot> Interpreter pi deleted.
18:22:30 <Phantom_Hoover> !addinterp pi sh read p; if [ "x$p" = "x" ]; then p=0; fi; echo "scale=$p; a(1)*4;" | bc -l
18:22:30 <EgoBot> Interpreter pi installed.
18:22:44 <Gregor-W> Phantom_Hoover: Y'know you can do this in a /query, right? :P
18:22:48 <EgoBot> 3.141592653589793238462643383279502884197169399375105820974944592307\
18:23:14 <Phantom_Hoover> Gregor-W, /query? I assume that's some black IRC magic.
18:23:38 <fizzie> Gregor-W: Do both EgoBot and HackEgo speak to query? I've always wondered, but never dared to try it out, just in case they'd take offence at unsolicited private messaging.
18:24:07 <Gregor-W> Phantom_Hoover: /query opens a PM window with a user :P
18:24:42 <Gregor-W> fizzie: They do not take offense, and enjoy private conversation. Do not be offended if they start getting overly personal, although their sex drives are quite powerful they are incapable of actually acting on it and so you have nothing to fear.
18:25:19 <Gregor-W> I need to merge EgoBot, HackEgo and Hackiki into one lean, mean, arbitrary-code-runnin' machine.
18:26:54 <fizzie> Phantom_Hoover: You could consider piping the bc output to | tr -d '\n\\' so that it all ends up in one row. (Though that would, I guess, limit you to IRC's maximum line length...)
18:28:13 <EgoBot> 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744
18:28:40 <fizzie> Phantom_Hoover: Come to think of it, instead do export BC_LINE_LENGTH=490 before the command, that way it'll be long but still continue if it wouldn't fit on a IRC-line.
18:30:56 <fizzie> !sh echo limits | bc | tr '\n' ' '
18:30:57 <EgoBot> BC_BASE_MAX = 2147483647 BC_DIM_MAX = 16777215 BC_SCALE_MAX = 2147483647 BC_STRING_MAX = 2147483647 MAX Exponent = 9223372036854775807 Number of vars = 32767
18:31:09 <fizzie> It will only go up to 2147483647, it seems.
18:31:17 <fizzie> Well, it's more than eleven.
18:31:34 <Phantom_Hoover> Right, now it annoys you through DCC if you ask it for a billion digits.
18:31:45 -!- jcp has quit (Quit: Later).
18:32:16 * Phantom_Hoover then has to try doing it on his own computer with a billion digits.
18:32:21 -!- Phantom_Hoover has quit (Quit: Leaving).
18:32:31 <fizzie> As far as pi computation goes, I don't think bc a(1)*4 is very much on the efficient end of the spectrum.
18:32:44 -!- Phantom_Hoover has joined.
18:35:11 <fizzie> http://sprunge.us/EbcM -- not the fastest thing in the west.
18:37:21 <fungot> Phantom_Hoover: another motive induces me to put the judgment of history, and to tear from the populace a single favourite.
18:37:43 <fizzie> Yes, due to too many bot-loops.
18:38:02 <fungot> ^(EgoBot|HackEgo|toBogE)
18:38:07 <fizzie> That's the current list of it.
18:38:37 <oerjan> EgoBot's evil twin, obviously
18:38:41 <fizzie> I don't recall; based on the name only, it may have been another EgoBot instance.
18:39:34 <oerjan> i don't think it was his bot
18:39:37 <fizzie> Apparently ran by immibis.
18:39:45 <fizzie> (Based on a quick grep.)
18:40:02 <oerjan> yeah you'd definitely want to ignore that >:D
18:40:39 -!- Gregor-W has quit (Quit: Page closed).
18:40:53 <oerjan> a guy who liked to do verbose things with bots
18:41:08 <fizzie> "This is my user page. I created RubE_On_Conveyor_Belts and MailBox (page coming soon). I will occasionally come on irc.freenode.net #esoteric."
18:41:10 <oerjan> hasn't seen him for a while
18:41:52 <Gregor-P> Anywho, if I merged my bots, you could upload some code to the Esolangs Hackiki for an esolang, then run it here :)
18:41:54 * oerjan didn't even notice that
18:42:34 <fizzie> I've seen 'im last 2010-01-31 quitting with the message [Quit: #dsdev on irc.blitzed.org exists], but it might not be relevant to the prolonged silence.
18:43:11 <cpressey> Gregor-P: I imagine you could install [eso]interpreters written in arbitrary languages, instead of just the 'n' that EgoBot currently provides?
18:43:47 <Gregor-P> Without bugging me to update EgoBot's hg :)
18:45:34 <Gregor-P> Plus, I'd only have one bot on #esoteric X-P
18:45:34 -!- Flonk has quit (Read error: Connection reset by peer).
18:46:10 -!- Flonk has joined.
18:50:05 <pikhq> Gregor-P: And access Hackiki articles here. :P
18:50:51 <Gregor-P> Well, except that people are clamoring for Hackiki as an adjunct, not a primary.
18:51:55 <Gregor-P> Having no Hackiki is also a workable model :P
18:55:54 <cpressey> Fun fact! THERE ARE NO FUN FACTS.
18:56:34 <cpressey> ALL FACTS ARE DEAD SERIOUS, AND MOST ARE PAINFUL TOO.
18:58:41 <pikhq> cpressey: Good news everybody! I have eliminated all fun facts!
18:59:41 -!- jcp has joined.
18:59:58 <oerjan> fun fact n = if n<=1 then 1 else n * fact(n-1)
19:11:26 <oerjan> my work here is outdone.
19:12:20 * oerjan mostly copied that from some SML link
19:17:32 -!- Flonk has quit (Read error: Connection reset by peer).
19:49:56 <oerjan> well are you sure that you're really _you_ who are being driven crazy?
19:50:47 <oerjan> ok, then, are you sure that you're really _you_ who are being driven "crazy", figuratively?
19:51:44 <oerjan> hey it was you that started it
19:55:46 <oerjan> well you could be a cow, with those hooves
19:57:49 -!- Phantom_Hoover has quit (Quit: Leaving).
19:58:18 -!- Phantom_Hoover has joined.
20:14:36 * Sgeo decides that it's better to get to the root cause of a bug than to just slap a if (whatever != null) in front of a line
20:18:46 <fizzie> if (whatever == null) whatever = malloc(4096); /* here's some bytes for you */
20:19:16 <fizzie> (Lowercase-"null" sounds non-C, though.)
20:19:41 <cpressey> now you don't need to check if whatever is null anymore!!!
20:21:23 <oerjan> instead you can turn a new page
20:23:08 -!- Flonk has joined.
20:23:30 * oerjan forgets everything Phantom_Hoover has ever said
20:23:36 -!- oerjan has quit (Quit: Good night).
20:24:37 <fizzie> Phantom_Hoover: The "top" I have here has a nifty quick-access thing that "M" makes it sort by the "%MEM" column.
20:25:01 <Sgeo> true ifTrue: [ Transcript show: 'Hi #esoteric!' ]
20:25:19 * Sgeo wonders if Smalltalk would be a decent first language
20:26:16 <fizzie> Also, if you press "B" it bolds the current sort column, and then you can use < and > to move it left and right.
20:26:33 * Phantom_Hoover wonders if x86-64 assembly would be a decent first language.
20:28:19 <cpressey> Sgeo: Alan Kay wondered that too!
20:29:11 <Sgeo> The one thing I dislike about Smalltalk is how casually stuff adds methods to root object classes
20:29:27 <Sgeo> With no namespace stuff, so potential for collision is rather high
20:30:09 <fizzie> Yes, it should be so that only the High Clergy is allowed to access the Holiest of Objects.
20:30:12 <cpressey> Ruby can suffer from that too.
20:33:42 <cpressey> The thing I don't like about Smalltalk is its syntax.
20:38:17 -!- Flonk has quit (Read error: Connection reset by peer).
20:39:07 <Sgeo> Funny, that's what I hate about Ruby
20:39:18 <Sgeo> [And how non-unified it is. Magical blocks?
20:39:40 <cpressey> Oh, I hate that Ruby is non-unified too.
20:40:01 <Sgeo> I think I may have used the wrong phrase
20:40:18 <cpressey> I think I caught what you mean anyway.
20:40:57 <cpressey> It and Perl both belong to the "Magic is GOOD!" school...
20:41:14 <cpressey> (So does Python, but Python's in denial.)
20:42:03 <Sgeo> I'm kind of wondering what pro-magic stuff is like
20:42:24 <cpressey> Sparkly, special magic that makes everything NEAT!!!
20:42:39 <Sgeo> But having blocks not be objects? Really?
20:42:45 <Sgeo> Some weird yield keyword to get to blocks?
20:44:47 <cpressey> I thought the block thing was just a funny syntax for passing a lambda to something.
20:45:22 <Sgeo> It... is, except they're not objects
20:45:29 <Sgeo> Unless the receiver receives it as an object
20:45:36 <Sgeo> And you can only pass one block to a method
20:45:53 <Sgeo> Or, well, one block as a block. You can objectify blocks, but that's not normally how things are done
20:45:55 <cpressey> What else could the receiver receive it as?
20:46:31 <Sgeo> A ... thing detectable somehow [forgot how] and called with the yield keyword
20:46:44 <Sgeo> That's the normal way of doing it
20:48:08 <cpressey> Magic sugar to make the magic chainsaw pretty! Whee!
20:50:49 -!- Mathnerd314 has quit (Disconnected by services).
20:50:57 <cpressey> Oh, here's more definition fun like yesterday's reddit comment: "Blocks, Procs and lambdas (referred to as closures in Computer Science) are one of the most powerful aspects of Ruby, and also one of the most misunderstood." http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/
20:52:29 -!- Mathnerd314 has joined.
20:53:26 <Phantom_Hoover> cpressey, the closure-lambda confusion is actually pretty understandable.
20:54:03 <cpressey> Phantom_Hoover: Agreed. Most because closures are a way to implement lambdas.
20:54:53 <pikhq> How odd. I could've sworn CS called them "lambda expressions" or "anonymous functions".
20:55:10 <pikhq> With the obvious caveat that they do, in some manner, close over their environment.
20:56:33 <Sgeo> Phantom_Hoover, not if your lambda syntax for some reason allows an option to not be a closure
20:56:43 <Sgeo> Someone should make an esolang that does that!
20:56:50 <Sgeo> ^^another thing I always say
20:57:58 <cpressey> I tend to regard "lambda" as jargon, and tend to prefer "function value" (which is flexible enough to be applied to either syntax or semantics, if it's clear from context.)
20:58:22 <pikhq> Sgeo: You list the variables, if any, that you close over.
20:58:34 <pikhq> And in what manner (references or copies)
21:00:31 <Phantom_Hoover> cpressey, "lambda" is much easier to type than "anonymous function", though.
21:01:08 -!- Phantom_Hoover has quit (Quit: Leaving).
21:01:25 -!- Phantom_Hoover has joined.
21:01:59 * Sgeo feels free to :p at anyone who suggests that all lambdas are closures
21:09:21 <olsner> all squiggles are squiggles
21:11:34 <Sgeo> Power is power.
21:13:31 <Gregor-P> Women is women, but MEN is men!
21:16:58 -!- alise has joined.
21:17:03 <Phantom_Hoover> "Two of most useful items in the game are: a magic marker and a can of grease. Both are disgustingly uncommon. *
21:17:03 <Phantom_Hoover> The most useful item in the game is easily a Wand of Wishing. Which you will then use to wish for grease and magic markers." -- The TV Tropes Wiki page on NetHack.
21:21:07 <alise> The atheist "OUT" campaign logo, FSM, ACLU, EFF, FIJA, Kopimi, pirate logo from The Pirate Bay, LGBT rainbow, NORML.
21:21:18 <alise> This is the most stereotypical Internet logo-sidebar ever.
21:21:58 <Sgeo> alise, we were just talking about you
21:22:30 <alise> Am I the Paris Hilton kind of celebrity or the Brain Cox kind of celebrity?
21:24:06 <alise> Phantom_Hoover: only the coolest particle physicist slash pop musician slash pop-science TV presenter ever
21:24:16 <alise> also, the only one.
21:24:47 <Sgeo> Is there a name for "Brain Cox after people believe he made a mistake"?
21:25:14 * cpressey is now tragically confused and wants to hurt you all, you all
21:25:50 <alise> cpressey: tl;dr in the UK we have a handful of celebrities who are intelligent and awesome
21:25:52 <Sgeo> Since when did you stop logreading?
21:26:15 <alise> when talking to people outside britain we usually use the words "national treasure" to convey this.
21:26:22 <fizzie> Wolfram Alpha, "mass of sun in bananas" => input interpretation "banana | amount | 1 banana", and then a "nutrition facts" table with e.g. 6.562*10^24 metric tons of fat; but nowhere it mentions the sun any more.
21:26:25 <alise> Sgeo: I do it while chatting.
21:26:41 <alise> fizzie: I would like those bananas, please.
21:26:58 <fizzie> It's a solar banana, I guess.
21:30:53 <nooga> alise: your best celebrity is Richard Clarkson, period
21:31:06 * Sgeo <3 Terry Pratchett
21:31:46 <alise> Clarkson is a pig; an amusing pig, but a pig.
21:31:54 <alise> A Conservative, global-warming-denying pig.
21:33:11 <Sgeo> Jeremy Clockson?
21:33:58 <nooga> of PINK FLOYD !11!
21:34:21 <cpressey> OK, I guess I have heard of Terry Pratt.
21:35:03 <Sgeo> Fortunately for you, Jeremy Clockson is fictional
21:35:29 <nooga> you son of a clock!
21:35:32 <alise> David Gilmour is ... very dull.
21:36:04 <nooga> but i like it when he plays
21:36:59 <cpressey> Been a while since I wrote anything that wasn't an interpreter
21:37:35 <cpressey> nooga: My way of telling Gregor he is wrong, wrong, WRONG
21:38:15 <cpressey> Oh, something to do with GC or something. One sec
21:38:31 <olsner> oh, is eightebed the one with safe pointers?
21:38:42 <Gregor-P> The only problem being that I'm right, right, RIGHT
21:38:59 <nooga> alise: tried MacRuby ?
21:39:10 <alise> nooga: a long time ago.
21:39:20 <alise> nooga: how is it not utterly boring?
21:39:26 <cpressey> olsner: Yes. And dancing beagles, if you're lucky
21:39:48 <olsner> sweet! I love dancing beagles!
21:40:03 <nooga> it compiles ruby to llvm and then llvm emits native code
21:40:06 <cpressey> nooga: "A language which provides a true explicit free() cannot be safe. (By "true" I mean that you can get that memory back in a later malloc().) To be safe a language must either never free (which is bad) or be GC'd." -- Gregor's claim
21:40:33 <nooga> alise: it's enormously fast compared to mri and other implementations
21:40:47 <coppro> Gregor-P: what's the reason for that claim?
21:40:54 <alise> nooga: Great. A quick way to run a language so boring it makes me want to aestivate.
21:40:58 -!- Gregor-W has joined.
21:41:06 <alise> That only runs on a rather naff proprietary operating system.
21:41:10 <Gregor-W> Just to be perfectly clear, I am only referring to C-like languages :P
21:41:18 <cpressey> alise: Ruby, boring? Magic sugar chainsaw language, BORING???
21:41:21 <nooga> i thought you like roby
21:41:27 <nooga> that's why i asked you
21:41:48 <alise> nooga: that was in a past life, one filled with a lot more gradients and drop shadows
21:41:50 <cpressey> Great, now Gregor can say Eightebed proves nothing because it's not sufficiently "C-like"
21:41:54 <Gregor-W> Which is to say, imperative languages with pointers at arbitrary data, where safety is defined as not seeing that data as a different type.
21:42:35 * cpressey was feeling like Sisyphus there for a sec
21:42:50 <Gregor-W> cpressey: I have further-specified all my horribly-ambiguous claims ;)
21:43:31 <Gregor-W> coppro: And here is my reasoning: If you can relinquish memory to the system then reallocate it, you can alias that under two types, since detecting whether a reference is still in use statically is equivalent to the halting problem.
21:44:00 <alise> Flergh, why do languages suck?
21:44:00 <Gregor-W> And if you can alias it under two types, then of course you can write one type and read another, causing the universe to explode ^^
21:44:20 <coppro> Gregor-W: that assumes that the memory is returned unchanged
21:44:38 <Gregor-W> coppro: No it doesn't, you'll still have two references to it. You just need to write through one and read through another even if it's reinited.
21:44:43 <alise> nooga: all of them
21:44:57 -!- Phantom_Hoover has quit (Quit: Leaving).
21:45:11 <coppro> Gregor-W: ah, I see what you mean
21:45:12 <cpressey> alise: Actually languages are very good, all languages, I find people who can;t get their punctuation right! Believe this.
21:45:12 <Sgeo> alise, I've fallen in love with Smalltalk, I think
21:45:16 -!- Phantom_Hoover has joined.
21:45:18 <Gregor-W> int **a = /* allocate */; dostuff(a) /* I don't know that dostuff will free a */; int *b = /* allocate */; *b = whatever; **a /*boom*/;
21:45:29 <alise> Sgeo: I see. It is flawed.
21:45:41 <alise> Phantom_Hoover: no, it really does suck
21:45:46 <Gregor-W> alise: Your reasoning is pretty awesome X-D
21:45:47 <alise> Phantom_Hoover: name a good language
21:45:53 <Sgeo> alise, besides the commonality of un-namespaced methods being added to core objects on a regular basis, what's wrong with it?
21:45:57 <Gregor-W> Why can't I stop falling in love with flawed languages? D-'8
21:46:06 <Phantom_Hoover> alise, are you saying that there are no good languages?
21:46:10 <alise> Gregor-W: you require a lobotomy
21:46:20 <alise> Phantom_Hoover: ones you can actually use, at least
21:46:52 <Sgeo> alise, what are Smalltalk's flaws?
21:46:55 <alise> yeah but haskell is one of the most disappointing languages
21:46:58 <alise> in potential vs reality
21:47:09 <Gregor-W> 1) It is not sufficiently spicy.
21:47:28 <Gregor-W> 2) When you serialize its environment and print it out, it takes too many pages.
21:47:34 <alise> Phantom_Hoover: a language "recognisably similar to", "of the same strain as" Haskell could have been truly epically amazing
21:47:41 <alise> Haskell itself is ... good, but, you know.
21:47:47 <alise> Not /holy shit fucking awesome cakes/.
21:48:00 <Gregor-W> 3) Any language with "Small" in it threatens my masculinity.
21:48:14 <Gregor-W> 4) Any language with "talk" in it threatens my masculinity.
21:48:16 <alise> Phantom_Hoover: No, I really am.
21:48:32 <alise> Phantom_Hoover: I am saying that Haskell had, before it was made concrete, /huge potential/
21:48:39 <alise> I am saying that it disappoints, based on this potential.
21:49:01 <nooga> http://www.youtube.com/watch?v=EO472qM6M9g
21:49:08 <nooga> wha... i don't even...
21:49:36 <cpressey> Haskell code is often just as hard to read as Perl. And usually harder to understand.
21:49:41 <alise> Phantom_Hoover: i've seen the seeds of development that create languages so much less disappointing and in the vein of haskell
21:49:56 <alise> yes, they are usually quite impractical (dependently-typed programming hasn't been worked out yet), but ...
21:49:58 <alise> you know what, fuck it
21:50:06 <alise> just because you did a good job doesn't mean you created something excellent
21:50:10 <nooga> alise: if all languages suck...
21:50:23 <alise> retarded kids can try really hard and do a really excellent job and produce a piece of paper with the letter A on it, that is not amazing
21:50:51 <alise> Phantom_Hoover: type system has too many special features to handle things like typeclasses, etc., requires extensions which can't be inferred and make stuff blargh to be useful ...
21:50:57 <alise> syntactical quirks
21:50:59 <alise> bad standard library
21:50:59 <Sgeo> I'm still curious about Smalltalk's flaws
21:51:18 <alise> Phantom_Hoover: no, really, haskell sucks compared to what languages could be, we just all have terrible standards
21:51:39 <alise> and i am fucking tired
21:51:54 <nooga> alise: is it even possible to create a language that does not suck? in your opinion
21:52:08 <Sgeo> alise, I've heard that it's bad to put built binaries in version control, but why
21:52:20 <cpressey> Sir, I submit to you that a flying machine is a physical impossibility.
21:52:36 <alise> i defer to cpressey
21:52:53 <alise> Sgeo: version control systems mostly suck at binaries, they could be out of date, it's generally pointless
21:52:59 <alise> and they mostly suck at binaries.
21:53:23 <Gregor-W> Hackiki has binaries in its VCS ... but then it's not really being used as a VCS X-P
21:53:33 <Gregor-W> (Well, the Plof Hackiki does anyway)
21:53:34 <Sgeo> Meh, have any better way for me to get the stuff to the host given that I only have RDP access?
21:54:11 <nooga> i think of languages as tools, there is no holy grail of languages
21:54:29 <nooga> i use mainly ruby and C
21:54:48 <alise> no, but there is shit significantly better than we have
21:54:57 <olsner> even if there's no holy grail, that doesn't mean cups of crap is ok
21:55:17 <Gregor-W> `addquote <nooga> i think of languages as tools, there is no holy grail of languages <olsner> even if there's no holy grail, that doesn't mean cups of crap is ok
21:55:24 <HackEgo> 206|<nooga> i think of languages as tools, there is no holy grail of languages <olsner> even if there's no holy grail, that doesn't mean cups of crap is ok
21:55:43 <alise> Gregor-W: TWO SPACES BETWEEN MESSAGES
21:56:15 <nooga> it's like you guys deny whole history of computing
21:56:25 <alise> Phantom_Hoover: why does no-one use the diaeresis?
21:56:27 <cpressey> Phantom_Hoover: They're too busy making lolcats on icanhazcheeseburger.com
21:56:31 <alise> nooga: you mean, things slowly, steadily improving?
21:57:21 <nooga> "modern cars are shitty, every single one of them - you can crash, they don't teleport and you have to know how to drive"
21:57:26 <alise> People who say it cannot be done should not interrupt those who are doing it..
21:57:50 <nooga> but shit, i've seen beatuful cars, fast cars, comfortable cars, usable cars
21:57:54 <alise> Phantom_Hoover: nooga is.
21:57:57 <alise> nooga: you know, innovation is possible and happens.
21:58:07 <alise> nooga: and there is significant evidence of the possibility of good languages
21:58:17 <alise> and it can easily be seen how technology has been held back if you study it a bit
21:58:30 <nooga> but complaining about current state without active search for future solutions
21:58:33 <alise> cars have been around since pick a date according to your definition of car
21:58:37 <Phantom_Hoover> alise, so then why has noöne made one? It's not like making a car; you only need a computer, intelligence and time.
21:58:37 <alise> computers are new and people suck at them
21:58:43 <alise> nooga: guess what? Just because we whine about it doesn't mean we aren't looking.
21:58:51 <alise> Even cpressey is, in his own way.
21:59:18 <alise> Phantom_Hoover: Why hasn't anyone formulated the Grand Unified Theory yet? It's not like making a car; you only need pen, paper, intelligence and time.
21:59:48 <nooga> maybe human brain is too small for that :F
21:59:52 <Phantom_Hoover> alise, there isn't really any evidence that one of them exists, but you act like there must obviously be a perfect language.
22:00:00 <alise> besides, people have made /better/ languages, it's just that today's /ecosystems/ like operating systems etc. aren't very friendly to them
22:00:14 <alise> Phantom_Hoover: <nooga> i think of languages as tools, there is no holy grail of languages <alise> no, but there is shit significantly better than we have
22:00:27 <alise> is your definition of "acting", "explicitly denies"?
22:02:00 <alise> Phantom_Hoover: wait, you are actually saying that it's not obvious a better language exists than the ones we use today?
22:02:06 <nooga> so what are the properties of language better than existing ones?
22:02:19 <alise> fucking hell, you like Lisp; people who do day-to-day programming, C and shit, they have no idea about Lisp
22:02:34 <alise> is it so hard to imagine a better language that is unknown like Lisp and impractical in today's world in the same ways as Lisp?
22:02:40 <alise> Phantom_Hoover: we have Epigram, too
22:04:19 <alise> of course it's almost entirely theoretical because nobody wants to bother making a practical language because it's hard and nobody gives you any support or thanks, just "and how can I HTTP synergise with this?"
22:04:29 <alise> thus modern academic language design.
22:05:17 <nooga> you can't write a modern OS using some heavily math based language
22:05:18 <alise> care to qualify that awful? say, give it an object to indicate what is awful?
22:05:32 <alise> "of course it's almost entirely theoretical because nobody wants to bother making a practical language because it's hard and nobody gives you any support or thanks"
22:05:35 <nooga> but it would be worse than selfdestruction
22:06:02 <nooga> imagine if Solaris was written in Haskell
22:06:08 <nooga> that's what i call fail
22:06:16 <alise> That's what I call fail.
22:06:17 <Phantom_Hoover> nooga, do you seriously think "good" = "you can write an OS in it"?
22:06:25 -!- augur has joined.
22:06:36 <nooga> but i still think that languages are tools
22:06:51 <Phantom_Hoover> nooga, AND ACADEMIC LANGUAGES AREN'T TOOLS FOR OS DESIGN
22:06:54 <nooga> you need hamer? use hammer. you need scalpel? use scalpel
22:07:47 <Phantom_Hoover> nooga, so how does it reflect badly on Haskell that you couldn't write an OS in it?
22:07:57 <alise> We don't have good non-academic languages because CREATING GOOD PRACTICAL LANGUAGES JUST GETS YOU INSULTS, FLAMES AND NO BENEFIT WHATSOEVER
22:08:10 <pikhq> Phantom_Hoover: It has been done (for some definitions of "OS").
22:08:10 <alise> at least ACADEMIC languages are RESPECTED and get you *ACADEMIC CREDIT*
22:08:14 <Sgeo> I still don't see what's so bad about Smalltalk :/
22:08:25 <alise> this is a SELF PERPETUATING PROBLEM caused by the IDIOCY of today's computing and it is /everyone's fucking fault/.
22:08:38 <alise> Sgeo: Phantom_Hoover is wrong :P
22:08:41 <alise> Smalltalk is pretty damn good
22:08:46 <alise> I just have doubts about OOP in general
22:08:49 <alise> and ... imperative programming
22:08:51 <pikhq> Sgeo: It's a damned lot better than many other OO-type languages. However, it does have flaws.
22:09:15 <pikhq> For now at least, I'd consider it the example of how to do OO right.
22:09:29 <Sgeo> I still want to know what those flaws are :/
22:09:31 <pikhq> (not because it can't be better, but because just about everything else is *worse*)
22:09:43 <Phantom_Hoover> alise, did the designers of Haskell get flamed and insulted?
22:10:05 <pikhq> Phantom_Hoover: Didn't when it was purely academic. It does now.
22:10:10 <alise> Phantom_Hoover: Uh ... yeah, Haskell is regularly insulted. The only reason the designers didn't take it and the fans now do, is because it was /originally a highly academic language/.
22:10:36 <alise> Then it became popular and people started writing bad libraries and crap in it, giving it bad package management tools, flooding the channel with bullshit, and then everyone else pointed and laughed.
22:10:52 <pikhq> Sgeo: The syntax is irritating, it's dynamically typed, and it's dynamically typed.
22:10:53 <alise> Thus demonstrating the immense worthwhileness of creating a good, practical language.
22:10:55 <nooga> I've met Phil Wadler in Edinburgh!
22:10:57 <alise> Immense meaning "0".
22:11:01 <pikhq> (dynamic typing is that much of a failure)
22:11:09 <nooga> he said 'hi' to me
22:11:10 <alise> Phantom_Hoover: yeah, but some haskell code /really, truly/ misunderstands what haskell is. an awful lot of it
22:11:17 <alise> pikhq: Smalltalk's syntax is fine, dammit.
22:11:31 <Phantom_Hoover> alise, that's because you can't have an idiot detector in the compiler.
22:11:41 <pikhq> alise: Okay, fine. s/The syntax is irritating/It's dynamically typed/
22:11:46 <Sgeo> Transcript show: 'I can survive this.'; cr.
22:11:50 <alise> Phantom_Hoover: how about we agree that you ignore that part of the sentence
22:11:52 <nooga> ( http://en.wikipedia.org/wiki/Philip_Wadler )
22:11:53 <alise> and read the rest of it
22:12:29 <Sgeo> So what are statically-typed Smalltalk-like languages?
22:12:43 <alise> Sgeo: Strongtalk, I think had something ... maybe ... but basically nothing ...
22:12:47 <cpressey> nooga: Oh, the dude who compared monads to a solution to Descartes' mind-body problem?
22:13:18 <alise> cpressey: Hey, Wadler is awesome. Just ... not that specific thing.
22:13:32 <cpressey> nooga: Better put him back in his cage then.
22:13:35 <Phantom_Hoover> alise, I don't get why people writing bad libraries will stop with a better language, though. Which seems from here to be your point.
22:13:37 <pikhq> It also amazes me the people that think that pretty much anything functional is "magic".
22:14:19 <alise> Phantom_Hoover: I thought we agreed to ignore that part?
22:14:30 <alise> <alise> Then it became popular XXXXX, giving it bad package management tools, flooding the channel with bullshit, and then everyone else pointed and laughed.
22:14:41 <alise> Tada, no more things about libraries for you to complain about.
22:14:56 <Phantom_Hoover> alise, OK, so your point is that people started laughing when the idiots came.
22:15:06 <nooga> eh, i used bad word
22:15:11 <alise> My point is it became popular then people started laughing.
22:15:15 <alise> The idiots were just a side note.
22:15:21 <alise> Fucking hell, I'm insanely tired, cut me slack.
22:15:38 <nooga> i mean't 'cool' but 'loose' is exact translation from PL
22:16:12 <alise> Phantom_Hoover: because it became popular
22:16:16 <alise> it had to synergise HTTP.
22:16:21 <alise> what are these monads? In enterprise we do not use monads!
22:16:28 <alise> You innovate, but how does this interact with RUBY?
22:16:39 <alise> Ha ha ha, all this mathematical masturbation. How does it help me drive my toaster?
22:16:58 * Sgeo wonders what a compromise between static and dynamic typing might look like
22:17:05 <Sgeo> Something that allows safety and flexibility
22:17:14 <Phantom_Hoover> alise, but surely your view of a better language would be more mathematical than Haskell?
22:17:33 <nooga> pikhq: that's what I fear
22:17:36 <Sgeo> Maybe something similar, but not identical, to OCaml's and Scala's statically-typed duck-typing-like thing?
22:18:04 <olsner> could you apply lazy evaluation to the type system and do lazy type-checking?
22:18:34 <pikhq> olsner: Yes but *wince*
22:18:41 <Sgeo> Grr at http://www.pharo-project.org/home
22:18:44 <Sgeo> erm, wrong link
22:18:49 <Sgeo> Grr at http://www.smalltalk.org/articles/article_20041002_a1.html
22:19:09 <Sgeo> They imply that that fault is static type checking's fault, when it's a fault with that particular type system
22:19:20 <Sgeo> I'd imagine that, say, dependent types would work well there
22:19:46 -!- yiyus_ has quit (Ping timeout: 240 seconds).
22:21:03 <Sgeo> Static typing as in C might not be the answer, but that's no reason to throw out static typing altogether
22:21:06 <Gregor-P> More to the point, type systems do not and never will preclude bugs.
22:22:09 -!- yiyus_ has joined.
22:23:02 <olsner> "The fact that Smalltalk's numbers "scale" - in this case small integers scale to larger numbers - dynamically has everything to do with a benefit over statically typed numbers."
22:23:14 <pikhq> Sgeo: Static typing as in C is absolutely not the answer.
22:23:33 <pikhq> Phantom_Hoover: Static, weak typing.
22:23:49 <pikhq> Gregor-P: Nope, it just precludes certain classes of bugs. Only idiots think static typing is the magic solution to all bugs.
22:24:03 <pikhq> Of course, there are a large number of idiots.
22:24:28 <coppro> static typing is not the solution to all bugs
22:25:10 <Sgeo> It would be nice if by types we stopped meaning, say, Numbers, Strings, etc, and started meaning, say, XCoord, YCoord, Distance, DisplayedString, etc.
22:26:15 <coppro> there are various languages that allow opaque retyping
22:26:29 <cpressey> Sgeo: That's what Hungarian Notation was originally supposed to be
22:26:37 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net).
22:26:49 <cpressey> Then Microsoft Microsofted the hell out of it
22:27:01 <Sgeo> I know Joel endorses that sort of Hungarian Notation
22:27:21 <cpressey> I tried to make it part of the language (one of my languages - Dieter)
22:27:24 -!- GreaseMonkey has joined.
22:28:07 -!- Gregor-W has quit (Ping timeout: 252 seconds).
22:30:25 <nooga> there's no Dieter in our wiki
22:30:34 <cpressey> Phantom_Hoover: It took me a while -- but it was more complicated than just that (the type system has polymorphic typing with type qualifiers)
22:32:08 <cpressey> http://catseye.tc/projects/dieter/
22:37:07 <Phantom_Hoover> "# The DevTeam implemented an immediate and savage punishment for pudding farmers. It's called Pudding Farming." -- The TV Tropes Wiki article on NetHack.
22:43:56 <alise> <Sgeo> I'd imagine that, say, dependent types would work well there
22:44:01 <alise> Dependent types have their own whole host of problems.
22:44:13 <alise> They are unruly enough to be a Bad Idea unless the type language is total.
22:44:21 <alise> If the type language is total, that implies a full functional language, more or less...
22:44:27 <alise> and by that point, why use an imperative language at the base?
22:44:34 <alise> Also, dependent side-effecting types are hard.
22:44:52 <alise> Sgeo: Explain what?
22:44:57 <cpressey> My program doesn't terminate, my macros don't terminate, and now my type checking doesn't terminate! Boffo.
22:45:12 <Sgeo> total type languages, unruliness, dependent types...
22:45:16 -!- comex has joined.
22:45:47 <alise> Sgeo: Type language: the language used in the type system. if you don't realise that types are expressions, you don't know what dependent programming is
22:45:52 <alise> unruly: hard to control, nearly impossible to use
22:45:56 <alise> dependent types: you yourself used this term
22:46:20 <Sgeo> That doesn't mean I understood it, except vaguely as "A type that can be constrained to be, say, between 1 and 5"
22:46:22 <alise> comex: are the details of your jailbreak exploit public?
22:46:24 <Sgeo> And I'm probably way off base
22:47:27 -!- cheater99 has joined.
22:48:40 <alise> Phantom_Hoover: tl;dr terminating
22:50:43 -!- derdon has quit (Ping timeout: 276 seconds).
22:51:47 <Phantom_Hoover> alise, "total" in the sense that it is defined for all input values?
22:51:57 <alise> That is where the term originates.
22:52:20 <alise> It means all functions are total; thus no non-terminating replies; thus in a functional language as this applies to, all programs terminate
22:52:52 <Phantom_Hoover> So you can't have a practical, dependently-typed language?
22:52:58 <nooga> http://vimeo.com/9056286 HOW COOL IS THAT
22:53:03 <alise> We just haven't figured out how yet.
22:53:12 <alise> It is Ongoing Research. Ask Connor McBride. He'll dazzle you with confusion.
22:53:24 <Phantom_Hoover> alise, if all functions are terminating you can't even write cat...
22:53:53 <coppro> why are current dependently typed languages impractical?
22:53:54 <cpressey> Ah. Well cat is modelled with a Beuchi automaton, you see...
22:54:00 <alise> Phantom_Hoover: Untrue.
22:54:04 <alise> Phantom_Hoover: Codata allows infinite data.
22:54:14 <alise> Phantom_Hoover: This is why we say "total", not "always-terminating".
22:54:20 <alise> Phantom_Hoover: codata is this thing.
22:55:59 <alise> Phantom_Hoover: it's complicated.
22:56:15 <alise> I love it when people ask questions that boil down to "please summarise this large field of study in a line"
22:56:34 <nooga> this thing that makes writing a simple cat pain
22:56:36 <alise> Phantom_Hoover: instead of constructors you have destructors and they can be infinite.
22:56:45 <alise> nooga: no, untrue, you can have a non-total base language
22:56:52 <alise> nooga: also, using codata is friggin' easy
22:56:57 <alise> just not explaining it.
22:57:05 <alise> nooga: try explaining imperative programmer to a "native" functional programmer
22:57:07 <alise> you'll sound like a madman.
22:57:09 <Phantom_Hoover> alise, incidentally, the typography at http://cseweb.ucsd.edu/groups/tatami/handdemos/doc/coind.htm is awful.
22:57:25 <alise> Phantom_Hoover: I see no typography
22:57:48 <alise> a gaudy background image, no CSS styling, and some old bitmap images for Greek letters.
23:00:27 -!- augur_ has joined.
23:00:34 -!- augur_ has quit (Remote host closed the connection).
23:00:44 -!- augur_ has joined.
23:01:30 <alise> "Nurse dancing is a minor tactic in NetHack. If you are naked and wielding nothing, a nurse will heal you instead of hurting you. If the healing attacks would heal you past your normal max hit points, your max hit points will increase."
23:03:04 -!- augur has quit (Ping timeout: 240 seconds).
23:03:12 -!- augur_ has changed nick to augur.
23:04:28 -!- Sgeo_ has joined.
23:04:40 <nooga> alise: but the FACT is our computers have such a thing called STATE
23:05:11 <alise> and functional languages don't deny it. However, the "LOL computers have STATE" argument is basically preschool as far as functional languages are concerned and I have better things to do* than reply to it.
23:05:25 <alise> Maybe googling will turn up the answer to your complaint. Maybe not.
23:05:40 <nooga> and pretending that there's no such thing as STATE and trying to explain it to our computers is going the way round
23:05:40 -!- MigoMipo_ has quit (Quit: Quit).
23:06:12 <nooga> i just think that 'pure' languages are impractical for most uses
23:06:22 <nooga> ofc there are some cases when they rock
23:06:41 <cpressey> The FACT, nooga, is that all computers have BITS in them! So I make sure to write all my programs to do bitwise operations on my data.
23:07:07 <cpressey> To do any less would be passing up a great opportunity!
23:07:24 <alise> The universe has quantum mechanics. I cannot take a reference to a variable without its value changing.
23:07:33 -!- Sgeo has quit (Ping timeout: 245 seconds).
23:07:34 <alise> That is because my language is done the right way around.
23:07:36 <nooga> ruling out state is much bigger abstraction than covering few bits with numbers
23:08:07 -!- distant_figure has quit (Ping timeout: 248 seconds).
23:12:12 <alise> what an awful argument
23:12:26 <alise> it's like you took a supremely mediocre argument, then just sort of dragged it down
23:13:23 <alise> 01:52:48 <Sgeo> But right now, after expunging my mind of the syntax horror that is OCaml, I'm obsessed with Smalltalk
23:13:28 <alise> presumably you missed the nice language
23:13:30 <alise> the syntax isn't that bad
23:14:20 <Sgeo_> I'm not sure how I could ever come to like OCaml, after tasting Haskell's [mostly] syntactical glory
23:14:31 <alise> yeah, uh, ocaml has better syntax than haskell in many many places
23:14:37 <Sgeo_> Well, not glory, but cleanlinesslooking
23:14:54 <alise> then you have to write it
23:15:00 <alise> and reminisce about ocaml
23:15:14 <nooga> oh come on, cars got 4 wheels, but you dont have to turn them personally, instead of that you use driving wheel and the engine takes care of the rest... but virtually you could build an extremely complicated robot that'd drive the car for you basing on your wishes
23:15:48 <nooga> but it's an overkill... nowadays, at least
23:15:56 <alise> nooga you really don't understand what you're talking about
23:15:57 -!- distant_figure has joined.
23:16:18 <alise> 23:40:56 <Sgeo> "; has type unit -> 'b -> 'b" ;; that's a lie, ; is synta
23:16:42 -!- SevenInchBread has joined.
23:17:01 <cpressey> I don't actually agree that languages are tools, but I would agree with the statement "pick the right abstraction for the job". Sometimes "stateful" is the right abstraction, sometimes "stateless" is, sometimes there is no right answer.
23:17:03 -!- CakeProphet has quit (Ping timeout: 240 seconds).
23:17:49 <alise> cpressey: Of course, the whole point is that /stateful/ can happen in a stateless language.
23:17:56 <alise> Statelessness is an /abstraction/ of statefulness.
23:18:03 <alise> Which is why you can perfectly well write imperative code in Haskell.
23:18:08 <alise> And why people whining about it are stupid.
23:18:41 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
23:18:42 * Sgeo_ wants to make AW SDK bindings for Smalltalk now
23:19:30 <nooga> how natural it is... we use some monadic trickery to mimic tatefulness in a stateless language that compiles to stateful language running on stateful machine
23:19:47 <nooga> sounds like an optimal solution
23:20:40 <alise> and nooga successfully ascends to the level of "assumption-making, stands-on-shoulders-of-giants (CPU architecture) but objects to adding more, complete and utter troll".
23:21:02 <alise> I think the Jews would circumsize you at this point.
23:21:45 <nooga> okay, let's just assume that i am completely wrong, eot
23:22:46 <alise> I support this assumption!
23:24:46 <cpressey> C emitted for Eightebed needs work, but it runs without crashing now! http://pastie.org/1076160
23:26:04 <Phantom_Hoover> cpressey, my mere mortal eyes suggest that that's not valid C.
23:26:10 -!- tombom_ has quit (Quit: Leaving).
23:27:26 <cpressey> I just stubbed out the emitter stuff for variable references. And the struct contents, you see.
23:28:03 <alise> jim = eightebed_malloc(sizeof(node);
23:28:16 <alise> Also, so totally abbreviate it as 8ebed, if C allows starting an identifier with 8.
23:28:25 <cpressey> Well, maybe tonight, I'll finish it. Then I'll still need to work on the runtime. And optionally the validity analyzer (although I could just write out the rules, say they must be followed, and not implement them)
23:28:40 <cpressey> alise: indeed. I don't think it does. Maybe _8ebed.
23:29:13 <alise> cpressey: Could I also inform you that it should be "node *foo", not "node* foo"? You can lynch me if you want.
23:29:48 <cpressey> alise: HAH. Next you'll want it to be indented and all.
23:30:30 <cpressey> C has this weird convention in decls about variables "being" the pointers instead of the types. But you know that probably.
23:31:00 <cpressey> (Instead of the types being pointer types. Except they are. Oh, C.)
23:31:47 <coppro> does anyone know of any languages where you can dynamically change the types of variables?
23:32:22 <cpressey> coppro: Python comes immediately to mind. Of course, their values will generally change too.
23:32:49 <coppro> cpressey: variables don't have types in Python, only values
23:33:42 -!- SevenInchBread has quit (Ping timeout: 258 seconds).
23:34:01 <coppro> e.g. foo := 4; foo @= string; foo == "4" # true
23:34:16 <cpressey> coppro: You could build a container that has a (dynamically changeable) type in Python, I suppose.
23:34:57 -!- CakeProphet has joined.
23:35:08 <cpressey> coppro: But what's stopping me from saying that all Python variables have a type, and that type is just derived from the type of the value that the variable is holding?
23:35:22 <cpressey> That doesn't seem to be too different from your e.g.
23:35:55 -!- Mathnerd314 has quit (Ping timeout: 265 seconds).
23:36:00 <coppro> cpressey: because in my example, subsequently trying foo := 4 again would be an error because foo is a string
23:36:12 <coppro> (but foo := 4 @ string would be fine)
23:36:42 <cpressey> coppro: How is that dynamically changeable? Dynamically establishable, maybe...
23:36:47 <alise> Phantom_Hoover: Because it hates you!
23:36:56 <alise> Phantom_Hoover: Do you have she?
23:37:24 <alise> Do you have ghc 6.12?
23:37:28 <alise> Epigram requires it.
23:38:20 <cpressey> Anyway, must be off now. Slight chance I'll be back on later tonight. Ahoy!
23:38:21 <Phantom_Hoover> The specific error pertains to a lack of Control.Applicative.
23:38:23 -!- cpressey has quit (Quit: Leaving.).
23:38:55 <alise> Phantom_Hoover: Please pastie the whole log.
23:40:57 -!- Mathnerd314 has joined.
23:42:08 -!- distant_figure has quit (Ping timeout: 245 seconds).
23:42:17 <alise> What command did you use?
23:42:31 <alise> It is a member of the hidden package `base'.
23:42:31 <alise> It is a member of the hidden package `base-3.0.3.2'.
23:42:39 <alise> are you SURE you have 6.*12*?
23:43:42 -!- distant_figure has joined.
23:45:16 <alise> Phantom_Hoover: *shrug* try rolling back revisions, report bug
23:50:04 -!- Wamanuz3 has joined.
23:53:51 -!- Wamanuz2 has quit (Ping timeout: 264 seconds).
23:55:39 <alise> Phantom_Hoover: i have no clue
23:56:25 <Gregor-P> You must build a turtle fence!
23:58:11 <alise> He's right, you know.
23:58:17 <alise> http://www.youtube.com/watch?v=qizNQKzatXA