00:00:00 --- log: started forth/02.07.25 00:02:18 --- quit: I440r () 05:05:33 --- join: dsmith (firewall-u@cherry7.comerica.com) joined #forth 05:15:05 --- join: sif (~sifforth@ip68-14-9-225.ri.ri.cox.net) joined #forth 05:15:05 Type sif: (or /msg sif to play in private) 07:03:05 --- join: Etaoin (~david@ljk7.sat.net) joined #forth 07:04:04 Hi Etaoin :) 07:04:09 hello 10:51:12 --- join: proteusguy (~irc@bonzo.iss.net) joined #forth 10:52:36 So what's the favorite forth env. for linux these days? 13:04:25 --- join: kc5tja (~kc5tja@user-24-214-86-42.knology.net) joined #forth 13:04:49 Hello kc5tja :) 13:04:57 re :) 14:45:10 --- quit: proteusguy () 15:20:23 --- join: Herkamire (~jason@ip68-14-9-225.ri.ri.cox.net) joined #forth 16:00:39 --- nick: kc5tja -> kc-car 16:04:36 --- quit: dsmith (Remote closed the connection) 16:13:59 --- join: geakazoid (JB@adsl-63-206-93-90.dsl.snfc21.pacbell.net) joined #forth 16:21:52 --- part: geakazoid left #forth 16:43:43 --- join: fare (fare@APastourelles-107-2-1-24.abo.wanadoo.fr) joined #forth 16:44:09 --- part: fare left #forth 17:01:17 --- nick: kc-car -> kc5tja 17:19:30 This is very frustrating. 17:19:51 * kc5tja wants to start working on Dolphin right away, but I need FS/Forth to do it, and I don't have FS/Forth finished yet. Grrrrr!! 17:20:34 Poor kc5tja. 17:21:12 However, I have a few tools I want to make for Linux and Windows NT; I think I'll use Ficl for those, since they require some pretty low-level system interfaces to work. 17:23:42 Hey ... this is a life long goal we're talking about! :) 17:24:36 Life long goal? 17:29:04 Yes. I've wanted to work on Dolphin since Commodore filed for bankruptcy. 17:31:09 What is Dolphin? 17:31:50 An operating system for the PCs that I've always wanted to write, highly inspired by VMS and AmigaOS. 17:34:11 I think I've heard you praising AmigaOS more than once, but I haven't done more than used it a little. Never heard of VMS, though. 17:39:28 VMS is an ancient operating system by today's standards, but for the time, was the world's most advanced and capable OS. 17:39:56 It inspired AmigaOS, Windows NT (in fact, one of the primary authors of VMS was on the NT kernel design team), OS/2, and many others. 17:40:25 Much different from UNIX? 17:40:35 (Note: Windows NT kernel is NOT the same as Win32!! Win32 is an abomination, and I can't fathom why anyone would want to put Win32 on top of something like NT... :( ) 17:40:38 Very much so. 17:41:21 What are its advantages over UNIX? 17:41:35 Nowadays, nothing. 17:42:07 Except it was easier to maintain, had a superior user interface at the commandline, and for software developers, was MUCH easier to program for, from both a device driver and application writer view. 17:42:13 --- quit: Etaoin ("raise KeyError, "I'll bet that's the last time you lock them in the car..."") 17:42:17 In fact, it's still very easy to develop software for it. 17:42:30 Interprocess communications wasn't nearly has haphazard as it is in Linux. 17:43:04 Like AmigaOS, event notification bits were used as the primary means of putting a process to sleep, so that if any bit the process was interested in was set, it'd wake up. 17:43:07 --- join: Etaoin (~david@ljk7.sat.net) joined #forth 17:43:27 Message passing was more rational too. 17:43:59 So it's basically smaller and less complicated? 17:44:01 It also, ironically, had superior security over Unix. However, Linux about equals VMS in system security. 17:44:29 I wouldn't say it was smaller, but it definitely was less complicated and more logical. 17:45:02 It was also the first OS to introduce the concept of structured exceptions too. 17:45:43 This is where things like CPU exceptions (like division by zero, etc) as well as language exceptions could be treated uniformly in application space, complete with support for stack unwinding and/or instruction restarts. 17:45:55 To this day, Unix still has nothing even close to this capability. 17:46:08 Linux *approaches* it with the sigaction() function, but it's still not the same. 17:53:10 what do you mean structured exceptions? 17:55:16 You're familiar with C++'s try{}catch{} blocks at all? 17:55:28 or with Forth's CATCH and THROW mechanism? 17:55:36 Those are language exceptions. 17:57:42 Those are language exceptions. 17:58:02 You also have errors detected by the CPU, like illegal instructions, floating point errors, division by zero, etc. 17:58:16 Those can also be represented as language exceptions if a suitable interface for them could be defined. 17:58:34 That's what structured exception handling is -- OS-level support for good error reporting. 18:08:32 * kc5tja would like to get established on ham radio. I'm switching my emphasis to peer to peer networking though, since radio's broadcast nature makes that a natural, efficient choice. 18:09:44 Wrong channel. 18:23:23 --- join: TheBlueWizard (TheBlueWiz@ip-216-25-202-185.vienna.va.fcc.net) joined #forth 18:23:28 hiya all 18:23:36 Howdy 18:23:38 will be brief 18:23:43 hiya kc5tja :) 18:24:46 I read some going back and forth between you and Holger on IA64 and x86-64 :) 18:24:56 Yeah. 18:25:36 just wondering....are you a bit peeved by Holger's rather dismissive attitude? 18:25:53 kc5tja: sorry I spaced out for a while. I've used C++ exceptions. 18:25:54 No. I just didn't want to get into an argument. 18:26:08 kc5tja: is the C++ exceptions an example of structured exceptions? 18:26:46 kc5tja: I seem to remember being able to catch division by zero. not segfaults though :) 18:26:46 I'm tired and weary of any discussion forum even tenuously connected to the Amiga. I mean, I love the machine and its OS, but the people who populate these forums are nothing but trouble. And I decided it's best to just let it go in this case, lest he explode and make an ass of himself. 18:27:26 herkamire: That depends on the compiler and OS. On Linux, no. On NT using GCC, no. On NT using Visual C++, yes. 18:28:05 kc5tja: oh :) I was on CodeWorrier on Mac OS at the time :) 18:28:57 ah...it's true that there are many Amiga fanatics and near-fanatics (I consider myself a "very pragmatic fanatic", if there is such a thing...I haven't use Amiga in a long time, tho' my Amiga is working just fine)...but I see your point 18:29:39 A pragmatic fanatic is a good description of me I guess, too. My A500 is ready and waiting for me to use it for something. And I will, once I get the resources to support it. 18:29:49 * TheBlueWizard isn't aware that segfaulting is platform dependent 18:30:11 with regard to C++ catching, of course 18:30:28 Again, it totally depends on what you mean by "segfault." 18:30:30 I haven't decided how I want to handle errors (exceptions or signal handlers or what...) 18:30:45 but if I was using exceptions, I would sure want the system to send me those on segfault etc. 18:31:39 Then you'd want a language that supported structured exception handling (and if the OS supports SEH, then it's that much easier to do) 18:33:03 later guys 18:33:05 --- quit: Herkamire ("leaving") 18:34:02 gotta go 18:34:06 bye all 18:34:17 --- part: TheBlueWizard left #forth 19:00:37 --- join: proteusguy (~irc@24-197-147-197.charterga.net) joined #forth 19:04:33 Seems all the forth folks are too busy programming and getting work done... as it should be. 19:05:59 Silly assumption... ;) 19:06:24 Actually, I'll be hacking away at my Forth environment later tonight after I get home from work. I don't have Internet there, so I'll have time to actually do something half-way useful. :) 19:08:13 What's your forth environment? Embedded, linux, other? I haven't used it since 1987 and don't really know what's changed. 19:10:00 Well, I originally wanted to make it embedded to start with (where embedded basically means "raw hardware" for the PC), but it's becoming increasingly more important for me to make a version for Linux first. So I'll probably do that after I'm done with the DOS version. 19:10:20 DOS version is 16-bit of course; the Linux and bare-metal version will be 32-bit. 19:11:22 rolling our own, eh? I made one for the 6809 on our Hero-1 robot in high school. Minimal but fun. Had 16k total ram. 19:11:45 Yep -- rolling my own. Largely because I'm not happy with any existing Forth environment to date. 19:11:58 I think a raw forth env. as a co-hosted linux system would be interesting. 19:12:00 It's not a speed demon, but I don't care. I'll optimize it later as I need to. 19:12:09 Seems things haven't changed much at all then... :-) 19:12:25 The raw Forth environment is intended to be used to develop an exokernel, under which Dolphin (my OS; also written largely in Forth) will run. 19:12:50 interesting. 19:13:28 * kc5tja nods 19:14:51 I even have a spare 2GB harddrive that I intend on using to test its harddrive installations with. :) 19:14:54 I also like the Atmel processors out there now - they seem to scream for a forth env. Can't believe all the BASIC stamp stuff out there when forth is around. 19:15:24 that will be fun - imagine a real computer totally under forth control - boggles the mind. 19:15:38 boot everything in .5 seconds! 19:15:41 Well, that's the really nice thing with exokernels. 19:16:01 It doesn't have to be exclusively under Forth control. 19:16:10 C kernels boot damn fast too. Don't let Linux and Windows fool you. 19:16:26 BeOS booted unbelievably fast -- under 8 seconds on my box. 19:16:56 indeed but they have to load all kinds of things up to just start the environment. forth can load as you go - impercievably. 19:17:15 But I'd like to see a system that takes greater advantage of Forth's strength -- break-neck compile speeds. 19:17:26 You can do the same with C OSes too. 19:17:31 Didn't try BeOS - I'm a C++ fan so I think I might look at their new open source implementation. 19:17:37 After compilation, there's little difference between C and Forth. 19:17:44 The CPU sees it all in the same light. 19:17:59 You *can* do the same under any env but there's a different way of thinking in those. 19:18:08 That's the key -- the thinking. 19:18:44 Actually with the code cache's in cpus today I imagine the entire interpreter can fit in cache. Now you can beat C executable speeds. (I expect) 19:19:23 Why bother interpreting? I do native code compilation. 19:19:30 Well I see this .net stuff coming along and think - hmm... wasn't I doing all this kind of thing with forth when Reagan was still president? 19:19:40 Heheh :) 19:19:42 Yup. 19:20:17 well that's new - we either interpreted forth or defined a rule directly in asm. 19:20:51 My Forth target compiler produces a directly executable assembly snippet for each Forth primitive. 19:21:02 Once the Forth environment proper is done, it will do the same. 19:21:06 I'm thinking about getting a palm or powerpc and doing a forth on it for kicks - just my toy env. 19:21:07 --- quit: sif (Read error: 113 (No route to host)) 19:21:16 * kc5tja nods 19:21:24 QuartusForth for PalmOS also does native code. :-) 19:21:42 ha - no kidding - already there huh? How much memory does it take? 19:22:03 Actually, direct threaded code is nice; it's a break-even point for me. I *was* going to do it, but the compatibility hassles it introduced with calling external C libraries made me choose this route. 19:22:08 Not a lot. 19:22:54 My Forth target compiler, for 8086, produces 33% larger executables (on average) than direct threaded (as measured by Pygmy Forth for the same source). This is to be expected over the long run, as instead of two bytes per address, you're now compiling three (one for the CALL/JSR, and two for the address). 19:23:21 The 32-bit version will give better results, since the overhead of the CALL instruction drops to only 20%. 19:23:27 just found the web page - ANS forth - that's the standard after 88, right? I heard it was kinda FAT for some people's tastes (like Moore). 19:23:53 It is; it's fat by my needs too. I adhere to the standard where I feel it makes sense to, and I ditch the rest. 19:24:19 But, it IS a standard, and is quite capable in its own right. 19:24:21 so you don't have to load the whole mess? I guess I should read further... 19:24:33 Well, that depends on the environment. 19:24:51 A truely ANSI-compatible system must have at least the CORE wordset, and that's what most people complain about. 19:24:58 * kc5tja implements a proper subset of the core. 19:25:21 FS/Forth (my Forth) will be ANSI compatible if you include a file first (that defines the missing ANSI primitives in terms of FS/Forth's native wordset). 19:25:51 wow - this is a pretty capable system - almost too much. Kinda takes the fun out of it... we'll see. I might be ordering me an old palm tomorrow... 19:27:15 * kc5tja nods 19:27:22 There's still plenty of challenges with ANSI. :) 19:27:32 Which is the #1 reason why I am writing FS/Forth. :) 19:27:51 First and foremost, working with the dictionary is a shamefully and unacceptably hard experience. 19:28:07 After 30 years, we *STILL* haven't a standard interface to walk the dictionary to see what words are defined. 19:28:13 gee thre are hundreds of primitives already done.. the fun of rolling your own is you can fit the whole thing in your head. Dunno if I could ever master this thing or not. 19:28:30 That's why I'm implementing a subset. 19:28:31 ha ha ha - true enough. I've never done it the same way twice myself. 19:28:58 My philosophy is this: if it can be ANSI compatible without being overly hard to write, then why not make it compatible? Otherwise, ditch it and start from scratch. 19:29:24 * kc5tja uses the dictionary *heavily*. My VIBE block editor for GForth and PygmyForth makes extensive use of the dictionary. 19:29:42 I map each and every keystroke in command-mode and each and every control-key in insert mode to an executable Forth word. 19:29:50 Makes the editor very, very small, and easily understandable. 19:30:09 * kc5tja has plans for making a file browser tool for NT and Linux, but again, we have crap for system interface. 19:30:27 And what's worse, GForth and the like make it nearly impossible to extend the environment in a portable manner. 19:30:36 obviously mine was dictionary intensive... nothing was truly compiled. 19:31:07 Well, what I mean by "dictionary intensive" is that actual user input is mapped to executable Forth words as part of its normal operation. 19:31:08 hmm... I'm trying to remember the name of the one commercial env I used but it escapes me now... they were the only big one around then. 19:31:18 polyForth? 19:31:22 yes 19:31:26 :) 19:31:59 $129.0 - lots of money for me then. 19:32:05 So if I hit CTRL-X on the keyboard, the Forth word /[X is executed, etc. That totally eliminates the need for making code specifically for key-bindings, and it provides automatic expandability. 19:32:15 That's how much SwiftForth is today, IIRC. 19:32:19 (the full-blown version at least) 19:32:27 I ended up disliking forth after that I'm afraid. I think it lost the philosophy. 19:33:08 Hmmm...I think the philosophy is what you make of it. 19:33:28 yeah - its hard to pin down and quickly becomes religious war... 19:33:36 Many people cite Forth as being inherently unportable, but it's actually the reverse. 19:33:37 still - can't deny that I lost interest. 19:33:45 * kc5tja nods 19:34:47 I found forth powerful because it *was* so portable. Give me a weekend and I'd have a forth system hand coded on the new machine and then I could load my standard library of stuff running unchanged. 19:34:47 It's so easy to fix "missing words" and redefining words to meet an application's expectations that writing compatibility layers takes at most a couple of hours (when I ported VIBE from GForth to Pygmy Forth, it required only a single additional block of code, and took less than 30 minutes to write, including the time it took to review the Pygmy sources) 19:35:00 * kc5tja nods 19:35:22 Well, portability is an ambiguous word. Forth is portable, especially as a conceptual piece of software. But the applications are what most people think as being non-portable. 19:35:25 back then no one had any portability - even in the "standard" languages. Forth is the machine. 19:35:33 * kc5tja nods 19:36:32 Actually I'm thinking that maybe this is why the Quartus Forth is not looking too appealing too me. It runs on top of PalmOS it appears. I'm not interested in having PalmOS on my palm. 19:37:03 oh - and I love motorola's asm. always hated intel. 19:37:12 Yes, it does run on top of PalmOS. It virtually has to; otherwise, there's no way of programming it on the Palm. :) 19:37:38 Yes, I *adore* Motorola asm syntax. I insist, to this day, that the 68010 is the best 32-bit CPU Motorola ever made, hands down. 19:37:41 I think I'll need one of those keyboard attachments and then see if I can burn a rom. 19:37:46 * Soap` found having access to all the palmos systraps incredibly useful 19:38:36 hmm... wondering how to write my own handwriting rec. in forth. That's a challange!! 19:38:47 :) 19:39:27 Chuck would insist that that's not needed. 19:39:40 Use on-screen menus, and if you really needed a keyboard per se, use an on-screen keyboard. :) 19:39:59 I agree - chuck would probably say this. 19:40:28 I just wrote a quick 3-screen 9x9 game of Go in Pygmy a few nights ago, and I'm really pleased with it. 19:40:41 Never once did I use an IF statement, and most things are done by table lookup. 19:40:50 nice going 19:40:52 However, I'm trying to unify the user interface a bit. 19:41:33 I noticed that, once I was done, it had a lot of MVC-like properties. But I still had three user input routines, and two separate output routines (one for the prompt, and one for the game board) 19:41:42 I think they can be unified into a single architecture. 19:42:28 hmm.... 19:42:49 That will make things a bit bigger, unfortunately, since I'm generalizing the software a bit, but I think that's an acceptable tradeoff. 19:43:03 (this whole thing is an exercise just to explore) 19:43:09 user input was always 80% of my code size (or more). 19:43:30 users are such a pain.. :-) 19:43:49 Each of my input routines take the following general form: 19:44:04 : INPUT 0 BEGIN DROP KEY VALID? UNTIL DO-SOMETHING ; 19:44:13 where VALID? is defined as: 19:44:29 : VALID? NORMALIZE DUP IN-RANGE? ; 19:44:41 NORMALIZE converts the character to a look-up table offset or some such. 19:44:58 Basically, I have six lines in the code like that, accounting for the three input "modes" the program has. 19:45:55 I didn't normally have serial keyboard input to work with. Either debounced keys (buttons) or read devices like pen controllers. 19:46:09 that's why palm seemed interesting to me. 19:46:26 * kc5tja nods 19:47:17 you basically supported keyboard entered command words then. 19:48:23 most of my effort was for pretty screen output. most customers never used a computer before they got hold of my system. 19:48:33 * kc5tja nods 19:48:51 I'm intending my OS to target the desktop, where Linux has decades before it catches up. 19:49:12 really?? that's ambitious! 19:49:39 you gonna do the graphics/screen/windowing primitives all yourself? 19:50:09 Those might be written in C, actually. I'm not yet sure. But the operating system architecture is going to be SIMPLE, like AmigaOS. 19:50:31 hmm.... big effort to besure. 19:50:34 Graphics output will be done using a scene graph system. GUI will be very GEM-like in structure, but with a number of welcome enhancements 19:50:56 I don't think so. 19:51:04 who do you anticipate to be your user? wht kind of apps? 19:51:06 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 19:51:17 Once I get a basic system out, hopefullly open source contributions will start coming in. 19:51:30 General purpose, general user. Wide audience. 19:51:45 It's really intended to suit me, but my requirements are very similar to many "everyday" users. 19:52:07 That's why I expect a wide audience. I virtually have a waiting list for people who want to try it when it's out. 19:52:15 wow - i dunno - never found the forth community to be into the open source concept... open ideas absolutely but always had not-invented-here syndrome big time. 19:52:37 Nobody except the people in this channel knows that Dolphin will be written largely in Forth. 19:52:50 so what will apps be coded in? 19:52:54 And it'll stay that way. I have no intention of making any mention of it on Dolphin's website. 19:53:06 Applications can be coded in any language the authors see appropriate. 19:53:26 It's an operating system, like Linux, only vastly smaller, better, faster, and easier to use. 19:53:39 It just happens to be written in Forth, and not C. 20:05:02 * kc5tja found an interesting webpage on Chuck's site: http://www.colorforth.com/binding.html -- I'm going to copy this page's contents and put it on Dolphin's website when I'm done. 20:08:23 Well, I'm going home now. I'll be hacking on my FS/Forth. Maybe, if I'm lucky, I can get it to interpret words tonight. 20:08:31 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 20:09:52 --- join: proteus (~irc@24-197-147-197.charterga.net) joined #forth 20:10:12 oops - I got dropped... 20:10:20 --- join: cleverdra (jfondren@0-1pool37-169.nas2.florence1.sc.us.da.qwest.net) joined #forth 20:11:02 --- quit: proteusguy (Read error: 110 (Connection timed out)) 20:11:24 --- quit: proteus (Client Quit) 20:11:27 --- join: proteusguy (~irc@24-197-147-197.charterga.net) joined #forth 20:31:16 --- join: dsmith (dsmith@oh-strongsvillecadent1-1c-245.clvhoh.adelphia.net) joined #forth 20:46:19 --- quit: cleverdra ("Leaving") 20:53:34 --- join: Mongrel (~ant@ool-435249eb.dyn.optonline.net) joined #forth 21:11:22 --- quit: proteusguy (Read error: 110 (Connection timed out)) 22:07:14 --- quit: dsmith (Remote closed the connection) 22:14:05 --- join: Fractal_ (fieqz@h24-77-171-228.ok.shawcable.net) joined #forth 22:18:54 --- quit: njd (Read error: 104 (Connection reset by peer)) 22:19:16 --- quit: Fractal (Read error: 110 (Connection timed out)) 22:52:53 --- join: proteusguy (~irc@24-197-147-197.charterga.net) joined #forth 23:45:52 --- quit: Etaoin ("raise OutOfInternet") 23:59:59 --- log: ended forth/02.07.25