00:00:00 --- log: started forth/04.04.09 00:18:40 --- quit: Herkamire ("no time for love Dr. Jones") 02:17:24 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 03:38:17 --- quit: fridge_ (Read error: 54 (Connection reset by peer)) 03:47:12 --- join: Serg (~z@212.34.52.140) joined #forth 03:56:23 --- join: fridge_ (~fridge@dsl-203-33-165-89.NSW.netspace.net.au) joined #forth 04:01:22 --- join: networm (~networm@L0625P06.dipool.highway.telekom.at) joined #forth 04:01:37 guten tag! 04:06:15 Hallo 04:06:25 hi 04:06:37 Hi Serg 04:44:05 --- quit: Serg () 05:51:31 --- join: Frek (~anvil@h33n2fls31o815.telia.com) joined #forth 05:59:43 --- join: yeoh (~yeoh@219.95.15.80) joined #forth 06:09:58 --- quit: yeoh ("Client exiting") 08:46:24 --- join: warp0x00 (~warpzero@mi111.dn184.umontana.edu) joined #forth 09:17:35 --- quit: qFox (Read error: 104 (Connection reset by peer)) 09:18:19 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 09:49:29 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 10:06:58 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 10:36:04 y0 10:48:26 hi slava :) 10:48:44 Herkamire, what's new? 10:48:47 i'm working on my compiler. 10:52:05 same old same old 10:58:30 --- join: Count_zero (~llo@202.96.221.26) joined #forth 10:59:07 hi all is i440r around any were??? 11:00:19 ping pong 11:03:12 --- part: Count_zero left #forth 11:06:20 --- quit: networm (Read error: 113 (No route to host)) 11:20:30 --- join: networm (~networm@L0625P11.dipool.highway.telekom.at) joined #forth 12:36:11 --- quit: warp0x00 (Read error: 110 (Connection timed out)) 14:20:44 --- join: wUoNrFk (~unfy@sillyness.org) joined #forth 14:20:55 .... has i440r / mark been around ? 14:47:04 note to yourself: loosing a filling (dental) is not something to look forward to... 14:52:55 --- join: warp0x00 (~warpzero@63-227-173-129.hlna.qwest.net) joined #forth 15:11:09 --- join: wossname (wossname@Toronto-HSE-ppp3699229.sympatico.ca) joined #forth 15:16:07 hi wossname 15:16:34 good evening slava 15:20:45 i'm making a bit of progress with my compiler 15:22:31 you want to spill out your compiler story? i will listen :) 15:23:50 no story yet :) 15:24:15 alright, perhaps later :p 15:25:00 i'm working on stack effect inferencing. 15:28:03 so there is a bit of a story to tell? 15:28:41 actually the inferencing already works. but the compiler is not done, and to finish the compiler it needs more sophisticated inferencing 15:28:48 for partial expressions, of sorts 15:30:02 i'd guess that stack-effect inferencing is related to optimization, but you'll have to tell me exactly what it means now after all that :l 15:30:31 converting concatenative code into local variable passing code 15:31:04 show me the simplest example where this would be applicable. i'm still not clear 15:31:13 : sq ( x -- x^2 ) dup * ; 15:31:17 turn this into: 15:31:25 lambda(x) *(x,x) 15:31:39 (pseudo-code) 15:32:06 then : mag2 swap sq swap sq + sqrt ; 15:32:17 becomes lambda(x,y) sqrt(+(sq(x),sq(y))) 15:32:36 but this is the simple case that already works 15:32:52 it gets much more complicated when recursive words, and words that execute code off the stack are taken into account 15:33:27 ok, i think i might get what you mean. but then, i might not 15:33:40 converting postfix code to register-passing code really. 15:33:45 if i understand what you mean, this is to ease register use? 15:33:50 ah :) 15:34:01 and 'flattening' code that executes code off the stack into specific instantiations 15:34:49 eg, if i have a generic word 'sort' that takes a comparator word off the stack, and i have code ' < sort, i want to compile a specific version of 'sort' with < in place automatically. 15:35:01 my language doesn't write ' < actually, but rather [ < ] 15:36:04 that sounds a mite more complex. have any `flattening' code finished yet? 15:36:40 yes 15:38:02 ;o 15:39:02 do you know forth? you'll be able to understand most of this then: 15:39:03 : mag2 15:39:04 #! Returns the magnitude of the vector (x,y). 15:39:04 [ 15:39:04 sq 15:39:04 ] 2apply sqrt ; 15:39:05 1] "2apply" see 15:39:07 : 2apply 15:39:09 #! First applies the code to x, then to y. 15:39:10 2dup 2>r nip call 2r> call ; 15:40:08 this is compiled into a form where no call to '2apply' is made, and [ sq ] is never pushed on the stack 15:40:28 in fact its compiled into pseudo-code equivalent of: 15:40:33 i don't `know' forth, but i understand the syntax enough to get that snippet. don't pull any real fancy words on me though ;o 15:40:34 x2 = x*x; 15:40:37 y2 = y*y; 15:40:46 return sqrt(x2+y2); 15:41:44 stack-based code optimization is a relatively unexplored field of cs, isn't it 15:41:54 yes 15:41:59 here is my 'max' word: 15:42:00 : max ( x y -- z ) 15:42:00 2dup > -rot ? ; 15:42:07 2] [ max ] balance . 15:42:08 ( X X -- X ) 15:42:18 'balance' just deduces the stack effect 15:42:57 after i finish a few things in the compiler, i will modify the parser to actually *check* the ( ... ) comments in the source code, and print a warning if it doesn't match the infered effect. 15:45:21 i bet if you wrote an article about stack-effect inferencing, you could get it published in ddj 15:45:30 --- quit: warp0x00 (Read error: 104 (Connection reset by peer)) 15:45:58 they'd pay you something on the order of 1000 bucks usd 15:46:17 it's the kind of article i'd like to be getting in my magazine, too 15:46:21 i doubt enough people care about postfix... 15:46:49 its not just inferencing, but transforming stack code into register code 15:50:13 try sending an article to see if they'd be interested. they publish some funny articles sometimes 15:50:21 er, not article, an email :p 15:54:39 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 15:54:49 Hi snowrichard 15:54:54 hello 15:55:08 using netbsd now. 15:55:55 : max ( a b -- max ) 2dup > if drop else swap drop then ; 15:56:19 I dropped NetBSD a long time ago. :) 15:58:24 hey snowrichard 15:58:32 hello slava 15:59:01 qFox, in fact, my ? behaves exactly like in forth : ? if drop else swap drop then ; 15:59:27 oh? 15:59:41 i thought ? was : ? ( adr -- ) @ . ; 16:01:37 yes but in forth :) 16:01:47 --- quit: snowrichard (Remote closed the connection) 16:02:08 in fact my $ is forth's @, and my @ is forth's ! :-) 16:02:31 oh 16:02:36 just to keep it simple? 16:02:36 :p 16:02:48 because i didn't know forth when i started writing this! 16:02:49 but then your max is longer then mine :p 16:02:57 because of the -rot 16:03:08 (why is that -rot there anyways?) 16:03:48 actually my ? is like : rot if drop else swap drop then ; :-) 16:03:57 it has effect ( a b c -- b/c ) 16:04:02 pushes b or c depending on truth of a 16:04:33 yea like the "normal" ? in several languages 16:05:36 doesnt it confuse you to write code with words that mean something completely different for other forthers? 16:06:30 [ signals the start of a list, ] signals the end :) 16:06:33 i bet that's confusign :) 16:06:49 "whoa! his code keeps on switching the compiler on/off!" 16:07:05 :p 16:07:37 that's just the true spirit of forth. don't be bound be what others do/did :) 16:07:55 i'm more bound to lisp than forth. i have words named car, cdr, cons, and so on :) 16:08:00 at least, someone explained it like that to me :) 16:08:04 not familiar with lisp 16:08:21 you should be, its a nice langugae. 16:08:41 yes, sure, you can just try to swim up the river into the stream, but you could just as easy swim down the river and get the same result... 16:09:58 i mean, it doesnt bother me that forth itself behaves and looks and w/e differently from other languages, but i would think that forthers amongst themselves could at least stick by some standard, to help eachother or whatever 16:09:58 if i wanted to swim downstream, i wound't be implementing my language on top of the bloody JVM! :) 16:10:11 Heh., 16:11:31 the problem is my lang is too different from forth to make a meaningful 1-1 translation possible anyway. 16:11:39 control flow is done completely differently 16:12:51 i kinda meant it in general. i noticed that more forthers have this behaviour :p 16:13:06 like to distinct their forth from the rest 16:13:34 oh oh 16:13:35 ERROR: java.lang.NoSuchMethodError: factor.compiler.gen.__GENSYM____0.aux0(Lfactor/FactorInterpreter;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V 16:13:45 wtf.. 16:14:04 thats a long list :p 16:14:23 --- part: wUoNrFk left #forth 16:18:32 --- join: Sonarman (1000@adsl-64-160-165-91.dsl.snfc21.pacbell.net) joined #forth 16:21:21 hm what ranges of BASE is NUMBER? "supposed" to be able to convert? 16:21:28 2-15? 16:21:46 hm 1-15 or 2-16, 2-15 is wrong :p 16:23:04 thinking of a good fast and simple way to convert but i cant think of any yet :p 16:37:50 --- quit: networm ("Client exiting") 16:41:47 --- quit: fridge_ (Read error: 104 (Connection reset by peer)) 16:58:44 --- join: blockhead (default@dialin-748-tnt.nyc.bestweb.net) joined #forth 17:46:50 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 17:46:55 --- mode: ChanServ set +o kc5tja 17:52:02 hmmm, so far i've got, get char, sub 48, if < base, add digit value to total, get next char. starting from the lsb, which allows easier totalling of the digitvalue, but making it harder because you have to start scanning from the right (since user input is little endian) 17:52:08 more later, sleep now. 17:52:36 --- quit: qFox ("if at first you dont succeed, quit again") 17:59:31 --- join: TheBlueWizard (TheBlueWiz@pc56dn1d.ppp.fcc.net) joined #forth 17:59:31 --- mode: ChanServ set +o TheBlueWizard 17:59:36 hiya all 18:00:41 Hi TheBlueWizard 18:00:50 hiya Robert 18:12:02 --- quit: wossname ("where have all the flowers gone") 18:14:11 re TheBlueWizard 18:14:53 hiya Klaw 18:14:55 oops 18:14:58 hiya kc5tja 18:15:02 :) 18:15:14 what's new? 18:15:57 The UART design did not go over all that well with the folks on 6502.org; it's not that they didn't like it, but they apparently were expecting me to come out with my asynchronous bus interface as my first product. 18:16:59 You can read the preliminary datasheet for the UART at http://www.falvotech.com/datasheets/fts1001.pdf 18:17:49 sounds like those guys were expecting something more ambitious from you :/ 18:18:02 Yeah 18:18:16 I'm working on the FTS1002 right now, which is the Kestrel's bus interface chip. 18:18:26 though I can see some uses for async I/O.... 18:19:20 of course when you rake in some good dough, you can always plan for Kestrel II or something like that 18:19:27 The FTS1002 provides the 65816 or 6502 an interface to the K-Bus, my own implementation of the Wishbone bus suitable for use as a backplane expansion or motherboard bus. 18:20:00 My old asynchronous bus design is actually a proper subset of Wishbone, so I decided to just go ahead and use the full Wishbone bus interface spec. 18:21:27 um...I gather you are changing your plan re: I/O bus (e.g. dropping UART)? 18:21:36 No. 18:21:42 The UART was never intended to drive the PIB. 18:21:50 PIB uses a different, more efficient serial format. 18:23:03 It's asynchronous with respect to individual bytes, but once a byte is being transmitted, the serial line associates a clock with each bit, so it's fully synchronous within a given byte. That eliminates the need for a start or stop bit, at the expense of a wire. 18:25:33 Although the idea of an asynchronous serial bus (where clocking for each bit is totally asynchronous) intrigues me. 18:25:53 It would have a DATA output, CLK_O and CLK_I output and inputs. 18:26:19 The idea is data goes valid on DATA, then CLK_O changes state. The next bit is put on DATA only when CLK_I matches CLK_O. 18:27:40 If everything is kept short, something like this ought to easily get into the megabit, possibly even gigabit, per second range, assuming the lines are kept short. 18:27:57 that arrangement could simplify the design in some ways, methink...but possibly at risk of making software coding a bit more complicated 18:28:54 No. 18:28:59 Software wouldn't know the difference. 18:29:24 After every byte transferred, the CPU would receive an interrupt OR the DMA engine would fetch the next byte. 18:29:41 As far as the CPU is concerned, using this kind of serial port is just like using a regular UART. 18:30:04 ok 18:30:20 The electronics for it is subtly more sophisticated though. 18:30:30 It now takes three wires to do what used to be done only in one. 18:31:06 Three for one! One for Three! Yaa! 18:31:19 But the advantage is, you never have to worry about clocking and whether or not you'll sync up with the receiver; it's entirely automatic. :) And the serial line *always* transmits data at the best possible speed. 18:32:08 autocalibrating...very nice! 18:32:30 Well, that's the nice thing about any "clockless" circuit. 18:32:37 Even Chuck's CPUs ran totally asynchronous. 18:32:45 (though they still needed a bus clock to drive the SDRAM interface.) 18:35:08 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 18:46:46 --- quit: tathi ("leaving") 19:21:55 --- quit: Sonarman (Read error: 110 (Connection timed out)) 19:35:15 --- join: Sonarman (1000@adsl-67-113-235-163.dsl.snfc21.pacbell.net) joined #forth 19:37:42 --- join: roliver (roliver@roliver.registered) joined #forth 19:48:36 --- join: thin (~thin@csnet029.cariboo.bc.ca) joined #forth 20:00:27 --- quit: ChanServ (kornbluth.freenode.net irc.freenode.net) 20:00:27 --- quit: Robert (kornbluth.freenode.net irc.freenode.net) 20:00:27 --- quit: madwork (kornbluth.freenode.net irc.freenode.net) 20:00:28 --- quit: kc5tja (kornbluth.freenode.net irc.freenode.net) 20:00:28 --- quit: OrngeTide (kornbluth.freenode.net irc.freenode.net) 20:00:28 --- quit: o-- (kornbluth.freenode.net irc.freenode.net) 20:00:28 --- quit: roliver (kornbluth.freenode.net irc.freenode.net) 20:00:29 --- quit: warpzero (kornbluth.freenode.net irc.freenode.net) 20:00:30 --- quit: mur (kornbluth.freenode.net irc.freenode.net) 20:00:30 --- quit: Klaw (kornbluth.freenode.net irc.freenode.net) 20:00:30 --- quit: thin (kornbluth.freenode.net irc.freenode.net) 20:00:30 --- quit: TheBlueWizard (kornbluth.freenode.net irc.freenode.net) 20:00:31 --- quit: ianp` (kornbluth.freenode.net irc.freenode.net) 20:00:31 --- quit: ianp (kornbluth.freenode.net irc.freenode.net) 20:00:31 --- quit: skylan (kornbluth.freenode.net irc.freenode.net) 20:00:31 --- quit: Sonarman (kornbluth.freenode.net irc.freenode.net) 20:00:32 --- quit: slava (kornbluth.freenode.net irc.freenode.net) 20:00:32 --- quit: Herkamire (kornbluth.freenode.net irc.freenode.net) 20:00:32 --- quit: cmeme (kornbluth.freenode.net irc.freenode.net) 20:00:32 --- quit: madgarden (kornbluth.freenode.net irc.freenode.net) 20:00:33 --- quit: blockhead (kornbluth.freenode.net irc.freenode.net) 20:00:33 --- quit: Frek (kornbluth.freenode.net irc.freenode.net) 20:00:34 --- quit: chandler (kornbluth.freenode.net irc.freenode.net) 20:01:02 --- join: TheBlueWizard (TheBlueWiz@pc56dn1d.ppp.fcc.net) joined #forth 20:01:02 --- join: thin (~thin@csnet029.cariboo.bc.ca) joined #forth 20:01:02 --- join: roliver (roliver@roliver.registered) joined #forth 20:01:02 --- join: Sonarman (1000@adsl-67-113-235-163.dsl.snfc21.pacbell.net) joined #forth 20:01:02 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 20:01:02 --- join: blockhead (default@dialin-748-tnt.nyc.bestweb.net) joined #forth 20:01:02 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 20:01:02 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 20:01:02 --- join: Frek (~anvil@h33n2fls31o815.telia.com) joined #forth 20:01:02 --- join: ianp` (nobody@c-24-13-109-164.client.comcast.net) joined #forth 20:01:02 --- join: OrngeTide (orange@rm-f.net) joined #forth 20:01:02 --- join: Robert (~snofs@c-f55a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 20:01:02 --- join: madwork (~madgarden@derby.metrics.com) joined #forth 20:01:02 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 20:01:02 --- join: ianp (~user@inpuj.net) joined #forth 20:01:02 --- join: ChanServ (ChanServ@services.) joined #forth 20:01:02 --- join: o-- (o@virgo.bombsquad.org) joined #forth 20:01:02 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 20:01:02 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 20:01:02 --- join: Klaw (~anonymous@ip68-225-235-97.oc.oc.cox.net) joined #forth 20:01:02 --- join: chandler (~chandler@chandler.registered) joined #forth 20:01:02 --- join: skylan (~sjh@vickesh01-4708.tbaytel.net) joined #forth 20:01:02 --- join: madgarden (~madgarden@65.93.147.147) joined #forth 20:01:02 --- mode: irc.freenode.net set +ooo TheBlueWizard kc5tja ChanServ 20:05:40 --- quit: blockhead ("Client Exiting") 20:12:05 --- quit: thin ("Leaving") 20:12:26 Gahh!! 20:12:31 I just received a phone call. 20:12:38 It was my ex-roommate. 20:12:43 He's coming down to hang out. 20:12:49 First time in . . . a year. :) 20:16:28 is that a good thing? :) 20:16:57 Yes. 20:17:04 We're actually going to hang out tonight, and see a movie. 20:20:08 --- part: roliver left #forth 20:20:15 :) 20:33:26 have you picked a movie? 21:40:46 bye all 21:44:12 --- quit: Sonarman (Read error: 60 (Operation timed out)) 21:44:18 --- part: TheBlueWizard left #forth 22:05:44 --- join: Sonarman (1000@adsl-64-160-165-66.dsl.snfc21.pacbell.net) joined #forth 22:09:08 --- join: thin (thin@bespin.org) joined #forth 22:09:28 where is scandisk in NT? 22:09:47 nah nevermind 22:15:03 anyone here? 22:23:10 --- mode: ChanServ set +o thin 22:37:53 hi thin 22:38:34 hi 22:39:16 how's the new website coming along? 22:39:35 hmm 22:40:04 good question.. 22:40:15 i got the CMS up the forums up, but that's about it.. 22:40:39 i haven't really started on the other aspects. 22:41:02 cool 22:41:18 have you decided upon forthology as the name? :) 22:41:20 what features do you expect it to have? 22:41:37 don't ask me :) 22:41:47 come on 22:41:50 think ;) 22:42:19 think? oh boy, i hope i remember how... 22:42:53 heh 22:42:58 well, i suppose an index of forth code 22:43:15 what would be the main thing you'd wnat to get out of the site 22:44:15 i don't know. sorry 22:45:22 hang on 22:46:29 heh 22:46:55 If you provide community features (forums, code upload/rating/comment), and a repository of documents, and other such neat things, it might be cool if you designed a custom protocol to access those things (of course they could still be accessed through the web) so that... i don't know... you could access the services without having to use a web browser 22:47:47 that would make it easier to access from colorForth, for one thing hehe :) 22:56:29 --- quit: Sonarman ("leaving") 22:59:47 heh :) I like the custom protocol idea 22:59:53 http is a mess 23:00:19 as is html 23:05:12 rrrrrrr why don't computers have decent clocks in them? 23:43:44 --- quit: Herkamire ("me tired") 23:44:31 --- join: thin_ (thin@bespin.org) joined #forth 23:44:40 --- quit: thin_ (Client Quit) 23:59:59 --- log: ended forth/04.04.09