00:00:00 --- log: started forth/04.08.31 00:01:52 OK. I'm off to bed. 00:01:59 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:23:15 --- quit: proteusguy ("Leaving") 00:25:55 --- join: mur_ (~mur@uiah.fi) joined #forth 00:36:16 --- quit: mur (Read error: 110 (Connection timed out)) 01:47:38 --- join: mur (~mur@kyberias.uiah.fi) joined #forth 01:58:48 --- quit: mur_ (Read error: 110 (Connection timed out)) 03:01:25 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 03:03:44 --- quit: mur (Read error: 60 (Operation timed out)) 03:18:16 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 03:21:46 --- nick: TomasuDlrrp -> Tomasu 03:21:49 * Tomasu is back (gone 14:07:44) 03:29:15 --- quit: FlamingRain ("Leaving") 03:53:00 --- quit: mur_ (Remote closed the connection) 03:53:40 --- join: mur (~mur@smtp.uiah.fi) joined #forth 04:23:45 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 04:25:20 --- join: crc (crc@102-pool1.ras11.nynyc-t.alerondial.net) joined #forth 04:34:45 --- quit: mur (Read error: 110 (Connection timed out)) 04:56:01 --- quit: I440r_ (orwell.freenode.net irc.freenode.net) 04:56:01 --- quit: Tomasu (orwell.freenode.net irc.freenode.net) 04:57:24 --- join: I440r_ (~mark4@216-110-82-203.gen.twtelecom.net) joined #forth 04:57:24 --- join: Tomasu (~moose@S010600045a4c73cc.ed.shawcable.net) joined #forth 04:57:31 --- quit: Tomasu ("SIGWTF") 04:58:49 --- join: Tomasu (~moose@S010600045a4c73cc.ed.shawcable.net) joined #forth 04:59:59 --- quit: Tomasu (Killed by sagan.freenode.net (Nick collision)) 05:00:00 --- join: Tomasu (~moose@S010600045a4c73cc.ed.shawcable.net) joined #forth 05:08:23 --- quit: ChanServ (Shutting Down) 05:08:44 --- join: ChanServ (ChanServ@services.) joined #forth 05:08:44 --- mode: irc.freenode.net set +o ChanServ 05:15:42 --- quit: Serg_penguin (Read error: 104 (Connection reset by peer)) 05:16:17 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 05:16:17 --- mode: ChanServ set +o Herkamire 05:18:02 Hello Herkamire 05:22:08 hi crc :) 05:22:14 What's new? 05:22:37 lots of progress on herkforth in the last week 05:23:09 source export now exports the dictionary and data sections 05:24:11 * crc does 'svn up' :-) 05:24:29 you can change the color of existing words with the color change keys 05:24:55 terminal dimentions are fetched automatically 05:26:02 very nice 05:26:52 It seems to respond faster now 05:27:05 now that the dictionary and data sections are saved, it is no longer nessesary to have definitions for variables, datas and most constants 05:29:04 oh, it was also fairly recently that I made an encoding for binary data to be displayed and exported to ascii 05:30:47 I changed the filename convention to nicely support up to 999 bootstrappings (instead of 9) 05:32:19 I'm impressed 05:32:23 the dictionary export also allows blocks to be LOADed out of order 05:32:43 Any closer to having it run natively? 05:32:48 without the C parser for the initial bootstrap (which parses blocks in order) getting word-not-found 05:34:25 yeah :) this is a big step closer 05:35:05 I also made it so when you export the dictionary it doesn't save dictionary entries that are not used (refered to by source tokens) 05:35:12 (or data) 05:37:01 Very nice 05:40:51 now before I go native, I need to write code to drop unused dictionary entries on boostrap. (right now it doesn't export them, but they never go away) 05:41:11 and I need to make it so you can edit data 05:42:56 I think that's all I really need to do first 05:43:02 cool 05:43:15 * crc is looking forward to running HerkForth on PearPC :-) 05:43:27 yeah :) me too 05:43:43 I might also split the source up into definitions, and store each as a seperate data object 05:44:26 and set it up to do automatic dependancy compilation 05:44:41 or maybe I'll save that for later 05:49:47 I've almost finished my ATA driver :-) 05:51:03 Along with syscall support for Linux, FreeBSD, and Windows 05:52:40 --- join: SDO (~SDO@67-23-111-213.clspco.adelphia.net) joined #forth 05:53:18 wow :) 05:53:58 are windows syscalls even similar to linux/fbsd syscalls ? 05:54:20 No 05:54:30 I have to use the DLL's at the moment 05:54:39 oh god 05:54:50 thats not what i asked heh 05:54:52 To actually use a Windows system call, I'd have to be in kernel mode 05:55:01 i asked if windows syscalls were similar to linux syscalls 05:55:06 raw syscalls 05:55:13 not libc wrapper bullshot 05:56:05 heh 05:56:11 neway i gotta go to work 06:01:05 You pass the syscall number in eax and a pointer to the arguments in ebx (or edx for some syscalls) 06:01:18 work. bbl 06:01:21 It's more like the FreeBSD syscalls, where you pass options on the stck 06:28:43 you cant make system calls in windows except from ring 0 ? 06:28:46 ick 06:33:07 --- quit: mur_ (Remote closed the connection) 06:33:40 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 06:35:28 Windows was designed to be accessed through the DLL's 06:36:18 All of the system calls are wrapped through NTDLL.DLL under Windows NT/2k/XP (I'm not sure where they are wrapped in earlier versions) 06:36:34 If you make a mistake, the kernel isn't very forgiving :-( 06:37:17 * crc took the easy route and just supports dynamic loading & use of DLL's 06:45:24 heh i bet 06:46:25 Actually, you can call int 0x2e (syscall) from a normal app under Win95/98/Me, but NOT under NT/2k/XP 07:20:07 :/ 07:20:19 thats why god invented linux 07:20:28 so we wouldnt HAVE to follow satan 07:20:34 I prefer FreeBSD to Linux :-) 07:20:54 i have issues with the anal retention factor of fbsd 07:20:59 ??? 07:21:05 like the one thats biting me in the ass right now 07:21:14 you cannot break without a bss 07:21:30 so now i have to go and add an un-needed and unwanted bss section to my fsaved forth kernel 07:21:36 I see 07:21:54 break allocates more space? 07:22:13 ok the "break" is the highest address allocated to your process 07:22:31 the brk syscall moves the break up or down 07:22:35 ok 07:22:45 And you can't use it without a BSS? 07:22:48 That's odd 07:22:49 but it only works if theres a "Data section" 07:22:51 nope 07:22:53 not in fbsd 07:23:23 I wonder why... 07:23:35 man 2 brk 07:23:46 it tells you its intended to move the break on the DATA segment 07:23:50 which is .bss 07:24:01 but i have no .bss section 07:24:09 i have a single +rwx section 07:25:06 I see 07:25:16 but i gotta add one now lol 07:25:33 Why do you need to move the break? 07:25:39 (Just out of curiosity) 07:25:51 ok. when kernel.com loads i have the following structure 07:25:58 <.text> <.data> 07:26:04 text is my list section 07:26:07 data is my headers 07:26:14 i need to have the following structure 07:26:39 < list +rwx > < blank space > < headers > 07:26:53 so i break out to one meg and then relocate all word headers up in memory 07:27:11 I see 07:27:18 when i do an fsave i relocate all the word headers back down and save out a SINGLE section 07:38:17 * Tomasu is away: stuff 07:46:54 lol i found my "answer to the linux kernel coding style" document lol 07:46:59 i thunked that was lost forever 07:58:09 --- quit: SDO (Read error: 60 (Operation timed out)) 08:02:50 anyone here know where i can get a copy of the elf file format in PDF format ? 08:05:17 Do you mean the official spec? 08:06:40 http://x86.ddj.com/ftp/manuals/tools/elf.pdf 08:10:09 thanx 08:10:20 is that doctor dobbs site ? 08:10:24 yup 08:10:28 cool :) 08:14:10 * crc is trying to find docs on BeOS syscalls 08:41:15 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 08:57:22 --- quit: crc ("Time for bed... Goodnight All!") 09:15:48 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 09:15:57 --- mode: ChanServ set +o kc5tja 09:26:36 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 09:27:14 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 09:47:03 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 09:50:33 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 09:52:29 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 11:13:26 --- join: desentenche (~martin@pD9FF5EA8.dip.t-dialin.net) joined #forth 11:13:52 --- part: desentenche left #forth 11:46:57 can someone tell me the whois on the ~martin guy who did a flyby here ? 11:47:04 its scrolled off my screen and i need the info 11:52:44 Can't find any martin... 11:52:51 I'll grep 11:53:11 20:13 -!- desentenche [~martin@pD9FF5EA8.dip.t-dialin.net] has joined #forth 11:53:46 thanx 11:54:32 not sure but that could be a guy thats being trying to root me 11:54:39 Heh 11:55:08 i have a number of ip's from him firewalled and he might have been coming here to see if i was online or not :) 11:55:50 I didn't know you had that many enemies ;) 11:56:16 i dont. but alot of people have been getting root attempts via some ssh exploit recently 11:58:20 :/ 12:01:41 hi 12:02:08 Hi slava 12:03:20 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 12:03:52 http://www.apple.com/imac/ 12:03:54 new g5 imac 12:03:56 looks slick 12:04:15 ive never liked the physical look of apple machines 12:06:44 I440r_: hey, I had a thought...what if you just made your program header allocate 1MB, without having a bss section? 12:06:48 or does that not work also? 12:07:08 i would have to have a 1 megabyte file 12:07:22 nope. 12:07:24 or two files 12:07:28 program header has a file size, and a memory size. 12:07:32 one file for list, the other for head 12:07:41 if the memory size is bigger than the file size, then you get the extra space as blank memory. 12:07:43 yes i know 12:08:07 im sure the people who designed the elf file format intended BSS to be allocated in taht fassion 12:08:19 why do you use brk at all 12:08:22 just mmap a zone 12:08:28 my memory size os 50 gigs but my program size is 50k therefore we have alot of free space 12:08:45 slava: you want it to be continuous with what's already there. 12:08:53 because the memory mapped zone would be disassociated from my process space 12:09:04 ya 12:09:25 and in reality i need .test .bss .data .bss in that order 12:09:33 I440r_: I still don't get how having the ELF give you blank space is ANY different from using the brk. 12:09:34 and i need both .text AND .data to be +rwx 12:09:44 I'm not suggesting that you stop relocating headers. 12:09:56 tathi how do i tell nasm to do taht ? 12:09:57 :) 12:09:58 ONLY that you use the ELF headers rather than a syscall to put the break where you want it. 12:10:03 when i metacompile sure 12:10:19 use a linker script 12:10:36 or just make a .bss section, and tell it to be after text and data 12:10:51 I don't know...I've never used nasm. 12:10:58 it's really more of a linker problem anyway. 12:12:03 I440r, have you studied how emacs does unexec on fbsd 12:12:19 but not as long as nasm is creating kernel.com 12:13:13 err, nasm isn't creating kernel.com 12:13:18 ld is. 12:13:31 take a look at src/kernel/Makefile 12:14:21 I even have a linker script which I could adapt to the purpose in about 5 minutes. 12:14:43 --- quit: tgunr ("Leaving") 12:17:28 hey I440r ping ping 12:18:21 or tathi ping 12:18:28 i need to know if indirect jumps are slow on x86 12:19:24 I don't really do x86, sorry. 12:19:33 ok 12:23:13 slava if bill gates offered me his entier fortune to "study emacs" i would take the money and RUN 12:23:15 fast heheh 12:23:20 lol 12:23:52 I440r, i need some advice 12:23:58 ask 12:24:02 I440r, i want to load/save compiled code right 12:24:08 the worst you could get is a stupid answer :) 12:24:09 ok 12:24:13 I440r, if the compiled code refers to primitives 12:24:24 I440r, how would i make sure that when loaded, it points to the correct location 12:24:34 and not some random point in the exe if it got recompiled 12:24:39 the entry poing ? 12:24:51 like have a table of offsets in the compiled code that need to be relocated or something? 12:24:56 thers an e_entry field in the elf header 12:25:09 this won't be elf 12:25:11 i dont think e_entry can be relocatable 12:25:12 oh 12:25:40 if im slow to reply its cuz im at work 12:25:42 not ignoring 12:25:49 n/m 12:25:53 its ok 12:25:57 i'm going out for a bit 12:25:59 just ask and ill answer when i can :) 12:25:59 ok 13:02:49 I440r_: ok, this seems to work. Can't extend, because I didn't fix fsave yet, but... 13:02:58 http://qualdan.com/forth/isforth.ld 13:03:01 put that in src/kernel 13:03:15 add -T isforth.ld as first options to ld in src/kernel/Makefile 13:03:34 add "section .bss" to your red-tape bullshit visual clutter 13:03:40 and drop the brk syscall. 13:03:44 tathi: you got isforth to run on ppc? 13:03:55 Herkamire: getting there. 13:03:57 The kernel runs. 13:04:01 nice :) 13:04:19 still not entirely bug-free, because I can't extend all the way yet. 13:04:46 I need to write a 64/32-bit divide routine (bleh) 13:05:00 and I think create/does> still has some problems. 13:06:19 but the above was in reference to how I think all three versions should be changed, to avoid using the brk syscall, which is causing trouble on freebsd. 13:06:40 I see 13:06:48 what is a .bss section? 13:06:57 part of the elf file I presume, but what does it do? 13:06:58 Herkamire, global variables in C etc 13:09:25 blank space 13:09:30 tathi cool! 13:09:53 i should show you what im doing here with fsave so your fix can be in line with mine 13:10:07 yah, that's why I didn't write that yet :) 13:10:18 cool 13:10:21 and it looks like your home box is down again. 13:10:25 u can take a break till i get this wroking :) 13:10:29 tathi no actually its up 13:10:42 but the wireless connection from the main box to the svn server is down 13:10:47 drivers dont work with 2.6.8 13:10:48 grrrr 13:26:08 Back 13:26:27 Had to change both my bike tubes again. >:/ 13:26:40 Both had little thorn punctures that made it through the kevlar-reinforced tires. Damn things. 13:27:05 Anyway, I have a kevlar *belt* that is 1/16" thick sandwiched in between the tires and the tubes now, so hopefully that won't happen again. 13:28:56 damn. where are you riding? 13:29:55 The streets of California. 13:30:16 Specifically, San Diego. 13:30:26 Kearny Mesa if you wanted to get even more precise. 13:31:47 so...there are a lot of sharp things on the streets there? 13:31:50 :) 13:32:51 that's annoying, I don't know that I've ever had to replace a tube from something sharp puncturing it through the tire. 13:34:08 though I've had a few pinch flats from riding through our lovely Eastern Pennsylvania spring potholes 13:36:50 tathi: Think about it: San Diego is green only because we irrigate. If it weren't for irrigation, the Mojave desert would extend right up to the coast line. 13:37:37 right... 13:37:42 As such, we get all sorts of desert plantlife out here, including but not restricted to roses with LOTS of thorns, cactus plants of all shapes and sizes, Palm trees (the underside of the palms have VERY sharp thorns), etc. 13:37:55 Pretty much, if it isn't a weed, it's going to have a thorn somewhere on it. :) 13:37:56 oh. 13:38:35 yikes 13:38:46 if the kevlar belt doesn't work, you'll have to put a steel belt in ;) 13:38:49 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 13:38:59 Yeah. It's actually bike-hostile here. And city traffic doesn't make things any better, for there is also broken glass, metal shards, and other forms of debris. 13:39:07 Frankly, I'm rather shocked this never happened to me before. 13:39:20 Herkamire: They have 'em, I'm sure. 13:39:35 But, the kevlar is light-weight, and wraps nicely around the tube. 13:40:04 that's pretty cool 13:40:49 the wrap goes once around the inside of the tire? or around the tube a bunch of times? 13:41:14 The wrap is sandwiched between the tire and the tube, like a steel belt in a car tire, but only it's kevlar. 13:41:58 cool, so it goes in a big loop around the spokes 13:42:24 that's a neat idea 13:43:12 Well, around the tube. The spokes don't care one way or the other. :) 14:25:05 --- 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.") 14:25:47 --- quit: imaginator ("") 14:39:44 --- join: thin (thin@bespin.org) joined #forth 14:39:56 Hi thin 14:40:05 hi robert 14:40:38 hi guys 14:40:45 i have some really cool new features in my ide 14:40:48 i'll make some screenshots in a min. 14:40:57 yay 15:00:33 --- join: tathi_ (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 15:00:50 --- quit: tathi (Nick collision from services.) 15:00:56 --- nick: tathi_ -> tathi 15:09:35 OK, off to food. 15:09:39 back in an hour or so. 15:11:18 --- part: futureX left #forth 15:16:11 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 15:26:21 --- join: proteusguy (~proteusgu@66.168.185.144) joined #forth 15:26:49 --- join: tathi_ (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 15:26:57 --- quit: tathi (Nick collision from services.) 15:27:00 --- nick: tathi_ -> tathi 15:31:33 --- quit: FlamingRain ("Leaving") 15:37:50 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 15:41:20 --- quit: tathi ("volleyball") 15:53:13 --- quit: warpzero (Read error: 54 (Connection reset by peer)) 15:53:49 --- quit: thin ("leaving") 15:55:41 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 16:34:49 --- quit: I440r_ ("Leaving") 16:36:47 Gotta love the script kiddies: 16:36:47 Tuesday, August 31, 2004 19:10:21 Unrecognized access from 65.95.112.54:3107 to TCP port 135 16:36:47 Tuesday, August 31, 2004 19:10:24 Unrecognized access from 65.95.112.54:3107 to TCP port 135 16:36:47 Tuesday, August 31, 2004 19:10:26 Unrecognized access from 65.94.192.159:3963 to TCP port 135 16:36:47 Tuesday, August 31, 2004 19:10:29 Unrecognized access from 65.94.192.159:3963 to TCP port 135 16:36:47 Tuesday, August 31, 2004 19:10:54 Unrecognized access from 65.95.47.78:4352 to TCP port 135 16:36:49 Tuesday, August 31, 2004 19:10:57 Unrecognized access from 65.95.47.78:4352 to TCP port 135 16:36:51 Tuesday, August 31, 2004 19:11:22 Unrecognized access from 65.95.41.206:3187 to TCP port 135 16:39:14 yeah 16:40:59 --- quit: Herkamire ("bla") 16:43:05 what the fuck is on 135 16:44:11 RPC 16:44:19 oh 16:44:24 wait 16:44:32 you have a publicly accessible rpc port 16:44:54 Er, well it's "epmap DCE endpoint resolution". 16:45:00 And, no of course not. These are firewall logs. 16:45:06 oh right 16:45:18 Though, I opened that port and a few others up briefly one morning, and BAM... trojan, just like that. 16:47:20 thats because its fucking rpc dude 16:47:51 Yeh. Well, I was trying something. :P 17:01:30 --- join: arke (~420f1419@reladm.kharkov.net) joined #forth 17:01:36 hey 17:01:39 ack 17:01:39 lol 17:01:46 im here, and i already gotta leave again ^_^ 17:01:48 brb 17:01:54 --- quit: arke (Client Quit) 17:02:33 --- 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.") 17:04:44 --- join: arke (~420f1419@reladm.kharkov.net) joined #forth 17:04:51 ok, back :) 17:04:53 kc5tja: hi :) 17:04:55 kc5tja: got my email? 17:04:58 I440r: alive? 17:05:07 * arke won't be here _too_ long.... 17:05:25 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 17:05:49 i can build madarke yea whussup 17:06:27 hehe 17:06:40 I440r: might I ask what motivated you to rename the binary words in isforth? 17:06:47 I440r: (read: I'm complaining) 17:07:12 like & | ^ ? 17:07:17 i consider those names to be 17:07:21 1: more forthlike 17:07:27 hehe 17:07:30 and 2 well known enough to not be an issue 17:07:37 I440r, those names are from C 17:07:39 I440r, you hate C 17:07:45 more forthlike? 17:07:48 Forth != C :) 17:07:58 your mom is from C 17:08:21 arke, he's trying to be more like visual basic actually 17:08:44 and I don't think they are very forthlike at all. They don't convey at all what they really are (neither do @ and ! but thats another story). 17:08:52 arke forth uses single characters for word names 17:08:57 < and > do convey what they are 17:09:01 as do << and >> 17:09:04 and maybe & 17:09:08 but not | or ^ 17:09:13 or % 17:09:51 Represent something in the way it is best and easiest understood. 17:09:51 sure they do :) 17:09:58 no they don't :) 17:10:05 does @ jump at at you as a squiggle or a "fetch" 17:10:26 just because they're from C doesn't mean that they convey it. 17:10:27 hehehe 17:10:33 I didn't say I liked @ and ! 17:10:48 i do 17:10:50 I do like @ because it means 'at' which basically means 'fetch what is _at_' 17:10:58 not ! though. 17:11:13 I'd rather have source that is a bit more verbose but then readable. 17:11:14 in scheme ! is suffixed onto side-effecting functions 17:11:28 and this is coming from a guy who thinks C is way too spacy :) 17:12:22 : ; make sense in conveying what they do. , c, etc. don't. 17:12:41 So, to summarize 17:12:46 I really hate that change. 17:12:46 :) 17:12:52 I think you should at least offer both. 17:13:08 as in, put the aliases in directly in one of the ./extend files 17:13:57 well the way it is NOW is experimental 17:14:20 I hope you know that you have AT LEAST 1 person complaining. 17:14:20 :) 17:15:14 --- join: FlamingRain (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 17:15:19 in YOUR source file - create the aliases 17:15:30 or create an alias include file 17:15:33 why? 17:15:39 I could. 17:15:42 and include it in all your projects till i decide weather to keep it or not 17:15:46 its not decided yet 17:16:06 Well, I'm sure you've got probably at least 2 people complaining. 17:16:17 becuase I'm sure sam doesn't like it either ^__^ 17:16:24 now 17:16:28 lets talk about diferent things 17:16:36 such as that nobody sends me any email 17:16:36 :) 17:16:57 not even spammers ? 17:17:07 arke, i can forward you some penis ads 17:17:32 thats not right ! 17:17:33 lol 17:17:53 no 17:17:56 not even spammers 17:17:56 and no 17:17:59 i dont want penis ads 17:18:07 im plenty large already 17:18:07 :) 17:19:53 but send me email peopl 17:19:57 i want to converse with thee 17:20:04 hmmmm 17:20:07 .... 17:20:10 i am stupid 17:20:12 :) 17:21:37 Back for about 30 seconds. 17:21:43 hi kc5tja 17:21:46 Getting ready for another exciting adventure on my bike. 17:21:51 kc5tja: fun ^_^ 17:21:55 kc5tja: school starts tomorrow 17:22:02 kc5tja: and i think i might have figured out IRC from school :P 17:22:03 Yeah, seeing as how I just repaired two flats in a row. >:( 17:22:31 :/ 17:22:31 sucks 17:22:39 kc5tja: read my email? 17:23:24 Yes 17:24:08 did you reply? 17:24:19 No. 17:24:32 I don't think any reply is truely warrented. The question speaks and answers itself. 17:25:29 hmm 17:25:32 what was the question again? 17:25:33 :) 17:25:52 Look in your sent-items folder. :) 17:26:13 :) 17:27:10 gotta reboot 17:27:13 --- quit: I440r ("Leaving") 17:27:56 oh 17:27:57 yeah 17:27:58 :) 17:28:06 that question _does_ answer itslef ^_^ 17:30:20 damn 17:30:35 CGI IRC doesn't work through CGI poxy 17:30:36 :/ 17:36:13 --- quit: FlamingRain ("Leaving") 17:48:08 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 17:48:59 wb I440r 17:49:23 ! 17:50:32 stack underflow 17:51:14 * arke ponders the line "convert linus to forth and have him rewrite the linux kernel from scratch" 17:52:26 :) 17:52:33 actually linus already knows forth 17:52:55 --- quit: warpzero (Read error: 104 (Connection reset by peer)) 17:52:58 seriously? 17:52:59 link? 17:53:10 no link 17:53:17 an email conversation i had with him 17:53:26 he doesnt like languages that dont have types 17:53:54 may I ask what the conversation was about? :P 17:54:04 i dun remember :) 17:54:14 does it have anything to do with coding style? ^__^ 17:58:01 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 17:58:02 --- mode: ChanServ set +o Herkamire 17:58:45 Herkamire! 17:59:30 hi Herkamire 18:01:30 herk! 18:02:44 --- quit: arke ("no fate but what we make") 18:06:36 --- join: warpzero (~warpzero@dsl.103.mt.onewest.net) joined #forth 18:13:40 hi guis 18:14:28 guys 18:14:35 GUIs? 18:14:57 lol 18:15:06 <-- graphical USER 18:17:04 I just had one of those lovely arguments with my gf where no actuall information information is recieved by either party because they are both too dense to figure out what the other person needs to hear in order to proceed 18:18:44 * kc5tja has an image, and I interface with other people, so I suppose I can be a GUI of sorts too... 18:19:48 kc5 at least you HAVE a gf 18:20:08 kc5tja: you're multimedia! 18:20:15 lol 18:20:49 multimedia is such a stupid buzzword 18:20:57 crappy digital watches are multimedia 18:21:26 buzzword or not, i like listening to music while coding ;) 18:21:37 even the 99cent ones you can get with the little mirmade in the background 18:22:22 listening to music while you use your computer for other things is nice, but multimedia doesn't mean it can do than 18:22:25 that 18:23:56 --- join: zruty (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 18:25:50 I440r: I do? 18:25:59 I440r: Where? I'd like to meet her. 18:26:11 kc5tja, google for it 18:26:25 oh i meant herk lol 18:26:27 sorry heh 18:31:05 kc5tja: lolo 18:31:11 man, I can't type today 18:32:29 ooh :) I have an even better example of multimedia! smoke alarms 18:33:04 little red light (visual) and beeping (auditory) 18:35:42 * zruty .o( audit orgy ) 18:42:43 huh... audioorgy.com is available 18:52:14 will wonders never cease 18:52:37 weeeeee're gunna have chicken soup :) 18:52:44 gimme some! 18:52:56 what about eargasm.com? 18:53:31 zruty, my innocent mind cannot concieve such things 18:53:47 hey now 18:54:16 slava: btw, is there a C interface in factor? thinking of doing some SDL or curses stuff to start 18:54:19 factor nethack :) 18:54:57 maybe i'll port kobold. was a game i wrote in javascript, one room nethack, one monster (k) 18:55:20 turns out someone else did something rather similar 18:55:49 maybe i saw it and unconsciously plagarized it 18:55:51 zruty, not yet, but i'm going to do a C FFI eventually 18:55:59 since I want to go graphics with x11 or opengl 18:56:02 cool 18:56:06 SDL would be ideal for me 18:56:12 you do SDL, you get opengl and x11 both 18:56:21 does sdl offer a full graphics api 18:56:27 define full 18:56:30 like will it do hardware accelerated alpha blending and polygon rendering etc 18:56:38 or is it just a framebuffer? 18:56:52 it's a framebuffer api basically. more like directdraw 18:56:58 also offers a glut context 18:57:00 ok 18:57:16 that's what i thought:) 18:57:18 well once i add an FFI you'll be able to do SDL, but i'm not that interested in it 18:57:27 allegro has more of a toolkit, but allegro is kinda crufty and weird 18:57:34 i'd rather do direct opengl or x11 calls 18:58:08 --- log: started forth/04.08.31 18:58:08 --- join: clog (nef@bespin.org) joined #forth 18:58:08 --- topic: '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 || Note: this chan is publicly logged.' 18:58:08 --- topic: set by kc5tja on [Tue Aug 17 09:41:17 2004] 18:58:08 --- names: list (clog onetom cmeme Fractal lyca madgarden Robert slava Tomasu @ChanServ mur proteusguy I440r warpzero zruty @Herkamire) 18:58:28 i have a cruddy unaccellerated video card, so GL is usually kinda slow for me 18:58:51 gl for 2d isn't so bad, but even that often uses lighting 18:59:11 ok 18:59:19 i haven't decided between gl and libX11 yet 18:59:30 oh you don't want to do raw xlib 18:59:34 down that path lies madness 18:59:43 maybe cairo 18:59:50 or gdk 18:59:55 i don't know, haven't decided yet. 18:59:58 cairo would be kinda neat. gl's most universal 19:00:08 and gl very much lends itself to factor's model 19:00:20 forth in general, really 19:01:08 a C FFI would make it all possible of course 19:01:10 i've programmed with gl before, its nice 19:01:17 just busywork of writing declarations, is all 19:01:18 is libfficall any good? 19:01:23 god no it's slow 19:01:27 hmm 19:01:31 just straight dlopen()? 19:01:37 how portable is that? 19:01:56 fairly. win32 needs some macros to make it compatible 19:02:03 macs and other platforms have a few quirks 19:02:06 i only support win32 with cygwin at the moment anyway 19:02:09 beyond that it's pretty straightforward 19:02:31 i would help on the win32 front, but just erased it from my home box myself 19:02:40 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 19:02:43 --- join: skylan (~sjh@vickesh01-4677.tbaytel.net) joined #forth 19:03:07 win32's dlopen interface is pretty much 1-1 compatible with *nix. just different names 19:03:24 e.g. GetProcAddress instead of dlsym 19:03:40 yup. 19:04:00 i guess its possible to write some factor code to parse .h files and define words for calling C functions 19:04:04 and make constants for #define's etc 19:04:34 this is how the java binding to opengl functions -- they parse the GL header file, generate a Java class and a C++ JNI stub. it will be even simpler for factor 19:04:34 any call to procs in a dlopened lib are potentially slower than one where the lib is linked in tho 19:04:41 not by much tho right? 19:04:43 so it pays to have an API level FFI 19:04:44 its just indirect jump? 19:04:57 you mean linking the executable with the gl library? 19:05:08 relocation and the extra indirection pretty much 19:05:13 zruty: eargasm: lol. If I ever need to name a rock band, I'll just ask you for ideas 19:05:19 eargasm.com is taken :) 19:05:35 it's not responding though 19:05:53 gl i wouldnt worry about, display lists mean you can just batch stuff up and not call across the DLL every time 19:05:53 A call to a DLOpen'ed library just goes through an indirect pointer. That's it. 19:05:55 it's not even resolving. but someone did register it 19:06:24 zruty, kc5tja, yup 19:06:43 however, for an interpreted language like factor, you'll probably need a ffi lib 19:06:55 what do you mean exactly? 19:07:10 i'll have a compiler eventually btw 19:07:36 with a DLL, you can get the proc, but you still end up needing to cast it to the proc's type, which usually means you have a stub on your end 19:07:43 provided with header files of course 19:08:16 a ffi lib lets you dynamically build up the arglist without needing any prototypes 19:08:36 zruty, like i said, this can be done by parsing the .h file and creating words 19:08:41 zruty, with some support from the C kernel 19:08:54 i'll have a compiler eventually, too. 19:08:57 if you want to parse the .h file, that's definitely one way to go 19:09:21 zruty, java factor uses a similar solution to handle calls to java apis -- it dynamically generates java bytecode that does the boxing/unboxing of factor stack arguments, and the java call 19:09:35 you use bcel or something for that? 19:09:39 asm 19:09:41 similar idea 19:09:45 to generate java bytecode? 19:09:47 yes 19:09:49 damn... 19:10:02 how do you keep it portable? 19:10:06 what? 19:10:16 if it uses asm 19:10:18 asm library 19:10:21 asm.objectweb.org 19:10:23 not x86 asm :) 19:10:25 ohhh :) 19:11:02 i guess i could get my system interface through java factor 19:11:15 i just dont care for java 19:11:29 java got the speed thing fixed, it's plenty fast now, modulo the startup time 19:11:36 but the memory footprint, dear lord ... 19:11:44 no, ignore java 19:11:52 i'm definately doing the FFI in C factor 19:12:02 java factor is just there for the jedit plugin 19:12:34 startup time with cfactor is instant 19:12:38 its ready for input as soon as i release enter 19:12:47 and i want it to always be this way, even if it's starting a gui etc 19:15:32 cool. i could probably whip up a factor emacs mode. 19:16:34 that would be cool. there is a socket protocol for an 'inferior factor' 19:16:49 never figured out how to write inferior modes myself 19:16:52 for 'embedding' the cfactor repl 19:17:02 can probably just yank one from another language mode 19:17:40 btw how's the factor http server work, is socket support built in to factor? 19:18:00 yes 19:18:08 hm. how about unix sockets? 19:18:15 its certainly possible 19:18:17 i guess a unix socket would be pretty easy if not 19:18:26 yes, just add a new primitive for opening it 19:18:28 just a matter of changing protocol families and address syntax 19:18:36 the library provides a stream abstraction so everything looks the same to your code 19:18:43 neat 19:19:09 maybe that's enough to start on FactorHack :) 19:19:18 can just speak a gui protocol to a dumb front end server 19:19:36 ncurses won't be too hard, either using the ncurses library or reading terminfo files 19:19:52 zruty, Allegro + Forthy game console: http://www3.sympatico.ca/ppridham/misc/project/deathfist/console.png 19:20:15 i have this fantasy of rewriting ncurses for just the common terms (ansi and xterm basically) in something like retroforth 19:20:16 madgarden, cool 19:20:25 and transferring terminal descriptions and control codes as programs 19:20:36 heck, that sort of logic is in RFC1 19:21:28 which grew into, or informed the development of SUPDUP ... which went nowhere 19:21:30 slava, you should see my Forthy + MFC application I'm doing at work. ;) 19:21:44 poor RMS. i think SUPDUP was partly his baby 19:29:22 madgarden: neat ... i'm guessing the game's in C and the forth is embedded? 19:33:22 zruty, yes. The "Forth" is written in C. 19:35:26 i guess it's not too hard for any C based forth to do a C interface. just a matter of writing the prims 19:36:19 retroforth OTOH might be a challenge 19:36:36 maybe allegro has a asm interface 19:41:05 zruty, yep. The interface I use is pretty easy, similar to Lua's. 19:41:28 I don't think Allegro has an ASM interface, though some of it is written in ASM. 19:42:16 an asm interface is something of an oxymoron anyway 19:42:46 :) 19:43:46 not as much of one as "microsoft works" or "microsoft nt safe" 19:43:57 " a ffi lib lets you dynamically build up the arglist without needing any prototypes" -- what?? 19:44:37 You mention a "cast" requiring a stub? That doesn't make sense. 19:44:53 A typecast never generates any code (unless you're converting an integer to floating point or vice versa). 19:45:02 Certainly, pointer casts don't ever generate code. 19:45:28 And it is true, that you do need to marshal parameters if you're not using the same langauge as the target function's language. 19:45:42 An FFI library does provide that facility. 19:45:59 I guess I'm missing something? 19:47:06 ffi will assemble an arglist without needing a C function prototype to call 19:47:08 An ASM interface is one where parameters are kept in CPU registers. 19:47:42 You specify the types at run-time every time you want to make the call, that's why. 19:47:57 yep. makes it generally slower 19:48:00 very flexible tho 19:48:11 C is not hard to interface to. Just push arguments on a stack, and be done with it. 19:48:35 It's just a small smidgen above raw assembly. This is why Microsoft uses C calling conventions for its COM standard. 19:48:56 i thought it used __stdcall 19:49:18 I said for its COM standard. 19:49:19 i guess they're the same, just changes order and who pops 19:49:36 then there's __fastcall 19:49:42 The Win32 APIs use pascal calling conventions. 19:50:07 that always confused me when i first saw the declarations 19:50:20 They did it for a good reason: it conserves memory. 19:50:23 i once thought windows was originally written in pascal or something 19:50:37 pascal is where callee pops, right? 19:50:43 Yes. 19:50:48 and no varargs either. 19:51:55 not sure why it precludes varargs 19:52:10 Actually, come to think of it, I'm not even sure Win32 APIs use pascal conventions. I think they are also plain-vanilla C conventions. 19:52:18 It's the Win16 API that is all Pascal conventions though. 19:52:25 they're mostly pascal conventions i think 19:52:32 __stdcall == pascal 19:52:43 Because if the callee pops, the callee needs to know how many parameters are on the stack. The C compiler doesn't produce that information. 19:53:10 * kc5tja googles -- I don't believe that. 19:53:10 whereas the caller can just save where they were 19:53:20 makes sense 19:53:35 varargs are really heinous 19:53:47 they're usually death to optimization 19:54:45 OK, Microsoft's page on it pretty much confirms it. So Win32 also is Pascal calling convention. 19:55:13 except the kernel, which is all __fastcall 19:55:25 * kc5tja would like to write his own OS entirely in a really *nice* language, like Oberon. That would be very nice indeed. 19:55:48 any language that supports machine types can be used to make an OS 19:55:58 ocaml might be nice 19:56:23 Well, not ALL of them. BASICs usually support machine types, but hardly is considered a systems-level programming language. 19:56:32 you could 19:56:42 long as you bootstrapped the basic interpreter 19:56:47 But Oberon is *highly* modular, and its type safety is incredible. 19:56:56 you want type safety, try haskell 19:57:07 ocaml's awesomely typesafe too 19:57:29 tho most ocaml is best without the 'o' ... or only with the 'o' 19:57:35 Oberon is rock solid. Only three known exploits, and in all three cases, you MUST explicitly code for it, knowingly and willingly. 19:57:39 (and hence, is easily detected) 19:57:41 ocaml is like two incompatible languages in one package 19:57:46 dammit C retards, use garbage collectors: 19:57:46 display in free(): warning: page is already free 19:57:46 display in free(): warning: page is already free 19:58:01 IamgeMagick has a terrible UI too 19:58:03 and its buggy 19:58:03 *sigh* 20:01:06 We occasionally have a set of customers at work who try to install and use ImageMagick on their servers. Absolutely, positively, 100%, nothing but trouble. 20:01:31 anyone know a good tool for simple image manipulations? 20:01:37 at the moment i'm trying to crop some screenshots. 20:01:49 * kc5tja just plain uses GIMP. 20:01:52 yay, telnetd in factor too ... i could write a MUD :) 20:02:34 That's something I want to try in Forthy, too. 20:02:40 could even checkpoint it with save-image 20:02:47 Well, a text adventure anyway. 20:42:29 anyone around? 20:43:57 No, but I'm asquare. 20:44:07 you gotta see this 20:44:08 http://factor.sourceforge.net/jedit/ 20:44:13 check out the screenshots of the various features. 20:44:35 Every time I see "jedit" I think of Star Wars... 20:47:33 slava, that's some crazy stuff dude. 20:47:48 crazy? damn useful 20:48:02 i'll be coding circles around every other language :) 20:48:18 sup kc5tja 20:48:19 Well, crazy-cool I mean. 20:48:22 madgarden, :) 20:48:38 warpzero, check out the screenshots :) 20:48:38 slava, so how many damn PhD's do you have at this point? :P 20:48:45 madgarden, i'm an undergraduate :) 20:49:23 Hehe. 20:49:30 You smart kids piss me off. ;P 20:49:41 slava: what screenshots 20:49:47 warpzero, http://factor.sourceforge.net/jedit/ 20:49:50 warpzero, IDE integration for my language 20:50:00 madgarden, its not that complex 20:50:06 Yea, but still. 20:50:09 madgarden, the parser just tracks the source file of word definitions that are read 20:50:26 madgarden, and stores comments in a property list 20:50:31 slava, how does Factor save states? 20:50:32 complex is theorem provers and category theory 20:50:39 that stuff bends my brain 20:50:42 madgarden, i'm not sure what you mean 20:52:33 --- join: ADD-101 (XINU@12-222-128-22.client.insightBB.com) joined #forth 20:53:58 slava, can Factor save (to disk, buffer, etc.) its current state/system? 20:54:34 the c implementation can 20:54:37 its orthogonally persistent 20:54:51 How are you doing it? 20:54:57 dumping memory heap to a file :-P 20:55:02 reading it back in :-P 20:55:13 Heh. 20:55:36 So, factor uses a contiguous memory allocation scheme, like most Forths? 20:56:18 yes. when you allocate, a pointer is incremented 20:56:30 when you run out of room, it copies all reachable objects to a new heap 20:56:44 slava: is jedit the java one 20:57:25 slava, ahh cool. Forth simplicity. Too bad Forthy doesn't do it that way. :) Still, I'll come up with a way to persist. 20:58:54 i should work on mine own language 20:59:12 definitely 20:59:40 its so cool 20:59:47 it needs some implementation though 21:01:08 What's its dillyo? 21:02:28 its non-finite 21:02:55 and only has like 9 syntactical elements 21:05:08 What are they? 21:10:50 --- quit: zruty ("Lost terminal") 21:26:05 Alrighty. Done hacking on my resume for tonight. 21:26:24 Next step: Plan out what I want to say on my website, and figure out how best to express it. 21:26:33 kc5tja, hi 21:26:38 re slava 21:26:40 kc5tja, did you see my screenshots :) i'm really proud 21:26:48 Yes, I did. 21:27:05 how's fts/forth? 21:29:22 bash-2.05b$ ls -la a.out 21:29:22 -rwxr--r-- 1 kc5tja users 1290 Aug 30 10:25 a.out 21:29:41 bash-2.05b$ ./a.out 21:29:41 FTS/Forth System 2 for Linux 21:29:41 Copyright (c) 1989-2004 Falvo Technical Solutions 21:29:41 Type `license' to see license. 21:29:41 ok> This is a test. 21:29:43 This 21:29:46 is 21:29:48 a 21:29:51 test. 21:30:01 Not quite what most people think of when they think Forth. 21:30:03 But it's a start. 21:31:37 The actual code to implement the above is about three screens worth. 21:32:10 One containing the various global variables required to make it happen, one for parsing the words from the input stream (and its associated error checking code), and one for the main entry point of the software. 21:32:28 (obviously, there are screens required for the run-time environment too, but you get the idea.) 21:32:29 cool 21:32:45 slava: the factor+jedit stuff looks very impressive 21:32:46 ,: ParseWord ws ad /ws ad eat over, -, ;, 21:32:52 That's the key word that makes it all happen. :) 21:33:15 Herkamire, thanks. none of it is hard to implement -- i'm sure you could do the cross-referencing in herkforth if you wanted to 21:33:25 Herkamire, just loop thru the dictionary 21:33:37 slava: huh? 21:33:47 Herkamire, finding usages of a word 21:33:49 madgarden: @|=$*+%. [] () 21:34:01 to find usages, I loop through the source 21:34:09 and ^ 21:34:10 11 i guess 21:34:14 Herkamire, cool 21:34:20 a source token is a link to the dictionary plus some color bits 21:34:22 warpzero, @#$&! you too, punk! 21:34:22 Herkamire, that's better than what i do 21:34:23 ;P 21:34:31 lol 21:34:53 i just realized how easy it would be to make my language very forthy if one desired 21:35:37 slava: by "usages" you mean the places where the word appears in the sources right? 21:38:07 maybe I should add tab-completion to herkforth soon :) 21:38:52 that's very easy too, and all this stuff is a great help 21:42:06 eh, I'll do it later 21:42:26 Herkamire, and thanks for the status bar idea btw 21:42:37 * kc5tja has no cool way to store source code. 21:42:53 * kc5tja uses plain vanilla ASCII text in typical 1KB blocks. 21:46:45 kc5tja: that has it's advantages too :) 21:51:19 slava: I think I'm going to use your method of creating a new dictionary entry for things people type that don't exist (instead of a word-not-found error) 21:51:33 Herkamire, that's not my method 21:51:41 Herkamire, i have an error if you use a word that wasn't earlier defined 21:51:55 slava: really? 21:52:16 you don't allow people to type things that aren't in the dictionary? 21:52:37 maybe I'm remembering something else. My memory isn't at all clear 21:53:13 oh you can type anything 21:53:19 I just remember saying how I do word-not-found right in the editor, and somebody said that they just create an entry for it and stick it in the source. display it as an error or something so the user knows they have to define it or whatever. 21:53:21 the editor is plain text 21:53:48 huh 21:53:53 wonder what I'm remembering 21:54:00 lisp? :) 21:54:38 anyway, I'm thinking of doing that 21:54:54 right now you can't enter words in yellow (execute) or green (compile) unless they are defined already 21:55:01 won't your dictionary get cluttered with typos etc? 21:55:42 it's a little annoying sometimes because I often like to write my higher level words first, then the ones they depend on. 21:56:16 also it's not very humane to just discard user input and spit out error messages when they might not be looknig 21:56:47 I need code to clear out unused dictionary entries anyway 21:57:24 I just recently added dictionary export (to ascii) functionality which skips unused dictionary entries. 21:57:37 now I need to make the bootstrapping code discard the unused ones 22:01:02 trouble is, if I move dictionary entries (to fill in gaps where unused ones were) then I have to update all source tokens that refer to those dictionary entries 22:01:39 the other option that comes to mind is a sort of free list of unused dictionary entries 22:02:43 never move entries, just recycle unused ones 22:03:29 oh, that would actually be pretty easy 22:03:47 * kc5tja is really torn about how he wants FTS/Forth to evolve, actually. 22:04:28 kc5tja: what are you considering? 22:05:04 Well, FTS/Forth is intended to be a bare-bones, minimalist Forth environment, along the same lines as PygmyForth, only for Linux. 22:05:08 (and maybe L4). 22:05:34 But I recognize that plain-vanilla Forth just won't cut it for more sophisticated processing needs. 22:05:35 * Herkamire looks up what he said yesterday that he needed to do on herkforth before making it go native 22:05:50 is a native forth a lot of work? 22:05:52 it would seem so 22:06:13 I'm not understanding what you're saying by "Native Forth." 22:06:21 no OS. 22:06:22 FTS/Forth emits directly executable machine language code. 22:06:30 Native Forth systems are trivially easy to implement. 22:06:47 I meant OS 22:07:24 The hardest part of making a native Forth is the device driver softwar.e 22:07:25 I shouldn't say native. whenever someone else says it I ask what they mean 22:07:38 kc5tja: that's what I expect 22:07:42 Maybe "raw Forth" would be better? 22:08:00 kc5tja: OS seems to be the most clear 22:08:01 Note that I said it was the "hardest" part, not that it was hard in and of itself. :) 22:08:13 Interfacing to keyboards and harddrives appear to be only tedius, not complex. 22:08:39 apperas complex to me. 22:08:43 setting up DMA channels, etc. 22:08:57 What's so hard about it? 22:09:13 You stuff a few registers telling the hardware where to find/place data, and send it a command to "go." It does the rest. 22:09:38 What's complex is when you need to support 4,096 different variations of the hardware's chipset interface, because no two manufacturers seem to agree on a chipset interface. 22:09:52 at first I'll just do everything through OpenFirmware anyway 22:10:00 that's easy easy easy 22:12:03 Besides, the last I checked, IDE still supported polled I/O mode, and neither keyboards nor mice on PCs use DMA in any way, shape, or form. :) 22:12:12 UNLESS, that is, you're using USB, but that's a whole different ball of wax. 22:12:33 The nice thing about USB is that ALL devices communicate in the same way, so there is a lot of code re-use involved. 22:12:55 I have no choice but USB for keyboard and mouse 22:14:53 --- join: thin (thin@bespin.org) joined #forth 22:15:05 hi thin 22:15:14 sup slava 22:18:34 Herkamire: I have nothing against USB. Considering how overwhelmingly useful it is, I consider the complexity of supporting USB worth it. Whether it can be done efficiently in a relatively static language like Forth remains to be seen, however. 22:21:11 kc5tja, so you're planning on making fts/forth an OS? 22:21:23 I'll see what I can do 22:21:30 I'm not at all interested in dealing with it 22:21:35 I'm hoping I can get tathi to do it :) 22:21:40 Herkamire, what level of support does openfirmware provide? 22:22:27 slava: basically a READ and WRITE syscall and some way to get access to the frame buffer 22:22:36 ok 22:22:57 slava: Yes. 22:23:05 enough to get my current editor working 22:23:22 (I have been keeping/designing my editor to fit within these limitations on purpose) 22:23:40 once I get good keyboard drivers I'm going to make my editor humane 22:24:12 what does that mean exactly? 22:24:20 slava: Hence my primary interest in using L4 as a microkernel, within which multiple instances of FTS/Forth run as user-level processes, providing system-level services). 22:24:40 kc5tja, yup 22:26:17 slava: However, that being said, my ultimate OS-related goal is Dolphin. Which, frankly, I am thinking of moving away from Forth as a production-grade language, and moving more towards Oberon. 22:26:22 But we'll see. 22:26:27 cool. 22:26:42 Oberon is not 'small' though. 22:27:29 What do you mean? 22:27:53 kc5tja: could you explain what you meant by saying that forth is a relatively static language? 22:27:58 herkamire: you and tathi still live in the same room? 22:27:58 well, i mean exactly that. its much more comlex than forth. 22:28:02 kc5tja: you mean like it doesn't have multiple dispatch and such? 22:28:31 Herkamire: The code it produces is more or less on par with C as far as run-time adaptability to a changing environment. 22:28:34 thin: no, we moved apart about a year and a half ago I think 22:28:51 ah 22:28:59 kc5tja, what about EVALUATE? 22:29:03 kc5tja: yeah, you have to code in the adaptability by hand :) 22:29:11 kc5tja, and searching the dictionary for words at runtime etc? 22:29:13 sounds sucky, unless you guys were getting on each others nerves :P 22:29:25 slava: Try releasing a region of memory somewhere in the *middle* of the dictionary. 22:29:58 slava: Any language can do that. Some make it easier than others. But that's not what I'm talking about at all. 22:31:21 What I mean by adaptability is, well, it's ability to adapt to changing conditions in the most unintrusive manner possible. 22:31:37 like redefining existing words? 22:31:44 You insert a digital camera into a USB port, and the camera's driver loads on demand. Take it out again, and the driver disappears from memory. Etc. 22:32:05 No. Please see my examples as documented here. :) 22:32:12 ok 22:32:18 the dictionary could be redefined or implemented completely differently.. forth could be redefined etc 22:32:23 well, you could spawn a new forth process when the camera is plugged in 22:32:43 kc5tja: I agree 22:32:44 slava: Yes. But I would sure like to minimize that overhead as much as possible. 22:32:56 kc5tja, would it be that much overhead? 22:33:21 kc5tja: in the short term I'm not worried about that because I just want the keyboard. 22:33:54 In L4, the smallest IPC possible costs about as much as a user/kernel/user mode transition in Linux. If data needs to be copied from one process to another (e.g., passing parameters), then the length of time is longer. 22:33:55 i agree that the "old-style" forth isn't flexible enough 22:34:00 So yeah, it can get to be significant in some cases. 22:34:01 not much memory management etc 22:34:26 so a new generation of forht implementation needs to be made.. 22:35:48 Herkamire: My concern isn't whether you'll be needing it now, or two years from now. My concern is that if it's not properly considered, the whole OS architecture would break if you attempted to implement a new, streamlined method for handling dynamically changing environments. 22:36:40 wow 22:37:05 I don't think it will come to that 22:37:13 Look how long it took Windows 95 to evolve and merge into Windows NT's code base. I *never* want that to happen. Never. 22:37:27 yeah 22:37:38 it's tough when you have big applications depending on your way of doing things 22:37:47 Yep. 22:38:04 it's a little hard for me to worry about now, as I change the architucture regularly 22:38:28 Well, moving targets are expected to be moving targets. :-) 22:38:34 :) :) 22:39:08 while I like the idea of herkforth continueing to evolve at a rapid pace, if there are to be [m]any applications written by others, the architecture will probably have to solidify to some extent. 22:39:22 Now, i will say this much: as long as you can keep your message data small enough to fit into available CPU registers (hard to do on x86, but still doable; L4 depends on it itself), then IPC is very fast indeed. 22:39:42 kc5tja, what about a microkerenl with shared memory space 22:39:58 I gotta go to bed 22:40:02 slava: You mean AmigaOS? 22:40:16 yes 22:40:29 What about it? 22:40:38 night Herkamire 22:40:52 --- quit: Herkamire ("g'night") 22:40:55 i think some sort of concept akin to XP's continuous planning could be developed for the whole "never having to have win95 painfully evolve into winnt" i.e. somehow keeping adaptable enough for the future 22:41:07 rather than making a big plan and having it be false in the future 22:42:04 kc5tja, that comment about IPC, areyou talkihng about exo kernels? 22:42:16 thin: XP works for the development of "a" product. The problem is that an OS' architecture is constant by virtue of having "many other" products which mandates a certain kind of interface to work. 22:42:30 thin: Be specific. I don't know what you're asking. 22:43:42 the Os could have some sort of adaptive interface perhaps heh 22:46:16 To have one, the language must be able to express it. 22:47:17 kc5tja, smalltalk is the 'opposite' of forth in this sense. everything is late bound. is that what you mean? 22:47:27 kc5tja, on the other hand oberon is statically typed, so i'm kind of confused 22:49:57 in fact i don't really see why oberon would fare any better on the usb camera example than forth 22:59:02 good night 23:25:07 --- part: thin left #forth 23:26:06 And good morning. 23:37:43 slava: Well, even a language like C is "more dynamic" than Forth in that it dynamically manages memory (or, more accurately, CAN dynamically manage it). You can with Forth too, but the language doesn't make it particularly easy to do. 23:38:01 You can dynamically load in C modules, anywhere in the address space, etc. 23:38:38 With Forth, you can dynamically load in modules, true, but you cannot necessarily dynamically *dispose* of them afterwards. 23:44:23 Oh well. Either way, I think it'll be best if I get FTS/Forth running under L4 before attempting anything else, since that would make a kick-butt development environment in and of itself. 23:44:28 So, we'll see what happens. 23:56:29 Anyway, I'm off to bed. night all! 23:56:37 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/04.08.31