00:09:39 <oerjan> rodgerthegreat: i heard you so i added some output statements.
00:15:33 <jix> i have 12 statements done
00:22:30 -!- bsmntbombdood has quit (Remote closed the connection).
00:24:29 -!- bsmntbombdood has joined.
00:24:37 <Keymaker> i'll self-terminate. good night
00:24:41 -!- Keymaker has left (?).
00:33:11 <jix> wahoo i'm done with my 15 statements
00:35:16 <jix> ihope_: what?
00:37:36 -!- oerjan has quit ("Tbbq avtug.").
00:38:09 <jix> ihope_: do you want to participate too?
00:39:07 <ihope_> Can I submit just one statement?
00:39:41 <jix> uhm the rules say 5
00:39:57 <jix> just think of 4 other stupid features
00:40:13 <jix> bet yes if you just submit 1 it won't be a problem
00:40:30 <jix> it's about having fun not about enforcing the rules ^^
00:41:05 <jix> Sgeo: see tha lst link in the topic
00:43:38 <Sgeo> A bit after I asked though
00:43:57 -!- GregorR-L has joined.
00:44:37 <Sgeo> jix, is it possible that two statements can be literally incompatible with eachother being in the same language somehow?
00:46:07 <jix> Sgeo: i don't know what you are talking about but i assume yes
00:47:00 <jix> uh i just found an article about alpaca http://scienceblogs.com/goodmath/2006/10/a_metalanguage_for_pathologica.php
00:47:19 <GregorR-L> If one person submits "a = b" to set a to the value of b, and one person submits "a = b" to set b to the value of a, I don't think they'll both get in :P
00:47:36 <jix> well one could still say it depends on context
00:47:53 <jix> or every even time it gets executed... every odd time it gets executed...
00:47:58 <jix> goal is to get them ALL in
00:50:48 * Sgeo can't wait to see the finished product
00:51:21 <jix> neither me
00:52:18 <Sgeo> jix, but you have some idea
00:52:32 <jix> i know my 15 instructions
00:52:40 <jix> i don't look into the other ones beforehand
00:53:26 <Sgeo> Non-cheater >.<
00:53:46 <jix> i want the big surprise when i read them all at once
00:53:57 <jix> i must be like OMGLOLROFLORLYYARLYNOWAYBBQ!!!!
01:00:28 * Sgeo should write more specs for his language
01:01:21 <Sgeo> If anyone has any opinions/comments about http://sgeo.diagonalfish.net/esoteric/MKBL.txt please state them now.
01:03:04 <jix> i go to bed now
01:04:47 -!- bsmntbombdood has quit ("leaving").
01:04:52 * Sgeo sees the irony in "order is never evaluated"
01:05:09 -!- bsmntbombdood has joined.
01:05:22 <Sgeo> I should really say that order is evaluated automatically at the beginning of a step, and can't be specified as a table to be evaluated
01:05:24 <Sgeo> Hi bsmntbombdood
01:06:42 -!- anonfunc has quit.
01:06:55 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:16:00 -!- bsmntbombdood has quit (Remote closed the connection).
01:17:24 -!- bsmntbombdood has joined.
01:31:44 -!- tgwizard has quit ("Leaving").
01:34:37 -!- bsmntbombdood has quit (Read error: 104 (Connection reset by peer)).
01:35:25 -!- bsmntbombdood has joined.
01:42:42 -!- ihope_ has changed nick to ihope.
01:43:51 -!- bsmntbombdood has quit (Remote closed the connection).
01:57:22 -!- kipple_ has quit (Read error: 110 (Connection timed out)).
02:19:03 <RodgerTheGreat> my entry includes some basic flow control, one or two math primitives, some variable related things, and some basic output. I think the main thing we need to be sure to include is a good set of math and flow control operators.
02:32:44 <Asztal> mingle, select, and next/forget ?
02:33:44 <RodgerTheGreat> that's not what I have, but something similar to that could make a useful addition.
02:35:25 <pikhq> Argh; jix left too soon. . .
02:35:58 <pikhq> Was going to answer his (much) earlier questions. . .
02:36:04 <RodgerTheGreat> if you're interested in joining the factory run, there's plenty of time, pikhq.
02:36:42 <pikhq> RodgerTheGreat: My previous basm build was about 7100 characters.
02:37:33 <RodgerTheGreat> my pong game is at 330 bytes, and I think I may be able to shave it down further.
02:37:46 <pikhq> My first attempt was nearly 17000 characters. . .
02:38:02 <pikhq> Incredibly inefficient. ;)
02:38:23 <RodgerTheGreat> I assume this means your macro package has been gaining some significant upgrades during this process.
02:39:02 <pikhq> Only upgrade was stdcons.bfm, provided by oerjan. . .
02:39:12 <pikhq> Everything else was just dicking with the code.
02:39:52 <pikhq> The basm.bfm code, that is.
02:40:12 <pikhq> Err. . . I made *one* change; @ automatically calls is0 now.
02:40:37 <pikhq> But that doesn't change the output code much, just makes a variable declaration shorter.
02:43:29 <RodgerTheGreat> http://esolangs.org/wiki/Adjudicated_Blind_Collaborative_Design_Esolang_Factory <- do you plan on contributing?
02:43:50 <pikhq> Just for the hell of it.
02:48:29 * pikhq is proud of basm. . .
02:48:57 <pikhq> Let's see if I can make it *smaller*.
02:49:34 <pikhq> Looking at the BFM code. . . Hell yeah, but I don't feel like it right now.
02:52:28 <RodgerTheGreat> you could join my "classic game crunching" competition in ##Nonlogic.
02:53:01 <RodgerTheGreat> I made pong in Chipmunk BASIC, Zashi built tic-tac-toe, and feesh is working on blackjack.
02:53:11 <pikhq> In Chipmunk BASIC?
02:53:36 <RodgerTheGreat> hell yeah. I got it down to 330 bytes, which is not too shabby no matter how you look at it.
02:54:33 <RodgerTheGreat> Zashi's perl implementation of Tic-tac-toe is pretty impressive.
03:01:55 <RodgerTheGreat> here's my 384-byte version with an AI: http://www.nonlogic.org/dump/text/1161482453.html
03:07:07 <Sgeo> If anyone has any opinions/comments about http://sgeo.diagonalfish.net/esoteric/MKBL.txt please state them now.
03:07:33 <Sgeo> Someone please state some ideas on how to do ifs
03:08:32 <Sgeo> And what operations should I have?
03:08:49 <Sgeo> probably add, subtract, mult, div
03:08:57 <Sgeo> Anything else?
03:09:33 <Sgeo> I should have a timetable
03:11:21 <Sgeo> How would that work?
03:14:06 <Sgeo> It's meant to be in a metakit dblikething
03:14:50 <Sgeo> Think of order[0,"main","outgoing"] as being a row in table "order" with fields that have values 0, "main", and "outgoing"
03:15:32 <Sgeo> order[time:I,branch:S,tables:S] specifies the fields in the table. order is the table, time is a field that holds an int, branch and tables hold a string
03:18:50 <pikhq> BTW, Basm's BFM source is now up. . .
03:18:57 <pikhq> http://pikhq.nonlogic.org/basm.tar.bz2
03:32:01 <Sgeo> Should I explain the language more?
03:35:15 <Sgeo> and RodgerTheGreat
03:35:23 <pikhq> Not paying attention. :p
03:35:46 * Sgeo goes to add a time table
03:40:37 <Sgeo> OMG I just realized that the time table will make it easy to change branches, or even make branches unneccessary
03:45:32 <Sgeo> Look at http://sgeo.diagonalfish.net/esoteric/MKBL.txt for an explanation of time
03:46:58 <Sgeo> http://sgeo.diagonalfish.net/esoteric/MKBL.txt
03:50:33 -!- ivan` has left (?).
04:15:57 -!- bsmntbombdood has joined.
04:22:22 -!- bsmntbombdood has quit (Remote closed the connection).
04:22:50 <Razor-X> #esoteric: Where we all talk about our own projects and listen to no-one else :P
04:24:18 <Razor-X> I finished the specs for SLUMTP.
04:24:41 <Razor-X> (Self-Load UDP Mass Transfer Protocol.)
04:24:47 <Razor-X> Japanese, then implementation!
04:25:18 -!- bsmntbombdood has joined.
04:25:41 <GregorR-L> And your priorities are f***'d up if you're translating the spec before implementing it ...
04:26:29 <Razor-X> Well, I would implement it first (which is what I normally do because I'm too lazy to write a spec :P) but I'd forget some key thing I decided on earlier every time I'd neglect to write my notes down.
04:26:51 <Razor-X> So I started making some notes so that I wouldn't forget the decisions I made and then decided to flesh the notes into a cursory set of specs.
04:27:14 <GregorR-L> And this somehow has to do with /translating/ the specs?
04:27:34 <Razor-X> Japanese means doing my daily vocabulary in Japanese -_-''
04:37:43 -!- ihope has quit (Read error: 110 (Connection timed out)).
05:00:27 * pikhq is proud of basm. . .
05:00:34 * pikhq wonders if anyone else cares :p
05:01:05 <pikhq> It's the smallest BF->C compiler in BF. Why should you not care?
05:01:10 <GregorR-L> I was absolutely shocked that somebody mentioned Plof - that's about the most recognition anybody in this channel will give to anybody else :P
05:01:46 -!- Eidolos has quit (Read error: 104 (Connection reset by peer)).
05:02:29 -!- Eidolos has joined.
05:08:36 <Sgeo> At least, I think I _would_ like it if I had any interest in writing BF stuff
05:09:45 <pikhq> (for efficiency purposes; for nonesotericness, BFComp wins)
05:10:37 <pikhq> A macro language for Brainfuck (by me (with much thanks to oerjan)).
05:11:58 <pikhq> (if you request proof of my statement, allow me to show you basm, as done (naively) in BFComp, and as done in BFM. . .)
05:12:29 -!- bsmntbombdood has quit (Remote closed the connection).
05:14:01 -!- bsmntbombdood has joined.
05:14:03 <pikhq> http://pikhq.nonlogic.org/basm.tar.bz2 contains the BFM version (BFM source, and compiled).
05:15:12 <pikhq> http://pikhq.nonlogic.org/basm.bfc contains the BFC version, and http://pikhq.nonlogic.org/basm.bf the compilation of the same.
05:15:45 <Sgeo> Thing is, you don't really need to understand and work in BF to do BFComp ;)
05:16:18 <pikhq> You don't need to understand BF to do BFM, either.
05:16:30 <pikhq> It just makes things assloads more efficient if you do.
05:18:27 <pikhq> Although BFM has a semiTcl syntax, instead of a semiC one.
05:19:53 <Sgeo> What is BF bitwidth?
05:21:13 <pikhq> Most of the included macros assume cells wrap and 8 bits per cell, but BFM can produce code for whatever bitwidth you want (although you might not be able to use stdlib).
05:21:32 * Sgeo meant what is http://esoteric.voxelperfect.net/wiki/Brainfuck_bitwidth_conversions for
05:22:02 <pikhq> Some Brainfuck implementations use 8 bits per cell, others 16, and still others 32. . .
05:23:20 <pikhq> Those allow you to convert code between bitwidths, so it can run on other implementations.
05:29:50 <pikhq> GregorR-L: And no code.
05:30:04 <GregorR-L> And I wrote those conversions, btw 8-D
05:30:42 <Sgeo> Surely there are implementations with unlimited bitwidth?
05:31:11 <pikhq> bignum implemenations exist, though.
05:31:23 <Sgeo> I meant, limited only to the comps own memory
05:31:30 <pikhq> (these are limited by the available memory on the machine running the program)
05:31:57 <GregorR-L> I should write bignum support into EgoBF ...
05:32:06 <Sgeo> Conversions can be piled on top of conversions, right?
05:36:23 <GregorR-L> Sgeo: Yeah, but it gets exponentially slower
05:44:50 -!- bsmntbombdood has quit (Remote closed the connection).
05:46:02 -!- bsmntbombdood has joined.
05:46:14 -!- bsmntbombdood has left (?).
06:13:54 -!- calamari has quit ("Leaving").
06:19:24 -!- Sgeo has changed nick to Sgeo[ZadocOnStri.
06:19:56 -!- Sgeo[ZadocOnStri has changed nick to Sgeo[ZadocStriki.
07:00:17 <RodgerTheGreat> kick ASS, I think I just had a breakthrough brainstorm.
07:01:06 <pikhq> Again: evil bastard.
07:02:17 <RodgerTheGreat> I shall unveil my beautiful creation when a reference interpreter is complete. (still may be a while).
07:13:14 <RodgerTheGreat> hm, let's see... concat, split, inc/dec, replace, assign... what else do people want to do with strings?
07:19:52 <RodgerTheGreat> a specialized form of replace to avoid needing escape sequences.
07:48:41 -!- Asztal has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:41 <Razor-X> Why not create a special cell in BF for Linuxes that let you execute kernel syscalls based on adjacent memory positions?
09:25:31 -!- GregorR-L has quit ("Leaving").
10:40:33 -!- tgwizard has joined.
10:45:24 -!- ihope_ has joined.
10:45:42 -!- ihope_ has changed nick to ihope.
10:47:48 -!- oerjan has joined.
11:55:03 -!- lindi- has quit (zelazny.freenode.net irc.freenode.net).
11:55:15 -!- ihope_ has joined.
11:55:17 -!- RodgerTheGreat has quit (zelazny.freenode.net irc.freenode.net).
11:55:23 -!- lindi- has joined.
11:55:37 -!- RodgerTheGreat has joined.
11:55:45 -!- oerjan has quit (zelazny.freenode.net irc.freenode.net).
11:55:45 -!- fizzie has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- ghostless has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- pikhq has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- puzzlet_ has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- sp3tt has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- pgimeno has quit (zelazny.freenode.net irc.freenode.net).
11:55:46 -!- CakeProphet has quit (zelazny.freenode.net irc.freenode.net).
11:55:47 -!- bd_ has quit (zelazny.freenode.net irc.freenode.net).
11:55:47 -!- Anders has quit (zelazny.freenode.net irc.freenode.net).
11:55:47 -!- cmeme has quit (zelazny.freenode.net irc.freenode.net).
11:55:48 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net).
11:55:48 -!- EgoBot has quit (zelazny.freenode.net irc.freenode.net).
11:56:11 -!- oerjan has joined.
11:56:11 -!- CakeProphet has joined.
11:56:11 -!- puzzlet_ has joined.
11:56:11 -!- fizzie has joined.
11:56:11 -!- pikhq has joined.
11:56:11 -!- ghostless has joined.
11:56:11 -!- sp3tt has joined.
11:56:11 -!- pgimeno has joined.
11:56:11 -!- bd_ has joined.
11:56:11 -!- Anders has joined.
11:56:11 -!- cmeme has joined.
11:56:11 -!- SimonRC has joined.
11:56:11 -!- EgoBot has joined.
12:08:44 -!- ihope has quit (Nick collision from services.).
12:08:47 -!- ihope_ has changed nick to ihope.
12:21:44 -!- kipple_ has joined.
12:22:49 -!- kipple_ has quit (Client Quit).
12:23:54 -!- kipple_ has joined.
12:28:28 -!- jix has joined.
13:35:12 -!- Asztal has joined.
14:16:49 <ihope> When's the last time somebody said something?
14:20:00 <Asztal> people are saying things all the time
14:21:36 <ihope> What is the answer to the question I meant to ask?
14:26:24 <oerjan> i don't know i haven't read the logs yet. but no one has spoken since i last logged on.
14:34:34 -!- Arrogant has joined.
14:53:48 -!- Sgeo[ZadocStriki has changed nick to Sgeo.
14:54:42 <Sgeo> I don't really know my own nickserv pass
14:54:52 <Sgeo> I just have XChat do it
14:57:25 <Sgeo> I can't believe I spoke while "striking" though
14:57:36 <Sgeo> Has anyone here read 1/0?
15:03:18 <oerjan> i don't even know what 1/0 refers to
15:06:36 <Sgeo> http://undefined.net/1/0/
15:34:36 -!- ihope has quit (Read error: 110 (Connection timed out)).
15:39:16 -!- Sgeo_ has joined.
15:48:29 -!- Sgeo has quit (Connection timed out).
15:49:15 -!- ihope_ has joined.
15:49:25 -!- ihope_ has changed nick to ihope.
15:50:05 <ihope> Why do we need so many naive set theory paradoxes?
15:51:28 <oerjan> so that we don't get to close the holes by just doing simple tricks?
15:52:25 <ihope> Is removing comprehension one of those simple tricks?
15:54:04 <oerjan> it's not removed, it's divided into lots of little pieces.
15:54:37 <oerjan> most of the ZFC axioms are really just pieces of comprehension...
15:54:39 <ihope> What happens if it's removed?
15:55:06 <oerjan> you then have nothing to build sets with
15:55:22 <ihope> So no sets exist, necessarily?
15:55:31 <oerjan> only extensionality and choice
16:02:22 <pikhq> oerjan: Looked at the basm BFM source yet?
16:02:34 <pikhq> (just assuming you might be interested)
16:02:56 <pikhq> http://pikhq.nonlogic.org/basm.tar.bz2 Source to the smallest BF->C compiler in C (that I know of). . .
16:03:48 <oerjan> in BF, i take you mean
16:04:13 <pikhq> Brain not working. :p
16:07:08 <oerjan> hm, an immediate problem: that initial comment in basm.bfm contains some brainfuck commands
16:07:31 <pikhq> Grr. . . You're right.
16:07:50 -!- Arrogant has quit ("Leaving").
16:09:04 -!- oerjan has quit (zelazny.freenode.net irc.freenode.net).
16:09:12 -!- oerjan has joined.
16:09:26 <pikhq> And new tarball up.
16:10:11 <jix> haha in my current application i'm calling ruby from objective-c then i call objc from ruby again then javascript from objc.....
16:12:50 <oerjan> that strings.bfm - it seems a bit inefficient to use cons* macros for everything
16:14:14 <oerjan> a bit of copying and small additions could compress that
16:14:36 <pikhq> I've just not bothered with a complete rewrite yet.
16:15:00 <pikhq> Using cons* as a stopgap until I get it completely done.
16:15:05 <oerjan> and still this is the largest part of the program?
16:15:24 <oerjan> should expect some major savings then
16:15:32 <pikhq> Actually, it's now about half of the program.
16:15:55 -!- Azstal has joined.
16:17:17 -!- Azstal has quit (Read error: 54 (Connection reset by peer)).
16:17:19 -!- n1\fijikuwai has joined.
16:17:20 <oerjan> it seems like there really ought to be defaults for the second argument of @
16:17:24 -!- Asztal has quit (Read error: 54 (Connection reset by peer)).
16:17:32 -!- n1\fijikuwai has changed nick to Asztal.
16:17:54 <pikhq> Could be a good idea; it'd make things much easier in that large of a program.
16:18:03 -!- Sgeo_ has quit (Read error: 110 (Connection timed out)).
16:19:49 -!- Asztal has quit (Read error: 54 (Connection reset by peer)).
16:19:51 -!- n1\fijikuwai has joined.
16:19:53 -!- n1\fijikuwai has changed nick to Asztal.
16:22:30 -!- n1\fijikuwai has joined.
16:23:47 <oerjan> these out* macros, are they that way to avoid long stretches of > and < ?
16:24:09 <pikhq> Easiest way to avoid it for outputting the strings set by strings.bfm.
16:32:39 -!- Asztal has quit (Nick collision from services.).
16:32:41 <pikhq> n1\fijikuwai: nickserv ghost.
16:32:48 -!- n1\fijikuwai has changed nick to Asztal.
16:33:19 <oerjan> that part setting sc looks suspiciously like cons57 followed by add 2. why not use cons59 instead?
16:35:04 <pikhq> Because doing that adds 2 characters to the compiled output.
16:36:18 <oerjan> i don't understand how that can be..
16:36:41 <pikhq> Just realised what you're saying. XD
16:37:50 <oerjan> while cons59 actually uses 63-4 rather than 57+2, those options have the same length.
16:38:21 <pikhq> Except when I need to set the temp cell used to 10 after I'm done.
16:38:49 <pikhq> cons57 sc : nl;add nl 10 gets the job done just as efficiently; thanks for the tip.
16:39:14 <oerjan> you mean cons59, i think
16:40:04 <oerjan> just remove the add sc 2 line
16:40:56 <pikhq> cons57 sc : nl;add nl 10;add sc 2
16:40:56 <oerjan> of course those variable should really be included in the complete rewriting for strings.bfm when that happens
16:41:19 <pikhq> cons59 sc : nl;add nl 10 gets the job done inefficiently
16:41:39 <oerjan> what's inefficient about it?
16:41:58 <pikhq> 2 extra pointless characters.
16:42:03 <pikhq> (pointer movements)
16:42:33 <pikhq> [>+<-]++++++++++>++ vs. [>+<-]>++<++++++++++
16:42:44 <pikhq> (forgive me for not using the actual loop)
16:43:55 <oerjan> oh, now i realize what you mean
16:45:49 <SimonRC> I suspect that optimisations could be made if you can prove that the pointer is always at a ceretain place relative to some other place at a certain point in the program
16:46:19 <oerjan> well, the out* macros essentially do that
16:47:22 <oerjan> now i've got it: move the set nl 10 first, and use cons59 sc : as
16:47:50 <pikhq> Still some extra pointer movements.
16:48:45 <pikhq> [>>sc<<as]>>++ vs. [>sc<nl]>++
16:49:21 <pikhq> cons57 sc : nl;add nl 10;add sc 2 works.
16:50:27 <oerjan> eh, no, sc and as are just 1 apart, for some reason the addresses are not assigned in order
16:50:59 <pikhq> I played with that portion of the memory setup a bit. . .
16:51:07 <pikhq> And forgot I did that.
16:51:56 <oerjan> but i think you are still right.
16:52:01 <pikhq> Argh; that still adds 2 extra character movements.
16:53:32 <oerjan> this happens essentially because cons10 is a 1 cell operation
16:53:57 <oerjan> so it pays to do it while you happen to be at nl
16:54:34 <pikhq> Makes things a bit harder to understand, but not severly so.
16:56:53 <oerjan> the only other option is to move nl last in the variable list
16:59:36 <oerjan> hm, no that's not the point either
17:01:53 <pikhq> Or just leave it as-is. ;)
17:02:05 <oerjan> actually there is one possibility for cons59 which does not make any final additions. _that_ would work.
17:17:30 <oerjan> i modified my stdcons generating program to prefer algorithms that don't add/subtract at the end. new version at http://home.nvg.org/~oerjan/stdcons.bfm
17:18:44 <oerjan> note that it naturally still selects only among the shortest algorithms.
17:19:08 <oerjan> so it affects cons59 but not, say, cons58.
17:19:20 <pikhq> oerjan: That brought the size down radically.
17:19:26 <pikhq> 5128 characters now.
17:21:16 <oerjan> wow, it apparently was a widespread problem then. what was the size before?
17:21:45 <oerjan> i mean before the latest change
17:22:22 <Asztal> That somehow wasn't quite as radical as I expected :P
17:22:42 <pikhq> Not much, but it seems rather signifigant for a change that doesn't change the size of the individual macros.
17:23:02 <oerjan> it only avoids some possible pointer movement afterward
17:26:54 <oerjan> it is rather good for a change that only affected a few numbers: 59, 93, 123, 125 and 163.
17:31:50 -!- Sgeo has joined.
17:36:25 <oerjan> a quick check shows that strings.bfm contained 3 instances of cons59 followed by cons10 - to be expected, as this is ";\n".
17:37:35 <pikhq> That would explain it.
17:37:49 <Sgeo> Someone should make an esolang based on http://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffalo_buffalo_buffalo_Buffalo_buffalo.
17:38:32 <oerjan> as well as two instances of 123 10 which is "{\n"
17:38:54 <pikhq> Again: that would explain it.
17:39:05 <oerjan> so by a coincidence two of the affected numbers were very common in C
17:42:21 <oerjan> you know what? change that cons125 cb : end at the beginning of basm.bfm into cons125 cb : nl
17:43:00 <pikhq> That doesn't change a thing size-wise.
17:43:53 <pikhq> Still 5128 characters.
17:45:49 <oerjan> hm, right, it would only change the placement of a movement from end to nl
18:54:29 <ihope> Sgeo: yet another BF clone?
18:55:41 <ihope> buffalo buffalo buffalo = +; buffalo buffalo Buffalo = -...
18:56:02 <pikhq> Easy to make a compiler.
18:56:29 <ihope> Now, here's an idea that just sort of hit me: for that BF instruction minimalization thing, make it accept Unary programs terminated with an asterisk.
18:57:59 <ihope> Shouldn't be especially hard to do.
18:58:46 <oerjan> rather hard to program though
18:59:17 <ihope> Hard to program in, or hard to program?
19:00:18 <pikhq> So is Brainfuck; your point? :p
19:00:44 <ihope> Just use a compiler.
19:00:49 <oerjan> actually, impossible to program in
19:01:32 <ihope> Practically impossible, you mean?
19:01:42 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
19:02:04 <pikhq> Unary can be compiled to and from Brainfuck, you know.
19:02:40 <oerjan> sure, if you have more than the lifetime of the universe...
19:05:32 <pikhq> http://thegriddle.net/unary/
19:07:12 <oerjan> that's fine. now convert basm.b to unary. tell me when you are finished :)
19:08:04 <pikhq> Argh; said script is a bit borken.
19:08:59 <ihope> oerjan: see, practically impossible.
19:09:25 <ihope> Use Fibonacci codes if you want something a bit more linear rather than exponential.
19:11:38 <pikhq> Unary could be one way of compressing a BF program. . .
19:11:56 <pikhq> Transmit the number of zeros instead of the actual BF code. ;)
19:12:31 <oerjan> that wouldn't be unary, but binary
19:12:49 <ihope> That... wouldn't be compression.
19:13:10 <pikhq> Unary gives you a large amount of 0s.
19:13:24 <pikhq> Count the number of 0s, and you've got the compressed BF.
19:13:40 <oerjan> the string of zeros is unary. their number in binary is binary.
19:13:42 <pikhq> Uncompression: run that number of 0s through Unary->BF.
19:13:49 <ihope> But that wouldn't be compression.
19:14:17 <ihope> You should compress your BF code into more BF code.
19:15:21 <pikhq> (56623 can be represented very efficiently in binary)
19:15:51 <pikhq> Stupid as hell, but it'd work.
19:16:04 <oerjan> 3/8 compression from bf ascii representation to binary
19:16:10 <pikhq> You could probably be more efficient by just representing each BF opcode using 3 bits.
19:16:29 <oerjan> eh, Unary is defined by going through that representation
19:34:48 <Sgeo> http://esoteric.voxelperfect.net/wiki/BF-RLE
19:35:33 <pikhq> BFZ is simpler. :p
19:36:14 <pikhq> Something I wrote for the esoteric programming contest.
19:36:26 <pikhq> RLEs +, -, > and <.
19:37:43 <Sgeo> How are loops and I/O done?
19:39:14 <pikhq> It's a compression program for inefficient Brainfuck. . .
19:39:58 <Sgeo> I misunderstood what you said
19:40:29 <Sgeo> Are specs available?
19:40:40 <pikhq> Not really; quick hack.
19:41:03 <Sgeo> Is it safe to say that BF-RLE is more efficient =P?
19:41:14 * Sgeo keeps trying to find a reason to gloat
19:41:47 <pikhq> No, BF-RLE probably isn't.
19:41:54 <pikhq> BF-RLE isn't even implemented.
19:42:01 <pikhq> BFZ is implemented. . . In Brainfuck.
19:48:10 <Sgeo> There's a language somehow based on BF-RLE :p
19:48:50 * pikhq recently discovered Trainfuck. . .
19:49:05 <pikhq> Brainfuck+network I/O+file I/O.
19:49:18 <pikhq> I should write an HTTP daemon in it, just for the hell of it. :p
19:56:06 <Sgeo> http://esolangs.org/wiki/User:Sgeo/binbf
19:58:17 <Sgeo> I'm not sure if it's ever even useful
19:59:38 * Sgeo wrote that stuff waaay too long ago
20:01:56 <Sgeo> Though if you want pain, look at previous revisions
20:04:58 <Sgeo> oO Network Headache is implemented??
20:28:09 <ihope> I oughta run my own server.
20:42:13 -!- bsmntbombdood has joined.
21:00:34 -!- Asztal has joined.
21:08:07 <pikhq> I should play with FukYourBrane a bit.
21:08:21 <pikhq> Perhaps a self-replicator?
21:12:44 <jix> Sgeo: why use adaptive huffman coding
21:12:56 <jix> why not use some arithmetic coding like a range coder?
21:13:30 <jix> Sgeo: you know arithmetic coding?
21:14:07 <jix> it's a better form of entropy encoding than huffman
21:14:34 <jix> huffman approximates the optimal information that is needed for each symbol by whole bit lengths.... but that isn't optimal
21:14:53 <jix> arithmetic coding isn't limited to that.... so it generates smaller output
21:14:55 <jix> see http://en.wikipedia.org/wiki/Arithmetic_coding
21:15:12 <jix> and the range coder is a patent free way of doing arithmetic coding (many others are patented)
21:15:52 <jix> one of the big advantages is that there is no sorting involved... you can work right from the probabilities... no need to generate a tree... that makes it faster for adaptive encoders
21:16:38 <Sgeo> The thing was really designed for Huffman
21:16:44 <Sgeo> Don't know if it can be changed
21:16:51 <jix> Sgeo: it can
21:17:08 <jix> arithmetic coding does roughly the same as huffman
21:17:10 <jix> only a bit better
21:18:24 <jix> hmm what's fgk?
21:18:57 <Eidolos> "[arithmetic coding] will often approach optimal entropy encoding much more closely than Huffman can."
21:19:09 <pikhq> Whoohooo. I created a program which actually fails against nothing.fyb.
21:19:27 <jix> imho fyb is seriously flawed
21:19:45 <pikhq> I was attempting to make a replicator. . .
21:19:52 <pikhq> And I made nothing.fyb win.
21:20:11 <Sgeo> jix, I saw it mentioned under the Huffman entry
21:20:23 <jix> well it is just too easy to get some non looping code to setup bombs in some critical parts very fast that any attempt to do some logic will fail
21:20:26 <Sgeo> I chose FGK just so there's some standard one used
21:22:51 <pikhq> And he's got programs combating that.
21:25:21 <jix> pikhq: huh what?
21:27:44 * Sgeo laffs at http://www.inference.phy.cam.ac.uk/mackay/itila/Potter.html
21:31:29 -!- bd_ has left (?).
21:32:54 <oerjan> In conclusion, we can give a cautious recommendation of Harry Potter only to speakers of Welsh and Latin; for everyone else, we recommend Information Theory, Inference, and Learning Algorithms.
21:39:09 <pikhq> I think I've got a self-replicator.
21:42:41 <pikhq> There is one problem with it. . . As it's a self-replicator, it doesn't really write bombs.
21:57:49 <Sgeo> IRP: Please provide the decimal expansion of Ackermann(4,3)
22:08:48 <pikhq> ERROR: Don't wanna.
22:16:30 <pikhq> I've created a guaranteed-lose FYB program.
22:16:44 <pikhq> nothing.fyb beats it.
22:17:24 <pikhq> !fyb http://pikhq.nonlogic.org/foo.fyb
22:17:47 <Sgeo> Where are the specs??
22:18:03 <pikhq> http://esoteric.voxelperfect.net/files/fyb/
22:18:14 <pikhq> It lost against ever program EgoBot has.
22:19:04 <pikhq> Including ones you can't lose against.
22:19:06 <Sgeo> Wouldn't * be an all-lose?
22:20:18 <pikhq> That would explain why it doesn't work. XD
22:20:38 <Sgeo> I meant just a standalone *
22:20:48 <pikhq> Hmm. . . Still an all-lose.
22:21:44 <Sgeo> My * would lose even against your all-lose I think =P
22:22:31 <Sgeo> !fyb http://sgeo.diagonalfish.net/esoteric/all_lose.fyb
22:23:29 <Sgeo> total points: -12
22:23:53 <Sgeo> <EgoBot> all_lose.fyb
22:23:53 <Sgeo> <EgoBot> [x] all_lose.fyb
22:26:19 <pikhq> Seek and mangle. ;)
22:26:55 <Sgeo> pikhq, what about it?
22:27:48 <Sgeo> Oh wow couldn't that choke due to trying to commit a @?
22:28:09 <pikhq> It attempts to find the pointer; at the same time, it mangles the array. . .
22:28:09 <Sgeo> Well, * would still suicide
22:31:38 * pikhq needs to beat logicex-2.fyb
22:34:19 <Sgeo> What is logicex?
22:34:45 <pikhq> !fyb http://pikhq.nonlogic.org/bomber.fyb
22:34:50 <pikhq> A horrible good FYB program.
22:35:39 <pikhq> 6 points on that one.
22:35:48 <pikhq> Beats logicex-1.fyb. :)
23:08:36 * pikhq has it subverting defects now
23:12:48 -!- tgwizard has quit ("Leaving").
23:19:12 <ihope> (Nothing happened; I just feel like using an extra exclamation mark or two!!!!!)
23:19:32 <ihope> Dunno why; just... need a vent.
23:19:43 <ihope> See, my vents are always nice little ones.
23:20:10 <ihope> Except I need to vent a little of this too: :-) :-) :-) :-) :-) :-)
23:22:55 * ihope registers #vents as a place for venting
23:23:10 <ihope> Actually, ##vents would be a better channel.
23:23:55 <RodgerTheGreat> so, anyway, I completed the spec for a language I've been working on for a while last night, and I'm debating between releasing the spec now and trying to get help building libraries for it or waiting until I finish a reference interpreter.
23:24:25 <ihope> Why not release it now?
23:25:22 <RodgerTheGreat> well, it always seems pretty lame to come up with a language and show it off before you've completed the hard part- a functioning interpreter.
23:25:49 <ihope> That's what I've been doing.
23:25:53 <pikhq> Let me implement it; no nasty Java for us. :p
23:26:01 <oerjan> hey who are you calling lame :)
23:26:19 <ihope> Or whatever that's called.
23:26:42 <pikhq> Or, if I'm insane, Brainfuck.
23:26:56 * Sgeo didn't make an interpreter for BF-RLE..
23:27:02 <RodgerTheGreat> well, I'd still most likely implement it in Java regardless, but if there's interest, what the hell...
23:27:03 <Sgeo> Then again, I think I'm just lame
23:27:17 <Sgeo> And the language is rather trivial
23:30:59 <RodgerTheGreat> ok, here's my creation- SYNTHESYS: http://www.nonlogic.org/dump/text/1161556217.html
23:32:03 <RodgerTheGreat> it's a stack-based language with named string variables and some macroing and self-modification abilities.
23:32:40 <jix> people where are your entries?
23:33:01 <jix> RodgerTheGreat: yeah but you are the only one
23:34:20 <Sgeo> I could do statements from MKBL
23:34:32 <Sgeo> But that would break the language irreversibly I think
23:36:01 <jix> pikhq: is there a bfm tutorial anywhere or documentation or at least something?
23:37:30 <pikhq> jix: I unfortunately rewrite the interpreter much faster than I update the specs.
23:38:23 <pikhq> If anyone wishes it, I shall begin the BFM tutorial here (in a similar manner to the Glass tutorial Gregor did a while back).
23:39:24 <pikhq> I'm actually wondering how I shall interpret it right now.
23:39:28 * pikhq is rather interested
23:40:05 <jix> RodgerTheGreat: i'm interested but i don't get it from the specs
23:40:16 <RodgerTheGreat> I think this is the best combo of concise syntax and extensibility without being cripplingly hard.
23:40:47 <RodgerTheGreat> I could explain one of the code examples, if you think that would help.
23:41:23 <pikhq> I just don't see how one declares macros.
23:42:05 <RodgerTheGreat> you push a named variable to assign it to, then a string literal (or equivalent), and then use the assignment operator. (@).
23:42:36 <RodgerTheGreat> then you can call the macro by pushing it's parameters, then it's name, and using the execute operator (#).
23:42:56 <jix> i'm very interested now
23:43:21 <jix> is there a way to split a string literal?
23:44:20 <jix> idea make macro names and string literals the same
23:44:24 <pikhq> So, my call would be ??'sum'#, not ??sum#
23:44:37 <pikhq> (adding two chars from stdin)
23:45:07 <RodgerTheGreat> macros are just strings, in effect, and so invoking them works the same as pushing a string reference (which is what you're literally doing)
23:45:25 <pikhq> I'm thinking about how I'd parse this; it wouldn't be all *that* hard to do. . . Just need to do it. . .
23:45:55 <jix> RodgerTheGreat: but there is adifference between 'asd' and "asd" or is ther none?
23:46:08 <pikhq> 'asd' is a variable, "asd" is a string.
23:46:15 <jix> i say remove the difference
23:46:41 <jix> RodgerTheGreat: well variables are pushed on the stack right?
23:46:43 <jix> strings too right?
23:47:03 <RodgerTheGreat> variables are *references* to strings, not the string itself.
23:47:27 <jix> i can't explain
23:47:28 <RodgerTheGreat> being exclusively stack-based could make this a great deal harder to use.
23:47:53 <jix> it would be possible to use strings as references to strings
23:47:54 <pikhq> I see it being a bit easier in some ways.
23:48:04 <pikhq> (stacks don't bother me all that much. . .)
23:50:15 <RodgerTheGreat> well, the language would need need more stack-management operators.
23:57:39 <ihope> Pointy is all about pointers.
23:59:52 <jix> pikhq: btw i want a bfm introduction...