00:01:17 -!- augur has quit (Client Quit).
00:02:02 -!- augur has joined.
00:05:11 -!- kar8nga has quit (Remote host closed the connection).
00:14:34 -!- jcp has joined.
00:15:27 -!- jcp has quit (Client Quit).
00:34:52 -!- Pthing has joined.
00:44:41 -!- immibis has quit (Quit: #dsdev on irc.blitzed.org exists).
01:24:40 -!- Azstal has quit (Ping timeout: 240 seconds).
01:25:04 -!- augur has quit (Ping timeout: 258 seconds).
01:30:03 -!- Sgeo_ has joined.
01:31:19 -!- Sgeo has quit (Ping timeout: 256 seconds).
01:35:44 -!- cheater2 has quit (Read error: Connection reset by peer).
01:36:09 -!- cheater2 has joined.
01:46:28 -!- augur has joined.
01:50:44 -!- sshc has joined.
02:06:09 -!- Sgeo_ has changed nick to Sgeo.
02:11:15 -!- cheater2 has quit (Ping timeout: 246 seconds).
02:11:18 <pikhq> Somehow, somewhere, a closure is returning its *bound variables*.
02:11:23 <pikhq> Instead of a thunk.
02:15:16 <pikhq> Thunk 0x6382a0 is not a valid thunk. 0x6382a0 = {tag = 4198720, union {func = 0x638300, data = 0x638300}
02:15:28 <pikhq> ... A tag of 4198720.
02:15:47 <pikhq> Note: enum {THUNK_UNEVAL, THUNK_EVAL} tag;
02:27:29 <pikhq> AnMaster: Interacts very poorly with my code.
02:27:31 <AnMaster> pikhq, disable the gc for a bit so you can use valgrind to track this
02:27:48 <AnMaster> pikhq, what about mudflap then?
02:28:15 <pikhq> The issue is that somehow, someone is trying to dethunk a closure.
02:28:16 <AnMaster> pikhq, anyway I found valgrind a must-have when coding C
02:28:23 <Sgeo> What's a thunk?
02:29:06 <pikhq> struct thunk {enum {THUNK_UNEVAL, THUNK_EVAL} tag;union {closure func;void *data;};}
02:30:09 <AnMaster> pikhq, what is the value of those enum values
02:30:34 <AnMaster> C enums is a poor substitute for atoms
02:30:42 <pikhq> enum {THUNK_UNEVAL, THUNK_EVAL} is the enum declaration...
02:31:44 <AnMaster> pikhq, anyway without a memory checker I doubt you can find this
02:32:01 <pikhq> AnMaster: It's really simple.
02:32:12 <pikhq> This is an issue that a *type system* would catch.
02:32:37 <AnMaster> pikhq, unless it is due to the gc reclaiming when it shouldn't
02:32:38 <pikhq> The thing is, 0x6382a0 is a pointer to a *closure*, not a thunk.
02:32:52 <AnMaster> pikhq, well that explains things
02:33:01 <AnMaster> if not you should get warnings
02:33:18 <pikhq> I'm using void* when it makes sense, yes.
02:33:25 <pikhq> dethunk results in a void*.
02:33:36 <AnMaster> you won't get type checking when doing void*
02:33:45 <pikhq> Yes, I'm well aware.
02:33:52 <pikhq> That is, in fact, where my bug is coming from.
02:33:53 <AnMaster> that's the *point* of void* eve
02:34:15 <AnMaster> pikhq, when using void* think not just twice, think at least 5 times
02:34:24 <Sgeo> The Active Worlds SDK represents instances as void*
02:34:24 <pikhq> void* is necessary for polymorphism, and it makes things very difficult.
02:34:27 <Sgeo> Why, I do not know
02:35:15 <AnMaster> pikhq, why not use a structure containing a void*
02:35:47 <AnMaster> that way you can get an outer level check at least
02:35:48 <pikhq> I have a couple. They are closure and thunk.
02:36:12 <AnMaster> pikhq, anyway, why not use a tagged struct
02:36:43 <pikhq> That would be much agony.
02:36:53 <AnMaster> pikhq, this would be similar to/inspired by tagged words in lisp compilers and tagged tuples in erlang programs
02:37:09 <pikhq> I am doing nasty things to C ATM.
02:37:19 <AnMaster> pikhq, doing those would be nasty too
02:38:26 * pikhq looks for anything that *doesn't* return a thunk
02:38:45 <pikhq> (aside from my thunks, which absolutely should not return a thunk)
02:51:33 <Sgeo> I still don't know what thunk is supposed to mean >.>
02:56:58 <pikhq> Sgeo: It's a lambda that takes 0 arguments.
02:57:30 <pikhq> main.c:99: error: void value not ignored as it ought to be
02:57:37 <pikhq> Type-checker doing something.
02:58:14 <Sgeo> So what's the point?
03:00:18 -!- Asztal has joined.
03:03:47 <pikhq> main.c:360:1: error: unterminated argument list invoking macro "global_thunk"
03:03:59 <pikhq> I totally needed to know which line the EOF was on.
03:04:04 <pikhq> Not where the macro invocation was.
03:04:18 <pikhq> That would be totally useless to my attempts to figure out what you're talking about.
03:05:43 * pikhq sees everything nice and terminated.
03:05:50 * pikhq thinks GCC is smoking something.
03:14:02 <pikhq> Well, I went ahead and made as much of it as I could typesafe. And now I get no type errors.
03:36:20 -!- Pthing has quit (Remote host closed the connection).
03:41:44 -!- SimonRC has quit (Ping timeout: 256 seconds).
03:47:01 * pikhq is still amused by the lambdas with thunks that compile them from S and K.
03:50:35 -!- SimonRC has joined.
03:52:22 <pikhq> In a way, I am JIT'ing parts of this program...
04:08:48 * Sgeo is practically uncyberstalkable
04:08:56 <Sgeo> Even knowing my real name is useless
04:09:20 <pikhq> My nick name suffices.
04:09:42 <pikhq> Is the first result on Google my Wikipedia User: page?
04:10:02 <Sgeo> You're a yogurt product?
04:10:02 <pikhq> Followed by a pastebin and some nomic stuff.
04:10:12 * Sgeo is playing with pipl.com
04:10:18 <Sgeo> http://www.forallvent.info/uploads/media/Ross_Stanton_Putting_microbes_to_work_-_Part_II.pdf
04:10:44 <Sgeo> "PIKHQ in a yoghurt product. Other studies have identified the presence of whey protein-derived antimicrobial pep- tides, which were released following ..."
04:10:58 <Sgeo> Still, you're in a yoghurt product! Awesome
04:13:04 -!- Asztal has quit (Ping timeout: 240 seconds).
04:13:56 <Sgeo> Latl? Laughing atout loud?
04:14:27 -!- Asztal has joined.
04:17:02 <Sgeo> Someone say something
04:17:10 <Sgeo> I think I'm +Deaf
04:17:29 <Gregor> If you haven't confirmed that you're not by now, you are :P
04:18:01 * Sgeo waits for people to assume they can talk behind his back, and repeatedly refreshes the log
04:18:22 * Sgeo undeafens self
04:21:24 -!- lifthrasiir has quit (Ping timeout: 256 seconds).
04:47:33 -!- MizardX has quit (Ping timeout: 260 seconds).
04:47:56 -!- lifthrasiir has joined.
04:49:28 -!- coppro has quit (Changing host).
04:49:29 -!- coppro has joined.
04:53:10 -!- lifthrasiir has quit (Ping timeout: 276 seconds).
04:53:57 -!- lifthrasiir has joined.
04:58:36 -!- lifthrasiir has quit (Ping timeout: 258 seconds).
05:00:08 -!- lifthrasiir has joined.
05:02:07 -!- augur has quit (Ping timeout: 256 seconds).
05:08:21 -!- lifthrasiir has quit (Ping timeout: 246 seconds).
05:09:23 -!- lifthrasiir has joined.
05:30:24 -!- augur has joined.
05:39:57 <Sgeo> Which is better/worse, Java or C#?
05:40:12 <pikhq> About on par with each other, really.
05:40:25 <pikhq> C# has some advantages over Java, Java has some advantages over C#...
05:40:44 <pikhq> And they're rather similar languages, design-wise.
05:40:52 <Gregor> They're both utterly insufferable ^^
05:41:03 -!- jcp has joined.
05:41:11 <Sgeo> I kind of like C#
05:41:14 <coppro> C# is a nice language. Java is a nicer runtime
05:41:26 <Sgeo> pikhq, I haven't really encountered material about Java's advantages. What are they?
05:41:48 <pikhq> That's a massive one.
05:42:41 <coppro> Java's come full cycle to everyone hating on it, but it has lots of advantages. For starters, it's everywhere. You do not need a Windows box to get every feature of Java. Decent applets are a huge plus. Standard, direct access to hardware.
05:44:09 <pikhq> It's not an exceptional language, though.
05:44:13 <pikhq> Nor, really, is C#.
05:44:37 <coppro> Both are really hung up on bad models
05:44:50 <pikhq> C# gives you proper lambda instead of the hack of "object with a single method", though.
05:46:06 <coppro> yeah, as I said, C# has nicer language features
05:46:46 <coppro> Sgeo: like the lack of anything that isn't in object
06:32:35 <pikhq> coppro: Java has things that aren't objects.
06:32:57 <coppro> pikhq: I meant the lack of globals
06:33:19 <coppro> it adds nothing to the languages
06:33:36 <coppro> and in fact makes them worse
06:33:49 <coppro> since people stick their global state in a class, call it a singleton, and think they're clever
06:34:26 <coppro> singleton is possibly the single best example of an anti-pattern that doesn't even get an excuse due to the grandfather rule
06:34:45 <pikhq> Yeah, singleton is pretty retarded.
06:35:08 <pikhq> "Objects allow you to prevent global state. So, let's pretend to have global state."
06:35:35 <coppro> goto is probably the biggest anti-pattern ever, but only because there is better technology
06:35:54 <coppro> s/goto/goto for primary flow control/
06:36:07 <coppro> there is 0 excuse for singletong
06:36:20 <pikhq> goto for primary flow control has been considered an antipattern for a few *decades* now.
06:36:36 <coppro> I said 'ever', didn't I?
06:36:53 <coppro> but when it was originally conceived (i.e. when computers were first used), it was valid
06:37:01 <pikhq> The debate is over whether or not it's acceptable for exceptional cases in C... (jumping to a single point of cleanup before returning)
06:37:27 <coppro> I'm of the position that goto is not automatically a sin
06:37:40 <pikhq> It stopped being valid about the time that the compiler was invented.
06:37:50 <pikhq> coppro: Automatically? No.
06:37:57 <pikhq> But you damned better be careful.
06:38:42 <pikhq> Much like global state.
06:40:59 <coppro> man, I wish I could get accepted to University every week for the rest of my life. I've felt like a big sigh these past few days
06:41:49 -!- oerjan has joined.
07:02:39 * Sgeo has an awesome (read: horrible) idea: PSOX.NET!
07:03:15 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:07:53 <coppro> [00:06:20]<coppro>stop using a combine harvester when a pair of scissors will do
07:08:17 <oerjan> still, possibly good advice
07:12:12 <mycroftiv> i knew i was doing something wrong trimming my moustache, but i wasnt sure what
07:14:52 <oerjan> mycroftiv: is it upside down?
07:15:17 <mycroftiv> not unless im standing on the ceiling
07:15:40 <oerjan> too bad. you might have started a new fashion.
07:20:36 <fizzie> AnMaster: The latter. Well, the former too, I guess.
07:21:32 <Sgeo> No comment on PSOX.NET?
07:21:38 <coppro> not worth commenting on
07:21:49 <oerjan> it's too horrible to contemplate
07:22:14 <coppro> also, I can't remember what PSOX is, and I'm trying to cover that up
07:26:04 <mycroftiv> my favorite google result for psox is: http://www.lycaeum.org/mv/anagrams/PARALINGUA.cgi?article=Taschoskeluipa
07:31:07 <Sgeo> coppro, http://esoteric.voxelperfect.net/wiki/PSOX
07:31:38 <Sgeo> It was abandoned due to lack of interest, even among esolangers
07:36:49 -!- zeotrope has quit (Ping timeout: 256 seconds).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:22 -!- oerjan has quit (Quit: leaving).
08:00:47 <soupdragon> So - and I shall take up this theme again later - wherever you are to locate your notions of validity or worth or rationality or justification or even objectivity, it cannot rely on an argument that is universally compelling to all physically possible minds.
08:00:47 -!- Azstal has joined.
08:00:47 <soupdragon> Nor can you ground validity in a sequence of justifications that, beginning from nothing, persuades a perfect emptiness.
08:00:47 <soupdragon> Oh, there might be argument sequences that would compel any neurologically intact human - like the argument I use to make people let the AI out of the box1 - but that is hardly the same thing from a philosophical perspective.
08:00:57 <soupdragon> http://lesswrong.com/lw/rn/no_universally_compelling_arguments/
08:03:50 -!- Asztal has quit (Ping timeout: 272 seconds).
08:27:07 -!- kar8nga has joined.
08:41:53 -!- whtspc has joined.
08:55:10 -!- cheater2 has joined.
09:13:20 -!- MigoMipo has joined.
09:37:44 -!- FireFly has joined.
09:38:37 -!- soupdragon has quit (Quit: * I'm too lame to read BitchX.doc *).
09:48:09 <AnMaster> <fizzie> AnMaster: The latter. Well, the former too, I guess. <-- context?
09:52:20 -!- Azstal has quit (Ping timeout: 265 seconds).
10:12:55 -!- tombom has joined.
10:16:25 <oklofok> i don't think i've ever wanted globals in java
10:16:30 <oklofok> sounds like a silly thing to want
10:21:00 <FireFly> Global as in outside of class scope?
10:22:46 <oklofok> actually i don't think i've ever needed global state
10:22:53 <FireFly> Having everything inside a class feels very much like a Java thing, yes :P
10:23:08 <oklofok> what would you ever use global state for?
10:23:57 <FireFly> Hopefully nothing, and if you really need it, you just have to create a dummy class with public, static variables
10:27:04 <oklofok> i suppose that's the singleton pattern the conversation i'm responding to was mocking.
10:27:56 <oklofok> static variables are weird, if i need "globals", they will obviously just be global in some context, so i'll just wrap the whole thing into some sort of object.
10:33:54 -!- BeholdMyGlory has joined.
10:47:43 <FireFly> I tend to avoid using such dummy classes, yes
13:02:21 -!- clog has joined.
13:02:21 -!- clog has joined.
13:02:48 <fizzie> AnMaster: Context was you own comment, why ask me? It was about that NSOCK thing, anyway.
13:03:25 <AnMaster> fizzie, so you might use it? well okay. It won't happen straight away, lots to do at university currently
13:04:14 <fizzie> I might, though there's no shortage of other improvements fungot is lacking.
13:21:08 -!- fungot has joined.
13:21:55 <fizzie> fungot: So... how does this new ircd feel like to you? You know, since you're a piece of code too.
13:21:55 <fungot> fizzie: teh tv one. i must get the hell out of those is a field if and only if the strings are tuned a fifth apart
13:22:38 <fizzie> It must have made him a bit confused; that didn't make much sense.
13:35:56 -!- Ilari has quit (Quit: Changing server).
13:38:31 -!- Ilari has joined.
13:43:46 <Ilari> Heh... By default irssi has TLS cert verification disabled. And at least one of servers in IPv6 rotation is busted (does not respond).
13:55:09 -!- kar8nga has quit (Remote host closed the connection).
13:56:22 -!- Pthing has joined.
14:21:30 -!- tombom_ has joined.
14:23:52 -!- tombom has quit (Ping timeout: 248 seconds).
14:36:42 -!- oerjan has joined.
14:40:11 <oerjan> <FireFly> Hopefully nothing, and if you really need it, you just have to create a dummy class with public, static variables
14:40:41 <oerjan> iirc this argument chain started with someone pointing out that that possibility is a horrible hack
14:41:12 <oerjan> compared to allowing actual globals
14:41:30 <FireFly> Well, I tend to avoid using that hackish solution anyway
14:42:15 * oerjan gives FireFly a whack with the saucepan instead ===\__/
14:42:25 <oerjan> it's been unused for so long
14:58:56 <Ilari> I think Java doesn't support globals for same reason it doesn't support functions...
15:00:08 -!- soupdragon has joined.
15:09:54 * Sgeo really wants to know the argument Eliezer uses to get the human to let the AI out of the box
15:14:57 <oerjan> yeah especially how much it is a cheat...
15:15:25 <oerjan> and moreover, whether it would have worked if used by a real AI
15:15:44 <soupdragon> also he said that he thought he could do it, so he put himself to the test
15:16:05 <soupdragon> and he got it right for the first few times, but he couldn't do it for cases with much higher amounts of money
15:17:08 <oerjan> however the tests on others are much more impressive
15:18:37 -!- kar8nga has joined.
15:18:44 <oerjan> i don't understand how applying the test to _yourself_ can be done rationally, at all
15:19:01 <oerjan> especially not more than once
15:19:34 <soupdragon> testing your self it means like you think you can do something -- so try and do it, to make sure
15:19:50 <soupdragon> or did you mean specifically AI box yourself?
15:20:07 <oerjan> what else are we talking about?
15:20:17 <soupdragon> ah when I said he tested himself.. the thing he is testing is his ability to win the AI box game (against someone else)
15:20:54 -!- kar8nga has quit (Remote host closed the connection).
15:21:13 <oerjan> um then something is wrong here... i haven't heard about him ever _losing_ it, so what's this "he couldn't do it for cases with much higher amounts of money" thing?
15:21:29 <soupdragon> oh he wrote about losing it on lesswrong
15:22:29 <oerjan> this must have been after i last heard about it, i guess..
15:24:00 * oerjan doesn't read lesswrong that much
15:24:16 -!- rodgort has quit (Quit: Coyote finally caught me).
15:24:37 -!- rodgort has joined.
15:25:58 <SimonRC> I figure the argument can't be that great or he'd have convinced himself and would not be suspicious of AIs.
15:26:16 <oerjan> heh that's an issue too
15:26:50 <oerjan> soupdragon: if it's an argument that can be applied generally, then it should be possible to apply it against EY himself
15:27:11 <soupdragon> yeah but why would he not be suspicious of AIs if he knew they could convince him to let them out?
15:27:13 <oerjan> and so it should possible to convince _him_ to let the AI out
15:27:21 <soupdragon> that just seems like another reason to be scared
15:28:12 <SimonRC> no, I mean he ould have convinced himself during the first experiment
15:29:37 <soupdragon> this is frustrating I thought the one I was looking for was in the coming of age series but it's not
15:30:01 <SimonRC> AnMaster: I think the cooling behaviour is because of better airflow, though it may be a sign that your battery is charging continuously, which probably isn't good
15:30:19 <AnMaster> SimonRC, better airflow likely
15:30:36 <AnMaster> SimonRC, computer reports it isn't charing
15:30:48 <AnMaster> as in, it hasn't hit the "start charging again" level
15:31:14 <AnMaster> SimonRC, using the tp_smapi module you can set thinkpads to only start charging once you go below a certain level
15:31:55 <soupdragon> There were three more AI-Box experiments besides the ones described on the linked page, which I never got around to adding in. People started offering me thousands of dollars as stakes - "I'll pay you $5000 if you can convince me to let you out of the box." They didn't seem sincerely convinced that not even a transhuman AI could make them let it out - they were just curious - but I was tempted by the money. So, after investigating to make sure
15:31:55 <soupdragon> they could afford to lose it, I played another three AI-Box experiments. I won the first, and then lost the next two. And then I called a halt to it. I didn't like the person I turned into when I started to lose.
15:31:59 <soupdragon> http://lesswrong.com/lw/up/shut_up_and_do_the_impossible/
15:33:30 <soupdragon> he says also 'I did it the hard way' which I assumed was the case
15:33:33 <oerjan> would "the linked page", be http://yudkowsky.net/singularity/aibox, the top google hit for "AI box experiment"?
15:34:02 <oerjan> good grief, not adding that in there seems intellectually dishonest to me.
15:35:24 <oerjan> soupdragon: the top page on the internet which people reach if they _search_ for "AI box experiment" contains no mention of these "three more" experiments. i find that intellectually dishonest.
15:36:00 <soupdragon> well if you ask him why he'll probably convince you that it isn't :P
15:40:04 -!- MizardX has joined.
15:43:01 -!- MigoMipo has quit (Read error: Connection reset by peer).
15:45:05 <oerjan> i've just started reading your link
15:45:24 <soupdragon> it's you lots fault that I read this blog by the way!!
15:45:30 <soupdragon> It's not out of my own personal choice
15:46:11 <oerjan> well given that i learned about this blog here, and do _not_ read it regularly, i find that claim somewhat dubious :D
16:02:29 -!- facsimile has joined.
16:03:33 -!- soupdragon has quit (Killed (NickServ (GHOST command used by facsimile))).
16:03:36 -!- facsimile has changed nick to soupdragon.
16:16:01 -!- MigoMipo has joined.
16:28:31 <oklofok> people on youtube are so fucking stupid
16:36:33 -!- jcp has joined.
16:37:13 <SimonRC> "far queue"? http://www.theregister.co.uk/2000/05/19/bofh_discovers_voice_recognition/
17:00:09 -!- kar8nga has joined.
17:07:57 -!- SimonRC has quit (Ping timeout: 246 seconds).
17:17:22 -!- MigoMipo has quit (Ping timeout: 272 seconds).
17:17:24 -!- MizardX- has joined.
17:18:41 -!- SimonRC has joined.
17:19:46 -!- MigoMipo has joined.
17:19:52 -!- MizardX has quit (Ping timeout: 248 seconds).
17:19:53 -!- MizardX- has changed nick to MizardX.
17:30:49 <pikhq> Collection 1892 reclaimed 301312 bytes ---> heapsize = 356352 bytes
17:31:00 <pikhq> It's like the most inefficient cat program ever!
17:36:03 -!- cheater3 has joined.
17:36:56 -!- cheater2 has quit (Ping timeout: 248 seconds).
17:39:09 <olsner> pikhq: most inefficient cat program? sounds like a challenge!
17:39:29 <pikhq> olsner: Well, I could *make* it more efficient if I wanted to.
17:40:37 <Ilari> I have probably seen worse one...
17:41:01 <olsner> I suppose the challenge is to find the language that makes the least efficient most efficient cat program
17:43:08 <pikhq> With GC_DONT_GC, it uses 466 megs of RAM.
17:46:49 <Ilari> Hmm... This cat program I found looks pretty funky (I wrote it back in 2007)... Obivously uncommented, but at least variables have somewhat descriptive names...
17:47:52 -!- Asztal has joined.
17:47:56 <pikhq> Does it leak memory like a sieve?
17:48:06 <Ilari> Of course it does. :-)
17:48:25 <Ilari> And with the language, there's no choice but to leak memory like a sieve... :-)
17:48:30 <pikhq> Like, "all malloc, no free"? :P
17:49:29 <Ilari> And no gc either... :-)
17:58:15 <oerjan> what we need for real slowness is a language in which the entire input and output are each treated as a single number
17:58:30 <oerjan> and no way to modify numbers faster than decrement/increment
17:59:08 <olsner> and preferrably only in peano arithmetic
17:59:09 <oerjan> and, critically for cat, you cannot do direct copying of input number to output
17:59:22 <pikhq> oerjan: That's even crazier than the entire input and output being treated as a single function.
17:59:23 <oerjan> possibly they are in different formats
17:59:46 <olsner> input in base-pi, output in base-e
18:00:43 <olsner> I don't know how to use anything beyond simple integral bases, that would be really interesting to grok
18:01:08 <olsner> even -1/0/1 trinary/ternary is esoteric enough to be painful
18:01:20 <pikhq> olsner: It's very... Non-trivial.
18:01:48 <olsner> http://www.dwheeler.com/essays/bases.html this looks relevant
18:02:45 <oerjan> pikhq: the entire input and output a single function isn't that bad for lazy-K, precisely because of laziness
18:02:46 <Ilari> In case anyone wants to take a look at that program: http://pastebin.ca/1773280
18:03:16 <olsner> hmm, you'd need some nice encoding to map stream-of-bytes to whole numbers... the trivial base-256 interpretation doesn't work well with streams of zeroes, for instance
18:03:58 <pikhq> And given that I'm trying for a subset of Lazy K... Works just fine.
18:04:23 <pikhq> (*Trying*. It seems that something's amiss in the infinite list.)
18:04:54 <oerjan> olsner: the thing we discussed on the wiki a little while ago should work modified for this: base 256 with digit 256 instead of 0
18:05:47 <olsner> hmm, looks like I never bothered to actually do anything with input in my single-combinator language, but there're some stubs for it (was going to work just like lazy k)
18:05:56 <olsner> oerjan: i.e. base 257?
18:06:15 <oerjan> olsner: no! the multiplication is by 256 at each step
18:06:16 <pikhq> The program that generates an infinite list of As and Bs works just fine, but anything with input seems borken.
18:06:59 <oerjan> but the digits are 1-256. this allows you to distinguish strings of different length cleanly
18:07:10 <olsner> hmm, does that really work?
18:07:44 <oerjan> yes. there's even a wikipedia article
18:08:22 <oerjan> http://esoteric.voxelperfect.net/wiki/Talk:Unary, wp link at the end
18:09:37 <pikhq> Oh, sweet. It would seem to be a bug in my parser.
18:09:53 <pikhq> If I strip out all irrelevant chars, it works just fine.
18:10:43 <Ilari> (in that program thoese <U+....> stands for that codepoint (yes, Unicode abuse). :-P
18:12:27 <pikhq> And the prime number generator managed to get up to 2.5G.
18:13:05 <Sgeo> Whee, Chrome's frozen again
18:13:42 <oerjan> no wonder with these temperatures
18:14:51 <soupdragon> anyone remember about that crytographic interpreter?
18:15:07 <soupdragon> the idea was that you give it some encrypted program and it doesn't understand it, but it prints out the right answer
18:15:19 <olsner> hasn't that been proven impossible?
18:15:21 <soupdragon> i.e. you can't just look at a backtrace to see what the program was
18:15:58 <olsner> I don't know for sure, or if it's just generally considered impossible
18:16:43 <olsner> I think the interpreter needs to "understand" the program in order to run it, which basically means it isn't encrypted at all
18:17:26 <Ilari> Wow: from valgrind: "==13568== total heap usage: 2,090,158 allocs, 2,090,158 frees, 125,608,436 bytes allocated". And that's for 80 bytes to copy!
18:17:52 <oerjan> there are some algorithm encryption methods but they are limited in power
18:18:21 <Ilari> Hmm... Probably good part of that isn't permanently used...
18:18:33 <oerjan> on the other side, i recall there was some impossibility result to the effect that there had to be properties of the original program source you could detect beyond its behavior
18:19:09 <oerjan> i.e. no encryption could hide everything except the I->O mapping
18:19:58 <Ilari> CTRL+C'ing it after 80 bytes: ==13574== in use at exit: 206,768 bytes in 13,669 blocks
18:20:12 <oerjan> there still seemed to me to be a large open area between those extremes, though
18:31:10 -!- ztirf has left (?).
18:36:33 <olsner> I wonder if you can extend the non-integer base numeral systems to bijective ones like you can for integer bases
18:37:15 <olsner> this sounds bad though: "The base e is the most economical choice of radix β > 1 (Hayes 2001), where the radix economy is measured as the product of the radix and the length of the string of symbols needed to express a given range of values.", we are after all aiming for low efficiency here
18:40:44 <oerjan> the differences between bases are probably tiny when you factor in the number of bits to encode one digit.
18:41:16 <oerjan> as in, for integer bases they cancel out exactly, i should think
18:42:26 <olsner> for power-of-two bases it will be exactly the same, otherwise there will be some waste if you use an integral number of bits for each digit
18:42:42 <pikhq> "==19952== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
18:57:45 <Ilari> At least it is _slow_: For copying 1024 bytes: user time 24m20.143s...
19:00:37 <Ilari> And estimating from earlier test, it needed about 2.5MB of memory...
19:02:30 <Ilari> And total allocations being something like 15GB...
19:13:57 <SimonRC> good thing: Google chrome makes like 10 processes and splits your tabs amongst them
19:14:10 <SimonRC> bad thing: it puts 90% of the tabs into one of the processes
19:14:50 <Asztal> It groups them by site, doesn't it?
19:15:40 -!- cheater3 has quit (Read error: Connection reset by peer).
19:15:55 -!- cheater2 has joined.
19:17:28 -!- zzo38 has joined.
19:19:57 <zzo38> 'Pataprogramming.... is that like Forth in any way?
19:21:43 <SimonRC> and despite that process having 100 tabs from the same site in it, it still gets loaded with a few more
19:22:13 <Sgeo> It really makes the whole thing of "If one tab crashes or freezes, the rest are ok" a lie
19:22:23 <SimonRC> I suppose I'm lucky that I didn't open 100 tabs from each of 10 forums and have most of them end up in one Chrome process
19:22:46 <SimonRC> Sgeo: well, it's true with a few dozen open
19:22:51 <zzo38> And also in the list of ideas, it is mentioned the magic system in RPG, that using it like that. While I think that won't work well in that RPG, the Icosahedral RPG uses something that is almost similar, but not really....
19:23:32 <zzo38> Sorry, I found the log now.
19:24:43 <zzo38> Maybe if you prefer, you could reprogram Google Chrome (Chromium for the generic/open-source version) to allow you to select which tabs in which processes
19:25:29 <Sgeo> SimonRC, if you do that, give me a copy
19:37:39 -!- Asztal has quit (Read error: Connection reset by peer).
19:38:13 -!- Asztal has joined.
19:39:15 <Sgeo> No one knows what happened to ehird?
19:39:49 <zzo38> Which one is that skull?
19:41:06 * oerjan concludes that zzo38 is a headhunter picking us off one by one. poor ehird.
19:42:38 <zzo38> In reality, I don't actually know either.
19:42:52 <oerjan> well you would say that, wouldn't you.
19:43:50 * Sgeo should probably make a program to determine if ehird's been absent like this in the past.
19:44:52 <oerjan> yes he was, but not this long (2 weeks today?)
19:45:08 <oerjan> and he didn't want to explain why
19:45:25 <zzo38> Can't you just look it up the logs? Maybe you need to read each file to check using regular expressions in each file
19:45:25 <FireFly> Maybe he's starting to... get a life! *shrugs*
19:46:52 <pikhq> Ehird. Life. *Right*.
19:57:01 * pikhq wonders where the bottleneck is in his horridly inefficient code.
19:57:21 <pikhq> From the looks of things, its the fact that S and K get dethunked for everything.
19:57:31 <Sgeo> pikhq, but you got it working?
19:58:42 <pikhq> The parser is broken and I'm not sure why.
20:01:27 <pikhq> Instead of ignoring characters not in "SKI()", it... Returns.
20:03:02 <olsner> hmm, what if you read input as bijective base-256, then convert to a base-pi quaternary floating-point, accept output as a base-e trinary floating-point number, then output it again as bijective base-256
20:03:26 <olsner> obviously, nice peano stuff in the middle to prevent too much efficiency
20:04:19 <oerjan> peano stuff + floating point feels so ugly
20:04:30 <olsner> well, yeah, that's the point
20:05:48 <olsner> if you could figure out a specific number of decimals (would that be pinals/natals for base-pi/base-e?) that would represent all integers unambiguously, that would get rid of the floating-point at least
20:06:34 <oerjan> sudden intuition says that might actually be a difficult problem
20:07:13 <olsner> yes, but quickcheck doesn't immediately object to only going down to 1/pi and 1/e
20:12:44 <olsner> hmm, for the least significant digit you have (x*pi + rest), where 0 <= rest < pi, and x is some pinary number (i.e. the non-least significant digits)
20:14:21 -!- soupdragon has quit (Quit: * I'm too lame to read BitchX.doc *).
20:14:22 <olsner> then you choose a digit to minimize (rest - {0,1,2} * pi^0), and I think that remainder is at least less than 1
20:14:52 <olsner> then again, x*pi is not at all guaranteed to be an integer, so rounding on that thing does something tricky
20:15:40 <oerjan> i'd think base pi digits are 0,1,2,3
20:15:47 <olsner> maybe you could just brute-force it and keep outputing decimals until the result when converted back and rounded produces the original input
20:15:53 <olsner> oerjan: right, that's what I meant actually
20:16:01 <olsner> base-e has 0,1,2 though
20:16:38 <oerjan> might be easier to just truncate down
20:17:18 <olsner> the rounding operation could be a lot of things, really
20:19:15 <oerjan> hm, really you just start at the highest power pi^k <= n, subtract the right multiple of pi^k and iterate with the remainder
20:19:34 <olsner> it could specified as something "clever" instead of floor/ceil/trunc/round, but very creative rounding functions might require corresponding modifications in the conversion code
20:20:00 <oerjan> always leaving something < pi^k for the next step, so < 1 after k = 0
20:20:11 <olsner> right, the question is when to stop, since you're not guaranteed to ever reach zero with the remainder
20:20:42 <oerjan> but < 1 is enough if you round... up, i think
20:22:05 <olsner> hah, look at that, with ceiling, it passes quickcheck when stopping at k = 0
20:22:49 <oerjan> in fact you are guaranteed never to reach zero, as soon as you have any digit /= 0 for power > 0. because pi is transcendental.
20:24:48 <oerjan> assuming you use an exact representation.
20:25:36 <olsner> I don't, and that will cause problems for large inputs
20:26:12 <olsner> would basically need an arbitrary-precision floating point library to ensure that the conversion from arbitrary-precision integer to base-pi is correct
20:26:51 <oerjan> well given that the statest goal is to be as slow as possible... :D
20:27:42 <oerjan> also, computable reals instead of floating point, perhaps
20:28:19 <olsner> any slowness that is not required for correctness I think is cheating, but this seems to be required for correctness :D
20:28:21 <oerjan> the transcendentality should mean you never get in trouble with comparing for equality there
20:29:19 <olsner> might become one of the only languages where implementing 'cat' is subject to rounding errors :)
20:29:19 -!- MissPiggy has joined.
20:29:53 <oerjan> with floating point it might be problematic to determine what precision is necessary to avoid rounding errors
20:29:59 <olsner> 'cat' is basically implementing a base-pi to base-e conversion, by whatever means the language provides for maths
20:30:19 <Sgeo> There will be a tutorial for this language, right?
20:30:27 <Sgeo> I haven't been following the chat
20:32:52 <oerjan> so far i've been thinking of unbounded bf + weird i/o, if only because bf has the right relationship to peano arithmetic
20:32:52 <olsner> computable reals sound like it could work with something lambda calculus-like
20:32:52 <oerjan> but that is of course boring
20:32:52 <zzo38> In your opinion, in a Forth program which way is better for the CHAR command working, as in the example 0 CHAR *42 . . is it better the way gforth does it or in the other way?
20:33:25 <oerjan> hm right they may have to be implemented inside the language for doing the base-pi to base-e conversion
20:33:49 <olsner> Sgeo: we've just partially covered the I/O system so far, what the actual language will look like is completely unknown
20:34:26 <oerjan> while they also need to be used in the actual interpreter for converting between bytes and language format
20:34:27 <olsner> I've been leaning towards something LC-like, just because that makes it easy to make lists and integers hard
20:35:46 <oerjan> that has the disadvantage that it's easy to avoid using unary other than in the final encoding/decoding
20:36:41 <oerjan> well, "easy". it _is_ possible to implement binary in LC, after all
20:36:47 <olsner> right, you would like unary to be required somewhere, since the numbers will be huge
20:36:58 <FireFly> <olsner> might become one of the only languages where implementing 'cat' is subject to rounding errors :)
20:37:00 * Sgeo sees no good reason for LINQ to Entities not to support .Single() grr
20:37:01 <FireFly> What language is this about?
20:37:08 <FireFly> (and the rest of the long discussion above :P)
20:37:11 <olsner> FireFly: shh, it doesn't exist yet
20:37:18 <FireFly> But... it sounds interesting :(
20:37:43 <Sgeo> I asked in ##csharp , and they basically said I could just use .Count or make a list
20:37:43 <oerjan> FireFly: we're pondering how to make a language where cat is intrinsically horribly slow
20:37:43 <FireFly> And that is its main concept?
20:37:58 <FireFly> Well, I guess that's one way to design a language..
20:38:18 <Sgeo> FireFly, I saw them talking about base e and base pi
20:38:21 <oerjan> so, input and output are encoded using a huge number in base pi and e, respectively.
20:39:23 <olsner> the tricky part is *intrinsically*, but it's partially solved by having the interpreter translate input and output into inefficient esoteric formats
20:39:23 <FireFly> Stop having equally long nicks both starting with o :(
20:39:23 <oerjan> so cat needs to convert - but the most efficient arithmetic operations are increment/decrement
20:39:43 <Sgeo> FireFly, for me, they're differently colored nicks
20:40:01 <FireFly> I don't want my IRC window to look like a rainbow
20:40:37 <oerjan> me neither, i chose a color scheme with nicks black on white
20:41:06 <olsner> hmm, you could have de/increment-base-pi and de/increment-base-e where each function just interprets an internal number differently (i.e. you can do base-e operations on the number you received as base-pi)
20:41:22 <olsner> I wonder if that's enough to achieve anything
20:42:12 <oerjan> note that base-pi and base-e are both intrinsically _ambiguous_ representations...
20:42:12 <olsner> in that system you would not have access to the actual representations, except that it's place/value and the operations do carrying etc based on the "base" of the operation
20:42:28 <oerjan> i _really_ don't want something to be interpreted as both :D
20:43:07 * Sgeo interprets oerjan
20:43:27 <oerjan> except of course we've mostly elected to use "greedy" representations, i guess
20:43:41 * Sgeo didn't elect anything this year
20:43:51 <oerjan> (maximal most significant digits)
20:43:53 <olsner> I think, if there's a 3 digit in the base-e representation, that's just 3*e^i, and a base-e operation would do something to normalize that when it happens to touch the number
20:44:00 <Sgeo> Well, I guess I'm electing to be unproductive to this channel :/
20:44:17 <olsner> base-pi-as-base-e is the tricky case since base-pi has another digit
20:44:38 <oerjan> Sgeo: hey someone has to do the puns when i'm actually discussing
20:44:44 <olsner> of course the tricky part is proving that this is a complete set of operations
20:45:55 <olsner> and since the base is not integral, you can't just "carry" the overdigits (i.e. in base-10, a 10 could just be carried into the next digit, no such luck if the digit is 3 and the base is 2.78)
20:46:20 <FireFly> What happened to the quaternary idea?
20:46:23 * Sgeo doesn't know how non-integral bases work :(
20:46:29 <olsner> FireFly: base-pi is quaternary
20:46:43 <FireFly> I thought you meant quaternary as in quaternions
20:46:48 <FireFly> Would be much more interesting :D
20:47:38 <olsner> now that I've mostly grokked base-pi maybe base-ijk can be the next one to try
20:47:42 <Sgeo> What's the point of octal? Why specify 3 bits per digit?
20:48:01 <Sgeo> Also, how can I learn base pi?
20:48:27 <olsner> Sgeo: http://en.wikipedia.org/wiki/Non-integer_representation
20:48:38 <oerjan> Sgeo: it's the highest power-of-two base that doesn't require you to invent new digits?
20:50:36 <fizzie> Also reasonable unit sizes, such as bytes of 9 bits, or words of 36 bits, are nicely represented by a fixed number of octal digits.
20:50:42 -!- Slereah_ has quit (Ping timeout: 240 seconds).
20:50:58 <Sgeo> bytes of 9 bits?
20:51:29 <olsner> hooo, how about this though: all internal arithmetic is based on a *different* transcendental base - I'm not holding my hopes up on making that actually work, but what if you can only do arithmetic by reintrepreting those base-e/base-pi numbers as base-q, for some esoteric q
20:51:48 * pikhq attempted to execute LostKng.lazy.
20:52:04 <pikhq> It segfaults the official Lazy K interpreter.
20:52:08 -!- Slereah has joined.
20:52:17 * oerjan is only half able to follow olsner at this time
20:52:28 <fizzie> Sgeo: If your words are 36 bits, it is nice to have bytes of 9 bits so that you get an integer number of bytes in a word.
20:52:42 <Sgeo> Why are there words of 36 bits?
20:52:47 <pikhq> Stack overflow in the parser.
20:53:42 <olsner> oerjan: the input number is sum(digit[j] * pi^j), but arithmetic operations read and write as sum(digit[j] * q^j) - same digits, different meaning
20:53:54 <oerjan> Sgeo: i am usually thinking of octal as an older cousin of hexidecimal, from the time when it wasn't a given that computer address lengths should themselves be powers of 2. i'm not sure how historically accurate that is...
20:54:07 <fizzie> Sgeo: "This word length was just long enough to represent positive and negative integers to an accuracy of ten decimal digits (35 bits would have been the minimum)" is Wikipedia's unsourced rationale: http://en.wikipedia.org/wiki/36-bit_word_length
20:54:37 <pikhq> All because he doesn't make the parser tail-recursive.
20:54:44 <fizzie> And of course it's divisible by six, and there were those six-bit character encodings.
20:55:13 <olsner> you'd have to calculate an output number base-q, but the output routine reads the digits as base-e (with some kind of handling of overdigits, since q > e)
20:55:34 <oerjan> pikhq: hey getting tail recursion right is hard in lazy languages...
20:56:03 <pikhq> oerjan: The parser of the lazy language?
20:56:09 <pikhq> Which is written in a strict language?'
20:56:25 <MissPiggy> oerjan how is tail recursion a concept in a lazy langeag?
20:56:38 <pikhq> MissPiggy: You can still tail recurse.
20:56:41 <pikhq> It just doesn't mean much.
20:56:46 <MissPiggy> pikhq, well it doesn't mean anything
20:57:46 <pikhq> It's just that the strictness of things also comes into it.
20:57:51 <olsner> there, it's now a language where I have no idea whatsoever how to write a 'cat' program in it
20:59:34 * oerjan officially runs away from this language screaming
20:59:40 -!- Pthing has quit (Remote host closed the connection).
20:59:57 <oerjan> it just seems like the appropriate thing to do
21:00:40 <oerjan> i didn't say i was going to run far
21:00:52 <FireFly> Plus, you may have a laptop
21:01:08 <oerjan> indeed, technically i have. i just never move it.
21:01:34 <Sgeo> My laptop tends to move between the table next to my bed and my lap
21:02:23 -!- adam_d has joined.
21:02:31 <olsner> hmm, implementing an increment operation on non-integral-base numbers seems kind of tricky, maybe it should be up to the program to handle that then
21:04:02 <olsner> otoh, you can't let the program interpet numbers in a base that's convenient to it
21:04:42 <Sgeo> Is this an increment by one or increment by base?
21:04:49 <Sgeo> Increment by base doesn't sound tricky at all
21:04:56 <olsner> it would be by one, of course
21:05:05 <olsner> it's all integers actually
21:05:21 <oerjan> increment by base is just as tricky as increment by one, just shifted one position
21:05:49 <olsner> d'oh, yes, the first position is base^0 which is an integer
21:06:45 -!- zzo38 has quit (Quit: zzo38).
21:06:59 <pikhq> Lazy K: You too can use 1.5G of RAM to compute 2^150!
21:07:59 <fizzie> 2^150! is a rather large number, after all.
21:08:18 -!- adam_d has quit (Quit: Leaving).
21:08:53 <pikhq> 2^150, not fac(2^150).
21:10:22 <pikhq> Also, 15 seconds of 100% CPU usage.
21:11:02 <fizzie> Deewiant: Why '@'@ there?
21:11:29 <Deewiant> Because it doesn't optimize the linear form, as I've oft said
21:11:55 <fizzie> Oh, so you were *cheating*. Well, then.
21:12:45 <Deewiant> You thought I'd write something like "::**:*:*" instead of "::::****" manually? :-P
21:13:06 <fizzie> You never know, about people.
21:13:58 -!- MissPiggy has quit (Quit: MissPiggy).
21:30:37 <AnMaster> Deewiant, where is the source to that tool?
21:32:14 <Deewiant> Didn't you take a copy of it last time we talked about it?
21:32:29 -!- MissPiggy has joined.
22:06:52 -!- tombom_ has quit (Quit: Leaving).
22:30:52 -!- kar8nga has quit (Remote host closed the connection).
22:35:58 -!- MigoMipo has quit (Ping timeout: 272 seconds).
22:56:14 -!- oerjan has quit (Quit: Good night).
23:11:34 -!- madbr has joined.
23:24:14 <olsner> awesome, I caused an assertion failure in mpfr since I exceeded the maximum number of bits (actually, an integer overflow in the precision variable)
23:25:12 <pikhq> It's rather curious how little the garbage collector actually frees.
23:28:35 * Sgeo is contemplating how PSOX.NET would work
23:28:42 <Sgeo> Completely different from PSOX
23:29:27 <pikhq> It would seem that all my thunks retained values in their closure even after being allocated.
23:29:40 <pikhq> Meaning the poor, poor garbage collector couldn't collect much garbage.
23:31:27 * Sgeo collects pikhq
23:31:28 * pikhq looks for other memory leaks.
23:34:51 <pikhq> Down to 53 megabytes to compute 2^150.
23:35:06 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:35:10 <pikhq> Which is smaller by a few orders of magnitude.
23:39:41 <FireFly> Whose was that interesting language "Clue" being discussed uh.. yesterday, I think?
23:40:43 <oklofok> once i make the parser, i'll prolly put the interp up on the wiki
23:40:52 <oklofok> also once i've cleaned it up a bit
23:41:19 <oklofok> exam in 7 hours, after that i have a month of not being insanely busy, so might have the time
23:41:45 <FireFly> Well, good luck with the exam
23:42:57 <oklofok> multivariate calculus, probably my weakest spot in all the land
23:43:35 <MissPiggy> oklofok: what's difficult about it?
23:44:03 <MissPiggy> oklofok what about Solomonoff induction?
23:44:10 <oklofok> mostly the part where i actually need to integrate something :P
23:44:18 <MissPiggy> okay yeaah integration is very hard
23:45:27 <MissPiggy> can you integrate log x? :D lbh hfr vagrtengvba ol cnegf ol erjevgvat vg nf bar gvzrf ybt k
23:46:09 <MissPiggy> you know how mandelbrot set is uncomputable, but you can still approximate it to very fine accuracy
23:46:18 <MissPiggy> well Solomonoff induction is also uncomputable..
23:46:25 <oklofok> err umm. no, i don't remember
23:46:28 <MissPiggy> so you can probably compute it to very fine accuracy
23:46:56 <Sgeo> This sounds interesting. I wish I had math courses beyond high school calculus
23:47:24 <MissPiggy> I think the main thing multivariable calculus does is introduce the partial-d?
23:47:39 <MissPiggy> so you have dy/dx and partial-dy/partial-dx now
23:47:58 <MissPiggy> and then in more advanced calculus you get deltay/deltax
23:48:17 -!- FireFly has quit (Quit: Leaving).
23:50:06 <MissPiggy> do you know what I mean about solomonoff induction :(
23:51:03 <oklofok> we prove basic results on vector field potentials, and then there's the theorem about generalizing substitution for multivariate functions, the course is not actually about integrals, that's just what i'm afraid of
23:51:27 <pikhq> Well, rot13.lazy runs in constant (low) space now...
23:51:49 <pikhq> I do believe I'm at the point where any memory leaks are the fault of the executed program.
23:52:06 <oklofok> also the substitution thing is not proven. the course is sort of a mix of useful stuff for physicists and such, and of more rigorous stuff
23:52:44 <olsner> hmm, converting to and from these non-integral bases was quite slow indeed
23:53:04 <MissPiggy> my stuff is just sort of being show how to do scribbling in the way that mathematicians do
23:55:06 <MissPiggy> some guy stands at the front and copies a bunch of equations from a bit of paper, then a class of a 100 people copy down his version
23:55:32 <MissPiggy> then we go to a different room and do the same thing
23:55:40 <MissPiggy> it's pretty silly, but it kills the day
23:55:42 <oklofok> this is pretty much the only course where we don't develop the theory from scratch (apart from the actual logic)
23:56:18 <MissPiggy> it's not like I have something better to do than pretend to do mathematics
23:56:50 <MissPiggy> and kinda hard to just quit after you've spent a few years already
23:56:50 <oklofok> what sort of homework do you have, "calculate determinant of this matrix here"?
23:57:35 <MissPiggy> the last homework was copy a page of notes out but add 'y' in a few places
23:57:39 <oklofok> there's this guy from like honduras or something, always complaining about how our uni is so theoretical and boring, unlike his university, where they did more concrete stuff like solving equations.
23:57:52 <MissPiggy> (they didn't phrase it in.. quite, that way.. but that's essentially what I did)