00:40:07 [QUIT] cor quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] nate37 quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] Tril quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] smkl quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] Geeky quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] abi quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] air quit: adams.openprojects.net irc.linux.com 00:40:08 [QUIT] ink|sleep quit: adams.openprojects.net irc.linux.com 00:40:59 Tril joined #tunes 00:40:59 cor joined #tunes 00:40:59 abi joined #tunes 00:40:59 smkl joined #tunes 00:40:59 nate37 joined #tunes 00:40:59 Ghyll joined #tunes 00:40:59 [MODE] fastlane.openprojects.net set mode: +o Tril 02:36:11 Fare joined #tunes 04:22:30 [QUIT] ink|sleep quit: Ping timeout for ink|sleep[ppp-206-170-2-145.sntc01.pacbell.net] 04:29:24 [QUIT] ult quit: Ping timeout for ult[149.149.201.30] 05:29:36 [QUIT] cor quit: irc.linux.com king.openprojects.net 05:29:36 [QUIT] nate37 quit: irc.linux.com king.openprojects.net 05:30:34 cor joined #tunes 05:30:34 nate37 joined #tunes 06:44:47 hcf joined #tunes 06:46:28 [QUIT] Ghyll quit: Read error to Ghyll[janus.prosalg.no]: EOF from client 07:00:12 ult joined #tunes 07:32:39 eihrul joined #tunes 07:53:05 abi: SILOON is Scripting Interface Languages for Object-Oriented Numerics at http://www.acl.lanl.gov/siloon/ 07:57:10 abi: juggle is J for unix at http://juggle.gaertner.de/ 08:42:26 abi: grover is a Groves Implementation for Scheme at http://www.red-bean.com/~craig/grover/ 08:44:13 abi: sgml-scheme is a toolkit in scheme for SGML at http://www.red-bean.com/~craig/sgml-scheme/ 08:45:25 abi: popsh is for scripting with Poplog and Pop-11 at at http://www.red-bean.com/~craig/popsh/ 08:47:28 abi: curl is a ncurses interface for CMUCL Common Lisp at http://www.red-bean.com/~craig/curl/ 08:47:28 ...but curl is at http://curl.lcs.mit.edu/curl/wwwpaper.html... 08:47:34 abi: curl is also a ncurses interface for CMUCL Common Lisp at http://www.red-bean.com/~craig/curl/ 08:47:34 okay, hcf. 08:47:38 abi: qcmu is a small C program which connects to a persistent CMUCL Common Lisp and provides you with a repl at http://www.red-bean.com/~craig/qcmu/ 09:00:58 abi: Interval Library Project is a repository of open source, verifiably correct implementations of interval arithmetic and interval constraints, and applications thereof at http://interval.sourceforge.net/interval/index.html 09:05:11 abi: MLj is a compiler for Standard ML which produces Java bytecodes at http://www.dcs.ed.ac.uk/home/mlj/ 09:37:18 abi: ficl is Forth Inspired Command Language at http://www.taygeta.com/ficl.html 09:38:22 eihrul joined #tunes 09:40:47 abi: Eraserhead RPG is a gpl'd RPG II comiler at http://rpg.netpedia.net/ 10:06:34 Tril joined #tunes 10:06:34 [MODE] ChanServ set mode: +o Tril 10:51:53 emu joined #tunes 10:52:16 hello 10:53:33 hello 10:53:47 i've been reading tunes.org 10:54:11 do you know eihrul? 10:54:38 yes 10:55:33 he told me about it 10:57:47 im still here 10:58:06 yeah, sometimes the connection here craps out 10:58:21 do you have questions? 10:58:44 well im interested in the project in general 11:00:28 hrm 11:01:15 i dont think im qualified to give a lecture :) 11:02:12 if you have a specific question, maybe you could coerce fare in answering you.. 11:02:15 what do you work on? 11:02:25 hrm 11:02:30 im a nobody 11:02:47 im trying to help with cleaning up tunes.org 11:02:57 but to date i havent been very productive 11:03:42 im somewhat familiar with some of the concepts behind tunes 11:03:57 have you subscribed to the mlist? 11:04:02 because i've come across similar systems before 11:04:08 hmm no, not yet 11:04:15 although, i noticed the archives only cover up to dec 99 11:04:26 cor looks at tril. ) 11:04:43 ah wait, here's 2000, at the bottom 11:04:56 silly sorting :) 11:05:21 water would probably be most willing to answer questions but hes not here 11:06:34 can you discuss reflection any? 11:06:41 hrm 11:06:51 anyone awake? 11:11:42 no 11:11:52 hey 11:12:01 emu grins evilly 11:12:14 Fare is back 11:12:24 re fare, eihrul 11:13:52 Fare: what's new? 11:14:23 eihrul: whens your next class? 11:14:31 7:30 11:14:40 late, tho my lab is later.. 11:15:22 emu: hi. have we met before? 11:15:33 Fare: no. i'm new here. I know eihrul in RL, however 11:16:17 Fare: I'm reading about reflection right now 11:16:33 what are you reading? 11:16:53 well cor gave me a url http://tunes.org/Review/Reflection.html but im looking at the glossary atm 11:18:17 you get lost in get lost in the glossary 11:18:45 been attempts to revise it, but lots of them stopped :) 11:18:52 heh 11:18:59 well im just looking for a good description 11:19:03 maybe some examples 11:19:05 of reflection? 11:19:15 well, of what you mean by it 11:19:48 the ability to manipulate code and/or all parts of the system as if it were data 11:20:10 that can be examined and modified freely, i.e. reflected upon and reflect changes back into the system as well 11:20:26 hmm 11:20:40 i presume you mean manipulate HLL? 11:20:43 iow, there's no such thing as fixed policy 11:21:01 emacs emacs.c ; M-x compile-check-and-restart-if-ok 11:21:24 (yes, that's crude) 11:21:26 heh 11:21:34 emacs will probably do that too ;) 11:21:45 emu: sure, a HLL representation of parts of the system is a good way to reflect on it :) 11:21:59 M-x install-daemon-that-does-the-compile-check-and-restart-automagically 11:22:17 so you could recompile code on the fly 11:22:25 sure 11:22:25 and merge it right back in 11:22:33 right. That's the idea. 11:22:49 with live data 11:23:32 the compiler would of course do the necessary checks 11:23:38 of course 11:23:59 and it would keep enough history to backup in case of trouble 11:24:14 the persistant memory would be able to roll back i presume? 11:24:18 (also, there would be a fallback interpreter for debug) 11:24:33 hopefully the compiler wouldnt fail though, because the compiler is the system, correct? 11:24:36 emu: sure 11:24:40 emu: hopefully 11:25:00 of course you should be able to start virtualized experimental versions of the system from within itself 11:25:10 (or from Linux) 11:25:13 virtual machines 11:25:26 but that term implies sandboxing... 11:25:50 sure. There _is_ a use for X86 semi-virtualization capabilities 11:26:15 it's just that the use isn't for small-time sandboxing. 11:26:30 small-time sandboxing is mucho better done through static typing. 11:26:43 best to avoid it 11:27:02 avoid what? 11:27:05 sandboxing 11:27:33 oh yes, except when useful, which it is for experimental development of unsafe compiler strategies, or for PIG 11:27:42 yes, running unsafe code true 11:28:11 so you can cross-develop Tunes from Tunes w/o rebooting 11:28:24 and then load the updated stuff in 11:28:53 what about low level unsafe drivers? 11:30:25 there's still a moment you oughta reboot. Although even then, most data can persist. 11:31:57 well, it should, being PVM :) 11:32:50 (but even then, most of a driver isn't _that_ low-level and can be debugged from the high-level, with some semi-hardware-emulating routines replacing the actual I/O) 11:33:08 well the low level stuff would be to provide a safe interface anyhow 11:33:21 i imagine it would be possible to disable most devices long enough to swap code 11:34:25 another thing about the compiler 11:34:41 would it be able to track variable ranges? 11:37:27 it certainly should do it by default when in "user" mode. 11:40:05 it sounds interesting 11:41:56 what kind of things are you thinking about along the lines of interface design? 11:46:24 Fare goes 61453 11:47:07 emu raises an eyebrow 11:55:44 convert that to hexadecimal :) 12:01:06 right ;) 12:18:39 redfive joined #tunes 12:19:40 redfive left #tunes 12:40:50 Fare is back 12:44:17 hello 12:45:01 ole 12:45:18 bout that interface design, then :) 12:45:26 what about it? 12:45:39 did you have any particularly solid ideas or just some speculation? 12:45:43 UI is 12:45:56 s/is/comes late in the design/ 12:46:02 and eve later for end-user UI 12:46:41 what if the UI was a representation of the objects that a user has 12:46:50 or not what if, but is 12:47:39 emu: been done 12:47:47 but well? 12:47:56 sure 12:48:07 name? 12:48:12 Squeak, Self 12:48:16 squeak hmm 12:48:27 abi: squeak? 12:48:28 squeak is a cool pure oo language descended from Smalltalk, at http://squeak.cs.uiuc.edu/ or at http://www.squeak.org/ or The open source mouse that roars! 12:48:30 abi: self? 12:48:30 self is a prototype-based object system at http://www.sun.com/research/self/ or old mirror at http://www.cs.ucsb.edu/oocsb/self/ 12:48:38 i have squeak 12:49:05 but even squeak uses windows.. 12:49:20 its the programming language that is OO 12:51:29 neither squeak nor self is for newbie 12:51:39 although you can build newbie stuff atop 12:52:58 MACISTE has an interactive interface, which looks more than good enough for J. Pitrat, who learned computer science on big iron IBM machines of the 50's 12:54:15 so you are reserving UI till the end, then 12:55:52 well, no good having a UI with no underlying system :) 12:56:11 true, but UI is non trivial 12:56:30 exactly how much of the underlying system is done? 13:05:31 no, not "till the end", but "till after the infrastructure is done" 13:05:46 is there something bootable? 13:08:12 looks good ;) 13:08:27 of tunes? not really. 13:09:04 im curious to how far you've gotten 13:09:40 no hhl 13:09:41 hll 13:09:45 [NICK] cor[class] changed nick to: cor 13:10:11 thats a fairly important piece 13:10:44 water is working (with eihrul) on a candidate, and fare has his own ideas 13:11:23 eihrul: is this the compiler you tell me about? 13:11:43 heh 13:14:39 well, kinda 13:14:44 i'm reusing the compiler for two things :) 13:18:08 what two things 13:23:20 Slate and Leak 13:23:49 what is leak? 13:24:08 Leak where s/Smalltalk/Lisp 13:24:12 s/Leak/Squeak :) 13:24:44 whats the status of it? 13:24:52 same as the status of slate 13:25:31 ) 13:30:15 nice idea 13:31:32 I admit I don't like the way slate tries to redefine a new evaluation model 13:31:43 I don't understand the rationale behind it at all 13:31:45 "redefine a new evaluation model" 13:31:51 -re? 13:32:49 yup 13:33:22 its not a "new evaluation model" perse 13:33:29 Why not just take usual call-by-value or call-by-need in either a function call or message passing paradigm? 13:33:34 its the same old one that's been in every language since the dawn of time :) 13:33:39 only with hooks for the MOP 13:33:53 Why mix meta-level name lookup with base-level graph reduction? 13:34:25 maybe it's the way I've been presented it, but I feel something is not clear there. 13:35:11 Can a clear (not necessarily static, but well-defined) compile-time vs run-time separation line be drawn? 13:35:16 eh? don't think of it as graph reduction 13:35:19 it only confuses things :) 13:35:32 which scares me. 13:35:45 is there one in lisp? 13:35:47 Graph reduction is an essential point of view of all high-level languages 13:36:01 maybe it's precisely what differenciates HLL's from LLL's. 13:36:03 so, you can view slate through graph reduction as well 13:36:16 eih: yes, there is one in lisp. 13:36:19 but graph reduction necessarily is too cumbersome to think about 13:36:26 in Scheme, it's very clear. 13:36:28 Fare: then there is one in slate 13:37:25 in CL, it seems to me that it's only partially specified, but with enough precision about warranties and lack thereof so that conformant programs act as if compile-time and runtime are separated. 13:38:20 why is this distinction useful? :) 13:38:28 eih: is there an up-to-date Slate manual? 13:38:43 that's water's area 13:38:43 in waters head 13:38:51 but the concensus seems to be no 13:40:01 eih: the distinction is most useful for program manipulation other than evaluation 13:40:53 how does a compile-time facilitate program manipulation? :) 13:41:14 if i can get a representation of the program 13:41:19 [QUIT] gREMLiNs quit: Ping timeout for gREMLiNs[as53-01-235-120.blic.net] 13:41:23 and i can fiddle around with it 13:41:32 then what's the point? 13:47:18 fare:  13:47:28 cor looks at his watch. 13:49:00 smoke_ joined #tunes 13:49:41 cor watches tumbleweed roll past. 13:49:54 eih: by creating a context-independent functional object that you can manipulate with metatools 13:50:35 which funobj doesn't depend on any meta-level naming anymore 13:51:00 so isn't that more of a read-time/run-time distinction? :) 13:52:44 I want to manipulate functions that are to be run in another environment than the current one 13:52:52 not just sources. funobj's. 13:53:42 or rather, a source code representation? :) 13:58:02 No, source is not the same 13:58:40 particularly not when its interpretation in terms of funobj depends on the metacontext of metaobject evaluation 13:59:28 Fare, why do you want to do this? 13:59:41 because it is the Right Thing. 14:00:12 For e.g. making proofs about programs that you cross-develop 14:02:23 eh? so you interpret the source under a specific context, what's the distinction here? 14:02:45 psuedo-source... 14:03:58 side-effects at the meta-level, for instance. 14:06:14 s/, for instance// 14:06:43 "side-effects at the meta-level?" 14:09:49 sure. Accounting; compiler passes; generation of new unique objects; etc 14:10:26 so, isn't that still source code? albeit transformed? 14:12:05 dunno what you're talking about. There is source; there are funobj; they are not the same. 14:12:25 heh 14:12:26 are you sure you know what you're talking about? :) 14:12:34 Yesssss 14:12:38 P 14:13:35 (I may add: non-deterministic choices at the meta-level, maybe due to asynchrony in a parallel compiler) 14:13:56 ;' 14:13:56 '; 14:14:07 (or maybe plain randomness used as seed of a genetic optimization algorithm) 14:17:36 or expensive GUIDs provided by a central server. 14:17:48 in the end, its still code 14:17:49 P 14:17:53 sure. 14:18:03 just a particular interpretation of it 14:19:12 It's just that meta-effects may lead to there not being pure deterministic source->funobj mapping, so you do NOT want to manipulate source. 14:20:27 well, at various times, i want both levels of abstraction 14:20:39 i may want to see things at a completely context independent level (source) 14:20:59 or i may want to see them through the interpretation of a specific context (your funobjs) 14:21:16 however, the former seems more useful to me than the latter 14:21:27 Also, so as to be able to strip a big runtime from the target (for runtime embeddability, easiness to reason about funobjs, or whatever), you do NOT want names and other metaconcepts to be tied to the target evaluation model. 14:22:20 "strip ... from the target?" 14:22:22 Really, my claim is that it is essential to be able to separate meta-levels 14:22:26 could you elaborate on what you mean :) 14:22:50 you mean partially evaluate it? 14:23:00 eihrul: make system-written-in-HLL-and-to-be-embedded-in-a-8K-microcontroller 14:23:36 prove overall correctness of whole application 14:23:47 wrt whatever invariant 14:24:31 in both cases, you can't afford the target evaluation model to contain ANY meta-level concept at runtime. 14:24:53 so you mean partially evaluate it according to a context, yes? :) 14:25:04 or at least, not ALL those that you want at compile-time 14:25:10 eihrul: NO 14:25:32 then what do you mean if not that? :P 14:25:51 because the embedded target is NOT a specialization of the metasystem 14:26:00 it's an altogether different system 14:26:16 so you don't partially evaluate. You just reason about. 14:26:31 okay, so reduced according to a context? :) 14:26:34 NO 14:26:47 it's not reduced. it is. 14:26:54 [QUIT] JALH quit: g'nite 14:27:04 "make sysstem-...-to-be-embedded-in-a-8K-microcontroller" 14:27:08 heh 14:27:10 (well, it _might_ be the result of a reduction; but needn't) 14:27:17 would seem to be reducing the HLL code to something that can be executed on an 8K microcontroller! 14:27:29 eih: so what? Where do you see any reduction? 14:27:40 i don't, but the way you explain it infers it :P 14:27:43 blame your own examples 14:28:02 in any case it's not the same meaning of "reduction" as used in "partial evaluation". 14:28:19 I blame your misunderstanding of basic CS vocabulary. 14:28:26 then can you give me a clear explanation of what it is? :P 14:29:06 cor: what do you think? is it my naivety or should fare give better example? 14:29:13 reduction is when you consider a partial order over programs so as to evaluate them. 14:29:40 When you construct a program for another platform (aka cross-development), you do NOT evaluate 14:29:57 reduction can be used to translate as well as evaluate :P 14:30:12 your normal form is not token values, but another program 14:30:56 eih: in the general case, translation is NOT a reduction. 14:31:11 that contradicts everything i've ever learned :) 14:31:51 or then, it's reduction at the meta-level, but then, everything is, so your assertion is content-free 14:32:23 ult blips 14:32:26 its reduction at all levels 14:32:28 okay, fine, i'll go along with your distinction for the sake of discussion 14:32:28 Fare has precisely been reading Popper, where the notion of logical content is well discussed. 14:32:32 but doesn't mean i agree with it :) 14:32:40 let me see some reflective code that does something fit in 8k 14:33:22 ult: the target code needs not be fully reflective. Even if it is, it needs not contain the full reflective meta-environment. 14:33:44 see phase-separators. 14:36:39 eihrul: partial-evaluation wrt some context is a meta-process that takes one program as input and one program of same type as output; it works on funobj's, not source. 14:40:45 ok 15:26:55 abi: dormoy is Jean-Luc Dormoy at http://dormoy.org/ 15:49:04 [QUIT] morton quit: Leaving 16:04:15 [QUIT] morton quit: Read error to morton[blekko.net]: EOF from client 16:04:20 [NICK] lar1 changed nick to: lar[funinsun] 17:38:39 Fare 17:39:03 n/m 17:39:24 hi 17:39:26 lo 17:39:36 [QUIT] bloodclot quit: BitchX-1.0c16 -- just do it. 17:49:10 Basile and I are meeting tomorrow to work on bootstrapping tunes 17:51:30 so that means we can expect something two decades from now? 17:51:51 sure 17:52:23 do you suggest anything constructive? 17:54:40 well, i can't comment on your bootstrapping ideas because i don't know them... 17:54:46 care to elaborate on them? 17:55:48 just a bit before I goto 6053 17:57:05 First step: write a HLL->asm mini-compiler in CL (but using macros & al to already use HLL style in CL) 17:57:58 Step two: write basic runtime support (trampolines, GC & al) in LLL-extended HLL, as supported by step 1 compiler 17:59:32 step three: port the HLL compiler to HLL and self-host it 18:00:05 do you have an LLL and an HLL yet, though? 18:00:55 step four: develop somewhat better runtime support (persistence, interaction) in Tunes, until it can (potentially) fully self-host. 18:01:20 step five: port the dev environment (make, cvs, emacs) to tunes. 18:01:39 LLL is assembly, as extended with arbitrary macros 18:01:45 written in HLL 18:01:56 so the HLL is just lisp? 18:02:14 HLL is kind of an ML with LISP syntax 18:02:27 sharing a common subset with LISP 18:02:32 so lisp with pattern matching? :) 18:02:36 yup 18:02:42 hmm 18:02:54 geez, years of bickering and this is where we end up? LispOS? :) 18:03:10 not quite 18:03:34 actually, this LISP dialect is rather the HLL-; 18:03:48 our reflective version of C-- 18:04:08 the full HLL is to be built atop. 18:04:23 what are its provisions for reflection though? :) 18:04:43 [QUIT] Aard_ quit: http://www.planetquake.com/aardappel/ 18:04:53 To begin with, source-matching. 18:05:37 Then the usual dynamic evaluation on the one hand, and introspection on the other. 18:05:53 okay, but how introspection? :) 18:10:05 Fare: ? 18:10:33 what's special about it, once you master the low-level details? 18:10:51 [QUIT] Melinda quit: Life is a whore and I'm broke. 18:15:16 how do you intend to provide it? 18:16:10 [NICK] kc-nap changed nick to: kc-store 18:25:03 Kyle joined #tunes 18:25:07 through some kind of RTTI API 18:25:08 non portable 18:25:08 Tril lags bespin by zlessing a giant file 18:25:27 i give up i'll decompress to a temp file 18:26:26 (I finally turned on log rotation again, meanwhile some very large logs are still around from when they didn't rotate) 18:28:49 where are the IRC logs? 18:29:15 Kyle: http://www.tunes.org/files/irc/ or ftp://ftp.tunes.org/pub/tunes/irc ... 18:29:29 Hey! They are back! 18:29:46 yup 18:30:46 [NICK] ink|dune changed nick to: ink|playing_with_SGI 19:29:20 Zhivago joined #tunes 19:29:23 [NICK] ink|back_to_the_CGI changed nick to: ink 20:05:51 iStormy joined #tunes 20:05:55 hi 20:07:52 yoyo 20:08:06 just can't find a comfy spot. 20:22:05 iStormy left #tunes 20:47:12 [NICK] ink changed nick to: ink[food] 20:53:49 [QUIT] air_ quit: http://www.qzx.com/ :: reboot 20:57:25 [NICK] ink[food] changed nick to: ink 21:04:41 [NICK] MysticOne changed nick to: Melinda 21:06:24 [NICK] Melinda changed nick to: MysticOne 22:46:23 heh 23:14:18 [NICK] ink changed nick to: ink|sleep 23:17:31 Tril joined #tunes 23:17:31 [MODE] ChanServ set mode: +o Tril 23:26:06 [QUIT] ink|sleep quit: fastlane.openprojects.net forward.openprojects.net 23:26:06 [QUIT] smkl quit: fastlane.openprojects.net forward.openprojects.net 23:26:06 [QUIT] Geeky quit: fastlane.openprojects.net forward.openprojects.net 23:26:29 [QUIT] Tril quit: bye 23:26:32 [QUIT] air quit: Read error to air[p0wer.qzx.com]: EOF from client 23:26:56 smkl joined #tunes 23:28:03 nate37 joined #tunes 00:21:09 Fare joined #tunes