00:00:00 --- log: started forth/03.05.04 01:13:16 --- join: a7r (~a7r@206.72.82.135) joined #forth 01:13:18 yoh 02:12:52 --- join: lucid (lucid@mercenary.switchninja.net) joined #forth 02:32:12 hi 02:32:46 hey 03:47:33 --- quit: a7r ("Client exiting") 03:48:34 Morning 03:56:34 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-74.dad.adelphia.net) joined #forth 03:56:48 lucid? the language? 03:57:02 --- join: a7r (~a7r@206.72.82.135) joined #forth 04:00:55 --- join: mur (murr@baana-62-165-187-213.phnet.fi) joined #forth 04:23:15 --- quit: a7r ("Client exiting") 04:53:15 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 04:54:22 Hi ramnull 04:54:53 Whats up? 04:55:27 * Robert codes a bit. 04:56:01 * ramnull is trying to get a handle on the Linux termios. 04:56:12 Good luck :) 04:57:26 Tempted just to write my own termios specifically for the Framebuffer. The standard one is a bitch. 05:00:24 bbl 05:00:27 --- quit: ramnull ("This isn't Happy Hour!") 05:08:31 --- quit: gilbertdeb ("Monk has left the building") 05:23:15 --- join: tcn (~tcn@tc1-login46.megatrondata.com) joined #forth 05:24:30 Hi tcn 05:24:34 hey 05:44:26 --- quit: tcn ("TinyIRC 1.1") 05:56:40 --- nick: mur -> mur__A 06:12:12 --- join: PoppaVic (~pfv@s28.waters.gtlakes.com) joined #forth 06:13:39 Hi PoppaVic 06:13:47 hi Robert 06:18:56 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-74.dad.adelphia.net) joined #forth 06:19:09 gilbert :) 06:19:45 hi Robert 06:19:47 I spent the prev afternoon diddling those notes ;-) 06:20:28 terve gilbertdeb! 06:20:32 hi gil 06:20:38 terve mur! hi PoppaVic 06:20:51 I just came across this little machine -> http://www.vttoth.com/vicproc.htm 06:21:01 loading 06:21:50 My thoughts on yesterdays "debate" are still a trifle fuzzy, but I believe the idea is gelling 06:22:35 is a commonforth at hand? 06:22:47 will it be as LARGE as commonLisp? or as LARGE as scheme? 06:22:50 I dunno - It's not a minor project. 06:22:55 I prefer a scheme large :) 06:22:57 oh, certainly not 06:23:07 Not bigforth-large, anyway 06:23:19 I dunno how big scheme is. 06:23:28 its specs are 50 pages excactly. 06:23:34 Gil? Can you take a dcc? 06:23:42 I believe so. 06:23:52 commonlisps' specs are 1000+ pages. 06:23:58 hold up - I'll try to send. 06:24:37 good deal 06:24:51 received. 06:25:27 The first part tries to summarize all our noise.. then I try to puzzle out what it seems needs more noise. 06:26:36 ANS sucketh. 06:26:39 Succinct. 06:26:44 heh 06:28:22 how does C do its string library thingy? 06:28:27 is it written in c? 06:29:06 I can't ever tell you with certainty what was asm what was C - C is translated to asm to compile. And, what string library? 06:29:28 ummm string.h no? 06:29:32 re: above - unless you have the source, you'll never know 06:29:36 or was stdio.h? 06:29:53 but, the .h is just a header - the string words are all w/i libc 06:30:03 gcc is too large to diddle with, regarding its headers and such. 06:30:23 that makes no sense. 06:30:34 for finding out what goes where. 06:30:44 there are #includes everywhere. 06:30:50 what-what goes where? 06:30:56 also, I lacked the minimal patience required. 06:31:05 API's 06:31:09 I wanted to find out what the primary .h library was. 06:31:27 again: there is no ".h library" 06:31:57 with gcc, you usually get -lc linked for free, and -lm is an option. 06:32:30 i meant the stuff in /usr/include/ 06:32:57 those are merely defines, prototypes and dependencies on others of the same. 06:33:59 yer another asm-head, right? I mean, even moreso than Forth? 06:34:22 :D 06:34:34 I can barely read c. 06:34:51 for you, using "gcc -S somefile.c" is going to be the most fun. 06:35:07 I do that on irix a lot. 06:35:15 still learning MIPS asm 06:35:46 yeah, I do it periodically - hey! I actually used inline asm the other day! asm("leave; ret"); worked just as expected! whee! 06:35:56 hehe 06:36:24 Well, the easiest way to think of C is: it's a "universal assembler". 06:36:41 ..and the programmer is the lucky snot that acts as the "preprocessor" ;-) 06:36:41 yes but the C-heads aren't willing to admit its an asm. 06:37:04 I try to never look at the asm - chances are I wouldn't understand it anyway. 06:37:54 All that matters is: I write my C - and your box generates & compiles the asm - I'm happy, you're happy - and damn the assembler ;-) 06:38:11 The asm thanks you for damning it. 06:38:32 :) come the day when you have to go under the hood ... 06:38:36 I always liked that about C... 06:39:08 I never look at asm unless I'm just curious. There is no point to it, because of the platforms we all run. 06:39:27 I suppose its a little like html. 06:39:31 yep 06:39:37 you only need to do a page in html once. 06:39:42 C is a translator & Pop is happy. 06:40:00 So is bsd, linux, solaris, ibm, and a mac ;-) 06:40:24 do you have an ibm? 06:41:07 yeah, my frankenstein just keeps getting body-part replacements ;-) Well, ok "PC" - never woulda' paid what my dad did 06:41:23 heheh. 06:42:07 I almost bought a copy of K&R the other day. 06:42:21 I still have my '78 copy ;-) 06:42:40 is that what you learnt C from? 06:42:54 Do yourself a favor, though: never, EVER try to puzzle out how to lex c-source.. 06:43:16 :) too complimacated? 06:43:20 yeah, K&R, turbo-C/C++ and a few others as time went on. 06:43:49 complicated? well, let me put it this way - I can read C ok, but apparently the syntax is a real monster. 06:44:39 every once in awhile I think about a C scanner/parser in Forth... But, I really don't feel up to that horror. 06:45:17 so who writes scanner/parsers for C then? 06:45:39 not me, thank bog... gcc is a GNU mess. 06:46:46 I even have a couple packages of lex/yacc code for C (supposedly) - and I simply can't puzzle out lex/yacc well enough to embrace it. 06:48:19 some person wrote a fortran-to-forth thing, have you ever seen it? 06:48:35 hmm.. I think I did once-upon-a-time. 06:49:26 is fortran as big a nightmare as C is to parse? 06:49:45 I haven't seen any fortran in over 20 years - nearly 30. 06:50:38 WHat makes me chuckle is - I've been mulling - waaay back of the mind - using forth to generate C ;-) 06:51:12 hmmm. the way C generates asm? 06:51:19 yes, exactly. 06:52:00 It certainly beats writing a whole new language. 06:52:38 I don't know of forth, but I know there is such a thing for scheme. 06:52:46 Scheme generating C. 06:52:53 heh - instead of "asm("...");" - forth could also add "c( ... )c" ;-) 06:53:30 a few people might protest. 06:53:35 Asm is beloved. 06:53:37 or, the {C ... }C form - which aligns nicely ;-) 06:54:27 well, if that forth - (which forth? ;-) - has an assembler - why complain? 07:05:50 --- nick: gilbertdeb -> gilbertbrb 07:30:46 --- join: sifbot (~sifforth@h0010a4f71d3d.ne.client2.attbi.com) joined #forth 07:30:46 Type sifbot: (or /msg sifbot to play in private) 07:30:59 * PoppaVic sighs 07:38:47 * PoppaVic idolates 07:39:27 sifbot: .( (:) 07:39:28 Robert: (: 07:39:40 I hate that thing. 07:42:37 --- nick: mur__A -> mur 07:55:18 --- nick: gilbertbrb -> gilbertdeb 07:55:47 So you've told us :) 07:55:57 And I couldn't help teasing you a bit 07:56:16 S'ok, I now ignore it. 07:56:21 :) 08:52:13 * PoppaVic piddles with the CommonFORTH file.. 09:12:48 * fridge hmms 09:12:52 Hmm 09:21:54 Yeah, our fridge hums too 09:54:32 --- join: GnuVince (~vince@modemcable101.50-130-66.mtl.mc.videotron.ca) joined #forth 09:55:48 I got given a sun 3/80 09:55:53 needs new nvram thouhg 09:56:01 not sure if its worth bothering with 09:56:08 20mhz of RAW POWER! 09:59:56 :) 09:59:57 Neat 10:08:51 --- quit: XeF4 (Remote closed the connection) 10:08:54 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 11:18:46 --- join: kc5tja (~kc5tja@ip68-8-206-137.sd.sd.cox.net) joined #forth 11:19:42 Hi kc5tja 11:19:47 re 11:19:48 What does your quit message really mean? 11:19:50 hi kc5tja 11:20:00 Can't stay long; I still need to finish my homework. 11:20:05 Okay.. 11:20:23 THX: Thanks 11:20:30 QSO: for the QSO (for the conversation) 11:20:34 ES: and 11:20:45 73: Good bye, have a nice trip, etc. 11:20:48 DE: This is 11:20:54 KC5TJA/6: KC5TJA/6 11:20:56 clog: Clear 11:21:02 uhh no 11:21:04 CL: Clear 11:21:06 ES: And 11:21:12 QRT: Ending transmission 11:21:22 AR: End of transmission 11:21:26 skylan: Silent key -- off the air. 11:21:29 jesus 11:21:34 SK: Silent Key -- off the air 11:23:06 Hah. Thanks :) 11:23:18 I hope you excuse me for asking, but it looks a bit cryptic. 11:23:22 Like Forth... 11:23:42 Unless you're a ham radio operator, it is cryptic. :) 11:24:38 And even then, more often than not, you'll find the above in RTTY, morse code, and one of the numerous *TOR modes of operating. You don't hear many prosigns used for voice communications. 11:25:16 It's a lot faster to send "73" over 31.5bps PSK31 than "Goodbye", even with PSK31's Huffman-encoded character set. :) 11:25:24 Ditto for morse code. 11:25:44 That would be pretty useless, _saying_ 73 instead of bye, etc. 11:25:57 People say it all the time. 11:26:07 It's a colloquialism. 11:26:26 But you'll very rarely hear people say, "Joe, are you QRO or QRP?" 11:26:38 Normally, they'll just ask, "Are you high or low power today?" 11:27:08 But on CW (Continuous Wave; aka Morse Code), you'll often see, "Joe -- QRO or QRP?" 11:28:00 The Q-codes have international meanings too, so you can actually hold limited conversations with people who do not know your language. 11:31:17 Wow. That's quite neat. 11:31:19 Speaking of which, I need to fix my 2m antenna so I can check my BBS e-mail... 11:32:21 Need to tie down the feed point so the wires will stop breaking on me in the wind. 12:02:28 --- quit: lucid ("BitchX-1.0c19 -- just do it.") 12:02:32 --- join: crc (crc@AC882B05.ipt.aol.com) joined #forth 12:39:18 Oh well. My lunch break is over; I need to get back to homework. 12:39:43 --- nick: kc5tja -> kc-hw 12:45:09 --- part: Klaw left #forth 13:06:39 --- quit: crc ("Leaving...") 13:24:00 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 13:37:03 --- quit: ramnull ("This isn't Happy Hour!") 13:45:05 --- join: divgrad (~wer@81.25.33.236) joined #forth 14:15:15 --- join: a7r (~a7r@206.72.82.135) joined #forth 14:15:17 hey 14:15:43 ho 14:17:16 anyone tried parsing XML w/ Forth? 14:17:38 stfw - there is a nice, big package out there ;-) 14:17:51 I have been STFW, I'm lacking hits. 14:18:27 what should I be searching on? 14:18:28 use figUK as your starting point, or taygenta (sp?) 14:29:41 --- nick: kc-hw -> kc5tja 14:43:49 --- quit: divgrad () 14:45:01 kc5tja: have you seen this: http://www.vttoth.com/vicproc.htm 14:46:58 No, but it looks cool. 14:47:06 His 4-bit CPU does a heck of a lot more than mine did. :) 14:47:46 I wonder how cheap his components are! 14:51:03 his machine looks a lot like it could have come from a lego set too. 14:52:46 The components aren't that expensive, but they are time consuming to wire up and all. 14:53:37 got some more done, thinking of 'sizes" refs.. 14:54:05 so essentially, what he's done is created a cpu from parts. 14:54:17 I wonder how easily such can be done for a forthy system. 14:54:27 eww 14:54:40 eww? ;) 14:55:14 its a blazingly fast 4mhz 14:55:16 why in the hell would you want a "forthy" pile of chips pretending to be a cheap-assed 4-bit cpu? 14:55:33 a stack machine! 14:56:03 * PoppaVic uses The Chair - liberally - about gilbertdeb's head & shoulders 14:56:27 hehehe. Should I buy a forth chip instead? 14:56:44 * PoppaVic switches to The Club... 14:57:06 you can then go walk around the streets with a holier-than-thou attitude towards everything 14:57:37 why would I do that? no one'll notice! 14:57:48 btw, last I heard, figUK had boards avail with such things. 14:58:04 really? how much are they? 14:58:08 --- quit: mur ("MURR!") 14:58:11 and when was 'last'? 14:58:32 check their page(s) - I can't recall, and I don't understand "pounds" at all 14:58:57 Building a stack processor out of discrete components should not be hard. I was planning on building myself a 16-bit stack CPU that way myself several years ago. I just never got around to doing it. 15:01:55 I've a perfect record with designing a chip-circuit: they always go up in smoke. 15:02:15 ..never seem to get the caps & resistors right *^/ 15:03:04 :) 15:03:17 Heh 15:03:31 stop feeding it 220volts then! 15:03:44 few of my designs go up in smoke, but few work right off the bat too. It usually takes me a bit to get things working. 15:04:13 gilbertdeb: Hehe, that reminds me of something that happened in my digital electronics class while I was attending MVCC. 15:04:47 I'd love to figure it out... My boards are always neat, the solder-joints perfecto.. I just suck at "Gee, I'll throw together.." 15:04:49 Someone thought he was going to be smart, and design a super-cheap power supply by building a voltage divider across the 120V AC lines using resistors, then rectifying the output right down to 5V directly. 15:05:07 It worked, until the person accidently bridged one of the resistors with a wire from another component. :) 15:05:27 wow. Nice spark-display 15:05:31 He blew the ceramic tops off several of his chips clean. 15:05:33 smelly, too 15:05:53 The semiconductor was fully exposed. However, the power supply connections had vaporized. :D 15:06:03 Heh, yeah. 15:06:11 He passed the project on humor value alone. 15:06:17 :) 15:06:29 The teacher couldn't stop laughing about it, clear up to the finals. :D 15:07:29 sheesh 15:09:22 Oh well, break over...back to work for me. 15:09:29 Looked over that file at all, kc5tja? I know you were doing some homework. 15:09:29 * kc5tja can't wait for this damn assignment to be done and over with. :( 15:09:34 ahhh 15:09:39 OK. 15:09:45 Yeah, I have a frigging insane English project homework to do. 15:09:56 ah-hah ;-) 15:10:16 15 page persuasive essay with at least 12 documented sources, an outline, etc, and it has to have an ethical element to it. 15:10:21 gilbertdeb: yer an ASM-head, yes? 15:10:39 geezus - sounds like a damned debate-class shitpile. 15:11:15 I enjoyed the class, but this one assignment is dragging me down. It's taking a lot of my time, and I feel like I'm getting nowhere fast with it. :( 15:11:21 Well, be noxious: pick a Libertarian or even Radical Democrat stance ;-) 15:11:28 PoppaVic: evolving :) 15:11:55 PoppaVic: I'm doing it on renewable energy supply, and how we're lightyears behind other countries. That's about as "green" as you're going to get. :) 15:11:55 gilbertdeb: well, I asked in order to see how thee might write this silly file. 15:12:08 kc5tja: what is your topic? 15:12:24 PoppaVic: push it on kc5tja. he has more experience :D 15:12:31 kc5tja: hmm - nah, a "green" would eat it's newborn to plant a lousy shrub. 15:12:55 gilbertdeb: not tonight - I can see kc5tja is busy as a one-legged man in an ass-kickin' contest. 15:13:00 I think you're confusing green with tree-hugger. I'm not a tree-hugger. :) 15:13:22 Anyway, back to the word processor... 15:13:25 --- nick: kc5tja -> kc-homework 15:13:35 kc5tja: maybe ;-) OTOH, militant "greens" make tree-huggers look lame ;-) 15:14:12 heh. Proof that I'm not a tree-hugger: I drive a Mazda RX-7. 'nuff said. :D 15:14:35 I like my truck.. It waves as I get passed ;-) 15:15:15 heheh. the figUK folks are doing quite a bit. I missed their irc session on ircnet yesterday though :( 15:15:21 I pass people all the time. :) However, it gets 17MPG city and 24MPG freeway. But it's a rotary engine, and that's all I care about. 15:15:37 Yeah, I always liked the wankel ;-) 15:15:46 ..that, and the sterling. 15:16:05 Yes! The Stirling engine is awesome! 15:16:21 Ericcson engines too, but they've got too many moving parts for my liking. 15:16:24 * PoppaVic remembers the Fat Albert schtick about the Merc with a Cessna engine in it ;-) 15:17:30 Cheaper to buy a OS radial-engine than their dinky Wankel, though.. Bastards. 15:19:30 Wankels aren't dinky. They seem dinky only because they're pre-choked from the factory. If you port a stock 13B naturally aspirated, it'll fly at 250HP easily. 15:19:45 no - the .30 OS wankel 15:20:01 Actually, the 13B RENESIS in the soon-to-be-released (drool!) RX-8 is 250HP, and even it is pre-choked, but not as much. :) 15:20:06 Oh, I'm not familiar with those. 15:20:12 .. the radials are 2x or more bigger, for less - for a model, the cost is prohibitive. 15:20:32 Oh, this is for model aircraft? Cool! :) 15:20:43 last I looked, they wanted $299 for that little wankel 15:21:06 What is its power output? 15:21:06 Yeah, glow-plugs and all ;-) 15:21:20 Sweet! No spark ignition! Air cooled no doubt. 15:21:32 Couldn't tell you offhand, they don't even have the picture in the flyer I picked up last month. 15:21:52 yes, certainly - it's only for planes like... 60" wingspan. 15:22:20 I would expect they have a website though - for later reference & fun ;-) 15:22:47 * PoppaVic is rather peeved that the nips are building almost every R/C engine on the damned planet. 15:24:45 I wish I had a milling system setup. I have tons of ideas about using a bi-rotor Wankel to make a valveless Ericsson engine. 15:25:41 yeah, I've seen model-mags that show retired mechanics doing shit like that.. I dunno which was more impressive, the straight-12 or the radial I saw - both to scale, naturally. 15:26:03 mechanics/machinists ? I can't recall. 15:26:16 Hmmm...straight-12 would have a lot of flex in its crank, I'd suspect. :D But it would sure look neat. :D 15:26:32 Especially polished. 15:26:42 I think it was for an aircraft, but it might have been like a Dusenberg. 15:26:58 Yeah, the color photos make you cry. 15:27:22 oh: and both were spark-ignition, no less 15:28:04 bbl 15:28:05 * kc-homework is currently experimenting with pop-pop engines and Tesla turbines, because they're easy to hack up at the house. 15:28:05 --- part: gilbertdeb left #forth 15:28:24 no idea - can't recall ever seeing one. 15:29:01 The simplest pop-pop engine is just a copper tube, coiled at one end, with the open ends submerged in water. 15:29:15 ah? 15:29:22 Heat at the coil (the flash boiler) causes a bubble of steam to eject the remaining water out the open ends of the tube. 15:29:27 (thus, thrust is produced) 15:29:28 oh - ok, I remember that url from the other day 15:29:51 right - sucking in cool water as well. 15:29:55 The Tesla turbine is a bladeless turbine, which relies of viscous drag or fluid adhesion (depending on who you talk to about them) to spin a shaft. 15:30:18 hmm well, if you ever have an url with pictures, let me know ;-) 15:30:47 I can get you a scientific paper on the thermodynamic efficiency of one. :) 15:30:55 It has pictures in the back. 15:31:03 the math would be welllll beyond me ;-) 15:31:40 Well, I can't access the site anymore. I no longer have permission. Fortunately, I have a local copy of the document, because I just knew something like this was going to happen. BUaauahahahaha! 15:31:50 heh 15:32:19 http://www.geocities.com/vair65_2000/tesla/ -- has computer generated CAD pictures. 15:32:35 The top three are a Tesla turbine (with throttle control); the next two are tesla pumps. 15:33:21 loading 15:34:27 The research paper I have indicates that a single Tesla turbine stage has a thermodynamic efficiency between 15% and 25%, depending on how heavily it's loaded. 20% is average across most of its loading range. While not the best a turbine can get (bladed turbines can get higher efficiencies), you cannot deny it's damn simple to build and experiment with. :) 15:45:56 weird. 15:49:55 When I first saw that turbine design, I built one to prove to myself that it wouldn't work. 15:50:05 Now that's the only turbine design I'll consider for home projects. 15:50:20 I have zip facilities - still trying to see an image that runs fuel into it. 15:50:44 What turned me off the first time was all the "Tesla conspiracy theories" surrounding it, and the whole new-wave atmosphere around the turbine. 15:50:58 They don't exist. 15:51:02 Nobody has done it. 15:51:04 Ever. 15:51:15 Steam is as far as they got with that kind of turbine. 15:51:39 And Tesla's own claims about 200HP out of one of his smaller turbine designs is bunk -- it's not physically possible. 15:51:47 With a larger turbine, yes. But not with the turbine he quoted. 15:52:13 ahhhh.. OK, that explains the lack of images. 15:52:50 Oddly enough, I am positively convinced that Tesla killed his own turbine's opportunities. 15:53:18 He made claims that were simply not true about the turbine. Had he been more pragmatic about it, I think it would have gone further. 15:53:40 prolly the math 15:54:32 Could be, but this isn't the only area where Tesla made grandiose claims. :) 15:55:22 So, basically, it's just a gizmo to convert steam (pressure, anyway) to rotary motion, eh? 15:55:27 I made a simple 3-disc, 2" diameter turbine a couple of days ago for use under water (for eventual driving by the pop-pop engine), and just a twist by the hand introduced quite a bit of swirling in the water. :) 15:55:32 Yes 15:55:49 So, you still end up needing a boiler.. 15:56:09 Yes, if you're going to use continuous steam flow. 15:56:16 * kc-homework is going to use intermittent water flow from the pop-pop engine. 15:56:19 I dunno.. seems like in CONJUNCTION with the waste heat from a wankel or sterling it might be useful. 15:56:27 And yes, this whole contraption is basically a toy for me. 15:56:32 right 15:56:47 It's possible to build a bigger, more useful turbine, but I just lack the facilities or income to do it. :) 15:56:54 Hey, I can't even falt spring-powered goodies ;-) 15:57:02 falt/fault 15:57:23 I figure if I can make my gizmo solar powered, I can at least use it to recharge my rechargable batteries in my calculator. It's good for something. :) 15:57:30 heh 15:57:47 OK.. I'm back & forth to the kitchen and such.. 15:58:09 * kc-homework nods 16:04:58 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 16:13:29 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-74.dad.adelphia.net) joined #forth 16:13:53 I was salivating over this: http://www.abstractnonsense.com/schemix/ 16:14:18 The first Forth learnt a bit from lisp, perhaps commonforth might learn a bit from scheme? :D 16:15:41 this is pretty good too: http://lambda.weblogs.com/discuss/msgReader$1831 16:15:47 gilbertdeb: I'm kinda partial to K and J. 16:15:52 eeek! 16:15:55 :) 16:16:20 I'll be partial to j/k when I finish my 20th reading of the j dictionary :D 16:16:24 We should not restrict ourselves to any one language. 16:16:25 Lisp is big, Scheme is usually big and slow. Not sure if I want that in a Forth. 16:16:36 The new Forth must learn from ALL existing languages, both what to do and what not to do. 16:16:37 ramnull: scheme CAN be really tiny! 16:16:52 eg ramnull sChemes specs are only 50 pages in length total! 16:17:02 I really think thats a fantastic inspiration!!! 16:17:12 ramnull: He's not saying to implement Scheme in Forth. He's saying to learn lessons from it. 16:17:19 kc-homework: I heartily agree with you there. 16:17:31 precisely! its a little language too that can do a really great deal. 16:17:41 Scheme does have some elegant concepts for sure. 16:17:45 I think it does what forth is supposed to do, at a much higher level. 16:18:08 the paper's subtitle was A universal scripting framework! 16:18:24 now I say, that is forth's niche!!! 16:18:37 a language to write dialects with no? 16:18:49 But one needs to be careful that it doesnt become the C++ of Forths. A little of everything, sucks at everything. Heh. 16:19:14 ramnull: no I think from yesterday's discussion the goal was to do a minimal commonforth. 16:19:36 I agree at the conceptual level, but there are pitfalls that one needs to be wary of. 16:19:48 one from which all the other dialects can be cleanly generated... so that you don't have a commonlisp 1000+ tome, but rather a scheme 50 page paper! 16:20:04 ramnull: it'll be worked out. 16:20:23 Well, you basically have three to four common language groups.... 16:20:34 in general or for forth? 16:21:22 Lisp/Scheme(Functional), Procedural (C, Asm, etc...), and Wirth languages (Ada, Pascal, Oberon) etc... 16:21:27 4: the logical languages, the functional languages, the procedural languages, the array based languages, the oo languages ... and what else? 16:22:12 Writh languages are a specific kind of algol languages so that covers C. 16:22:20 and I don't think asm is a procedural language per-se! 16:22:22 You could put Algol, K, and K as a subset or crossover between the functional and procedural langs. 16:22:25 its just a mnemonic. 16:22:39 algol is pure procedural methinks. 16:22:43 errr...K and J. 16:23:02 ah yes, apl, k, j, nial, withglee, matlab, mathematica etc ... 16:23:22 and yorick. 16:23:28 I wonder where R fits in? 16:23:42 Now, there is the OBJ line of langs that doesn't fit in anywhere. 16:23:52 OBJ? what are those? 16:24:22 http://www.cs.ucsd.edu/users/goguen/sys/obj.html 16:24:25 hey we neglected to mention forth. 16:24:54 OBJ looks like a friend of prolog's 16:25:26 It states in the introduction that OBJ languages are all logical languages. 16:25:55 Of which Prolog is the first. However OBJ looks interesting because it appears to be more "traditionally" written (e.g., algebraicly instead of rules-based). 16:25:56 Logical definitely, but I'm not sure I would place them under Functional, Procedural, ect... 16:26:12 Not sure where I would put them. 16:26:17 logical does not necessarily fall under functional. 16:26:29 logical == declarative methinks. 16:26:35 gilbertdeb: Good point. 16:26:52 ramnull: Logical languages are their own group. 16:27:16 I've never played with Logical langs. Anyone recommend one? 16:27:22 gilbertdeb: Functional languages are also declarative, but they're not "logical". 16:27:25 prolog. 16:27:50 I should play with prolog sometime there is a neat quote somewhere ... 16:27:51 The problem with the OBJ line, from what I've been told, is that their slow. Dont suppose theres a Forth remedy for that? 16:28:36 All logical languages to date have been slow. 16:28:39 Prolog is no exception. 16:28:45 It's because they do a lot of backtracking. 16:28:58 I see. 16:29:37 ramnull: speed is not important when you are having fun. 16:29:46 remember, time flies when you are having fun :D 16:29:47 Backtracking support is actually amazingly easy to do in Forth, assuming your return stack actually holds return addresses. 16:29:57 Hmmm...It makes an interesting Computer Science challenge. Making a fast logical compiler. 16:31:09 I think it would be prudent, in the interests of CommonForth, to crack open those Algorithm and CS textbooks we have laying around to help meet those challenges. 16:31:32 I got Volume 1 of TAOCP sitting here next to me. 16:31:40 ramnull: I'm starting with scheme. 16:32:03 I think it REALLY has a lot to teach, and I have Lisp in small pieces and SICP to memorize :D 16:32:10 * kc-homework can never understand a word of what Knuth is trying to say. 16:32:22 gilbertdeb: Get "The Art of Computer Programming" by Knuth, and "The Dragon Book" by Aho. 16:32:28 aha! I'm not the only one then who thinks his style is baroque? 16:32:30 I'm pretty mathematically "with it," but his symbolic designations and explanations are just unbelievably out of this world. 16:32:43 ramnull: I dunno, I got TAOCP but the math is a tad formidable. 16:33:05 It is formidable, but that's what I love about it. Forces me to get better. 16:33:09 If I were to faithfully go through TAOCP, I'll only start making sense in 6 months from now. 16:33:22 I understand the reasons why he uses his notation (independence from any existing computer systems). But man, I think it could be a heck of a lot easier to read. 16:34:03 I take the subjects in TAOCP one step at a time. 16:34:12 ramnull: so how far are you into taocp? 16:34:32 ah I'm expecting a copy of loeliger's Threaded INterpretive languages sometime this week. 16:34:39 About 2 thirds of the way through Volume 1. 16:34:47 * ramnull grins 16:35:29 thou GEEK! 16:35:32 It's making me conjure up things that I never would have considered before. 16:35:49 are you gonna read the remaining volumes? 16:36:03 gilbertdeb: Well, it's not the kind of thing you read one time and then know it. 16:36:23 gilbertdeb: Yeah, if I can digest enough of Volume 1. Heh. 16:36:46 I'm afraid to start reading it. 16:36:57 it requires quite a significant commitment I realised. 16:37:13 But anyways, for a CommonForth(Fifth?) project it might be a good thing to examine the details like that. 16:37:32 perhaps it should be called Fourth :) commonfourth . 16:37:40 afterall, the space exists to name it fully :D 16:37:41 The only TRUE programming tool is one between our ears. 16:37:57 ramnull: agreed. sbn a b c 16:37:59 anytime. 16:38:51 succinctness, not verbosity. 16:38:54 That's why I get so nasty with people who think in C-isms, or Lispisms, or whatever. 16:39:05 I believe ANS can be maintained as the verbose 4th. 16:39:08 It irritates me. 16:39:23 ramnull: but you have to admit that lisp is neat. 16:39:40 the last chapters of taocp:1 is lisp :D 16:40:00 gilbertdeb: Have you seen the articles on the Arc project and Paul Grahams site? 16:40:32 yes. his site is nice. 16:41:06 I also quite like dreamsongs.com . another lisper, but a literate one. 16:41:08 :) 16:41:34 OK, I need to hit the store. My highlighter is dead. 16:42:01 I wouldn't want to get away from Chuck Moores KISS philosophy. But I think a better Forth should enable better handling of advanced structures and algos at the machine level. 16:42:11 Laters kc. 16:42:18 ramnull: you really should take another look at scheme. 16:42:45 I don't like Scheme as much as I like Lisp, but the two languages are quite nice once you get used to them. I do have to admit that. :) 16:42:48 ANyway, I'm outta here. 16:42:50 --- nick: kc-homework -> kc-afk 16:42:58 gilbertdeb: Can you recommend a Scheme that generates fast machine code? 16:43:15 hmmm. not particularly. 16:43:32 guile perhaps? 16:43:41 you probably already have guile on your machine if you are using linux. 16:43:54 gilbertdeb: That's one thing that's important to me. Efficiency. 16:44:10 ramnull: lisp is notoriously slow. 16:44:16 there are fast lisps, but generally... 16:44:52 Java, Lisp, C++ all irritate the crap outta me. 16:45:10 They look more like hacks. 16:46:06 c++ is a hack (hybrid) ... java has lisp semanctics (whatever that means) 16:47:24 Hmmm...Have you seen the Mercury project? 16:47:32 no not at all. 16:48:23 http://www.cs.mu.oz.au/research/mercury/ 16:48:34 Supposed to be a fast Logical language. 16:48:39 If I understand correctly. 16:51:13 so how are you faring with the math in taocp? 16:51:26 have you previously taken a course in discrete math? 16:51:36 howdy 16:51:51 howdy PoppaVic. 16:52:09 Salad done... sausages cooked.. Life is good. 16:52:31 gilbertdeb: Did you check out that site? 16:52:51 yes I did. 16:52:52 * PoppaVic doesn't switch languages for fun. 16:52:57 hehehe. 16:53:27 it looks as funky as haskell,ml etc. 16:53:38 well, ok - when yer young, got time & money, and are not too bright - I can recall, yeah.. 16:53:41 sometimes I get put off by syntax. 16:53:42 PoppaVic: But it might be useful to examine ideas from other languages. 16:53:53 PoppaVic: keyword is nomoney 16:53:55 yep. Except they typically mean "parsers" 16:54:15 I worked a doc up on yesterdays foo-foo, ramnull - wanna' dcc? 16:54:30 PoppaVic: Sure. 16:54:56 incoming ;-) 16:55:03 Got it. 16:55:08 cool. 16:55:27 Also been diddling with some really rough & vague shit from C & gcc -S (asm) 16:56:16 PoppaVic: forgot to say, its a good recap! 16:57:56 back - thankyou, gilbertdeb - I was unsure, but that's pretty much what I recall. 16:58:09 PoppaVic: have you ever had to read TAOCP? 16:58:18 Good recap. 16:58:19 I like tapioca 16:58:28 :) 16:58:48 Danka - what's TAOCP - you knew I'd eventually ask ;-) 16:58:58 As far as the C isms...I dont mind using C, as long as eventually the Forth can recompile itself without the need for C. 16:59:28 ramnull: well, I don't mind asm either - but the asm-guys would go nuts across platforms, no? 17:00:10 the art of computer programming by knuth! 17:00:16 Yeah. Personally I think a Forth compiler should be able to compile itself. That would solve the portability issues too. 17:00:21 it is a pain to read and I wonder how others are faring with it. 17:00:22 ramnull: not sure that's possible.. You are heading into Metacompiling, and it means a shitload of work to learn all the shit that C insulates us from.. Remember that GNU autoshit ;-) 17:00:41 ahh, no books by knuth in my home - so, no. Sorry. 17:00:42 Yeah. 17:00:45 PoppaVic: bill gates wants your resume if you've read the first three volumes but I think he was just messing with the readers. 17:00:55 hehe 17:00:57 the book is HARD. 17:01:02 I believe it. 17:01:16 I fucking love TAOCP. Heh. 17:01:26 yeah 17:01:29 ramnull: how are you doing the math? 17:01:31 ramnull: I suspect, as mentioned, ASM folks would go ballistic.. Really.. 17:01:32 I'd like to take 2 years off, and just read TAOCP 17:01:49 gilbertdeb: Ummm...on the computer. 17:01:51 But, I would dearly love a metacompiler. 17:02:06 PoppaVic: the stuff C insulates us from is the reason for learning asm well :D 17:02:17 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 17:02:23 ramnull: how do you mean on the computer? 17:02:25 ..otoh, I'd be more than happy if it would "metacompile" C that would could also send to asm - and tinker wherever for an application. 17:02:30 is there some app that does the stuff for you? 17:02:40 gilbertdeb: I do the math on the computer. Heh. 17:02:42 gilbertdeb: you miss the point, but that's ok. 17:02:55 PoppaVic: insulation BAD. 17:03:01 sorry. 17:03:09 PoppaVic: Your talking about the GCC internal language. 17:03:09 instulation good if its breakable. 17:03:28 gilbertdeb: I happen to disagree, but then - I use whatever libs I want, when I want - and create them as well 17:03:32 PoppaVic: You could use that as a metacompiler, but I wouldn't wanna fuck with it. 17:03:33 * gilbertdeb does not understand how ramnull does the math from TAOCP on his computer. 17:03:48 ramnull: wtf are you talkin' about? 17:03:56 touche PoppaVic :SD 17:03:57 hehehe 17:04:33 PoppaVic: The GCC guts breaks down code into an intermediate language before generating the Assembler. 17:04:36 the "internal language of GCC" is both C and some small asm-modules - those modules are duplicated for every platform. 17:04:53 ramnull: non sequitur - I don't. 17:05:47 gilbertdeb: You asked how do I do the math. A pen and paper also come in handy. Heh. 17:05:49 However, I'm all for anyones effort to create a complete Metacompiler in the commonForth dielect ;-) 17:06:12 dialect, two - sheesh.. Hands ain't workin' right anymore 17:06:37 ramnull: I am trying to find out if you've taken courses in discrete math previously. 17:06:42 eww 17:06:45 PoppaVic: A metacompiler is a bit over my head yet. 17:06:53 oh, come now ;-) 17:07:19 gilbertdeb: Nope. I buy textbooks at Barnes and Noble and use the Bibliography for further references. 17:07:54 gilbertdeb: Like what they taught us in grade school, on how to do "research". 17:08:17 ramnull: oh you mean, "my" approach? ;) 17:08:20 University is too damn expensive. 17:08:23 well, ramnull.. When you get a chance to read the doc, let me have some feedback.. It still sounds like a decent project ;-) 17:08:26 I just cant afford it. 17:08:31 pretty darned expensive for the money I'd say. 17:08:44 ramnull: if you've got a good job, stick with it and learn what you can. 17:09:53 As far as the Assembly optimizing, it would be useful for projects such as I what I'm doing (calling it FrameForth). 17:10:01 ramnull: it might interest you to know that SICP (currently the most famous scheme book) is online. has been for a while. 17:10:03 An extension to IsForth. 17:10:29 Well, I dunno "assembly optimizing" - you guys always seem to add a few words to what was said & try to slide it thru ;-) 17:11:04 An inline assembler would do the trick. 17:11:13 A good one. 17:11:20 for asm 17:11:36 However, we ain't anywhere near that point ;-/ 17:11:42 True. 17:11:59 I'm gonna go do some more research. Be back later tonight. 17:12:07 ok.. I may be here 17:12:17 If not, my email address is in the doc 17:12:25 * ramnull nods 17:12:38 --- quit: ramnull ("This isn't Happy Hour!") 17:12:47 btw, fer cripes sake - email me from an account that can get replies ;-) 17:13:13 he sneaked away. the email nightmare continues 17:13:28 heh - that day with Speuler was horrible. 17:13:46 too many computers I s'pose. 17:14:07 yeah, and his original email came from a damned account that was unreachable to replies 17:14:34 boing! boing! boing! argh.. 17:15:12 Interesting, though.. This whole idea seems to get folks all excited - then they run off to other projects ;-) 17:16:05 hehehe. 17:16:19 I think the 'run off' is going to enrich it significantly . 17:16:27 oh, yeah 17:17:01 ..just like all the folks interested going back to writing a unique dialect ;-) 17:17:19 the dialect must speak commonforth. 17:17:28 I rather like that about rebol. 17:18:01 all rebol dialects speak rebol! 17:20:27 ahhhhhhhhhhh cool... "man readelf" 17:21:55 thanks for the headsup. 17:22:48 n e way, I'm off to b&n. 17:22:50 bbl 17:22:52 --- quit: gilbertdeb ("Monk has left the building") 17:22:57 laters 17:33:37 I think it's time to chow & read/relax.. Laters. 17:33:39 --- quit: PoppaVic ("(I don't need a reason)") 17:40:27 --- nick: kc-afk -> kc5tja 18:21:21 --- quit: GnuVince ("leaving") 20:45:48 --- quit: a7r ("Client exiting") 20:45:51 --- join: a7r (~a7r@206.72.82.135) joined #forth 20:47:46 * kc5tja gives up on homework for the rest of tonight. 20:49:38 :) 20:49:40 Morning. 20:50:16 Evening. 20:50:26 Liar! :) 20:53:37 It is currently 20:55 Pacific Daylight Time here. I'm GMT-07, so do the math. :D 20:54:07 hey 20:54:20 kc5tja: what section of GMT-07 are you in? 20:54:37 Oceanside, California, USA 20:54:58 werd, I'm up in Santa Barbara 20:55:49 A wee bit aways from me, unfortunately. 20:57:51 man, I'd like a Forth programmed emacs 20:57:52 I'm GMT+1, I think. 20:58:02 Mon May 5 05:57:56 CEST 2003 20:58:40 --- join: jstahuman (~justahuma@pcp053298pcs.brlngt01.nj.comcast.net) joined #forth 21:01:26 a7r: yeah, itd be even better 21:01:31 like vi done right! 21:03:17 itd? 21:03:58 ianni: Heh -- you'll never convince me to use Emacs again after switching to Vim. Never! NEVEERRRRR!!! 21:03:59 ;D 21:04:34 I think what vim is missing from emacs is the remdinders 21:04:51 and bloat :) 21:05:19 vim with reminders would be very nice 21:05:51 vim without the bloat would, too! 21:06:09 Robert: hey by comparison to emacs vim is very light 21:06:16 Hah. 21:06:39 You can't compare to Emacs. It's like always comparing to Mocambique when it comes to economics 21:07:11 I can just look at `ps' output 21:07:25 Robert: Hmm...Emacs: 20MB. VIM: 250KB. I'm sorry -- were you saying something about bloat? :D 21:07:51 i dont care about how small the program i use to edit stuff is if its fast and my hard disk is big enough 21:08:01 hehe 21:08:29 i like the simplicity of vi better, but im lazy, and dont have many of the keystrokes down 21:08:33 ianni: some people have emotional issues with that 21:08:53 if there were jsut a modeless mode... 21:09:01 ianni: to some, if it's not small it's disgusting 21:09:22 i want to use my arrow keys to move up, down, left, and right ... 21:09:24 hehe 21:09:30 im used to edit.com, damnit 21:09:50 ianni jkhl is quicker 21:10:04 bad for dvorak keyboard though 21:10:34 true... but in emacs i could map either, you know.. :P 21:10:50 many things in unix support jkhl, so once you're used to it, it sucks to use arrow keys 21:10:54 though i probably might benefit from learning that 21:10:56 way 21:11:06 yeah? ill give that a shot then 21:11:28 I remember reading that playing NetHack is one of the best ways to get used to VI-like cursor movement keys. :) 21:11:37 However, even in VI, I almost never use cursor or hjkl. 21:11:48 * kc5tja now uses / and ? to navigate my documents for the most part. 21:11:48 mutt, the 'less' pager for example both support it besides vi/vim 21:11:57 kc5tja: 1/4 MB of code for a text editor? That's not small :) 21:12:00 yeah, / is nice 21:12:29 and the regexps are admittedly so 21:12:37 Robert: hey, this is the bloated C library we're talking about here, link it against something like dietlibc, and it's several times smaller 21:12:43 i just now really learned those :P 21:12:46 jstahuman: :) 21:13:11 Heheh :) 21:13:13 phone 21:13:53 Robert: I see things go from quarter meg to 40 K after linking with dietlibc 21:15:22 VIM is also absolutely jam packed with loads of useful stuff too. At least I use them. 21:15:41 jstahuman: Nice.. 21:16:27 kc5tja: my problem is remembering more than basic features in all these editors - my memory is shot 21:16:35 hehe : 21:16:38 :) even 21:16:42 i really dont use much of vi/emacs ... i guess i do use emacs fairly often, but not for long periods of time normally 21:17:03 so I end up editing very inefficiently 21:18:27 I used to do $+i+enter instead of o in vim 21:18:50 * kc5tja still uses A+enter (the equivalent of $+i+enter) 21:19:00 i just use emacs cause i didnt know either, and their commands were grouped.. 21:20:03 I like emacs' verbosity by comparison, if you do something wrong, you get a warning message, often times it tells you what to press 21:20:45 yeah, and all the tabcompletion and all that everywhere 21:20:50 with vim most of the time you just get a beep, what the hell 21:20:52 very nice .. 21:21:22 its a monolith of a work 21:21:33 I prefer VIM because it's faster on my system, and it's the closest thing to a neural interface for me. :D 21:21:55 speed is always good :P 21:22:44 configuring vim the right way may take a lifetime though 21:23:04 so I end up copying someone elses config 21:25:25 well, same for emacs... hehe 21:25:29 I'm actually pretty happy with my current configuration, which is very minimally changed over the default. 21:25:43 although, you've got to admit the online configuration thing for emacs is cool 21:25:52 Having a big, thick book on VI helped of course, but it was worth it. :D 21:26:31 i just need some kind of brain adapter so i dont have to learn any stupid program 21:26:46 hehe 21:30:15 that's why MS software is so easy to learn - you have reminders everywhere telling you what the shortcut is if you don't want to use pull-down menus. and the pull-down menus of course 21:32:21 .... 21:32:55 yeah, like those menus that selectively 'hide' options that arent used often... damn those get annoying 21:34:12 jstahuman: Really? I haven't seen any. 21:34:37 Unless you're talking about the CTRL- and ALT-key hints actually in the menus. 21:34:45 But even MacOS has those. 21:35:28 ianni: it may sucks because that option is on by default in w2k, it's switchable though 21:35:58 MacOS does have those too 21:36:22 most curses application for Unix do not even have pulldown menus. even DOS did 21:37:11 that's another reason why 'links' is better than 'lynx' 21:37:15 That's because Unix sucks. ;D Switch to AmigaOS! (Long live the AMiga.... *sniff!* :~( ) 21:37:39 heh -- I use w3m, because it uses VI keybindings by default, and actually knows how to render tables. :) 21:37:43 it's not that unix sucks as much as the software design for unix sucks 21:37:59 links is very good with tables imo 21:38:09 It's true for any OS, but I find each OS has a "root philosophy" that each application writer tends to follow for it. 21:38:39 it's always easier to follow than think through your own better way 21:38:52 Yup 21:38:53 and if it's good enough for ou, heh, who cares 21:39:01 that's how unix evolves - good enough 21:39:42 * kc5tja would prefer if Unix revolved at this point. If I could, and someday I will, I'll take the best pieces of VMS and Unix, and put them together in my own little OS. 21:40:51 Unix already has good enough pieces, it's just people don't know how to use them effectively, so we end-up with nightmare like sendmail and bind 21:41:06 and broken apis 21:41:53 worse the standards are broken too - posix 21:43:57 I'm talking about under the hood. 21:44:33 The kernel has a ton of "not good enough" pieces (e.g., each process is limited to one timer). 21:45:02 And don't even get me started about how abysmally insufficient message passing is in the Unix environment. 21:45:05 :) 21:45:05 yeah, and even under the hood 21:45:23 people are struggling to use unix basics effectively 21:45:48 even inefficient basics 21:46:08 so until we can be better designers, we better stick to simple OSes similar to DOS 21:46:18 --- join: fridge_ (meldrum@zeus.zipworld.com.au) joined #forth 21:46:53 maybe if we become experts with simple OSes, we can do better with more powerful stuff like unix 21:47:22 --- quit: sifbot (Read error: 110 (Connection timed out)) 21:49:47 I think often people just jump ahed of themselves and build heaps of crap on top of already broken crap just for the heck of it, then the heaps of crap becomes defacto, and we're stuck with it 21:49:50 --- join: ramnull (~nicad@12-241-145-39.client.attbi.com) joined #forth 21:50:04 Hey what's up? 21:50:23 Morning ramnull 21:50:28 My underwear is up ... does that count? :D 21:50:36 Any of you guys know Nasm syntax? 21:51:02 blah... windows sucks 21:51:07 :P 21:51:17 I use NASM. 21:51:40 Robert: Mind taking a peek at a file? 21:51:53 take BSD sockets for example, why is it just one biderectional descriptor, wouldn't two be easier one in, the other out? think about it 21:52:13 Robert: It's a preliminary Framebuffer module for IsForth. 21:52:16 and we're stuck with this defacto garbage design 21:52:30 ramnull: What's the problem with it? 21:52:59 jstahuman: what's your reasoning behind 2 descriptors being easier than 1? 21:53:06 Robert: Well, I got the line .device db "/dev/fb0", 0 But it wont Assemble it. 21:53:20 a7r: clarity 21:53:39 jstahuman: okay, I'd counter to say that a descriptor is just a reference you use in the API w/ the kernel 21:53:42 ramnull: Only reason I can think about, is that you have no non-local label before that. What error do you get? 21:53:49 jstahuman: Yup. I agree. This is made explicit, even, in the ATM networking protocol, where input and output flows of data are distinguished. 21:53:58 jstahuman: so it's there so you both understand the context of your communication 21:54:21 then it's up to you if you read or write,.. the actual act of reading or writing is explicit as to what your intentions are. 21:54:32 i.e. based on which syscall you make 21:54:36 Robert: .device undefined, on the call to SYS_OPEN. 21:54:39 a7r: you still end up with the single socket API 21:55:01 Robert: I'm declaring it after all my global vars. 21:55:01 jstahuman: yeah, so why have 2 descriptors of context, when 1 will do? 21:55:01 ramnull: Hmm... is it within the same local variable space? 21:55:08 a7r: clarity 21:55:14 jstahuman: OKay, I don't see any added clarity 21:55:22 a7r: then you're a fool 21:55:28 .. okay 21:55:41 Robert: I put it under section .text Should it be under section .data? 21:56:06 ramnull: It should be, yes... but how do you try to access it? 21:56:20 jstahuman: but I'm a fool that understands something as 'complex' as one descriptor. 21:56:31 .. because it's fucking basic. 21:56:32 a7r: I think the added clarity would come in the form of having to sit and wait for only one input descriptor, allowing a single process to handle an indefinite number of concurrently open sockets. As it is, you're limited to only 32. 21:56:51 Robert: mov dword ebx, .device 21:57:27 For example, in AmigaOS, servers were written so that the service had one message port, and it would wait on that message port for all requests, regardless of who sent the message. 21:57:42 But even this is besides the point. 21:57:47 kc5tja: how does making it 2 way all of a sudden change an implementation problem? (your 32 hard limit is a reference to select right?) 21:57:48 Robert: Want me to cut and paste it here for yah? 21:57:53 I hate having to use file descriptors to model event notification anyway. 21:58:03 ramnull: Do it in a query. 21:58:27 mov dword eax, SYS_OPEN 21:58:27 mov dword ebx, .device 21:58:27 mov dword ecx, O_RDWR 21:58:27 int byte 0x80 21:58:28 mov dword [fb_handle]. eax 21:58:30 ; 21:58:34 a7r: Yeah, it is. By making it two way, you then could wait only on one file descriptor: your local socket address, leaving 31 other opportunities for other local stuff. 21:58:41 Aaaarg. 21:58:44 Hehe. 21:58:49 /query Robert 21:58:52 THEN paste :P 21:59:01 kc5tja: okay, select is only broken like that on OSes that don't know better (e.g. OpenBSD doesn't have that limit anymore) 21:59:07 mov dword eax, SYS_OPEN 21:59:07 mov dword ebx, .device 21:59:07 mov dword ecx, O_RDWR 21:59:07 int byte 0x80 21:59:07 mov dword [fb_handle]. eax 21:59:08 ; 21:59:11 * kc5tja vastly prefers how AmigaOS and VMS handles event notification over Unix-style. 21:59:17 Well piss on that. 21:59:18 Anyway, that doesn't work if there's any global label between that and .device 21:59:26 a7r: I wasn't aware of that. I thought it was a POSIX limitation. 21:59:28 And, uh.. 21:59:32 06:59:02 < ramnull> movIdwordI[fb_handle]. eax 21:59:37 Sure you want a dot there? 21:59:49 kc5tja: no, and on top of that poll, and kqueues, don't have those limits. 22:00:02 more precisely: they didn't from the get go. 22:00:13 Robert: Heh. Typo. 22:00:16 a7r: Can you describe kqueues? 22:00:19 * kc5tja hasn't heard of those. 22:00:45 a7r: it's a no brainer to represent a TCP connection as a two files instead of merging them into one for some odd reasons 22:00:59 kc5tja: I'm trying to understand why splitting it into 2 streams helps, you still need someway to demultiplex the messages coming in,.. whether you do it with a number of file descriptors, or some other way. 22:01:16 Aha! 22:01:25 jstahuman: considering that it's a readable and writable source of information, much like you'd handle a file, doing it any other way than one descriptor would be a pretty serious break from the precedent set by the rest of POSIX. 22:01:44 a7r: you have a reading file, and a writing file 22:01:48 Robert: The code macro was making |open| a global. 22:02:15 a7r: We're not talking about kernel-level demultiplexing. We're talking about the application interface to the network stack. 22:02:33 kc5tja: yeah, but the comment was about BSD socket APIs.. which in this case is a kernel interface. 22:02:36 a7r: standards is another issue, it's already a standard so we can't change it, but it's still _Crappy_ design 22:03:07 ramnull: Well, what's the global label before .device ? 22:03:16 kc5tja: and in this case, the BSD API lets you pick which remote end point you're communicating with, based on the concept of a descriptor. 22:03:18 Robert: Want to see the core words I've got so far for the FrameForth extension? 22:03:24 Well, I'm going to move on. I do wish sockets were better, but even so, I can live with them. 22:03:27 ramnull: Nah, it's OK. 22:03:32 a7r: You would with the two-handle system as well. 22:03:40 the reading file closes when we receive FIN, the writing file sends a FIN to close 22:03:47 ramnull: Anyway, try: mylabel.device where mylabel is the global label above .device. 22:03:49 Heh. 22:03:58 * ramnull nods 22:04:06 But anyway, ... 22:04:07 kc5tja: yeah, but this goes back to my original question ``what's the point''.. and all anyone said was ``clarity''.. and then I was called ``a fool'' because I didn't see the ``clarity'' in having 1 descriptor per flow. 22:04:15 --- quit: fridge (Connection timed out) 22:04:33 to each his own. 22:05:08 a7r: because we end up with garbage like shutdown() instead of this clear mechanism 22:05:29 a7r: Hey, I only gave an example (backed by how AmigaOS handled server implementations). But I am curious to know about kqueues, since you brought them up. Can you describe those? 22:05:37 Robert: IsForth gets control of the framebuffer fine, and can draw. But as soon as drawing stops, the terminal goes in the tank. 22:05:39 shutdown() is device-specific too 22:05:53 kc5tja: they're a mechanism for kernel events to be sent to userspace processes 22:05:59 ramnull: I'm no Linux expert, no idea why that happens. 22:05:59 Robert: Working out some routines to restore it to text mode. 22:06:05 Okay. :) 22:06:10 jstahuman: how does having 2 descriptors get rid of shutdown? 22:06:21 a7r: how I wrote it above 22:06:40 jstahuman: what clear mechanism? 22:06:54 kc5tja: you assign requests for kernel events on a given descriptor 22:06:54 I440r is gonna drool when he sees what he can do with this stuff. 22:07:06 kc5tja: and the data is passed in a kevent structure as events come up. 22:07:14 the reading file closes when we receive FIN, we send a FIN when we close the writing file 22:07:36 jstahuman: so how would having 2 descriptors change that, in a case like TCP where it's a full duplex communication that's tightly coupled? 22:07:42 ramnull: Haha, right :) 22:07:55 a7r: So it's kind of like a real message queue, but between the user process and the kernel then (as distinguished from Unix SysV message queues, which are a joke). 22:08:05 * kc5tja will have to read up more on kqueues. 22:08:06 a7r: the above sentence is how it would change 22:08:08 kc5tja: http://www.kegel.com/dkftpbench/Poller_bench.html <- here's a comparison 22:08:17 * kc5tja checks 22:08:20 the reading file closes when we receive FIN, we send a FIN when we close the writing file 22:08:35 instead of shutdown() to send FIN 22:08:43 oh.. 22:08:47 I see what you're saying. 22:09:19 much better 22:09:30 I don't think so.. but I'm going to agree to disagree. 22:10:05 a7r: one more problem sharing descriptors between processes with the current design 22:10:20 kc5tja: /dev/poll is another interesting concept, that I haven't tried yet, but people have had good results with. 22:10:36 jstahuman: agreed, that isn't handled well 22:10:58 non-blocking io means an open file, so you can't share non-blocking io files 22:11:43 it damages processes writing to the file 22:13:09 the API for my IPv6 stack just uses an addr for context w/ the networking layer 22:13:41 but that's easier to do when you're not running multiple tasks, and you're just executing in one Forth context. 22:15:16 actually I just don't like sharing at all 22:15:22 sharing of memory especially 22:15:51 The Amiga achieved its break-neck speed because it was highly asynchronous. 22:16:07 things are much easier to understand and work with when resources are independent and not shared 22:16:08 I firmly believe it's also why it had significantly smaller programs than most other platforms. 22:16:42 you also avoid wasting time on contention management 22:17:10 Amiga used message passing pretty much exclusively, so it really didn't have any need for other forms of contention management. 22:17:25 It was a very regular, very orthogonal system. 22:17:33 kc5tja: some languages are also designed this way - Erlang 22:17:53 concurrency doesn't have to mean shared memory threads 22:17:59 I get cold feet everytime I look at the API for Posix Threads. :( 22:18:19 in Erlang message passing is the only way to control other processes 22:18:55 kc5tja: I fear everything about mutual exclusion with pthreads 22:19:02 each erlang process has it's own private data too, can't run over it - no need for mutexes and other such garbage 22:19:05 AmigaOS was a single-address-space operating system, so its message passing was blindingly fast. But the convention was, once you sent a message, it belongs to the receiver, not to you. Hands off, pal! :D 22:19:36 kc5tja: was scheduling preemptive? 22:19:41 a7r: Yes. 22:19:46 werd. 22:19:52 Prioritized, preemptive multitasking, in 1985. 22:19:57 With 256K of RAM. 22:20:06 erlang processes are also very lightweight, only few hundred bytes per process overhead, context switches are very fast 22:20:35 kc5tja: what were people mainly programming w/ on the Amiga? 22:20:53 jstahuman: Do they have their own address spaces, or does the compiler optimize it so that each process occupies its own slot in a single address space (behind the backs of the processes) to minimize TLB flush times? 22:20:57 I hear some TV stations still use it for special effects and such 22:21:02 a7r: C and assembly. 22:21:26 a7r: JForth was released for it, and was one of the world's first native-code producing Forth systems. 22:21:29 kc5tja: how was reliability w/ 3rd party applications? was the code generally good enough to keep things reliable? 22:21:35 a7r: Damn reliable. 22:21:53 Having a single-address-space made even the slightest code malfunction potently obvious. :) 22:22:01 kc5tja: well erlang is a VM, so it's really shared, but the programmer doesn't see it. I don't know the details on how it's done, but the programmer can't overrun a different process memory 22:22:06 As a rule, code written for Kickstart 2.04 or later was extremely stable. 22:22:35 jstahuman: Yeah, if it's a language imposition, then the actual implementation can take a lot of shortcuts, like using a single address space. That'll REALLY help out in the speed department. 22:23:04 kc5tja: I was thinking w/ Forth it be within the realm of reason to have an OS w/ a single address space. 22:23:11 Kickstart 1.3 and earlier was itself unstable, so code written for it tended to be hackish. But even for that platform, I've never had a problem. 22:23:28 kc5tja: the only thing I don't fully understand is how you'd handle dictionary/namespace swapping to avoid naming conflict. 22:23:36 * kc5tja nods 22:24:04 I have written a SAS multitasking OS based on Amiga's exec.library (the executive) for the x86 in C before. It's quite doable, and highly educational. 22:24:17 I don't have the code anymore though. :( 22:24:26 This was before I moved to California. 22:24:58 kc5tja: erlang was designed such that you start a new process for each concurrent activity, such as in Unix forking servers, it's possible to run thousands of erlang processes without much overhead. 22:25:17 a threaded web server in erlang scales way better than Apache 2.0 22:26:55 Yeah, AmigaOS had similar claims. In fact, AmigaOS 2.0 was *HEAVILY* multithreaded, especially during booting. 22:27:09 On a 7MHz machine, the first time I booted into Kickstart 2.0, I thought I broke the computer. 22:27:36 It seeked for bootable partitions on my harddrive AND my three floppy drives all at the same time (it doesn't do this under Kickstart 1.x). 22:27:41 I seriously thoguht I broke the machine. :) 22:27:47 I heard there were plans to resurrect amiga, any news? 22:28:17 and PC bios is still 16 bit 22:28:19 jstahuman: I'm not active in that industry anymore, but the company didn't die. http://www.amiga.com still exists, and they're doing reasonably well as far as I can tell from here. 22:28:44 a7r: Yeah, I can't figure that one out myself either, except to pre-partition the address space. 22:29:11 --- quit: jstahuman ("zzzz") 22:31:01 --- join: serg (~serg@h138n2fls31o965.telia.com) joined #forth 22:31:17 hi 4 few minutes :) 22:32:03 does one know any grafix able Forth, w/ sources available ? 22:32:38 OpenGL or DirectX preferrable, but X Window or Windoze GDI will go too 22:33:50 * serg tried to write OpenGL headers 4 windoze SPForth but got lost in _gl*.h_ 22:34:58 * serg exits to run IRSSI via 'screen' so it will survive logoff 22:35:01 --- quit: serg (Client Quit) 22:35:57 --- join: serg (~serg@h138n2fls31o965.telia.com) joined #forth 22:35:58 Hi serg. 22:36:02 hi 22:36:07 got question ? 22:36:20 re serg; I am unaware of any graphics-capable Forth except for BigForth for Linux. 22:36:37 Wasn't ramnull modifying IsForth? :) 22:36:38 I've not used it, however; I believe it's GPLed, so sources should be available. 22:36:42 But that's only for fb. 22:37:17 OK, this headcold is really getting to me. >:( 22:37:32 Not only does my head feel like a giant balloon, but my stomach is upset now. :( 22:37:48 the oil-paint artist for whom i wanna write a prog is way too weenie to use UNIX 22:38:07 Just write your own small Forth for it, then. 22:38:15 Won't take long, if you do it for DOS. 22:38:40 i have GFX-able forth 4 DOS DPMI32, but: 22:38:56 1)dead, no advance or support in project 22:39:07 2)no sources :(((, bad docs 22:39:32 ib 22:39:48 Robert: I'm writing an extension to it. 22:39:54 Yes. 22:39:59 Modifying..same thing :P 22:40:07 mod'ing what ? 22:40:38 serg: Putting together a framebuffer interface for it and some drawing primitives. 22:41:05 --- join: bwb (~bwb@ip68-4-121-108.oc.oc.cox.net) joined #forth 22:41:06 re 22:41:34 kewl 22:41:48 Hi bwb 22:41:58 serg: Debugging it right now. Gotta work out the kinks in the Assembler code first. 22:42:29 serg: The terminal likes to take a sporadic holiday whenever I run this thing. 22:42:43 ramnull: will it fit on bootflop w/ kernel ? 22:43:14 serg: It might. Once I get some of these functions shifted over into Forth space. 22:43:47 hmmm... is BigForth in C or ASM ? 22:44:11 serg: Youd still need a kernel with the Framebuffer driver. 22:44:40 ramnull: i never messed w/ FB at so low level 22:45:20 * serg mostly used Linux as server or 4 fun of exploring it 22:46:28 re bwb 22:46:57 * serg afk 22:46:59 serg: You can do all kinds of fun stuff at this level. 22:47:55 Right now, I can only draw lines in grayscale. It segfaults when doing little things like changing a colormap or restoring term control. 22:49:17 bbl. Gotta go test it out. Then get some sleep. 22:49:23 --- quit: ramnull ("This isn't Happy Hour!") 22:52:10 howdy think, is it good 2 write windoze Forth in C (cygwin?) w/ OpenGL inside ? 22:52:33 That sounds like a terrible idea, if you ask me. 22:52:38 Anyway, got to leave for school soon. 22:52:40 Bye :) 22:52:57 bye ! 23:06:21 --- quit: bwb ("Later") 23:13:48 I don't see why it'd be such a bad idea. 23:14:07 Too many people think that Forths written in C are somehow inadequate compared to natively written Forths. 23:21:15 werd,. I just generated my first IPv6 echo request using my Forth stack 23:25:31 k00l 23:25:47 was it caught by eye or by other working stack ? 23:25:57 by eye right now 23:26:14 I'm going to get it pinging itself, and then I'm gonna get it talking to KAME 23:26:43 * serg is not an expert in deep net guts 23:27:48 kc5tja: i think C forth is worse too, but how the hell can i write OpenGL interface 'natively' ???? 23:27:48 this is my second Forth project,. I'm going to need a lot of peer review when I've got it functionally working 23:28:42 a7r: whadda u think of taking part in some ForthOS project, making networking 4 it ? 23:28:59 serg: I'd be interested 23:29:06 it will be a moby deal of promoting Forth into wider use... 23:29:39 no, i'm not Linus, i don't write ForthOS neither lead a project 23:29:45 serg: One method would be to study the output of a C compiler (e.g., looking at its assembly language code), and mimick that in your native Forth implementation. 23:30:26 a7r: but i would be glad to take part too, by writing some utils at _my_ competence level 23:30:56 serg: my current goal is to be able to IRC from OpenFirmware with IPv6 23:31:46 kc5tja: this may work for easy UNIX syscalls, but not 4 weirdly overcrowded DirectX or OpenGL i-face 23:32:13 kc5tja: there i have _pages_ of C, what obscure load of ASM will it generate ??? 23:32:34 a7r: OpenFirmware ??? k00l ! 23:33:42 a7r: do u write your code w/ hooks 4 future integration into full modern OS kernel ? 23:34:01 serg: there's nothing preventing it at this point 23:34:45 you could do packet construction however you want, and all you need to be is responsible for receiving the data from the hardware, and being able to send it out. 23:35:55 a7r: reentrability ? multi-task-ability ? multi-interface ? 23:36:08 serg: yeah, that's all supported. 23:37:01 there's no dependence on global variables 23:37:33 overload handling ? 23:37:41 not yet 23:37:45 serg: OpenGL is the same under Unix as it is under WIndows, give or take the odd API function or two. 23:37:54 serg: Each C call takes the same form in memory: 23:38:03 Push arguments onto stack, call function, fix up the stack 23:38:23 For example, suppose we're calling fopen( "foo", "r" ). In assembly language, it might look like this: 23:38:38 push lbl_string_foo 23:38:46 call _fopen 23:38:50 add esp,8 23:39:03 ehh -- the push lbl_string_r didn't get posted. :? 23:39:09 push lbl_string_r 23:39:13 push lbl_string_foo 23:39:15 call _fopen 23:39:17 add esp,8 23:39:22 that's better. 23:39:54 So in Forth, you'd need to find a way to mimick C's calling conventions, so taht you can call C functions in Forth. 23:40:07 kc5tja: i'd better write a wrapper DLL and call it from Forth 23:40:41 kc5tja: like GFXINI, GFXDONE, LINE, PIX!, PIX@ 23:40:59 CIRCLE, SPLINE etc... 23:42:03 * kc5tja shrugs -- as you wish. But you'll still need some means of invoking the wrapper. As long as the interfaces are consistent, that's the important thing. 23:42:27 Anyway, I gotta get to bed. Got school in the morning. 23:42:40 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/03.05.04