00:03:31 <GregorR-W> This channel is always alive and active, isn't it.
00:03:37 -!- BigZaphod has quit.
00:14:48 -!- heatsink has joined.
00:15:04 * GregorR-W attaches his 4gHz proc to heatsink
00:17:31 <GregorR-W> CPU0: Temperature over threshold, switching to a lower frequency
00:36:27 <jix> is there a brainfuck hexdump?
00:36:48 <GregorR-W> And by "fun", I mean "death", but still fun.
00:37:01 <jix> or an bf snipped for output a number as hex?
00:38:10 <jix> grml so i've to write one on my own
00:38:42 <jix> calamari: thanks for the brainfuck algorithms
00:39:02 <jix> i'm writing a adler32 checksum in brainfuck
00:44:12 <jix> i'm done with the checksum
00:44:16 <jix> but i need hex output
00:44:29 -!- GregorR-W has quit (Remote closed the connection).
01:03:39 <jix> i need help
01:03:51 <jix> i'm too stupid for outputing a cell as hex
01:04:58 <jix> calamari: do you have an algorithm for that?
01:05:38 <pgimeno> GregorR posted recently a division/reminder algorithm
01:06:12 <jix> that's an universal algorithm
01:06:18 <jix> i need one for /%16
01:06:27 <jix> that's shorter and fits better
01:07:06 <pgimeno> well, for nonwrapping a generic divide-by-constant will be needed, I guess
01:07:23 <jix> and for wrapping?
01:08:26 <jix> uhm shouldn't be too slow
01:09:47 <pgimeno> I was thinking about 4 chained tests for parity but that's probably too long anyway
01:11:53 <pgimeno> actually a mul-by-16 would isolate the reminder quickly, then you need div-by-16
01:12:09 <jix> hah thank you
01:12:24 -!- GregorR-W has joined.
01:13:02 <pgimeno> then you subtract the remainder from the original number and do a div-by-16 again
01:13:42 <pgimeno> divexact is often faster than div, especially when you know the divisor beforehand, I think
01:14:34 <pgimeno> oh, I'm being dumb... a [---------------->+<] would do
01:15:58 <jix> [->+>+<<]>>[->++++++++++++++++<]>[----------------<+>]<[->+<<<+>>]<<[->-<]>[---------------->+<] reads number from cell 0 puts div16 into cell 2 and mod16 into cell 3
01:15:59 <GregorR-W> I'm not sure why I reconnected since I am now leaving for home :P
01:16:26 -!- GregorR-W has quit (Client Quit).
01:17:09 <jix> but that's a bit long
01:18:30 <pgimeno> maybe you can do *16 as *4*4
01:18:46 <pgimeno> not sure if it's any gain though
01:20:15 <pgimeno> anyway that looks smaller than a generic division
01:21:41 <jix> [->+>+<<]>>[->>++++[-<++++>]<<]>[>++++[-<---->]<<+>]<[->+<<<+>>]<<[->-<]>[<++++[->----<]>>+<]
01:21:48 <jix> a few byte shorter
01:22:25 <jix> the problem is 0123456789abcdef are not in a row
01:28:22 -!- calamari has quit ("Leaving").
01:28:45 <jix> pgimeno: how
01:28:52 <pgimeno> with this: b[-]+++++++++a[b-a-] b = 0 if a < 9
01:31:59 <pgimeno> maybe b[-]++++++++++[a-b-]a[b+a+]
01:33:31 <pgimeno> sorry, that's off the top of my head
01:34:36 <pgimeno> so I'd better leave and have some rest before going on with these attempts
01:35:07 <jix> i wan't to finish this program
01:35:10 <jix> good night pgimeno
01:40:35 <jix> hah i have a solution (i think so)
01:40:37 <jix> 316 byte but it works
01:55:37 <jix> jix: READ THE SPECS CAREFULLY!!!
01:56:18 <jix> anyway the hexprint is cool
02:00:04 <jix> hey it's Fletcher's checksum i implemented
02:01:22 <jix> maybe i can make it fletcher's checksum
02:01:29 <jix> that's simpler than adler32
02:01:39 <graue> wait, I thought it was already Fletcher's checksum
02:02:07 <jix> 03:01:33<jix>ah no
02:02:23 <jix> the modulo is wrong by 1 for adler it's wrong by 15
02:02:28 <jix> but that's a fixable problem
02:03:34 -!- kipple has quit (Read error: 60 (Operation timed out)).
02:09:02 <graue> brainfuck is kind of useless for binary files, isn't it?
02:14:33 <jix> graue: yes it is
02:14:56 <jix> i'm too sleepy for fixing my feltcher/adler32
02:15:51 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:45:25 <lament> brainfuck is kind of useless
02:48:09 <graue> brainfuck is useless for binary files because one of the possible byte values has to also mean EOF
02:48:21 <graue> that isn't a problem with text
02:51:50 -!- BigZaphod has joined.
02:52:30 <lament> well, no, brainfuck is still kind of useless :)
02:57:08 -!- calamari has joined.
03:31:09 -!- graue has quit ("Donate a manual typewriter to ME for your only hope for a future!").
03:38:18 -!- GregorR has joined.
03:39:18 -!- GregorR has quit (Client Quit).
03:40:04 -!- GregorR has joined.
03:45:27 <GregorR> BTW, SPARC is nasty even for RISC.
03:45:41 <GregorR> I still think I can do it, but yeesh, this is encoded 4 bits off! WTF is with that?!
04:23:06 -!- tokigun has joined.
04:56:13 -!- cmeme has quit (No route to host).
05:01:17 <GregorR> Gah, I just realized why this doesn't work, I'm using big-endian constructs on a little-endian system :P
05:33:25 <GregorR> Hey, I have a sparc cross compiler! How bizarre!
05:44:20 <GregorR> OK, perhaps right is implemented.
05:48:49 -!- CXI has quit (Connection reset by peer).
05:51:05 -!- comet_11 has joined.
06:20:30 <GregorR> calamari: I want to make an implementation of BitChanger, but it doesn't explain where and how IO is mapped.
07:01:23 -!- calamari_ has joined.
07:03:33 * GregorR wonders if calamari got his last message ...
07:04:24 <calamari_> yeah.. then my inet connection cut off (4 hour dialup limit)
07:04:37 <calamari_> the original bitchanger had a really dumb view of i/o
07:05:04 <calamari_> it was probably unworkable.. i didn't really know how to do it correctly.. still not sure that I do
07:06:32 <calamari_> it was going to be memory mapped, 8 bits contiguous
07:07:05 <calamari_> how does memory mapping usually work?
07:07:32 <calamari_> output seems easy enough, like set the bits and then set another bit to indicate a send
07:07:33 <GregorR> Well, in 2L I used a strange method by having a do-it register, but I'm not sure if that would work with BitChanger's }
07:08:12 <GregorR> You couldn't just walk over the do-it bit. I guess if it was bit 1 and then the data started at bit 2 that would work ....
07:08:30 <calamari_> because bit 0 can't really be set.. oops :)
07:09:14 <GregorR> By the way, if you ever decide to write SPARC machine code, take a word of advice from me and kill yourself.
07:09:32 <GregorR> It's not that it's that difficult, it's just so stupid that it makes me feel dumber having implemented it.
07:10:12 <calamari_> since assembly language seems to be dead these days.. the chances of me having to learn sparc seems low, so maybe I'm okay
07:11:10 <GregorR> For every purpose besides super-optimization, I concur.
07:11:11 <GregorR> However, when egobfc2m becomes the fastest complinterpreter on both i386 AND SPARC, I will feel quite ... well, egotistical.
07:11:20 <calamari_> I've only really ventured to 8088 and 6502, and another cpu for work back in 1996 that I don't remember anymore
07:12:14 <GregorR> I've done a fair amount of i386 and a bit of ia64, and now I'm learning just enough SPARC to copy output from gcc :P
07:12:29 <calamari_> I looked into 68000, and I would have done some stuff with it, but I was dumb and loaned my 68000 books to a coworker who then stole them
07:13:52 <GregorR> That reminds me, can I borrow your book on ... ;)
07:17:38 <calamari_> anyhow.. implement i/o however you like
07:18:33 <calamari_> then write it up on the wiki and I'll call that the standard :)
07:19:08 <calamari_> or tell me how you did it and I'll write it up
07:20:00 -!- calamari has quit (Read error: 110 (Connection timed out)).
07:20:05 -!- calamari_ has changed nick to calamari.
07:20:59 <GregorR> lol, no, egobfc2m for sparc blows up if you try to output :P
07:23:13 <calamari> I forced myself not to learn the asm of my hp48, because I'd have a portable goof-off machine.
07:31:07 <GregorR> AHAHAHAHAHAHAHAHAHAHAHAH!!!!!!!!!!!!!!!!!!
07:31:11 <GregorR> I AM THE CHAMPION!!!!!!!!!!!!!!
07:31:19 <GregorR> I HAVE NO HUMILITY AND YET I DON'T CARE!!!!!!!!!!!!
07:31:36 * GregorR checks off "Port to SPARC" on the egobf todo list.
07:45:36 -!- heatsink has quit ("Leaving").
07:53:13 <GregorR> Look at that mandelbrot set.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:30:50 -!- calamari has quit ("Leaving").
09:38:41 -!- tokigun has quit ("Chatzilla 0.9.68.5 [Firefox 1.0.4/20050511]").
09:49:51 -!- grimace_ has joined.
09:55:09 -!- GregorR has quit (Read error: 110 (Connection timed out)).
10:19:07 -!- kipple has joined.
10:46:49 -!- int-e has joined.
11:03:12 -!- Gs30ng has joined.
11:22:45 <Gs30ng> i'm working on making xml pages for udage. i think there would rather be some official pages for this
11:25:06 <Gs30ng> i got an interesting idea to make this language turing complete, but it needs a time to be embodied in detail
11:37:02 -!- Keymaker has joined.
11:39:28 <Gs30ng> congratulations Keymaker
11:44:04 <Gs30ng> you mentioned about turing-completeness in your spec but i'm afraid that Udage will be turing incomplete too :(
11:45:00 <Keymaker> i mentioned my language is NOT turing complete
11:45:16 <Gs30ng> and Udage will be turing complete, you said
11:45:29 <Gs30ng> ...right? or something like that, whatever
11:45:55 <Keymaker> as i thought it will be turing complete
11:46:06 <Gs30ng> maybe... you're right in that point. it's really hard to make it turing complete without any specific instructions.
11:46:14 <Gs30ng> i need a lot of repeatation
11:47:30 <Gs30ng> maybe your language is worth more as a marvelous toy
11:47:56 <Gs30ng> i'm obfuscated. i may give up turing completeness
11:48:00 -!- jix has joined.
11:50:05 <jix> Gs30ng: niom?
11:51:02 <Gs30ng> i heard about an wikiwiki system named moinmoin
11:51:28 <jix> moin (plattdeutsch (german diakect)) is short for mojen tach => guten tag (german) => good day (english)
12:08:59 -!- yrz\werk1 has changed nick to fede.
12:09:14 -!- fede has changed nick to Fedo1a.
12:09:39 <jix> +[++[->+[->->+<<[->>+<<]]>+>[-<<+>>]<<<]+] add cell 0 to cell 1 if cell 1 overflows add 1 to cell 2. cell 3 is temp
12:09:43 <jix> not tested but should work
12:09:54 <jix> much shorter than my old implementation...
12:10:01 <jix> aahh wrong snippet
12:10:08 <jix> [->+[->->+<<[->>+<<]]>+>[-<<+>>]<<<]
12:10:11 <jix> only this part
12:12:32 <Keymaker> hmmm. does this assume wrapping cells?
12:28:41 <jix> but works with any cell size
12:29:54 <int-e> sorry. I understood 'wrapping cells' to mean 'wrapping memory space' which I wouldn't like - but I see that's not what was meant now.
12:30:34 <jix> have to go now...
12:30:35 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
12:31:11 <int-e> Gs30ng: if you're using that switch.c of yesterday, get it again from http://www.inf.tu-dresden.de/~bf3/switch.c I fixed a very stupid bug.
12:31:39 <Gs30ng> but still there would be a lot of changes in spec, i think
12:31:45 <Gs30ng> to make it turing complete
12:32:06 <int-e> yes. there's a reason that I don't call it udage.c, say ;)
12:32:57 <Gs30ng> so if you are tired of fixing things again and again, just wait for settled spec
12:33:22 <Gs30ng> i feel sorry to bother you every time i change the spec
12:33:30 <int-e> it was a side effect of making a trigger interpreter
12:34:23 <Gs30ng> currently we have 3 operations in udage
12:34:30 <int-e> (http://www.inf.tu-dresden.de/~bf3/trigger.c)
12:34:44 <Gs30ng> NANDNP ( 2 times udage )
12:35:08 <Gs30ng> and i found that i can make 3 times udage operation
12:35:22 <Gs30ng> because AAABC and AABAC does exactly same thing
12:35:49 <Gs30ng> so one of them are not necessary
12:36:06 <Gs30ng> which means i can assign an operation to AAA(blah blah)
12:36:08 <int-e> not quite correct - a different switch is changed by the two instructions
12:36:56 <int-e> AAABC changes the A switch, AABAC the B switch, or did I miss another change there?
12:37:48 <Gs30ng> AABCD performs B NAND C and put the result to A(B and C has no change),
12:38:08 <int-e> but of course, AAABC and BBABC and CCABC all do the same thing
12:38:29 <int-e> to A? ah! that's my mistake then
12:39:13 <Gs30ng> maybe you misread it because of a lot of spec changes. i feel sorry for that
12:39:25 <int-e> I didn't actually read the spec change for NAND
12:39:45 <int-e> and don't feel sorry, it's my fault that I try to keep that interpreter up to date.
12:39:56 <int-e> I could stop any moment :)
12:40:37 <Gs30ng> ok then i'm gonna assign something to 3 times udage operation
12:40:48 <Gs30ng> this time it'll be turing complete, i hope
12:45:01 <Gs30ng> int-e, what do you think about this
12:45:20 <Gs30ng> i think the first operand and instruction must be different
12:45:47 <Gs30ng> they could be misread as some more repeatation
12:51:20 <int-e> Well, right now the longest matching pattern wins, which has that effect except for the I/O operation.
12:51:46 <Gs30ng> that's right but i may add 5 times udage operation
12:52:01 <Gs30ng> i thought about way like this:
12:52:11 <Gs30ng> AAA or AAAA starts the instruction
12:52:58 <int-e> that's certainly possible
12:53:11 <Gs30ng> nandnp operation don't need such a thing because it's operand are limited for 3, always, and don't need more
12:53:27 <Gs30ng> but AAAA operation, and maybe AAA operation needs
12:54:00 <int-e> it could be useful for the i/o operation in fact; it would make it easy to make programs for ASCII, or extend programs to use 32 bit unicode.
12:54:34 <Gs30ng> ok then i'll add it in my new spec
13:06:06 <Gs30ng> and int-e, you know that if we do that then a code like BAAAAAAAA...(Hello, World! code) woudn't work
13:06:51 <Gs30ng> to print something we need at least 3 characters(0, 1, instruction) then
13:09:01 <Gs30ng> ok, i was just too nervous
13:11:02 <int-e> but the hello world would become shorter, too
13:14:34 <int-e> something like BCCCCBAABAAACCCCCBBAABABCCCCCBBABBAACCCCCBBABBAACCCCCBBABBBBCCCCCBABBAACCCCCBAAAAACCCCCBBBABBBCCCCCBBABBBBCCCCCBBBAABACCCCCBBABBAACCCCCBBAABAACCCCCBAAAABCCCCCBABAC
13:49:00 <Keymaker> phew.. shoveling gravel isn't good for a human
13:58:41 -!- comet_11 has changed nick to CXI.
14:12:33 -!- GregorR has joined.
14:13:47 <Gs30ng> because of Nearest D thing, some trash characters are necessary to control the length to D
14:16:04 <Gs30ng> i don't like this and now i got an idea
14:16:13 <Gs30ng> i'll make it value-of-D-dependant
14:16:21 <GregorR> graue (who isn't here but will perhaps read the log): brainfuck + 16-bit + wrapping + eof-returns-'-1' can support binary files just fine
14:16:27 <Gs30ng> if D is 0 then jump to forward D
14:16:35 <Gs30ng> if D is 1 then jump to backward D
14:17:16 <GregorR> And if D is 0 and there isn't a forward?
14:17:46 <Gs30ng> just like we've been did
14:18:43 <Gs30ng> same rule for when D is 1 and no backward D
14:19:29 <Gs30ng> now there would be less trash codes (i'm not sure 'no' trash codes would be there)
14:22:42 <Gs30ng> oops... my mistake. 'nearest' backward D and 'nearest' forward D. there could be several Ds on code
14:35:46 -!- ditto has joined.
14:47:40 -!- Aardwolf has joined.
14:56:04 -!- klutzy has joined.
14:57:36 <Gs30ng> why do i have so many already-known people here
15:04:12 -!- ditto has quit (Client Quit).
15:09:31 <Aardwolf> hey, does anyone know the difference between the BSD license and the GPL license?
15:10:32 -!- graue has joined.
15:14:00 <int-e> BSD is short, GPL is political and long. BSD allows other to take your code and do pretty much whatever they want with it, GPL requires other users to license derived works under GPL as well and make their source code available
15:14:25 <Gs30ng> so BSD is something like LGPL?
15:15:20 <Aardwolf> I licenced something under BSD instead of GPL because I found GPL so long
15:15:28 <Aardwolf> I don't think I'd make a good lawyer, would I? :D
15:16:18 <int-e> LGPL is still quite long. and it's meant for libraries that can be linked to proprietary code without forcing its restrictions on that code - you still can not take the source code and incorporate it into other programs
15:17:02 <lindi-> Aardwolf: which BSD license are you talknig about btw?
15:17:14 <int-e> in short, Microsoft loves BSD code and despises GPL and LGPL.
15:17:20 <Aardwolf> Hmm good question, let me try to find out
15:17:34 <int-e> the old one (with advertising clause) or the new one? hehe
15:18:44 <Aardwolf> I took the one with advertising clause, and removed the advertising part :D
15:18:48 <Gs30ng> why do i have more difficulty on writing udage spec in Korean than English?
15:19:22 <Aardwolf> because I found the advertising thing ridicioulous since it was totally off topic
15:19:34 * int-e wonders who displaced the enter key where the ' key is supposed to be.
15:20:19 <int-e> http://www.opensource.org/licenses/bsd-license.php ... that site has also many other open source software licenses.
15:20:58 <Aardwolf> What I wanted with the licence was that credit is always given to my name, but for the rest they can do with it what I want, and I think BSD does just that
15:21:01 <Keymaker> what's the point of using licenses?
15:21:19 <int-e> without licenses, noone has the right to use your code in any way, technically.
15:21:38 <Keymaker> but if someone uses, there's no way to find it out
15:21:44 <Keymaker> especially if the product is compiled
15:22:11 <int-e> well, it's usually possible to find out, if the software wasn't trivial
15:22:22 <int-e> it'll be harder to convince a court of this though.
15:22:29 <Gs30ng> and that's why we are to write all codes in... like... befunge?
15:22:53 <Keymaker> esoteric languages are good choice for protecting the software you've written
15:23:08 <Keymaker> often it's extremely hard to borrow parts of esoteric language programs
15:23:23 <int-e> (hint: software usually employs nontrivial data structures. it's unlikely that independent development comes up with exactly the same data structure. fields will be arranged in different orders, some data will be managed in different locations and so on)
15:23:40 <int-e> the same goes for the algorithms that are being used.
15:23:52 <Keymaker> but well, changing them all a bit is easy
15:24:17 <Gs30ng> ...should i make udage so hard to compile?
15:24:45 <Keymaker> if someone really wants to use other's code without permission
15:24:45 <Gs30ng> like, self-modifying codes?
15:25:14 <Gs30ng> you mean nobody *can* ?
15:25:17 <int-e> Keymaker, just keep your code to yourself ;)
15:25:26 <int-e> noone will steal it then.
15:25:36 <Keymaker> i don't care if someone rips my code
15:25:52 <Keymaker> (see bf-hacks.org for example)
15:26:09 <Gs30ng> Keymaker license is enough for me
15:26:23 <int-e> anyway, licenses are not a technical instrument, they are a legal instrument. *if* you can prove someone used your code without a license, then you can take legal action against them.
15:26:25 <Gs30ng> just telling me, "i want to use your idea"
15:26:50 <Gs30ng> it's enough for me. if i don't want a code to be copied, i can just keep it to me, just like int-e said
15:27:23 <Keymaker> what if i license #include <stdio.h>
15:27:24 <Keymaker> int main(){printf("Hello world!");}
15:27:34 <Keymaker> someone else has done it before me
15:27:51 <int-e> well, you'll have to prove that it was copied from *you*
15:28:01 <Gs30ng> there's already a lot of precedents, Keymaker
15:28:15 <int-e> you need to have the copyright before you can give out licenses and you don't own that for this piece of code.
15:28:59 <Keymaker> but how can i be sure that nobody hasn't made the exactly same piece of code before and licensed it?
15:29:13 <Keymaker> i need to go through every released code..
15:29:30 <Gs30ng> you can search some precedents to make sure what kind of codes are possible to be proved that it's copied
15:29:31 <int-e> nah. it doesn't work that way
15:29:42 <int-e> the other side has to prove that you copied their code.
15:30:35 <Keymaker> well, i'm not using any licenses, still :)
15:30:36 <int-e> (this is different from patent law where you can unknowingly infringe a patent)
15:47:34 -!- klutzy has changed nick to All.
15:47:56 * All your base are belong to us
15:48:11 -!- All has changed nick to klutzy.
15:49:17 * int-e slaps klutzy with a large trout.
15:50:47 <Gs30ng> ...now THIS is esoteric.
15:51:04 <Keymaker> this 'All' thing was really good hehe
15:51:39 -!- int-e has changed nick to I.
15:51:45 * I don't think so.
15:51:48 -!- I has changed nick to int-e.
15:53:06 -!- Keymaker has changed nick to grin.
15:53:20 -!- grin has changed nick to Keymaker.
15:53:22 -!- klutzy has changed nick to why.
15:53:27 -!- why has changed nick to klutzy.
15:54:12 <Keymaker> the nick didn't change to 'Just'
15:54:27 <int-e> do you know programming languages where (: and :) are language tokens?
15:54:37 <int-e> I know they are in LPC.
15:54:46 <Keymaker> probably that emoticon language
15:58:38 <Gs30ng> who can handle that ChanServ?
16:00:07 <graue> GregorR: yes, I know Brainfuck with >8 bit cells is potentially non-useless
16:01:11 <fizzie> "Keymaker for fun" sounds interesting. :p
16:02:28 <Keymaker> i tried to change my nick to 'Just', didn't notice the message that's it already in use, and just posted "/me for fun."
16:02:43 <Gs30ng> who uses the nickname 'just'?
16:03:04 <Gs30ng> he(she?) seems joining no channel
16:03:29 <int-e> well, it could be a secret channel
16:03:41 <Keymaker> there are secret channels too?
16:04:09 <fizzie> Channels with the mode +s don't show in whois.
16:05:56 -!- Fedo1a has quit (Read error: 110 (Connection timed out)).
16:09:09 -!- Fedo1a has joined.
16:53:50 <GregorR> Keymaker: You really really REALLY ought to license your code.
16:54:18 <GregorR> Even just a note at the top saying "You can use this code however you please" is far better than unlicensed code.
16:55:39 <GregorR> Code without a license cannot be redistributed or modified legally.
16:56:01 <Gs30ng> do we need that? i mean, if we don't note it, doesn't it automatically preserved by law?
16:56:11 <lindi-> it can be modified but you can't distribute the modifications :)
16:56:27 <GregorR> Err, yes, lindi- is correct.
16:56:50 <int-e> Gregor, that's correct, but in our case (esoteric code snippets created for fun, not for money) it's unlikely that the copyright holder takes legal action
16:56:53 <GregorR> Gs30ng: You as the author have the right to do what you wish, but by default everyone else has no right whatsoever to it.
16:57:53 <int-e> a license serves as a protection for the licensee, because then he can stand up in court and say: "Yes, I copied that code, I even modified it, but see, here's a license that states I was allowed to do that."
16:57:54 <GregorR> (Actually, with snippets of code "fair use" comes in and then it's sort of nebulous)
16:59:57 <GregorR> Furthermore, if the author did take action, I think they'd be laughed out of court ;)
17:00:30 <graue> I think that at least particularly long programs, and/or implementations of languages, should have an explicit license
17:03:33 <Gs30ng> i don't fully understand what 'implementations of languages' means. it's like, spec? or interpreters? or compiled source codes written in that language?
17:04:00 <graue> interpreters or compilers
17:07:58 <Keymaker> this trigger program, "# You can freely modificate this source and distribute it."
17:08:24 <Keymaker> looks like it's a comment, but it really just changes flips some triggers and tries to do some jumps
17:09:02 <Keymaker> so, don't believe everything there reads in program :)
17:09:17 <GregorR> It also doesn't help that "modificate" isn't a word :P
17:10:00 <int-e> but it's not in the dictionary
17:17:39 <GregorR> Anybody have a PowerPC or AMD64/EM64T?
17:18:26 -!- BigZaphod has quit.
17:18:39 <graue> yes, someone somewhere does
17:19:02 <fizzie> I have a G4-iBook (that's PPC) and at work one amd64 box I can ssh to.
17:20:08 <fizzie> fis@erottaja:~$ cat > test.c
17:20:08 <fizzie> int main(void) { printf("%d\n", sizeof(long)); return 0; }
17:20:08 <fizzie> fis@erottaja:~$ gcc -o test test.c ; ./test
17:20:37 <fizzie> "It must be an AMD64, sizeof(long) == 8."
17:21:19 <GregorR> You could cat /proc/cpuinfo
17:21:52 <GregorR> But anyway, could you compile a test program and give me an ASM/hex dump so I can port egobfc2m?
17:22:57 <GregorR> http://gregorr.homelinux.org/egobf-0.7.tar.bz2 < the instructions are in the "PORTING" file.
17:23:19 <graue> is that a releasE?
17:24:18 <GregorR> 0.8 will have SPARC and (hopefully) PPC support 8-D
17:26:33 <fizzie> Hrm. "Connecting to gregorr.homelinux.org[24.21.138.66]:80... failed: Operation timed out."
17:26:33 -!- Gs30ng has quit ("SKYIRC Ver Pro http://cafe.naver.com/skyirc.cafe #skyirc").
17:26:57 <fizzie> It's already been 10 secs.
17:27:35 <GregorR> I forgot to reenable port forwarding when my network went screwy ...
17:27:51 -!- calamari has joined.
17:27:54 <graue> too bad you can't use UPnP or whatever
17:28:20 <GregorR> OK, hully works, hullo might have been more logical :P
17:31:17 <GregorR> calamari: For my own convenience, I'm going to implement BitChanger like so: bit 7 is the switch-bit that causes IO, bits 8-15 are the IO bits, the pointer starts at bit 16
17:31:39 <GregorR> That way, I don't have to have an extra bit floating around, since I wasted 7 in padding :P
17:33:16 <GregorR> If 8-15 is 00000000, do input (you can't output a 0 in this scheme, which may or may not be OK)
17:34:00 <GregorR> Hmm, perhaps an even better implementation would be: 5 is the switch-bit, 6 gets set on EOF, 7 you set for I vs. O, 8-15 are I or O.
17:37:18 <fizzie> Well, there's a http://www.befunge.org/~fis/test_amd64_gnuWlinux.s already... objdump isn't included in the standard "developer tools" OS X thing, so I'm fetching binutils now. I can also create some ppc-linux-ELF-executables, but I need to reboot the laptop for that.
17:39:04 <GregorR> The OS is actually unimportant.
17:39:17 <GregorR> I don't do any OS-specific code.
17:40:22 -!- CXI has quit (Read error: 104 (Connection reset by peer)).
17:40:23 <fizzie> Well, the executable/object-file format is OS-specific.
17:40:35 <fizzie> If those are what you create.
17:40:47 -!- CXI has joined.
17:41:17 <GregorR> fizzie: They aren't, I just create raw machine code in memory.
17:41:26 <GregorR> fizzie: That is, they aren't what I create.
17:48:02 <calamari> Gregor: http://esolangs.org/wiki/BitChanger :)
17:50:56 <GregorR> I'll work on that this evening.
17:51:08 <GregorR> Ought to be able to bang out a non-optimizing compiler relatively quick *shrugs*
17:51:28 <graue> why are bits 0-4 unused?
17:51:48 <calamari> graue: jutst so the pointer starts on an even byte, I'd assume
17:52:11 <GregorR> Yeah, pure Gregorian lazyness.
17:52:34 <GregorR> From a programmatical standpoint, it's no different, but from an implementation standpoint it's far easier.
17:52:59 <graue> then just move everything 4 bits back in the language, and in the implementation issue an error if it moves to bit -1 (implemented as bit 3)
17:53:37 -!- BigZaphod has joined.
17:54:12 <calamari> wish I defined } as @> instead of >@.. oh well
17:55:08 <graue> not like there's a bunch of legacy BitChanger code out there
17:55:23 <GregorR> I've implemented nothing yet, so feel free calamari
17:56:10 <graue> what happened with that Brainfuck frontend for gcc that someone was going to do?
17:58:12 <calamari> well, the original was >@ .. it feels dishonest to change it 5 years laterg
17:58:25 -!- calamari has quit ("Leaving").
18:03:52 -!- calamari has joined.
18:04:20 <calamari> wonder if my shell providere was beign attacked or something
18:04:38 <lament> i'm stealing their servers one by one
18:05:03 <calamari> save one for me so I can check my e-mail ;)
18:25:09 -!- calamari has quit ("Leaving").
18:31:21 <fizzie> http://www.befunge.org/~fis/test_ppc_osx.s
18:31:54 <fizzie> Now to the grocery store before it closes. ->
18:40:32 -!- GregorR has quit (Read error: 110 (Connection timed out)).
18:57:02 -!- GregorR has joined.
19:40:10 -!- GregorR_ has joined.
19:40:10 -!- GregorR has quit (Read error: 104 (Connection reset by peer)).
19:40:11 -!- GregorR_ has changed nick to GregorR.
19:41:01 -!- grimace_ has left (?).
20:00:38 -!- jix has joined.
20:00:38 -!- Keymaker has quit (Read error: 104 (Connection reset by peer)).
20:19:50 -!- int-e has quit ("Bye!").
20:19:56 -!- int-e has joined.
20:51:27 -!- calamari has joined.
20:51:36 <GregorR> Gaaah, my connection sucks so much.
20:52:11 <calamari> what are you complaining about cable boy?
20:52:32 <GregorR> I keep getting discon--ohh, 56k AHAHAHAHAHAHAHA
20:55:33 <calamari> channel log isn't up to date.. weird
20:58:08 <GregorR> Who's clog? cmeme does the logging, right?
20:59:47 <calamari> http://tunes.org/~nef/logs/esoteric/05.07.27
21:04:19 <graue> clog and cmeme both do the logging
21:04:26 <graue> otherwise, how would we know when one of them disconnected?
21:04:39 <GregorR> BTW, int-e, thanks a ton for the SPARC output, and also ... could you give me a 64-bit version of those SPARC files as well (that is, with -m64 to gcc if your gcc supports it)?
21:04:48 <GregorR> graue: I guess that makes sense ....
21:05:03 <graue> clog looks up to date to me
21:05:19 <int-e> GregorR: I can try
21:05:35 <GregorR> No worries either way, it's just a luxury :)
21:05:48 <GregorR> After all, anybody with sparc64 can run sparc32 code.
21:07:39 <graue> is that why you aren't rushing to implement an AMD64 version, as well?
21:07:51 <int-e> cc1: -m64 is not supported by this configuration
21:08:06 <int-e> oh it's a good old gcc 2.95.3
21:09:38 <GregorR> graue: AMD64 is a bit higher priority for me because A) it's CISC (I'm lazy) and B) it's more common.
21:09:46 <int-e> oh found another sun with gcc 3.4.2 :)
21:09:56 <int-e> let me try it there
21:10:00 <GregorR> How do you have so many SPARCs floating about?
21:10:17 <int-e> account at the university
21:14:48 <int-e> but this one has a stupid tar. tar: z: unknown function modifier
21:15:54 <GregorR> Or better yet, ar rc - ... | compress -c
21:15:57 <GregorR> Because standards are for the weak.
21:16:27 <int-e> interestingly, cpio exists
21:17:06 <int-e> http://www.inf.tu-dresden.de/~bf3/test_sparc64.tar.gz
21:17:16 <GregorR> Yaaaaaaaaaaaaaaaaaaaaaaaaaaaaay ^_^ You rock x4
21:17:39 <int-e> and test64.0: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked, not stripped, no debugging information available
21:18:26 <int-e> SunOS xxx 5.10 Generic sun4u sparc SUNW,Ultra-4
21:20:11 -!- graue has quit ("Donate a manual typewriter to ME for your only hope for a future!").
21:21:01 <int-e> uh, let me do that again
21:21:20 <GregorR> Hmm, it seems to have that information in here.
21:22:30 <int-e> ok, please download that file again
21:22:34 -!- miraage has joined.
21:23:15 -!- miraage has left (?).
21:24:00 <int-e> ah I see why -O2 is not really useful. hehe.
21:24:55 <GregorR> -O1 still parses and creates code for every command, -O2 is better for real code, but not useful for trying to produce ASM :)
21:25:22 <int-e> yes, I just saw that it combined a whole bunch of additions
21:25:27 <int-e> well doesn't hurt either
21:25:54 <GregorR> Ahh, RISC. On SPARC32, it took two instructions to put an address in a register, on SPARC64 it takes three XD
21:26:29 <GregorR> (On CISCy i386 it's not even necessary since you can just load the value at the address into a register)
21:31:42 <int-e> ah. sethi, or, shift, sethi, (another or? does sethi clear the upper 32 bits?) and the last 16 bits go into the load ... funny.
21:35:15 <int-e> I know 386 assembly quite well and I've done a little MIPS coding (well, for the SPIM MIPS simulator, actually.)
21:35:50 <int-e> Sparc seems to be close to MIPS.
21:38:20 <GregorR> I try to stay away from ASM in RISC whenever possible, but I've done i386 and ia64 coding.
21:38:32 <GregorR> That ", but" should be ";"
21:39:16 <fizzie> I sorta liked writing for SPIM.
21:39:29 <fizzie> At least you can remember the instruction set, unlike x86.
21:39:59 <fizzie> And it doesn't have any funny rules. "Hey, you can only input/output from the register C."
21:40:58 <GregorR> I'm just afraid of taking RISCs (pardon my terrible pun)
21:41:14 <GregorR> Not that I have anything against RISC, for RISC is excellent.
21:43:01 <GregorR> {^Raven^}: For programming in or general use?
21:44:44 <{^Raven^}> GregorR: both, RISC is simpler to program if there is a good orthogonal intruction set and I find that in use RISC is much more efficient
21:46:04 <{^Raven^}> I've only got a 202Mhz ARM based RISC machine but the speed is irrevelant compared to how useful it is
22:32:11 -!- BigZaphod has quit.
22:40:24 <int-e> imho usability has nothing to do with the architecture
22:49:36 <GregorR> If BF was the machine code for an architecture, would it be CISC or RISC :))
22:50:10 <GregorR> (Note that rather than relative or absolute addressing, said architecture would use magic addressing :P )
22:51:01 <fizzie> I still want to see a 2d-language processor. Befunge, for example.
22:51:35 <GregorR> Or 2L *Gregor collects his shameless plug points*
22:52:26 <fizzie> Did you see my link for the ppc output? You dropped soon after, so I can't be sure.
22:54:28 <GregorR> calamari: 2L is definitely a tarpit
22:54:39 <GregorR> fizzie: Hmm, I don't think I did actually.
22:55:37 <fizzie> http://www.befunge.org/~fis/test_ppc_osx.s
22:55:56 <GregorR> calamari: Why thank you 8-D
22:56:33 * calamari needs to learn how to read again
22:59:13 <calamari> is there a standard for what happens on non-*+ ?
22:59:22 <GregorR> It's nop (hence I'm cheating)
22:59:54 <calamari> yeah.. so it's three chars.. but still cool. much like wierd actually
23:00:32 <GregorR> Actually, there are two inaccuracies on that page.
23:00:46 <GregorR> It starts going down, not right. If it was going right you couldn't turn away from the edge.
23:00:47 <calamari> hmm, I guess 4 chars including the newline
23:01:10 <GregorR> I think the newline can be ignored as an encoding entity.
23:01:48 <calamari> if playfield width is specified, sure
23:04:49 <GregorR> Well, ideally there would be a two-dimensional file format to encode it in, but because hard disks are one-dimensional, it has to be encoded into one dimension.
23:05:41 <calamari> hard disks are one dimensional?
23:05:57 -!- jix has quit (kornbluth.freenode.net irc.freenode.net).
23:05:57 -!- pgimeno has quit (kornbluth.freenode.net irc.freenode.net).
23:05:58 <fizzie> Heh, two-dimensional disks and rectangular files -- would be, uh, "nice" to write a file-system for that.
23:06:21 -!- jix has joined.
23:06:21 -!- pgimeno has joined.
23:08:15 <GregorR> defragmenting would be fun :P
23:08:34 <GregorR> Assuming the file-system even allowed fragmentation.
23:08:48 <fizzie> At least you could have nifty graphical effects when defragmenting.
23:08:56 <fizzie> "Oooh, files are flying everywhere."
23:10:28 <int-e> hmm, there could be circular files, wiggly files ...
23:10:28 <GregorR> Assuming you didn't die of old age while writing the defragmenter itself.
23:10:32 <int-e> the possibilities!
23:11:11 <GregorR> So, sorry fizzie, but it seems that gobjdump on PPC is totally worthless, so I don't think I'll be able to port it >_<
23:11:31 <GregorR> If I knew PPC ASM, I could use ppc-elf-as to figure it out ... but I don't.
23:11:43 <fizzie> Hm? (I didn't really look at the dump.)
23:12:03 <GregorR> It doesn't divide it into functions or show what corresponds to what code.
23:12:26 <GregorR> So it's just a huge chunk of unlabeled assembly in a language I don't know.
23:12:49 <fizzie> I can compile-and-objdump it in linux. ELF objects might behave better than "mach-o-be" objects.
23:13:15 <jix> what do you want to do with ppc asm?
23:13:18 <GregorR> fizzie: That makes sense, since objdump was designed (I think?) for ELFs originally.
23:13:18 <fizzie> "I needed to fix that dual-boot setup anyway." (Installing Tiger overwrote the linux booter.)
23:13:33 <GregorR> jix: I'm porting egobfc2m to numerous platforms.
23:14:12 <GregorR> I've only got i386 and SPARC so far, but I've big plans :P
23:14:34 <jix> creates egobfc2m binaries? or does it "jit" compiling?
23:15:09 <GregorR> Have you not run egobfc2m?? It's faster than every interpreter and most compilers (when compilation time is included)
23:15:31 <fizzie> gregorr; btw, OS X has a corresponding proggie called "otool", which does sorta-show function start symbols, but it's really brain-dead in other ways.
23:15:41 <fizzie> Mainly, it doesn't show the bytes corresponding to the instructions.
23:15:54 <GregorR> fizzie: Making it worthless for my purposes, sadly.
23:16:12 <GregorR> Well, not quite worthless.
23:16:21 <int-e> GregorR: re: Sparc, is that ready to be tested?
23:16:34 <fizzie> Well, it does show the addresses, and it can dump a undisassembled hexdump, so you can cross-reference. :p
23:16:45 <jix> GregorR: are you porting it to ppc atm?
23:17:24 <int-e> jix, gregor said something about that just 6 minutes ago
23:17:41 <int-e> just after you said 'back'
23:18:12 <GregorR> int-e: http://gregorr.homelinux.org/egobf-0.7.1.tar.bz2
23:18:31 <GregorR> int-e: I don't actually remember more than about 2 seconds ago, you've got to constantly keep my memory refreshed ;)
23:18:41 <int-e> -bash: wget: command not found
23:18:48 <GregorR> int-e: That works under qemu-sparc, so it SHOULD work.
23:19:08 <int-e> /usr/sfw/bin this time
23:19:11 <int-e> I should really set PATH
23:19:26 <jix> what optimizations does egobf?
23:20:42 <int-e> well, I had to set PATH - configure didn't find gcc ;)
23:21:10 <GregorR> jix: egobfi has a few, egobfc2m just compiles >>><<>>>> and+++-- into single commands and [-] into 0s.
23:21:53 <int-e> and make is called gmake *clicketyclick*
23:22:10 <int-e> (had to change MAKE variable in Makefile for that)
23:22:40 <GregorR> I think MAKE=gmake ./configure ... would have had the same effect.
23:23:13 <jix> export MAKE=gmake ; ./configure should work
23:24:53 <jix> GregorR: we should create an universal extensible highlevel bf translation language (and creat a lib) that would make compiling code and optimizing code independent
23:25:26 -!- graue has joined.
23:25:35 <GregorR> I'm in a meeting, I'll have to continue discussion in a whiel.
23:25:39 <graue> what's this crack about 2L's IP going down to begin with?
23:26:01 <graue> I implemented an entire interpreter and a test program thinking it started going right :(
23:26:41 <graue> it be 3 columns wide and 70-some lines long
23:26:47 <graue> s/it/the program would/
23:27:16 <fizzie> Egh. I need a bootable CD to fix my dual-boot issue, but I just moved, all my stuff is in boxes, where am I supposed to find a cd-rw.
23:28:04 <graue> I wish my worries were that easily solved, fizzie! (go to the store and buy one)
23:28:20 <fizzie> Floppies? This is an iBook I'm speaking of.
23:28:26 * calamari still has a 5.25" drive in his computer
23:28:32 <fizzie> I doubt it has even seen a floppy drive.
23:28:52 <calamari> mac.. well.. theres your problem!
23:29:09 <fizzie> For a laptop it's surprisingly nice.
23:29:24 <fizzie> For the essentials (read: irc) during lectures.
23:29:30 <GregorR> graue: Does that actually run things? I may be thinking backwards...
23:30:44 <graue> GregorR, my interpreter actually runs programs, yes
23:30:56 <GregorR> OK, lemme check if I'm just an idiot.
23:31:33 <fizzie> I gave away my last 5.25" floppy drive, a friend had bought a http://www.jschoenfeld.de/products/catweasel_e.htm and needed the drive.
23:31:52 <GregorR> Actually, lemme check when I'm out of my meeting :P
23:32:44 <graue> I have an old 486 with a sorta broken case that doesn't boot that has a 5.25" floppy drive in it
23:33:10 <fizzie> You must have a weird time-zone. (Or a weird meeting -- perhaps your local satan-worshipping cult ritual thing?) It's 01:30am here.
23:33:27 <graue> it's 3:30 pm there
23:33:50 <jix> fizzie: 0:30am here
23:33:51 <graue> since when are time zones "weird"?
23:34:13 <fizzie> Obviously some time-zones are more weirdidic than others.
23:34:29 <fizzie> I assume there's an uncomplicated formula for the weirdness.
23:35:09 <fizzie> Something like W = difference-from-UTC.
23:39:00 <GregorR> graue: Does your interpreter run my Hello World ...?
23:39:43 <graue> where is it? I'll add it to the esolangs file archive
23:39:57 <GregorR> Heheh. I think you should have read my spec instead of the wiki page.
23:40:51 <GregorR> wget http://www.befunge.org/fyb/2l/exa/HelloWorld.2l
23:40:59 <graue> befunge.org was down at the time
23:41:02 <GregorR> Hmm, #esoteric is not a shell, Gregor.
23:41:04 <graue> and you wrote the wiki page
23:41:27 <graue> it runs it but just does nothing
23:42:21 <graue> it's turning left at the very beginning of the program, at the first +
23:42:24 <graue> since it starts going right
23:44:01 <graue> fixed it, now your hello world freezes, unless it's just very, very slow
23:44:40 <graue> seems to have hung
23:47:54 <jix> i want to write some cool brainfuck app
23:48:01 <jix> any ideas?
23:48:13 <graue> implement SHA-256 or TIGER or WHIRLPOOL
23:48:32 <graue> or make a program that sorts strings separated by newlines
23:48:34 <jix> no nothing that needs binary files
23:48:42 <graue> or make a program that creates a uniform random permutation of strings separated by newlines
23:48:51 -!- ditto has joined.
23:49:02 <jix> graue: hmm sorting strings seperated by newlines...
23:49:14 <jix> is bubblesort ok?
23:49:28 <graue> how about cocktail shaker sort?
23:49:38 <graue> http://en.wikipedia.org/wiki/Cocktail_sort
23:49:39 <jix> cocktail shaker sort?
23:50:04 <graue> there's something on that article's talk page about speeding up the algorithm, as well
23:50:57 <jix> hmm something easier than sort
23:51:33 <graue> finding order statistics?
23:51:39 <jix> hmm bogosort ^^
23:51:55 <jix> http://en.wikipedia.org/wiki/Bogosort
23:52:00 <graue> yeah, I've seen that
23:52:16 -!- Gs30ng has joined.
23:52:29 <Gs30ng> i completed new version of Udage spec
23:52:35 <Gs30ng> http://gs30ng.exca.net/udage/spec-en.xml
23:53:26 <Gs30ng> i should edit esolang wiki page to link this page
23:54:13 <graue> I wonder if there are any patents easy enough that you could violate them with a Brainfuck program
23:54:32 <jix> graue: isn't css patented?
23:54:42 <jix> content-scrambling-system or something like that
23:54:54 <graue> no, that was a DMCA (copyright law) issue
23:54:54 <jix> the dvd encryption...
23:55:01 <graue> MPEG2 is patented, though
23:55:03 <jix> it's implemented in brainfuck
23:55:26 <jix> Gs30ng: your spec doesn't work with safari
23:56:13 <graue> oh wow, I was just reading about that (xhtml files sent as text/html)
23:56:50 <graue> http://www.hixie.ch/advocacy/xhtml
23:57:04 <graue> Gs30ng: you should make sure your server sends the page as application/xhtml+xml
23:57:39 <jix> graue: the problem is it uses xslt and i think safari doesn't support that
23:57:58 <Gs30ng> SAFARI DOES NOT SUPPORT XSLT?!?!
23:58:15 <graue> I don't even know what XSLT is :)
23:58:31 <jix> graue: xml style sheet or something like that
23:58:31 <Gs30ng> then i need a parsed html page
23:58:32 <graue> can you implement an XSLT extension to safari in brainfuck?
23:59:09 <Gs30ng> anyone here have XML+XSLT=HTML parser?