00:00:00 --- log: started forth/04.08.16 00:49:03 --- quit: mur_ (Remote closed the connection) 00:49:39 --- join: mur (~mur@smtp.uiah.fi) joined #forth 01:33:24 --- quit: mur ("Changing server") 01:35:40 --- join: mur (~mur@uiah.fi) joined #forth 01:45:52 * Tomasu is away: night 01:46:02 --- nick: Tomasu -> TomasuDlrrp 02:16:09 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 02:28:10 --- quit: mur (Read error: 110 (Connection timed out)) 03:45:30 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 05:02:25 --- join: Serg[GPRS] (~z@193.201.231.126) joined #forth 05:02:50 hiya ! 05:03:05 i hit the air show w/ my fake-Leica ;)) 05:03:42 --- quit: mur_ (Remote closed the connection) 05:04:17 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 05:08:36 hi mur ;) 05:15:44 --- join: mur_ (~mur@mgw2.uiah.fi) joined #forth 05:28:10 --- quit: mur (Read error: 110 (Connection timed out)) 05:35:10 I440r: I'll be back around 1700 UTC. 05:35:30 or if someone wants to tell him in case he doesn't notice...? 05:35:31 --- quit: tathi ("leaving") 05:47:19 * Serg[GPRS] throws depth-charge into channel to wake up someone 05:53:23 heh i saw that :) 05:53:29 tathi is back :) 05:54:46 * I440r_ is going to work :) 05:55:09 nice 05:55:16 any WAP-Yahoo ? 06:09:23 --- quit: skittle (Remote closed the connection) 06:18:45 --- join: mwc (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 06:20:10 --- join: mur (~mur@smtp.uiah.fi) joined #forth 06:24:34 If I need to organize the dictionary for maximum possible memory compactness while still preserving good speed (3 Mhz device with 32 KiB of RAM) should I be looking at something other than Binary Trees? 06:25:21 My first thought was Token threading, but with 16 bit tokens I don't know if that's of any use on a 16 bit forth 06:31:10 --- join: madwork__ (~madgarden@derby.metrics.com) joined #forth 06:31:13 --- quit: Serg[GPRS] (Read error: 104 (Connection reset by peer)) 06:31:19 --- nick: madwork__ -> madwork 06:31:56 --- join: Serg[GPRS] (~z@193.201.231.126) joined #forth 06:32:11 --- quit: mur_ (Read error: 110 (Connection timed out)) 06:44:14 Hey Serg// how was the airshow? 06:45:35 hi 06:45:43 it was thumb down ;((( 06:46:01 1) public was not let close to collector's planes 06:46:15 That's too bad 06:46:40 2) TV promised 80 WWII combat planes, actually i counted ~20, many trainers and after-war 06:46:56 The best part of airshows is talking to the crew, once when I was 10 a helicopter pilot spent 30 minutes showing me all the things in the cockpit, it was awesome 06:47:04 even Soviet ones from 'foreign collections' 06:47:07 Ouch, faulty advertising. How much did you have to pay? 06:47:36 10$ 06:47:59 [my 500$ is fairly good wage here] 06:48:28 +5$ for 2 rolls of Kodak Gold 200/36 ;)) 06:50:35 Heh 06:50:38 only 200s? 06:50:49 For an airshow, I'd use 400 at minimum. 800 if I could get it 06:50:57 out of 80 'WWII warplanes', where were TWO of Sovied An-2 (13 seat passenger biplane) and Mi-2 (light chopper, maybe 6 seats ex for pilot) 06:51:19 mwc: only standing planes 06:52:01 * Serg[GPRS] won't shoot at flying unless 500mm stabilized lens 07:13:19 i can get even 1600 color and 3200 classic b/w, but i keep ISO as low as possible for the reason of grain 07:14:11 135mm lens for my fake-Leica costs under 20$ in sec/hand store ;) 07:57:44 --- quit: Serg[GPRS] () 08:14:42 --- join: trap1010 (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 08:32:45 --- quit: mwc (Read error: 110 (Connection timed out)) 08:44:38 --- join: warpzero (~warpzero@150.131.80.21) joined #forth 08:49:50 --- join: trap1111 (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 08:53:12 --- quit: skylan (Read error: 104 (Connection reset by peer)) 08:53:24 --- join: thefox (~fox@adsl-68-122-3-81.dsl.pltn13.pacbell.net) joined #forth 08:59:29 --- join: skylan (~sjh@vickesh01-4633.tbaytel.net) joined #forth 09:01:10 --- quit: ChanServ (ACK! SIGSEGV!) 09:02:11 --- join: ChanServ (ChanServ@services.) joined #forth 09:02:11 --- mode: irc.freenode.net set +o ChanServ 09:04:26 --- join: crc (crc@0-1pool100-204.nas51.philadelphia1.pa.us.da.qwest.net) joined #forth 09:08:39 --- quit: trap1010 (Read error: 110 (Connection timed out)) 09:16:10 --- quit: thefox () 09:18:42 --- join: yome (~rewt@MTL-HSE-ppp180729.qc.sympatico.ca) joined #forth 09:29:04 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:56:03 --- quit: crc (Client Quit) 10:03:14 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 10:15:27 tathi: I440r_ is looking for you :) 10:15:59 arke: Yeah, I know. 10:16:07 :) 10:16:15 I thought I had told him I was going on vacation for two weeks 10:16:24 but apparently not :) 10:17:22 So...what have you been up to lately? 10:29:43 --- quit: trap1111 (Read error: 110 (Connection timed out)) 10:31:08 working on F2 10:31:15 including conversion from NASM to FASM 10:34:07 --- join: wossname (~wossname@ip68-10-153-220.hr.hr.cox.net) joined #forth 10:35:27 hi wossname 10:35:28 :) 10:35:30 ^_^ 10:35:30 :P 10:35:32 :D 10:35:34 (: 10:36:22 ~ 10:36:24 hello arke 10:36:50 LOL 10:37:37 dmwaters got TURNED INSIDE OUT, practically. This terrible calamity has slowed them 0 days, 00:11:55 from level 26. 10:38:23 ~ 10:39:01 asdfjkl; 10:39:27 what happens 10:39:39 IRC op playing IdleRPG ... I love it :D 10:40:26 --- join: randolm (~wossname@ip68-10-153-220.hr.hr.cox.net) joined #forth 10:40:55 i hate this damn firewall, telling me about things i dun need to hear 10:41:11 randolm: such that YOU ARE TEH WOSSNAME 10:41:29 ye 10:41:43 --- join: trap1111 (~mcox@CPE0030654f85d8-CM014400102747.cpe.net.cable.rogers.com) joined #forth 10:41:50 why are these UNSOLICITED PACKETS coming into MY MACHINE 10:43:37 --- join: ASau (~asau@158.250.48.204) joined #forth 10:43:45 Dobryjj vecher! 10:57:24 --- quit: wossname (Read error: 110 (Connection timed out)) 11:20:01 --- nick: trap1111 -> mwc 11:21:17 Good evening, mwc! 11:21:45 Good afternoon, ASau 11:22:09 Any news here? 11:22:34 I've been silent for a week, AFAICR. 11:22:46 :) 11:23:14 This damn job. 11:24:30 I'm trying to decide on the best implementation for a forth dictionary when memory is an absolute premium 11:24:43 Going from PPC assembler to 6811 has not been pleasent 11:25:20 Are you so short of memory? 11:25:29 32 KiB of RAM 11:25:32 mwc: for the links, maybe instead of putting the full 32 bits, use 8 or 16 bits and fill in the top part 11:25:35 which includes intterupt vector 11:25:43 Its a 16 bit forth 11:25:50 for an 8 bit microcontroller 11:25:52 That's enough for 16 bit Forth. 11:25:54 on a 2 bit board 11:26:07 Yeah, its just I'm used to being lazy with memory 11:26:33 bb 5 hours, work 11:26:35 FIG Forth lives pretty well within 16 KB. 11:26:50 I'm still trying to cope with only having 2 index registers... Last CPU had 32 11:26:56 yeah? 11:27:04 I'm sure it can be done 11:27:07 Sure. 11:27:13 I'm just trying to decide on implementation 11:27:27 I'm looking at red-black tree for the dictionary 11:27:34 Take the source from Taygeta. 11:28:06 I thought about a splay tree because it moves frequent elements to the top, but since every op implies a splay, its probably not for the best 11:28:33 I don't think RB-tree should speed up for much extent. 11:29:09 Well, I don't need to modify it for a lookup 11:29:19 Maybe you'd better compress words. 11:29:26 Hmm? 11:29:34 Not familiar with that technique 11:29:44 Static Huffman compression may be good for this. 11:30:08 Static? But I need dynamic compilation 11:30:17 Not sure if static compression is any good for that 11:30:49 Well, you may gather frequncies from Forth sources. 11:31:04 I'll be fine once I sort out my starting point 11:31:44 I'm planning on flattening the tree after deletion too, so that will help 11:31:49 RADIX-50 is also variant. 11:31:57 Though it's not as good. 11:32:00 er, flattening the heap the tree is in 11:32:49 This is what I'm working with: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=68HC11E1&nodeId=01624684498635 11:33:35 Too bad motorola didn't put 2 stack pointers in the 6811 like the 6809 had 11:35:40 It seems I've seen Forth for 6811. 11:36:29 Dig Eforth site, maybe it's there. 11:38:59 Found a few 11:44:58 Gah, the time it would take to make these work with my memory map probably isn't worth it. Special bootstrap places the interrupt vector tabels right in the middle of RAM 11:45:05 not to mention a pile of other DMA stuff 11:45:15 Oh well, back to work 12:03:38 --- quit: warpzero (Read error: 60 (Operation timed out)) 12:06:53 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 12:08:55 God kvaell, tgunr! 12:09:20 greetings & salutations 12:10:13 What's new here? 12:10:38 It seems that I've missed a week, but nobody is here now. 12:18:45 --- quit: tathi ("leaving") 12:22:10 --- nick: TomasuDlrrp -> Tomasu 12:22:13 * Tomasu is back (gone 10:36:21) 12:32:26 --- join: warpzero (~warpzero@uc80122.uc.umt.edu) joined #forth 12:42:47 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 12:44:29 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 12:54:02 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 13:08:48 --- quit: warpzero (Read error: 110 (Connection timed out)) 13:08:55 --- join: warpzero (~warpzero@uc80121.uc.umt.edu) joined #forth 13:26:09 --- quit: FlamingRain ("Leaving") 13:33:24 --- quit: randolm (Read error: 60 (Operation timed out)) 13:40:29 * Tomasu is away: stuff 13:42:55 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:44:12 --- quit: mwc (Read error: 110 (Connection timed out)) 14:12:17 --- join: _I440r_ (~mark4@216-110-82-205.gen.twtelecom.net) joined #forth 14:12:17 --- quit: _I440r_ (Client Quit) 14:12:55 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 14:13:19 sup I440r 14:13:26 hi 14:15:28 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 14:26:40 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 14:27:52 --- quit: I4404__ (Read error: 110 (Connection timed out)) 14:44:16 --- quit: FlamingRain ("Leaving") 15:01:18 * Tomasu is back (gone 01:20:49) 15:08:03 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 15:11:47 --- quit: FlamingRain (Client Quit) 15:36:12 --- join: blockhead (default@dialin-723-tnt.nyc.bestweb.net) joined #forth 15:48:38 --- join: semtex (~cryptobot@ppp-62-245-209-184.mnet-online.de) joined #forth 15:48:53 --- part: blockhead left #forth 15:48:56 semtex! 15:48:58 ltns! 15:48:59 lol 15:49:05 hi 15:49:11 /me aka bongo :) 15:49:16 yea lol 15:49:22 i know :) 15:49:23 you know this nick ? 15:49:26 hows bashforth ? 15:49:27 yup 15:49:35 ive seen you use it a cpl of times 15:49:39 didn't use it too often here 15:49:44 not too often :) 15:49:55 yall should hang in here more dood 15:49:58 how's you doing ? 15:50:04 got a new job! 15:50:09 im in texas permanantly now 15:50:11 san antonio :) 15:50:13 8051 stuff finished ? 15:50:29 the forth? 15:50:31 yea - sort of 15:50:43 your previous job was some 8051 related work 15:50:44 theres an 8051 forth on isforth.clss.net :) 15:50:49 oh yea 15:50:54 sort of finished :) 15:51:17 i published MY 8051 forth heh and the assembler for it too 15:51:26 nice 15:51:49 what u been up to ? 15:51:54 hows bashforth ? 15:52:04 well, been finished for about a year 15:52:20 i'm not spending my whole life improving one single program :) 15:52:56 :) 15:53:14 there are still hits on it 15:53:27 often, coming by search through google 15:54:34 kind'f surprising i find 15:55:07 that after a year or oneandahalf, people still looking into it 15:55:39 thought by now, about everybody who could possibly be intererested in it, has had 10 looks at it at least 15:56:55 (i have the server send me the referrers to the web site every day, so i stay informed how people find the site) 15:57:37 that also shows, if the referres is google, what they've been searching for 15:58:51 that's why i know that people are searching for bashforth 16:02:05 done a world mapper for the game bzflag in forth recently 16:02:30 using ant graphics for building placement 16:02:39 and same maze constructor 16:02:58 basically a simple text-to-text converter 16:03:16 world definition file in, pyramids and boxes out 16:03:32 --- 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.") 16:03:47 i use it for the bzflag maps i'm serving 16:05:05 hi 16:05:09 hi 16:05:50 that bzflag stuff is why my nick is semtex right now 16:06:03 cause it is my nick there 16:12:36 fucking gcc ;( 16:13:55 that's something for a change 16:14:48 heh 16:14:58 have you looked at isforth.clss.net lately ? 16:15:03 i have documentation there lol 16:15:06 tho its not finished 16:15:20 no, not very recently 16:19:03 --- quit: madgarden ("*frotz*") 16:19:21 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576090.sympatico.ca) joined #forth 16:19:29 --- quit: tathi ("leaving") 16:19:36 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 16:27:01 I440r, writing docs can get a bit tedious :) 16:27:12 no shit :) 16:27:31 but it has to be done 16:27:56 its bad tho when you cant remember th elogic behind your code becacuse you didnt document it right off lol 16:28:22 i have to study the elf file format again so i can document what fsave does - theres some tricky stuff going on in there 16:28:47 haha 16:29:00 i would like to see a more up to date version of the elf file format but nobody has botherd to create that either 16:29:21 for instance.. show me where the fucking brandelf shit is documented other than the fucking source for brandelf 16:29:38 heh 16:29:46 i'm glad i don't have these issues to deal with :)( 16:29:57 lol 16:30:32 will isforth support select() or poll() at some tsage? 16:31:08 it wont support select unless you add it - its just a syscall and adding support for a new syscall is EASY!!! 16:31:12 i designed it that way 16:31:26 syscall #parameters syscall# 16:31:33 i mean using select for all i/o 16:31:42 hell no 16:31:45 select is deprecated! 16:31:46 then you can have userspace threading 16:31:59 well, poll or /dev/epoll or whatever 16:32:05 threading will be added at a later date, there are other issues 16:32:29 i might have to rewrite some of the extensions 16:33:01 that's why i'm going for co-operative threading :-P 16:33:12 much simpler thread safety requirements 16:33:34 isforth will be using clone for multi tasking (or thats the plan atm) 16:33:46 fork will also be supported 16:33:57 you an fork now anyway 16:34:05 all you have to do is define the fork syscall 16:34:13 fork is safe, it uses copy on write 16:34:16 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 16:34:16 clone doesnt 17:10:38 --- quit: Topaz ("Leaving") 17:10:40 --- join: thefox (~fox@adsl-68-122-3-81.dsl.pltn13.pacbell.net) joined #forth 17:14:35 --- quit: semtex (Remote closed the connection) 17:28:06 --- join: TheBlueWizard (TheBlueWiz@pc2ddn1d.ppp.FCC.NET) joined #forth 17:28:07 --- mode: ChanServ set +o TheBlueWizard 17:38:04 native factor httpd has about 3x more throughput than java factor httpd 17:40:41 --- join: doublec (~doublec@coretech.co.nz) joined #forth 17:42:29 hi doublec 17:42:40 hi slava 17:43:29 slava, came across a library that has some nice information on the advantages of light weight threading and non blocking io: http://state-threads.sourceforge.net/ 17:46:08 doublec, i just committed some updates 17:46:16 doublec, the i/o system seems to be working reasonably well now 17:46:33 great! 17:47:16 i'm trying to figure out singal handling 17:47:32 can the signal handler just longjmp back to the top level, or does it have to set a flag, return, and have the top level check the flag? 17:47:58 I think it is not safe to longjmp out of a signal handler. 17:48:04 ok 17:48:52 The setjmp()/longjmp() pairs save and restore the signal mask while 17:48:52 _setjmp()/_longjmp() pairs save and restore only the register set and the 17:48:52 stack. (See sigprocmask(2).) 17:49:03 this would suggest its safe, no? 17:49:25 I might be operating from old info. 17:49:43 Applications that use longjmp() and siglongjmp() from within signal handlers require rigorous protection in order to be portable. 17:50:01 http://www.opengroup.org/onlinepubs/007908799/xsh/sigaction.html 17:50:24 basically i'd only longjmp out of divide by zero and stack underflow/overflow 17:51:48 Ok, it's probably fine. I see there is a posix siglongjmp and sigsetjmp that save the signal context too. 17:52:34 i'll give it a go. 17:58:28 ( 0 ) drop 17:58:28 a signal 17:58:32 good start heh :) 17:59:08 yup :) 17:59:18 are you using signal or sigaction? 17:59:28 sigaction 17:59:38 cool 18:01:08 i need to add signal handling to isforth too 18:01:15 its on the todo :) 18:01:42 ( 0 ) drop 18:01:42 ERROR: Signal 10 18:01:42 Stacks have been reset. 18:01:42 :s :r :n :c show stacks at time of error. 18:01:43 ( 1 ) drop 18:01:44 Bus error 18:02:27 looks like longjmp is not restoring it? 18:02:28 oh wait 18:02:42 no 18:02:49 i'm calling setjmp after setting the signal handlers 18:02:51 this should work 18:03:36 setjmp and longjmp are ugly :D 18:05:54 doublec, check out CVS it works now 18:06:07 ( 0 ) drop 18:06:08 ERROR: Signal 10 18:06:08 Stacks have been reset. 18:06:08 :s :r :n :c show stacks at time of error. 18:06:09 ( 1 ) drop 18:06:12 ERROR: Signal 10 18:06:18 Stacks have been reset. 18:06:21 :s :r :n :c show stacks at time of error. 18:07:19 doublec, can you verify that underflow and integer divide by zero are handled on linux? 18:16:07 slava, I'll check now. 18:17:49 ( 0 ) drop 18:17:49 ERROR: Signal 11 18:17:53 slava, seems to work fine. 18:18:54 slava, a drop after the signal gives a segfault though. 18:19:13 ( 0 ) drop 18:19:13 ERROR: Signal 11 18:19:13 Stacks have been reset. 18:19:13 :s :r :n :c show stacks at time of error. 18:19:13 ( 1 ) drop 18:19:13 Segmentation fault 18:19:22 are you running the very latest code/ 18:19:41 yes 18:20:02 i just got a report from mac os x -- there the signal handler works multiple times. 18:23:24 slava, If I change the code to use siglongjmp, sigsetjmp and sigjmp_buf things work fine for multiple drops. 18:23:44 I think maybe setjmp and longjmp don't handle signals in linux 18:23:45 oh that's great 18:24:02 setjmp and longjmp are an abomination anyway 18:24:18 doublec, can you check in your changes maybe? if they're clean :) 18:24:21 and i'll try it on fbsd 18:24:29 ok 18:25:05 slava, update cvs 18:26:00 well that works here too 18:26:05 cool 18:26:55 stack overflow works too 18:30:50 tables seem to be broken in latex2html -- look at http://factor.sourceforge.net/devel-guide/node27.html 18:32:06 doublec, in cvs, all i/o is done using callbacks 18:32:26 i'll add an in-thread combinator tomorrow 18:33:23 slava, how are you going to do the threading? 18:34:24 --- quit: thefox () 18:34:47 doublec, in addition to i/o tasks there will be a queue of tasks that voluntarily yielded 18:34:51 in-thread will add to this queue 18:35:13 next time i/o blocks or yield is called, it begins 18:35:21 ok, cool. I'll have to look into your i/o implementation, it sounds really nice. 18:35:34 i'll make a blog entry about it when its done. 18:36:03 basically, when eg, writing a string, it first checks if the buffer has enough room, if not it adds a i/o completion callback 18:36:45 ok 18:37:14 i still have to implement read# 18:37:17 post requests need it 19:01:30 doublec, i'm working on the factor plugin for jedit. i added some hooks to get the IN:/USE: of the current buffer 19:01:49 this will allow completion popups, as well as word usages queries for the word at the point 19:03:57 nice! 19:06:23 for example if i have my caret on 'namespace' and invoke 'see word at caret', it evaluates this in the REPL: 19:06:24 ( 0 ) "namespace" [ "strings" "namespaces" "kernel" "errors" "streams" "builtins" "scratchpad" ] search see 19:06:24 : namespace ( -- namespace ) 19:06:24 #! Push the current namespace. 19:06:24 namestack* vector-peek ; 19:08:09 i just did a 'usages of word at caret' action too 19:10:08 cool! 19:16:47 doublec, typing a partial word name shows a completion popup showing stack effects 19:18:09 that's great! 19:18:43 you've made a lot of progress on the plugin. 19:21:21 5 years of work on jedit's framework aside... :) 19:21:58 true :) 19:23:41 i've always wanted factor to have a great development environment though 19:30:31 --- quit: doublec (Remote closed the connection) 19:33:22 --- join: doublec (~doublec@coretech.co.nz) joined #forth 19:33:31 crash? :) 19:33:42 yup, X decided to stop responding. 19:34:09 we need factorOS :) 19:34:30 i'm in a situation where i'm not sure what X i'm running 19:34:34 it upgraded ports some days ago 19:34:39 and i think it pulled down xfree 4.4 19:35:04 I'm not sure what gentoo uses either. 19:35:24 i want to figure out a way to get the outer interpreter to accept multi-line expressions as input 19:35:55 I've seen implementations of Io and Gwydion Dylan running natively under the L4Ka::Pistachio microkernel so a factor OS could be quite possible btw. (http://l4ka.org/projects/pistachio/) 19:36:13 well, i'll leave it for when the more urgent things are done :) 19:36:46 i want to get the http server and underlying code into a state where it can be used to serve a low-bandwidth site without constant babysitting 19:37:00 the i/o reworking is of course part of this goal 19:37:05 that would be nice. I'm quite keen to keep a factor httpd running all the time. 19:37:43 socket timeouts is a big issue as there's quite a few random hits to the web server that just keep the socket open and do nothing. 19:38:04 gotta go...all bye 19:38:16 --- part: TheBlueWizard left #forth 19:38:21 doublec, should it be done using the select() timeout or is there a socket-specific flag? 19:38:34 --- quit: yome (Remote closed the connection) 19:39:26 doublec, i wonder how java does it 19:39:50 doublec, i notice a noticable increase in httpd bandwidth while running tests, due to the improved buffering policy 19:39:58 slava, setsockopt I think lets you set timeouts for send and receive 19:40:07 --- quit: onetom (Read error: 104 (Connection reset by peer)) 19:40:22 slava, yes, I noticed it too just before when looking at large vocabs in the inspect responder. 19:40:53 doublec, are you familiar with self's maps and mirrors? 19:41:43 slava, no, I'm not very familiar with Self apart from having briefly played with the Linux version. 19:43:45 bah, i wish i had a real 3 button mouse 19:43:59 i accidentally roll the wheel while middle-clicking more often than actually using the wheel 19:44:14 --- quit: ASau () 19:44:27 i have a 5 button mouse 19:44:33 so do I 19:44:36 i got no fscking idea what the other 2 buttns are for 19:44:39 (accidentally roll the wheel that is) 19:44:43 I440r_, hahaha 19:44:54 actually my mouse can also TILT its wheel 19:44:56 I440r_, I think in windows they map to IE's back/forward 19:45:00 so thats 7 buttons 19:45:17 next thing you know they're selling keyboards with a roller wheel underneath :) 19:45:24 hehe 19:45:31 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 19:45:52 I440r_, you need to make an IDE for isforth methinks :) 19:46:12 define "an IDE" 19:46:21 forth IS a freeking interactive development environment 19:46:27 IDE's are NOT interactive 19:46:40 I440r_, i don't mean MS visual studio etc 19:46:53 I440r_, like a back and forth integration with some editor 19:46:54 phew 19:46:57 hehe\ 19:47:02 oh. thats planned 19:47:04 type EDIT foo in your forth 19:47:11 and it opens vim/emacs/jedit/notepad at the definition of foo 19:47:13 yup 19:47:19 its on hte todo list 19:48:01 let me know when you're coding it, i'll add jedit support. :) it supports running jedit +line:123 foo.fs, or a socket protocol 19:48:23 isforth problly wont EVER have a built in editor 19:48:28 it will use $EDITOR 19:49:00 tho some day i might write one 19:49:15 some forths have block editors built in 19:49:21 but only because ive never found a single editor in linux that had sane cursor handling 19:49:30 thats already in the works 19:49:38 but keyboard input is a fucktard in linux 19:49:44 tty input? 19:49:49 and i refuse to create a fucktard user interface 19:49:52 yes 19:49:55 any terminal 19:49:58 why is it a pain? 19:50:02 are you using ncurses? 19:50:17 because you cannot guarantee any fucking key will make it to your application 19:50:26 other than a thru z 0 thru 9 and a few other keys 19:50:45 wha...? 19:50:45 alt + key might be stolen by the operating sytem or the x console or xwindows itself 19:50:50 oh 19:50:56 well any program has this problem 19:51:04 you can guarantee almost NO keypresses 19:51:26 which makes user interfaces in unix a totaly clusterfuck 19:51:38 escape alt shift backspace backspace 19:51:41 now your in insert mode 19:51:59 alt f10 control k g f1 19:52:06 now your in overwrite mode 19:52:07 fuck that 19:52:09 hahahaha 19:52:18 TWO keypresses for ANY function MAX 19:52:27 and control, alt and shift are ALL keypreses 19:52:33 have you heard about raskin's idesa for a 'humane interface'? 19:52:36 i think you'd like them 19:52:43 so if it cant be done with shift plus key or alt plus key or whatever 19:52:47 then its already fucked 19:53:01 raskin is a pipe dreamer 19:53:09 and is already encountering problems with THE 19:53:39 which is why he is running a competition that to get the same keypresses accross varios operating systems 19:54:02 the bittest problem is the fuckheads that create terminfo databases 19:54:10 they dont do a complete job 19:54:16 they NEVER do a complete job 19:54:35 the fucking terminfo database for every fucking terminal in existance is SERIOUSLY broken 19:54:44 for example... xterm 19:55:05 xterm supports both the sgr escape sequence AND the sgr0 sequence 19:55:16 but the terminfo file has a format string for ONLY sgr0 19:55:33 Herkamire noted that reading keycodes from the mac keyboard controller is easier than unbuffered tty input in linux 19:55:52 so the ONLY way to reliably set or clear attributes on ALL terminals is to do an sgr0 (reset all attribs) and then RE-establish the ones you didnt want to clear 19:56:22 and the absolute SLOWEST thing you can do in a linux terminal is to set any given attribute 19:57:02 which is why ncurses writes all characters of a given attribute (repositioning the cursor all over the place) before writing any char of any OTHER attribute 19:57:18 get attribute of first char and set that attribute 19:57:30 output all characters with this attribute... cross them off the list 19:57:46 get next attribute from list. and output all chars with that attribute.... 19:57:52 etc, etc, etc 19:58:12 and no i wouldnt use ncurses if bill gates offered me his entier forutne to do so 19:58:24 you just hardcode some escape codes? 19:58:26 slava, looking around it looks like the right way to do timeouts on sockets is via select. 19:58:31 isforth has an almost complete ncurses replacement that takes up about FOUR K of code space 19:58:46 no. i have a terminfo database parser built in 19:58:56 plus a text windowing system 19:59:02 the only thing i dont have is sub windowing 19:59:28 and i dont write bullshit code just to cater to the fucking gazillion inconsistencies of every single bullshit nobody ever uses it anyway terminl type 19:59:32 ncurses does 20:00:19 in case you cant tell this entier subject seriously pisses me off 20:00:30 its why i havent done a fscking thing in isforth for over a year 20:01:37 my only solution would be to write an XLIB interface for isforth and make isforht an x based applicaiton... a whole new terminal emulation program in otherwods 20:02:02 well, X is useful for more than terminal emulation :) 20:02:13 no. thats not the point 20:02:17 have you seen the oberon TUI? 20:02:48 the point is that the ONLY FUCKING WAY isforth will ever have a SANE fucking user interface is if i take the 20 years to figure out how to interface to X without using some fucked up 23908475629378465972 meg library 20:03:11 make that gig 20:03:50 isforth will NEVER use any external libraries 20:03:51 EVER 20:04:03 ill add the option for users to do so but isforth WILL NOT do so 20:04:11 you use linux :) 20:04:17 --- quit: tgunr (Excess Flood) 20:06:06 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 20:10:09 Linux is the BIOS :P 20:10:34 not a dynamic library 20:16:39 slava, how is a the string name for a primitve that is typed in the interpreter mapped to the primitive function? 20:16:54 slava, (in other words, If I were to add a C function how would I add it as a primitive?) 20:17:02 doublec, its a bit complicated 20:17:19 doublec, make-image writes word objects for primitives 20:17:31 doublec, see the big list in library/cross-compiler.factor 20:17:50 doublec, this must match the array in native/primitives.c 20:18:06 slava, ahh that's the missing link I was looking for. Thanks! 20:18:12 doublec, the primitives must all exist in the host factor 20:18:17 doublec, but you can DEFER: them 20:18:19 doublec, what are you coding? 20:18:21 doublec, I saw the primitives in primitive.c but not the ones in the cross compiler. 20:18:32 yeah, odd things happen if the two lists are out of sync :) 20:18:43 slava, nothing yet. I was just browsing the code and the question popped up. 20:21:03 doublec, at some stage i will auto generate primitives.c and/or the list in cross-compiler.factor 20:22:10 --- join: yome (~rewt@MTL-HSE-ppp180729.qc.sympatico.ca) joined #forth 20:26:04 http://factor.sourceforge.net/factor-snapshot3.png 20:26:34 nice! 20:26:57 also the parser now has a mode where it continues after an error 20:42:29 --- quit: madgarden ("*frotz*") 20:42:45 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576090.sympatico.ca) joined #forth 20:53:17 doublec, update cvs if you want to try the completion popups 20:54:37 ok, will do. 20:58:19 wait i found a few bugs 20:58:33 --- part: yome left #forth 20:59:00 too late :) 21:03:55 doublec, ok you can cvs up now and give it a spin. 21:04:03 ok 21:04:05 doublec, bind a key (eg, C+SPACE) to plugins-sidekick-show completion popup 21:05:12 you should try using the plugin for development. just the live error checking makes it worthwhile (and more worthwhile now that it doesn't die after one error) 21:05:26 i will do 21:06:41 --- quit: jDoctor ("leaving") 21:09:58 slava, how do I bind a key to plugins-sidekick-show? 21:10:05 it works selecting it form the menu, very nice! 21:10:48 doublec, utilities-global options-shortcuts 21:11:33 slava, aha thanks! 21:12:18 try putting caret on a word and doing plugins-factor-word usages at caret 21:12:40 nice! 21:13:00 I have to head off now but I'll definitely be using this, thanks! 21:13:05 i'm off to sleep. 21:13:07 good night. 21:13:12 cya 21:13:13 --- quit: doublec ("Leaving") 21:30:00 --- quit: arke ("brb, switching to shell account") 21:30:14 --- join: arke (arke@adsl-69-211-105-134.dsl.chcgil.ameritech.net) joined #forth 21:37:48 what GNU package has ssh? 21:38:16 openssh is not gnu 21:38:43 that explains alot 21:52:44 2ARGHGHGGHGHGHGHG!!!!! new binutiols is UNABLE TO GENERATE CODE FOR MY ARCHITECTURE!!! WTF!?!?!?! 21:52:55 what is your arch? 21:53:52 UltraSparc 1 21:54:04 nothing too ancient 21:54:14 but ever since I upgraded, it doesn't generate code anymore 21:54:17 piece of fucking shit 21:54:38 and fucking make uninstall says "not supported in this tree" 21:54:39 FUCK 21:58:10 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 21:58:31 --- mode: ChanServ set +o kc5tja 21:59:11 kc5tja: would you believe this shit 21:59:11 kc5tja! 21:59:20 kc5tja: upgraded binutils DOES NOT SUPPORT MY ARCH 21:59:26 kc5tja: but you think it would tell me? 21:59:27 kc5tja: NOOOOO 21:59:31 kc5tja: does make unistall work? 21:59:33 kc5tja: NOOOO 21:59:37 kc5tja, i just have to show this off: http://factor.sourceforge.net/factor-snapshot3.png 21:59:39 FUCK 21:59:45 arke, :( 21:59:48 kc5tja: rendered my sparc pretty much useless unless i reinstall. 21:59:49 FTS/Forth for Linux now has the new code generation engine in place. It can perform Linux console I/O once again. :-) 21:59:50 arke, can you just install old version? 22:00:00 kc5tja, cool to see progress on that front! 22:00:08 slava: did. still doesn't work. 22:00:24 kc5tja, coul you adapt the kestrel video code to give us a nice SDL console for FTS/forth? :) 22:00:31 slava: hmm, maybe I should delete binutils binaries from /usr/local/ 22:00:36 kc5tja: :) 22:01:05 slava: That will take a lot of work. I need to retrofit the code generator to emit *shared object* ELF files, not statically linked files. 22:01:13 kc5tja, i see 22:01:22 I am not ready to make that kind of investment at this time. 22:01:30 kc5tja, did you loojk at the screenshot? :-) 22:01:41 Not yet. Looking now. 22:02:26 Your screenshot is rather large. What resolution do you run at? 22:02:26 oh yay, it works now. 22:02:39 kc5tja, 1280x1024, but the editor is set to full screen :) 22:02:57 kc5tja: you know what I just realized? 22:03:12 kc5tja: I have to write an editor on linux :) 22:03:19 kc5tja: because its not ASCII source 22:03:21 arke, ANOTHER editor? :) 22:03:28 arke, a non-ascii editor? :) 22:04:43 slava: An interesting thing that one CAN do with FTS/Forth for Linux is implement a graphics *server* which can be communicated via sockets. 22:04:47 slava: yeah. F2 source is preliminary ASCII with color tokens. will later be better though. 22:04:52 (since socket interfaces are supported via the kernel.) 22:04:57 kc5tja: cool. 22:05:01 kc5tja, like NeWS? 22:05:03 Although performance will be pretty slow, it would at least be a first step. 22:05:10 aww FUCK. configure script crashes on creating makefile. 22:05:16 arke, :( 22:05:26 Well, if you interpret Forth code using GForth instead of FTS/Forth, sure. 22:05:36 Remember, FTS/Forth is a fully linked. 22:05:40 Also, why am I even saying this??? 22:05:45 FTS/Forth does not exist yet. 22:05:47 kc5tja, hmm? NeWS was a window system from the 80's 22:05:50 I'm talking about FTS/Forth's cross compiler. 22:06:01 slava: Which used Postscript as its graphics language. 22:06:04 kc5tja, right 22:07:06 yay, fixed 22:07:09 (i think) 22:07:19 slava: Point being, it was a language interpreter which also was coupled to display memory of some kind. FTS/Forth can do the interpretation OK, but it cannot (yet) invoke C library calls required to gain access to a framebuffer. 22:07:31 right 22:08:37 hmm 22:08:43 maybe I'm doing this a bit complicated. 22:08:58 Anyway, this actually kind of sucks now, because I need to actually implement a real Forth system on it now. :) 22:09:00 Maybe I should write a cross-compiler. 22:09:07 kc5tja: :) 22:09:14 Which means much of my work has to be done all over again. And then some. 22:09:25 kc5tja, why over again? 22:09:46 Because the cross-compiler depends on features already present in GForth (e.g., converting a number from string form to binary form), etc. 22:09:54 oh right. 22:10:00 FTS/Forth, being all brand new code, doesn't have that facility by default; I have to write it. 22:10:29 http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/library/platform/native/parse-numbers.factor?rev=1.8&view=auto 22:10:45 The nice thing, though, is that the "Forth Banner" program I have (which is my own version of Hello World, I guess) consumes 807 bytes, including ELF header. 22:10:50 the first 6 words will be trivial to port to FORTH. 22:10:56 changing [ ] [ ] ifte to IF ELSE THEN 22:11:08 However, it also lacks any semblence of a dictionary too. 22:11:12 changing <% % %> to <# #> and whatever appends 1 char to PAD :) 22:11:56 brb -- roommate is home. 22:40:38 kc5tja: do you know if for floppies AND harddrives, theres 0x50 tracks per head and 0x12 sectors per track?> 22:43:30 arke, what sets f2 apart from the competition? 22:44:53 slava: the code. 22:44:56 slava: just kidding. 22:45:33 slava: lean mean using machine. 22:45:44 slava: that is, it has a gUI. but its simple. 22:45:54 slava: as in, ION based. 22:46:12 slava: you can have VTs with different resolutions. or even one in text mode. 22:46:42 slava: run IRC in a 80x25 VT and then switch to browser in next VT which is in 1024x968 22:49:35 back for now 22:50:08 arke: Harddrives have wildly different geometries than floppies. 22:50:24 :/ 22:50:38 so that means trying to find a BIOS function that tells me what they are. 22:51:35 Yep, or you can examine a set of variables in the boot-code, which is set at the time the boot record is written. 22:51:52 Which, I believe, is what 99.999% of PC operating systems do. 22:52:25 * kc5tja is strongly considering researching a time-sharing Forth implementation. 22:53:28 boot record? 22:54:32 oh, i think I found a direct probing snippet for disk geometry 22:57:54 jeez, if I keep going like this, I won't have neough room in my boot sector :) 22:58:09 arke: The boot record is the very first sector on the disk. It contains the 512 byte chunk of code that gets executed when the system boots. 23:00:04 There is a reason a portion of the MBR (and all other BRs) have a BPB data structure embedded in them. :-) 23:00:46 BPB is only for Fat though, right? 23:00:47 :/ 23:00:56 Wha? 23:01:10 BIOS Parameter Block -- has nothing to do with FAT. 23:01:56 Well, OK, it has fields for FAT. 23:02:02 (e.g., # of fats, where they're located, etc) 23:02:18 But the fields that are used by BIOS and boot-loaders are related to disk geometry. 23:02:27 o 23:02:28 ok 23:02:31 oko 23:02:34 and where does it put the BPB? 23:02:45 (any snippets or docs online you can point me to?) 23:02:47 mur: terve 23:02:52 terve arke 23:02:56 arke: I already said. 23:03:40 The BPB is an embedded data structure in the boot sector. BIOS in and of itself doesn't use it, so you don't HAVE to use it yourself. In fact, it'd probably be just as good if you didn't. There are a lot of fields that don't apply to a non-DOS disk. 23:04:27 What is important is this: the disk geometry is determined *WHEN* the boot sector (aka boot record) is written. It is NOT determined at boot-time. 23:04:55 The boot code just reads the geometry data from the in-memory image of the boot sector. 23:05:12 E.g. 23:05:16 ORG 0000h 23:05:20 CALL boot_me 23:05:31 DW cylinders ; Filled in by FDISK or Format 23:05:35 DW heads 23:05:43 DW sectors 23:06:04 boot_me: POP BX ; BX now points to the data structure; fetch values, load OS as appropriate. 23:06:40 h, i see. 23:08:05 Hmm...on GForth, my cross compiler now consumes only 2,468 bytes of memory on GForth/x86, not including the 64KB image buffer. 23:11:21 relative jump should only be 2 bytes (opcode+8 bit relative) 23:11:26 even in 32 bit mode 23:11:26 right? 23:11:51 So that's about (roughly) 2.5KB. The core editor (VIBE 2.2 core) takes 6.5KB -- total of 9KB so far. 23:12:03 vibe runs in fts/forth? 23:12:07 If you use the short form of the jump, yes. 23:12:15 slava: Again: FTS/Forth proper does not yet exist. 23:12:31 Only the cross-compiler for it exists. :) 23:12:41 These figures are for GForth. 23:13:19 I expect another 3KB or so to implement numeric base conversion routines, and another 3KB or so for dictionary searching. 23:14:36 Well, let me rephrase -- *if* I were to directly port VIBE and the target compiler to FTS/Forth (which absolutely will happen), one can reasonably expect them to take around 4KB and 8KB respectively (I'm being conservative here, since I know that FTS/Forth code images are bigger than their GForth equivalents). 23:15:39 hmm 23:15:43 you know what 23:15:55 While I'm at it, I might as well just do it all in the bootsector. 23:16:08 have a header include file. 23:16:19 and put the header somewhere in memory 23:17:00 you guys scare me 23:17:04 squeezing so much stuff in 3kb etc 23:17:24 > ls -l f factor.image.le 23:17:24 -rwx------ 1 slava slava 46464 Aug 16 21:25 f* 23:17:24 -rw------- 1 slava slava 186344 Aug 16 21:01 factor.image.le 23:17:24 slava: Hehe :) 23:17:44 although the executable will get cut in half pending some changes 23:18:12 A usable Forth environment will be about 32KB on a 32-bit architecture when it's done. 23:18:22 (64KB to 96KB for a RISC processor) 23:19:12 My HelloWorld application compiles to 586 bytes, if that's any consolation. :) 23:19:26 (however, it also inlines primitives, for speed.) 23:20:51 Yeah, I think the L4-based Forth environment will be very nice indeed. 23:21:06 right 23:21:14 Because then I can finally write my "no-bullshit" OS, and I can do so in Forth. 23:21:28 That'll give me the benefits of a Forth environment AND a traditional OS environment. 23:21:38 Because microkernels are just plain cool like that. 23:23:52 * kc5tja can see having a punctuated Forth environment and a ColorForth environment all running side-by-side, in separate address spaces, communicating and cooperating together. And when the going gets really tough, I (or someone else) can help port L4/Linux to the system and implement an LPAR for it. :) 23:24:16 Linux, Forth, and ColorForth, all working on the same system....now THAT would truely be fantastic. 23:24:58 i think puctuated forth can be done as just a text interpreter on top of colorforth no? 23:24:58 Although, personally, my interest is in a more AmigaOS-like OS environment rather than Linux. But that's OK too -- because that can cooperate too! 23:25:20 slava: The two environments store their source code in very fundamentally different ways. 23:25:32 However, the compiled code can interoperate at the binary level very easily. 23:25:43 i mean a text -> c4th converter 23:26:02 There are some things that a punctuated Forth can express easier than a ColorForth can. 23:26:30 CREATE/DOES> is something that is almost always foreign on a ColorForth system. 23:27:23 good point. 23:27:44 also, i presume, immediate words (in the form of a flag or vocabulary) 23:27:49 rather than immediate instances of words in source 23:27:57 OTOH, ColorForth has features that are absolutely *impossible* to achieve in a punctuated Forth, such as the 2-level persistent store that is *almost* transparent. :) 23:28:18 :) 23:28:59 (Note that I'm referring to a Chuck Moore ColorForth variant, and not Enth/Flux; I've never used Enth/Flux, so I'm not at all sure how such a system works or is intended to be used.) 23:29:22 slava: ColorForth and Punctuated Forth both support the concept of immediate words. 23:29:46 However, ColorForth has a cleaner "syntax" for using them in various instances. 23:30:07 but CF doesn't really support CREATE/DOES> 23:30:21 In some respects, CF doesn't need to. 23:30:32 In fact, I currently don't support CREATE/DOES> in my code either. 23:30:45 its not needed. 23:30:50 but nice sometimes. 23:30:54 : buffer r> ; 23:31:02 : $emit-buffer$ buffer [ 1 allot 23:31:04 or, bnetter 23:31:10 : buffer pop ; 23:31:17 : emit $emit-buffer$ C! $emit-buffer$ 1 type ; 23:31:31 yep 23:31:31 :) 23:31:40 push and pop are meaningless to me. 23:31:49 Forth has a minimum of two stacks. 23:32:06 push and pop are much less confusing than >r r> 23:32:08 You're constantly pushing and popping values onto and off of them. 23:32:28 kc5tja: yes. But only on the rstack are you doing it "explicitly" (wrong word?) 23:32:35 arke, unless you have > 2 stacks 23:32:48 >r r> >n n> >c c> 23:32:53 slava: I only have two stacks :) 23:33:02 slava: or, rpush rpop npush npop cpush cpop 23:33:17 nothing wrong with verbosity. 23:33:23 but, I will get back to coding :) 23:33:44 I'm not a fan of them, but I digress. It's not terribly important. 23:34:02 If my code doesn't look like it came off of an IBM S/360 mainframe screen, it's not Forth-y enough. :) 23:35:11 speaking of S/360s, I got a glimpse of using its TSO environment early this morning. 23:35:21 Man, using OS/360 is like programming in BASIC! 23:35:21 cool :) 23:35:53 I can *totally* see how IBM's environment inspired so many different languages: PL/I, REXX, and many more. 23:36:28 if you've ever written in REXX, or PL/I, then you pretty much know the basic command syntax for OS/360 commands. 23:36:38 Dude, it's command prompt is even "READY". :) 23:36:45 I haven't seen that since I last used BASIC on the Commodore 64. :) 23:38:05 :) 23:38:19 next thing you know, you'll be doing LOAD "$",8 23:38:22 :) 23:38:26 brb new X11 23:38:33 --- quit: slava ("Leaving") 23:38:47 kc5tja: remember that? LOAD "$",8 :) 23:45:17 No. I'll be typing something like Dolphin LOAD instead. 23:45:54 but you remember that right? 23:46:32 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 23:46:37 xfree 4.4 and new nvidia driver 23:49:58 --- quit: slava (Read error: 104 (Connection reset by peer)) 23:50:42 Of course. 23:50:55 I grew up on a C64, though I moved to an Amiga soon after. 23:51:03 :) 23:51:03 And it's the Amiga taht is the single most influential machine I ever operated. 23:51:11 kc5tja: we're getting old :) 23:51:50 well, like I said -- the PC will have its own implementation of a highly Amiga-like operating system when I'm done with it, even if it is a console-only OS. 23:52:00 :) 23:52:05 (which, I suppose, would make it more VMS-like, but that's OK too -- I love VMS too) 23:52:08 AROS doesn't count? :) 23:52:12 :) 23:52:23 AmigaOS has a few flaws in it which AROS preserves. 23:52:30 * kc5tja is starting over from a clean sheet of paper. 23:53:05 My first intent is actually to try and learn as much as possible from time-sharing Forth as I can. 23:54:02 Maybe, if I'm lucky, I can start hosting websites on the system, all the while playing with the OS itself, all in Forth, while the system is live on the network. 23:54:39 :) 23:55:00 I do need to implement a filesystem for the box though. That is definitely a requirement. 23:55:15 Even if it is only FAT-16, it does need one. 23:56:16 Actually, what I'm thinking of is to have the OS boot up with the root directory being a RAM disk. 23:56:43 The volume manager of the OS is responsible for creating special filesystem mount-points in the RAM disk at the root level. 23:57:08 Symbolic links can be used to establish the equivalent of VMS' "logical names" and AmigaOS's ASSIGNs. 23:58:32 Also, at boot time, the boot drive would automatically receive a symbolic link /sys. 23:58:44 This way, /sys/foo would be a valid path, for any boot device. 23:59:59 --- log: ended forth/04.08.16