00:00:15 also maybe there aren't names dunnoes....... 00:00:59 where are the namez 00:03:59 err wow i can't figure out how to get a newline in a string in j 00:05:52 err oklofok, I keep meaning to ask 00:05:56 how do you explicitly refer to a param 00:06:00 e.g. id=:{my param} 00:07:05 Hmm 00:07:11 * Blipi lost 00:07:16 hi Blipi 00:07:20 I'm off (: 00:07:23 Hey 00:07:27 bye Blipi 00:07:30 :D 00:07:31 Bye 00:07:36 -!- Blipi has quit ("- nbs-irc 2.39 - www.nbs-irc.net -"). 00:11:15 aha, LF 00:11:31 oklofok: sooo 00:11:32 how do you do it 00:15:00 oklofok: pinger 00:18:31 ah you gotta use a 3: thing 00:19:50 o 00:20:17 yes 00:20:31 hmm 00:20:36 for dyadic you get (x,y) as the argers 00:20:39 i haven't used them........................... 00:20:47 but x and y are undefinered for monadies hwo stupiiiidy 00:20:48 *-ellipsis 00:20:50 ah wait 00:20:50 it's y 00:20:59 er or not 00:21:08 x and y are the args afaik 00:21:26 but it's not that simple 00:21:27 id =: 3 : 0 00:21:27 y 00:21:28 ) 00:21:30 id 2 00:21:32 2 00:21:34 it's y for mony-attic 00:21:40 x fun y 00:21:43 yes 00:21:48 and (fun y) 00:21:50 hmm 00:21:50 but 00:21:57 calling another fucktion fails 00:22:01 say=:1!:2&4 00:22:01 sayn=:3:0 00:22:02 say y 00:22:04 ) 00:22:06 sayn 'foo' 00:22:07 maybe there should be a language that had sads too 00:22:08 gives a valueerror on the y part of say y 00:22:10 HOW ODDITY 00:22:22 oklofok: the opposite of fun is boringness, duh 00:22:24 although i guess that's technically not a good opposite for fun 00:22:26 yes 00:22:31 (boringness x <- x+1) 00:22:33 i was just thinking 3 letters 00:22:38 I don't know how that would work but hrm. 00:22:41 but a really long one works just as well 00:22:47 maybe like 00:22:57 i have no ide 00:22:58 a 00:23:06 the idea is basically 00:23:08 maybe it's boringness that should be functions 00:23:09 anti-do things to the arguments 00:23:14 and fun should be something fun 00:23:14 instead of arguments you get unarguments 00:23:17 and you undo things to them, see? 00:23:21 ah! 00:23:22 sure sure 00:25:31 you undo undergarments? 00:25:46 yes 00:25:49 wait no 00:25:52 that's not boringness, that's fun 00:25:53 silly 00:32:52 oklofok: heh 00:32:54 3:0 is (3:) 0 00:32:57 but 3 :0 is 3 : 0 00:33:00 and the latter is what you want 00:33:03 so infuriating :DD 00:34:50 how so 00:34:58 : is a suffix 00:35:02 well yeah 00:35:04 still infuriating 00:35:26 well you're the guy who didn't like random numbers for foreigns, so... 00:35:37 i serve to live 00:36:34 system/extras/util/lab.ijs:output=: [: empty 1!:2 & 2 00:36:38 cannot figure out why that works. 00:37:00 system/main/conlib.ijs:echo=: 0 0&$ @ (1!:2&2) 00:37:00 system/main/conlib.ijs:stdout=: 1!:2&4 00:37:02 system/main/conlib.ijs:stderr=: 1!:2&5 00:37:04 ah yes. 00:38:09 #!/usr/bin/env jconsole 00:38:09 echo 'Hello, world!' 00:38:11 (2!:55)0 00:38:13 ok, that's better 00:39:27 system/main/stdlib.ijs:exit=: 2!:55 00:39:28 ha 00:39:33 #!/usr/bin/env jconsole 00:39:33 echo'Hello, world!' 00:39:35 exit 0 00:39:41 wow 00:39:44 if you add a spac 00:39:44 e 00:39:46 that's valid shell _and_ j 00:39:48 Jell! 00:54:10 http://www.schneier.com/blog/archives/2009/03/blowfish_on_24_1.html <-- hahaha 01:00:45 wait the algo has a backdoor? 01:00:57 no 01:01:03 24 is a stupid tv show 01:01:06 fiction 01:01:10 i meant in the show 01:01:12 yes 01:01:21 i mean they're not exactly technical accuracers are they 01:01:33 i love concising things I verb. 01:01:46 if they actually used the term "wavelength", i find that much funnier 01:02:01 they did 01:02:03 i don't see why there couldn't be a backdoor in the algo in theory 01:02:08 there could 01:02:33 anyway after time travel, hacking is probably my least favorite thing in tv shows 01:02:46 of course, i love watching both; but at the same time they are so goddamn painful to watch 01:02:59 I like hitchhikers guide to the galaxy's time travel 01:03:09 you can't change the future, because it all just sort of works out. 01:03:18 who cares about the butterfly effect if you're not a butterfly. 01:03:24 also, there's temporal paradoxes in it 01:03:29 except they don't actually do anything. 01:03:42 BLATANT DISREGARD FOR TIME hoooooo 01:04:22 i hate all the time travel types 01:05:25 wait 01:05:28 even qntm's? 01:05:40 wuzat 01:05:50 http://qntm.org/?models 01:06:02 there's some crazy ass ones 01:07:33 -!- olsner has quit ("Leaving"). 01:10:16 -!- Sgeo has joined. 01:28:32 the two timelines interacting stuff i don't remember seeing anywhere 01:29:18 but no i didn't like any of those, i just think the whole idea is incredibly stupid 01:41:08 why 01:42:12 you might start by asking why i don't believe einstein is correct about time even being bendable 01:42:17 :P 01:42:59 firstly i don't know any physics, secondly i'm a coconut. 01:58:08 i feel you should all know 01:58:14 that Philip Glass's Pruit Igoe 01:58:18 is an incredible song 01:59:21 Someone thinks I'm a bunch of penguins 01:59:39 well, "sgeo" IS italian for "bunch of penguins", you know 01:59:41 http://www.flickr.com/photos/83024403@N00/3266023863/ 02:00:08 you know 02:00:17 i feel like that's something cory doctorow would write in one of his stories 02:00:42 a posthuman who's embodiment is as a half dozen or so penguins 03:32:08 People who "the xkcd guy" can refer to, in order: 1. Randall Munroe. 2. That guy who always wears a hat. 3. Cory Doctorow. 4. That furry. 03:32:29 Except that furry isn't actually related to xkcd in any way. 03:37:35 -!- bsmntbombdood_ has changed nick to bsmntbombdood. 04:02:28 -!- GreaseMonkey has joined. 06:23:10 -!- Sgeo has quit ("Leaving"). 06:49:24 -!- Asztal__ has joined. 07:01:59 -!- Asztal has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:31:09 -!- neldoret1 has quit (Read error: 110 (Connection timed out)). 10:09:31 -!- GreaseMonkey has quit ("X-Chat -> http://xchat.org <- At least when I quit I don't look like a lamer"). 10:37:53 -!- Otrez has joined. 10:38:48 UHAHAHAHAHAHAHA 10:39:21 That was my friend -.- 10:42:42 -!- Otrez has quit (Read error: 104 (Connection reset by peer)). 14:21:56 -!- neldoreth has joined. 14:41:49 -!- Hiato has joined. 15:14:14 o 16:18:39 -!- Hiato has quit ("Leaving."). 16:56:21 -!- ais523 has joined. 17:13:08 -!- Hiato has joined. 17:13:45 -!- asiekierka has joined. 17:13:47 Hi 17:13:57 hi 17:14:15 What's the current "channel topic" as in, what are you currently talking aout? 17:14:16 about* 17:14:44 there wasn't one 17:15:12 So uh, what's the current "esolang with interest", as in, what's the popular-esolang-of-the-while? 17:15:24 currently 17:15:46 I was thinking a lot about MiniMAX last night 17:15:58 although nobody else knew I was doing that, so it probably hasn't caught on elsewhere yet 17:17:59 Wow, MiniMAX's intepreter is only 14 bytes 17:18:06 I think you could pull it off as a compiler 17:18:16 just by making a compiler appending the MiniMAX code to the interpreter 17:18:17 :P 17:18:19 yes 17:18:24 I had that plan too 17:18:29 The goal is to make it 14 bytes too :P 17:18:39 Oh wait 17:18:41 it must be more 17:18:48 cuz it must be more than the program you're appending 17:18:55 But try to make it <= 128 bytes 17:19:01 well, the main loop of the interp is 8 bytes 17:19:06 my actual target was 32 17:19:10 to set a new record 17:19:21 but I was going for the very shortest main loop I could, so I could use the rest for startup code 17:20:07 But still, you have 14 17:20:18 yes 17:20:20 for the compiled app stub 17:20:22 that's without I/O or anything 17:20:27 oh 17:20:29 ...right 17:20:32 I have a 32-byte version with I/O somewhere lying around 17:20:39 although I've never dared run it, so I don't know if it works 17:21:05 (the 14-byte version has I/O in that it reads the program, IIRC; but the actual program can't do I/O) 17:21:42 You know 17:21:52 I think you could make the 14-byte version into a floppy disk compiler 17:22:01 As in, the bootsector loads the data from the floppy disk into the RAM 17:22:05 and executes the code of MiniMAX 17:22:20 You can do it with any small-interpreter esolang 17:22:25 yes 17:22:25 or even with any ASM-interpreter esolang 17:22:33 what about FALSE? 17:22:46 It's 1024 bytes of 68000 machine language 17:22:54 68000 17:22:57 not x86 17:23:30 ah, ok 17:23:35 probably you could translate it 17:23:40 What about Shelta then? With 512 bytes of code it's impossible to add any code for the bootsector thing, right? 17:23:52 Well, the trick is to load the program from the floppy disk too 17:24:03 And I think you could make a 3-language interpreter bootsector 17:24:06 you'd need a floppy disk driver 17:24:09 MiniMAX, MinISCule, Barely 17:24:15 but this gives me an idea 17:24:16 ais523: Make your own simple FS 17:24:23 an OS written entirely in esolangs 17:24:23 for example, 256 numbered files 17:24:27 apart from a few bytes of asm 17:24:29 ais523: THAT WAS MY IDEA! 17:24:38 well, it's a good idea then if we both thought of it 17:24:38 and I made it about a year and a half ago 17:24:43 there have been EsoOS plans before 17:24:50 but none of them really got anywhere, AFAIK 17:25:17 Well, I think the EsoOS could consist of a "bootdata" program 17:25:21 as in, shell + esolang interpreters 17:25:30 and it'll be a bootdisk for running esolangs 17:25:37 this reminds me of suuda 17:25:38 I have a bootsector BF ASM implementation by my friend 17:25:43 which is in my esolangs directory, even though it isn't really 17:25:44 He made a bootsector executing BF ASM code 17:25:52 complete with stdin/stdout I/O 17:25:55 heh 17:26:05 you know of self-extracting executables 17:26:14 as in, compressed files with a .exe extension 17:26:26 well, suuda creates self-uudecoding executables 17:26:32 the resulting executable's entirely plain text 17:28:27 Actually, that implementation is smaller than 240 bytes 17:28:34 I'm not surprised 17:28:35 182 bytes with the bootsector code 17:29:27 The bootsector code is 29 bytes 17:29:36 people have written Linux executables for BF 17:29:36 I think it could be about 155-160 bytes when modified 17:29:41 where the entire program fit in the header information 17:29:42 to be non-bootsector 17:29:45 so there's nothing but the header 17:30:12 So we have ready versions of: BF, Shelta, Barely, MiniMAX, MinISCule 17:30:15 :D 17:30:50 I've never actually run the MiniMAX interp 17:30:51 The bootsector-specific code is mostly configuring the stack so it MIGHT BE needed 17:30:57 ais523: you DIDN'T!? 17:30:59 I tend to be scared to run programs I've written by hand in machine code 17:31:07 ais523: Run it in QEMU then 17:31:07 :P 17:31:11 That'll NEVER break your PC 17:31:14 yep 17:31:35 actually, I must make myself The Reference of Assembler 17:31:37 Because basically 17:31:59 me coding = PC, keyboard, book or references on the desk, some paper (if needed) 17:32:03 ;P 17:32:12 I can quickly find information and I use that ability 17:32:14 -!- Hiato has quit (Read error: 104 (Connection reset by peer)). 17:33:04 I need to print myself a book (or just print a stack of paper) containing memory stuff, commands, INT stuff and some other tricks 17:33:19 a stack of paper hold by something so i can browse it nearly like a book 17:33:57 So basically, I would need to write a shell, a very simple FS (256 numbered files probably, as in, 00-FF) 17:33:59 and all 17:34:08 Basically, there will be the Data Table, which will contain: 17:34:19 ...er, 256 pointers to different positions on the floppy disk 17:34:48 While reading, it will jump to the proper spot, read the header (containing a "magic", type and some other stuff) and run the app 17:35:59 Basically, the first sector is the bootsector, then there's disk data (pointer to the files and some other misc. stuff), then th efiles 17:36:01 the files* 17:36:08 The bootsector will execute file 00 17:36:15 which will always be in ASM 17:36:23 :) 17:36:31 what do you think 17:37:20 And if you need INT information, I will link you to a good webpage in a sec 17:37:43 or not in a sec 17:37:45 my PC crashed 17:37:50 therefore me needeth to reset my PC 17:38:12 -!- asiekierka has quit. 17:41:44 -!- asiekierka has joined. 17:41:45 back 17:42:17 http://www.ctyme.com/intr/int.htm - Possibly the best interrupt reference in the world 17:43:05 asiekierka: I went and got hold of a DOS 3 user's manual from the uni library 17:43:16 or at least, I do whenever I want to do low-level DOS programming 17:43:21 I put it back when I'm not using it 17:43:46 this is Poland 17:44:10 and the closest manuals we had pre-1989 were translated German ones 17:44:19 But I may find something 17:44:27 -!- oerjan has joined. 17:47:55 Basically, I will store the position as sector/cylinder/head 17:47:58 probably using 2 bytes 17:48:01 1 byte will be 17:48:11 bit 7: head 17:48:21 bits 6-0: cylinders, of whom there are 80 17:48:34 second byte: sectors (1...18) 17:49:17 The sectors only take 5 bytes 17:49:21 Therefore I have 3 left 17:49:43 And hopefully, the file data will take exactly 512 bytes 17:49:45 so exactly one sector 17:50:03 That was my friend -.- 17:50:07 so they all claim. 17:51:19 Oh, and each file has a magic of 0xA51E 17:51:39 If I will need any other magic, I may use 0x0523 17:54:13 AnMaster: LOLIWC 17:55:16 using more than 2 bytes magic tends to help 17:55:17 oerjan, I read it hours ago.... 17:55:32 at least, if you want to distinguish from other files 17:55:33 Basically, the header format is magic, size in sectors, 1 byte for data information (bit 7 = Secret (not inputtable via shell)?, bit 6 = Read-only?, bits 5-4 = Resered and bits 0-3 = Type 17:55:45 ais523: I can distinguish from other files 17:55:50 I have a list of all the positions 17:56:00 And the magic is just to check if the sector is correct 17:56:04 ah, aha 17:56:06 Cuz every file will be at least 2 sectors 17:56:10 :P 17:56:18 So i use 4 out of 512 bytes 17:56:18 well, 2 bytes could still happen by coincidence 17:56:21 AnMaster: good i didn't bother spoiling it, then 17:56:53 The magic is now 0xA51E + file number (00-FF) 17:56:56 -!- FireFly has joined. 17:57:02 So positioning on the wrong file is out too 17:57:36 * oerjan hands FireFly a free non-swat coupon 17:57:42 would you like to cash it now? 17:58:05 I'll keep it for now 17:58:10 i see 17:58:17 * oerjan swats FireFly -----### 17:58:19 Inbef 17:58:21 >>_> 17:58:24 :( 17:58:37 huh? 17:58:54 Filled 37 bytes 17:58:55 I was going to write "Inbefore: :(" 17:59:02 by adding 32 chars reserved for name 17:59:09 Stop being fast 17:59:19 if the size is 0, then it shows the number, but the reserved place is still there 17:59:34 i was fast? i even had an intermediate comment. 17:59:54 I started writing after "I see" 17:59:56 AND 18:00:03 Oh, and I added another 2-byte magic at the end 18:00:04 I'm new to Dvorak 18:00:07 0x0523 - File number 18:00:27 well obviously your next comment was splattered across the screen, the reason should be obvious 18:00:58 The current filesystem allows for 256 files, 32K each 18:01:00 :D 18:01:04 asiekierka: You're here! I have issues with DOBELA. 18:01:08 ... 18:01:10 Are you serious? 18:01:14 Yes, very. 18:01:23 Get it on! 18:01:30 Well, as serious as can be when esolangs are concerned. :-P 18:01:43 asiekierka: So, basically, the spec sucks. 18:01:51 Why? 18:01:54 What's wrong with it? 18:01:56 Try to be more specific 18:02:11 I'm trying to implement and I have about 20 questions here, so here we go. 18:02:23 asiekierka: For starters: what happens with non-command chars? 18:02:24 Ok 18:02:25 Oh 18:02:40 ...non-command chars? I think they would be ignored, as in, wiped when running 18:02:41 asiekierka: I.e. if a dot hits one, does anything happen? Can they be considered blank spaces when loading the file, or what? 18:02:46 Blank spaces. 18:02:49 Okay. 18:03:02 -!- MigoMipo has joined. 18:03:04 EOF is the Linux one if anything 18:03:12 now go on with other questions 18:03:22 asiekierka: BTW, are you going to write this stuff down or should/can I add stuff to the wiki page 18:03:27 Yes you can 18:03:36 Alright, I probably will. 18:03:40 Just increment the spec number by 1 and add (modified by asiekierka and Deewiant) 18:03:49 and then you're free tog o 18:03:50 to go* 18:04:05 asiekierka: Next: what happens when a dot hits =? Does it bounce off like from a #, reflect, go through, what? 18:04:34 lemme look at my wiki page... 18:04:34 I.e. if on cycle 1 it collides with =, where is it on cycle 2 18:04:43 goes through on the other side 18:04:45 but the = is still there 18:04:45 Does it start moving from on top of the = 18:04:50 Or does it start from behind the = 18:04:57 i already said 18:05:01 as in 18:05:02 cycle 1: 18:05:03 Yes, but there's a timing issue her 18:05:04 +e 18:05:06 .= 18:05:07 cycle 2: 18:05:08 =. 18:05:15 Okay, so it sort of jumps over it. 18:05:16 Yep 18:05:23 That's correct 18:05:37 Then: what happens to a dot that hits _? 18:05:45 Jumps over it again? 18:05:56 Or destroyed with no effect? 18:06:04 Destroyed with no effect. 18:06:23 hmm... would it be possible to write a DOBELA interp in ALPACA + a preprocessor, I wonder? 18:06:31 I think possibly 18:06:43 Maybe there will need to be slight spec changes 18:06:47 but it should be (mostly) possible 18:07:01 4. Is $ supposed to buffer until either the program ends or a ^ gets hit south? 18:07:22 When ^ gets hit south 18:07:31 it outputs all and clears itself 18:07:51 so yep 18:07:53 until ^ gets hit south 18:07:56 but then it just clears itself 18:07:57 So nothing is output until then 18:08:00 Yeppers 18:08:15 5. What's the default state of |? 18:08:38 It destroys dots. 18:08:41 I.e. when a dot hits it east/west do they go up or down by default 18:08:43 O_o 18:08:49 ...Or no 18:08:49 wait 18:08:53 they treat it like a wall 18:08:59 As in, bounce off based on the dot's whims 18:09:09 Ookay 18:09:16 Setting it makes both dots bounce to the same direction 18:09:18 which is useful 18:09:36 I'm going to go to 10. and take a break from my PC 18:09:45 While you're gone, think about v 18:09:51 oh 18:09:54 I basically don't get it at all 18:09:56 what do I mean by outputting? 18:09:58 Basically 18:09:59 Yes 18:10:14 The dot hops over, but it's changed into whatever comes from the FIFO 18:10:25 Except if hit south, then the dot is destroyed 18:10:30 Hops over? It says dots are destroyed always 18:10:39 ... 18:10:45 Well, I think i just explained it wrongly 18:10:55 And okay, but what if there are _ 18:11:05 This takes dots from stdin 18:11:08 as in, _ does 18:11:13 take dots from stdin 18:11:14 Okay so what is the FIFO 18:11:21 DOBELA's stack 18:11:22 Just a queue in memory? 18:11:23 Yep 18:11:26 For stdout 18:11:47 Right right, okay 18:12:05 Cat wouldn't sadly work cuz it never clears and outputs the FIFO 18:12:10 :P 18:12:13 i mean 18:12:14 won't work 18:12:17 Yeah, I was going to ask that next 18:12:26 Should the FIFO be flushed at end of program or not 18:12:35 yep 18:12:43 So cat does work after all? :-P 18:12:43 But you can add a verbose switch 18:12:48 wait 18:12:49 flushed? 18:12:53 By flushed i thought cleared 18:12:54 I meant, to stdout 18:12:59 As in, it clears the FIFO upon end 18:13:04 except if you add a -v switch 18:13:04 Well, no point in clearing it if the program ends anyway :-P 18:13:06 then it outputs it 18:13:10 in binary 18:13:23 Useful for debuggingeth 18:13:33 Then, : and _ 18:13:39 Do they output on the first or second cycle? 18:13:40 -!- BeholdMyGlory has joined. 18:13:47 Every second, yes, but when is the first 18:14:03 _ outputs every cycle it gets a keystroke 18:14:09 and : starts on the second cycle 18:14:30 Well, _ has a buffer (sort of) 18:14:30 With buffered input _ has no choice in the matter 18:14:38 and outputs 1 bit from the buffer if it has one 18:14:40 I mean, stdin is buffered on the OS's side 18:14:40 every cycle 18:14:46 Oh 18:14:58 Basically, if it has a bit from stdin, it outputs it 18:15:04 If it doesn't have any, it does nothing 18:15:06 Yeah but if you have say just a _ 18:15:16 Then does it ask for input from the OS on the first or second cycle 18:15:27 I think the first 18:15:33 : on second, _ on first? 18:15:37 yep 18:15:40 is that a wrong idea? 18:15:40 Okay 18:15:46 seems not 18:15:48 Well, I don't think it matters 18:15:48 but go on 18:15:55 It's just something that has to be known :-P 18:16:06 also, DOBELA operates on bits 18:16:09 called "dots" 18:16:11 but go on 18:16:11 Alright, I think this is number 7 or 8: what do multiple _ do? 18:16:20 Hmm... didn't think of that 18:16:30 I think a fair one will be for them to do it sequentially, top-left 18:16:43 Like, if there's "_ _ _" in the first row and " _ _ " in the second 18:16:45 Number 10 would have been "what exactly is topleft" 18:16:50 then the top-left _ outputs first 18:16:54 then the one next to it 18:16:58 until all did output something 18:16:59 Alright 18:17:01 then it scans the next row 18:17:14 I mean, only one _ outputs per cycle 18:17:29 Oh, that's interesting. 18:17:30 And if there's more than one _, they go sequentially every cycle 18:17:36 ignoring the "every other cycle" thing 18:17:40 So if there are two _'s 18:17:45 -!- Mony has joined. 18:17:46 then the first one outputs on cycle 1 18:17:50 then the second on cycle 2 18:17:54 So the 'every other cycle' rule only applies if there's one _? 18:17:55 then the first on cycle 3, etc... 18:17:56 Yep 18:18:08 Weird design but I wanted it to be like that 18:18:13 Heh 18:18:15 So now Number 8 or 9 or 10 or whatever 18:18:23 what about Number Banana 18:18:24 Yeah, whatever: north-south collision isn't specced 18:18:30 East-west you have 18:18:38 If there are two dots only 18:18:43 it works exactly like east-west 18:18:49 Yes, but 0/0 and 1/1 are different 18:18:50 only rotated 90 degrees 18:18:53 In which direction? :-) 18:18:58 Clockwise or counterclockwise 18:19:00 Clockwise 18:19:03 Alright 18:19:06 as in 18:19:11 the stuff created is 18:19:16 0/0 leads to: 18:19:17 # 18:19:18 18:19:20 yep 18:19:22 and 1/1 leads to 18:19:25 # 18:19:31 oh wait 18:19:31 You failed 18:19:33 18:19:33 i know 18:19:34 # 18:19:35 ok 18:19:39 plop 18:19:39 so let it go on the next Q 18:19:43 plop 18:19:50 continue, D-wiant 18:19:53 i mean 18:19:54 Deewiant 18:19:55 asiekierka: Multi-dot collision, I basically don't get how it should work 18:20:03 Just like the _'s are scanned 18:20:13 Or wait 18:20:16 So the topleftmost one moves first, then collides with whatever 18:20:18 First the east-west collisions 18:20:22 then the north-south collisions 18:20:29 For instance your example 18:20:34 the east-west ones are scanned top-down 18:20:36 V 18:20:37 Darn 18:20:41 V 18:20:43 ->.. 18:20:48 .<- 18:20:49 and north-south are scanned left-right 18:20:58 If we have that, to me it seems like there's no collision 18:21:02 first east-west, so the 2 .. dots would collide 18:21:05 then only 1 . dot is left 18:21:09 so no collisions left 18:21:14 and the . dot does NOT move 18:21:19 because it was blocked earlier 18:21:29 :P 18:21:29 So, uh, what? 18:21:31 So uh 18:21:32 The topleft . moves 18:21:34 with my example 18:21:37 It hits the topright one 18:21:42 No, it's different 18:21:46 If it detects a collision 18:21:48 anywhere 18:21:54 Then it scans the board for east-west collisions 18:21:57 top to bottom 18:22:00 O_o 18:22:02 And it removes them 18:22:06 Inefficient much? :-P 18:22:09 Then it scans the board for north-south collisions 18:22:11 left to right 18:22:13 and removes them too 18:22:18 So what about that one 18:22:23 There are no east/west or north/south collisions 18:22:29 but? 18:22:40 Well, I care about my idea 18:22:43 To me it seems like, if they all move at the same time, we just have the next state be: 18:22:49 that some combos create walls 18:22:51 . 18:22:52 and some don't 18:22:52 .. 18:22:55 Darn 18:22:59 I meant 18:23:00 . 18:23:00 .. 18:23:07 well 18:23:13 oh wait 18:23:15 The topleft one moved east, the topright one moved south, the lower right one moved west 18:23:18 So it's all OK 18:23:21 Well 18:23:27 At the end of it, no two are on top of each other 18:23:52 What about "if more than 2 dots collide (as in, collide, not what I did there), all are bounced" 18:23:53 so for example 18:23:58 V 18:23:59 I guess this cuts back to a bigger issue 18:24:01 ->.. 18:24:07 . 18:24:09 " 18:24:13 Which is: how exactly are moves timed 18:24:15 er, ^ 18:24:27 -!- neldoreth has quit ("leaving"). 18:24:31 Well 18:24:31 -!- neldoreth has joined. 18:24:36 I think they should be handled top-left 18:24:55 If a dot detects a collision 18:25:01 it handles it with the exceptions 18:25:05 no multiple collision :P 18:25:14 it's handled all at once :) 18:25:18 and no prob 18:25:30 so my example: 18:25:30 Yeah, but that still doesn't say how they move (I don't think) 18:25:32 V 18:25:35 ->.. 18:25:39 .<- 18:25:43 will be on the next cycle 18:25:53 .<- 18:26:01 i know i failed 18:26:05 But, uh 18:26:12 Aren't 1/1 supposed to create a wall? 18:26:18 So 18:26:21 well, yes they are 18:26:25 # 18:26:28 .<- 18:26:31 oh, right 18:26:31 yep 18:26:36 that's how it will work 18:26:43 get it or not 18:26:56 "Program ends when there is no more dots moving." <-- So shorter cat example would die in gen 2, since inputs are only spitted out every other generation? 18:26:59 That's still not 100% clear with regard to what you said about detecting all collisions at once 18:27:03 FireFly: Shush, that's question 13 18:27:07 :D 18:27:20 Deewiant: I'm changing the spec 18:27:38 Firefly: Uh, no more dots moving AND no _'s 18:27:42 change it to that 18:27:51 asiekierka: So if a dot has participated in a collision, it won't collide with anything else any more 18:27:58 I think that disambiguates it completely 18:28:11 Well, if it patricipated in a collision, the exception is carried out 18:28:16 so it changes either into a wall or nothing 18:28:19 therefore the dot ceases to exist 18:28:20 Hm, what about multiple _'s then? 18:28:25 I explained that! 18:28:26 FireFly: I asked that already 18:28:30 Ah 18:28:39 The rules are a mess of a mess of King the Mess 18:28:47 but go on, Deewiant 18:28:49 asiekierka: So basically the dots are instantaneously destroyed/walled half-way through an iteration 18:28:51 I want to finish this 18:28:56 asiekierka: Yeppers 18:28:57 i mean 18:28:59 :-D 18:29:00 Deewiant: Yeppers 18:29:32 More Q's? 18:29:38 asiekierka: Simplish question: what does 'ASCII files' actually mean? Is non-ASCII an error? (You probably just meant that #,.= etc are ASCII and not EBCDIC) 18:29:41 Yeah, a few 18:29:52 ASCII files as in not Unicode 18:29:57 but if you want 18:30:00 you can add Unicode support 18:30:03 but you don't need to 18:30:17 This is not a rule but more of a "Unicode not needed" 18:30:18 Yeah, but since the only commands are all ASCII anyway 18:30:22 yep 18:30:30 but some Japanese nerd might want Unicode for comments 18:30:31 It doesn't really make a difference whether you say "not Unicode" or not :-P 18:30:39 so ok 18:30:40 go go on 18:30:51 Ah, okay, so you're just saying that impls don't need to support anything beyond ASCII 18:31:01 yep 18:31:06 they don't even need to support extended ascii 18:31:08 Alright, few longer questions now 18:31:08 just chars 0-127 18:31:18 IO is basically binary 18:31:19 Oh, and I/O is still handled as ASCII 18:31:21 Deewiant: Yep 18:31:43 So what happens if the OS provides IO which can't be done at bit granularity 18:31:51 As in, it sends bytes? 18:31:55 Yes 18:32:02 Then the bit separation must be carried out by the interpreter 18:32:06 Yes 18:32:19 So then, what if the FIFO contains a single 1 18:32:23 And is flushed to stdout 18:32:32 Is that 0b10000000 or 0b00000001 18:32:37 Is that system-dependent? 18:32:40 0b00000001 18:32:51 What about on big-endian machines? 18:33:03 Well, it should be 0x01, whatever the binary result is 18:33:24 as in 18:33:26 a single 1 18:33:29 should be output as 0x01 18:33:30 So basically a DOBELA program always sees a little-endian world 18:33:35 Probably 18:33:46 (I think. Or big-endian. Whatever.) 18:33:48 Well 18:33:59 I think it just inputs data converted to little-endian 18:34:07 and outputs data converted from little-endian to whatever the OS needs 18:34:29 Yeah, that's basically what I meant 18:34:34 ok 18:34:36 how much more 18:34:37 Alright, then what FireFly said earlier 18:34:41 Just three 18:34:43 Including this one 18:34:43 ok 18:34:44 go on 18:34:54 quote what firefly said earlier 18:34:59 Although I guess you responded to that already 18:35:04 About program ending when there are no more dots 18:35:10 Firefly: Uh, no more dots moving AND no _'s 18:35:24 And to clarify, I guess you mean that the program runs as long as _ has not hit EOF 18:35:25 So if the program has no _'s, the program end when there are no more dots moving 18:35:33 I guess you'd have to include :'s too? 18:35:46 No, you don't have to 18:35:49 Also 18:35:51 You can, though :-P 18:35:54 asiekierka: ? 18:36:05 if the program has _'s, program ends when 0x00 is send via the FIFO 18:36:22 sent* 18:36:23 So, what? 18:36:26 As in 18:36:30 you clear the FIFO 18:36:36 so it contains nothing 18:36:40 Outputting it, it appends the zeros 18:36:42 so it's 0x00 18:36:53 And if 0x00 is detected by the outputting mechanism 18:36:55 the program ends 18:37:02 That seems awfully limiting 18:37:04 no matter if there's no _'s or there are _'s 18:37:08 well, ok 18:37:12 Since now a DOBELA program can't output 0x00 18:37:21 Why should any program output 0x00 anyway 18:37:27 Binary files? They do exist 18:37:47 It could be nice for compilers 18:37:49 E.g. you make a JPG encoder in DOBELA 18:37:50 Or whatever 18:37:53 oh 18:37:59 So, any proposals? 18:38:05 asiekierka: I think it just makes sense that the conditions are: no dots, and _ has not hit EOF 18:38:11 Well 18:38:16 Oh 18:38:19 it can work 18:38:27 So now 18:38:29 another question 18:38:35 I think 1 or 2 left 18:38:38 Do dots conceptually carry on moving forever? 18:38:43 Meaning 18:38:49 If you have a dot go off the edge of the original file 18:38:56 Is it an infinite loop since that dot lives forever 18:38:59 Or is it destroyed 18:39:05 Well, this is interpreter-dependent 18:39:13 But the board size must be a minimum of 256x256 18:39:13 How so 18:39:19 Yes, but 18:39:25 Interpreter supported size or not 18:39:30 as in, if the TXT file is <256x256, the board is 256x256 18:39:32 If a dot goes off the edge of the original file 18:39:39 It doesn't matter what the board size is 18:39:48 Since dots only matter if they collide with something 18:39:56 It is destroyed 18:40:05 asiekierka: If a dot goes off a 32x32 TXT file, it is gone for all practical purposes 18:40:12 The only difference is the concept 18:40:18 Does it live forever in the void or not :-) 18:40:35 So if it's destroyed, that means it dies, okay 18:40:39 Last question 18:40:40 well, no interpreter supported size then :P 18:40:50 asiekierka: Yeah, since it doesn't really matter, only as far as can it load the orig file 18:40:55 Last q 18:40:56 _ 18:40:57 # 18:40:59 What happens 18:41:09 (Equally well .=# or whatever) 18:41:27 Hm 18:41:29 asiekierka: Can the dot be superimposed over the _ or = there, or what? 18:41:40 Well 18:41:45 the dot needs an empty space to be output 18:41:48 so if this happens 18:41:50 nothing is output ever 18:41:53 from that _ 18:41:54 it's ignored 18:41:57 :P 18:41:58 So what about .=# 18:42:01 The spec never says that the original (hardcoded) dots should move east? 18:42:05 FireFly: yes 18:42:20 asiekierka: .=# ? 18:42:21 The dot is destroyed too 18:42:26 or no 18:42:27 no no noo 18:42:32 It bounces off 18:42:33 :-D 18:42:34 changed 18:42:37 as in 18:42:38 cycle 1: 18:42:42 .=# 18:42:43 cycle 2 18:42:45 ,=# 18:42:46 cycle 3 18:42:54 =# (the dot moved west, offscreen) 18:42:56 Ookay 18:43:02 So for =# it bounces 18:43:04 yep 18:43:07 For _# it just dies 18:43:13 Crazy :D 18:43:15 What about v# 18:43:15 yep 18:43:18 v# 18:43:18 And :# 18:43:20 wait 18:43:21 waaaiiit 18:43:31 asiekierka: I think making this consistent would be a good idea :-P 18:43:35 asiekierka: I.e. one rule covers all 18:43:43 (Destruction would be fine IMO) 18:44:01 Well, = is an exception since it's pretty much one of the most important parts of a DOBELA program 18:44:03 I have to go now myself, this isn't important so you can answer later -> 18:44:03 in all other cases 18:44:05 destroyed 18:44:09 so, done 18:44:13 Why exception? 18:44:18 Whatever, but seems silly 18:44:24 Anyhoo, gone now 18:44:25 ok 18:44:26 Ah, now I found the default direction 18:44:26 bye 18:44:48 yep 18:44:51 they move east by default 18:44:58 so if the TXT file already contains a dot 18:45:00 it moves east 18:45:06 Yeah 18:45:08 Um 18:45:09 until it bounces off something or whatever 18:45:42 Wait, wouldn't ".." turn into " #" first gen? 18:45:55 yep 18:46:00 it is still turned into that 18:46:07 ,.,,.,,,,..,,.,.,..,..,,,..,..,,,..,....,,.,,,,.,,,,.,., $ 18:46:10 = Hello! 18:46:18 Well, in the FIFO 18:46:25 cuz it doesn't yet have a generator to output stuff 18:46:30 and even then, it can't delay dots 18:46:38 But I can! 18:46:41 manually 18:46:45 Hm 18:47:03 Oh well 18:47:04 gotta go 18:47:06 -!- asiekierka has changed nick to asie[away]. 18:47:15 I'll enjoy playing around with this some day 18:47:19 Okay 18:47:24 Me too, -> 19:02:54 <- 19:03:43 what do these arrows mean? 19:05:24 -> = away 19:05:44 and <- means back 19:05:44 Or, away from nick = from computer 19:08:55 FireFly: I realized that about 3 minutes after I left; that 'Hello!' program can't possibly work with the collision semantics he described 19:09:09 Me too 19:09:19 Hey, you're supposed to be [away] 19:09:20 It would need spaces after each dot 19:09:24 :D 19:09:27 Deewiant: I'm only here for a short period of time 19:09:32 too short to change the ncik 19:09:33 asie[away]: So you think that that behaviour is still preferable? 19:09:36 nick* 19:09:38 [i=dontbanm 19:09:52 Well, this was for another channel 19:09:56 with a bunch of jerks 19:10:03 that do insane stuff for insane reasons 19:10:06 banned me for nothing 19:10:14 I.e. that ' ..' is ' #' if they're moving east but it's '.. ' if they're moving west 19:10:20 Sounds evil 19:10:23 It seems awfully inconsistent to me 19:10:29 Well, no 19:10:41 The "collision" works only if they both move in opposite directions 19:10:48 If they move in the same direction, they just move 19:10:55 By opposite do you mean different 19:10:58 Or opposite 19:11:00 as in 19:11:04 one dot left and the other right 19:11:07 And if >v 19:11:09 one dot north and the other south 19:11:18 asie[away]: You're contradicting what you said earlier 19:11:26 I need to change the specs 19:11:38 2009-03-20 19:25:31 ( asiekierka) V 19:11:39 2009-03-20 19:25:35 ( asiekierka) ->.. 19:11:39 2009-03-20 19:25:38 ( asiekierka) .<- 19:11:39 2009-03-20 19:25:42 ( asiekierka) will be on the next cycle 19:11:39 2009-03-20 19:25:53 ( asiekierka) .<- 19:11:41 Eg. one to the right, one downwards 19:11:44 asie[away]: That's what you said earlier 19:11:47 Well, i'm changing the specs 19:11:48 I said 19:11:50 Now it'll be 19:11:57 Now it'll be what I said? :-) 19:11:57 All right 19:11:57 the left-moving dot moves on cycle 1 19:12:02 then the south-moving dot on cycle 2 19:12:07 and the right-moving dot on cycle 3 19:12:08 Yeah, so no collision 19:12:11 And it ends up as: 19:12:11 yep 19:12:13 . 19:12:14 .. 19:12:18 Okay, good 19:12:18 except if something happens like this: 19:12:22 "->..<-" 19:12:24 then a collision happens 19:12:28 Yay 19:12:33 That's what I've already implemented 19:12:38 So I won't have to change it ;-) 19:12:41 yay 19:13:05 So then there's an additional question though 19:13:13 ->. .<- 19:13:16 . 19:13:17 Darn 19:13:19 Anyway 19:13:25 Lower dot is also moving to the same point, north 19:13:28 What happens? 19:14:01 Well, then the collision "->. .<-" is first carried out 19:14:07 :P 19:14:17 This makes no sense :-P 19:14:25 priority: 19:14:27 1) collisions 19:14:28 You have totally arbitrary different rules for different situations >_< 19:14:29 2) being blocked) 19:14:35 3) moving 19:14:42 So if there is a collision, it's carried out 19:14:48 if not and a dot is blocked, it doesn't move 19:15:06 and if the dot is not colliding nor blocked, it just moves in whatever direction it should. 19:15:07 Previous example was a collision of 3 dots 19:15:17 I changed the rules 19:15:20 They all move simultaneously 19:15:30 A "collision" is when two dots hit that are moving in opposite directions 19:15:41 Aha 19:15:41 and -> and ^ is not opposite 19:15:44 So what happens 19:15:46 So first collisions 19:15:47 ->. 19:15:49 . 19:15:50 ^ 19:15:54 [19:14:31] You have totally arbitrary different rules for different situations >_< 19:15:55 Er crap 19:15:59 uh 19:16:00 ->. 19:16:00 wait 19:16:02 . 19:16:03 ^ 19:16:04 That one 19:16:07 What happens 19:16:19 Requires an asie~ platform for the intp 19:16:21 You know how i said scanning is topleft? 19:16:24 ->. 19:16:27 . 19:16:29 ^ 19:16:31 is cycle 2 19:16:31 Yes, and you've contradicted that twice now 19:16:33 cycle 3 is 19:16:37 ->. 19:16:40 . 19:16:42 ^ 19:16:44 then cycle 4 19:16:45 Er what? 19:16:52 The lower . never moves? 19:16:56 it does 19:16:57 in cycle 4 19:17:07 Why the hell in cycle 4 19:17:13 wait 19:17:14 it can in cycle 3 19:17:15 Why not in cycle 2 19:17:15 :P 19:17:18 I mean 19:17:24 Because it is blocked in cycle 2 19:17:24 Or wat 19:17:29 Are you saying that 19:17:29 isn't it? 19:17:38 cycle 1 is 19:17:38 . 19:17:39 . 19:17:41 cycle 2 is 19:17:43 . 19:17:44 . 19:17:46 cycle 3 is 19:17:48 .. 19:17:58 Ah okay 19:18:02 So in other words... 19:18:05 What you've been trying to say is 19:18:39 If two dots would go in the same spot but they're not moving in opposite directions, the later dot simply doesn't move 19:18:52 yep 19:18:59 remember the board is scanned left-right, top-down 19:19:07 that's the trick that makes it work 19:19:07 Yes, I remember that :-P 19:19:13 ok 19:19:15 any other questions? 19:19:21 Not right now 19:19:25 Maybe in 5 mins ;-P 19:19:42 sadly 19:19:44 i'm going now 19:19:46 again 19:22:13 :D, tricky rules indeed 19:22:30 You know 19:22:38 I think I must send DOBELA to Hell 19:22:46 They will find an use for it 19:22:56 "Code MS-DOS in DOBELA" 19:31:08 In the end the rules weren't so tricky, a few exceptions I couldn't predict (.=# and the non-opposite collisions) but other than that it went the way I guessed 19:32:12 -!- Hiato has joined. 19:34:04 -!- javahorn has joined. 20:03:17 back 20:03:25 well, sort of 20:03:27 -!- asie[away] has changed nick to asiekierka. 20:04:07 I need to start working on Esoppy 20:04:17 As in, a floppy disk with a very simple FS 20:04:23 running esolang programs and ASM programs 20:04:29 from esolang programs, BF will be there 20:04:35 for sure 20:04:38 Some other langs too 20:04:41 but remember 20:04:45 the apps must be in ASM 20:06:38 sounds great 20:07:02 The bootsector only needs to read the file 00 and execute it 20:07:21 as in 20:07:28 read sector just after the bootsector 20:07:36 read the first 2 bytes 20:07:42 decode them to be the head, cylinder and sector 20:07:46 read from there 20:07:51 get the data (sector size) 20:07:56 load all the sectors 20:08:05 and execute the OS from there 20:08:26 Sounds interesting 20:08:47 But, this comp has no floppy drive :( 20:08:50 Well 20:08:52 you can use an emulator 20:08:56 but it also should work on HDDs 20:09:23 It can be used with HDDs anyway 20:09:29 It just needs some switches 20:09:35 Or USB 20:09:37 I must test it though 20:09:55 But I need some data on the limits of HDD geometry 20:10:03 so I can know how much bits to allocate for what 20:10:12 why? Because I want this to work on USB too 20:12:05 Basically, I need to allocate 6 bits for the sector, 8-10 for the cylinder and 1 for the head AFAIK 20:14:38 And I don't know how will I realize the detection of the medium I booted from 20:14:44 Cuz booting from floppy disk is easy 20:14:45 very easy 20:14:57 But modifying it to work from HDD is hard 20:15:14 16-bit? 32-bit? 64-bit? 20:15:22 Probably 16-bit 20:15:32 because I want to use interrupts 20:15:37 and don't want to make it too hard 20:15:45 I could use Unreal Mode though 20:15:45 -!- Sgeo has joined. 20:15:51 which allows to execute 32-bit commands in 16-bit mode 20:16:33 hm 20:16:51 anyone here know if you can add in a rpath entry in a ELF binary *after* linking 20:16:52 I don 20:17:00 don't* want to recompile this huge program 20:17:22 I don't see why not 20:17:39 hm what about tools to do it? 20:17:42 You might have to mess with some other offsets though 20:17:49 well I guess so 20:17:56 Don't know about tools 20:18:22 -!- FireFly has quit ("Brb..."). 20:18:31 -!- FireFly has joined. 20:24:55 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)). 20:25:37 -!- asiekierka has joined. 20:25:38 oops 20:25:43 accidentally closed my IRC window 20:26:34 at least you didn't lose any verbs in the process 20:28:30 oerjan, you forgot to swat me 20:28:36 :( 20:28:47 that was just a hitch 20:29:20 * oerjan swats FireFly twice as compensation -----### -----### 20:29:28 :D 20:29:40 Hm 20:31:33 hm It seems the rpath is in the .dynamic section 20:32:27 There seem to have been some plans in Solaris to add some free space in all ELF files so that they can be more easily tweaked: http://blogs.sun.com/ali/entry/changing_elf_runpaths 20:33:37 That suggests it's not completely trivial to do without it. (Although I don't see why it wouldn't work if you actually bother fixing all those other offsets that change.) 20:34:25 I see 20:34:26 Swatmania! 20:35:21 -!- Hiato has quit ("Leaving."). 20:35:22 i do recall some online game where you swatted mosquitoes... 20:35:39 anyway the issue is I needed to install a newer gcc in a prefix to be able to build llvm correctly, and I wish to add a rpath to llvm-gcc since it now depends on libstdc++ from this newer gcc. 20:35:56 many years ago 20:35:58 system gcc is 4.1.2, prefixed gcc is 4.3.3, llvm gcc is 4.2.1 20:36:06 which is rather a mess 20:36:23 and I don't want to have to recompile one or more gcc's just to make this work... 20:40:13 -!- psygnisfive has quit (Remote closed the connection). 20:40:51 hm I suspect recompiling will be easier in fact 20:41:00 if the dynamic section had been last... 20:42:06 also I thought bootstrapping gcc would work around it.. 20:45:34 -!- tombom has joined. 20:48:49 ah I see.. 20:57:38 -!- oerjan has quit ("Good night"). 21:11:49 -!- StelK has joined. 21:12:19 Hi 21:12:30 hi 21:12:33 what brings you here? 21:12:51 I think it's the orgies on speed 21:13:01 err... on IRC, is that even possible? 21:13:22 I'm looking for some idea to code a new esolang 21:14:25 as in, you have the esolang idea, and need it coded? 21:14:29 or want to code something and don't know what? 21:14:34 I didn't expect to find so many people in a esolang-related channel 21:14:38 the second one 21:14:50 this is the main esolang discussion place anywhere, as far as I know 21:15:02 although it would be great if there was an even bigger secret one I didn't know about 21:15:08 I've got plenty of ideas that I need a chump^H^H^H^H^H experienced programmer to write an interpreter 21:15:23 nic 21:15:25 *nice 21:15:38 http://esolangs.org/wiki/Category:Unimplemented may give you some ideas 21:15:57 Hm 21:16:00 although note that some of those are awful, and some are theoretically impossible to implement 21:16:03 Forgot to put Limp in here. 21:16:10 I've already read that 21:16:17 I think Primordial 21:16:45 Owait, it is 21:16:50 Under ??µp 21:16:53 is quite nice... but there not enough specification to create an interpreter 21:16:58 wtf, why is Easy in the unimplemented section? 21:17:05 has really nobody bothered to implement it all this time? 21:17:09 'cause easy is hard :( 21:17:21 Also I'm an English interpreter 21:17:21 no it isn't, it's basically BF with the program and input streams mixed up 21:17:55 Hi^Hello 21:18:18 if you don't mind implementing something that's been implemented before, implementing functional esolangs can be instructive 21:18:26 like Underload (relatively easy), or Unlambda (Much harder) 21:19:04 Well.. I've created two simple esolangs until now, SPL and P in the Wiki... so I'd like to create something new 21:20:08 Try to do something like DOBELA 21:20:12 esolangs.org/wiki/DOBELA 21:20:18 Or limp 21:20:22 something with relatively tricky specs and totally weird syntax 21:20:27 I hear limp is an awesome functional esoland 21:20:27 g 21:20:46 The spec is currently v11b and needs to be fixed 21:21:55 Also, don't alter BF. 21:22:02 It has been done waaaay too much times 21:22:25 yeah I know 21:22:36 Also, $ = ,^ in SPL doesn't it? 21:22:40 already done it one time 21:23:29 If you're very bored, implement DOBEL---oh wait, Deewiant is already doing THAT. 21:24:01 I'll try to come up with something new :D 21:24:10 And the spec wasn't updated so you'd do it wrong anyway :-P 21:24:13 Interpret Sir. Cut 21:24:18 :D 21:24:33 I like some of the ideas in that lang 21:24:56 Also, I'm making (with little idea help from ais523) the MiniShell 21:25:10 the most important purpose of it is to run esolangs from a floppy disk without dependence from any OS 21:25:15 but it can also run mini ASM programs 21:25:35 show 80x25 color ASCII art 21:25:45 And uses a simple FS which uses 256 numbered files without names 21:25:46 00-FF 21:25:53 the number (in hex) is the name 21:25:55 Anyway, gotta go 21:25:57 in a sec 21:26:00 but whaddya think 21:29:02 It is planned for it to run programs in MiniMAX, MinIScule and Barely for v0.01 21:29:10 Why? Because they have ASM interpreters 21:29:18 nice 21:29:22 Especially MiniMAX cuz it is independent 21:29:39 and with about 6-10 lines of ASM code, it's very small 21:29:41 but needs I/O 21:29:47 are you running asm, or machine code? 21:30:16 compiled ASM = machine code 21:30:19 so yep, machine code 21:30:29 a PC runs machine code, which is compiled ASM 21:31:02 Running "compiled X" doesn't really say anything at all about what you're actually running :-P 21:32:15 so i'm running machine code 21:32:20 and i'm writing in Assembler 21:32:32 I take issue with that usage of the word "assembler" 21:32:45 "Assembly" is the language, "assembler" is the compiler, dammit! 21:32:48 ohh 21:32:50 ok 21:32:54 s/Assembler/Assembly 21:33:10 Also, seems MinIScule uses DOS interrupts 21:33:18 and that'll need a bit of rewriting 21:36:15 nor the links work 21:36:17 so :/ 21:39:54 0000 - plain/undeclared 21:39:54 0001 - Machine Code 21:39:54 0010 - BF 21:39:54 0011 - MiniMax 21:39:54 0100 - 4Kbyte Screen art 21:40:01 this is the types of files I plan for 0.1 21:40:09 at least 0000, 0001 and 0100 21:41:54 well, I don't exactly need to implement 0000 21:41:59 and 0001 is very easy 21:42:14 0100 is easier 21:46:07 I gotta go see you 21:46:30 -!- StelK has quit ("good bye"). 21:47:11 -!- psygnisfive has joined. 21:49:30 -!- asiekierka has quit. 22:08:03 hi ais523 22:08:13 hi 22:20:29 What's asiekierka's language? 22:34:57 -!- BeholdMyGlory has quit (Remote closed the connection). 22:35:34 -!- rideauli has joined. 22:35:43 -!- rideauli has left (?). 23:05:09 -!- zzo38 has joined. 23:05:52 I wrote a program in CLCLC-INTERCAL to output 1 to 2000 in Roman numbers but I can't test it. Can you look and tell me if you found a mistake, or another comment about this program 23:06:09 zzo38: would it run in CLC-INTERCAL? 23:06:13 I can run it in that 23:06:20 or does it rely on CLCLC-INTERCAL specific features? 23:06:59 It uses CLCLC-INTERCAL specific features 23:07:09 assign to constants is legal in C-INTERCAL, by the way 23:07:14 with a compiler switch 23:08:05 also, how does the addition work in your program/ 23:09:06 My program has no addition. The way [I think] it works is based on the && operator and also how CLCLC-INTERCAL assigns to expressions (which may not be always the same as other INTERCALs) 23:10:37 Is there still something else you do not understand about it 23:11:17 so addition works using the && operator? 23:12:11 No, the && operator doesn't do addition. The && operator allows you to learn a lecture inside of a expression. 23:12:19 I just don't see why assigning to the result of a learnt lecture would add 1 to a number 23:13:11 It doesn't. The interpreter would try each value of .1 (the left side of the lecture) in order, and stop when the value of .1 causes .1&� to have the value #2000 23:13:39 It starts at zero but it won't output zero because it is abstained the first time 23:14:08 oh 23:14:14 you can't rely on that behaviour, surely 23:14:44 Maybe not in CLC-INTERCAL but in CLCLC-INTERCAL it is specified that this kind of behaviour is standard 23:15:07 it's incredibly inefficient 23:15:23 assigning to expressions should be done by using the inverse of the expression, obviously 23:16:19 For expressions that have inverses that will work (as long as they are not overloaded to other expressions) but the && operator doesn't have a inverse so it has to try each one until one of them works 23:16:42 hmm... 23:16:52 I wonder what happens if you try to reverse-assign to a created expression in C-INTERCAL? 23:16:57 that's pretty similar to what you're doing 23:16:57 Also note that in CLCLC-INTERCAL, when assigning to a expression only the far left side of the expression is the register which will be changed (even if it is a constant!) 23:17:11 err 23:17:19 what about DO .1 $ .2 <- #10 23:17:43 What does the "LC" in CLC-INTERCAL stand for? 23:17:46 bad example... 23:17:50 DO .1 $ .2 <- #11 23:17:58 FireFly: CLC is Claudio Calvelli's initials 23:18:00 In CLCLC-INTERCAL .2 has to have the correct value already if it doesn't then it is a fatal error 23:18:05 Ah 23:18:09 that's incompatible with other INTERCAL implementations 23:18:12 very incompatible, in fact 23:18:34 It's INTERCAL, so who cares about compatibility with other INTERCAL implementations? 23:18:54 Claudio and I care a lot about compatibility 23:18:59 after all, no other language seems to 23:19:23 Then just use compatibility mode if you want to be compatible 23:21:01 ICL277IYOU CAN ONLY DISTORT THE LAWS OF MATHEMATICS SO FAR 23:21:05 hmm... I'm not surprised 23:21:19 PLEASE DO CREATE (4) t 23:21:20 DO .1 t .2 <- #3 23:21:22 DO GIVE UP 23:21:23 (4)DO .1603 <- .1601 $ .1602 23:21:24 DO RESUME #1 23:21:45 an error is more or less the best you can hope for with code as insane as that 23:24:30 please explain that codence 23:24:44 oklofok: ok, the first line defines a new operator t 23:24:48 whose code is found starting at (4) 23:24:56 the second line assigns .3 to .1 t .2 23:25:07 that's known as a reverse assignment, and is one of the less sane operators in INTERCAL 23:25:10 it has a lot of limitations atm 23:25:27 then the third line exits, and the last two lines are the definition of t, which doesn't really matter to make the point 23:26:13 err 23:26:26 what's so insane about that 23:27:00 oh the fact it needs to find the reverse of an arbitrary operation 23:27:18 that's used to make a loop? how? 23:27:30 it doesn't make a loop in C-INTERCAL 23:27:44 The output 1 to 2000 program was wrong but now I fixed it. The third line now says DO .1&&.1 <- #2000 it used to say DO .1&� <- #2000 but that was wrong 23:27:49 apparently zzo38's mandating that in CLC-INTERCAL, the way it reverses an operation is to try all possibilities until one works 23:28:32 ais523: s/CLC-INTERCAL/CLCLC-INTERCAL/ 23:28:42 correction accepted 23:30:45 but wouldn't it be kinda weird for it to actually produce incorrect output and only then realize it failed to reverse it 23:30:49 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 23:33:04 also is #2000 simply the constant 2000_10? 23:33:28 yes, # introduces a decimal number 23:33:53 for a moment i thought numbers were given in some weird format, but it was probably just the prefix bluffing my brain or something 23:34:19 because i remember seeing things like #65536 (or 65535, or different prefix, but anyway) 23:34:41 It doesn't backtrack any side-effects of the expression (such as attending a lecture or overloading) so you can do anything inside the lecture and it won't care. A fatal error is still a fatal error (or maybe it can be defined a different way instead, that a fatal error in this case backtracks?) 23:34:55 zzo38: what if there's a choicepoint inside the lecture? 23:35:04 and someone backtracks into it? 23:35:08 what happens in a multithreaded program? 23:35:23 then if it's specified clclc tries the values in order, that is a very elegant way to write the program imo 23:35:44 in fact something i'd like to see a language based on 23:36:42 If someone backtracks into a choicepoint inside the lecture then it will backtrack the implicit loop also and continue trying different values for .1 where it left off. And in a multithreaded program it will only deal with the current thread, values in other threads are unaffected and there is no guarantee what order it will output in 23:36:55 am i misunderstanding something here, why are you asking zzo38 how things work, isn't there a spec? 23:36:56 Yeah, I agree, reading this a bit makes it sound really interesting 23:38:18 oh wait 23:38:29 prolog is based on that isn't it kinda 23:38:54 assuming you define naturals, and it tries them in order 23:39:30 no wait 23:39:52 of course it won't continue if the expression gives the wrong answer, it just tries out all the right answers 23:39:54 nm 23:40:53 was zzo38's idea that the function to be reversed had the side-effect of always writing out the current number being tried? 23:41:22 oklofok: yes, that's how it worked 23:41:36 zzo38: I was referring to timing issues between the threads 23:41:42 and can't that be done in prolog, basically you say X is an integer, then you say X satisfies P, and P's definition prints X's value 23:41:49 then you say X needs to be 2000 23:41:49 certainly, you wouldn't expect an expression to take several thousand ticks 23:41:52 O, I forgot one thing about what it should do if the student is an array. And I'm not sure what it should do in that case. 23:42:54 Maybe you can in prolog but I don't know much about prolog 23:43:03 yes but ais523 does 23:43:24 and i think i do, although i haven't really used it 23:43:49 zzo38: in Prolog, integers are special-cased for sanity 23:44:01 although that sort of thing works "fine" (although inefficiently) if you define integers yourself 23:44:07 rather than relyingon the stdlib definition 23:44:13 I have a question that you can help me define the spec of CLCLC-INTERCAL: What should it do if you assign to a && expression where the student is an array 23:44:21 ais523: was that an answer to me as well? 23:44:31 oklofok: possibly, I'm tired and confused 23:44:46 ais523: what does it mean they are special-cased? 23:45:00 oklofok: look up the is operator 23:45:11 err why 23:45:15 I mean, they don't work anything like the rest of the language 23:45:23 they're syntactic-sugared loads 23:45:31 and none of the arithmetic operators are interchangeable 23:45:33 wait what are loads 23:45:46 wait what do you mean interchanceable 23:45:57 anyways is is just something that tests two numbers for equality 23:45:58 interchangeable means you can swap around what's the result and what's the arguments to a predicate 23:46:05 and no, is doesn't test for equality 23:46:12 oh it doesn't? 23:46:14 X is 2+2 binds X to 4 23:46:18 2+2 isn't an expression in Prolog 23:46:22 oh right 23:46:26 yes yes 23:46:26 it's just an inert term, '+'(2,2) 23:46:44 is basically recursively evaluates terms which look like arithmetic expressions 23:47:15 yes anyway i know they're not interchangeable, and that prolog doesn't understand math 23:50:55 anyway, going home 23:51:00 -!- ais523 has quit (Remote closed the connection). 23:53:34 -!- zzo38 has quit ("because ais523 quit").