00:00:00 --- log: started forth/04.01.19 00:15:28 --- join: schihei (~schihei@pD9548B28.dip.t-dialin.net) joined #forth 00:18:49 Dobroe utro! 00:22:54 bgerk 00:23:18 Walking with a dead man over my shoulder. 00:24:56 that would be pretty heavy 00:32:54 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 00:43:17 Dobroe utro! 00:53:44 --- part: Nutssh left #forth 01:42:53 --- quit: ASau () 03:00:13 --- join: ASau (~asau@158.250.48.196) joined #forth 03:00:21 Dobry den! 03:09:25 --- join: rO| (rO_@pD9E591ED.dip.t-dialin.net) joined #forth 03:27:58 Dobry den! 03:28:56 Privet ASau :) 03:36:38 --- join: ooo_ (o@virgo.bombsquad.org) joined #forth 03:36:38 --- quit: ooo (Read error: 104 (Connection reset by peer)) 04:02:43 ...back... 04:02:44 --- quit: ASau () 04:45:26 --- quit: rO| (Read error: 110 (Connection timed out)) 05:21:10 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 05:31:35 --- join: ASau (~asau@158.250.48.196) joined #forth 05:31:47 I'm back. 05:31:52 Dobry den! 05:31:54 Welcome back :) 05:32:02 And Dobry den, ASau. 05:32:08 WHat's "and" in Russian? 05:32:42 Hm. There's no such word. 05:33:01 BTW, "dobry den" is in Czeck. :) 05:33:29 No word for "and"?! 05:33:36 In Russ. this should be: dobryjj den' 05:33:54 Ah, you mean "and"! 05:33:55 i 05:33:56 Same thing ;) 05:34:25 Dobry is pronounced like dobryjj.. At least by a swede. 05:35:14 It seems czecks pronounce no "i"-short at the end. 05:36:21 I wouldn't hear the difference :) 05:38:00 Just shorten "i" in "dobryi". You'll get "jj" that's "i" short. 05:39:12 It is closer to "l" but your toung does not touch teeth. 05:39:29 Hm, OK 05:40:37 There is difference between: "yi" and "yjji", "yeh" [y-ae] and "ye" [y-j-e]. 05:41:25 "Dobryjj" is for one "den", "day"... 05:41:45 O! It's like "y" in "day" :) 05:42:56 Deutsch "ei" is Russ. "ajj" 05:43:07 "aj" in Swedish. :) 05:43:25 That means "ouch" 05:43:47 There is a standard way to transliterate Cyrillic alphabet in Latin. 05:44:06 There're two "modifiers": "h" and "j". 05:44:40 "h" is post-modifier: "eh", "ch", "sh", "shh", "zh" 05:45:15 "j" is pre-modifier: "jj", "ja", "jo", "ju". 05:45:56 Argh. :) 05:46:40 It means that short "i" before "a", "o", "u" like in "Juli", "Juni", "Jahr", "Jagdt" etc 05:47:48 Exception: "je" is denoted "e", "e" is denoted "eh". Because "eh" is rather rare, but "e" is common. 05:50:25 Also ' and " are post-modifiers: ' is for soft sign, " is for hard sign. 05:52:00 Not but , and is not . 05:53:55 Thanks for the lesson, but honestly, I will forget it before I close my eyes next time. 05:54:02 * Robert blinks. 05:54:12 O! A picture: http://www.orwell.ru/info/img/tlit_2.png 05:55:33 Heh.. Right :) 05:55:36 http://www.orwell.ru/info/tliter if you want the whole text. 05:56:47 Haha, that doesn't make much sense to me. 06:04:09 http://rambler.ru/dict/ruen/ 06:04:13 http://rambler.ru/dict/rude/ 06:04:29 Dictionaries. 06:04:31 Danke, aber mein Englisch is viel besser ;) 06:06:04 Oh, neat..it works. 06:06:17 Spasiba :) 06:14:46 --- quit: hovil (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: ooo_ (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: chandler (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: Robert (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: warpzero (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: TreyB (brunner.freenode.net irc.freenode.net) 06:14:47 --- quit: mmanning (brunner.freenode.net irc.freenode.net) 06:14:48 --- quit: ChanServ (brunner.freenode.net irc.freenode.net) 06:14:59 --- join: ChanServ (ChanServ@services.) joined #forth 06:14:59 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 06:14:59 --- join: ooo_ (o@virgo.bombsquad.org) joined #forth 06:14:59 --- join: chandler (~chandler@d-84-77.dhcp-149-159.indiana.edu) joined #forth 06:14:59 --- join: Robert (~snofs@c-9d5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:14:59 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 06:14:59 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 06:14:59 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 06:14:59 --- mode: brunner.freenode.net set +o ChanServ 06:17:39 --- quit: ASau (brunner.freenode.net irc.freenode.net) 06:17:40 --- quit: madgarden (brunner.freenode.net irc.freenode.net) 06:17:40 --- quit: ianp (brunner.freenode.net irc.freenode.net) 06:17:46 --- join: ASau (~asau@158.250.48.196) joined #forth 06:17:46 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 06:17:46 --- join: ianp (ian@inpuj.net) joined #forth 06:18:23 --- quit: ayrnieu (brunner.freenode.net irc.freenode.net) 06:18:24 --- quit: cmeme (brunner.freenode.net irc.freenode.net) 06:18:25 --- quit: fridge (brunner.freenode.net irc.freenode.net) 06:18:25 --- quit: scope (brunner.freenode.net irc.freenode.net) 06:18:25 --- quit: skylan (brunner.freenode.net irc.freenode.net) 06:18:26 --- quit: madgarden (brunner.freenode.net irc.freenode.net) 06:18:26 --- quit: ASau (brunner.freenode.net irc.freenode.net) 06:18:26 --- quit: ianp (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: mmanning (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: hovil (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: TreyB (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: warpzero (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: Robert (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: ooo_ (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: chandler (brunner.freenode.net irc.freenode.net) 06:18:28 --- quit: ChanServ (brunner.freenode.net irc.freenode.net) 06:19:04 --- join: ChanServ (ChanServ@services.) joined #forth 06:19:04 --- join: ianp (ian@inpuj.net) joined #forth 06:19:04 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 06:19:04 --- join: ASau (~asau@158.250.48.196) joined #forth 06:19:04 --- join: skylan (~sjh@vickesh01-4751.tbaytel.net) joined #forth 06:19:04 --- join: scope (~junk@njd.paradise.net.nz) joined #forth 06:19:04 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 06:19:04 --- join: ayrnieu (~julian@206.61.132.55) joined #forth 06:19:04 --- join: fridge (~fridge@dsl-203-33-164-15.NSW.netspace.net.au) joined #forth 06:19:04 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 06:19:04 --- join: ooo_ (o@virgo.bombsquad.org) joined #forth 06:19:04 --- join: chandler (~chandler@d-84-77.dhcp-149-159.indiana.edu) joined #forth 06:19:04 --- join: Robert (~snofs@c-9d5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:19:04 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 06:19:04 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 06:19:04 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 06:19:04 --- mode: brunner.freenode.net set +o ChanServ 06:24:01 --- quit: cmeme (brunner.freenode.net irc.freenode.net) 06:24:01 --- quit: ayrnieu (brunner.freenode.net irc.freenode.net) 06:24:01 --- quit: fridge (brunner.freenode.net irc.freenode.net) 06:24:01 --- quit: scope (brunner.freenode.net irc.freenode.net) 06:24:02 --- quit: skylan (brunner.freenode.net irc.freenode.net) 06:24:10 --- join: fridge (~fridge@dsl-203-33-164-15.NSW.netspace.net.au) joined #forth 06:24:10 --- join: ayrnieu (~julian@206.61.132.55) joined #forth 06:24:10 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 06:24:10 --- join: scope (~junk@njd.paradise.net.nz) joined #forth 06:24:10 --- join: skylan (~sjh@vickesh01-4751.tbaytel.net) joined #forth 06:24:54 Alive? 06:27:03 Yes. 06:27:45 hell no 06:27:55 Poor fox.. 06:28:11 :) 06:31:36 Dobryjj vecher! :) 06:45:26 --- quit: hovil (Read error: 113 (No route to host)) 06:58:10 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 07:06:55 Damn w2k! 07:07:05 damn it to hell 07:07:07 DOS rulez foreva! 07:07:18 my father just installed w2k in order to get his satellite internet working 07:07:29 been doing desk support for him ever since 07:07:31 =P 07:09:50 lol 07:09:53 charge! 07:10:41 well, twice 07:10:48 but I'm allowed to exaggerate 07:10:50 because 07:10:53 its a microsoft product 07:16:22 Does anyone know good DOS box for w2k? 07:45:24 cmd.exe 07:45:29 :) 08:00:30 --- quit: skylan (Read error: 113 (No route to host)) 08:07:35 --- join: skylan (~sjh@vickesh01-4878.tbaytel.net) joined #forth 08:15:06 --- join: downix (~downix@adsl-219-23-176.mia.bellsouth.net) joined #forth 08:24:38 --- quit: downix ("[BX] Tiger Woods uses BitchX. FORE!") 08:28:04 cmd.exe is a very bad box. 08:28:09 It's not DOS. 08:28:44 It runs copy when batch file is started. 08:36:26 booo! 08:36:35 4DOS? 08:38:04 4NT 08:51:55 It is found from experiment, that any DOS TSR application changes CMD's behaviour to inappropriate for DOS. 08:53:39 Also, no DOS application run receive NLS. 08:54:12 Though 4NT is not tested. 08:55:47 Fucking hell. 09:40:47 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 09:58:40 --- quit: Robert ("brb") 09:59:52 --- quit: Nutssh ("Client exiting") 09:59:54 --- quit: mmanning ("Reality Strikes Again") 10:09:46 --- join: Robert (~snofs@c-9d5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 10:55:16 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 10:55:16 --- mode: ChanServ set +o kc5tja 11:14:04 Dobryjj vecher! 11:14:18 Greetings. 11:14:40 Hi 11:19:50 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 12:08:24 --- quit: ayrnieu (brunner.freenode.net irc.freenode.net) 12:08:24 --- quit: cmeme (brunner.freenode.net irc.freenode.net) 12:08:24 --- quit: hovil (brunner.freenode.net irc.freenode.net) 12:08:24 --- quit: scope (brunner.freenode.net irc.freenode.net) 12:08:27 --- quit: fridge (brunner.freenode.net irc.freenode.net) 12:10:51 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 12:10:51 --- join: fridge (~fridge@dsl-203-33-164-15.NSW.netspace.net.au) joined #forth 12:10:51 --- join: ayrnieu (~julian@206.61.132.55) joined #forth 12:10:51 --- join: scope (~junk@njd.paradise.net.nz) joined #forth 12:10:51 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 12:37:30 kc5tja: RAH! 12:38:34 Heh 12:39:00 * warpzero bites of kc5tja's nose. 12:40:47 * kc5tja can breath again. 12:41:03 Heh. 12:42:33 Forth talk, yay. 12:44:10 --- join: wossname (wossname@HSE-Sherbrooke-ppp79992.qc.sympatico.ca) joined #forth 12:50:52 --- quit: schihei (Client Quit) 12:51:07 Lets talk about forth. 12:51:10 Lets see. 12:51:13 Its postfix. 12:54:43 It's easy to grok. 12:55:39 --- part: Nutssh left #forth 12:55:47 I always forget all the words. 12:56:45 This is why one should either start with a suitably minimal Forth system, and build up/include your own words from the ground up, or one should instead use libraries of words with adequate documentation. 12:57:55 If I wanted to do little electronics projects, like gate timers and stuff for a farm, are there small chips that are widely available and can run a forth system? 12:58:03 Or have a quick reference handy./ 12:58:55 hovil: What do you mean by 'small chips?' With a little ingenuity, Forth can be made to run on virtually anything, including some PIC chips. 12:59:25 I was thinking something a bit bigger than a PIC but not a full grown PC architecture with all the infrastructure it requires 13:00:07 hovil: There are 8-bit CPUs still on the market. 13:00:22 I could just use PIC & assembler, which would do the task, but hey, I like forth and want to use it 13:00:26 * kc5tja likes to advocate the 6502 or 65816, but there still are 6809 CPUs and Z-80 chips being sold. 13:01:56 cool, thanks 13:01:58 gtg now. 13:01:59 --- part: hovil left #forth 13:08:27 kc5tja: zero page 13:08:41 zero-page makes an excellent data stack. 13:09:35 zero page 13:22:16 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 13:24:04 --- quit: qFox (Read error: 104 (Connection reset by peer)) 13:55:39 * warpzero is away: I 15:01:59 * warpzero is back (gone 01:06:22) 15:29:05 --- quit: wossname ("haqq") 16:51:24 * warpzero is away: Cello more like 17:09:24 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 17:44:18 --- quit: I440r ("Leaving") 18:18:51 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 18:37:30 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 18:45:35 --- join: blockhead (default@dialin-881-tnt.nyc.bestweb.net) joined #forth 18:49:09 hi blockhead 18:49:41 I always think you or someone else is poking fun at someone, but then I realize there is a person here nicked Blockhead. 18:50:30 Not to mention that forth likes blocks... 18:50:36 lol 18:50:50 Too many blockheads around here for my comfort -- I'll go study. 18:50:58 Heh 18:58:18 * blockhead wakes up. woa ... activity ... and he missed it. What a blockhead ;) 18:58:50 lol 18:58:52 * blockhead belatedly waves to I440r 18:59:00 :) 18:59:03 heya 18:59:16 * kc5tja is eating. 19:01:14 * I440r had 2 bp sw 19:01:44 ? 19:02:08 peanut butter sandwitch heh 19:02:14 :D 19:02:23 When I'm not eating today, I'm engineering a new commercial product for a potential client for FTS. 19:02:42 Just some vague block diagrams, how we'll go about solving their problems, etc. 19:02:56 Writing of a proposal, you know the drill. :) 19:03:05 powerpoint :D 19:03:06 :) 19:03:09 blockhead: Nope. VI. :D 19:03:33 a proposal in VI? that's different. You mean the unix VI, right? 19:03:38 Yep. 19:03:45 I'm writing the proposal in VI. 19:03:49 masachist 19:03:52 The presentation is all ASCII graphics. 19:03:56 did I spell that right? 19:03:58 Well, because I want to send it via e-mail. 19:04:02 masochist. 19:04:10 * blockhead used via, then ran away screaming 19:04:14 VI, not vi 19:04:17 not via 19:04:26 geez, even my typo corrections have typos 19:04:39 Recursive: See Recursive. 19:04:49 * blockhead sighs 19:05:02 I have recursive typos 19:05:06 blegh 19:05:09 I have to do a quick performance test on my box now, to get a ballpark estimate for something. 19:05:17 sorry, kc5tja, I took too long to evaluate your expression. 19:05:23 :) 19:05:24 --- join: Sonarman (1000@adsl-64-169-94-230.dsl.snfc21.pacbell.net) joined #forth 19:05:28 ballpark estimate: you mean "guess"? 19:05:47 Well, more like a hypothesis really. 19:05:50 :) 19:07:59 kc5tja: you know, I scrolled back and read a bit that I didn't see the first time around. You say yo are putting in ascii graphics. That's cool but ... 19:08:30 It needs to be printable easily. 19:08:33 what if they view it in a non-fxied width font? 19:08:33 blockhead - with a 'ballpark estimate' you can at least strongly assert that the result lies within the ballpark. 19:08:41 I won't use Linux, and the system we'll be coding for is a POSIX-based system. 19:08:50 wtf did I just type? 19:08:53 I won't use Windows. 19:08:56 That's better. 19:08:59 lol 19:09:06 will the person reading the proposal use windows :D 19:09:13 blockhead: He also uses Linux. 19:09:15 if so, those ascii grx will be mangled 19:09:19 oh, never mind 19:09:23 :D all is well 19:09:23 blockhead: Not if he sets his font correctly. 19:09:36 what windows user sets his fonts correctly? 19:09:43 (aside from me) 19:11:13 define correctly 19:11:57 to a fixed-width font -- such as an antialiased 'vera bitstream'. 19:12:05 fixed width font for reading email and usenet 19:13:13 oh 19:20:23 OK, my respect for the J programming language just shot through the roof. 19:21:01 ? 19:21:03 I am trying to measure the performance of a few vector processing operations, and J is smart enough to realize that, with a=.a+1, the vector space for a is being re-used. So top indicates 0 memory growth beyond 1.5MB. 19:21:36 Which, of course, is absolutely ideal for an interactive programming langauge with garbage collection. 19:21:44 That also means I won't get any GC overhead. Sweet. :) 19:31:32 Woah. I had no idea mplayer did DVD playback in software. 19:41:41 --- quit: Sonarman ("leaving") 19:43:44 kc5tja: I forget the name of that transformation, but its fairly well known. 19:45:04 Well, the DVD video stream is just MPEG-2 19:45:32 But at full-screen, that's a lot of data to be hauling around. 19:45:40 I expected it to use hardware if available. 19:46:30 kc5tja: Not really. The scaling happens in hardware. Ditto for the colorspace transformation. 19:46:52 Most video cards have MPEG-2 decoders in hardware too. 19:47:08 Just feed it MPEG-2 byte stream, and it'll happily churn out video frames. 19:47:09 That too, but usually thats just the IDCT bits. 19:47:34 *nods* Oh. Ok.. I wasn't quite expecting *that*. 19:47:59 :) 19:48:16 kc5tja: you have a dvd drive now? 19:48:18 Yeah. And some cards actually have video capture capability, producing an MPEG-2 stream from a series of captured frames. 19:48:32 fridge: No, but I'm doing some research for a project I might undertake. 19:50:09 I got the aikido collection down to 6 gig after pruing out dupes and really bad quality flicks 19:50:16 pruning 20:01:25 Cool. 20:05:03 Dobroe utro! 20:07:14 asau - I forbid you to say that again unless you first explain to me what it means. 20:09:52 "Good morning" 20:10:12 Why do you say it more frequently than every twenty four hours? 20:10:48 Do you say it every time a rough section of the globe encounters 'morning'? 20:11:03 Because "utro" (morning) is not only "rassvet" (sunrise). 20:11:07 How do you know when this happens? Do you make an estimation based on your local time-keeping? 20:12:12 Damn, the only way to trick J into making a copy of a vector is to do something to it. In my case, I'm adding 1 to it. 20:12:24 And that damn interpreter is every bit as fast as my native C code to do the same thing. 20:12:51 kc5tja: What is "J"? 20:13:02 K, likewise, shows impressive speed. 20:13:16 It's a programming language designed in the same spirit as APL, but which uses plain ASCII character set instead of a unique character set and font. 20:13:44 It's an interpreted language, like BASIC (literally; it interprets its programs literally from source text; it doesn't even tokenize it first). 20:13:45 I wish that someone with something approximating my morals would write as nifty a language. 20:14:21 But because it's an array processing language, and because the primitives are coded in optimized C or assembly (depending; J happens to be written in C), it's nonetheless *incredibly* fast. 20:15:11 For sufficiently large data sets, it is as fast as C, and sometimes faster (because J/APL implementations are usually tailor-compiled for the target host environment, and thus, can optimize cache utilization). 20:15:14 and K, at least, shares something of Lisp/Forth's runtime power. 20:15:47 hmm, you said listp and "runtime power" int eh same sentace. Ummm, something aint right there :D 20:16:08 block - in your knowledge, most likely. 20:16:09 What is "K"? 20:16:24 blockhead: Lisp can be extremely fast. I've used fast Lisps. Impressive work by the compiler (yes, compiler) writers. 20:16:26 Another J? 20:16:32 asau - a similar, even more unlikably distributed language. www.kx.com 20:16:36 ASau: It's a parallel fork of development to J. 20:16:49 * blockhead remembers the alst time I used lisp. THe phrase "molassus" cames to mind. 20:16:51 Both J and K are derived from APL2. 20:17:14 blockhead: Time doesn't stand still. Commercial grade Lisp systems are very fast and produce very efficient code. 20:17:45 whatever. THe lisp I tried was a dog. 20:17:55 block - find something else to talk about. 20:18:21 qyrnieu: hmmmm, what to talk about? 20:18:24 kc5: Do you know any good and portable Scheme compiler? 20:18:24 Whatever. Find a better Lisp implementation. :-) 20:18:37 * blockhead remembers a forth channel somwhere 20:18:43 such as the ability to fix bugs in and add features to a K program at runtime, which I find particularly interesting as most of the languages I like fundamentally lack this ability. 20:18:44 we could talk about ... forth! 20:18:51 asau - #Scheme would. 20:18:55 ASau: One that actually produces good code? No. But Guile is pretty portable. I'm sure Freshmeat can tell you of more. 20:19:15 kc5 - eh, and Guile serves as a famously poor implementation. 20:19:31 ayrnieu: Yes, that's why I made a very important qualification. 20:19:33 Guile sucks ass. 20:19:53 It's big, it's bloated, it's slower than Python. But it's portable. :) 20:20:14 ayrnieu: You're right. I'll ask them. 20:25:09 kc5 - OK. 20:25:42 kc5 - I'd probably like both of them, but find that neither of them have palatable implementations. No worries. 20:34:56 I was thinking about that. 20:35:03 They both require LR parsers to properly parse too. 20:35:11 I would like to play with an implementation that is purely LL parsed. 20:35:14 --- quit: blockhead ("Client Exiting") 20:35:20 I mean, the languages are so *simple* otherwise, why ruin it with a complex parser? 20:35:45 This means that adverbs are *prefixed*, rather than post-fixed, to the verb they modify, which fits in well with the long-right-scope rules of the languages. 20:59:08 cmucl lisp compiler is as fast as gcc 21:04:59 --- join: imaginator (~George@166.70.196.201) joined #forth 21:04:59 --- quit: madgarden (Read error: 54 (Connection reset by peer)) 21:05:34 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 21:26:28 SBCL compiles quite a bit more slowly, since it only took CMUCL's native compiler. 21:26:59 Yeah. Simplify it a bit though. 21:31:30 gcc is slow as fuck 21:32:08 HAHA. This is too funny. I rewrote my performance test from J to GForth, and it runs at *exactly* the same speed. 21:32:21 This tells me that, for as fast as J is, it's nowhere near optimized for the host machine it's running on. 21:32:40 Is J your Forth? 21:32:45 No. 21:33:11 J is a language in the same family as APL. 21:33:52 All in all a nice language, but with the only available implementation being closed-source (though freely downloadable for non-commercial use), it's clearly not performing the best it could. 21:34:31 I'm kind of disappointed by some experiments I've been doing that use gcc. 21:34:32 A year or a half ago Marcel Hendrix proposed interactive math. extensions. With matrices and so on. 21:34:52 ...c.l.f. 21:34:52 * kc5tja nods 21:35:09 APL has niftyness beyond its suitability for such calculations. 21:35:33 I place operators like push, add, sub, and so on between C labels, and then copy the memory between by getting the addresses of the labels with &&. 21:35:54 Oh, J/APL are *sweet* languages, but I'd still use Forth over J/APL for most tasks. I would like to see a vector library written for Forth though, one that competed with J's built-in primitives. 21:36:28 In NetBSD it takes half the time to execute the copied machine code, but in Windows it's almost the same as a bytecode/switch VM. 21:37:05 imaginator: Marcel Hendrix did some experiments, and has shown Windows to exhibit immense peformance loss, just by virtue of running software under Windows. 21:37:17 Apparently, it's kernel has massive overheads that substantially impacts application software. 21:37:34 That would explain why the same number of iterations takes much longer. 21:38:03 This is true even when not invoking kernel services, because task-switch time and virtual memory performance all affect run-times of all software. 21:38:19 I measure clock clicks, and it seems that the resolution is much higher in Windows, but it still takes more seconds to perform. 21:40:57 I was thinking I could copy the machine code, and then skip some goto *next; jumps, but as the performance I'm seeing is so varied I'm kind of doubting whether or not I should. 21:41:13 Then there is the issue of portability. I was hoping to have it work with any processor, but now I'm not so sure it will. 21:41:23 * kc5tja nods 21:42:02 One guy told me about the SF compile farm, so I may try it there and cross my fingers. 21:42:32 I guess what I really want though is a way to generate machine code dynamically, efficiently, and very fast, and yet not bind myself to x86. 21:43:07 Here's a question, do you need to build code dynamically all that often? 21:43:30 Well at least have the ability to copy machine code, so that fewer jumps are needed. 21:44:04 Nutssh - define 'dynamically'. 21:44:10 interactively 21:44:22 Yes, all the time. 21:45:15 At runtime, or some semblence thereof. 21:45:36 Likewise, all the time. 21:45:43 Why do you ask? 21:45:53 Depending on the job, some interpreters have some pretty good performance compared to compiled code. 21:46:26 I prefer systems that compile at runtime for the most part, but OK. 21:46:38 Well, it depends. 21:47:07 Systems that compile at run-time can be broken up into two distinct phases, whose sum total time is Ttotal = Tcompile + Truncode 21:47:26 Interpreted systems can be broken up into two broad time categories too: Ttotal = Tinterpret + Truncode. 21:47:32 Compilation is frequently pretty expensive. 21:47:54 nutssh - in certain systems, sure. 21:47:54 There will be a cutoff when the Tcompile > Tinterpret, where interpretation will actually be faster. 21:48:09 These are expected to be fairly small data sets though. But the fencepost does exist. 21:48:14 I'd break it up into Ttotal = Tinterpretoverhead + Twork. 21:48:37 Nutssh: That's precisely the same as I've quoted above. It's just got different names. 21:50:28 Yeah. 21:52:22 Hmm...OK, J appears to be about 3 times faster than GForth right now. J completed the test in only 25 minutes. GForth is only 1/3rd through. 21:54:04 Hmm...actually about 2x. 21:54:18 I won't know precise numbers until the program finishes though. 21:54:22 Probably in another 30 minutes. 21:54:58 What is the test? 21:55:52 Manipulate 2^50 bytes of data by repeatedly adding 1 to a vector of 4096 32-bit integers, 16,777,216 times. 21:58:09 The data set should fit in the cache. 21:59:34 :hmms. Interesting test, have you compared lisp/ocaml/c with gforth on it? 22:00:07 ugh i hate gforth 22:00:12 No, because I don't know how to go about doing such a test in those languages. 22:00:17 Well, actually, I did use C. 22:00:18 i wish isforth could metacompile/assemble 22:00:27 C finishes the test in 3 minutes flat. :) 22:00:48 It gives a result of somewhere around 12GB/s throughput when compiled specifically for Athlon, with full optimizations enabled. 22:01:15 The code fits in the cache for gcc :-) 22:01:35 Yes, both the code and the data set fits in the cache. 22:01:38 This is deliberate. 22:02:07 Whereas it probably does not for the interpreted languages :-/ 22:02:38 TreyB: Well, I have 512KB of cache, so eventually the data set will be cached. :) 22:02:54 s/data set/working set/ 22:03:06 But then, multitasking will wipe any semblence of cache residency out the window anyway. 22:04:09 Ocaml bytecode compiler takes 1.3 seconds to do 2048 iter. 22:04:34 It certainly has an effect, but you can still see the in-the-cache performance with long enough time slices. 22:04:36 Nutssh: That's about how fast the J code runs. 22:05:14 Nutssh: Actually, for a single run through 4096 elements, it runs slightly faster. 22:05:17 But, compiled, it does 1m in 14 seconds. Which implies 16m in about 3.5 minutes. 22:05:43 E.g., (((4096#0)+1)^:4096) will take just shy of 1 second. 22:06:16 * TreyB thought kc5tja just dropped his modem connection. 22:06:18 * kc5tja nods -- I like ocaml's code generation. Very, very, very good machine code output. 22:06:30 But, C beats it still, interestingly, by 0.5 minutes. :D 22:06:54 How does it generate machine code? How portable is it? 22:06:56 Thats an estimate. Got C code I can compare it with? 22:06:59 Does ocaml generate x86 directly or does it generate C and then compile? 22:07:05 I suppose that the O'Caml colud shave off that much by disabling the array-bounds checking. 22:07:09 TreyB: 4096#0 is a phrase meaning, 4096 consecutive zeros (e.g., a vector of length 4096, containing all zeros). 22:07:20 x86 directly. And its a safe language, so boundschecking *is* enabled here. 22:07:29 TreyB: (4096#0)+1) will result in a vector of length 4096, all containing 1s. 22:07:31 (I'm doing the 16m run right now) 22:07:42 TreyB: (..)^:4096 means execute .. 4096 times. 22:08:08 Terse. 22:08:26 TreyB: You wouldn't like to see the actual test code then. :) 22:08:28 Hence the love. 22:08:58 7 lines of code, much of which can probably be condensed down immensely, but I'm still an inexperienced J programmer. 22:09:18 ayrnieu: Also, what is your CPU? That matters a lot too. Send me the C code so I can compare on the same system. 22:09:32 Nutssh - I think you want to talk to someone else. 22:09:51 Nutssh: I wrote the C code. I can post it here. 22:09:54 It's 21 lines. 22:09:56 Doh, yes, misread that. kc, can you send the code? 22:09:59 DCC send it? 22:10:05 I can't DCC send -- firewall. 22:10:24 #include 22:10:24 static unsigned long buffer1[4096]; 22:10:25 int main( void ) 22:10:29 Mind if he pastes? 22:10:32 { 22:10:32 int i,j,k; 22:10:32 unsigned long *b1; 22:10:43 for( i = 0; i < 4096; i++ ) 22:10:43 { 22:10:43 for( j = 0; j < 4096; j++ ) 22:10:43 { 22:10:49 for( k = 0, b1 = buffer1; k < 4096; k++ ) 22:10:50 *b1++ = *b1 + 1; 22:10:50 } 22:10:54 printf( "%d\n", i ); 22:10:55 } 22:10:57 } 22:11:31 All that, versus this: 22:11:35 w=:(1!:2)&5 22:11:36 q=:2!:55 22:11:36 a=:4096#0 22:11:36 i=:3 : 'a=:a+1' 22:11:36 c=:0 22:11:36 T=:3 : '(i^:4096)''''[w":(":c=:c+1),13{a.,10{a.' 22:11:38 t=:3 : 'q 0[(T^:4096)''''' 22:12:10 w and q are definitions that make use of J's "external" !: operator, which invokes "system-level" or external (e.g., DLL-like) functionality. It's a stupid interface. But, alas, it's what J provides. 22:12:18 I think this is something that K does better than J -- system integration. 22:12:25 (from what little I've read at least) 22:12:32 --- join: Serg (~z@212.34.52.140) joined #forth 22:13:05 w prints a string to the screen (stderr to be exact), and q quits the program. 22:14:06 O. Results: Ocaml with bounds check 3:35. Without 1:54. C 1:15. 22:14:27 Nice. 22:14:33 Indeed. 22:18:29 kc5tja: That looks like line noise. :) 22:19:01 A common complaint amongst those who are unfamiliar with J programming. 22:19:32 :) 22:19:53 And I admit that it's sometimes difficult for me to keep things straight in my head. But you get used to it *so* fast, that I'm finding I am writing my C and Forth code using J-isms. 22:20:21 It strikes me as a dataflow language. 22:20:49 It very much is. 22:21:07 J is largely a functional language, but more in the same philosophy of Backus' FP language than Ocaml. 22:21:26 Is it dataflow? 22:21:30 And, obviously, it's impure. It can exhibit side effects if you desire (which I do in this case). 22:22:06 Nutssh: I think K has better dataflow characteristics than J, but J can be used in a dataflow style. 22:22:19 Ok. Thanks. 22:22:26 For example, you can define 'tacit' functions like mean =. +/ % # 22:22:29 I've not learned a language of that type. I should. 22:22:33 I seem to recall seeing a video about Backus' FP 22:22:42 * imaginator goes to find the link 22:22:49 That's read as "sum over count," and J automatically knows where to put the arguments for it. 22:23:40 However, if you need to take parameters, you need a more bizarre syntax. It's a pity, but it's very powerful in its own right too. 22:23:50 that's why I have 3 : '...' -- that's the special syntax. 22:23:53 http://www.archive.org/movies/details-db.php?collection=opensource_movies&collectionid=AV_Geek_Skip_20021211101202 22:24:07 It says it's for FL. Is FP a newer version than FL? 22:24:29 I think FL is newer than FP. 22:24:58 Backus used "FP" 22:25:17 hi ! 22:25:20 ASau ;) 22:26:18 Dobry den! 22:31:21 --- quit: Ralph ("*") 22:36:58 Hmm...I'm having some trouble fitting everything in my code on one line. 22:37:05 I keep getting domain errors, and I'm really not at all sure why. 22:40:51 Oh well. 22:47:39 imaginator: They need to learn how to make an MPEG file. 22:47:59 I am downloading the MPEG2 file because mplayer apparently hasn't a freakin' clue how to decode the MPEG4 files they have. 22:48:09 Moreover, the MPEG2 file has absolutely no audio content what-so-ever. 22:48:29 (at least, not at the relatively small file size that has been downloaded so far.) 22:49:52 The MPEG4 plays just fine in Windows with Quicktime. I haven't tried any of them with mplayer. 22:50:03 They used to have more of them in DivX format. 22:51:56 I have the DivX codec. 22:52:16 And MPEG-2 format is just too freakin big. 22:58:32 kc5tja: I encoded a few DVDs using XviD which I now see is supposed to do MPEG4. 22:59:04 I'm downloading the 300MB MPEG4 file. It seems to work. 22:59:15 (and has equal video quality to the MPEG-2 version, too.) 23:01:07 --- part: Nutssh left #forth 23:02:35 OK, who the *HELL* is the fucking *RETARD* who requires AutoCONF and AutoMAKE to ./configure;make a program?!?! 23:02:41 (it's a rhetorical question) 23:03:01 kc5 - er, what? 23:03:15 I can't build aumix because it requires autoconf/automake to be installed. 23:03:26 It's not happy with its own ./configure file for whatever reason. >:( 23:03:26 to build itself? How bizarre. 23:04:00 I can't even make-distclean!!! 23:04:08 Fuck this program. Buh-BYE!!! 23:04:46 Anyone know of a good console mixer program besides the borked aumix? 23:05:02 I haven't minded alsamixer, if that applies. 23:05:28 --- quit: ASau (Read error: 60 (Operation timed out)) 23:05:52 setmixer worked OK, as well. 23:07:41 OK, know where I can get a copy that itself doesn't rely on automake either? 23:07:50 * kc5tja tries setmixer instead... 23:08:52 --- quit: ayrnieu ("Changing server") 23:08:53 --- join: ayrnieu (~julian@206.61.132.55) joined #forth 23:09:17 --- quit: ayrnieu (Client Quit) 23:11:39 --- join: ayrnieu (~julian@206.61.132.55) joined #forth 23:12:57 aumix 2.8 appears to be building without a hitch. Apparently it was a makefile bug in 2.7. 23:25:22 --- quit: Serg () 23:27:32 --- join: rO| (rO_@pD9EE1EBC.dip.t-dialin.net) joined #forth 23:27:35 --- quit: rO| (Remote closed the connection) 23:27:37 --- join: rO| (rO_@pD9EE1EBC.dip.t-dialin.net) joined #forth 23:28:00 http://www.ynet.com.au/cgi-bin/forum3-sof.cgi 23:28:27 is offline, error 500 23:28:48 What is it? 23:29:10 sean's forum 23:29:23 sean pringle's forum 23:29:24 Ahh 23:30:24 never had any probs there so far 23:31:14 Error 500 is service unavailable error, no? 23:32:20 internal error, whatsoever.. 23:32:35 Seems like a server problem. 23:32:44 The site probably still exists. 23:32:52 But it's being obscured by some configuration issue. 23:33:20 yes, probably 23:33:31 imaginator: I can't believe this. 23:33:53 This is the third time I tried downloading this file, and it used to play in mplayer, but now it won't!! 23:33:57 WTF is going on here? 23:35:03 There we go. It's working now. *REALLY* bizarre. 23:36:41 You aren't by chance running a version of Linux with strange optimizations? 23:36:49 No. 23:36:55 Nothing in Linux would work then. 23:37:11 But apparently, these MPEG files aren't optimized for streaming, that's for sure. 23:54:29 --- join: ASau (~asau@158.250.48.196) joined #forth 23:55:28 imaginator: So far, what he's describing about FL applies 100% to J and APL. 23:59:59 --- log: ended forth/04.01.19