00:00:01 that'd be very neat 00:00:07 but i want spiral adressing in it 00:00:11 :9 00:00:16 %) 00:00:26 spiral addressing? 00:00:53 scroll up 00:00:59 to the line FEDCB 00:01:33 let's see.. perhaps there should be some instruction stack, or where else the program would take the coordinates of x1,y1,width1,height1 copy that, paste to x2,y2..? 00:01:56 hmm 00:02:08 Keymaker: you adress one pixel and it takes the info from 4 pixels next to that pixel 00:02:21 and the one pixel is adressed using SpiralAdressing(tm)^^ 00:02:22 yes, that's one way 00:02:28 :) 00:02:51 perhaps better than instruction stack 00:03:05 nice if all data is stored in the image 00:03:09 yes 00:03:15 jix is right on this one 00:03:33 as well, i think that the next pixels should be taken from the direction the data pointer is moving 00:03:48 yes. 00:03:57 :) 00:04:09 and the datapointer could have a flag which says "move in a spiral" 00:04:37 if you really want to use the data pointer, then.. :) 00:04:53 perhaps it's best to have data pointer AND instruction pointer 00:05:12 oh, I meant instruction pointer 00:05:18 ah 00:05:18 do we need both? 00:05:23 i don't think so 00:05:43 how about the IP being a function (which can be redefined) 00:05:55 then it could move in many different ways 00:05:59 kipple: another language... imho 00:06:04 yeah 00:06:09 just an idea 00:06:11 ok 00:06:20 but about the instruction pointer.. 00:06:29 do we need the data pointer 00:06:35 or just IP and self-modifying 00:06:37 no 00:07:07 since the data is stored in the same pixel as the instruction I don't think you need a data pointer 00:07:13 yes 00:07:17 me neither 00:07:24 so, just IP and selfmod 00:07:30 agree. 00:07:38 but then, the spiral movement 00:07:47 should the ip move spirally? 00:07:54 no ip moves linear 00:07:58 ok 00:07:58 but adressing is spiral 00:08:04 but.. 00:08:12 like, indirect addressing? 00:08:15 like add_a_to_cell_at_adress_b 1 2 00:08:30 oic 00:08:31 which fits perfectly into rgb 00:08:41 adressing is spiral and relative to ip 00:09:05 what that 'adressing' means 00:09:07 ? 00:09:44 do you mean by that reading the values near the ip that are needed for example copying piece of canvas? 00:09:59 yes 00:10:02 ok 00:10:12 and you can do nothing if you can only access the current cell 00:10:18 if the IP is at 0 then the addresses for other pixels is: 00:10:19 6789 00:10:20 501A 00:10:20 432B 00:10:20 FECD 00:10:24 am I right? 00:10:27 yes 00:10:32 i did it CCW but CW is ok too 00:12:55 gonna be difficult to program ... 00:13:30 hmm 00:13:59 not sure if it's right for this lang (though I like the idea) 00:14:08 yeah 00:14:48 it's naturally possible that we make separate languages, as i've mentioned 00:15:12 the more non-textual langs the better ;) 00:18:48 cool, started on my spec then too :) 00:18:56 ok 00:19:04 I would appreciate help with SDL, though.. any guides for that? 00:19:07 i'll keep my version simple 00:19:16 calamari: sorry, nope 00:19:33 i'll have a bit hard time coding things up 00:19:45 how did you learn it? 00:19:52 me? 00:19:53 long hours of man pages ? 00:20:00 i can't do almost nothing at all in it 00:20:03 yeah 00:20:06 oic 00:20:11 i can try to send you some small codes tomorrow 00:20:15 if i have anything left 00:20:23 like simple drawing things 00:20:37 although i don't have single pixel drawing stuff.. 00:21:15 haven't really found good manuals, i've got info from here and there around the web, and haven't program almost anything, just tests, nothing game-like or something 00:21:18 that's okay. I might as well try to figure it out :) 00:21:24 ok 00:21:50 anyways, good luck with your language gentlemen 00:22:10 kipple: do you want to cooperative work with me or design own? 00:22:23 i think we were on same thought patterns, so.. 00:23:43 I'm not going to make my own , no 00:24:27 can help with yours if you want 00:24:34 sure! 00:24:44 i'll e-mail to your e-mail address, 00:24:49 the one that is on your page 00:25:05 my page is down :) 00:25:16 is slartibartfast alive? 00:25:29 yes, but my router won't cooperate 00:25:33 ok.. 00:25:42 well, then can you tell here what the address is? 00:25:49 or open that new window and tell 00:25:51 rune@krokodille.com 00:25:53 ok 00:26:27 it'll be interesting to see what kind of languages people make up 00:26:33 anyway, maybe we should make a page under Works in Progress in the wiki 00:26:51 sure 00:26:53 but.. 00:26:56 what name?! 00:27:14 lets just pick a temporary one 00:27:25 ok.. Temporary One 00:27:41 and the final could be TT - Temporary Two. 00:27:42 ;) 00:27:43 "Codename: RGB" 00:27:47 or Three. 00:27:51 :) 00:27:53 lol 00:27:57 codename: rgb 00:28:01 that's fine! 00:28:23 do you make the article? 00:28:31 what happens if two people edit the same article at the same time? 00:28:33 ok 00:30:19 http://esoteric.voxelperfect.net/wiki/Codename:_RGB 00:30:34 ok :) 00:31:07 so, what do we have so far? 00:31:20 let's see: 00:31:24 infinite canvas 00:31:34 where the program will be placed on left top corner 00:31:44 (i accidentally said 'right' sometime ago) 00:32:27 the other canvas is filled with zeroes or something 00:32:34 zero is fine 00:32:38 ok 00:32:42 not important 00:32:47 yeah 00:32:51 how about pink? 00:32:58 not bad 00:32:59 ;) 00:33:08 often used as 'transparent colour' 00:33:28 anyways; then we have instruction pointer 00:33:47 that moves linerally 00:33:56 to befunge-like directions 00:34:06 i'd be fine with the four directions 00:34:12 yes 00:34:16 ok 00:34:37 then, we have each pixel that have rgb value, where r is some instruction 00:34:43 and g and b data 00:34:49 each of them naturally being 8-bit 00:35:54 what do you think: if there's some instruction (like that copy-paste) that needs more arguments than two, it should take them from the next pixels, from the direction the ip is moving 00:36:08 yes 00:36:13 that's the easiest way 00:36:15 then, if there's only two arguments, should the instruction take them from g and b? 00:36:35 I would say that can be different in each instruction 00:36:43 yeah 00:36:50 what about returning values? 00:37:01 do we need that? 00:37:04 hmmm 00:37:10 i meant like input 00:37:13 from a file 00:37:20 hmm 00:37:28 probably should save to g and b 00:37:34 and if eof, make g 1 00:37:36 or something 00:37:40 while it usually is 0 00:37:55 fill unused space with random data 00:37:59 eof thing could be useful, i think 00:38:04 that makes nondeterministic programs possible 00:38:08 like number guessing game 00:38:19 jix: that was one of my ideas many lines ago :) 00:38:24 oh 00:38:39 but i was talking about the empty canvas 00:38:44 not sure if you mean the same 00:38:45 why not have a separate random function? we have 256 instructions possible 00:38:49 yes 00:38:55 that should be there too 00:38:58 probably 00:39:02 most probably! 00:39:04 yeah 00:39:18 anyways; what do you think about that eof kipple? 00:39:32 which one? 00:39:47 that something like setting g to 1 in case of eof or something 00:39:55 sounds good 00:40:06 yeah, something like that would be useful 00:40:26 by the way, what should happen if the ip moves to top edge or left edge? 00:40:32 program crash? 00:40:39 it could be infinite in all directions 00:40:45 mmh 00:40:47 yes 00:41:21 aargh 00:41:27 this stuff really eats memory 00:41:45 like 5000x5000 canvas with 3 values for every pixel.. 00:41:47 * Keymaker dies 00:41:55 You waaanto to use RXML for input :) 00:42:00 waaant to even 00:42:04 the canvas should be allocated dynamically as needed 00:42:17 well, yeah, but i can't program that :) 00:42:36 just resize the image when needed. is that difficult? 00:42:57 hmm not sure 00:43:20 anyway, lets not go into implementation details at this point :) 00:43:28 yeah 00:43:31 Such as using RXML as input :) 00:43:36 :P 00:43:39 what's RXML? 00:43:46 http://www.codu.org/rxml.php 00:44:02 Raster imaging in XML. Mind-bogglingly stupid is what it is 8-D 00:44:03 i was already guessing it was some gregorr's stuff.. 00:44:10 Keymaker: what's 100 MB among friends? 00:44:11 ah, yes that one 00:44:24 :) 00:44:41 oh! 00:44:47 XML! I like. 00:45:01 * int-e pukes somewhere behind the scenes. 00:45:06 Heheheh 00:45:21 as a sidenote; the hats gallery still needs updating! 00:45:33 I know, I know XD 00:45:50 Gregor = lazy :P 00:45:56 :) 00:46:16 lets make some instructions! 00:46:21 mm ok 00:46:30 we need a put value to pixel (x,y) 00:46:36 yeah 00:46:41 as well, 00:46:53 should it be (x,y,r g or b) 00:47:08 or only that it changes b automatically? 00:47:13 or r or g 00:47:20 yay, the converter uses DOM ... read the whole document, then convert it, then write it. 00:47:24 * int-e is sooooooo happy. 00:48:17 a problem is that x and y can larger than 8bits 00:48:30 hmm 00:48:32 can _be_ larger... 00:48:36 yah 00:48:54 never thought about that before.. 00:49:25 so x and y should perhaps be relative to current IP position 00:49:31 yes 00:49:35 that's one good way 00:49:55 yeah, i think that's the best 00:50:36 [...] properly indented of course. This is great stuff. 00:51:06 how about this: the g is the value to be put, and b determines if the value goes to the r,g or b component 00:51:09 Could int-e be raising some sort of sarcastic defiance against RXML? :P 00:51:12 note that this format is easily extensible to include alpha and octarine channels. 00:51:27 the coords taken from the next pixel 00:51:31 yeah 00:51:33 no. RXML is a great example why XML should *not* be blindly used. 00:51:52 NO!!!! XML IS ALWAYS BETTER!!!!! BUZZWORD = GOOD!!!! 00:51:59 hmm, by the way 00:52:06 See, that's what I'm defiant against. 00:52:08 :) 00:52:18 what about negative values? 00:52:31 yes. that's a problem 00:52:34 should the values go backwards if value is bigger than 128 or something? 00:52:42 Keymaker: You know, you would have an extra data byte if you used alpha. 00:52:45 yes. the bytes could be signed 00:52:52 yes, we know 00:53:17 int-e: At OSCON, somebody presented (as part of their larger presentation) a convertor to write perl as XML, and an environment to run it. 00:53:48 we need XMLBrainfuck! 00:53:50 GregorR: You see I'm old-fashioned. If data is transfered in a verbose format like XML, compressed with gzip, I raise the question why they added that redundancy in the first place and didn't use a custom binary format. 00:53:53 hehe 00:54:07 int-e: Oh so true. 00:54:18 kipple: XML will fuck your brain enough without Brainfuck support ;) 00:54:33 double negative is positive! 00:54:37 Oh. I see something coming 00:54:44 :D 00:54:58 00:55:32 too concise, I'll admit, but it's a start. 00:55:33 + 00:55:44 :D 00:56:11 hmm, is --> valid? 00:56:26 err it'd be wouldn't it 00:57:01 kipple: we need to invent some logical way the next cells are checked; i mean that it's strange if sometimes the values are taken from the pixel where the instruction is, sometimes from the four next pixels etc.. 00:57:01 back to RGB: how about put taking coords from the two next pixels. the first pixel would be negative, and the second positive 00:57:32 hmm 00:58:38 or another way could be that it checks if pixel1's g is 0, then b's value will be positive direction, else if it's 1 or something, then b's direction will be negative 00:58:47 pixel1 being the x coordinate 00:58:52 and the same for pixel2 00:59:11 the g being 0 or 1 determining the direction (backwards or forwards) 00:59:19 and b being the value 00:59:26 yes. it could handle the next pixels as 24bit signed integers 00:59:57 no, that would perhaps make it too hard to program... 01:00:15 perhaps the 8-bit values is fine 01:00:27 i doubt anyone makes something very large program anyways, 01:00:32 and if does, they can use patterns 01:00:59 hmm. an address stack is tempting 01:01:15 Keymaker: did a trigger program 01:01:20 cool! 01:01:24 lemme see! :) 01:01:44 http://rafb.net/paste/results/1jN0f072.html 01:01:54 it's simple but it works 01:02:02 let me try :) 01:02:34 trigger is cool 01:02:41 thanks 01:02:50 and 99bob in trigger is insane-cool 01:02:54 :) 01:02:55 voted ***** 01:03:00 thanks 01:03:09 i have a new version of it on my page 01:04:32 jix: nice :) 01:05:14 jix: 01:05:16 xaxxaaxb bbxbbxc ccxccxd 01:05:16 aatbbuccv111fddev222eddfuccv333fddev444eddftbbu555fddeu666e 01:05:33 the die program 01:05:37 (that i call dice) 01:05:55 the rand seed is bad 01:06:12 i get the same number for every >4 calls 01:06:15 I know. I used the standard technique to use time() 01:06:24 which only changes once per second 01:06:32 hmpf 01:06:52 ruby uses microseconds^pid 01:07:00 anyways; kipple; where were we? 01:07:07 hmm. pid 01:07:08 thinking about addressing 01:07:11 ah 01:07:20 yes, using gettimeofday would be better but I was lazy 01:07:32 maybe we need a datapointer... 01:07:34 ruby's prng is very good.. passes all ent test 01:07:41 mmh 01:07:48 i'm not sure 01:07:50 it's a mtSOMENUMBER 01:08:07 mersenne twister. hmm. 01:08:35 kipple: must think about it 01:08:39 i just read the comment 'equidistributed in 300 dimensions' and stopped reading the source *g* 01:08:45 I don't think the idea to read from the next pixels according to the IP is a good idea. 01:08:46 personally i'd like only ip 01:08:56 :) 01:09:04 it's already hard to imagine 4d.. i don't want to imagine 300d 01:09:13 yes, it isn't very nice looking in the source either 01:09:20 a bit clumsy 01:09:27 "(It is proved that the period is 2^19937-1, and 623-dimensional equidistribution property is assured.)" 01:09:37 fun 01:10:03 kipple: then, do you suggest a stack? 01:10:13 it'd be probably best, since it's non-visible etc 01:10:16 hmm. not really 01:10:22 hmm ok 01:10:25 would be convenient, but unelegant 01:10:41 yeah.. but what would be the elegant choice? 01:10:57 haven't thought of it yet :) 01:11:01 :) 01:11:25 the elegant choice wouild be to use only g and b 01:11:28 :) 01:11:30 yeah 01:11:35 true 01:11:43 g is value, b is address 01:11:52 a bit limited though ;) 01:11:57 :) 01:12:10 almost trigger limited, if b being some memory address 01:12:39 but the address is really 3d 01:12:50 since there are 3 components of each pixels 01:13:00 yeah 01:13:21 that could be solved with three put instructions putR, putG and putB 01:13:30 yeah 01:13:54 but what about the coordinates -- or the value? 01:14:02 the value is from g 01:14:03 all can't be fit in two places 01:14:09 and coordinates? 01:14:13 that's the problem 01:14:15 b? 01:14:27 4 bits for x and 4 for y :( 01:14:33 yeah 01:14:40 :\ 01:14:51 not to mention copy and paste... 01:15:07 maybe we'll need to make up our own image format 01:15:31 like where each color component is a 64 bit int? 01:15:33 where each pixel has r and g and b values and ten other values :) 01:15:50 I'm sure RXML is up to the task 01:15:56 just joking :) 01:16:07 but that 64 bit int thing could work 01:16:28 let's stick to standard rgb or we cant convert to a normal image file 01:16:40 yeah 01:17:50 I think the proper course of action would be to RISCianly divide functions that can't be done in one "packet" into several *shrugs* 01:18:07 (Where "packet" = "pixel") 01:18:11 how about having a Data Offset which is applied to the IP when reading values? 01:18:40 hmm 01:18:59 no, that's just a data pointer in disguise... 01:19:06 :) 01:20:35 how about the values being read from a direction perpendicular to the IP? 01:20:51 what's perpendicular? 01:21:18 90 degrees (unless I'm mixing things up) 01:21:30 ah 01:22:06 kipple, that 01:22:10 is correct 01:22:27 that would prevent the ip execution the "argument pixels".. 01:22:32 so if the IP is moving left, the data is read downwards 01:22:37 or something 01:22:42 yeah 01:24:01 designing this kind of language is a lot more difficult than i expected it to b 01:24:06 *be 01:24:31 I think this is maybe the best way if we're to avoid DPs and stacks 01:24:40 yeah 01:24:46 anyways, i'm getting rather tired, it's 3:30 am already.. 01:24:57 maybe better continue another time? 01:24:59 only 2:30 here :) 01:25:03 :) 01:25:09 yeah, let's do that 01:25:13 ok 01:25:17 good nite everyone 01:25:28 i'm outta here for a while 01:25:29 night 01:25:34 bye 01:25:36 -!- Keymaker has left (?). 01:28:55 input in trigger doesn't work 01:30:14 ah it does work 01:31:18 -!- CXI has quit (Connection timed out). 01:35:53 a new trigger programm called numcat 01:35:54 http://rafb.net/paste/results/3OHwfi96.html 01:36:05 it's like cat but only supports 0123456789 and \n 01:36:35 gn8 01:39:17 -!- kipple has quit ("See you later"). 01:42:52 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 01:55:25 -!- calamari_ has joined. 01:56:24 -!- calamari has quit (Read error: 110 (Connection timed out)). 02:19:41 -!- calamari_ has quit ("Leaving"). 02:44:37 -!- calamari has joined. 02:45:21 yay, hacked scrobbler to remove all the limits about why it won't add a song :) 03:53:48 -!- int-e has quit ("Bye!"). 04:14:04 <{^Raven^}> hey 04:14:55 hi raven 04:15:12 done with summer classes.. that means I can work on my game a lot more now! 04:55:29 -!- calamari_ has joined. 05:14:05 -!- calamari has quit (Read error: 110 (Connection timed out)). 06:23:04 -!- prf has quit ("( www.nnscript.de :: NoNameScript 3.81 :: www.XLhost.de )"). 06:49:56 -!- fizzie has quit (brown.freenode.net irc.freenode.net). 06:50:18 -!- fizzie has joined. 07:18:25 -!- kipple has joined. 07:21:39 -!- pgimeno has quit (brown.freenode.net irc.freenode.net). 07:21:46 -!- pgimeno has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:23:45 -!- puzzlet has quit (Remote closed the connection). 08:23:45 -!- kipple has quit (Read error: 104 (Connection reset by peer)). 08:31:56 -!- puzzlet has joined. 11:02:33 -!- calamari_ has quit (Read error: 110 (Connection timed out)). 11:20:09 -!- jix has joined. 13:22:12 -!- Keymaker has joined. 13:22:27 hmm 14:26:00 <{^Raven^}> wibble 14:26:21 too bad i need to go now 14:26:33 bbl, hopefully kipple'll be around. 14:26:37 -!- Keymaker has left (?). 14:26:39 <{^Raven^}> have fun 14:27:27 <{^Raven^}> I gotta explain to someone unfamiliar to BF that it is *impossible* to save and load files 14:29:21 <{^Raven^}> I guess that what happens when you make brainfuck programs for the general public to use 15:50:36 -!- CXI has joined. 16:11:37 -!- int-e has joined. 16:46:22 GregorR: Using DOM for the RXML to PNM converter turned out to be a great choice - converting that 35 MB image to PNM used 350 MB of RAM ;) 17:22:05 int-e: YEEEEEEEEEEEEEEEEEEEEE HAW!!!! 18:30:16 -!- kipple has joined. 18:35:34 -!- Keymaker has joined. 18:35:50 hello 18:35:58 hi 18:36:01 hi 18:36:05 lo 18:36:15 evening 18:36:45 kipple: the esowiki article seems nice 18:36:52 the codename: rpg 18:36:56 oops 18:37:00 i mean rgb 18:37:12 hehe 18:37:15 :) 18:37:25 now that is an idea. an esolang based on RPGs :D 18:37:34 heh 18:37:57 anyway, I just jotted down what we've discussed so far. probably missed a bunch 18:38:04 nice 18:38:14 uploaded anywhere? 18:38:54 argh. dinner 18:39:01 i'll be back in a esominute 18:53:20 uploaded? what do you mean? 18:54:07 back 18:54:31 i meant that have you uploaded the things you jotted down 18:54:38 or did you jot them down on real paper? 18:54:44 umm. in the esowiki :) 18:54:48 ahh. 18:54:56 I said I porbably missed a bunch :) 18:55:12 ok ok 18:55:16 feel free to add to it 18:55:52 yeah, it looks like it has probably all or most of the stuff 18:55:57 anyway, regarding instructions and arguments 18:56:04 hm 18:56:36 what if g determines direction for reading the arguments, and b says how many arguments to be used? 18:56:48 not bad at all 18:56:56 that's very nice actually 18:57:16 for instance: ADD RIGHT 5 will add the values of the 5 pixels to the right of the IP 18:57:41 but where to put the return value if it's larger than 255? 18:58:08 hmm 18:58:14 first; 18:58:54 what if the case is that copy area thing where there's many arguments? 18:59:21 i think your idea could work the way g determines the direction where the values are read from 18:59:27 with this method there are up to 255 args 19:00:12 oops, seems i forgot to continue: 19:00:23 and the b could be ignored 19:00:28 do you see what i mean? 19:00:33 no 19:00:37 ok :) 19:00:40 wait.. 19:01:05 if there's the command copy_area(x1,y1,width,height,x2,y2) 19:01:18 then, where the instruction takes the arguments? 19:01:35 from the direction specified by g 19:01:38 ok 19:01:39 yes 19:01:41 (I don't understand the problem) 19:01:43 but how many 19:01:54 as much as it needs 19:02:03 or what's in b 19:02:05 you mean not use b? 19:02:11 no 19:02:18 i was just thinking 19:02:25 should the b affect to every instruction 19:02:39 or do instruction take the amount of argument pixels they need 19:02:50 some instructions will have a constant number of arguments, so then it is not needed 19:03:03 like copy_area 19:03:06 yeah 19:03:09 that's what i meant 19:03:15 so we don't really need it 19:03:35 but it is nice because we can have functions with a variable number of args 19:03:43 yes 19:03:46 but perhaps we can find better use for b 19:03:57 hmm 19:04:20 by the way, as well, when there are those argument pixels.. 19:04:37 should the instruction take data from their r and g and b 19:04:45 or only for example g 19:04:50 I'd say that should depend on the instruction 19:04:56 yeah 19:05:01 copy_are should take all 19:05:06 yeah 19:05:19 but there must be a way to manipulate them individually 19:05:29 yeah, definitely 19:05:30 that is something b could be used for 19:05:40 hmm? 19:06:06 b determines whether values are taken from r,g,b or all 19:06:13 ah 19:06:23 that sounds clever 19:07:22 what about instructions that return values? should we restrict return values to 8 or 16 bits? 19:07:32 ah, i was just going to mention that 19:07:36 hmm 19:07:43 or should we overwrite the entire pixel at IP? 19:07:54 yeah 19:07:59 that could depend on instruction 19:08:04 true 19:08:28 that's probably the best way to do it 19:08:37 16 bit values could be divided into two cells, g and b, if wanted 19:08:46 but does anyone use that big number these days ;) 19:09:45 it happens 19:10:08 :) 19:10:14 the instruction could also just overwrite the arguments 19:10:25 yeah 19:10:50 but i think it's best to make that instruction-dependable 19:10:51 but then again, has to be different for each instruction 19:10:55 hehe. we agree 19:11:10 by the way, 19:11:16 if wanting to make bigger values, 19:11:36 naturally it could be that each r, g and b are for example 32 bit values 19:11:45 that in the beginning just get values from 0 to 255 19:12:13 but it wouldn't work in a visual interpreter 19:12:32 unless mod 255 19:12:35 ok, it would work 19:12:39 or something like that 19:13:11 anyways, i'm really excited about the visual interpreter.. that will be really nice 19:13:16 bah. 8 bits is more than anyone's ever gonna need, right? 19:13:24 yeah 19:13:39 maybe we should just keep all 8 bits 19:14:18 you should be able to address larger blocks than 8 bits though 19:14:25 like for copy_area 19:14:29 mmh 19:14:32 well, that's easy 19:14:39 just add two arguments for one value 19:14:42 yes 19:15:24 nobody will ever need to copy bigger than maxium 16-bit value width areas 19:15:34 hehe 19:15:42 :) 19:15:43 that's a pretty big image, yes 19:15:48 yeah 19:16:00 by the way, 19:16:04 about the visual interpreter 19:16:24 what resolution would be good? 19:17:20 do you need specific res? why not a windowed app? 19:17:27 no i don't need to 19:17:30 i just thought 19:17:47 what if the ip moves out of the window? 19:17:52 should the screen follow it? 19:17:56 scrollbars? 19:18:10 well, yeah 19:18:45 i'm not sure if can get this thing programmed, though.. i'm not that good with any real langs, not to mention that i should do something with graphics or gui 19:19:27 the largest image I've worked with is 29952 x 11520, so 16 bits should be enough :) 19:19:36 :) 19:19:38 yeah 19:19:40 well, lets make a spec first, and think about implementation later 19:20:10 I don't have time to work on an interpreter at this time 19:20:15 and let's someone else, say GregorR write the interpreter :) 19:20:26 -!- int-e has set topic: Uhm, where are these archives again?. 19:20:49 wait 19:20:55 http://tunes.org/~nef/logs/esoteric/ 19:21:11 -!- int-e has set topic: archives of previous discussions can be found at http://tunes.org/~nef/logs/esoteric/. 19:21:25 thanks. I like to have that link in the topic. 19:21:38 this one is better formatted: http://meme.b9.com/~13835c5e839f38a85e97aeef~/cdates.html?channel=esoteric 19:21:38 yeah, it's useful there 19:21:59 i personally prefer the link i posted :) 19:22:45 less ugly link: http://meme.b9.com/cdates.html?channel=esoteric 19:23:33 anyways, kipple, about i/o. 19:23:44 i think the program should read the input from a file 19:23:49 and do the output to a file 19:23:55 ok. 19:24:05 we don't really need file output, but ok 19:24:21 i think it's useful 19:24:24 should they be images? 19:24:29 output? 19:24:34 both 19:24:37 mmmh 19:24:43 that'd be interesting idea.. 19:25:13 but then making it read for example normal text files would be quite difficult 19:25:18 yeah 19:25:30 but does it need to? 19:25:35 Apparently my powerful interpreters have gained notoriety :P 19:25:43 :) 19:26:04 the meme link is updated more quickly, I like that 19:26:18 -!- int-e has set topic: archives of previous discussions can be found at http://tunes.org/~nef/logs/esoteric/ and also at http://meme.b9.com/cdates.html?channel=esoteric. 19:26:19 don't let Gregor do it. then it will only ouput RXML! 19:26:28 :) 19:26:33 MUAHAHAHAHAHAHAHAHAHAHAHAHAHA 19:26:37 nooooooooo 19:26:40 RXML is great 19:27:16 Sorting mailbox...Segmentation fault 19:27:18 mutt sucks. 19:27:19 How about jpeg, so the program doesn't actually do what you programmed it to :P 19:27:26 haha 19:27:30 :) 19:28:12 cat would then be a whatever to jpg converter :) 19:28:30 heh 19:29:01 anyway, if we go with normal file IO it should be pretty straight forward I think 19:29:07 -!- CXI has quit (Read error: 60 (Operation timed out)). 19:29:11 yeah 19:29:32 May I suggest "nop" :P 19:29:38 well, yes 19:29:45 naturally there'll be nops 19:29:46 Since there doesn't seem to be any suggestion of a nop there :P 19:29:51 hundreds of them bwhahahaha 19:30:04 we haven't got that far yet! 19:30:11 Hhehe, OK :P 19:30:11 read/write could take arguments specifying the area to fill/read from 19:30:25 anything that is not an instruction should be NOP 19:30:42 indeed 19:31:16 anyway, did we agree on the canvas size? 19:31:23 infinite in all directions? 19:31:35 (negative coordinates) 19:31:58 iirc yes 19:32:07 but naturally we can change that if you want to 19:32:18 so, the source is placed at (0,0) but can move into negatives during exec 19:32:31 fine with me 19:32:35 ok then 19:33:01 then we need negative numbers in arguments :) 19:33:10 aarg 19:33:26 well, what about using the 16 bit values 19:33:33 well, we can do without, but it would be nice 19:33:38 wait 19:33:49 i was just thinking something and didn't realize to continue: 19:34:10 i mean if we're using 16 bit values, that are taken from two arguments (like g and b) 19:34:34 we could do the usual trick if the value is bigger than 16000 something 19:34:40 then it would be negative 19:35:08 we could just treat it as a signed integer. no need to do tricks 19:35:21 yeah 19:35:26 16383. and you mean the same thing 19:35:29 that's what i was trying to say :D 19:35:39 I would suggest some sort of bignumish support for having numeric values in the gb-rgb-rgb-... stream. 19:35:39 ok :) 19:36:02 So that you can truly support infinite area. 19:36:05 hmm. actually should be 32767, byt that's ok (or did you use another bit for something else?) 19:36:45 int-e: you are correct 19:37:19 ah 19:37:21 yes 19:37:44 btw, i need go for a while.. i'll be back soon.. 19:37:48 20 mins 19:38:38 I'll probably be gone then 19:59:29 ok 19:59:35 still here :) 19:59:39 :) 19:59:46 updated the wiki article 19:59:50 ah 19:59:55 with some suggestions for G 20:02:33 about file io; 20:03:02 perhaps we could have instructions for getting the next byte and outputting only one byte? 20:03:43 yes 20:04:09 good, because i want to make the traditional digital root calculator :) 20:04:09 how about: if G is 0 then take argument from b? 20:04:25 hmm 20:04:37 what about the directions then? 20:04:59 if G > 0 take B number of arguments in the direction specified by G 20:05:12 yeah 20:05:28 should've thought about that before asking :) 20:05:33 yeah, that's good i think 20:05:43 that could apply to most instructions 20:05:59 yeah 20:06:59 so, should we have diagonal directions for the args? or just right angles? 20:07:17 i think diagonal would be better 20:07:32 yeah, why not. we're wasting enough bits already :) 20:08:32 or wait.. i meant by diagonal to read the arguments from the direction g tells.. 20:08:34 sorry 20:09:40 um. that's what I meant. Or maybe I am misunderstanding you... 20:09:45 ah 20:09:46 then 20:09:53 sorry, i didn't quite understand :) 20:10:09 anyways, that's what i think is the best.. to check the direction from g 20:10:17 yes 20:10:28 but how many directions are there? 4 or 8? 20:10:35 what would you say? 20:10:45 i'm fine with 4 20:10:49 I say, why not 8? 20:10:52 ok 20:10:57 that is good as well 20:10:58 though it will probably not be used 20:11:09 yeah 20:11:17 so, don't know really 20:11:27 how about the 8 knight jumps :P 20:11:57 hehe 20:12:27 at least we have many instructions to use.. 20:12:50 so, having 8 instead of 4 wouldn't hurt 20:13:58 what about comparing stuff? 20:14:13 should we have stuff that something is ==, > or i mean that return 0 if two values aren't same and 1 if they're equal and so on.. 20:17:03 hmm 20:17:34 or one instruction for each 20:18:03 yeah, one instruction for each is good 20:18:10 and the result could affect the IP, not return a value 20:18:16 hmm 20:18:19 that is good idea 20:18:33 yeah, that is better i think 20:18:35 all control flow should be via the IP 20:18:42 yeah 20:19:36 it could compare just g and b, but we should probably be able to compare larger values as well 20:19:50 (since we have plenty of instructions, perhaps we should have ==, !=, <, >, <=, >=?) 20:19:53 hmm 20:19:56 yeah 20:20:59 naturally it could be that those instructions just take more arguments 20:21:13 and not only g and b 20:21:53 how about: if G>0 then take arguments as normal. if G== then compare b to 0 20:22:19 if G=0 then compare b to 0 20:22:36 hmm, you mean in this specific instruction? 20:22:42 yes 20:22:44 ah 20:22:51 not bad 20:22:55 in all logical ops 20:23:03 yeah yeah 20:23:31 well, in general G=0 means use only B as arg. 20:23:40 yeah 20:24:13 by the way, what directions to use for the ip in those cases? 20:24:26 forward and backward? 20:24:31 what do you mean? 20:24:53 that if true, them let ip continue, otherwise turn the direction.. 20:25:04 i don't think reverse is good 20:25:14 yeah 20:25:25 how about: combining ==,> and < 20:25:42 if equal, continue forward. if greater go right, if less go left 20:25:53 hmm 20:25:54 not bad 20:26:08 that is clever 20:27:12 that instruction could handle all manipulation of the IP 20:27:24 yeah 20:27:29 anyway, now I gotta go. 20:27:31 see you later 20:27:33 ok 20:27:34 yeah 20:27:36 bye 20:54:10 -!- calamari has joined. 20:55:08 hi 21:01:12 hi 21:05:50 I think I'm going to abandon my 2-d language for now. I want to work on other projects :) What ever you guys come up with will be great anyways. 21:06:24 ok.. and thanks, i hope it's going to be great 21:07:06 good luck with the other projects 21:07:22 One thing I was planning to do differently was to use the lower 2 bits of each RGB, to give 6 bits to work with. This way it's harder to see the program, but it's still faintly there 21:08:12 2 bits would determine the next cell: straight, turn left, turn right, choose: ab right, a==b straight 21:08:26 and two registers a & b obviously :) 21:08:34 ok 21:09:03 kipple has made some very clever ideas for movement 21:09:24 that left 4 bits for an instruction.. so 16 instructions. I figured that multiple 4 bit chunks would be used for data 21:09:56 kinda like in asm ,where after an opcode is given, the next few bytes given are data rather than opcodes 21:10:14 yeah 21:10:27 I was reading some of the logs and you both ahve come up with some great ideas 21:10:35 thanks 21:10:47 it's very fun to do cooperative language 21:13:32 I have a Java 2D graphing program I wrote that should be able to be redone for whatever you need, in case you decide not to go with SDL 21:14:00 ok, thanks 21:14:42 writing the interpreter for this language will be quite hard i assume.. 21:15:00 are you going to be doing jix's spiral idea? 21:15:06 nope 21:15:55 it's nice idea but we want to make the language as simple as possible 21:16:02 and since there is no data pointer, 21:16:25 making the instruction pointer behave that would be difficult for the programmer :) 21:18:15 one thing I began to realize with mine is that if I limited the data pointer to the cell I was in, that would make it impossible to have an artibrary effect on a single memory location 21:18:40 so some kind of offset system or my box bushing or whatever might be needed 21:18:44 pushing 21:18:50 hehe 23:31:22 -!- calamari_ has joined. 23:48:26 -!- calamari has quit (Read error: 110 (Connection timed out)). 23:49:47 nite,, 23:49:49 -!- Keymaker has left (?).