IRC log started Tue May 16 00:00:01 2000 nah, people who work on the stuff we're working on get paid lots of money to work in well-equiped rooms full of hardware with connections to other experts sure, they also have PhDs :) not all of them [msg(TUNES)] permlog 2000.0516 * water/#tunes gives up on trying to sort out the 1:1000 s/n ratio for searches on modality sheesh, none of fred chow's papers give me anything more than a bib note off of research index no link to a home page? nope :/ jack pot! heh eihrul: does that mean "hcf: halt"? yes you're free hm hcf: hcf :) 12:10am * eihrul/#tunes counts the days until school ends. * water/#tunes counts the days until... well, you know :) eihrul: would this, http://granite.sru.edu/~chen/SSA/SSA.html be an ok intro to add to abi's ssa factoid? checking... hm all the gif's are gone yep, looks good damn she's up to 1058 factoids now with probably about 1% noise at most 12:20am -:- SignOff hcf: #TUNES (Leaving) -:- hcf [nef@207-172-225-84.s84.tnt1.pld.me.dialup.rcn.com] has joined #tunes -:- SignOff hcf: #TUNES (Leaving) -:- SignOff eihrul: #TUNES (sleep) -:- new [user3707@195.229.128.250] has joined #tunes hi new 01:10am -:- SignOff new: #TUNES (Leaving) boy the linux croud would throw fits about Squeak's GUI if they knew what it could do 01:20am -:- SignOff water: #TUNES (Ping timeout for water[tnt-10-136.tscnet.net]) -:- dirt [wrong@niantic0305.mohawk.net] has joined #tunes -:- dalvarez [dalvarez@tristan.sc.cs.tu-bs.de] has joined #tunes -:- SignOff dalvarez: #TUNES (Leaving) -:- thomas [thomas@193.217.63.152] has joined #tunes -:- water [water@tnt-10-193.tscnet.net] has joined #tunes re hey what's up? how's the vaca so far not bad i think it'll get better pretty soon, though 06:30am -:- SignOff water: #TUNES (The Tao went that-a-way!) -:- water [water@tnt-9-148.tscnet.net] has joined #tunes -:- SignOff dirt: #TUNES (Read error to dirt[niantic0305.mohawk.net]: EOF from client) -:- hcf [nef@207-172-225-206.s206.tnt1.pld.me.dialup.rcn.com] has joined #tunes ` 08:30am ' hey is there anyway you could elaborate on some hll stuff for me? * water/#tunes looks for the specific places he'd like elaboration upon blah the whole spec is so fscking useless as a starting point 09:00am why don't you make the whole thing an ANSI standard so you can be assured that no one will ever satisfy it? ok, down to business objects and attributes work context, however, is way too vague for me to get a handle on, unless of course you mean that it simply involves quotienting results * Fare/#Tunes is back i'm looking for a more specific take on your notions revolving around "context", "views", and "rewrite" my system can handle objects and attributes, both static and dynamic (this is all in reference to ./HLL/semantics.html for now) -:- SignOff smkl: #TUNES (brb) no, Fare is obviously not back what an ass well, i believe i have a framework idea that will work in implementing (at an abstract level) the tunes hll notion of context and what results from it 09:10am however, it won't be clear to use unless i roll a nice interface over it -:- smkl [sami@glubimox.yok.utu.fi] has joined #tunes re hello water getting useful info from Fare about tunes is about the most pointless kind of interaction with him Fare: if you manage to read this far, please elaborate on "choice" or give a url that inspired you to write that blurb on the semantics page about it hum oh, good, an actual hint of future response you mean the epsilon construct? it is to \exists as \lambda is to \forall ok so random assignment, possibly bounded ? what about the other things i mentioned? i definitely know how choice will work in slate, as long as i can get the meta-object system fully worked out you mentionned your difficulty with the notion of "context" no, with *your* notion of it ok it's too imprecise as stated 09:20am (btw add all this to the page, please) so every object comes with a declared semantics, that specifies the algebra of authorized rewrite rules on it i can support an abstraction which i *believe* is the same as your context idea, but i can't verify without clarification of your spec bs even though only a subset of this algebra would be effectively implemented so external behavior... how exactly should this relate to context? for isntance, a rational number is declared as something than can yield a couple of integers such that the ratio is conserved can you provide a non-trivial example? again bs too trivial but the underlying implementation will typically only remember one couple besides your ontology for that rational example is bogus wrt algebraic ideas you're not listening Fare *non*-trivial example, please the rational number idea can be done from too many perspectives to provide a clear example for context well, consider a game that runs on a given machine hence it's trivial in this context you want to migrate it the new machine uses different heuristics but that's ok as long as it satisfied the declared semantics for the game, too vague instead of emulating exactly the semantics of the previous instantiation no that doesn't work i.e. migration isn't about moving something with exact same bug-for-bug choice-for-choice compatible implementation you will have too throw out part of the declared semantics too often for that to be feasible it's about preserving the semantics thx for the sermon, Fare why throw out? it's precisely about the system not throwing it out unless specically asked to because of UI declarations or overall exprience, which *are* relevant to a game unless of course you refer to an abstract logical game in which case language still applies, and you will still have to throw out specifications when languages change if I migrate a quake game, I want to be able to change resolution and responsiveness this is too high-level, Fare you're talking about a huge example s/high-level/large-scale/ if you declare that some program use a RNG, and you migrate the program (you still have that asinine ping reply) you do not necessarily want it to use the same Pseudo-RNG algorithm but sometimes you do (unless of course, you explicitly declare so) 09:30am boy how much BS can you put out? in both case, the system must remember the declared semantics, all you're describing is a high-level language with a reflective implementation which is not as much as what's in your spec and you have no proof that such a scheme will work in the general case, because of expressivitiy limitations ! it might not work in "optimal" way fsck "optimal" but it will still work, if only because migrating bug-for-bug in an emulation box is still possible it won't work except in very limited cases unless you start thinking up new ideas bah this is useless you're selling snake oil on tunes.org I don't understand what you object. you're specifications on the semantics page communicate something more difficult than you imagine s/you're/your/ you need to re-write it in terms of effective programming language constructs I'll have to revise it, maybe ok pseudo-code examples would benefit greatly, at least lambda notation i think i've fulfilled your spec, then as long as i can get my meta-objects fully worked out (the whole library of them) great unfortunately, meta-objects as a field are hardly mature, so i'll be playing with some new and odd ideas btw how do you feel about my unifying scope with object structure? you know, the fact that my objects are inspected like contexts/namespaces 09:40am and can you like without an explicit lambda construct as a primitive (it's a user-level function in slate)? s/like/live/ * water/#tunes feels like he's talking to a wall hm i need to forward some language design decisions to eihrul's attention 09:50am to a curtain "curtain"? unifying scope and object structure is good well, except that scope frames usually also include information such as current continuation ok but how do you include the idea of remote access in the language? as long as lambda is _expressible_ it's ok don't care if it's not primitive ultimately you have to have a path to every object in the system, potentially (better be part of standard library, tho) right now, i'm using a directory metaphor, but this doesn't fit well hm well what do you suggest? also there's possibly a performance problem if the compiler can't optimize away objectwise access from usual scope access, if it can't merge scopes, etc yeah, lambda will definitely be part of the stdlib along with many other things ok you'd want to be able to "close" a scope, forbidding further modification to it well, i'm still concerned about the semantic structure of the language with this scoping mecahnism closing a scopt ... that's not a problem if your scopes are too open, and new definitions can be added at runtime, scope lookup becomes very expensive s/scopt/scope/ yes i know it's taken care of still... the issue of semantics and remote access of scope remote access? 10:00am do you have any suggestions as an alternative or improvement to my directory metaphor? not at the moment yes, right now it's done via cloning from remote scopes (read "cloning" as a null object as proxy) well if you consider an object system as like a directory structure... if you're within a certain object, and you want to access another object in the same scope that the current object is within, there are semantic issues in a unix shell, you would use "../the-other-object" but i'd like this scope access to fit into the language, so i make ".." and "/" part of an object's standard protocol but this is problematic, in that ".." seems to violate scoping directly do you see the problem?? (btw, "/" is not a problem since it merely places the evaluator in the object's context without evaluating it) i could make the scope structure totally graph-like, but then the orientability and understandibility of the scope structure becomes difficult to follow hum I think .. is evil it defeats many purposes of scoping such as security well, one alternative i've considered is to make the structure graph-like such as proper tail-recursion bah i can make it secure because the MO can intercept and void the message 10:10am what do you mean "graph-like"? Isn't it already? i mean not a tree for the most part if i make it graph-like, then there still must be a primitive for that closed-loop access somehow closed-loop? hm let me see if i can clarify why i think this is a problem there will be (eg) a scope with the natural numbers within it not instances of them, the actual things the only way you can use them is to access them from their creating scope s/creating/enclosing/ sure that's like opening a module well in order to clone them, you have to be able to get into that scope from anywhere in the system i'm not sure what "clone" means here 10:20am numbers have no identity (actually, you usually don't clone them, but that's irrelevant) they are pure values yes i know my cloning is self-style there might be standard repositories you create a new empty object that simply forwards all requests to the parent object except for meta-behavior in this case of course, but that doesn't affect the fundamental problem i mention there is no problem why not? the problem was to access the parent from the children there, you access the children from the parent yes accessing the children from the parent is ok yep that's what everyone does in every language yes i know this am I missing anything? i think so i think there will be cases where you will *have* to access the parent somehow from the children where why when? whether i formalize loop-like access (which is troublesome) or use a semantically-questionable slot are the two options i see right now hm an example, then let's say i have a running system where my natural numbers are in /system/math/naturals sure i'm working on something else in /toy-projects/number-games well, ./sieves perhaps ok so i'm sitting in the sieves scope, but i want some natural numbers how do i request it and how does the request get processed semantically? basically, what's the Right Way to handle this according to tunes ideas? hm either i've stumped him, or he's afk again 10:30am is anyone else listening? something like open /system/math/naturals well that's what self does or like /system/math/naturals/1 and there's a little problem with that ok, so what? you're allowing access to the root object from everywhere not exactly heh i'd like to hear the explanation, then you can explicitly rename the root and replace components in it, for objects below you explicitly rename it? how can you rename it if you can't access it within the current scope? on the other hand, if an object has already been compiled with some root, it will still use that root even if you rename your root i.e. the binding is static although if you have the right to decompile the object, you may try to instrument it to change its root ok you've lost me exactly: you can only change the root for objects _below_ your scope. no you're missing my point how do you get access to root in the first place? you have implicit access to it at compile time fuck compile time this is about semantics you can't escape the difference between source and object. grrr For if someone takes the same source and compiles on a different system, he might well obtain different results there are no "declarative" aspects to slate code because, e.g. the semantics of such standard function has changed it's emulated you're totally missing my point 10:40am I seem to be can you restate the point, please? can you show me where an existing language does it right or wrong? i'm talking about how does any object in the system get access to the top scope in a hierarchy in a way that fits into a tunes language hm your example is like that used in Self 4.0 * water/#tunes tries to think of a better example brb ok keep in mind that i'm using this scoping idea to help model distributed domains -:- Ghyll [karltk@msx-osl-15-54.ppp.cybercity.no] has joined #tunes in fact, i'd like to use it in just about any case where a set of objects is needed to be manipulated or inspected hi ghyll hi water. did yesterday's walk have any inspiring effect on you ? not really but i did relax water: that's even better. well, distributed domains are unlikely to have a "one" priviledged parent sure 10:50am and my scoping idea is very flexible due to its subjectness to meta-behavioral modification water: does that mean I can shove entries from one scope to its parent and vice versa ? well, we're working out the issues with that, but yes water: do you have a balloon ? huh? you mean a smalltalk balloon? :) I just want to mention 'name clashes', and hear it explode :) oh water: hmm. probably too deep a joke. that's not much of a problem water: how's that ? besides, what you mention is not primitive immutability is the default don't worry, though, slate can maintain many user-illusions good. btw, tonight's a beer-and-pizza session with a guy who wants to work on the tunes website and yes he groks the ideas and volunteered to help and is an experienced web-site designer wow. treat him well :) well we're friends already even so.. :) tunes.org isn't much to look at.. well we seem to share the same opinions about what's on the site yep :) 11:00am Ghyll: are you elric? heh no, you can talk to elric on irc.lightning.com Fare: is that an obscene adjective ? no, elric is the friend i was talking about water: ah. ok. Fare: no. I'm not elric :) (no, he doesn't deserve the name himself) hm he's afk right now, though hm that's irc.lightning.net , not .com lightning.net is an efnet server um i disagree 11:10am disagree what? n/m you were right 11:20am water: ur aware of http://www.liszt.com/chat/ right? yeah but i never use it 11:30am -:- ult [ult@user-38lcn4c.dialup.mindspring.com] has joined #Tunes -:- SignOff Ghyll: #TUNES (Read error to Ghyll[msx-osl-15-54.ppp.cybercity.no]: Connection reset by peer) -:- SignOff hcf: #TUNES (Ping timeout for hcf[207-172-225-206.s206.tnt1.pld.me.dialup.rcn.com]) -:- SignOff ult: #TUNES (ircII EPIC4pre2 -- Accept no limitations) -:- plonk [plonk@cpt-dial-196-30-178-47.mweb.co.za] has joined #tunes hello plonk may we do anything for you? -:- dirt [cogito@riga14.mohawk.net] has joined #tunes re dirt re re Hi water. Don't think so. Lurking and watching... :> ok another karmic theif :-] unfortunately most of the conversation today ended a little while ago indeed :) * plonk/#tunes *grimaces* anyway you can read about what we were discussing on the logs, if you wish it was more interesting than what's likely to be discussed for the next couple of hours *grin* And these logs... where are they to be found ? abi: logs logs are #tunes logs at http://www.tunes.org/files/irc * plonk/#tunes wihstles a merry tune * plonk/#tunes whistles too anyway, check out the website and the slate stuff, please water: why? did you just drop some acid? heh no, but i was planning on going out for a bit soon ahh enjoy :-] i'll be back at about 6pm PST with another fellow elric so we can discuss tunes web design i also have stuff to communicate with eihrul about slate 01:00pm -:- ult [ult@user-38lc6f7.dialup.mindspring.com] has joined #Tunes -:- SignOff ult: #TUNES (Leaving) * plonk/#tunes thinks you guys are a bunch of bloody nutters. Makes for a change. 01:10pm -:- ult [ult@user-38lc6bu.dialup.mindspring.com] has joined #Tunes * plonk/#tunes wanders off into the mailing list archives never to be seen again -:- plonk [plonk@cpt-dial-196-30-178-47.mweb.co.za] has left #tunes [] -:- hcf [nef@207-172-225-163.s163.tnt1.pld.me.dialup.rcn.com] has joined #tunes -:- SignOff ult: #TUNES (ircII EPIC4pre2 -- Accept no limitations) -:- mathias [math@france2.hemmet.chalmers.se] has joined #tunes -:- mathias [math@france2.hemmet.chalmers.se] has left #tunes [] -:- webHOGlogOFF [fdkg@adsl-63-203-156-101.dsl.lsan03.pacbell.net] has joined #tunes hello -:- webHOGlogOFF [fdkg@adsl-63-203-156-101.dsl.lsan03.pacbell.net] has left #tunes [] 02:20pm -:- eihrul [lee@usr5-ppp182.lvdi.net] has joined #tunes -:- Kyle_L [kyle@cr168790-a.nmkt1.on.wave.home.com] has joined #Tunes lo gakuk gakuk! 02:50pm -:- SignOff smoke: #TUNES (One day sheep will rule the world) -:- SignOff water: #TUNES (Ping timeout for water[tnt-9-148.tscnet.net]) -:- tcn [Tom@cci-209150250042.clarityconnect.net] has joined #tunes tcn! -:- SignOff tcn: #TUNES (Ping timeout for tcn[cci-209150250042.clarityconnect.net]) 03:40pm -:- tcn [Tom@cci-209150250053.clarityconnect.net] has joined #tunes ok, i'm really here now great what news of retro3? or is it retro4? what's stopping you? i'm thinking of working on it some more you know JonT@us.ibm.com? no someone working on L4 ? L4? never heard of it, not sure.. Jon Tidswell Advanced OS Technology Group / Sawmill Linux Project (thank you, google) apparently, he hacked GRUB yes, some of the L4 people worked there we got talking about a scheme for partly compile-time/runtime protection, which would fit nicely with the persistent object store I have in mind, and with forth.. mind if I run it by you? go ahead! 03:50pm ok, all the objects will be size 2^N, and pointers will be the segment+offset type the secure versions of the object-access words will simply AND the offset with (1< I hope there's a logical layer in-between that remembers the actual size of objects yeah, that's to be done at compile-time is the N variable? yes if so, how do you guess the "right" N ? bibop? umm bibop? bit-op? mmmbop BIg Bag of Pages well, if an object is allocated as 13 bytes, 16 will be allocated.. round up to the nearest power of two abi: bibop is BIg Bag of Pages, a memory allocation trick whereby you retrieve an object's size by a lookup on high-order bits of its address does it require paging hardware? tcn: what about "administrative bits" for an object? Are they to be out-of-band? no, bibop does not _require_ paging hardware (although paging hardware sure helps) I remember that old emacsen used kind of bibop by using the stripped high 8-bit of an object's address as a type tag (stripped by the hardware on a 68000, by the paging setup on other beasts; or by a manual AND on other machines) indeed, abuse of bibop can cause bloat in page tables I don't care for that idea.. (because of a sparse address space) 04:00pm tcn: that's ok i'd rather keep track of object name/size/location/flags in a dictionary or something http://www.xanalys.com/software_tools/mm/glossary/b.html#bibop abi: bibop is also at http://www.xanalys.com/software_tools/mm/glossary/b.html#bibop okay, Fare. tcn: you can end up with bloat in dictionary, too yeah, not dictionary, just a table of unnamed objects (a dictionary looks mostly like a reverse page table) -:- I440r [mark4@purplecoder.com] has joined #tunes hi yall :) lo so everyone here is a fort coder or what... anyway, the AND (1< bummer! we're just dreamers in here fort? tcn: am I dumb. (1< yeah tcn: of course, the AND doesn't _check_ for overflow, and you might end up clobbering stuff that shouldn't (which might be particularly bad in some cases= right, but it ensures that only the given object gets clobbered that may or may not be acceptable, depending on the rest of the system. you think I could get away with that? in some cases, yes not in all cases, tho I mean, it's a truely nice hack do checks before u do the (1< but I'm not sure it buys as much worth as it cost what values of n would cause errors ? well, if data from this object isn't allowed to be used for unprotected memory access, I think it's ok i440r: 2^N is the size of the object being accessed aha so this just generats an address mask then... a test&jump with (-1 << n) would buy more; but then a cmp with the right size costs as much tcn: what you save is a usually not taken conditional jump a test&jump might be acceptable -1 >> (bits -n) 04:10pm what you lose is precision in the testing, and hard constraint in the memory allocation it'll help if I explain the goal: your trick might still be used for the sake of isolation between logical processes I want the ability to run untrusted Forth programs without affecting other programs, without using hardware protection, as fast as possible. but frankly, the last time I thought about this trick, I concluded that it didn't bring much in the general case it needs to be tested tcn: yes, for software protection, it might help tcn: only if it doesn't mess with your type system, tho the way it works is, the untrusted code is received as Forth source, compiled against a dictionary with secure versions of @ ! etc. i.e. only in cases the AND in offset will not lead to confusing a pointer with data erh,,,what about c@ and c! oh, the system won't know about types i440: I said etc.!! if you don't have types, how can you decide the N at compile-time??? oh :) any memory altering code in other words and if N is decided at runtime, then your system becomes very expensive the object-access words will ASSUME anything passed to them is an object, they just won't assume it's valid. tcn: again, if N is variable, you have got a problem N is compile-time, but of course you can compile something anytime in Forth hrm.... are we talking about amulti tasking forth kernel here ? with task memory protection between tasks ? i440: not necessarily multitasking, just a way to run untrusted code safely hrm like Java without lameness :) like ring 3 but not realy tcn: sure sure. The problem is if field 2 is a pointer to a object of size 16, and by modifying field 4098, I get it to unsafely point to an object of size 8, then I can screw your system because when accessing the illegal child, you'll check for size 16 when you should be checking for size 8. your offset AND only works if all members in the object has same type hmm, yeah.. it's not much use if you can't specify the segment at runtime tcn is this a protected model or a segmented modle (assuming x86) are u using seg/off ? 04:20pm I440: this is a software-protected model not that kind of segment/offset or selectors' oh hrm I440: it's all about getting rid of coarse-grained hardware protection i gotta reboot, just compiled kernel more like "object address" + "offset into object" 'k ok still flat addresses tho is it x86 or 68k or any.... generic, but I'm using a 386+ in protected mode, ring 0 Note that if you use a LISP-like flat object encoding, you do have the property that all objects have same "type". ok.... brb yep -:- SignOff I440r: #TUNES ([x]chat) tcn: running in ring 0 induces a problem by lack of separate interrupt stack my idea of an object is "a chunk of memory" not having a separate interrupt stack is horrible (well, I guess that by having "task gates" for interrupts, you can survive) why is that so horrible? tcn: "a chunk of memory" is what most everyone uses tcn: horrible because you have to watch out for overflow tcn: and of course, the hardware overflow detection (hitting unmapped page) won't work for the stack, since it'll precisely try to allocate stuff on the stack for the sake of the interrupt (again, interrupt task gates should be fine) umm.. paging is OFF oh well, then it's even worse how do you detect&handle stack overflow? i'm using the lowest common denominator or do you just crash in case of memory overflow? -:- I440r [mark4@purplecoder.com] has joined #tunes argh 2.3.99-pre6 is a bitch :P haha of course, compile-time-optimized checking can help a lot Freebsd 4.0 is great! but it's not unexpensive either What about OpenBSD 2.7 ? got as far as "uncompressing the kernel" "ok" and hung :P brb * Fare/#Tunes goes for a shower return stack overflow could ruin everything :( 04:30pm how do u plan to check upp and lower memory limits for access ? -:- SignOff hcf: #TUNES (Leaving) >>> I440r [mark4@purplecoder.com] requested PING 958505565 41666 from #tunes 'segment' specifies the lower address, N is the size so it's object-based protection ok. n = offset. u need to compare offset with a table of sizez ("object" being a 2^N sized chunk of memory) it stillmeans a table lookup realy... fraid so anyway, any time a program writes outside its own space its a bug. the source should be sent back to the author for editing :P hmm.. i dont think run time should be doing these kinds of checks... i dont even think COMPILE time should only for untrusted code! 04:40pm which is defined as ? "anything I didnt write" ? anything I don't trust if the code is THAT suspect then the only thing i can say is "dont run it" or run it through your debugger and LOOK see well first of all, require it to be distributed in source (or tokenized code) run it through a "safe compiler" run it through an auditing compiler.. how about writing an auditing debugger that will halt on the offending piece of code too complicated :) heheheh I have a thought.. brb trying to reboot to 2.3.99 again yes ? use one 32-bit cell, say, 16 bits as an "object ID", 16 as offset.. what a pain in the ass and ?.... hehehe :) yup :) brb go reboot :) -:- SignOff I440r: #TUNES ([BX] Reserve your copy of BitchX-1.0c16 for the Sony Playstation today!) -:- I440r [mark4@purplecoder.com] has joined #tunes grrrr no luck? it uncompresses the kernel then hangs so immaking changes in teh menuconfig ONE AT A TIME if that dont fix it i put it back and make another change heh, you want a GOOD linux kernel go back a few years... no. insecure find one that was actually written by Linus 04:50pm i thought only linux released kernels he's been too busy to keep it under control argh why doesnt he jump in and take control again then i'd be bored if I was him i wanna rewrite linux kernel in forth :) 1/10th teh size and 23498756238497562 * faster :P I440r: unstable kernel is unstable yea i know. i also run unstable (frozen) potato tcn: so where is retro3? What's working, what isn't? how big is 2.3.99 anyway, a 20 meg tgz? don't forget that a good deal of the 20meg is ports and drivers right.. totally disorganized erm dunno i didnt keep the bz2 you want one, you get 'em all ok.. retro3... i never understood thjat he should release kernel-2.2.15-i386 -:- SignOff dirt: #TUNES (Read error to dirt[riga14.mohawk.net]: EOF from client) and kernel-2.2.14-69k etc I1440r: rmmm, language isn't going to necessarily make it as fast as better algorithms, sadly :) 68k even ei. any non trivialapplication written in forth is usually 50% teh size of teh equiv asm tho yes so? doesn't mean its faster faster loading from disk! i NEVER optimise my code to teh exclusion of all else, i usualy optimise the algorithms forth runs at near asm speed c doesnt and c is fat i dont CARE what optimisations your compiler does c is FAT for some reason, i think your opinion is a little unfounded :) and stack intensive heh i doubt any forth implementation will touch commercial C compilers push parameter push parameter call function open local stack frame eihrul, ever look GCC's assembly output? do function clean local stack frame return clean parameters tcn: yep, and its very good yukk eihrul: well it's bloated compared to forth I1440r: uh, no compiler actually generates code that lame with heavy optimization its no where near as good as msvc++ asm output I1440r: for register plentiful architectures, arguments are passed in registers, stacks are optimized away, etc inlining is done all over the place, etc, etc x86 is register impared Sam Falvo did that in forth sure, i know he did said it was easy :) but the fact is, C compilers will generate better code :) simply because of the amount of effort that has been invested in making them generate better code... i will never trust teh output of an optimising compiler what did kc5tja do in forth? you dont know WTF it produced C loses its advantage when you only pass 0-3 parameters and write lots ofs small functions.. I1440r: better code than you can some of the time tcn: well, that's because you don't write C that way yeah, C encourages writing of big spaghetti-code functions so C encourages bad habits * eihrul/#tunes nods. haha argh. yea.. in c you write 60 page functions of if/and/but loops nested to the Nth degree... and it's very good at optimizing them Fare: sure, but they're fast big spaghetti-code functions they get you to hell real fast and dont say its not done because i just spent teh last 8 months wading through some lame ass code that was WORSE than i just described :) fare: Sam wrote a thing that puts the top 5 or 6 cells in registers. Fare: sure, but they execute fast! 05:00pm you have no control over teh output of teh compiler. Fare: i'm not arguing that C is in any way a good language... just that C compilers are usually very good top 5 or 6 cells in registers is bad, unless the compilers handles register renaming the compiler does everything for you and you have no control no thanx uh, so? that's what annotations are for else, the least push will mean 5 or 6 mov the compiler, unfortunately, will do a much better job than you can given the amount of time it puts in... * eihrul/#tunes is of the humans-shouldn't-be-doing-register-allocation regime. ei. thats another falacy, c does not have a fast development cycle. just because any idiot can code it... unless you have a good register-allocating compiler, you shouldn't cache more than 1 or 2 stack items I1440r: i never said that! Ibanez 440 radius (my nick) just so u know :) I1440r: what i said was, regardless of compiler, you can't beat a compiler for the optimizations it does in the time it does... end of story! i dont argue that one, i just say its not as good a way of doing things. why not? it lets you concentrate on the task instead of how its done... is that wrong? because you dont know WTF the compiler did. does it matter? have you ever tried to debug heavilly optimised code ? a compiler's job is to preserve the semantics of the program so long as it does that, i'm happy! I1440r: uh, most compilers have options to generate debuggable code have you ever tried to modify hand-optimized code? yes my own and its not fun it's easier to optimize for a processor than a compiler AND processor it usually requires rewrites and anyone elses tcn: the compiler is supposed to optimize for the processor, not you yes no. the compiler is supposed to take my source but I find myself wanting to know what the compiler's doing and I can't find out. and output executable code no other function * eihrul/#tunes shrugs... in your mind. but unfortunately, i don't like hunting my own food i have better things to do :) well anyway no you like someone else to do it for you well dont complain tome when your eating rat :) blah blah. eh? so? again i ask: why should a human be doing code optimizations? why shouldnt he because a computer can do it for you! if you arent cabable of writing GOOD readable well optimised code you should not be coding.(applies to 90% of all c coders) uh, that's rather elitist... no not elitist. some people want to spend their time getting things done 3l33tist not optimizing how they're done Fare: help me here :) i dont optimise my code if it works, its small, its fast and its readable and i have control over what teh compiler produces then im happy eihrul: its a de facto argument, you need not help. i dont care about saving 1 cycle off a 50 itteration loop that gets executed once per week I1440r: what does it matter though? if the code does what it's supposed to! im a control freek. i do not like teh compiler to do checks or optimisations or plug code in behind my back or remove something IT feels is deadwood what i write is what i want. i dont care if its not teh greatest code in teh world or taht teh compiler can "optimise it" another thing, optimizing compilers are SLOW yes i can metacompile my hack of fpc on a 486-dx266 in 3 seconds thats a dx-2/66 yeah, and I bet FPC isn't even optimized not a 266mhz it isnt tho... 05:10pm my version of it is a bit better than tom zimmers tomzimmer is a lamer :P heh tcn: optimizing humans are slower who cares about fscking optimisations -:- coreyr [coreyr@net255ip95.parklink.com] has left #tunes [yep] people who value time :) well hum. unoptimized Forth outperforms optimized VB+SQL anyday Let's not confuse things tcn: VB+SQL is meant to provide persistence forth usually doesn't it could VB ought to provide some safety, but let's forget about safety and security with VB brb tcn: it could, but it doesn't yet well, ok, the RPL dialect on HP28 does thanks to battery-backed-up RAM neway... i gtg :) l8er ppl.... ./idle mode tcn: if you really want safety without h/w protection, then you need type-checking can be runtime or compiletime (or a combination) 05:20pm back that could work, if the types don't get in the way too much typed Forth? hey fare.. you were wondering about Retro 05:30pm hi all hey I read over the stuff wrt 2^N object sizes. I like that idea. I was calling them Bit Fields. What were the issues with 2^N object sizes? Dictionary? none really just round up to the nearest power of two.. really simplifies memory management sure, but for large N And that rounding is best done at compile-time. What is wrong with large N? Any object that big is probably a stream, and should be broken into its logical objects. * tcn/#tunes nods there's an average 25% wasted space per object if they're all randomly sized I agreee that maping objects to bitfields is a waste of some space. That is why I am using a database paradigm, mapping sets of objects to tables, and those tables to bitfields. I pack many similar objects into one bitfield. right what I'm sure of is this persistent object store. It's like Forth's blocks, except the blocks are size 2^N instead of 2^10. 05:40pm I am looking for a term. I call it a "delta-class" right now. If you consider two classes, one inheriting from another, you can inspect the ADDITIONAL fields declared in the inheriter. Now, if we consider these additional fields as a class defintion on its own, what is its name? -:- lar1 [larman@adsl-63-203-74-28.dsl.snfc21.pacbell.net] has joined #tunes a trust-fund baby? I use this concept to define the table schemas that store the fields in the database. Descendant. The decendent makes reference to the inheritee. oh I see We will say B inherites from A. C is defined so that DEF(C)=DEF(B)-DEF(A) where DEF() is a function that lists the fields defined on the class. We say B is a decendent of A. What is a good name for C? the "difference"? :) delta, remainder, addend.. thus the word delta? -:- lar2 [larman@adsl-63-203-74-28.dsl.snfc21.pacbell.net] has joined #tunes delta's fine thanks. Words are important to me. -:- SignOff lar1: #TUNES (Read error to lar1[adsl-63-203-74-28.dsl.snfc21.pacbell.net]: Connection reset by peer) -:- lar2 is now known as lar1 unless you come up with a metaphor for your whole system mess. -:- Kyle_La [kyle@cr168790-a.nmkt1.on.wave.home.com] has joined #Tunes -:- SignOff Kyle_L: #TUNES (Read error to Kyle_L[cr168790-a.nmkt1.on.wave.home.com]: Connection reset by peer) -:- SignOff Kyle_La: #TUNES (Leaving) -:- Kyle_L [kyle@cr168790-a.nmkt1.on.wave.home.com] has joined #Tunes MMmmm -:- coreyr [coreyr@net255ip95.parklink.com] has joined #tunes 05:50pm Fare: hey... what was the title of the sole book on garbage collection? :) where the hell is fare anyway? not here, apparently -:- Wonkie [Pony_Rider@gdf123.nf.sympatico.ca] has joined #tunes -:- Wonkie [Pony_Rider@gdf123.nf.sympatico.ca] has left #tunes [] 06:00pm -:- ult [ult@user-38lc6e4.dialup.mindspring.com] has joined #Tunes hmm 06:10pm later -:- SignOff tcn: #TUNES (ircII EPIC4-2000 -- Accept no limitations) 06:20pm -:- hcf [nef@207-172-225-181.s181.tnt1.pld.me.dialup.rcn.com] has joined #tunes -:- SignOff Kyle_L: #TUNES (Leaving) -:- SignOff lar1: #TUNES (Read error to lar1[adsl-63-203-74-28.dsl.snfc21.pacbell.net]: Connection reset by peer) -:- SignOff I440r: #TUNES (Ping timeout for I440r[purplecoder.com]) -:- Closing Link: TUNES[bespin.dhs.org] by devlin.openprojects.net (Ping timeout for TUNES[bespin.dhs.org]) -:- Connection closed from irc.us.openprojects.net: Success -:- Use /Server to connect to a server -:- Connecting to port 6667 of server irc.us.openprojects.net [refnum 0] -:- BitchX+Deb1an: For more information about BitchX type /about -:- Welcome to the Internet Relay Network TUNES (from tolkien.openprojects.net) -:- Your host is tolkien.openprojects.net, running version u2.10.05.18.(ipcheck4-5) (from tolkien.openprojects.net) -:- This server was cobbled together Wed Apr 28 1999 at 12 02:19 EDT(from tolkien.openprojects.net) -:- tolkien.openprojects.net u2.10.05.18.(ipcheck4-5) dioswkfcg biklmnopstv -:- [local users on irc(8)] 1% -:- [global users on irc(473)] 47% -:- [invisible users on irc(541)] 53% -:- [ircops on irc(19)] 2% -:- [total users on irc(1014)] -:- [unknown connections(0)] -:- [total servers on irc(31)] (avg. 32 users per server) -:- [total channels created(401)] (avg. 2 users per channel) !tolkien.openprojects.net Highest connection count: 18 (15 clients) !tolkien.openprojects.net Welcome to Open Projects! You are on 5 ca 1(2) ft 14(14) tr. -:- Mode change [+f] for user TUNES -:- Mode change [+iws] for user TUNES -:- JOIN activated by "TUNES #tunes tunes@bespin.dhs.org " -:- TUNES [tunes@bespin.dhs.org] has joined #tunes -:- Topic for #TUNES: TUNES, Free Reflective Computing System: http://www.tunes.org/ || Slate Language: http://www.tunes.org/~water/slate-home.html -:- topic set by hcf [Mon May 15 22:57:30 2000] -:- [Users(#tunes:10)] [ TUNES ] [ lar2 ] [ hcf ] [ ult ] [ coreyr ] [ eihrul ] [ smkl ] [ thomas ] [ abi ] [ Fare ] -:- lar2 is now known as -:- Channel #tunes was created at Sun Feb 28 08:48:06 1999 -:- I440r [mark4@purplecoder.com] has joined #tunes -:- BitchX+Deb1an: Join to #tunes was synced in 7.222 secs!! -:- Mode change [-ws] for user TUNES -:- coreyr [coreyr@net255ip95.parklink.com] has joined #tunes -:- Kyle_L [kyle@cr168790-a.nmkt1.on.wave.home.com] has joined #Tunes -:- SignOff Kyle_L: #TUNES (Leaving) -:- AcidReign [wade@ruby.cqu.EDU.AU] has joined #tunes -:- SignOff Fare: #TUNES (Ping timeout for Fare[lantier.enst.fr]) -:- Fare [rideaufr@lantier.enst.fr] has joined #Tunes -:- SignOff smkl: #TUNES (Ping timeout for smkl[glubimox.yok.utu.fi]) -:- smkl [sami@glubimox.yok.utu.fi] has joined #tunes -:- NetSplit: devlin.openprojects.net split from sterling.openprojects.net [09:20pm] -:- BitchX+Deb1an: Press Ctrl-F to see who left Ctrl-E to change to [devlin.openprojects.net] -:- Netjoined: devlin.openprojects.net sterling.openprojects.net -:- lar1 [larman@adsl-63-203-74-28.dsl.snfc21.pacbell.net] has joined #tunes -:- Netjoined: lackey.openprojects.net irc.linux.com -:- AcidReign [wade@ruby.cqu.EDU.AU] has joined #tunes -:- SignOff ult: #TUNES (Leaving) -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp182.lvdi.net]) -:- eihrul [lee@usr5-ppp113.lvdi.net] has joined #tunes -:- SignOff lar1: #TUNES (:)) -:- water [eatme@206.125.79.24] has joined #tunes hey * water/#tunes finally could connect back up sorry i'm a bit late 10:40pm is anyone still alive? * water/#tunes slaps everyone in the channel with a big catch of trout damn it * hcf/#tunes tosses a tuna at water oh good someone's alive? eihrul: chime in water: u mist tcn again hm well, if i weren't a bit depressed now at losing this evening to a bunch of network problems that elric was stressing about fixing, i'd be happy to talk about some ideas i had but i really don't care atm hcf: what do you think of today's interchanges here? yeah i noticed -:- NetSplit: forward.openprojects.net split from sterling.openprojects.net [10:47pm] -:- BitchX+Deb1an: Press Ctrl-F to see who left Ctrl-E to change to [forward.openprojects.net] but that other forth fellow found him -:- Netjoined: forward.openprojects.net sterling.openprojects.net -:- I440r [mark4@purplecoder.com] has joined #tunes -:- smkl [sami@glubimox.yok.utu.fi] has joined #tunes it's not a problem... i'm concentrating on locating Tril specifically water: in bed, probably thx fare :P what do u need tril for? web site discussion * Fare/#Tunes just burnt around $300 in eBay goods 10:50pm (used MacIntosh parts) anyway (to put a LispM inside) just ask me if i give a f***. go ahead do you give a f f no! so are you going to update your HLL specs blurbs? the log cares eventually lol in another 5 years, then? did i just touch a *nerve*? yes, but I don't know which well, this is elric's computer i'm using in his room, so i should let him get some sleep so i'll see you all tomorrow cu fu -:- SignOff water: #TUNES (Leaving) -:- smoke [smoke@16dyn28.delft.casema.net] has joined #tunes 11:00pm hoy smkl oops hoy smoke 11:10pm -:- SignOff hcf: #TUNES (Read error to hcf[207-172-225-181.s181.tnt1.pld.me.dialup.rcn.com]: Connection reset by peer) the waters are turbulent today... 11:30pm not only today 11:40pm [msg(TUNES)] newlog 2000.0517 IRC log ended Wed May 17 00:00:01 2000