00:00:00 --- log: started forth/01.11.08 03:18:16 --- quit: clog (Ping timeout) 03:18:16 --- log: stopped forth/01.11.08 03:19:57 --- log: started forth/01.11.08 03:19:57 --- join: clog (nef@bespin.org) joined #forth 03:19:57 --- names: list (clog plbofh @MrReach) 03:35:34 --- join: aum (aum@210-54-227-86.adsl.xtra.co.nz) joined #forth 03:58:01 --- quit: aum () 04:14:48 --- quit: MrReach (Read error to MrReach[209.181.43.190]: Connection reset by peer) 04:16:20 --- join: MrGone (mrreach@209.181.43.190) joined #forth 04:39:12 --- join: edrx (edrx@200.240.18.94) joined #forth 04:39:28 --- quit: edrx (Read error to edrx[200.240.18.94]: EOF from client) 04:55:01 --- quit: MrGone (Read error to MrGone[209.181.43.190]: No route to host) 04:56:15 --- join: MrGone (mrreach@209.181.43.190) joined #forth 05:07:55 --- join: edrx (edrx@200.240.18.82) joined #forth 05:28:02 --- quit: clog (Ping timeout) 05:28:02 --- log: stopped forth/01.11.08 05:28:10 --- log: started forth/01.11.08 05:28:10 --- join: clog (nef@bespin.org) joined #forth 05:28:10 --- names: list (clog MrGone edrx plbofh) 05:50:52 --- nick: MrGone -> MrReach 05:51:06 --- mode: ChanServ set mode: +o MrReach 05:51:13 --- mode: MrReach set mode: +o edrx 05:51:18 blah 05:52:19 Hitachi has, apparently, built the super-duper microcontroller series with DSP and floating point capabilities, but neglected to write an assembler for them 06:07:58 --- quit: edrx ([x]chat) 06:57:33 --- nick: MrReach -> MrGone 10:55:06 --- join: Speuler (roberto@orange.icafe.spacenet.de) joined #forth 10:55:16 g'day 10:56:06 mrreach: i have put the beginnings of a forth interpreter, written in asm, together with the script to assemble it, using NASM, on http://blik.wox.org/software/forth 10:59:32 --- part: Speuler left #forth 12:12:11 --- join: Speuler (akhandel@preiselbeere.icafe.spacenet.de) joined #forth 12:13:10 --- nick: MrGone -> MrReach 12:13:12 hihi! 12:13:18 hi mrreach 12:13:28 reading those sources now 12:14:00 i don't have cvs on that server 12:14:16 I don't imagine you would 12:14:26 CVS is a complicated beast in any case 12:14:40 though not bad once running 12:15:01 the parts commented out i have pulled from previously written forth,. i think they can be recycled 12:15:01 how come there are no notes about how its put together? 12:15:06 are they in German? 12:15:11 notes ? 12:15:43 in the past, when I wrote a system, it always started with a text doc explaining dictionary layout, threading, etc 12:15:50 I take it you don't do that? 12:15:57 i dod so once 12:15:59 did 12:16:10 but nowadays i start with the source, and document later 12:16:17 * MrReach laughs. 12:16:20 when i know how i'm going to put things together 12:16:32 easier to write than to document, the bane of forth programmers 12:16:33 to avoid discrepancies between docs and program 12:16:53 misleading docs are worse than no docs 12:17:16 that is quite true 12:17:32 i'd like to make the doc part of the source 12:17:40 so, which level of processor did you want the assembler to support? 12:17:49 so the tow things can be changed in one place 12:17:51 two 12:19:39 from what I see ... read1char will cause the line to accumulate until RETURN is pressed ... is this true? 12:21:30 read1char doesn't work yet 12:21:34 waits for a CR 12:21:40 shouldn't 12:21:51 yep, need to call the ioctl sometime during startup 12:21:59 idea is to buffer incoming string, and have key read from buffer 12:22:21 you know better than i do 12:22:53 really? you've never tripped over the line buffering of console input before? 12:23:06 I hate it ... screws up everything, even modem drivers 12:23:19 not with linux 12:23:48 ok, lemme see if I can find the kernel call for it 12:24:01 (not tripped because haven't had single character input running as far 12:24:02 ) 12:24:11 which processor do you intend to write the assembler for? 12:24:32 i consider using something similar like i did with elastic: 12:24:41 a cpu-independant assembler :) 12:24:59 had virtual mnemonics which got translated to the target opcode 12:25:34 so, what is written in virtual assembly, should translate to anything for which the virtual mnemonics have translation rules 12:25:47 which is sometimes not so efficient like straight assembler, 12:25:53 bit very much more portable 12:26:22 one virtual mnemonic might be: mov r1,r2 12:26:31 heh, since when were assemblers supposed to have portable source? 12:26:45 on intel, it might be mov ebx, eax 12:27:11 i don't know whether they are supposed to or not. if they are, i reserve me the right to ignore it 12:27:43 on 68000, it might be move A0, A1 12:28:06 on H8, mov.w ER0, ER1 12:28:25 haha! are you listening to BBC World Service? 12:28:41 he just mentioned an "inscrutible sheep" 12:28:49 brb 12:29:00 need electricity again :) 12:29:16 service is just sorting glasses 12:29:28 don't want her to step down from the ladder :) 12:30:06 --- join: Speuler_ (roberto@banane.icafe.spacenet.de) joined #forth 12:30:09 ahem 12:30:16 other machine for now :) 12:30:53 here 12:31:00 --- quit: Speuler_ (Speuler_) 12:31:01 ok 12:31:16 you ought to install ICQ on one of those machines 12:31:38 there is icq installed on all of them 12:33:38 the logic of 0< 0= = etc has been carefully crafted for code-copying 12:34:19 i hope i am proud on those for no bad reason 12:34:27 ok, am looking at syscalls now 12:34:42 that would be extremely helpful indeed 12:35:14 i was considering pulling out that code from another program 12:35:43 but that's a kind of work i don't like very much :) 12:36:18 the outer interpreter comes from an embedded implementation. there are still watchdog timer kicks in it 12:36:44 heh 12:36:58 why do you put the tasker at such a low level? 12:37:00 and the tasker might have to be adapted to take advantage of thread if that would be of any use 12:37:14 coming from pervious implementation too 12:37:22 where the interpreter was the os 12:38:54 same goes for quare root ... not really useful here but what the heck i thought. jsut stuff it in :) 12:39:13 yes, I saw that 12:39:19 rather raised my eyebrows 12:39:53 might throw it out again. 12:39:56 heh, the ioctls allow you get and set the keyboard LEDs 12:40:38 and make the little speaker beep with various tones 12:40:47 what docs are you reading now ? 12:41:08 man 4 console_ioctl 12:41:12 i was looking for better info on syscalls on my machine 12:41:29 (which is off-line now) 12:41:40 then you probably want Reckenwald's page 12:41:42 only got what has been installed already 12:41:58 i can take some doc home with me on a floppy 12:42:23 http://home.snafu.de/phpr/ 12:43:38 do you, by any chance, know what scsi raid controllers are well supported with linux ? 12:44:04 heh, no 12:44:20 there's lots of docs about them, though 12:45:26 is there any hardware channel on this net ? 12:46:11 on openprojects? I should think so 12:46:19 try #linux 12:46:33 getting channel list now 12:47:13 brb 12:53:02 back now 12:53:11 ok 13:01:25 on linuxhelp they recommend adaptec raid controllers 13:01:42 that would make sense 13:02:04 GAAARGH! I *hate* setting line disciplines for consoles 13:02:16 I always forget how to do it, and spend hours refinding the info 13:17:53 blarg 13:18:00 * MrReach checks the eforth sources 13:37:43 ?key may be somewhat problematic too 13:37:58 as unix doesn't like apps to poll for keys 13:38:28 well, that can be circumvented via a 1-cell buffer 13:39:24 : key ( -- char ) key-buf @ dup -1 = if (key) then ; 13:39:29 I think that's right 13:39:49 nope ... 13:40:17 drop (key) 13:40:24 : key ( -- char ) key-buf @ dup -1 = if (key) else -1 key-buf ! 255 and then ; 13:40:40 @ 1+ ?dup if (key) ... 13:40:42 (key) physically gets the keystroke 13:41:05 ok 13:41:23 hrm ... that still doesn't fix the blocking if no keystroke is ready 13:41:29 could be "0" in key-buf in case of empty too 13:41:37 ioctl can be used to fix that, also 13:41:53 it is possible to receive a null byte in the input stream 13:42:05 so need a flag that is more than 8 bits 13:42:27 stick a fifo in between, and read # of fifo-elements with ?fifo 13:42:45 asynchronously reload fifo 13:42:53 eforth appears to use non-blocking input 13:43:08 heh, then we're into signals ... *FUN* 13:43:30 no need for fifo ... 13:43:45 we type slower than programs reads keys ... 13:44:01 yes, the blocking when no key is ready is the only concern 13:44:06 problem is if there is no key, not if there are too many of them ... 13:44:25 * Speuler slaps himself with a steam roller 13:46:56 begin ?key until is no good 13:47:20 but programmable 13:47:25 two things *MUST* be specified to the kernel: 13:47:42 1. that buffering is turned OFF 13:48:01 2. that a read where no input is available is non-blocking 13:48:04 begin ?key not while (sleep-until-key) repeat 13:48:05 oh, also ... 13:48:25 might want to tell kernel to use "RAW" input ... no translation 13:48:31 yes, good 13:49:23 I like menus that pop up by pressing ESC and F1 (even in text mode) 13:49:46 that's impossible with line-buffered input 13:49:59 ok, I can say empirically that "it can be done" 13:50:18 it has been done, so it is possible 13:50:26 zed does it 13:50:33 (editor) 13:51:31 iomode:A 13:51:31 push ebx 13:51:31 sys_fcntl [uref uPINP],F_SETFL,O_RDONLY|O_NONBLOCK 13:51:31 sys_fcntl [uref uPOUP],F_SETFL,O_WRONLY|O_SYNC 13:51:31 pop ebx 13:51:32 ret 13:52:19 that's from Reckenwald's linux version of eForth 13:53:30 btw, signals are *WAY* cool 14:08:21 mrreach: you should still have the shell on blik.wox.org available to you 14:08:24 better, I think, to write the assembler as expected by other coders, then setting up macros for uniformity across platforms 14:08:35 I think I do, yes 14:09:06 this eforth is written in NASM, btw 14:09:16 you might want to look at the sources 14:09:20 by uploading the ssh public key, you autolog in and out from command line 14:09:42 maybe some kind of version control can be build around this ? 14:09:56 I use SecureCRT from my windows machine 14:10:20 hmm - wouldn't know about that one 14:10:24 eventually, we will want CVS, for sure 14:10:32 (only know putty on win boxes) 14:11:03 if you have a windows machine, you should try SecureCRT ... it's awesome software 14:11:10 would cvs on openprojects be an option ? 14:11:22 even has a "linux console" mode 14:11:28 fine with me 14:11:42 i have never set up a project on openprojects 14:12:09 been using TLIB a lot. 14:12:09 --- mode: MrReach set mode: +o Speuler 14:12:28 currently MKS which i don't like so such 14:12:30 much 14:12:31 yes, there are several CVS services 14:12:46 may I suggest that one of use install Zope on one of our machines? 14:13:04 integrated CVS w/ web access, mailing lists, and wikis 14:13:13 sounds way cool 14:13:23 heh, if you like Python 14:13:38 i think i like it 14:13:57 http://www.zope.org 14:14:00 (only had some short glimpses at) 14:14:23 python looks pretty good to me, but interpreted 14:14:37 haven't really looked at it in depth 14:14:46 OH! that reminds me! ... 14:15:19 have you considered using a token interpreter ... so that Forth binaries can be portable across platforms? 14:15:27 yes, i did 14:15:33 liked the idea 14:15:48 similar to java, but w/o the oerhead of typing 14:15:53 but wanted to get something conventional running quickly 14:16:00 * MrReach nods. 14:16:28 with option to remodel it once some base stuff works 14:17:03 returning to a known working state seems to me easier than getting some new model that far ... 14:17:20 ok, but you end up with cruft in the sources 14:17:52 as long the system is minimal, remodeling it shouldn't be such huge a task 14:18:26 minimal prims, system itself can be huge 14:19:06 oh, when I wrote my forth, it took (IIRC) 54 words to get to INCLUDED ... have you done it in less? 14:20:31 wouldn't know the word count on elastic when it compiled. 14:20:52 but the early version of it was my most compact forth as far 14:21:08 (that was before it became metastic) 14:21:10 that was the objective, in my opinion ... getting the system far enough along that I can extend itself 14:21:24 writren elastic, to remodel it to a metacompiler 14:21:30 in fact, you had to include SAVE-SYSTEM 14:21:37 then i dropped it ... 14:21:56 i didn't use included ... 14:22:13 but type sources | elastic :) 14:22:26 loaded include that way too 14:22:33 haha! 14:22:54 elimiated the need for disk i/o at that stage 14:23:07 I think Ting did that, too, for a while ... led me to believe he was irritating 14:23:20 * Speuler can be irritating too 14:23:38 good solution, though, even if it's a bit kludgy 14:23:42 ask i440r :) 14:23:59 I don't have to ... he's easily irritated 14:24:24 i included an i440r conditional in toyforth :) 14:24:42 heh 14:24:54 oh, do you intend toyforth to be ANS compliant? 14:25:20 lets say, leaning towards ans compat 14:25:32 ok 14:25:34 but not necessarily 100% 14:25:36 depends 14:25:54 not my intention to by counter-ans by all means 14:25:57 right, I presume you don't intend to implement all words, but those that you do will work as advertised 14:26:24 that sounds like a good base 14:27:00 do you intend to implement a full-scale testing framework? 14:27:18 i can live with the concept of naming words differently if they differ from ans 14:27:19 so that it borks if you break some bit? 14:27:41 would be helpful 14:28:21 I'm getting the impression that you're considering porting to a plethora of platforms ... am I mistaken? 14:29:10 i'd like to able to take it with me to other platforms, yes, but don't design especially for another platform right now 14:29:29 ok 14:29:39 wouldn't have started using asm otherwise 14:29:48 shouldn't be an issue so long as few prims 14:29:55 what would you have used? 14:30:09 (have done fairly little asm under linux, so it would be a good exercise too) 14:30:32 a target compiler written in AWK :) 14:30:42 YUCK!!! 14:30:53 hehe 14:31:04 that's as bad as m4 14:31:51 actually, you might be amused to know that I've been pondering how to implement a .SECTION directive in a forth metacompiler 14:32:59 what debugger would one use with a program, assembled with nasm ? 14:33:16 gdb ? 14:33:24 I would use embedded print statements 14:33:31 anyting more visual ? 14:33:53 isn't there a debugger IDE at the nasm site? 14:34:01 breakpoint, single stepping would be helpful sometimes 14:34:36 also, I think NASM output files are designed to work with EMACS and GDB 14:35:06 why not write a pentium assembler and disassembler ... and do it right? 14:35:14 * MrReach grins behind his hand. 14:35:48 cause the system would have to work in order to use its buils-in debugging facilities 14:36:36 do you even own a Windows machine? 14:36:37 that's when a debugger is less important 14:36:54 i have vmware on my notebook, with a w98 installation 14:37:03 ok, pretty close 14:37:21 mainly for downloading detail maps to the gps 14:37:38 please try to isolate all the i/o stuff into one section ... 14:37:47 and to show off with linux :) 14:37:59 I intend to port your code to Win32, and it should be trivial 14:38:55 shouldn't be too much of a hassle to keep the system specific part apart 14:39:30 could call all system specific code through one i/o function 14:39:58 many people don't realize that Win32 provides a console API ... it's started with one system call, and then the stdin/stdout/stderr works as expected, AND one can abandon the event-driven programming model (if desired) 14:40:05 procided, same cpu, same mode 14:40:46 would probably fairly minimal os interface anyway for the start 14:40:59 no need to bottleneck like that 14:41:21 better to have several words that are clearly expected to be system-dependant 14:41:58 even if I had to rewrite all 40 of the primitives, it still wouldn't be such a bad thing 14:42:18 but I'm only expecting to have to write 5-8 i/o prims 14:43:10 do you expect the kernel to link to glibc at runtime? 14:43:26 not planned at the moment 14:43:31 (I see that so far, you've only been using syscalls) 14:43:51 i tried glib exit 14:43:58 quit, that is 14:44:09 ahem .. bye 14:44:15 couldn't get it link?? 14:44:22 * MrReach chuckles 14:44:43 i don't recall what the problem was :) 14:45:05 i think, core dump 14:45:21 well, that's a way to exit a program too 14:45:31 at the minimum, I'd recoomend linking enough to use LoadLib and FindProc 14:45:51 I think GNU provides a seperate, much smaller library to do that 14:46:06 would help immensely to interface to the higher-level system stuff 14:46:34 being able to call x functions is something i'd like to be able to do 14:46:47 but not given much thought on that yet 14:46:53 postponed 14:46:57 ok, you're gonna need a LoadLib for sure, then 14:47:22 i've put it into the "optional" drawer 14:47:31 add-on 14:47:52 too early at this current stage 14:47:59 (unless you're gonna talk raw XProto, which I would recommend against) 14:48:32 i agree without restriction with you on this point 14:48:58 well, I've got to go renew my ID ... back in about two hours 14:49:04 don't want to reimplement the functionality of xlibs 14:49:10 (expires on my birday tomorrow) 14:49:27 provider's gift 14:49:36 --- nick: MrReach -> MrGone 14:49:37 i'll be gone in two hours 14:49:49 thanks for advice 14:49:55 ok, see you tomorrow, then 14:50:02 my pleasure 14:53:38 --- part: Speuler left #forth 15:30:48 --- join: qless (qless@clgr000977.hs.telusplanet.net) joined #forth 15:43:31 --- join: fare_ (Fare.LISPM@samaris.tunes.org) joined #forth 15:43:57 --- nick: fare_ -> FareWell 15:44:05 --- quit: FareWell (Connection reset by pear) 16:18:31 --- nick: MrGone -> MrReach 16:18:37 --- mode: MrReach set mode: +o qless 16:19:05 thx mrreach 16:19:41 np 16:50:55 --- join: XeF4 (xef4@apoc.undergrid.net) joined #forth 16:56:30 --- quit: XeF4 (changing servers) 17:14:17 --- quit: qless (Read error to qless[clgr000977.hs.telusplanet.net]: EOF from client) 18:39:09 --- join: I440r (mark4@1Cust240.tnt1.bloomington.in.da.uu.net) joined #forth 18:39:09 --- mode: ChanServ set mode: +o I440r 18:39:20 --- mode: I440r set mode: +o plbofh 18:42:42 --- mode: I440r set mode: +o clog 21:43:02 --- join: aum (aum@210-54-227-86.adsl.xtra.co.nz) joined #forth 21:43:34 --- quit: aum () 23:51:26 who aum 23:51:33 ? 23:52:09 well neway - time for zzz :) 23:52:12 --- quit: I440r () 23:59:59 --- log: ended forth/01.11.08