00:00:00 --- log: started forth/03.08.23 00:28:29 --- quit: gilbertdeb ("Told you I could quit any time!") 02:16:11 --- join: mur (murr@baana-62-165-186-171.phnet.fi) joined #forth 02:27:46 * rk is away: sl33p 05:52:18 --- join: crc (~crc@ACA5AB15.ipt.aol.com) joined #forth 05:57:33 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 06:27:30 --- join: snowrichard (~rsnow1@dialup-103.mcc4u.com) joined #forth 06:32:56 --- quit: tathi ("leaving") 06:50:36 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 07:19:31 --- join: wossname (~wossname@ip68-10-164-208.hr.hr.cox.net) joined #forth 07:23:35 --- join: crc (~crc@ACA5AB15.ipt.aol.com) joined #forth 07:41:49 --- quit: crc ("I was using TinyIRC! Visit http://www.tinyirc.net/ for more information.") 08:29:21 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 08:29:23 * rk is back (gone 06:01:34) 08:30:45 OK...anyone have better names for >R and R> 08:30:47 ? 08:33:20 Not really, I like those. 08:33:29 Maybe r@ and r! ? 08:33:49 But that could be misinterpreted 08:34:42 yah 08:35:02 I'd go with >r and r> :) Why don't you like them?= 08:35:42 rpush, rpop. :) 08:35:50 on nos, wait, more than 2 letters bad :( 08:36:07 they're OK, I guess 08:37:04 wossname: :D 08:37:10 (That's two letters :) 08:37:24 ;D 08:37:26 :D 08:37:30 ^^ push, pop 08:37:48 (you can tell ;D is push because of the little dippy bit in the semicolon) 08:37:59 or you could do `R, ,R 08:38:00 ;D 08:38:33 :) 08:39:45 ah. 08:39:58 that's what I was thinking of. Chuck seems to call them push and pop in colorforth. 08:42:26 the forth element! 08:42:28 andmur 08:42:34 hello! 08:42:43 forth element and mur makes the fifth element ;) 08:43:00 mur: terve! 08:43:17 tervehdys rk 09:00:00 --- join: gilbertdeb (gilbert@fl-nked-ubr2-c3a-142.miamfl.adelphia.net) joined #forth 09:48:12 * rk is away: Friends housse --- Bin kein DAU, tu nur so 10:22:25 --- join: I440r (~I440r@dialup-67.29.214.172.Dial1.Cincinnati1.Level3.net) joined #forth 10:23:37 --- join: mur` (murr@baana-62-165-186-171.phnet.fi) joined #forth 10:23:43 --- join: kc5tja (~kc5tja@ip68-8-127-122.sd.sd.cox.net) joined #forth 10:23:43 --- mode: ChanServ set +o kc5tja 10:24:15 --- quit: mur (Read error: 104 (Connection reset by peer)) 10:52:32 --- quit: I440r () 10:53:43 --- join: I440r (~I440r@dialup-67.29.214.172.Dial1.Cincinnati1.Level3.net) joined #forth 11:22:29 --- quit: gilbertdeb ("Told you I could quit any time!") 11:22:49 --- quit: wossname (Read error: 110 (Connection timed out)) 11:56:42 --- join: skylan (sjh@vickesh01-4912.tbaytel.net) joined #forth 13:26:37 --- nick: kc5tja -> kc-afk 13:27:50 --- join: karingo (karingo@108.portland-13-14rs.or.dial-access.att.net) joined #forth 13:28:39 --- nick: kc-afk -> kc5tja 13:36:16 --- quit: karingo () 14:08:49 --- join: TheBlueWizard (TheBlueWiz@ip-207-198-223-168.nyc.ny.FCC.NET) joined #forth 14:08:49 --- mode: ChanServ set +o TheBlueWizard 14:08:55 hiya all 14:09:56 TBW 14:09:58 BTW 14:10:02 hello and cya 14:10:04 i'm leaving soon 14:10:05 not yet 14:10:08 but soon :) 14:12:12 hiya mur`! 14:12:18 Terve 14:12:19 ah...ok :) 14:12:35 hiya Robert 14:13:15 Hi :) 14:20:08 re 14:21:27 hiya kc5tja 14:23:37 --- join: I440r_ (~I440r@dialup-67.29.214.39.Dial1.Cincinnati1.Level3.net) joined #forth 14:24:03 --- quit: I440r (Read error: 113 (No route to host)) 14:55:20 Hmmm...I'm hungry, but I'm lazy. 14:55:28 This calls for Papa Johns man! 14:55:48 brb -- shower, then ordering pizza. 14:57:01 --- quit: XeF4 (Remote closed the connection) 14:57:06 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 15:09:28 --- join: I440r (~I440r@dialup-67.29.221.215.Dial1.Cincinnati1.Level3.net) joined #forth 15:11:09 hiya I440r!!! :) 15:11:13 hiya XeF4 15:11:23 Hey 15:12:01 --- nick: mur` -> mur 15:12:16 still here :) 15:13:38 terve mur...how's life? 15:13:49 nice 15:13:50 i guess 15:15:36 :) 15:16:34 Heh 15:23:54 --- quit: I440r_ (No route to host) 15:27:29 --- quit: tathi ("leaving") 16:00:16 hello 16:00:26 hiya uuter 16:00:30 --- quit: mur ("Murr.") 16:00:34 i have a question about smudging dictionary entries 16:00:46 go ahead 16:01:20 when FIND comes accros a smudged word, does it exit, or will it go on to find a possible previously defined word of the same name? 16:03:11 SMUDGE is a toggle word, making it visible or hidden...it is typically used to hide the word while that word is being compiled, and the ; word smudge that word again, making it visible 16:04:21 it's a bit obscure, and it has been a long time since I last played with that word :) I might be a tad bit wrong somewhere on that...but the general idea is correct nevertheless 16:06:18 in any case the FIND will simply continue to search until it find a *visible* word, or quit after finishing searching the dictionary...a case in point: : emit output-counter 1+! emit ; 16:06:44 yeah, i understand that part, i am just wondering if ALL words of the same name are hidden. You might have a older word deeper in the dictionary by the same name 16:06:54 here, the newly defined emit word uses the older emit to do the work 16:07:14 ok, thats what i wanted to know, thanks 16:07:15 no...smudge only works on the latest word 16:07:54 Forth is quite simpleminded in its approach; it doesn't try to do anything fancy here 16:18:07 yeah, as is usually the case 16:55:08 --- part: snowrichard left #forth 17:36:16 gotta go...bye all 17:42:14 --- part: TheBlueWizard left #forth 18:03:16 --- join: suprdupr (CrowKilr@Ottawa-HSE-ppp3653418.sympatico.ca) joined #forth 18:03:22 hi 18:03:26 2 things 18:03:43 just saw the medallion and it s*cks hard 18:04:37 and the "; inside red word and ... placed before for definition fall through" notation is great 18:05:22 credits to mark slicker for giving the hint on the cf ml and samuel flavo for the ... 18:05:58 colorless colorforth just got easier 18:06:19 first word of line is always red, no need for ;, etc etc 18:07:22 i also saw the shooting for columbine documentary 18:08:12 truly worth the 5$ spent for the rental 18:16:44 the idea for the defining word to close previous definition if any and create a new one is truly the way to go, lot less fall through between words than ; 18:17:01 it should really have been the way to go from the start. 18:33:50 * suprdupr 's booooooo-ing #forth 18:36:13 --- quit: suprdupr ("one of the big breakthrough for forth is this and nobody wants to discuss it lol") 18:55:05 --- part: rpc left #forth 19:04:43 --- quit: I440r (Read error: 113 (No route to host)) 19:34:32 --- join: I440r (~x@dialup-67.29.214.193.Dial1.Cincinnati1.Level3.net) joined #forth 20:20:52 --- quit: I440r (Read error: 104 (Connection reset by peer)) 20:23:51 --- join: I440r_ (~x@dialup-67.29.214.193.Dial1.Cincinnati1.Level3.net) joined #forth 20:56:27 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 20:56:51 kc5tja: was it you I was talking to about colorforth, and how yellow->green usually compiles a lit? 21:14:24 Yes 21:14:33 Sorry, was reading a book. 21:16:35 I've just finally gotten flux to work 21:16:48 Cool. How is it? :) 21:16:50 I was very suprised not to see a color for compiling a literal number 21:17:15 Flux is based somewhat on Enth, which is an ANSI-compliant Forth. 21:17:17 it's cool. I don't know the vocabulary, so I haven't done anything with it. just poking around 21:17:39 It could use the age-old trick of "if word isn't found, treat it as a number." 21:17:43 * kc5tja nods 21:17:48 I have yet to get it working. 21:17:57 worked like a charm. 21:18:14 It's always crashed for me. 21:18:19 only problem is that winzip unpacked all the source files into my folder instead of creating one to put them in. 21:18:34 None of my computers support VESA, which is one problem. 21:18:44 * kc5tja nods 21:18:48 I've just been looking at some code that calculates literals, and is switching from compile to execute and back a bunch. 21:19:00 it looks very clean, and is compiling some very nice code 21:19:21 (i asume the code is nice... I mean that it's compiling literals instead of function calls) 21:19:29 * kc5tja nods 21:19:49 I would have to stick a bunch of LITs in there to get the same effect. 21:20:07 Yeah, that's what Chuck Moore wanted to avoid, specifically. 21:20:09 on the other hand I don't have to hit F-keys everytime I want to enter a number... 21:20:29 Does the editor automatically recognize numbers, and change colors automatically? 21:20:33 good stuff. I didn't see the value in it untill just now 21:20:42 no 21:21:45 Then I'm rather confused about what, exactly, you're referring to. 21:22:01 Can you cite an example on IRC using color? 21:22:21 the enth/flux does not automatically notice that you've typed a number. 21:22:55 BTW: not sure if you read the logs for today or not, but suprdupr came in all happy about something I was discussing on the ColorForth mailing list, and nobody was at keyboard. So he left, boooo'ing the channel. :) 21:22:59 I thought it was funny. 21:23:02 Anyway, I digress. 21:23:15 if you are going along in execute color and you type "23" (without quotes) it will say "23 word? 23" 21:23:55 ?? It can't handle numeric literals in execute mode? 21:24:04 I assume execute mode is "interpret" mode? 21:25:12 I guess. that color (white in flux... I think chuck has this as yellow) is executed when the compiler/interpreter gets to it 21:25:20 Yeah 21:25:43 I was suprised that there is not a color for a numeric literal 21:26:03 Numeric literal, in execute mode, you mean. 21:26:11 he has a color for a hex number, and a color for a decimal number. both are put on the stack when the interpreter gets to them. 21:26:28 Those are numeric literals. :) 21:26:52 I mean compile a numeric literal into a definition 21:27:45 Well, if the compiler is set up so that it grabs a number off the interpreter's data stack when switching back to the compile color, it technically doesn't need one. 21:27:57 right now my forth has three visible colors: red (define) green (compile) yellow (execute) 21:28:21 kc5tja: yeah, except when you have two numbers in a row in a definition. 21:28:26 perhaps this is a rare case though? 21:29:00 Depends on the application. I sometimes find myself using two or three numbers in a row, as when setting up for a loop of some kind. 21:29:50 in my cf compiler accepts two different kinds of numbers, one which it puts on the stack at compile time, and one which compiles a literal. 21:30:05 * kc5tja nods 21:30:11 kc5tja: how do you do that? you just call lit? 21:30:42 FS/Forth is a classical Forth, so that problem technically doesn't exist for me. 21:30:53 right :) 21:30:56 I scan the dictionary to see if "24" exists, and if it does not, I treat it as a number. 21:31:05 Or $24 in the case of a hex number. 21:31:08 it's nice now that I have some code, and can run some statistics w/o too much difficulty 21:31:11 Or '$ in the case of a character literal. :D 21:31:31 that's cool to do stuff with things not found in the dictionary. 21:31:44 I first check if it's a number, before I do the dict lookup. 21:31:53 However, I'm also planning on supporting ]L to do auto-compilation of a number: [ $A0000 frameBufferOffset + ]L @ 21:32:03 brb 21:32:08 it makes it so you can't turn something that looks like a number, into a word. and that's fine with me :) 21:32:44 yeah :) we we discussed that. ]L sounds good to me. 21:33:14 I can't use that in my forth though. as I don't have an interpreter mode. 21:34:13 back 21:34:44 * kc5tja nods 21:34:50 got it. I think I figured out how I can write simular code without having LITs and still compile literals into my definitions like I'm seeing in enth. 21:34:59 I can use immediates. 21:35:08 Or named constants maybe. 21:35:23 Well, immediates would be a named constant. :) 21:35:35 : 0 0 ; IMMEDIATE ;D 21:36:23 if say SCREEN-WIDTH calculates some value that is known at compile time, then I can just define it as say: : SCREEN-WIDTH 1024 4 * lit ; 21:36:29 immediate 21:37:01 * kc5tja nods 21:37:04 that would be irritating, because you couldn't use it at compile time, but it works well with my spin on immediates 21:37:14 s/compile time/execute time/ 21:37:24 looks almost like my definition for const 21:37:54 I440r_: your const definition creates immediates that compile a literal? 21:38:00 state smart variables that compiles a literal 21:38:02 yes 21:38:07 I440r_: cool :) 21:39:09 my scheme for immediates, is to have the editor substitute (if it exists) an "immediate version" of a word, if you are in the execute color. 21:39:15 : const ( n1 --- ) 21:39:15 create , immediate 21:39:15 does> 21:39:15 @ ?comp# ; 21:40:08 the "immediate version" is another normal word that is matched to the normal version by a naming convention, currently: the immediate version has the same name but prefixed with a comma. 21:41:06 so I could define: : scr-width 1024 4 * ; : ,scr-width scr-width lit ; 21:41:08 herk your forth is non-interactive ? 21:41:39 I440r_: sorta 21:43:06 I had it executing everything you typed in the editor as you typed it, but I had some problems with this. I changed it so it never does, and I've been pretty hapy with it. 21:43:42 I was thinking of having a toggle or something, but what I really want it to do is highlight stuff as you type it, and you can hit a key combo to interpret the selection. 21:44:03 currently there's a key that interprets the last word typed 21:44:09 Herkamire: That's how Smalltalk pretty much works. 21:44:27 (which advances the cursor so you can go to the begining of some stuff and hold it down) 21:44:41 You type something into an arbitrary text window, highlight it, and select "Do" from a pop-up menu when you right-click. And it interprets the highlighted text as Smalltalk code. 21:44:48 kc5tja: I can't take credit for that one. I got the idea while/from reading THI 21:45:13 highlighting it is a user action? 21:45:23 Herkamire: Yes. 21:45:35 I don't want that. what I have now is just as good 21:45:47 I want the editor to automagically highlight stuff as you type it. 21:45:56 Well, two things: one, this interface was designed before even the Macintosh, so it's ancient. 21:45:59 this would make it just as good as a command line for entering stuff 21:46:01 Two, it allows execution of multiple words. 21:46:38 I can hold down the interpret key to do multiple words, or hit ^B to interpret the whole block 21:47:04 When interpretting multiple words, does it consume the word or just advance the cursor? 21:47:14 I'm going to wait on highlighting until I go graphical (currently working inside xterm) 21:47:27 advance 21:48:01 OK, I'm just trying to understand this now (forgive me). Let me see if I have it right. Let _ indicate the cursor, and let's say we want to execute 100 EDIT. 21:48:09 So, to start with, we have "100 EDIT_" on the screen. 21:48:16 So you cursor back: "_100 EDIT" 21:48:25 ^I: "100_EDIT" 21:48:28 with the as-you-type highlighting, you can type some words, hit ^e (execute) and if you want delete to scratch it 21:48:36 ^I again: "100 EDIT_" 21:48:54 Do I have that right? 21:48:57 yes. 21:49:04 currently that's kinda annoying for testing 21:49:08 Okies. I was envisioning things backwards for some reason. 21:50:10 * kc5tja was thinking of not quite that interface for VIBE 3, but I can see where that can come in handy sometimes. I was thinking more along the lines of executing a single line on the block, personally. 21:50:12 in the future you will be able to type: 100 edit ^e 21:50:33 kc5tja: I don't have lines currently 21:50:47 I was thinking about lines too, but I haven't yet decided. 21:50:52 I know, I'm just saying, for me, that is probably what I'm going to end up doing. 21:50:59 sure 21:51:06 VIBE uses the usual 64x16 character matrix layout for blocks. 21:51:09 if I have lines, I will certainly have a key to execute the current one 21:51:49 I like my auto highlight thing because it's very non-modal. 21:52:00 * kc5tja nods 21:52:38 it doesn't matter where the cursor is or anything, you can just type some words at hit ^e and it executes, and if you don't want that code there, you can hit backspace to get rid of it, or move it somehow 21:53:20 So after hitting ^e, it will auto-highlight the next word? 21:54:00 I haven't thought much about more advanced editor features like moving stuff around except that I want to have delete/paste stack like something I saw on DOS. It works like this: you delet stuff as normal with the backspace key, and then there is some key that pasts the letters back on (wherever the cursor is) one at a time in the same order. 21:54:03 Yeah, I'd assume so, if it advances the cursor. 21:54:30 I never saw that in any DOS I've used. 21:54:38 kc5tja: I think the key that executes the auto-selection would leave it highlighted so you could delete or move it 21:54:49 But I do love the concept of a selection stack that Raskin advocates. 21:54:59 kc5tja: it was some editor I saw on my cousins computer. no idea what it was. 21:55:42 stack? 21:55:46 Especially some of the more advanced stuff that's possible with it, like taking the union of two selection sets. :) 21:55:50 you mean saving previous selections? 21:56:04 oh yeah. that is like a stick isn't it 21:56:07 You can select multiple regions of text. 21:56:15 yeah, I like that stuff too. 21:56:23 I hope to implement a very good editor. 21:56:24 Every time you select something new, the last selected item gets a slightly dimmer highlight, etc. 21:56:44 I've always wanted to make a better editor, and figured it had to be possible. 21:57:03 * kc5tja particularly appreciates the "exchange text" feature. I've *never* seen that feature in any text editor, save one: Scripsit for the TRS-80 series of computers. 21:57:07 yeah. all this cool graphical stuff that doesn't sound to hard that I just can't do in the linux terminal. 21:57:19 * kc5tja nods 21:57:26 I can't even highlighting, because I'm using reverse video for the cursor 21:57:39 kc5tja: yeah :) 21:57:43 Ahh, the joys of fbcon. :D 21:57:57 or xterm. 21:57:58 that part in the book about the "exchange selections" command sticks out very much in my memory. 21:58:09 VIM uses reverse video for highlighting, even in xterm. It doesn't care. :D 21:58:15 especially because I just wanted to exchange some bits of text and it was a pain 21:58:23 * kc5tja nods 21:58:38 what's fbcon? a terminal emulator? 21:58:45 Framebuffer Console 21:58:59 oh 21:59:19 What every Linux distribution uses for so-called "text-mode" console access, except x86 platforms, because x86 is the only platform around today that still has a text-mode. 21:59:38 that's the console that you boot into? (if you don't do xdm or whatever) 21:59:44 Yes 22:00:07 And you switch to with ALT-Fx (or CTRL-ALT-Fx in X11) 22:00:16 ok. good to know. I've seen "fbcon" around and not understood :) 22:00:39 Hehe 22:00:46 aka fbdev 22:00:48 /dev/fb 22:00:49 etc 22:01:09 yeah, except those key combos mysteriously stopped working for me a few months ago... but that's ok, my screen goes all fucky when I switch back and forth from X and fbcon 22:01:28 Ouch 22:01:34 That sucks. :( 22:01:38 yeah. 22:01:46 but X has been pretty stable. 22:02:05 I don't fiddle around with OpenGL or games which grab the keyboard. 22:02:15 anymore :) 22:02:53 anyway... where was I? oh yeah, using a terminal for an editor. 22:03:12 I have my cursor "on top" of a word 22:03:58 so I use reverse video, since I can't streach the xterm cursor over a word. 22:04:10 * kc5tja nods 22:04:16 That's what I'd do if I were in your position too. 22:04:33 I keep the xterm cursor at the bottom where you can enter and delete characters and hit space/return when done 22:04:35 Are you talking directly to the console or are you using ncurses for console output? 22:04:44 directly 22:04:54 * kc5tja nods 22:05:27 I don't know (or particularly want to waste my time learning) how to interface with C libraries. 22:05:55 this xterm stuff is just temporary. 22:05:58 PowerPC's Linux C/Assembly interface is more complicated than x86's, due to the increased number of registers. 22:06:02 I'm going to go graphical. 22:06:20 * kc5tja isn't quite sure what he wants to do just yet. 22:06:33 not many people have ppc linux anyway :) 22:06:35 I want to use SDL to start with, but at some point, I'd like native access to GTK and related libraries. 22:06:57 yeah. SDL is the most tempting C library 22:07:16 but It's so easy to mmap /dev/fb/0 22:07:46 Actually, what I think I'm going to end up doing is write a C/Forth bridge for the libdl.so library, then access any other libraries I need through that interface. 22:08:08 Herkamire: Yeah, except that will almost certainly not work on an x86 platform. :D 22:08:26 There is very little incentive to use fbcon on x86 platforms. 22:09:20 my forth won't work on x86 22:09:32 here's my code to mmap the fb: : mapfb [ 3 fbstr ,liw 4 2 ,li 0 5 ,li ,sc 7 3 ,mr 3 0 ,li 4 5242880 ,liw 5 2 ,li 6 1 ,li 8 0 ,li 0 90 ,li ,sc ,dup r-tos 3 ,mr ,; 22:10:12 ( ,liw compiles a literal that loads into a register (r3 in this case)) 22:10:13 * kc5tja nods 22:10:52 I don't have a particularly strong attachment to my forth runing under linux in the future 22:11:11 * kc5tja nods 22:11:14 Neither do I. 22:11:32 But I have a few programs I want to write for Linux that I'd like to market at some point. 22:11:46 untill then (when I get it booting, and doing email and irc, and something like lynx) I'm ok with it only working on some ppc linux systems (namely mine...) 22:11:51 And writing it in C is just a chore for me. I'm happier coding the Forth environment for it first, then coding it in Forth. 22:12:28 yeah, I probably will at some point, want to develop linux apps with it. 22:12:37 or maybe not... 22:12:58 oh... that's what it! 22:13:10 I could just make it so my forth works in mac emulators :) 22:13:14 Yeah, I might just forego Linux all together and develop Dolphin instead. :) 22:13:45 I can get people with macs to try my stuff by booting it, and others can try it in an emulator 22:14:06 Are there PowerMac emulators available? 22:14:13 no 22:14:21 I envision such emulators would be awfully slow anyway. :) 22:14:21 But i have a PPC Macs 22:14:24 there's another advantage of tiny, simple programming 22:14:31 There is PSIM 22:14:36 im on macs too 22:14:46 i need to try colorforth 22:14:47 but its not a Mac emulator 22:14:49 my friend get a mac amulator, and it ran well enough to play some cool video games 22:14:57 What is PSIM? 22:15:02 Thats a 68k emulator 22:15:04 Generic PowerPC simulator? 22:15:08 yeah 22:15:15 it has NetBSD syscalls 22:15:17 68K and PowerPC are not the same... 22:15:21 and OpenFirme ware hooks 22:15:34 oh, maybe the emulator was 68k 22:15:46 yeah 22:15:51 Basilisk 22:15:53 bummer. 22:16:00 I mean, it's easy to write a PowerPC user-mode emulator. Not sure about supervisor mode though. 22:16:04 is there a project underway to create a ppc emulator? 22:16:08 It's just that it'll run really slow. :) 22:16:15 There are PPC emulators 22:16:21 not Macintosh emulators 22:16:46 uuter: you mean they emulate the processor, but no OF and devices? 22:17:07 Quite possibly. 22:17:23 PSIM is a PPC emulator, that has NetBSD syscalls, and Open Firmware emulation 22:17:27 * kc5tja was thinking of writing a ColorForth for the Amiga at one point. :) 22:17:29 * kc5tja might still do it. 22:17:32 There are no PowerMac emulators 22:17:58 If you have a Amiga you can run Mac OS in a VM mode 22:18:10 and some of the PPC Linux systems can run MOL 22:18:12 uuter: Not really. 22:18:39 uuter: And I really couldn't fathom why I'd want to; AmigaOS is overwhelmingly technologically superior to 68k MacOS anyway. 22:18:43 have they fixed MOL so it will run under SMP yet? 22:18:56 I mean PPC Amigas 22:18:57 I used MOL at work, but at home I have SMP. 22:19:14 uuter: I do not have a PowerPC-equipped Amiga, and quite likely won't ever. 22:19:15 What did you want to run on a Mac anyways? 22:19:26 The AmigaOne needs to be released first, and its price must come down before I even consider one. 22:19:32 Its more a European thing 22:19:53 uuter: Not really. There are Americans running PowerPC-equipped Amigas. 22:20:04 sure 22:20:14 But I'm waiting specifically for the AmigaOne to be released. 22:20:21 Well, the hardware is out, but AmigaOS 4 isn't yet. 22:21:05 Herkamire: what do you want to test? 22:21:19 uuter: I want to try THE again 22:21:24 oh 22:21:34 i had that, its written in Python now i think 22:21:38 I could just boot into mac 22:21:51 I wanted to try it 22:21:54 uuter: He is thinking of his self-hosted Forth environment. 22:21:57 but it needed classic env 22:22:02 which I do not possess 22:22:03 The Humane Enviroment? 22:22:25 There is a native Forth for the Mac? 22:22:33 uuter: yes, yes 22:22:38 uuter: MOPS 22:22:39 other than Open Firmware? 22:22:40 uuter: openfirmware 22:22:44 =) 22:22:51 I think MOPS is native 22:22:54 MOPS is not self Hosting 22:23:03 its a Mac OS Carbon app 22:23:11 oh, self hosting... as far as I know, you'll have to wait until I finish :) 22:23:20 or make your own of course :) 22:23:35 i plan to get my forth to boot 22:23:42 uuter: me too. 22:23:57 Have you read the OFW stuff? 22:24:13 I have OFW pong somewhere 22:24:24 yeah, i ran that 22:24:28 and it's not too far off. I think I'll work on my editor for a while longer, maybe a month, and then start trying to get it to boot (there is a part of my brain saying "yeah right, it won't be that soon") 22:24:43 yeah, i concur 22:25:26 the L4 micro-kernel, has a distrobution, that they have running on a PB, they provide some info on linking proper ELFs etc 22:25:30 uuter: don't think so. what's that? 22:27:18 http://l4hq.org/arch/powerpc/ 22:27:23 uuter: what's OFW? 22:27:30 Open Firmware 22:27:38 the "BIOS" on Macs 22:27:45 Its a Forth system 22:29:30 oh. I've always seen it abreviated OF 22:30:07 yeah open firmware is cool 22:30:13 indeed 22:30:25 I don't know how to use it too well, except to boot an elf 22:30:46 but when I make my forth bootable, I'm going to have to learn more about the client interface 22:31:10 the client interface is unstable i hear 22:31:33 my cousin tathi made a little booting screensaver thing, so I'll probably see if I can dig up that code, and then I just need to figure out how to get keypresses 22:31:56 I think it's the client interface... could be I have the wrong tame 22:32:09 I really should be getting to bed. 22:32:26 uuter: let me know if you start working on getting a forth to boot on Mac 22:32:35 id be interested in that 22:32:56 im getting it running hosted first 22:33:24 hosted means under another OS? 22:33:33 yeah 22:34:14 uuter: can you give me a quick idea of what sort of forth it is before I go to bed? 22:34:24 ansii? color? 22:34:33 my own 22:34:36 what language are you writing it in? 22:34:41 asm 22:34:45 coool 22:37:12 uuter: have you got the cash flushing stuff worked out? 22:37:50 cash flushing? 22:37:54 on what processor 22:38:02 PPC 22:38:07 flusing the instruction cash on a 68k is easy 22:38:15 dunno if its teh same on a ppc :) 22:38:18 just do a NOP :) 22:38:25 nop has an operation on 68k :) 22:38:30 PPC has a seperate instruction and data cash. which is a bit of a nuicense for a native forth 22:38:42 same on the x86 22:38:46 well 22:38:49 one cash 22:39:12 if you got code cashed and access data it fulshes the cash 22:39:13 ugh 22:39:16 and vice versa 22:39:20 fucking moronic 22:39:32 when you write code, to memory, you have to explicitly flush the data cash for that block, and explicitly invalidate that block in the instruction cache. 22:39:36 x86 is the most fucked up architecture there is 22:39:57 my forth breaks all the rules by having code and data in the same pages 22:40:06 isforth invalidats the cash constantly heh 22:40:14 ask me how much i dont care 22:41:19 "what rules?" is my attitude 22:41:19 my rules are "keep it simple", "keep it simple" and "make it useful" 22:41:33 i've not had to flush the cache yet 22:41:35 good rules 22:41:48 uuter: you don't have your forth creating native code? 22:41:54 im also breaking the rules by making my entier memory space +r +w +x 22:41:58 im just starting to get it compiling colon definitions 22:42:06 teh x86 is NOT a fucking harvard architecture. assholes 22:42:09 yeah, subroutine threaded 22:42:21 so have i 22:42:29 its all in a .data seg 22:43:06 damn, I can't keep the different types of threaded straight in my head. 22:43:21 subroutine is native i guess 22:43:25 no inner interpreter 22:43:45 im stuck on the whole DOES> thing 22:44:17 uuter: as you compile forth code, are you assembling PPC instructions? 22:44:23 yes 22:44:33 bl c_fetch 22:44:34 you'll probably need to have code to flush the cashes then 22:44:51 or it won't run reliaby 22:45:11 in ; perhaps? 22:45:19 yes. I have ; call flush 22:45:30 you have a PPC forth? 22:45:35 yes 22:45:38 rad 22:45:46 is it working pretty much? 22:45:47 I was talking to you about it... 22:45:54 it works great under linux. 22:45:59 the editor is still a bit funky 22:46:00 i thought you were thinking about writing one 22:46:06 no no no :) 22:46:10 did you write it in asm? 22:46:12 I've been working at it for a few monts 22:46:17 yes, and in forth 22:46:31 rad, do you have a page? 22:46:34 the asm creates an ELF which is run, and compiles it's self into a new ELF 22:46:39 http://jason.herkamire.com:5000/svn/herkforth/ 22:46:44 just my source repository. 22:46:49 read the stuff in the doc folder 22:47:10 oh man, i hate GAS syntax 22:47:26 start with http://jason.herkamire.com:5000/svn/herkforth/doc/overview 22:47:38 this is ColorForth-ish? 22:47:39 sorry 22:47:44 yes 22:48:14 I took a bunch of ideas that seemed good, and made it up as I went along. 22:48:15 will it assmble on NetBSD? 22:48:20 cool 22:48:28 syscalls won't work probably. 22:48:53 the basic 0 .. 5 are at least the same 22:49:04 it only uses 3 syscalls though I think 22:49:17 (open read write) 22:49:20 im writing mine under OS X, and i had it running under NetBSD 22:49:35 yeah, those are the same on all *nix systems i think 22:49:46 That's because OS X is really a clone of OpenBSD . :) 22:49:47 oh cool :) maybe it will run under OS X :) 22:50:05 OpenBSD??? 22:50:14 More like FreeBSD 22:50:25 uuter: see if you can get my forth to run :) 22:50:33 let me know what systems it runs on :) 22:50:41 the Apple assembler uses a different syntax 22:50:42 NeXTStep, which is where 99% of OS X comes from, ran on an OpenBSD implementation under Mach "back in the day." 22:50:49 I was asuming it wouldn't run without modification on other systems 22:51:07 NeXTStep came out in '88 22:51:13 uuter: can't you get gcc for OS X? 22:51:16 which is pre-OpenBSD i believe 22:51:17 I know that. 22:51:31 Perhaps. 22:51:37 uuter: any change I can just give you a binary? 22:51:38 I don't really have the space to compile the GNU chain 22:51:41 I seem to recall OpenBSD, but it could have been some other kind. 22:51:48 nope 22:52:09 Mach-O 22:52:11 oh wait, OS X uses MACH not elf... that's a problem 22:52:14 * kc5tja is very glad that NeXTStep still lives in MacOS X though. I can't think of a better place for it. 22:52:20 BSD too? 22:52:30 Herkamire: Mach is the microkernel, not the executable format. 22:52:42 mach-o is the format 22:52:43 Mach-O is the exe format right? 22:52:47 ok 22:52:54 Does OS X run under Mach? 22:52:54 'snot ELF 22:52:57 I don't think it does. 22:53:02 yeah 22:53:05 IT DOES?! 22:53:08 yes 22:53:13 OH MY *#&(#*@ GOD! 22:53:20 they blab about it on their website 22:53:22 * kc5tja slaps his forehead, shaking it heartily 22:53:32 you fancy Mach? 22:53:38 I abhore Mach. 22:53:43 It's the slowest microkernel IN THE WORLD. 22:53:50 its not your fathers Mach 22:53:57 kc5tja: :) I don't know much about it, but I've heard mostly bad stuff about Mach. things like "take every bad thing about different curnels and roll them together" 22:54:03 It is the microkernel which gave microkernels a bad name in the industry. 22:54:20 lol 22:54:25 i thunked that was windows :P 22:54:27 its quite a bit different than CMU Mach i believe 22:54:36 Windows was never a full microkernel. 22:54:37 goodnight all. 22:54:42 bye 22:54:43 uuter: Doesn't matter. 22:54:50 --- quit: Herkamire ("sleepy time") 22:54:54 its a macro-kernel 22:54:57 The core architecture of it makes it horrifically slow compared to other uKs. 22:55:01 yeah, the interfaces and MiG are not so hot 22:55:19 its not my favourite either 22:55:21 * kc5tja notes that QNX is *damn* fast for a uK. I heard L4 is another good one. 22:55:29 yeah 22:55:41 Though I'm a fan of the exokernel concept myself. 22:55:48 yeah 22:55:56 i don't really like classic OSs 22:56:07 I can certainly sympathize with the uK concept; my Dolphin project originally was going to be a uK. 22:56:14 Until I finally grokked exokernels. :D 22:57:01 you have done an exokernel? 22:57:06 No, not yet. 22:57:25 But when I start working on Dolphin, it will be co-developed alongside its exokernel. 22:58:39 what is dolphin? 22:58:55 It's an operating system I want to write. 22:59:16 cool 22:59:32 what language (primarily) ? 22:59:32 The intent is to cater to the home user, the desktop user, the average business user. 22:59:55 uuter: I was originally thinking C back when I wrote the design document, but I'm going to switch to either Forth or Oberon. 22:59:57 yeah, i have the same idea, VolksOS of sorts 23:00:16 have you seen the SLIM binaries? 23:00:21 My slogan for it was going to be: "Dolphin: The Open-Source OS for the Rest of Us" :D 23:00:35 uuter: Yes. 23:01:03 I saw no technical documentation on it, but I did play with Juice a couple of times. 23:01:05 uuter: for a long time I've thought about forth source as the ultimate SLIM binary. 23:01:16 yeah 23:01:19 FCODE 23:01:41 But it is horrifically unsafe. 23:02:00 The Oberon distrobution for Mac OS detects if its running on 68k or PPC, and compiles the system from SLIM binaries 23:02:15 its pretty cool 23:02:19 uuter: Ditto for one of the x86 version. 23:02:37 All the SLIM binary representation is is the parse tree of the compiler, before being passed to the code generator. 23:02:44 The "loader" for it is just the compiler's back-end. 23:02:53 yeah 23:03:09 hmmm immagine an OS that compiles everthing at boot time - EVERY time heh 23:03:15 or on first use 23:03:27 I440r_: I have thought about it for some time now. 23:03:28 I440r_: That's Oberon. It'll compile every time you import a SLIM module. 23:03:50 Once it's in memory, it is never released until it knows no other module is depending on it. 23:04:09 amiga does that too. sorta 23:04:12 the Apple /// Forth i got compiles at boot 23:04:14 i mean not unload 23:04:20 I440r_: Yeah, but ONLY with libraries. 23:04:31 (and all library-like entities, like device drivers and such) 23:04:36 Raw applications are duplicated in memory. 23:04:51 Imagine an operating system that did NOT distinguish the difference between library and application though. 23:05:07 There really is no difference between an application, device driver, library, or whatever. 23:05:26 An application in Unix is just a library with one entry point: main(). So why not treat it as a library? Stupid. 23:06:36 heh 23:07:03 or split ever library into SINGLE entities with single entry pointes 23:07:05 points 23:07:23 That only compounds the problem a hundred fold. 23:07:30 You miss the point of the reinterpretation. 23:07:52 The idea is to NOT load 100 copies of a program into memory for 100 invokations. 23:08:20 dont need to 23:08:35 how does an exokernel deal with I/O ? 23:08:40 uuter: It doesn't. 23:08:45 if program a runs function b out of library directory c and some other program wants teh same it can use the one already resident 23:08:58 treat EVERYTHING as a library and everything as a single program 23:09:02 No current UN*X loads multiple copies of the binary for application. 23:09:12 yes it does 23:09:15 I440r_: Problem: A library is a set of functions that deal with a particular task. 23:09:28 if you run isforth multiple times you get multiple copies 23:09:29 TreyB: Sorry, but you are wholesale incorrect on that issue. 23:10:02 Run Netscape under Linux, then run another copy of it (note: Mozilla is smart enough to choke itself if it detects it's already running; use Netscape 4.7 or earlier). 23:10:07 Just watch your resources dwindle away. 23:10:36 They share code and duplicate data (CoW). 23:10:49 NO 23:10:51 they dont. 23:10:58 you cannot share writeable memory 23:10:58 TreyB: That's true only for shared object files. 23:11:08 unless its specificaly allocated as shared memory 23:11:16 programs are never allocated as shared memory 23:11:19 in that way 23:11:24 Indeed, they can't be. 23:11:39 because isforths code space is +w you get a new copy every time you run it 23:11:52 If I run an old copy of a program, recompile it with some modifications, and re-run the new version, it must reload the binary. 23:12:11 erm thats a different binary 23:12:14 We did under BeOS. In fact, you had to specifically link it to have distinct instances. 23:12:16 same name, different binary 23:12:19 I440r_: No, I'm saying the same binary. 23:12:32 its not tho. if you make a change its NOT the same binary heh 23:12:32 TreyB: BeOS != UNIX. 23:12:37 True. 23:12:46 I440r_: God damn it, read what I'm writing. 23:12:55 do I have to write it out as a damn bash script? 23:13:05 If I have a program "blort", and I do this: 23:13:08 blort & 23:13:11 change-blort.c 23:13:12 make 23:13:15 blort & 23:13:23 if you recompile with modifications you now have a DIFFERENT binary!!!!!!!!!1 23:13:35 I440r_: BUT UNIX DOESN'T KNOW THAT!!!! 23:13:36 even if it has teh same name 23:13:42 kc5tja: yes, it does. 23:13:43 oh 23:13:46 All it knows is that it is of the name /a/b/c/blort 23:13:54 TreyB: No, it doesn't. 23:14:00 hmm - maybe thats a flaw 23:14:05 No, it locks executables into RAM via inodes, not names. 23:14:12 how does it know you cant use the existing copy then ? 23:14:26 Yes, and if the executable is changed, the contents of said inode changes. 23:14:40 actually you probably get new inodes 23:14:48 not reuse old ones 23:14:53 When you re-compile, you unlink the inode for everybody but the running copy of the executable. The new binary gets a new inode. 23:15:11 thats what i would have thunked 23:15:26 Note that Win2K does not do this, and it annoys me greatly. 23:15:31 why don't you test it? 23:15:38 windows sucks 23:15:53 all microsoft products realy annoy me 23:15:59 word 23:16:03 Anyway, I note that Linux and BSD both consumes gratuitous quantities of resources when running multiple instances of programs. 23:16:08 Which is bogus. 23:16:51 Look in detail at the shared pages vs. the CoW pages for back-to-back instantiations of the same binary. 23:17:19 erm - what day is it today ? 23:17:24 I440r_: Sunday 23:17:26 Where do you live? 23:17:30 :-) 23:17:31 usa heh 23:17:36 sunday for your zone 23:17:42 What time zone? 23:17:49 I440r_: Well, where in the USA? It's Monday for EST. 23:18:04 oh heh im in indiana :P 23:18:05 I have 2319 here. 23:18:06 Guam? 23:18:09 And I'm Pacific time zone. 23:18:28 uuter: Is Guam in the Eastern time zone? :) 23:18:31 * TreyB <- CST 23:18:53 no, but im trying to figure out what US territory could be monday 23:18:55 About 30 more minutes until Radio Taipei International comes on the air. 23:19:16 uuter: Not sure, but I know that the eastern shore of the US is Monday. 23:19:25 Taiwanese radio is cool? 23:19:37 You mean its monday in New York? 23:19:51 uuter: he got it wrong :-) 23:19:54 uuter: It's similar to any other radio station on shortwave, but I enjoy the Chinese music show that comes on every Sunday. 23:20:08 Oops, today's Saturday. 23:20:15 Sorry, Eastern seashore is SUNDAY. 23:20:16 Sorry. 23:20:20 lol 23:20:21 I thought it was Sunday. 23:20:24 phew :) 23:20:30 It felt like Sunday at least. 23:20:30 the national broadcaster here has mostly european radio on over night 23:20:32 i thunked it was too -thats why i asked 23:20:34 yea 23:20:49 uuter: Shortwave radio receives broadcasts worldwide. 23:21:00 yeah, but these are nice sat feeds 23:21:03 I440r_: Damn you for poisoning my mind. 23:21:08 Satellites are for wussies. :) 23:21:21 * kc5tja has a shortwave rig and a nice 10m dipole antenna strung up in my room. :D 23:21:22 heh, i don't get good reception 23:21:28 i live in mountains 23:21:46 DUDE, that's precisely where shortwave is best. You've got altitude on your side. 23:21:59 1400 feet asl 23:22:03 * kc5tja <-- my ham radio callsign. 23:22:05 im in a valley 23:22:22 1400 feet, and you say you're in a valley. 23:22:25 * kc5tja doesn't want to hear it. :D 23:22:32 * kc5tja is currently about 30 feet asl. :D 23:22:37 heh 23:22:47 But I do live near the ocean, so that is also a good spot for shortwave propegation. 23:23:00 i live between the coast mountains and the rockies 23:23:02 But my current location is a Faraday cage, so I don't get a lot of reception either. 23:23:12 heh, really? 23:23:16 yup. 23:23:17 or figurativly? 23:23:24 Aluminum 2x4s in the walls. 23:23:31 No, I mean it quite literally. :D 23:23:40 TEMPEST fears? :) 23:23:50 No, it's just how these apartments were built. 23:23:58 Al 2x4s are, or at least were, cheaper. 23:24:09 ah, yeah im farmilliar with that method 23:24:21 The house I'll be moving into is a substantially better place for radio. I'll have room to put up a real 40m antenna. 23:24:34 nice 23:24:54 and when I say a 40m antenna, it's really 20m long (approximately); it's tuned for the 40m band. 23:24:59 which is my favorite band. 23:26:05 i would not mind getting a decent digital scanner 23:26:53 * kc5tja is not looking forward to tomorrow. 23:27:14 I have to slav...er...work. 23:27:21 you are a contractor? 23:27:36 Of sorts; I am building a rather expensive website for really cheap at the moment. 23:27:45 Only because it was a customer that was readily available. 23:27:52 ah 23:27:57 I can't afford a regular advertising program at the moment, so I take what I can get. 23:28:05 yeah 23:28:17 do you usually do more programming? 23:28:25 Yes 23:28:32 I prefer programming over website development. 23:28:34 with Forth? 23:28:39 yeah, totally 23:28:39 Definitely. :D 23:28:44 heh, thats cool 23:28:54 One of the first goals of FS/Forth is to help me build websites for customers *fast*. 23:29:07 yeah? HTML generator? 23:29:13 or like php? 23:29:14 So I don't have to constantly trudge through crap like what I'm doing now. 23:29:18 do web pages in forth! ehhe 23:29:21 HTML generator more than anything else. 23:29:28 cool 23:29:29 I440r_: Web pages don't come in Forth. 23:29:33 actually you can embed forth in web pages now with isforth - but CGI sux 23:29:42 But eventually, I'm hoping it'll grow into a dynamic page server too. 23:29:53 i want to eventually make isforth an apache module :) 23:30:01 like php but not as crappy heh 23:30:11 do you mostly do hardware interfacing with Forth? 23:30:23 I440r_: I was hoping to write something akin to Zope in FS/Forth. 23:30:42 uuter: I would like to do that yes. 23:31:02 uuter: I have full intentions of, after completing FS/Forth for Linux, writing a hardware native, self-hosted version for my desktop. 23:31:12 s/desktop/laptop/ 23:31:19 rad, thats what im working on 23:31:21 * kc5tja needs my desktop to run Linux for the time being. 23:31:35 but as its my first Forth, im just getting it working hosted 23:31:43 Good idea. 23:31:48 what threading model? 23:32:13 Subroutine threaded with inlined native code for primitives. 23:32:15 --- join: I44-r_ (~x@dialup-67.29.221.203.Dial1.Cincinnati1.Level3.net) joined #forth 23:32:32 thats cool 23:32:32 fucking lame isp disconnecting you after a certain online time 23:32:57 are there any problems/considerations with implementing DOES> with subroutine threading? 23:33:14 None that don't already exist with any other threading model. 23:33:27 --- nick: I44-r_ -> I440r 23:33:29 DOES> is a hard word to grok, and I fear I can't really explain it, even though I fully understand it. 23:33:40 yeah 23:34:04 thats what im hung up on, but trying to figure these things out on your own, is quite educational 23:34:17 reasons why things won't work as just as important 23:34:49 DOES> basically terminates the definition in which it appears. 23:34:52 So if you have: 23:34:58 : cons create , does> @ ; 23:35:08 for example, cons thinks it looks liek this: 23:35:12 : cons create , ; 23:35:27 So somewhere, does> has to compile EXIT. 23:36:02 BUT, at the same time, DOES> actually fixes the code pointer for the freshly created word to point to the code following does>. 23:36:04 actually does> is not as efficient as ;uses imho 23:36:22 : cons create , (fix-up-word) ; 23:36:37 When the word that is created is executed, this is how it looks: 23:36:41 : @ ; 23:36:44 err 23:36:45 oops 23:36:51 : @ ; 23:36:59 where "@ ;" is that which follows DOES>. 23:37:11 So DOES> has run-time, interpret-time, AND compile-time behaviors, all at the same time. 23:37:25 DOES> is usually implemented this way: 23:38:01 * rk is back (gone 13:49:50) 23:38:38 : does> postpone (does>) postpone r> ; immediate 23:39:12 where (does>) is the code that does the address fix-up for the last CREATEd word, and exits (note: it exits the constructor definition by executing R> DROP before exiting) 23:39:45 It knows that the return address for (does>) is where the word should point to (pretty slick, eh?), and changes the word's code to read "call " 23:39:47 --- join: htp123 (~htp@h24-70-61-20.ca.shawcable.net) joined #forth 23:40:03 ok, im digesting that 23:40:15 Since the word, when executed, now has its body address on the return stack, the postponed R> pops it off for the definition which follows after DOES> to use. 23:40:59 Yeah, don't feel bad if you don't grok it all at once, right away. :D 23:41:07 It took me two Forths to get it right. :D 23:41:43 heh 23:41:59 so POSTPONE will compile ALL words? 23:42:05 even immediates? 23:42:32 For immediate words, it'll compile a call to the word in the current definition. 23:42:55 For non-immediate words, it'll compile code which compiles a call to the desired word in the target definition. 23:43:09 The idea is to "postpone" the immediacy of the word one level. 23:43:21 That which runs now will run when the word is executed. 23:43:32 That which runs when the word is executed will run when the word's word is executed. 23:44:00 ok 23:44:57 Frankly, I think it's a bit heavyweight for what it does. 23:45:45 But, like DOES>, using it is considered an advanced use of the language, and so, it's not going to be the easiest thing to grok. But once grokked, it becomes second nature. 23:45:48 i live for simplicity 23:45:56 It actually is pretty simple. 23:46:06 It's just that the logic behind it isn't obvious. 23:48:44 it seems somehow un-Forth 23:48:52 patching address etc 23:49:08 Forth has always worked that way. 23:49:38 Realize that what you're attempting to understand with postpone and does> pretty much constitutes the very guts of the Forth compiler itself. 23:49:44 --- quit: I440r_ (No route to host) 23:50:33 Anyway, I think I need to get to bed. 23:50:39 ok, thanks 23:50:48 I have some work I need to do tomorrow, including paying for first/last months rent for a new house I'm moving into. 23:51:03 have fun 23:51:09 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:54:27 maybe i will grep the channel logs for "how does DOES> work?" 23:57:05 :) 23:59:59 --- log: ended forth/03.08.23