←2007-06-03 2007-06-04 2007-06-05→ ↑2007 ↑all
02:27:02 <bsmntbombdood> i haven't designed an esolang in a while
02:31:21 <oklopol> me neither :<
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:38:36 <boily> 01:38 here
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:28:17 <erider> anyone here
07:31:01 <GregorR-L> Ignore the irony in the following statement: Nobody /ever/ responds to that.
07:33:31 <erider> hi
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:39:37 <erider> thanks
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:36:20 <lament> HI
17:39:47 -!- Gamegirl has joined.
17:45:30 <Gamegirl> is anyone talking here?
17:46:09 <lament> never
17:46:12 <lament> it's forbidden
17:46:22 <Gamegirl> why&
17:46:25 <Gamegirl> jh
17:46:29 <lament> whoever talks, shortly dies of unknown causesAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRGH
17:46:33 <Gamegirl> aargh!
17:46:53 <lament> que tal?
17:47:03 <Gamegirl> oh, I`m sorry
17:47:17 <Gamegirl> I can`t understand
17:47:28 <lament> what's up?
17:47:39 <Gamegirl> what que tal mean?
17:48:06 <lament> what's up
17:49:07 <Gamegirl> good
17:51:42 <Gamegirl> Is it a dead chat?
17:53:08 <oklopol> yeah
17:53:16 <oklopol> lament already told you
17:53:42 <oklopol> i actually think this channel is empty
17:54:01 <Gamegirl> oh, it`s very sad
17:54:28 <Gamegirl> and all of that hm.. people...
17:54:36 -!- CakeProphet has joined.
17:54:41 <Gamegirl> they are not alive?
17:55:02 <CakeProphet> :)
17:55:05 <oklopol> CakeProphet: long time no ocean.
17:55:17 <CakeProphet> LOL PUN
17:55:27 <lament> Gamegirl: they're bots.
17:55:32 <oklopol> <--- CLEAVA BOY
17:55:35 <oklopol> *CLEVA
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:11 <Gamegirl> lament: all of them?
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:57:15 <CakeProphet> .....very complex AI in this one.
17:57:23 <lament> or so it says.
17:57:51 * CakeProphet pauses as he traverses his decision tree.
17:58:00 * CakeProphet proceeds
17:58:00 <lament> tree? more like a bush!
17:58:04 <CakeProphet> HEY FUCK YOU K?
17:58:07 <lament> :D
17:58:10 * CakeProphet made the optimal decision.
17:58:29 <lament> aren't you proud.
17:58:57 <CakeProphet> mhm :)
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:10 <CakeProphet> chatting is fine.
18:04:11 <Gamegirl> to discuss with bots?
18:04:16 <Gamegirl> o_O
18:04:22 <Gamegirl> wierd
18:04:24 <CakeProphet> yep
18:04:34 <CakeProphet> bots are excellent for conversation
18:04:38 <oklopol> i just realized Gamegirl has the word "girl" in it
18:04:41 <lament> we're smart bots.
18:04:45 * oklopol is a bot that penetrates
18:04:49 <CakeProphet> ...
18:04:56 <oklopol> ...
18:05:05 <oklopol> like... metphorically
18:05:10 <oklopol> *metaphorically
18:05:13 <CakeProphet> ...I see.
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:31 <oklopol> :)
18:06:36 * CakeProphet has pretended to be female before... AND GUYS DO VERY ANNOYING THINGS
18:06:43 <oklopol> ...oh?
18:06:45 <CakeProphet> mhm
18:06:51 <oklopol> i can't imagine.
18:06:54 <CakeProphet> ...
18:07:12 <oklopol> who said i'm a guy?
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:08:40 <oklopol> i need more caffeine
18:09:16 <lament> oklopol: i kind of doubt an actual girl would put 'girl' in her nick.
18:09:47 <lament> on freenode anyhow.
18:09:47 <CakeProphet> too much.... bullshit, would arise from that
18:10:52 * CakeProphet 's mind is 50% woman
18:11:15 <oklopol> oh
18:11:47 <oklopol> does that mean i should half-stalk you too?
18:11:52 <oklopol> :|
18:11:59 <CakeProphet> MEN ARE PIGHEADED IDIOTS ON THE INTERNETST. :) :)
18:12:01 <CakeProphet> ....yep.
18:12:21 -!- crathman has joined.
18:12:27 <CakeProphet> hello person
18:12:31 <CakeProphet> of interest
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:16:56 <oklopol> "cn"
18:17:01 <lament> i
18:17:10 <oklopol> hmm
18:17:12 <lament> what's the context?
18:17:16 <oklopol> class name.
18:17:22 <oklopol> for my stdlib
18:17:38 <lament> well, complex numbers are C
18:17:42 <oklopol> oh
18:17:44 <lament> that's the 'official' name
18:17:49 <oklopol> indeed
18:17:51 <lament> not sure if you want to name a class that.
18:17:54 <oklopol> LOX!
18:17:56 <oklopol> i sure do
18:17:58 <oklopol> hmm
18:18:14 <oklopol> one character names are for temp variables though, of course
18:18:20 <oklopol> cx then?
18:18:22 <oklopol> or?
18:19:26 <lament> why are you writing a stdlib?
18:19:35 <oklopol> ...?
18:19:54 <oklopol> as always, i'm making oklotalk.
18:21:09 <CakeProphet> I would go with complex or something
18:21:19 <oklopol> too long
18:21:31 <CakeProphet> compnum?
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:18 <CakeProphet> just use some kind of J notation
18:22:26 <oklopol> but still... it's SOIOOOOOOOOOOOOOOOOOOOOoo long
18:22:27 <CakeProphet> in the number literal
18:22:34 <oklopol> heh
18:22:51 <oklopol> 10+i43 :P
18:23:08 <CakeProphet> hmm... 10j43 maybe?
18:23:15 <oklopol> why j?
18:23:22 <CakeProphet> -shrug- I forgot
18:23:26 <oklopol> okily
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:24:31 <oklopol> ?
18:24:35 <oklopol> whutta ya mean?
18:25:21 <CakeProphet> OH I REMEMBER WHY
18:25:26 <CakeProphet> Python uses J for complex.
18:25:28 <CakeProphet> >>> type(10j)
18:25:30 <CakeProphet> <type 'complex'>
18:25:31 <CakeProphet> >>> 10j+2
18:25:33 <CakeProphet> (2+10j)
18:25:34 <oklopol> oh
18:25:35 <CakeProphet> >>>
18:25:43 <lament> CakeProphet: so, like, lisp?
18:25:45 <oklopol> well oklotalk does not understand postfix, so it'd be j10
18:25:53 <CakeProphet> lament, not quite.
18:25:58 <CakeProphet> but... similar yes.
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:37 <lament> er
18:26:40 <lament> so's j.
18:26:41 <lament> :)
18:26:51 <lament> engineers use it because i is current :)
18:27:34 <CakeProphet> ...I don't like Lisp...
18:27:45 <CakeProphet> as world-changing as people claim it is.
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:32:50 <lament> ...use parrot?
18:33:34 <CakeProphet> MY DECISION TREE... PREDICTED THIS.
18:33:41 <CakeProphet> THAT YOU WOULD SAY SUCH A THING.
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:34:08 <CakeProphet> FUCK YES
18:34:09 <oklopol> yeah
18:34:11 <CakeProphet> :)
18:34:13 <oklopol> :)
18:34:29 <CakeProphet> perhaps Parrot is lame? yes?
18:34:42 <oklopol> yeah, LAMEnt!
18:35:58 <CakeProphet> for one, it has the wrong name. The virtual assembly language I'm looking for is called Grue.
18:36:03 <CakeProphet> ...and it does not exist yet
18:37:37 <Pikhq> CakeProphet: BTW, the JVM is perfectly suitable for that task.
18:37:47 <Pikhq> ;)
18:38:08 <CakeProphet> ....JVM is named Grue?
18:39:03 <CakeProphet> ....doesn't Parrot use a callstack of some sort.... I think PIM does.
18:39:11 <CakeProphet> I DO NOT WANT A CALLSTACK.
18:43:23 <erider> bf doesn't even compile text right?
18:43:48 <CakeProphet> ?
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:02 <oklopol> you know
18:44:13 <CakeProphet> ...
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:28 <Pikhq> erider: Uh, wha?
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:48 <CakeProphet> Like erlang.... or something
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:46:26 <oklopol> *your
18:46:48 <oklopol> [-][ -||- ]
18:47:06 <CakeProphet> doesn't bf just kind of ignore non-code stuff?
18:47:08 <erider> >+++++++++ # comment?
18:47:12 <Pikhq> CakeProphet: It does.
18:47:14 <oklopol> ..?
18:47:21 <oklopol> erider: [ your comment here ]
18:47:24 <CakeProphet> >comment++++++++++++++
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:14 <erider> ok
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:23 <lament> // [
18:49:27 <lament> C code follows
18:49:40 <CakeProphet> any sort of NOP/comment is great for writing polyglots
18:49:41 <lament> /* ] brainfuck code follows */
18:49:43 <CakeProphet> it's almost necessary
18:50:08 -!- bsmntbombdood has joined.
18:50:13 <lament> very easy with C and BF since / and * are nops in brainfuck :)
18:50:48 <CakeProphet> I like Haskell's comment style.
18:51:12 <lament> i like literate haskell's comment style :)
18:51:28 <CakeProphet> -- lol comment here
18:51:58 <lament> -- lol code here
18:52:10 <lament> 10 REM THIS IS A COMMENT
18:52:17 <CakeProphet> literate haskel huh?
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:52:57 <CakeProphet> *than
18:53:04 <CakeProphet> like.. in some kind of example
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:00:37 <lament> in writing?
19:01:32 -!- erider has quit (Read error: 104 (Connection reset by peer)).
19:04:02 <oklopol> what's (a+bi)/(c+di)?
19:04:22 <lament> calculate it.
19:04:30 <oklopol> :<
19:04:32 <lament> you only need middle school algebra or something?
19:04:36 <oklopol> i don't wanna :<
19:04:38 <oklopol> yeah
19:04:41 <oklopol> okay, i'll try
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:07:13 <CakeProphet> hmmm.... it would be like...
19:08:05 <CakeProphet> ...I forgot how to divide polynomials.
19:08:13 <oklopol> hmm
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:08:50 <oklopol> divide it in those.
19:09:27 <CakeProphet> I can multiply them though... so that's (a+bi)*(1/c+1/di)
19:09:32 <CakeProphet> right?
19:09:34 <oklopol> no
19:09:54 <oklopol> 1/(a+b) is not a/a+1/b
19:10:00 <oklopol> *1/a+1/b
19:10:03 <oklopol> even i know that
19:10:04 <oklopol> :)
19:10:18 <CakeProphet> oh... yeah :P
19:10:32 <CakeProphet> I SUCK... AT MATH
19:10:44 <oklopol> for any values of a and b i can calculate A and B in A/a+B/b
19:10:53 <oklopol> but not the general case
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:13:56 <CakeProphet> what times (c+di) will equal 1?
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:14 <oklopol> and i don't know the term
19:16:15 <erider_> does + = 1 in the cell or binary 2
19:16:31 <oklopol> ?
19:17:53 <CakeProphet> + in bf increments the current cell by 1
19:18:12 <CakeProphet> !bf +.
19:18:25 <CakeProphet> hmm... I need a linefeed right?
19:18:44 <oklopol> or a printable character
19:18:54 <oklopol> !bf +++++++++++++++++++++++++++++++++.
19:19:03 <oklopol> !bf +++++++++++++++++++++++++++++++++.>++++++++++.
19:19:09 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.++++++++++.
19:19:13 <CakeProphet> :)
19:19:18 <oklopol> !bf +++++++++++++++++++++++++++++++++.>+++++++++++++.>++++++++++.
19:19:22 <oklopol> .
19:19:36 <oklopol> I WASN'T EVEN TRYING
19:19:40 <erider_> hmm
19:20:00 <oklopol> egobot is not here.
19:20:04 <oklopol> heh
19:20:17 <erider_> !bf +.
19:20:47 <CakeProphet> basically... bfs state consists of an array of characters and a pointer variable.
19:20:59 <CakeProphet> + is equivalent to array[pointer] += 1
19:21:09 <CakeProphet> > is pointer += 1
19:21:30 <CakeProphet> < is pointer -= 1
19:21:32 <CakeProphet> etc
19:22:08 <erider_> so it can show printable char
19:22:19 <CakeProphet> with the . command, yep.
19:22:29 <oklopol> 1, of course, is unprintable.
19:22:35 <oklopol> chr(1)
19:23:02 <erider_> can it show ints
19:23:09 <oklopol> yes
19:23:15 <oklopol> but not like you mean.
19:23:17 <CakeProphet> ...kinda... no in the way you're thinking probably.
19:23:20 <oklopol> yeah
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:25:32 <CakeProphet> because the 48th ASCII character is "0"
19:26:16 <erider> ok so to do calc?
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:07 <CakeProphet> two plus two... would be ++>++<[>+<-]
19:28:10 <CakeProphet> or something similar
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:30:54 <CakeProphet> egobot has one.
19:31:01 <CakeProphet> !help
19:31:05 <oklopol> yeah, that'd this channel
19:31:11 <oklopol> and really, EgoBot is offline.
19:31:23 <oklopol> *that'd be
19:31:40 <CakeProphet> erider, do you have Python?
19:31:47 <erider> yes
19:43:19 <CakeProphet> meh... I started working on one... but I never feel like doing the brackets.
19:45:28 <oklopol> triv with rec
19:53:18 <bobbens> i have two questions about bf, is the data initialized to 0? how do you print stuff? kernel calls?
19:53:35 <bobbens> (excuse my laziness :) )
19:54:28 <oklopol> kernel calls?
19:54:30 <CakeProphet> it's all initalized to 0
19:54:35 <CakeProphet> and . is the print command
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:12 <CakeProphet> nope... just the current cell
19:55:20 <bobbens> ok
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:06 * oklopol is a sly bastard
19:58:07 <Pikhq> +-><.,[]
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:31 <CakeProphet> ...not the normal bf.
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:04:52 <erider> do*
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:06:54 <CakeProphet> stdin
20:06:57 <CakeProphet> whatever that may be.
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:51 <CakeProphet> right
20:09:54 -!- erider_ has quit (Read error: 110 (Connection timed out)).
20:10:02 <erider> but*
20:15:13 <oklopol> okay, in php, why exactly can't you chain operations like "$second_word=explode(" ",$a)[1];"?
20:16:03 <erider> ,>,>,><.<.<.
20:16:39 <oklopol> because... you can do it in visual basic
20:17:16 <Pikhq> erider: Yup.
20:17:26 <Pikhq> Inputs 3 chars, outputs in reverse. . .
20:17:33 <Pikhq> And can be shortened by two.
20:17:41 <Pikhq> ,>,>,.<.<.
20:19:10 <erider> interesting
20:19:49 <erider> and comments can but written with no delimited char right
20:20:02 <erider> s/but/be
20:21:08 <oklopol> hmm... how do i read the contents of an url in php? :)
20:21:16 <Pikhq> Right.
20:21:17 <oklopol> (last time i ask :))
20:21:27 <Pikhq> oklopol: #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?
20:51:55 <erider> Pikhq: I think EOF=0
20:52:54 <erider> or '\0'
22:56:32 -!- clog has joined.
22:56:32 -!- clog has joined.
23:09:12 * oerjan suggests cpx
23:09:23 <oerjan> if it cannot be more than 3 letters
23:09:56 <oerjan> (that's for oklopol)
23:10:57 <oklopol> cpx or cx? 2 is also good :)
23:11:02 <oklopol> CompleX
23:11:13 <oklopol> ComPleX
23:11:15 <oklopol> omg
23:11:16 <oklopol> leet
23:11:19 <oklopol> i like that
23:11:49 <oerjan> tlas ftw!
23:13:17 <oklopol> indeed
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:18:46 <bsmntbombdood> aka fuck
23:19:14 <oerjan> how to build up more complicated algorithms from extremely simple parts
23:19:45 <erider> there it is
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:21:27 <oerjan> or assembly
23:21:42 <bsmntbombdood> yay no types
23:22:26 <erider> forth type is a cell
23:22:38 <bsmntbombdood> B has no types either
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:04 <bsmntbombdood> he's not dead
23:28:11 <bsmntbombdood> he's sleeping
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:28:57 <Pikhq> Or use PEBBLE. :p
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:05 <bsmntbombdood> http://cm.bell-labs.com/cm/cs/who/dmr/btut.html
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:38:50 <bsmntbombdood> gotta love a language like that
23:39:07 <SimonRC> ah, yeah, B rox
23:39:14 <SimonRC> it's C for massochists
23:39:54 <SimonRC> I *love* the error messages
23:40:12 <bsmntbombdood> can gcc compile it?
23:40:18 <SimonRC> dunno
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:04 <bsmntbombdood> auto v[10]; v[10]; /*no error?!?*/
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:08 <bsmntbombdood> it's still undefined behavior in C
23:43:22 <bsmntbombdood> auto v[10] makes v have 11 elements
23:43:39 <bsmntbombdood> oerjan: B's only type is the machine word
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:05 <SimonRC> actually, C has auto too
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:34 <bsmntbombdood> i can't find the function for dynamic allocation
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:49:49 <bsmntbombdood> if a="foo", how many characters is a[0]?
23:50:08 <SimonRC> where byte = 9 bits, remember
23:50:18 <SimonRC> hence the octal
23:50:44 <Pikhq> SimonRC: Octal is 0-7, not 0-8.
23:50:47 <bsmntbombdood> what wait?
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:50:57 <SimonRC> Pikhq: erm, yes
23:51:04 <oerjan> *that
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:51:52 <bsmntbombdood> no...
23:52:11 <bsmntbombdood> one octal digit is log_2(8) = 3 bits
23:52:25 <Pikhq> . . . Oh, right.
23:52:29 <bsmntbombdood> one _octect_ is 8 bits
23:52:31 <Pikhq> I'm an idiot.
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:07 <SimonRC> erm, yeah
23:55:08 <lament> geniot
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
←2007-06-03 2007-06-04 2007-06-05→ ↑2007 ↑all