00:36:03 moebious joined #tunes 00:36:08 yo 03:36:15 pratap joined #tunes 03:43:13 [QUIT] pratap quit: ircII EPIC4-2000 -- Accept no limitations 04:13:45 [QUIT] karltk quit: Ping timeout for karltk[janus.prosalg.no] 04:15:01 karltk joined #tunes 04:15:54 [QUIT] ink[sleep] quit: Ping timeout for ink[sleep][ppp-207-214-214-136.sntc01.pacbell.net] 04:50:53 water joined #tunes 04:51:22 water is on for just a couple of minutes 05:01:08 [QUIT] water quit: The Tao went that-a-way! 06:41:37 Fare joined #tunes 07:13:56 [QUIT] JALH quit: [BX] Pretzel Boy uses BitchX. Shouldn't you? 07:17:58 amokeins joined #tunes 07:18:47 hey anybody out there ? 07:18:51 kind of 07:19:13 kind of what ? 07:19:40 [QUIT] amokeins quit: amokeins has no reason 07:20:07 Rhamphoryncus joined #tunes 07:20:24 Rham: hello 07:20:29 hiya 07:20:33 so you want to make a new language? 07:20:38 yeah 07:21:01 learning about existing ones is so as to copy what they did well and avoid what they did wrong 07:21:22 in the case of pliant, the open compiler design is great. 07:21:24 oh, I think I'm well beyond that point :) 07:21:30 About what LISP should have been 07:21:39 Rham: what point are you at? 07:22:09 Fare: if I sat my ass down and typed stuff up, I could have the compiler running probably within a week. (I'm too lazy though) 07:23:25 ewwwwww! "PLiant is a true procedural environment (plenty of side effects, no garbage collector) because it is expected to be even faster than C." 07:23:51 what kind of general design are you using? 07:23:58 I expect mine to be faster than C for exactly the opposite reasons. no side effects. :) 07:24:08 for which aspects? 07:24:30 well, the fact you have a pure language is interesting, for instance. 07:24:47 How are you different from, say, Mercury, Haskell, or SAC? 07:25:54 don't know about mercury or SAC, but the fact that I have no syntax has to be worth something :) (ok, so technically there is one, but...) 07:25:56 what evaluation model are you using? 07:26:13 ? 07:26:33 well, for instance is it a lazy functional setting as with haskell? 07:26:44 sorry, I have trouble with terms. I dont' know the ones other people use, and I chose oens that confuse the hell out of other people looking at mine 07:27:52 well, as I understand it lazy means that it only evaluates when it's required too. my language will do this, but it will be hidden from the programer; as far as he's concerned it's not lazy. 07:28:10 (that's just a part of how it'll do optimizations) 07:28:41 btw, where are you from (physically, academically, hackerly) ? 07:29:18 I'm from edmonton alberta, have about grade 7 in school, and hackerly... not sure what to put for that :) 07:30:20 grade 7 ? 07:30:45 dropped out a while ago. (technically I was there longer, but I don't consider that since I didn't get anything done) 07:30:59 (I'm no canadian, so I don't know what grades mean exactly) 07:31:12 7 years of schooling 07:31:18 where are you from? 07:31:23 Paris, France. 07:31:36 hmm 07:31:41 of schooling, from what state of knowledge/age/foo ? 07:32:05 well I'm 17 now, and that was several years ago, if that gives any indication 07:32:50 ok. Well, apparently, it doesn't prevent your communicating like a well bred student. 07:32:58 *grin* 07:33:44 anyway. One thing about the language is the programming model it offers, as visible to programmers 07:34:23 [QUIT] smkl quit: Ping timeout for smkl[glubimox.yok.utu.fi] 07:34:26 well in some ways my writing skills are extremely bad (fine in others), so I've been trying for th elast week to get some reasonable documentation written, but just not getting anywhere. (I'm sure any successful student can push something out, but I can't) 07:34:31 smkl joined #tunes 07:34:38 well I should explain the syntax thing to you 07:35:12 then, depending on whether you're doing whole-program optimization, modular compilation, or interactive development, the model has increasing pervasiveness in the structural representation of your language 07:35:25 rather that try to create some powerful and flexible syntax, that may not actually be all that powerful, I skipped it. I just provide an API. 07:36:02 eihrul joined #tunes 07:36:06 Also, the syntax is largely decouplable from the evaluation model 07:36:15 'lo 07:36:34 you know, I MOSTLY understand what you said :) 07:36:42 (for instance, Caml has had many changes in syntax, and there is a preprocessor-prettyprinter that helps going from one syntax to another) 07:36:58 eih: hi' 07:37:54 well the API is about as extreme as you get there. you are expected to create a parser (which is a language in itself) to impliment the written form (and all the features) 07:39:58 at this point the API will be limited to just create the tree structure in memory, and triggering compilation. 07:40:25 also, I'm limiting the i/o just stdin, stdout, and stderr. easier than coming up with some fancy library. 07:40:52 that's the way to do it 07:41:15 except that the API in your initial bootstrap step is unclear 07:41:32 (what metalanguage?) 07:41:34 yeah. I'm far more concerned with making the optimization work than I am with making some fancy syntax 07:41:49 meaning? 07:41:52 then you make as well keep the syntax of your metalanguage 07:42:10 meaning the language in which you write your initial compiler 07:42:36 ahh 07:42:44 I'm writing the bootstrap compiler in C 07:43:20 It'll be an extremely simplistic and innefficeient thing, but no biggie :) 07:43:31 ~`: 07:43:44 wha? 07:44:33 Rhamphoryncus: eliminating side-effects from your language doesn't make it more efficient 07:44:44 it only means that the burden of introducing side-effects is moved to the compiler 07:44:52 and that side-effects become better controlled... 07:44:57 eihrul: yup. exactly :) 07:45:01 inevitably, when you optimize, you have to deal with them 07:45:06 sure 07:45:13 whether the programmer puts them there or the compiler 07:45:18 it just gives you ALOT more flexibily on how to deal with them 07:45:24 but not allowing side-effects also leads to other interesting problems 07:45:49 like expressing input/output (which are side-effects) and some other things 07:46:08 Rham: have you seen how Haskell deals with expressing side-effects? 07:46:14 Fare: nope 07:46:14 (Mercury does the same) 07:46:23 well I think I have, but I don't remember 07:46:30 monads, eeew :) 07:46:35 eihrul likes linearity. 07:46:43 same 07:46:48 I absolutely hated haskel 07:46:54 haskell is lovely 07:47:04 eih: linearity is essentially the same as monads 07:47:18 no, my language is lovely. disgusting too, but you can writing a parser to hide all that :) 07:47:18 (or rather as concurrent monads) 07:47:19 Fare: i realize this, but linearity is a more natural way to express it :) 07:47:36 eih: I'd say they are dual approaches 07:47:41 Rhampho: at this point, that's a claim, i haven't seen your language :) 07:47:54 one (linearity) focusing on space structure, while the other (monads) focuses on time structure 07:48:57 Rham: yes, if you see Haskell's monads, you might also see the linear Clean way. 07:49:50 Rham: side-effect-freeness has also been used in designing SISAL (and now SAC), or in writing compilers (even C compilers) 07:51:12 you could in theory write a parser for C for use with my language 07:51:14 anyway, let that not prevent you from experimenting with things yourself 07:51:40 ) 07:52:31 it's just that the day you want to step back and realize what is done, what remains to do, where to go, and where to not go, you ought to fit other people's past experiences in the picture. 07:52:45 Fare is much to way back 07:52:53 Fare needs to step forward 07:52:58 well if I ever do get this to do some of the stuff I want it to, I'm sure it should cause a pretty huge splash :) 07:53:18 what prompted you in the pure direction? 07:53:21 (something about merging logic and formulas...) 07:53:33 *shrug* just fit 07:53:36 (functional language people tend to use "pure" for "side-effect free") 07:54:10 I wanted it to be free of side effects so that the compiler could have the most possible liberty about how it would produce the output code 07:54:32 sure. I mean, how did you come to realize this? 07:54:38 hard to say 07:55:02 you could research the message boards on i-lang.sourceforge.net, as that's where most of this spawned from 07:55:19 that's a different lang though, and somewhat dead at the moment 07:56:01 the compiler doesn't have liberty past a point :) 07:56:21 sure, the ideal that your compiler never has to mess with side-effects is nice and pretty and appealing 07:56:38 but its not true... if you want to optimize for a side-effectual processor, you need to eventually optimize and deal with side-effects :) 07:57:27 well *EVERYTHING* in the language proper is known. when you do something, it's supposed to do that. doesn't that make it free of side effects? 07:57:58 its almost as hard to decide where to introduce side-effects as it is to discover where they are in some code 07:58:53 well if I get the Guarantees working it should cut down on problems too :) 07:59:11 Rham: do you have a body of test applications in mind for your language? 07:59:23 Also, what target language will you be using? 07:59:53 (for instance, Stalin dumps asm-like C code from wholly-optimized Scheme programs) 08:00:46 Fare: I'll mostly just write demo programs to test out features and optimization. I've got no plans for any particular programs at this point 08:01:35 do you have some goal in mind, like, optimizing better than a C compiler for such or such processor on your test programs? 08:01:42 well it'll eventually put out assembly, but I'll be done some cheasy stuff with output C at first and compiling it into assembly to save me the effort of learning it properly :) 08:02:02 "optimizing better than *" 08:02:07 that about covers it :) 08:02:43 the verb "to optimize" must have been propagated by a marketroid. 08:02:53 hehehehe 08:03:06 what's the word I'm looking for.... 08:03:18 canonical 08:03:19 that's it :) 08:03:20 Fare: nah, "optimizing better than *" is propagated by marketroids 08:03:54 I want to produce the canonical form of programs, meaning the absolute best possible. 08:03:54 most everything is propagated by marketroids, when you think about it. Scary. 08:03:56 Fare: optimization in itself is a valid pursuit 08:04:09 but "optimizing better than *" doesn't make sense 08:04:22 eihrul: true, but it let me copy and paste :) 08:04:24 as various kinds of optimizations are done for various "*" 08:04:34 which yield very different results 08:04:39 Rham: the absolute canonical form is not computable in general, and it will depend a lot on the cost model. 08:04:56 Fare: true. but I oughta be able to get pretty close :) 08:05:29 and given some hard parameters, it is computable 08:05:50 what worries me most is the cost model. 08:05:57 cost? 08:06:10 You optimize wrt some notion of cost 08:06:16 ahh 08:06:48 And then comes the question of the adequacy of your notion of cost to the needs and expectations of users 08:06:53 well at first it'll just be making optimizations, not worrying about tradeoffs. then later I may add some stuff to do tradeoffs (may be much later though) 08:07:26 yeah, well, I'm sure they'll appreciate a system that's been mathematically proven to not fail :) 08:07:45 Beware: a mathematical proof is difficult 08:07:50 true 08:07:58 all the more when you want to prove not only the design, but the implementation 08:08:07 but it's a worthy challenge 08:08:19 well it depends on how you define "fail" 08:08:29 all the more when the implementation relies on extremely complex hardware ISA (like the X86) 08:08:41 if you can write a test for it, then it can prove it. 08:08:59 hehe, as I just said :) 08:09:01 hcf joined #tunes 08:09:03 don't overestimate the difficulty of proof 08:09:13 I won't 08:09:58 the proofs wouldn't extend to how the i/o operates. that is external and may any result at all. 08:11:03 but you can prove how each language is written internally, and the same techniques could be adapted to test the hardware itself 08:11:07 oops 08:11:11 s/language/program/ 08:11:33 anyway. I see you already have enough projects to fill up your whole life :) 08:11:49 hehehe 08:11:53 and it's refreshing to see youngsters who are not apathetic. 08:11:56 I doubt it'll take that long 08:12:18 yeah, most people just tell me to use C, or something equally lame.... *shakes head* 08:12:34 Well, depends how deep results you're after. There will always be ways to deepen your results. 08:12:44 (and I mean that telling me was lame, not C. even though it is too ;) ) 08:12:57 I want to go all the way 08:13:11 Then you'll have to go on after life :) 08:13:17 hehehe 08:13:22 that's another project ;) 08:13:38 Well, nice to see you here, anyway. 08:13:47 Keep us tuned. 08:14:32 just find some way to "freeze" your brain, and maybe your whole body. then you dissasemble it piece by piece, and load it into the molecular emulator running on your computer. walla, you can now debug your brain :) 08:15:57 You need a _big_ and _fast_ computer to make that run. 08:16:27 nah. you just won't notice the lag on your windows box :) 08:16:29 or you may optimize by compiling the result into carbon, oxygen, hydrogen and nitrogen molecules 08:16:42 hehehe 08:21:00 sure, but optimizing the mind would be especially tricky :P 08:21:07 ) 08:21:15 [QUIT] gREMLiNs quit: Ping timeout for gREMLiNs[as36-01-66-56.urc.bl.ac.yu] 08:21:17 yeah, but by that point it should be a cake walk 08:21:40 well, you'd have to make several minds 08:21:46 all specialized for particular tasks 08:21:53 or else you'd have a mind that performs poorly at everything 08:22:37 or at the very least, an adaptive mind that reorganizes itself based on the situation :) 08:22:55 [QUIT] eihrul quit: Leaving 08:27:23 my remark about compiling to atoms was ironical: the best way to execute your "frozen" image of a brain is to build a chemical brain that conforms to said frozen image. 08:27:45 like I said, a molecular emulator 08:28:13 hcf: oh, yes I should talk about this lisp + source-matching system I'm meant to be developing 08:28:19 but then I ought to develop it 08:28:40 Rham: yeah; molecules emulate themselves pretty well 08:29:08 Fare: it's that external interference thing 08:31:14 well, isolate your machine with other chemical devices. Like "clothes", "walls", and the like :) 08:31:22 hehehe 08:31:56 Oops. I gotta go. 08:32:11 hcf: we'll talk about that when there's people interested about it in the channel. 08:32:33 [QUIT] Fare quit: Connection reset by pear 09:39:02 eihrul joined #tunes 10:00:28 [QUIT] JALH quit: brb! 10:27:08 hcf joined #tunes 10:37:09 [QUIT] kc5tja quit: BitchX: its magically delicious! 10:41:18 [QUIT] hcf quit: Ping timeout for hcf[207-172-225-147.s147.tnt1.pld.me.dialup.rcn.com] 10:42:40 cor[wk] joined #tunes 11:03:04 [QUIT] JALH quit: brb... AOL sux0rs 11:08:56 smkl joined #tunes 11:19:56 [QUIT] nate37 quit: brb -- moving computer upstairs (yay) 11:42:05 eihrul joined #tunes 11:42:27 nate37 joined #tunes 11:54:55 [QUIT] gREMLiNs quit: Ping timeout for gREMLiNs[195.252.64.36] 11:54:58 [QUIT] JALH quit: Ping timeout for JALH[host62-6-83-104.btinternet.com] 12:34:31 [QUIT] gREMLiNs quit: You must die to go to heaven 15:26:14 [QUIT] kintaro quit: Ping timeout for kintaro[dial-nas-nahr-2-243.inco.com.lb] 15:26:49 [QUIT] kintaro1 quit: Ping timeout for kintaro1[dial-nas-nahr-2-243.inco.com.lb] 15:32:07 [QUIT] kintaro quit: Ping timeout for kintaro[dial-nas-nahr-2-104.inco.com.lb] 15:34:29 eihrul joined #tunes 15:35:34 re eihrul 15:54:17 [QUIT] kintaro quit: Ping timeout for kintaro[194.126.19.15] 16:22:08 [QUIT] eihrul quit: Leaving 16:49:21 Fare joined #tunes 16:49:51 Fare is passing by 17:19:34 Who's here? 17:22:54 eihrul joined #tunes 17:23:07 re 17:23:17 er 17:23:44 I read the discussion with Rham. 17:24:08 Can you give me an example of a side-effect? 17:24:35 some effect that is visible outside of the scope of the thing causing it :) 17:24:43 i.e. a global variable getting set by a procedure 17:25:22 Is that everything that is not pure functional? 17:25:45 not necessarily 17:25:57 i.e. there could be side-effects within the function that are never visible outside of it 17:26:09 so from outside the function, it looks like there are no side-effects 17:26:13 within the scope of the function, there are though 17:26:21 is it still purely functional? and according to whom? :) 17:27:50 then it is pure functional, but non functional subcomponents can make a pure function. 17:29:13 did that make sense? 17:29:28 Kyle: beware that this depends on the possible observations 17:30:03 if some concurrent monitor can inspect the internals of the function, it may discover the impurity 17:30:28 as long as the monitor is considered meta-, that's no problem 17:30:41 but then it can be used at same level, and then you're in trouble 17:31:17 SO I just have to keep true to the definition of "visible outside". 17:31:33 for instance, in fscking Scheme, anyone can replace a global function with something that intercepts and escapes continuations 17:32:42 so that (define (foo x) ... (foo (next x))) is no more equivalent to (define (foo x) (do ... (set! x (next x)) ...) 17:33:06 i.e. escaping non-linear continuations can reveal internal impurity. 17:33:28 Kyle: so you have to clearly define "outside" 17:35:29 Do either of you have a good suggestion of a language that handles side-effects, instead of trying to hide them? 17:35:45 most imperative languages don't try to hide side-effects :) 17:35:51 its just they don't deal with them elegantly 17:36:03 i will, however, plug Aardappel, as a languages that handles them nicely :) 17:36:56 Kyle: Concurrent Haskell ? 17:37:09 Clean ? 17:37:15 Is that differnt than Haskell? 17:37:22 abi: aardappel? 17:37:22 aardappel is a Concurrent Tree Space Transformation Language. at http://www.ecs.soton.ac.uk/~wvo96r/aardappel/index.html or Wouter van Oortmerssen's nickname (see wouter) or dutch for potato 17:37:31 Some people have experimented with Side-effect typing, too. 17:37:45 gotta go 3053 17:37:56 Kyle: look at that :) 17:38:19 thanks to you both 17:45:06 [NICK] lar[sleep] changed nick to: lar1 17:53:02 [QUIT] kintaro quit: Ping timeout for kintaro[194.126.19.156] 18:26:07 [QUIT] kikikiki quit: Ping timeout for kikikiki[dial-pm-nahr-1-4.inco.com.lb] 18:53:38 [QUIT] kintaro quit: Ping timeout for kintaro[dial-2-14.inco.com.lb] 19:10:34 [QUIT] kintaro quit: Ping timeout for kintaro[dial-pm-nahr-1-7.inco.com.lb] 19:23:00 [QUIT] kino1 quit: Ping timeout for kino1[dial-nas-nahr-2-54.inco.com.lb] 19:26:48 Rhamph-Sleeping starts to wonder if his definition of side-effects is screwed up 19:27:26 why, what is your definition of side-effect? 19:28:06 basically stuff you didnt' expect it to do (which seems really vague) 19:28:23 [NICK] Rhamph-Sleeping changed nick to: Rhamphoryncus 19:28:44 what do you mean? 19:29:18 well as I said, I think my defintion of side-effects is screwed up :) 19:30:16 well, what is your definition of side-effect? 19:30:34 basically stuff you didnt' expect it to do (which seems really vague) 19:30:49 oh, i interpreted that wrong :) 19:30:56 hehe 19:31:03 but if you look at your definition 19:31:09 what you expect it to do is inherently related to scope 19:31:16 and within what scope you expect it to be doing things 19:31:18 well in hindsight, I think my language DOES allow side effects according to the normal definition 19:31:22 yeah 19:52:40 Rhamphoryncus wonders if he should add #Tunes to his autojoin list 20:24:52 moebious left #tunes 21:17:41 [NICK] lar1 changed nick to: lar[dillydally] 21:51:41 [NICK] lar[dillydally] changed nick to: lar1 21:52:03 [NICK] ink[food] changed nick to: ink 22:37:34 [QUIT] eihrul quit: Leaving 22:39:01 ink joined #tunes 22:40:40 splorot ink 22:50:26 ummmm 22:50:27 ) 23:25:30 [NICK] cor[wk] changed nick to: cor[sl] 23:28:56 [QUIT] Kyle quit: Ping timeout for Kyle[cr168790-a.nmkt1.on.wave.home.com] 23:48:07 [NICK] ink changed nick to: ink[sleep] 23:54:31 [NICK] lar1 changed nick to: lar[sleep] 00:23:28 [QUIT] pratap quit: ircII EPIC4-2000 -- Accept no limitations