00:46:13 [QUIT] ink[sleep] quit: Ping timeout for ink[sleep][ppp-207-214-212-83.sntc01.pacbell.net] 02:32:32 Rhamphoryncus joined #tunes 02:44:41 jemarch joined #tunes 02:44:48 COME TO TALK WITH MEGAHAL (A CONVERSATION SIMULATOR) IN #MEGAHAL 02:44:50 jemarch left #tunes 02:48:48 Kyle joined #tunes 02:52:23 Rham, are you up? 02:52:56 [QUIT] pratap quit: ircII EPIC4-2000 -- Accept no limitations 02:54:11 yup 02:56:16 I read you like compilers, and optimization. 02:56:25 yeah 02:56:33 Rhamphoryncus is a junkie for perfection ) 02:57:14 I do not have the stomach for optimization. 02:58:07 you mean making them? and do you mean sourcecode, or in compilers? 02:58:51 Both. That is why I like Tunes, I hope it will hide my littel secret from other developers. 02:58:58 hehe 02:59:07 I hate.... almost everything about programming 02:59:17 I just like thinking about stuff 02:59:53 Same here. I think you have describe about everyone here. 03:00:03 hehehe 03:01:08 Have you found a way to characterize optimization (for compilers)? 03:01:17 I'm not sure what you mean 03:02:14 Can all optimizations be shown as a graph rewrite, or are there cases where that is not an efficient semanic use. 03:02:27 Rhamphoryncus blinks 03:02:44 sorry, but I still don't understand (I sorta do, but not completely) 03:03:09 I would suppose that the compiler starts with a parse tree. 03:03:15 yup 03:03:34 Then You can use rules on the parse tree to eventually reduce it to sets of instructions. 03:03:42 yup 03:04:10 This is a specialization of graph rewrite, changing the "structure" without changing the meaning 03:04:16 ahhh 03:04:46 well then to answer your question, I have alot of ideas on how to do it, but I have no exact method that I know will work 03:05:20 I have a compiler that needs optimization. So I wonder about the best way of adding optimization schemes to it. 03:05:34 hmmm 03:05:54 well, *MY* choice would be to just make it into a parser for my compiler, but I'm somewhat biased ;) 03:06:56 What would you do if you "discovered" a new optimization. 03:07:08 albeit small 03:07:08 add it to my compiler 03:07:19 as a sub compiler? 03:07:29 preprocessor? 03:07:58 well it would have to fit into the existing structure, otherwise it would be of no use 03:08:35 you lost me "existing structure"? of the compiler, or the parse tree. 03:08:59 and it's not really possible to have a preprocessor per-say. my compiler starts at the parse tree, so there's nothing to preprocess before that 03:09:36 well I have a rather large and complex system that the compiler uses, and if it can't be fit into that system it can't be part of my compiler 03:09:39 You are proposing many little parsers that "jump in" to help compile to machine code. 03:09:56 no... 03:11:16 btw, do you know how to copy and paste in vim? I can never remember 03:11:25 no 03:14:54 do you have docs that I can read so I don't ask too many dumb questions? 03:14:54 some, but they're really crappy right now 03:14:54 http://rhamphoryncus.dyndns.org/~rhamph/Foundation/F1/ 03:14:54 thanks. 03:14:54 careful of the file dates 03:14:54 most of the stuff in there is old 03:14:54 compiler description.html, description.html, and interface.h are the up to date stuff 03:15:01 have you decided on a parse tree? 03:15:24 you mean what form it'll take? 03:15:36 yes, a definition, even if vague 03:15:49 to some degree, but not completely 03:16:06 interface.h defines the functions the parser will use to create it though 03:17:24 Rhamphoryncus decides it's easier (and much quicker) to just retype the half dozen lines 03:20:20 pseudoform.txt is what I'm working on at this moment. trying to make it follow the compiler definition.html 03:21:15 I find it easier to read what a person is doing by seeing thier datastructures than thier functions. 03:21:29 true 03:22:11 most of the docs were written primarly for my benefit, and therefor focus on things I was working on at the time 03:22:43 description.html is written for other people's benefits. unfortunetely, I was having alot of trouble getting work done on it 03:26:14 one thing I might do at a later point is hook up something that uses the same interface that outputs a diagram instead of compiling 03:27:12 that would be good. I have an auto html class describer for my system 03:27:41 well it wouldn't be good for much real work 03:28:37 make sure to script it in a language where it will not take much time. 03:28:50 Rhamphoryncus mumbles 03:29:13 maybe C has libraries that make the job easier. 03:29:18 you know, I still have to come up with the parser 03:29:18 i don't know 03:29:25 ) 03:29:53 I want to make the thing self hosting, but it's not actually capable of being self hosted 03:30:08 it needs a language with a written syntax first 03:30:20 "self hosting"? 03:30:32 I want to write the real compiler in the language itself 03:30:50 We all want to do that. 03:31:10 but it's hard to do that with a language that just provides function calls :) 03:31:20 Are you choosing a syntax, or making one up. 03:31:29 making one up 03:31:33 might as well 03:32:24 How is it hard. I would imagine the simplicity of the paradigm would make it easy. 03:32:58 well you can't exactly trigger an interrupt by hand. you write a program that does it 03:33:33 i think you lost me. 03:33:44 heh 03:33:53 not surprising. this thing confuses everybody :) 03:34:24 my language does not provide a parser. my language is *just* the set of functions given in interface.h 03:35:32 MMmmm 03:36:43 How do you create a function that adds two numbers? 03:37:07 well first you create the numbers... btw, I don't have any integers either. 03:37:23 that is consistent with tunes 03:39:26 then you use a couple iterators to go over the each vector of bits and add them together, the same way a CPU would. (well, most CPUs would do them all simultaneously) 03:40:49 Mmmm 03:42:25 actually, semantics would give you a better idea of how things work. it's just a bit out of date though 03:42:36 yes 03:42:55 Well, I have to go to work now. 03:42:59 ok 03:43:01 ttyl 03:43:01 ) 03:43:05 Thanks for the conversation. 03:43:09 np 03:43:13 [QUIT] Kyle quit: Leaving 05:43:31 karltk joined #tunes 05:48:11 Fare joined #tunes 07:53:49 hcf joined #tunes 07:55:27 abi: perligata is Lingua::Romana::Perligata, Perl for the XXI-imus Century, write Perl in Latin, largely non-positional syntax, at http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html 07:56:37 [QUIT] Fare quit: Ping timeout for Fare[ppp66-net1-idf2-bas1.isdnet.net] 07:57:06 Fare joined #tunes 09:08:17 abi: cuecat.scm is at ftp://ftp.meme.com/pub/software/cuecat/ 09:43:43 [QUIT] JALH quit: brb 09:59:54 eihrul joined #tunes 09:59:59 eihrul hmms. 10:04:25 Kyle (logged): a lot of optimizations can be classified as either data-flow optimizations and most of the rest are simple graph rewrite 10:04:56 whereas one collects data about nodes and makes decisions about what to do with them based on the collected data, the rest are just simple reductions :) 10:16:54 [QUIT] eihrul quit: Leaving 10:24:40 [QUIT] hcf quit: Leaving 10:39:06 [QUIT] MysticOne quit: See ya! 10:39:27 [QUIT] HolyK quit: Ping timeout for HolyK[194.126.30.178] 11:06:07 [QUIT] lar[sleep] quit: Ping timeout for lar[sleep][adsl-63-204-133-55.dsl.snfc21.pacbell.net] 11:06:14 lar[sleep] joined #tunes 11:08:35 Rhamph-Sleeping joined #tunes 11:21:54 eihrul joined #tunes 12:08:19 [QUIT] JALH quit: Ping timeout for JALH[user38-35.jakinternet.co.uk] 12:21:07 moebious joined #tunes 12:24:39 how goes? 12:26:21 Fare joined #tunes 12:43:26 what do you need to get a system such as TUNES running on your computer? IE, what will be the assembly code that start the whole system the first time its loaded? 12:44:03 An interpreter and an entry point into the codebase? 12:44:21 but you would also need drivers, for the filesystem, ect 12:52:55 [NICK] _ruiner_ changed nick to: cog 13:38:24 hum 13:38:46 why should it be different than other systems, in this respect? 13:39:06 you have a multi-step boot loader, that loads an image into memory, etc. 13:39:22 actually, this isn't the most interesting part of the system 13:39:24 [QUIT] JALH quit: g'night * 13:39:44 one interesting way to develop it would be to metaprogram it in a declarative way 13:40:18 but since you typically don't want to touch this part often, it'd be easier to just steal another OS'es boot loader (e.g. GRUB or LILO) 13:40:43 either that or just have have objects in your language that expose enough low level details to make dealing with those issues as easy as any other objects :P 13:42:29 i.e. Squeak has Slang, for that purpose 13:58:08 eihrul, thats more what I was thinking was intended. I had this idea with "contexts" (my "objects") that I think could do this, I think. 14:00:38 normal objects can do this just fine :) 14:00:57 basicly, a section of the os is the machine definition, which among other things, has some basic (essential) translations of whatever language is in use to machine code, as well as some example code the machine could work ... 14:00:58 with. My cheat was to have an example interpeter here, but have that loaded at boot time, and enter at the top level somewhere. 14:01:32 In time, the system could replace it with its own interpeter, perhaps, since the the interpeter would be concurently defined in the HLL :) 14:02:08 that's called bootstrapping, nothing new 14:02:20 eh, yea 14:03:25 thats not exacly what most os's bootstrap however. 14:04:06 eh? how is that not just bootstrapping? 14:04:34 i didn't say it wasn't. define bootstrapping 14:05:37 incremental replacement of external primitives with internal ones :) 14:06:04 trust me, i'm speaking out of my ah,.. out of a wide base of knowledge ;) 14:06:35 define primitives 14:07:15 primitive being something not expressed (and possibly not expressable) internally 14:07:40 ok, makes sence 14:08:06 i always thought it just loaded a kernel and started exicution somewhere. 14:08:14 sorry about the spelling. 14:08:15 you can do that too 14:08:24 but the boot loader is effectively your boot strap mechanism, in that case 14:10:04 i'm not saying I am proposing anything new. I haven't read the docs, this is just what I came up with over a cup of coffee, based on simpling knowing a little bit of what you/we are trying to do. 14:10:27 these problems are already understood though :) 14:10:33 they're not really issues at this point 14:10:38 hehe 14:15:43 I was thinking of the basic, eh, "object" being a context. A context acts like a barrior, in that it imposes restrictions on everything which spawns from it (not sure how this would work), thats the important thing. Every ... 14:15:43 context is produced as a "child" of sorts under the current one. 14:16:32 in other words, inheritance 14:16:55 i dont think its the same 14:17:25 [QUIT] cog quit: Killed (NickServ (This nick is reserved by another user)) 14:19:46 why isn't it? 14:21:18 its possable i just thought of a different way for ME to think about inheritance. I'm trying to find a clear conter example. 14:21:31 you mean inheritance in the sence of classes and objects? 14:21:46 inheritance in the sense of objects 14:21:56 classes are just a conceptual tool for thinking about inheritance :) 14:22:03 but not necessary to express it 14:24:06 yes, well 14:24:33 i cant think of a counter example, i think they are the same. 14:24:47 moebious slumps. 14:25:30 well, its back to the cafe ... 14:28:31 [NICK] kc-teriyaki changed nick to: kc5tja 14:36:03 i just tended to think of an object as something which had an address, was an instance of some class, but, I am wrong 14:36:33 damn that c++ 14:36:38 ) 15:26:05 Brianna joined #tunes 15:26:54 [QUIT] Fare quit: Ping timeout for Fare[195.154.50.66] 15:29:47 Fare joined #tunes 16:23:36 [NICK] lar1 changed nick to: lar[game] 17:28:45 eihrul joined #tunes 17:39:36 [QUIT] MysticOne quit: Ping timeout for MysticOne[porpoise18.panama.gulf.net] 17:40:49 [QUIT] Melinda quit: Ping timeout for Melinda[porpoise18.panama.gulf.net] 18:12:30 Kyle joined #tunes 18:23:33 is eihrul here? 18:23:40 yeah 18:24:56 data-flow optimizations... do you have an example? 18:26:15 well, type inference is a good example :) 18:26:51 other things like constant propagation are also good examples :) 18:28:33 I will think about that.... thanks for now. 18:35:48 is there a finite, known, set of data-floaw optimizations? 18:36:05 if not, is there a way to describe large classes of them? 18:36:37 It would be unfortunate to program these optimizations, programs are hard to parse and understand. 18:38:22 water joined #tunes 18:38:36 hi water 18:38:41 hey 18:39:41 re all 18:39:47 hm, another new person 18:39:50 [QUIT] kc5tja quit: THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK 18:39:56 is anything up atm? 18:40:07 Kyle: sure, there's frameworks for doing all sorts of data-flow optimizations 18:40:16 water waits for his email 18:40:26 Kyle: because collecting the data is largely similar, however restructuring done because of data-flow optimization is not necessarily similar 18:40:33 water checks logs ;) 18:40:44 although there's lots of problems where splitting and reorganizing is done uniformly to improve data-flow information 18:42:46 I am not really interested in the data-flow information, just the actions taken based on the info. 18:42:47 water reels at the volume of email in the last 34 hours 18:42:55 [QUIT] Fare quit: Leaving 18:45:16 heh 18:45:34 um... my resume just got forwarded by that friend of mine 18:46:21 Kyle: those are widely different 18:46:49 "those"? 18:47:42 those => the actions taken based upon the data-flow information 18:47:47 sorry 18:48:02 there's no one silver bullet to make a perfectly optimized programs 18:48:09 too bad 18:48:32 because optimization is an art, its mainly heuristic :) 18:48:34 I will leave it to the experts. Too much work in that field. ;) 18:48:44 yeah there is, "don't run the program" :) 18:49:12 water: that makes the program infinitely slow! 18:49:22 ) 18:49:30 no, wait until the hw improves :) 18:51:07 water relishes the hope of these darpa research people getting him out of the navy 18:53:36 [NICK] lar1 changed nick to: lar[dinner] 18:54:53 [QUIT] Aardappel quit: Ping timeout for Aardappel[ipd54b5f9c.free.wxs.nl] 18:55:41 damn it, i must make a phone call 18:55:43 brb 18:56:31 [QUIT] Kyle quit: Leaving 19:05:05 wow my life could get pretty busy soon 19:05:28 Kyle: there's good books on the subject :) 19:06:59 brb again 19:10:02 geez 19:10:12 the switch is apparently too busy 19:20:36 [NICK] lar[dinner] changed nick to: lar1 19:27:47 [QUIT] abi quit: irc.linux.com varley.openprojects.net 19:27:47 [QUIT] clog quit: irc.linux.com varley.openprojects.net 19:27:47 [QUIT] ult quit: irc.linux.com varley.openprojects.net 19:37:30 [QUIT] karltk quit: Ping timeout for karltk[janus.prosalg.no] 19:39:12 karltk joined #tunes 20:02:12 ult joined #tunes 20:02:45 [NICK] lar1 changed nick to: lar[away] 20:06:23 Kyle joined #tunes 20:06:35 re kyle 20:06:42 'lo 20:06:49 moebious needs to spend a good year or so reading before attempting further discussion 20:06:56 lol 20:07:24 mobius: yep, that is tunes' curse :) 20:07:37 maybe a few months 20:07:40 That would be for the purposes of "not talking from ass" :) 20:07:41 not necessarily a year 20:07:54 optimism... 20:08:06 no, that's experience 20:09:50 thats my curse, i like trying to do everything from scratch. like, i was messing with the four color theorm for over a year, still sorta am, silly as it is. refused to ever read about the theorm, ie, what mistakes others ... 20:09:51 made. 20:10:32 [QUIT] Kyle quit: Leaving 20:12:08 What do you people mean by objects? 20:12:40 something accessed by a symbol, perhaps 20:23:09 I think my contexts had some conceptual difference from objects. Generally, people inherit from an object to expand on its capabilities. However, contexts work on the concept of also adding restrictions to all further ... 20:23:10 "children" 20:23:33 well, if you consider expanding on capabilities to be refining them 20:23:37 then its same diff :) 20:23:38 water scratches his hed 20:23:46 yeah basically 20:26:04 well thats what i realised earlier. really, i was just looking at a sort of paridigm, and a choice of charictoristics for the "head object", or whatever it is, that everything inherits from. 20:26:45 the root object idea does have some drawbacks 20:27:19 mostly that you wind up with features that are not factored well 20:27:48 well, just because its the root object doesn't mean it can't inherit from others :) 20:27:49 i thought, in practicality, that it would only be the root object "on paper" so to speak, just so there is a cool looking definition of everything in the language 20:28:05 ok 20:28:19 water: you just have longer cycles :) 20:28:53 heh sure 20:29:40 i just meant that some of Object's features in most languages have to be put there for practical purposes, but really don't belong there 20:29:53 slate doesn't have that concern 20:41:55 [QUIT] Melinda quit: Read error to Melinda[porpoise21.panama.gulf.net]: Connection reset by peer 20:43:26 wow my life is getting busy 20:43:38 with? VC? contacts? 20:43:59 job interviews also 20:44:07 and i'm investing in a company 20:44:28 not publically traded, and i can't talk about it 20:44:55 so this could possibly be the leak through with the water escapes the ship? :) 20:45:05 we'll see 20:45:22 s/with/which 20:46:53 i haven't even started up squeak yet! 20:47:03 water smacks his forehead 20:47:19 otoh i did sneak in a lot of sleep at work ;) 20:47:24 good thing i made a rhyme 20:47:27 so i'll be up late 20:47:42 what rhyme? 20:47:49 leak and squeak 20:48:01 and possibly sneak 20:48:07 heh 20:49:54 why is that a good thing? 20:51:32 you never would have remembered 20:51:43 ?? 20:51:59 never mind, too late for that 20:52:23 uh i know why the leak name was useful 20:54:15 eihrul goes off to sleep before water tries to read more into a bad rhyme. 20:54:28 yeah that's a good idea 20:54:45 water is about to get into some heavy functional pattern hacking 20:55:11 [QUIT] eihrul quit: Leaving 20:55:13 hcf joined #tunes 20:55:20 hey hcf 20:59:13 abi joined #tunes 20:59:13 clog joined #tunes 21:13:30 [QUIT] hcf quit: Leaving 21:29:24 [QUIT] MysticOne quit: Ping timeout for MysticOne[porpoise21.panama.gulf.net] 21:42:38 hi 21:43:15 hiya 21:43:35 water read the logs 21:59:20 water makes some minor updates to his homepage 22:12:35 the other day, i got kicked from the #freebsd on efnet for trying to make conversation. 22:12:47 msg was "do we care?" 22:13:05 about what? 22:13:38 my comment was something like "I have a 386 I want to put BSD on. Why? I dont know." 22:14:10 i like bsd, but they dont do a good job at PR for it there. 22:14:15 [NICK] lar[away] changed nick to: lar1 22:14:32 oh well 22:16:00 so thats why we need to get TUNES working, pronto =] 22:16:15 hm 22:16:58 well, i'm still working on this code in squeak, which barely supports self-style objects 22:17:07 trying to make it work for slate 22:17:13 "TUNES, make me a new application, one that does spreadsheet." "Yes user Derek. I will start now." right??? :P 22:17:39 *sigh* 22:17:45 hehe 22:18:02 squeak has a spreadsheet class 22:18:07 ah 22:18:09 with a gui 22:18:23 its not excel or gnumeric 22:18:35 but you can extend it very easily 22:18:50 actually, thats kinda amazing, since I didn't hear about squeak untill now. 22:19:20 common lisp has a lot of good packages, too, but is less approachable 22:20:56 many decent gui packages? I haven't delved that deep. 22:21:53 for which? 22:22:13 lisp i ment. 22:22:18 oh 22:22:20 common lisp. 22:22:32 afaik lisp doesn't have a self-hosted gui like smalltalk does 22:24:22 moebious thinks about lisp to c bindings. 22:24:44 squeak already has a binding called slanf 22:24:49 oops... slang 22:25:21 neat. need to learn squeak i guess. talk to you later 22:25:26 ok 22:27:01 moebious left #tunes 22:36:43 [QUIT] alterego quit: [BX] Get your free warez from ftp://127.0.0.1! 00:26:07 [QUIT] alterego quit: BitchX-1.0c16 by panasync