01:47:28 -!- kipple has left (?).
02:30:23 -!- heatsink has joined.
03:27:49 -!- ChanServ has quit (Killed by alindeman ()).
03:27:50 -!- ChanServ has joined.
03:27:50 -!- irc.freenode.net has set channel mode: +o ChanServ.
03:52:28 -!- calamari has joined.
03:53:46 <{^Raven^}> got some custom wrappers up and running for EsoAPI and Easel
03:54:31 <{^Raven^}> the PESOIX interface is pretty much complete, EsoAPI emulation is ready
03:54:44 <calamari> wish I knew of an algorithm that was provably optimal, but that one comes decently close
03:54:52 <{^Raven^}> and I'm just integrating Easel into the new source tree
03:55:12 <{^Raven^}> it beat my best algorithm by 30 bytes
03:55:39 <calamari> it gets beaten by other algorithms in certain cases
03:55:57 <calamari> after the string gets long enough they all tend to even out tho
03:56:04 <{^Raven^}> at the moment you are only calculating one hash table at the very start
03:56:29 <calamari> yeah.. the hash table has a high cost involved
03:56:36 <{^Raven^}> if you reach a character where you have a large string of +++ or --- you should think about generating another hash table
03:58:12 <calamari> it seems like there should be a mathematical way to get the same results that it takes textgen so long to find
03:59:11 <{^Raven^}> http://jonripley.com/easel/api.txt has the current draft API
03:59:37 <{^Raven^}> i'm going to add a bunch of useful mathematical functions that are a bit difficult to do in BF
04:00:41 <{^Raven^}> and it's now 99.999% backwards compaitble, it only breaks on old programs that send the init code as the first output
04:02:54 <calamari> I'd tend toward things that BF could not do on it's own.. seems less like cheating that way :)
04:03:24 <calamari> coming along? I haven't worked on that code in years :)
04:03:33 <{^Raven^}> i know, the main thing I wanted was file I/O and access to environment variables
04:04:28 <calamari> another thing lacking is being able to fork
04:04:42 <calamari> haven't checked your spec if you included that :)
04:04:44 <{^Raven^}> the cheating stuff will be made available for lazy people
04:04:54 <{^Raven^}> no, fork is not something i have played with
04:05:15 <calamari> or if not fork, at least a way to run another app
04:05:59 <{^Raven^}> there will be a system call that you can use to run other apps
04:06:03 <calamari> currently the only way to do it is by emulating the new app with a BFI type wrapper.. very ugly!
04:07:35 <{^Raven^}> the main nightmare is going to be unbuffered input as each system does it differently
04:08:03 <calamari> chris pressey put tsome effort into solving that a while back.. pibfi I think it was called
04:08:10 <{^Raven^}> there's some good GPL code out there I can steal
04:08:25 <{^Raven^}> one feature I'd love to have is keyboard scanning
04:08:47 <{^Raven^}> with that you could write arcade games
04:09:06 <{^Raven^}> it's no fun if the space invaders wait for you to press a key
04:11:04 <{^Raven^}> i'm planning to add the ability to include a configurable text parser aswell
04:11:30 <calamari> that can be done with plain bf
04:13:06 <{^Raven^}> hmmm, the code is a bit complex if you are dealing with a large set of valid input
04:14:06 <{^Raven^}> and the execution time would be beyond most people's patience
04:17:05 <calamari> haha.. assembling a program with the BF bfasm binary already takes too long.. part of the fun of it! ;)
04:20:47 <{^Raven^}> I can't believe that you actually managed to bootstrap BFASM
04:23:33 <calamari> It was just a matter of writing BFASM in very simplistic C code that I could convert to BFASM
04:24:41 <{^Raven^}> I wonder if gcc could be targeed to produce bfasm. That would be interesting but I dread to think though how much code that stdio alone would require.
04:26:28 <calamari> although, I think it could be made to generate bfasm code
04:28:45 <calamari> would definitely need pesoix to implement stdio
04:29:48 <{^Raven^}> possibly would require a specific PESOIX-C dialect implenting the standard C library
04:30:06 <{^Raven^}> for simplicity Easel may not be C complete
04:30:42 <calamari> thats okay.. "bf complete" is good enough for me :)
04:30:51 <{^Raven^}> there are too many things that it doesn't seem to make sense to implemrnt
04:35:31 <{^Raven^}> it should be possible to recompile pure BF into ultra-efficient bytecode for nextgen interpreters
04:37:28 <calamari> dunno about ultra efficient :)
04:39:12 <{^Raven^}> 75%-90% reduction of code is achievable atm
04:40:32 <arke> I wrote a VM for my TI-83 and then I also wrote an optimizing BrainFuck compiler for it
04:40:41 <arke> (all of this in TI-BASIC, an esoteric language on its own!)
04:40:56 <arke> Did all sorts of optimization
04:41:14 <arke> As I thought of more things to optimize, I thought of more raw opcodes for the VM
04:41:33 <arke> unfortunately, the calculator went berserk on me and so I lost it
04:42:24 <arke> The original one was a direct BF->VM translation, and a simple program would take several minutes
04:42:38 <arke> it was satisfying to see, as i went along, that it went down to several seconds
04:42:55 <{^Raven^}> an orthoganal RISC instruction set should be possible, with only a few opcodes required
04:45:18 <arke> Some of the opcodes were ADDV (+-), ADDP (<>), JZ ([), JNZ (]), IN (,), OUT (.)
04:45:30 <arke> then I added CLR ([-])
04:45:55 <arke> and I had SET and MOV to and from a temporary VM register
04:46:13 <arke> so I had a pattern matching thing (HELL to do in TI-BASIC, took me several hundreds of lines ;))
04:46:25 <arke> which would detect [<+>-] and some variations
04:46:30 <arke> and translated that into it
04:46:46 <arke> Took me a month of school classes to do this
04:46:46 <{^Raven^}> i have things like, mzero [offset], add [+/- offset,] [#+/- number]
04:47:02 <arke> I was so pissed off when I lost it
04:48:33 <calamari> never did finish putting bf on this hp41cx .. blah
04:49:02 <{^Raven^}> atm i'm working on finding equivalent code and moving it to seperate functions
04:49:25 <{^Raven^}> i feel like i'm writing a compression algorithm
04:50:07 <calamari> sounds like you're on the right track then ;)
04:50:38 <arke> Ooh, if I ever get a TI-89 I have to implement it there
04:50:49 <arke> becuase it supports subroutines
04:50:53 <arke> which would make life SOOOO much easier
04:51:07 <calamari> I wrote some slow ones for the ti82 and hp48
04:51:28 <{^Raven^}> i wrote space invaders for mine before it was burgled
04:52:02 <arke> in TI-BASIC? ;)
04:52:06 <arke> that must have been _slow_
04:52:26 <calamari> also for the casio cfx-9800g although it is not able to print characters , just numbers
04:52:45 <{^Raven^}> especially as the aliens were circles :)
04:52:54 <calamari> so you have to interpret the ascii to know if it printed hello world correctly
04:53:58 <arke> i feel so young
04:54:27 <arke> a decade ago I was playing with QBasc, routinely crashing the beta copy of Windows 95 my dad got with it
04:54:54 <calamari> yeah.. I hink it was 1996 when I first played with a ti82.. programming it was the reason I failed my hs calc 1 class
04:55:51 <{^Raven^}> i used to hate geography so much my teacher let me go play in the computer room instead
04:57:10 <{^Raven^}> when an 8Mhz computer was considered top of the line kit
04:57:34 <{^Raven^}> and i was stuck with a 2Mz machine and a tape deck for my programs
04:57:44 <arke> I remember my dad getting his new computer at the time
04:57:55 <calamari> program for the 2600, can still enjoy that era
04:58:05 <arke> "This is a Pentium 90! This is a HUGE step up from that 486! Can you imagine how smooth Doom would run on this!?)
04:58:13 <{^Raven^}> my college tutor felt so sorry for me he gave me a disk drive :)
04:58:43 <{^Raven^}> i remember you when you had to wait for windows 2.1 to cache the font encoding for each character as you typed it
04:59:21 <calamari> windows? blah.. dos 3.30 is all you need
04:59:56 <{^Raven^}> i'd have loved to be at MIT in the late fifties
05:00:15 <arke> DOS? cp/m? Why, in my time we would manually flip the bits on the terminal to make our operating system every time we wanted to use the computer
05:00:19 <arke> </old d00dz0r>
05:00:25 <arke> {^Raven^}: yeah :)
05:00:35 <arke> and now I leave, installing new linux, yay
05:00:48 <{^Raven^}> when you would just rewire the processor on when the techno-mages weren't looking to add a new instruction
05:01:50 <{^Raven^}> i can't imagine writing programs using a hole punch these days
05:04:06 <heatsink> OH NO, HANGING CHADS CAUSED THE PRESIDENT TO GET -(2^12) VOTES!
05:04:30 <calamari> http://www.cs.uiowa.edu/~jones/cards/collection/i-program.html
05:05:50 <heatsink> while some say that many voters intended to cast -256 votes for the president, others say that confusing punch cards are to blame for the error.
05:08:04 <{^Raven^}> -(2^12) is -4096 so definately some computing errors there
05:08:57 <{^Raven^}> reminds me when i spent an hour trying to convince an information technology college tutor that 1Kb is 1024 bytes and not 1000
05:09:41 <{^Raven^}> especially when i have to be up in 2 hours
05:09:56 <heatsink> well, it'll be easier to get up than if you had gotten five hours of sleep.
05:11:17 <{^Raven^}> but as a programmer 24hr takeaway and inreavenous coffee and just taking occasional naps on a 48hr+/-RND(48hr) cycle would suit me
06:53:11 -!- calamari has quit (Read error: 145 (Connection timed out)).
06:57:56 -!- heatsink has quit ("Leaving").
07:39:51 -!- calamari has joined.
07:45:29 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:56:01 -!- kipple has joined.
12:44:47 -!- mtve has quit (Read error: 110 (Connection timed out)).
13:54:12 -!- mtve has joined.
17:33:53 -!- Keymaker has joined.
18:19:45 <kipple> The whitespace language is nice for steganography :)
18:21:39 <Keymaker> grr.. i've written this thue-morse sequence program three times.. on two first times i didn't realize simple mistake. now i must do it yet again.. :) hopefully now i'm succesful
18:22:02 <Keymaker> (the third version works, but not exactly as supposed to..)
18:26:13 -!- Keymaker has quit.