00:00:00 --- log: started forth/04.09.09 00:09:08 man copyrights are too damned long lol 00:13:12 --- join: mur (~mur@kyberias.uiah.fi) joined #forth 00:15:49 --- quit: mur_ (Read error: 60 (Operation timed out)) 00:52:50 --- join: Serg_penguin (~z@212.34.52.140) joined #forth 01:04:37 --- join: crc (crc@62-pool1.ras11.nynyc-t.alerondial.net) joined #forth 01:31:25 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 01:42:13 --- quit: mur (Read error: 110 (Connection timed out)) 02:33:27 --- quit: Serg_penguin () 03:03:11 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 03:15:45 --- quit: mur_ (Read error: 110 (Connection timed out)) 04:05:17 --- join: mur_ (~mur@uiah.fi) joined #forth 04:10:25 * crc is still trying to fix literals in the 16-bit RetroForth 04:15:57 --- quit: mur (Read error: 110 (Connection timed out)) 04:20:51 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 04:33:23 --- quit: mur_ (Read error: 110 (Connection timed out)) 04:53:42 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 05:25:40 --- join: I440r_ (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 06:01:11 --- join: crc_ (crc@64-pool1.ras11.nynyc-t.alerondial.net) joined #forth 06:01:35 --- quit: crc (Nick collision from services.) 06:01:37 --- nick: crc_ -> crc 06:04:53 --- quit: I440r (Nick collision from services.) 06:04:55 --- nick: I440r_ -> I440r 06:05:03 --- join: I440r_ (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 06:05:04 --- mode: ChanServ set +o I440r 06:24:23 --- join: madwork_ (~madgarden@derby.metrics.com) joined #forth 06:25:19 --- join: zruty (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 06:34:15 * crc sighs 06:35:05 crc, cheep up... here is some code for you: 06:35:06 : ['] ' postpone literal ; immediate 06:36:15 :-) 06:36:51 I'm trying to port the routine that handles literals from 32-bit RetroForth to 16-bit RetroForth 06:36:58 It's not working :-( 06:37:10 UGH 06:37:13 no 06:37:17 Hmm. What's the problem? 06:37:21 --- nick: madwork_ -> madwork 06:37:39 : ['] compile literal ; immediate 06:37:46 or maybe ' literal alias ['] immediate 06:37:47 hehe 06:37:47 I think I figured it out... testing... 06:37:58 got it :-) 06:38:07 I440r, I like postpone. :P 06:38:12 Now the 16-bit compiler is half finished 06:38:15 postpone is evil :P 06:38:17 nuff sed! 06:38:20 (mostly because that's what I implemented :P) 06:38:35 and the alias method above makes the definition for ['] take up no code space hehe 06:39:01 err no i fergot the tick grrr 06:39:21 so : ['] ' compile literal ; immediate 06:39:34 mental note - think about what your coding first! 06:39:35 lol 06:39:39 Heh. 06:40:39 Either way, I'm still using postpone. :P 06:40:55 crc do you understand what "postpone/compile" are doing there ? 06:41:08 * crc does not use postpone 06:41:09 Here's another one for you: 06:41:12 : (is) >body ! ; 06:41:12 06:41:12 : is 06:41:12 compile? 06:41:12 if 06:41:12 ' postpone literal postpone (is) 06:41:14 else 06:41:16 ' (is) 06:41:18 then 06:41:20 ; immediate 06:41:31 crc, you use compile and [compile] ? 06:41:33 crc : compile? state @ ; 06:42:02 compile and [compiele] are best 06:42:10 I have 'forth' (runtime/compiled words) and 'macro' (compile-time only) vocabularies 06:42:25 Ahh. 06:43:07 : is ' >body state @ if compile %!> , else ! then ; immediate 06:43:54 the ' >body state @ part in my actual code is factored out because the next few words use it too 06:44:03 but thats basically my def heh 06:44:15 madwork, explain does> :) 06:44:27 %!>? 06:44:56 --- join: mur_ (~mur@kyberias.uiah.fi) joined #forth 06:45:18 %!> stores the value at the top of the stack to the address pointed to by the next execution token 06:45:19 My does> is a primitive, can't be 'explained' in Forth. 06:45:52 does> is one of the most difficult words to explain i think 06:46:15 mine uses ;code 06:46:18 : ;code 06:46:18 r> last @ name> 1+ dup>r 4+ - r> 06:46:18 ! ; 06:46:33 But basically, it sets the CF to DODOES which takes the address of the code to execute from the param field and enters it. 06:46:43 : does> 06:46:43 compile ;code ,call dodoes ; immediate 06:53:08 I still have to port does> to the 16-bit system 06:53:17 * crc wonders how long that will take 06:54:34 my definition would work on a 16 bit forth, i STOLE it from one lol 06:54:44 --- quit: mur (Read error: 110 (Connection timed out)) 06:54:46 lol 06:54:53 f83/fpc 06:55:11 crc:shouldddddddnt take long 06:55:47 arke do you want it done "right now" or do you want it done "right" ???? :) 06:56:32 heh 06:56:41 later 06:56:42 going to school 06:59:18 Ok, does> has been ported and seems to work 06:59:25 cool 06:59:28 what definition ? 06:59:30 try 06:59:36 : constant create , does> @ ; 06:59:45 5 constant five 06:59:50 6 constant 1 06:59:51 hehe 07:01:03 }:) 07:02:22 That works 07:02:42 Though '6 constant 1' is sure to confuse some people :-) 07:02:51 :) 07:04:34 I should have this finished by the weekend. All of the hard stuff is done now :-) 07:04:55 6 constant 1 works? 07:05:01 yes 07:05:18 : defer create ['] noop , does> @ execute ; 07:05:25 so it overrides the "if number, push" logic 07:05:38 ? 07:05:50 I *always* check for words first. 07:06:07 If the input isn't a word, it trys to convert it to a number 07:06:15 if that fails, it ignores it and goes on :-) 07:06:40 i've noticed that, how it ignores non-words 07:06:40 ignores ? 07:06:54 yes 07:06:58 is an interesting idea. any way one could trap the unknown word case? 07:07:07 like an "unknown word" hook? 07:07:14 That's not hard 07:07:30 could do something like perl's AUTOLOAD that way. muahaha 07:07:36 :-) 07:07:47 I440r: yes, it ignores things it can't find 07:07:57 it should abort" ?: 07:08:06 no ? 07:08:10 FIND 07:08:18 If you're compiling, it spits the name of the word, then a ? 07:08:31 If you're interpreting, it just ignores it silently 07:08:42 Either way, execution continues 07:09:37 If you do : foo 10 repeat crr until ; 07:09:41 And 'crr' isn't defined 07:09:44 just noticed retro4games ... shame i wiped out windows here :( 07:09:45 it says 07:09:50 crr ? 07:09:56 And compiles the rest of the word 07:10:00 :-) 07:10:02 should work on my gf's NT4 box tho 07:10:07 I'll do a linux version sometime... 07:10:19 using SDL? 07:10:22 * crc is looking into using libSDL to provide a framebuffer 07:10:23 Yes 07:10:43 yay 07:10:59 That's the next step in retro4games 07:11:04 then i can start on my almighty ForthHack ;) 07:11:08 :-) 07:11:46 I use Allegro + Forthy, works well. 07:11:58 I don't like Allegro 07:12:06 It doesn't seem to like working for me... 07:12:15 allegro focuses mostly on DOS 07:12:23 linux support is kind of an afterthought 07:12:24 Just give me a nice, linear framebuffer and I'll be happy 07:12:28 Allegro does not focus on DOS. 07:12:36 It used to focus on DOS 07:12:41 It's been Win32/Linux oriented for years now. 07:12:50 It started as a DOS library. 07:12:54 hm. should give it another look i guess 07:13:04 madwork: I've never managed to get it working well under Linux 07:13:05 i used to use a VNC client based on allegro 07:13:21 which vnc client ? 07:13:23 for an "embedded" device, translux LED picturewall namely 07:13:24 and whats allegro 07:13:31 www.allegro.cc 07:13:38 http://alleg.sourceforge.net 07:13:46 worked so well, the translux sales guy recommended it over their own software 07:13:53 to their next client that is 07:14:01 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 07:14:01 --- mode: ChanServ set +o Herkamire 07:14:12 Yea, I like it. Higher level than SDL, if you need that. 07:14:23 SDL is more streamlined. 07:14:33 Which is fine. They're different libs, different purposes. 07:14:38 All I need is a linear framebuffer 07:14:48 allegro is a little crufty and weird, partly the age of it i guess. i do like it tho 07:14:53 SDL is great 07:15:14 * zruty <- crufty and weird 07:15:20 well-designed, simple fast 07:15:45 really someone should write a protocol-oriented binding to SDL or allegro 07:15:56 * crc used to have a stripped down SVGALIB that did nothing but set up the framebuffer and return the address of it :-) 07:16:03 so any process could just write to a socket or pipe and have the display server do the graphics 07:16:08 sorta like X but without all the crud 07:16:19 crc: on some systems you can just mmap /dev/fb0 07:16:33 I know 07:16:40 like mine :) 07:16:50 But this worked better on my hardware at the time 07:16:56 I did that in herkforth just for fun 07:17:07 Cool :-) 07:17:37 I have code to fill the screen with a mandelbrot :) 07:17:48 crc, here's a screenshot of my Forthy Allegro console: http://www3.sympatico.ca/ppridham/misc/project/deathfist/console.png 07:18:23 madwork: there a homepage for Forthy? 07:18:28 I'm having trouble getting herkforth to bood 07:18:30 madwork: nice, but I don't like the shadows under the text 07:18:30 or Forthy+Allegro? 07:18:45 What kind of trouble? 07:19:14 under pearpc it runs for a while, and then jumps to address 0x300 (on a memory load instruction of all things... I think the emulator is broken) 07:19:29 zruty, there's just my sourceforge project page... http://sourceforge.net/projects/forthy/ 07:19:35 Odd 07:19:37 when I tell OpenFirmware to boot it directly, it says "claim failed" and prints the size of the elf file 07:19:52 * crc is looking forward to running Herkforth under PearPC 07:19:57 crc, the shadows help when the text is overlaid on the various editors in the background 07:20:28 madwork: I use a separate window for entering code/text :-) 07:21:12 Yea, but then I couldn't type and see the action simultaneously. 07:21:17 i hate sourceforge - i had isforth on sf for a year and got not one thing accomplished 07:21:30 spent too much time babysitting the account and trying to learn cvs 07:21:35 madwork: split the into two halfs 07:21:43 a month after deleting the account isforth was up and running 07:21:58 I gave up on SF after a month 07:22:03 I440r, I just use TortoiseCVS, works nice. I have no troubles with SF. 07:22:11 i cant even stand the LOOK of sf.net - ever page is sooooo visually cluttered. 07:22:20 crc, sure. I like the way i have it though. 07:22:26 mad too much too much on their pages 07:22:26 yeah, sf is a mess 07:22:45 I440r, I just use it for CVS since I don't have my own server set up currently. 07:22:46 * crc notes that bespin provided a much nicer environment, though I don't use CVS 07:22:57 madwork ever looked at subversion ? 07:22:58 awefull nice of them to offer free hosting though 07:23:12 CVS is ok when you're the only one using it 07:23:17 it rots in almost every other way 07:23:24 I440r, yea... might consider it when I do get a server up. Also DARCS. 07:23:37 thankfully there's also tortoiseSVN now too 07:24:03 Yes. The Tortoise clients are super handy 07:24:05 madwork, i spent months trying to learn cvs - i have a subversion server up and running here on a machine thats on my local network and tathi uses it for isforth-ppc 07:24:18 I can't keep them straight, but I got very frustrated with both darcs and arch 07:24:32 it took me like 2 days to figure out how to install and manage a subversion server 07:24:47 well. a little longer than 2 days for some of the things 07:24:48 * crc should learn to use a real version control system 07:24:49 I440r, I'll probably use Subversion on my own server. 07:25:01 CVS wasnt always easy to set up either 07:25:03 crc, what's wrong with backup.bat? ;) 07:25:17 madwork: I use FreeBSD, .bat files don't work 07:25:21 Heh. :P 07:25:25 crc sure they do 07:25:26 backup.pl then 07:25:30 #! /bin/bash 07:25:35 and chmod +x them :)\ 07:25:37 * crc doesn't touch perl 07:25:43 backup.py 07:25:44 backup.f 07:25:46 I440r: that's what I'm doing now 07:25:46 WHATEVER 07:25:47 :P 07:25:57 I don't understand why it would say claim failed and give the size of my elf file 07:26:04 I'm not trying to allocate that much memory. 07:26:09 the ELF header says to allocate 1MB 07:26:18 herk 1 meg of bss ? 07:26:19 Though mine is a little better than a simple backup script... 07:26:32 herk are you constructing the elf file yourself ? 07:26:57 make sure your bss address's last three hex digits are identical to the last 3 digits of the bss sections file offset 07:27:00 I don't know anything about bss. it just has one load in it, it says to load the file at the begining of a 1MB allocation 07:27:08 yes, I'm making it myself. 07:27:10 personally i like perforce 07:27:18 works great under linux. I changed the load address for OF 07:27:45 Maybe I'll just finish writing my version control script 07:27:47 We user perforce here 07:27:51 use 07:28:02 perforce is so simple small and fast that i could easily use it as a wiki backend 07:28:13 Hmm, actually... the "demo" version gives you 2 accounts, I think. Maybe I'll just use it. 07:28:25 I'm not aware of anything to do with BSS. I have one load section in my elf of type PT_LOAD 07:28:30 the windows gui for perforce is really buggy tho 07:28:42 zruty, how? Seems to work fine here. 07:28:58 madwork: always seems to get out of sync 07:29:36 Yea, mostly when other people edit files. :P 07:29:37 commit changes, and they dont get reflected in the client until i stop and restart it 07:29:44 granted this was more than a year ago 07:29:46 Huh... never seen that/ 07:29:47 so maybe it's fixed now 07:35:23 Is there a word for SWAP OVER? 07:36:01 tuck? 07:36:24 At least, that's what I use :-) 07:36:24 : tuck swap over ; 07:36:36 herk is this in linux or fbsd ? 07:36:37 Heh, yes. 07:36:40 do you have a data section? 07:37:03 I440r: herkforth runs under Linux 07:37:11 and are you allocating with a brk syscall ? 07:37:14 I440r: herkamire is working on a native version 07:39:57 how are you allocating that memory ? 07:49:08 --- join: jdavidboyd (~user@wbar5.tampa1-4-11-125-246.dsl-verizon.net) joined #forth 07:50:06 I think that the memory is allocated in the ELF header 07:50:15 then thats bss 07:50:27 or his file is 1 meg in size 07:50:35 I see 07:50:46 err - he cant make is memory size larger than his file size for his .text i do not believe 07:53:42 The binary is ~161k under Linux 07:53:55 eek! thats huge! 07:54:10 isforths kernel is 16k lol 07:54:18 extended its like 60 or something 07:55:31 --- join: arke|school (apache@11.198.216.81.dre.siw.siwnet.net) joined #forth 07:57:30 That has the kernel, editor, metacompiler, fractal generator, and a lot of other stuff though 07:57:38 Really it's a cool environmentr 07:58:02 I'm not 100% comfortable with it yet, but it is very nice 07:58:24 * crc has stolen several ideas from Herkforth since he started using it 08:01:47 :) 08:01:58 The latest rev of herkforth has 1,158 words :-) 08:02:03 isforth will grow to be about 100k i think 08:02:24 RetroForth will stay around 5k 08:02:58 Though I'm also working on a bigger Forth (Maybe 15-20k) 08:03:08 --- join: yome (~rewt@132.204.12.120) joined #forth 08:03:47 I440r: linux 08:04:09 I440r: I have one section in the elf file 08:04:16 no brk or anything 08:04:24 I just use the memory that the ELF file specifies 08:04:36 herk are you setting your memory size larger than your file size? 08:04:39 that wont work 08:04:42 yes 08:04:44 why not? 08:04:47 it works under linux 08:05:02 well - it wont work in freebsd :) 08:05:12 I don't care 08:05:26 well - its not SUPPOSED to work in linux 08:05:34 and you cant guarantee its working 100% correctly 08:05:42 I don't see why it wouldn't work 08:05:55 isn't that the point of sys_brk? 08:06:30 yes but brk operates on the data section of the executing process - tho in linux you can also brk your .text section 08:06:40 maybe OF is trying to use the p_addr instead of p_vaddr (like it's loading without virtual addresses 08:06:52 of ? 08:06:58 open firmware ? 08:07:06 yes. I'm trying to get it to boot 08:07:11 this all works fine under linux 08:07:19 maybe openfirmware's elf reader is more correct 08:07:35 less complete more likely 08:07:40 I'm reading through specs 08:07:46 try making your file size and memroy size the same 08:07:50 and see if it will load then 08:08:06 worth a try 08:08:14 I need more memory than that though 08:08:29 if the program runs you will prolly need to add a brk syscall to break to 1 meg 08:08:32 thats what isforth does 08:08:34 I'm going to try to set the real (not virtual) load address 08:08:55 I can't use syscalls when I'm writing the system 08:09:01 there is no system. 08:09:04 just OF 08:09:18 just set your memory size and your program size to the same thing in your program header 08:09:25 and possibly section headers too - i ferget 08:09:37 or dont you have any section headers ? 08:09:43 theoretically they are optional 08:09:50 it's just in one place 08:10:17 ill bet you it loads with filesize = memory size 08:11:21 quite possibly. 08:11:25 * I440r just had to go through all this with freebsd :/ 08:11:34 had to create a bss secion of ONE BYTE 08:11:37 it said "claim failed" and printed the filesize 08:11:55 what load address are you specifying 08:12:01 maybe someone owns that address 08:12:14 0x200000 08:12:19 I took it from some working examplecode 08:12:27 I may have to change a bunch of headers 08:12:48 my code actually maps the rest of the file (everything except the headers) to that address, plus the length of the headers 08:12:51 can you paste your elf header here ? 08:13:31 http://jason.herkamire.com:3/svn/herkforth/kernel.s 08:13:44 that's basically it 08:13:57 I changed the load address 08:14:12 (linux loads at 0x10000000 and OF loads at 0x200000 08:14:43 any reason why your taking a 64k alignment ? 08:14:48 instead of a 4k alignment ? 08:14:58 no 08:15:10 try making your flags = 5 :) 08:15:18 it's aligned on a GB boundary. I don't see how it matters 08:16:06 that doesnt i dont believe 08:16:37 try find out if OF insists you have section headers 08:16:43 or did the example not have any either 08:17:50 I just read through the requirements for the ELF file, and I men them. 08:17:53 met them 08:18:03 except maybe the load address 08:18:25 my elf header example works under linux 08:18:42 the example boot code I have uses ld to create an elf header (with a custom ldscript) 08:19:10 linux isn';t exactly stict about elf headers :) 08:19:31 no 08:19:43 linux is very forgiving of malformed elf files :) 08:19:53 :) 08:20:17 why is virtual address 0x100000054 and physical address 0 ? 08:23:30 --- part: yome left #forth 08:28:37 my example thing says that the physical address is unused. 08:28:44 which I guess is not nessesarily true of OF 08:29:02 depends on whether the real-mode? variable is set 08:29:47 yeah, I don't have any section headers 08:29:59 I didn't see anything in the spec about needing them though 08:32:45 ok, just dissasembled the working bootcode, and it has a different memory size than filesize 08:33:35 but it doesn't have this stupid thing where we don't load the headers (that is, where the load address xs 0x....54 and it loads 0x54 into the file) 08:33:43 and it sets the physical address 08:33:55 the spec says they are optional 08:34:04 well... and it has 7 section header entries 08:34:43 brb 08:34:57 kc5tja: good morning :) 08:35:31 re 08:35:41 * kc5tja sighs 08:36:17 kc5tja: whats wrong? ;/ 08:36:21 * kc5tja does not want to work graveyard next week. But, at least, it'll let me attend Aikido on a regular basis. 08:36:52 But still, it'll ruin my sleep schedule -- I'll now have to sleep during the hottest time of the day (approaching 100 degrees). 08:37:05 hehe ouch 08:37:13 ick 08:37:15 To say nothing of the fact that I'll probably be falling asleep at work for the next two weeks. 08:37:25 :) 08:37:43 AND I'll only have two days off instead of three. 08:38:25 --- quit: zruty ("leaving") 08:38:33 kc5tja: graveyard shift isn't that bad :-) 08:38:57 That depends. 08:39:40 * crc has been working graveyard shift for three years now 08:43:26 * crc looks at the time and realizes that he will have to go to bed soon 08:43:44 Cool, but see, I prefer to get my things done during the day. 08:44:25 I see 08:44:45 That's part of the reason I now stay up till noon most days 08:45:12 I am growing tired of working at night though 08:46:03 In my case, I won't be able to do that -- to get any kind of sleep, at reasonable temperatures, I need to sleep ASAP from work, but wake up some hours earlier. 08:46:36 Ahh 08:46:51 I understand that 08:48:56 Fuck, even then, a good 8-hour sleep is still going to bring me clean into 4PM range. :( 08:49:20 * kc5tja will need to perhaps explore the possibility of building a solar chimney or something to get some natural cooling in the house. 08:50:16 It'll look uglier than sin, but if it works, then that's all I really care about. 08:52:55 :-) 08:53:19 :) 08:56:06 crc, man, thats just gotta fuck with your growth hormone production 08:56:33 going to bed at roughly 9pm is very important to the natural circadian rythm and thats when the maximum amount of growth hormones are produced by the body 08:56:43 when ppl fail to go to sleep around that time, they don't get the full benefit 08:57:11 altho you could counter that thru exercise, getting protein with every meal, and whey protein powder 08:58:48 thin: I haven't gone to bed anywhere near 9pm in 10+ years 08:58:56 :) 08:59:08 yeah most computer guys tend not to 08:59:12 same here :) 08:59:21 arke: thats why you're fat 08:59:24 :P 08:59:25 * crc also eats very little 08:59:44 * crc drinks a LOT of water, fruit juice, and tea though 08:59:58 well going to bed at 9pm is only one part of the picture of growth hormone production 09:00:00 * arke|school punches thin 09:00:13 thin: I stopped growing years ago 09:00:32 but if i was doing some serious bodybuilding/weightifting/strength training, i will definitely focus on following each of the principles 09:00:37 About the same time I began riding a unicycle... 09:01:53 crc: growth hormones is just testosterone and some of the other stuff, higher levels basically increase the strength of your immune system, builds muscle, and reduces your adipose (fat) tissue 09:02:04 ok 09:02:20 --- quit: arke|school ("CGI:IRC (EOF)") 09:02:40 Then my sleeping habits could partially explain some of my recent health problems... 09:02:42 if you could manage to have high growth hormone levels, you could end up quite strong without much exercise :) 09:02:54 :-) 09:03:04 thin: Well, this is why I fully intend on returning to a regular schedule of Aikido, which is the first time I can pull this off in over three years. 09:03:20 kc5tja: cool :) 09:03:58 * kc5tja is also intending on starting to jog again; gahh, I'm such a fat ass. I can't even jog across the parking lot of where I work. Granted, it's two buildings worth, but still! 09:04:08 Plus it'll help my aikido immeasurably. 09:06:08 apparently it only takes 10 to 15 minutes of jogging to get the full metabolic effect, past 15 mins its diminishing returns 09:06:20 which means when i go jogging i only do about 10 mins of it 09:06:37 --- quit: crc ("Time for bed... Goodnight!") 09:06:47 Word for SWAP DUP... UNDER ? 09:07:33 i tend to go for random bike rides and totally knacker myself, heh 09:07:33 * madwork is starting back at the gym tonight for weights and the track, and Judo next week. 09:07:40 madwork: You mean SWAP OVER? 09:07:47 SWAP DUP is just SWAP DUP. :) 09:08:04 SWAP OVER is TUCK, right? 09:08:10 I figured SWAP DUP would be UNDER. :) 09:08:20 But, I dunno. 09:08:27 define UNDER another word to remember ;) 09:08:45 unless UNDER already exists.. 09:09:18 undefined in Win32Forth anyway 09:10:21 no swap OVER maybe heh 09:10:29 thats a tuck 09:10:54 swaop dup rot ? 09:11:02 i cant even remember what under is supposed to do 09:11:12 duplicate the second item under the first i THINK 09:11:21 Hm. 09:13:08 All I know is that +UNDER is basically >R SWAP R> + SWAP 09:13:15 And with that, I need to get ready for work. 09:22:05 --- quit: jdavidboyd (Remote closed the connection) 09:32:15 --- join: jdavidboyd (~user@wbar5.tampa1-4-11-125-246.dsl-verizon.net) joined #forth 09:33:37 10 constant foo ok 09:33:37 20 ' foo >body ok.. 09:33:37 ! ok 09:33:37 foo . 20 ok 09:33:43 Mmm... 09:33:49 "constants" ;) 09:37:40 can anyone think of a mini-challenge forth coding problem for today? 09:38:08 print hex numbers 09:38:39 lol i win 09:38:43 123 h. 09:38:45 !!! 09:38:55 implementation. :P 09:39:06 how about sort a random 16 bit array using a radix counting sort :) 09:39:16 smallest source file wins 09:39:49 array of 100 items ? 09:39:57 i cant work on that right now tho 09:40:35 I don't even know WTF a radix counting sort is. 09:41:11 i said "mini-challenge" :P 09:41:24 that IS mini! 09:41:25 something that takes less than 30 mins to code 09:41:37 google for it mad - its probably the fstest sort method there is 09:41:43 but its not an IN-PLACE sort 09:41:54 it also makes no comparisons between items being sorted 09:48:16 oh - when you sort - dont sort on bytes - sort on nibbles :) 09:48:27 nybbles err i can never remember 09:49:25 nibbles = 4 bits, nybbles = i forget? 09:49:39 i'm pretty sure nibbles & nybbles are different 09:49:53 Never heard of a nybble. 09:50:18 So I guess it's not important. ;) 09:51:22 whut? and you call yourself an asm programmer?! :P 09:51:36 nybbles are the most special magical uhh i dunno 09:51:38 No, I don't. :) 09:51:59 I am, but I prefer when people don't think of me as an assembly language programmer. 09:52:09 :) 09:52:20 then what kind of coder do you call yourself 09:52:40 Several people have said "ROBERT USING A HIGH-LEVEL LANGUAGE? THAT IS A CONTRADICTION!" 09:52:52 A lazy one? 09:53:21 Unfortunately that's true since my initial fascination withered away after my 15th birthday. 09:53:38 how old are you now ? 09:53:42 18 :P 09:53:46 lol 09:54:18 nybbles are 4 bits. 09:54:21 Oh, an interesting age thing: I'm born 1986 and 18, the oldest classmates are born 1968, which makes them 36 - twice my age. 09:54:29 kc5tja: And a nibble? 09:54:31 nibbles are what you take when you're not really hungry. 09:54:36 Heh. 09:54:46 thats what i thunked 09:54:48 * Robert hangs his head in shame. 09:55:26 a lazy coder is what every coder should aspire to :D 09:56:10 Well, it makes me think more of what is important. 09:56:22 But one misses irrationality a bit ;) 09:56:24 Anyway.. going out. See you later 10:00:48 --- quit: jdavidboyd (Remote closed the connection) 10:13:39 --- join: jdavidboyd (~user@wbar5.tampa1-4-11-125-246.dsl-verizon.net) joined #forth 10:17:00 * kc5tja considers the adoption of a prototype-based object system for FTS/Forth instead of the more traditional class-based system. 10:17:28 I've heard the argument for lazy coder, but I disagree 10:19:13 gggrrrrrr bash is annoying 10:19:27 I really wish I could put an exclamation point in quotes 10:22:19 Well, I'm off to work. I'll be back online soon enough. 10:22:31 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 10:45:28 --- join: T0paz (~top@spc1-horn1-6-0-cust117.cosh.broadband.ntl.com) joined #forth 10:48:39 --- quit: Topaz (Read error: 110 (Connection timed out)) 10:53:16 --- quit: jdavidboyd (Remote closed the connection) 10:55:03 --- join: jdavidboyd (~user@wbar5.tampa1-4-11-125-246.dsl-verizon.net) joined #forth 11:02:21 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 11:19:16 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 11:32:17 herkamire: i'm not too serious about the lazy coder thing :) 11:33:18 I think it mostly causes trouble. 11:33:31 At least what concerns programming. 11:34:46 however, i'm a big believer of Thoughtful Programming as described in that article 11:35:49 tho there are some things that need to be slightly tweaked.. i.e. the coding infrasturcture you have needs to support rebuilding systems quickly 11:38:46 when the system you have is highly automated and rebuilds and integrates the whole system when you rewrite something is very helpful to encourage rewriting from scratch 11:38:57 as the cost is lower 11:39:00 bleh 11:39:03 i explained it poorly 11:39:15 i guess i could simply say: 11:39:18 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 11:40:08 to get the Thoughtful Programming methodology to work well, ya need to have a highly automated development system that rebuilds and integrates your code in order to reduce the cost of rewriting from scratch 11:40:45 --- part: jdavidboyd left #forth 11:42:29 --- join: h8vb (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 11:51:57 --- quit: T0paz (Read error: 113 (No route to host)) 11:52:27 --- join: T0paz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 12:06:40 --- nick: h8vb -> wossname 12:19:09 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 12:28:25 --- join: [Forth] (~Forth@216-110-82-59.gen.twtelecom.net) joined #forth 12:30:30 Hi [Forth] 12:33:17 --- quit: tathi ("*poof* :)") 12:43:07 ok so i wrote my radix counting sort thing afterall 12:43:13 tho it does have one minor bug 12:43:29 0 var shift 12:43:30 create array1 200 allot 12:43:30 create array2 200 allot 12:43:30 create counts 32 allot 12:43:30 array1 var unsorted 12:43:30 array2 var sorted 12:43:39 : .sort ( --- ) cr 100 for r@ 2* sorted + w@ h. nxt cr ; 12:43:41 : .un ( --- ) cr 100 for r@ 2* unsorted + w@ h. nxt cr ; 12:43:43 : flip ( --- ) sorted unsorted !> sorted !> unsorted ; 12:43:45 : 0counts ( --- ) counts 32 erase ; 12:43:47 : setup ( --- ) 100 for 65536 rnd unsorted r@ 2* + w! nxt ; 12:43:52 : [@] ( o --- n ) 2* unsorted + w@ ; 12:43:54 : [!] ( n o --- ) 2* sorted + w! ; 12:43:56 : >nyb ( n --- y ) shift >> $f & ; 12:43:58 : item+ ( o --- ) [@] >nyb 2* counts + dup w@ 1+ swap w! ; 12:44:00 : fix ( --- ) counts 15 for dup w@ over 2+ w@ + over 2+ w! 2+ nxt drop ; 12:44:07 : colcnt ( --- ) 0counts 100 for r@ item+ nxt ; 12:44:09 : sortcol ( --- ) 100 for r@ [@] dup >nyb 2* counts + dup w@ tuck 1- swap w! [!] nxt ; 12:44:11 : sort ( --- ) off> shift 4 for colcnt fix sortcol 4 +!> shift flip nxt ; 12:44:13 : main ( --- ) setup .un sort flip .sort ; 12:57:03 --- join: arke|school (apache@11.198.216.81.dre.siw.siwnet.net) joined #forth 13:00:11 --- quit: arke|school (Client Quit) 13:14:50 --- join: Frek (anvil@h229n2fls31o815.telia.com) joined #forth 13:18:43 --- join: warp0b00 (~warpzero@mi238.dn182.umontana.edu) joined #forth 13:18:59 --- join: jim (~jim@cpe-24-143-141-183.cable.alamedanet.net) joined #forth 13:19:20 --- quit: warp0b00 (Read error: 104 (Connection reset by peer)) 13:23:51 ok my radix counting shit just dont work at all lol 13:23:58 mental note to fix that 13:29:01 Heh :) 13:29:57 how do you count a radix? 13:32:25 you dont - its a counting sort using a radix huristic 13:32:32 some people erronously call it a radix sort 13:32:59 the above code does work except for one minor bug - i was making changes here and missed something lol 13:33:49 --- quit: fridge (Read error: 238 (Connection timed out)) 13:35:07 went to an svfig meeting recently... they're playing with arm evaluation boards 13:38:10 One thing that bothers me about Forth... my syntax-hilighting text editors just can't handle it properly. :) 13:38:34 none can 13:38:37 so I figured I'd try writing an arm simulator... 13:38:48 I440r, yea, that's my point. 13:44:14 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 13:45:54 --- join: warp0b00 (~warpzero@mi238.dn182.umontana.edu) joined #forth 13:45:59 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 13:47:49 I got a few pieces done, one instruction family, and another one close... ldr, str, alu infrastructure, implemented and 14:22:41 --- quit: qFox ("this quit is sponsored by somebody!") 14:49:14 i440r, thats why you should've picked a different mini-challenge LOL 14:50:58 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 14:51:42 --- quit: tgunr (Excess Flood) 14:51:55 i should get ppl to suggest minichallenges and get a whole list of them.. 14:52:58 my code works except the last item in the array is ignored 14:53:06 i have to figure out why its not sorted when everythign else is 14:53:25 thin the log of chuck is gone from ultra! 14:53:32 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 14:55:24 really? hmm 14:55:40 thin: you should put the chalanges up on my wiki. 14:55:49 have a place people can go to see the days chalange. 14:56:00 paste in peoples solutions, and we could look back through previous chalanges. 14:56:07 and people could go back and fix a bug if need be 14:56:26 the challenges sholdnt be too difficult nor too trivial either 14:56:43 im disappointed nobody else tried mine :P 14:57:09 is trifficult three halves as bad as difficult? 14:57:18 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 15:01:19 herkamire: actually i was thinking of putting my forthology.com domain name to use heh 15:01:30 Heh. 15:01:47 I440r: I missed it. what's the chalange? 15:02:31 write a radix counting sourt routine to sort 100 16 bit values - do the sort on a per nybble basis 15:02:41 tu spel chalange rite? :) 15:03:32 thin: it would be nice to have it on a wiki so people can make corrections to their entries later, or add comments etc 15:03:43 --- quit: saon ("Leaving") 15:03:44 how does a radix sort work? 15:03:50 I440r: what do you mean per nybble? 15:03:58 nybble is 4 bits 15:04:06 I know what it is :) 15:04:11 ok. wella COUNTING sort doesnt make any comparisons between any items 15:04:11 first rule of minichallenges: shouldn't require the forther to google for an algorithm :P 15:04:18 well, that's your radix. 15:04:18 it just counts how many of each item there are 15:04:51 so if you have 400 thousad 128 bit items to sort its going to be a little difficult to count every occurance of every item 15:05:00 so you do the sort once on each digit of the number 15:05:17 as long as the inner sort is stable th eradix huristic is very effective here 15:05:29 it makes the whole exercise practicable 15:05:56 with a radix counting you can sort 400 thousand items on each digit one at a time 15:06:19 my code has a minor bug in it tho 15:06:27 0 var shift 15:06:27 create array1 2000 allot 15:06:27 create array2 2000 allot 15:06:27 create counts 32 allot 15:06:27 array1 var unsorted 15:06:28 array2 var sorted 15:06:30 \ ------------------------------------------------------------------------ 15:06:39 : .sort ( --- ) cr 1000 for r@ 2* sorted + w@ h. nxt cr ; 15:06:41 : .un ( --- ) cr 1000 for r@ 2* unsorted + w@ h. nxt cr ; 15:06:43 : flip ( --- ) sorted unsorted !> sorted !> unsorted ; 15:06:45 : 0counts ( --- ) counts 32 erase ; 15:06:47 : setup ( --- ) 1000 for 65536 rnd unsorted r@ 2* + w! nxt ; 15:06:54 : [@] ( o --- n ) 2* unsorted + w@ ; 15:06:56 : [!] ( n o --- ) 2* sorted + w! ; 15:06:58 : >nyb ( n --- y ) shift >> $f & ; 15:07:00 : item+ ( o --- ) [@] >nyb 2* counts + dup w@ 1+ swap w! ; 15:07:02 : fix ( --- ) counts 15 for dup w@ over 2+ w@ + over 2+ w! 2+ nxt drop ; 15:07:07 : colcnt ( --- ) 0counts 1000 for r@ item+ nxt ; 15:07:09 : sortcol ( --- ) 1000 for r@ [@] dup >nyb 2* counts + dup w@ tuck 1- swap w! [!] nxt ; 15:07:11 : sort ( --- ) off> shift 4 for colcnt fix sortcol 4 +!> shift flip nxt ; 15:07:13 : main ( --- ) setup .un sort flip .sort ; 15:07:15 \========================================================================= 15:07:17 oh. this is probably the fastes sort method there is but its an out of place sort 15:07:24 you need two buffers. one for unsorted data one for sorted 15:07:41 i modified the code for 1000 items here btw 15:17:52 I still have no idea what radix sort means 15:17:59 its a counting sort 15:18:05 illexplain it 15:18:13 lets sort an array of 10 bytes 15:18:22 create the array of 10 random bytes 15:18:23 radix sort means you sort in several passes, once by each digit of the things you're sorting. 15:18:42 of any value from 1 to 10 15:18:50 gotcha 15:19:22 well thers more to it than that heh 15:19:37 that's the definition of a radix sort, as I understand it. 15:19:39 my old old web page had it written up nicely 15:19:45 you can use any stable sort for the actual sorting. 15:19:47 the sorts have to be stable probably 15:19:53 isnt there a site that caches old web pages ? 15:20:01 there is 15:20:01 they do have to be stable 15:20:18 i have friends that claim they have written radix sorts with inner quick sorts 15:20:20 ot 15:20:22 err 15:20:29 BULLSHIT - the quick sort is NEVER stable 15:20:40 it's called the wayback machine 15:20:42 it would probably be a dog of a job to write a stable quick sort 15:20:49 url ? 15:20:56 umm 15:21:00 archive.org? 15:21:04 yes 15:21:05 what does stable mean in this context? 15:21:25 that equal keys are not moved around 15:21:39 if two things are equal, they come out in the same order as they went in. 15:21:47 found it lol 15:22:03 and woohoo ive got my registered linux card back hehe 15:22:23 what's a registered linux card? 15:22:37 grr but the sort routines doont seem to be there hang on 15:24:01 grr my writeup on the radix sort isnt in there :( 15:26:29 is there anyone else doing this? he doesnt have the part im looking for 15:26:49 i440r: what was your site with the radix writeup 15:26:52 url? 15:26:57 that's the only one I know of... 15:27:15 its not there 15:27:24 what was the url 15:27:24 the page is but not that part of it 15:27:30 an embarrasment ?> 15:27:46 what was the url 15:27:51 gimme url 15:28:41 ok, so say I was sorting 1MB of random 32-bit words. 15:28:50 what would be a good radix? 100? 15:29:24 or 16 maybe... after all these are bits 15:29:25 ok. if you use a radix of 256 (one byte) you will need 256 cells for just the counts 15:29:46 and each cell must be able to total the largest number of possible digits 15:30:16 i.e. if there can be 4000000000000 zero digits.... 15:30:30 so you pass through, counting how many go in each slot 15:31:10 then you pass through again (rather randomly), moving each cell to the right part of the buffer 15:31:26 then you use recurse into each section, using the seccond digit 15:31:38 well no 15:31:53 when you have counted everything you add the loswest count to the next highest count 15:31:58 then you add that to the next highest 15:32:01 and so on 15:32:08 * jim remembers when recurse was called myself 15:32:11 i.e. you add the count for 0 to the count for 1 15:32:16 why? 15:32:18 then add that to the count for 2 etc etc 15:32:23 so that each count is now an absolute offset, not a relative one. 15:32:32 ahh right 15:32:39 because now for ANY digit you know how many items equal to or lower than your digit there are 15:32:49 therefore ytou know where in the sorted data this digit belongs! 15:32:54 I thought you meant add the counts that totalled the least 15:33:06 right 15:33:19 then you start moving stuff 15:33:34 grab the first item 15:33:45 fetch item from unsorted list. extract the digit your sorting on and find that digits count. that count is this items position in the sorted list 15:33:50 store it there and decrement the count 15:34:27 so you end up storing them in reverse order? 15:34:31 see which slot it goes in. grab the item that's where the first one goes. stick the first one there. increment the pointer for that slot. repeat 15:34:37 --- quit: onetom (Read error: 113 (No route to host)) 15:34:42 --- quit: thin ("leaving") 15:35:25 no. decrement it 15:36:52 what does it matter if you fill the slots top-down or bottom-up? 15:37:25 the ull, overwrite previous stores :) 15:37:35 well, you do have the count you could decrement... then I guess you don't need a pointer per digit? 15:37:37 no 15:37:59 uh yeah, I did say pointer 15:38:17 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 15:38:17 doesn't matter if you point it at the end of the slot and decrement, or point it at the begining and increment. 15:38:29 the counts index to the *end* of the slot though. 15:38:32 and figured you meant it too: why would you increment a count? :) 15:39:07 the 0th count is the number of items with key 0. 15:39:19 tathi: right 15:39:25 Herkamire: yes it does: you've calculated the counts already, so if you intend to increment, you need a second set of counts 15:39:55 you need to keep the counts anyway (for sorting on the next digit) 15:40:13 so I say instead of duplicating the list of counts, you make a list of pointers 15:40:17 heapsort is sexier than radix sort in any case 15:40:28 wouldn't you find the counts for that digit position? 15:40:37 you don't need to duplicate the list of counts. 15:40:37 wossname, yes and no. 15:40:45 heap IS cool tho :) 15:40:49 ;o 15:40:51 the point of a radix sort is that you can do a separate sort on each digit. 15:41:09 the sort for a digit doesn't need to know about the sorts for the other digits 15:41:16 i've written radix sorts 15:41:16 bah, point :( 15:41:25 tathi a radix huristic slows down the sort process because your doing one sort for every digit 15:41:26 so wouldn't you need to find the digit count for each digit? 15:41:27 i'm just saying it was sexy, but not as sexy as heapsort 15:41:41 but its the ONLY way to make a counting sort (the fastest there is) workable 15:41:51 I440r: right, it's slower, but *way* less memory. 15:42:07 yes and no 15:42:13 because you need two buffers :) 15:42:35 ok, but you could do it in place if you want to 15:42:40 and a counting sort is WAAAAAYYYYY faster than any other sort so the radixification is no matter :) 15:42:49 you cant do an in place counting sort 15:43:07 don't you recursively radix sort each slot? 15:43:08 unless you exchanged values 15:43:20 I don't get that part 15:43:21 not recursivbly 15:43:24 itterativly 15:43:42 you have an inner sort method (counting in this case) 15:43:55 and an outer loop that loops once per digit of the data to be sorted 15:44:21 do you have to count digits once per loop? 15:44:22 btw when you sort on a digit you move the whole item according to that digits sort position - NOT just the digit :) 15:44:26 yes 15:44:38 that;s what I thought 15:44:43 collect a digit - use that as in index into the counts 15:44:48 increment item at that index 15:45:04 Herkamire: say you're starting from the most-significant digit, and sorting 3-digit numbers. 15:45:36 first you sort by the first digit -- puts 100s, 200s, 300s, etc. together. 15:46:20 then you sort by the second digit, then the third. 15:46:35 oops, actually, you have to start with the least significant digit, don't you? 15:46:45 doh. 15:46:55 it's filtering in 15:47:04 I was thinking subsequent sorts would screw up the first 15:47:14 that's why you have to use a stable sort. 15:47:14 but you start least significant, and those aren't supposed to stay together 15:47:21 right 15:47:32 I was thinking do most significant first. 15:47:47 then do a sort on each section seperately for the seccond digit 15:48:42 now I see why you don't need to keep the counts 15:49:00 in the way I was thinking you need to preserve the counts so you can recurse in on the right sections 15:49:48 a stable sort sounds annoying 15:58:42 i dont think you can have a recursive stable sort 15:58:44 tho maybe 15:58:53 shell is stable i believe 15:59:37 hi :) 16:00:05 my thinking didn't require stable sort 16:00:14 but it used more memory 16:00:32 because it has to save counts from earlier digits 16:00:42 so with radix 256 on 32-bit values 16:00:49 it would take 5KB 16:01:05 instead of 1KB for normal radix sort 16:01:20 use an inplace sort :o 16:01:32 bubble sort ^_^ 16:01:47 that is in place 16:02:07 the 5KB (or maybe I only nead 4KB) is to keep counts. 16:02:12 a better inplace sort 16:02:13 mergesort :o 16:03:12 anyway, back to making the coolest OS ever 16:04:27 when i get back home ill put my asm sort routines online 16:06:49 he just did 20 thousand 16 bit items in the blink of an eye with taht heh 16:06:55 lets add a few 0's hehe 16:07:19 hehe 16:08:08 100 thousand 16 bit items in a second 16:08:20 not too shabby for a 10 minute coding job lol 16:08:32 lol 16:09:24 do a million >:o 16:09:38 i would need 4 million bytes of buffers! 16:09:50 bah, forthers 16:09:56 worrying about the little numbers 16:13:59 heh 16:14:13 forth coders are the ones who brag about how little theirs is :P 16:19:35 hrm its still going :/ 16:24:38 going home... 16:32:59 sup I440r 16:39:55 hi warp :) 16:39:57 <-- home now 16:40:16 hey 16:40:24 so i need to write a language 16:40:29 but what do i write it in 16:40:33 to do what 16:40:38 forth 16:40:41 no 16:40:45 forth won't work 16:40:46 duh! 16:40:53 what ???????????? 16:40:54 lol 16:40:56 what 16:41:04 what sort of language 16:41:06 to do what 16:41:09 uh 16:41:13 its a general purpose one 16:42:57 C 16:42:59 * arke runs away 16:44:27 im considering fortran 16:44:46 fortran is almost perfect actually 16:44:50 i just don't KNOW fortran 16:46:31 lol 16:48:01 and how the fuck do you learn fortran 16:52:09 seriously i guess ill just do it in C 16:52:12 but bleh 16:52:49 hehe 16:52:58 --- quit: arke ("work") 16:56:09 I440r: suggestions PLZ 17:02:36 --- join: randolm (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 17:18:33 --- quit: wossname (Connection timed out) 17:23:56 warp0b00, fortran? lol 17:24:05 i dont know fortran 17:25:44 okay ill do it in fortran 17:25:47 THIS WILL BE FUN 17:26:50 fortran is so bizzarly archaic 17:28:54 --- join: saon (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 17:29:08 warp0b00, lisp is good for writing languages, so is ML 17:29:34 this language practically is lisp 17:29:43 except just not 17:30:32 --- quit: warp0b00 ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 17:32:27 --- quit: saon (Client Quit) 17:54:41 --- join: saon (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 17:58:10 --- quit: tathi ("leaving") 18:09:53 --- join: linuxchixor (~agrzw@ip68-224-208-118.lu.dl.cox.net) joined #forth 18:10:16 hi everybody 18:10:46 i found two gems in the university library today: x86 asm reference, and optimizing compiler design (ssa, loop unrolling, etc). 18:47:35 --- quit: randolm (Read error: 110 (Connection timed out)) 18:54:41 LOL 18:54:44 some bugs are just great 18:55:13 I set up the little structure of arguments to pass to OpenFirmware 18:55:22 and I made the syscall 18:55:31 the bug... 18:55:37 I didn't pass in the structure 18:55:50 I'm absolutely sure I didn't because I don't even know how to pass it 18:56:22 --- quit: T0paz ("Leaving") 19:02:44 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 19:14:26 --- join: zruty (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 19:15:51 hi zruty 19:16:23 zruty, you talked above about continuations but couldn't find a simple example. here's one: 19:16:30 'catch' pushes a continuation on the 'catch stack' 19:16:36 'throw' pops the top of the catch stack and restores it 19:17:14 (error handling) 19:20:12 yep, exception handling is a pretty easy continuation 19:20:42 it's always upward, so you don't worry about environment capture 19:20:54 another one is co-operative multithreading 19:21:03 that does have capture 19:21:36 multi-shot continuations are the next level :) 19:21:43 they come up in the web framework, when the user clicks 'back' etc 19:21:48 i can never quite read continuation-laden code 19:22:07 i know what they do, but tracing it is like GOTO but worse 19:22:20 not if its well written 19:22:24 eg, when i do 19:22:25 read 19:22:29 "You said " write print 19:22:29 sure, but i generally prefer abstractions over them 19:22:38 i don't care that read/write/print involve conitnuations and multitasking 19:22:55 sure, because you're not working with continuations, read/write/print is 19:23:33 read/write/pritn use a stream object 19:23:41 the stream hides the details 19:23:44 just curious, what's factor's speed like anyway? 19:23:50 its alright 19:23:57 getting better cos i'm working on an x86 compiler 19:24:08 cool. should be comparable with plt scheme or something? 19:24:18 it would probably beat plt scheme 19:24:25 but i have no idea 19:24:27 cool. probably not stalin tho :) 19:24:28 speed is not the top priority right now 19:24:50 i can't believe someone named a compiler stalin 19:24:58 that's like if i came out with a haskell compiler and named it hitler 19:25:20 lol 19:25:38 "use hitler on your code." // "oh yeah, hitler is great" 19:25:39 factor compiler --> saddam? :) 19:25:51 stalin is pretty cool for non-russian people 19:25:56 with ``osama'' optimizing front-end? 19:25:56 and i'd use a compiler called hitler 19:26:16 in fact, i'd like a whole suite of this shit. stalin, hitler, mussolini 19:26:17 slava: i'd be worried about osama crashing 19:26:33 there could be awesome o'reilly books about each 19:26:42 i wrote the code for saddam but lost the code... they found it in a hole in the ground 19:26:45 you'd have the hammer and sickle book, the swastika book 19:27:51 the other popular static scheme compiler out there is chicken 19:28:10 guess there's also bigloo 19:28:19 more scheme implementations than useful programs it seems 19:28:35 hehe same with forth] 19:28:53 probably 19:29:14 tho forth certainly has a successful niche in microcontrollers 19:29:31 scheme ... in academia 19:29:59 scheme -> teaching 19:30:08 you've never heard of a course taught in forth, have you 19:31:22 can't say i have 19:31:25 --- quit: saon ("Leaving") 19:36:43 yesssssssssssssss! 19:37:14 wha 19:37:30 my openfirmware code in herkforth works :) 19:37:48 it writes to the terminal 19:37:57 i still don't understand why you want your own OS though :) 19:38:05 do you have > 1 computer? 19:38:12 otherwise you'd be rebooting often 19:39:58 sure, it'll be a while before it has all the programs I use regularly 19:40:45 I want it to be an os so I can have simple, direct, fast access to the devices 19:41:04 and so I can have a modifiable system 19:41:34 i guess i have similar goals but for a desktop environment only 19:41:39 * zruty thinks herk and slava are on like opposite ends of the forth spectrum 19:41:53 well maybe not, Herkamire isn't making his own hardware 19:42:31 I'd like forth hardware 19:42:42 except maybe for graphics performance 19:45:55 I'm planning to have some fun with my graphics card 19:46:51 what's your planned interface? 19:53:34 text at first 19:54:00 mouse only used for specifying locations only 19:54:18 searches and hyperlinks are primary way to get around 19:54:35 quasimodes for executing stuff 19:54:49 ie hold down apple key and type a command (forth word) 19:54:53 let go and it executes 19:55:16 whee 19:55:49 when another key is held down (probably control) each key will do something immediately (much like linux) 19:56:10 eg control-s would save 19:56:35 or apple\ s\ a\ v\ e\ ///// would save 19:56:53 eew 19:56:57 that would be hard to type 19:56:57 or apple\ s\/ a\/ v\/ e\/ / would save 19:57:00 with your thumb on the apple key 19:57:04 \ indicates keydown 19:57:07 indicates keyup 19:57:12 why not something like C+enter save enter 19:57:49 I don't really care that much what the shortcut for save is atm 19:58:01 point is you can easily enter commands at any time 19:58:24 with only one keypress to indicate it's a command 19:58:46 (note that this is even less that say Ion where you press F1, enter command, and press enter 19:59:32 I haven't decided if I'm going to use the concept of virtual terminals 20:00:08 I'll try not to, but if it seems useful, I'll probably add it 20:00:48 I _hope_ that I can design it so you just say what you want to see, and it will be there 20:01:38 no need to "leave things open" 20:01:42 like palm pilot 20:03:28 whenever you come back to something you left, it will always be exactly the way you left it. 20:03:50 unless this is actually not possible (eg, you get disconnected from irc when you shut your computer off) 20:04:03 but it could certainly do it's best to get close 20:04:14 eg, reconnect, and join channels 20:04:46 and it would be really nice if it could find the logs for recent chats, and stick it in the history 20:05:38 dammit i need to port my stack effect checker to native factor... 20:06:56 I don't think it would be hard to type words with my thumb on the apple key 20:07:08 but if it is, I'll use the caps lock key 20:07:12 might use caps lock anyway 20:07:38 any word that is defined will be accessible this way 20:09:20 ok i'm going to sleep. 20:09:41 hmmm... maybe the reason I think it would be easier to type with the apple key down than others is the way I hold my hands and do the space bar 20:10:13 I do space with my right hand exclusively, and type with my left hand slanting in from the left probably more than it should be 20:10:30 this makes the left apple key in easy reach with my left thumb (which I don't use otherwise) 20:11:20 the right apple key is very hard for my to reach without lifting my fingers from the home row, and I can't reach apple-F at all with just my right hand 20:12:13 there'll be quasimodes for searching too 20:29:32 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 20:41:01 --- join: Sonarman (~matt@adsl-64-169-93-191.dsl.snfc21.pacbell.net) joined #forth 20:41:50 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 20:42:37 --- quit: snowrichard (Client Quit) 20:44:55 * Tomasu is back (gone 46:37:49) 20:52:07 --- quit: saon ("Leaving") 20:52:09 hm, incremental quasimodes. that could be interesting 20:52:50 herkamire, have you ever used winamp's media library? 20:55:09 no 20:55:36 :( 20:55:43 wossname: ....??? 20:55:46 why would I have? 20:55:47 --- join: arke (arke@adsl-69-209-54-62.dsl.chcgil.ameritech.net) joined #forth 20:55:48 well, you just type in a number of whitespace seperated words in a box 20:55:56 who in their right mind would want to program on windoze? 20:56:10 and it filters through its entire database of songs by each term, and displays them in the sorted order of the users choice 20:56:15 people who make a lving with it? :P 20:56:17 that's the way all filesystem interactions should be 20:56:39 I don't think all filesystem operations should be based on complex searches 20:56:53 it's not complex, it's very simple 20:57:02 thats why it is so wonderful 20:57:03 arke: yeah, making lots of money is an acceptable excuse 20:57:13 wossname: simple for the user 20:57:23 yes 20:57:47 easy to program too, actually 20:57:48 oh, you said interactions. 20:58:01 maybe expensive, but what are modern computers fo 20:58:02 *for 20:58:42 sorry, I think that's an aweful idea 20:58:47 I like searches and everythng 20:58:59 but most of the time I know exactly what I want to look at, and I'd like to go directly to it 20:59:24 yes, the filter aids that 20:59:32 (it can filter by directory too, if you like that) 20:59:39 there are a ton of fields related to each song 20:59:42 and the filters are applied to each 21:00:13 well, if you don't do, i'll use it for my own os :l 21:01:03 sounds fine for a music database 21:01:15 but not for all filesystem interactions 21:01:18 fine for any collection of files >:l 21:01:21 example 21:01:50 with playlists, you want a list of songs. vaguely meeting certain criteria, in a certain order. 21:02:00 normally, you don't want a list of anything. you want to see or change something. 21:02:09 i want lists of things all the time 21:02:13 say I want to look at my todo list. 21:02:23 one of my most commonly dispatched dos commands looks like this: dir /s /b *filter*.filter 21:02:33 it would not at all be helpful to go through some search thing where I can type stuff, and then it shows me a list. 21:02:43 I want to type "todo" and have it pop up my todo list 21:02:49 well, type in todo-list 21:02:54 it finds the file by that name 21:03:00 and then you can launch it from the filesystem viewer 21:03:12 that's lame 21:03:21 hopefully, you attach other fields in your fs 21:03:25 my way I hit 5 keys and it's instantly on the screen 21:03:26 such as a good file type system 21:03:32 sounds like emacs :( 21:03:49 no, I'm counting modifier keys ;) 21:04:00 it won't be like emacs I promise 21:04:14 it sounds cool, but i have a very clear vision of what the perfect os is 21:04:22 good for you 21:04:23 make it 21:04:29 :( 21:05:09 emacs would be 5 key combinations, not 5 sequential key preses 21:05:33 I'm not saying your search stuff is bad, I'm just saying that I don't think it's appropriate for all (or even most) file system interactions 21:06:11 different philosophies 21:06:12 I rather like the approach of the Cannon Cat of just searching the contents of everything, and the ZUI concept of knowing where stuff is (not what it's called) 21:07:00 when you reach 30,000+ items in the filesystem, you begin to lust after good search features 21:07:16 I'm sure I will 21:07:25 I'm not arguing that the search facilities you aspouse would be useful. 21:07:27 and then extend it with forth ;~ 21:07:36 I'm saying that that type of search is not always what you want 21:07:47 well, not always what you want, but always what i want ~@ 21:08:34 besides, it is possible in the windows media player to type in a directory, or even an exact file name, and it will return only that 21:08:55 did i type windows? i meant /winamp/ 21:08:57 sounds cool 21:23:41 --- quit: tgunr (Excess Flood) 21:25:30 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 21:26:03 Wouldn't it be easier to just teach people to organize than to have some file system attempt to please everybody? 21:27:07 the searchable file system allows more ways to organize 21:27:19 and makes it nicer for those unable to 21:28:16 while i'm spouting out my wishlist, i might as well add that i want built-in versioning for files :( 21:28:38 yeah, I might do build in versioning 21:28:48 basically a system-level undo 21:28:48 sweet 21:29:13 VMS apparently had versioning, but the versions of a file were lost on deletion. 21:29:15 and some form of archiving them in sets for version control on certain objects or something 21:29:32 * Tomasu is away: sg1 22:00:00 --- quit: tgunr (burroughs.freenode.net irc.freenode.net) 22:00:00 --- quit: wossname (burroughs.freenode.net irc.freenode.net) 22:00:00 --- quit: warpzero (burroughs.freenode.net irc.freenode.net) 22:00:48 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 22:01:44 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 22:02:31 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 22:12:34 --- quit: zruty ("Lost terminal") 22:26:48 --- join: Serg_penguin (~z@212.34.52.140) joined #forth 22:28:14 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 22:28:16 hi 22:28:20 hi 22:28:24 new ? 22:28:40 new what? 22:28:54 I have been coming here for a while 22:28:59 are u new on channel ? new to forth ? 22:29:16 ok 22:33:37 hi richard 22:33:38 :) 22:33:43 hi arke 22:34:41 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 22:36:08 Morning, all 22:36:16 hi 22:36:18 Including qFox, snowrichard Serg_penguin and even arke 22:36:34 my new half-frame auto cam is SUPERB 22:36:36 * Sonarman sobs 22:37:04 all frames exposed hell right, like from modern $300 SLR 22:37:36 hi :) 22:40:03 :( 22:40:06 Sonarman: !!!!!!! 22:41:17 --- quit: Sonarman ("leaving") 22:42:08 Robert: "even" arke? as if i'm not quite worth being in the bulk of your greeting, that i am so worthless as to be attached to the end as a mere PATCH? 22:43:05 i agree. 22:43:13 i just have to decide whom to agree with 22:43:18 :p 22:44:44 hello 22:46:19 arke: :) 22:49:08 hi 22:49:11 --- nick: mur_ -> mur 22:49:24 terve mur 22:49:30 Privet 22:49:51 dobryjj vecher :) 22:51:10 Pfft, that's a lie from US-land! 22:51:19 your-land?! 22:51:25 Robert sweden lies? :( 22:51:31 --- quit: linuxchixor (Read error: 110 (Connection timed out)) 22:51:33 my heart is broken 22:51:37 * Robert pets mur for misunderstanding things on purpose. 22:51:45 Ouch. Why? 22:51:47 faxk 22:51:52 fanx 22:52:03 hrrrrrrrrrr 22:53:24 Damn it... have to leave already. 22:53:34 me too soono 22:54:42 See you later then :) 22:56:44 * arke will sleep in a second 22:56:52 just have to finish my reply email 22:56:57 bye 22:57:07 which will take a while, as theres lots of info in it for me to digest and reply to 22:58:53 --- quit: snowrichard ("Leaving") 23:01:07 what's the official time? 23:06:56 BAH 23:07:10 I start 10, not 9. 23:14:52 --- join: thin (thin@bespin.org) joined #forth 23:14:52 --- mode: ChanServ set +o thin 23:15:03 --- part: thin left #forth 23:22:33 --- quit: qFox (Read error: 54 (Connection reset by peer)) 23:39:58 --- quit: Herkamire ("gosh, look at the time") 23:52:45 --- quit: wossname (Read error: 113 (No route to host)) 23:59:59 --- log: ended forth/04.09.09