03:14:26 -!- GregorR-L has joined.
03:23:55 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
03:30:42 -!- Sgeo has joined.
04:31:27 -!- Sgeo has quit ("Ex-Chat").
04:42:40 -!- boily has joined.
06:37:43 <boily> hmm... activity is low at this ungodly hour of the night...
06:38:24 <fizzie> 08:36 in this time zone.
06:38:25 <boily> just to say i perused the channel's logs, and following your discussion about my new language (betterave), i've improved string manipulation
06:48:55 -!- mtve has quit (Read error: 110 (Connection timed out)).
06:50:34 -!- boily has quit ("Brush bed then sleep in teeth, uh, no... the other way round... sleep in teeth then brush bed.").
07:27:12 -!- erider has joined.
07:31:01 <GregorR-L> Ignore the irony in the following statement: Nobody /ever/ responds to that.
07:35:43 <erider> I'm trying to learn a simplistic language brainf**k seems to have some features or some techniques I would like to master
07:36:30 <erider> GregorR-L could you point me in the right direction
07:38:58 <GregorR-L> Well, http://www.esolangs.org/wiki/Brainfuck would be an obvious starting point ...
07:39:05 <GregorR-L> Other than that, Idonno, Google? :)
07:43:57 <Pikhq> erider: I just recommend one thing. . . For Brainfuck, be willing to do something even if it seems useless.
07:50:08 <Pikhq> And, of course, you have to be of about the mindset that would write a compiler for the hell of it. :p
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:03:01 -!- GregorR-L has quit ("Leaving").
11:09:49 -!- mtve has joined.
12:24:20 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
12:31:26 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
13:02:31 -!- helios24 has quit (Read error: 104 (Connection reset by peer)).
13:02:48 -!- helios24 has joined.
13:03:46 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5").
13:16:58 -!- ais523 has joined.
13:31:16 -!- pe4enitsa has joined.
13:34:06 -!- pe4enitsa has left (?).
13:56:47 -!- mtve has joined.
14:23:19 -!- ais523 has quit ("trying to find a computer on which I can actually edit Wikipedia without inserting lots of random line breaks").
14:58:17 -!- jix has joined.
15:36:32 -!- boily has joined.
15:57:38 -!- sebbu has joined.
17:39:47 -!- Gamegirl has joined.
17:46:29 <lament> whoever talks, shortly dies of unknown causesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRGH
17:53:42 <oklopol> i actually think this channel is empty
17:54:28 <Gamegirl> and all of that hm.. people...
17:54:36 -!- CakeProphet has joined.
17:55:05 <oklopol> CakeProphet: long time no ocean.
17:55:27 <lament> Gamegirl: they're bots.
17:55:45 <lament> for example, clog is a bot that logs the channel.
17:56:05 <lament> and GregorR is a bot that interprets some esoteric languages.
17:56:41 <lament> and puzzlet_ is a korean translation bot.
17:57:04 <CakeProphet> CakeProphet is a bot that spits out random bits of wisdom
17:58:00 <lament> tree? more like a bush!
18:03:32 <lament> Gamegirl: to summarize everything, if you want to chat, this is perhaps not the best channel; but if you want to discuss esoteric languages, then it is.
18:04:38 <oklopol> i just realized Gamegirl has the word "girl" in it
18:05:32 * lament slowly backs away from oklopol
18:05:57 <oklopol> i'm < 1000 km long, don't worry 8|
18:06:20 <lament> length can be measured in several ways
18:06:27 <lament> i don't know which one you chose...
18:06:27 -!- Gamegirl has left (?).
18:06:36 * CakeProphet has pretended to be female before... AND GUYS DO VERY ANNOYING THINGS
18:07:23 <oklopol> i guess i've said that multiple times, though
18:07:36 <lament> congrats, we scared him away.
18:07:36 <CakeProphet> my decision tree does not account for sarcasm
18:08:21 <CakeProphet> ...can bots have a gender? How would you check?
18:08:33 <oklopol> i guess she wasn't interested in esoteric penetration
18:09:16 <lament> oklopol: i kind of doubt an actual girl would put 'girl' in her nick.
18:09:47 <CakeProphet> too much.... bullshit, would arise from that
18:11:47 <oklopol> does that mean i should half-stalk you too?
18:11:59 <CakeProphet> MEN ARE PIGHEADED IDIOTS ON THE INTERNETST. :) :)
18:12:21 -!- crathman has joined.
18:12:33 -!- sebbu2 has joined.
18:16:44 <oklopol> what's "complex number" in under four letters? "cx"?
18:16:50 <oklopol> that's such a long term...
18:17:38 <lament> well, complex numbers are C
18:17:44 <lament> that's the 'official' name
18:17:51 <lament> not sure if you want to name a class that.
18:18:14 <oklopol> one character names are for temp variables though, of course
18:19:26 <lament> why are you writing a stdlib?
18:19:54 <oklopol> as always, i'm making oklotalk.
18:21:41 <oklopol> it'll be quicker just to calculate with lists if is use that long a name
18:21:45 <CakeProphet> complex isn't too hard to type... considering how not-quite-so-often it'll be used.
18:21:58 <oklopol> though guess you can do c='complex; and then use c
18:22:16 <oklopol> well, indeed it's prolly not that often needed
18:22:26 <oklopol> but still... it's SOIOOOOOOOOOOOOOOOOOOOOoo long
18:23:30 -!- helios24 has quit (Remote closed the connection).
18:23:37 -!- helios24 has joined.
18:24:22 <CakeProphet> ...I'd like a language that's really fast... and has a quick way to write extension languages that can cooperate with it. IT WOULD BE GOOD, FOR MAKING GAMES AND SUCH
18:25:43 <lament> CakeProphet: so, like, lisp?
18:25:45 <oklopol> well oklotalk does not understand postfix, so it'd be j10
18:26:03 <lament> lots of people use 'j' instead of 'i'
18:26:13 <lament> that doesn't mean 'j' refers to complex numbers
18:26:23 <lament> it's just a synonym for 'i'
18:26:34 <lament> engineers use it because i is reserved for i,j,k direction vectors
18:26:51 <lament> engineers use it because i is current :)
18:30:19 <CakeProphet> ....basically I just need a virtual machine assembly type thing.... and then have a suite of languages that compile to it that can run together..... something like what Parrot is going for.
18:31:32 -!- sebbu has quit (Connection timed out).
18:33:56 <CakeProphet> ....but what's the point in using stuff that already exists? I like to use things that do not exist yet.
18:34:03 <oklopol> why use parrot when you can try making your own?
18:35:58 <CakeProphet> for one, it has the wrong name. The virtual assembly language I'm looking for is called Grue.
18:37:37 <Pikhq> CakeProphet: BTW, the JVM is perfectly suitable for that task.
18:39:03 <CakeProphet> ....doesn't Parrot use a callstack of some sort.... I think PIM does.
18:43:23 <erider> bf doesn't even compile text right?
18:43:50 -!- bobbens has joined.
18:43:52 <oklopol> this one day i had this weird urge to have a callstack, but i said to myself "don't you have another callstack, you just had one last week" and i was like "fuck you"
18:44:40 * CakeProphet finds that inexplicably hilarious... but remains unsure as to why
18:44:40 <oklopol> i just start writing and let it come out, sorry.
18:45:29 <CakeProphet> GRUE SHALL HAVE... LIKE... BUILTIN MICROTHREAD THINGS....
18:45:31 <oklopol> okay, my pattern matching works, but it's definitely not pretty.
18:45:57 <erider> Pikhq: sorry I was talking about being able to comment
18:45:59 <lament> CakeProphet: maybe you should join the lolcode people
18:46:00 <Pikhq> BTW, I've actually got an SVN repository for PEBBLE set up. . .
18:46:24 <oklopol> erider: [you comment here.]
18:47:06 <CakeProphet> doesn't bf just kind of ignore non-code stuff?
18:47:12 <Pikhq> CakeProphet: It does.
18:47:21 <oklopol> erider: [ your comment here ]
18:47:31 <lament> [none of these instructions will ever get executed. Therefore, punctuation, including brainfuck commands, is fine. The only thing that will break it is unmatched brackets]
18:47:37 <Pikhq> erider: You only need to put your comment in a loop which won't run if it includes Brainfuck special chars.
18:47:38 <erider> that was my question thank CakeProphet
18:47:54 <CakeProphet> but the brackets are good if you want punctuation
18:48:14 <lament> otherwise it's easy to put punctuation in by mistake, and spend ages debugging
18:48:23 <CakeProphet> just use brackets on a bf cell that's set to 0
18:48:37 -!- mee has joined.
18:48:41 <lament> brackets are nice for comments in the beginning of the program
18:48:50 <lament> otherwise, you have to be really sure the cell is set to 0
18:49:05 <CakeProphet> most mid-program comments don't require punctuation anyways
18:49:12 <lament> they're also nice for writing a polyglot.
18:49:40 <CakeProphet> any sort of NOP/comment is great for writing polyglots
18:49:41 <lament> /* ] brainfuck code follows */
18:50:08 -!- bsmntbombdood has joined.
18:50:13 <lament> very easy with C and BF since / and * are nops in brainfuck :)
18:51:12 <lament> i like literate haskell's comment style :)
18:52:10 <lament> 10 REM THIS IS A COMMENT
18:52:27 <lament> CakeProphet: comments and code are switched
18:52:33 <lament> everything's a comment, unless preceded by --
18:52:45 <lament> with the idea that comments are more important than the actual code
18:52:49 <CakeProphet> aaah.... you'd use that in things where you have more comment that haskell
18:53:16 <lament> well, the idea is that you should use that for all your programs.
18:53:35 <oklopol> i hate comments, don't read code, write it.
18:53:36 <lament> because making a human understand what's going on is more important (and harder) than making the computer understand.
18:54:19 <CakeProphet> .....not really. I find it very easy to explain things to... people.
19:01:32 -!- erider has quit (Read error: 104 (Connection reset by peer)).
19:04:32 <lament> you only need middle school algebra or something?
19:05:13 <Pikhq> svn://nonlogic.org/pikhq/pebble/trunk/
19:05:17 <oklopol> nah, i can't, at least i can't do it fast
19:08:24 <oklopol> you do something whose name i only know in finnish
19:08:40 <oklopol> part-fraction-factors or something :P
19:09:27 <CakeProphet> I can multiply them though... so that's (a+bi)*(1/c+1/di)
19:10:44 <oklopol> for any values of a and b i can calculate A and B in A/a+B/b
19:11:01 <oklopol> i mean, i probably could, but it'd take long
19:12:56 <CakeProphet> you could change 1/(c+di) by multiplying it by something that equals one... and will result in a denominator of 1.
19:13:20 <oklopol> speaking of sucking, i got a scholarship for being 5th in finlands national math competition \o/
19:13:45 <oklopol> my grades in math are of average 8 (4-10)
19:14:13 -!- erider_ has joined.
19:14:46 <oklopol> i'd've been divided first but i didn't understand a question right... finnish is so hard
19:15:05 <oklopol> CakeProphet: i have no idea, but i guess you can... calculate it?
19:15:45 <CakeProphet> dunno... I'm just trying to switch that division into a multiplication.... I forgot how to divide polynomials.
19:16:06 <oklopol> i know how you do it, but it's not trivial
19:16:15 <erider_> does + = 1 in the cell or binary 2
19:18:54 <oklopol> !bf +++++++++++++++++++++++++++++++++.
19:19:03 <oklopol> !bf +++++++++++++++++++++++++++++++++.>++++++++++.
19:19:09 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.++++++++++.
19:19:18 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.>++++++++++.
19:20:47 <CakeProphet> basically... bfs state consists of an array of characters and a pointer variable.
19:22:08 <erider_> so it can show printable char
19:22:29 <oklopol> 1, of course, is unprintable.
19:23:17 <CakeProphet> ...kinda... no in the way you're thinking probably.
19:23:28 <CakeProphet> it can show the ASCII characters for digits...
19:23:46 <CakeProphet> but... . doesn't print out the value in the cell... just its corresponding ASCII character.
19:24:40 -!- erider has joined.
19:24:51 <Pikhq> You can, of course, do some itoa stuff on it.
19:24:52 <erider> sorry I was on my phone
19:25:07 <CakeProphet> !bf ++++++++++++++++++++++++++++++++++++++++++++++++.
19:25:22 <CakeProphet> the cells value is 48.... but the interpreter would print "0".
19:26:33 <Pikhq> The same for ++++++[>++++++++<-]>.
19:27:00 <CakeProphet> addition of two cells... is fairly simple... you just make a loop in one cell that increments another.
19:27:17 <Pikhq> Pretty much just multiplication.
19:28:45 <CakeProphet> [>+<-] would be a destructive addition... that dumps the result in the cell to the right of the current one
19:30:29 <erider> CakeProphet: do you know of an interactive shell for bf or just compilers and interpreters
19:30:53 <oklopol> you can make one in 15 minutes
19:31:11 <oklopol> and really, EgoBot is offline.
19:43:19 <CakeProphet> meh... I started working on one... but I never feel like doing the brackets.
19:53:18 <bobbens> i have two questions about bf, is the data initialized to 0? how do you print stuff? kernel calls?
19:54:46 <bobbens> that prints the entire stack or whatever it's called?
19:54:48 <oklopol> ! will call asm INT n, where n is the value of the current cell.
19:55:38 <bobbens> might mess around with that someday :)
19:55:38 <CakeProphet> here's the interactive bf shell I was working: http://deadbeefbabe.org/paste/4999 it doesn't have [ and ] yet... which I don't feel like implementing (definetely the most time consuming out of all the commands)
19:55:51 <erider> ! is an addition command? I have only seen the 8 commands
19:56:04 <CakeProphet> ! isn't a normal command.... not that I'm aware of.
19:57:56 <oklopol> sorry, i just mislead people asking advice :<
19:58:01 <Pikhq> erider: There's only 8 commands.
19:58:24 <Pikhq> From that, one can *do* many powerful things, however. . .
19:59:05 -!- boily has quit ("WeeChat 0.2.4").
19:59:54 * CakeProphet always implements the bf array as a sparse-matrix-esque hash table.... to save space with all the zeros floating about.
20:00:33 <erider> Pikhq: what types of things
20:00:59 <Pikhq> erider: Theoretically anything.
20:01:08 <Pikhq> It's Turing complete, after all.
20:01:41 <Pikhq> (although doing stuff like networking, graphics, etc. requires some additional support from the interpreter, to wrap that stuff around stdin and stdout.)
20:02:05 <CakeProphet> bf is kind of useless... not because it can't do a lot of things... it just doesn't have any OS-specific things. While it can COMPUTE anything... it can't necessarily communicate with the rest of the operating system like most other programs can.
20:03:16 <CakeProphet> it can't do things like draw windows... write to files... send things to a server in India... etc
20:03:21 <Pikhq> CakeProphet: Sure it can (although the *implementation* of such things is lacking).
20:03:38 <Pikhq> One merely needs to implement PESOIX, or something similar, and voila.
20:03:43 <CakeProphet> adding an "extension" to bf pretty much makes it something other than bf
20:04:04 <Pikhq> It's not an extension to the language, it's an API which BF code can access via I/O.
20:04:40 <erider> how to you access input with ,
20:05:00 <CakeProphet> otherwise, I could argue that Python has gotos... I just haven't hacked it in as a trace function yet.
20:05:32 <Pikhq> CakeProphet: I'm not saying that BF has it, just that it *can*.
20:05:44 <Pikhq> Likewise, Python *can* do gotos, but it's not a native feature.
20:05:55 <Pikhq> erider: Yeah, "," is the input command.
20:06:05 <CakeProphet> how does PESOIX do this without using -anything- other than the standard bf implementation?
20:06:35 <erider> Pikhq: input from where
20:07:12 <CakeProphet> typically it's a line-buffered keyboard input... in a shell window.
20:07:44 <Pikhq> CakeProphet: Interfacing with PESOIX is done soley by stdin and stdout.
20:08:22 <erider> CakeProphet: so it bring in one char at a time
20:08:22 <oklopol> well, if you make '@' mean "open irc connection", you are changing the language, however, if you, like someone just said, make special characters change where stdio goes, you are pretty much just making an api
20:08:53 <CakeProphet> erider, yep... everything is character-by-character in BF... no "strings" in the typical sense...
20:08:58 <CakeProphet> technically, the bf array is just one giant string
20:09:26 <Pikhq> And all PESOIX is is an API. . . Just outputting stuff selectively. . . In theory, at least, you could use the API on any esolang.
20:09:36 <erider> CakeProphet: by we control where the char are placed in the tape
20:09:54 -!- erider_ has quit (Read error: 110 (Connection timed out)).
20:15:13 <oklopol> okay, in php, why exactly can't you chain operations like "$second_word=explode(" ",$a)[1];"?
20:16:39 <oklopol> because... you can do it in visual basic
20:17:26 <Pikhq> Inputs 3 chars, outputs in reverse. . .
20:17:33 <Pikhq> And can be shortened by two.
20:19:49 <erider> and comments can but written with no delimited char right
20:21:08 <oklopol> hmm... how do i read the contents of an url in php? :)
20:35:30 <erider> +++++[>+++<-] Cell1 By 5 = 15
20:38:03 <Pikhq> erider: Perfect code.
20:39:42 <erider> thanks I think I should modify my interpreter
20:45:16 -!- boily has joined.
20:46:52 <erider> Pikhq: can you < or | into , ie; ./bf foo.b < bar
20:48:20 <Pikhq> erider: Of course. Input redirection is done by your shell, not by the Brainfuck code.
20:50:03 -!- boily has quit ("WeeChat 0.2.4").
20:50:04 <erider> Pikhq: I tried to print chars from a file with ,[.,] and it went in to while(1)
20:50:44 <Pikhq> erider: Does your interpreter make an EOF=-1 or 0?
22:56:32 -!- clog has joined.
22:56:32 -!- clog has joined.
23:09:23 <oerjan> if it cannot be more than 3 letters
23:10:57 <oklopol> cpx or cx? 2 is also good :)
23:17:49 <erider> what can I learn playing with brainf**k
23:18:14 <oerjan> how to twist your brain into tiny little knots, obviously
23:19:14 <oerjan> how to build up more complicated algorithms from extremely simple parts
23:20:10 <erider> so its worth playing with :)
23:21:04 <oerjan> how to program with no type checking at all
23:21:17 <oerjan> (forth could also be used for that, i hear)
23:26:45 <erider> oerjan: so I need to know a lot about ascii to make interesting things
23:27:29 <oerjan> regarding the name of Parrot: why would anyone want to name a vm after a dead bird?
23:28:42 <oerjan> erider: you need an ascii table i guess.
23:28:50 <Pikhq> erider: You could just use an ASCII table.
23:29:41 <erider> just trying to figure out what one would need
23:29:55 <oerjan> there are of course 3 blocks whose positions are easy to memorize: 0-9 start at 48, A-Z at 65 (64+letter number) and a-z at 97.
23:31:45 <oerjan> (note that 48 = 3*16, 64 = 4*16 and 96 = 6*16)
23:32:11 <oklopol> while teaching erider how to write complex programs, please teach me to be clever
23:33:00 <oerjan> i see you are on haskell, using map fromEnum is a nice way to get the ascii numbers for a string
23:33:31 <oerjan> or map ord but that requires an import
23:33:34 -!- jix has quit ("CommandQ").
23:36:34 <erider> cells are only 0-254 wide?
23:36:34 <oerjan> one subtlety about brainfuck is that there are so many implementation variations: end-of-file, cell size and wrapping, tape size
23:36:58 <oerjan> 0-255 is usually the minimum to call it brainfuck
23:37:09 <oerjan> (although things like boolfuck exist)
23:37:42 <oerjan> if EgoBot was here, you could choose between 8 bit, 16 bit or 64, i believe
23:38:43 <oerjan> oklopol: i am sorry that is not in my power
23:38:45 <bsmntbombdood> "All arithmetic in B is integer, unless special functions are written. There is no equivalent of the Fortran IJKLMN convention, no floating point, no data types, no type conversions, and no type checking. Users of double-precision complex will have to fend for themselves. "
23:39:54 <SimonRC> I *love* the error messages
23:40:27 <SimonRC> there's probably a front-end around somewhere
23:40:54 <SimonRC> It's where the ever-useless "auto" keyword in C comes from.
23:41:47 <oerjan> btw EgoBot's interpreter, EgoBFI, is available at http://esoteric.voxelperfect.net/files/brainfuck/impl/egobf-0.7.1.tar.bz2
23:42:38 <Pikhq> bsmntbombdood: Of course not. C doesn't do any bounds checking.
23:42:52 <oerjan> so auto is B's equivalent to C's plain int?
23:43:42 <oerjan> since B doesn't have a type to use for declaration
23:43:51 <SimonRC> notice the onderful syntax that was later nicked for wide characters in C
23:44:43 <oerjan> what i mean is, since B has no types, it must use something else to declare a variable, so auto becomes the default word for this?
23:44:45 <SimonRC> auto means "automatic variable": it has space allocatioed when the function is entered and that space is freed when the function exits
23:44:52 <SimonRC> i.e. it is a local variable, on the stack
23:45:53 <erider> oerjan: looks to be a long on my system
23:46:11 <Pikhq> There is only one reason why B has one type of 4 bytes. . .
23:46:22 <Pikhq> The system they were writing stuff on had that as a word size. ;)
23:47:17 <erider> Pikhq: have you used WSpace?
23:47:37 <Pikhq> erider: No, I haven't.
23:50:08 <SimonRC> where byte = 9 bits, remember
23:50:44 <Pikhq> SimonRC: Octal is 0-7, not 0-8.
23:50:55 <oerjan> erider: regarding brainfuck comments in brackets, the easiest way to be sure it the brackets don't get run is to put them right after another set of brackets.
23:51:13 <SimonRC> but 3 octal digis is exactly one 9-bit byte
23:51:34 <SimonRC> oh, wow, they use the old-style "backwards" assignment operators: "foo =+ bar" etc
23:51:36 <Pikhq> Each octal digit is 8 bits. . .
23:51:47 <Pikhq> How the *hell* do you get 24=9?
23:53:33 <oerjan> this is #esoteric. everyone is either an idiot or a genius at any time, just not the same always.
23:54:15 <Pikhq> The fuck? They actually *are* using 9 bit bytes.
23:54:50 <oerjan> imagine if that had stuck, then octal would probably be more used than hexadecimal
23:55:20 <SimonRC> their machine had 36-bit words
23:55:36 <lament> but hexadecimal is so much cooler than octal.
23:55:56 <lament> of all base-2 systems hexadecimal is perhaps the coolest.
23:56:07 <lament> or at least the most useful (could easily replace decimal)
23:56:15 <Pikhq> Well, now I know where the tradition of using octal for chmod comes from. . .
23:56:23 <Pikhq> lament: Hexadecimal is base-16, not base-2. :p
23:56:36 <lament> base-power-of-2 i mean