00:43:47 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 01:29:33 -!- puzzlet_ has quit (Remote closed the connection). 01:29:35 -!- puzzlet has joined. 01:50:47 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 01:52:53 Later all~ 01:52:57 -!- Sgep has quit (Remote closed the connection). 01:53:32 -!- puzzlet has joined. 02:18:22 -!- Arrogant has joined. 02:45:20 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 02:49:16 -!- calamari has joined. 02:50:10 -!- hamako has joined. 02:52:23 hi 02:52:50 hello 03:01:52 -!- kikko has joined. 03:02:18 -!- kikko has changed nick to MadBrain. 03:04:06 -!- MadBrain has quit (Client Quit). 03:04:42 -!- mad has joined. 03:07:01 uh, -> http://esoteric.voxelperfect.net/wiki/Object_disoriented 03:07:38 hi mad, and welcome :) 03:07:49 hello :) 03:07:51 I just saw your lang on the wiki 03:08:00 in fact I just edited the article a bit :) 03:08:29 It probably needs a bit polishing, no? 03:08:51 some simple code examples would be nice 03:09:19 it's a bit hard to understand now (or maybe I'm dense) 03:09:54 hmm, there's an untested brainfuck interpreter linked at the bottom... but you're right, it could definitely use something like a hello world 03:10:18 I've seen the bf-interpreter, but it is not exactly easy to comprehend :P 03:10:50 "untested" and "bf interpreter" usually don't go well together :) 03:11:16 bf is simple but there are many oppotunities for error 03:11:21 basically, the lang's main selling point is that everything is encapsulated, so you can only access at most 5 variables at the same time 03:11:23 hehe 03:12:05 calmari: Right, I bet it probably has some bugs and doesn't work... but it's always a good test to know if your lang is turing complete, no? 03:12:08 looks cool :) 03:12:34 mad: oh yeah, no question 03:13:52 mad: I don't see how you can do even simple arithmetics with this language... 03:14:08 An important data structure it uses is a stack 03:14:16 And a pair 03:14:45 A pair is an object that successively returns object A, then object B, then object A, etc... 03:15:43 It uses the mpair. class to make a pair with two objects, using currying to read the two parameters 03:16:28 The stack returns A, then returns B, then returns C, etc... until it runs out and just turns into z (null object) 03:17:23 For numbers, it uses 8 bit stacks... but you can implement them in many ways :) 03:18:31 As bits, it uses either z (null object), or an object with a function that just activates the parameter's function 03:19:50 So if you go fab (use a's function on object b), and a is either '0' or '1', and b is a pair, then, if a is 0, the pair stays the same, but if a is 1, the pair is switched. 03:20:40 Crazy functional programming :) 03:21:25 indeed 03:21:51 But it would be better with, uh, more OOP parody stuff 03:24:17 The result is that, since there's so few member data, you have to write interfaces for more or less everything, and that there's many different ways to write those interfaces... which possibly comes not that far from actual OOP 03:26:10 I think it's halfway between unlambda and other similar really insane languages, and standard imperative stuff... it's actually vaguely usable :) 03:26:58 It looks interesting. hopefully the article will become easier to understand :) 03:29:26 yeah, I have to work on that 03:37:43 hmm, this hello world isn't very neat... 03:39:46 -!- calamari has quit ("Leaving"). 03:48:21 well... um... that's it :) 03:48:44 that's what? 03:50:48 well, about the language 03:55:43 I wonder if I should add some other stuff to the wiki 03:56:13 what do you mean? what other stuff? 03:56:30 oh, another vaguely similar lang 03:56:47 if it's esoteric then go ahead :) 03:56:53 which lang is this? 03:57:02 functional too, more low level 03:57:07 pardon my ignorance; I just got back 03:57:38 -!- puzzlet has joined. 03:58:11 the one I've just talked about? Something I've just posted to the wiki, "Object disoriented" ( http://esoteric.voxelperfect.net/wiki/Object_disoriented ) 03:58:39 It's a new lang, I guess 03:59:18 * Robdgreat head asplode. 04:01:05 nasty stuff, yeah 04:07:48 -!- Arrogant has quit ("Chatzilla 0.9.68.5.1 [Firefox 1.5/undefined]"). 04:12:19 -!- GregorR[notHome] has changed nick to GregorR. 04:14:45 It possibly has a member variable too much, but I think it's nasty enough. 04:17:06 * GregorR is glad nobody can ever claim his prize of /first/ object oriented esolang :) 04:21:24 What program for GNU/Linux should I package with OBLISK next ...? 04:23:12 Ah, no, I can't claim that... but can I claim the first functional object oriented esolang? :) 04:23:53 Hmmm, I guess so, if that phrase can be proven to me not completely meaningless ;) 04:23:58 Err 04:24:00 To be 04:25:46 Well, I'm not sure, but the esolang I've come up with does seem to have a pretty important functional flavour. 04:26:17 You have to do stuff like currying and recursion 04:27:05 "Since there's no looping statement, recursion must be used." < Hahah, same with ORK :) 04:27:47 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 04:33:40 -!- puzzlet has joined. 04:37:40 mmmm curry 04:38:56 Mmmmmm, flesh of the innocent. 04:40:00 gregor: Any suggestions you'd make? 04:41:11 I haven't taken a detailed look, but as LORD OF OO ESOLANGS I will. 04:41:19 And will get back to you ;) 04:41:26 Busy right now :) 04:53:38 data encapsulation is the best feature of oop to use in tarpits :) 04:54:05 imho, of course 05:00:31 -!- hamako has quit. 05:17:52 -!- kipple has quit (Read error: 110 (Connection timed out)). 05:37:45 nite 05:39:17 -!- mad has quit ("Christians believe Jesus can save your soul; atheists believe Hungry Man TV dinners are a quick and easy dinner solution for ). 07:26:17 -!- CXI has joined. 07:39:04 -!- puzzlet_ has joined. 07:41:00 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:46:14 -!- cmeme has quit ("Client terminated by server"). 11:11:52 -!- Gs30ng has quit (Read error: 104 (Connection reset by peer)). 12:21:32 -!- puzzlet_ has quit (Remote closed the connection). 12:21:38 -!- puzzlet has joined. 12:37:16 -!- jix has joined. 12:50:12 -!- kipple has joined. 13:38:04 -!- puzzlet has quit (Remote closed the connection). 13:38:06 -!- puzzlet has joined. 16:57:02 -!- cmeme has joined. 16:57:29 -!- cmeme has quit (Remote closed the connection). 16:58:03 -!- cmeme has joined. 16:58:10 -!- cmeme has quit (Remote closed the connection). 16:58:44 -!- cmeme has joined. 16:58:51 -!- cmeme has quit (Remote closed the connection). 16:59:25 -!- cmeme has joined. 16:59:32 -!- cmeme has quit (Remote closed the connection). 17:00:07 -!- cmeme has joined. 17:00:13 -!- cmeme has quit (Remote closed the connection). 17:00:48 -!- cmeme has joined. 17:00:55 -!- cmeme has quit (Remote closed the connection). 17:01:29 -!- cmeme has joined. 17:01:35 -!- cmeme has quit (Remote closed the connection). 17:02:18 -!- cmeme has joined. 17:02:18 -!- cmeme has quit (Remote closed the connection). 17:02:51 -!- cmeme has joined. 17:02:57 -!- cmeme has quit (Remote closed the connection). 17:03:32 -!- cmeme has joined. 17:03:38 -!- cmeme has quit (Remote closed the connection). 17:04:13 -!- cmeme has joined. 17:04:20 -!- cmeme has quit (Remote closed the connection). 17:04:54 -!- cmeme has joined. 17:05:00 -!- cmeme has quit (Remote closed the connection). 17:05:35 -!- cmeme has joined. 17:05:42 -!- cmeme has quit (Remote closed the connection). 17:06:16 -!- cmeme has joined. 17:06:23 -!- cmeme has quit (Remote closed the connection). 17:06:57 -!- cmeme has joined. 17:07:04 -!- cmeme has quit (Remote closed the connection). 17:07:39 -!- cmeme has joined. 17:07:45 -!- cmeme has quit (Remote closed the connection). 17:08:20 -!- cmeme has joined. 17:08:26 -!- cmeme has quit (Remote closed the connection). 17:09:01 -!- cmeme has joined. 17:09:09 -!- cmeme has quit (Broken pipe). 17:09:42 -!- cmeme has joined. 17:09:48 -!- cmeme has quit (Remote closed the connection). 17:10:23 -!- cmeme has joined. 17:10:29 -!- cmeme has quit (Remote closed the connection). 17:11:04 -!- cmeme has joined. 17:11:11 -!- cmeme has quit (Remote closed the connection). 17:11:45 -!- cmeme has joined. 17:11:52 -!- cmeme has quit (Remote closed the connection). 17:12:27 -!- cmeme has joined. 17:12:33 -!- cmeme has quit (Remote closed the connection). 17:13:08 -!- cmeme has joined. 17:13:14 -!- cmeme has quit (Remote closed the connection). 17:13:20 hrmpf! 17:13:49 -!- cmeme has joined. 17:13:56 -!- cmeme has quit (Remote closed the connection). 17:14:30 -!- cmeme has joined. 17:14:37 -!- cmeme has quit (Remote closed the connection). 17:15:11 -!- cmeme has joined. 17:15:18 -!- cmeme has quit (Remote closed the connection). 17:15:25 argh 17:15:37 can't someone kick cmeme? 17:15:53 -!- cmeme has joined. 17:15:59 -!- cmeme has quit (Remote closed the connection). 17:16:34 -!- cmeme has joined. 17:16:40 -!- cmeme has quit (Remote closed the connection). 17:17:15 -!- cmeme has joined. 17:17:21 -!- cmeme has quit (Remote closed the connection). 17:17:56 -!- cmeme has joined. 17:18:02 -!- cmeme has quit (Remote closed the connection). 17:18:37 -!- cmeme has joined. 17:18:43 -!- cmeme has quit (Remote closed the connection). 17:19:03 -!- MadBrain2 has joined. 17:19:10 ban not kick 17:19:18 -!- cmeme has joined. 17:19:25 -!- cmeme has quit (Remote closed the connection). 17:19:37 yeah, ban of course 17:19:59 -!- cmeme has joined. 17:20:07 -!- cmeme has quit (Remote closed the connection). 17:20:41 -!- cmeme has joined. 17:20:48 -!- cmeme has quit (Remote closed the connection). 17:24:31 -!- cmeme has joined. 17:24:58 -!- cmeme has quit (Remote closed the connection). 17:25:32 -!- cmeme has joined. 18:16:11 -!- MadBrain2 has quit ("Christians believe Jesus can save your soul; atheists believe Hungry Man TV dinners are a quick and easy dinner solution for ). 18:29:44 -!- Keymaker has joined. 18:30:07 hello 18:32:54 cmeme: behave! 18:33:42 oh behave! :) 18:36:13 anyways; anyone good with unknown file formats? i mean, there's one old game i'd like to modify, but there are no modding tools for it.. :) 18:36:26 anyone good inspecting and realizing file formats? 18:36:36 the game is Skyroads 18:36:48 http://www.bluemoon.ee/history/skyroads/ 19:02:54 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 19:21:50 OH MAN MOXIE IS GOOD 19:22:06 8) 19:22:35 -!- CXII has joined. 19:22:35 * GregorR hasn't had a Moxie in weeks. 19:22:51 hmm 19:23:19 -!- CXI has quit (Connection timed out). 19:24:17 keymaker: I've almost no experience with figuring out file formats, but I guess it's a bit like esoteric programming ;) 19:24:39 yeah, although a lot more difficult :) 19:25:10 perhaps i'll try to figure the format out on my own, someday.. 19:25:32 what kind of files do you want to mod? 19:25:41 levels 19:25:46 ah 19:25:49 and if possible, graphics too 19:25:50 are they very complex? 19:25:57 the levels in game? 19:25:59 nope 19:26:05 so the format should be discoverable 19:26:16 try it out, the game :) 19:26:38 the full version is free and legal to download 19:26:39 http://www.bluemoon.ee/history/skyroads/ 19:26:53 (that is the site of the team that made the game) 19:27:06 looks old. does it require dosbox or something? 19:27:21 it does if you don't have windows or dos :) 19:27:38 it's pretty good game, i think 19:28:01 as well, there is some demo version of it (that i haven't tried), and some x-mas version with new levels and graphics 19:28:06 so that means i can compare the files 19:28:25 and that might help to discover the formats 19:31:31 yeah the levels look simple enough 19:31:44 there seem to be 3 levels per file 19:32:05 the world files are pictures 19:32:10 iirc 19:32:20 ah, the background? 19:32:23 yeah 19:32:34 at least i remember so, because i switched some once 19:32:56 trekdat.lzs might be the file (?) 19:33:10 or roads.lzs 19:33:23 or in the worst case both combined in some bizarre way 19:33:33 * Keymaker 's head explodes 19:34:27 no idea at all.. 19:37:19 it's annoying how every old game has the files packed in some strange format 19:38:47 both the worldN.lzs files and cars.lzs has the same header: "CMAPR". trekdat.lzs and roads.lzs does not 19:39:00 yeah 19:39:19 guess you just have to try and change some bytes and see what happens 19:39:25 cars.lzs is probably the graphics 19:39:27 yeah 19:39:36 oh, i think i know where the tracks are, now 19:39:44 i compared the full and the demo; 19:39:58 trekdat is equally sized in both of them 19:40:05 so that probably means there is some other stuff than tracks 19:40:11 while roads.lzs is different 19:40:30 in demo 4k and in full 17k 19:40:36 * kipple thinks it's probably easier to rewrite entire game than to reverse engineer the track files... 19:41:00 noooo!!! 19:41:06 well, then it's probably only a 17k file to decipher :) not too bad 19:41:12 :D 19:41:32 you see, rewriting would be pointless 19:41:38 the point is to modify the ORIGINAL game! 19:41:43 ok 19:41:45 ;) 19:42:18 as well, the muzax.lzs is equally sized in both versions 19:42:19 with 30 tracks that means only about 560 bytes of data per track. 19:42:46 could it be a music file or something? 19:42:48 and yeah 19:43:04 in the best case the game uses some big array, and every level data is equal size 19:43:13 but i have a bad feeling it won't get that easy 19:43:40 there are hardly any 0s in roads.lzs 19:43:44 yeah 19:43:56 and the full x-mas version has the same amount of levels, but the file size is different 19:44:50 * kipple lacks a decent hex editor for windows 19:45:00 try xvi32 19:45:07 it's pretty decent, and totally free 19:45:26 -!- calamari has joined. 19:47:08 only thing in this game that sucks is the sounds 19:47:13 but i hope those can be changed later, too :D 19:47:51 the sound didn't work for me 19:48:20 you're lucky :D 19:48:33 the music i haven't heard, since that doesn't work normally and haven't tried dosbox 19:49:00 anyways, i'd say we are almost done, only thing we need to is decipher the level format, we at least know where the data is located! 19:49:32 when that's done i'll make a level editor and small site for it.. 19:50:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 19:51:33 a theory: the first word in the file tells how many bytes of level data the first has. 19:51:57 the value is 124 19:52:23 hmm, could be 19:52:28 that is perhaps not much, but the first level is rather simple 19:52:30 it's most probably 2 byte integer 19:52:39 yeah, a word 19:52:44 worrd! 19:53:05 after the first word and another 124 bytes the next word is 130 19:54:25 hmm 19:54:28 could be a pattern, but maybe not.... 19:54:35 but after that, it doesn't make sense anymore 19:54:47 it doesn't? too bad 19:55:08 it can be for example amount of "objects" in the level 19:55:12 amount of 3d blocks 19:55:16 yeah 19:55:54 as well, probably in this file there is also stored some level settings; 19:56:07 like how fast the fuel burns in the level 19:56:12 or what kind of gravity there is 19:56:25 they may differ in levels.. 19:56:34 (if you play it long enough, you'll see) 19:56:49 ok 19:58:34 have you tried changing it? 19:58:49 i'm just about to :) 20:05:45 nice game.. was just playing it in qemu :) 20:06:16 nice that you like it :) and, hmmm, i changed data quite randomly in the beginning of the file, but see no difference in game.. 20:06:45 i'll make a zero attack 20:08:24 hmmmm.. nothing happened 20:08:45 different file then? 20:08:56 i don't think so.. 20:09:03 naturally it could be.. 20:09:11 but i don't think so, still :) 20:09:31 ha! it's right one! 20:09:46 the colour changed to black and the game crashed when i opened the level! 20:09:57 the terrain looked black, and then it crashed 20:10:06 seems we're on right tracks 20:12:59 another good news is that the size of tracks isn't hard coded anywhere in the exe or something 20:13:38 oh, and it's now 100% sure roads.lzs is the right file; i replaced it with the x-mas edition track file and it worked just perfectly 20:13:58 so, it seems the level sizes and stuff are defined in the track file itself 20:15:58 and when i switched the x-mas version demo tracks to the original full, it still works! 20:16:32 and if you try to load the levels that don't exist in the demo (levels > 6), it reads null to the level and acts strange 20:17:10 -!- Sgep has joined. 20:19:42 when it loads the null level, the gravity-o-meter (or something) shows 2100, so that must be some constant in the game 20:48:20 -!- CXII has changed nick to CXI. 20:55:03 bye 20:55:05 -!- Keymaker has left (?). 21:30:03 -!- jix has joined. 22:04:44 -!- madbrain has joined. 22:05:14 mm, hey 22:20:59 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:41:05 http://esoteric.voxelperfect.net/wiki/Object_disoriented#Examples <- Wrote a couple of easy examples for object disoriented 22:54:31 ha! is that the easiest way to do Hello World? :D 22:55:32 well, no actually :) 22:56:25 The easiest way is just to do a bunch of oz and o(equivalent to 1) statements 22:56:34 but it's not as pretty :) 22:57:32 well congratulations on making a truly low-level OO-language :) 22:58:38 Thanks :) 22:59:28 I'm struggling to understand the cat example.... 23:00:28 Is OD unimplemented? 23:00:34 yes 23:00:44 AFAIK at least 23:00:48 Yeah, haven't written an implementation yet 23:01:27 Ah, well then I guess EgoBot isn't going to support it any time soon :P 23:03:16 I'll possibly need help on the recursion-optimisation-so-that-the-stack-doesn't-explode.. from those functional programming gurus 23:04:20 OK, I think I get the cat example :) 23:06:21 mostly I wonder if there's some more or less automatic of doing it, or if that would require solving some impossible problems and it's better just to optimise all the "usable" 23:06:23 cases 23:47:28 if I understand correctly, the halting problem only applies to undecidable languages, right? because all decidable languages either accept or reject 23:49:19 eh, it's complicated 23:49:21 are there any languages that by their syntax allow any decidable program to be written, but not undecidable? or is that impossible to enforce for the halting problem? 23:49:39 for->because of 23:50:22 I can imagine a string of if statements with no loops.. but I'm not sure that can handle every decidable language 23:51:09 string -> tree 23:51:57 The halting problem is more complex than that... basically, you have a program, which might terminate or have an infinite loop. There is no program that can differentiate for any program ever whether it terminates or not, without either going into an infinite loop for some programs, or simply don't decide for some programs 23:52:36 well, that's a function of the language syntax 23:52:47 if there are no loops, the program WILL terminate 23:53:02 calamari: Well, yeah 23:53:07 But what if it has loops? 23:53:19 well, I'm consdidering the case where there aren't loops 23:53:21 How do you determine whether these will terminate or not? 23:53:32 can that handle all decidable languages? 23:53:44 define "these"? 23:53:57 the loops 23:54:07 there are no loops 23:54:19 I'm not sure what were decidable languages... 23:54:33 They're a subclass of turing complete languages? 23:54:33 perhaps I need to review the definition.. afk to look it up 23:56:55 calamari: yes, the halting problem only applies to undecidable languages... in fact, that's what the word "undecidable" basically means: that you can't construct a program that can decide if another program will halt or not 23:57:09 Ah 23:57:12 I see 23:57:14 -!- cpressey_ has changed nick to cpressey. 23:57:51 So the problem is to know whether recursive function stack optimisation is decidable or not? 23:58:14 Chris: so I'm curious what a language that accepts only deciders would look like 23:58:43 Chris: or does that no make sense? hehe it's hard for me to put this in the correct wording 23:59:26 basically a language that doesn't have the halting problem and I can write deciders in 23:59:44 calamari: hmmm, ok. well... 23:59:55 take a turing machine and prove that it always halts. 23:59:58 that's a decider