00:00:00 --- log: started forth/02.10.08 00:47:49 --- quit: Serg_Penguin (Killed (NickServ (Nickname Enforcement))) 00:47:53 --- join: Serg_p (~Z@nat-ch1.nat.comex.ru) joined #forth 01:54:27 ianni: well, im not a professional programmer, but i was 6yrs old when ive learnt basic on a zx81. now im 25yrs old 02:15:47 --- nick: Serg_p -> Serg_penguin 02:56:34 --- quit: Serg_penguin (card.freenode.net irc.freenode.net) 02:56:34 --- quit: Soap` (card.freenode.net irc.freenode.net) 02:56:38 --- quit: ianni (card.freenode.net irc.freenode.net) 02:56:38 --- quit: TreyB (card.freenode.net irc.freenode.net) 02:56:38 --- quit: skylan (card.freenode.net irc.freenode.net) 02:57:15 --- join: Serg_penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 02:57:15 --- join: Soap` (~flop@202-0-42-22.cable.paradise.net.nz) joined #forth 02:57:15 --- join: skylan (sjh@Sprint8102.tbaytel.net) joined #forth 02:57:15 --- join: ianni (ian@inpuj.net) joined #forth 02:57:15 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 03:09:21 --- quit: Serg_penguin (Read error: 110 (Connection timed out)) 03:19:30 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 03:19:48 --- quit: Serg_Penguin (Client Quit) 03:30:45 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 03:57:47 --- join: jacereda (~crc@VA1-1G-u-0007.mc.onolab.com) joined #forth 04:01:05 i440r: which fpc version do you use? 04:05:11 hi 04:05:23 hi 04:28:55 Good afternoon :) 04:40:04 --- quit: jacereda (Remote closed the connection) 04:43:47 --- join: jacereda (~crc@VA1-1G-u-0007.mc.onolab.com) joined #forth 05:02:09 afternoon 05:02:19 fpc seems very cool 05:02:37 a bit chubby, but still nice 05:03:36 * Serg_Penguin does use two russian forths - smal32 (DOS DPMI 32 and linux) and gpforth (dos 64k) 05:03:53 mostly second - no big tasks 05:04:51 has either one a good editor? 05:05:27 no, both like gcc - compiler only 05:05:48 u can compile special source (included) to get dialog system 05:06:00 aha. 05:06:06 err - its gpforth 05:06:20 smal32 has both in one .exe 05:09:04 fetching smal32.. 05:10:15 it has RU docs 05:10:22 be warned 05:10:38 is smal_eng EN docs? 05:10:42 er.. smal_eng.zip 05:11:29 doG knows 05:15:55 -> XeF4 does it work ? 05:16:41 fetching unrar now 05:26:53 -> XeF4 started ? 05:42:15 --- quit: Serg_Penguin () 05:49:03 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 06:15:16 --- join: Herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:15:38 started, no time to test it 06:16:51 Serg: only RU docs found so far. 06:18:48 --- join: LuckyPhil (~phowlett@CPE-203-45-248-201.qld.bigpond.net.au) joined #forth 06:20:21 --- quit: LuckyPhil (Client Quit) 06:20:43 --- quit: Serg_Penguin (Read error: 104 (Connection reset by peer)) 06:22:17 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 06:28:37 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:28:46 tahti 06:31:29 hi hi 07:19:59 --- quit: Serg_Penguin () 07:36:23 --- join: Stepan (~stepan@Charybdis.suse.de) joined #forth 07:37:21 hi 07:37:50 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 07:37:54 is there any good information about the implementation of vocabularies available? 07:42:11 testmsg 07:43:00 Serg_Penguin: ack. 07:45:26 thanx, it needn't ack, i just tryed what happens if i /msg to a channel, not man 07:45:39 * ianni likes the look of isforth 07:46:11 but my nasm dislikes its %xdefine :( 07:57:10 * ianni wonders if he should learn ASM before learning any more forth 07:57:58 heh 07:58:07 * Serg_Penguin considers lame if compiler is written in asm and cannot compile itself 08:02:42 * ianni decides to do some NASM 08:04:58 Heh. 08:05:11 Serg_Penguin: It's not lame :) 08:06:52 maybe i was too crude, but it's no good 08:09:57 Hehe. 08:10:01 Why not? 08:10:11 An x86 assembler is a quite complicated thing. 08:11:59 besides, how many forths are there that can compile themselves, anyway? 08:12:18 * Robert wonders. 08:12:20 I can only think of a couple 08:12:35 spf4 is compiled by spf374, dunno tryed by itself, but why not ? 08:12:54 -> tathi pse gimme names of that couple 08:15:26 Serg_Penguin: I'm pretty sure MOPS does, but that's for MacOS (think < 10) 08:15:48 I was thinking of another one a minute ago 08:16:03 but now I'm drawing a complete blank 08:16:08 hmm... 08:17:11 * Serg_Penguin will try to compile spf4 by itself, if wont forget 08:21:21 --- quit: Serg_Penguin ("time to go home...") 08:33:55 --- join: I440r (~mark4@1Cust169.tnt3.bloomington.in.da.uu.net) joined #forth 08:34:24 lo I440r 08:34:28 hi 08:34:54 wasnt feelin too good yesterday, but i went to bed at 7 and didnt get up till 9 this morning heh 08:35:00 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 08:35:13 serg! hi dood 08:35:30 serg did you get isforth compiled ? 08:36:56 I440r: I'm trying to learn some NASM before I move on 08:37:01 so i might understand things better 08:37:13 I440r: too much sleep makes me tired :D 08:37:24 Hello, I440r :) 08:37:25 I'm having problems compiling the an nasm hellow world 08:37:31 s/an // 08:37:54 [~/nasm]$ nasm -f bin hello.asm -o hello 08:37:54 [~/nasm]$ ./hello 08:37:54 tcsh: ./hello: cannot execute binary file 08:38:01 perms are ok 08:38:17 erm dont do -f bin. do =f elf 08:38:37 then you need to run the hello.o thru the linker (ghey) 08:38:43 -> I440r no, i forgto the right version of nasm 08:38:51 serg hang on 08:39:29 serg ftp://67.241.61.169 08:39:38 there is a nasm gzip in there. use that one 08:40:05 better put binary on web 08:40:06 I440r: ack - ghey indeed 08:40:11 ianni you do 08:40:17 nasm -f elf somefile.asm 08:40:19 then you do 08:40:38 ld -o somefile simefile.o 08:40:41 ./somefile 08:40:49 hello.asm:1: error: parser: instruction expected 08:40:59 org 100h 08:40:59 mov dx,msg 08:41:13 even though your not actually LINKING anything to your hello.asm object you STILL need to link 08:41:16 LAME 08:41:23 oh 08:41:27 haha 08:41:30 is this a DOS executable ? 08:41:43 I440r: oh, yeah, heh.... I guess thats not portable huh 08:41:50 haha 08:42:07 if its a DOS executable then -f elf is wrong hehe 08:42:10 -f bin is correct 08:42:36 with a .bin you need to specify the ORG 08:42:44 if its an elf file you shouldnt specify ORG 08:42:59 -> 12I440r0 tnx, noticed version, dunno wanna waste traffic now 08:43:04 yea ? 08:43:05 It's a DOS hellow world, I440r 08:43:07 -w 08:43:13 -> I440 tnx, noticed version, dunno wanna waste traffic now 08:43:19 ( colors glitched ) 08:43:48 ianni dont need to ld -o it 08:44:06 Eeew... 08:44:07 +c :P 08:44:11 serg you can grab that one off of me or just get the latest from nasm.sourceforge.net 08:45:01 should I learn on NASM? seems appropriate 08:45:09 you reopened your sourceforge account? 08:46:01 no 08:46:04 nasm did tho 08:46:25 i dont like having to babysit a shell account like sf.net 08:46:33 way too much management is needed to use it 08:46:33 bwah! stress bad, decent eyesight good 08:46:39 I saw 'isforth.sourceforge.net' for some reason 08:46:44 heh 08:47:17 I440r: Be proud! I IsForth to demonstrate Forth code, and the IsForth page to demonstrate how ugly you can make a website. 08:47:23 I use Isforth* 08:47:26 --- quit: XeF4 ("sauna") 08:47:55 lol 08:48:04 hhaha 08:48:08 isforths web page isnt ugly, ist MINIMAL :) 08:48:24 Minimal pages aren't in pink. 08:48:36 They're black & white/grey. 08:48:44 its NOT pink 08:48:45 NOT pink and purple. 08:48:46 its PURPLE 08:48:48 Whatever... 08:48:52 your color-blind :P 08:49:00 I am color-blind, yeah.. 08:49:06 i know heh 08:49:26 Yup. 08:49:38 Damn hard to sort resistors :P 08:49:46 lol 08:49:56 its hard to do that even if your NOT colorblind :P 08:50:42 Well, s/hard/fucking impossible/ 08:51:19 ianni did you get that hello world to assemble ? 08:51:36 rename the resultant .bin file to hello.com 08:51:40 and try execute it 08:52:00 No 08:52:22 erm paste the asm here 08:52:48 I can't run it on a linux box 08:52:53 right? 08:53:10 int 21h is gonna be diff on a linux box than a dos box even tho nasm is portable, righT? 08:53:49 hehe 08:53:50 erm your doing it as a dos executable in linux ? 08:53:59 heh 08:54:00 right... 08:54:04 looking for source code now 08:54:10 ok. take the ORG out 08:54:14 and do -f elf 08:54:16 ok 08:54:21 then ld -o hello hello.o 08:55:04 oh 08:55:10 I440r: he has source to a hello world program for DOS, but he's on a linux box I think 08:55:10 erm it STILL wont work heh 08:55:16 yea 08:55:21 you need to do it different 08:55:31 you cant use interrupt 21 in linux 08:55:35 ok good 08:55:39 I understand completely 08:55:45 I feel like a retard for picking this 08:55:48 you need to do a sys write to standard out 08:55:51 but this is my first real try at asm :) 08:55:59 * ianni finds some more source to steal 08:56:06 heh 08:56:48 woot - 08:56:48 [~/nasm]$ ./hello 08:56:48 Hello, world! 08:56:49 :) 08:57:08 now where are the docs I should be reading ? 08:57:33 ill start with a linux tutorial i guess 08:57:57 well if you want to do asm for linux then www.linuxassembly.org is good 08:57:57 this rules.. 08:58:00 The Linux kernel source! 08:58:04 aoready therem I440r 08:58:08 already there, rather 08:58:13 but most of that assumes you know asm 08:58:21 you need a good book on x86 assembler 08:58:26 unfortunatly theres only one 08:58:31 what's that? 08:58:42 the 8086 book (includes 8088) by intel 08:58:47 i can get you an sibn if you want 08:58:50 isbn i mean 08:58:54 its an OLD book 08:59:09 but its the ONLY fucking book worth reading on x86 assembly 08:59:20 getr a more modern book and you will have a 5 inch book 08:59:23 there wasa decent pdf on HLA I read last year 08:59:32 the first 2 inches are on the differences between masn, tasm and spazzum switches 08:59:33 I440r: word... 08:59:46 the next 1.5 inces is on binary, octal and decimal 08:59:52 yup yup :( 08:59:57 etc, etc, etc 09:00:08 next to fucking useless for learning assembler 09:00:13 do you have an actual dos machine ? 09:00:14 and the last few pages are a crappy reference :) 09:00:17 * Serg_Penguin tosses x86 out a window 09:00:37 what commercial CPU has fewest commands set ? 09:00:40 I don't use DOS 09:00:44 I use unix 09:00:51 your sane heh 09:00:55 thats not acceptable :P 09:01:34 serg dont know. do you mean processor or controller. 09:01:43 I440r: lol really.. 09:01:44 the 8051 instruction set isnt HUGE 09:01:54 Fuck DOS. I dont care about it at all. 09:01:59 x86 - *maybe* 09:02:06 also the msp-430 instruction set is REALY cool 09:02:09 but ppc is what I use mainly for the last 2 years 09:02:12 processor for all-purpose compueter 09:02:22 ppc - mac or amiga ? 09:02:33 amiga never used ppc 09:02:38 it used 68k 09:02:47 Mac 09:03:23 but amiga used PPC 'accelerator' - plug-in card what replaces CPU and part of chipset 09:03:43 where is even linux for it 09:04:21 68k? 09:04:26 can use netbsd i think 09:05:02 amiga rulez, i even think of buying one, but two computers are too cumbersome, and Amiga has difficulties w/ Svga CRT 09:05:47 serg i have THREE computers 09:06:01 my server is an athlon 700 mhz 09:06:05 it's native mode is TV, some progs glitch on svga 09:06:10 i have 2 at home 09:06:15 my workstation (currently booted to windows 98) is a 900 mhz athlon 09:06:22 my laptop is a 550 hmz k6-3 :) 09:06:28 1.6ghz athlon 09:06:32 400mhz ppc 09:06:56 and enough parts to make a 500 kk6/2 09:06:59 k6/2 09:07:13 but i gotta only 13 m^2 of lifespase, w/ angry and dirty mother 09:08:25 just no place to store all boxes... 09:09:06 4swallowed u'r tongues ? :( 09:09:58 haha 09:10:31 yea but it didnt taste good so i spat it out :P 09:10:47 :) 09:11:47 and i was thinking about becoming ham radio man... 09:11:50 :) 09:12:44 ham radio would be cool 09:13:39 but hams were first 'spies' at Stalin time, so i'd better not say Big Brother what i can do such things... 09:15:58 building cool recievers to compete w/ soviet jammers was popular at time of USSR 09:16:42 :) 09:17:49 thanx to Germany, USSR didn't seized all Europe and was finally beaten down in Cold War 09:18:55 \ forth can use any damned base it wants to 09:18:55 hehehe 09:19:16 XXI U-boten w/ soviet crews could cut USA's throat, coz USA heavily depends on 'third world' resources 09:20:08 ( only at 80-s USSR built a submarine outclassing German XXI series ) 09:20:33 but germans built whem at 43 09:20:36 if someone cut USAs throat im sure we'd shoot lots of missles at em 09:20:41 thatd be nasty 09:22:24 heh :) I've never seen the background color on the isforth site. I have bgcolor turned off in my user-friendly browsers (dillo, lynx) 09:22:35 heh 09:22:57 missiles ? at WWII ? 09:23:15 --- quit: Herkamire ("lunchtime") 09:23:33 I like links 09:23:48 re 09:24:30 --- part: Serg_Penguin left #forth 09:27:24 re 09:37:21 getenv Segmentation fault (core dumped) 09:37:21 [~/isforth-1.09b]$ 09:37:33 how do I do strings in isforth? 09:40:19 ." " doesnt print? 09:41:17 you cant use ." blah balh" in interactive mode 09:41:26 the word ." is a compiling word. 09:41:29 you have to do 09:41:36 : foo ." blah blah" cr ; 09:41:37 foo 09:41:40 you CAN do 09:41:44 .( blah blah blah) 09:42:53 Got it. 09:43:05 what's ," ? 09:44:48 that compiles a string at HERE 09:44:52 a counted string 09:44:56 in the form 09:45:04 db length,'xyzzy' 09:47:11 k 09:47:37 you could do 09:47:45 create foo ," xyzzy" 09:47:49 foo count type 09:47:49 im not worried about string 09:48:01 I need to learn file i/o so I can make a useful forth pogram 09:48:05 or stdio at least 09:48:08 same thing anyway im sure 09:48:47 what's dot ? 09:49:22 I dont understand how these lines work either 09:49:23 fload forthsrc/comment.f dot \ + commenting words 09:49:40 I'd expect something like ." forthsrc/comment.f" dot fload 09:49:41 ? 09:52:32 ok 09:52:35 \ is a comment 09:52:36 but 09:52:44 its NOT defined within the kernel 09:53:00 its in the extensions. what you are looking at is isforth.f which includes all the extensions 09:53:08 comment.f defines \ 09:53:19 everythign to the left of \ I was looking at :) 09:53:24 I understand \, as you mean it.. 09:53:36 it also defines a word called DOT that i invoke on every included file 09:53:46 fload path/to/file.f dot 09:53:54 executes the fload then executes DOT 09:54:19 but how does the kernel know the word path/to/file.f 09:54:23 thats what I dont get atm 09:54:45 ok 09:55:00 forths interpreter extracts ONE space delimited string at a time 09:55:02 FLOAD 09:55:16 it then searches the dictionary for fload and executes it 09:55:23 interesting 09:55:39 fload takes the next space delimited string (the file name) 09:55:47 and INTERPRETS that file 09:55:55 awesome 09:57:53 so is fload written in kernel? 09:58:00 is it in the kernel 09:58:03 (ie not forth) 10:12:52 fload is written into the kernel 10:12:57 had to be 10:13:04 makes sense 10:13:26 all I know is basic math 10:13:31 I need to start doing something useful 10:13:40 maybe I should start learning struct-like things 10:15:48 no 10:15:59 just learn stack manipulation and basic stuff first :) 10:16:01 swap 10:16:02 dup 10:16:05 drop 10:16:05 nip 10:16:07 over 10:16:16 + - * / . 10:16:46 --- join: Herkamire (~jason@wsip68-15-54-54.ri.ri.cox.net) joined #forth 10:18:22 I440r: I got all that 10:18:24 Hello. 10:18:29 ianni: Most important: bye 10:18:55 I440r: now I'm at a point where I need to start learning to use stdio and other such things so that my forth can actually become useful in computing outside of doing mathematical computation 10:19:12 or to solve higher level problems 10:19:14 i ngeneral 10:19:28 well you can read fronm stdin with key and ?key 10:19:38 and write to stdout using emit or ." xyzzy" 10:19:44 simple. 10:19:47 I should o that now.. 10:19:52 doing 10:20:03 oh, what do I do to get a standalone app 10:20:11 so I can pipe to stdin for ex 10:20:24 run isforth with a .f with a bye in it ? 10:20:43 :) 10:21:12 you CAN pipe to stdin 10:21:19 or 10:21:25 look at test.f 10:21:25 thats +x 10:21:30 I440r right but im used to running/writing forth interactively 10:21:30 it has 10:21:34 I440r: great, thanks 10:21:40 #! ./isforth - fload 10:21:40 as the first line 10:21:40 you can 10:21:40 ./test.f 10:21:43 and execute it! 10:21:58 yeah 10:22:00 Got it.. 10:22:00 :) 10:22:01 Loading fortran...done 10:22:04 damn emacs! 10:22:13 lol 10:22:36 beautiful :) 10:22:50 what is ? 10:22:51 * ianni likes isforth 10:23:04 its a work in progress still 10:23:07 I440r: i dunno, i had never been able to do even use my own file before. I am a total n00b 10:23:12 need a debugger stioll 10:23:27 heh so was i once :) 10:24:18 my terminal is getting messed up 10:24:20 heh 10:24:37 with what ? 10:24:52 LF and or CR's 10:26:17 --- quit: Stepan ("Do you think it is air you are breathing? Hmm?") 10:26:46 ianni: I've never been able to convince emacs that .f doesn't mean Fortran. 10:27:04 finally gave up and switched over to vim :) 10:28:12 ugh 10:28:15 use joe 10:28:19 vi and emacs are evil 10:28:24 i mean REALY fucked up 10:28:35 actually so is joe, joe is NOT a good editor 10:28:47 its just the lesser of 284975623789654237849 evils 10:29:22 sorry 10:29:23 tathi: Hahah, really? it's like one line in your .emacs 10:29:27 heh 10:29:27 I'm thoroughly enjoying vim 10:29:29 lemme see how to do it 10:29:46 hmm. I never figured it out 10:30:59 tathi, emacs is very configurable 10:31:22 I know it is. But after a while I got tired of it taking me 3 hours to figure out how to configure it. 10:31:36 (every time I wanted to change one little thing) 10:32:00 with the .f thing, I got as far as finding an array that appeared to map file extensions to modes 10:32:18 uck 10:32:23 I dont understand all that crap 10:32:27 and managing to set it local to one buffer, but couldn't manage to set it globally 10:32:27 I just use the internet to tell me what to do 10:33:00 ah, maybe that was my problem -- I was just using the help and searcing through the info docs 10:33:04 searching 10:33:06 yeah 10:33:12 I dont ever expect to know that crap 10:33:19 I just like that once I do figure it out, I just put it in .emacs 10:33:25 btw, did you try the online configuration? 10:33:42 that can do stuff like that many rimes 10:33:46 M-x customize 10:33:49 I found that rather frightening 10:33:51 haha ok 10:33:57 well I'll let ya know when I find it 10:33:58 hehe 10:34:14 and it was too deep of a heirarchy, always took a while to figure out what section I wanted 10:34:45 ok, I'd be interested to see 10:36:10 yeah 10:36:13 it's a big confusing mess 10:36:21 but it works ... 10:36:44 if vim could be configured as well as emacs maybe i'd use it then 10:37:08 emacs is confusing. 10:37:17 vi has a fucked up user interface 10:37:23 * Robert uses vim when he has to, otherwise normal editors. 10:37:24 so does joe, but vi is MUCH worse 10:37:32 Hehe. 10:37:39 escape colon shift azlt backspace backspace f10 10:37:41 DOS edit.com forever! 10:37:48 now your in insert mode 10:37:57 More like... "i" :P 10:38:03 shift alt control f5 delete enter 10:38:06 now your in overwrite mode 10:38:13 ok im exaggerating SLIGHTLY for effect 10:38:14 More like "insert" ;) 10:38:16 Hehe. 10:38:21 Slightly.. Hah :) 10:38:32 but. any editor that takes more than TWO fucking keypresses for ANY fucking operation is a pile of shit 10:38:38 I like the modal thing, personally 10:38:42 and that includes the use of shift, alt or control 10:38:45 heh 10:38:45 control X 10:38:47 alt Y 10:39:05 simple programs for simple minds 10:39:06 I don't think I have enough modifier keys to fit everything I want to do into two keypresses 10:39:23 ditto 10:39:34 no, actually, that's not true 10:39:36 pluss my terminal only supports two modifiers 10:39:53 I just want a simple way to record longer sequences easily and then repeat them 10:39:58 which vim has 10:40:04 thats all that should EVER be used 10:40:14 the 'command mode' is fucked up 10:40:24 you're fucked up 10:40:30 joe is bad, you have to hit control K something-else 10:40:34 command mode is what lets you do almost anything in two characters!!! 10:40:36 every time you want to do something 10:40:40 control k b 10:40:42 starts a block 10:40:49 control k k ends it 10:40:54 you should be able to do 10:41:00 move cursor to start of block 10:41:01 hit shift 10:41:04 see, I really like the command mode. It's nice to be able to use single-letter commands when I just want to make edits as opposed to entering text 10:41:06 scroll down to end of block 10:41:08 now its marked 10:41:27 tathi how do you DELETE a line in vi ? 10:41:32 dd 10:41:38 I440r: or in vim, you could hit v, and scroll down to the end of the block. then it's highlited. 10:41:40 escape colon [what goes here?} 10:42:02 I440r: how about you learn how to use it!! 10:42:03 I440r: why are you acting like insert mode is the "normal" mode? 10:42:11 herk but if your not in the right mode you have to fucking switch to it. that counds as extra keypresses for me 10:42:24 I hate command mode - it's niec to be able to have the same flexibility in a stateless environment. 10:42:24 herk the point is. there should be ONE mode. 10:42:26 EDIT mode 10:42:30 I440r++ ! 10:42:35 and ALL functions should be available there 10:42:42 insert, delete, mark, move, copy 10:42:46 etc, etc,et c 10:42:47 I440r: other thing is, vim makes it supremely easy to remap the keyboard 10:42:53 I440r: you can't have both. if there is only one mode, then all your key sequences will be longer. 10:43:06 tathi obviously has never used multiedit in dos 10:43:12 bleh 10:43:19 just kidding 10:43:25 multiedit is pretty nice 10:43:26 tathi: 10:43:26 (setq auto-mode-alist 10:43:27 (append 10:43:27 '(("\\.f$" . fundamental-mode ) 10:43:27 ) auto-mode-alist)) 10:43:31 there ya go 10:43:40 * ianni knows ZERO lisp 10:43:41 btw\ 10:43:42 :) 10:43:54 ianni: in my emacs that added the .f to the end. it still thought .f was fortran because that came _way_ earlier in the list 10:44:02 i use multi edit version 3.01 10:44:13 tathi: this works for me 10:44:21 ianni: cool cool 10:45:10 I440r: I don't remember -- does multi-edit have some kind of a scripting language? 10:45:11 I440r: what is this should/shouldn't about modes in editors. I think an editor _should_ be easy to use, configure and get things done fast. I don't care about modes, and to be honest, I didn't like the idea at first. but I get things done much quicker now with vim. 10:45:48 * ianni likes that M-x customize will configure his .emacs automatically, and it's a no-brainer to use the UI to M-x customize 10:45:57 * ianni likes not having to remember modes while editing 10:46:03 and editor _should_ be fast. vim achieves this by using modes. I say the more power to us. 10:46:07 the latters why I use emacs mainly 10:46:23 ianni: yeah, modes _definitely_ aren't for everybody 10:46:38 emacs doesnt have to use modes to do it though.. I see that as superior design, personally 10:46:41 but 10:46:49 I am not one of these people who have used vi+regexp for 10 years 10:46:50 :) 10:47:15 I don't see a big difference between hitting esc in vim and hitting M-x in emacs. 10:47:23 or C-k in joe 10:47:43 me neither 10:47:43 both are a mode. 10:47:52 just that vim it stays for more than one command 10:47:55 in emacs it's decoupled from the editing though 10:48:10 who cares? 10:48:16 I don't want to do anything but edit with my editor 10:48:29 (well, and scroll and search) 10:48:30 exactly 10:49:11 I'm sure you could bind a key in vim to work just like M-x in emacs 10:49:11 ianni: I've been using vim for just about a month :) 10:49:32 but anyway, personal preference. I didn't mean to start a religious war about editors :) 10:49:36 I guess it's just preference. I can't wriet regexp well, so I use emacs :) 10:49:48 but if i want to use regexp in emacs I can 10:49:53 yeah, this is the wrong place for the emacs vs vi fight 10:49:56 sorry :) 10:50:15 and it's really the lisp in emacs that I object to, not the modes thing 10:50:22 I switched from emacs (which I had been using intencely for about a year) to vim, and after about a week just as fast as I was with emacs, and after two weeks I was quite a bit faster. 10:50:45 tathi: I do not use or know lisp. I just use emacs cause it works 10:51:09 ianni: heh :) that's why I used emacs too. 10:51:15 untill I found something that worked better :) 10:52:36 right on 10:52:40 I'm just piseed that.. 10:52:53 I can't do en masse edits in a mode-ful editor w/o using regexp 10:53:00 or macros 10:53:25 until now it seems 10:53:34 misfire 10:54:13 like I had to convert "a b c d e .........." to "a:b:c:d:e:f ...." the other day 10:54:17 and I just wanted to freakin do it normally 10:54:24 but i couldnt 10:54:33 what vim needs is some kind of emacs-like mode 10:54:42 heh 10:54:45 pico like mode 10:54:57 yeah, why not? I mean, emacs has ViPER or whatever it's called... 10:55:09 yeh 10:55:12 exactly 11:25:01 I440r: like if I run test.f it doesnt do CR or LF at all 11:25:05 do i need term=linux i wonder 11:25:35 ahhh. twas my Term client :) 11:25:38 sorry. 11:29:45 there's no page up is there? 11:32:54 funny how 4.6MB of the emacs 21.1 tar.gz file is elc files... when the source for those is in there too. 11:34:04 heh 11:34:11 nie to not haver to compile i guess ... 11:41:41 if you don't want to compile, you don't download the source... 11:46:16 good point... 11:46:19 there may be a reason for it 11:50:11 possible 11:51:17 but I don't think it's worth it. between removeing those and switching to bzip2, it can take it from 19.8MB to about 12MB 11:51:41 that may make it small enough that dial-up people would consider downloading it. 11:53:01 haha 11:53:03 really 11:54:53 some :) some dialup people 12:01:29 --- join: XeF4 (xef4@lowfidelity.org) joined #forth 12:08:29 no im agreeing "really." 12:15:05 ok, time to write block support for fpos 12:18:47 ok so why doesnt this work, giving stdin: 12:18:47 while ?key 12:18:48 key emit 12:18:48 repeat 12:18:56 god i know thats porbably so wrong 12:19:10 but i need guidance 12:19:11 haha 12:24:19 ok, 1) you have to put it in a word, the control-flow structures in forth usually don't work at interpret time 12:25:02 2) the condition would go before the loop thingy 12:25:35 ahhhhhhhh 12:25:39 (1).. 12:25:50 stupid stupid :) 12:25:59 right on 12:26:22 does that work then? 12:26:25 what forth are you using? 12:26:56 isforth 12:27:08 : echokeys repeat key emit ?key while ; 12:27:42 something like that should work 12:27:47 usgh 12:27:54 I have while THEN repeat 12:28:00 no 12:28:03 no then 12:28:06 begin 12:28:07 do test 12:28:15 while (while test is true) 12:28:18 do all this 12:28:20 repeat 12:28:37 ok 12:28:53 or 12:28:58 begin 12:29:07 do usefull stuff 12:29:10 do test 12:29:15 echokeys begin do ?key while key emit repeat ; 12:29:19 whats wrong ? 12:29:20 unitl \ repate until test is true 12:29:38 ianni: remove "do" 12:29:54 hmm nope 12:30:12 what happens? 12:30:16 betgin 12:30:17 key? 12:30:18 oh "do test" 12:30:20 while 12:30:23 misread :) 12:30:24 key emit 12:30:25 repeat 12:30:37 but that will exit IMMEDIATLY 12:30:43 being 12:30:47 : echokeys begin ?key while key emit repeat ; 12:30:47 is what I have.. 12:30:49 and 12:30:49 [~/isforth-1.09b]$ echo "hell world" | ./key.f 12:30:49 ?key ? 12:30:57 key dup $1b <> 12:31:00 erm 12:31:01 begin 12:31:08 key dup $1b <> 12:31:10 oh 12:31:10 while 12:31:13 emit 12:31:15 repeat 12:31:16 drop 12:31:24 1b is an escape 12:31:28 wtf :) 12:31:31 you could change that to $0d if you like 12:31:59 I440r: key? or ?key 12:32:10 oh, right 12:32:13 it's complaining on that word 12:32:15 I jsut realized :P 12:32:30 there we g 12:32:30 o 12:32:52 infinite loop yay 12:33:01 What is the escape and why am I using it? 12:33:10 what are $1b and $0d? 12:33:11 er i forget which is is heh 12:33:14 especially? 12:33:15 ?key i think 12:33:16 specially I mean 12:33:19 specifically I meant 12:33:23 $1b is an escape 12:33:26 $0d is a cr 12:33:46 oh the key. 12:33:51 why do i need it 12:33:57 print out keys until you get an escape 12:34:01 and whats <> ? 12:34:01 you need to have a way OUT of the loop 12:34:06 what good is cr? 12:34:10 er 12:34:11 doesn't linux use lf? 12:34:11 <> is not equals 12:34:15 I44... 12:34:21 isnt that what "key?" is for? 12:34:28 no 12:34:30 (guess not :) 12:34:38 key? just tells you if ANY key has been presssed 12:34:42 ok well 12:34:43 ianni: you're right 12:34:44 key READS the keyboard 12:34:47 key? is non blocking 12:34:50 key is blocking 12:34:57 I want to echo "foo foo" | ./key.f 12:35:05 : key begin key? until (key) ; 12:35:07 w/ an indweterminate string end 12:35:08 I440r: ianni is reading from the keyboard untill he get's it all. when key? fails he exits 12:35:12 is a BAD way to do key in linux 12:35:17 where (key) reads stdin 12:35:28 thats wrong 12:35:29 I440r: that def. of key? makes sense, ok, 12:35:33 key? will fail immediatly 12:35:49 try this 12:35:55 I440r: so there is no clean way to write echo "any string w/o special termination" | myfile 12:36:00 : foo begin key? not until ; 12:36:01 foo 12:36:02 ? :) 12:36:04 ok 12:36:08 foo will wait for a NO key condition 12:36:13 i.e. it will exit immediatly 12:36:31 it looks to never exit to me 12:36:42 if I run like this: echo "hell world" | ./key.f 12:36:42 try this 12:36:43 : foo 12:36:49 begin key? until ; 12:36:56 THAt wont exit until you press a key 12:37:03 it's happenign the other way around :) 12:37:04 begin key? while blah repeat 12:37:07 as you've just said 12:37:08 will exit IMMEDIATLY 12:37:12 the one with not until hangs 12:37:41 but acts as you say if I run w/o piping 12:41:58 whgeres moonphases 12:42:42 shouldnt hang 12:42:48 should exit on first keypress 12:43:05 erm or am i getting confused now heh 12:43:53 dude, I got confused a long time ago 12:43:54 :D 12:46:09 I440r : I put the terminal in CANONical mode, how do you do it? 12:46:20 i dunno 12:46:26 normal rh linux bash shell 12:46:51 Er, I'm talking about the word key 12:47:23 BTW, frugal has a powerful debugger now. It's l33t. 12:47:47 cool 12:47:52 Breakpoints, stepping over instructions, stepping into instructions. It's fun stuff. 12:48:00 oh misread 12:48:02 yes 12:48:09 im going to do one for isforth 12:48:29 with ability to single step coded defs too 12:48:30 You can take a look at mine soon. I'm just writing the documentation for it, then I'll release it. 12:48:48 :) 12:50:02 What's really great is that the debugger uses query and interpret for the interactive modes, so you can do anything you can at the forth interpreter inside the debugger. Very useful if you want to find out what a variable's value is and such. 12:51:51 I440r : BTW, I implemented locals if you want to take a look at them too. 12:52:37 --- quit: XeF4 ("Z") 12:52:40 arent locals Bad? 12:52:48 erm no thanx, im sorta against them, i could implement them np 12:52:48 Well, it's debatable. 12:53:10 its being debated heh 12:53:21 I think it's a good idea to have them even if you don't use them though. 12:53:46 They can simplify a lot of stack kung-foolery in certain instances. 12:54:07 The best part of them though is the dynamic namespace. 12:55:37 but if you need them to sort out the stack manipulations you need to rethink your code anyway so... 12:57:31 Not necessarily. They're great if, say, you have to be passed 6 arguments in order to be reentrant. You can then fork out many small words for handling those variables. 12:58:13 I use kind of an interesting approach. When you start locals, it creates a new word ";", which when called, closes the definition, and does "forget ;" 12:58:35 Maybe that's how other people do it, I dunno. 12:59:17 Maybe they vector ";"... Hm... 13:00:12 factor factor factor 13:00:18 most forths just give you a way to NAME the varilus stack items 13:00:33 | local0 local1 local2 | 13:00:47 you can now do local0 @ or local0 ! etc 13:01:00 and your manipulating the param stack items 13:01:12 not sure how good it works if you do a rot or a drop heh 13:01:38 Hm. I do mine on the return stack, so the param stack is clear. 13:01:57 :) 13:02:07 might be better to use a dedicated locals stack 13:02:08 Mine might look like this: : my_word l{ x y z } x + y - ; 13:02:14 that way doing >r and r> wont mess u up 13:02:21 Meh. :) 13:03:59 I just say "do not access locals in a do loop" and "do not access locals if you alter the return state until you restore it" 13:04:14 s/state/stack 13:04:15 ah 13:04:52 If you wanna use a do loop in a locals word, you can, just don't access locals inside it. Press em on the stack first or something. 13:06:29 how do I do a character literal in isforth 13:06:46 I think it's 'c' 13:06:53 yes 13:06:59 works with every character except space 13:07:09 great 13:07:11 ' ' is interpreted as tick tick 13:07:16 so wait 13:07:17 --- quit: jacereda (Read error: 110 (Connection timed out)) 13:07:18 Use bl for space 13:07:19 which returns the cfa of the word ' 13:07:24 n/m 13:07:26 yes 13:07:27 fuck it 13:07:33 'x' 'y' 13:07:37 for every other char 13:07:45 no [char] x 13:07:51 thats BUTT UGLY 13:07:52 nah i was gonna ask how t o get wqhat wer wer talking about earlier to work 13:07:55 im gonna try some more 13:07:57 no ascii y 13:07:57 I440r : Does that work for both interpretation and compilation? 13:08:02 yeah, 'x' is just how i would want 13:08:10 fractal what do you mean 13:08:12 perfect 13:08:13 'x' 13:08:17 oh 13:08:22 'x' emit 13:08:35 in interactive mode emits the x 13:08:36 : foo 'x' emit ; 13:08:40 compiles 'x' as a literal 13:08:47 because 'x' is like $45 13:08:55 ok so I cant use this: : foo begin emit key? not until ; 13:08:56 handled by NUMBER 13:09:00 number looks for 13:09:01 because key? will be 0 first? 13:09:06 \xxx as an octal number 13:09:15 $yyy as a hex number 13:09:23 and 'z' as a character literal 13:09:37 no. you have nothing to emit 13:09:44 Hm. Don't you use base? 13:09:57 yes 13:10:00 base exists too 13:10:17 but. you can be in ANY base and insert octal, binary and hex numbers 13:10:23 and character literals 13:10:29 3 base ! 13:10:35 #20 13:10:35 erm 13:10:39 $20 <-- hex 13:11:19 ianni: does this work? : cat begin key? while key emit repeat ; cat bye 13:11:54 Yeah, I only use base. 2-36 is the range. 13:12:10 Don't want to complicate "number" any more than I have to. 13:12:12 Herkamire: yeah, except for nevr exiting. 13:12:20 i allow you to set base to anything but 2 to 36 is the only realy useful range 13:12:26 there's gotta be a way unix programs know that stdin ended 13:12:28 hmmmmmmmmmmmmmmmmmmmmmmm 13:12:37 Yeah, me too. The only displayable range, anyways. 13:12:44 i like being able to use $xx for a hex number because its less ambiguous 13:12:58 Fair enough. 13:13:11 and base is only useful for inputting and outputting nubmers so the digigs HAVE to be displayable heh 13:13:20 so 92 base ! 13:13:24 is useless heh 13:13:28 i jsut dont check the range 13:13:30 Exactly. 13:13:31 ianni 13:13:34 Ya, me neither. 13:13:44 ianni: that's probably because isforth does not support EOF 13:14:13 I440r: what does "key?" return on EOF? 13:14:22 wh0rd 13:14:30 \s 13:14:35 oh 13:14:45 no. isforth doesnt knnow its being piped to yet 13:14:49 i have to fix that 13:14:53 it just reads stdin heh 13:15:12 id doesnt know that stdin is a pipe yet and to quit when the data terminates 13:15:28 but if you put a bye at the end of the piped data it will be a SORT of fix heh 13:15:40 \s is a comment. everything else in the file is a comment 13:15:44 usefull for debugging 13:15:59 other than that i dont support multi line comments 13:16:01 It doesn't have to quit, but key? should definately return false. 13:16:07 \ on every line 13:16:13 not 13:16:13 comment: 13:16:13 blah blah 13:16:13 blah blah 13:16:13 blah blah 13:16:22 ;comment 13:16:29 key? is none blocking and returns either true or false 13:18:09 I don't use key?, because what it does depends on your terminal's state. In mine you would use poll and read, which would handle EOF. 13:18:47 key? uses poll 13:19:05 key? uses poll and key uses read 13:19:07 I440r : So isforth's terminal is always in CANONical mode? 13:19:28 but isforth doesnt knnow how to distinguish between keyboard and piped data 13:19:55 canonical is where its in one keypress = one key returned 13:19:56 yes ? 13:20:07 not. read entire string then get them one at a time till the cr 13:20:33 Right. I think. I might have it backward. 13:20:53 usually when you call read on a file it reads up to the next cr 13:21:07 then each successive call to read returns one of the already buffered characters 13:21:34 canonical mode makes it return each character at the time the key was pressed 13:21:42 and 'I' buffer it 13:21:47 No, when you call read() on a file it will read until EOF, or the max number of bytes is read. 13:22:07 oh yea 13:22:12 Same with a socket. It's a terminal that will behave that way if it's in non-canonical mode. 13:22:13 well 13:22:13 stdin has no eof 13:22:17 i dont believe 13:22:42 i specifically dont want it in non canonical mode 13:23:12 stdin does have an EOF. For instance, when you type ^D to a piped application like cat, the terminal devices goes into EOF state. 13:23:56 oh yea 13:24:12 People say everything in unix is a file, but they're wrong. Everything in unix is a device. :) 13:24:26 not true 13:24:38 oh heh 13:24:39 everything in unix is a FILE i think not a file 13:24:40 Well, no, of course not. :) 13:24:42 yea 13:24:47 hehe 13:24:59 I440r: fix "key?" 13:25:10 fix it how ? 13:25:12 nah it's ok 13:25:16 your polling stuff must not be working. after you reach EOF it keeps returning true. 13:25:18 whats wrong with it 13:25:27 --- join: Soap- (~flop@202-0-42-22.cable.paradise.net.nz) joined #forth 13:25:34 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 13:25:34 I440r: well, there IS an end to stdin 13:25:37 all key? returns is "is there a key pressed" 13:25:38 there has to be 13:25:46 hmmmmmmmm 13:25:50 there are all sorts of flags returned in the poll-fd structure that im totally ignoring 13:25:57 at EOF there is NOT a key pressed 13:26:06 Herkamire : That's because the descriptor is NOT blocking, it's reached EOF. 13:26:34 The behaviour is correct, it's just that key? is not well suited to a unix environment, which is why I don't use it. 13:27:03 Makes sense to me. 13:27:11 :) 13:27:15 is key my only opetion? 13:27:19 in isforth 13:27:34 if so, it's ok, I'll move on - im not accomplishing anything here 13:27:36 I440r : You provide direct access to poll() and read(), right? 13:27:45 no, you can use and \ 13:27:50 those are the syscalls 13:27:59 I see 13:28:04 there is a syscall yes 13:28:31 plus 13:28:34 Fractal: what do you think key? should return when you reach EOF? 13:28:37 ianni : Instead of key?, use poll(). Instead of key, use read(). When read() returns 0, you've reached EOF. 13:28:42 if there is a syscall that you need but isnt there you ca use the word syscall to create it 13:28:55 #parameters syscall-number syscall 13:29:05 i wrap all syscall names in < > chars 13:29:21 Herkamire : Both T and F are wrong in that case. There is no character waiting on the device, but the device is NOT waiting for a character. 13:30:20 --- join: tcn (tcn@tc3-login22.megatrondata.com) joined #forth 13:30:38 Fractal: kl 13:30:40 Fractal: k 13:30:50 ianni : Seriously, I wouldn't worry about it for now. 13:31:21 Somebody needs to come up with a better I/O API for forth in a unix environment, IMO. 13:31:25 tcn! 13:31:35 hey 13:32:49 me and i440r came up with a good I/O system.. 13:33:25 its not perfect tho 13:33:34 it needs some work heh 13:33:39 and i changed it a little :) 13:33:47 you just use KEY ACCEPT TYPE . EMIT etc.. and redirect stdin/out 13:33:48 key? uses a pollfd 13:33:52 Fractal: so..... which makes more sense, true of false? 13:33:55 i dont have accept 13:34:00 im using query and expect 13:34:04 expect, whatever :) 13:34:08 hehe 13:34:29 is "accept" just expect renamed ? 13:34:46 no.. you have to give an address & count where to store the string 13:34:54 and preallocate it 13:35:23 Herkamire : Well, that's an interesting question. The unix behaviour is T, because that descriptor is considered not-blocking, so you can safely use the descriptor without blocking your process. Like I say, though, neither of them are optimal behaviours for forth. 13:35:54 Well, let me rephrase: Neither of them are optimal behaviours for key? 13:36:20 aha 13:36:31 for expect you mean 13:36:39 expect expects n characters to address a 13:36:48 which is usually TIB :) 13:36:56 oh, then accept IS the same 13:36:58 Actually, I think expect is okay. It's practically a direct call to read() :) 13:37:08 Oh, sorry, wrong conversation. 13:37:28 fractal expect cant be a direct call to read because of line editing 13:37:33 i440, you messed with the select() call? 13:37:35 which isforth doesnt realy have yet 13:37:44 im not using select 13:37:52 if you need a select syscall add it :) 13:38:03 I440r : Yeah, I don't use it either. I don't personally think it's necessary. 13:38:08 #parameters syscall-number syscall