00:00:00 --- log: started forth/04.08.28 00:04:19 --- quit: arke (Read error: 110 (Connection timed out)) 00:08:56 --- join: arke (~chris@wbar8.lax1-4-11-100-111.dsl-verizon.net) joined #forth 00:10:21 --- quit: arke ("brb") 00:10:41 --- join: arke (~chris@wbar8.lax1-4-11-100-111.dsl-verizon.net) joined #forth 00:25:03 --- join: mur (~mur@kyberias.uiah.fi) joined #forth 00:26:57 hi 00:27:02 hi 00:28:46 what is eh up? 00:29:57 debugging :( 00:30:54 thats what you get for using C you loser! :P 00:31:02 no this is java 00:31:06 easier to debug than C 00:31:26 oh 00:31:27 :) 00:31:30 even easier? 00:31:32 Forth! 00:31:32 :) 00:31:50 even easier? factor :) 00:32:05 the problem here is not the language but the fact i wrote the code a long time ago 00:32:21 :) 00:33:16 http://cvs.sourceforge.net/viewcvs.py/jedit/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java?rev=1.92&view=auto 00:33:35 i dont trust links 00:33:38 that one file is more complex than an entire forth implementation 00:33:40 they might lead to goatse 00:33:51 and there's 100 of them 00:33:55 no, its a cvs link :) 00:34:17 JEESUS CHRIST THIS IS _HUGE_ 00:34:46 its about 1/50th of the whole program 00:35:17 i guarantee that this could be rewritten in the same language, but smaller, compacter, and faster 00:35:50 probably true, except for the faster part ;) 00:35:58 ack 00:35:59 :) 00:36:10 i optimized it intensly :) 00:37:02 but 00:37:07 if all this does is display text 00:37:10 why this much? 00:37:10 : 00:37:36 word wrap, folding, syntax highlighting... 00:37:37 --- quit: mur_ (Read error: 110 (Connection timed out)) 00:38:11 bad design... :) 00:38:20 how much memory do you sacrifice for speed? 00:38:29 :) 00:38:44 the overhead is 12 bytes per line of text 00:38:59 aha 00:39:06 there you go\ 00:40:38 try this 00:40:48 arke, much nicer: http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/contrib/mandel.factor?rev=1.4&view=auto 00:41:06 keep the lines in the display manager cache in a different format 00:41:20 as in, linked list, with a class describing attributes 00:41:21 the display manager has no overhead 00:41:28 such as color, behaviour, and the actual text 00:41:51 the per-line overhead is: 00:41:57 4 bytes: line start offset 00:42:09 2 bytes: fold level 00:42:18 2 bytes: number of lines on screen (from word wrap) 00:42:31 2 bytes: various flags & padding 00:43:29 i'd say employ a line cache system 00:44:22 to avoid per-line storage/ 00:44:22 ? 00:44:34 no 00:44:47 you still keep lines in a class 00:44:55 but it would be a linked list of items with attributes 00:45:06 what attributes? 00:45:22 color, type, behaviour, is it a word or whitespace?, etc. 00:45:43 none of that needs to be stored 00:45:47 just kinda keep it together like that. 00:46:27 including info on current text width for the wrap 00:47:02 if you change it (like, say you maximize it), just whatever. if you encounter an obsolete class, delete it. 00:47:19 should be trivial to convert from the linked list to ASCII 00:47:22 or display 00:47:29 and itll take up a bit more mem 00:47:32 i won't be making many changes to jEdit apart from maintanance. 00:47:34 but im sure itll be faster. 00:47:37 aah. 00:47:40 but hows my idea? 00:47:40 :) 00:47:52 its "good enough" right now, and i'd rather focus on more innovative stuffs. :) 00:48:35 :) 00:48:39 but i like that idea 00:49:00 dont go hunting for classes to delete them. leave them where they are, and delete them when you happen to encounter them. 00:49:02 then make an editor :) 00:49:14 i will 00:49:14 you mean instances of classes? (= objects)? 00:49:15 but 00:49:27 IT WONT BE A JAVA ONE! :) 00:49:33 yes, that would describe a line 00:50:05 including word wrap information 00:50:05 i'd like to do a factor GUI eventually 00:50:06 :) 00:50:43 i wish i didn't add word wrap 00:50:48 i never wanted it but users asked for it 00:50:56 and all it did was complicate the design *tremendously* 00:51:14 folding was a good idea, and didn't complicate too much 00:54:10 altho if you're making a forth editor, folding might not be worth it due to the horizontal nature of forth source 01:12:13 --- join: solar_angel (~jenni@MTL-ppp-157567.qc.sympatico.ca) joined #forth 01:18:08 well i fixed my bug. :) 01:18:10 good night. 01:18:46 night slava. 01:20:53 --- quit: solar_angel ("later.") 01:21:12 --- quit: slava ("Leaving") 01:41:54 --- join: proteusguy (~proteusgu@66.168.185.144) joined #forth 01:44:46 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 01:47:38 --- quit: mur (Read error: 60 (Operation timed out)) 02:25:59 --- quit: qFox ("meh ircii's netsplit detection appearantly sux ^^") 02:38:24 --- quit: mur_ (Remote closed the connection) 02:38:56 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 03:08:12 * TomasuDlrrp is back (gone 07:04:52) 03:29:58 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 03:32:07 --- join: mur_ (~mur@mgw2.uiah.fi) joined #forth 03:42:48 --- quit: mur (Read error: 110 (Connection timed out)) 04:00:24 --- join: crc (crc@50-pool1.ras11.nynyc-t.alerondial.net) joined #forth 04:16:29 * TomasuDlrrp is away: dlrrp again 04:27:26 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 04:39:59 --- quit: mur_ (Read error: 110 (Connection timed out)) 05:10:30 --- nick: TomasuDlrrp -> Tomasu 05:10:32 * Tomasu is back (gone 00:54:03) 05:46:36 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 05:47:04 --- join: mur_ (~mur@mgw2.uiah.fi) joined #forth 05:59:17 --- quit: mur (Read error: 110 (Connection timed out)) 06:08:21 RetroForth/Linux now has working file I/O! 06:08:27 * crc is quite happy 06:19:16 --- quit: FlamingRain ("Leaving") 06:36:25 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 06:38:58 --- join: FlamingRain (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 07:06:00 --- quit: FlamingRain ("Leaving") 07:24:14 --- quit: tathi ("leaving") 07:31:24 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 07:31:24 --- mode: ChanServ set +o Herkamire 07:32:06 Hi Herkamire 07:41:29 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 07:42:09 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 08:09:38 --- quit: tgunr (Read error: 54 (Connection reset by peer)) 08:10:21 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 08:10:44 --- quit: crc ("Time for bed... Goodnight All!") 08:25:10 --- join: mur (~mur@smtp.uiah.fi) joined #forth 08:37:16 --- quit: mur_ (Read error: 110 (Connection timed out)) 08:46:18 * Tomasu is away: dlrrp 08:46:23 --- nick: Tomasu -> TomasuDlrrp 09:22:00 --- join: mur_ (~mur@kyberias.uiah.fi) joined #forth 09:32:30 --- quit: mur (Read error: 110 (Connection timed out)) 09:34:30 hi crc :) 09:39:14 --- join: poing_ (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 09:39:15 hmmm. sorta missed that one 09:48:15 argh. what happened to retroforth.org? 09:48:26 7.3 is due out today, no? 09:49:19 whup there it goes 09:54:39 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 09:57:40 I440r_: hey d00d, you there? 10:03:58 He's probably d0ed. 10:04:13 Hmm.. 10:05:00 Funny. d0ed (död, Swedish for dead) and "dead" itself can both be written as hex numbers. 10:05:11 hehehe, cool 10:05:15 And a dead Swede < a dead Englishman (0xd0ed < 0xdead) 10:05:21 mov [i440r], word d0ed 10:05:31 Robert: :) 10:06:34 0xDEADBEEF 10:07:11 b00b babe, dead beef cafe, d0 da deed! 10:07:29 (poetry) 10:08:09 sortof a bad sign for your poetry if you actually have to tell people it's poetry ;) 10:12:14 it's ART dammit! 10:12:21 * poing_ straightens his beret 10:12:41 --- nick: poing_ -> poing 10:13:00 --- quit: FlamingRain ("Leaving") 10:13:11 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 10:15:46 --- join: crc (crc@102-pool1.ras11.nynyc-t.alerondial.net) joined #forth 10:20:16 Still quiet in here... :-) 10:22:05 and you're ruining it! 10:22:30 hi 10:22:33 :) 10:22:33 Hi arke 10:22:44 whatcha doing? 10:22:48 is retroforth STC or DTC? 10:22:54 STC 10:23:00 yay. 10:23:02 I dislike DTC code 10:23:05 STC? 10:23:07 DTC? 10:23:13 subroutine/direct threaded code 10:23:15 ah 10:23:31 Working on RetroForth 7.3 right now 10:23:52 i created STC on roberts DTC forth :p 10:24:00 well, not true dtc i think 10:24:05 :-) 10:24:18 is all in assembly macros, so it should be pretty cheap subroutine threading 10:24:39 * crc is getting tired... 10:25:06 ran retro native under qemu, works flawlessly 10:25:13 It does 10:25:27 I can't get 'type' to work properly under qemu for Windows 10:25:31 maybe i can teach myself something about vga and get some graphics :) 10:25:41 :) 10:25:42 hey 10:25:47 works under qemu for linux tho? 10:25:52 there's no VGA driver in the current native release 10:25:57 I don't have qemu for Linux 10:25:58 arke, no im not here 10:25:59 :) 10:26:06 i remember offering l33t gfx for retroforth to crc if he implemented vm86 :) 10:26:08 I440r_: :) 10:26:08 tathi ya fix that math ?? :) 10:26:17 yah was thinking of learning vga stuff myself, maybe putting it in 10:26:27 got any pointers on where to start? 10:26:41 poing: yeah --- ralf browns interrupt list, int 0x10 10:27:10 ralf browns interrupt list is FSCKING HORRIBLE 10:27:12 lets 10:27:13 make 10:27:13 * poing is actually pretty new to such low level programming 10:27:16 ablahb'a 10:27:19 everything 10:27:20 Older RetroForth releases (think prior to 6.07 and lower) had decent 320x200 VGA driver 10:27:21 it's why i'm starting with forth :) 10:27:21 totally 10:27:24 unreadable 10:27:30 With optional VESA support IIRC 10:28:04 vesa would be ideal. vesa LFB, i have no desire to get into the insanity of earlier stuff 10:28:14 Mostly assembly code though 10:28:36 Yeah, it's VESA1 modes using an LFB. 256 (8-bit) color only 10:28:39 But it works 10:28:50 any plans to add an asm wordlist so there are mnemonics instead of raw hex code? 10:29:03 I440r_: I was having trouble getting it to work. 10:29:06 I'm working on that 10:29:20 But the assembler stuff is going slowly 10:29:25 Then I looked at number.f and realized that . really doesn't need double-cell math. 10:29:28 x86 asm is horrible 10:29:32 cool. since i'm kind of a newbie in asm, so raw hex hurts my brane 10:29:35 tathi im having fbsd problems 10:29:38 :-) 10:29:59 the very first syscall in the extended kernel here barfs with e nomem 10:30:03 The assembler takes syntax like: 100 eax i/r mov, 10:30:03 I440r_: just because the representation is bad doesn't mean the content is. I know its formatted horrible (the HTML one is better), but you can find stuff and use it :) 10:30:05 the brk 10:30:16 i/r? 10:30:18 the html one STILL sucks 10:30:23 crc: why the i/r? 10:30:23 immediate -> register 10:30:28 and yes. ive used that list since before you were born :P 10:30:31 I440r_: in appearance, not in content. 10:30:38 I440r_: hehehe, how old are ya? :) 10:30:46 how about reg? 10:30:48 39 10:30:57 r/r 10:30:57 you've used this list since you were 22? :) 10:30:58 r/m 10:31:00 m/r 10:31:04 younger 10:31:05 ah 10:31:11 the list is that old? 10:31:11 lol 10:31:19 .... 10:31:20 dude 10:31:20 its probably older than 22 eyars 10:31:23 you're as old as my dad 10:31:24 lol 10:31:25 That saves a lot of trickery later on 10:31:41 i trust i can always find someone older than me on #forth 10:31:50 yep. 10:31:51 eerie thing is, chuck moore looks just like my dad 10:31:57 hehe 10:31:57 and my name's chuck 10:32:02 chuck is the oldest of us all 10:32:02 :) 10:32:04 err.. 10:32:23 and you live relatively close to him too 10:32:36 maybe he.. 10:32:49 no, his son lives in san luis obispo 10:33:01 which is a decent drive north of where i am 10:33:16 stalk him 10:33:27 OH YES!!!!! 10:33:39 "who the hell are you?" 10:33:41 LETS STALK CHUCK MOORES SON SO THAT WE CAN HAVE HIM BE A #FORTH REGULAR! 10:33:44 lol 10:33:48 "well... you're the son of god so i'm talking you" 10:33:49 :p 10:34:01 :P 10:34:08 stalking. 10:34:38 maybe, if you mention his name, and he googles for his name, he'll join! 10:35:12 poing: http://www.retroforth.org/dev/experiments/Assembler.txt has a slightly out of date copy of the current assembler code 10:35:33 RetroForth now runs on SCO OpenServer 5.0 too :-) 10:36:06 eww!!! :) 10:36:09 ^_^ 10:36:11 lol? 10:36:39 for all those hobbyists who prefer sco 10:36:52 my forth will run on a computer with any operating system 10:36:57 as long as you boot from the floppy 10:37:07 which forth is that? 10:37:07 :P 10:37:08 (hahaha) 10:37:22 foxfroth 10:37:29 no, kuF 10:37:29 and yes, i purposely mispelled that 10:37:35 :) 10:37:35 One of the contributors ported it so he could use it on the server at the university he attends 10:37:50 funny thing is how picky colorforth is about hardware ... yet it boots fine on my vaio, which is chock full of propietary stuff 10:37:54 RetroForth/Native will run on some PC's 10:38:01 and my gf's custom built vanilla machine ... no luck 10:38:14 :D 10:38:19 I can't CF on ANY of my boxes 10:38:31 ah yes, i guess i should add, a x86 system running any os :p 10:38:34 i just could not wrap my head around cf 10:38:35 me neither 10:38:40 I can't boot CF on ANY of my boxes 10:38:55 neither. 10:38:55 :) 10:39:03 cant run or boot 10:39:05 I have a non-standard boot sector in RF/Native (needs multitrack reads...) 10:39:16 i have no idea why i cant, i just cant 10:39:23 poing: well, CF isn't bad at all once you get the hang. However, doing anything else than trivial calculations is gonna be hell 10:39:34 poing: his pad is hell, his character emit stuff is hell 10:39:44 poing: but i like the color idea, so im implementing it for f2 :) 10:39:52 i remember someone scoffing at moore's "simple ide driver" that it was too simplistic, and didnt cover border cases, chipset blacklist, etc 10:40:14 and i thought "well if that works, why not use that code, and use specialized code" ... specializing compiler 10:40:35 always wonder why OS kernels never use specializing compilers, they'd be like the first to benefit 10:41:52 I think OSes are too complex anyway 10:42:07 * poing remembers seeing some nice tiny drivers in the forth on sun boot proms 10:42:19 yep 10:42:27 OpenFirmware is cool 10:43:14 i hate object code. is the problem with most low-level stuff, nonrelocatable brittle object code 10:43:59 thing that drove me from c++ wasn't the language, it was the linker. object code again 10:45:07 The complexity of the language is what drove me away from C++ 10:45:31 i dont mind the complexity. the syntax is a giant wart tho 10:45:34 forth drove me away :) 10:45:40 WOW!!!!!!!!!!!!! 10:45:44 kickass!!! 10:45:56 fasm's ELF stuff is flexible as hell! 10:46:02 How so? 10:46:08 i looked at stuff like DREAMS and thought "wow that's really warped. but cool." 10:46:16 never thought of forth as high level til i saw that 10:46:25 DREAMS? 10:46:33 not that i'd use it, i'd use something bent around my own mind's funny shape ;) 10:46:57 DREAMS is an early OO forth. it's ... poetic. and utterly strange. 10:47:53 Ah 10:47:59 lemme see if i can dig up some examples 10:48:30 guess it's not that early 10:49:20 http://www.elilabs.com/~rj/dreams/node48.html#listing1 10:50:19 Interesting 10:51:17 cool 10:51:17 :) 10:51:20 you gotta love a DSL with words like IMAGINE and STUPOR and REALITY 10:51:37 :) 10:52:06 I dislike OO languages, but this is still kind of cool 10:52:24 --- join: mur__ (~mur@mgw2.uiah.fi) joined #forth 10:52:28 --- part: poing left #forth 10:52:33 --- join: poing (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 10:52:45 oops, ^W is not "erase word" in xchat 10:53:26 dreams is pretty incomprehensible syntax to me, but it sure looks impressive 10:55:20 I agree there 10:59:09 * poing needs a project to get started tho. thinking something graphical, turtle graphics like 11:00:32 just seems to be so much underdocumented deep magic when it comes to working with low level video 11:02:07 The RetroForth vga/vesa driver set the video mode (before loading the kernel), then the kernel would find it and provide 'frame', 'hp', 'vp' 11:02:27 Frame being the start of the framebuffer 11:02:51 hp and vp being the height and width in pixels (hp = width, vp = height) 11:03:06 --- quit: mur_ (Connection timed out) 11:03:09 There were other resources too, but those were the main ones 11:03:36 frame being the actual framebuffer? 11:04:06 'frame @' returns the starting address of the framebuffer 11:04:19 that sounds reasonably easy 11:04:48 You could use 'c@' and 'c!' (not sure exactly when those first appeared) to set/read pixels from it 11:04:48 that's in pre-6.x retroforth? 11:05:03 That's the 5.x and early 6.x releases 11:05:14 and in 7.x it's textmode only, right? 11:05:25 * crc is checking for the most recent Native 6.x release 11:05:26 Right 11:05:49 hm. shouldnt be too hard to glom it back in tho, right? 11:05:52 tehsux 11:05:53 :) 11:06:30 http://www.retroforth.org/download/rf-native.zip 11:06:48 Uses 'NASM' to assemble; Release 6.20, so it's not too old... 11:06:54 guess i'll have to create a whole font display engine unless i can figure out how to switch vid modes post-boot 11:07:12 There's 'emit' and some other primitives written in assembly 11:07:16 vesa makes you drop into real mode for that, doesnt it? 11:07:24 In drivers.asm 11:07:24 No 11:07:35 VESA mode is configured in the boot sector 11:08:15 When you boot into RF, enter 'vesa' to set hp, vp, and frame 11:08:29 VESA support isn't flawless, but it works for me :-) 11:09:04 so native is based on 6.20? 11:09:31 That file is 11:09:43 The 7.x releases all share a common core 11:09:57 With a few minor differences in system interface, etc 11:10:29 RetroForth/Native 6.20 uses the same core as all of the other 6.20 releases 11:11:03 ah 11:11:09 There was a RetroForth/Native 6.30 somewhere; I should see if I can find that... 11:12:46 http://www.retroforth.org/download/native.zip 11:13:07 That's RetroForth/Native 6.30 which is from May 25 11:17:09 hm. qemu doesnt seem to like it 11:17:47 --- join: crc_ (crc@21-pool1.ras11.nynyc-t.alerondial.net) joined #forth 11:17:59 back 11:18:01 * crc_ hates dialup 11:18:16 qemu doesnt seem to like the native image 11:18:39 Do you have Bochs? 11:19:01 * crc_ hasn't tested RF/Native 6.x under Qemu 11:19:24 not yet 11:19:33 --- quit: crc (Read error: 104 (Connection reset by peer)) 11:19:46 --- nick: crc_ -> crc 11:20:06 I used Bochs for testing it during development 11:21:34 got bochs now 11:22:08 should be bochs -f bochsrc.bxrc, right? 11:23:20 I think so 11:23:37 I just got 6.30 to run under qemu :-) 11:23:46 hm 11:23:52 gives me naught but a blank screen 11:23:54 On the default image you have to do '320 200 setres clear' 11:23:55 what options did you sue? 11:24:09 qemu.exe -L . -m 4 -fda raw.bin 11:24:57 typed 320 200 setres clear and it turned the screen all white 11:25:00 can't see what i type 11:25:02 that normal? 11:25:12 At first it is 11:25:26 oh there it is 11:25:43 * crc must have f****d up something 11:26:01 heh, did 640 480 setres clear after that, and now i just have every other scanline blank 11:27:02 It's really picky on the resolution matching what's actually there... 11:27:35 --- join: Sonarman (~matt@adsl-64-169-95-189.dsl.snfc21.pacbell.net) joined #forth 11:27:58 maybe qemu doesn't support anything higher 11:28:18 oh wait it would have to, i've seen it running linux 11:28:22 X and all 11:28:33 It uses whatever mode you set in the bootsector 11:28:38 320x200 is the default 11:28:44 --- quit: poing (orwell.freenode.net irc.freenode.net) 11:28:44 --- quit: I440r_ (orwell.freenode.net irc.freenode.net) 11:28:44 --- quit: Robert (orwell.freenode.net irc.freenode.net) 11:28:44 --- quit: skylan (orwell.freenode.net irc.freenode.net) 11:28:49 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 11:28:51 --- join: I440r_ (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 11:28:56 --- join: poing_ (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 11:28:56 640x480 is default with VESA 11:29:44 --- join: skylan (~sjh@vickesh01-4677.tbaytel.net) joined #forth 11:30:17 I440r: hey d00d 11:30:37 I440r: whats with the mmap in init_mem? 11:30:46 I440r: and, why is the fd 0? 11:30:47 ohhh have to set it in the bootsect 11:30:55 (fd 0 is stdin, right? o.O) 11:31:21 Awesome, QEMU supports VESA 11:31:24 :-) 11:31:27 :) 11:31:30 qemu does it all 11:31:41 and it's way fast 11:31:47 whats qemu? 11:31:50 another bochs? 11:32:02 arke: yep, and really fast 11:32:04 Except for displaying text when I use 'type' under 7.2 and 7.3... 11:32:18 type? 11:32:34 oh printing 11:32:56 switches to textmode or something? 11:33:46 7.3 *is* textmode at this point 11:33:46 --- nick: poing_ -> poing 11:34:06 But for some reason 'emit' works fine 11:34:09 So does '.' 11:34:16 But 'type' does NOT work 11:34:21 * crc doesn't understand why 11:35:13 qemu sounds cool 11:35:25 can it run cf? 11:35:50 beats me. one easy way to find out 11:36:09 arke: the mmap is to allocate the return stack 11:38:51 arke: fd is ignored in the mmap 11:39:15 arke: because one of the other parameters has a flag MAP_ANONYMOUS (I think?) which tells it to just allocate memory. 11:39:25 (as opposed to actually mmaping a file). 11:39:59 tathi: do you know why he deosn't just use brk? 11:40:14 ColorForth crashed qemu for windows :-( 11:40:39 Sonarman: he does use brk -- brk's out to 1MB, splits it in half for headers and code/data. 11:40:49 i mean, for the return stack 11:40:53 Sonarman: then mmaps a 4KB chunk for the return stack. 11:41:08 why doesn't he just brk an additional 4K for the return stack? 11:41:36 Well...on PPC anyway, mmap tends to allocate in a different place than the application is loaded. 11:41:56 so if you mmap, then you get a segfault if you overflow the rstack, rather than garbling the end of your heap. 11:42:01 Not sure if that's true on x86 though. 11:42:04 ah, ok 11:42:46 the FD has to be -1 if doing anon 11:43:05 but you push an FD of 0 11:43:17 and it still works :) 11:43:24 i x86 yes 11:43:32 in fbsd it HAS To be a -1 11:44:05 oh ok 11:44:07 and as for why i allocate the return stack.... 11:44:17 because i want it to be a grows down stack 11:44:26 and i dint want it to start overwriting head space 11:44:34 its not currently a grows down mapping 11:46:04 Sonarman, is studying the isforth sources ??? :) 11:46:22 how did you init the data stack? 11:46:47 :-) 11:47:34 is it specified in the ELF header or somethign? 11:48:22 i didnt :) 11:48:24 linux did :)_ 11:48:58 did you s[pcefy the size somewhere though? 11:49:11 nope 11:49:14 its a grows down mapping 11:49:23 i.e. when you push too much onto it - it grows! 11:49:45 ah. the wonders of linux : 11:49:46 :) 11:50:37 heh 11:51:49 btw the ppc version will have a 16k return stack, not 4k 11:52:00 tho he is probably still only asking for 4k he will be given 16 11:55:26 why? is that the page size on ppc? 11:56:00 no, page size on PPC is still 4KB 11:56:48 though bloody SYSV says you have to have all your ELF section addrs == their file offsets mod 64KB "because future implementations may use larger page sizes" 11:56:52 bleh 11:57:13 I'm pretty sure mmap goes in 4KB chunks. 11:57:23 I was looking through that part of the kernel for a while at one point. 12:02:17 --- quit: mur__ (Remote closed the connection) 12:02:50 --- join: mur_ (~mur@mgw2.uiah.fi) joined #forth 12:09:01 * crc is going to bed. Goodnight all! 12:09:11 --- quit: crc ("Time for bed... Goodnight All!") 12:12:40 anyone know of a way to get the number of columns and rows of the console/terminal in a LInux program? 12:13:29 Sonarman: getenv("COLUMNS"); getenv("LINES") 12:13:40 if that doesn't work you have to do some horrible tcgetattr or something 12:13:49 thanks 12:13:54 ncurses will give it to you 12:13:56 $LINES ... jeepers 12:14:01 i think COLUMNS, i think ROWS 12:14:15 poing: yeah 12:14:36 i don't know if it's possible to access environment variables from gforth 12:14:51 fflib. you can do anything :) 12:15:00 * Sonarman hits himself 12:15:19 two "duh" moments in the last five minutes :) 12:16:00 now three 12:16:13 if i had bothered to check, i would have realized that gforth has getenv 12:17:16 unfortunately it doesn't seem to work 12:17:30 doh 12:19:05 ah, it's just that COLUMNS and LINES weren't exported 12:19:09 er, ROWS 12:19:33 theyre not exported because they're not reliable in subprocesses 12:19:58 if you resize the terminal in the child process, the variables wont get updated 12:20:49 i think at that point you're stuck with termios stuff. or ncurses 12:23:16 i don't think gforth even has an ioctl word 12:23:48 ok, i guess im wrong about ppc having 16k page size 12:23:49 there is a way to get the dimentions besides COLUMENS and LINES 12:23:52 im sure i read that somewhere 12:24:03 yeah, there's an ioctl. 12:24:26 a tcgetattr ioctl, right? 12:24:27 under PPC Linux it's TIOCGWINSZ 12:24:37 should be that under any linux 12:24:52 heck thats probably posix 12:24:58 yeah maybe. 12:25:20 I guess I'm just confused because tcgetattr is actually 3 different ioctls 12:25:27 i'll just interface the glibc tcgetattr 12:25:29 depending on when you want the changes to take place 12:25:40 well, that was easy, I just wrote a config script for herkforth that uses sed to replace the default values of term-width and term-height with the values of $COLUMNS and $LINES 12:25:53 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:26:11 Sonarman: I didn't think tcgetattr gave you the term size? 12:26:18 doesn't it return a termios struct? 12:26:39 gfogfdsogfds gjfdsghpdsgudshgpds 12:26:56 longhorn will be released in 2006 without the much hyped winfs 12:26:58 haha 12:26:59 tiewuojlkjg dvdssdfg gto you too 12:27:10 tathi: just an ioctl to /dev/tty? 12:27:11 what's longhorn? 12:27:18 meanwhile reierfs4 is out now 12:27:24 reiser that is 12:27:53 Sonarman: I usually just do an ioctl on stdout, I think. 12:27:54 poing, and by 2006, we'll have fancy x servers with compositing, and new gnome and kde etc 12:28:05 tho i'll give reiser4 a couple more years to cool and set first... new fs's always have big bugs to shake out 12:28:19 Herkamire, how's herkforth? 12:28:23 X with composting :) mmmm 12:28:28 slava: coming aling nicely :) 12:28:43 tathi: oh, duh 12:28:48 Herkamire, ;) 12:28:51 Sonarman: TIOCGWINSZ -- on x86 it's 0x5413, on PPC it's 0x40087468 12:28:52 avalon might kick the cairo and fresco people together 12:29:30 get everyone on a vector based desktop 12:29:33 Sonarman: http://qualdan.com/misc/termios -- ioctl #s don't work on x86 linux though 12:29:46 --- quit: tathi ("gotta run -- work") 12:29:49 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 12:30:25 crap. my $LINES and $COLUMNS are not exported either 12:30:27 fooey 12:30:53 Herkamire: i guess it's ioctl time :) 12:31:15 what's longhorn? 12:31:23 next version of windows 12:31:54 windows YP 12:32:11 now that winfs is gone, i guess the highlight of longhorn is the integrated DRM 12:33:01 lol! 12:34:49 --- join: mur__ (~mur@kyberias.uiah.fi) joined #forth 12:38:00 windows YP? 12:38:03 yor kidding right ? 12:38:06 they called it YP ? 12:38:07 lol 12:38:19 it should be CP with an ra in the middle 12:38:26 longhorn? isn't that a kind of mountain goat or something? 12:38:58 I440r, yes i'm kidding :) 12:39:04 windows YP :) 12:39:06 hehe 12:39:08 whatever it is, it reminds me a lot of Gnu 12:39:10 would be funny if they actually called it that 12:39:18 GNU/Windows? 12:40:09 Windows GNU 12:40:13 Windows SCO 12:42:03 longhorn is a kind of cow 12:42:20 : ioctl 3 r-tos _mr 4 _2toreg 5 _3toreg 0 54 _li 3drop sc ; 12:42:49 ( data requiest fd -- n ) 12:47:10 --- quit: mur_ (Read error: 110 (Connection timed out)) 13:16:58 --- quit: FlamingRain ("Leaving") 13:18:46 --- quit: arke ("be back in a week --- send me email -> chris dot r dot walton at gmail dot com") 13:29:30 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 13:40:32 --- quit: FlamingRain ("Leaving") 13:54:26 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 14:02:37 --- quit: proteusguy ("Leaving") 14:05:01 --- quit: mur__ (Read error: 110 (Connection timed out)) 14:08:22 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 14:20:36 --- quit: mur_ (Remote closed the connection) 14:21:16 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 15:04:27 --- quit: Fractal (Read error: 110 (Connection timed out)) 15:13:02 --- quit: FlamingRain ("Leaving") 15:23:56 --- join: Fractal (jah@selling.kernels.to.linus.torvalds.at.hcsw.org) joined #forth 15:41:16 * TomasuDlrrp is back (gone 06:54:58) 15:41:23 --- nick: TomasuDlrrp -> Tomasu 15:54:31 --- quit: mur_ (Remote closed the connection) 15:55:23 --- join: mur_ (~mur@kyberias.uiah.fi) joined #forth 15:57:54 --- quit: lyca (Read error: 110 (Connection timed out)) 15:57:55 --- join: FlamingRain (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 16:03:13 --- join: tgunr1 (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 16:09:29 --- quit: tgunr1 (Read error: 104 (Connection reset by peer)) 16:09:34 --- quit: tgunr (Read error: 54 (Connection reset by peer)) 16:10:22 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 16:29:07 --- quit: tgunr (Remote closed the connection) 16:29:40 --- quit: mur_ (Remote closed the connection) 16:30:14 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 16:31:28 --- quit: warpzero (Remote closed the connection) 16:31:33 --- quit: FlamingRain ("Leaving") 16:44:39 --- quit: qFox ("meh ircii's netsplit detection appearantly sux ^^") 17:16:45 --- quit: mur_ (Remote closed the connection) 17:17:53 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 17:20:49 http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&c2coff=1&safe=off&threadm=cgl40d%24i6i%241%40hercules.btinternet.com&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DISO-8859-1%26safe%3Doff%26c2coff%3D1%26q%3Dcomp.lang.forth%26btnG%3DSearch%26meta%3D 17:20:52 this guy is insane 17:20:54 --- join: mur_ (~mur@uiah.fi) joined #forth 17:23:57 --- join: lyca (alycat@rasterburn.org) joined #forth 17:42:28 hi lyca 17:45:25 hi I440r, lyca, and misc. peeps 17:45:36 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 18:01:22 lol 18:21:36 --- join: proteusguy (~proteusgu@66.168.185.144) joined #forth 18:23:22 --- join: mur__ (~mur@uiah.fi) joined #forth 18:31:06 --- quit: FlamingRain ("Leaving") 18:35:51 --- quit: mur_ (Read error: 110 (Connection timed out)) 18:46:49 --- quit: snowrichard ("Leaving") 19:47:29 --- join: TheBlueWizard (TheBlueWiz@207.111.96.66) joined #forth 19:47:30 --- mode: ChanServ set +o TheBlueWizard 19:47:44 hi TheBlueWizard 19:47:55 slava hiya 20:04:06 --- join: Duck-Billed (~dbp@adsl-68-123-54-197.dsl.lsan03.pacbell.net) joined #forth 20:04:30 is there anyone active here? 20:04:30 hi Duck-Billed 20:04:35 yes 20:05:20 Duck-Billed hiya 20:05:25 im sort of new to programming (i know some basic stuff).. 20:05:34 and I wanted to learn forth 20:05:41 good idea :) 20:05:45 do you think i should get a book or learn from a website? 20:05:58 i learned from web sites. 20:06:15 forth book are pretty rare.. 20:06:21 books 20:06:56 I would recommend you download a 'classic' Forth system, play with it, and also read a book. However, watch out for the dialect angles 20:07:13 web book wopuld be better :) 20:07:26 whats a 'classic' forth system? 20:07:34 http://home.iae.nl/users/mhx/sf.html 20:07:38 ^-- good tutorial 20:07:43 Duck-Billed, i don't know, but gforth is nice 20:08:05 sort of like a forth environment/compiler thing? 20:08:15 yes. 20:08:25 ok.. 20:08:57 so i guess using a website tutorial would be the best way to go.. 20:09:11 see the url i gave you. 20:09:17 it will get you started. 20:09:32 by 'classic' I am talking about interactive pseudo-OS system...there are some Forth system that is just a compiler, and there are embedded Forth system...all of them diverge from what I'd consider a classic Forth system. 20:09:49 gforth is 'classic' then. 20:10:28 I think so...except that gforth follows ANS Forth, which some wouldn't consider it that 'classic' :) 20:10:44 Duck-Billed, what do you plan on using forth for? 20:10:46 then again, one has to start somewhere.... 20:10:58 i just wanted to try it out.. 20:11:19 i first heard about forth when i heard about pbforth 20:12:00 slava: that link's to Starting Forth. right? 20:12:04 yup. 20:12:12 Duck-Billed, many people in this channel develop their own forth systems ;) 20:12:53 ok, so i guess im going with gforth and Starting Forth.. 20:13:10 good choice. 20:13:26 ok thanks for the help guys :) 20:13:41 yep...good way to start learning Forth 20:14:21 just remember to watch out for "dialect" angle...other than that, you should do fine 20:14:35 i'm releasing a new version of my text editor. its been more than a year since the last 'stable' release. 20:14:43 i'm excited :) 20:14:59 oh really? cool 20:15:31 whats a "dialect" angle? 20:15:38 Duck-Billed, there's many variants of forth. 20:16:01 I know for sure that just in this channel, Herkamire, I440r, madgarden are making their own forths. 20:16:10 and i'm making my own forth-inspired language. 20:16:18 i thought there was ANS forth already.. 20:16:21 i guess madgarden's forth is not really a forth but forth-inspired. 20:16:39 Duck-Billed, gforth is an ANS implementation, along with most commercial forths. 20:16:46 but hobbyists are always experimenting with new ideas. 20:17:11 um...the main reason why I keep saying "watch out for dialect angles" is that (a) Forth is extensible (i.e. malleable), and (b) there are subtly different approaches and philosophies, which can get controversial in some quarters 20:17:49 hmm.. it wont be too much of a problem in the beginning, will it? 20:18:16 sometimes one can retrofit an existing version of Forth code to a particular Forth platform...sometimes it is better to just rewrite ot :P 20:18:36 i guess i'll learn as i go on.. 20:18:45 but, fortunately, a lot of basic, essential parts remain the same 20:19:01 + is +, numbers are numbers, @ is @, etc. 20:19:03 Duck-Billed, no, not at all. all forths share the same basic set of features 20:19:18 ok thanks for the help :) 20:19:25 now i have to go sleep.. 20:19:28 Duck-Billed, when you start getting into extending the language, or GUIs, or whatever, things diverge 20:20:15 have fun! oh, and one other important tip: if you are used to thinking in C, Pascal or the like, then it is best to just forget that kind of thinking...otherwise you'd get frustrated 20:20:41 well, good night 20:20:46 TheBlueWizard, that applies to learning basically any language other than C/Pascal -- lisp, etc. 20:21:05 --- part: Duck-Billed left #forth 20:21:28 slava: yup....though I dunno if Duck-Billed is aware of the essential difference of Forth from the more traditional languages 20:21:54 it comes down to the interative nature of the language i think 20:22:49 when i'm writing factor code, i usually have three windows open. a source file, a test harness file, and an interactive prompt. i'll make some changes to the source, write some tests in the harness for the changes, load the source, run the harness. repeat 20:23:31 no...interactivity has nothing to do with Forth programming per se....there are interactive C programming (can't remember one off my mind), but that doesn't make C a "Forth thingie" 20:24:00 maybe you mean the fact that word definitions are very short? 20:24:54 another more obvious example is Smalltalk...the Smalltalk programming philosophy is definitely different than for Forth or C, despite the fact that Smalltalk system is traditionally interactive 20:25:07 smalltalk is closer to forth than C. 20:25:12 you code in a self contained 'environment' 20:25:16 you write and test small pieces of code 20:25:21 you can tweak anything to your liking 20:26:55 brief definitions has nothing to do with Forth programming per se....one can do brief function codings in C (I know one guy who does that as a practice), ditto for Smalltalk (incidentially, both Forth and Smalltalk does strongly encourage brief codings) 20:27:07 s/does/do/ 20:27:10 so what makes Forth special? 20:28:25 stack oriented, extensibility, compactness, fast prototyping/debugging, um....I think you get the idea 20:28:57 well again, for each one of those attributes, you can find another language 20:29:09 PostScript has a stack, lisp is extensible, APL is compact, smalltalk has fast prototyping, etc. 20:30:23 yeah...individually, each feature is nothing special, but taken together, that's what makes Forth special, see? 20:31:13 yes 20:32:13 --- quit: mur__ (Remote closed the connection) 20:33:51 one big philosophy of Forth is that it tries to do a lot whith a minimum effort (e.g. why bother with garbage collecting when stacking will do? and so on) 20:33:56 --- join: mur_ (~mur@mgw2.uiah.fi) joined #forth 20:34:13 mur_ terve 20:34:14 TheBlueWizard, garbage collection is easy though, but yeah i see your point 20:50:36 forth at low level is basically macro asm or a bit higher. it's orthogonal enough to make combinators easily for a higher level language 20:50:51 which is rather unlike macro asm 20:51:37 i think that's the key, forth is made from a very small set of orthogonal operators. 20:51:45 the orthogonality is what does it 20:51:54 not sure i'd call ANS forth a small set 20:52:05 most of ANS forth is library code. 20:52:13 yeah....though there are some features such as CREATE...DOES> construct for example that goes beyond mere "macro asm" stuff 20:52:15 the core of forth is drop, dup, @, !, and so on. 20:52:48 well CREATE..DOES is sort of macro metaprogramming 20:53:25 it's that you can string 'em together as higher level combinators, half a dozen layers deep without worrying too much about inefficiency that's nice 20:53:56 yeah...Forth has some metaprogramming facility 20:54:18 i just wish i could find strongforth and figure out how it worked 20:54:25 i'd love a typeful compiler 20:55:03 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 20:55:54 one possible approach is to add a third stack called type stack and then use that to do type checking at each execution point. But it is better to just write a compiler 20:56:48 dont want to do that at runtime. i think it was supposed to do it at compile time 20:57:21 forth probably doesnt lend itself to type inference, but that could be, uh, fun :) 20:57:35 actually, it does. 20:57:49 type inference with a concatenative language is much easier than with an applicative one. 20:57:53 really 20:58:19 i'm trying to puzzle out how hindley milner works, so type inference would be a ways away for me 21:00:47 how would typing work in the face of CREATE..DOES for example 21:01:30 not sure how to translate the concept into a higher order type 21:02:06 well, i mean 'pure' stack code 21:02:17 anything using side effects, create/does>, and such would be tough 21:04:22 and handling words which can give different number of result (like -FIND) can be hard 21:04:34 i think those kinds of words should be avoided. 21:05:25 that's one reason why traditional programming languages usually require specific patterns (versus "arbitrary" results) 21:05:41 in lisp you can do 21:05:41 as per type checking, that is 21:05:49 (if (foo) (values 1 2) (values 1 2 3)) 21:05:53 and return 2 or 3 values depending on foo 21:06:02 but the caller doesn't have to explicitly handle this 21:06:21 they just do (multiple-value-bind (x y z) (...)) and z will be nil of ... only returned 2, for instanec. 21:12:06 --- quit: FlamingRain ("Leaving") 21:15:59 multiple returns are a corner case, easy enough to just forbid 21:22:51 --- join: FlamingRain (~Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 21:28:22 --- join: scope (~junk@njd.paradise.net.nz) joined #forth 21:30:32 a new zealander 21:30:46 yes ? 21:31:02 i used to live in wellington. 21:31:16 chch here 21:31:30 i've been there once or twice 21:31:56 never been to wellington myself 21:45:36 --- quit: FlamingRain ("Leaving") 21:52:20 --- quit: poing ("Leaving") 22:19:43 --- join: mur__ (~mur@kyberias.uiah.fi) joined #forth 22:20:06 all bye 22:20:37 --- part: TheBlueWizard left #forth 22:28:17 --- quit: mur_ (Read error: 110 (Connection timed out)) 22:38:41 --- join: crc (crc@45-pool1.ras11.nynyc-t.alerondial.net) joined #forth 22:45:26 hi crc 22:50:56 hi slava 22:53:46 What's new? 22:55:49 i'm making it possible to build customized factor images with only desired features. 22:56:05 for example, you can strip online help to save 200kb. 22:56:12 a minimal image is 92kb. 22:56:28 with all the bells and whistles, 420kb. 22:56:43 cool 22:56:53 i'm also going to add a 'turnkey' feature 22:57:02 where its possible to make an image with 'headerless' words 22:57:07 and only the words your app uses 22:57:11 Very cool :-) 22:57:42 I thought about doing something like that for RetroForth 22:57:49 but yours is already so small :) 22:57:53 True 22:58:10 But without the dictionary, just primitives you use, etc, it could be smaller 22:58:40 Hello World is like a 300 byte ELF executable using the target compiler 22:59:03 And that includes library code that you may or may not be using 22:59:20 With further optomizations, it could be a lot smaller 22:59:43 * crc likes small executables 23:00:24 The biggest news in RetroForth is the addition of syscall interfaces for Linux, FreeBSD, and Windows 23:00:55 cool 23:01:25 i'm going to add some features to factor to eventually make it replace my shell 23:02:51 I want RetroForth to be my OS (running natively or on a separate kernel) ;-) 23:03:15 cool :) 23:03:15 cmbrannon managed to open a TCP connection from within RetroForth last week 23:03:20 what kind of apps will you develop for it? 23:03:45 First the basics: text editor, file manipulation 23:03:58 Then a web browser of sorts, email, irc (maybe) 23:04:06 Games, etc 23:04:08 cool, cool. 23:04:50 Eventually it should be possible to save a memory image and reload it later on 23:04:58 i'm focusing on server stuff at the moment (http), since that doesn't require much in the way of UI. i don't have gui, curses or even unbuffered terminal i/o. 23:05:08 that's a good idea. 23:05:58 I have minimal I/O in the core: emit type key . 23:06:09 key is line buffered 23:06:27 With the syscall interface more advanced things should be possible though 23:06:41 what i have is some primitives for reading/writing fds, basically. 23:06:56 the key is that they are non-blocking. 23:07:18 My primitives are blocking 23:07:23 i have a very lightweight threading library built on top of this, so that the http server can serve simultaneous requests. 23:07:29 cool 23:07:46 you still code using blocking words, but they don't actually block -- they yield to another task. 23:07:58 its MUCH simpler than, eg, pthreads. 23:08:03 good 23:08:10 Threading is overly complex IMO 23:08:36 for native retroforth you'll have any kind of multitasking? 23:10:03 cooperative probably 23:10:09 good :) 23:10:14 preemptive is an excuse for bad code. 23:10:23 I'm looking at tcn's preemptive stuff as an option 23:10:37 if one of my tasks hangs, i can send a signal to the process, and end up back at the interpreter. 23:10:43 where is tcn ? 23:10:49 a signal is handed like a 'throw'. 23:11:42 tcn has abandoned Forth and now uses Python 23:11:51 --- join: [Forth] (~Forth@216-110-82-59.gen.twtelecom.net) joined #forth 23:12:17 He's working on a small OS kernel that I've been taking drivers from for RetroForth/Native 23:12:35 and writing a bunch of small Linux tools in C 23:12:44 why doesnt he come in here ? 23:12:47 get him in here! 23:13:24 I haven't talked to him since May 7 23:13:58 pythonOS? 23:14:02 email him if you want to talk to him :-) 23:14:13 No, he's doing Linux programs in Python 23:14:14 i dunno his addy any more lol 23:14:27 tom -at- bespin.org is the current one 23:14:39 http://tom.bespin.org/ is his website 23:15:19 I440r: What's new with isForth? 23:15:36 well isforth-ppc is almost ready 23:15:42 so is isforth-x86-freebsd 23:15:42 Cool 23:15:48 a FreeBSD version? 23:15:51 yes 23:15:55 :) 23:15:59 running without linux emulation 23:15:59 * crc will download it as soon as you release it! 23:16:05 lol 23:16:09 it extends now 23:16:12 I use FreeBSD now :-) 23:16:12 its sitting on my machine :) 23:16:16 the extended forth just doesnt execute 23:16:21 I see 23:16:27 theres some fucked up shit going on 23:16:29 "Microsoft, and in particular Bill Gates, have stated numerous times that Longhorn is the most expensive and time intensive project MS has embarked on and would be as complicated as the Apollo space program. " 23:16:38 Would you want to fly into space on a shuttle that runs Windows? 23:16:41 you run kernel.com and the first thing it does is sys_brk to 1 meg 23:16:48 "Uhhh Houston, what the hell is a pagefault in kernel32.386?" 23:16:54 it then compiles th eextensions and saves out a new image of itsekf 23:17:11 when yourun that image the brk gives e-nomem 23:17:18 Odd 23:17:30 very 23:17:48 and im too tired to fix it tonight, and i spent all day installing gentoo remotly on someones machine 23:18:08 Well I'll watch for it :-) 23:20:03 heh 23:21:46 * crc admires isForth, even if it is overly complex 23:22:05 why is it overly complex? 23:22:46 It has too many words for my liking. And it's DTC. 23:23:11 big library != complex 23:23:13 It's a good Forth, but not one I'm comfortable using on a regular basis 23:23:16 i bet the core is very small 23:23:22 crc its not overly complex lol 23:23:33 kernel.com is 17k 23:23:39 I440r, how many words is isforth? 23:23:55 lol extended or not ? 23:24:11 actually i dont know 23:24:16 The entire RetroForth/Linux system, with file I/O, is <6k 23:24:21 but i can paste them all in here if you like ??? 23:24:21 hehe 23:24:30 Go ahead :-) 23:24:32 I440r, write a word to count it :) 23:24:43 crc, yes, but retroforth doesn't do as much as isforth 23:24:51 lol sure... ill get right on that, right after ive slept for 10 hours heh 23:24:57 if isforth was 10mb and only had arithmetic and nothing else, that would be overly complex :) 23:25:06 heheh 23:25:15 That would be _bloated_ 23:25:24 anyway i beat you all in terms of bloat: 141 primitives and 950 library words. 23:26:12 [compiler] 23:26:12 ,' turnkey >body lexmask !> hp fsave +headers incr> syscall ?do immediate param line# (quit) ?comp# +loop interpret literal .( -headers off> is abort" again begin >mark behead repeat \s reveal ;struct e_entry .ok recurse , >name bfield ?leave on> 23:26:12 ;uses ?open defer dflt defers alias allot defined dfield variable 23:26:12 fd then >resolve >type .status s, c, hash thread hallot (abort) nxt body> wfield find here const 23:26:14 head" else do +!> while compile headers> constant if (find) l>name dp does> until fload flpad : 23:26:16 hhere create ," w, floads last ;case fmmap ; ;code [ for \ state h, n>link struct: ,call [compile] 23:26:18 ] ttbsf (interpret) ['] ." leave name> 23:26:20 [terminal] 23:26:27 w.height w.screen w.buffer >bold >attrib cyan home home hpa ind hpa wprefclr wprefset indn green 23:26:29 (.$buffer) >fg .$buffer wtype ht ht hts hts c>$ pdm" pdm: acs is2 is1 (screen) ;pdm rc backfill 23:26:31 salloc sc (wemit) scr red rev (window) bell w
    norm wbg w>fg w>ul w>so ri w>alt 23:26:42 w>rev
      pref sgr rin ech w>bold sgr0 ed w>attrib detach >rev wat >so w" 3* civis walloc 3+ blue 23:26:44 .screen >ul black rmul rmso rmir rmam clw rmcup rmacs pref fg box ?term clear clear smam smul smso 23:26:46 smir bold wemit smcup smacs dl1 close-win .window ich ich cnorm s.link at ich1 el elw s.flags 23:26:48 s.width close-screen s.height s.window win s.buffer2 s.buffer1 white attach attrib cr cr window 23:26:50 winpos yellow enacs csr cuf1 cub1 cud1 wl-copy curon vpa vpa w.cy w.cx curoff w.yco w.xco magenta w.menu w.next >alt 23:26:59 cursor-rt cursor-lt cursor-dn cursor-up w.blank w.attr2 w.attr1 w.width w.flags >bg il1 >acsc 23:27:01 [ 23:27:03 >block list --> load bclose bcreate #bfiles +thru bham ?name-list thru bload bmax blksize@ 23:27:05 blksize! bopen block&handle bsync bsource 23:27:10 [sockets] 23:27:10 --- join: mur_ (~mur@smtp.uiah.fi) joined #forth 23:27:12 [root] 23:27:14 vocabulary i-voc (only) .current .context rehash seal only debug terminal block definitions fence 23:27:16 .vocs root previous sockets context compiler empty dovoc mark forth forget #threads current #vocs 23:27:18 voclink h-voc 23:27:20 [debug] 23:27:27 see 23:27:29 and thats not even forth yet 23:27:31 forth is larger than any of those lol 23:27:33 i think i got close to 3 or 4 hundred words defined 23:27:47 err actually i fergot. words only displays in context vocs 23:27:52 so i have more hehe 23:27:57 :-) 23:28:07 .vocs debug sockets block terminal i-voc h-voc root compiler forth ok 23:28:08 i don't have any notion of 'hidden words' 23:28:14 debug has only one word in it tho 23:28:16 "see" 23:28:29 its against my philosophy 23:28:53 see ;code 23:28:53 : ;code 23:28:53 r> last @ name> 1+ dup>r 4+ - r> 23:28:53 ! ; 23:29:23 see does> 23:29:23 : does> 23:29:23 compile ;code ,call dodoes ; immediate 23:31:30 RetroForth 7.2 Words: 23:31:32 clear cr << 0; columns 23:31:32 lines chars char+ cells cell+ 23:31:32 align allot pad */ /mod 23:31:32 octal binary decimal hex +! 23:31:32 2drop 2dup tuck over -rot 23:31:32 rot < <> > = 23:31:35 here constant variable, 23:31:36 variable mod / - 23:31:39 negate * + c! c@ 23:31:40 ! @ not >> xor 23:31:42 or and nip dup drop 23:31:45 swap last sp base h 23:31:46 z" cmove restart reset parse 23:31:48 type . macro forth : 23:31:51 compile ] create 3, 2, 23:31:52 what does >> do ? 23:31:52 1, , eval >number find 23:31:54 mfind key emit bye 23:31:56 MACRO: 23:31:58 : ( then if r> 23:32:00 >r m" f" again repeat 23:32:02 z" s" literal ; ;; 23:32:04 [ does> 23:32:05 isforth uses >> to do what ans calls rshift 23:32:07 right shift 23:32:09 << is left shift 23:32:14 rshift is a crap name 23:32:15 factor vocabularies: 23:32:16 [ "ansi" "combinators" "continuations" "cross-compiler" "errors" "file-responder" "files" "format" "hashtables" "html" "httpd" "httpd-responder" "inferior" "init" "inspect-responder" "inspector" "interpreter" "io-internals" "jedit" "kernel" "lists" "logging" "logic" "math" "namespaces" "parser" "prettyprint" "profiler" "quit-responder" "random" "real-math" "scratchpad" "stack" "stdio" "streams" "strings" "styles" "synt 23:32:16 ax" "telnetd" "test" "test-responder" "threads" "unparser" "url-encoding" "user" "vectors" "words" ] 23:32:31 sorry for the unnecessary punctuation :) 23:32:32 might as well call it "shift-top-of-stack-ritht" 23:32:50 lol 23:33:11 >> <-- much nicer name 23:33:16 I agree 23:33:18 u>> >> and << 23:33:20 i only have one shift word 23:33:35 1 2 shift . ==> 8 23:33:39 8 -2 shift . ==> 1 23:33:48 im still undecided about my having renamed and/or/xor to &/|/^ etc 23:33:49 i mean 4 not 8 23:34:00 I440r, i have bitand bitor bitxor :) 23:34:18 and/or/xor are for a distinct boolean type :) 23:34:29 f is the false boolean, everything else is true 23:34:31 forth makes no distinction there 23:34:34 if you need it 23:34:38 you 0= the result 23:34:41 or 0= not 23:35:29 i know 23:35:38 At the moment RetroForth 7.3 adds "do loop | min max abs zt-make zt-free", and either "syscall" or "LoadLibraryAs MapFunctionAs invoke" 23:36:03 I440r: In RetroForth | starts a comment :-) 23:36:28 \ ( or .( hehe 23:36:30 Hmm, I'm also adding 'branch' in 7.3 23:36:32 what else do ya need 23:36:41 oh 23:36:42 \s 23:36:50 I have ( 23:36:52 \s? 23:36:55 but i think i need to modify \s 23:36:55 I don't like \ for comments 23:37:01 \s says ignore rest of this file 23:37:03 Sonarman, drop rest of source file 23:37:06 crc, neither do i 23:37:07 INLINE void* allot(CELL a) 23:37:08 ah 23:37:08 { 23:37:08 CELL h = active->here; 23:37:08 active->here += align8(a); 23:37:08 check_memory(); 23:37:10 return (void*)h; 23:37:14 } 23:37:15 It breaks the visual flow IMO 23:37:24 i either add \\s or i make \s ignore the rest of ALL nested floads 23:37:28 active-> because there's two memory zones due to GC 23:37:33 and check_memory() runs GC if needed :) 23:38:10 can you paste check_memory()? 23:38:11 In the list I pasted z" shouldn't be there... 23:38:37 Sonarman, its really boring 23:38:41 crc, what is z"? C stirng? 23:38:44 void check_memory(void) 23:38:44 { 23:38:44 if(active->here > active->alarm) 23:38:44 { 23:38:44 if(active->here > active->limit) 23:38:46 { 23:38:48 fprintf(stderr,"Out of memory\n"); 23:38:50 fprintf(stderr,"active->base = %ld\n",active->base); 23:38:52 fprintf(stderr,"active->here = %ld\n",active->here); 23:38:54 fprintf(stderr,"active->limit = %ld\n",active->limit); 23:38:56 fflush(stderr); 23:38:58 I440r_: your >> preserves the top bit? 23:38:59 exit(1); 23:39:05 herk yes 23:39:07 } 23:39:08 /* Execute the 'garbage-collection' word */ 23:39:10 call(userenv[GC_ENV]); 23:39:12 } 23:39:15 it preserves the sign 23:39:16 } 23:39:29 sorry for breaking up the code paste lol 23:39:33 its ok 23:39:34 I440r_: that's weird 23:39:39 i'm not sure why Sonarman wanted to see it ;) 23:39:40 why ? 23:39:45 lol 23:39:55 I've only once in my life that I can think of used an arithmetic shift 23:40:05 i dont think i ever did it 23:40:09 i hardly use it 23:40:17 except in assembler and that shifted the data ALL the way 23:40:30 i.e. the result was eitehr -1 or 0 :) 23:41:14 I440r, what for? 23:41:52 abs 23:41:55 --- quit: Herkamire ("bed") 23:42:08 Sonarman, ya :) 23:44:24 : abs dup 32 >> / ; ? 23:45:26 no 23:45:58 code 'abs', abs 23:45:58 mov eax, ebx ;set ebx = sign of n1 23:45:58 sar eax, byte 31 ;propogate sign bit if n1 throughout ebx 23:45:58 xor ebx, eax ;will invert n1 if n1 was negative 23:45:58 sub ebx, eax ;will subtract -1 if n1 was negative 23:45:59 next ; i.e. it will add 1 23:46:50 xor N with its sign 23:47:10 then stubtract the sign of n from the result :) 23:47:21 I440r: why not do it in Forth? 23:47:28 this is faster 23:47:33 but for an example :? 23:47:35 : abs dup 0 < if negate then ; 23:47:54 : abs dup 32 >> tuck xor ( swap ?) - ; 23:47:57 : abs dup 31 >> tuck xor swap - ; 23:48:00 the question is 23:48:02 what's faster 23:48:04 0 < if negate then 23:48:07 or signed / 23:48:50 if you don't have hardware division, the answer is obvious :) 23:48:59 I'm not too worried about speed :-) 23:50:33 the coded version cant be more than about 6 bytes 23:50:43 maybe 7 but i doubt its more 23:52:25 9 bytes not including whatever you use for 'next' or the dictionary heading 23:52:51 lodsw jmp eaax 23:52:55 those are a byte each 23:53:14 So it's 11 bytes 23:53:34 i fibured most of those opcodes are single bytes 23:53:44 the sar is 2 23:54:17 The 'sar' is three bytes in my disassembly 23:54:32 did you use a single byte for the count? 23:54:34 $ ndisasmw.exe -b32 a 23:54:34 00000000 89D8 mov eax,ebx 23:54:34 00000002 C1F81F sar eax,0x1f 23:54:34 00000005 31C3 xor ebx,eax 23:54:34 00000007 29C3 sub ebx,eax 23:54:45 ok 23:55:04 The source line was 'sar eax, byte 31' 23:55:13 right 23:56:01 Mine takes 31 bytes 23:57:41 Sonarman, i didnt expect anyone would guess that btw lol 23:58:04 i hax0red j00r brain 23:58:12 lol 23:58:21 no wonder its been working so good lately 23:58:43 you had all these rootkits lying around 23:59:20 i cleaned things up 23:59:59 --- log: ended forth/04.08.28