00:00:00 --- log: started forth/06.11.08 02:24:41 --- quit: JasonWoof ("off to bed") 02:49:19 --- quit: arke (Read error: 110 (Connection timed out)) 03:36:20 --- join: arke (i=Chris@x275.vpn.hrz.tu-darmstadt.de) joined #forth 03:36:20 --- mode: ChanServ set +o arke 03:53:32 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 03:57:51 --- quit: virl (Remote closed the connection) 04:00:29 --- quit: arke (Read error: 110 (Connection timed out)) 05:23:37 --- join: arke (i=Chris@x350.vpn.hrz.tu-darmstadt.de) joined #forth 05:23:37 --- mode: ChanServ set +o arke 05:25:30 --- nick: TreyB_ -> TreyB 06:27:35 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #forth 06:28:07 Good morning. 06:30:16 --- nick: Raystm2 -> nanstm 06:39:51 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:49:36 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 06:49:37 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 06:50:08 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 07:12:43 --- join: timlarson__ (n=timlarso@65.116.199.19) joined #forth 07:13:37 --- quit: timlarson_ (Read error: 104 (Connection reset by peer)) 07:25:19 --- quit: arke (Read error: 110 (Connection timed out)) 07:31:04 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 07:52:48 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 07:54:15 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 07:54:19 --- quit: cmeme (Remote closed the connection) 07:55:20 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 08:04:26 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 08:08:28 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #forth 08:47:55 --- quit: virl (Remote closed the connection) 09:01:23 --- quit: madwork (Read error: 104 (Connection reset by peer)) 09:22:08 --- join: arke (n=Chris@pD9E06186.dip.t-dialin.net) joined #forth 09:22:08 --- mode: ChanServ set +o arke 10:06:28 --- join: azekeprofit (i=azekePro@82.200.250.87) joined #forth 10:06:45 --- part: azekeprofit left #forth 10:18:19 --- join: madwork (n=foo@204.138.110.15) joined #forth 10:38:03 --- join: snoopy_1611 (i=snoopy_1@dslb-084-058-174-036.pools.arcor-ip.net) joined #forth 10:46:34 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 10:46:42 --- nick: snoopy_1611 -> Snoopy42 10:47:30 --- join: Crest (n=crest@p54894FBF.dip.t-dialin.net) joined #forth 11:28:09 --- quit: segher (Nick collision from services.) 11:28:22 --- join: segher (n=segher@dslb-084-056-195-022.pools.arcor-ip.net) joined #forth 11:37:22 --- join: zpg (n=user@user-514d7663.l2.c2.dsl.pol.co.uk) joined #forth 11:37:40 Hi zpg. 11:37:56 Hey guys. 11:38:23 hi Quartus. :) 11:39:00 I didn't get much done last night. Eating nuts caused me a pretty bad toothache, I went to bed early. 11:39:14 Nasty. 11:40:53 Was my gums really. 11:41:13 But it was hard to concentrate. 11:41:25 Baking soda. 11:42:16 Wet your toothbrush, dip it in baking soda, brush with that for a couple of weeks. It's a peculiar taste but not intolerable. Does wonders for the gums. 11:42:51 Well, don't brush for a couple of weeks straight, but you know what I mean. ;) 11:43:11 Sure, I've done it before, still a good tip. Thanks 11:43:45 Focus on brushing the gums themselves. 11:43:53 ya. 11:43:56 Dental pain is unpleasant stuff. 11:44:40 It's the worst. I don't have a great dental plan, so I've signed up at the Baylor Dental Collage for much work. They call, ya gotta run. 11:46:02 * Ray_work needs to move to Canada and retire with decent coverage healthcare. 11:51:28 I think I might need Palm OS 4(or better) to get the keyboard to do the tab thing. 11:51:56 jcw recently upgraded his, I recommend you consult with him for the process. 12:09:59 hi 12:10:25 hey 12:10:30 how's it going Quartus? 12:10:34 hey Ray_work 12:12:32 Hi zpg, good day? 12:13:36 Going ok. You? 12:14:58 * Ray_work lost my email when I started an additional Palm desktop client on my work computer. :( 12:16:59 yeah not bad thanks. 12:31:10 additional client? 12:39:23 --- join: JasonWoof (n=jason@unaffiliated/herkamire) joined #forth 12:39:23 --- mode: ChanServ set +o JasonWoof 12:44:54 --- join: erider (n=erider@unaffiliated/erider) joined #forth 12:45:39 hi all 12:45:49 hi 12:47:42 how are things 12:48:48 ok. You? 12:50:01 good I'm on page 18 12:57:42 Enjoying it? 13:00:28 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 13:00:30 --- mode: ChanServ set +o slava 13:00:43 Quartus: You obviously read the wrong Forth manual ! 13:01:04 Yes, I am all fools!!! 13:02:23 Let me tell you, my imaginary Forth runs in half the space and at twice the speed of werty's imaginary Forth! 13:02:38 but does it integrate lotus-123? LUDDITE! 13:02:54 It does, it can run a hundred simultaneous copies and destroy all who come into its path. 13:04:23 Slava: Factor takes elements Forth + Joy + Slate + Lisp? Any others you'd add? 13:04:47 i think that's about right 13:05:36 I was drawing up a diagram showing the language evolution of Forth for my book, decided to make one with all the major languages from the last 50 years. 13:06:05 most such diagrams are greatly inaccurate 13:06:10 eg, they'll all converge to java 13:06:22 Not this one; I think I did pretty well. 13:06:34 Java has four influences -- Objective C, SmallTalk, C++, and Eiffel. 13:06:46 sounds reasonable 13:07:03 The worst offender is Python. Nine influences. 13:08:31 There are no others with more than 4 influences, unless you count Ruby given that it's influenced by Python. 13:08:53 Curiously, all the languages I dislike have four or more influences (not to knock Factor, as I've never used it.) 13:09:34 C#, C++, Ruby, Java, Python, and Perl all have four influences. 13:14:35 I'm on the fence as regards Perl. I have it influenced by Pascal, C, Lisp, and Awk. 13:14:55 Possibly I could leave out C, as it comes by that of Awk. 13:15:08 i hate perl 13:15:25 I find it useful, but it suffers of a lack of orthagonality and too damned much stuff. 13:15:56 I certainly don't find it elegant. 13:19:02 Quartus would you use icon in place of Awk? 13:19:31 erider, I've had very little experience with Icon. At one time I used SNOBOL4. Awk is more useful to me than SNOBOL4. 13:19:43 (Icon is descended from SNOBOL4). 13:20:53 hmm Ok I thought was a good language for text manipulations 13:21:07 what's wrong with having 9 influences? 13:21:30 s/was/it was 13:21:53 zpg, it suggests unnecessary complexity. At any rate, wrong or right, it's curious that the ones I don't like all have a common characteristic in this taxonomy. 13:22:48 Quite accidental; I drew the list of influences from the community of followers. 13:22:53 * zpg nods 13:23:08 yeah, but if language X has 20 influences and language Y only has one, language X, can you really say Y is simpler than X? 13:23:15 i see where you're coming from, and python clearly displays multiple influences. but that isn't necessarily a bad thing. 13:23:36 slava, you can probably say that. 13:23:54 zpg, I don't know if the multiple influences are why I don't like those languages, but the correlation is curious. 13:24:03 i'm just reading Yet Another Python Thread on usenet. the majority of posters seem to need an enema. 13:24:57 lua reminds me a lot of a simpler python 13:25:14 zpg: have you used lua at all 13:25:20 lua has a fatal flaw, all numbers are floats 13:25:35 incidentally Quartus, i've been working with immediate, postpone and sliteral. worked dreams in QF. however, the code i ported to gforth resulted in a callback, which was a little nasty. 13:26:05 hmm slava why would you say thats a flaw? 13:26:34 i'm parsing, modifying the string, then returning that. i'll try and abstract this method and see if it works. if so, i'll know where to look. if not, i'll paste the code either tonight or tomorrow, perhaps we can go over it. 13:26:35 it seems that is gives you a wide range of numbers 13:26:35 a callback, jpg? 13:26:41 sorry. zpg? 13:26:44 because on a 64-bit system you cannot represent every integer as a float 13:26:50 a 32-bit int fits inside a 64-bit float 13:27:02 so you get even less than machine arithmetic 13:27:02 callback meaning throw, sorry 13:27:16 my brain's a little fried this evening. i blame the climate. 13:27:27 i don't think a language's math operators should be closely tied to the machine's idea of numbers 13:27:27 * erider thinks that interesting 13:27:33 thow translated mentally as walkback and mistyped as callback. 13:27:36 machine arithmetic is an optimization, doesn't have to be the default 13:27:38 that's the way the crumble cookies. 13:27:46 i like using arbitrary precision integers and exact fractions 13:27:49 I heard that on x86 32-bit ints don't map directly to floats 13:27:56 that's right 13:28:04 a 32-bit float can only store about 24 bits of integer 13:28:08 * zpg tea++ 13:28:10 eg that either 5 or 6 (I forget which) didn't have an exact float representation 13:28:14 but a 64-bit float can represent every 32-bit int exactly 13:28:25 no, JasonWoof, a 64-bit float has a 56 bit mantissa 13:28:42 zpg, happy to go over it. 13:28:44 oh, it's only the smaller floats. 13:28:47 that sounds fine 13:28:48 yes 13:28:57 there are lots of 32-bit ints which don't fit in a 32-bit float, much more than 5 or 6 13:29:05 it just seems funny that such a small int like 5 cannot be represented exactly 13:29:12 5 can be represented exactly 13:29:16 6 then? 13:29:21 just something I heard 13:29:21 ditto 13:29:30 0.4 cannot be represented exactly as a float 13:29:30 I don't do x86 much 13:29:31 --- quit: timlarson__ ("Leaving") 13:29:36 x86 floats are ieee 13:29:39 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 13:29:40 so this is also true of powerpc, etc 13:29:58 0.1 too, as I recall. 13:30:07 the only difference with floats between ppc and x86 is a rounding error in vor 13:30:16 No, 0.1 should be fine. 13:30:19 on x86 the same float value sometimes rounds down and sometimes up 13:30:25 but on PPC it always rounds the same way 13:30:32 the closest fraction to 1/10 which is an exact float is 13421773/134217728 13:30:35 (this is in float->int conversion) 13:30:42 JasonWoof, you can specify rounding modes. The defaults may be differeing. 13:30:57 slava, ok. So I recalled correctly. 13:31:16 hmm... actually I don't know that it was doing float->int 13:31:30 might have been a: if(my_float < 100) sort of thing 13:31:38 slava: so precision is the reasoning behind the flaw 13:32:00 yeah, but if you're going to have fixed precision math, it should at least be as precise as machine integres 13:32:03 lua on amd64 fails this 13:32:08 I fixed it by doing essentially: if(my_float < 99.99) 13:32:31 working with round-off errors is a science 13:32:58 I see 13:34:14 in java, array indices are 32-bit ints 13:34:24 the binary search algorithm in the standard library had a bug in it until fairly recently 13:34:28 it's good to learn this stuff 13:34:30 it was doing int mid = (lo + hi) / 2; 13:34:40 the binary search would fail with arrays having more than 1 billion elements 13:34:47 because mid would become negative 13:35:10 nobody came across the bug simply because nobody did a binary search on such a large array 13:35:36 I don't have that much memorry 13:36:27 this bug would have been very very hard to find if it happened way less often 13:36:38 as it was it seemed to happen on my x86 laptop every 10 minutes or so 13:36:55 if it were every 2 hours we probably never would have found it 13:36:59 I don't play it on x86 much 13:37:18 but as it was I was able to run the game in the debugger until it crashed, and find out why 13:40:35 on the other hand i'll admit arbitrary precision arithmetic is tricky 13:40:38 especially if you want good performnace 13:40:50 ie, optimizing the common case where the operands fit in registers and don't need to be boxed on the heap 13:41:58 One approach is to use floats until the loss of precision is important, then switch to arbitrary precision. 14:15:05 --- join: jackokring (n=jackokri@static-195-248-105-144.adsl.hotchilli.net) joined #forth 14:19:10 Quartus: i believe this problem originates elsewhere in my code. checking at the moment. 14:19:20 k 14:20:47 --- join: vatic (n=chatzill@pool-162-84-178-20.ny5030.east.verizon.net) joined #forth 14:22:42 hi vatic 14:22:53 zpg: hi! 14:23:11 Hey. 14:23:50 vatic: how's it going? 14:25:08 hey all. going ok. and your selfs? 14:25:17 Struggling along as usual. 14:30:39 problem solved! 14:30:44 so well thanks 14:32:54 :) 14:33:28 incremental my friend. 14:33:30 incremental. 14:33:33 now, more tea :) 14:48:14 --- quit: jackokring (Read error: 110 (Connection timed out)) 14:49:48 vatic: how's the PIC stuff going? 14:51:50 zpg: I've not done a thing! 14:52:24 did you bring a note? 14:53:07 Quartus: my dog ate the PIC... :-( 14:53:27 Heh 14:57:58 :) 15:10:02 zpg, what avenues have you been exploring? 15:10:53 playing with strings, if you're referring to forth. took a break when my code worked in QF and didn't in gforth. had a minor breakdown, tried again with fresh eyes tonight. 15:10:59 yourself? working on the book? 15:11:27 yes, banging away at it. Have to stop for a bit and make some money. 15:11:29 (i'm also interested in tinkering with forth + pics now, given recent discussion and usenet posts -- seems like a neat side project, just to play around) 15:11:32 heh 15:11:43 i was quite impressed by your mobile IRC + Blackberry 15:12:00 not that the book won't be profitable, just not yet. :) 15:12:10 :) 15:12:23 i just downloaded a linux recovery disc that didn't feature a kernel. useful. 15:12:23 hang about -- the mobile IRC isn't mine, I just use it. 15:12:24 how does one make a word permanent in gforth 15:12:40 erider, what do you mean? 15:12:57 add a word to the compiler 15:13:16 what do you mean by 'permanent'? 15:13:17 by loading a source file? 15:13:35 Quartus_: yep, i know you didn't write it; i was just impressed by the ability to use IRC on a blackberry, didn't know it was available. 15:13:37 by defining a word 15:13:55 to the compiler? 15:13:57 or to the dictionary? 15:14:05 erider: what are you trying to do? 15:14:06 zpg, ah. Yes, using it now. 15:14:21 that's neat. how's the interface? 15:14:31 I'm what to add a word to the dictionary 15:14:42 a colon definition will do that 15:14:46 as will create, variable etc. 15:14:48 it's a tad clumsy, but I'd expect no better from a portable java app. 15:14:53 heh 15:15:05 are you typing then (i take it the Blackberry has no stylus) 15:15:13 but its only good for that session 15:15:19 which forth are you using? 15:15:25 gforth 15:15:28 I'm not taking a stab at java there -- it's coding to MIDP or something, and that's a limited UI subset. 15:15:50 I'm typing. No touch-screen on the blackberry. 15:16:09 erider: you could create a site file, and load that at startup. i'm not sure whether gforth has support for this, but you could create .gforth-site or something similar, and alias gforth to 'gforth ~/.gforth-site' 15:16:48 Quartus_: which client did you say you were using? (perhaps i can see a screenshot, i'm intrigued) 15:16:54 ok I will give it a try thanks 15:16:59 you can also generate a new kernel image from a source file; that's in the manual. I recommend against it; simply load your enhancements at startup. 15:16:59 keyboards + portability just reminds me of trying to type on a Psion, and my clumsiness 15:17:19 jIRC 15:17:39 yeah a persistent imagine with such a flexible language doesn't seem wise. then again, i spent a lot of time in squeak (i'd estimate 90% of my time in front of the screen) for a couple of years. 15:18:02 factor has a persistent image but all source is in source files 15:18:04 but i just know i'd decide that defining + was a great idea, then forget that i'd changed basic functionality at some point. 15:18:05 the image just simplifies the design 15:19:17 you can generate a new image and replace the startup image, but you lose the ability to backtrack a bug, or easily modify your extensions. Forth compiles very very quickly; there's no advantage to extending the kernel image, and a number of disadvantages. 15:19:30 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 15:19:58 if i'm in the middle of debugging but i have to go and switch off my machine, i'll save an image then keep going with the same UI state when i return. 15:20:30 i can single-step into a word, save the image, restart the image, and the stepper is in the same state, and i can keep stepping. 15:20:35 and doubtless you have some simple mechanism for returning to a clean slate. 15:20:45 yes, i can generate a fresh image from sources 15:20:59 squeak doesn't, which is a pain 15:22:47 An easy approach in gforth is to keep a custom.fs file with your additions, and start gforth with it. gforth common.fs 15:22:55 er, gforth custom.fs 15:25:46 zpg, I have an ssh for this gadget too. 15:26:00 Even clankier. 15:28:33 I really like my treo for those sort of things 15:30:19 with the ssh there's a type mode in which a new packet is sent for each keystroke, which is wasteful and slow as molassas; and an input mode where each line is sent as a whole, but input is on a full-screen pop-up. 15:36:01 i remember using some java ssh library, it would spawn about 7 threads for one connection 15:36:37 Possibly it does the same on this little gadget. 15:36:57 very likely it is the same library. the author of the one i used ported it to J2ME and took it commercial 15:41:13 could well be. I haven't delved into it; I googled and installed it, and have made it function as needed. Kind of a 'use in a pinch' thing. 15:47:03 --- join: ttuttle (n=tom@unaffiliated/ttuttle) joined #forth 15:47:19 Quartus: /me is now the proud owner of ttuttle.net, hosted by NearlyFreeSpeech.net. 15:47:56 Quartus: They seem to be pretty reliable (nobody really seems to hate them), and they charge almost nothing for sites that cost them almost nothing to host. 15:48:59 ttuttle, sounds good then. 15:49:35 certainly the bsd* one looked the worse of the two. 15:49:44 Quartus_: BSD? 15:50:02 Quartus_: I don't remember that. (NFSN uses FreeBSD, but their name does not include it.) 15:50:03 the other one, think it had bsd in the name. (Can't recall). 15:50:07 Quartus_: Ah. 15:50:23 Crc mentioned it last night. 15:50:30 Quartus_: Yeah, NFSN seems shiny enough. Got the name from NameCheap.com--a friend recommended it, works well enough. (Only $7.98 for a .net for 1 year) 15:50:39 Quartus_: (oh, and namecheap has free whois cloaking.) 15:51:11 it's no use, tuttle, you've tied yourself to it via the channel logs, so your anonymity is shot. :) 15:51:14 Quartus_: Right now I'm waiting for DNS to sort itself out. 15:51:28 Quartus_: I'm not looking for anonymity, just to prevent junk mail. 15:51:40 Quartus_: Besides, I have an IP cloak on freenode. 15:52:14 Quartus_: But just to be sure, I'll have to neuralize everyone in the channel :::FLASH::: So, Quartus, what were you saying about direct threading versus indirect threading? 15:52:22 ;-) 15:52:33 I imagine you'll get all mail directed at @ttuttle.net. 15:52:44 heh 15:52:46 Quartus_: Nope, actually none. There's no email service set up. 15:52:52 oh. 15:52:58 Quartus_: Please don't use @ signs on the same line as my new domain. :-\ 15:53:05 Quartus_: It might get spammed. 15:53:18 Quartus_: (I might get Google to host some mail and jabber for me.) 15:56:40 heh 15:56:48 if there's no mail set up, you won't get spammed. 15:57:25 Quartus: Yeah, but I don't want to preclude me ever using it for mail. 15:57:30 --- nick: nanstm -> Raystm2 15:58:06 Whether or not it appears on the web, spam is sent to *@domain.foo constantl.y 15:58:17 Quartus: lol 15:58:29 I'm serious. Any registered domain name gets spammed instantly. 15:58:33 Quartus: Eww. 15:58:46 Quartus: I guess the trick is to not register it then, eh? ;-) 15:59:05 Or not have mail on it, or do what I do and redirect all email not for a known name to a bucket. 15:59:22 I apply a couple of additional filters to the known names. Manageable. 15:59:28 I get about 3000 spam emails a day. 15:59:36 Quartus: Are you serious? 15:59:41 Quartus: I probably get a few dozen. 15:59:50 Yes. Public address that's been active for a decade, so. 15:59:54 Quartus: Oh, true. 16:00:15 Quartus: /me made the mistake of 1) using a PGP key server and 2) posting to public mailing lists. 16:00:35 I use RBL flagging and a Baysian filter. Anything not directed to one of the few real mailboxes is bounced to a gmail account. 16:00:45 Quartus: Ah. 16:01:21 So I don't lose any incoming email. Stuff that arrives on my desk is subclassified; I peruse the most likely junk candidates every day or so. 16:01:57 Well, I've had a few misclassified items of late, esp. legitmate ebay messages. Have to tune that up. 16:02:15 But I don't delete any mail. 16:04:58 I get the feeling most spambots derive addresses from viral attacks on other mailboxes. 16:15:24 there, that boot disc worked. 16:16:15 Quartus: so jirc is a just a java applet that's be put on the blackberry? 16:16:27 Yes, all apps on the blackberry are java apps. 16:16:51 that's quite neat. 16:16:58 It's slow. 16:17:03 ah 16:17:06 well the idea's nice. 16:17:16 j2me implementations tend to be primitive 16:17:23 very few have a JIT, IIRC 16:17:39 and gc strategies tend to focus on compactness rather than performance, which means you get compacting mark and sweep 17:10:20 --- quit: ttuttle ("leaving") 18:04:21 I'm sure the RIM fellows did as much as you can to optimize the speed on the gadget. Their internal (non-public) libraries are of course written for optimal speed, and they allow for the built-in apps to access one another's data. 18:07:17 The Danger Hiptops (aka Sidekicks) use a custom Java JIT for most of the OS and apps. 18:08:01 A few of the engineers I worked with at Be, Inc. worked on it. 18:08:20 "Danger Hiptops"? Only in California. :) 18:08:52 Given sufficient resources (!), a JIT can generate better code than a native compiler. 18:09:05 Oh, I don't know about that. 18:09:21 Unless you're talking about dynamic recompilation. 18:09:28 Yes. 18:09:53 assuming the user doesn't care about compile time 18:10:10 Different animal in my book. And rarely practical; if you've got the cycles to retool the hotspots in a program, you've got the cycles such that it isn't necessary to bother, particularly in a handheld space. 18:10:17 slava: The user does nothing for hours at a time on most devices. 18:10:35 And the devices does nothing during those times, too, or the battery drains. 18:10:57 True, but it need not impact the user's perceived performance. 18:11:08 Drained batteries always impact the user's perceived performance. 18:11:17 Well, you wouldn't do it all the time. 18:12:15 Typically the optimizer collects stats during runs, and then schedules a re-compile at some idle point. The re-compile need not take more than a few seconds. 18:12:37 Which won't impact battery life significantly. 18:12:46 Apps on a many mobile devices are signed, and never JIT'd, as the hardware is already a java machine. 18:13:17 In which case you don't need to optimize because the hardware runs fast enough. 18:13:28 well, no faster, at any rate. 18:13:48 The optimization is done at compile-time. 18:13:50 Yeah. Save a penny on a million devices... 18:14:37 Economies of scale affect programming work there like few other situations. 18:15:33 I would find dynamic recompilation a definite threat to any kind of mission-critical device. Given a choice in such an environment, I'd disable it. There's no way I'd want an optimizer bug to occasionally introduce errors into applications I'd deployed. 18:15:59 Tracing those errors back to the source would be fearfully difficult. 18:16:19 Simplicity and reliability first. 18:16:21 I can't argue with that. 18:16:23 i've never seen an optimizer bug in many years doing java 18:16:30 but plenty of other bugs (GUI, etc) 18:16:43 and ironically, i've also found a ton of bugs in gcc 18:17:01 slava, I've never seen a handheld dynamic recompiler, either, but the idea that the OS would be randomly tweaking an app would worry me greatly. 18:17:20 sun's jvm uses dynamic recompilation 18:17:27 (the desktop/server vm) 18:18:04 Optimizations at compile time, I have no problem with. You can test that. Optimizations at run-time could give rise to intermittent and unreproducible bugs. 18:18:33 i agree, and i don't want a dynamic recompilation vm for factor for this reason 18:18:36 HP did a lot of research into it with their FX x86->alpha translator. 18:18:37 but sun pulled it off, it seems 18:18:41 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 18:18:53 for all its faults, java's jit works well 18:19:03 Maybe they did, slava, I don't know. It may be they limit the scope of the dynamic recompilation to things that don't run much risk. 18:19:25 I see erider has gone off to not sleep for 8 hours or so. 18:19:38 no, the jvm is quite aggressive 18:20:10 it always runs with profiling enabled 18:20:10 Quartus: That would make sense. They can push updates for server VMs quite easily, so they could test the heck out of each new optimization and have the world update incrementally. 18:20:21 Embedded devices rarely have that luxury. 18:20:43 slava, it sounds like shifting sand to me. I'm not happy with the idea. In an portable embedded environment, I'd advise against it. 18:20:57 i'm not defending the approach or bashing it, just stating how it works 18:21:07 high-performance smalltalks do the same thing 18:21:14 TreyB, in a tethered environment you do have the luxury of fixing bugs by pushing down an update and restarting. 18:21:19 its pretty much the only way to get good performance if every call potentially requires runtime dispatch 18:21:19 --- join: forther (n=forther@c-67-180-209-27.hsd1.ca.comcast.net) joined #forth 18:21:22 We'd get more performance out of an ARM MMU that didn't suck, Quartus :-) 18:21:56 Sure. If you're talking about a computing environment that's so slow that it isn't useful without taking risks, then risks are what you take, or you abandon it completely. 18:22:07 you're using loaded language. 18:22:17 its no more of a 'risk' than any other optimization one might add 18:22:27 if your developers are unskilled or you have too much complexity, you can run into problems 18:22:29 Dynamic recompilation is a much greater risk than compile-time optimization. 18:22:37 s/recompilation/memory management/ 18:22:44 same thing holds 18:22:50 doesn't mean its an unacceptable risk, if you know how to debug your code. 18:23:14 Does it? You can test against every kind of memory constraint you might encounter. Testing against every permutation that a dynamic recompiler might introduce, less so. 18:23:33 why? 18:23:43 Permutations. 18:23:59 Interaction between optimizations. Interactions between potential bugs in the optimizations. 18:24:35 Those can conceiveably bite you at compile-time, too -- but you can test that before you deploy, and expect no further fiddling in the field. Dynamic recompilation means untested fiddling will go on. 18:25:10 And unpredictable fiddling, too, as it'll depend on exactly how the software is used. 18:25:34 incremental and concurrent GC has the same risk, as you would put it 18:25:56 I don't feel it's the same degree of risk, but perhaps I'm wrong about that. 18:26:25 GC can mean unpredictable lag, in my experience, which I consider inconvenient but not necessarily a risk. 18:27:00 you can have a GC with bounded collection times 18:27:58 Or you could write code that didn't leak. 18:28:23 where would be the fun in that? 18:28:26 if your code leaks memory, a GC won't help you. it will still leak. 18:28:30 No doubt there are better and worse approaches. The browser on the blackberry comes to mind as an example of unpredictable lag; it occasionally goes off into GC oblivion 18:28:31 Call me old-fashioned :-) 18:34:48 right, time for bed. night all. 18:35:01 cya 18:35:20 ciao 18:35:20 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 18:35:29 to me, gc means allocating a block of memory only means incrementing a pointer 18:35:41 which is easy for the compiler to inline 18:37:00 I haven't much experience with programming in a gc'd environment. I've only been a victim of lousy implementations, as a user. 19:51:17 --- quit: vatic (Read error: 145 (Connection timed out)) 20:01:25 --- join: vatic (n=chatzill@pool-162-84-178-20.ny5030.east.verizon.net) joined #forth 20:14:25 --- quit: vatic ("*poof*") 20:20:32 --- join: nighty (n=nighty@sushi.rural-networks.com) joined #forth 20:21:35 hi nighty 20:22:08 hi :) 20:22:15 what's new? 20:22:43 pfffiioouuu 20:22:45 busy 20:22:47 :) 20:45:38 --- quit: madgarden ("?OUT OF DATA ERROR") 20:47:12 --- join: madgarden (n=madgarde@bas2-kitchener06-1096620860.dsl.bell.ca) joined #forth 20:52:35 --- quit: madgarden ("?OUT OF DATA ERROR") 20:53:15 --- join: madgarden (n=madgarde@bas2-kitchener06-1096620860.dsl.bell.ca) joined #forth 20:57:54 testing out the x, madgarden? :) 20:59:16 Something like that. ;) Updating some Miranda plugins. 20:59:26 (and debugging my game) 20:59:34 :) 21:22:18 --- join: arke_ (n=Chris@pD9E06FFC.dip.t-dialin.net) joined #forth 21:29:56 --- quit: arke (Read error: 60 (Operation timed out)) 23:32:08 --- quit: slava () 23:59:59 --- log: ended forth/06.11.08