00:00:00 --- log: started forth/04.07.01 00:29:18 --- join: lalalim_ (~lalalim@p508ABA41.dip.t-dialin.net) joined #forth 00:47:14 --- quit: lalalim (Read error: 110 (Connection timed out)) 01:11:10 --- nick: lalalim_ -> lalalim 01:26:02 --- quit: Herkamire ("night") 01:36:56 --- join: SolarFire (SolarFire@pD9545912.dip.t-dialin.net) joined #forth 01:37:35 * SolarFire greets 01:47:42 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 01:50:53 --- quit: proteusguy ("Leaving") 01:54:32 --- quit: aum () 03:08:11 --- quit: SDO (Read error: 110 (Connection timed out)) 04:07:24 * Tomasu is back (gone 05:43:52) 04:07:33 Hi Tomasu 04:07:41 yo 04:53:37 --- quit: I440r ("Leaving") 04:56:14 --- join: I440r (~mark4@216-110-82-1.gen.twtelecom.net) joined #forth 05:26:11 --- join: jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 07:15:13 ok, is it possible to have a direct threaded forth CPU ? 07:15:44 direct? 07:15:48 yes 07:15:52 not subroutine threaded 07:16:11 can you give a small description that I might understand 07:16:34 erm its a little difficult to explain on short notice hehe 07:17:04 its to do with compiler design - the threading mechanisms are direct, indirect, subroutine and token 07:17:19 there may be more threading models but those are the most common 07:17:38 in direct threaded each token is a pointer to an address to be executed 07:17:52 in indirect each token is a pointer to a pointer to an address to be executed 07:18:15 in token threading each token is an index into an array of addresses. 07:18:23 i am only familiar with how one does it in a higher level language, example for cocoa where you tell NSThread to send a message to an object in another thread 07:18:25 in subroutine threading you dont have tokens. you have calls 07:18:28 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 07:18:43 this has nothign to do with threads of that sort 07:19:03 forth threads are not the same as say "linux threads" 07:19:42 in fact i would say that threads as described by multi tasking operating systems are NOT threads 07:19:48 they are merely execution streams 07:19:53 assembler is NOT threaded 07:20:54 hmm, i am probably not the best person to know then :-) I am not familiar at all with what you describe 07:21:49 :) 07:22:05 threading in forth is not a complex subject 07:22:27 i am using ficl and am new to forth in general 07:22:32 but its not easy to describe in detail until you know more about forth :) 07:27:42 i got it :) 07:32:45 ei I4_wrk 07:32:47 Hey* 07:32:50 And jdrake 07:33:00 hey rob 07:33:27 sorry, that is bad form: "ROB HEY" 07:33:34 Indirect threaded Forth CPU... I don't see how it would be different from a subroutine threaded. 07:33:37 jdrake: ;) 07:34:21 table of calls, vs a table of pointers to code executed by an inner interpeter (?) 07:34:32 s/table/series/ 07:35:29 Aren't there IDT forths running on MachineForth CPUs? 07:36:21 I don't know. I don't know as much as I would like about the various MF CPUs 08:44:45 --- join: SDO (~SDO@68.170.20.201) joined #forth 08:47:17 the pain, the agony. 08:47:25 started to paint our new house 08:47:32 its been a while since i've been this broken 08:48:21 haha 08:48:34 physical exertion is good for you 08:49:56 ugh tell that to my legs 08:50:04 and arms 08:56:13 --- join: crc (crc@0-1pool176-42.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 09:02:42 --- part: crc left #forth 09:21:21 --- join: Serg (~z@193.201.231.126) joined #forth 09:21:28 hi ! 09:24:42 --- quit: jdrake (orwell.freenode.net irc.freenode.net) 09:24:42 --- quit: jc (orwell.freenode.net irc.freenode.net) 09:24:42 --- quit: cmeme (orwell.freenode.net irc.freenode.net) 09:28:09 --- join: jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 09:28:09 --- join: jc (~jcw@65.3.39.49) joined #forth 09:28:09 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 09:50:19 do any forth chips do instruction pipelining ? 09:53:46 Not sure. And I don't see kc5tja/solar_angel around 09:53:53 right 09:53:56 dammit! 09:53:57 :P 09:54:13 i miss solar_angel too ;) 09:54:30 i rally like this kind of girls ;)) 09:54:33 you guys do of corse realise she has a girlfriend right ??? :) 09:54:38 *snicker* 09:54:55 who is also linux savy 09:55:13 yeas 10:10:22 --- join: wossname (wossname@HSE-MTL-ppp61432.qc.sympatico.ca) joined #forth 10:13:07 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 10:24:43 --- join: randolm (wossname@HSE-MTL-ppp66739.qc.sympatico.ca) joined #forth 10:29:51 * Tomasu is away: bbl 10:31:05 hi hi hi 10:31:15 --- quit: wossname (Read error: 110 (Connection timed out)) 10:31:30 solar_angel has a g/f? :) 10:32:39 I4_wrk: hmmm........ 10:32:42 Yes 10:32:52 Robert: :) 10:32:56 Robert: anything new? 10:33:01 I always feel so sucessful when I meet girls who've had more girlfriends than I have 10:33:06 Not really. 10:33:47 hey arke, i figured out the problem I had with understanding ficl 10:33:58 ficlWord *ficlDictionarySetPrimitive(ficlDictionary *dictionary, char *name, ficlCode code, ficlUnsigned8 flags) 10:34:05 ficlCode should be ficlPrimitive 10:34:35 :) 10:35:07 brb 10:42:03 back 10:42:10 * arke is in Linux now, yay 11:00:22 --- quit: Serg () 11:03:42 arke, you know what would be cool to see? Objective C wrapper for gtk :-) 11:23:33 jdrake: they have that :) 11:24:18 one that isn't gtk1 old? 11:24:55 think so 11:25:41 --- join: SolarFire-| (SolarFire@pD9EE19F3.dip.t-dialin.net) joined #forth 11:29:21 hi So 11:29:33 oops 11:29:36 hi SolarFire-| 11:31:11 --- quit: SDO (orwell.freenode.net irc.freenode.net) 11:31:11 --- quit: lalalim (orwell.freenode.net irc.freenode.net) 11:31:15 http://www.informatik.uni-osnabrueck.de/elmar/projects/gtoolkit/ 11:31:25 jdrake: thats one 11:32:07 although its GTK 1.2 11:33:44 --- join: SDO (~SDO@68.170.20.201) joined #forth 11:33:44 --- join: lalalim (~lalalim@p508ABA41.dip.t-dialin.net) joined #forth 11:33:48 exactly 11:33:48 gtk 1.2 sucks compared to 2.x 11:33:51 one that uses glib and gtk for base support would be nice 11:33:59 then I might actually bother to learn gtk 11:33:59 ::) 11:34:02 make your own 11:34:04 its OSS 11:34:05 ;) 11:34:10 too busy with this other project 11:34:15 ok 11:34:31 and I will have an api for you to check out in a moment 11:34:53 c00l 11:38:00 http://paste.lisp.org/display/1557 11:38:41 the basic thing to note about this api is that it should be taken as something to implement, those typedefs up top are meant specifically to be implemented by another datatype, but where a void pointer will work effectively 11:41:37 any comments? 11:42:35 --- quit: SolarFire (Read error: 110 (Connection timed out)) 11:47:21 lisp? 11:47:33 lisp what 11:47:43 very long evil names! 11:47:53 oh no 11:47:56 with intercaps 11:47:59 >:( 11:48:14 this thing is a C api that is supposed to go language independant 11:48:24 it is where forth comes in at a layer below this one 11:48:26 i'm gonna start me an anti-intercaps-campain some day 11:48:38 it just looks better this way 11:48:56 (yeah dont let me put you off :) 11:49:16 me go have shower now :-) 11:49:16 hot 11:56:58 underscores mixed with camelCase... yum 11:57:16 that should be a PITA to remember how to type in properly 12:03:25 _ 12:03:25 STACKEFFECT: --- x 12:03:25 DESCRIPTION: 12:03:25 Leave an undefined value x. Presumably it is to be dropped at some time, or it is a place holder. 12:03:27 lol 12:04:00 not random though 12:11:35 --- quit: randolm (Read error: 104 (Connection reset by peer)) 12:12:23 Herkamire, there is a reason to the naming 12:12:37 as an example: void Display_SetCaption(DisplayRef d, const char *string); 12:13:45 in the second implementation that I designed this was a Display:SetCaption(string) in lua, now that I am doing an independant api that is sort of object oriented (in C) it makes sense to know what primary set these functions belong to 12:15:19 i wish C were more typesafe though 12:18:07 sorry, make that 'i wish C was typesafe' as it is by no means typesafe :-) 12:21:52 Define 'typesafe'. No, it's not, not like Ada or other languages. But if you use typedefs and prototypes and compile with -W -Wall, it becomes much more so. At least, at compile time. Run time, you're on your own. 12:24:24 In Ada, Ocaml, et al. you can have distinct types that are unique. In Ada specifically you can create a type that is an Integer, but won't work where an Integer will. 12:24:38 In C, a typedef merely aliases types 12:24:54 which causes some nice confusion when you need to know what type something really is 12:25:26 --- join: warpzero (~warpzero@mi016.dn178.umontana.edu) joined #forth 12:29:32 typesafety = bad 12:29:34 :) 12:29:52 arke, do you believe that or just being anti-smerdy 12:30:03 both 12:30:19 i think in most cases typesafety is preferably 12:30:35 but if you notice I do have an interest in forth and lua, so not draconian like smerdy 12:30:43 :) 12:31:01 forth has one way of being type safe though 12:31:09 you can distinguish between integers and floats 12:31:38 one shouldn't use floats in most cases 12:31:49 they're quite easy to circumvent most of the time 12:32:04 well, when I do my opengl binding, i am using floats 12:32:25 but being opengl has integer functions I will bind those too 12:48:10 I don't like typesafety either 13:04:57 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 13:08:13 --- quit: Herkamire ("out") 13:18:05 * Tomasu is back (gone 02:48:13) 13:29:26 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:49:38 --- join: trap1010 (~trapxvi@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 13:51:51 --- quit: tathi ("leaving") 13:55:55 --- join: MorgothDc (~morgoth@gw-bdi-3.ticom.pl) joined #forth 13:56:23 Hell[o] 13:56:33 trap1010: I see you are here too, great 13:56:39 trap1010: Have you take a look ? 13:57:56 I can but my NAT is apparently buggering the DCC 13:58:31 trap1010: You didn't noticed the link -> http://www.tbs-software.com/morgoth/files/menu 13:59:05 trap1010: I upload it to my home page. it's only a little modified version of script that I found on the net 13:59:53 trap1010: Anyway take a look. Generaly it works fine, I need only a way to abort it (For example when user press diffrent key) and back to OF prompt 14:00:04 trap1010: Forth is a bit exotic language for me 14:00:38 Just get used to the concept of tracing it on a VM in your head and its eerily elegant 14:01:27 trap1010: Yeah, but for that I need to read a tutorial or manual first ;) I do not plann to do anything in forth in the future 14:01:48 trap1010: Only finish my bootmenu generator, this is a reason of my question 14:02:10 trap1010: BTW Maybe you see something to improve ? 14:03:18 what is wrong with apple's boot menu 14:03:56 jdrake: I can't use it 14:03:58 Judging by the fact that this has MorphOS in the header 14:04:01 he's not on an apple 14:04:22 trap1010: you have right 14:04:33 can I have right too? 14:04:43 are you on a pegasus? 14:04:52 jdrake: Pegasos. Yes 14:05:12 how much did that cost you all told? 14:05:26 Are you using an uncounted loop? 14:05:33 it always looked bit expensive to me 14:05:37 Because I would use begin again for that 14:06:33 jdrake: In compare to Apple it's not so expensive 14:06:46 jdrake: it cost ~450 euros now 14:06:54 That's not bad 14:07:04 is that complete or just the board/chip 14:07:31 trap1010: begin ? Hmmm, can you paste a example ? Or better modify this script for me (I know, I know, I am lazy bastad) 14:07:38 jdrake: Only board + G4 14:07:51 quite a bit much then 14:08:03 maybe those will get lower price after time 14:09:03 jdrake: Who knows. Generaly it's realy nice piece of hardware 14:09:21 I'm not sure exactly how OF works, but I woudl think that if you simply end your program without issuing a boot command 14:09:27 it would fall back to the OF prompts 14:09:45 i have been kind of stuck in sub-ghz computers for quite a few years here, I am waiting to upgrade to something fast in a year or two 14:10:41 this one is good: http://www.reallifecomics.com/ 14:12:50 jdrake: the 1Ghz Pegasos II G4 is 1015 canadian from ultraspec-canada.com 14:13:02 jdrake: Have you seen new Peggy HP ? (www.pegasosppc.com) 14:13:06 It runs linux + MOL but not Mac OS X 14:13:43 trap1010: Yes, MacOSX won't work. 14:13:58 trap1010: And you forgot about MorphOS :) (www.morphos.net) 14:14:17 Well, I suppose if you did enough work in Darwin, you could run OS X on top of that 14:14:29 What software is availible for MorphOS? 14:14:48 It just seems like it a niche OS 14:15:10 I mean, if there's a tool for everything, good, that's like Mac OS X 14:15:27 trap1010: No, this is "work in progress" stuff 14:15:41 trap1010: But quite impresing now (It boots in ~4s) 14:15:46 trap1010: For example 14:15:51 Not bad 14:17:21 trap1010: Hmmm, propably yes. But you need someone to do it first 14:18:14 I'm just wondering why I'd spend 1015 on a 1Ghz G4 + Mobo when I can Athlon 64 2800 and a mobo for $500 14:18:43 For the same price I could probably get at least an Athlon 64 3400 14:18:49 because its a ppc 14:18:55 and it can run mac os 14:19:03 But it can't run Mac OS 14:19:07 oh 14:19:16 screw it then 14:19:20 :P 14:19:22 It can run Mac OS inside a virtualized environment inside Linux 14:19:33 er what G4 system can't run mac os? 14:19:34 trap1010: Because the CPU eats only 7.5-9W of power 14:19:39 that seems oxymoronic 14:19:49 trap1010: because it's extremaly silent (Passve cooler) 14:20:11 MorgothDc the x86 chips take a lot more energy to run, right? 14:20:22 Oh hell yess 14:20:45 x86 is a scorcher, the Prescotts have a higher thermal flux per unit area than an electric iron 14:20:53 PPCs are cold 14:21:14 mine comes up from sleep within about 5 to 6 seconds :-) 14:21:26 what does coming up from sleep have to do with anything? your x86? 14:21:28 jdrake: :) 14:21:31 It would make a great mobo for a car PC 14:21:43 my powerbook wakes up in like <=1second 14:21:48 it's fucking nice 14:21:59 Yeah 14:22:03 ianp: I realy like so silent computer (I have zero collers in my tower case now) 14:22:06 ive never really owned another laptop 14:22:08 mine boot 10.3.4 in < 20 seconds 14:22:16 ianp: Apple laptops ROX !!! 14:22:20 yeah 14:22:22 I love my powerbook 14:22:25 1.5ghz! 14:22:30 Same 14:22:34 ianp: IMHO state of the art 14:22:35 makes OSX run sorta fast 14:22:35 1.5 Ghz 15" Latest Rev 14:22:40 yeah same trap 14:22:45 shes a beaut 14:22:45 ianp: But you can't run MorphOS :) 14:22:56 MorgothDc, not yet anyways... 14:22:57 not even in virtualpc? 14:23:10 ianp: As far I know no :( 14:23:15 oh its a ppc os 14:23:18 * ianp knows noting about it 14:23:21 whyt can't they run oit 14:23:22 ? 14:23:32 it hasn't been ported yet 14:23:35 it probably will though 14:23:37 ianp: Yes, it's PPC OS 14:23:39 to what 14:23:47 mac whatelse 14:23:53 mac is a ppc 14:23:58 you mean to run under mac os? 14:23:58 I would diffenitiely consider using this board for the car PC I've been planning 14:23:58 jdrake: I think no. MorphOS cordinator do not like Apple :( 14:24:08 I was going to use mini-ITX thing 14:24:09 it isn't the same ian 14:24:14 but this would be a lot better 14:24:27 MorgothDc, I think yes - because wider audience = more profits 14:24:35 jdrake: For now it works on Pegasos (1&&2) and on Amiga with powerup cards 14:24:45 jdrake: propably you have right 14:24:55 trap1010: Board is realy tiny 14:25:09 MorgothDc, 'are' not 'have' 14:25:15 Yeah, 23.6 x 17.2 cm 14:25:21 different verbs 14:25:49 jdrake: Yes, yes, I know I suck 14:25:59 jdrake: let it alone, we're not on #english-grammar 14:26:01 i think kc5's project will be sweet 14:27:45 The project I have in mind is to build a PC for my car, audio, GPS, media, and Internet 14:28:10 I didn't realize how small this pegasos board was 14:28:34 trap1010: :) 14:36:32 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 14:36:49 OK, ThX for help for all 14:36:53 Time to test it 14:36:58 --- quit: MorgothDc ("the dance is held to the end ... when the shades of darkness transcend ...") 14:40:13 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 14:40:21 OH FUCK THIS 14:40:28 $#@%#@((#&@%()&*@($*# 14:40:31 thank you. 14:40:56 Who here has implemented FORTH on a PowerPC? 14:41:11 The organization of the stack is giving me trouble 14:41:19 oooh me! I am 14:41:44 its a load/store orientated machine, its not meant to have a lot of data on a stack 14:41:47 the bootable version of ciforth is a much older version then the ciforth running under an os (dos) i was working with. the older version doesnt even have goddamn definitions for the basic words to work with its multiple vocabulary support 14:42:24 if you look closely, you can just see the anger flowing of me 14:42:45 If this was x86 it would be straigh forward how to organize this: just use the stack normally, but if you it on PowerPC you're going to cripple yourself 14:42:56 Herkamire: how did you get around it? 14:43:02 trap1010: get around what? 14:43:09 I don't know x86 14:43:15 The load/store orientated nature of PPC 14:43:18 I don't have any problem on ppc 14:43:27 what are you trying to do? 14:43:44 --- join: MorgothDc (~morgoth@gw-bdi-3.ticom.pl) joined #forth 14:43:54 you keep TOS in a register, and the rest in memory 14:44:03 TOS? 14:44:07 You mean the stack pointer? 14:44:09 Top Of Stack 14:44:15 Yeah 14:44:19 That seems like a terrible idea 14:44:25 it's not 14:44:30 because you're memory-bottleknecked 14:44:38 what? 14:44:48 the inferiority of that approach is the reason RISC exists :P 14:45:00 how else colud you do it? 14:45:07 Herk: the x86 has 8 GPRs, the PowerPC has 32 14:45:29 you can keep the top two stack items in registers if you like. but that's a bit more complex 14:45:42 I would try to keep the top of the stack in the GPRs, but that's what's driving me nuts trying to schedule 14:46:00 More like the top 20 words 14:46:01 there are a couple nifty aproaches to trying to optomize out stack use 14:46:27 I don't see why you're getting mad at PPC because you're having a hard time doing something you can't do at all on x86 14:46:50 I mean, realistically, your stack is in L1 all the time 14:47:07 the trouble is when you compile a word, it has to know where it's operands are 14:47:08 herk: I can do it the x86 way, but that's not exploiting the PPC arch 14:47:13 yeah 14:47:24 That's the other half that's driving me nuts 14:47:40 it is tough to exploit PPC in forth 14:47:51 Its not meant for stack-orientated programmign 14:48:00 x86 and PPC are designed to run optomized C code 14:48:29 Well, x86 can use a stack without much penalty because it has so few registers that most C code ends up doing a lot of memory access 14:48:47 Most of those GPR's are taken up with pointers anyways 14:48:59 the way I intend to exploit PPC is to have 5 or 6 processes sharing the 32 registers (each process only neads 5 or 6 registers) so task switching can be lightning fast 14:49:05 --- quit: MorgothDc ("the dance is held to the end ... when the shades of darkness transcend ...") 14:49:13 so realistically you have 4 GPR 14:49:43 Herk: yeah, but then you limit a compiled word to only running on one thread 14:50:02 yeah 14:50:12 I figured it'd be that way anyway 14:50:25 I've never done multi-threaded apps 14:51:26 Much as I'd like to use Forth for serious programming, its not going to work out on PPC for me 14:52:27 In fact, I'd go so far as to say that RISC and Stack-orientated paradigms at fundamentally at odds with eachother 14:52:32 I to have been frustrated that it is hard to get forth to use all the strength of PPC. but I've mostly gotten myself to stop worrying about that and pay attention to making a simple system that's easy to program. 14:53:04 they certainly aren't all that well suited. 14:53:11 You haven't exploited PPC until you've written a routine to calculate the exp of a vector of floats without any function call overhead 14:53:15 but I think PPC does forth about as well as x86 14:53:23 except for the branch to and branch from 14:53:36 Well, on x86, you have to do a lot of interacting with the top of the stack 14:53:43 so really you're not losing anything 14:54:03 forth is suited to MISC processors 14:54:04 time to write the author me thinks 14:54:30 When you carry that over to PowerPC, its a major bottleneck 14:54:47 I don't see the bottleneck you're talking about 14:55:02 on PPC you keep the top of stack in a register 14:55:02 it binds you to memory 14:55:14 example, in x86, you call a function with parameters in a stack 14:55:19 on x86 you have he stacks in memory too 14:55:27 in PPC, most function calls, the parameters are in registers r3-r10 14:55:45 right. but not in forth 14:55:48 Unless you have a huge argument list 14:55:48 yep. x86 only has one hardware stack, the other stack is in mem 14:55:49 right 14:55:58 (at least i believe one is hardware 14:56:25 So with Forth, you're tying yourself to a bottleneck (slow memory) that the load/store arch is meant to address 14:56:40 Of course, as I said before, in practice the stack is in L1 cache, so its not too terrible 14:56:48 but its not as good as having it all in registers 14:57:12 yeah. 14:57:24 I have all kinds of ideas about fancy optomizers 14:57:48 but optomization is not a current concern 14:58:13 optomization is a complex issue 14:58:23 sometimes it's bettor to have small code than fast code. 14:58:37 Well, when you write functions in PPC assembler, if you don't make any function calls, and you only use the parameter registers for calculation, you can really scream 14:58:42 eg if you can make your entire program fit in the cache :) 14:58:57 yep :) 14:59:15 No, not quite 14:59:36 I mean, I never make an actual function call perse, just a branch-to and a branch-back op 14:59:58 bl 14:59:59 blr 15:00:02 When you make this a function like say exp that's heavily used in the kind of programming I tend to do 15:00:17 --- quit: lalalim (Connection timed out) 15:00:29 Its practically free inlining wihtout any of the disadvantages 15:02:07 it's not _that_ hard to write an optomizer in forth that gets rid of stack use within one function. 15:02:24 but things get harry (or just not very optomized) when you have to call functions 15:02:35 exactly 15:03:13 hi arke 15:03:26 hello everyone 15:03:35 what would you name a word that in lisp you might call it close-display or c++ Display::Close 15:03:57 Display Close 15:03:58 two words 15:04:06 two words? 15:04:08 --- nick: SolarFire-| -> SolarFire 15:04:09 first, put display on the stack, and then call close :P 15:04:13 (jk) 15:04:25 well it makes sense actually, because Display is a separate object 15:04:37 i plan on supporting multiple displays eventually 15:04:41 but only one for now 15:04:41 s" Display " close might be more correct 15:04:51 heh 15:04:53 that is just nasty 15:04:59 Well, if display is your object, my idea was a type of polymorphism 15:05:05 display-close works 15:05:26 i wasn't planning on doing any specific forth oop 15:06:52 : exp over swap for over * next nip ; 15:07:35 ~~ afk 15:07:48 ok, i don't know those stack operations et 15:08:06 : over ( a b -- a b a ) 15:08:12 : swap ( a b -- b a ) 15:08:21 : nip ( a b -- b ) 15:08:31 Herk: by exp its usually meant: e^x 15:09:03 oh 15:09:09 I did a^b 15:09:27 except I messed up, and that code there is a^(b+1) 15:09:29 wouldn't fexp be better e^x? 15:09:44 well, yeah 15:09:59 but exp() is the standard math shorthand for ASCII 15:10:14 right. I did pow() 15:10:29 Plus that's an inefficient way of doing it 15:10:33 are there ppc instructions for either of those? 15:10:36 no 15:10:37 surely 15:10:43 i would hope anyways 15:10:50 Not that I know of 15:10:52 there is some exp / ln combination that can do it 15:11:01 : exp ( x e -- x^e ) over swap 0 do over * loop nip ; i think, quite the same as herk looking back 15:11:11 that can do pow yeah 15:11:29 not entirely proper, but it'll do 15:11:45 qFox: we should call that "pow" as exp means power of e 15:11:57 : exp e swap pow ; 15:11:57 --- quit: SolarFire ("bye") 15:12:02 hey he said exp means e^x 15:12:16 i dont care what ya call it :p 15:12:19 qFox: yes. e=2.71828 15:12:28 oh really e 15:12:31 heh sorry 15:12:49 and it's e^x not x^e 15:12:49 ehr, guess i'm not familiar with exp then 15:13:00 yeah yeah 15:13:02 it's trig 15:13:06 i r know 15:13:21 f(x)=e^x => f'(x)=e^x 15:13:39 i have to do an exam about (partially) this shit in a month, i'd better know it :p 15:13:52 --- join: jamc (dne@as3-6-8.asp.s.bonet.se) joined #forth 15:14:00 Ah, introductory calc 15:14:05 Enjoy it well it lasts 15:14:30 hm i wouldnt call it ontroductory calc, but w/e 15:14:35 o=i 15:15:02 that example was easy, heck its a basic. 15:15:19 Well, usually its tauht in conjuntion with the classes taht teach single variable calculus 15:15:25 i'm tired. have more paining to do tomorrow, early, so i'm going to bed. 15:15:32 later 15:16:02 trap1010> double and triple variables. but i dont know english terms to them 15:16:18 --- quit: qFox ("this.is.not a.real.netsplit") 15:17:29 : pow ( a x -- b ) swap fln f* fexp ; 15:17:35 oops 15:17:45 : fpow ( a x -- b ) fswap fln f* fexp ; 15:17:51 maybe that is nearly right 15:18:49 don't get it. what's fexp? 15:19:10 i am just doing 'f' saying floating point stack 15:19:14 : fln 2.718281828e ; 15:19:25 I'm not sure what the point of an integer exp would be 15:19:48 ficl doesn't even have exp 15:19:54 is it named something else? 15:20:01 : fexp ( x -- e^x ) 15:20:06 right? 15:20:14 should be that yes 15:20:24 jdrake: then your fpow is wrong 15:20:34 jdrake: it's passing two parameters to fexp 15:20:57 i don't think so 15:21:13 swap ( a x -- x a ) 15:21:18 it's passing ( x a*fln ) 15:21:55 fln ( x a -- x lna ) 15:21:58 unless fln does something else 15:22:04 oh 15:22:05 f* ( x lna -- y ) 15:22:23 oh it takes the log 15:22:39 http://216.239.39.104/search?q=cache:ej6vGAZ_u2AJ:whyslopes.com/freeAccess/natural_logarithms_and_exponenti.html+exp+ln&hl=en 15:22:47 look for Calculators often have a button marked 15:25:54 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 15:27:25 --- join: doublec (~doublec@coretech.co.nz) joined #forth 15:36:40 --- join: jdrake_ (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined #forth 15:38:34 --- join: Topaz (~top@host81-153-170-178.range81-153.btcentralplus.com) joined #forth 15:40:05 trap1010: you know, due to the need to synchronize register usage at basic block boundaries, it rarely makes sense to keep more than a few things in registers... 15:40:20 I'd have to say 20 is definitely overkill 15:44:57 (that's my two cents) :) 15:46:46 --- quit: jdrake (Read error: 110 (Connection timed out)) 15:51:43 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 16:04:49 --- quit: Tomasu (Read error: 104 (Connection reset by peer)) 16:05:29 --- join: Tomasu (~moose@d198-53-171-40.abhsia.telus.net) joined #forth 16:06:05 tathi: yeah, I think that was the problem we were having 16:06:26 --- quit: trap1010 ("time for eats") 16:25:10 --- quit: Topaz ("Leaving") 16:31:36 --- quit: Herkamire ("shutting down here, until coffie ;)") 16:32:40 "The hot girls that were into programming also seemed to have some unhealthy pre-occupation with God and Jesus." :p 16:33:27 --- quit: jamc ("Why don't you ever enter any CONTESTS, Marvin?? Don't you know your own ZIPCODE?") 17:03:38 --- join: lalalim (~lalalim@p508ABD8C.dip.t-dialin.net) joined #forth 17:29:18 --- join: TheBlueWizard (TheBlueWiz@207.111.96.120) joined #forth 17:29:18 --- mode: ChanServ set +o TheBlueWizard 17:30:02 Hi Wizard :) 17:30:12 hiya Robert 17:30:44 --- nick: Tomasu -> Typosu 17:32:49 --- quit: doublec ("Leaving") 17:34:09 --- join: blockhead (default@dialin-707-tnt.nyc.bestweb.net) joined #forth 17:34:51 --- nick: Typosu -> Tomasu 17:35:18 hiya blockhead 17:35:40 hey TheBlueWizard :D 17:38:50 --- quit: I440r ("Leaving") 17:40:27 * blockhead started on ":" and ";" today. yikes! 17:40:40 why the yikes? 17:40:53 :D 17:41:29 * blockhead might be overwelmed by this task 17:43:09 Hehe :) 17:43:47 * TheBlueWizard shakes his head in amazement..."Overwhelmed? What have I gotten into here?" 17:44:09 exactly 17:46:01 * TheBlueWizard wonders whether he need to find a greener pasture.... ;) 17:47:57 ? 17:50:17 --- quit: Frek ("Client exiting") 17:50:30 I said "What have I gotten into here?" ... as I landed right into a channel full of nuts :) Hence my remark about perhaps looking for a greener pasture 17:51:57 * blockhead stares blankly 17:52:55 * TheBlueWizard thinks blockhead has blown several neuron cells in his head by now :) 17:53:04 "a channel full of nuts" ... all two of them that aren't idling, that is :) 17:53:06 * blockhead cries 17:53:12 those were my last nuerons 17:53:36 :D 17:55:12 * TheBlueWizard reread...and realizes he should type "....as *if* I landed right into ..." 17:55:36 * TheBlueWizard shrugs re: the total loss of neurons 17:55:55 but...tears...ah, so priceless! :) 17:56:31 well, gotta go...bye all 17:56:33 * tathi thinks TheBlueWizard is the biggest nut here :) 17:56:49 woohoo! ;) 17:57:02 --- part: TheBlueWizard left #forth 17:58:21 --- quit: tathi ("and now, back to our regularly scheduled idl...err, programming. :)") 18:03:58 'nn all 18:04:07 --- quit: blockhead ("laugha while you can, monkey boy") 18:20:21 --- nick: Tomasu -> Mortsllejfsamoht 18:21:09 --- nick: Mortsllejfsamoht -> Tomasu 18:30:17 * Tomasu is away: dlrrp 18:59:22 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 19:05:00 --- quit: proteusguy ("Leaving") 19:36:59 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 19:37:05 --- mode: ChanServ set +o kc5tja 19:59:04 --- join: Murrlin (murr@dialup-207-218-205-184.ev1.net) joined #forth 20:18:39 --- quit: Murrlin ("Mischief managed! ....Nox.") 20:39:16 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 20:39:21 hi 20:39:45 re LOOP-HOG 20:40:48 i changed my hURL one last time 20:41:06 http://members.dsl-only.net/~loophog/ 20:41:19 this has got to be it for awhile, I thought that i just looked better 20:41:27 also, I took my name out of the site 20:41:33 to avoid spam 20:42:38 * kc5tja nods 20:42:44 the server is not letting me get in to delete the files for the other site 20:43:18 Yet, you have exposed mailto: links on all your pages. 20:43:49 i changed those too 20:44:00 my name IS in the site, but its hidden 20:45:01 I need to clean up my site a bit some time in the future; the Kestrel pages are starting to get a bit disorganized, I think. 20:45:09 But I'll wait until I have actual content first. :) 20:45:50 k 20:50:40 Hmmm...just running some calculations for the audio hardware. 20:50:56 I could use an external DAC chip and go with 8-bit audio at lower clocking rates. 20:51:06 Or I can pull off pulse width modulation at 25.175MHz. 20:51:32 The advantages of PWM is that a single pin (per channel) is all that's needed for outputting audio from the FPGA. 20:51:46 8-bit is barely telephony quality. 20:51:49 The disadvantage is that I'd be able to only get 11 bits of audio resolution per sample. 20:51:53 And that's at 8000Hz sample rate. 20:52:07 8-bit is telephone rate. 20:52:32 8-bit at 8kHz sample rate is the standard T-1 voice channel rate, which the telco uses everywhere. 20:52:38 it would b fun 2 make old style game music 20:53:25 Yea, and that's 300 to 3Khz. 20:53:39 Or 3.3Khz. Depends on the codec. 20:54:15 I'll probably just go with the external DAC solution 20:54:36 Although each channel would be only 8-bits wide, I can oversample it. 20:55:50 So, for example, if you wanted 12-bit audio, you can drive each audio channel at 705.6kHz (which the DMA engine would happily let you do), feeding in 8-bit data. 20:56:15 Do you not have a 16 bit data path? 20:56:27 jc: Can you find me a cheap, low-cost 16-bit DAC? 20:56:57 Did I say 16 bit DAC? I asked if you had a 16 bit data path. 20:57:07 I have a 32-bit data path. 20:57:47 12 bit DACs are a dime a dozen. I was going to suggest that 12 would adequate. 14 is preferrably, because at least you can do full CD quality audio. 21:00:15 Foo. No budgetary pricing on the MAX5264 21:00:28 12-bit would work. 21:00:35 Didn't check any of the other manufacturers. 21:00:38 I just need to make sure I have enough pins on the FPGA when I'm done though. 21:01:59 And we can oversample that too. 21:03:38 * Tomasu is back (gone 02:33:21) 21:04:03 wb Tomasu 21:04:13 ahh, thanks :) 21:04:21 lovely nap I tell ya. 21:04:25 :D 21:05:02 --- quit: LOOP-HOG () 21:05:35 --- join: wmg (~weldon@bgp02689673bgs.flrdav01.dc.comcast.net) joined #forth 21:24:19 Hmmm...due to the latency issue on SDRAM, it looks like I may have to sacrifice some FPGA space for some data caches. :/ 21:25:09 Maybe 1K or 2K or so. 21:25:13 Similarly for code too. 21:25:17 nah. The data's probably not that important anyways 21:25:37 wmg: For a CPU that runs one clock per cycle, it's dreadfully important. 21:25:40 errrr 21:25:43 one instruction per cycle 21:26:27 But, we'll see. 21:28:07 I'm also thinking of storing the processor's boot-up ROM in serial EEPROM instead of a parallel variant. 21:28:40 Whenever the CPU accesses a ROM-mapped memory location, the CPU will halt until the word has been read into the CPU's internal ROM serial-to-parallel converter. 21:29:15 --- part: wmg left #forth 21:29:57 hmm...maybe wmg just doesn't like me. 21:47:28 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 21:48:03 oh yes, please remember to change my URL... yes again 21:48:15 ? 21:48:24 I thought you already did. 21:48:35 in the #forth banner 21:48:42 I never set it. I thought you did? 21:48:51 Oh, looks like qFox set it. 21:49:15 actually, i didn't think that i had permissions to set it 21:49:21 And it looks like it's already set? http://members.dsl-only.net/~damisch/forth.html 21:49:33 http://members.dsl-only.net/~loophog 21:49:37 a wee bit better 21:49:42 Ahh 21:50:21 I saw an add for $4/month web hosting and first 3 months free, i was thinking about it, but now I want the url to settle down and start adding goodies, like a google button 21:50:41 --- topic: set to 'FORTH programming language. Info: http://forth.bespin.org/resources/introduction ANSI: http://www.taygeta.com/forth/dpans.htm FIG83: http://forth.sourceforge.net/standard/fst83/ Links: http://members.dsl-only.net/~loophog || Kestrel project weblog: http://www.falvotech.com/weblog || Note: this chan is publicly logged.' by kc5tja 21:50:46 Changed. 21:50:50 thanks 21:51:06 * kc5tja nods 21:51:16 a like it a little better now 21:54:22 Alliant Energy has called an early end to its broadband over power line 21:54:22 (BPL) pilot project in Cedar Rapids, Iowa. The "evaluation system" went 21:54:22 live March 30, and plans called for keeping it active until August or 21:54:22 September. Alliant shut it down June 25. Ongoing, unresolved HF 21:54:22 interference from the system to retired engineer Jim Spencer, W0SR, and 21:54:24 other amateurs prompted the ARRL to file a complaint to the FCC on 21:54:27 Spencer's behalf demanding it be shut down and the utility fined. 21:54:39 * kc5tja does the happy dance!!! A very significant moment in the amateur radio community's history! 21:55:02 This is the second time in a row that a power company has pulled the plug (sic) on BPL testing. 21:55:30 hmmm 21:56:44 LOOP-HOG: To give you an idea of what we amateurs would have to put up with if BPL were to follow through, take an AM radio receiver, and set it right up against, say about 2" away, from an unshielded PC motherboard. 21:56:50 Turn on the radio, then turn on the computer. 21:57:10 Now proceed to tune in to a distant (local stations are still strong enough to pick up) station. 21:57:15 It won't happen. 21:57:37 But should BPL be let loose, that's exactly what every amateur and shortwave listener (and to some extent, broadcaster too) would have to deal with. 21:57:42 To say nothing of the radio astronomers. 21:58:13 i have a buddy who is an amateur astronomer 21:58:25 he would probably say something because of the radio astronomy side 21:58:45 atronomers worry about interference of one sort or another 21:59:15 part of the reason to get into space is to put observatories on the dark side of the moon to cut out the interference 21:59:54 because of the lower gravity on the moon, the optics can be larger because there is less gravity to distort the optics 22:01:13 you know what, i am trying to organize my site well, theoretically you shouldn't need a google button to search, if you can't find it without one my site is not organized well enough 22:01:43 There comes a time when hierarchial organization won't be sufficient though. 22:01:58 I think the two systems compliment each other. 22:02:20 maybe i'll put on in later then 22:06:25 --- quit: Tomasu ("SIGWTF") 22:07:11 Sounds reasonable. 22:07:14 --- join: Tomasu (~moose@d198-53-171-40.abhsia.telus.net) joined #forth 22:07:30 --- join: crc (crc@0-1pool176-6.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 22:09:55 --- join: Serg (~z@212.34.52.140) joined #forth 22:10:40 grrr.. just found the seccond bug in my code that adds dictionary entries 22:11:12 it would have been less work to just rewrite it properly months ago when I put it on my todo list 22:11:39 rewrite from scratch? 22:11:53 rewrite the bit that adds dictionary entries yes. 22:12:00 do you let yourself look back at the first one when writing the second or no? 22:12:10 sure 22:13:19 this is the seccond bug that is because of new dictionary entries not being initialized properly 22:14:08 can you factor the initialization all into one word and then put that word in the word that adds a dictionary entry? 22:14:49 hopefully 22:14:52 if not I should refactor 22:17:34 Hmmm...I just realized that in order to support a blinking cursor, I need to implement interrupt support (specifically, the system's count-down timer interrupt) earlier than I thought. 22:17:40 Oh well, I guess I can skip the blinking cursor to start with. 22:18:04 Damn this is exciting. Hopefully, if my schedule works out right, I should have *something* done for text output in the Kestrel by this Saturday. 22:18:17 Correction -- by this Sunday. 22:18:20 i glanced over something about Forth tasks and hw interrupts 22:19:41 Forth is damn near ideal for use in interrupted environments. 22:19:47 And a stack CPU has little to no state to really save. 22:20:11 its great 22:20:21 (although the FTS1001 actually has about 40 words of state to store [16 data stack, 16 return stack, A, B and P registers]). 22:22:26 I've also decided to forego the general purpose blitter code until I actually need it. 22:23:27 hi kc5tja 22:23:31 re arke 22:23:44 whats up? 22:23:58 Just doing some odd-n-end design work on the Kestrel. 22:24:17 Preparing to do some coding this Saturday to get it to display "Hello world" without me having to hand-code the bitmap image to do it. :) 22:24:34 :) 22:24:40 that means, font code? 22:24:50 Trivial. 22:25:53 kc5tja: cool :) 22:25:59 I don't like blinky cursors anyway :) 22:26:05 I do. 22:26:18 I lose my orientation as to where the cursor is otherwise. 22:26:25 is this pup going to b like an /|\800xl with a 32 bit address range??? 22:26:31 But, I don't like the PC's epileptic seizure inducing blink rate. 22:26:47 hehe :) 22:27:12 my problem is if it's fast, I find it particularly annoying. and if it's slow, it's sometimes not there when I look 22:27:17 LOOP-HOG: Whether you think of it as a Commodore 64, Atari 8-bit, Apple II, the answer is yes. 22:27:20 : +BLINK ( speed -- ) 22:27:34 yum 22:28:02 LOOP-HOG: It's *actually* architecturally closer to an Atari ST as far as its graphics engine is concerned. 22:28:10 520ST or 1040ST to be specific. 22:28:48 Skampy was for the ST 22:28:55 I can port Skampy to the Kestrel 22:29:04 maybe one of the first games 22:29:25 I am probably going to port a wireframe Tank clone or something. :) 22:29:28 the sequel will be better on the inside and outside 22:29:34 there will be different difficulty levels 22:29:50 * arke does some finances 22:30:07 what are the top 10 lexicons we want on the kestrel 22:30:09 nominations 22:30:13 TCP-IP stack 22:30:22 USB support 22:30:28 A simple HTML rendering engine of some kind. 22:30:34 Wilber 22:30:35 USB isn't likely to make it. 22:30:36 hmmm... I just realised something very bad about my segfault handler 22:30:39 Ethernet has a higher chance. 22:30:42 Wilber???? 22:30:49 HTML 3.2 22:31:05 bleh 22:31:08 :) 22:31:12 xhtml strict ;) 22:31:16 my segfault handler just branches to the entry point in my ELF. 22:31:17 LOOP-HOG: Actually, I was targeting XHTML 1.0 with CSS support at least to level 1. 22:31:33 as i said ;) 22:31:35 I'll stick with Skampy :^) 22:31:41 arke: I typed ti first though. 22:31:46 no, i did 22:31:47 I'll even publish a few lexicons out of it 22:31:59 arke: I was typing that sentence for quite some time. 22:31:59 unfortunately this ends up deleting dictionary entries that were created sinse the last bootstrap, but not the source that uses them. 22:32:12 Oh, wait a minute. I just had an idea 22:32:58 LOOP-HOG: I'm also strongly desiring a humane editing environment on it too, for document management. 22:33:11 great 22:33:31 And it's just not complete without a web *server* on it either. :) 22:33:43 ok 22:33:44 :) 22:33:47 :) 22:34:09 would there be networking if there's not ethernet? 22:34:16 Herkamire: Yes. 22:34:23 what sort? 22:34:27 #ifdef arke 22:34:30 Herkamire: The peripheral loop interface is a proper network. 22:34:34 #define finances clean(wallet) 22:34:34 it don't need a mouse, i can just get around with a keypad 22:34:43 I mean internet 22:34:45 Herkamire: TCP/IP and AX.25. 22:35:10 Herkamire: You asked "if there wasn't Ethernet." 22:35:15 like a text baised window environment with a one key out to FORTH, and a one char long word like M to get back into the menuz 22:35:18 TCP/IP and AX.25 can both sit on top of anything at all. 22:35:32 right. if there isn't ethernet, will there be a way to get it connected to the internet? 22:35:58 and how 22:35:59 LOOP-HOG: The UI will be fully graphical, but keyboard navicable. I'm thinking a UI quite similar to Ion. 22:36:19 I just answered that question: "The peripheral loop interface is a proper network." 22:36:28 hmm 22:36:30 i had aN IDEA 22:36:46 regular keyboards, but with command completion 22:36:52 and using the F keys to do stuff. 22:37:02 F1 dr -> drop 22:37:08 and it shows a list while its at it 22:37:17 kc5tja: I understand that the peripheral loop is a network, but how can I get that network hooked to the internet? 22:37:33 arke: Code it then. :) I'm planning on using the Fx keys to switch between the first 10 application panes. 22:37:36 :) 22:38:06 Herkamire: Ooh, sorry. I forgot a piece to the puzzle -- there'd be a card that interfaces a PC to the peripheral loop port of the Kestrel. 22:38:07 when you manually quit an app, it gives up its memory 22:38:10 kc5tja: thats F2's job 22:38:13 kc5tja: :) 22:38:19 it just executes a marker, or uses FORGET 22:38:28 holy hot damn i have alot of shit in my wallet 22:38:35 arke: I currently have 9 windows open on my screen in Ion. That's F1-F9. :) 22:38:41 i like the idea of a REMEMBER and FORGET pair where the REMEMBER is a little more clever than INCLUDE 22:38:50 like if the lexicon is already loaded, it won't load it 22:39:03 :) 22:39:08 LOOP-HOG: GForth has a word called "require" that does that. 22:39:32 Remember, BoxOS System 1 (for lack of a better name) is going to be a minimal system at best. 22:39:35 i would prefer pressing a few more keys than less keys but not aranged very optimized 22:39:43 my example is emacs vs. vi 22:39:44 Although I might include support for paned UI right from the get-go. It's hard to say. 22:40:23 Well, how about this then -- using the Windows key to actually switch between windows? 22:40:41 Pressing Wnd+1 would jump to window 1, Wnd+2 to window 2, etc. 22:40:47 not all keyboards have that. 22:40:53 I would rather assign that to alt 22:40:58 arke: Better upgrade then. :) 22:41:06 kc5tja: I have one. but I prefer not to. 22:41:10 how about a load file that had the key arrangements in it, then you can edit it all you like 22:41:21 if you do it irssi style, you can select up to 40 windows without a problem 22:41:26 LOOP-HOG: That was the plan from day 1. 22:41:59 Multitasking in BoxOS System 1 involves a collection of background tasks, and only *one* active "view" program at any given time (though, in a paned environment, several could be running concurrently). 22:42:01 you don't need a key editing utility right away, if at all 22:42:07 switching windows would be like switching VCs in Linux. 22:42:22 is it going to use plain old cooperative multitasking 22:42:23 kc5tja: my kinda guy :) 22:42:49 LOOP-HOG: Maybe. Cooperative AT LEAST, but possibly preemptive. Preemption may be required for networking. 22:43:43 The way it works is simple. Let's say we use ALT-F1, ALT-F2, etc. like Linux does, just for brevity. 22:43:47 (and familiarity). 22:44:15 99 22:44:16 Consider the case in Linux where you launch irssi IRC client in VC 1, and PINE in VC 2. 22:44:27 Now we know that both programs are running at the same time. 22:44:38 But with PINE displayed, irssi clearly *isn't*. 22:44:56 As far as we're concerned, then, the code backing irssi's display could be 100% unloaded from memory with no loss of functionality, right? 22:45:17 indeed. 22:45:37 My idea is to actually, physically, honest-to-goodness recompile the appropriate view program, on demand, every time the bound "virtual console" is brought up, replacing whatever view code was there to begin with. 22:46:02 kc5tja: that might become ugly. 22:46:11 kc5tja: actually, ... nevermind 22:46:21 This is why applications in BoxOS would have two components: the "model" code runs in the background and is always resident, and the "view" code is loaded and run on-demand. 22:46:32 kc5tja: why recompile? why not just set the words to nop and restore the words to their actual beings when needed? 22:46:40 arke: It's what ColorForth already does, but without the key binding. 22:46:52 why "model" as a name 22:47:01 LOOP-HOG: Model, View, Controller design pattern. 22:47:13 arke: Because that makes no sense. 22:47:28 ok. 22:47:36 arke: I mean, set *what* words to nop? 22:47:41 And how does memory get recycled? 22:47:46 kc5tja: hmm. 22:47:50 kc5tja: you're right. ignore me. 22:47:56 :) 22:48:11 Now, I would like to point out, in BoxOS System 2, this is all pretty much going to change. 22:48:23 But it requires a more sophisticated CPU to support multiple address spaces with. 22:48:56 hmm 22:48:58 whats the new ideA? 22:49:16 I could implement a multi-address-space (well, kinda) OS using the FTS1001 using software-based fault isolation techniques, but it'd sacrifice memory capacity for each program, and it'd be pretty slow (whole address spaces swapped, instead of individual pages). 22:49:51 The idea is to take BoxOS System 1 and make it a spawnable *task* in BoxOS System 2. 22:50:09 BoxOS System 2 would be an implementation of Dolphin 0.5, which itself is based on a cache kernel. 22:50:44 Processes would basically be Forth VM instances. 22:51:38 Actually, I should probably just forego the multitasking idea and just stick with bog-standard cooperative multitasking for simplicity in BoxOS 1. 22:51:48 This way, I won't have to deal with backward compatibility issues with BoxOS System 2. 22:51:52 i would 22:52:03 You would what? 22:52:13 just use PAUSE 22:52:21 LOOP-HOG: You're confusing concepts. 22:52:36 i would use plain old cooperative mt 22:52:42 That's not what I'm debating. 22:52:56 This is wholesale independent of cooperative-vs-preemptive. 22:53:08 What I'm debating is not supporting multiple panes and whatnot from the getgo. 22:53:17 Leaving that for use in OS 2. 22:53:56 Also preemptive multitasking has something that cooperative doesn't -- the ability to kill a task that is infinitely looping. 22:54:43 So OS 2 almost certainly will support preemption. 22:55:52 OS 3 will almost certainly require a new CPU architecture to implement. 22:56:22 The FTS1001 would need to be virtualized completely -- in this case, multitasking is trivially the concurrent execution of multiple FTS1001 virtual machines. 22:56:28 hmm damn 22:56:46 I'm 35 dollars short 22:57:06 shit 22:57:07 i don't know man 22:57:26 By then, FPGA technology should be sufficiently dense and cheap enough to support 4 CPU cores too. That would be cool. :) 22:57:28 24K of code for a hobby computer is good. 22:57:37 os3 sounds like 2 meg to me 22:57:40 What? 22:57:53 Where are you getting your numbers from? 22:57:58 how big are the OSes that you are going to make going to be? 22:58:00 ;) 22:58:19 For what it's worth, I've written preemptive, real-time, multitasking kernels for x86 that fits entirely in its code cache. I think you are panicing for no reason. 22:58:30 running virutal virutal machines 22:58:37 --- quit: jdrake_ (Read error: 110 (Connection timed out)) 22:58:49 Virtual virtual machines? Who is talking about that? 22:58:59 Not me. 22:59:17 no? 22:59:18 kc5tja: why don't you just implement box1 as a cooperative multitasking subset of dolphin? 22:59:29 kc5tja: that way, any box1 app would work no prob on box2 22:59:29 No. 23:00:10 :) 23:00:16 Just because the FTS1101 (or whatever I decide to call it) will virtualize an FTS1001, and it CAN run a whole copy of OS 2 in one VM, doesn't mean that I *WILL*. That'd be totally silly. 23:00:17 eh 23:00:40 * Herkamire emerges from refactoring... _completely unharmed_ 23:01:09 "This lesson will be repeated until learned" 23:01:17 Herkamire: :) 23:01:18 kc5tja: what I was trying to say is think of what you want dolphin/boxos2 to be, then take that which you can implement sanely on boxos1 and make that dolphin/boxos1. 23:01:37 arke: I wasn't saying 'no' to you. I was replying to LOOP-HOG. 23:01:45 arke: What you're describing is patently obvious. 23:02:02 :) 23:02:05 kc5tja: :) 23:02:11 kc5tja: awesome. 23:02:21 kc5tja: do you have some sort of API idea for dolphin/boxos2? 23:02:39 But, because BoxOS 1 will be cooperatively multitasking, some changes will be necessary to run code on BoxOS 2 at full speed. 23:03:12 I require more study. 23:03:20 kc5tja: what do you mean? 23:03:38 I like having a trash can under my desk now, but half the time I turn to get up I end up with a foot in it and tip it over 23:03:50 kc5tja: syscalls are automatic PAUSEes. 23:04:00 Herkamire: :) 23:04:01 arke: That's not related to the API. 23:04:07 arke: That's a syscall mechanic. 23:04:20 kc5tja: well, why would you need to change stuff for full speed? 23:04:24 rotate back. right can. repeat 23:04:52 arke: Because BoxOS 1 is cooperatively multitasked, while BoxOS 2 will most likely be preemptive (BoxOS 3 *will* be preemptive. Deal with it.) 23:05:11 kc5tja: ....so? 23:05:15 Herkamire: Time to relocate the can. :) 23:05:25 --- quit: fridge (Read error: 104 (Connection reset by peer)) 23:05:27 kc5tja: I'm not getting why it would matter... 23:05:36 arke: You can make certain assumptions in a cooperatively multitasked environment that would break on a preemptively multitasking environment. 23:06:00 For example, since you know 100% what task has the CPU at all times, and you control when task changes occur, you can touch reserved memory locations without the need for locking. 23:06:33 In a preemptively multitasking environment, you MUST arbitrate for access to reserved locations, or else you run the risk of two threads touching the same memory at the same time. Not good. 23:06:49 (Imagine this happening right in the middle of storing data to the harddisk!) 23:06:54 kc5tja: do it the non-windows way then. 23:07:11 **I** have no control over what *YOU* as a programmer does. 23:07:12 kc5tja: tell them "do it like this. if not, don't expect shit to work in the future". 23:07:23 arke: well, of course, that is what I'll do. 23:07:34 well, where is the problem then? :) 23:07:50 I don't want people crying and complaining to me when I break their code. :) 23:08:04 kc5tja: its their own damn fault. 23:08:11 kc5tja: you warned them sufficiently. 23:08:12 Yes it is. 23:08:13 kc5tja: :) 23:08:18 kc5tja: so no problem. 23:09:43 There should still be a compatibility mode for the older software. If a person upgrades to BoxOS System 2, he should at least be able to run his System 1 software -- especially if he's in the process of *porting* it to system 2 in the process! 23:10:18 Anyway, all I'm saying is that there will be a small performance hit for System 1 apps running in System 2. 23:10:24 Because of software-based fault isolation. 23:10:48 (e.g., sand-boxing all memory reads and writes to that process' own memory space at run-time). 23:11:26 but the processor will be much faster. 23:11:29 so it won't matter. 23:11:30 This is why I said above that BoxOS System 1 would run as a spawnable task inside of System 2. 23:11:39 don't like that, i think.... ;) 23:11:52 actually, the processor speed does matter -- BoxOS 2 ought to run on a bone-stock Kestrel. 23:12:15 And by marginal, we're looking at 5% to 15% at best performance hit. 23:12:17 It's not a lot. 23:12:24 don't like that, i think.... ;):) 23:12:27 :) 23:12:29 oops 23:12:32 lol 23:12:32 :) 23:13:03 Look in my web FAQ -- I talk about the techniques there, along with providing links to the relavent computer science publications that covers the techniques. 23:13:26 :) 23:13:31 you mean OS upgrades won't make your hardware obsolete every 3 years?!?! you don't sound like microsoft at all 23:13:48 Herkamire: :) 23:13:57 Herkamire: Actually, the purpose of the OS upgrades is partially to promote sales for the NEW hardware. :D 23:13:58 Herkamire: theres no need to ... his Hardware is SOOOO ADVANCED!!! 23:14:18 However, I don't expect to push the hardware sales aspect like the PC industry. 23:14:25 Herkamire: I mean, super-scalar superpipelining, 32 concurrent cores, running at 5ghz 23:15:01 Well, the possibility of a multi-core CPU with internal SMP is not outside the realm of possibility. 23:15:06 But it's a distant project at best. 23:15:14 I put higher priority on my asynchronous logic design. 23:15:32 :) 23:15:50 hmm 23:15:59 Though, logically speaking, at most 4 cores would appear in any given FPGA, because of how memory-dependent these CPUs are. 23:16:13 kc5tja: oh I'm sure the new OS will encourage people to buy your new hardware. But I'm glad you plan to make it run on the old hardware too 23:16:26 Herkamire: Well, System 2 at least. 23:16:32 kc5tja: would the following be a good or bad idea: 3 cores, 2 of which execute instructions, the other one directs the other two (like, tells them when to task switch, what to task switch to, and maybe be a hardware proxy or whatever) 23:16:36 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 23:16:44 System 3 would almost certainly require the new hardware, because it would require paging (true, orthogonal persistance won't run without it). 23:17:18 However, we can "fake" System 3 on the old hardware with a *heavy* performance penalty (because of how much data it has to swap per process). 23:17:18 23:17:37 ^_^ 23:17:38 So if you don't swap programs a lot, it'll run fine. Just don't swap programs. :D 23:17:44 ;) 23:17:48 wow 23:17:51 For real, serious work, though, System 3 on the FTS1101 is a requirement. 23:17:57 thats kinda like running Windows XP on a 486 ;) 23:18:20 kc5tja: will you offer intermediate OS updates, like 1.2 or 2.1 or whatever? 23:18:21 :) 23:18:22 arke: Ummm...no. Think IBM System/380. 23:18:27 --- quit: LOOP-HOG () 23:18:28 Of course! 23:18:45 kc5tja: ;) 23:18:51 I intend on offering only major upgrades as distinct ROM images though. Minor upgrades would require soft-kicking. 23:19:29 hmm 23:19:33 Thus, the absolute minimum to run a System 3 implementation for the FTS1001 is System 1.0.0. :) 23:19:58 :) 23:20:05 Soft-kicking means loading the ROM image into RAM on top of the old ROM image, and jumping to location 0 to fake a cold reset. 23:20:05 hmm 23:20:32 kc5tja: how much of a performance hi tis that? 23:20:34 (Remember this is doable: ROMs are slow, so to get best speed, the ROM has to copy itself to RAM *anyway*) 23:20:56 RAM, by definition, has zero performance hit. 23:20:58 oh, nevermind :) 23:21:31 You might notice, oh, 0.25 second longer boot-times as it first boots into 1.0, then loads the new OS into RAM, then reboots into that new OS. :) 23:22:02 Of course, that'll go away if you re-flash your boot ROM. :D 23:22:44 brb 23:24:43 I would love a computer that could boot up faster than the monitor comes on 23:25:22 :) 23:25:51 back 23:26:03 Herkamire: Well, that's the goal. 23:26:15 Of course, it'll do a RAM check, but only when you tell it to. 23:26:17 RAM checks are nice. 23:26:19 BUT. 23:26:39 If the RAM checked out OK last boot, there is 95%+ chance that it'll be just as good now. 23:26:40 --- quit: Serg () 23:26:47 ....necessary? lol 23:26:55 I'll play some halo now, be back soon. 23:27:02 So the only time you'll need to run the ram checker is if (a) you change memory sticks, and (b) if you *suspect* something might be wrong. 23:27:11 kc5tja: you'll probably be zZzZ by the time I'm done, so good night, talk to you tomorrow, send me an email :) 23:27:21 arke: No, it's not necessary. 23:27:31 arke: It's run by `RAM-TEST' at the OK prompt. 23:28:29 Otherwise, the only thing the ROM does is determine total memory size (using a binary search algorithm, I might add), or it might even skip that step all-together depending on hardware details. 23:32:39 Make sense? 23:32:47 You'll be quizzed on this tomorrow. :D 23:32:54 lol 23:33:02 multiple guess? 23:33:13 Sure 23:33:34 piece of pie 23:36:13 :P 23:38:07 btw, if you add anything like "DENOTATION" stuff in your forth i'll kill you personally. 23:40:15 --- quit: crc ("Sleeping...") 23:42:54 ? 23:43:18 My Forth is integer only. 23:43:31 I'm assuming DENOTATION is for floating point? I've never seen that word before. 23:48:54 something featured in ciforth 23:49:19 i'm hating its guts and working some code to completely destroy it 23:49:33 but its like a bad weed 23:50:12 basically it works as the last vocabulary, in the search order, and allows partial lookups 23:50:19 for short words 23:51:05 its very annoying since, if you make typo's, you dont get an error, but some denotation voc crap instead 23:51:15 ' DOE 23:51:23 would return ' D instead 23:51:55 (the denotation contains 0-9 A-F ^ & ' and a few others) 23:52:48 i wonder what makes ID. crash ciforth from XP's point of view 23:55:09 ??? 23:55:19 I have no earthly idea of what you're talking about. 23:55:28 It appears to be highly, highly ciForth specific then. 23:55:35 it is 23:55:54 well no point giving you idea's about this :p 23:56:04 YYEESS!! Dangeresque 1 is finally released! (Only fans of Strong Bad Emails would understand) 23:57:25 --- quit: cmeme ("Client terminated by server") 23:57:39 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 23:59:59 --- log: ended forth/04.07.01