00:29:33 -!- AndrewNP has joined.
01:10:46 -!- GregorR-W has quit ("Weekend!").
01:15:30 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:53:38 -!- kipple has quit (Read error: 110 (Connection timed out)).
02:12:58 -!- Eidolos has joined.
02:55:11 -!- bsmntbombdood has joined.
03:01:54 -!- bsmntbombdood has quit (Client Quit).
03:08:11 -!- bsmntbombdood has joined.
03:15:24 -!- GregorR has changed nick to putch.
03:17:59 <putch> Joke on another channel
03:18:43 <putch> Same channel even :-P
03:18:51 -!- putch has changed nick to GregorR.
03:30:57 -!- thematrixeatsyou has joined.
03:31:40 <ihope> !bf +++++++++[>++++++++<-].+.
03:32:47 -!- EgoBot has joined.
03:35:22 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
03:35:24 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain rail rhotor sadol sceql trigger udage01 unlambda whirl
03:35:50 <GregorR> Shows the currently running processes.
03:36:27 <GregorR> Of course it does, I wrote FYB :-P
03:37:01 <thematrixeatsyou> [+][%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% etc]:insert code here;*
03:37:37 <GregorR> WTF, since when does anybody use FYB >_<
03:37:49 <thematrixeatsyou> sadly the fyb interpreter tends to be rather crashy under windows
03:38:09 <ihope> It doesn't have quantum brainfuck? Pah...
03:39:14 <GregorR> Yeah, mine isn't actually very much like core wars :-P
03:39:20 <GregorR> But I think it works better given BF as a base.
03:39:32 <GregorR> I started wanting to go with very corewars-like, but discovered it just didn't work...
03:40:12 <thematrixeatsyou> i should actually build my own FYB interpreter, is that OK with you?
03:41:08 <GregorR> I think EgoBot may be flooded off in a sec.
03:41:26 <EgoBot> 1 thematrixeatsyou: ps
03:41:33 <GregorR> Oh, never mind, it just showed the first one.
03:41:38 <GregorR> I thought it was going to show all of them :-P
03:41:48 <EgoBot> Reporting score for logicex-2.
03:41:58 <ihope> So who's going to write a quantum brainfuck interpreter in brainfuck so I can daemonify it?
03:41:58 <EgoBot> Reporting score for logicex.
03:42:14 <GregorR> (/me can't remember his own FYB scripts' names >_<)
03:42:27 <GregorR> ihope: OR you could just point me to the proper one and I could add it.
03:42:30 <EgoBot> Reporting score for nothing-0.
03:42:40 <ihope> Well, lament is supposedly writing one.
03:43:32 <thematrixeatsyou> one thing that you wouldn't know: i have made two esoteric programming languages and i'm actually 15.
03:44:04 <ihope> Oh, by the way, is it okay if your CPU and RAM both burn to a crisp from trying to interpret QBF?
03:44:09 <GregorR> Yeah, there's a life acheivement to be proud of ;)
03:44:19 <GregorR> ihope: I have resource limitations on :p
03:44:44 <ihope> Ah. I'll expect most QBF programs to fail, then...
03:45:35 <GregorR> !bf_txtgen Resource limitations sort of suck >_>
03:45:38 <EgoBot> sablevm: cannot create vm
03:45:53 <ihope> thematrixeatsyou: hmm?
03:46:50 <ihope> What do you mean by "flash to the qubits"?
03:47:01 -!- thematrixeatsyou has quit ("nvm ihope. Cya!").
04:26:32 -!- ihope has quit (Connection timed out).
04:55:54 -!- Sgeo has quit ("Ex-Chat").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:15:45 -!- Arrogant has joined.
08:43:08 -!- AndrewNP has quit.
09:33:33 -!- Arrogant has quit ("Leaving").
10:21:26 -!- jix has joined.
10:52:20 -!- bsmntbombdood has quit ("all your basment are belong to bsmntbombdood").
11:01:27 -!- kipple has joined.
11:33:34 -!- tgwizard has joined.
15:27:57 -!- ihope has joined.
16:28:19 -!- Keymaker has joined.
17:41:06 -!- AndrewNP has joined.
17:59:56 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
18:27:25 -!- calamari has joined.
18:29:54 <AndrewNP> We have a couple guys around here trying to work with quantum computer simulators.
18:35:13 <AndrewNP> I trust you saw the Quantum BF article on the wiki?
18:38:52 <AndrewNP> Not sure how well it would work in practice, if it were implemented on a real QC. The "swap" operator, for example...
18:39:15 <AndrewNP> You'd probably have to implement the tape as an array of *pointers* to qubits.
18:40:28 <AndrewNP> Since, or at least as I understand it, the qubits are pretty well fixed within the register.
18:40:43 <Keymaker> i can't really say anything as i understand it not at all :) (quantum physics)
18:41:43 <AndrewNP> Honestly, there's not that much to learn. Most of the quantum stuff can be abstracted away into (admittedly nasty) math.
18:42:05 <AndrewNP> Would you like me to write up a QC tutorial for you? ^^
18:42:30 <Keymaker> well, go ahead if you can write an understandable one, i'm not that great at maths :p
18:43:15 <AndrewNP> Well, you'll need to understand matrices, complex numbers, and an average stats class.
18:43:34 <AndrewNP> I'll try to make it simple. And explain any probability stuff you need to know.
18:44:40 <AndrewNP> Should I put it on the wiki, or just make it a regular file to send to y'all?
18:46:03 <Keymaker> easiest way would be to upload it somewhere once done, so no need to send e-mails. in case you have some page
18:50:06 <lament> i already implemented the tape as an array of pointers to qubits
18:50:30 <lament> it is the only sensible solution
18:50:35 <lament> however i'm still not sure what to do with IO
18:52:47 <AndrewNP> As for IO... ihope really needs to explain that better.
18:53:19 <lament> it's explained quite fully in the spec
18:53:34 <lament> (and what he told me here about output)
18:53:42 <lament> i'm just not sure if it's a good way of doing it
18:54:04 <AndrewNP> Hm. I think I saw that log. But... is there a spec outside the wiki page?
18:54:12 <AndrewNP> 'Cause there's no link to it. :-/
18:54:58 <lament> for input, you take a bit and put it in the qubit.
18:55:24 <lament> for output, you ignore everything ihope wrote there, observe the qubit and output it :)
18:56:03 <AndrewNP> So... there's no way to do qubit IO between quantum tapes.
18:56:26 <lament> if you do want to do that, then you don't observe it, and do what ihope said.
18:56:39 <lament> but that's not a concern for my implementation.
18:59:00 <AndrewNP> Now, doing it ihope's way, wouldn't that entangle the input and output tapes?
18:59:11 <lament> it would create an entangled copy of the qubit
18:59:21 <lament> once you observe one, both collapse
18:59:48 <AndrewNP> Not ideal, but the only way it's physically possible, I suppose.
19:00:06 * AndrewNP kicks the "no-cloning" theorem. ;)
19:00:36 <lament> i'm sorry! the universe is not weird enough! :)
19:01:21 <AndrewNP> No, I think it's plenty weird. On the plus side, that would allow multiple registers to be entangled.
19:01:30 <AndrewNP> Which you'd have to do if you want really big operations like breaking RSA.
19:02:32 <lament> AndrewNP: in practice, i don't think you can do stuff between registers
19:02:50 <lament> AndrewNP: if you could, that would just mean you have one big register.
19:03:13 <lament> i.e. in practice you probably wouldn't be able to set up this c-not gate
19:04:58 <AndrewNP> Probably. The output qubit would collapse before it could get anywhere, at which point it's no different than classical IO.
19:05:42 <AndrewNP> (since it would collapse the control qubit too... right?)
19:08:18 <lament> you know what would be really silly
19:08:39 <lament> qubits are annoying to deal with since bits are a shitty basic data type
19:08:46 <lament> so instead, why don't we use... QUBYTES!!!!!!
19:09:13 <lament> simulating that would be a joy
19:09:21 <lament> 256^n states for n qubytes
19:10:19 <lament> it should still be doable for about 3 qubytes
19:11:07 <lament> at the very least, we could use 10-state objects
19:11:14 <lament> so we can encode any digit with one object
19:11:51 <lament> then we could have 7-8 of those
19:12:00 <lament> and still have the program complete in reasonable time
19:12:41 <lament> of course all "standard" gates would not be applicable
19:13:06 <lament> you would need 10 standard gates.
19:15:23 <lament> however they could be really cool gates
19:15:43 <lament> ie gates that are also mathematical operations mod 10
19:16:37 <lament> you could have a gate that adds two numbers mod 10, for example
19:17:52 <AndrewNP> Cool. But I'm not sure how well it would work: most physical measurements are as binary as classical computing.
19:18:32 <lament> "most" sure, but there're certainly systems with more states
19:19:01 <lament> besides we're not trying to make a "real" quantum programming language (those already exist), we want an esoteric one
19:23:52 -!- ihope has quit (Connection timed out).
20:12:17 -!- marinus has joined.
20:12:29 -!- marinus has quit (SendQ exceeded).
20:12:30 -!- marinus has joined.
20:12:38 -!- nooga has joined.
20:13:58 <marinus> Does anybody have a reasonably speedy way to simulate an array in Glass (to be used as a tape for a Brainfuck implementation)? I'm using a string now, but this slows it down to the point where 99 bottles of beer takes 20 minutes to run.
20:16:36 <marinus> did it eat my question or do you just think I should figure it out myself?
20:17:28 <AndrewNP> Well, I for one don't know Glass, so I can't help ye.
20:24:32 <lindi-> what program is that? url?
20:24:45 <marinus> http://www.esolangs.org/wiki/Glass
20:25:09 <marinus> There's probably more, but I can't seem to find it
20:25:18 <lindi-> hmm, you just need a fast interpreter
20:26:00 <marinus> The reason that it's going slow is thatI'
20:26:24 <marinus> i've implemented the array as a string, so I have to convert all numbers to characters and back every time
20:26:29 <marinus> there must be a faster method
20:26:37 <marinus> or at least, i hope there is
20:29:03 <AndrewNP> Odds are, if Glass doesn't have native arrays or custom datatypes, you won't be able to make a fast Turing tape. Sorry.
20:29:04 <lindi-> marinus: string in what language?
20:30:19 <GregorR> marinus: There already is a BF implementation in Glass, which does use an array implementation :)
20:30:24 <GregorR> I'll give you a copy, just a sec.
20:30:33 <GregorR> And no, there isn't a faster method :P
20:31:06 <GregorR> I used an LLL (it's REALLY bad :) )
20:31:15 <GregorR> Also, since when is anybody using any of my languages? XD
20:31:43 <AndrewNP> Actually... hang on. This thing lets you define classes, right?
20:32:08 <marinus> by the way, why doesn't M.c__ run?
20:32:24 <GregorR> Hmmm, because I didn't think of that contingency :)
20:32:32 <AndrewNP> Couldn't you create two linked lists to simulate a two-stack structure for the tape?
20:32:47 <GregorR> I think a doubly linked list with a pointer to the current member would be the best.
20:33:02 <marinus> gregorR: where is that copy?
20:33:03 <GregorR> marinus: Have an email addy I can send bf.glass to?
20:33:22 <marinus> but don't sell it to the spammers :)
20:34:06 <GregorR> I should've said 'PM it', this channel is logged 8-X
20:34:33 <marinus> doesn't matter, I get +- 30 spam mails every day anyway
20:35:21 <GregorR> !glass {M[m(_b)(BF)!>">+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+."(_b)(bf).?]}
20:36:05 -!- nooga has quit.
20:37:09 <marinus> it seems to me a way to run arbitrary code on the computer it's running on...
20:37:42 <AndrewNP> Cool. And it's just !help to get the commands, right?
20:39:09 <GregorR> I can add any interpreter in a sane language.
20:39:10 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
20:39:12 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain rail rhotor sadol sceql trigger udage01 unlambda whirl
20:39:43 <AndrewNP> Er, wait, can it do help for each command?
20:39:47 <GregorR> You need a program there :P
20:39:52 <GregorR> Yeah, but it's not very useful.
20:39:56 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
20:39:58 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
20:40:28 <EgoBot> Parser error: Unbound variable: x
20:40:53 <GregorR> (And it's OSS at http://esoteric.voxelperfect.net/files/egobot/ )
20:40:54 -!- iano has joined.
20:41:16 <GregorR> I know it's summer because I don't recognize half the people on #esoteric XD
20:41:20 <iano> Hi all. Everyone here know about the ICFP contest?
20:41:33 <GregorR> iano: Just barely heard of it.
20:41:43 <iano> It contains several esolang puzzles in it this year!
20:42:38 <iano> starting with the VM for the UMIX os, and also a roman-numeral version of BASIC...
20:42:51 <iano> and a 2-D functional language :)
20:43:21 <iano> anyone want to try their hand at solving some puzzles in a 2-D language?
20:44:53 <Keymaker> d'oh. haven't heard about that contest :(
20:45:18 <Keymaker> well, what kind of puzzles? i'm not that good at any
20:48:32 <Keymaker> lament: why doesn't this python program work?!
20:49:20 <marinus> you have an array of size 0.
20:49:24 <iano> for the 2-D language, given a sample that does addition, come up with multiply, reverse a list, and... a ray tracer :O
20:50:09 <Keymaker> and how do i get it to be initially 20000-sized and all values 0?
20:50:32 <marinus> memory = [0,0,0,0 .... 0,0,0,0] :-)
20:50:43 <lament> Keymaker: memory = [0] * 20000
20:50:56 -!- iano has quit.
20:54:18 <Keymaker> or is there even a way to check if some string consist only of digits?
20:57:32 <marinus> Why not use a regex? re.compile("^[0-9]+$").match(your string here)
20:58:07 <Keymaker> probably because i don't have any idea what it is :p
20:58:50 <marinus> see http://www.regular-expressions.info/ :)
21:02:22 <lament> >>> filter(lambda x: x.isdigit() and x or '', "hello123world")
21:02:58 <lament> >>> [x for x in 'foo567bar' if x.isdigit()]
21:04:35 <Keymaker> thanks, but what i need is just something that'd check if "test2" consist only of digits (nope), and if "332" (yes). i can't understand why i can't get that isdigit thing working, i've seen it everywhere
21:07:19 <marinus> "123".isdigit() does not work on your system?
21:08:04 <Keymaker> seems the problem is in my program
21:08:22 <Keymaker> i was sure i had tried it outside my program though :\ maybe i hadn't
21:08:43 <Keymaker> it seems to complaing about this line
21:08:43 <Keymaker> if program[pointer].isdigit() == True:
21:09:48 <lament> how is it complaining?
21:09:51 -!- iano has joined.
21:10:46 <Keymaker> AttributeError: 'int' object has no attribute 'isdigit'
21:12:06 <marinus> All integers only consist of digits, so why try checking?
21:12:35 <Keymaker> :P hmm. i don't ever convert the data i'm reading to integers
21:12:52 <Keymaker> unless python does that without asking they all should be strings
21:13:10 <Keymaker> and the input can be other than integers too
21:13:27 <lament> mixing data types is Bad
21:13:47 <marinus> you do know that the input() function gives ints when only numbers are inputted, right?
21:14:11 <Keymaker> nope, but i'm using f.readline()
21:14:23 <lament> f.readline() always returns a string
21:14:34 <lament> so your input will always be a string
21:15:07 <lament> but you're trying to use strings and integers at the same time, and that's a bad idea
21:16:21 <Keymaker> well, i don't care about interpreter design
21:16:24 <lament> since every time you would have to check if it's a string or an integer
21:16:26 <lament> not interpreter design
21:16:58 <Keymaker> so, i guess it's impossible to get this kind of thing working
21:17:15 <marinus> no, not if you only put strings in the array
21:17:26 <lament> Keymaker: what are you trying to do?
21:17:35 <Keymaker> marinus: as far as i know i'm doing only so
21:17:42 <Keymaker> lament: an interpreter for my new esolang
21:17:59 <lament> Keymaker: you're not "only putting strings" there because it's initialized to a bunch of 0s
21:18:17 <Keymaker> that might well be the problem :P
21:18:28 <Keymaker> how to get this "program = [0] * 5000" to strings?
21:18:45 <lament> substitute 0 with whatever string you want memory cells to be initialized to
21:19:36 <marinus> but why not initialize it to [] and append() the input lines?
21:20:00 <lament> why not start by learning Python?
21:23:01 <Keymaker> now it works without errors (but not yet without bugs)
21:23:20 <marinus> which language is it you're implementing, by the way?
21:24:01 <Keymaker> yes, yes, my naming gets gradually worse.. :p
21:24:19 <marinus> It sounds esoteric to me...
21:24:50 <marinus> Then again, I don't speak Finnish (or whatever that is)
21:25:04 <fizzie> It doesn't really sound very Finnish to me.
21:25:05 <Keymaker> it means nothing as far as i know
21:25:38 <Keymaker> it's abbrevation that i tried to make sound somewhat nice
21:32:56 <Keymaker> how do i print only string of ascii characters, and only a new-line?
21:34:27 <Keymaker> like, i would like to print "hello" without a new-line attached to it
21:35:10 <Keymaker> (and they said this language was easy..)
21:37:20 <marinus> compared to most of what you find on esolangs.org it is :)
21:38:44 <marinus> but each programming language is good at different things (even the esoteric ones, which are good at being hard)
21:42:18 <Keymaker> this looks fine except infinite loop goes through just once, and program doesn't report error where it should
21:43:39 <marinus> then you're probably almost there
21:43:49 <marinus> but I wouldn't report any errors, too user-friendly
21:45:34 <Keymaker> ah, now the error reporting works -- seems i hadn't any error in the file i tested it with..
21:45:51 <Keymaker> well, luckily errors are easy to add
21:46:34 <marinus> even if you don't want to...
21:50:39 <Keymaker> how do i terminate the program with error message?
21:51:18 <Keymaker> or, how do i terminate the program and display an error message
21:52:06 <marinus> gee, never done that in Python yet... why not raise an error?
21:52:28 <marinus> Traceback (most recent call last):
21:52:28 <marinus> File "<stdin>", line 1, in ?
21:54:21 <marinus> you can also do sys.exit() to quit
21:54:31 <marinus> you have to import sys first.
21:54:47 <lament> Keymaker: raise SystemExit
21:55:16 <Keymaker> and what about displaying the error message?
21:55:58 <lament> or sys.stderr.write(message)
21:57:33 -!- bsmntbombdood has joined.
22:30:40 -!- pikhq has joined.
22:43:49 <Keymaker> i just can't see why this doesn't loop
22:44:15 <Keymaker> this interpreter, when running an infinite loop
22:44:54 <marinus> nobody here can see either until you show the offending part of the source :)
22:45:12 <Keymaker> it just goes through the code, the variables seem to have correct values (i print to see), but still doesn't work grrrh
22:47:35 <marinus> how exactly are you jumping back?
22:48:41 <Keymaker> it's difficult to explain without explaining the language itself
22:48:53 <Keymaker> but in python it's just a loop
22:51:09 <Keymaker> pointer is the instruction pointer and length the length of the program (which is measured earlier and seems to be correct when i printed it)
22:52:03 <marinus> but what do you do to interpret your language's looping construct?
22:52:46 <Keymaker> i don't want to explain the language yet
22:53:22 <Keymaker> i guess i'll get to bed, it's no use doing anything
22:53:45 -!- Keymaker has left (?).
23:18:31 * pikhq is currently rewriting his Brainfuck compiler using pure brainfuck. . .
23:18:38 <pikhq> Damn, is it painful.
23:21:31 <pikhq> Compiles Brainfuck to C.
23:22:29 <calamari> no.. bf to c isn't painful.. c to bf is painful :)
23:22:44 <pikhq> Which someone in here has done. ;)
23:22:45 <calamari> actually most anything to bf :)
23:22:56 <calamari> yeah, and I've done basic to bf :)
23:23:15 <pikhq> Doing it in Brainfuck makes it fairly painful. ;)
23:23:31 <calamari> hmm, seems like it shouldn't be too bad
23:24:01 <lament> it's pretty easy if you do it right
23:29:01 <pikhq> Actually, now that I've stopped trying to make it an optimising compiler, it isn't too bad.
23:29:17 <pikhq> When I rewrite it to optimise, then it should be painful.
23:34:38 * pikhq tries to think of something else to do. . .
23:41:43 -!- marinus has quit (Remote closed the connection).
23:46:59 <pikhq> Well, I've got an optimising compiler in BFC already. I'm just rewriting in Brainfuck (and would like to work on something else for a bit. . .)
23:46:59 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
23:50:28 -!- GregorR has quit (Read error: 110 (Connection timed out)).