00:00:00 --- log: started forth/01.10.19 00:20:35 --- quit: I440r () 03:17:03 --- quit: MrReach (Read error to MrReach[209.181.43.190]: Connection reset by peer) 03:18:21 --- join: MrGone (mrreach@209.181.43.190) joined #forth 07:17:03 --- join: smordech (bronko@A8218.pppool.de) joined #forth 07:17:07 --- part: smordech left #forth 08:09:55 --- log: started forth/01.10.19 08:09:55 --- join: clog (nef@bespin.org) joined #forth 08:09:55 --- names: list (clog MrGone) 11:07:46 --- nick: MrGone -> MrReach 11:14:45 --- join: futhin (thin@h24-66-209-114.cg.shawcable.net) joined #forth 11:14:54 howdy 11:14:57 (brb) 11:15:00 hihi! 11:17:06 back 11:17:16 you could've typed it all out while i was gone :) 11:17:23 I've been thinking about how to effeciently incorporate shared libraries into forth 11:17:30 I have been typing 11:18:27 when using an already existing OS, things are pretty much fixed 11:18:55 but there is still some leeway regarding interface 11:19:07 hm 11:19:22 hm == "i'm here and listening ;)" 11:19:23 I very much like the idea of C header files 11:19:45 but they're syntax doesn't really make sense in Forth 11:20:32 in gforth you can do "require blah.fs" it's pretty cool 11:20:48 yes, but that doesn't let you into the shared libs 11:21:05 glibc, for example ... which gforth uses extensively 11:21:41 the fact is, were gforth not written in C, getting to glibc would be a nightmare 11:22:25 ture 11:22:26 true 11:23:14 I was thinking that using a lib should be as simple as ... 11:23:36 NEEDS blah.4th ALSO blah-words 11:24:28 then one could do ... 11:24:46 : test 1 2 blah-func1 . ; 11:25:39 that's pretty close to ANS, too 11:26:57 (ANS doesn't have NEEDS, and it's non-trivial) 11:29:19 you are obviously quite busy ... sorry for disturbing you. 11:35:32 woops 11:35:57 you annoyed at me for being away? 11:36:07 fustrated 11:36:11 yeah 11:36:20 It's hard to find someone to talk forth to, as you well know 11:36:30 yep yep yep.. but i'm on your icq list :) 11:36:35 and this channel has been somewhat empty for several days 11:36:44 yeah 11:37:01 well geez, i started playing on the mud that i440r plays on and got distracted from my higher goals heh 11:37:12 heh 11:37:24 plus there's some midterms coming up 11:37:45 I440r would probably say that using shared libs is *EVIL* ... and that all needed functions should be coded in Forth 11:37:58 ah! forgot you were in school 11:38:07 heh :) 11:38:29 shared libs are probably evil ;) we should rid the world of C and make everything coded in forth 11:38:54 heh ... you go ahead and try to recode the XWindow system so that it's "right" 11:39:14 not me, I want to accomplish other things in my life. 11:39:17 heh 11:40:15 i'm thinking more of an os 11:40:27 yes, I know you do 11:40:36 i don't really like linux or windows 11:40:44 that's why I thought you might be interested in the interface to shared libs 11:41:11 why? an os would be coded from scratch in forth .. :) 11:41:20 of course 11:41:35 but that doesn't mean you want everything under the sun loaded all the time 11:42:06 fonts, for example ... you only need the ones you're using to be in memory 11:42:07 ture 11:42:08 true 11:42:12 (and maybe not even then) 11:42:20 eh? 11:42:25 and not even then? 11:42:53 if an application seldom writes to the screen ... no reason not to unload the font and reload it when you need it 11:43:18 yeah 11:43:24 but that should be a descision of the library, with influence by the application 11:43:33 not the sole responsibility of the application 11:43:41 so we're talking about how forth can have libs 11:43:51 that's what I was thinking about 11:44:18 although I was thinking more along the lines of how the interface LOOKS, rather than how it works 11:44:29 I was thinking along the lines of current OSs 11:44:57 Windows, XWindows, Linux, BSD, etc 11:45:11 notify 11:45:15 oops 11:45:17 they all look pretty much the same, programming wise 11:45:32 yeah 11:45:38 a Forth OS would probably use a similar mechanism 11:47:40 hm 11:48:01 NEEDS blah.4th ALSO blah-words ?? 11:48:17 yes, which part confuses you? 11:48:51 NEEDS ? 11:48:55 ALSO ? 11:48:57 both? 11:49:24 neither of then is ANS, if you're checking 11:49:55 gforth has NEEDS i think 11:50:13 but 11:50:16 how does it work 11:50:22 which part of the fragment confuses you? 11:50:29 how does NEEDS work? 11:50:44 NEEDS blah.4th refers to the file and ALSO includes the specific word from the file ?? 11:51:13 no, ALSO duplicates the top item in the search order 11:51:40 huh? 11:51:47 VOCABULARY creates a dictionary wordlist 11:52:09 when the interpreter is search for words ... 11:52:23 it uses a a "search order" to find them 11:52:32 the top wordlist is searched first 11:52:42 then the next to top, and so on 11:53:21 in *MOST* forths, the result of executing the name of a vocabulary is to REPLACE the top item in the search order with it's own wordlist 11:53:46 hmm 11:54:22 so NEEDS might load 100 words, but in their own wordlist, where they are out of the way 11:54:45 they are innaccessible until the vocab is put into the search order 11:54:53 cool 11:55:25 ALSO would duplicate the top search order item, then blah-words replaces the top item with its own wordlist 11:55:56 so, if the search order had been "Forth Assembler" ... 11:56:15 it would then become "Forth Assembler blah-words" 11:56:49 none of this changes the voculary that you are currently defining new words for 11:57:09 (which doesn't HAVE to be in the search order, btw) 12:00:37 * MrReach sighs. 12:01:03 hmm 12:01:04 what 12:01:16 i don't know what to say heh 12:01:38 what's the problem, is it not a workable idea? is it not the way to do it 12:01:39 I'm just rying to think my way through this 12:01:57 well, when importing large libraries 12:02:10 I'd like the interface to be stored in binary form 12:02:25 so that there isn't a BUNCH of text parsing to be able to use it 12:03:09 also, turnkey apps don't NEED the dictionary info, which is far larger than the code itself 12:04:07 yep 12:04:36 so, for each lib that we want to access, there's two files to be loaded into mem 12:04:52 1. the forth code needed to access each routine 12:05:08 2. the dictionary to specify where to find the code words 12:05:25 #1 should be able to function w/o having to load #2 12:06:13 incidently, these are EXCELLENT places to use the word "slurp" that I had given to you earlier 12:06:50 hmm.. but what happens if the forth code needs to access a routine that's not loaded? how is #1 going to be able to function w/o loading #2 ?? 12:07:24 #1 has to have enough info in it to load a shared object and access its routines 12:07:58 how does it have that info? 12:08:13 the info comes from #2 at some point right? 12:08:46 linux and wondows both use a function with the same paramaters to load a shared object ... in Linux it's called "uselib" and on windows it's called "loadlib" 12:09:11 they both have the params ( a-zname -- hdl ) 12:09:30 a-zname is a null-terminated string of the library file to be loaded 12:09:57 what does the a-z in a-zname mean? 12:10:27 then, to find a particular procedure, Windows uses GetProcAddress 12:10:43 a-z means "address of ASCIIZ string" 12:11:37 and I forget the linux version of GetProcAddress, but it also has the same parameters as windows 12:12:08 those params are ( hdl a-zProcName -- adr | 0 ) 12:12:37 uselib sounds better than loadlib 12:12:43 in the naming of it 12:12:45 the hdl is the handle returned by LoadLib 12:13:03 ok, I don't care how they're named in the various OSs 12:13:11 jst so long as they are available 12:13:21 i care about how its named ;) 12:13:34 they would be named something else in Forth 12:13:39 those are the C names 12:15:11 I wrote an interface for Win32Forth once, it used ONLY lib: ( a-str u-cnt -- -- ) ... and proc: ( a-str u-cnt -- -- ) 12:15:44 it worked MUCH better than the Win32Forth stock interface 12:16:11 because, with win32forth, the system loads ALL libs and finds ALL procedures at startup 12:16:26 if a .DLL is missing, Win32Forth borks 12:17:07 it also tries to load the .DLL as soon as you tell it that it exists 12:18:28 the interface I wrote never loaded the library until one of its functions was called, and never search for the address of a procedure until it was actually invoked 12:19:03 also, a lib could be unloaded at any time 12:19:18 which you can't do with win32forth 12:19:37 Zimmer really had his head up his ass when he wrote that interface 12:19:44 heh 12:20:25 brb 12:27:04 back 12:27:40 my wife is supposed to pick me up in 3 mins to go out to one of her clients 12:27:55 I'll bet she forgets, and I get to be pissed off at her. 12:28:43 heh 12:28:52 why does she want you to meet her client? 12:29:26 her client is an old friend of my family 12:29:37 I haven't seen him in the better part of a year 12:29:39 ahh 12:30:01 I thought it would be nice to drop by and say "hello" ... but he lives 40 miles from here 12:30:16 so I was going to ride with my wife 12:30:36 ah 12:31:14 i've got this really cool and grandoise idea, but i'll wait and see if you are going to stick around so i can tell it heh :) 12:31:43 go ahead, I give it 3 chances and 10 that she shows up to pick me up 12:32:38 at 14:45 pacific, I'll call her at her clients and chew her out 12:32:46 ooops 13:45 12:33:25 why chew her out? just be like "you forgot me, have fun, i'm on irc talking to futhin, haha" :P 12:33:43 something like that 12:34:00 because we had made plans, which she forgot 12:35:31 well i'm guessing that she forgets more often than once in a blue moon? 12:35:35 if she's not here in 1/2 hour, then she's not coming 12:35:53 I only ask once in a bleu moon 12:36:20 like I said, I haven't seen Carl is just about a year 12:36:43 (I am the godfather of his great granddaughter) 12:38:49 I think Windows .EXEs are way cool because you can store all SORTS of data in them (as resources) and retrieve it at runtime 12:39:06 (that's much harder with ELF binaries) 12:39:24 the basic idea: collaborative editor in forth. extending the idea: create a collaborative universe for forth coders to get together and code forth. extending the idea further: coders and strangers get together on a project and CODE, increasing productivity, completing projects faster 12:40:07 i've got some other ideas on how it'll work and how to get all sorts of people in huge numbers to code on 1 project 12:40:12 are you thinking about TeamWave as you write that? 12:40:50 how much interactivity? 12:41:05 i'm thinking something better than teamwave.. remember when we tried to write in the postitnote at the same time.. that was annoying.. and since we were writing code, it'd be cooler if we could've run the code there, instead of copying it over to win32forth 12:41:24 indeed 12:41:44 CVS systems work MUCH better for collaborative coding 12:42:03 generally, you don't want to both write code simultaneously 12:42:24 but the postit idea is very good for sharing ideas 12:42:30 (and IRC type chats) 12:43:10 but i'm also thinking on another level: forth coders need to get together and code effectively, in an "informal" way. if any forth coder, a stranger, can join this interactive collaborative universe and SEE other people coding, and see them talking, they can join in immediately. this would be great for building a stronger community of forth coders. 12:43:30 indeed 12:43:33 as well as completing projects sooner 12:43:41 also, a decent repository would go a long way 12:43:53 imagine a 100 people get onto this interactive universe and boom, the os is done :) 12:44:46 check this out ... 12:45:14 http://webdev.amsystech.com/mlosh/webforth.htm 12:45:16 CVS isn't interactive, i want interactive for a number of reasons. one of the main reasons is that i'm lazy, and other people like I440r are a little lazy too.. but if i see other people coding, and see people talking about the issues, then i'm much more likely to jump in and become productive 12:45:20 here comes Speuler 12:45:48 how did you know he was coming? 12:45:59 *** Speuler is on IRC 12:46:06 http://webdev.amsystech.com/mlosh/webforth.htm 12:46:54 whois Speuler is on IRC 12:46:57 --- join: Speuler (schwan@clementine.icafe.spacenet.de) joined #forth 12:46:57 mrreach: part of the collaborative universe is to see other people coding at the same time. people would be able to form programming pairs (extrememprogramming).. 12:47:16 * Speuler send you greetings 12:47:22 hihi, Speuler 12:47:31 howdy speuler 12:47:45 hallo mrreach hello futhin 12:47:51 did you check out that URL? that might be an interesting starting point 12:48:08 for Speuler: http://webdev.amsystech.com/mlosh/webforth.htm 12:48:24 what's that ? 12:48:34 forth plugin ? 12:48:36 what about the webforth? i've seen it before.. 12:48:39 it's EForth interactive in a Java window 12:49:04 heard about. forth applet, written in java ? 12:49:20 no, don't think it's an applet 12:49:26 think it runs on server 12:49:34 ah 12:49:35 it's java 12:50:11 it says webforth: java applet.. 12:50:53 heh, yes, but when you put an item on the stack, where is that number stored? 12:51:16 is it stored somewhere on MY computer? or is it stored on a stack on the server? 12:51:33 your comp.. 12:51:36 i would expect 12:51:50 it's java applet so it's running off your comp 12:51:52 no, I think the Forth is running on the server 12:52:04 and the Java applet is simply a terminal 12:52:13 hmm 12:53:33 no 12:53:39 you're right 12:53:40 i don't think so.. i looked at the code 12:53:47 the forth is local, written in Java 12:54:17 blah 12:54:25 so what do you think about my collaborative idea 12:54:43 I like it 12:54:50 I like Teamwave, too 12:54:52 a lot 12:55:09 what platforms would you want to support? 12:56:24 forth jobs could even be generated thru the collaborative thing. the forth coders can be representatives for the company in their respective areas, and the company will just be international, and all the forth coders work on projects online. the forth coders act as representatives and find projects in their local area and then put it up on the collaborative universe and the coders get paid on the work they do 12:57:06 what platforms would you want to support? 12:57:10 linux 12:57:28 just one platform? 12:57:49 maybe windows.. but it might not really be necessary to support windows because forth coders can install linux or telnet to a linux server 12:58:09 linux would be made first then windows second i'd guess... 12:58:13 dunno 12:58:15 heh 12:58:17 it's just an idea 12:58:28 ok, windowing or text only? 12:58:37 i haven't gotten to the stage yet where i'm implementing my ideas :( 12:58:47 * Speuler likes stand-alone forth 12:58:50 of course not 12:59:05 heh, Speuler, no outside OS at all? 12:59:19 no resource hogs around 12:59:22 dunno.. probably windowing.. but if it could be done in text and still be effective.. 12:59:36 heh, that's a hell of a lot of work to make a socket connection 12:59:56 I don't think it would be nearly as effective in text mode 13:00:01 speuler: stick around and eventually we'll have a forth os 13:00:07 couldn't draw figures, for instance 13:00:09 and all the drivers necessary 13:00:13 mrreach: true, but the learning effect is immense 13:00:23 HAHAHA! 13:00:37 w/o forth, i'd never have learned to write drivers taken as granted on OS 13:00:40 you're right, I've never written code to bit-bang an ethernet card 13:00:51 i'd love to 13:01:00 never did 13:01:01 mrreach: yeah, i suppose we should have stuff for drawing 13:01:03 almost did 13:01:13 but the scsi stuff kept me busy 13:01:16 I'd *MUCH* rather write my application, and let the hardware take care of itself 13:01:33 writing apps is for application programmers 13:01:47 that is true, and that is what I consider myself 13:01:52 those who use java and basic and the like :) 13:02:05 and Forth, on occassion 13:02:17 let's invent a language, called "noway" 13:02:42 let's not and say we did 13:02:43 or ... 13:02:56 mrreach: once we get a decent os (forth os), we won't have to worry about these issues anymore and can therefore get on with coding useful applications 13:03:03 let's extend the nearest available Forth in "noway" 13:03:24 futhin? I code useful applications now 13:03:28 let's shrink it 13:03:37 vocabulary noway noway seal 13:03:42 heh 13:04:02 mrreach: what applications have you coded? how come it's not on the net? where's the source code? :) 13:04:09 in forth.. 13:04:21 a database of people who steal video tapes 13:04:28 or noway definitions : bye bye ; 13:04:29 heh 13:04:40 with record sharing between sites 13:04:52 will never BE on the net 13:05:21 there's not enough forth stuff on the net :( 13:07:13 continuing noway definitions : talk talk-to-the-hand ; 13:07:23 so what have *YOU* put on the net? 13:07:43 heh. i'm working on it :) 13:07:50 i'm thinking of getting a site at sourceforge 13:07:59 incidently ... 13:08:33 I'm seeing someone making a lot of noise on c.l.f about finally documenting all the words in win32forth 13:08:39 hmm 13:08:49 several people look like they're about to join in 13:09:43 I would maintain that it is time to scrap win32forth, and write a cross-platform forth that is a little better organized 13:10:07 gforth is cross-platform ... 13:10:15 is it? 13:10:17 yes, it is 13:10:23 VERY cross platform 13:10:30 run on just about anything 13:10:32 and they seem to get the documentation stuff done 13:10:32 can i code in sockets in the windows gforth version and simply run my code on linux? 13:10:45 there's even a tutorial in the 0.5 version 13:10:59 futhin: i suppose you can 13:11:00 futhin: well, that's the rub with gforth ... library interface is completely undocumented 13:11:02 i440r seems to have some good ideas on a forth 13:11:22 but i never used the socket stuff in gforth 13:11:35 Speuler: have you compared the documentation of gforth with the documentation of Swiftforth?? 13:11:44 should resemble using files 13:12:03 no, i didn't 13:12:12 also, gforth has NO windowing ability whatsoever 13:12:24 (actually, didn't read the gforth docs) 13:12:36 Speuler: Forth, Inc. has outstanding documentation 13:12:51 windowing is for weenies 13:12:59 ahem 13:13:01 I really think they set the bar for doc standards 13:13:02 reading docs too :) 13:13:13 of course, I haven't looked at VFX Forth 13:13:25 don't want to come over as overly provocative of course 13:13:53 damn, you're using IRCII 13:14:00 if i can't use it w/o reading docs, i have to code it myself :) 13:14:04 yeah, make forth self-documenting and throw away the docs 13:14:13 what's wrong about ircII ? 13:14:14 If you were using Xchat or such, I could call you a weanie 13:14:47 i love the clarity of text mode 13:15:01 the sober screen design 13:15:01 futhin: wrong ... I want to be able to use someone else's API/Library with an absolute minimum of fuss 13:15:15 heh, and insane key sequences? 13:15:16 mrreach: true, i was just yaking :P 13:15:17 gets your attention right where you need it 13:15:21 self-documenting 13:15:25 was the keyword 13:15:44 yes, I don't mind docs being extracted from soruce files 13:15:59 I just don't want to have to browse source to know how to use it 13:17:22 eh.. self-documenting means that the code reads like a document.. means the code doesn't need to be documented 13:17:28 not that I mind reading source, but it distracts from the task at hand 13:17:31 i'm not talking about shadow comments, i dislike that 13:17:36 s/that/those 13:17:49 no, I was talking about something like auto-doc 13:18:15 where glossary is extracted from source into SGML, then into HTML or nroff or whatever 13:18:29 pdf even 13:19:35 when working on a project that requires sockets, for example, I want to read about the SPI for using sockets, and that ONLY 13:19:43 anything else is a waste of my time 13:19:49 forth is capable of being coded in such a manner that it is practically self-documenting 13:20:03 futhin: so they say 13:20:07 self-documenting for the coder, yes 13:20:11 not for the user 13:20:18 futhin: but often, it requires the reader to understand forth 13:20:40 : count 1+ dup 1- c@ ; 13:21:06 : count dup 1+ swap c@ ; 13:21:24 : count dup c@ swap 1+ ; 13:21:38 ooops, I got the stack backwards 13:21:49 thats ( addr -- b addr' ) 13:21:53 yep 13:22:03 chuck moore doesn't like stack comments either 13:22:09 more efficient is 1+ dup 1- c@ 13:22:16 less stack activity 13:22:20 : count dup c@ swap 1 chars + ; 13:22:39 how can you code that in a more readable way ? 13:22:50 you're right, fewer words altogether, hadn't thought of that 13:23:34 in any case ... 13:23:51 : chars ; immediate 13:23:58 compiles no code 13:24:33 but the compiler must optimize the 1 + to inc ( 1+ ) itself 13:24:36 as someone writing an app ... I ONLY want to see COUNT ( adr -- adr' n ) return adr' the start of the string and n the number of characters in the counted string point to by adr 13:25:11 that's ALL I want to see ... no more 13:25:31 if it doesn't work for some reason, THEN I want to look at the source 13:26:26 funny that the description of the word is 5x the size of the source, and prob 15x the size of the object code 13:26:28 i'm not interested to run it if i can read the source :) 13:26:40 what do i need a computer for anyway ? 13:26:45 beg parden, Speuler?? 13:26:58 i don't have a real need for a computer 13:27:13 except to make your living 13:27:21 xactly 13:27:37 but i guess i could do without computer even for that 13:27:41 well. 13:27:52 i need computer to talk to people who are far away 13:27:53 heh, wouldn't be as much fun @:^> 13:27:59 true 13:28:28 i want virtual computers 13:28:32 plasma computers 13:28:36 computers are *FUN* ... that is what drives 80% of the ocmputer industry 13:28:40 computers are useful for businesses to cut paper costs.. 13:28:45 ahemk 13:29:08 since computers, use of paper has increased by at least 10* 13:29:16 yes, but we *COULD* do everything that we do for business today on 80386/33s 13:29:20 i don't own a printer 13:29:37 (that's not a cost issue btw) 13:30:02 * MrReach shrugs, "To each his own ... I own three" 13:30:04 but i have a reasonable screen 13:30:33 speuler: that is because most businesses and users haven't gone fully digital 13:30:35 btw. i've written windowing routines in forth 13:30:40 some years ago 13:30:45 (text mode windows) 13:30:52 Speuler: large scale or small? 13:30:56 you can display graphics in those text windows too 13:30:59 ok, small scale 13:31:08 pixel graphics ! 13:31:09 i read "business @ the speed of thought" by bill gates. it's all about how microsoft has gone fully digital and has saved lots of money. all the forms are on the intranet, etc 13:31:24 * MrReach nods. 13:31:55 was a project once 13:32:06 Paul Allen has done much research on computers and education 13:32:07 (the graphics, not the windows) 13:32:21 pity his findings aren't more widely published 13:32:32 (windows where to test my memory manager) 13:32:38 heh 13:32:53 i coould visualize proper working :) 13:32:53 Speuler: do you dislike windowing systems like XWin? 13:32:56 no 13:33:10 i dislike the conservative party 13:33:21 heh 13:33:41 i dislike X because it activates my bloatphobia 13:34:06 futhin: have you actually written code for either XWin or Winblows? 13:34:24 * Speuler never did 13:34:45 no, i've looked at the code and a little bit of my spirit died 13:34:46 :P 13:34:59 I wrote some Windows code this week in win32forth 13:34:59 a little bit of my spirit died.. boo hooo 13:35:10 next week, I hope to code something similar in gforth 13:35:13 the cpu of my current project has 4 kb of RAM 13:35:15 under XWin 13:35:30 4kb ram, that's the ideal amount.. any more would be excessive 13:35:35 heh, Speuler 13:35:50 yessir ? 13:36:15 just laughing at your restrictions in the context of Windowing OSs 13:36:29 with a former project, i had 80 bytes for the program left :) 13:36:44 (cpu had 192 bytes) 13:36:46 futhin: depends what you need to do ... I couldn't live w/o spreadsheets 13:37:01 I use spreadsheets constantly 13:37:01 most if it used for buffers 13:37:20 good grief ... compiler in ROM? 13:37:25 yes 13:37:26 speulers: that sounds cool 13:37:30 fun 13:37:47 very challenging 13:37:59 they told me i couldn't do it 13:38:10 and that raised your hackles? 13:38:28 the ability to upload programs was not part of the specs :) 13:38:42 was a PIC 16x73 13:38:46 * MrReach envisions Speuler growling viciously, "I CAN TOO!" 13:39:09 that's something what indeed can motivate me. 13:39:27 Speuler: two questions for you ... 13:39:31 ga 13:40:15 1. if there where a cross platform, uniform, windowing Forth, would you use it personally and/or professionally? 13:40:35 i wouldn't knwo 13:40:37 know 13:40:40 depends 13:40:46 forgot the 2nd question, or wrote it into the first 13:40:57 what would it depend on? 13:41:07 whether i'd like the forth 13:41:13 the feel of it 13:41:23 i don't like fpc 13:41:24 erm ... ok 13:41:38 fpc seems userfriendly, but i've never really touched it 13:41:46 do you like the "feel" of Win32Forth? 13:42:13 fpc implements the art of writing whole apps from simple words 13:42:14 i think they should implement a word called "man" which displays all the core words on the screen.. like in MUF on tinymuck 13:42:19 (yes, I realize that win32forth is an incomprehensible maze, but that is not "feel") 13:42:44 i don't really like the feel of win32forth.. it's a bit of a pain to figure out how to do things in it 13:42:57 so there's the newbie perspective on it :P 13:43:01 I like the feel ... I hate its organization 13:43:23 pcforth i found quite ok 13:43:28 there is little seperation of windowing functions, for example 13:44:10 i'm also not a huge fan of gforth 13:44:23 but it is reasonable enough 13:44:33 Speuler: what's you're impression of Win32Forth? 13:44:35 gforth has very little feel.. it feels like classic forth afaik 13:44:41 gforth is pretty good 13:45:03 winforth turns on my fan 13:45:12 I got *WAY* pissed off when I tried to write a CGI script with gforth, though 13:45:27 i find it too complex 13:45:36 yes, it is too complex 13:45:47 is that a factor in "feel" to you? 13:45:51 it is 13:46:00 lackong transparency 13:46:09 intuitive transparency 13:46:14 or opacity, one way or another 13:46:20 that's what one gets from not reading the docs 13:46:46 heh, what docs? that's the major fault 13:46:52 you know what, it is VERY VERY VERY hard for anybody to do things in the simplest manners. it takes a genius to be simple. it's hard to be simple while coding, it's hard to create a simple forth (or they would have done that), etc. 13:47:03 I've ready every bit of documentation, several times, and I'm not much farther ahead 13:47:18 i like to learn about a forth by looking at it with its own tools 13:47:34 or the tools you code for it 13:47:44 i distrust docs 13:47:47 yes 13:47:51 they tend to be wrong 13:48:22 that's why I was saying that if something doesn't work, THEN I want to look at the source code 13:48:29 or at least differ from what they are supposed to document 13:48:43 but not until then 13:48:50 that's why reading the docs is the last resort for me 13:48:57 heh 13:49:16 if i can't get it done other way, then i'll check the docs 13:49:26 in win32forth (and in gforth) ... the source is not very clear 13:49:26 and in the meantime, i learned a lot about the system 13:49:34 probably more than the docs tell me 13:50:40 well, time to call wifey and give her grief 13:50:41 i don't necessarily need the source 13:51:17 tell her i said hi :P 13:52:24 what's new ? 13:52:39 in the forth world 13:52:48 no idea 13:53:01 go to forth.slashdot.org heh :P j/k 13:58:31 hmm 14:06:30 ??? 14:06:57 Speuler: what would make such a forth "feel good" to you? 14:09:17 hello? 14:09:57 mrreach: it would feel good to me if 1) the interface was simple, understandable, and userfriendly and intuitive. 2) if it was well-documented 3) if the code was VERY VERY readable. 4) if lots of example code came with the documents. 14:10:25 mrreach: intuitive means something very specific. it means that i can type help or man and actually get help 14:10:39 ah 14:10:42 that's a pretty good list 14:10:45 MUF was pretty cool because you could type man and you got a list of primitives 14:11:06 and then you could type man dup (or some other core word) and it would give you info on that 14:11:18 i think something like that should be available right there in the forth 14:11:19 "intuitive" means that that if you try a command because "it ought to work that way" .... and it's there 14:11:32 futhin: agreed 14:11:42 how about you, Speuler? 14:11:49 i would LOVE to be able to type HELP and get help on everything.. all the documentation should be inside forth, part of the forth help system 14:12:09 in elastic i was experimenting with executing words from screen 14:12:15 actually, futhin, I was thinking about how to implement that very thing 14:12:24 i don't like win32forth because the help system is a bit confusing and it does lame hyperlinking to dpans and whatever.. 14:12:34 all the help should be internal.. 14:12:42 not all 14:12:54 execute screen lines, im mean. for help, i could have a word type a few lines (with code), then move the cursor to a line, press enter 14:12:58 a good interface to the help should be internal 14:13:00 that executed that line, 14:13:02 don't link to dpans, include actual help on all the words 14:13:29 i could select "bookmarks", or examples, or open source files 14:13:34 like with a menu system 14:13:40 * MrReach nods 14:13:48 and this would make it "feel good"? 14:13:49 but, the menu system wasn't there at all 14:13:57 it was "intuitive" 14:14:05 at least, i think it was 14:14:24 because you could also extend that system easily 14:14:27 futhin: any reason why "help blah" should not spawn you're web browser positioned to the correct location in the correct file? 14:14:38 the "menu" was a "bookmark" itself 14:14:50 hmmm ... interesting idea 14:15:02 heh, the sort of twisted thing a forth coder would do @:^> 14:15:12 "bookmark" was an editor, opening a file, jumping to the line where the bookmark was defined. 14:15:15 mrreach: it's annoying, and i prefer consistency, and i dislike the dpans format 14:15:17 actually, source locator 14:15:43 dpans isn't clear to me when i want to know how to use some word.. it's not very understandable at all :( 14:15:49 futhin: you'd rather that is spewed the text into your current terminal? 14:16:04 futhin: stop berating the format 14:16:17 and think about how well such a method might or might not work 14:16:36 WHAT is in the web page is up to the author 14:16:38 mrreach: yes, i'd rather the text came up on my current terminal 14:16:44 i've put several "help topics" on different function keys 14:16:45 GETTING there is the job of the forth system 14:17:14 i liked MUF because it was easy to figure out things, it was easy to get help on. the help should come up on my current terminal.. webpages are annoying for help 14:17:26 Speuler: is that an indication that those topics are too complex and should be simplified? 14:17:27 how to put an item on a hotkey was in the examples menu too 14:18:01 one key showed the source files. if you moved the cursor to one, it would open it 14:18:18 actually, all it did was listing the source files, pressing the key 14:18:35 futhin: it's relatively easy to spew html to a console terminal, so long as one remembers to limit their markup 14:18:50 (preceded with a character which, when executed, opened the file in the editor 14:18:52 ) 14:18:59 * MrReach nods to Speuler 14:19:25 the "howto" section was a bookmark too 14:19:47 this was "elasitc"??? what platform did it run on? 14:20:04 h8/338 h8/30xx pc 14:20:13 no more ports done 14:20:17 it was a metacompiler 14:20:18 * MrReach spews coffee as he chokes. 14:20:31 but a metacompiler the wrong way around 14:20:37 heh, ok 14:20:55 instead of loading the metacompiler words on a forth system, 14:21:13 you needed the forth words to extend the metacompiler to a forth system 14:21:32 haha! something like ForthCMP? 14:21:32 the kernel metacompiled on its own. no more files needed 14:21:39 (except its sources of course) 14:22:05 forthcmp is a compiler 14:22:10 yes 14:22:23 you have to write the forth system, if you want one 14:22:30 i know cforth. forthcmp was cforth before it became forthcmp 14:22:33 otherwise, you get just your application 14:22:45 that's right, I rmeember you saying that 14:22:52 actually, i know cforth pretty well 14:22:59 worked for years with it 14:23:13 that is somewhat how elastic is? 14:23:13 but no, elastic is different 14:23:19 oh, ok 14:23:32 it is a subset forth, just containing the words for a metacompiler 14:23:43 ok 14:24:06 but by extending it with forth words, you could make a forth from it 14:24:17 it even didn't have a prompt 14:24:22 I think I understand 14:24:25 unless you loaded one 14:24:30 mrreach: i think consistency is one of the main things that help userfriendly/intuitiveness. the interface should stay relatively similar across the forth. it is distracting and slows down my thinking when i'm interrupted with a new interface that i must adapt to (1 second is an eternity) 14:25:25 speuler: elastic sounds cool 14:25:26 elastic was very popular with its users. 14:25:35 futhin: agreed. But which interface are you thinking of when you write that? 14:26:01 the forth extensions weren't quite standard btw 14:26:11 do you mean like "application windows" that have "file" "help" dropdowns, etc? 14:26:31 but you could have chosen to have it compile word complying to the standard of course 14:26:42 Speuler: alastic was before ANS, wasn't it? 14:26:57 yes 14:27:06 wasn't it compat with F83? 14:27:09 no 14:27:17 hmmm ... how odd 14:27:37 futhin? 14:27:50 for example, "expect" had stack effect same as "accept" had in later ANS 14:28:05 ah! 14:28:09 "find" expected string on stack 14:28:19 stuff like that 14:28:22 ALL the characters? 14:28:31 yikes! what a noisance! 14:28:37 nuisance 14:28:40 strings where given as "string" 14:29:07 i could easily parse input stream to string, and run find on it 14:29:31 yes, though a bit of stack thrashing 14:30:13 whether string is parsed by find, or by another word, calling find, makes no difference on stack 14:30:44 : findword bl stream find ; 14:31:06 : findword word find ; 14:31:09 mrreach: i think of different interfaces when i say what i said. i think of MUF on tinymuck, i think of FPC, i think of how i don't really like win32forth, i think of IDEs 14:31:14 : word bl stream ; 14:32:16 same with create. create only parsed, then called word to create word with name on stack 14:32:23 futhin: what part of each of those do you really like? 14:32:34 semicolon was a deferred word ... 14:32:59 words like : and code: and the like set semicolon action 14:33:27 futhin: I, for one, really like the idea of opening independant but integrated tools for working ... like a single-step debugger that runs in a seperate process, or an icon editor 14:33:37 that action set semicolon action to "unexpected semicolon" error 14:33:53 so i could virtually close everything with ; 14:33:53 Speuler: good idea, actually 14:34:07 plenty of experiments in elastiv 14:34:08 ic 14:34:18 many of them worked well 14:34:26 lookup: ..... ; 14:34:30 task: .... ; 14:34:47 that's brilliant 14:35:03 maybe I'll implement that with any future object systems that I write 14:35:16 i tried to set unexpected ; action to \ 14:35:22 so i could use it for comments too 14:35:28 that wasn't such a good thing 14:35:35 heh 14:35:39 confusing ... 14:36:04 but code: .... ; was great 14:36:25 code: set ; action to compile next, too 14:36:37 * MrReach nods 14:36:56 manual NEXT is a pain, even if it's a macro 14:36:57 code: nop nop, ; 14:37:44 i could use ; with non-defining words too 14:37:56 could pair with about everything 14:39:09 one could do ... : test hl forth here INLINE ; hl forth here ; 14:39:22 lookup: name 3 , addr1 , 5 , addr2 , ; 3 name ?dup if execute then 14:39:56 one could, yes 14:40:07 INLINE just needs to redefer ; 14:40:17 I used INLINE .... END-INLINE on my forths 14:40:25 save and defer 14:40:44 because INLINE might be used in something besides colon 14:40:55 my convention was that everything pairing with ; had a : as last char 14:41:07 ok, then ... 14:41:08 INLINE could be an exception 14:41:15 one could do ... : test hl forth here INLINE: ; hl forth here ; 14:41:34 or INLINE> 14:41:58 would need to stack xts then what i didn't do 14:42:12 didn't do? 14:42:24 but ; does not need to know about 14:42:27 oh should have saved, but you didn't? 14:42:47 stacking and restoring could be done by the word re-deferring ; and its deferred action 14:43:36 another advantage was that the defining word - which knows best how to be completed, tells semicolon how to 14:43:48 that keeps related code together 14:43:57 yes ... : INLINE> ;@ >R asm-header also assembler asm-reset [ ; IMMEDIATE 14:44:21 ooops, forgot to defer semi 14:44:48 ' ;inline is ; 14:44:56 yes ... : INLINE> ;@ >R ['] ;inline is ; asm-header also assembler asm-reset [ ; IMMEDIATE 14:45:11 another "innovation" was: 14:45:15 another header bit 14:45:18 the EXEC bit 14:45:32 w/o, the word would only return its xt 14:45:39 even code and colon words 14:45:46 great for runtime words 14:45:46 hmmmm ... interesting 14:46:08 no more ['] runtimeword , 14:46:24 just don't set them executable, and skip the tick 14:46:41 futhin? now is the time to make your voice heard about what a large forth system should or shouldn't be 14:46:45 that was also used for recursive words 14:46:56 oh? how? 14:47:18 RECURSE sets the exec bit 14:47:41 no recurse, and using the word in itself returned its xt 14:47:54 oh, all words were that way?? 14:47:56 i.e. redefinitions worked differently 14:48:02 that's VERY odd 14:48:22 : foo foo . ; 14:48:30 prints its own xt 14:48:34 heh 14:48:59 but, redefs looked like this: 14:49:30 ' foo : foo ." new foo" compile ; 14:49:37 kind'f weird that 14:49:48 way wierd 14:49:51 ' foo alias oldfoo 14:50:03 : foo ." newfoo" oldfoo ; 14:50:48 --- join: k (k@d120073.upc-d.chello.nl) joined #forth 14:50:54 hi topaz 14:50:56 greetings, k 14:51:07 hi bl 14:51:07 --- nick: MrReach -> M 14:51:13 --- nick: Speuler -> S 14:51:30 --- nick: S -> Speuler 14:51:31 * M laughs. 14:51:36 --- nick: M -> MrReach 14:51:50 don't forget 'Q' 14:52:01 the james bond one ? 14:52:08 or picard's q ? 14:52:13 actually, I was thinking Star Trek 14:52:32 the obnoxious, omnipotent god-like thing 14:52:56 the arrogant multidimensional guy 14:53:07 heh, yep, that's him 14:53:29 he showed up with jane gateway too 14:53:38 or however her name was 14:53:57 i tried to seduce her once 14:54:04 failed of course 14:54:27 so he actually survived two generations 14:54:38 yes 14:54:49 he'll prob show up in Enterprise, too 14:54:58 the new series 14:55:08 was he ever on DS9? 14:55:09 new series ? 14:55:16 can't remember 14:55:23 haven't seen him in farscape 14:55:43 what new series ?? 14:55:57 yes, new series "Enterprise" ... starts with the first launch of a warp-drive ship and proceeds with the acceptance into the Federation 14:56:10 * Speuler 's tv is black/white and about 8 '' 14:56:21 it started about 4 weeks ago 14:56:27 but runs on 12 volts :) 14:56:54 what is "farscape"? 14:57:00 i used a binocular once to watch a program 14:57:06 seriously 14:57:07 HAHA! 14:57:24 audio must not have been important 14:57:26 i tied it to a baseball cap 14:57:33 put that on 14:57:38 oh, on your little one 14:57:49 so the binocular was right in front of my eyes 14:57:56 hands-free :) 14:57:59 heh, wrist-watch TVs 14:58:26 how goes, mr k ? 14:58:35 actually, the new palm-pilots have enough resolution and color to watch TV on 14:58:38 do you have a forth book ? 14:58:56 I'd like a get me an ipaq 14:59:10 pity the screen isn't any bigger 14:59:29 320x240 14:59:40 not too bad 14:59:48 same as the old C64s 15:00:00 better than cga 4-color 15:00:21 but way off the psion's 640x240 15:00:33 half-vga already 15:00:38 actually, I'd like a comp that straps to my forearm 15:00:42 and flips open 15:01:06 I fancy the foldable keyboard for the ipaq 15:01:10 kinda hard to get in and out of a jacket, though 15:01:39 strap it to your leg 15:01:50 you don't get out of your pants so often 15:01:54 THERE's and idea 15:02:11 and when I do climb out of my pants, I sure don't need a comp handy 15:02:16 run it on body-heat 15:02:58 that would be an engineering challenge, for sure 15:03:51 miniature heat pump, reverse refridgerator. thermoelements won't do 15:03:54 heh 15:03:58 use chuck's chips 15:03:59 or you would have to produce LOTS of heat 15:04:18 there are miniature gas turbines existing though 15:04:40 and the new methanol fuel cells are promising troo 15:04:42 futhin: if yoiu want to talk about what should or shouldn't be in a forth system ... now is the time 15:04:45 not later 15:04:57 no microsoft logo 15:05:15 no conservative party 15:05:26 hydro fuel cells rock, except for the temps 15:05:40 fuel storage is still an issue 15:05:49 propane is ok 15:06:01 methanol is liquid at room temperature 15:06:06 methane is too, but not as convenient 15:06:07 easy storage 15:06:11 yep 15:06:23 got some sitting on my desk 15:06:24 methane is gas at room temp 15:06:45 (and sea level pressure)( 15:07:04 mrreach: what are you talking about.. are you going to start a forth system? 15:07:10 there is also the issue of "energy density" 15:07:16 *start coding a forth system 15:07:19 futhin: thinking of it 15:07:23 another ? again ? 15:07:37 heh, it's always on my mind 15:07:39 no more standard forth 15:07:58 why's that, Speuler? 15:08:03 some conceptually challenging forth maybe 15:08:19 there are many of those 15:08:32 mr k, i'm actually l 15:08:35 my goals would be cross platform, completeness, uniformity 15:08:45 maybe my nick name confuses you 15:09:04 you are topaz, aren't you ? 15:09:52 i think i forgot to turn of the lights of my bicycle 15:10:07 could need fuel cells for that too 15:11:17 are byte code forths still an attractive option ? 15:11:34 more attractive than they've ever been 15:11:51 more horsepower available for indirections 15:11:54 i was wondering whether i'd try out one of those 15:12:13 after all that java stuff, that's a route to explore 15:12:22 well, actually 15:12:38 most "regular" forths could be called byte-code interpreters 15:12:43 bytecode? not direct threaded or what? 15:12:55 once processors are getting to 256 bits, address pointers may not be such a good idea anymore 15:13:06 "bytecode" is the same as "token threaded" forth 15:13:52 a "word" is actually compiled as a token into a lookup table 15:14:22 Speuler: isn't the advatantage of Java its typing system, though? 15:14:53 : count .... ; and eights of a kilobyte filled with zeroes ... 15:14:58 sorry, futhin, mistyped ... 15:15:12 a "word" is actually compiled as a token which is usually and offset into a lookup table 15:15:38 mrreach: no sure whether i'd call it a advantage, as i had to fight the system frequently 15:15:57 or write workarounds 15:16:05 well, isn't that what set Java apart from TCL or Perl? 15:16:17 (which are both byte compiled nowadays) 15:16:20 that's why java is dying ? 15:16:37 might be 15:17:05 it last stronghold are web applets 15:17:38 yes, those apps that I have on my computer that are written in java REALLY piss me off 15:17:50 ICQ comes to mind immediately 15:18:40 hasn't sun aquired tcl a while ago ? 15:18:40 "I could write that app in 200kbytes with win32forth" ... plus the 400kB runtime 15:18:43 acquired 15:18:50 Sun invented TCL 15:19:09 mrreach: why not stick with direct threaded? as i understand, direct threaded is the fastest implementation (besides native-code) and is more portable than native-code. 15:19:14 then abandoned it, so it went open source at scriptics 15:19:20 then Ajuba bought scriptics 15:19:40 futhin: I was thinking about doing that 15:20:11 i find itc more elegant 15:20:15 futhin: there are *BIG* advantages to being able to decompile a word 15:20:31 cleaner model 15:20:33 especially when single-stepping 15:20:59 itc = indirect threaded code 15:21:17 direct threaded is still 1:1, you can? decompile words in direct threaded model 15:21:27 on some archetectures, itc is faster, on others, dtc is faster 15:21:35 yes, futhin 15:21:39 the concept of putting a pointer in a word, instead of a (cpu dependend) opcode, appeals to me 15:22:58 speuler: what architectures is itc faster? and why 15:23:21 you'd have to go look at the benchmarks for gforth 15:23:37 it was Ertl who did the actuall side-by-side comparisons 15:23:45 actually, with the predecessor of elastic, i could compile both stc and itc, and use them intermixed. 15:24:16 so i could choose itc for compactness, and stc for easily connecting to machine code 15:24:27 I think on RISC arch (which now includes the IA64 chips) ... itc was slightly faster 15:25:07 because of the large 1st level data caches 15:25:24 stc?? 15:25:31 subroutine thread code 15:25:33 stc = subroutine threaded 15:25:50 some people wouldn't call stc forth a forth 15:25:56 heh 15:26:00 : test 1 . ; 15:26:30 CODE test CALL literal dw 1 CALL . END-CODE 15:26:43 ooops ... 15:26:51 CODE test CALL literal dw 1 CALL . RET END-CODE 15:27:36 stc is great for interfacing with existing asm routines 15:27:44 no linkage code required 15:28:07 if i'd introduce forth into a system which started out using asm, 15:28:13 i'd opt for stc 15:28:16 also, can run MUCH faster than itc or dtc ... if decent optimizer is employed 15:28:26 which of stc, itc, dtc, et cetera would run best on stack architecture like chuck's chips 15:28:38 futhin: doesn't apply 15:28:43 ok 15:28:44 forth chips usually use stc 15:29:04 those chips run raw forth, it's kinda hard to describe 15:29:07 speuler/mrreach: which would you pick for a forth os. 15:29:16 huh? which what? 15:29:21 forth chip? 15:29:25 no 15:29:28 stc, itc, dtc 15:29:40 what cpu is the os supposed to run on ? 15:30:03 any 15:30:08 heh 15:30:13 i'd guess itc with native code compilation support 15:30:15 the os would be portable 15:30:28 stc is faster on some, slower on others 15:30:33 itc is the most "oo" like 15:30:38 speed is important 15:30:51 and native code runs fast 15:31:03 speuler: if the os is going to run on different architectures you pick itc with native code compilation support? 15:31:14 for an OS (who's #1 priority is stability, #2 is effeciency) ... I'd prob go optimized STC 15:31:17 probably 15:31:28 as you can choose to run non-optimized too 15:31:31 but slower 15:31:46 add native code compiler at convenient stage 15:32:02 efficiency is speed 15:32:07 yes, an assembler is quite easy to glue on later 15:32:16 often, speed comes from good algorithms 15:32:18 how does stability arise from STC? 15:32:26 rethreading the kernel not so easy 15:32:31 it doesn't 15:32:36 effeciency does 15:32:50 itc isn't efficient? 15:32:56 not nearly 15:32:59 itc may be more stable: 15:33:09 MAY be 15:33:18 from what little i know, stc is slow and cumbersome.. 15:33:26 if the optimiser works correctly, neither is more stable 15:33:42 there's less code, and the chance that some memory overwritten by a quirk is lower because the target is not that big 15:33:44 . 15:33:44 . 15:33:45 . 15:33:49 futhin: C produces STC ... and is the fastest, so far 15:33:55 sorry, needed to clean some screen lines 15:34:10 system goes down in 10 minutes 15:34:11 heh, np 15:34:32 ok, coming back? 15:34:43 (just as well, I'd like a shower) 15:34:56 actually, a nice long soak would be just the ticket 15:34:58 still 15:35:17 i tried a "shutdown -c" to see whether my current privs allow me to do so :) 15:35:27 heh, guess they do 15:35:32 (that is "cancel shutdown :) 15:35:37 oh, -c is cancle? 15:35:43 ok 15:36:09 well optimised STC is lightening fast 15:36:21 far and away faster than any of the threaded forths 15:36:22 faster than optimised ITC? 15:36:30 yes 15:36:30 after all, i'm now the system god :) 15:36:54 * MrReach watches Speuler's computer genuflect 15:37:03 must be an automatic procedure i haven't checked out yet. 15:37:06 FAR faster 15:37:09 hehe 15:38:06 for example, in the following code ... 15:38:33 wtf.. 15:38:38 other people said that ITC is the fastest 15:38:41 and STC is not 15:38:43 CREATE table 256 allot : test ( n -- res ) table + @ ; 15:38:54 so this is all screwed up.. i'm getting conflicting info 15:39:00 it seems to restart its shutdown 15:39:08 all of test can be optimised to a single machine code instruction 15:39:12 5 minutes 15:39:37 i've put a job on which cancels shutdown once a second 15:39:40 futhin: I'm talking about OPTIMISED subroutine threaded 15:39:46 lets see whether that sorts any effect 15:40:05 * Speuler just notices he's horribly off-topic 15:40:26 but, just in case, i'll do a preventive goodbye to you 15:40:38 futhin: I once wrote a straight STC forth, and I ran quite a bit slower than DTC on 80386 in 16 bit mode 15:40:44 * k slaps Speuler around with a small 50lb Unix Manual 15:40:59 ah! cool! k lives! 15:41:08 compared to OPTIMISED direct threaded.. that's not what other people said. they said OPTIMISED direct threaded is faster than any other OPTIMISED threaded forths 15:41:13 * Speuler slaps k 20 times on the head with a dead haring 15:41:33 ok, they're wrong ... see my previous example 15:42:05 the unic manual disappears in a cloud of orange smoke 15:42:09 but I suspect we're talking about apples and oranges 15:43:14 oring -c vit 15:43:16 I've seen the output of SwiftForth ... it just doesn't get any tighter ... I couldn't even write code that fast in pure assembler 15:43:50 only because you aren't an expert assembly programmer? 15:43:50 because the optimiser in SwiftForth knows more about the processor than I do ... I forget stuff 15:43:56 swiftforth seems to optimize well 15:43:58 hmm 15:44:05 even an expert doesn't write perfect code 15:44:05 but cforth / forthcmp isn't so bad too 15:44:16 but it is interpreter versus compiler 15:44:29 the expert will take the longer path to make the code more understandable 15:44:35 * Speuler loves cforth / forthcmp 15:44:46 forthcmp rocked 15:44:51 "hello world" in 70 bytes 15:44:58 never saw programs that ran so fast 15:45:03 print number in arbitrary base in 200 bytes 15:45:10 stand alone code ! 15:45:15 (msdos com files) 15:45:23 yep, I remember 15:45:30 forthcmp produces hello world in 70 bytes? coooool 15:45:35 i wrote TSRs with it 15:45:39 in less than 1 k 15:45:48 try THAT with C 15:45:49 i should look at forthcmp then 15:46:02 it's for MSDOS 3.3 or later 15:46:15 for learning purposes, it is not a good base 15:46:15 not really suitable for todays OSs 15:46:23 more difficult to debug 15:46:28 not interactive 15:46:38 heh, so? :P 15:46:39 just source in, executable out 15:46:40 it can compile FPC code 15:46:58 so develop app in FPC, then compile to .COM with forthcmp 15:47:01 supports CP/M and MSDOS 15:47:07 that's fine, i don't really use the interactive part .. i tend to code in a editor first 15:47:17 really? didn't know about the CP/M part 15:47:21 has anyone ever heard about CP/M ? 15:47:31 of course, you'd only have to change the primitives library 15:47:41 Speuler: used to run it 15:47:45 pip 15:47:48 hehe 15:47:51 no copy ... 15:48:06 don't remember much about it 15:48:12 systems should turn off very soon now 15:48:27 I was 10th grade when IBM PC introduced 15:48:28 one machine i've shut down manually 15:49:08 just to confuse the people sitting next to it :) 15:49:21 heh 15:49:48 well, I think I'm gonna go soak in the tub for a while 15:49:54 you folks have fun 15:50:01 --- nick: MrReach -> MrGone 15:50:10 speuler tot volgende keer 15:50:18 no it says "machine going down in 15 minutes" again ... 15:50:23 now .. 15:50:39 machine next to me shuts down ... 15:50:55 I'm still running :) 15:51:13 15:51:21 15, 10, 5, 15 ... 15:51:50 i can could claim that the computer is broken, and i have to take it with me :) 15:52:03 k 15:52:09 k ik ben er nog niet weg 15:52:19 de masjien lijkt verder te lopen 15:52:43 hoe was het in de shop ? 15:53:19 half of the machines are down now 15:53:26 the other half still runs ... 15:53:36 what's the time now ? 15:53:37 . 15:53:38 . 15:54:02 shutdown should commence at one o'clock 15:54:24 quarter past ?? is that right ? 15:54:48 sp ik zet ook bij linux.nl (siaa).. 15:55:06 i'll better shut down some of the others before the staff starts to panic 15:56:21 does anyone know how i can shutdown a lot of machines on the network ? 15:56:47 (without logging in to all of them and shutting them down one by one ?) 15:57:10 k: linux.nl sucks 15:57:31 try #linpeople on varley.openprojects.org 15:57:50 they are somewhat more friendly 15:58:20 16:00:15 in five minutes it say again 16:00:28 i think it tries to shut them down again and again 16:00:54 (but i have the "cancel shutdown" process still running ...) 16:01:16 do you still hear me ? 16:01:17 . 16:01:17 . 16:01:49 machine next to me, other side, shuts down too 16:01:56 strange 16:02:13 must have a better look at that procedure 16:04:12 lots of beeps around me now 16:04:44 16:04:45 16:04:56 --- quit: Speuler (Speuler) 16:06:15 --- quit: k (using sirc version 2.211+4KSIRC/1.1) 16:09:13 --- join: Speuler (l@d120073.upc-d.chello.nl) joined #forth 16:09:16 hehe 16:12:42 16:12:43 . 16:12:43 . 16:12:44 . 16:13:01 gotto 16:13:03 go 16:13:06 bye 16:13:10 --- quit: Speuler (Speuler) 17:30:45 --- join: MrReach (mrreach@209.181.43.190) joined #forth 17:41:45 --- quit: MrGone (farmer.openprojects.net niven.openprojects.net) 17:42:29 --- quit: futhin () 17:58:48 --- join: nate37 (nate@cx83983-d.irvn1.occa.home.com) joined #forth 18:07:27 hiya 19:21:02 hi 19:21:25 heh, just standing up to go watch a movie 19:21:34 see you in two hours @:^> 19:21:39 --- nick: MrReach -> MrGone 19:36:11 --- join: adu (andrew@dsl-64-130-166-225.telocity.com) joined #forth 20:06:21 --- join: I440r (mark4@A010-0088.BLMG.splitrock.net) joined #forth 20:06:26 hi ppl 20:07:46 --- quit: MrGone (Ping timeout for MrGone[209.181.43.190]) 20:08:35 --- mode: ChanServ set mode: +o adu 20:08:35 --- mode: ChanServ set mode: +o clog 20:08:35 --- mode: ChanServ set mode: +o nate37 20:08:35 --- mode: ChanServ set mode: +o I440r 20:10:12 --- join: edrx (edrx@200.240.18.93) joined #forth 20:10:38 --- mode: I440r set mode: +o edrx 20:10:45 hi I440r 20:10:58 :) 20:11:01 hi dood 20:11:10 any news? 20:11:30 I've been playing with something that you'd find a Forth heresy 20:11:30 not realy 20:11:36 hehe 20:11:39 whussuat ? 20:12:56 ? 20:13:18 I wanted a Forth-like language that I could bootstrap with very few lines of code 20:14:16 sounds interesting so far 20:15:53 and, well, I ended up by doing that in just 80 lines of Lua :)))) 20:16:08 wanna see a program written in that language? 20:17:11 http://angg.twu.net/LUA/yoneda.mflua.html is a demo, http://angg.twu.net/LUA/miniforth.lua.html is the Lua code 20:17:17 one minute 20:19:13 --- quit: edrx (Buffer allocation error for edrx[200.240.18.93]) 20:19:36 --- join: edrx (edrx@200.240.18.93) joined #forth 20:24:09 i looked 20:24:13 i dont understand it heh 20:29:40 just one minute, I'm talking to a friend that may hire me to give a course... I'll explain it, it's very simple (or at least I hope so :) 20:31:08 heh 20:31:12 i need a job!!! 20:33:12 --- quit: edrx (farmer.openprojects.net forward.openprojects.net) 20:33:24 --- join: edrx (edrx@200.240.18.93) joined #forth 20:37:13 wb :) 20:37:17 me too, and mine must be sporadic and pay well... I need money for the first months that I'll spend in montreal 20:37:38 i earn 50+ usd per hour when im working 20:37:46 i need money to pay mortgage on new house :) 20:38:44 50 usd per hours seems ok 20:38:57 unless you got a veeeery big/expensive house 20:39:06 but I don't know 20:39:28 prices of things are very different in the US and in Brazil 20:40:02 hey, lemme try to explain the minimal language... 20:40:05 http://angg.twu.net/LUA/yoneda.mflua.html 20:40:22 it starts with only one word in the dictionary, "lua-until" 20:41:13 and it starts without a bytecode interpreter, without ":", etc 20:41:44 the dictionary is just an array that associates to each string a function. 20:42:36 and the basic forthish feature of the language is that you can mess up with the pointers that say where we are in the interpretation 20:42:39 so 20:42:55 the first word of the program, lua-until, is run 20:43:37 it runs "getword()" and gets "EOL"; then it runs "getuntildelim("EOL")" and gets everything up to the next EOL 20:43:47 and executes that as lua code 20:44:26 and that defines a new word in the dictionary: dict["::lua"] = function ... 20:44:43 and defines some lua functions that will ve used later 20:45:03 after the EOL the first word is exactly the "::lua" 20:45:35 when it runs it gets the "%:" using a getword() ("::lua" is like a ":") 20:45:48 and then everythign up to the ";;" 20:46:08 and after some juggling that defines another word in the dictionary, "%:" 20:46:28 that just discards the rest of the line as comments 20:46:47 after that we define "pstack" and "p: 20:46:59 and then comes a block of "%:", that are comment lines... 20:47:39 the we define several other words 20:48:38 note that the "p stack"s run p, which parses the next word with getword(), and first prints it literally then prints the resutl of running eval on it... 20:49:07 so p "he".."llo" would print first "he".."llo" 20:49:11 and then hello 20:49:26 or rather "hello" 20:49:43 as .. is the concatenation operator of lua 20:49:55 well, these are the main features 20:50:52 the nicest thing is that it was so chuckmoorishly simple to build the basic system 20:51:13 ok, he would never use a high-lvele language for that, but except for that 20:51:26 hm? 20:54:18 --- join: futhin (kla@h24-66-209-114.cg.shawcable.net) joined #forth 20:54:30 wii 20:54:32 woooooo 20:54:41 i'm lilakd supper drunk 20:54:45 and i'm going to a rave lcub 20:54:46 clbu 20:54:48 thingie 20:54:49 ale34t3gavfsv 20:54:51 bye 20:54:53 --- quit: futhin () 21:08:31 sorry im not all here - watching silence of the lambs 21:22:18 --- nick: nate37 -> earth 21:25:28 --- nick: earth -> nate37 21:30:45 --- quit: edrx ([x]chat) 21:49:30 --- quit: adu (Ping timeout for adu[dsl-64-130-166-225.telocity.com]) 22:14:57 --- join: MrGone (mrreach@209.181.43.190) joined #forth 22:29:42 --- quit: I440r () 22:55:01 --- topic: set to '' by ChanServ 22:55:01 --- mode: ChanServ set mode: -o clog 22:55:01 --- mode: ChanServ set mode: -o nate37 23:59:59 --- log: ended forth/01.10.19