←2005-07-27 2005-07-28 2005-07-29→ ↑2005 ↑all
00:01:14 <jix> hmm safari should support xslt
00:01:40 <Gs30ng> i think it does
00:01:45 <jix> maybe it has problems with utf8 characters as xml tags
00:02:07 <Gs30ng> hmm... that makes sense
00:02:16 <Gs30ng> ok i'll change every xml tags to ascii
00:03:08 <Gs30ng> ...it is currently impossible
00:06:01 <Gs30ng> does it work now?
00:06:25 <Gs30ng> oops
00:06:37 <jix> no :(
00:06:57 <Gs30ng> now there's no utf8 character on xml file
00:07:30 <Gs30ng> if i need to delete every utf8 character even in xsl file, i'd rather find a parser to build an html file
00:07:37 <jix> don't know why it doesn't work
00:07:50 <Gs30ng> have no choice but safari?
00:08:03 <jix> i have camino (gecko based) it works there
00:08:04 <Gs30ng> like, firefox?
00:08:26 <jix> firefox' interface laggs..
00:10:48 <Gs30ng> i have no idea about this
00:10:55 <Gs30ng> they are all UTF-8
00:11:02 <Gs30ng> and server is utf8 too
00:11:21 <Gs30ng> there should be no error from encoding/decoding
00:11:47 <Gs30ng> http://gs30ng.exca.net/udage/spec-en.xml
00:11:50 <Gs30ng> http://gs30ng.exca.net/udage/spec-ko.xml
00:11:55 <Gs30ng> both page doesn't work?
00:12:07 <jix> yes
00:12:45 <Gs30ng> no way
00:12:59 <Gs30ng> it must be a bug of safari
00:24:23 <Gs30ng> you can just view-source it
00:24:52 <Gs30ng> i structurized it easy to read
00:25:49 <Gs30ng> int-e should be noticed about this for his udage interpreter in c
00:25:58 <fizzie> "xsltproc" is good.
00:26:07 <Gs30ng> parser?
00:26:16 <fizzie> XSL style sheet parser thingie.
00:26:40 <Gs30ng> where can i get one
00:26:58 <fizzie> I've used it for debugging some xml+xslt things that were supposed to generate xhtml, since mozilla's xslt thing doesn't give too great error messages.
00:27:36 <fizzie> Debian has a "xsltproc" package.
00:27:47 <fizzie> I guess it _was_ xsltproc I used, hmm.
00:28:05 <fizzie> Yes, it was. Part of Gnome's XSLT lib.
00:28:21 <jix> lol
00:28:26 <jix> idea for a language
00:28:44 <jix> all non-alphanumeric characters are ignored
00:29:07 <Gs30ng> well
00:29:09 <Gs30ng> is it?
00:29:29 <jix> and the angle of two keys on the german keyboard decides about the instruction
00:30:03 <Gs30ng> this language is character-independant because one of design goal was that
00:30:04 <jix> hmmm ü+öä#<,.- are allowed too
00:30:30 <Gs30ng> in my client the words are broken
00:30:42 <jix> Gs30ng: encoding?
00:30:43 <int-e> Gs30ng: I saw that
00:31:07 <Gs30ng> jix: yes
00:31:13 <Gs30ng> int-e: how do you feel
00:31:20 <int-e> tired :P
00:32:01 <Gs30ng> jix: you still cannot read the spec page?
00:32:22 <jix> Gs30ng: yep
00:32:32 <Gs30ng> cannot view-source it?
00:32:36 <jix> using safari i can't using camino i can
00:33:03 <jix> the first thing i did after trying safari was launching it in camino and reading it.. i just wanted to inform you that it doesn't work with safari
00:33:20 <Gs30ng> i want it work with safari
00:33:27 <Gs30ng> thx
00:33:51 <Gs30ng> i'll find out some ways to fix it
00:35:24 <int-e> oh, you added inderection and a very big address space, interesting
00:35:30 <int-e> indirection
00:35:34 -!- ditto has quit ("Leaving").
00:35:44 <Gs30ng> copying OISC
00:35:52 <Gs30ng> i intended turing completeness
00:36:04 <Gs30ng> yes, very big address space
00:36:28 <Gs30ng> and now operations like this is possible with limited code:
00:36:31 <Gs30ng> user inputs.
00:36:35 <Gs30ng> computer records.
00:36:41 <Gs30ng> repeat until user inputs 0.
00:37:19 <int-e> it's not turing complete but it will be possible to represent any practical computation.
00:37:30 <Gs30ng> still not turing complete?
00:37:47 <int-e> hmm
00:38:21 <Gs30ng> i think i chose same method of OISC so it's turing complete
00:38:33 <int-e> yes, because you cannot address an unlimited memory with a finite program (a finite program mean that the address length in every AAAxxxA instruction is finite as well)
00:38:51 <int-e> it's enough for all practical purposes though
00:39:00 <int-e> so I'd not worry about this.
00:39:07 <Gs30ng> oh you meant that way
00:39:23 <Gs30ng> it is unable for other languages too
00:39:43 <Gs30ng> like, 1 variable cannot carry too big number or something
00:40:00 <int-e> well, in brainfuck the theoretically unbounded memory is the tape
00:40:05 <jix> it's possible to address more than 2^(2^16) adressess .. 2^256 is enough for everything
00:40:15 <int-e> yes.
00:40:26 <int-e> enough for all practical purposes, as I said :)
00:40:29 <jix> there isn't enough energy in the universe for running ram modules that store 2^256 bytes
00:40:33 <jix> or something like that
00:40:45 <int-e> very likely.
00:40:47 <jix> with 2^512 it's possible to adress every molecule in the universe...
00:40:56 <jix> or 2^256
00:41:19 <int-e> you have to keep in mind that the Turing machine is an entirely theoretic construct.
00:41:30 <graue> I read that the number of atoms in the observable universe is 10^80
00:41:33 <graue> which is greater than 2^64
00:41:48 <graue> wait, I'm wrong, disregard that
00:42:14 <int-e> and a language to be turing complete means that if it's run on idealized hardware (that supports arbritrary sized integers or infinite memory) you can simulate any turing machine on it.
00:42:31 <int-e> graue, but 2^256 is close to that :)
00:42:34 -!- kipple has quit (Read error: 110 (Connection timed out)).
00:42:59 <Gs30ng> well
00:43:06 <Gs30ng> now i understand what int-e is talking
00:43:11 <lament> no, if a language is turing-complete that means you can simulate any turing machine on it.
00:43:19 <lament> hardware never ever comes into consideration.
00:43:32 <jix> 2^(2^# of unicode chars)) should be enough for everything
00:43:34 <Gs30ng> a limited source code can only use a limited memory space
00:43:42 <jix> Gs30ng: wrong
00:43:46 <lament> Gs30ng: why?
00:43:52 <Gs30ng> ...in my lang
00:43:57 <lament> oh
00:43:59 <jix> right
00:44:04 <int-e> lament: the hardware comes in at the point where I want to give the semantics of the language
00:44:05 <lament> then your language is not turing-complete
00:44:10 <Gs30ng> lament: yes
00:44:17 <lament> unless you have bignums or something
00:44:37 <Gs30ng> but can do anything that turing machine can do, currently
00:45:01 <jix> Gs30ng: wrong you can do anything that real machines can do
00:45:01 <lament> if there's some way to cram infinite amount of data into a single memory cell, you could have TC
00:45:07 <int-e> the 'hardware' of a brainfuck program is an infinte tape and a pointer to the tape. they're both theoretical entities, idealized from real hardware.
00:45:47 <int-e> just to clarify what I meant by 'hardware'.
00:45:54 <Gs30ng> anybody have an idea to make this lang TC?
00:46:28 <lament> why do you copy oisc anyhow?
00:46:31 <lament> it exists
00:47:08 <Gs30ng> well
00:47:10 <Gs30ng> lack of idea?
00:47:14 <int-e> you could use relative addressing, relative to the last address used
00:47:32 <int-e> that's similar to a tape and you need a way to specify negative offsets
00:47:49 <Gs30ng> relative addressing
00:47:57 <int-e> but it will be possible to simulate brainfuck then and your language would be turing complete.
00:48:14 <Gs30ng> ok i'm gonna change all memory cells to stack
00:48:21 <Gs30ng> ...this is not good
00:48:29 <jix> not stacks
00:48:42 <jix> relative addressing is good
00:48:53 <Gs30ng> i don't actually get the idea
00:48:58 <Gs30ng> tell me more about that
00:50:00 * int-e wonders if it's possible to use an unbounded number format (they exist. 0 is represented as 1, and other numbers are represented as 1<number of bits of the number><bits of the number>) and indirect addressing.
00:50:32 <int-e> err
00:50:37 <int-e> 0 is represented as 0 :)
00:50:42 <int-e> and it's number of bits-1
00:50:49 <int-e> but the basic idea is exactly that.
00:51:20 <Gs30ng> ...
00:51:24 <lament> how do you know the number of bits of the number of bits?
00:51:26 <int-e> so, 1 would be 1 0 1, 2 would be 1 101 10, 3 1 101 11, 4 1 110110 100, etc.
00:51:39 <int-e> lament: recursively apply the construction
00:52:02 <lament> then how do you know when to stop? :)
00:52:15 <int-e> when I find a 0
00:52:27 <lament> ah
00:52:56 <lament> so 2 would be 1 1 10 0 ?
00:52:57 <int-e> parse = if getbit=0 then 0 else bits=parse; num=get_n_bits(bits)
00:53:49 <Gs30ng> i do not understand
00:54:43 <int-e> ok, let me correctly specify the number (and optimize some): 0 is 0. an n-bit number <1a[1]a[2]a[3]...a[n]> is represented as 1 followed by the representation of n, followed by a[1]a[2]...a[n].
00:54:49 <GregorR> That meeting drug on for WAY too damn long >:(
00:55:25 <int-e> this means: 0 is 0. 1 is a 1-bit number, encoded as 1 <representation of 0> <no bits>, that is 10.
00:55:55 <int-e> 2 is a 2-bit number (10), and represented as 1 <representation of 1> 0, that is 1100
00:56:03 <int-e> 3 is 1101
00:56:24 <lament> this is too complicated. I prefer unary :)
00:56:29 <int-e> 4 is a 3-bit number (100) and represented as 1 <2> 00, that is 110000
00:56:34 <int-e> unary works, too
00:56:53 <GregorR> graue: Could you give me a link to your 2L interpreter so I can debug?
00:57:04 <int-e> and another easy way is to use 10 for 0, 11 for 1 and 00 for a stop symbol.
00:57:12 <lament> also, this format can't even handle transfinite numbers :)
00:57:19 <int-e> you could even go ternary with this approach ;)
00:57:26 <Gs30ng> so why 4 is represented as something different
00:57:38 <int-e> transfinite numbers are not necessary to achieve turing completeness
00:57:58 <lament> neither are big ones
00:58:07 <lament> very little is needed for TC :)
00:58:10 <int-e> right
00:58:30 <lament> just an infinity somewhere
00:58:43 <int-e> but if the idea for implementing an infinite memory is to address each cell individually, you need big numbers.
00:58:48 <Gs30ng> i really want turing himself here
00:58:58 -!- GregorR has changed nick to Turing.
00:59:08 <Turing> Hi!
00:59:21 -!- Turing has changed nick to GregorR.
00:59:25 <Gs30ng> oops
00:59:29 <Gs30ng> he's gone again
00:59:46 <GregorR> Heheh :P
00:59:57 * Gs30ng mourns
01:00:40 <Gs30ng> there should be another way to access a memory cell...
01:01:09 <lament> both relative addressing and unbounded addressing work
01:01:12 -!- Aardwolf has quit ("Leaving").
01:01:26 <Gs30ng> so what the hell is relative addressing
01:02:00 <GregorR> Rather than saying I want memory address 0x5 you say I want memory address here+0x1. That is, all addresses are based on the current location.
01:02:18 -!- calamari has quit (Connection timed out).
01:02:24 <Gs30ng> ...got it
01:02:46 <lament> where "here" could be the code pointer, or some memory pointer like in brainfuck
01:03:16 <Gs30ng> that was something i have thought! why didn't i re-get that?
01:03:52 <GregorR> Hmm, lemme think ... would it be Turing-complete if it was the code pointer? You still couldn't access the entire bounds of memory from any location, and hence wouldn't have infinite storage space ...
01:03:52 <Gs30ng> ok let me think about this idea more...
01:04:21 <int-e> GregorR: yes I think so, too
01:04:37 <lament> GregorR: not if code is in your memory, you can modify it, and you have GOTO
01:04:48 <lament> (i.e. like on all computers)
01:05:00 <int-e> nah, not all computers
01:05:07 <GregorR> Ahh yes, being able to modify it does rectify that, doesn't it ...
01:05:07 <int-e> it's von Neumann computers only.
01:05:10 <fizzie> http://www.befunge.org/~fis/test_ppc_gnuWlinux.s
01:05:30 <Gs30ng> this is hard to make decision. current spec is already enough do everything that we can currently do.
01:05:46 <int-e> there are computers with separated code and data memory. granted, the only example I can think of are DSPs.
01:05:49 <lament> Gs30ng: turing-completeness is not that important, really.
01:05:59 <GregorR> Hey now jix, that's a bright ray o' light 8-D
01:06:04 <Gs30ng> lament: i'm realizing that
01:06:32 <GregorR> The usual good-enough is "Turing-complete with the exception of finite storage space"
01:06:50 <GregorR> (So long as that finite space is enough to actually do anything)
01:07:15 <lament> SMETANA also bounds memory size by code size
01:08:00 <Gs30ng> i need something to eat now
01:08:07 <Gs30ng> somebody give me
01:08:10 <int-e> I think Udage with memory retargeting is good enough
01:08:20 <int-e> (as it is right now)
01:08:23 * GregorR gives Gs30ng poison^H^H^H^H^H^H candy.
01:08:39 <Gs30ng> !google ^H
01:08:44 <int-e> Udage without the memory retargeting operation felt very much like Smetana and thus insufficient.
01:08:57 <int-e> (for me)
01:09:15 <lament> but smetana is cool :(
01:09:23 <Gs30ng> in my point of view
01:09:27 <GregorR> Gs30ng: Olde UNIX joke - if yoshell doesn't allow you to delete, backspace becomes ^H
01:09:35 <GregorR> s/yoshell/your shell/
01:09:55 <Gs30ng> a machine should do this:
01:10:09 <Gs30ng> user inputs, computer records, repead until user inputs 0
01:10:10 <lament> GregorR: and if it does, ^H becomes backspace
01:10:14 <int-e> a machine should not run esolangs for any serious work :)
01:10:29 <GregorR> lament: Indeed.
01:10:41 <Gs30ng> in my point of view it is perfect
01:10:45 <lament> int-e: I agree. Perl included.
01:10:49 <Gs30ng> like... Gs30ng complete?
01:10:54 <int-e> ok, and then do what with its input?
01:11:05 <Gs30ng> what input
01:11:09 <int-e> Perl is a neat write-only language if you need to do some string or text processing.
01:11:11 <int-e> ;)
01:11:32 <lament> Perl is not considered an esoteric language for purely historical reasons
01:11:34 <int-e> personally I much prefer Python
01:11:38 <Gs30ng> Gs30ng machine input or Udage input?
01:12:04 <int-e> you started to descibe a computer that takes some input until the user inputs 0
01:12:09 <graue> GregorR: YOU want to debug MY 2L interpreter?!
01:12:15 <Gs30ng> yes i did
01:12:17 <int-e> if you just want to do that, you need no more than a finite state machine
01:12:28 <int-e> smetana can do that
01:12:30 <Gs30ng> i'm aware of it too
01:12:35 <int-e> or could if it supported input ;)
01:12:42 <Gs30ng> ...wait
01:12:46 <Gs30ng> Udage can't do that
01:12:55 <Gs30ng> infinite input and recording all of them
01:13:08 <int-e> why would you record it?
01:13:18 <Gs30ng> because it is gs30ng machine
01:13:21 <lament> consider the following problem:
01:13:29 <lament> read input until EOF.
01:13:32 <lament> Print input backwards.
01:13:50 <int-e> yes. that requires infinite storage
01:14:02 <lament> exactly.
01:14:15 <int-e> although it can be done on a stack machine that isn't turing complete
01:14:45 <GregorR> graue: Umm ... yes?
01:14:53 <Gs30ng> relative addressing... i can't find proper method to do it
01:15:04 <GregorR> Merely because my entry on esolangs.org was borked, so I feel responsible.
01:15:12 <Gs30ng> like, if AAAxxxA then move the pointer xxx cells left?
01:15:42 <int-e> yes
01:15:47 <int-e> and retarget AAA to that location
01:15:53 <int-e> err the switch A
01:16:07 <Gs30ng> or right? how can i decide the way? before that, does it need xxx cells?
01:16:10 <lament> esolangs with addressing are boring :)
01:16:14 <GregorR> The wiki page was never intended to be a spec by the way, it also doesn't fully explain +-turning.
01:16:15 <lament> too much like real assembly
01:16:20 <int-e> actually you should do AAAdxxxA where d specifies the direction
01:16:36 <Gs30ng> i can just to AAAdx
01:16:57 <int-e> you can just do AAAd and specify that the offset is always 1
01:16:57 <Gs30ng> d decides the direction and x decides the cells to move
01:17:15 <int-e> but that feels very brainfuck-ish
01:17:28 <int-e> larger offsets make it less brainfuckish.
01:17:28 <Gs30ng> then what about AAAA operation
01:17:42 <Gs30ng> now it isn't useless
01:18:00 <int-e> why?
01:18:04 <Gs30ng> somebody can make a source code like AAAA
01:18:13 <Gs30ng> but it is I/O operation
01:18:24 <Gs30ng> and that's something i really don't want to be there in my lang
01:18:53 <Gs30ng> AAAA must be a useless operation to be some another operation
01:19:07 <Gs30ng> that's my design goal of the lang
01:19:49 <int-e> well AAAA can be represented as BBBA with that semantics ...
01:19:59 <graue> GregorR, okay, hang on
01:20:47 <graue> am sending through DCC, can you receive those?
01:20:57 <GregorR> Who knows 8-D
01:21:05 <GregorR> I don't think so, I'm behind a firewall.
01:21:24 <GregorR> But actually, I would look at the bit about turning I just added to the 2L wiki page. It's becoming more like a spec every minute :P
01:21:28 <Gs30ng> it's ridiculously hot here in Korean
01:21:30 <Gs30ng> oops
01:21:33 <Gs30ng> s/Korean/Korea
01:21:45 <GregorR> It didn't explain how the turn worked, and the intuitive way is not the correct way.
01:22:00 <graue> http://www.oceanbase.org/graue/junk/2l.c
01:22:10 <Gs30ng> my friend wonders
01:22:14 <graue> http://www.oceanbase.org/graue/junk/a.2l <-- my A program that works if you change the starting direction in the interpreter to RIGHT
01:22:20 <Gs30ng> is befunge from the word fungi?
01:22:47 <Gs30ng> which means mushroom or something like that?
01:23:12 <GregorR> Well, the turns are right anyway, that's good since I didn't explain them :P
01:23:19 <Gs30ng> my friend designed a fungeoid named Versert
01:23:21 <graue> fungi does not mean mushroom, http://en.wikipedia.org/wiki/Fungus
01:23:32 <Gs30ng> oh whatever
01:23:40 <Gs30ng> is it from fungi?
01:23:43 <graue> a mushroom would be an example of a fungus
01:23:55 <graue> fungi is plural: two or more of the thing called a "fungus"
01:24:12 <Gs30ng> that's why i said mushroom "or something like that"
01:25:23 <Gs30ng> anyway befunge is named after it, right? or is it not clear?
01:25:30 <graue> I do not know
01:25:57 <Gs30ng> well
01:26:07 <graue> GregorR: I remember reading something about how "the turn is not a simple turn" because if it were, some loops would not be possible
01:26:09 <Gs30ng> a friend of mine made a fungeoid
01:26:19 <Gs30ng> and i gave him the name versert
01:26:22 <graue> Archway2 works the same way
01:26:41 <Gs30ng> beoseot means a mushroom in Korean
01:27:26 <graue> cool
01:27:34 <Gs30ng> Versert is named after it, so i wonder if befunge is really from fungi or not
01:27:48 <lament> ask cpressey
01:28:00 <lament> cpressey: why befunge is called that?
01:28:04 <Gs30ng> of course it doesn't matter that much wheter befunge is or isn't
01:28:15 <Gs30ng> oops there's cpressey here
01:28:22 <lament> hehe
01:28:39 <graue> maybe it's named after John Funge, AI pioneer: http://www.dgp.toronto.edu/~funge/
01:28:49 <Gs30ng> oh
01:29:01 <Gs30ng> john mushroom doesn't make any sense
01:29:05 <graue> I doubt it, though
01:29:58 <Gs30ng> terrible weather
01:30:02 <Gs30ng> raining, but hot
01:30:19 <Gs30ng> hot water is falling
01:30:37 <Gs30ng> how is this possible?
01:31:45 <lament> magic
01:32:28 <Gs30ng> you did it, lament
01:32:44 <int-e> could be air friction
01:32:44 <int-e> hehe
01:32:48 <Gs30ng> Hot Rain. what an idea
01:33:32 <Gs30ng> relative addressing idea is good but too brainfuck-ish
01:33:54 <int-e> but it probably just means that the humidity is very high so the water does not evaporate, which means it has no cooling effect
01:34:20 <Gs30ng> that's right
01:34:37 <Gs30ng> Korean summer is with really high humidity
01:34:58 <Gs30ng> hot and humid summer
01:35:03 <Gs30ng> worst
01:35:10 * int-e suggests 'has' in place of 'is with'
01:35:22 <Gs30ng> oops
01:35:28 <Gs30ng> that makes more sense
01:36:29 <int-e> or maybe 'comes with' which sounds good to me, too.
01:37:38 <cpressey> lament: read the wiki entry
01:37:38 <Gs30ng> since turing completeness is not that important currently with my lang, i'll reserve it for someday
01:38:04 <Gs30ng> RTFM thing
01:39:52 <Gs30ng> The word "Befunge" started life as a typographical error for the word "before", typed by Curtis Coleman at 4AM on a BBS chat system.
01:39:55 <Gs30ng> aw
01:41:46 <int-e> GregorR: I'm not sure if my unbounded pointers stored in memory idea really makes the beast Turing complete. I can only address a finite memory directly, to address more I need to introduce a level of indirection. In fact, I need an unbounded level of indirection to address an unbounded memory and I can't convince myself right now that this is possible with a finite program. A linked list representation between the indirection pointers may wor
01:41:47 <int-e> k, though.
01:42:38 <int-e> it's certainly food for thought
01:45:47 <int-e> GregorR: ah that should have been targeted for lament.
01:45:53 <int-e> err at
01:46:25 <Gs30ng> should conversation be esoteric too?
01:47:58 * int-e doesn't know that.
01:49:16 <Gs30ng> syntax highlighting of this lang would be easy
01:50:15 <Gs30ng> actually i thought about 'udage list' concepts or something
01:50:19 <Gs30ng> to make it TC
01:52:10 <Gs30ng> hmm
01:52:19 <Gs30ng> i can make an operation in an operation
01:52:34 <Gs30ng> like, AAA starts, then A concludes
01:52:49 <Gs30ng> between them all kind of udages can come
01:53:35 <Gs30ng> operation could come
01:54:31 <graue> jix: what happened to XUML?
01:54:47 <Gs30ng> so, between AAA and A, a loop operation could come
01:55:33 <jix> graue: never completed it because there was a bug in the converter or interpreter or even concept that i couldn't find
01:56:14 <Gs30ng> and when a loop operation comes, each values that made by loop is stored as a value of that 2^16 thing
01:56:15 <graue> jix: that sucks
01:56:23 <graue> jix: ever plan to come back to it, or release what you have?
01:56:28 <jix> no
01:56:32 <graue> !@#
01:56:39 <jix> because nothing works as it should
01:57:04 <Gs30ng> so we can make it to indicate no. infinite memory cell
01:57:17 <graue> GregorR: with regard to 2L, when you say "The action is undefined when the pointer goes over the right or bottom edge", is this after expanding each line rightwards to make the code area rectangular?
01:57:24 <graue> GregorR: or is no extending of lines done?
01:57:25 <Gs30ng> ...this is interesting
01:59:20 <Gs30ng> so operation can be between AAA and A
01:59:27 <graue> GregorR: my a.2l works in my fixed 2L interpreter provided you replace the * in the top left corner with a nop
01:59:34 <graue> GregorR: does it work in your interpreter if you do that?
01:59:35 <Gs30ng> and if operation changes some value
01:59:45 <Gs30ng> then original values are stored first
01:59:59 <Gs30ng> and then modified values are stored right next to it
02:00:27 <Gs30ng> int-e, what do you think about this
02:00:52 <Gs30ng> with this Udage is TC, also
02:02:13 <int-e> I don't understand what you're trying to do. what would AAABCA do?
02:02:34 <Gs30ng> same thing it have been doing
02:03:17 <Gs30ng> i mean a code like this: FAAAFBCCDEFA
02:03:33 <Gs30ng> CCDEF is identified as an operation
02:04:28 <Gs30ng> (FB isn't)
02:04:48 <graue> GregorR: oh, it's waiting for a character for some reason
02:04:50 <Gs30ng> so it will jump to backward F again and again
02:04:57 <graue> GregorR: your helloworld.2l changes TL1 when TL0 is 0
02:05:14 <Gs30ng> oops
02:05:19 <Gs30ng> my mistake
02:05:36 <Gs30ng> the code should be like FDEAAAFBCDEFA
02:05:42 <Gs30ng> D and E should be 1
02:06:39 <graue> GregorR: your program works, it's just that it prompts me for a character, prints it 8 times, prints a bunch of newlines, prompts me for a character again, prints it 11 times along with a bunch more newlines, prompts me for a character again, prints that 11 times, then ends
02:06:45 <Gs30ng> oops
02:06:48 <Gs30ng> mistake again
02:06:55 <Gs30ng> FDEAAAFBCCDEFA
02:07:09 <lament> where can i read about udage?
02:07:20 <Gs30ng> see wiki
02:07:26 <Gs30ng> there's url
02:07:29 <graue> GregorR: also it ends by going off the bottom (cell 35, 146 is executed last), so it will invoke undefined behavior in a conformant implementation
02:07:45 <int-e> lament: http://gs30ng.exca.net/udage/spec-en.xml
02:07:54 <Gs30ng> anyway it jumps again and again, A will indicate no. 10(because of F and B)0000000000000000000000...(C gets 0 endlessly)
02:08:32 <graue> GregorR: trace of execution of
02:08:44 <graue> GregorR: HelloWorld.2l is at http://www.oceanbase.org/graue/junk/errors.txt
02:10:44 <graue> GregorR: I got that by running this and redirecting stderr: http://www.oceanbase.org/graue/junk/2ldebug.c
02:10:53 <pgimeno> Gs30ng: Udage is a bounded-storage machine; see http://www.esolangs.org/wiki/Bounded-storage_machine (just like C, apparently)
02:11:17 <Gs30ng> yes
02:11:23 <Gs30ng> but it is big enough, i think
02:11:38 <pgimeno> I think so too
02:12:10 -!- graue has quit ("Donate a manual typewriter to ME for your only hope for a future!").
02:12:32 <Gs30ng> there could be some attempts to make this lang TC
02:12:36 <Gs30ng> like, Udageoid?
02:13:12 <pgimeno> it does not need to be TC; beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.
02:13:13 <Gs30ng> but right now i don't feel any necessity to change the spec
02:13:35 <Gs30ng> i love the Turing tarpit
02:13:48 <Gs30ng> one of Udage design goal was that
02:14:58 <pgimeno> the problem with Udage is that absolute addressing makes it impossible
02:15:19 <Gs30ng> but i gave up that because all good turing tarpits are already there
02:15:23 <Gs30ng> pgimeno: right
02:16:44 <Gs30ng> is there any wiki space for sample Udage codes?
02:17:09 <pgimeno> it's outside the wiki itself, see http://www.esolangs.org/files/
02:17:28 <Gs30ng> pgimeno: but still you can handle more than 2^256 bits
02:17:53 <Gs30ng> although it's really hard to do so :(
02:18:12 <pgimeno> Turing completeness requires an unbounded tape, i.e. a tape with no upper limit at all
02:18:36 -!- Wrrrtbt has joined.
02:18:45 -!- int-e has quit (Read error: 145 (Connection timed out)).
02:18:51 -!- Wrrrtbt has changed nick to int-e.
02:20:46 <int-e> re
02:21:04 <Gs30ng> er
02:23:57 <lament> hm
02:24:02 <lament> how come there's no Trigger implementation?
02:24:09 <int-e> there is ;)
02:24:44 <int-e> http://www.inf.tu-dresden.de/~bf3/trigger.c (well, it has this limitation on 1MB program size but it should do for some experiments)
02:25:32 <Gs30ng> i think i should make an interpreter of Udage by myself
02:25:56 <Gs30ng> it sounds ridiculous that i can design a lang but cannot make an interpreter for it
02:29:45 <int-e> let me warn you that the addition of retargeting has made that task nontrivial, because your memory can be sparse, that is, it's trivial to write a program that accesses just a few memory cells that are, say, 2^128 locations away from each other.
02:31:04 <Gs30ng> is it dangerous?
02:31:14 <int-e> no
02:31:54 <int-e> But it's hard to handle this gracefully instead of just failing to execute such a program.
02:32:24 <Gs30ng> for easy coding we can use cells like
02:32:33 <Gs30ng> 1, 2, 4, 8, 16, ...
02:33:15 <Gs30ng> and cells like 3, 5, 6, 7 are empty forever
02:33:16 <Gs30ng> :(
02:34:18 <Gs30ng> ok int-e, question again
02:34:27 <Gs30ng> if i make AAA operation like this:
02:35:11 <Gs30ng> AAAd, if d is 0 then A indicates the cell (cur+1) and if d is 1 then A indicates the cell (cur-1)
02:35:33 <Gs30ng> then Udage is TC?
02:36:45 -!- int-e has quit ("Bye!").
02:36:46 -!- int-e has joined.
02:36:52 <jix> g'nite
02:36:58 <int-e> grr. my network is flaky, stupid ISP :(
02:37:03 <Gs30ng> good night
02:37:12 <int-e> jix is up early (like me)
02:37:16 <Gs30ng> int-e, then did you saw my question?
02:37:37 <int-e> no, last I saw was [03:33:57] <Gs30ng> for easy coding we can use cells like
02:37:40 <Gs30ng> at here it's 10 o'clock AM
02:37:49 <Gs30ng> [10:33:29] <Gs30ng> for easy coding we can use cells like
02:37:49 <Gs30ng> [10:33:38] <Gs30ng> 1, 2, 4, 8, 16, ...
02:37:49 <Gs30ng> [10:34:20] <Gs30ng> and cells like 3, 5, 6, 7 are empty forever
02:37:49 <Gs30ng> [10:34:21] <Gs30ng> :(
02:37:49 <Gs30ng> [10:35:22] <Gs30ng> ok int-e, question again
02:37:49 <Gs30ng> [10:35:32] <Gs30ng> if i make AAA operation like this:
02:37:51 <Gs30ng> [10:36:16] <Gs30ng> AAAd, if d is 0 then A indicates the cell (cur+1) and if d is 1 then A indicates the cell (cur-1)
02:37:54 <Gs30ng> [10:36:37] <Gs30ng> then Udage is TC?
02:38:31 <int-e> if AAAd also changes cur (to cur+1 or cur-1), then yes. if it doesn't change cur, then no
02:39:10 <Gs30ng> cur is it's own cur
02:39:13 <Gs30ng> A's own cur
02:39:43 <Gs30ng> A indicates 1, and AAAd, if d is 0, now A indicates 2
02:39:46 <Gs30ng> A indicates 2, and AAAd, if d is 0, now A indicates 3
02:39:56 <int-e> oh
02:40:10 <int-e> that's another possibility.
02:40:25 <int-e> that means you have a tape and 65536 independent pointers to it
02:40:44 <int-e> that makes it turing complete as well.
02:40:58 <Gs30ng> actually i don't like tapes
02:41:19 <Gs30ng> and int-e, then what was your plan
02:41:34 <Gs30ng> you supposed only one pointer?
02:42:00 <int-e> I actually like your idea better because it's less like brainfuck
02:42:16 -!- jix has left (?).
02:42:16 <Gs30ng> oh thanks
02:44:05 <Gs30ng> what if a udage points 0 (itself) and i do (cur-1)
02:44:24 <Gs30ng> should i suppose no. negative memory cells?
02:44:39 <Gs30ng> or can i do something different?
02:51:02 <Gs30ng> and BTW, does this lang deserves to be on topic of this channel?
02:51:02 <int-e> that's up to you
02:51:26 <Gs30ng> then i'll make it to choose random memory cell
02:51:43 <Gs30ng> ...wait. the range is infinite. it's impossible
02:51:46 <int-e> it's an esoteric programming languages channel, of course it's on topic
02:51:51 <int-e> na, it's possible
02:52:01 <int-e> there just isn't a uniform distribution
02:52:28 <int-e> but you could choose memory cell 0 with probability 1/2, 1 with 1/4, 2 with 1/8 and so on - to give an example.
02:52:58 <Gs30ng> ok then
02:53:28 <Gs30ng> i'll make it to choose random udage and have same indication value
02:54:23 <Gs30ng> then the range is finite and uniform distribution is possible
02:54:34 * GregorR begins work on egobch.
02:54:47 <Gs30ng> ..still 0 has priority in many case
02:55:50 <Gs30ng> i think there could be no. negative memory cells but they are not necessary....
02:56:18 <Gs30ng> i can add something really advances all things...
02:58:48 <lament> too bad languages working with bits are such a pain to actually write programs in
02:59:54 <Gs30ng> it's true but i love bits
03:03:41 <lament> even kayak, which had such an awesome concept, lies unused
03:04:20 <lament> hhheeehhh.........
03:12:57 * Gs30ng thinks.
03:13:44 * Gs30ng can't find the way to rationalize the use of AAAA operation when AAA operations takes only 1 operand.
03:14:06 -!- graue has joined.
03:21:20 -!- Gs30ng has quit ("for foods").
03:22:23 <int-e> lament: I did a merge sort in Kayak once
03:31:45 <int-e> http://www.inf.tu-dresden.de/~bf3/sort3.kayak
03:32:08 <int-e> good night
03:37:50 -!- int-e has quit ("Bye!").
03:48:07 <GregorR> Yay, I just wrote a program that outputs 'a' in BitChanger 8-D
03:48:21 <GregorR> More importantly, I wrote a bitchanger interpreter :P
04:03:22 <graue> feel like writing a program in an esolang that violates US patent #4,872,009?
04:03:34 <graue> (see http://www.faqs.org/faqs/compression-faq/part1/section-7.html)
04:10:00 <GregorR> Either my BitChanger interpreter is screwy, or the Brainfuck->Bitchanger stuff on the wiki is wrong >_<
04:27:05 -!- graue has quit ("Donate a manual typewriter to ME for your only hope for a future!").
04:29:50 -!- graue has joined.
04:30:01 <graue> GregorR: "If it was going right you couldn't turn away from the edge." is not true, look at a.2l
04:30:15 <graue> GregorR: also, look at my comments on HelloWorld.2l earlier
04:30:20 -!- graue has left (?).
04:30:24 <GregorR> Yeah, y------.
04:30:26 <GregorR> Hmm.
04:56:26 -!- BigZaphod has joined.
05:12:42 <GregorR> graue: I'm apparently the worst spec-writer ever.
05:12:59 <GregorR> graue: My implementation had up as < and down as >
06:03:49 -!- graue has joined.
06:04:03 <graue> GregorR, I demand that you change your implementation and your hello world program so I don't have to do anything
06:04:15 <graue> good evening
06:04:16 -!- graue has quit (Client Quit).
06:04:26 <GregorR> Gah, why does graue do that XD
06:04:38 <GregorR> Sadly, that's not even a totally unreasonable request XD
06:06:20 -!- graue has joined.
06:06:29 <graue> by the way, the link to the fyb interpreter at www.befunge.org/fyb/fyb/ is broken
06:06:30 -!- graue has quit (Client Quit).
06:09:33 <GregorR> Fixed. Thanks for pointing that out.
06:39:49 -!- BigZaphod has quit.
07:01:56 <fizzie> Ohh, I just love the morning sunshine when I have no curtains at all in the bedroom. (Read: agghhh the sunlight noo I'm burning.)
07:13:49 -!- tokigun has joined.
07:21:37 -!- BigZaphod has joined.
07:28:53 -!- klutzy has quit ("Oops I closed program by mistake").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:10 -!- lament has quit (Remote closed the connection).
08:13:50 -!- lament has joined.
08:19:01 -!- lament has quit (Remote closed the connection).
08:29:16 -!- lament has joined.
12:41:49 -!- Fedo1a has changed nick to reffina.
12:47:22 -!- reffina has changed nick to yrz\werk.
13:02:25 -!- jix has joined.
13:09:05 <jix> moin
13:09:31 <fizzie> HELO
13:23:53 -!- tokigun has quit (Read error: 104 (Connection reset by peer)).
14:26:12 -!- Aardwolf has joined.
14:26:49 -!- int-e has joined.
14:30:09 <int-e> moin
14:30:49 <Aardwolf> good afternoon
14:51:30 -!- int-e has quit ("Client exiting").
14:51:33 -!- int-e has joined.
16:06:52 -!- int-e has quit (kornbluth.freenode.net irc.freenode.net).
16:06:53 -!- cpressey has quit (kornbluth.freenode.net irc.freenode.net).
16:08:04 -!- cpressey has joined.
16:22:39 -!- int-e has joined.
16:22:53 -!- int-e has quit (Read error: 60 (Operation timed out)).
16:28:30 -!- int-e has joined.
16:30:18 -!- cmeme has joined.
16:30:33 -!- cmeme has quit (Remote closed the connection).
16:31:20 -!- cmeme has joined.
16:32:25 <GregorR> Hey, cmeme is back.
16:32:32 <GregorR> Felt like logging again, cmeme? :)
16:38:17 -!- int-e has quit (kornbluth.freenode.net irc.freenode.net).
16:38:30 -!- int-e has joined.
17:12:22 <{^Raven^}> hi all, anyone entering the 2k game compo should check out the rules again as they have changed.
17:13:54 <lindi-> url?
17:27:31 -!- BigZaphod has quit.
17:34:33 <jix> lindi-: http://www.geocities.com/dunric/advcomp.html
17:36:59 <GregorR> Who wrote the BF->BitChanger conversions on the wiki?
18:04:22 <cpressey> {^Raven^}: i don't see what's changed?
18:04:30 <cpressey> GregorR: probably calamari
18:10:32 <GregorR> I think there might be something wrong with the insanely complex [.
18:10:38 <GregorR> (Or my BChI)
18:11:08 -!- BigZaphod has joined.
18:15:06 <int-e> GregorR: where's that conversion?
18:26:33 -!- Aardwolf has quit ("Leaving").
18:31:52 <int-e> Oh, found it.
18:41:52 <int-e> yep, that [ implementation smells fishy
18:50:14 <GregorR> Maybe I should publish EgoBCh without EgoBF2BCh
19:08:24 -!- calamari has joined.
19:08:29 <calamari> hi
19:09:04 -!- int-e has quit ("Client exiting").
19:09:59 <GregorR> calamari, is that your [ in the BF->BitChanger conversion chart on the wiki?
19:11:05 -!- int-e has joined.
19:11:30 <calamari> GregorR: I think I write the conversions, yeah.. but I had no interpreter to tets them with
19:11:39 <calamari> are they messed up?
19:11:45 <GregorR> Everything works except for [
19:11:58 <int-e> I'm working on that
19:12:06 <GregorR> So overall, good job, but egobf2bch doesn't work ;)
19:12:15 <calamari> hehe
19:12:28 <calamari> I've seen better versions of [ online anyhow
19:13:32 <GregorR> int-e quite nearly got one, but it turned into if.
19:14:01 <int-e> yep, because translating ] into ] cannot work
19:14:35 <calamari> yeah.. not quite sure what I was thinking with that
19:14:47 <calamari> actually wait.. yeah
19:15:04 <calamari> ]=] should be fine..
19:15:14 <calamari> it just makes [ more complicated
19:15:50 <calamari> but, I use the ] = jmp.. rather that some impl that do a conditional at most ends
19:16:04 <calamari> both ends
19:16:24 <calamari> blah.. can't form coherent sentences this morning, sorry
19:16:33 <int-e> it still jumps to the wrong point with your code ;)
19:17:04 <calamari> hehe, I wouldn't doubt it
19:17:20 <calamari> I can put it on the debugger and fix it
19:18:50 <calamari> hahaha.. that code scares me, and I wrote it! :(
19:19:07 <int-e> it's not too difficult
19:19:09 <int-e> hehe
19:20:31 <int-e> and I can see how to shorten it quite a bit. but let me get that version to work first.
19:29:41 <GregorR> Here's the moment you've all been waiting for ...
19:29:48 <GregorR> The first implementation of BitChanger ...
19:29:59 <GregorR> The thing that lets us switch the category ...
19:30:07 <GregorR> http://www.codu.org/egobch-0.1.tar.bz2
19:30:27 <GregorR> Totally unoptimizing btw.
19:31:42 <GregorR> graue: Could you add that to the files archive at some point? Thanks :)
19:33:42 <int-e> ok, updated the wiki (BF_instruction_minimalization)
19:34:08 <int-e> now for that short version.
19:38:23 -!- kipple has joined.
20:05:05 <int-e> I've added that short version to the wiki.
20:05:30 <int-e> hi kipple
20:05:46 <calamari> cool!
20:05:49 * calamari tests it :)
20:07:48 <calamari> something seems wrong
20:08:03 <calamari> doesn't enter the loop
20:08:11 <calamari> I had the cell=5 (101)
20:08:39 <int-e> works for me .. let me compare the code I put into the wiki with the one I actually use
20:10:12 <calamari> this is the one I'm testing @[>>>>>>>>@[<@]>[>]<<<<<<<<<[@]>>>>>>>>[<]@>[@>]<<<<<<<<<@[@
20:11:40 <int-e> yes
20:11:46 <int-e> that is correct
20:12:16 <calamari> I apologize, it was my error
20:12:28 <calamari> was running in 8-bit mode
20:12:29 <int-e> I have a typo in the bitchanger ] code - missing the first character
20:14:01 <int-e> fixed, too
20:20:48 <calamari> anyone remember the name of the bf-like language that uses ; ?
20:21:24 <calamari> aha.. boolF...
20:25:33 <calamari> any reason to keep the large versions? gonna scrap those
20:26:44 <int-e> I don't care
20:27:59 <calamari> done
20:28:07 <calamari> thanks.. cool stuff :)
21:15:52 -!- calamari_ has joined.
21:15:54 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
21:26:03 -!- calamari_ has changed nick to calamari.
21:26:13 <calamari> re's
21:30:44 * GregorR REciprocates.
21:30:48 -!- int-e has quit (Remote closed the connection).
21:31:19 -!- int-e has joined.
21:31:33 <GregorR> if (msg[0] == 'R' && msg[1] == 'E') exit(1);
21:32:15 <calamari> re's = regards :)
21:32:31 <int-e> re
21:32:32 <calamari> but also, re-hello
21:32:34 <int-e> :P
21:32:48 <calamari> so "hello again" :)
21:33:28 <GregorR> I was REciprocating your REgards.
21:33:34 <calamari> ;)
22:27:25 <GregorR> So jix, are you going to update those benchmarks at any point?
22:27:34 <GregorR> (Or have you already and I just haven't seen the new results)
22:58:00 <jix> i'm going to update them tomorrow
23:17:48 <GregorR> Muahahahaha ... BWAHAHAHAHA ... GAAAAAAAAAAAHAHAHAHAHAHAHAHAH!!!!!!!!!!!!
23:18:30 <GregorR> If they're arranged by compile + run time rather than just run time, I look forward to seeing egobfc2m in slot #1 :)
23:19:28 <calamari> BF debugger 1.30 released.. http://kidsquid.com/programs/bf
23:19:49 <calamari> bunch of new features, bugfixes, added 1-bit and EOF modes
23:19:55 <jix> GregorR: they are arranged by runtime
23:25:54 <GregorR> Aww, then egobfc2m will be a bit below some compilers.
23:29:43 <jix> below bf2a?
23:30:01 <GregorR> Idonno, let's give it a shot. One sec.
23:30:32 <jix> i don't sort by compiletime + run time because some compilers depend on external tools like gcc
23:40:10 <GregorR> But that gcc runtime is still significant, even if it may change between gcc versions or different CCs. Wouldn't it be fair so long as you used the same compilation suite across compilers?
23:40:42 <GregorR> Hmm, I can't find bf2a ...
23:41:41 <jix> www.harderweb.de/jix/langs/brainfuck/bf2a.rb should work
23:41:54 <jix> generates c file
23:43:45 <pgimeno> well, if you want to use a program like, say, "Let's take a look at some primes" or "What was the complete lyrics of 99 bottles of beer, again?", you usually keep compiled versions of the programs, so the compilation time should not be taken into account
23:45:30 <GregorR> The purpose though is to benchmark the compiler. Part of that benchmarking is the speed of compiled programs, but we're not benchmarking the speed of compiled programs, we're benchmarking compilers.
23:46:32 <pgimeno> in that case a BF frontend for gcc would be the proper test IMO
23:46:49 <jix> but than you can't compare interpreters with compilers
23:49:05 <pgimeno> anyway, GregorR, I was just kidding; I like the idea of having a kind-of-JIT for BF
23:50:34 <pgimeno> there was a C (or similar language) compiler which did something alike, what was the name?
23:52:29 <GregorR> bf2a compiled binaries are slightly faster, but with compilation time it loses.
23:52:44 <pgimeno> ah, TCC was it by Fabrice Bellard, http://fabrice.bellard.free.fr/
23:53:12 <GregorR> Ah yes, TCC = excellent
23:53:24 <GregorR> TCCBOOT = awesome for stupid Gentoo users :P
23:53:31 <jix> GregorR: it's because gcc is slow
23:53:45 <GregorR> jix: Yes, yes it is >:)
23:53:59 <jix> i'd like to combine my optimizations with your jit-a-like interpreter
23:54:31 <GregorR> ruby BF->C optimizations ported to a C BF->machine code compiler.
23:54:37 <GregorR> That sounds sort of like dying.
23:54:40 <GregorR> :P
23:55:21 <jix> it's a ruby BF->Intermediate-language-suitable-for-direct-compiling and a Intemediata-language->C converter
23:55:56 <GregorR> Ahhhhhhhhhhhhhhhh
23:56:05 <pgimeno> q: what about using TCC for the test?
23:56:16 <GregorR> Well, the only optimizations I've got are >>>>>>>>>>>>>>>>>><>>>>>>> ++++++++++-------+++ and [-]
23:56:57 <jix> no [--------->+<] *g*?
23:57:12 <GregorR> Not in egobfc2m
23:57:30 <jix> i'm using my ultra-cool^^ lookuptables for that kind of loops
23:58:56 <GregorR> Maybe I'll make the worlds slowest-without-just-cheating interpreter.
23:59:38 <GregorR> BF->intermediate language BitChanger->interpreted intermediate language->C->gcc->run
←2005-07-27 2005-07-28 2005-07-29→ ↑2005 ↑all