00:16:16 <oerjan> > unwords $ map (show . ord) "...out of stack!"
00:16:18 <lambdabot> "46 46 46 111 117 116 32 111 102 32 115 116 97 99 107 33"
00:33:07 <kmc> the computer i want is available with i5 or i7 processor, and 4GB or 8GB of RAM... but you can't get the i7 with 8GB of RAM
00:33:13 <kmc> (the RAM is not upgradeable)
00:39:43 -!- derdon has quit (Remote host closed the connection).
00:41:33 <oerjan> another day, another TC proof.
00:43:00 <shachaf> kmc: What computer is that?
00:48:33 -!- DHeadshot has joined.
00:53:18 -!- DHeadshot has quit (Write error: Connection reset by peer).
00:53:48 -!- DHeadshot has joined.
00:56:51 -!- pikhq has quit (Ping timeout: 252 seconds).
00:56:57 -!- pikhq_ has joined.
00:57:56 -!- nortti has quit (Ping timeout: 248 seconds).
01:08:17 -!- itidus21 has changed nick to Jon_Frakes.
01:09:28 <oerjan> i sense a certain lack of creativity
01:12:13 <kmc> shachaf: ThinkPad X1 Carbon
01:12:46 <kmc> ThinkPad Air
01:13:03 <kmc> so i have to choose between 1 MB of L3 cache or 4 GB of RAM
01:13:46 <zzo38> Choose based on what things you are doing on your computer, which would work better for what you do
01:14:00 <zzo38> I don't know what you are using your computer for.
01:14:43 <kmc> or waiting
01:14:52 <kmc> someone should make a Haskell library called Hahahahahahaha
01:15:01 <zzo38> (Alternatively, choose by the price.)
01:16:39 <kmc> yeah, that's a good tiebreaker :)
01:17:16 <shachaf> kmc: That's an exciting-looking computer.
01:17:32 <kmc> i5/8GB is $60 more, but also it can ship next week rather than "more than 4 weeks"
01:17:37 <kmc> but maybe i don't want to buy now, anyway
01:18:22 * shachaf should probably care about resolution less than he does.
01:19:02 <kmc> shachaf: yeah, it's more exciting than the X230
01:19:06 <kmc> which is 1366x768 :/
01:19:20 <shachaf> You should wait until you can get a Haswell laptop!
01:20:34 <kmc> and hardware transactional memory!
01:20:36 <kmc> (is that in AVX2?)
01:21:06 <kmc> i don't know anything about AVX instructions
01:21:13 <kmc> i guess they are mostly SSE extended to 256 bits
01:21:34 <shachaf> Hmm, there are a lot of new instructions.
01:21:39 <shachaf> http://software.intel.com/en-us/blogs/2011/06/13/haswell-new-instruction-descriptions-now-available/
01:21:56 <kmc> they should have 16×16 binary matrix multiply!
01:22:36 <shachaf> They should have it for 8×8 first.
01:22:40 <zzo38> Some CPU instructions I would like to see are INTERCAL select, unselect (fills unset bit positions with zero), and multiplexer.
01:23:15 <kmc> the X230 is still better if you want crazy battery life by carrying around multiple batteries
01:23:49 <kmc> but the X1C can charge from 0% to 80% in 35 minutes, which is cool
01:28:17 <kmc> zzo38: multiplexer would have three inputs, and use one input to select between the other two bitwise?
01:28:45 <shachaf> x86 should have more three-operand instructions.
01:29:33 <zzo38> kmc: Actually many more inputs; it would be like the Muxcomp esolang instruction (although depending on the computer, it could differ in many ways, such as addressing modes and so on).
01:29:45 <shachaf> Well, it has three-operand addition.
01:30:20 <zzo38> Multiplication matrix would also be useful, though.
01:31:08 <shachaf> MXOR is a great instruction!
01:31:09 <kmc> i wonder what is the next cryptosystem to get added after AES
01:31:21 <zzo38> Another thing I might like to have is an instruction for triple indirect jump with post increment.
01:31:41 <kmc> i wonder if SHA-3 will be based on AES enough to use the AES round instruction
01:32:10 <kmc> i don't think any of the candidates are that closely related
01:32:56 <zzo38> The "too much CISC" computer would include Super Mario game as a single instruction.
01:34:00 <shachaf> Maybe it'd have SUPERMARIO and SUPERMARIOLAST for the last round.
01:34:16 <zzo38> Of course this is silly.
01:34:59 <zzo38> But one instruction I would actually like to have is an instruction to reconfigure the microcode at runtime so that the instruction set can be optimized for whatever it is that you are making.
01:35:14 <shachaf> One of the SHA-3 finalists is at least somewhat related to AES.
01:36:09 <kmc> er, AES is Rijndael
01:36:13 <kmc> i don't understand the question
01:36:15 <shachaf> I wonder why they have an instruction per round rather than just one instruction.
01:36:44 <shachaf> S-boxes make it very tricky to implement without being vulnerable to cache timing attacks, apparently.
01:37:04 <kmc> yeah, i have heard that
01:37:45 <shachaf> There was a "constant-time lookup" instruction proposed that would get a block of memory, make sure the whole thing was in the cache, and then do a lookup in it.
01:38:20 <kmc> http://en.wikipedia.org/wiki/SHA-2
01:40:45 <kmc> i wonder if git will have to switch away from SHA-1 soon
01:47:30 -!- DHeadshot has quit (Read error: Connection reset by peer).
02:01:22 <zzo38> An instruction per round? Are each round have any use by itself?
02:08:29 -!- kmc has quit (Quit: leaving).
02:09:06 -!- kmc has joined.
02:15:36 <kmc> $ glxgears
02:15:37 <kmc> 48647 frames in 5.0 seconds = 9729.383 FPS
02:15:43 <kmc> OVER NINE THOUSAND FPS
02:15:57 <kmc> unfortunately, the window is completely black
02:18:01 <kmc> this channel has a lot of bots
02:18:03 <kmc> maybe i should run a bot
02:18:05 <kmc> what should it do?
02:20:31 <kmc> i wonder what would be the social effects of a bot which allows anyone in the channel to anonymously send messages to the channel
02:24:30 <pikhq_> Once upon a time Egobot did.
02:26:01 <kmc> and how did that go
02:26:13 <pikhq_> Not that much happened.
02:27:57 <kmc> you could use blind signing to make it so the bot operator doesn't know who's submitting each message, only that they're in the channel (or working with someone who is)
02:28:06 <kmc> under some rather unrealistic assumptions about traffic analysis and such
02:39:11 <kmc> hah, cold boot attack in a spy show on television :)
02:39:31 -!- edwardk has joined.
02:43:41 -!- mjrosenb has joined.
02:44:32 <pikhq_> Simultaneously real *and* flashy enough to work on TV.
02:45:19 <Sgeo> Phantom_Hoover, monqy if you didn't see there's a major update
02:45:43 <kmc> hi mjrosenb :)
02:45:54 <kmc> how's it going?
02:46:11 <kmc> `welcome mjrosenb
02:46:14 <HackEgo> mjrosenb: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
02:46:27 <mjrosenb> pretty good, now living on the east coast again
02:46:49 <kmc> state college, pa?
02:47:13 <kmc> man, that's like 200 miles inland ;)
02:47:59 <mjrosenb> also trying to get my compose key to output "†"
02:48:31 <mjrosenb> does a horrible implementation of a somewhat esoteric language count? :-p
02:49:31 <oerjan> i'd say that counts as 90% of the wiki
02:51:17 -!- edwardk has quit (Quit: Computer has gone to sleep.).
02:52:18 * mjrosenb has made some half-assed attempts to polish it as an ioccc entry, but: http://www.club.cc.cmu.edu/~mjrosenb/unlam-gc.c
02:54:25 <pikhq_> Any bets on how long it'll take for the Wii U to get cracked?
02:54:47 <oerjan> mjrosenb: test out my self-interpreter http://oerjan.nvg.org/esoteric/interpreter.unl :)
02:55:37 <oerjan> oh you only do part of it
02:55:46 <pikhq_> Some people for god-knows-what-reason have them already, so the clock starts now.
02:57:15 <mjrosenb> oerjan: yeah, I have pseudo-support for them
02:57:21 <mjrosenb> but it is *completely* untested
02:57:42 <oerjan> mjrosenb: well you don't have the input functions anyhow
02:58:20 <Gregor> mjrosenb: Dang it, I was thinking of doing something with a GC for IOCCC :)
02:58:25 <mjrosenb> it should be pretty easy to add those
02:58:40 <oerjan> mjrosenb: assuming your continuations work properly, yes
02:58:45 <mjrosenb> Gregor: i'm sure your gc would look nothing like mine
03:00:45 <mjrosenb> oerjan: oh right, unfortunately, c and gc are going to interact in particularly heinous ways
03:02:49 <mjrosenb> kmc: you know how to add bindings to X's compose functionality, right?
03:04:34 <kmc> yeah i wrote a blog post about it
03:06:02 <mjrosenb> oh right, what is your blog again?
03:06:56 <kmc> http://mainisusuallyafunction.blogspot.com/
03:07:08 <kmc> http://mainisusuallyafunction.blogspot.com/2010/10/typing-mathematical-characters-in-x.html
03:10:12 <mjrosenb> kmc: do you know if there is a program that will parse .Xcompose after X has started?
03:15:53 <pikhq_> kmc: I feel I still need to applaud you for calling C++ (rightfully) an esolang.
03:18:50 -!- kmc has quit (Quit: Lost terminal).
03:19:47 -!- kmc has joined.
03:32:58 -!- DHeadshot has joined.
03:35:00 <Phantom_Hoover> otoh i have read the sufferer dialogue sooner than i otherwise would have and my life is infinitely better for it
03:36:09 <Sgeo> tswett, you too
03:36:41 <Sgeo> Major Homestuck update
03:36:49 <Sgeo> Huge walkaround
03:36:53 <Sgeo> You're welcome
03:39:55 <Phantom_Hoover> Thus far I've had to restart once, I've gotten lost twice, and I caused a minor sequence break.
03:45:09 <zzo38> Please tell me your opinion what I wrote so far about this: http://zzo38computer.cjb.net/roguevm/roguevm.tex
03:51:01 <coppro> Sgeo: I also homestuck
03:51:10 <coppro> but I saw right away on the feed
03:52:29 <pikhq_> zzo38: Thus far, seems like a reasonable spec for a VM.
03:52:59 <pikhq_> zzo38: Designed to support a rogue-like text UI, but at least slightly more flexible than that, I take it?
03:53:36 <coppro> Phantom_Hoover: karkat's is the best
03:53:40 <coppro> mainly due to one conversation
03:54:16 <coppro> Phantom_Hoover: have you had the conversation between him and latula yet?
03:54:23 <pikhq_> zzo38: It looks like you've got it set up to be relatively sane to emulate, as well; the instruction coding, though not the *simplest* to decode, is fairly reasonable.
03:54:42 <coppro> the face at the end is priceless
03:54:53 <pikhq_> (the absolute simplest would give you 16-bit addresses, so it's a single opcode to grab the address)
03:55:07 <Phantom_Hoover> (btw theoretical logreading elliott don't bitch at me for spoilers, bitch at coppro.)
03:55:19 <coppro> i put a spoiler alert in
03:55:27 <coppro> and also hussie says don't give a fuck
03:55:30 <coppro> people should homestuck first
03:55:36 <coppro> then things that may have spoilers
03:55:55 <coppro> I didn't figure out if getting hussie to run away does anything
03:56:06 <pikhq_> zzo38: Also, just out of curiosity, do you intend for code to execute out of RAM, or only out of ROM?
04:04:30 <Phantom_Hoover> I definitely recall thinking "how long can it take, Cascade is only 13 minutes2.
04:05:22 -!- Phantom_Hoover has quit (Quit: Leaving).
04:06:23 <oerjan> @tell atriq Try 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]
04:06:36 <oerjan> @tell Arc_Koen Try 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]
04:17:52 <zzo38> pikhq_: Both ROM and RAM.
04:18:12 -!- MoALTz has joined.
04:18:18 <zzo38> And, yes it is designed to support a rogue-like text UI, but at least slightly more flexible than that.
04:18:29 <zzo38> It says so in the introduction.
04:20:03 <Sgeo> @tell Phantom_Hoover It's not Flash (except for the Intro). It's HTML5
04:20:34 <zzo38> I case I did not say: The .tex and .dvi are in the same directory; I distribute both.
04:21:01 <zzo38> Also, some chapters are very short so there is empty space on the page; some artwork could be placed there as well as on the title page possibly.
04:21:02 <Sgeo> https://github.com/Gankro/Jterniabound
04:22:49 -!- oerjan has quit (Quit: Good night).
04:34:25 -!- kmc has quit (Quit: leaving).
04:43:40 <zzo38> I will write more of this file later today, probably.
04:44:09 <FreeFull> Given a lexicographic permutation, generate the next one
04:47:09 <FreeFull> So, given something like "0123" it will return "0132"
04:47:16 -!- MoALTz has quit (Ping timeout: 248 seconds).
04:48:01 <pikhq_> There's a standard algorithm for that. Is this homework?
04:48:26 <pikhq_> The following algorithm generates the next permutation lexicographically after a given permutation. It changes the given permutation in-place.
04:48:27 <FreeFull> I looked at the algorithm already
04:48:29 <pikhq_> Find the largest index k such that a[k] < a[k + 1]. If no such index exists, the permutation is the last permutation.
04:48:32 <pikhq_> Find the largest index l such that a[k] < a[l]. Since k + 1 is such an index, l is well defined and satisfies k < l.
04:48:37 <pikhq_> Reverse the sequence from a[k + 1] up to and including the final element a[n].
04:48:39 <FreeFull> I looked at the algorithm already
04:48:57 <FreeFull> Going to do it in haskell I guess
04:50:21 <FreeFull> Oh hey, pattern matching (x:y:ys) works
04:52:45 <FreeFull> Seems I'm not as comfortable with functional programming yet as I should be
04:54:06 <pikhq_> I realize this defeats the point of the exercise, but isn't there a "permutations" function in Haskell? :)
04:55:29 <FreeFull> There is but it doesn't return them in lexicographic order =P
04:56:45 <FreeFull> I guess for what I want something that returns a list of strings would be better
04:56:49 <coppro> lexicogrpahic ordering of permutations is annoying
05:06:33 <FreeFull> I wonder if a foldl here is the right idea
05:12:04 <fizzie> If you want to generate all of them, I don't think you need the slightly tricky next-permutation thing, unless you want it of course.
05:12:11 <fizzie> > let perms [] = [[]]; perms l = concatMap (\i -> map (i:) (perms $ delete i l)) l in perms "1234"
05:12:12 <lambdabot> ["1234","1243","1324","1342","1423","1432","2134","2143","2314","2341","241...
05:12:20 <fizzie> > let perms [] = [[]]; perms l = concatMap (\i -> map (i:) (perms $ delete i l)) l in perms "123"
05:12:21 <lambdabot> ["123","132","213","231","312","321"]
05:13:16 <fizzie> In other words, "all permutations with the smallest element in the first place; then those with the second-smallest in the first place; etc."
05:14:00 <fizzie> (With a sort if the input items aren't in lexicographical order, and something else than 'delete i l' if there can be duplicates.)
05:18:56 -!- kmc has joined.
05:19:09 <kmc> when will i learn my lesson
05:19:14 <kmc> that i should never upgrade X
05:38:24 <mjrosenb> kmc: you'll never need to touch X again!
05:48:16 <fizzie> "Wayland - way cool!"?
06:21:31 -!- impomatic has quit (Quit: http://RetroProgramming.com).
06:23:22 * shachaf gyres and gimbles in the Wayland.
06:23:28 <shachaf> kmc: Did you give up on irssi+mosh?
06:24:01 -!- asiekierka has joined.
06:29:53 -!- mig22 has joined.
06:33:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
06:36:22 <pikhq_> Wow. Y'know how nop on x86 is actually xchg ax, ax (xchg eax, eax in 32-bit mode)?
06:36:48 <pikhq_> x86_64 came *this close* to jacking it up: xchg eax, eax would do nothing and then clear the high 32 bits of eax.
06:36:51 <shachaf> Except it's not in 64-bit mode, right?
06:37:03 <shachaf> Yes. But it's an explicit nop.
06:37:11 <shachaf> I mean, you gotta have a nop, right?
06:37:18 <pikhq_> So they went and just said 0x90 is explicitly nop, and gave xchg eax, eax a different encoding.
06:37:31 <pikhq_> If you for some reason want to clear the high 32 bits of eax that way.
06:38:44 <shachaf> Presumably you can also mov eax, eax?
06:39:27 <fizzie> They do have some nops that really are only nops too, these days. (And IIRC both Intel and Amd optimization manuals have their own recommended "fastest" nop sequences for lengths up to 16 bytes or so.)
06:40:09 <pikhq_> In pretty much all x86 CPUs for $long_time xchg eax, eax has been hard-coded as a nop anyways.
06:40:33 <pikhq_> (so you don't have a dependency in the pipeline on eax, and it doesn't take as long to execute, etc. etc.)
06:41:29 <fizzie> From what I can recall, some of those sequences were really kinda silly if you look at the meanings; piles of prefixes that don't really matter since it's a nop, and so on.
06:44:27 -!- zzo38 has quit (Remote host closed the connection).
06:45:27 <shachaf> I just made llvm-mc segfault.
06:45:44 <shachaf> Looks like it happened because of -triple=blah
06:47:15 <shachaf> mjrosenb: Oh, you're in here already.
06:47:38 <shachaf> I guess my /msg was redundant as well as incomplete.
06:47:44 <shachaf> mjrosenb: llvm-mc is great.
06:47:58 <shachaf> echo 'mov %eax,%eax' | llvm-mc -show-encoding
06:48:19 <mjrosenb> oic, that sounds like a project I half-finished a month ago
06:48:26 <mjrosenb> which I think I told you about elsewhere
06:48:42 <shachaf> This is just an assembler.
06:48:52 <shachaf> (And disassembler, and things.)
06:49:27 -!- nooga has joined.
06:49:46 <shachaf> mjrosenb: I was "reverse-engineering" some code with some Windows debugger and it was pretty nice.
06:50:22 <shachaf> At every step it shows you all the registers and memory, whether the current jump will be taken, effects of the current instruction, etc.
06:52:08 <mjrosenb> shachaf: i'm still planning on working on it
06:52:19 <mjrosenb> i should put some sort of a license on that code
06:52:30 <shachaf> Then other people will surely contribute!
06:55:49 <shachaf> whoa, dude, QFC isn't a national supermarket chain.
07:00:11 <shachaf> Apparently it's only in some parts of the Pacific Northwest.
07:02:15 <fizzie> Quantum Fried Chicken?
07:24:36 -!- mig22_ has joined.
07:24:36 -!- mig22 has quit (Read error: Connection reset by peer).
07:24:37 -!- mig22_ has changed nick to mig22.
07:53:25 -!- Jon_Frakes has changed nick to itidus21.
08:40:49 -!- Eladith has joined.
09:11:19 <shachaf> kmc: I talked to gdb about the cryptography CTF thing and he seems unenthusiastic about doing one which is entirely about cryptography.
09:11:52 <shachaf> But he said he'd love to play one if someone else made it, hint hint.
09:14:59 -!- TeruFSX has quit (Read error: Connection reset by peer).
09:16:35 -!- TeruFSX has joined.
09:18:38 -!- AnotherTest has joined.
09:18:52 -!- Nisstyre has quit (Ping timeout: 246 seconds).
09:21:57 -!- Nisstyre has joined.
09:36:04 -!- mig22 has quit (Read error: Connection reset by peer).
09:36:26 -!- mig22 has joined.
10:24:09 -!- oklofok has joined.
10:24:53 <oklofok> it seems to be impossible to get mirc to use it
10:29:22 <oklopol> i'm sure you can tell just from that one character
10:29:41 <oklopol> you can probably extract my credit card number from it
10:31:20 <shachaf> http://en.wikipedia.org/wiki/CESU-8
10:33:07 <shachaf> Hmm -- I wonder whether *I* have that.
10:35:30 <oklofok> should i be seeing that as something other than nonsense?
10:35:59 -!- oklofok has quit.
10:36:51 -!- oklofok has joined.
10:37:02 <oklopol> 13:34:17 shachaf • `echo 㯿
10:37:16 <shachaf> Your UTF-8 is completely broken, yes.
10:37:47 <oklopol> oklopol is mirc, oklofok is kvirc
10:38:19 <oklopol> in both i'm supposedly using utf-8, but apparently it's just too hard to do right.
10:39:54 <oklofok> i'm seeing myself right, but oklopol doesn't even see itself right :D
10:40:22 <oklofok> incidentally, that's how you actually write my name
10:40:38 <oklofok> well, the last ø also has an umlaut
10:42:03 <oklofok> although really the first ø also has an underumlaut.
10:42:15 <oklofok> (pronounced exactly as you'd expect)
10:42:25 <oklofok> (double the ö but reversed)
10:53:31 -!- kinoSi has quit (Read error: Connection reset by peer).
10:53:59 -!- kinoSi has joined.
11:18:05 -!- Phantom_Hoover has joined.
11:19:03 -!- derdon has joined.
11:27:31 -!- oklo has joined.
11:28:05 -!- Arc_Koen has joined.
11:28:19 <lambdabot> Arc_Koen: You have 1 new message. '/msg lambdabot @messages' to read it.
11:29:09 -!- Arc_Koen_ has joined.
11:29:09 -!- Arc_Koen has quit (Read error: Connection reset by peer).
11:29:09 -!- Arc_Koen_ has changed nick to Arc_Koen.
11:36:11 -!- oklofok has quit (*.net *.split).
11:39:07 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
11:42:01 <fizzie> Is probably the intention.
11:42:29 <fizzie> lambdabot: Just how many symbols you have in there after your default imports?
11:42:45 <lambdabot> http://prospectheights.patch.com/articles/int-l-hs-teacher-takes-kids-ice-skating-for-first-time
11:42:47 <shachaf> @google inurl:L.hs lambdabot
11:42:49 <lambdabot> https://bitbucket.org/zeekay/lambdabot/src/0e7b40d401e7/State/L.hs
11:43:03 <shachaf> Well... Not the optimal result, but it'll do.
11:43:31 <lambdabot> "One can prepared coconut pecan frosting."
11:43:50 <shachaf> > reverse . take 8 . reverse . map head $ cake
11:51:37 <Arc_Koen> so I had an idea for a new language
11:52:06 <Arc_Koen> it draws inspiration from "spacechem"
11:53:37 <Arc_Koen> it's 2-dimensional, with befunge-like commands ><v^, and it's "mutilinear" or whatever it's called to have several independent instruction pointers working at the same time
11:54:22 <Arc_Koen> each ip (let's call them workers) can either be empty-handed, or carrying a number
11:54:39 <fizzie> Concurrent Funge-98 is a bit like that, except the IPs have full stacks instead of numbers.
11:55:01 -!- MoALTz has joined.
11:55:54 <Arc_Koen> workers can DROP the number they're carrying, or PICK up a number (but there has to be a number where they are at that moment)
11:57:06 <Arc_Koen> for every worker there is an input emplacement, in which appears a number when the worker meets the input command
11:57:27 <Arc_Koen> two numbers can never be in the same place, and a worker carrying a number can never walks over a number
11:57:40 <Arc_Koen> (so the input has to be picked up before it can produce a new number)
11:58:37 <Arc_Koen> operations can be made with adjacent numbers : for instance, if a worker walks over a '+' while carrying a number, his number is incremented by each number which is on the floor on an adjacent '+'
11:59:14 <Arc_Koen> there's also an output zone that prints numbers when they are dropped there
11:59:33 <Arc_Koen> and that's pretty much how far I've been :)
11:59:49 <fizzie> It sounds a bit finite.
12:00:32 <Arc_Koen> well, there can be as many workers as the programmer has declared
12:01:02 <Arc_Koen> each worker has his one commands - a worker's ><v^ don't affect the other workers
12:01:24 <Arc_Koen> and there are synch commands to force a worker to wait for another
12:02:58 <fizzie> Yes, but it sounds like there'd be a finite amount of storage, if you can't have more than one number in one cell (be it carried or dropped), and if numbers can't be dropped further away than what there are commands written to.
12:03:58 <fizzie> Unless the workers can write new commands to non-tracky regions, in which case it just sounds very difficult.
12:04:20 <fizzie> I did like SpaceChem quite a lot, FWIW.
12:04:30 <fizzie> Possibly due to the fungey connections.
12:04:55 <fizzie> fungot: Did you like SpaceChem? I would think you'd have a real aptitude for it.
12:04:56 <fungot> fizzie: oh tusho, i want to experiment with depends on who you're talking with scheme programmers here. my hair keeps obscuring my vision out there.
12:05:08 <Arc_Koen> I could allow carrying workers to walk over numbers as long as they don't try to pick it up, but that wouldn't really solve the problem (at least not in a usable way)
12:05:43 <fizzie> I suppose if the numbers can be arbitrarily large, that could be enough.
12:06:18 <Arc_Koen> also my problem is that one-char commands are not really appropriate
12:06:31 <Arc_Koen> so maybe each worker's playfield should be preceded by a few define
12:06:53 -!- DHeadshot has quit (Ping timeout: 246 seconds).
12:06:57 <Arc_Koen> like "define A to be the 'synch with worker x' command"
12:07:35 <Arc_Koen> also it would be way more readable if several workers could be define at the same place, like in spacechem
12:07:50 -!- DHeadshot has joined.
12:08:10 <fizzie> You could have a graphical editor for it, with the support for showing an arbitrary subset of layers.
12:08:36 <Arc_Koen> I've never programmed anything graphical though
12:08:40 <fizzie> A bit of extra work, of course.
12:14:56 -!- cuttlefish has joined.
12:15:00 -!- boily has joined.
12:16:19 <Arc_Koen> wait, did Oerjan just prove Fueue was turing-complete while I was sleeping?
12:18:17 -!- ogrom has joined.
12:22:21 <boily> sleep: the main cause of turing-completeness proving.
12:22:55 <fizzie> I must've been sleeping for that.
12:24:02 <boily> mine was briefly interrupted at 3:00am after a nightmare.
12:24:15 <boily> (last night's chinese restaurant was good, but I shouldn't have eaten that much...)
12:24:34 <fizzie> Lastlog just says "03:41 < oerjan> another day, another TC proof." with not much context.
12:24:49 <boily> ah. good to hear the proof is still good.
12:27:03 -!- Kestral has joined.
12:27:37 -!- Kestral has left.
12:36:02 -!- pikhq has joined.
12:36:05 -!- pikhq_ has quit (Ping timeout: 252 seconds).
12:57:39 -!- impomatic has joined.
13:02:32 -!- ogrom has quit (Quit: Left).
13:03:07 -!- ogrom has joined.
13:56:22 <Gregor> “According to my map of the yellow woods, this road diverges here.” “It doesn't matter which road we take: later we'll just TELL people we took the more indie one!” “Nice! I'm glad we didn't misunderstand this quote as is commonly done.”
14:01:09 -!- soundnfury has quit (Ping timeout: 252 seconds).
14:15:44 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
14:20:27 <itidus21> i looked it up, apparently the first sentence relates to a robert frost poem
14:21:23 <Gregor> Phantom_Hoover: Dinosaur Comics.
14:21:39 <Gregor> itidus21: And that's the obvious part. If that's "apparently" then you should consider, y'know, reading something. Ever.
14:22:28 <kmc> shachaf: hm? i've been using irssi+mosh for a while now
14:28:51 <itidus21> "I don't know what the fuck was going on with the scottish education board in the 1970s. Do you like whiskey? Do you hate kids? The job's yours."
14:32:52 <Gregor> Yeah, a True Scotsman wouldn't have even bothered to ask, “do you like whiskey?”
14:33:40 <kmc> shachaf: my connection was dropping because i was rebooting the machine on which i run irssi :)
14:33:53 <Phantom_Hoover> Gregor, no, a true Scotsman wouldn't spell whisky with an 'e'.
14:35:00 <Phantom_Hoover> Google says it's from Craig Ferguson, but it's also from a standup routine so the travesty is entirely the fault of whoever transcribed it.
14:35:46 <itidus21> i hand a feeling something was wrong with it
14:36:13 <Phantom_Hoover> It has an 'e' in it, as I have now told you for the third time.
14:36:28 <itidus21> this time im complaining about "i hand a feeling"
14:36:44 <itidus21> but i did sense something was wrong with it. i just couldn't place it
14:39:03 <boily> hm... strange... my bot is still alive here.
14:39:16 <cuttlefish> --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi
14:39:22 <cuttlefish> --- Query information from Duck Duck Go
14:39:30 <cuttlefish> whisky definition: a liquor distilled from fermented wort (as that obtained from rye, corn, or barley mash).
14:40:05 <cuttlefish> Whisky or whiskey is a type of distilled alcoholic beverage made from fermented grain mash.
14:40:10 -!- cuttlefish has quit (Remote host closed the connection).
14:40:54 <itidus21> ~duck no true scotsman whiskey
14:41:39 -!- cuttlefish has joined.
14:41:51 -!- boily1 has joined.
14:42:33 -!- boily1 has quit (Client Quit).
14:43:01 <itidus21> " "it's the Scotch-Irish (whiskey) in me (lie alert!--I don't drink the stuff)" I believe you. No true Scotsman would spell whisky that way! "
14:43:25 -!- cuttlefish has quit (Remote host closed the connection).
14:44:25 -!- boily has quit (Ping timeout: 252 seconds).
14:45:46 -!- boily has joined.
14:46:51 -!- cuttlefish has joined.
14:49:11 <fungot> itidus21: less fnord ,you could have a fnord sxml there, and those pointers only point to the first
15:00:04 -!- ogrom has quit (Ping timeout: 255 seconds).
15:00:57 -!- MoALTz has quit (Ping timeout: 260 seconds).
15:01:56 -!- MoALTz has joined.
15:08:28 <itidus21> old news "Fabio is rushed to a Virginia hospital after his oddly-proportioned face collides with a goose while he rode in the front of a Busch Gardens roller coaster."
15:09:46 <itidus21> "Many women wish they could have been in that goose's place on that fateful day. Many women wish they were worthy enough to die on Fabio's face."
15:13:39 -!- Eladith has quit (Ping timeout: 268 seconds).
15:21:51 -!- sirdancealot has quit (Ping timeout: 265 seconds).
15:36:33 -!- monqy has quit (Quit: hello).
16:04:35 -!- ais523 has joined.
16:09:49 -!- augur has quit (Remote host closed the connection).
16:10:16 -!- augur has joined.
16:14:37 -!- augur has quit (Ping timeout: 252 seconds).
16:19:27 -!- ais523 has quit.
16:19:48 -!- ais523 has joined.
16:20:16 <fizzie> fungot: Did you hear: you're not relevant?
16:20:17 <fungot> fizzie: what about numbers? i'm looking for.
16:22:35 -!- impomatic has quit (Quit: impomatic).
16:26:10 -!- ais523_ has joined.
16:26:30 -!- ais523 has quit (Ping timeout: 255 seconds).
16:27:54 -!- ais523_ has changed nick to ais523.
16:30:47 -!- Eladith has joined.
16:32:59 <AnotherTest> Does a language with the name 'X' already exist?
16:33:24 -!- mig22 has quit (Quit: mig22).
16:33:29 <AnotherTest> (It seems likely, but I couldn't find anything on duckduckgo/the esolangs wiki)
16:36:52 <pikhq> No, but a fairly major program does.
16:37:20 <AnotherTest> Okay, I don't like the name that much anyway
16:37:51 <AnotherTest> I would use it only as the file extension for programs
16:37:54 -!- nooga has quit (Ping timeout: 264 seconds).
16:40:31 -!- nooga has joined.
16:53:31 -!- augur has joined.
16:59:53 -!- copumpkin has joined.
17:02:46 -!- jlaire has quit (Ping timeout: 252 seconds).
17:07:10 -!- ogrom has joined.
17:09:42 -!- jlaire has joined.
17:15:01 -!- zzo38 has joined.
17:16:29 <Sgeo> @tell zzo38 Now you have a message.
17:28:17 -!- FreeFull has quit (Quit: Rebooting.).
17:33:25 -!- Guest6575 has joined.
17:34:20 <Guest6575> any one knows what is this virus behiver Shamoon
17:37:26 -!- Guest6575 has quit (Remote host closed the connection).
17:46:10 -!- derdon has quit (Remote host closed the connection).
17:47:10 -!- ais523 has quit (Ping timeout: 246 seconds).
17:50:32 <kmc> \pedantic{not a program, but a protocol and a set of specifications}
17:50:44 <kmc> notwithstanding /usr/bin/X
17:53:04 <AnotherTest> What if $X() were the name? I guess that would be fine?
17:54:24 -!- atriq has joined.
17:56:28 <lambdabot> atriq: You have 1 new message. '/msg lambdabot @messages' to read it.
17:56:35 <lambdabot> oerjan said 13h 50m 12s ago: Try 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]]
17:58:07 <zzo38> http://2a03.free.fr/?p=pub&dir=zzo38 Now with Mickey Mouse stuff!!
17:58:07 <lambdabot> zzo38: You have 1 new message. '/msg lambdabot @messages' to read it.
17:58:09 <atriq> @ask oerjan Thue-Morse sequence?
18:00:43 -!- AnotherTest has quit (Quit: Leaving.).
18:00:46 <FireFly> What language is that in oerjan's message?
18:01:01 -!- AnotherTest has joined.
18:01:04 -!- AnotherTest has quit (Client Quit).
18:02:35 <fizzie> I just got a "Segmentation fault (core dumped)" when I tried to feed it to that fueue.c.
18:03:12 <atriq> I used my Haskell one that I can't seem to compile with a working main but works in GHCi
18:03:28 <fizzie> That's not in the wiki, though.
18:04:28 <fizzie> atriq: oerjan @told him the same thing.
18:04:54 <fizzie> Though I suppose not about the segfault.
18:05:00 <atriq> Sgeo, did you see the update?
18:08:16 -!- AnotherTest has joined.
18:10:08 <atriq> The Thue-Morse sequence looks like good movie binary
18:10:19 -!- impomatic has joined.
18:12:17 <zzo38> atriq: What does that mean?
18:12:39 <atriq> If I was making a movie and wanted binary to flow down the screen
18:12:48 <atriq> To say to viewers "This chap is good at computers"
18:12:58 <atriq> The Thue-Morse sequence would be good for that
18:13:12 <kmc> in this business you're either a one or a zero, alive or dead
18:15:27 <Sgeo> "However, there are no cubes: instances of XXX."
18:15:37 <Sgeo> That's a bit too nuts for me.
18:16:38 -!- FreeFull has joined.
18:16:45 <atriq> Sgeo, I've watched the update twice. The second time was in a McDonalds, reading out some of the speech
18:17:02 <atriq> My friends don't like that I give Dave a rural Texan accent
18:26:07 -!- AnotherTest has quit (Quit: Leaving.).
18:33:16 <HackEgo> 848) <itidus21> world peace is for fascists
18:33:30 <atriq> Ooh, this looks good
18:33:41 <itidus21> i say, imagine an xkcd what-if about what would happen if there was world peace
18:34:19 <itidus21> things never turn out how they're supposed to in a what-if
18:34:44 -!- copumpkin has quit (Read error: Connection reset by peer).
18:35:41 -!- copumpkin has joined.
18:35:46 <Gregor> I wonder if there's a program that creates random but plausible-looking UIs that movie audience think look hackery.
18:37:15 <itidus21> Gregor: well theres about 1000 programs to imitate the the matrix UI :D
18:37:34 <Gregor> That's not a UI, that's junk scrolling over a screen.
18:37:47 <Gregor> UIs involve /interfacing/.
18:37:54 <atriq> The file browser in Jurassic Park was a real thing
18:38:05 <atriq> That could have been plausibly installed on the computer in question
18:38:14 <atriq> Even though it was ridiculous
18:38:38 <itidus21> the famous quote is said by the little girl
18:39:09 <itidus21> i was reading someone criticizing that line the other day
18:39:23 <Gregor> Hahah yes there's a free clone!
18:41:00 <itidus21> http://omassix.com/wp-content/uploads/2012/04/dennis_nedry_cryocan_01.jpg
18:42:58 <itidus21> i hope that guy loses weight some day
18:43:14 <itidus21> i want him to live to a ripe old age
18:51:28 <kmc> nmap is in a bunch of films
18:51:37 <kmc> including at least one porno
18:52:40 -!- Vorpal has joined.
18:53:02 <Gregor> kmc: But is it used /metaphorically/ in the porno?
18:53:16 <Gregor> “Looks like you've got some… wide open ports.”
18:53:32 <Gregor> “I'm gonna need to probe for security vulnerabilities.”
18:53:52 <Gregor> “Look, what I'm trying to say is, bend over that chair.”
18:58:15 -!- ais523 has joined.
19:04:09 <fizzie> I have an IRIX system that I vaguely recall I tried to install fsn on, but failed, because it didn't have all the necessary development things, and I didn't have the OS media.
19:05:38 <fizzie> Or maybe 5.2. Who knows.
19:07:09 <fizzie> Actually, checking the logs, it for some reason had 6.5 stuck on it. (It was one of the R4k models of Indigo.)
19:07:13 <fizzie> It was horreebly slow.
19:09:28 <ais523> happy australian mailman mailing list reminders day!
19:10:09 <fizzie> (The "Indigo without the 'go'".)
19:10:46 <atriq> It's kind of weird having one of your languages sit relatively obscure for a couple of months then is suddenly implemented and proven probably turing complete
19:11:47 <ais523> "proven probably turing complete"?
19:12:06 <atriq> oerjan has made a translation to it from a subset of Underload
19:12:23 <atriq> May not be QUITE enough to be Turing complete
19:16:25 <fizzie> ais523: It's like "almost undecidable", or "just a little bit dead".
19:17:05 <atriq> "slightly pregnant"
19:17:58 <atriq> Okay, it's enough to be Turing Complete if it works
19:26:45 -!- rodgort has quit (Ping timeout: 276 seconds).
19:32:58 <itidus21> so are operating systems a good thing?
19:35:49 <itidus21> computer programs are sure to become robust in the same way as a text, or a painting, or a sculpture
19:37:03 <itidus21> i guess in the case of a text they're not all that robust without knowledge of the language
19:37:15 <fizzie> I head that operating systems are responsible for all those wanton shootings. That batman movie shooter guy? He used an operating system before.
19:37:55 -!- ogrom has quit (Quit: Left).
19:39:26 -!- glogbackup has quit (Ping timeout: 268 seconds).
19:39:26 <itidus21> maybe in the future, the idea will be you can modify a cpu to understand any machine code
19:39:34 <ais523> atriq: that's more of a probable proof of Turing Completeness
19:39:42 <ais523> as in, you're not sure if it's a proof or not, but it probably is
19:40:11 <ais523> you can do that right now with FPGAs, it's just really inefficient
19:40:33 <ais523> and mostly pointless if you aren't reconfiguring them to be massively parallel and special-cased to the program you're trying to run on them
19:40:43 <itidus21> akin to the way that, a human can process any text in any language, by learning the new language
19:41:07 <itidus21> so such a cpu could process any program in any machine code, by learning the new machine cde
19:41:46 <ais523> what would it learn /from/, though?
19:41:55 <ais523> surely a computer would learn best from the equivalent of a dictionary
19:42:43 <ais523> and the equivalent of a dictionary is basically an implementation of each command
19:42:55 <itidus21> its probably too late at night for me
19:42:58 <ais523> which is what you provide to an interpreter (to get an emulator) or an FPGA (to get a synthesized circuit)
19:43:55 <itidus21> Phantom_Hoover: yeah but i guess that such a thing should always have limits
19:59:55 <atriq> And dear god Tumblr has exploded with Homestuck
20:03:27 <atriq> Unless you like Homestuck
20:03:29 <itidus21> from what i saw of homestuck... it probably shouldn't spread
20:04:07 <atriq> It hasn't been referenced in xkcd or SMBC
20:04:19 <itidus21> lets keep it that way, quintopia
20:05:03 <atriq> Or has arranged his keyboard into alphabetic order and missed the P for Phantom_Hoover
20:06:08 <atriq> I think he's on itidus-iness
20:06:11 -!- rodgort has joined.
20:06:38 <itidus21> i just don't think its for the greater good if the world at large discovers homestuck
20:06:39 <HackEgo> rodgort: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:07:45 <zzo38> FPGAs can be inefficient although every one is different from each other and requires special software to be able to program. My suggestion would be to use a actual CPU as well as FPGA, but open specification versions of both.
20:08:12 -!- oerjan has joined.
20:09:07 <itidus21> anxiety got the better of me tonight
20:10:55 <zzo38> Probably with certain kinds of CPU might be able to speed it up, as well as the way the memory is being connected, and with FPGA as a part of it.
20:11:12 <zzo38> And also be able to reprogram the CPU's microcode at runtime if it has any.
20:11:17 -!- jlaire has left.
20:11:59 <itidus21> maybe a better question is, is it possible to describe a natural human language in such terms as to be able to decipher it without reference to another language
20:12:19 <itidus21> these days it seems to be the case
20:13:46 <lambdabot> Arc_Koen said 8h 26m 39s ago: 48 ~!~)): [[48 [)):] [~!~)):] ~~) !][49 [~!~)):] [)):] )~]] prints an infinite loop of 0 and 1s... except it doesn't print anything until the loop is over, which never
20:13:46 <lambdabot> Arc_Koen said 8h 25m 4s ago: interestingly, infinite loops with the ocaml interpreter seem to go forever; with the C interpreter they always end up in a segfault
20:13:46 <lambdabot> atriq asked 2h 15m 37s ago: Thue-Morse sequence?
20:14:30 <atriq> Wow, it seems my Haskell interpreter would be the best if I could just get the goddamn main function working
20:14:43 <oerjan> atriq: didn't the one i pasted work? :(
20:14:45 <kmc> main isn't a function
20:14:47 <kmc> in haskell
20:15:15 <atriq> kmc, "main" is a function that makes a haskell program an executable if you define it with type IO (), I mean that one
20:15:29 <kmc> that's not a function
20:15:31 <zzo38> But (IO ()) is not a function type.
20:15:32 <kmc> it doesn't have a -> in its type
20:15:36 <zzo38> A function type is (->)
20:15:43 <oerjan> Arc_Koen: i know, it's probably because it never prints a newline, EgoBot's interpreters have the same problem (i modified my /// interpreter for it specifically to get around it)
20:15:49 <atriq> I just call everything a function
20:15:56 <kmc> that's wrong
20:16:02 <kmc> you are saying wrong things
20:16:04 <kmc> so don't do that
20:16:12 <atriq> It's just how I think and sometimes when I think things I end up saying them
20:16:16 <atriq> The "main" thingymabob
20:16:25 <kmc> or in this case "IO action"
20:16:26 <oerjan> Arc_Koen: adding fflush(stdout) before every printing _should_ fix that.
20:16:29 <kmc> yeah but it's not wrong
20:16:41 <atriq> If I could get main working
20:16:44 <oerjan> oh he doesn't seem very present
20:17:21 <zzo38> You could call all the function, IO, etc, all a "value", just because in Haskell they are a first-class value.
20:17:41 <oerjan> @tell Arc_Koen Adding fflush(stdout) before each printing may fix the trouble of the thue-morse program not printing anything, EgoBot's interpreters have the same problem (i modified my /// interpreter for it specifically to get around it)
20:18:29 <atriq> I think I know exactly what the problem is
20:18:40 <atriq> The parser doesn't handle whitespace QUITE correctly
20:18:41 <oerjan> atriq: (that's a yes to your question too)
20:19:19 <atriq> I really need that function from Prelude.Generalize
20:19:28 <atriq> But I don't want to force people to use an obscure library
20:20:21 <zzo38> Which function from Prelude.Generalize? If you do not want to force people to use that library, just copy the function. Prelude.Generalize is in the public domain.
20:20:21 <oerjan> atriq: what is wrong with my main :(
20:20:36 <fizzie> oerjan: It's mainly in Spain.
20:20:37 <atriq> Nothing, it's a problem with the parser
20:21:01 <oerjan> atriq: yeah in parsec you usually want to skip space after every token read
20:21:06 <atriq> It fails when there's whitepsace at the back
20:21:22 <oerjan> and at the very beginning
20:22:02 <oerjan> this means every new subparser can start on non-whitespace, which simplifies things
20:22:51 <atriq> And now I'm encountering the same problems as Arc_Koen
20:23:08 <atriq> Due to different default buffering stuff in GHCi and compiled programs, I presume
20:23:12 <zzo38> atriq: Tell me which function you needed from Prelude.Generalize I am interested to know which one.
20:23:30 <oerjan> atriq: hflush stdout before printing should help there too :)
20:23:59 <oerjan> @tell Arc_Koen um i mean _after_ printing, of course
20:24:41 <oerjan> i guess that setbuffering stuff might not also be used
20:24:50 <zzo38> atriq: OK. Just copy it to your program; it is public domain.
20:25:10 <atriq> zzo38, it's easier to just name it and return it later
20:25:26 <zzo38> OK then, do it that way if you prefer.
20:26:05 <oerjan> <FreeFull> There is but it doesn't return them in lexicographic order =P <-- they decided to make it work on infinite lists instead.
20:26:18 <atriq> hSetBuffering stdout NoBuffering
20:27:21 <oerjan> > permutations "abcde"
20:27:22 <lambdabot> ["abcde","bacde","cbade","bcade","cabde","acbde","dcbae","cdbae","cbdae","d...
20:28:01 <oerjan> hm is it actually lexicographical order of the reverse?
20:28:26 <oerjan> > reverse <$> permutations "edcba"
20:28:27 <lambdabot> ["abcde","abced","abedc","abecd","abdec","abdce","aedcb","aedbc","aebdc","a...
20:28:55 <atriq> > reverse $ permutations "edcba"
20:28:56 <lambdabot> ["dbeac","dbaec","dabec","adbec","debac","deabc","daebc","adebc","edbac","e...
20:29:16 <oerjan> it's a pretty new function
20:29:31 <atriq> I know where it is
20:29:37 -!- asiekierka has quit (Ping timeout: 240 seconds).
20:30:12 <fizzie> ... where perms [] _ = []; perms (t:ts) is = foldr interleave (perms ts (t:is)) (permutations is) where interleave = complicated-looking stuff.
20:31:22 <oerjan> lexicographic order of the reverse would have been more logical, i think
20:31:38 <oerjan> since it works even for infinite lists
20:32:37 <oerjan> (well with a reverse that returns a leftward infinite list)
20:32:47 <fizzie> > take 10 $ take 3 <$> permutations [1..]
20:32:48 <lambdabot> [[1,2,3],[2,1,3],[3,2,1],[2,3,1],[3,1,2],[1,3,2],[4,3,2],[3,4,2],[3,2,4],[4...
20:34:30 <fizzie> Is it just a coincidence that take 6 $ take 3 <$> permutations [1..] equals permutations [1,2,3] or not?
20:37:31 -!- augur has quit (Remote host closed the connection).
20:41:14 <oerjan> fizzie: no that's intentional, it does all permutations of the first n before even looking whether there is more in the list
20:41:37 <oerjan> > take 3 <$> permutations ("abc" ++ undefined)
20:41:39 <lambdabot> ["abc","bac","cba","bca","cab","acb"*Exception: Prelude.undefined
20:41:56 <fizzie> Yes, that sounded a'sense.
20:43:37 <oerjan> maximal laziness and all that.
20:51:42 -!- pikhq has quit (Ping timeout: 245 seconds).
20:51:46 -!- pikhq_ has joined.
20:52:16 <oerjan> atriq: btw i assume this means my thue-morse sequence worked?
20:52:31 <oerjan> then i can put it on the wiki.
20:53:52 <FreeFull> You guys still talking about permutations
20:55:29 <oerjan> no, now we're talking about fueue
20:59:43 <fizzie> Perfueuetions. Fuemutations. Permueues.
21:00:16 <oerjan> <itidus21> i say, imagine an xkcd what-if about what would happen if there was world peace <-- after the .75 c (or so) baseball and the jumping i think we can all see how that would go.
21:00:51 <fizzie> Also the half-full glass that ended up in someone's face.
21:01:22 <atriq> I'm probably the only person who wanted Haskell syntax highlighting on Tumblr
21:01:50 <oerjan> i think xkcd what-if needs better navigation soon, there isn't even a link to the first one
21:03:01 <oerjan> haskell is no tumblr land
21:05:19 -!- boily has quit (Quit: Poulet!).
21:05:43 -!- boily has joined.
21:05:43 -!- boily has quit (Client Quit).
21:05:48 -!- cuttlefish has quit (Remote host closed the connection).
21:06:02 <oerjan> <atriq> May not be QUITE enough to be Turing complete <-- i'm pretty confident of the basic principle, even if my translation might have bugs
21:06:14 <atriq> I realised that later
21:07:01 <atriq> My doubt was caused by a misremembrance of Underload
21:08:56 <oerjan> i think it would be possible to do the rest of the underload functions as well, except plain S, but they take two stack arguments and * and a would need to build something complicated so they would be much more work
21:09:54 <oerjan> ~ might be somewhere in between
21:11:29 <oerjan> hm apparently "confident of" and "confident in" are both considered correct
21:11:58 <oerjan> well by this one person anyhow :P
21:12:28 <atriq> Can't decide between the genitive and the locative.
21:12:54 <oerjan> i vaguely recall those were equal for some latin nouns
21:13:46 <atriq> Latin isn't English.
21:15:00 <oerjan> english doesn't really have locative
21:15:02 <atriq> Making English Latin is to, despite all common sense, cling to an ideal that, many centuries ago, you ascended from.
21:15:14 <atriq> It doesn't really have genitive either
21:15:32 <oerjan> no, but at least 's is descended from it
21:15:46 <atriq> That's the possessive, which is different, I think?
21:16:18 <oerjan> -s is a pretty common genitive ending in those germanic languages which still have it
21:16:51 <oerjan> (norwegian still has -s, but it's mostly used like in english so may not count)
21:17:12 <itidus21> demi, term meaning half and also eponymous name describing the ratio of her age to her partners
21:18:03 <oerjan> um you realize that ratio isn't constant right?
21:18:12 -!- soundnfury has joined.
21:18:19 <itidus21> turns out their actual ages are 49 and 34
21:19:04 -!- Vorpal has quit (Ping timeout: 252 seconds).
21:24:48 -!- Taneb has joined.
21:24:51 <fizzie> oerjan: If you round ages to years and switch every year...
21:25:03 -!- atriq has quit (Ping timeout: 276 seconds).
21:28:12 -!- Taneb has changed nick to atriq.
21:28:50 -!- augur has joined.
21:31:48 -!- atriq has quit (Quit: Goodnight).
21:39:23 <zzo38> I have added some of the instructions to RogueVM now, and fixed a few other things; tell me if you have any suggestions/comments, and if you have idea what other instructions you think should be needed.
21:45:25 <oerjan> http://www.sheldoncomics.com/archive/120831.html :P
21:51:59 <shachaf> kmc: Ah. The .ma.comcast.net and frequent disconnections misled me.
21:58:17 <kmc> it shouldn't be disconnecting anymore :)
21:58:46 <kmc> the host running irssi is my desktop in ma on comcast
22:02:43 <Arc_Koen> fizzie: if you have any idea why infinite loops end up in a segmentation fault with fueue.c, please let me know
22:02:44 <lambdabot> Arc_Koen: You have 2 new messages. '/msg lambdabot @messages' to read them.
22:02:49 <lambdabot> oerjan said 1h 45m 9s ago: Adding fflush(stdout) before each printing may fix the trouble of the thue-morse program not printing anything, EgoBot's interpreters have the same problem (i modified my /
22:02:49 <lambdabot> // interpreter for it specifically to get around it)
22:02:49 <lambdabot> oerjan said 1h 38m 50s ago: um i mean _after_ printing, of course
22:03:47 <oerjan> Arc_Koen: there is probably also some function to set stdout to unbuffered, but i don't recall what it is in C.
22:06:11 <Arc_Koen> ok, fflush(sdtout); seems good enough
22:06:13 <Arc_Koen> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110Segmentation fault
22:06:25 <Arc_Koen> though I still don't get what the segfault is here for
22:06:39 <oerjan> and it happens after several iterations...
22:06:49 -!- MoALTz has quit (Ping timeout: 268 seconds).
22:06:49 <Arc_Koen> yes, it always happen with infinite loops
22:06:58 <oerjan> but not many enough to have run out of memory
22:07:03 <Arc_Koen> the ocaml version seems quite happy to go on forever, though
22:07:19 -!- osdevcapacitor has joined.
22:07:27 <Arc_Koen> oerjan: now that I think of it, someone pointed out a few memory leaks
22:08:07 <oerjan> perhaps you are freeing too much at some point too?
22:08:26 <Arc_Koen> last time I did that gcc kept me informed
22:09:00 <Arc_Koen> if I download a thuemorse interpreter and pipe the result, will it work?$
22:09:17 <zzo38> Is it allowed in C for a void function to return f(...) if f is also a void function?
22:09:22 <Arc_Koen> (is it really an infinite loop? or does it stop at some point?
22:09:43 <oerjan> Arc_Koen: it is infinite yes
22:10:07 <oerjan> also thue-morse isn't a language, it's an infinite sequence.
22:10:30 <Arc_Koen> I got confused by the expression "the thue-morse program"
22:11:00 <Arc_Koen> ok, imagine I make a program that takes binary code as an input
22:11:19 <Arc_Koen> (or at least a sequence of 0s and 1s, cause I think binary code is something else)
22:11:40 -!- osdevcapacitor has quit (Ping timeout: 245 seconds).
22:11:42 <Arc_Koen> is there a way to have the two of them work simultaneously, via a pipe or stdin or whatever
22:14:24 <oerjan> i note many of your functions suppose q not empty. it might be an idea to put in a debug check that the supposition isn't violated.
22:15:19 <oerjan> it's the kind of thing that could easily give a segmentation fault, i think
22:17:41 <oerjan> Arc_Koen: the ):[):] loop also gives a segmentation fault?
22:19:01 <Arc_Koen> btw, how are errors signaled in C, usually?
22:19:17 <Arc_Koen> I mean, if I use "return -1" or something it's not very explicit
22:19:27 <Arc_Koen> should I make an error function that prints stuff on stderr?
22:19:53 <Arc_Koen> (for instance is there an equivalent to ocaml's exceptions?)
22:23:11 <oerjan> printing on stderr is good, i think. also exit(EXIT_FAILURE); is the portable way to do a failure exit, if i understand exit's manpage correctly.
22:25:47 <oerjan> on linux, other values are used by some programs, and anything not 0 is some kind of error.
22:25:55 <Arc_Koen> (is_empty(q) && errorfunction("empty"));
22:26:08 <Arc_Koen> ok that may not be the best way to write that
22:28:08 <oerjan> i don't think s != "" is the correct way to check for string emptyness. otoh you never _call_ matchwhat with an empty string so it doesn't matter.
22:29:23 <Arc_Koen> yesterday I tried to compare argv[1]'s content with a quote-enclosed string :-)
22:31:59 <fizzie> !*s is the idiomatical empty-string test, I'd say.
22:33:14 <Arc_Koen> I'm not sure I should take those habits
22:33:32 <fizzie> As for "tail-recursivity", no such thing in C.
22:33:54 <Arc_Koen> so how do I avoid a stack overflow or the like?
22:33:58 <fizzie> Unless you happen to get a really clever compiler, and turn enough optimization flags on.
22:34:03 <fizzie> You don't recurse infinitely.
22:34:04 <zzo38> Well yes !*s is a way to test empty string in C, and is what I use too.
22:34:34 <Arc_Koen> don't we have a nice "strempty" function or somethign?
22:34:55 <fizzie> strcmp(s, "") == 0 is a possible semantically semantical way.
22:35:00 -!- copumpkin has quit (Ping timeout: 248 seconds).
22:35:18 <fizzie> FWIW, gcc -O2 makes your fueue.c not segfault in the oerjogram, for me.
22:35:19 <zzo38> I don't think so but I prefer !*s and I think is better way.
22:35:27 <fizzie> And the non-optimized build segfault is a stack overflow issue.
22:35:49 <fizzie> (Run in gdb, ask for backtrace, get a long list.)
22:37:02 <fizzie> What sort of infinite recursion you have there, anyway? I didn't notice anything else than processFueue, with a self-call all the way in the end.
22:37:14 <oerjan> so then tail-recursiveness might be the problem
22:37:21 <fizzie> You can fix that by wrapping the entire thing inside a do { ... } while (!halts);
22:37:28 <Arc_Koen> well processFueue is recursive and oerjan's program is an infinite loop
22:37:34 <fizzie> It even calls itself with the same arguments.
22:37:41 <Arc_Koen> so processFueue won't stop calling itself until the program ends, which never happens
22:38:03 <Arc_Koen> not quite - it calls itself with the same queue, but the queue has been slightly modified
22:38:19 <fizzie> Yes, but it's been modified even if you just loop.
22:38:32 <fizzie> It's the same 'q' in both cases.
22:38:36 <oerjan> yeah just turn that into a do while
22:39:06 -!- copumpkin has joined.
22:39:09 <fizzie> You might need to do something about "Queue newq", though, if references to that are actually kept.
22:39:53 <Arc_Koen> well, I'd have to make it a Queue* instead
22:39:56 <fizzie> Where "something" might be e.g. Queue *newq and a newq = malloc(sizeof *newq) in the ( handler. But not necessarily.
22:40:08 <fizzie> It might not really be used.
22:40:34 <Arc_Koen> it's used by the fueue function '('
22:40:46 <fizzie> Yes, but since the queue elements have an actual "Queue" in them, so I suppose pushblock() makes a copy.
22:41:03 <fizzie> Instead of storing a pointer to newq itself anywhere.
22:41:20 <fizzie> I mean, it has to, it's even called-by-value by giving a newq.
22:41:54 <Arc_Koen> but Queue is a structure that basically contains a length and two pointers
22:42:04 <Arc_Koen> so these two pointers aren't modified by pushblock
22:42:07 <oerjan> if you make it nonrecursive then you don't need the halts variable, you can just do return directly
22:42:29 <fizzie> All that is in the stack (i.e. locals of processFueue) is the 'Queue' structure itself.
22:42:54 <fizzie> Though for (;;) is kind of common too.
22:43:10 <Arc_Koen> I made a #define TRUE 1 though
22:43:18 <zzo38> I happen to like for(;;)
22:43:22 <Arc_Koen> (after gcc told me he didn't know what true was)
22:43:38 <Arc_Koen> (also he told me he didn't know a function named bool :) )
22:44:07 <fizzie> What would that function even do?
22:44:20 <Arc_Koen> zzo38: in english I'd tend to read "for(;;)" as "while no condition is true"
22:44:40 <fizzie> If you #include <stdbool.h> in a C99 system, you will get a type called 'bool', and constants 'true' and 'false'.
22:44:44 <zzo38> Arc_Koen: C is not English.
22:44:51 <fizzie> (Even if you don't, '_Bool' is a type in C99.)
22:45:06 <fizzie> Not that there's any particular reason to go for C99 features if you don't already.
22:45:17 <Arc_Koen> I thought C89 was the reference
22:45:33 <fizzie> Some people even use some C11.
22:45:52 <zzo38> gcc and a few other compilers can also use GNU extensions, GNU89 and GNU99. (I prefer GNU89 for my own programs.)
22:45:56 <fizzie> C99 isn't terribly rare, though it suffers in popularity due to Microsoft's compiler not doing it.
22:45:58 <Arc_Koen> someone developed a version of C in 1911? wow, they were ahead of their time!
22:48:32 <fizzie> According to valgrind, incidentally, the program still leaks memory. About a megabyte per second when running the oerjogram.
22:49:07 <Arc_Koen> well, there's this immediate dereferencing of a function-returned pointer you mentioned
22:49:49 -!- ais523 has quit (Ping timeout: 246 seconds).
22:49:56 <Arc_Koen> also the queue is not emptied when the program halts, but I was told the OS would take care of that
22:50:07 <fizzie> Oh, that's still there? But that's fixable simply by changing copyQueue to return a Queue instead of a Queue*.
22:51:09 <fizzie> Queue copyQueue(const Queue *q) { Queue c; ...; return c; } c->block = copyQueue(...) and that should be it. Well, with some &s added in copyQueue.
22:52:06 <fizzie> I think I'll do some sleeping now. But all the reported leaked blocks were from the malloc call in copyQueue, at least.
22:53:28 <Arc_Koen> in my head it went "a Queue basically is a pointer, so using Queue* is silly" then "no, it makes a lot of sense to use Queue* in some cases" then "there's no reason why not to use Queue* everywhere"
22:54:00 <Arc_Koen> can I put a return in a void function?
22:54:12 <fizzie> As long as it's just a "return;".
22:54:15 -!- kinoSi has quit (Read error: Connection reset by peer).
22:54:44 -!- kinoSi has joined.
22:54:49 <fizzie> You could use more Queue*s sensibly if your struct Token had a Queue* instead of a Queue, but I suppose that might make it easier to accidentally share Queues.
22:55:46 <itidus21> natural language is really bad at describing a large set of elements of the same type with different values
22:56:15 <fizzie> zzo38: Oh, since you asked: "A return statement with an expression shall not appear in a function whose return type is void. A return statement without an expression shall only appear in a function whose return type is void."
22:56:30 -!- nortti has joined.
22:57:09 <itidus21> such as a 10 by 10 grid of random colours from {red, green, blue, violet, orange}
22:57:47 <zzo38> That is why we have mathematics and computer files
22:58:37 -!- nooga has quit (Ping timeout: 268 seconds).
23:04:03 <Arc_Koen> is it? they told me it was because wells were not hexagons
23:08:03 <Arc_Koen> (now to write a book where wells are hexagons and mathematics don't exist)
23:08:33 * quintopia packs up to move to Arc_Koen's Well of Souls
23:09:48 <zzo38> RogueVM now includes a complicated instruction 0x11 which can be used inside of a string.
23:10:22 <oerjan> i should point out that my thue-morse program _does_ cause the queue to grow indefinitely, as every printed digit other than the first is accompanied by appending blocks for two later digits.
23:10:45 <oerjan> but i assume valgrind doesn't count that as leakage
23:11:34 <oerjan> fizzie: in case you're still here ^
23:11:34 <Arc_Koen> oerjan: I tried your program with fueue.c; as it didn't work I tried it with fueue.ml; as it didn't work I tried it with fueue.c using --print
23:11:55 <oerjan> well it worked for atriq
23:12:08 <Arc_Koen> it was just the fflush problem
23:12:26 <Arc_Koen> is atriq's interpreter working?
23:13:04 <Arc_Koen> (using --print the huge queue was all over the place)
23:14:02 <Arc_Koen> fizzie: yeah, I'm convinced I don't need to do anything about newq
23:15:03 <oerjan> Arc_Koen: i think so, he also had a buffering problem but fixed it with hSetBuffering instead of hFlush
23:17:21 <oerjan> hypothesis: a ftack program can only run something like m*n steps before either halting, catting, or endlessly copying :'s; where m is the maximal number in the program and n is the program length.
23:19:39 -!- Sanqui has joined.
23:21:12 <zzo38> Now you have to prove it.
23:24:11 <oerjan> well it's basically (1) because all arithmetic results get immediately printed, a $ can never use higher numbers than those in the original program (2) every function other than : and $ shorten the program (3) everything you can copy other than : either goes into the three end states immediately or removes itself one copy per step
23:25:12 <oerjan> actually no, program, ) only shortens if you consider the length of the block contents
23:25:47 <Arc_Koen> what if I produce a counter example
23:25:52 -!- pikhq_ has quit (Ping timeout: 245 seconds).
23:25:54 -!- pikhq has joined.
23:26:15 <oerjan> * shorten the queue or goes into an end state
23:27:00 <oerjan> because ( lengthens but gives a block on top
23:27:02 <Arc_Koen> )[)[)[)[)[)[)[)[)[)[)[)[)[)[)[0H]]]]]]]]]]]]]]]
23:27:27 <Arc_Koen> as many steps as ')' (plus the 0 and H)
23:27:34 <Arc_Koen> yet m is 0, so m*n is 0 as well
23:28:11 <oerjan> that's why i said "something like", i expect there might need to be a small added constant.
23:28:52 <Arc_Koen> ( and < both produce immediate cat
23:29:23 <Arc_Koen> because they are either lacking an argument (-> immediate cat) or they have correct arguments and produce a block (-> immediate cat)
23:29:45 <oerjan> quintopia: i _think_ that's unnecessary.
23:30:19 <quintopia> oerjan: can Arc_Koen's example be extended indefinitely?
23:30:41 <oerjan> quintopia: well sure. although it's the 0 that's the point, not the rest.
23:31:05 <oerjan> so (m+1)*n, or possibly (m+C)*n, is my guess
23:31:14 <quintopia> yeah i was gonna suggest the first
23:31:52 <Arc_Koen> I'm starting to think it's dangerous to make jokes in front of religious or computerish people
23:32:36 <quintopia> it may have been posted here before ...
23:32:42 <Arc_Koen> oerjan: the point is that )[x] has always exactly one more step than x
23:32:51 <Arc_Koen> I included the 0 to be sure what m was
23:33:08 <Arc_Koen> quintopia: does your joke involve a duck?
23:33:36 -!- Nisstyre has quit (Read error: Connection reset by peer).
23:34:15 <quintopia> it's a proof that the cube root of 2 is irrational. :P
23:34:58 <Arc_Koen> (wait, was that not the joke?)
23:35:38 <Arc_Koen> fizzie: even with copyQueue fixed and processFueue a while loop, I still get a segfault on oerjan's thuemorse program
23:35:43 <quintopia> okay, here it goes: If it were rational, then we could express it as a fraction p/q, p,q integers
23:36:08 -!- nortti has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )).
23:36:38 <quintopia> which contradicts the fermat-wile theorem
23:36:43 <quintopia> thus, cube root of 2 is irrational
23:36:57 <oerjan> Arc_Koen: i don't think fizzie is listening at the moment
23:37:00 * oerjan swats quintopia -----###
23:37:17 <Sgeo> q=1 p=1 doesn't violate Fermat
23:37:34 <Sgeo> ...I can't add
23:37:45 <Sgeo> Apparently 1+1=1 in my world.
23:37:46 * Arc_Koen realizes he has a lot of friend whom it would make laugh
23:37:49 <zzo38> O, yes, it is the Fermat's Last Theorem.
23:37:59 <oerjan> quintopia: well i couldn't let a prepared swatter go wasted
23:38:01 <Arc_Koen> I had the same thought as you Sgeo
23:38:31 <Arc_Koen> (though I didn't go so far as to realize how wrong I was)
23:39:04 <Sgeo> If p and q are not necessarily integers, p=cuberoot(2)
23:39:22 <Sgeo> 1^3 + 1^3 = cuberoot(2)^3
23:39:26 <oerjan> Sgeo can't read either.
23:39:28 <Sgeo> That doesn't violate Fermet
23:39:46 <Sgeo> Does Fermat specify that the numbers need to be integers?
23:39:55 <zzo38> Yes that doesn't because Fermat's Theorem is for natural numbers only
23:40:18 <oerjan> also quintopia specified that p and q were integers.
23:40:38 <Sgeo> oerjan, I was ignoring that because I was curious about non-integers and Fermat's Theorem
23:41:04 <Arc_Koen> Sgeo: for any number a and non-negative number n, a^n + a^n = (nthroot(2)a)^n
23:41:06 <quintopia> Arc_Koen: you're right. you can't tell jokes to some people.
23:41:29 <Arc_Koen> yes that was pretty conclusive I think
23:42:12 <Arc_Koen> (that won't stop me from trying to prove oerjan's hypothesis about Ftack, though)
23:51:23 <oerjan> because : doesn't need any number
23:52:07 <Arc_Koen> oerjan: but as I said, )[x] takes one more than x
23:52:23 <Arc_Koen> so i'm pretty sure we have to use O(...) in your hypothesis
23:52:46 <oerjan> um i never said it couldn't be _less_ than (m+C)*n
23:53:11 <oerjan> well i didn't mean to, anyway
23:53:46 <Arc_Koen> yes, but what if we find something similar to )[x] but that adds more than the size it adds
23:53:59 <Arc_Koen> (I'm not sure how much '[' is considered to add)
23:55:14 <oerjan> i don't think it's very important how much you count [ and ] as
23:55:34 * Arc_Koen tries to get explain his point clearly, succeeds, but doesn't because he realizes it doesn't make sense
23:55:47 <oerjan> the only thing that adds them is (, which causes immediate catting
23:56:04 <Arc_Koen> yes but you can have them in the initial program
23:56:43 <oerjan> well yes. i think i'm sort of thinking of counting lexical tokens.
23:56:53 <oerjan> so [ and ] are one each
23:56:54 <Arc_Koen> also, !! adds with a ratio of 1
23:57:08 <Arc_Koen> )[x] adds with a ratio of one third then
23:57:30 <oerjan> Arc_Koen: er what the heck are you thinking, !! removes two elements
23:57:56 <Arc_Koen> before one of the three ending conditions is met
23:58:13 <oerjan> ...you don't need to consider things that remove _more_ than one token per step
23:58:49 <oerjan> + removes three elements, anyway
23:59:22 <Arc_Koen> but it still proves that C must be more than 0.5