00:00:00 --- log: started forth/04.10.03 00:08:46 --- quit: Sonarman ("leaving") 01:12:03 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 02:26:27 --- quit: crc (Read error: 110 (Connection timed out)) 03:40:16 --- join: paintcan (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 03:45:32 re paintcan 03:46:55 Morning 03:49:47 good morning! 04:39:52 Hmm...can anyone else see http://www.dilbert.com ? 04:40:32 re kc 04:49:45 re warp0b00 04:51:25 dilbert is dead 04:52:34 :~( 05:07:11 no one read dilbert anymore so they stopped doing it 05:12:54 Dilbert is a huge comic. I don't know where you got THAT idea from. 05:13:12 --- quit: warp0b00 (Remote closed the connection) 05:13:34 My sister dumped a few kilograms of comics (including Dilbert) on my floor. 05:13:53 people stopped reading it when scott adams revealed himself to be a transsexual communist spy 05:14:26 uhhh . . . yeah. Right. 05:14:36 And I'm the King of New York. 05:15:16 hey, cool 05:15:51 where's your castle 05:24:20 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 05:24:20 --- mode: ChanServ set +o Herkamire 05:32:31 Hi Herkamire 05:32:47 --- join: crc (crc@77-pool1.ras11.nynyc-t.alerondial.net) joined #forth 05:41:49 --- quit: paintcan (Read error: 113 (No route to host)) 05:44:26 --- join: paintcan (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 05:44:45 hi Robert :) 05:46:17 --- quit: crc ("Time for bed... Goodnight!") 05:49:13 oop. gotta go 05:49:26 See you later then :) 06:00:37 Well, that certainly was quick. 06:03:02 --- join: saon (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 06:03:32 hello forthers 06:05:03 greetings 06:09:42 Hi sa 06:09:44 ib 06:09:46 Argh! 06:09:47 Hi saon 06:10:06 Have you made any progress? 06:13:00 some 06:13:23 i've played with allocating memory areas 06:13:50 but i can't figure out what the word "cells" is supposed to do 06:14:19 Multiplies with the word size. 06:14:30 So in a 16-bit Forth it's equivalent to 2* 06:14:36 On a 32-bit Forth, 4* 06:14:42 ah, i see 06:15:17 so, could i modify part of that feasibly to change the cell size of the elements of the array? 06:15:39 like different types in c 06:16:08 No; the size of a cell is intrinsic to the Forth -- it represents the size, in bytes, of the native CPU word size. 06:16:48 (the only exception is when running Forth on an 8-bit computer, where the cell is still 16-bits wide, because that's the smallest width that will contain an address on most 8-bit CPUs) 06:17:01 okay 06:17:01 But you can just as easily define similar words for making arrays of other things. 06:17:16 : FooBars 16 * ; 06:17:19 (for example) 06:17:28 assuming FooBars is expressed in only 16 bytes. 06:17:48 cool 06:18:04 More portably, : FooBars [ 4 cells ] literal * ; 06:18:33 I wrapped 4 cells inside square brackets so that the number is computed once (during compilation) instead of at run-time, everytime. Makes things go faster. 06:18:42 Especially if it is used a lot 06:18:47 Robert: As far as cells go, you are correct for byte oriented processors. Not true for processors that have a least addressable unit that is 16 or 32 bits. 06:19:39 Hyrax: Ah, OK. Never worked with any of those. 06:20:03 While technically true, I'm trying to keep it simple in my explanation. 06:21:28 kc5tja: 8 bit byte on most processors is the least addressable unit, so your explanation fine. 06:22:48 Robert: They can be a bit tricky, especially when trying to write portable code. 06:23:42 Plus there are ambiguities in how ANSI Forth handles more-than-8-bit-minimum-word-size architectures too, IIRC, so as far as I'm concerned, it's all pretty much moot. :) 06:23:54 Hyrax: Then I'll stay away from them in the future as well. ;) 06:25:37 Robert: If you stay away from Forth on DSPs, you won't have a problem. Portable code is not as important on them anyways, as they are special purpose. 06:26:07 Hyrax: Never touched a DSP. 06:32:00 * saon mucks around in linux 06:32:15 Having problems? 06:32:43 last night i wasted half an hour trying to mount my other hard-drive because i typed: "mount /dev/hdb /mnt/hd" instead of "mount /dev/hdb1 /mnt/hd" 06:32:50 and couldn't figure out what was wrong :/ 06:33:08 but i got it figured out and got all of my old interesting program code transferred 06:33:25 except there's one thing that concerns me 06:33:37 Heh. 06:34:07 in some of my c programs, gcc refuses to compile because of undefined references to sqrt and floor even though i have "#include " 06:34:25 is it different on *nix? 06:34:28 Is it a linker error or compilation error? 06:34:36 Because you'll need -lm for the linking. 06:35:15 hrmm, i was thinking it was a compilation error, but, it could be linking, brb 06:37:48 hrmm, well, -lm fixed the compilation problem, now i just need to revise the code since it's dumping random data from memory in parts of the program :/ 06:38:10 Hey, now that is always fun. :-) 06:38:32 like, it'll run and generate the primes, but when it goes to print them out, the last one on each line isn't actually part of what was sieved 06:38:44 Heh. 06:38:54 You're using -Wall, right? 06:39:03 So you don't get any stupid printf() format string errors. 06:39:08 ... 06:39:12 * saon slaps forehead 06:40:26 hrmm, it dumped an error saying "control reaches end of non-void function" 06:40:42 Forgot a return :) 06:40:48 Among other things too. -Wall I find can be annoying at times, because it'll gripe about seemingly trivial things. But believe me, in a big program especially, they're important. :) 06:41:31 i think the problem is with the display formatting routine i wrote, but, imma fix that return problem real quick just to see what it's deal is 06:41:35 At the high school programming classes the need for support dropped 50% after a guy started using -Wall. 06:41:48 And by 100% when he actually started READING the warnings. 06:42:58 lol 06:43:18 my high school offers no programming courses :'( it's terrible 06:43:34 We had some elementary C++, that's all. :) 06:43:37 i think there's maybe 4 programmers in the school out of 2k students 06:43:45 To be honest, I learnt much more by playing at home. 06:43:50 Heh. 06:44:02 and the others are ones that know basic c for programming a lego-mindstorms robot :/ 06:44:10 That's no fun to hear. 06:44:36 There were two programmers at my old school, me and the -Wall guy. 06:44:53 yeah, there's really very little interest in computers out here 06:44:53 And a few people who were forced to code by the school, but didn't enjoy it much. 06:45:15 Well, "out here" for me means near Stockholm. 06:45:19 i don't think anyone should code if they don't like coding, it's just a waste of time 06:45:29 Depends, sometimes it can be useful. 06:45:35 out here for me is northern florida 06:45:50 where nobody does anything except eat sleep and go to church 06:45:57 Hehe 06:45:58 Fun! 06:46:00 oh yeah, there's sports too 06:46:15 Every geek's favourite. 06:46:20 oh yes 06:46:33 my friend and i are starting a computer club just to see how many people will join 06:46:45 Over here we have that, with "church" replaced by "alcohol". 06:46:57 So hardly any better. 06:47:00 we're getting some old proliant's from a semi-local bank :) :) 06:47:20 Proliant? 06:47:30 compaq (now hp) servers 06:47:41 Cool 06:47:44 :D 06:47:54 I have my own computer club, most donations are from mom's job ;) 06:48:03 coolness 06:48:48 the problem my computer club faces right now is storage, there's no secure place to put computers and the school isn't willing to offer any 06:48:51 Oh, and my old school. 06:49:02 mostly because they don't particularly like me or the sponsoring teacher i think 06:49:12 I got an 80186 based CP/M computer and 500 floppies. :D 06:49:21 because we almost cost IT their jobs 06:49:29 Awww. 06:49:33 80186, w00t 06:49:40 * Robert has about 10 computers at his room. 06:49:48 Storage problem solved. 06:50:00 lol 06:50:10 i've got 4 in mine, but, they don't all work at the moment 06:50:10 Actualy it's not as bad as it sounds. 06:50:25 Hmm... I only think a few ones here are broken. 06:50:28 Robert: Sounds like the perfect machine to make a ham radio BBS with. :) 06:50:32 But only 3 are up and running. 06:50:34 lol 06:50:43 Also, are you sure its running CP/M on an 80186? 06:50:56 kc5tja: If I only could figure its hardware out - there is NO documentation. Yeah, CP/M-86 (version 2.1 or something). 06:51:13 i've got an old 386 around here somewhere for computer club, methinks the hd is broken though 06:51:13 Ahh! A rarity, dude! That product eventually became DR-DOS! 06:51:31 kc5tja: The company that made those computers went out of business like 20 years ago, and the ones who took over the project...hmm...no idea what happend to them. 06:51:35 kc5tja: :) 06:51:52 Yeah, it's pretty unique. Its main programming language is Comal. 06:51:57 CP/M-86 is MS-DOS compatible. 06:52:02 Comal -- not familiar with it. 06:52:10 Though the name very, very vaguely rings a bell. 06:52:14 But I usually use the Pascal IDE. 06:52:24 Comal, mix between Pascal and BASIC. 06:52:31 comal == dyslexic ocaml 06:52:48 Backwards compatible with BASIC, but with some elements from Pascal to make it less useless. 06:52:52 saon: Heh, right :) 06:53:25 I should see if I can get one of those things running again, I have some space in the corner. 06:53:32 lol 06:53:55 If I could figure out how to interface its RS232 port, I'd network it. 06:54:04 it'd be fun to make an old machine that used forth as it's main operating environment 06:54:16 "make an old machine"? :) 06:54:28 lol 06:54:39 I'm working at that, except I'm making a..new..system. 06:55:36 Got to see if I can get the block editor to work properly. 06:56:53 heh, my friend has an old AT&T UNIX PC in his room, running "UNIX 3.0" 06:57:05 i've been trying to figure out how to program on it 06:57:29 C 06:57:30 :) 06:57:34 it's no help that there aren't man pages or even descriptive help facilities 06:57:37 Guess what the first thing I lost when I learnt forth was? 06:57:43 My floppy with C64-Forth. :( 06:57:52 that sucks 06:58:05 Yeah, but my C128D lacks a monitor anyway. 06:58:05 i must learn to use ed 06:58:14 Hehe, have fun. 06:58:23 Doesn't it even have vi? 06:58:27 lol, nope 06:58:30 Wow. 06:58:37 ed/red is it, if i want a better one, i have to write it first 06:58:39 btw, the CP/M system only has ed. 06:58:55 And the editor in the Pascal IDE, which is hell of a lot better. 06:59:20 well, there's a really really crappy program called "word 1.0" which i believe microsoft made, but it's no good for program code 06:59:30 For the UNIX system? 06:59:40 yeah, very odd i thought 06:59:47 Cool. 07:00:10 the user has a gui and all, with some applications on it including a word-processor and paint program 07:00:28 but i just gained root on it and bypassed the gui 07:00:34 much more appealing to me that way 07:00:51 On a slow computer, that might be a good move. ;) 07:00:56 ah, the monochrome green command line :) 07:01:11 Since I moved all graphics to the other computer, I've stopped using X on this one. 07:01:15 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 07:01:16 Which is very nice. 07:01:57 Hi warpzero 07:02:08 i like my X interface (standard svga, running fluxbox as the wm with my own personal theme) 07:02:14 it's very friendly for me 07:02:24 and minimalistic enough for me too 07:02:35 * saon hates using kde/gnome 07:02:42 xfce is a little better, but, not much 07:02:56 fluxbox/blackbox stays out of my face nicely 07:03:08 if only they had geoshell on linux 07:03:11 This is odd, the editor skips the first 8 bytes on _odd_ blocks. 07:03:13 I wouldn't mind KDE or Gnome if they didn't try to go all hog-wild with all that crazy-ass eye-candy. 07:03:15 hey Robert 07:03:22 I like WindowMaker. And I've grown an affinity to twm too. 07:03:26 kc5tja: i hear you on that 07:03:28 amiwm is still one of my favorites though. 07:03:38 I use icewm, because I like the Windows look. ;) 07:03:43 UUGHG! 07:03:45 * kc5tja vomits 07:03:50 kc5tja, i agree, all that eye-candy distracts me 07:03:50 Haha 07:04:10 i haven't used window-maker enough to decide whether i like it or not 07:04:13 At least use the OS/2 Warp 3 theme. The lines are cleaner and the color choice is superior. 07:05:14 but i LOVED geoshell on windows, i had my system tray on a bar, tasks on another, direct command line, and commonly used apps. i tucked them all against different parts of the screen so there was NOTHING on the screen until i wanted to put something there 07:05:27 just move the mouse to that particular edge for the bar to pop out with what i want 07:05:35 i miss having that 07:05:39 i like windowmaker because there are no F***ING BARS 07:06:06 anybody tried afterstep? 07:06:46 I've never used it, but I've heard WindowMaker was a better, more complete WM. 07:06:55 This was a while ago though. 07:07:14 that's what i've heard too 07:07:23 i just hate bars 07:07:37 icons 07:07:39 thats cool 07:07:47 bars NO NO NO NO NO NO 07:08:19 I find no real distinction between bars and arrangements of icons. 07:08:40 well id prefer neither 07:08:50 theres no reason for anything to be on your screen but windows 07:09:04 at least with icons its not taking a chunk out of your usable space 07:09:38 * kc5tja nods 07:10:47 i tend to use one fullscreened app per workspace anyway 07:11:06 so bars just piss me off 07:11:58 * kc5tja misses AmigaOS screens. 07:12:36 Kind of the same thing, where it's usually one application per screen (though not necessarily full screen windows, the effect is the same), and the screens themselves can be depth arranged and dragged up and down. 07:12:51 amiwm has screens, but it's just not the same thing. More a hack than a useful feature. 07:14:49 God darn it -- I need to find some folks to play some quality D&D with. I totally miss RPGing. 07:15:06 i hate rpgs 07:15:29 Too bad -- you really miss out. 07:15:49 bleh 07:15:53 some tabletops are good 07:16:00 but D&D sure aint one of them 07:16:01 tabletops? 07:16:05 LARP is horrible 07:16:15 Ummm..who said anything about LARP? :) 07:16:26 Sure as HELL not me. :) 07:16:38 and computerized RPGs suck even more 07:16:43 Not all of them. 07:16:48 But that's not what I want. 07:16:59 I prefer the face-to-face variety of RPGs. 07:17:11 like i said 07:17:15 They're more fun because you can argue with the GM and bribe him with food and stuff. 07:17:19 there are some good tabletop rpgs 07:17:28 D&D isn't one of them though 07:17:46 D&D is THE tabletop to play. Especially 3rd edition. 07:18:10 rpgs that are all about levels and monsters aren't fun 07:18:19 That depends. 07:18:31 * kc5tja would like to play a game based on The Window someday. 07:18:45 Window is a game system that looks really good, but isn't quite so hack-n-slash. 07:19:26 well im just not a big rpg fan 07:19:34 rpgs that are about solving problems are fun though 07:20:05 I solve problems all day at work. 07:20:09 I don't want to solve more when I get home. 07:20:45 bleh 07:20:53 yaea ya just wanna shoot sumthin huh 07:20:56 monsters-experience-level games are boring 07:21:07 if i want to shoot something ill play quake 3 07:21:48 Well, I don't wanna just shoot something either. 07:21:54 The fun of D&D comes from the player dynamics. 07:22:09 no the player dynamics are just annoying 07:22:15 warpzero: You're foolish. 07:22:22 NO YOU 07:22:32 The whole point of RPGing is to get together and have a good time. 07:22:47 i thought it was to win 07:22:47 :p 07:22:55 qFox: Winning is secondary. 07:23:01 Id rather program it's a more productive puzzel :) 07:23:29 warpzero: DON'T YELL AT ME. 07:23:53 kc5tja: BRUSH YOUR TEETH AND GO RIGHT TO BED 07:24:19 warpzero: Like I said, you're foolish. And your obvious attempts to make me upset won't work. So don't even try. 07:24:33 im not trying to make you upset 07:24:45 * Raystm2 remembers growing up abused :( 07:25:19 i dont understand how im foolish because i dont like RPGs 07:25:45 warpzero: I was responding to your "player dynamics are just annoying" comment. 07:26:00 they are 07:26:14 Well, (a) don't play, and (b) don't interfere with those who desire to play. 07:26:18 are they 07:26:27 lol 07:26:47 hey that's what my congressman say's 07:26:50 Because when I was playing D&D every week, I had some spectacular times with my friends. 07:27:20 well everyone ive ever played D&D with has been obnoxious 07:27:21 * Raystm2 remembers D&d fondly on long voyages 07:27:36 are they 07:27:49 Well, then you've been hanging with the wrong crowd then. 07:27:55 always or never 07:28:45 you really have to start at _the_ right age to benifit from the comradre 07:28:46 Either that, or you just don't know how to get into the gaming mindset (which isn't an offense; some people can't. Most of my family can't get into it at all either.) 07:28:55 Well, if I want to play a game kc5tja I just prefer something mindless like quake or DDR. 07:29:17 And if I want to hang out with my friends, I'll hang out with them. 07:29:21 Raystm2: I disagree. I was already 26 to 27 years old when I started. I hardly consider that "the" right age. Most RPGers start before they're teenagers. 07:29:51 there are many "right' ages -- mind sets -- same thing 07:29:53 warpzero: Oh, so playing a game of D&D with your friends doesn't constitute hanging out with them. Riiiight. 07:30:45 well ive never had fun playing D&D 07:30:49 so whatever 07:31:07 many kids program much better than me and I am not at thier programming age yet. 07:31:21 Well, there you go. I wouldn't blame the game; sounds like a personal problem to me. 07:31:30 i do blame the game 07:31:35 For what? 07:31:39 Because you can't interact with others? 07:32:00 I can interact with others just fine. 07:32:01 thats hardly fair 07:32:13 I meant in a gaming scenario. 07:32:13 The game makes people more obnoxious by virtue of levels and stuff. 07:32:20 More obnoxious how? 07:32:22 D&D takes a really creative group and if you didn't have fun you just didn't meet your group. 07:32:52 kc5tja: my character is a higher level than yours therefore my dick is bigger 07:33:03 he he 07:33:16 i seriously can't stand anything with levels in it 07:33:18 109 keys on his keyboard :) 07:33:37 shoot'em up's have levels 07:33:38 some rpgs everyone starts out the same and they stay that way 07:33:43 THOSE are good RPGs 07:33:48 warpzero: Dude, that's all meant in gest. C'mon -- WE do that to other programmers just because we program in Forth ALL THE TIME. But you don't complain about it here. 07:33:56 And it's not meant in any serious capacity anyway. 07:34:05 i just dont like levels 07:34:07 * Raystm2 re-educated thanx 07:34:46 i think that games should be about your skill not how many experience points you ahve 07:34:56 there are many levels of many kinds of education in this chat. 07:35:03 warpzero: But how do you judge your skills? 07:35:10 How can you even GAIN skills if you don't have experience? 07:35:22 I find my self low on some and high on others. 07:35:25 in the usual human way 07:35:25 XP is just a way of quantizing it. 07:35:35 warpzero: It *IS* the usual human way. 07:35:38 yeah but when you quantize it you just open this whole can of suck 07:35:58 came here to find people who know more than me so I have to be sh*t on by the elite every once in a while to get manna 07:36:10 n\p 07:36:15 Heheh -- programming mana. 07:36:18 just like d&d 07:36:21 Anyway, I gotta go home. 07:36:27 thanz 07:36:31 kc5tja: thats why i like starcraft and not warcraft 3 07:36:35 no friggin levels 07:36:40 Starcraft rocks too! 07:36:43 * kc5tja loves the game. 07:36:45 slowly take time kc5 no rush hour today. 07:37:00 kc5tja: well seeya 07:37:16 Raystm2: 82.5MPH is the speed I drive in my car. I already gave the reasons why: minimum specific fuel consumption. Besides, it **IS** rush hour. Right now. 07:38:30 hey I believe that with the kinds of modern street construction there is a perfect speed to carry the weight of the car smoothly thru the sinusoidal waves of the streets. 07:38:52 but I like to live too. 07:39:08 Fear is what kills. 07:39:13 and I need your knowledge so be careful 07:39:19 agreed 07:39:34 If you know how to handle the car, and you are confident in your abilities with the car, then you can handle yourself in accident situations. 07:39:54 * kc5tja has *avoided* more accidents by good sports car handling and judicious use of *acclereation* than I have otherwise. 07:39:56 agreed practice makes perfect 07:40:20 BTW, if you want to learn how to handle your car, attend and participate in autocross racing. 07:40:50 It's perfectly safe. You never exceed 80MPH, and unless you drive an SUV (which they won't let you, guaranteed), there is no way in hell you'll flip or roll the car. 07:40:53 No way. Just won't work. 07:40:54 you would sh*t your pants when I was driving. I've taked driving to new hights but now that I know how I'm more thoughtful to the other drivers 07:40:59 situational awarness is more important than being a rally car driver 07:41:19 zardon: Who said anything about rally car driving? 07:41:42 Autocross is when you're driving on tarmac, with turns coming at you some 4x to 8x faster than what an Indy car racer would experience at full speed. 07:41:50 The track is delineated with soft rubber road-cones. 07:42:10 sounds fun :) 07:42:12 In short, you learn how your car handles. 07:42:14 Oh, it IS fun. 07:42:17 VERY fun 07:42:20 worth cash 07:42:38 Hard on the tires though, so make sure you have cash to replace your tires more often. :) 07:42:44 a school comes with your first farrari.. 07:43:07 you have to be trained to operate. 07:43:10 As well it should 07:43:11 smart 07:43:16 agreed 07:43:29 you should know all about all your tools 07:43:43 Yep. 07:44:01 be safe bro 07:44:05 Anyway, peace. I'm going home, to bed. 07:47:50 zardon : agreed being able to read the road and anticipate and react with caution is the hallmark of excellent driving at any speed. 08:44:32 --- quit: paintcan (Read error: 242 (No route to host)) 09:20:52 --- join: paintcan (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 09:25:08 hiya 09:25:13 --- nick: w0rk1ng_ch1k3n -> t3h_ch1k3n 09:35:47 --- join: crc (crc@207-pool1.ras11.nynyc-t.alerondial.net) joined #forth 10:50:59 hi 10:51:03 Hello slava 10:51:05 anybody familiar with the method of characteristics used to solve PDE's? 10:51:38 crc, what's new? 10:52:10 I just uploaded RetroForth 7.4 10:52:33 Nothing major much beyond that... 10:52:40 Nascar needs an automated system to time cars in pit road to fine drivers that can't survive at 55. 10:53:09 sorry just jumped in there :) 10:53:22 :-) 10:54:15 they havnt found a system they like yet ? oppertunity calling ? 10:56:11 forth and nascar. customizing speed demons unit 10:56:17 unite 10:57:36 slava: PDE's ? 10:58:39 Poly-dimentional Eulclidian universes? 10:58:54 oops Euclidian 10:59:36 is it a "have to ask..." problem ? 11:00:38 Partial Differential Equations ? 11:04:14 Pretty-Dumb-Exercise? :) 11:09:06 The general form of the time-independent, elliptic, scalar PDE is 11:09:11 -div( c*grad(u) ) + a*u = f 11:29:27 partial differential equation 11:37:08 okay thanx -- did not know until you said and I got educated cuz of it so thanx again:) 11:38:18 --- join: Sonarman (~matt@ppp-66-124-254-58.dsl.snfc21.pacbell.net) joined #forth 11:42:23 --- quit: saon ("Leaving") 11:43:32 is there a standard word for case-insensitive string comparision? 11:44:40 Checking ans please hold.......... 11:46:00 thanks. i already looked, but i may have missed it 11:46:12 i don't recall there being one, though. just thought i'd ask 11:46:48 okay me neither. probubly a process more that a standard word. 11:47:01 What are you up against? 11:47:31 are you comparing ascii chars? 11:48:32 yeah. i guess i'll just convert one of them to lowercase first 11:49:59 yeah just adding (what 20h ?) and subtracting the dif and comparing twice might be a general solution . ? . ? 11:51:13 yeah 12:01:07 sonarman: I had a thought . no really I did. You might could use 'abs' if you set the values right then 'abs' would always return the match. dykwim? 12:03:01 hmm... no, i don't follow 12:05:28 well you know how abs always returns the positive value of negative or positive numbers given to it. subtract a number from the letter your comareing that makes it - if uppercase and + if lower then abs then add the original constant back in to always get the lower case . get it ? 12:06:34 I guess the constant would be what ever is before lower case 'a'. 12:09:39 ah, i see now 12:09:40 : >upc dup 'a - abs + ; 12:10:52 thanks, but how is that better than : >upc $DF and ; ?:) 12:12:14 I didn't think of it that's why :) 12:12:22 he he good job! :) 12:13:19 :) 12:14:38 only problem is that that borks up some non-alphabetic characters 12:15:18 --- join: swsch_ (~stefan@p5091E56C.dip.t-dialin.net) joined #forth 12:15:45 yeah so not that general a solution. but a start :) 12:17:37 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 12:18:14 i guess i'll just go with : >upc 'a 'z 1+ within if $DF and then ; 12:19:34 smart very smart way too go sonarman ! :) 12:19:58 it's just trivial stuff :) 12:20:38 --- quit: saon (Client Quit) 12:22:04 everything in forth is trivial once you write a word for it. I once describe forth as that language with factor . thats what happens in the future. as your making the sound ga for go the forth interpreter begins to anticipate your every next need . and the next one rinse ... repeat :) 12:22:27 ad infinitum 12:23:35 hehe 12:24:53 but i wouldn't wanna code that one. not enough ai in this brAIn. :) 12:30:30 duckin out for a half be back :) 12:30:38 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 12:31:03 --- quit: swsch (Read error: 110 (Connection timed out)) 12:45:50 --- mode: fu7h1n set +o crc 12:45:54 --- mode: fu7h1n set +o I440r 12:45:55 --- mode: fu7h1n set +o paintcan 12:45:58 --- mode: fu7h1n set +o qFox 12:45:59 --- mode: fu7h1n set +o Sonarman 12:46:01 --- mode: fu7h1n set +o swsch_ 12:46:06 --- mode: fu7h1n set +o warpzero 12:46:08 --- mode: fu7h1n set +o zardon 12:46:16 * fu7h1n thwaps t3h_ch1k3n's head 12:47:28 Why is everyone an op? 12:47:41 fu7h1n was in a good mood, I guess. 12:47:45 because fu7h1n 12:48:17 ok 12:48:54 nah, blame it on i440r and t3h_ch1k3n 12:48:55 not on me 12:49:05 i blame it on you. :P 12:49:09 i'm just a puppet! 12:49:20 MEOW! 12:49:28 some day you will become a real boy! 12:49:41 or a cat. apparently. 12:49:58 :-) 12:51:40 scratch my back and i'll purr! 12:55:44 no one wants to scratch my back? :~( 12:56:48 * crc is too tired to scratch your back... 12:59:44 * slava is writing unit tests 12:59:59 my goal is to have the test suite reach 3000 lines 13:08:15 Then your test suite will have more lines than RetroForth 13:08:42 * crc is preparing to start a code cleanup & debugging of RetroForth 13:09:24 --- join: Raystm2 (Rastm2@ACC95E0A.ipt.aol.com) joined #forth 13:15:39 slava writing unit tests for isforth ? 13:15:45 how do you test your unit tests ? 13:15:54 I440r, for factor 13:31:06 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 13:39:33 --- join: hefner (~hefner@pool-151-196-238-98.balt.east.verizon.net) joined #forth 13:39:39 Hi 13:39:45 hi 13:41:14 i need to work on making my compiler bail out of compiling code it doesn't understand 13:41:21 instead of generating invalid code 13:41:24 hello all 13:42:02 my generic arithmetic code compiles, and is now as fast as the old arithmetic in C. 13:42:13 --- join: Raystm2 (Rastm2@ACD10430.ipt.aol.com) joined #forth 13:42:35 Hello forthers :) 13:47:31 Hi :) 13:48:23 Hey Robert: what cha up to? 13:50:03 Coding Forth, actually 13:50:19 To take a break from the assembly coding, hehe 13:50:24 --- quit: qFox ("this quit is sponsored by somebody!") 13:50:35 I'm watching a documentry about how a superior smaller tighter technology destroyed the most powerful technology of its time. the airplane over the battleship in Pearl Harbor. 13:51:40 Ah, that was a sad story. 13:51:57 :) 13:54:16 truely, but it had to happen I guess. 13:54:21 Hi ch1k3n 14:00:02 get complacient and someday some one will Zero in on your deficiancy :) 14:00:48 usually its a teenage girl :) 14:01:01 that's the one that hurts :) 14:02:18 you still think ya got it when you're fourty but your teenage daughter and her friends still giggle when you leave the room :) 14:03:01 stiff upper lip then. :) 14:04:15 It's probubly a natural defence mech to protect the girls :) 14:05:14 --- quit: crc ("Time for bed... Goodnight!") 14:17:25 --- join: saon (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 14:20:18 --- join: ayrnieu (~julian@199.2.120.95) joined #forth 14:25:15 --- join: TheBlueWizard (TheBlueWiz@modem-043.nyc-tc03a.fcc.net) joined #forth 14:25:15 --- mode: ChanServ set +o TheBlueWizard 14:41:53 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 14:43:37 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 15:03:26 --- join: Raystm2 (Rastm2@AC8C3675.ipt.aol.com) joined #forth 15:04:34 Hi again 15:05:55 Hi there, Fell off the world for a minute there :) phone call and on modem :) 15:06:20 Ouch, I don't want the modem days back 15:06:48 --- join: Sonarman (~matt@adsl-64-160-165-169.dsl.snfc21.pacbell.net) joined #forth 15:07:13 Will be changing back soon . can't wait. I've been dl ing Debian cd's for 3 weeks now and I still have 4 to go. 15:08:58 Heh 15:09:37 * Robert continues playing with everyone's favourite toy - primes! 15:11:57 i missed the discussion on square roots in #ypn :( 15:14:12 Raystm2: sarge is supposed to become stable within a few weeks...so why downloading the CDs now? 15:14:13 Awwww. 15:14:26 Sonarman: Was there anything you needed to know? 15:15:09 yes, but since i missed the discussion, i don't know what it was i needed to know :-(( 15:15:18 ;) 15:15:25 Blue may as well as in a couple weeks the demand will be higher and I will only need the updates :) 15:17:13 I won't finish the images for sarge till then anyway :) 15:17:19 Sonarman: Want the logs pasted? 15:17:23 or so it seems :) 15:17:31 Sonarman: If so, from what point? 15:23:00 Robert: no, it's ok. i just didn't want to pass up the sulking opportuninty :) 15:23:15 I'll give you the code once it's done. ;) 15:23:23 that'd be cool. thanks 15:23:34 16-bit number theory library! Really useful. 15:24:32 also share you 8-bit public key encryption :P 15:24:50 *your 15:27:18 Of course. 15:27:21 Security! 15:27:27 yes 15:27:32 call the security guys 15:32:09 Did I tell you about the guy who actually _used_ a 32-bit RSA crypto? 15:35:30 gotta go...all bye! 15:35:40 --- part: TheBlueWizard left #forth 15:35:41 bye 15:50:38 --- quit: OrngeTide ("bye") 16:05:13 --- quit: saon ("Leaving") 16:26:10 --- join: Raystm2- (Rastm2@ACC8F48B.ipt.aol.com) joined #forth 16:28:48 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 16:33:08 --- join: proteusguy (~proteusgu@203.148.241.62) joined #forth 16:33:36 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 16:44:15 --- quit: saon ("Leaving") 16:47:00 --- quit: paintcan ("~") 17:02:41 --- join: hefner_ (~hefner@pool-141-157-13-173.balt.east.verizon.net) joined #forth 17:02:52 --- quit: hefner (Nick collision from services.) 17:02:57 --- nick: hefner_ -> hefner 17:32:33 Back 17:33:06 hi kc5tja 17:43:09 Hopefully, if all goes well tonight at work, I can actually get some FTS/Forth coding done. 17:43:16 * kc5tja still needs to make that thing interpret. :) 17:46:17 k5 : You still working on FS/forth? 17:46:30 Er.. was fts just a typo? 18:00:48 No -- FTS/Forth is its name. 18:00:57 FS/Forth is its old name; I renamed it almost a year ago. :) 18:01:14 (when I set up my website -- Falvo Technical Solutions) 18:01:39 What's it .... okay thanx Sam :) 18:04:01 Cool 18:04:43 kc5tja, will you have STATE, or have QUIT be the interpret loop and ] be the compile loop? 18:04:45 They'll stop calling it forth and start calling it falvo with a small f :) 18:05:43 * ayrnieu demands anarchist Forth! Down with the STATE variable! 18:06:23 or maybe have it always be in compile state, and the text interpreter will compile each line of input and forget it after evaluation? 18:07:51 There will not be STATE -- distinct Forth and Compiler vocabularies eliminates the need for it. QUIT and ] will be as you describe, however. 18:07:58 stat then its more efficent :) 18:08:35 kc5tja, ok 18:08:50 stat? 18:09:29 As I indicated, my Forth follows in the footsteps of cmForth. 18:10:10 Yeah ayrnieu wants to get rid of State var so I offer stat . :) 18:10:57 like at the hospital stat. now even :) 18:11:52 it seems sdl does not support 1bpp surfaces 18:12:10 i'm planning on writing some code to render text 18:12:18 i guess i can do my own blitter 18:15:39 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 18:22:31 Raystm2-: OK, then I have to wonder what you think is more efficient? It looks like you're saying that having state is more efficient? 18:22:44 i doubt either approach is more/less efficient 18:22:56 other factors, such as vocabulary hashing, have a greater effect 18:23:11 the toy pseudo-forth I started writing worked as slava describes (always compile, with an extra compile mode pointer for each word to do things like inlining and implementing syntax) 18:23:25 But I still don't know how 'real' forth does it :) 18:23:39 hefner, does what exactly? 18:23:47 hefner, in a 'real' forth, in interpret state words are executed as they are read 18:24:05 hefner, in compile mode, immediate words are executed, other words are added to the currently compiled word as code that executes that word 18:25:11 Kc5tja : spelling with less letters is more efficient, if its more efficient computationally -- you have to tell me ;) 18:28:04 --- join: paintcan (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 18:28:11 son needs phone 10 mins brb 18:28:13 --- quit: Raystm2- ("User pushed the X - because it's Xtra, baby") 18:31:24 Yeah, to be honest, STATE-based systems are more efficient in terms of lookup costs, because only one database search is needed to find a word. 18:31:42 But non-STATE-based systems are more flexible, and easier to deal with at the programming level. 18:39:08 --- join: crc (crc@114-pool2.ras11.nynyc-t.alerondial.net) joined #forth 18:43:31 Hi. :) 18:44:04 hello the chicken 18:46:26 Hello arke 18:47:12 HI CRC 18:47:37 --- part: zardon left #forth 18:48:49 --- join: jim (~jim@cpe-24-143-141-183.cable.alamedanet.net) joined #forth 18:49:12 What's new? 18:49:34 nuthin... I'm still working on my arm simulator 18:50:04 * crc is planning to buy some ARM hardware next year 18:50:24 I want to port RetroForth to ARM and possibly PPC in the future 18:50:27 ahh, pretty good 18:50:59 the simulator is working... but I just have to get more instructions going 18:51:16 i have world domination plans 18:51:40 once doublec finishes the symbianOS port of factor, i want to get some arm hardware and write an arm compiler 18:51:45 and take over the handheld market 18:51:46 what, planning to live in the world and be dominated? :) 18:51:46 mwahahaha 18:52:19 --- mode: t3h_ch1k3n set +o crc 18:52:19 ahh, then the both of you may be interested in the simulator 18:52:23 slava: using Factor? 18:52:37 crc, a factor compiler targeting the arm, yes 18:52:41 cool 18:52:58 You should try to do a native x86 version :-) 18:53:01 f001$!! FTS/Forth will PWNZ J00. 18:53:13 crc, as in, no OS? 18:53:28 That's right 18:53:37 Have factor _be_ the OS 18:53:39 nah 18:53:44 i see no use for that personally 18:53:48 you should think about having the SoftInt instruction do the key/emit functionality 18:53:49 * crc is working on RetroForth/Native again 18:53:55 i only have one computer 18:53:56 --- quit: saon ("Leaving") 18:53:57 18:53 <@kc5tja> f001$!! FTS/Forth will PWNZ J00. 18:54:02 and i don't want to rewrite all my apps in factor :) 18:54:03 haha! 18:54:11 What is PWNZ? 18:54:16 kc5tja is 1337 18:54:16 crc: ownz 18:54:21 --- join: Raystm2 (Rastm2@AC8199EC.ipt.aol.com) joined #forth 18:54:24 kc5tj4 1s t3h l33t 18:54:27 ok 18:54:29 Wow! THat's OLD! 18:54:38 --- mode: t3h_ch1k3n set +o Raystm2 18:54:44 How can anyone be 1337 years old?! 18:54:52 thanx ch1k 18:54:53 * t3h_ch1k3n laugh 18:55:05 jim: I'm a dragon. That's merely teenage years for a dragon. 18:55:08 Raystm2: not afraid of you, you don't even know how to use it lol 18:55:16 jim 1337= elite 18:55:23 lol 18:55:24 is not :P 18:55:25 jim: yep. no human could know so much than kc5tja 18:55:42 kc5tja, what do you think of test coverage tools? 18:55:56 ch1k3n : you already know to much about me 18:56:08 he's got that whole subject covered :) 18:56:27 he he :) 18:56:36 light read :) 18:56:49 meaning testing 18:56:59 slava: Never used them; but I suppose they can come in handy. I'd be particularly interested in combining XP-style unit tests with a code coverage tool. 18:57:34 what's coverage mean itc? 18:57:48 You have a program that is, say, 500 lines long. 18:58:02 Of those 500 lines, you *typically* will run maybe about 350 in most cases. 18:58:08 (most often used features, etc) 18:58:24 It's often very hard to remember to test less-often used pieces of code. 18:58:27 right... some of that could be "should never get here" 18:58:38 A code coverage tool will maintain a database of what code has and has not yet been executed. 18:58:47 ahh 18:58:56 ahh 18:59:10 jim, consider bitrot at the target of a infrequently-taken branch 18:59:20 Combined with something like unit tests, a code coverage tool can help identify code which needs unit tests to back them up (note: note all such code DOES, but it helps to be aware of them anyway). 19:00:21 is it possible to say to the database things like "this test tries this X range of lines" 19:00:43 jim, the point is that the code coverage tool tells you what lines were executed 19:00:48 jim, not the other way around 19:01:12 Actually, CCTs tell you both. A code coverage tool will have access to the source code (indeed, it must). 19:01:14 kc5tja : you make a test for all functions and the data base does the rest ? 19:01:26 No. 19:01:30 okay 19:01:42 also okay 19:01:50 The basic premise of all this is simple: conditionals are the root of all evil. 19:01:58 or, is it possible to have the code coverage tool do its thing, and have another tool say "on X occasion, Y test covered Z range of the code" 19:02:01 he he 19:02:07 The less conditionals you have, the better -- the faster the code, and the more reliable the code. 19:02:11 eg, http://www.cenqua.com/clover/eg/checkstyle/report/index.html] 19:02:11 It's a pretty well proven fact. 19:02:13 rather 19:02:14 eg, http://www.cenqua.com/clover/eg/checkstyle/report/index.html 19:02:27 So, ideally, you need one test case (minimum) for each conditional. 19:02:29 nonono, it's the LOVE OF conditionals that's the root of all evil :) 19:02:41 he he 19:02:46 jim: You know what I mean. 19:02:53 well, yes 19:02:56 unconditional love is best :) 19:03:09 unless it's not... 19:03:20 Actually, I should change that: you need two (minimum) tests per conditional. 19:03:28 One for the TRUE condition, and one for the FALSE condition. 19:03:31 yeah, clover enforces that 19:03:44 Obviously, for multi-way decisions, you need N tests, where N is the number of branches. 19:04:09 Anyway, a code coverage tool helps you keep track of your tests -- you have a 3-way branch at location X, but only 2 of the conditions have been tested. etc. 19:04:14 right... and there are coding conventions that say "you -must- have an else clause on all ifs, even if you write a comment describing the situation and nothing else" 19:04:49 I personally don't agree with that -- that is a style issue, not a reliability issue. 19:05:36 the reasoning behind that, is the probablility that when a programmer doesn't put an else, he's forgetting something 19:05:48 not necessarily 19:06:10 IF bar THEN baz 19:06:10 I personally don't code that way. I can see that happening IF you code strictly linearly, top down. 19:06:16 I personally write something like this: 19:06:18 if( condition ) 19:06:19 { 19:06:19 } 19:06:21 else 19:06:24 { 19:06:27 } 19:06:41 then I cursor up to the appropriate blocks, and fill in as needed. This way, I never have to think about it later. 19:06:45 It's a reflex action for me. :) 19:06:59 so you always -do- put an else block? 19:07:10 some ide's do that auto for ya :) 19:07:13 When I know for a fact that I need an alternation, yes. 19:07:33 Otherwise, no -- most of my conditionals are just conditional execution, not outright alternation. 19:08:51 RHide has it's own c macros that build little templetes for people who like to chord the keyboard when the code . 19:09:07 the = they even 19:09:24 when the code 19:09:30 is in the seventh house... 19:09:57 and jupiter aligns with mars 19:11:23 Love. a forth based language of unconditional words :) 19:11:50 that only connect :0 19:11:56 anyways... any of you have arm7 hardware now, that you have programatic access to? I'm looking for testers that do 19:12:16 sorry :( 19:12:35 jim, ask doublec when he's around, he has a phone and a zaurus 19:13:09 like zig zag lang love is 19:13:39 see the alliteration there 19:14:12 so if you put a GPS on it, you'll have Radar Love? :) 19:14:20 forth could be poetry in the right ( maybe left ) mind :0 19:14:24 he he 19:14:43 up to 3 meters :) 19:15:43 a forth haiku is / block swap drop over + + / see the randomness 19:15:47 we know we know gps and radar are distictly different techs but you gotta love his timing :) 19:17:28 --- quit: proteusguy ("The #python split is remarkably silly...") 19:17:34 I couldn't sew the technologies togeter and get it out quick enough :) 19:17:51 I've been saying all week that forth is the ability to abstract away with a word. That being said, someday you will say go and that will be the last word you have to tell forth for it will anticipate your every need rince repeat ad infinitem :) 19:19:40 I'm not necessarily from that particular school of thought, but partially I am: the abstraction ability can be used to create a language used to express (more conveniently, that is) solutions in the problem domain 19:20:17 hey what about when the computing power of the computer that designs the next line becomes more than equal to the brain power on earth. what then. will there be a day when the iterations between generations is in the nanoseconds? 19:21:17 and knowing more about the problem domain than about particular solutions, a good use of time is to make the language more convenient or wider coverage 19:21:21 whats Moores law when its being redefined from within the definition. 19:21:42 i follow you 19:22:50 My ham radio tuner is ultimately invoked with a single word: tuner. :) 19:23:12 see i told you :) 19:23:21 but if you know more about the solutions you want than about the problem domain, what then? is it better to bone up? or implement the one solution directly? 19:24:24 go ahead and try the one directly till failure all the while remembering what works . 19:24:51 that's experiance 19:25:37 weighted by actual what works 19:26:23 its the test where you cant determine every way your coded needs to be tested. 19:26:42 but do you suppose weaker knowledge of the problem domain hinders your progress? 19:27:17 sure until its all been tried and becomed evidence. 19:27:50 but at that point, the knowlege is no longer weak... true? 19:28:31 I guess not being creative enough to know what to try is a prob no ? 19:28:48 yeah not weak now right 19:29:29 so what you're advocating in the case of initially weaker knowledge, is to code and learn simultaneously 19:29:56 and also keep records 19:30:50 Raystm2: The process of building prototypes when you don't know what you're doing, especially with the intent on learning more about the problem itself, is called "spiking" in extreme programming. It's a rational thing to do. 19:31:44 * Raystm2 my hero rescues again points to you 19:33:01 brainstorming -- i guess within the parameters i set earlier for a +totalBrAIn computer interation the thing would have to know how to brain storm . 19:33:10 --- nick: paintcan -> wossname 19:34:26 rapid fire of undistinct images and sounds and experiances and a conscience that trys to catagorize it all at high speed for relevency . try a few pathes. learn . next . 19:40:51 jim i've been re reading the haiku over and over :) it's good . 19:42:09 I was trying to get "dump drop flush" into it :) 19:43:15 brilliant ! 19:44:10 any other good forth one liners :) I'm new, I'll laugh :) 19:44:16 * jim tries to see if the second line does anything interesting 19:46:32 FORTH LOVE IF HONK THEN 19:47:04 FORTH IF HONK THEN is how I've always seen it. :) 19:47:13 FORTH LOVE =IF HONK THEN :-) 19:47:18 :) 19:47:29 FORTH LOVE ?HONK 19:47:29 I grew up in a predominantly Polish town in New England and dup @ sounds awful close to what the old farmers used to call me as I ran thru there fields :) 19:47:31 he he 19:47:43 he he 19:47:44 I always figured LOVE ( your-language -- boolean ) 19:47:45 :) 19:48:08 Raystm2: Dupe fetch? 19:48:08 hehe 19:48:41 I pronounce DUP as other than DUP(LICATE), myself. 19:49:00 Robert insists that "tja" means "whatever" (as in the dismissive imperative response) or "hello" (when used as a greeting). I forget in what language though. 19:49:04 ya kc5 19:49:18 me too ayrnieu 19:49:49 yes that's gotta be some kinda nordic ? 19:50:07 DUP has always been doop for me (where oo is the halfway-between-short-u-and-long-u sound in English; I have non-phonetic languages!!) 19:50:22 --- nick: hefner -> d00p 19:50:44 Great. I started a phenominon! I'll start selling doop and d00p T-shirts tomorrow. :) 19:50:52 he he 19:51:41 it looks like it's taking the disk block numbered by the TOS, paging that into a buffer in ram, discarding whatever was below the block number, and adding double what was below that to the buffer address 19:52:02 dup @ makes me giggle like a school girl , just immature that way i guess. Must be the strick up bringing :) 19:52:29 yeah jim thats what I read too he he he 19:52:57 I loved it . great virus huh ! 19:53:40 kc5tja: how does your ham radio tuner work? 19:53:51 controls a motor? 19:54:20 you know about dx-radio.com? 19:54:42 me? nope 19:55:17 Sonarman: No. Modern ham radio transceivers have phase locked loop-based synthesizers. Tuning them involves writing a new number into the PLL's divide-by-N stage (thus affecting a frequency multiplication, by a factor of said N, on the synthesizer's output). Hence, you can get any frequency you desire. 19:55:37 My radio therefore has a digital tuning interface to it, which happens to be controllable via RS-232. 19:55:45 wow 19:56:40 err dxtuners.com 19:57:38 For those who are wondering, I have a Kenwood TS-2000 base station amateur radio. :) 19:58:23 thats great I'm coming to you when I go to do one. I wanna do it right the first time :) 19:59:10 kc5 : I've been thinking about creating a sort of guide to the internals of forth.. Something that would make understanding how forth works a lot easier for a beginner. Something more in depth than your typical howto. I was thinking about getting some of the big names in #forth to write some of the chapters. Would you be interested? Check out the prototype here: www.hcsw.org/forth/ 19:59:56 Fractal: I can try. 20:00:05 * kc5tja will check in a bit. Please stand by. 20:01:06 Yeah, it's just that I remember learning forth and I remember it being very hard to find a comprehensive source on forth internals... 20:01:47 typically, you'd get that information by doing the typical hack-full-time-for-a-month thing 20:02:53 Ya, I think a guide would make it easier for a lot of people 20:03:03 or by typing in an asm listing and trying to get it to work :) 20:03:09 brute force method :) 20:03:33 the internals are actually pretty simple... 20:03:50 jim : Tell me if you think I've left anything off the TOC: www.hcsw.org/forth/ 20:03:57 there are three main forms, ITC, DTC and STC (that I know of) 20:04:13 Er ya, threading is just one part of it though. 20:04:19 (I have a chapter re: threading) 20:04:30 That is, I intend to have one. :) 20:04:36 true... but that's the only thing the whole forth has in common 20:04:55 other than that, you can do anything/everything :) 20:05:47 Well I'd tentatively say there's a lot more common ground.. 20:05:58 Especially among more traditional forths 20:07:04 Fractal: Hmm...I should code up an opinion piece that links the best feature of Unix, shell pipelines, to Forth execution semantics. 20:07:31 kc5 : I was thinking about having a chapter called something like "Incorporating Forth into Modern Operating Systems" 20:07:44 Sounds like something you could hack up :) 20:08:10 Errrm....I'm not so sure. 20:08:21 Well we could narrow it down however 20:08:22 My goal with FTS/Forth is to eliminate the "modern operating system." :) 20:08:46 "Incorporating Modern Operating Systems into Forth" 20:08:51 Oh. FTS/Forth-L4 aims to be a post-modern operating system. :D That sounds like a perfect catch-phrase. :D 20:08:58 Heh 20:09:32 okok, I see... so you're talking about the fact there's a stack that can be directly used (which has its own internal rules for i.e., pushing and pulling), the branching structure and how it's built into colon definitions, the outer interpreter/compiler loops, etc 20:09:42 Anyways it was just an idea I decided to throw out 20:10:01 jim : Yup exactly 20:10:02 those are most of the "internals" 20:10:10 yeah d()()p 20:10:19 (when you also include the threading mechanism 20:10:21 ) 20:10:27 yeah, but to me, gaining acceptance of Forth means having to explain the language in terms people understand and can agree with. 20:10:32 Also concepts like immediacy and vocabularies 20:10:53 Many people dislike Forth because it's so different -- but is it really? I claim it's not -- anyone who's used Bash has used pipelines, and therefore, has (in a way) coded in RPN. 20:10:54 immediacy is included in the compiler, afaic 20:11:04 The first operating system in a quasi-operating system world ! 20:11:51 kc5tja: but that's data streams instead of a stack... things pass through to be filtered in particular ways 20:12:11 Streams is an implementation detail. 20:12:27 The fact is, when you're working with pipelines, you're dealing with a 1-element deep data stack, for all intents and purposes. 20:12:44 That's how DOS implemented them, more or less. 20:13:36 jim : Well true, but I think immediacy/compile vs run-time semantics is important enough to have a chapter of its own 20:14:39 then the applications of immediacy (conditionals mostly) should be presented within or close 20:15:15 Ya I agree 20:15:37 it'd be easier to explain why to have immediacy 20:16:24 True... absolutely. I think the theory should be illustrated with examples all throughout 20:16:45 Like a good example for an immediate word might be ( 20:17:22 Easy to explain, shows how useful the concept can be 20:17:24 And so on 20:17:31 Fractal: let me write my pipeline analogy document, and see if we can integrate it into the document. I think it'll help introduce Forth to a LOT of people in a way they can understand it. I think that'll actually help you out in your explanation of immediate words. 20:17:43 or .( too 20:18:31 kc5 : Sure. I could use just about any help I can get 20:18:52 And that does sound like an interesting article 20:19:26 Fractal: I want permission to post a copy on my site though, so I can reference it in my resume. 20:19:46 Absolutely 20:19:54 You can still retain full copyrights to it 20:20:14 WOOHOO!! Creative Commons, baby! 20:20:14 ;) 20:20:18 :) 20:20:23 Fractal: one thing you could drive home, is how easy it is to come up with different stuff... one possibility is to show how a case statement could be defined 20:20:46 jim : Yeah, that's a great idea.. 20:20:55 That could be put in the Advanced Internals section 20:21:13 I thought implementing lexical scoping would be another great way to showcase forth's simplicity 20:21:17 er 20:21:20 extensibility 20:21:26 one important thing to show is how to debug: for example, I'll often do something like : FOOP (pushsomeinteger) CASE [ 20:21:53 and look at what's on the stack (compile time, after !csp) 20:22:26 Ya for sure... That would be another great chapter.. Forth debugging 20:23:10 right, but this is specific debugging, for the purpose of making sure the conditional words are putting the right stuff on the stack 20:23:45 Ya, gotcha 20:24:01 Another good document is that the specific standard of Forth you use is immaterial. It is the philosophy that is important. Porting software between different Forth standards is usually rather trivial. 20:24:08 it's less debugging, and more just checking state 20:24:09 But I'll write that later. 20:24:41 not everyone feels that way, however. 20:24:42 Fractal is there content now? 20:24:52 ray : No, not yet 20:25:33 okay thanx Fractal 20:25:51 I recently ran into a brick wall when discovering that DO and LOOP were gone, and these unknown other things called FOR and NEXT were there 20:26:29 so, I decided to go with a forth that had DO and LOOP because it wasn't immediately apparant how to use FOR and NEXT 20:26:39 Yes, but because of the malleability of Forth, you can rather easily implement DO and LOOP. 20:27:11 : 5stars 5 FOR ." *" NEXT ; 20:28:28 can you get the loop index with I? and in most implementations, is I identical to R@? 20:29:29 it's ok if not... I just want to know :) 20:30:02 Yes. 20:30:21 At least in PygmyForth and colorForth you can. 20:30:37 any idea if the same is true of eforth? 20:31:16 jim i is not always identical to r@ 20:31:53 in fact i cant figure out how ANY do/loop structure can use r@ to get the current index 20:31:54 also, is there an E or F# that runs on linux? 20:32:03 not and support -4 +loop etc 20:32:27 I440r: because do and loop push the index onto the return stack, and also the final value 20:32:49 jim i know how (do) and (?do) work 20:33:05 but just pusing current index and end index is inefficient 20:33:33 because (loop) has to pop them both, increment 1, 2dup them, see if they are the same and if not push them back to the return stack 20:33:42 well, I must have misinterpreted your meaning of "i cant figure out how..." 20:33:52 isforth simply increments the top of return stack item and exits the loop if the overflow flag is set 20:34:06 hi i440r how's things 20:34:23 bad. i have a complete inability to code my freekin assembler 20:34:36 ive only been trying for 2 years now and have gotten absolutely nowhere 20:34:52 The Forth word I is a synonym for R@ -- always has been. 20:34:59 I440r: (loop) doesn't have to pop them if they are to stay... and you're right, if that's how it's done, it's not efficient 20:35:05 and the chances of anyone else in the entire world being able or wanting to create an assembler that fits my requirements are next to ZERO 20:35:19 and J is 1 RPICK :) 20:35:37 ugh anyone who implements words like rpick is be8ing very silly 20:35:42 let me guess 20:35:52 chuck has implemented it 20:36:02 and it CANT be 1 rpick 20:36:03 I have no idea 20:36:14 because you have to have two items on the return stack for a do loop 20:36:20 well, ok, 2 rpick :P 20:36:21 J need *not* be the same as 1 rpick. Usually it's 2 rpick. 20:36:22 Ya, it'd be 2 rpick 20:36:27 happy now? :) 20:36:53 but it can be the equiv of 1 rpick as an asm word 20:36:54 i wont be happy till i have an assembler in isforth 20:36:57 i.e. never 20:37:46 * jim is not jumping into this part of the conversation, having already done so before :) 20:38:05 I440r, what makes your assembler requirements unique? 20:38:18 the fact that I440r is just being a wuss 20:38:25 He want it to be close to NASM's syntax :-) 20:38:30 slava other than injecting a FEW spaces here and there i want absolutely NO fucking modificaions to the existing soruces 20:38:32 well 20:38:37 and not actually looking at existing implementations, but merely cowering over "OMG ITS SO DIFFICULT" 20:38:46 translate all the [varname+5] etc to ' varname >body 20:38:55 he wants normal looking asm syntax, and he doesn't like if/then/begin/until/while/repeat type asm thingys 20:38:57 and i wont use a bass ackwards assembler 20:39:11 definatly NO if/else crap 20:39:18 its an assembler 20:39:21 as far as I know, your loss :) 20:39:47 oops, I'm jumoping in 20:39:54 * jim jumps out again 20:40:00 I440r : so you want real label support , so you can do forward branches 20:40:08 no 20:40:22 I440r: .... dude. thats not even close to being worth the effort 20:40:23 you will have to do a 2 pass assembler if want to eliminate if ... then 20:40:32 nooooooooooooooooo 20:40:33 noi 20:40:33 fucking 20:40:35 forward 20:40:36 references 20:40:38 shit 20:40:45 other than to local labels 20:41:01 and no referencing local labels in anything other than the current word 20:41:07 I440r: .... dude. thats not even close to being worth the effort 20:41:08 that will not take two passes 20:41:09 I440r: .... dude. thats not even close to being worth the effort 20:41:09 I440r: .... dude. thats not even close to being worth the effort 20:41:10 I440r: .... dude. thats not even close to being worth the effort 20:41:11 I440r: .... dude. thats not even close to being worth the effort 20:41:18 think about it 20:41:22 * jim spanks the chicken :) 20:41:23 for you 20:41:27 ............. 20:41:34 Ok. that is fine? Then how do you skip over a block?.... Arggh... That is what I was saying.... you need at least local forwards 20:41:39 if i had the fucking ability i would do it 20:41:49 you would be _BETTER OFF_ rewriting a _little bit_ in postfix assembler 20:41:55 skip over a block ? 20:42:08 t3h_ch1k3n, fuck off 20:42:11 --- part: I440r left #forth 20:42:24 I think you made him mad... 20:42:28 good 20:42:31 I440r: to eliminate the need for the IF THEN macros 20:42:33 maybe he'll start thinking about it 20:42:38 --- mode: t3h_ch1k3n set -o t3h_ch1k3n 20:42:50 He *could* always embed FASM into isForth :-) 20:42:50 if then is damn convenient tho :) 20:43:24 personally I don't want to remember to put a label in 20:45:06 I've been working on an assembler, but i440r wouldn't like it 20:45:26 Wow. 20:45:32 perhaps the things you made could be used in an asm he would like 20:45:37 * kc5tja considers levying a lawsuit against I440r. 20:45:45 Why? 20:45:45 kc5tja: ? 20:45:48 Getting irrationally pissed off and storming out of the channel is *MY* job. 20:45:56 HAHA!!!! 20:46:21 naah, except that you have a reason to be pissed off 20:46:35 My assembler's syntax is like: eax 100 i/r mov, (same as "mov eax, 100" in NASM) 20:46:51 crc: thats nice syntax 20:46:57 I like it 20:47:00 stop it :) 20:47:05 pygmy is 100 #, eax mov, 20:47:21 * t3h_ch1k3n sighs 20:47:24 I'm being a dick today 20:47:35 so you could build something of a parser that would read mov eax, 100 and in response execute eax 100 i/r mov, 20:47:44 Right 20:47:56 which i440r might like 20:48:09 give him both, and don't tell him :) 20:48:28 he doesn't have to not like what he doesn't know is there :) 20:48:36 * kc5tja prefers: 100 #, eax mov, 20:48:49 I should look at pygmy's assembler 20:49:05 #, would put something into the dict? 20:49:09 My stuff is still so incomplete, that it's easy to change :-) 20:49:18 crc: :) 20:49:32 crc: pygmys assembler is very simple considering the architecture its for 20:49:41 Writing an assembler is low priority for me... 20:49:45 jim: In PygmyForth, #, is so named to distinguish it from # which converts a single digit for display. 20:49:50 brb 20:49:52 ahh... 20:50:21 I see, so you're suggesting to use a name other than # 20:51:23 #, is probably not the best choice because it implies it's adding something to the dict 20:51:38 it is 20:51:41 well, kinda 20:52:03 well, the instruction word mov, does that, no? 20:52:10 maybe imm would be better 20:52:14 jim: yea 20:52:49 the other part is # might be ok because it should be in its own vocab 20:54:19 heh 20:54:23 i believe in cmForth vocabs 20:54:24 :) 20:55:24 RetroForth doesn't has two vocabularies: forth and macro 20:55:26 :-) 20:55:40 err, ignore "doesn't" 20:55:56 * crc needs to read what he's typing more often :-) 20:56:00 yeah, thats cmForth way :) 20:56:16 there's this metacompiler that Moore uses, it's not a good thing because after you compile the kernel, you cannot use the power of forth to look around, because this metacompiler defines the words in the main (probably forth?) vocabulary, polluting the namespace and preventing the use of the normal words 20:56:22 And my assembler example should have been 100 eax i/r mov, 20:56:37 what's i/r? 20:56:47 immediate->register 20:57:19 There's also m/r r/m and r/r for other forms of mov, 20:57:19 ahh, so # would never be needed anyway, because you've already renamed it :) 20:57:25 Right 20:57:42 howbout i->r 20:57:44 etc 20:57:58 Whatever's comfortable :-) 20:58:20 You can create aliases: ' i/r alias #, 20:58:28 and do 100 #, eax mov, 20:58:32 if you like that :-) 20:58:44 it seems more meaningful when you read it 20:59:18 that's all I'm thinking 20:59:21 There are some "context" words that can be used with RetroForth; I guess that they're sort of like vocabularies... 20:59:40 in pygmyforth, it sets flags with the order so its automatic 21:00:00 except that I would like to rename #, to imm and ) to deref 21:00:03 that's just weird :) 21:00:26 the setting the flag thing 21:00:48 I should update the assembler so that it'll work with RetroForth 7.4 21:01:08 jim: its the reason that pygmy assembler is as simple as it is 21:02:26 --- join: proteusguy (~proteusgu@203.148.241.62) joined #forth 21:02:28 hmm, I'm not sure anymore what the flags are for 21:04:46 jim: basically, it replaces i/r, r/r, m/r,. etc. and does it automagically 21:05:43 oic, yeah, I tried to do that when I wrote the 6502 assembler for Cap'n software figforth 21:05:44 jim: I don't follow your argument regarding Moore's cross compiler. 21:06:36 kc5tja: because it does not use vocabularies, it is not possible to look at the result conveniently... they define words like forth_over, forth_dup etc... that just does not cut it 21:06:59 my thinking process is cut off every time I have to think about that 21:07:18 ??? 21:07:30 ok, here's the whole deal: 21:07:32 which metacompiler is this? 21:07:41 some three-page thing 21:07:58 is this recent? 21:08:02 not sure 21:08:09 * kc5tja is on the ColorForth mailing list, and have not seen one word of this. 21:08:09 but check this out... 21:09:04 i dont get all the posts either Sam 21:09:11 it does not use or switch to other vocabs to place pointers to the words it creates 21:09:59 i tryed posting c4thChes2 there and I don't see it still . 21:10:19 maybe I was punted for content :) 21:10:39 because of this, the pointer words it creates (like dup, over, swap, +, -, ,, negate, and every other word in the kernel) get defined in the forth vocabulary, on top of the words that really do something 21:11:36 as a consequence, you can no longer execute any forth words as you type them... hence, you cannot view the result of (a piece of) the metacompile 21:12:12 so, they define words like : forth_dup dup ; before/within the metacompiler source so that you can sorta do it 21:12:31 the problem here, is you cannot think without stuttering 21:12:40 the process does not flow 21:12:47 hence, this does not cut it :) 21:15:04 the only way this makes sense is if you -know- for a fact you do not have to debug any part of the metacompiler or the source loaded or result produced 21:16:09 ack 21:16:11 which is not typical: usually, you're trying to create, and you normally want to make sure things work... you normally get occasional error messages, and you just might want a way to look at thnigs 21:16:34 things even 21:16:40 * jim hates that typo 21:18:49 have the forth in bios that builds the environ ? 21:20:43 well, that might be chicken/egg problem... what if you're trying to build the bios rom, a forth system with biosy things? 21:25:17 thing is tho, there might be a simple solution: make a single vocabulary, set it as the definitions voc, then read in the metacompiler and the kernel 21:25:49 okay like booting ? 21:27:26 well, lots of times, if you're metacompiling, it's either to produce a forth system you can distribute, or to produce an embedded app 21:28:31 * Raystm2 learns 21:28:47 Well, a metacompiler is not a run-time environment. It's a tool to bootstrap a run-time environment 21:28:55 yes. 21:29:00 * kc5tja does something similar, although I tend to just use ',' as a suffix for a word. 21:29:05 e.g., dup, xor, if, etc. 21:29:11 I find it works out well for me. 21:29:26 but if things don't work, the more power you have to look at what happened, the better... and the worst case, is you don't get any power at all 21:29:44 this three-page thing represents the worst case 21:29:48 oh okay i saw that in sasm 21:30:07 The problem is this though: I can't test my meta-compiled code interactively anyway, so who cares? 21:30:27 for the enth-flux metacompiler. first one i ever saw. very neat indeed . i got it some how right away. 21:30:33 kc5tja: if you have a simulator, maybe you can 21:31:02 No, I can't. 21:31:14 No matter how you look at it, it's always, edit-compile-run cycle. 21:31:35 It's not fully integrated, with or without a simulator. 21:31:44 aside from that, maybe you're creating new kinds of things the metacompiler can produce 21:31:46 But that's OK. 21:32:04 My goal is to get a minimal base system going in the target compiler, and then internally compile the rest on the fly inside the run-time. 21:32:07 and you would want to see if the code produced is what is expected 21:32:14 what about changing the way next is handled during debuging time ? does that even make sense? 21:32:36 that can be done, but that's not the problem here 21:32:55 No, because that violates a fundamental rule of reliable software testing: changing code for the sake of debugging means you're not testing the production code anymore. Kinda defeats the purposes of testing. 21:33:53 * Raystm2 learns again iq climbing 21:33:55 you can still use that concept to see things like whether the stack is what you expect after particular words run 21:34:43 ok 21:34:57 jim: My code is generated as native executable. GForth is direct threaded. The two won't talk to each other. 21:36:05 Going to work now. 21:36:14 have a good trip 21:36:25 se you soon kc5tja 21:36:37 http://www.missilebases.com/ -- this is just plain whacked. 21:38:18 he he 21:39:34 be on every enemy map 21:47:03 --- join: colorg (r@core-dc-1-96.dynamic-dialup.coretel.net) joined #forth 21:52:48 I'd build a big spiraling slide down the silo 21:53:56 make it out of cement, and have automatic wax applications to make it faster 21:54:31 Or could fill one up with water, and put a diving board at ground level 21:54:53 d00p: that's d33p 21:54:54 Rebuild the missile launchers and rewrite the control software in Forth :-) 21:55:12 3 4 + 21:55:17 . 21:55:18 BOOM! 21:55:21 oops isp crashing need reboot damn windows over . 21:55:22 OK 21:55:32 he he 21:55:39 colorg: you guessed the launch code!! 21:55:45 he he crc 21:56:23 I'd hook the launch code to the stack over/underflow detection... 21:56:28 It was an ACCIDENT! 21:56:29 Just for fun ;-) 21:56:32 well 21:56:33 hahaha 21:56:34 42 the answer to god the universe and everything 21:56:42 next time use new cue lar 21:56:45 we thought 1 2 + . was too common... 21:56:52 iha hha ha 21:57:01 he he 21:57:45 * jim changes the code to 1 2 + 3 4 + * 21:57:51 oh, dude, you could put a bridge across the top of the silo and bungee jump 21:58:02 oshit, I just gave it out! 21:58:02 I totally need a missile silo 21:58:09 : . launch-missles ; 21:58:18 no loop then ? 21:58:20 They make nice reverb chambers 21:58:27 lm 21:58:38 ml preemt 21:58:43 : . repeat launch-missle reload-silo again ; 21:59:07 ml timedialtation homing 21:59:17 he he 21:59:24 <--- Rick Hohensee 21:59:27 : gwbush repeat launch-missle reload-silo again ; 22:01:06 please put face against screen Mr President! 22:01:38 you have to take the w off the keyboard to get it to ork 22:02:01 One line each, you've hacked Bush's earphone... 22:02:07 that's what Clinton was trying to demonstrate 22:03:39 "Condi knows a LOT about hummers" 22:04:19 hey, it's colorg. 22:04:20 he he h eh he h eh he he he 22:04:20 he he 22:04:20 he 22:04:38 no she doesnt 22:05:23 ayrnieu: Hi. Do I know you? 22:06:03 colorg - yes. Possibly as 'cleverdra'. 22:07:30 ah. very. 22:09:38 --- quit: wossname (Read error: 60 (Operation timed out)) 22:10:26 --- join: paintcan (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 22:12:19 hi paintcan 22:12:25 hello chicken 22:12:40 do you sleep 22:16:59 t3h_ch1k3n can't sleep: he always has to watch out for hungry programmers :-) 22:18:31 what is the best way to stay awake for >48 hours without feeling any ill effects 22:18:48 I'm not sure that's possible 22:19:05 certainly not by legal means 22:19:53 * colorg pinps osimplay to the Forth cognoscenti 22:21:35 * crc has looked at osimplay in the past 22:21:38 well, i had a two hour nap today, but other than that i'm beyond 48 hours 22:21:42 :o) 22:22:01 i do not feel mental ill effects so much as that i have aching body parts 22:22:30 paintcan: it gets easier the more often you do it... 22:22:47 you only have three parts... a container, a handle and a lid :) 22:22:57 * crc used to stay up >72 hours at a time, but those days are past.... 22:23:05 whats a quick bash hack to rename all *.f files to *.fs ? 22:23:17 :l 22:23:52 t3h_ch1k3n: there are utils 22:24:15 for i in *.f; do f=$(basename $i .f); mv $f.f $f.fs; done 22:24:32 or if you don't trust and want to see it do its thing 22:24:39 thanks jim! 22:24:40 it worked 22:24:43 for i in *.f; do f=$(basename $i .f); echo "mv $f.f $f.fs"; done 22:25:46 there is also a rename command, I dunno how it works exactly 22:26:13 but it can do several files in one go 22:26:39 and, of course, you could write a little Forth to do this. 22:26:55 well 22:27:10 maybe, if it has access/bindings to the os 22:27:44 If it doesn't, just add bindings yourself :-) 22:28:31 for x in *.f; do mv $x `basename $x .f`.fs; done # how I'd do it, idiomatically. 22:28:39 I got something off ibiblio 22:30:49 ayrnieu: yeah, I like the $( ... ) construct in bash 22:31:03 also you did it without setting a var 22:36:00 do you need the second .f ? 22:36:14 that's a parameter to basename 22:36:27 I know. 22:36:29 trying to cut off the .f 22:36:59 or I don't. Never mind. 22:37:12 that's what basename will do if you feed it a .f 22:37:34 so it will "echo" the name without the .f 22:38:12 and because there's a ` ... ` around it, this echoing will go into the variable (it's called "command substitution") 22:38:15 OK, all I knew about was / 22:38:33 basename bla/zay 22:38:47 --- join: Serg_penguin (~z@212.34.52.140) joined #forth 22:39:02 hi ! 22:39:08 HI 22:39:10 what i see - total ops ! 22:39:22 not me 22:39:25 not you 22:39:26 * jim adds a b 22:39:27 no Sonarman 22:39:31 aha 22:39:35 not jim 22:39:36 total bops? 22:39:37 not paintcan 22:39:42 not proteusguy 22:39:47 not colorg 22:39:50 not d00p 22:39:52 not ayrnieu 22:39:53 :/ 22:40:33 ick. basename is corny. 22:40:44 well... 22:40:47 don't eat it! 22:41:49 seriously, sometimes it's necessary corn 22:42:19 I guess it's shorthand for an awk invocation 22:43:03 Back 22:43:10 chom () { echo ${1:0:${#1}-1} } 22:43:11 wb 22:43:41 homp () { # homp chomp is homp 22:43:50 echo ${1:1:${#1}-1} 22:43:55 } 22:45:36 colorg: I never got into that area of bash; never had to 22:46:10 Makes one really appreciate Python's slice notation. :) 22:46:19 the things we do to stay 100% Bash... 22:48:47 I have awk and Bash and a couple Forths. No Python, Perl... 22:50:16 are there any shells written in Forth? 22:50:56 crc: ChickenForth :) (just kidding) 22:51:54 I've been thinking of writing a shell in RetroForth :-) 22:51:57 crc the thing is Forths with all the host syscalls. 22:52:22 I added em all to a couple Forths (Linux, well MOST of em) 22:52:54 write a forth shell 22:53:21 I can use syscalls in RetroForth (Under Linux, FreeBSD, and Windows) 22:53:54 exec() and fork() is much of what a unix shell is about 22:54:10 chickenforth does linux syscalls 22:54:23 wow :) do you ever have another think coming :) 22:54:24 then again, chickenforth isn't much more than isforth with less cruft right now 22:54:33 t3h_ch1k3n: where's the code? 22:54:36 I should do an osimplay port of eforth 22:55:15 colorg: is there an eforth for linux? 22:55:19 Let's not forget file I/O redirection. 22:55:34 Fare's and mine 22:55:38 hold on 22:55:46 crc: uum, here, where I'm deleting stuff 22:56:10 So chickenforth is just a lightweight isForth? 22:56:24 ftp://linux01.gwdg.de/pub/cLIeNUX/interim/eforthl.tgz 22:56:43 That's mine with all the syscalls in the dictionary 22:56:45 how close is that to CHTing's? 22:56:52 far. 22:57:05 crc: so far. not for long. 22:57:06 100 primatives IIRC 22:57:21 100 code words you mean? 22:57:27 386 asm, 17k with the syscalls 22:57:33 yeah 22:57:59 and don't ask me the threading 22:58:01 does it have DO ... LOOP, FOR ... NEXT or both? 22:58:20 also... 22:58:24 --- quit: Sonarman ("leaving") 22:58:36 is source available, and if so how would I build it from source? 22:58:45 that's the source 22:58:49 ahh 22:58:53 GO 22:59:24 colorg: what assembler did you use? 22:59:30 I'm bored and my headache is gone. Maybe I will osimplify that 22:59:47 * colorg DLs 22:59:47 t3h_ch1k3n: what are your plans for chickenforth? 23:00:10 crc: pwning 1sf0rth 23:00:18 guys, osimplay is the basis of a portable assembler. 23:01:09 t3h_ch1k3n: why would I use your Forth instead of isForth? 23:01:09 Changelog README.linux eforth.4th makeWords 23:01:09 DSFH TODO eforth.S test.4th 23:01:09 Makefile attic makeGlossary unistd_x86.h 23:01:23 eforth.S looks like gas/cpp 23:01:39 DSFH is broken link 23:01:45 * crc dislikes gas 23:01:53 crc: (1) smaller (2) postfix assembler instead of vaporware NASM clone (3) no fucked up naming of words 23:01:55 Ting 90, Muench, Rideau, Hohensee 99 23:02:22 jim that's for my cLIeNUX directory scheme. Relax. 23:02:57 t3h_ch1k3n: ok 23:03:06 I can probaly osimplify it in hours. Hmmmmmmmm 23:03:09 * jim is relaxed :) why would you ever think I wasn't relaxed? I mean, why would you ever, ever ever... 23:03:14 :) 23:03:22 CHEESE CHEESE 23:03:29 anybody know of an existing 32-bit postfix assembler for x86? 23:03:56 outside a Forth? 23:04:41 in forth 23:04:41 :) 23:04:50 for any forth, really, i can easily modify it 23:04:55 if not, I'll have to homebrew. 23:05:53 t3h_ch1k3n: I believe one exists for gforth for Linux, but my memory could be hazy. 23:09:01 colorg: is the eforth.4th represent the same thing as eforth.S? 23:09:50 jim donno 23:12:15 is there mechanism for reading eforth.4th and producing the same executable? 23:13:23 in any case...thanks for the tgz 23:13:30 jim I think there was some thing like eforth < source 23:13:57 it's its own metacompiler or some such? 23:14:22 jim don't recall. Fare' might remember 23:14:46 finally, what's the license? 23:15:15 jim I haven't looked at this in years man 23:15:46 jim: eforth.4th is a 16-bit version of eForth; eforth.S is a 32-bit version 23:17:50 ChickenForth 1.0 is done! 23:17:54 :P 23:18:02 actually, no its not. 23:18:02 yeah eforth.4th looks like the original 23:18:16 i managed to rename all NXT to NEXT though 23:18:22 heheheh 23:18:26 The eForth Model and the IBM-PC 23:18:26 implementation is in the public domain to encourage interested 23:18:26 programmers to port this model to different CPU's. 23:18:26 C. H. Ting 23:18:34 (from the documentation) 23:18:41 already damn that's some hot chickenwings 23:18:52 ahh, so this was Ting's original thing 23:19:01 So it appears 23:19:54 Whether this version is public domain or not depends on whether colorg and/or fare also released their work to the public domain 23:20:45 t3h_ch1k3n: did you fix & | and so on? 23:21:16 crc: YES! FIRST THING I DID! 23:21:31 good; now you can add | as a comment word ;-) 23:21:37 is there a forth meant for embedding, that runs on linux i386 and on arm other than eforth? 23:21:41 crc: ;) 23:21:52 * please do send me (fare@tunes.org) any improvement. 23:22:43 yeah, I saw that part 23:22:44 jim H3sm isn't much bigger than eforth. h3sm is a 3-stacker though. 23:22:59 why 3? 23:23:12 variable precision math in "hardware" 23:23:29 that's what the third stack is for? 23:23:42 the "pyte" stack is 1 to 128 byte ints 23:23:53 + operates at Size 23:24:26 H3sm supports 1024 bit math? 23:25:06 yeah 23:25:21 * crc is impressed 23:25:27 Yikes. Sounds like a perfect fit for the Hifn 6500 public key coprocessor chip. :) 23:25:29 :o) 23:25:49 works for me... 23:25:53 6500 can do 1024-bit modular integer math. :) (And it's really easy to program too.) 23:26:11 cool 23:26:26 same dir as eforth and my Presidential Platform and other scary things 23:27:21 * jim ports ramforkbomb.c to colorg's Presidential Platform :) 23:27:43 * colorg emails the channel log to the SS 23:28:36 H3sm is also the first stack language to live in unix kernelspace :o) 23:29:22 colorg: wow... do crashes abound? 23:29:27 I'd rather have a Unix in Forth ;-) 23:31:11 My goal with FTS/Forth is to run it under the L4 microkernel. 23:31:16 (eventually) 23:32:01 So it will just be a server for L4? 23:32:07 traditionally, forth isn't the greatest text-based language... I'm not sure you could do it efficiently without creating a full set of really fast text-based words 23:33:42 I'm working on merging TEST (a kernel that tcn is working on) into RetroForth/Native 23:33:57 Forreal.tgz in the same dir is a pmode femtokernel in osimplay 23:33:58 anybody else know of a x86 postfix forth that isn't horrifically ugly like AVDH's and not hard to hack like the Win32forth one? 23:34:46 t3h_ch1k3n: you mean an assembler? 23:35:16 yeah 23:35:20 postfix forth assembler 23:35:26 crc: Well, by definition, yes. But I mean, it will boot into a machine-native Forth implementation that happens to run under L4. 23:35:28 look at the pmode bootables like Flux 23:35:41 stuff like pointer manipulation, heap storage for strings, construction and initialization of new strings, substring, concat, search, regex stuff including split and join, lots more 23:35:52 ENTH/Flux and there's another one 23:35:52 E.g., the FTS/Forth for L4 "kernel" will implement the two root-level tasks via Forth itself. 23:36:16 does colorForth have an assembler? 23:36:21 * kc5tja has never gotten ENTH/Flux to ever boot on my box. 23:36:28 --- join: crc_ (crc@44-pool1.ras11.nynyc-t.alerondial.net) joined #forth 23:36:44 --- quit: crc (Nick collision from services.) 23:36:52 No, colorForth does not have an assembler. At least not yet(??). One may appear in ColorForth 2.0 though. 23:36:54 I actually used it to sniff the floppy on a box 23:37:01 --- nick: crc_ -> crc 23:37:09 ENTH, it's nice 23:37:42 enth/flux booted without a hitch here 23:39:14 It hangs on my box. 23:39:17 kc5tja: why use L4 as opposed to writing the kernel yourself? 23:39:25 The screen goes black, and that's the last I ever hear of my box being alive. 23:39:33 * crc has never managed to boot enth/flux either 23:40:02 crc: First, it already exists. Second, it's multiboot compliant out of the box. Third, it gets memory size details from the system in a nice and convenient manner. 23:40:17 ok 23:40:19 Finally, it's damn fast. VERY fast. It pretty much does almost everything I wanted my Dolphin kernel to do. 23:40:31 And what little it doesn't do, I can write user-land servers to do the same basic thing. 23:40:36 :-) 23:40:41 damn. 23:40:47 it seems that i will have to write it myself 23:40:58 kc5tja: is it paged? 23:41:00 Is multiboot compliance worth the effort to support? 23:41:30 t3h_ch1k3n: one of the contributors to RetroForth is planning to write an assembler in the near future 23:41:44 RETROFORTH, that's a nice one 23:41:50 what is this part? what are you booting? 23:42:21 colorg: If you want it to be yes. It does support the MMU, but it relies on user-level software to implement the policy used. Personally, FTS/Forth itself won't be paged -- I have no need for it. But the source is open for anyone who would want to implement it. I have no objections to it being there. 23:42:45 I have to rewrite the RetroForth/Native bootloader anyway, so multiboot might be nice to add now... 23:42:48 crc: Multiboot compliance consists of sticking a predefined data structure in the first 8KB of your executable image. That's it. How hard is that to support? 23:42:57 kc5tja: that's it? 23:43:01 That's it. 23:43:14 No need for special formats like ELF? 23:43:14 paging optional. That I'd have to see. 23:43:16 Oh, you can get handed data structures for memory layout and all that, but those are *data structures*. There is no API. 23:43:26 Well, if you want to load it from a filesystem, sure. 23:43:29 But, you don't HAVE to. 23:43:36 You can load a raw binary image too. 23:43:45 * crc will make RetroForth/Native 7.5 multiboot compliant then 23:43:46 who wrote retro? 23:43:57 An Italian name I believe 23:44:09 Tom Novelli wrote the first four releases, then I took over :-) 23:44:35 But, personally, since I already produce ELF executables ANYWAY (and it's not hard, really, when you get down to it. Supporting OS-specific weirdness is kinda puzzling, but once it's figured out, it's a set-it-and-forget-it kind of deal.) 23:44:37 Ah. I chatted with him at about release 2 I guess. Then he got a real job or something :o) 23:44:41 I've been developing it since October 2002 23:45:15 Yeah, then tcn betrayed the Forth collective and began espousing the virulessence of C. 23:45:18 :) 23:45:39 kc5tja: he still checks on Retro from time to time though 23:45:44 Fare' has this Lisp problem... 23:45:55 I know -- I'm just poking good, clean fun at tcn. :) 23:45:59 ok 23:46:25 did you guys see PASSM? 23:46:50 --- quit: Serg_penguin () 23:46:57 Porcine Aviation Society Stack Machine 23:46:59 aah yay 23:47:02 colorg: Never heard of it. 23:47:19 gforth ships with a x86 assembler than I can abstract for ChickenForth :) 23:47:33 I never got it running. It was going to have legible machine code. Whitespace is all NOPs :o) 23:48:01 must go code see ya soon 23:48:08 --- part: Raystm2 left #forth 23:48:12 Hi bye 23:48:13 weeeeee 23:48:15 err 23:48:20 but if I use it 23:48:31 ChickenForth would go GPL, right? :/ 23:48:31 t3h_ch1k3n: That's right -- GPL your code, baby. :) 23:48:42 noooo! 23:48:43 t3h_ch1k3n: right. 23:48:44 evil! 23:48:49 :( 23:48:52 You know, you could just implement what you need, when you need it, using a more RISC-like syntax. 23:49:03 what do you mean, more risc-like? 23:49:12 E.g., represent CPU registers with integers, and have instructions like MOVRR (register-to-register MOV), etc. 23:49:19 oh. 23:49:20 hrm. 23:49:21 t3h_ch1k3n: look at osimplay. The way I do cells is the shit. 23:49:23 E.g., one opcode, one mnemonic. 23:49:34 kc5tja: I like that idea 23:49:39 There is no *law* that says all Intel assemblers have one and only one MOV instruction syntax. :) 23:49:40 colorg: whats osimplay? 23:49:48 kc5tja: :) 23:49:53 386 asm in Bash 23:49:54 kc5tja: but this GForth assembler is nice 23:50:06 In fact, look at the P4+ instruction set -- they have TTOONNSS of MOV variants, because you can only overload MOV itself so much. :) 23:50:08 colorg: ! 23:50:23 kc5tja: :) 23:50:27 * t3h_ch1k3n sigh 23:50:34 t3h_ch1k3n: then include it as an *optional* component ;-) 23:51:06 The other nice thing about doing it that way is, as other people implement the CPU instructions they use most often, they don't have to fuddle around with parser syntax and all that crap. 23:51:18 crc: but i have to modify it for it to work with chickenforth 23:51:26 So if I prefer to do a register/segment register move, I can implement my own MOVSR or MOVRS instruction. 23:51:37 kc5tja: hrm, neat. 23:51:49 * t3h_ch1k3n cries 23:51:56 GPL YOU SUCK ARGH 23:52:04 I have from and to. = A to B == = B from A 23:52:09 Heck, why even have MOV at all? LDRS and STRS are better mnemonics (Load Register from Segment register, Store to register from segment register) 23:52:10 = is MOV 23:52:24 kc5tja: true. 23:52:39 I didn't use ! because the shell eats it 23:52:45 t3h_ch1k3n: modify it, and make it an optional component 23:52:54 kc5tja: heck, why even use an assembler? hand code the bytes! 23:52:57 I mean, if PowerPC can have all the fun (mtspr. and rwlmni, for example), why not Intel? :) 23:53:13 kc5tja: heck, why even bother with that? write out brainfuck code! 23:53:14 :) 23:53:23 :) 23:53:26 t3h_ch1k3n: Actually, that's what I do in FTS/Forth's cross compiler. :) 23:53:34 rlwmi is nice :) 23:53:37 kc5tja: i know :) 23:53:39 (the hand-compile bytes part, not the BF code) 23:53:46 kc5tja: err, the first, not the brainfuck :) 23:53:46 t3h_ch1k3n: lemme dcc you some osimplay 23:53:47 yea 23:53:51 t3h_ch1k3n: wont work 23:53:56 t3h_ch1k3n: dont even bother :) 23:54:27 paintcan: splish splosh splash 23:54:46 OK, I'm getting distracted from work here, because we got a good QSO going. I'll go afk for a bit while I get this task done. 23:54:47 err, colorg 23:54:49 t3h_ch1k3n: as far as making alterations to gforth, you'll have to provide source if you distribute binaries, and forth is particularly problematic in this area: 23:55:21 if you load ANYTHING on a gforth kernel and distribute the result, the whole thing probably becomes gpl 23:55:30 yes 23:55:41 or use even one line of gforth code in a non-gpl project 23:55:44 that's why I don't use gforth 23:55:45 the whole thing becomes gpl 23:56:09 t3h_ch1k3n: are you sitting down? 23:56:20 and thats why i kept chickenforth lgpl, even if i had a choice 23:56:22 colorg: yes 23:56:42 t3h_ch1k3n: dont bother, it'll just timeout 23:56:47 wtf 23:56:52 colorg: don't bother, it'll jhust timeout 23:56:58 -test @ $radius to $row # are we above the grid? 23:56:59 when not sign summary 23:56:59 -test $RADIUS to $POINT # in? 23:56:59 when not sign short lefts 23:56:59 jumpshort rows 23:57:23 walking an arc 23:59:59 --- log: ended forth/04.10.03