00:00:00 --- log: started forth/07.05.07 01:37:09 --- join: grub_booter (n=charlie@d515301E0.access.telenet.be) joined #forth 02:31:37 --- join: ygrek (i=user@gateway/tor/x-0e6b820176b88403) joined #forth 02:49:29 --- nick: wanderer__ -> probonono 03:13:08 --- quit: ecraven ("bbl") 03:38:07 --- join: luptenschteiner (i=fallback@ppp6-168.lns10.adl2.internode.on.net) joined #forth 03:38:40 --- join: wanderer__ (i=fallback@ppp41-226.lns10.adl2.internode.on.net) joined #forth 03:54:27 --- quit: probonono (Read error: 110 (Connection timed out)) 03:54:52 --- quit: yumehito (Read error: 145 (Connection timed out)) 03:55:35 --- quit: luptenschteiner (Connection timed out) 04:12:25 --- join: AndyArmstrong (n=andy@82.152.157.85) joined #forth 04:12:25 --- quit: AndyArmstrong_ (Read error: 104 (Connection reset by peer)) 04:33:10 --- join: gnomon (n=gnomon@CPE0050eb372bdb-CM001692f57b56.cpe.net.cable.rogers.com) joined #forth 04:33:12 --- quit: ygrek (Remote closed the connection) 04:34:32 --- join: ygrek (i=user@gateway/tor/x-0e4744f4c4ae2b13) joined #forth 05:04:27 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 05:27:08 --- join: yumehito (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 05:39:08 --- quit: yumehito (Read error: 145 (Connection timed out)) 06:14:39 --- quit: ecraven ("bbl") 06:25:04 --- join: yumehito (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 06:35:19 --- join: segher_ (n=segher@dslb-084-056-184-074.pools.arcor-ip.net) joined #forth 06:43:59 --- quit: segher__ (Read error: 110 (Connection timed out)) 06:50:19 --- join: yumehito_ (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 06:51:31 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 07:02:33 --- quit: yumehito (Read error: 113 (No route to host)) 07:36:02 --- join: luptenschteiner (i=fallback@ppp2-90.lns10.adl2.internode.on.net) joined #forth 07:37:17 --- join: probonono (i=fallback@ppp15-229.lns10.adl2.internode.on.net) joined #forth 07:53:06 --- quit: wanderer__ (Read error: 110 (Connection timed out)) 07:56:00 --- quit: luptenschteiner (Read error: 110 (Connection timed out)) 09:11:41 jackhammers can be annoying when you're trying to sleep 09:15:09 --- join: perlster (n=chatzill@d142-59-63-133.abhsia.telus.net) joined #forth 09:18:26 whois perlser 09:36:31 --- join: luptenschteiner (i=fallback@ppp5-58.lns10.adl2.internode.on.net) joined #forth 09:37:37 --- join: wanderer__ (i=fallback@ppp19-104.lns10.adl2.internode.on.net) joined #forth 09:40:58 There is no such nick perlser 09:53:29 --- join: ygrek_ (i=user@gateway/tor/x-e51567e83b4ca317) joined #forth 09:53:33 --- quit: ygrek (Remote closed the connection) 09:56:12 --- quit: probonono (Read error: 110 (Connection timed out)) 09:56:25 --- quit: luptenschteiner (Read error: 110 (Connection timed out)) 09:59:12 --- join: yumehito (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 10:10:22 --- quit: yumehito_ (Read error: 110 (Connection timed out)) 10:13:39 --- join: snoopy_1711 (n=snoopy_1@dslb-084-058-119-232.pools.arcor-ip.net) joined #forth 10:22:07 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 10:22:20 --- nick: snoopy_1711 -> Snoopy42 10:43:26 --- join: yumehito_ (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 10:46:22 --- quit: yumehito (Read error: 60 (Operation timed out)) 10:53:02 --- join: yumehito (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 10:56:11 --- quit: yumehito_ (Read error: 145 (Connection timed out)) 11:37:09 --- quit: wanderer__ (Read error: 110 (Connection timed out)) 11:42:34 --- part: perlster left #forth 11:50:34 --- join: kardinal (n=kvirc@e180147167.adsl.alicedsl.de) joined #forth 11:50:43 --- join: jacereda (n=jacereda@220.Red-80-59-211.staticIP.rima-tde.net) joined #forth 11:59:51 --- quit: kardinal (Read error: 104 (Connection reset by peer)) 12:07:21 --- join: ccfg_ (n=ccfg@dsl-roigw1-fe8ade00-21.dhcp.inet.fi) joined #forth 12:14:33 --- quit: yumehito (Connection timed out) 12:15:14 --- join: kardinal (n=kvirc@e180147167.adsl.alicedsl.de) joined #forth 12:19:58 --- quit: ccfg (Read error: 110 (Connection timed out)) 12:32:03 --- join: |kardina| (n=kvirc@e180169068.adsl.alicedsl.de) joined #forth 12:49:27 --- quit: kardinal (Read error: 110 (Connection timed out)) 12:59:18 --- quit: ygrek_ (Remote closed the connection) 13:24:09 --- nick: OrngeTid1 -> OrngeTide 13:30:21 --- nick: |kardina| -> kardinal 13:36:44 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 13:43:24 --- join: DocPlatypus (i=skquinn@gateway/tor/x-73ccd592afc2408f) joined #forth 13:44:38 --- quit: jacereda (Read error: 110 (Connection timed out)) 14:21:25 --- quit: DocPlatypus (Remote closed the connection) 14:23:09 --- join: DocPlatypus (i=skquinn@gateway/tor/x-f7ee8690de6d1f18) joined #forth 14:26:33 --- quit: cmeme ("Client terminated by server") 14:26:36 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 14:36:32 --- join: perlster (n=chatzill@d142-59-63-133.abhsia.telus.net) joined #forth 14:45:25 --- part: perlster left #forth 15:04:00 hi 15:04:06 lo 15:45:09 good evening 15:54:54 is there a portable way to get size of the screen? (like GNU Forth's FORM) 16:02:28 wow, 16:02:39 my laptop went to sleep as it was halting 16:02:46 the battery was dying, so I typed "halt" 16:03:00 but before it finished shutting down, it fell asleep 16:03:25 (it auto-sleeps when the battery is very low) 16:04:50 DocPlatypus: none that I am aware of 16:05:55 ok guess I may have to live with some GNU Forth-specific code then 16:10:37 --- join: ttuttle (n=tom@pdpc/supporter/student/gentoo.contributor.ttuttle) joined #forth 16:10:46 Quartus: Hey. 16:11:01 Quartus: Do you know iRobot, the company that makes the Roomba robot vacuum cleaners? 16:16:47 --- join: skas_wk (n=skas@121.127.198.32) joined #forth 16:34:16 --- quit: Shine (Read error: 113 (No route to host)) 16:51:37 --- quit: slava () 17:26:21 ttuttle: I'll bite, what about iRobot? 17:34:14 DocPlatypus: I've got a summer job there, as a programming intern ;-) 17:37:25 rockin' 17:38:27 is it just me or would you be annoyed as well if the source code release of a GPL'd Forth engine was labeled as the "x86 Linux" version? 17:40:58 and what would really be nice is an iRobot Create that could be programmed in Forth ... men can dream 17:59:42 --- join: ttuttle_ (n=tom@pdpc/supporter/student/gentoo.contributor.ttuttle) joined #forth 18:00:57 --- quit: ttuttle (Read error: 104 (Connection reset by peer)) 18:19:46 323/quit 18:19:47 --- quit: ttuttle_ ("leaving") 18:51:42 doc, why would that be annoying? 18:53:12 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 18:54:03 --- join: madgarden (n=madgarde@bas2-kitchener06-1096652233.dsl.bell.ca) joined #forth 18:54:19 Quartus__: labelling like that would imply it's binaries for GNU/Linux on i386 18:55:29 I don't follow what you mean. 18:57:18 maybe it's the cynic in me... but I tend to think anything that has an architecture-specific label on it is a binary 18:57:34 and that source code would be labeled as, well, sources 18:57:47 why? Source can certainly be platform-specific. 18:58:22 I'm not saying there aren't cases where it can be, but most of the time in the free software world it's really not 18:58:50 but if it is, it should certainly be so labelled. 18:59:16 --- quit: madgarden ("?OUT OF DATA ERROR") 19:00:13 it may have endian requirements, or embedded assembler instructions, or specific register allocations. 19:00:17 --- join: madgarden (n=madgarde@bas2-kitchener06-1096652233.dsl.bell.ca) joined #forth 19:01:31 --- quit: madgarden (Client Quit) 19:01:55 and somehow I'm reminded of something else... is nobody currently making stack machine CPUs? the info I found today while researching it showed UltraTechnology and Patriot Scientific, neither of which are making CPUs (the latter is just licensing patents) 19:02:05 --- join: madgarden (n=madgarde@bas2-kitchener06-1096652233.dsl.bell.ca) joined #forth 19:02:45 I have grand plans that would ideally involve stack machine or "designed for Forth" CPUs 19:03:37 why is existing commodity hardware unsuitable for your dream? 19:06:26 --- quit: madgarden (Client Quit) 19:06:37 power consumption comes to mind for one 19:07:21 --- join: madgarden (n=madgarde@bas2-kitchener06-1096652233.dsl.bell.ca) joined #forth 19:07:58 Forth chips are not low-power simply by virtue of being forth chips, any more than x86 stuff is high-power for being x86. It's independent of the design. 19:08:01 --- join: mrsbrisby (i=nimh@216.169.144.42) joined #forth 19:08:36 right... well maybe that was a poor way of putting it, but power consumption is a huge issue 19:09:14 So one of your requirements is low power. There's low power commodity hardware. 19:09:33 the main concern I have is Intel and AMD being too close to Microsoft for my purposes in this project 19:10:38 this would be, in essence, an OS and user environment written from the ground up in Forth, using, probably, 1/4 to 1/10 the computing power on a brand new desktop PC, and probably consuming a comparable amount less power 19:10:45 Political preferences inform your technical design? 19:10:45 it's something a lot like what Chuck Moore would do 19:11:11 except I'm planning on making it close enough to what some people expect on a "standard desktop PC" to be palatable to the masses 19:11:53 (I'm going to wait until that ping comes back) 19:11:56 --- quit: madgarden (Client Quit) 19:12:06 ping? 19:12:20 --- join: madgarden (n=madgarde@bas2-kitchener06-1096652233.dsl.bell.ca) joined #forth 19:13:33 I'm lagging horribly in case you haven't noticed 19:13:52 ok 19:14:02 I'm guessing you think I'm just full of crazy ideas 19:14:38 and that's not too surprising, I mean, I've seen information about at least two or three other OSes based around a native Forth implementation, so I know it's been done before 19:15:49 and I've been known to say "keep the PC, get rid of Windows" ... not surprisingly I'm starting to second guess myself 19:15:49 it sounds misguided and naïve, but everyone should have a hobby :) 19:16:51 well think about this for a second 19:16:53 --- part: littledan left #forth 19:17:12 usually, the first reply someone will get when someone says "I hate my PC" is "get a Mac" 19:17:30 not even "do you really hate your PC, or do you hate Windows?" 19:18:36 sidenote -- from a free software activist standpoint, I can't in good faith recommend buying anything from Apple, in the modern era if you want an Apple iMac, you *will* buy a copy of MacOS, no way around it 19:18:45 --- join: edrx (n=Eduardo@201.5.11.23) joined #forth 19:18:59 this would be as bad as Microsoft being the only source of new PCs, not just new Windows licenses, new PCs 19:19:29 I'm afraid you've lost me in the tall grasses. 19:20:08 okay. then let me ask this. what type of computer and operating system do you use? 19:20:36 I use several. How is that relevant? 19:20:41 I just downloaded Minix 3. 19:21:03 Why not make an Open Source Forth shell for some existing *nix? 19:21:40 I'm trying to figure out your perspective 19:22:11 I use mainly GNU variants with some OpenBSD for security sensitive uses 19:22:15 my perspective? Do you think my worldview is warped by what computers I own? 19:23:19 Quartus__: it can change the way one looks at certain computing issues, I will admit 19:23:44 goodness. More tall grass. 19:23:58 madgarden: that's a possibility 19:24:43 Quartus__: I have to mentally shift gears when someone talks about their computer having problems, going on to mention viruses, spyware, and corrupted registry 19:25:03 (unlike most people I don't call those computer problems, I call them Windows problems) 19:25:09 are you asking whether I'm new or uninformed in some way? 19:27:37 no, I'm not 19:27:37 I know you've been around a while 19:28:01 but at the same time I've known people who don't consider anything with an i386 processor a "real computer" 19:29:59 Does it matter what people think? 19:30:03 my mom programs big IBM boxen for a living (AS/400, before that System/38, /36, /34, etc.) 19:30:35 her perspective is a bit different as well 19:30:55 unfortunately in order for social goals to be met it does 19:32:09 there was a time when computing communities were built around sharing ideas and software 19:32:09 What social goals are you trying to meet? 19:32:20 I don't believe all software should be free, so you'll lose me going off down that road. 19:32:27 now, we have a typical thought process of "getting software" -> "buying software" -> "buying a shrinkwrapped box with a disc containing only binaries and a restrictive EULA" 19:32:46 --- quit: edrx (Remote closed the connection) 19:33:04 --- join: edrx (n=Eduardo@201.5.11.23) joined #forth 19:33:06 I'm not saying I agree with that, but that's what the unwashed masses usually think of when they think of getting more software for a computer 19:34:09 ok, I don't know who you think you're addressing, but I washed today and I'm not all that massive. 19:34:41 Quartus__: I share a lot of viewpoints with RMS, so don't be surprised 19:34:41 sheesh 19:34:42 it's an expression 19:35:19 my point was... they don't even think of downloading from the Internet, much less getting source code and compiling 19:35:43 my point is, you're not on Dateline NBC trying to sell a point of view to Joe Sixpack, you're here talking with us. 19:37:51 okay... "I don't believe all software should be free" <-- you're referring to free as in freedom I would assume? even I know making all software free as in price is not sustainable 19:38:20 I have no problem with closed source. 19:38:40 but I also think "buying software" should not have the strong mental connection to making a trip down to CompUSA/Micro Center/Best Buy and/or ordering a shrinkwrapped box from Newegg 19:39:39 sigh... the question wasn't about source code, it's about freedom, they are two different issues 19:40:04 sigh, eh? 19:42:06 anyway... I would like to think nothing bad will happen to the PC hardware platform as we know it today 19:42:50 but at the same time, it's a reality that Microsoft gets in the faces of PC manufacturers and says "you will put this in your PC or Windows will not run properly" 19:42:55 translated, that means "you will put this in your PC" 19:44:29 and they do, and they will 19:45:08 the GNU project is on to something, but when you have Microsoft influencing hardware design, they can easily shut out any attempts to run an unauthorized kernel or OS if they want to badly enough 19:45:21 ok. Sounds like you have a mixture of beliefs and notions and generalizations, many of which I don't buy into. 19:45:37 So as I say, you lost me in the tall grasses. Which is fine. 19:46:23 I'd like to think Microsoft will wake up and realize they are competing with what is legally a charity (the FSF is 501(c)3, as much a charity as the Red Cross) 19:48:09 I'm going to reconnect... my lagmeter is showing 306.4 seconds 19:48:12 --- quit: DocPlatypus ("Leaving") 19:49:46 --- join: DocPlatypus (i=skquinn@gateway/tor/x-eb00d8efc103f59e) joined #forth 19:51:28 sorry if that was a bit too rant-ish ... I'm not known for my mainstream points of view or for being shy on certain subjects 20:05:43 --- quit: edrx (Remote closed the connection) 20:14:26 --- quit: DocPlatypus ("Leaving") 20:19:22 --- join: DocPlatypus (i=skquinn@gateway/tor/x-1079efe53a24ab3c) joined #forth 20:58:03 --- join: yumehito (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 21:00:41 --- join: probonono (n=probonon@ppp103-111.static.internode.on.net) joined #forth 21:07:13 well, that's ok. I don't agree with all or part of a number of the things you are on about, so you really do lose me after a couple of leaps there. 21:23:48 DocPlatypus: I suspect there is comodity hardware powerful enough for your forthy desktop that isn't x86 and hence free of the microsoft tax 21:24:28 though I'm not sure exactly how much computing power you want 21:24:43 You forget the all-important "cannot begin work because of an artificial and arbitrary pre-condition that is not met" consideration. :) 21:25:10 do you really think you need the equivilent processing power of a 500-1000 MHZ x86 cpu? 21:25:58 Quartus: I don't think it's a bad idea to choose your hardware before you start writing an OS 21:26:23 Sure, I agree. Not starting until a cheap, low-power, stack-based CPU is made available is something else entirely. 21:28:44 However, there's a huge amount of work involved in creating a whole end-user computing environment, a vast amout of which is completely independent of the choice of CPU. 21:29:56 agreed on both points 21:30:26 This is all aside from whether I consider it either something that can be done by a single person, or whether it has a remote chance of succeeding at what its goals appear to be. 21:31:07 right 21:31:17 most likely it'll just be a learning experience 21:31:29 but there is always that chance that something useful to others will result 21:31:36 Linux has been quite successful, but I will warrant that it wouldn't have been if it wasn't something you could run on the computer you already had. 21:32:38 yeah 21:32:41 JasonWoof, perhaps -- if he ever even starts. When I see somebody set unrealistic preconditions, I doubt that they'll ever reach takeoff speeds. 21:32:44 I started making an OS in ppc asm 21:32:57 that's never going to be finished 21:33:11 now I'm working inside a virtual machine 21:33:19 so it'll work on the computer (and even the OS) you have 21:33:23 So that's the muffled shouting and thumping. 21:33:41 maybe some year it'll run without much of a host system, but I can see that that is so remote, and doesn't really matter at this point 21:34:34 "OS" probably isn't the right word for it right now 21:34:39 No, it doesn't. If you had some beautiful dream of writing a Forth-based OS, you'd write it to a VM to at least show proof of concept. 21:34:40 it just runs as an application 21:35:39 I figure the way to make it into an OS, is to implement the VM on top of L5 or some existing kernel 21:36:02 Sure. 21:36:17 or program an FPGA to do it 21:36:52 Setting unrealistic preconditions is an advance form of procrastination. As I recall virl doesn't write code because he can't find 'the perfect Forth', the definition of 'perfect' shifting to avoid accidentally finding one that would let him go ahead. 21:37:08 lol 21:37:24 gotta start somewhere 21:37:26 PoppaVic doesn't write code because, as far as I can decipher his blither, he feels that no computer language is a sufficiently accurate abstraction of his mental model. 21:37:36 if you want a perfect forth, decide what that is and make it 21:39:01 Sure, but that would be actual work, and the point is to avoid it. :) 21:39:06 I understand not liking the available/popular languages and/or hardware 21:39:24 I looked around at my options, didn't like them, so I wrote a VM 21:39:36 so I can pretend I'm working on the machine I wish I had 21:39:37 Right, you actually wrote code. 21:39:43 That's the differentiator. 21:39:51 yeah, I'm a bit more practical than some 21:40:05 still less than you though :) 21:40:31 eg I'm chatting instead of getting my work done :) 21:40:36 So am I. :) 21:40:50 --- part: skas_wk left #forth 21:40:54 heh 21:41:39 It's an advanced form of procrastination to come up with vague, unrealistic, or impossible prerequisites. The truly advanced form forgoes all apology and explanation. 21:41:52 oh, and I was going to release another version of vor with my latest bug fixes 21:42:08 "vor" immediatly makes me think of "Gor", those wretched novels 21:42:55 what novels? 21:43:06 John Norman, I believe is the name of the hack in question. 21:43:25 last night I wrote an "autopilot" for vor which randomly presses the movement keys for you 21:43:25 http://en.wikipedia.org/wiki/Gor 21:43:41 and the "start a new game" key 21:43:53 I left it running all night, and no crashes 21:44:09 Like the Palm OS Emulator's "gremlin" testing feature 21:45:34 Runs a random sequence of input events against your code; you set the random number seed, and the count./ 21:45:55 That way you can run the same sequence again to help ensure you've eliminated a given bug. 21:47:43 --- quit: DocPlatypus (Read error: 104 (Connection reset by peer)) 21:48:42 cool 21:48:44 --- join: DocPlatypus (i=skquinn@gateway/tor/x-9f48877c84d39d43) joined #forth 21:50:28 I'm suprised how many bugs I've found lately. between that and valgrind 21:50:42 we've been running this game for years 21:50:55 Heisenbugs. 21:51:02 and it pretty much only crashes right after I make a stupid mistake in the code 21:51:32 you can be sloppy writing code and think you got away with it 21:51:40 then boom, it blows up on you when you least expect it 21:51:46 but after we fixed the bugs with floats rounding inconsistently on x86 we started getting crashes even on ppc 21:52:21 ugh, floats 21:52:30 yeah 21:52:44 Useful when used carefully 21:52:45 at this point it seems like it would have been easier to do it all with fixed point math 21:53:01 I've heard people say that before, and thought they were nuts, like CM 21:53:31 the concept of a separate floating point stack in Forth is a bit strange and takes much getting used to 21:53:47 I find floats to be an unfortunately necessary evil 21:53:52 I heard Knuth say once that the original programmer-mathematicians would have said if you can't solve your problem with integers, you don't understand it properly 21:54:00 DocPlatypus: yeah, I used floats in gforth a couple months ago 21:54:09 DocPlatypus: the seperate stack thing threw me off 21:54:16 DocPlatypus: I had quite a few bugs because of that 21:54:53 eg: : stop ( addr -- ) 0.0 f! ; 21:55:00 with the appropriate support, you should be able to use two numbers in a 2variable with */ in many cases 21:55:02 0.0 is not a float 21:55:03 not: : stop ( addr -- ) 0.0 swap f! ; 21:55:10 yeah 0.0e 21:55:14 oops 21:55:16 sorry 21:55:26 *that* threw *me* off when I first tried it. 21:55:29 should be 21:55:34 0e is 21:56:35 right, my point was that there's no "swap" in there 21:56:40 Right. 21:56:47 in this statistics program I'm writing I use floats for the average and standard deviation only because they'd be a real bitch to do with integer fractions 21:57:32 one can always, say, 100e f* f>d d>s if they want to 21:57:33 the most irritating problem we have with floats is something I never thought would happen 21:57:39 and get the result to two places 21:58:07 and it doesn't happen at all on PPC 21:58:14 that would be...? 21:58:20 we check if a number is less that 600, and it is. 21:58:27 but later when we go to use it, it's 600 21:58:41 ie the rounding is inconsistant, even with the same value 21:59:03 oh that's nasty 21:59:31 yeah, so every 5-20 minutes vor would draw a pixel off the bottom of the screen 21:59:37 (well, at our crappy frame rates) 21:59:47 is that something to do with 80-bit internal storage of a value, vs. 64-bit external? 22:00:18 happens pretty dern quick for these guys with new computers who get 15X higher frame rate than me 22:00:43 Quartus: probably. though I have no idea how such truncation would make a positive number bigger 22:01:01 drawing off the bottom = crash? 22:01:03 or is it just annoying? 22:01:24 drawing of the bottom crashes 22:01:30 which is a very good thing 22:01:33 oy 22:01:52 because then we can find our bugs 22:02:07 it's hard to find a bug when you don't know it's there 22:02:07 advice from me: convert to integer before drawing 22:02:13 I do 22:02:23 the trouble is it doesn't always convert to the same integer 22:02:40 I check that it's within the range 0..599 22:02:49 and delete/wrap anything that's not 22:02:56 okay do the compare after converting to integer as well, dup it first, and use that to draw 22:03:10 then when I go to draw it, I sometimes get one that rounds to 600 (which before rounded to 599) 22:03:23 nah 22:03:46 easier to constrain the values to 0.0001 to 599.999 22:03:48 or, blow off one row on each border 22:03:58 and only draw 1-799, 1-599 22:04:13 as much as I don't like that one... 22:04:13 no need to kill a whole row 22:04:51 can leave a margin much smaller than one pixel and not run a muck of x86's stupid rounding crap 22:06:44 I've noticed that the "ms" word has way more variance than I would really want 22:06:52 even at relatively large values 22:06:56 In Gforth? 22:07:00 yes 22:07:09 Do you know why that is? 22:07:26 DocPlatypus: how can you tell? 22:07:28 probably because of task switching 22:07:50 at lower values that would make sense 22:08:56 5 12000 mstest ok \ runs "5 ms" 12000 times, feeds the results into an array of cells 22:09:15 statavgstdev f. f. 1015.17315419451 8113.74833333333 ok \ stdev, average 22:09:45 median is 7996 usec 22:10:39 what's the max? 22:12:15 and what are you using for a clock? 22:13:15 --- quit: DocPlatypus (Remote closed the connection) 22:13:40 --- join: DocPlatypus (i=skquinn@gateway/tor/x-528183d5774423a8) joined #forth 22:13:41 hmmm... speaking in person does have its advantages 22:13:58 grr that stunk 22:14:07 what are you using for a clock? 22:14:08 what part of that actually came through 22:14:19 [01:09] median is 7996 usec 22:14:32 : mstest { q r -- } r 0 do utime q ms utime 2swap d- d>s >stat loop ; 22:14:36 >stat feeds into my statistics tabulator 22:14:54 The last 3 digits of utime are all zeroes in my version. 22:15:17 they aren't in mine 22:16:06 I'd be questioning the accuracy of the time source as well. 22:17:04 Correction: they're not always zero in mine (here under WinXP at the moment), but they're always the same. 22:17:26 see, I'm running a GNU variant 22:17:36 So this utime has effectively a millisecond resolution. I don't know what yours has. 22:17:39 I wouldn't put it past Microsoft to not give you decent timing 22:17:59 it may or may not be microsecond accurate, but it should be within at least 1 ms of the target 22:18:17 Decent timing is available under Microsoft, so there's no reason to launch into a rant. Gforth is not a barometer for the quality of the OS. It uses C library calls for most of what it does. 22:18:21 I'm seeing things like: 22:18:30 stathighest statlowest . . 4115 20557 ok 22:19:41 to be honest... at 100 ms it's a bit more reliable 22:19:46 Again, verify your timesource is giving you accurate info. 22:20:06 my stopwatch only does 1/100 sec :-) 22:20:41 statavgstdev stathighest statlowest f. f. . . 188.79870126225 99979.52 98358 100263 ok \ for a 100 x 100 ms run 22:20:50 I was thinking more of finding out what call Gforth makes for utime, and seeing what your system docs say about its reliability 22:21:03 now *that* is a bit more reasonable 22:21:49 I first found this when doing '1000 ms' in a loop that made a full screen clock, and wondering why it skipped seconds 22:22:56 What's a 'GNU variant'? Linux? 22:23:11 in this case, GNU+Linux 22:25:24 Undoubtedly this has some deep meaning to you that 'Linux' fails to convey on its own. 22:26:36 it's the GNU operating system, plus the kernel, Linux. the GNU project was, and is, about freedom, more than just access to the source code for convenience (the message the "open source" campaign got out was "it's good to have source code for convenience" and unfortunately, it worked damned well) 22:27:23 So, completely useless information in this context. At any rate, ms appears to call select(), which is probably why it's fuzzy. You might try nanosleep() instead. 22:27:48 ah-ha 22:28:27 Should be able to ffi out to nanosleep if you need accuracy 22:28:29 and the thing that gets me... there's no easy way to get a simple "number of seconds since the epoch" in GNU Forth 22:29:10 I thought utime was offset from some epoch. 22:29:41 it is. except utime is a double 22:29:45 so? 22:30:39 woh, you got less than 99ms once? 22:30:48 something isn't right there 22:31:05 JasonWoof: yes, you saw correctly 22:31:21 that's bad 22:31:33 ms is documented in the ansi draft standard as: Wait at least u milliseconds. 22:31:54 Which it may be doing. 22:32:20 yep :) 22:32:31 can't tell which timer is off 22:32:36 but that's a large margin 22:32:52 Plus gforth is relying on select() having specific behaviour, which it may not. It's not a clock. 22:33:19 documentation is boring ;) 22:34:19 okay. utime does a gettimeofday and then a timeval2us 22:35:13 I don't see where select gets involved at all 22:35:19 ms 22:35:29 ah. 22:35:36 (void)select(0,0,0,0,&timeout); 22:35:48 select() docs say it'll terminate early on an umasked signal. That's not being checked for. 22:36:02 I'm not sure it'd be worth checking for, but it's one variable at least. 22:36:39 The timeout also specifies the *maximum* interval to wait. System activity can lengthen the interval. 22:37:12 So I'm not at all surprised at the results. nanosleep would be a better choice under Linux. 22:37:27 select() being more portable. 22:37:47 OpenBSD has nanosleep 22:38:02 By definition, select() can wait either less or more than the specified time. 22:38:15 --- join: scope (n=junk@203-97-123-216.cable.telstraclear.net) joined #forth 22:38:26 actually... nanosleep is part of the POSIX spec 22:41:04 anyway I am off to bed 23:43:16 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 23:54:21 --- quit: DocPlatypus (Remote closed the connection) 23:57:40 --- join: DocPlatypus (i=skquinn@gateway/tor/x-1cfc8eef2ccf918d) joined #forth 23:59:59 --- log: ended forth/07.05.07