00:00:00 --- log: started forth/02.05.09 00:31:31 --- join: GilbertBSD (~gilbert@m137.max3.dacor.net) joined #forth 00:37:55 --- quit: GilbertBSD ("xchat exiting..") 01:15:29 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 01:28:32 --- join: Soap` (flop@210-54-195-175.dialup.xtra.co.nz) joined #forth 01:37:00 --- join: davidw (~davidw@adsl-ull-95-100.42-151.net24.it) joined #forth 02:15:54 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #forth 03:18:08 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 03:18:13 --- quit: onetom (carter.openprojects.net irc.openprojects.net) 03:18:14 --- quit: joa (carter.openprojects.net irc.openprojects.net) 03:18:14 --- quit: goshawk` (carter.openprojects.net irc.openprojects.net) 03:18:15 --- quit: deltab (carter.openprojects.net irc.openprojects.net) 03:18:31 --- join: ChanServ (ChanServ@services.) joined #forth 03:18:31 --- join: onetom (tom@adsl52013.vnet.hu) joined #forth 03:18:31 --- join: joa (~james@245-118-237-24.anc-dial.gci.net) joined #forth 03:18:31 --- join: goshawk` (goshawk@panix1.panix.com) joined #forth 03:18:31 --- join: deltab (~deltab@216.234.235.21) joined #forth 03:18:31 --- mode: carter.openprojects.net set +o ChanServ 03:51:18 --- join: vomjom (~vomjom@cc1-24.217.97.201.charter-stl.com) joined #forth 03:51:18 --- quit: MrReach (Read error: 104 (Connection reset by peer)) 03:51:47 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 03:52:19 Hi MrReach =) 04:07:15 --- quit: MrReach (Read error: 104 (Connection reset by peer)) 04:07:25 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 04:25:26 --- quit: davidw (Read error: 113 (No route to host)) 04:32:47 --- join: davidw (~davidw@adsl-ull-108-108.42-151.net24.it) joined #forth 04:41:41 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 04:46:33 --- join: Soap` (flop@210-54-106-164.dialup.xtra.co.nz) joined #forth 04:46:34 --- quit: Soap` (Remote closed the connection) 05:43:23 --- join: Fare (fare@samaris.tunes.org) joined #forth 05:43:28 Hey :) 05:47:36 --- join: Juu (ammu@baana-62-165-189-112.phnet.fi) joined #forth 05:48:14 hey 05:48:29 hej! 05:48:33 18 MURR! 05:48:36 ;) 05:48:41 terve, oink 05:48:52 HEJ! 05:49:04 moi, rob_ert 05:49:09 Moin 05:50:30 Monin 05:50:43 moi moi 05:50:51 * Juu answers in finnish ;) 05:59:53 Juu: terve 06:01:10 moi 06:02:20 * davidw is drooling over his new dsl connection 06:03:03 it's too cool:-)) 06:04:24 davidw well close it then 06:04:43 onetom, wait a bit until i remember what i supposed to say to you :) 06:05:31 * Juu has actually hungraian dictionary here 06:05:42 Heh 06:06:57 I forgot mine at home 06:07:13 * Juu also has in bookshelf encylopedia (finnish dict, at least 6 of them), estonian dict, swedish (3 of them) and english (2 supposingly) 06:07:28 he 06:07:31 Hm 06:07:41 no french dict ? 06:07:41 You see, swedish 0wnz english ;D 06:07:47 :( 06:07:57 rob_ert blah! 06:08:02 :D 06:08:09 WTF is on port 7777? 06:08:11 i have not learned german, dutch or french ever 06:08:19 there are about a zillion lamezoids trying to connect to it 06:08:21 though, i do understand most of the contents 06:08:22 Deutsch! Ja,ja! 06:08:34 nein, rob_ert svein 06:08:39 svain 06:08:39 D: 06:08:40 davidw: grep 7777 /etc/services 06:08:43 hmm.. how is that writen? 06:08:43 Schwein? 06:08:54 dude, i just told i dont have german dictionary 06:09:01 i will use you instead 06:09:01 :) 06:09:05 Bah 06:09:12 I don't know german 06:09:31 okay, i use myself then 06:09:32 :) 06:09:47 oink: why didn't I think of that? I did, actually. 7777 is some lame h4ckerz t00lz thing, I suspect, and I'm curious what 06:10:07 it would be so much fun to nail the fuckers who pull that crap 06:10:33 if it was 666 it woudl be most likely irc daemon than satan daemon, i suppose 06:14:19 davidw: lsof -i tcp:7777 ? 06:15:09 onetom where do you live in hungrary? 06:15:16 ah, too hard word, iäll use magyar 06:15:17 :) 06:15:29 oink: no, it's firewalled out 06:15:39 oink: no way I leave a dsl box open 06:19:46 onetom murr? 06:30:15 nah, here am i 06:31:44 Juu: i live in Szeged, the city of sunshine 06:31:47 oki 06:31:59 sunshine? :) 06:32:05 szeged i've herd 06:32:15 heard, though, i've been only to budapest 06:32:23 davidw: congrat 2 ur dsl! what is its up/dn speed? 06:32:38 one half-hungarian who lives infinalnd and was at same class told that all budapest are.. hmm.. 06:32:45 well i dont remmeber but not nice anyway 06:32:49 ;) 06:32:56 Juu: this city has the highest ratio of sunny days / year in the whole country 06:32:57 that's guess in every capital 06:33:07 oki 06:33:30 budapest is rather crowded :/ 06:33:32 onetom: not real fast, but better than a f&(*(&( modem 06:33:41 today cousins bday and finland-russia 06:33:45 might be of much 06:33:58 davidw: mine is 384/64 dn/up, u know urs, dont u? 06:34:09 I think it's something similar 06:35:02 davidw: its also already satisfactory 4 dl cd sized stuff. u shouldnt cry 4 a better 1 06:35:36 davidw: unless u wanna participate in a lot of video conferences 06:37:00 when I lived in san francisco, I downloaded at something like 150 k/s 06:37:17 davidw: or unless u wanna operate server services (xxtp or file sharing systems, like napster the like) (a symmetric connection would already b far more enough 06:37:23 foreign connections are usually slower 06:37:47 Juu: yup, thats right & thats the point 06:37:51 --- join: klooie (kloo@213-84-79-23.adsl.xs4all.nl) joined #forth 06:37:53 hey. 06:37:57 hee 06:38:14 a copy of starting forth for $334, what a deal. :) 06:38:34 a friend gave me his for free two weeks ago. 06:38:41 http://s1.amazon.com/exec/varzea/ts/exchange-glance/Y01Y0419486Y2825820/103-3330084-5871003 06:38:44 (as posted on clf) 06:39:13 --- join: tathi (~josh@wsip68-15-54-54.ri.ri.cox.net) joined #forth 06:45:33 davidw: /win new 06:45:40 oops :) 06:45:49 =D 06:51:31 bb 07:30:48 /win/hide #forthos 07:30:54 oops 07:35:12 heh 07:35:26 Oops! 07:36:10 * rob_ert .oO( oooops! ) 07:38:47 * oink . o O ( b o r e d ) 07:39:39 =) 07:39:51 Get an emulator and code something cool on an old CPU 07:39:56 . o O ( oh dear! again those 2 ! ;) 07:40:48 you really like old CPUs, don't you? :) 07:41:05 Hehe 07:41:14 Well, I think small things are kind of cute. 07:41:22 Small as in small resource 07:41:23 s 07:41:43 yeah 07:42:21 They also prove 2GHz processors aren't exactly needed for most things ;-) 07:42:43 it's kind of fun when you actually have to think about code speed :) 07:43:14 and can't just go, "oh, I think I'll throw another 25 instructions into my inner loop, because it will still execute in no perceptible time..." 07:43:25 Hehe 07:43:57 And size, too. 07:44:21 You can't put a 100K logo everywhere :) 07:44:38 rob_ert: something cool ? 07:44:42 bb later 07:45:12 oink: ? 07:45:19 Juu: Byebyebye. 07:45:26 [16:37] < rob_ert> Get an emulator and code something cool on an old CPU 07:45:33 Oh 07:45:36 Well 07:45:39 A game? 07:45:41 A GUI? 07:45:43 A forth? 07:45:47 Think of something! 07:45:56 hm 07:46:29 I'll code a tamagochi.. so that I won't be bored anymore! 07:46:38 :) 07:47:38 :) 07:47:52 Code a fluffy online bot we all can pet. 07:48:43 http://www.pong-story.com/ 07:48:45 :) 07:49:01 Code a pong in the KnasOS forth :D 07:49:11 hm 07:49:13 yeah! 07:49:38 You have... MODE, PUT-PIXEL, INKEY, GETKEY, MS plus the usual standard words 07:49:49 So, in theory it's possible. 07:49:50 is that enough ? 07:49:52 hm 07:49:58 Yes, it is :) 07:50:27 ok 07:50:30 But make sure you test the words before you go on ;) 07:50:42 There's no way to recompile ;) 07:50:57 he ? 07:51:36 I mean 07:51:42 If you do 07:51:48 : X FOO FOO FOO ; 07:51:55 : Y FOO X FOO ; 07:52:10 And you want yo make a change in X, you have to write both X and Y again 07:52:30 oh .. yeah 07:52:36 But if you plan it carefully, you'll be able to do it ;) 07:56:14 hmm... and what about ASM ? 07:56:47 not funny maybe ? :) 08:02:14 Hmm 08:02:20 What do you mean? 08:02:34 hey 08:02:40 you know what you guys need to do 08:02:40 Hi davidw 08:02:46 What? 08:03:11 send me lots of money 08:03:13 well...seriously 08:03:22 http://lwn.net/2002/0509/devel.php3 08:03:27 check out the bottom part of the page 08:03:29 Heh 08:03:34 where they talk about different languages 08:03:39 Okie 08:03:40 you need to do a forth weekly news 08:05:34 :) 08:05:50 I'm serious 08:05:53 Remember I'm a newbie, everyone would laugh if I made a pahe 08:05:54 page* 08:05:58 it will increase the visibility a lot for very little effort 08:06:03 * tathi has a meeting, bbl... 08:06:05 no they wouldn't 08:06:07 bye tah 08:06:08 read c.l.f. 08:06:13 report on interesting things 08:06:14 cya later 08:06:17 levaing 08:06:18 Juu: Bye. 08:06:20 maybe get some help from someone woh knows more 08:06:21 davidw: :) 08:06:22 though i was idling already 08:06:24 Hehe 08:06:35 the main ability you need is to be succinct and interesting 08:06:38 I let someone who knows more do the whole job ;D 08:06:57 I'll just use my page for the forth-related stuff I think is cool 08:07:24 --- quit: Juu ("this quit message is VIRUS -- all your files will be deleted! thank you for using windows.") 08:17:08 ; heh, idiot, you can't change to the current screen 08:17:26 Just found that comment in some asm code I've written.. 08:33:09 --- join: futhin (~futhin@h24-64-174-2.cg.shawcable.net) joined #forth 08:35:26 Hey 08:35:52 sup 09:00:52 --- quit: Fare ("Connection reset by pear") 09:07:07 --- join: divgrad (~John@mx51-49.telecom.by) joined #forth 09:09:45 --- quit: futhin ("gtg!") 09:10:49 --- nick: oink -> TypoKing 09:11:48 --- nick: TypoKing -> oink 09:19:23 --- join: GilbertBSD (~gilbert@max2-91.dacor.net) joined #forth 09:20:49 Hi :) 09:20:59 hey do you know vim? 09:21:22 I use elvis, actually. 09:21:56 elvis? whats so special about that? 09:22:28 Nothing... well, it's ported to Minix. 09:22:43 And I mostly use other editors in Linux 09:23:37 do you know how to delete tags in elvis? 09:23:54 eg somewords 09:24:28 Uh. No. 09:24:42 I know "i" stands for insert, and :w saves. 09:24:45 That's about it. 09:24:56 I knew how to yank. Not anymore. 09:25:09 Or... I've forgot how to paste =) 09:25:22 so you don't use vim at all? 09:25:41 Nope. 09:25:52 And I rarley use any vi clones. 10:01:36 --- join: skipC (skip@mira.taygeta.com) joined #forth 10:02:24 Hey :) 10:02:41 (: yeh 10:03:07 * rob_ert pokes GilbertBSD. Don't talk backwards, boy! 10:03:28 ?ton yhw 10:03:54 * rob_ert pokes GilbertBSD's only eye out. 10:04:11 !hcuo 10:04:22 !luferac 10:09:29 ?ot pu uoy era tahw 10:09:36 tre_bor 10:10:06 (: ufts 10:10:23 |: ecin eb 10:10:37 .ma I 10:10:49 Syawla 10:11:31 (: ufts 10:12:16 You deserved it :) 10:12:24 ?yhw 10:12:30 Because. 10:12:36 ?fo 10:13:06 Your unl33t backwards sp33king, 10:13:52 ?etile 10:14:11 !etile not no 10:14:26 nuf tsuj 10:14:32 :D 10:14:40 ¡nuf nuf nuf 10:19:48 !unf unf unf ? 10:20:15 !nuf nuf nuf, sey 10:20:27 lfor 10:20:40 ¡ not ! 10:20:50 (: 10:20:54 :) 10:20:59 ?ton yhw 10:21:20 !ddo era syug uoy 10:21:47 .! ton 10:22:16 ... tripluc eht dias 10:22:38 llor nomannic teg ot ffo m'I dalg flah 10:22:56 eheheh 10:22:58 em rof drah si drah 10:23:03 er 10:23:08 uoy rof doog 10:23:31 /siht/drah/s 10:23:46 kerblam! adabracadabra 10:23:48 em teg uoy fi 10:23:49 ah its fixed 10:23:53 w00t 10:23:57 hahahah 10:24:18 the kerblam magic didn't quite reach my server in time for that last message ;) 10:24:28 but it's time for me to go! later :) 10:24:29 --- quit: divgrad (Read error: 113 (No route to host)) 10:24:37 heh 10:24:38 later 10:24:47 does anyone here use vim yet? 10:44:56 * onetom revives the habit of attend aikido "lessons". recommeds all the others 2 follow him ;) 10:45:24 attending 10:48:19 --- part: GilbertBSD left #forth 10:48:23 let's hear it for Peru! (you guys see that thing on lwn.net?) 11:01:20 --- join: kc5tja (kc5tja@stampede.org) joined #forth 11:02:38 Hi :) 11:03:13 Ho :) 11:13:25 re 11:13:34 at least temporarily. 11:17:02 tathi: what thing should have be seen on lwn? 11:19:54 onetom: sounds like they're trying to pass a bill that says the government can only use free software and free file formats 11:20:26 and the head of Microsoft Peru sent the politician in charge of the thing a letter with like 13 reasons why this was a "bad" idea 11:21:04 and the politician wrote him back this great letter just demolishing all their arguments 11:21:25 and pointing out that they were contradicting themselves in two or three places :) 11:22:05 :D 11:22:40 well, I was impressed anyways... 11:22:48 http://lwn.net/2002/0509/ 11:23:19 yeah, it was a great letter 11:26:25 The inclusion of the intellectual property of others in works claimed as one's own is not a practice that has been noted in the free software community; whereas, unfortunately, it has been in the area of proprietary software. 11:26:35 As an example, the condemnation by the Commercial Court of Nanterre, France, on 27th September 2001 of Microsoft Corp. to a penalty of 3 million francs in damages and interest, for violation of intellectual property (piracy, to use the unfortunate term that your firm commonly uses in its publicity). 11:26:42 hehe 11:28:41 * kc5tja printed out the letter, and has it posted in my cubical here at work. 11:29:06 * kc5tja also printed out and posted Mark Twain's Plan for the Improvement of English Spelling 11:29:08 ;P 11:29:11 :) 11:29:31 another good one is 'that awful german language' 11:35:08 * kc5tja is reading it now. 11:35:13 Quite funny. 11:38:58 --- join: Juu (ammu@baana-62-165-189-112.phnet.fi) joined #forth 11:39:56 heyhey 11:40:01 Hi =D 11:41:24 mur 11:41:57 murr 11:42:20 MUR! 11:43:22 xD 11:43:49 i knew you coudln't follow me 11:43:51 too tough 12:12:21 --- join: Fare (fare@samaris.tunes.org) joined #forth 12:13:28 Hi Fare :) 12:13:57 *bored* 12:14:46 :) 12:14:53 oink: Debug my code then ;) 12:15:39 rob_ert: .. OK i'm bored, but not enough to do your work. 12:15:49 :) 12:16:08 C'mon oinkie light my fire... 12:16:16 heh 12:16:37 i'm already debugging something :) 12:16:44 asm/sparc :( 12:16:59 :D 12:17:41 slowlaris sucks. 12:19:40 oink and still you love it.. 12:33:59 Foodtime... 12:34:02 --- nick: kc5tja -> kc-food 12:34:23 :) 12:42:57 --- quit: rob_ert (Remote closed the connection) 12:43:46 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #forth 12:51:13 --- join: geakazoid (JB@adsl-63-202-179-85.dsl.snfc21.pacbell.net) joined #forth 12:51:28 --- quit: klooie (Read error: 110 (Connection timed out)) 13:01:51 * geakazoid is gone, autoaway/10m (l!on) 13:08:29 heh 13:08:38 kano! 13:08:39 (: 13:41:13 --- nick: kc-food -> kc5tja 13:48:14 --- quit: tathi ("leaving") 13:49:02 --- join: CrowKilr (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 13:49:11 Hi :) 13:49:13 hi 13:49:33 i hope ill get a response to my comp.lang.forth post 13:50:19 i only got a "you should ask to the colorforth mailing list" answer 13:50:53 heh 13:51:00 what was the question? 13:51:17 who did you send it as? it ought to be on google, by now 13:53:32 Yeah, that's pretty common. 13:54:07 CLF is pretty rigid in what they consider "Forth." 13:54:13 MURR! 13:54:26 ok, for the record, the original message is at ... 13:54:29 http://groups.google.com/groups?q=color+group:comp.lang.forth.*&hl=en&safe=off&scoring=d&selm=3CD9C75D.319A3942%40thepentagon.com&rnum=2 13:54:32 well, he asked about colorforth 13:54:32 Though I still prefer the punctuated Forth dialects, I'm not averse to ColorForth, MachineForth, or anything of the like. 13:54:33 so... 13:54:42 Juu: I thought it was mur! 13:54:53 well i change it 13:54:54 :) 13:54:57 murrrr! 13:54:57 Juu: BTW, what does mur(r?) mean anyway? ;D 13:54:57 :) 13:55:04 it's onomatopoetic word 13:55:08 finnish bears say murr 13:55:30 ah! symptom of fustration 13:55:47 ;) 13:55:48 no it is not 13:57:51 what is it supposed to express, then? 13:58:08 it supposed to express what bears do say 13:58:08 :) 13:58:15 that's what onomatopoetic words are 13:58:16 :) 13:58:24 I just think of a cute, hairy animal when I see "murr". 13:58:28 heh 13:58:31 I guess that's what a finnish bear is... 13:59:14 * kc5tja thought it was Finnish for "Welcome back"... :/ Silly me. :) 13:59:23 :D 13:59:30 finns have so many greetings 13:59:43 though, not very good ones for bye and welcome back 13:59:48 so we just use the same greetings 14:00:00 Such as murr... ;D 14:00:17 no 14:00:32 terve, moi, moikka, morjens 14:00:38 tervehdys, terppa 14:00:45 moi moi 14:00:54 pff.. hey! no i wont list them again! 14:00:55 :) 14:01:08 päivää = god day, though not very usual 14:01:25 actaulyl that is just "day" (objective) 14:01:30 hyvää päivää = good day 14:01:47 moi taas coudl be used wb, "hello again" 14:01:54 tervetuloa = welcome 14:02:02 tervetuloa takaisin = wb 14:02:08 Interesting bit of etymology here: The English word "good" comes from Germanic "Gut", which also refers to God. So "Good day" literally, if taken in its old German form, means, "God Day". :) 14:02:34 so i was right :) 14:02:34 Or, more accurately, "Godly day." 14:02:43 = jumalainen päivä 14:02:51 sorry i got to gte away im back 14:02:57 in finnish that woudl sound like "damn good day" or "shitty day" 14:03:04 ill try top a /away next time 14:03:45 <kc5tja> Though I still prefer the punctuated Forth dialects, I'm not averse to ColorForth, MachineForth, or anything of the like. 14:04:04 Oh yeah, I meant to follow up on that. 14:04:09 i hate those ponctuated forths systems with create does etc etc etc 14:04:28 In my trying to write a set of Forth environments, I've come to ask myself, "What is it that constitutes Forth?" It's a most interesting question. 14:04:48 CREATE/DOES> is the very root of Forth's expressive power. 14:05:08 i think mainly linear, regressive optimizations like stacks, lineras dictionaries etc etc 14:05:12 thats what make forth best 14:05:44 kc5tja: not "what constitutes the essence of this problem I'm considering" ??? 14:05:48 They are all enablers; like enzymes if you will. With any one of those things missing, it's incomplete. 14:06:11 MrReach: Explain? 14:06:36 yoiu were considering the essence of forth ... not the essence of a particular problem 14:06:47 just wanted to point that out 14:06:51 MrReach: That is correct. 14:07:05 forth is simply the most simple and efficient way of doing things 14:07:09 the most scalable manner too 14:07:20 it would seem a difficult task, considering how mallable forth is 14:08:00 MrReach: That was the point of my query. Can one really answer the question? I'm not sure. CM could, perhaps, but even his answer seems to change every 5 to 10 years. 14:08:06 maybe a 100000 words rewind search to find only the last word is slow but once compiled its fast 14:08:41 it simple its right in your face lol just have to look at it its not mysterious 14:08:47 perhaps "Forth is a tool with which to write tools" ??? 14:08:47 i maybe cant define it into word 14:08:54 CrowKilr: There are ways of hastening that up too. Hashing plus linked lists makes for very rapid namespace searches. 14:08:58 but its obvious its the simplest way 14:09:17 thats great for a interpreted system 14:09:28 However, with a well segregated set of wordlists, it really isn't much of a problem 14:09:28 but a system compiling code on the fly 14:09:44 can lookup words using a hash table, also 14:09:58 is first ultra secure once the checks are done and ultra fast because its native code 14:10:12 oh? 14:10:16 CrowKilr: Let me give you an example: PygmyForth recompiles itself in about 10 seconds on my laptop. That's pretty slow for only 100 blocks of code. 14:10:24 which Forth are you refering to? 14:10:30 CrowKilr: With hashing, I can recompile the kernel in about 5 seconds. 14:10:55 refering to my own personnal and surely incomplete understanding of colorForth 14:11:15 kc5tja: kewl! 14:11:31 I was rather disappointed in the STC Forth I wrote ... it ran rather slower than direct threaded, DOS 386/dx40 14:11:33 i dont know at all about hashing techniques 14:12:02 MrReach: On x86 platforms, DTC is provably faster than STC. Even on today's more modern x86 variants. :) 14:12:06 oh, you're refering to a forth engine in hardware? 14:12:21 MrReach: Wha?? no -- Where did that come from? 14:12:24 kc5tja: so I came to discover 14:12:44 kc5tja: that was to CrowKilr about instruction set 14:12:58 Oh. I thought it was to me. 14:13:17 yeah i think the forth primitives are the best to use if you code in forth 14:13:47 if you need to get that 5% performance then you put an optimzing macro preprocessor like engine that translate all the code into processor specific instruiction 14:14:00 but the intent of the code is made a lot more obscure 14:14:07 CrowKilr: Hashing is just taking a chunk of data, and using that data to cmpute a number, called a 'key.' Hashing can be as simple as adding up all the characters in a name, to yield a single byte value, or just using the length of the string, etc. Then, with that number, you know "roughly" where to look for your data, so you exclude everything else from your search space. 14:14:09 yes, I realized that I'd have to do serious machine code optimising to get the speed I was imagining ... and I didn't feel up to the task at the time 14:14:11 dotn let yourself fall in the dark side of the force ;ppp 14:14:13 lolol 14:14:18 I'd probably go ahead and do it, now 14:14:58 hasing is great then 14:15:12 maybe a red word table could be arranged in ascending order 14:15:23 and hashing principle cpoul be roughly applied 14:15:27 it sure makes a difference when compiling large sources 14:15:35 What does a red word correspond to? 14:15:43 ill get more info on hashing tanks for the intro! 14:15:51 look at my post 14:15:57 its the name of a new word 14:16:01 I don't know ColorForth 14:16:02 Ahh 14:16:22 colorforth is the best im telling you lol 14:16:30 heh 14:16:31 Personally, I disagree. 14:16:49 the keyboard layout sucks and the editor is basic 14:16:59 Especially when you must reproduce your source code in print media. 14:17:00 but its simple to translate a html file to colorforth code 14:17:09 lol HTML or xml 14:17:12 dead easy 14:17:16 PRINT media 14:17:28 not HTML, or XML, and even then, it's not as trivial as you might think. 14:17:49 Remember, I'm a verification technician. My job is to verify, and to certifyably prove that my code is correct for verification purposes. 14:18:00 This requires peer review, and ColorForth is 100% unsuitable to that task. 14:19:01 come on lol you cant be serious, maube colorforth is a little cryptic, but once the intent is documented well enough source code is fairly readable 14:19:04 A punctuated Forth can do everything that ColorForth can do. Maybe it's not as brief or compact, but it can do it. Hence, I see no technological advantage to using ColorForth, except the fact that the source is pre-tokenized for the compiler's benefit. 14:19:26 I am dead serious. 14:19:37 * Juu gives mouth to mouth breathe 14:19:45 thats the point you got it the tokenized source is great 14:19:58 and its easy to convert to anotehr format 14:20:00 You apparently know very little about how verification is done in the industry. 14:20:04 hum. The machine has a date year that is out of bounds, and won't work anymore 14:20:08 red words left justified 14:20:10 CrowKilr: what he's saying is that others must be able to read his source and know, beyond a shadow of a doubt, that it is accurate and to spec 14:20:14 the other on a paragraph 14:20:30 Exactly. 14:20:51 I must be able to *print out*, on plain black-and-white printers, the source code, in its entirety, to the project being verified and peer reviewed. 14:20:57 that is difficult without printouts 14:21:09 its easy to rig the colorforth system and test the code for any out of spec values 14:21:12 These sources are then archived for posterity, in case something breaks in a later product release. 14:21:15 not to mention the signatures and initials needed 14:21:16 but you are right 14:21:23 i didnt get into any industry yet lol 14:21:41 CrowKilr: Easy in the same sense as defining a new set of colon definitions. But that's not the point. The point is communication with other humans, not with one and only one computer. 14:22:02 but i can understand colorforth, i cant read c, nor ANSI forth myself, and I start to know about x86 assembly 14:22:02 kc5tja: are you in aero-space or medical??? 14:22:12 What good is the best, most accurate program in the world, if I cannot prove to either my manager(s) or my customer(s) that my stuff works as they require? 14:22:17 I have no audit trail. 14:22:22 Hence, I have no job. 14:22:31 MrReach: Neither. Telecommunications. 14:22:51 just right the colorforth system, for a memeory usage just plot the memory usage in realtime by rigging the stack movements 14:22:52 really? I'm surprised that those type of controls would be used there 14:23:00 hmmm 14:23:09 i dont know at all but i know a lot is possible 14:23:29 with someone having total control over software 14:23:33 MrReach: We deal with government and financial industries, which require munitions-level encryption and authentication processes. 14:23:44 ah! ok 14:23:55 CrowKilr: Printing stack dumps is not providing proof of correctness! 14:24:03 not stack dumps!! 14:24:04 kc5tja: what does your program do? 14:24:05 It merely provides proof that, under the inputs given, the program worked. 14:24:08 i meant 14:24:13 Fare: Verifies correctness of our chips. 14:24:15 and what must you convince your boss that the program does? 14:24:24 like a 3 unit long red line emans you have a dictionary of 3*2*32bits large 14:24:29 to verify correctness 14:24:36 CrowKilr: No, I don't. 14:24:38 --- quit: Juu (Read error: 104 (Connection reset by peer)) 14:24:45 look at Jean-Louis Krivine work 14:24:52 CrowKilr: I have a dictionary of 24 bytes in size. Big deal. 14:25:00 I ***MUST*** be able to print out the source code. 14:25:01 --- join: Juu (ammu@baana-62-165-189-112.phnet.fi) joined #forth 14:25:03 he,s a french matematician that proved all thoughts where mechanisable 14:25:16 so are theorems 14:25:20 I MUST be able to hand in a sheet of paper containing the program code to my manager, and to be able to participate in code walk throughs. 14:25:21 and theorems are foolproof 14:25:28 hmmm 14:25:57 Theorems are created by people; people make mistakes; ergo, theorems are not foolproof. 14:25:58 i can do a course on colorforth and get my 14 years old brother coding in two hours 14:26:13 what about soundforth? 14:26:19 ha come on lol im really serious, the guy proved that you can make 100% antibug programs 14:26:22 * kc5tja sighs 14:26:24 Forget it. 14:26:26 You just don't understand. 14:26:31 the words are all black on black, but annotated with sound 14:26:46 HAHAHA! 14:26:50 CrowKilr: Yes, you can. But you make mistakes in the process. My point is proved. 14:27:02 Crow: yes, you can make bugproof programs, but you can't prove that they are 14:27:36 or rather, you can't prove that the specification that is verified without bug is indeed what you intend to do. 14:27:58 when lives are at stake, or large quantities of money, software becomes a liability 14:28:02 colorforth %100 bugproof? 14:28:03 yes because theyre based on proven theorems, the guys using lambda calculus to do his work, the basic of all languages and logical processes 14:28:07 what kind of bullshit is that? 14:28:13 CrowKilr: How are they proven? 14:28:15 im not saying thatat all 14:28:21 davidw lol 14:28:23 ok:-) 14:28:27 when the software can kill or destroy, the checks become quite rigorous 14:28:45 there are languages like ML which are supposedly provable 14:28:57 I think that that is kind of bullshit, too,but I don't know much about it 14:28:59 the point is not whether the theorems are correct ... they are proven so 14:29:12 MrReach: Or when the software can break such that millions of dollars are transferred from Gates' fund to the local Salvation Army's because of a single-bit error, checks become important. 14:29:17 tthese theorems are mechanisable, and thus usable into programs 14:29:23 but a typo can be caught ... or a misunderstanding of algorithym 14:29:38 davidw: And all such languages are not 100% provable, because they all must employ side-effects at *some* point in their operation. 14:29:51 CrowKilr: that is entirely correct 14:30:09 but tranlating into source-code is an error-prone process 14:30:11 CrowKilr: Just because something is Turing complete does *not* make it foolproof. PEOPLE make these things. PEOPLE make mistakes! Thus, theorems, algorithms, and implementations CAN FAIL. 14:30:17 voy a bailar la salsa 14:30:20 its sure hardware bugs like missing clocks cycles or temperature rise and fall etc are inevitable 14:30:22 bye! 14:30:31 take care, davidw 14:30:44 im just saying that in theory, a program can be proven 100% no bug 14:30:47 see ya 14:30:52 of course it can 14:30:57 CrowKilr: And that theory has yet to be proven. 14:31:15 but that is not the software we use today 14:31:22 yes, Krivine's working on that, with lambda code all the day poor him lol 14:31:49 Lambda calculus is another fruitless endeavor too -- something can only be proven bug free using *logic*. 14:31:58 what's more, it may prove to be unreasonable to use such software, for overhead reasons 14:32:23 I've been in Krivine's class, and I think you're misinterpreting what he says. 14:32:37 not just him 14:32:45 all the thing i say 14:32:51 about provability 14:32:55 comes from 14:33:28 for instance the completeness theorem that "everything that can be proved can be proved". 14:33:28 your original assertion was that colorforth was a appropriate platform for mission-critical software 14:33:29 an article in "Science&Vie" magazine, about consciousness and lambda calculus 14:33:38 my only 14:33:43 original assertion 14:33:53 is that colorforth can be printed and handled to others 14:33:56 tahts all lol 14:34:04 if you believe what you read in Science&Vie, you're not going very far 14:34:12 Science&Vie has lots of crap 14:34:23 oh, ok ... I won't argue with that ... especially with Moore hanging out in the background 14:34:23 the journalists who work there haven't a clue 14:34:24 Regardless, I need the ability to print out my source code, and to have said source code peer reviewed, by several parties, in order for my code to be certifyably correct. 14:34:43 ColorForth *cannot* be "just printed" because it is color. 14:34:49 if you want a serious scientific newspaper, get "Pour la Science" 14:34:50 kc5tja: what languages are you using now? 14:35:02 It relies on a medium which requires printers costing 5x the amount of a B&W printer. 14:35:08 (french edition of "Scientific American") 14:35:09 ColorForth *cannot* be "just printed" because it is color. 14:35:10 LOL 14:35:11 Business is not going to fund such a proposal. 14:35:17 Bold italic, margins 14:35:21 come on lol 14:35:28 its doable ;p 14:35:33 maybe not readable by you 14:35:37 Hmm...16 colors versus, bold, italic, underline...3. 16 markups versus 3...that's a deal. 14:35:40 but i think its doable 14:35:48 kc5tja: what languages are you using now? 14:35:51 C 14:36:01 ok 14:36:07 16 colors, theres not 16 colors at all 14:36:11 red: new word 14:36:16 green: call 14:36:25 yellow:immediate 14:36:26 16 is the theoretical boundry 14:36:41 In the ColorForth dictionary, he has up to 16 tag types -- up to 16 unique colors. 14:36:41 another colors: numbers, anyway 14:36:43 EGA video 14:36:52 but look, dont think, look 14:36:59 theres colors for 32 bits words 14:37:09 No, look AND think. 14:37:10 32 bits numbers i meant 14:37:12 That's what I'm gettin gat 14:37:18 hat dont fit in a single 27 bits slot 14:37:19 getting at even 14:37:35 You cannot prove code to work just by looking at it. 14:37:40 LOLOL 14:37:51 I WEAS SAYING LOOK' THERE NT 16 COLORS 14:37:58 TO BE PRINTED TO UNDERSTAND COLORFORTH 14:38:00 but you have to print it in order for others to "sign off" 14:38:12 Whatever. 14:38:16 It's hopeless. 14:38:35 i just capitalized because youre taking me o ground i dont want to go 14:38:46 yeah, sure 14:38:50 and we want to start talking bits? 14:39:00 every color is a different word 14:39:08 I don't know why, but I got perfect scores in English literature and composition in college, and did a repeat of that in my most recent entry exams, And yet, I can't seem to communicate something so simple in this, or any other, on-line forum. 14:39:22 one pixel per for word 14:39:26 yay 14:39:30 kc5tja: I seem to understand pretty well 14:39:32 now that's pixelforth 14:39:33 heh 14:39:33 CrowKilr: That's precisely the ground I'm working on!!! Why do you thik I'm posing the argument!? 14:39:48 kc5tja: he doesn't think 14:39:55 he reads "Science et Vie" 14:40:10 haaaaa 14:40:14 kc5tja: sometimes people can't understand each other on a given day ... doesn't mean you've failed 14:40:25 fare, come on 14:40:34 its just an article its not my religion 14:40:41 worse: he *believes* Science et Vie. 14:40:46 nah. 14:40:58 ok ill make myslef clear 14:41:05 i know my english is pretty bad 14:41:05 MrReach: But I've failed repeatedly in communicating with Futhin, repeated with Fare in the past, repeatedly with onetom, repeatedly with bwb, ... repeatedly with others on comp.lang.forth, repeatedly with people in a number of mailing lists, ... 14:41:07 but look at this 14:41:12 --- join: tcn (tcn@tc2-login22.megatrondata.com) joined #forth 14:41:13 --- mode: ChanServ set +o tcn 14:41:14 Clearly, something is wrong with my communication skills. 14:41:16 Logic dictates it. 14:41:23 <kc5tja> You cannot prove code to work just by looking at it. 14:41:23 * MrReach nods. 14:41:29 and he believes the gross misinterpretations of scientific statements by S&V's caricature of journalists. 14:41:32 i responded to that by that 14:41:41 [CrowKilr] LOLOL 14:41:41 [CrowKilr] I WEAS SAYING LOOK' THERE NT 16 COLORS 14:41:41 [CrowKilr] TO BE PRINTED TO UNDERSTAND COLORFORTH 14:41:43 What is the point in discussion??? 14:41:54 /ignore CrowKilr 14:42:09 No, I won't ignore him. No real need to. 14:42:15 I just will drop the discussion. 14:42:23 is it that colorforth can be used for mission-critical software? 14:42:28 oh, ok 14:42:35 MrReach: Of course it can. 14:42:41 fare come on, i got to krivine's site and i read his brouillon paper about lambda interpreter 14:43:01 i fdont know lambda and all but i saw something forth in there 14:43:04 But there needs to be a way by which you can attain peer review, and as you said, "Sign-off" on it, so as to have some authority in saying, "Yes, my code is clean. It works. It's provable." 14:43:12 well, I seem to have a problem understanding what has everyone riled up 14:43:27 im not just beliving everything i read 14:43:40 ok, is that the point? that this is _harder_ to do with colorforth? 14:43:41 i just thought this possibility might get interesting in the long run 14:43:45 and if you ignore me 14:44:15 maybe the extra difficulty overshadows the perceived benefits 14:44:23 then its not very gentle lol 14:44:55 not to mention having to retrain the whole staff to understand a rather odd language 14:45:23 kc5tja said colorforth is the worse printing problem possible, i just dont think that. 14:45:39 i have more difficulties understanding the SYNTAX of c, but code is code 14:45:40 MrReach: what is rather odd? 14:45:49 and why train the staff? 14:45:51 forth is 14:45:53 just fire them and hire me! 14:45:53 just have to undertsand the language and hop you can understand 14:45:59 and forth is really easy to undersatnd 14:46:11 do they can understand program flow and show correctness of code 14:46:25 a 2 hours course is all what is needed 14:46:32 oink? 14:46:33 onetom? 14:46:34 rob_ert? 14:46:35 hardly 14:46:44 Yes? 14:46:59 rob_ert you shoudl go sleep 14:47:02 Why don't they just fire 'em all and go back to the way they used to do things? 14:47:07 Juu: later. 14:47:08 :) 14:47:20 rob_ert but you cant' cache dream! :) 14:47:24 CrowKilr: are yoiu willing to trust the machine that measures out your painkiller in the hospital to people with only 2 hours training in forth? 14:47:34 dont you have school? :) 14:47:40 --- quit: Fare ("Connection reset by pear") 14:47:50 lol people already in the business 14:47:54 of verification 14:48:00 as kc5tja 14:48:12 can understand colorforth easly 14:48:21 i would trust those people 14:48:29 CrowKilr: You're changing the argument. I said that I needed the ability to print, in black and white, my source code. Bold, italics, and underlining will (not might, WILL) obfuscate the source code. 14:48:35 Especially if they're used in conjunction with each other. 14:48:39 right now, they use C ... there might be substantial benefits to using forth, but the entire staff would have to be reeducated 14:48:46 rob_ert of course i dont press ou, it's your decision, just notified you :) 14:49:00 kc5tja: margins, ponctuation maybe i dont care but its doable 14:49:09 so dont say it is not lol 14:49:15 kc5tja has my support regarding colorforth :) 14:49:17 CrowKilr: What's the purpose of printing the source if it's utterly undecipherable? 14:49:26 CrowKilr: ok, it's doable ... now ... what advantages does all the extra work provide??? 14:49:33 I'm not saying that ColorForth is not a viable technology for all things. 14:49:41 But for what *I* am doing, it's unusable. 14:49:55 If offers zero technological advantages, and a whole lot of communications-related problems. 14:50:02 What looks good on the CRT doesn't always look good on the printer. 14:50:34 extra work? undecipherable?, sorry but to me forth is easier to read, and extra work is only a matter of finding a readable format by everyone, the code sould be easy to do IMHO 14:50:51 CrowKilr: exactly 14:51:07 In contrast, with a punctuated Forth, I already have the source in a printer friendly version, in a text file. Or in blocks, doesn't matter. I can just do a straight dump from (whatever) to the printer, and have it look exactly, get this, exactly like what it appears in the Forth environment. 14:51:33 changing the policies of a medium-to-large programming team is hella hard ... i.e. expensive 14:51:52 hehe.. I can just see the book "Starting Colorforth" 14:52:06 tcn: Exactly. 14:52:06 only $256 14:52:19 managers will do this thing, *IF* it is show to have measurable advantages 14:52:19 I mean, what's red to CrowKilr might be BLUE to me. 14:52:26 Consider also that many people are color-blind. 14:52:30 dont need that book lol 14:53:21 ok, here's something that *MIGHT* cause managers to move to Forth (not neccessarily colorforth) 14:53:24 ok in your o so better , practical and all world, i cant argue you, your all right 14:53:36 but i know something can be done 14:53:44 forth encourages short definitions ... if they get longer, the coder loses track 14:53:44 to simplify all this 14:54:03 to make it happen it only take some people to believe and actually try things and thats what ill be doing 14:54:07 shorter procedures are vastly easier to debug and prove correct 14:54:27 MrReach: This is one of the reasons why I won managerial support to use Forth actually. I had someone keep a record of how long it took me to make a single-character, indiscriminant change in my C code, and to compile it, download it, and run it. Turns out to be 2.5 *minutes*. 14:54:34 THIS is an advantage to managers ... one they can easily see 14:54:44 Forth would allow me to change something so indiscriminantly and have it running in seconds. 14:54:53 When I posed my business case like this, the manager was all for it. 14:54:53 * MrReach nods. 14:55:11 But again, if I didn't have someone else to back my claim, ie., I didn't have peer review, it never would have gone through. 14:55:26 it's funny, but what I just pointed out is actually a limitation of forth 14:55:38 Something I learned from Steve Ciarcia(sp?), from BYTE Circuit Cellar: Theory and Reality are only Theoretically Related. 14:55:51 but because it's a limitation, it makes code much easier to understand 14:56:08 yes, true 14:56:23 I like Ciarcia ... he thinks about neat shit 14:56:37 never know what it's going to be next 14:56:37 let say i worked with you kc5tja and you handled me ansi forth, first I would have trouble to understand it, managers that are seeing things like me knows that ANSI-like forth is crap, in its actual state 14:56:56 CrowKilr: For you, ColorForth is ideal. This is true largely because you don't have people hanging over your head, dangling a paycheck in front of you, saying, "You won't get this unless you meet my exact and precise requirements." Shoot, feel happy that I even managed to convince them of Forth in the frst place! 14:56:56 im suscribed to circuit cellar btw 14:57:14 i know 14:57:16 I'm not, but that's not an issue 14:57:19 its a great accomplishment 14:57:26 i never refuted that 14:57:31 ooops, didn't mean the pun 14:58:02 if someone make me do things in asni forth he shall win a olympic medal 14:58:03 lol 14:58:10 The way I write code, you wouldn't have difficulty reading it, believe me. 14:58:30 CrowKilr: then I would not hire you for a team effort 14:58:40 All of my code is (necessarily) self-documenting. 14:58:44 or a multiplatform effort 14:58:53 words liek create does, postpone and all the other meta-forth constructs are truly ugly to me 14:59:10 Oh, that's the other thing. My code must also be cross-platform, across big and little endian architectures. >:/ 14:59:11 * MrReach chuckles. 14:59:25 me too, my ideal system must do that also 14:59:30 CrowKilr: If you don't know what CREATE does, or what DOES> does, then you don't know Forth. 14:59:31 ack! that's a *REAL* bitch 14:59:44 maybe 14:59:53 MrReach: I demonstrated how defining works like BIG@ and LITTLE! would alleviate code portability issues. :) 14:59:54 but i know 1 2 + leaves 3 on stack 15:00:12 and its forth so i know a big chunck of forth 15:00:24 the original forth (on PDP11 at Kitt Peak Observatory) had similar functionality, in the words BUILDS ... DOES 15:00:35 CrowKilr: Because last I checked, ColorForth has those too. Except they're called "Editor tags" -- in ColorForth, they're implemented as new colors, and not as typical compiler or interpretter words. 15:01:37 FigForth had CREATE ... DOES>, so did Forth79, Forth83, and ANSI Forth ('96) 15:01:59 i can understand these words, but i dotn see fit of making these mechanism words, i mean it could be made better, more clear 15:02:17 Besides, if you understand VARIABLE, you already understand CREATE -- they're almost identical. In fact: 15:02:19 the idea was (is) ... 15:02:22 : VARIABLE CREATE 0 , ; 15:02:31 and to me tokenized source is really simplifiyng things 15:02:51 that you have a dataspace ... with some type of opaque data in it ... and some code that manipulates that data 15:02:56 Tokenized source has its advantages. But I don't see it as alleviating the need for CREATE/DOES>. 15:03:15 it alleviate the need to use them explicitly 15:03:22 and to me its important 15:03:27 cause i have a small brain lol 15:03:28 herm??? 15:03:50 i don't see how the two are related 15:04:03 Neither do I, actually, but I'll let the issue stand. 15:04:40 well, I have to get dressed and head down to the shop 15:04:52 been an interesting conversation, fer sure 15:05:49 * CrowKilr agrees 15:06:29 --- nick: MrReach -> MrGone 15:09:55 Does anyone, anyone at all, know how to make Windows NT's taskbar *NOT* animate when set to auto-hide? Even if it's an obscure registry hack, I want to know about it. 15:09:58 It's very annoying. 15:10:40 I haven't used NT in a couple years 15:10:59 auto hide is when you put the cursor near the border and the bar "slides in"? 15:11:07 Well, it'll likely be the same hack for Windows 95/98 too. 15:11:11 Yes. 15:11:18 I still want it to auto-hide. 15:11:20 auto-hide is annyoing no matter what! 15:11:28 I just don't want to wait 1.5 seconds for it to slide out. 15:11:36 tcn: I need the screen space. 15:11:36 hehe 15:11:49 autohide is one of the coolest features i think, i got my auto-hide bar on the left on my screen 15:11:54 Windows gross misuse of screen real-estate necessitates it. :( 15:11:57 i'm on 98 right now and it's not that slow, just annoying 15:12:10 CrowKilr: That's where mine is. Best place for it. 15:12:26 tcn: I ahve a 1600x1200 truecolor display. On my box, it's slow. :) 15:12:43 but if its taking 1.5 seconds or more it might get annoying lol 15:12:45 buy ram 15:12:52 well good luck.. i'm going home :) see ya 15:12:53 CrowKilr: I have 2GB of RAM 15:12:53 thats the simple answer lol its illogical 15:12:57 lol 15:13:15 ok then the processor is the next step improving windows performance 15:13:17 or maybe 15:13:18 2GB? I only have a .5 GB linux partition 15:13:26 tcn: No, that's *RAM*. 15:13:30 I know! 15:13:43 just go into the graphical setup and disable optimisations 15:13:49 sometimes it speed things up 15:13:51 CrowKilr: Processor is already 1GHz in speed. That's not an issue. 15:13:55 And neither is the graphics card. 15:13:58 the problem is the OS. 15:14:08 --- quit: tcn ("Leaving") 15:14:24 CrowKilr: No effect for me. 15:14:37 get rif of it lol, or hack the code yourself, finc wich program and then wich part of code is controlling that and patch it ;p 15:14:49 The problem is Microsoft's over-exuberance towards being "User Friendly" (insert peace symbols and flower-power images here). 15:14:50 hardcore cracking session 15:14:51 lol 15:15:24 CrowKilr: I don't have the time for this. I barely have time for the Forth's I'm writing (I"m writing it to help me make time!). 15:15:42 i know it was a joke its tottaly impractial 15:16:11 hm maybe a windows "tweaking" program 15:16:15 might be able to do this 15:16:42 * kc5tja tried searching for it on the net, but nothing. 15:16:52 There are complete shell replacements, but nothing that just tweaks the task bar. :( 15:17:23 then you're enslaved, sorry ;p 15:17:54 --- nick: goshawk` -> Talia` 15:18:17 i dont have nt so i cant try to do it myself, event it could take a long time lol 15:18:33 even 15:18:40 i meant 15:20:36 but why are you in nt if youre coding in forth? is it a forth program for nt? 15:22:06 kc5tja: Bah... you have as much RAM as I have HD. 15:22:25 * rob_ert feels poor ;-) 15:23:08 rob_ert: This is a company computer. It's not mine. My box at home has 256MB of RAM and 20GB of harddrive space, and of course, Linux :). 15:23:21 Hehe 15:23:38 256MB is quite a lot. 15:23:41 I have 64 :) 15:30:13 Boy, the more I work on this Forth environment, the more and more words I need to implement. :) 15:30:35 :-) 15:39:03 It sort of makes initially testing them very, very difficult, especially since you need all of the words to boot the minimal environment, you know? 15:40:31 * kc5tja just wishes there was a could write "normal" code, without having to always prefix target-specific versions of words with "T". 15:41:11 hmmm 15:41:25 why are you prefixing it? 15:41:35 you need to get the two dictionaries in one? 15:42:05 are you cross forthing? 15:42:07 ;ppp 15:44:45 Yes 15:47:19 --- join: I440r (~mark4@1Cust214.tnt2.bloomington.in.da.uu.net) joined #forth 15:47:39 Hi :) 15:47:49 hi ppl 15:48:16 hi 15:48:46 i been procrastinating figuring out how to do signals etc but now i thihk i gotta do them before i can do dns stuff 15:48:49 for timeouts 15:48:51 doh :) 15:49:10 gotta google signals, dunno **$^&^$ about them :) 15:52:51 anyone seen tcn ? 15:53:17 Hm 15:53:25 I think he was here not so long ago 15:53:31 <-- tcn has quit ("Leaving 15:55:09 argh 15:55:10 lol 15:55:12 typical 16:02:22 hrm i wonder how bad it would be if i id a segv handler that just did abort" sig segv" 16:04:12 Hmm... when I do S" blah", where's the string stored? 16:05:03 ugh in the way 16:05:21 s" is like ." except that it does NOT use the string at run time 16:05:21 ? :) 16:05:27 its simply IN THE WAY. 16:05:38 dd (s") 16:05:46 db length,"the string" 16:05:53 OK, thanks :-) 16:05:55 dd execution continues here 16:06:07 i refuse to define it in isforth 16:06:10 create foo 16:06:14 ," do it this way" 16:06:15 ... 16:06:16 ... 16:06:19 foo count type 16:06:21 ... 16:06:22 ... 16:06:23 ... 16:06:36 :-) 16:06:46 That's how I did it too, btw. 16:06:51 :) 16:06:55 good :P 16:06:57 Or.. almost ;) 16:07:16 string foo s" blah" 16:07:20 Same principe 16:07:23 ." and abort" are ok. they compile the string IN THE WAY too but at execution time 16:07:28 THEY use the string 16:07:40 s" doesnt do anything with the string other than return address/count 16:20:27 heeeeeeeeeeeeeya I440r 16:20:49 joa1! 16:20:50 whussup 16:20:55 I440r: can you detail how one actually begins writing a forth implementation? 16:20:57 I440r: S" in compile-mode works fine. It's actions are ambiguous only in interpret mode. 16:21:06 on your average system using an assembler 16:22:01 Just start to code. 16:22:08 what I mean is... after you have your data space setup and the pointers to the stack setup, what primitives do you write first? 16:22:11 * joa bonks rob_ert 16:22:12 And take a look at isforth when you get stucl :D 16:22:16 stuck* 16:22:23 And of course, ask here in #forth :D 16:22:36 --- part: skipC left #forth 16:22:37 well, I'm not writing with the same threading method and on a different system heh 16:22:50 kc5 at run time the string is NOT used by (s") - THAT is my objection to it 16:22:56 dd blah 16:22:56 so it'd be more helpful to me to have an idea of where one starts rather than how one writes it 16:22:57 dd blah 16:23:08 AT-XY is the most important word, joa. Implement it first of all. 16:23:10 dd (s") \ doesnt do a fucking thing WITH the following string 16:23:18 db 3,"FOO" 16:23:22 dd blah blah blah 16:23:26 :) 16:23:30 its just in the way :P 16:23:32 heh rob_ert... *looks up what AT-XY is* 16:23:51 robert just call it at :) 16:23:58 it sets the cursor location in the terminal 16:24:05 oh 16:24:21 I find it hard to believe that that's the most important heh 16:24:21 isforth devines it via its terminfo name 16:24:25 and aliases it to at :) 16:24:44 see... I'm having a slight bit of trouble seeing where you start the coding. 16:24:53 it's pretty obvious to me that the compiler isn't where you start 16:24:56 joa start by putting a map of what you want 16:25:13 immediate words dictionary? or one single dictionary for all? 16:25:24 tokenized source or string parsing? 16:25:36 console support built in by starting with at command 16:25:37 What's the difference between those? 16:26:08 or starting doing real implementation of forth concepts, at least on paper 16:26:11 CrowKilr> tokenized source or string parsing? 16:26:12 joa start with the threading model 16:26:15 What's the difference? 16:26:19 robert: speed 16:26:23 i.e. how will your forth actually execute colon definitions etc 16:26:24 ... 16:26:26 I mwan 16:26:26 ease of coding the compiler 16:26:27 mean 16:26:30 What _are_ those? 16:26:44 colorforth use tokenized source 16:26:58 I440r: heh, I've made just about every decision I know how to make... the only thing left is to figure out where to write the first bit of code 16:27:05 each new word ia a "red" 32 bits token 16:27:24 write next, nest and unnest first 16:27:52 I440r: you've already seen the ones for my practice version 16:28:00 I440r: what do I write second? heh 16:28:05 well build on those :) 16:28:22 dovariable, doconstant, dodefered 16:28:24 etc etc etc 16:28:28 hm 16:28:51 look at www.colorforth.com/forthéhtml, those are the basic words of any forth to some extent it gives you a good start to say the least 16:28:56 is there any specific point where I should be able to write : so that I can use the compiler? 16:28:56 forth.html 16:29:28 well i would suggest writing the i/o after that :) 16:29:30 well, : and ] and... (;code) and ;code... 16:29:35 and only THEN writing the compiler itself 16:29:36 and , 16:29:41 * joa grumbles 16:30:05 nod, IO is a good thing to write when you want to use it 16:30:06 My compiler was like 10 lines and took 30 seconds to write ;) 16:30:24 But then again - my forth is a pain in the ass to use. 16:30:24 rob_ert: how long have you been doing forth, anyway? 16:30:27 Uhm 16:30:29 A few days 16:30:31 heh 16:30:35 okay... 16:30:48 well, you're an apt programmer then ;) 16:31:01 * Juu is ant programmer :) 16:31:04 or maybe I'm just not one... 16:31:11 argh i cant find a realy good tutorial on signals grr 16:31:12 * joa is having an awful time with this 16:31:19 linux signals??? 16:31:37 yes 16:32:04 I440r: are you trying to use the signal handler system from isforth or is it unrelated? 16:32:08 actual code or overview? 16:32:19 isforth doesnt HAVE a signal handler 16:32:25 i want to IMPLEMENT one 16:32:43 I440r: what I mean is, are you trying to add signal handler support through the signal handler system in isforth or is it unrelated? 16:32:45 but you just answered ;) 16:32:45 users are going to want to define how to handle signals 16:33:02 joa i want to add linux signals to isforth 16:33:10 nod, I got that by now heh 16:33:53 maybe you'd want to use a signal handler built into isforth that calls a high level word depending on the signal... 16:33:57 i got that page maybe it could help 16:33:58 http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hlprocess.html 16:35:08 I'm getting kinda sick of google's spell check and redirect system 16:35:32 * joa wonders if there's a way to turn that off... 16:37:00 the redirect on mispelling only do that if theres no result 16:37:07 its working great for me 16:37:40 nod but I have to uncorrect it to modify my search or hit back and cancel before it redirects it agai 16:38:30 I440r: Please don't start the whole semantics war over again. 16:38:42 I440r: S" is a *compiler word* -- it's purpose is to compile a string literal. 16:38:48 I440r: That is S"'s job. 16:39:04 I440r: S" is not supposed to do anything with the string, because the string is going to be used by something else. 16:39:20 kc5 its job is to compile a string right in the middle of the exectuon path. i.e. its bad - period 16:39:23 I am not going to use your Forth at all if I constantly have to do this: 16:39:30 CREATE FOO ," blah blah" IMMEDIATE 16:39:36 : UsesFoo FOO COUNT TYPE ; 16:39:40 Sorry, that just isn't going to happen. 16:39:52 I440r: Bullshit. 16:40:27 S" compiles code that takes the address of the embedded string, and its count, and places them onto the stack, and skips over the string. 16:40:41 Just like ." and ABORT", two words which you yourself acknowledge are "good words." 16:41:14 : ." POSTPONE S" POSTPONE TYPE ; IMMEDIATE 16:41:42 : ABORT" -1 POSTPONE LITERAL POSTPONE IF POSTPONE S" POSTPONE TYPE POSTPONE QUIT POSTPONE THEN ; IMMEDIATE 16:41:45 Big deal. 16:42:17 sounds nice :) 16:42:23 bt isn't it postbone? 16:43:09 Juu: ?? 16:43:19 * kc5tja is just giving examples of how one would use S". 16:43:28 I'm not saying it has to be done this way. 16:43:34 Nothing *HAS* to be done in any way. 16:43:45 isn't it written postBone ? 16:43:49 kc5tja: except talking in this channel... 16:43:53 or is itnow? 16:43:54 that has to be done carefully 16:43:54 But to leave it out, with *no* way to declare a string literal inside a colon-definition, ... that's brain dead. 16:43:55 not 16:44:05 no, duh, stupid me 16:44:05 :) 16:44:08 Juu: No. The word is postPone. 16:44:21 yea, i noticed 16:48:43 what is isForth's dictionary like? 16:49:01 i mean to the byte level? 16:49:33 (word, pointer to next word, cfa, code)? 16:50:35 well 16:51:05 each vocabulary word has 32 threads. right now only the first is used because im not doing hashing yet 16:51:25 then thers the context stack which lists each vocabulary to be searched 16:51:32 its realy quite simple 16:52:04 because I just thought that in fact, the (word, pointer to other word) 2 cell contruct can be simplified if theres an entirely other dataspace not interlaced with the main code dictionary that keep linearity 16:53:05 would not you think its a better model? to use (word, adress)(word,adress) construct in a separate dictionary? to me it speed the dictionary search 16:53:32 head space in isforth is seperate from list space 16:54:07 k great 16:54:41 but what exactly "32 threads by word" means? 16:55:14 * Juu NOW NIGHT 16:55:22 sleeeeeep 16:55:23 :) 16:55:33 NATTI! 16:56:46 32 threads per vocabulary 16:56:52 Hm 16:56:59 a vocabulary is where the different threads are kept 16:57:08 Why do you have more than one vocab.? 16:58:05 because thats how you sperate things out heh 16:58:13 you can put the assembler in its own vocabulary 16:58:28 hyvää yötä *! 16:58:28 so the assembler word AND does not conflict with the forth word AND 16:58:43 Oh 16:59:07 Are forth assemblers usually written in forth? 16:59:20 isforth will eventually put each vocabulary in its own space 16:59:38 how do you switch vocab? 16:59:45 with a asm word in example? 16:59:46 and on turnkey the user can decide which vocabularies are to be saved out 16:59:50 by naming it 17:00:00 like 1 1 + ASM 3 123456h mov 17:00:09 when you name a vocabulary it gets put in the context stack 17:00:28 * kc5tja cries!!! 17:00:40 WHY can't GForth get anything fucking right?!?! 17:00:41 I440r: Hmm... OK 17:00:46 to make a particular vocabulary the one that gets all new definitions you store the address of that vocabulary in the variable called 'current' 17:00:51 * Juu gives kc5tja banana and goes sleep 17:00:53 How the *HELL* can this code frigging fail?! 17:00:56 --- quit: Juu ("this quit message is VIRUS -- all your files will be deleted! thank you for using windows.") 17:01:15 code frigging often fails :-) 17:01:33 to switch vocab ill rather pack the whole dictionary, unpack another one and then switch back and forth 17:01:34 You wouldn't understand unless you were here. 17:01:43 ill try to implement something similar 17:01:46 The word runs completely to completion. 17:01:51 Then upon ';', it chokes. 17:01:55 I *JUST* don't understand it. 17:02:05 *NONE* of the stacks are bloody corrupted. 17:02:39 kc5 does ; reveal correctly ? 17:04:16 --- nick: CrowKilr -> CrowAway 17:04:55 Yes. 17:05:00 It chokes only when the word is executed. 17:05:26 aha 17:05:30 In particular, I'm running the following word: 17:05:32 how is ; defined 17:05:37 : GetName Name COUNT ; 17:05:54 Shit...that's not even the same error. 17:05:58 FUCK...the error is now intermittent. 17:06:08 How the fscking hell am I going to debug this? 17:06:09 --- join: XeF4 (~xef4@dsl-XIII-227.kotikaista.weppi.fi) joined #forth 17:07:31 OK, NAME already delivers caddr u on the stack. I'll admit that error. Next step: to figure out why my implementation of CODE is crashing GForth. 17:10:26 OK, the dictionary pointer of the target is pointing in the completely wrong spot. 17:10:38 It's pointing to itself, *DESPITE* code that explicitly sets it to something else. 17:12:19 u metacompiling this under gforth ? 17:14:59 --- quit: davidw (Remote closed the connection) 17:15:05 --- join: davidw (~davidw@adsl-ull-108-108.42-151.net24.it) joined #forth 17:40:16 OK, this is good. I actually have it creating words in a wordlist now. :) 17:40:29 No code just yet, but the word headers are definately there. 17:40:37 And revealing seems to work as expected. 17:42:20 ok then :) 17:42:26 gotta love it when shit works :) 17:44:58 --- join: Forth (~Forth@1Cust214.tnt2.bloomington.in.da.uu.net) joined #forth 17:46:44 Well, I still have no idea how I'm going to handle relocation inside the binary image yet. 17:47:16 relocation of what 17:47:19 code ? 17:47:19 Obviously, for PC-relative stuff like subroutine addresses and whatnot, it's a non-issue. But for everything else, it's still a rather large matter. 17:47:43 The Forth image can be loaded into anywhere in RAM. 17:47:49 its not just knowing HOW to relocate - its knnowing WHAT <--- thats the biggest problem 17:48:11 That necessarily is inclusive in the "how" part, I'd think. 17:49:05 not realy - you can know how to relocate something your pointing to but still not be pointing to something that needs relocating :) 17:49:25 isforth reloactes all headers on fsave and on reload 17:49:39 it got a little more complex when i introduced vocabulariews 17:50:00 You also need to relocate all the direct threaded addresses to. 17:50:01 but in the end i actually think the code was simpler lol 17:50:09 Well over 90% of the "code" in the image is going to be relocated. 17:50:22 well. i dont - but if i did i would use the headers to point to each word in turn 17:50:29 and decide if it needed relocating then 17:50:33 ?!?!?!?!?! 17:50:36 I440r : If isforth was REALLY l33t, it'd implement libvga, then people could write DOOM in forth. 17:50:38 Of course it'll need relocation. 17:50:39 BUT- how do you handle headerless words 17:50:47 That'd be sweet. 17:50:47 Forget headerless words. 17:50:55 I'm talking about *addresses*. 17:51:02 rite 17:51:02 You need to note absolute addresses in some kind of table. 17:51:12 targets for JMP or CALL etc 17:51:17 The overwhelming majority of DTC code is absolute addresses. 17:51:20 No. 17:51:25 Targets for JMP/CALL are PC-relative! 17:51:32 oh. 17:51:46 so its the colon definitions that need relocating ? 17:51:53 THOSE could be relative too 17:51:57 compile foo 17:52:10 compiles the offset from the start of forth to where FOO's xt is 17:52:22 erm execution vector even 17:52:31 So your NXT would be: 17:52:35 LODSD 17:52:52 MOV ECX,[EDX] 17:52:55 ADD EAX,ECX 17:52:57 JMP EAX 17:53:08 where EDX is configured to point to the location containing the load address for the image. 17:53:20 well i would keep the offset in a register maybe (cept x86 is reg starved ) heh 17:53:31 You can do it in x86 17:53:39 lodsd 17:53:47 In the startup code, I suppose, you could do this: 17:53:49 add eax,[base_pointer] 17:53:51 CALL $+5 17:53:51 jmp eax 17:53:54 POP EDX 17:54:08 But [base_pointer] is an absolute address -- it will need to be relocated too. 17:54:20 yes 17:54:22 libc does that ALOT 17:54:41 then just keep the base in a register. 17:54:54 not a pointer to a variable containing the offs4et 17:54:55 lodsd 17:55:03 jmp [eax+edx] 17:55:10 erm jmp eax+edx ??? 17:55:17 that wouldnt be legal wou dit heh 17:55:23 I think you need to add EAX before jmp'ing to it. 17:55:25 lea eax, [eax+edx] 17:55:27 jmp eax 17:55:36 ya 17:55:55 i can do call [eax+4*ebx] but thats an indirect jmp - look in my syscals include :) 17:56:12 Yeah, but that references memory, then jumps. 17:56:18 jmp eax+ebx would be much better. 17:56:28 Especially since you can already jmp eax. 17:56:33 rite 17:57:18 i had actually considered doing this in isforth but i scrapped it because that would have left me with insufficient scratch regs 17:57:36 * kc5tja doesn't appear to have any choice in the matter. 17:57:43 :) 17:57:48 Not unless I go with subroutine threading with inlined primitives. 17:58:01 are you cachint top of stack ? 17:58:05 isforth does. if it didnt i would have done this 17:58:08 Yeah. 17:58:25 caching even lol 17:58:32 mental note - must learn to type 17:58:42 W = EAX 17:58:47 I = ESI 17:58:52 S = ESP 17:58:56 R = EBP 17:59:13 and now, base address in EDI quite likely. 17:59:37 ugh i HATE using the term "working register" its obfuscating :) 17:59:48 why not ebx 17:59:54 ebx is THE base register after all :) 18:00:00 or is that top of stack 18:00:03 like in isforth 18:00:25 --- quit: davidw (Read error: 113 (No route to host)) 18:00:29 Because (1) I'm not in IA16 mode, and therefore, am not limited to its fundamental flaws, and (2) because EBX is the top of data stack cache 18:00:55 :) 18:01:42 So, EAX, EBX, ESI, EBP, and ESP are used, so that leaves ECX and EDX open for other purposes. 18:01:51 Oops, forgot: EDI is dictionary base pointer. 18:02:18 well you can still use it maybe 18:02:31 what are your memory constraints on : space and head space 18:02:39 unlimited or limited 18:03:02 erm nevermind 18:03:08 scratch that thought :) 18:03:12 The target compiler will produce an image no bigger than 64K. In actual use, however, the dictionary will be preallocated to a size of 256KB. 18:11:50 Hmmm.... Actually, this may turn out to be quite the advantage... 18:12:17 If EDI always contains a pointer to the dictionary, then I can use the binary header itself as a mechanism for calling system functions... 18:12:29 Hhmm... IIRC this is how Win32Forth does it. 18:12:47 * kc5tja may be wrong on Win32Forth, but I definately can use the dictionary header for this purpose... 18:16:13 rite 18:16:25 i believe tz uses edi for that 18:18:24 tz? 18:19:19 tom zimmer 18:20:21 Ooh. 18:20:35 Some registers just lend themselves to natural uses, I guess. :) 18:20:48 It's just that I want to leave ECX open, especially for IMUL and IDIV instructions. 18:21:17 EDX too, though it's not a *strict* necessity. It just slows the system down a few clocks per multiply/divide if it's overloaded. 18:22:57 One thing is for sure, though...my native code FS/Forth environment will definately be fixed-address.. ;D 18:23:08 It'll load at 64K, and that's that. 18:24:02 :) 18:26:19 Note that I'm also writing the assembler functionality as I need it too, so it won't be a complete x86 assembler. 18:26:33 In fact, it doesn't even know what EAX is. But it will know what W, I, S, R, and T are. ;) 18:26:46 This should make it easier for me to port it over to the MIPS processor too. 18:27:00 Oh, and B -- base pointer. Doggone it, I keep forgetting about that. 18:27:01 :) 18:29:00 heh 18:29:24 in isforth any register that doesnt have a predefined use is a W 18:29:34 if they arent used. they are working registers 18:31:15 My assembler doesn't even know it's an x86 assembler. 18:31:34 CODE @ W POPS, W STO, T POPS, NXT, END-CODE 18:31:46 That will likely expand to the following: 18:32:15 POP EAX; MOV [EBX],EAX; POP EBX; LODSD; ADD EAX,EDI, JMP EAX 18:32:40 in MIPS, it'll probably be like this (been awhile since I did MIPS, bear with me): 18:33:03 ld r1,0(r2) 18:33:11 bahh 18:33:14 screwed up already. 18:33:22 sub RSP,4,RSP 18:33:29 ld T,0(DSP) 18:33:32 s/RSP/DSP/ sorry 18:33:35 * kc5tja is tired 18:34:52 ld W,0(DSP); add DSP,4,DSP; st W,0(T); ld T,0(DSP); add DSP,4,DSP; (whatever NXT is for MIPS) 18:35:12 Of course, delay slots will be there as well, but I'm leaving them out. It's been a few months since I did any serious MIPS coding. 18:35:38 Actually, MIPS, I think, will benefit from subroutine threading with inlined primitives. 18:35:52 I don't know yet; I'll have to check up on that. 18:36:01 :) 18:36:13 At any rate, the same "assembly language" maps to two different processors quite nicely. 18:36:55 (BTW: POPS == POP from data stack; POPR == pop from return stack, just in case you were wondering) 18:37:12 :) 18:37:29 pop TO where ? 18:37:46 W POPS will pop into W 18:38:06 oh rite 18:38:09 of corse ;0 18:38:12 :) even 18:38:23 hey, an RPN assembler is a piece of cake to write. :) 18:38:33 That's why I'm doing it that way. :) 18:38:40 It saves me a bundle of time. 18:39:08 Come to think of it, it's almost Machine Forthish. 18:39:18 yea i was thinking that heh 18:39:26 (well, it actually *IS* Machine Forth, but for an antiquated Forth virtual hardware) 18:40:21 hmm... 18:42:00 * kc5tja thinks about MIPS NXT... ld W,(B+I); add temp,W,B; jmp temp; nop <-- I think that's it. 18:44:31 i dont know mips asm 18:49:29 I440r: what licence did you get permission to use assem486 under? 18:50:16 i didnt get permission to use it 18:50:27 i got permission to use the assembler in bigforth tho 18:50:33 HIS lisence 18:50:36 i think 18:50:38 or mine 18:50:49 i think he said i could use it with my lisence 18:51:48 yes, the assembler in bigforth. 18:52:18 with MY lisence i believe 18:52:43 my lisence wouldnt take away from his he said 18:52:48 I was just wondering if it was LGPLed or somesuch so I could use the LGPL "version" instead of the GPL "version" 18:53:36 --- quit: geakazoid ("Leaving... ") 18:53:54 dunno. heh 18:54:09 im sorta avoiding assembler extension issues atm 18:54:13 they were depressing me 18:54:21 5 # ax mov is an abomination 18:54:27 specially when ax can mean ax OR eax 18:54:37 which is how it is in the bigforth assembler 18:54:56 i would have to modify that assembler very heavilly in order to use it 18:55:18 it's no abomination, it corresponds better to the underlying instruction set 18:55:44 since the same opcode means ax OR eax, depending upon processor mode 18:56:27 yes 18:56:37 but when you mean a 32 bit register it should use the 32 bit name 18:56:51 just rename ax to (ax) in the assembler 18:57:02 and define ax as 16 bit register 18:57:09 and eax as 32 bit register 18:57:17 Wait until x86-64 really hits the market... 18:57:17 they both just set the size and call (ax) 18:57:23 thats how i would have done it 18:57:29 Then you'll be using qax, qbx, qcx, ...etc... 18:57:32 is ia64 ia32 compat ? 18:57:41 that's also how I would have done it, but I don't see the loss of clarity with how Paysn did it 18:57:43 ia32 backwards compatible. 18:57:54 As its name implies, it's x86, 64-bits wide. 18:57:55 xef4 im not flaming his assembler 18:58:01 And it has 16 usable registers, instead of 8. 18:58:08 its VERY good. and he was very very nice to offer to let me use it :) 18:58:42 i just have issues with backwards assembly 18:58:46 except for lacking immediate->memory addressing 18:58:50 5 # ax mov is HORRIBLE 18:58:54 i cannot think in it 18:59:01 i always get the order fucked up 18:59:05 every time. 18:59:13 See, I grew up with RPN assemblers in the Forth environment. :) 18:59:17 It's completely natural to me. 18:59:27 so i refuse to have to deal with it. the assembler in isforth will eithe rbe mov ax, # 5 ONLY or both 18:59:46 first and foremost im an assembler coder 18:59:55 on ANY microprocessor, any microcontroller 19:00:04 if i doint knnow the chip gimme the book 19:00:06 and an hour 19:00:18 good lord, that is an abomination 19:00:19 assembler should LOOK like assembler 19:00:24 forth should look like forth 19:00:36 how does mov know how much to parse? 19:00:50 it doesnt 19:00:56 its not writtne yet 19:01:01 thus far its just a pipe dream 19:01:14 # 5 ? you have a smart #, or ? 19:01:17 but if it never happens isforth will never have an assembler extension 19:01:32 xef4 look at how fpc did it 19:01:56 free pascal compiler? 19:02:23 no 19:02:30 dos based forth 19:02:36 based on f83 19:02:42 ah. haven't used it 19:05:25 does it approach the simplicity of an RPN assembler? 19:06:14 its both 19:06:24 it was rpn only and they made it do both 19:06:27 XeF4: Typically, it just sets a flag for later use when the instruction is 'complete.' 19:06:28 XeF4: An instruction is emitted only when all of the arguments have been collected. It knows ahead of time how many arguments are needed because the assembler keeps this information in a table, referenced by opcode number. 19:06:29 But the assembler is never actually "parsed" by anything except Forth itself. Thus, if I were to write, "MOV AX, 5 #", that's al the information the assembler needs to emit an instruction. 19:06:30 MOV is a word, AX, is a word, and # is a word. 19:06:49 the instructions complete assembly of the previous instructin then set up assembly of the next one 19:06:54 yes 19:07:24 kc5: even that is a lot simpler than mov ax, # 5 19:07:49 but it started out as a 16 bit assembler and they made it very very buggy when they tried to make it 32 bit 19:07:50 Yes; there are still RPN elements to it. However, processing of the instruction is deferred to the operands and not to the opcode itself. 19:08:38 kc5: which is tricky because of insane i386 instruction encoding. 19:08:38 --- join: pyromania (~pyromania@dialup-129.159.220.203.acc01-high-pen.comindico.com.au) joined #forth 19:08:41 no. they are defered till the NEXT opcode 19:08:45 pyro hi 19:08:47 youa forth coder ? 19:08:50 lol 19:08:56 Mark its ME 19:08:56 :P 19:09:01 oh heh 19:09:06 pyromaniac ???? :) 19:09:06 --- nick: pyromania -> pyromaniac 19:09:07 lol 19:09:08 :) 19:09:09 yep 19:09:09 ltns :) 19:09:13 huh 19:09:17 then your not a forth coder? 19:09:18 XeF4: This is why I prefer postfix assembly syntax, instead of prefix. 19:09:18 lol 19:09:23 heh 19:09:25 Wish i was 19:09:26 ;) 19:09:31 well go learn :) 19:09:33 its easy 19:09:35 lol 19:09:37 I440r: Hmmm, yeah, I suppose that's also a valid way of doing things. :) 19:09:40 That makes sense, actually. 19:09:46 heh 19:09:49 I440r to hard for me. 19:09:52 * kc5tja considers that for his 1-operand machine forth-ish assembly... 19:10:09 Im not a "Coder" type person. 19:10:14 1 operand?, why not zero? 19:10:15 If you know what i mean. 19:10:19 --- nick: CrowAway -> Crowkilr 19:10:29 :) 19:10:38 some say neither am i - lol 19:10:44 hehe 19:10:44 Crowkilr: It just maps better to x86 and MIPS architectures. 19:10:47 if they are talking about C they are half right 19:10:53 lol 19:10:58 so what brings youto #forth dood ? 19:10:58 Crowkilr: I could go zero operand, but that would limit me too much. 19:11:01 I've only just started learning VB6 at school. 19:11:04 sorry my ignorance comes into play again I dont know about MIPS at all 19:11:08 Thats how gay australia is. 19:11:13 ugh rm -rf bv6 :) 19:11:17 And it's 'it" education. 19:11:32 kc5tja: could you please look at www.colorforth.com/forth.html? 19:11:37 is the call/ret on mips fast? 19:11:46 if it is this primitive subset is perfect 19:11:47 Crowkilr: MIPS is a RISC processor; it's used in SGI workstations, in our own chip development boards (hence why I'm targetting it later on), and in a number of other applications, including PDAs. 19:12:02 i know mips are used on playstations and n64 too 19:12:25 if its risc its perfect for x18, at least I think 19:12:57 Crowkilr: It's somewhat faster because the MIPS doesn't have a hardware stack; thus return address for a subroutine is stored in a CPU register. This makes calling primitives essentially zero cost. 19:13:46 However, MIPS is about as fast as x86 in calling subroutines typically, because the software must save and restore the CPU's program counter manually. 19:14:14 but fo you think the x18 instruction set would "port" easly ti mips? 19:14:19 do 19:14:44 they,re the essential forth primitive 19:15:01 Crowkilr: Maybe; each x18 instruction will map to more than one MIPS instruction, but OTOH, it won't (shouldn't, at least) be any slower. 19:15:36 on a x86 the almost complete set of commands is in the 170 bytes range 19:15:53 Expect ti to be around 350 to 450 bytes on MIPS. 19:15:57 s/ti/it/ 19:23:18 --- quit: Forth (Remote closed the connection) 19:23:55 --- quit: I440r (": sleep bed go tuck light off ; immediate") 19:24:14 hehe 19:27:13 Hmm... 19:30:02 --- join: futhin (~futhin@h24-64-174-2.cg.shawcable.net) joined #forth 19:32:32 re futhin 19:32:43 hello 19:32:51 i've been looking at lojban lately 19:33:22 and cleaning up the house, trying to find ppl to rent out rooms, etc 19:38:08 Hehe :) 19:51:15 --- quit: pyromaniac () 19:51:23 --- join: pyromaniac (~pyromania@dialup-129.159.220.203.acc01-high-pen.comindico.com.au) joined #forth 20:02:16 Hehe cool. :) 20:02:34 What's interesting is that my "generic" Forth assembler is incredibly RISCy. 20:02:43 And in some respects, even Machine Forth-ish. 20:04:00 thats great 20:04:24 that prove to me that my views arent wrong lol 20:08:02 * kc5tja never said they were. 20:08:12 But my assembler doesn't look like MachineForth at all. 20:08:26 like, $W $R PUSH, will push the W "register" onto the R-stack. 20:08:35 im sure of that but at least its kind of pointing toowards the good direction ;p 20:08:39 * kc5tja nods 20:10:56 nowadays, the traditional opcode contruction scheme in chonogical order is opcodes then after operands, so to me its logicl if i use let say a !+ to store my .compiled" bytes, a mov 4 12345678h construct is better, maybe not fortish but its way simpler in implementation IMHO 20:11:35 im so dumb lol i said nothing hahaha 20:11:37 im too tired 20:11:38 lol 20:12:11 of course if using a stack the mov will get in the assembelr word first 20:12:19 * Crowkilr knocks is head on the wall 20:16:16 does some of you already coded on an ARM7? in thumb mode? 20:19:02 * kc5tja finds using a postfix assembler easier to implement than a prefix assembler. 20:19:09 * kc5tja isn't familiar with ARM at all. 20:19:50 easier to implement, but easier to use? :P 20:19:59 me too a lot more easier, i wa sjust reading in the reverse lol 20:20:22 i think forth perhaps should have more support for prefix stuff.. perhaps a very carefully designed standard or something.. 20:21:29 futhin: Equally as easy to use once you get used to it. 20:22:02 its just like algebra and rpn notation once youre used to you dont make mistakes like i just did ;p 20:22:50 That's basically it. It's a matter of familiarity. 20:23:04 I prefer an 8K assembler that is postfix over an 80K assembler that's prefix. 20:23:39 i think we should rename all the instructions with the assembly language, we can have longer mnemonics now.. we are no longer constrained by memory needs 20:23:40 Simplicity is always the key. Plus, with a postfix assembler format, it integrates more easily with the surrounding Forth environment, so that "macros" are nothing more than colon-definitions. 20:23:54 lets rename MOV to MOVE JMP to JUMP and so on.. 20:23:56 :P 20:24:27 futhin: Personally I couldn't care less. My assembler's instructions don't correspond to any one x86 (or MIPS for that matter) instruction. 20:25:00 what are they? virtual one much like machine forth or x18 or completely different? 20:26:33 It's a hybrid between a 3-operand RISC architecture and Machine Forth. 20:26:51 I am interested in arm code because I bought a GBA and this thing got a color screen, a ARM7DTMI and dont eat too much batteries 20:26:56 like a 100$ pda 20:27:12 Crowkilr: Is developer information available for it at all? 20:27:22 im on the GBA developepr mailing list 20:27:24 www.devrs.com 20:27:38 they have a good section on bg, bga, SXx 20:27:44 Interesting. Going to make a Forth cartridge? :D That'd be sweet. 20:27:45 pretty good news site 20:27:58 it can boot right off the serial port 20:28:08 theres a bootloader when power is applied 20:28:16 Hmm...no need for a cartidge then. 20:28:21 i even modified my gba by putting a reste switch inside 20:28:27 It goes to cartridge only after it detects nothing on the serial port then? 20:28:40 just some kind of DataFlash memory and a little AVR from atmel 20:28:50 yes 20:28:59 bedtime 20:29:05 'night futhin 20:29:06 g'night 20:29:13 co'o 20:29:23 --- quit: futhin ("bye") 20:29:30 Crowkilr: What will you be using for a "keyboard" for this, or are you intending on developing turnkey applications for it on the desktop, and downloading the images to the GBA? 20:29:52 Or, using the serial port in a "dumb terminal" fashion? 20:29:55 its one of my electronic side projects 20:29:58 put a avr 20:30:06 a dataflash and a keyboard connector 20:30:07 AVR is...? 20:30:11 on the same pcb 20:30:14 Ahh 20:30:18 www.atmel.com 20:30:21 a ucontroller 20:30:25 I see. 20:30:38 cost a lot less than a flash cart lol 20:31:42 the serial por speed is wuaite fast though, 115200 bauds 20:31:50 32 bits words one stop bit i think 20:32:02 nevertheless its encrypted 20:32:04 Not if it's RS-232... 20:32:47 But then, it could be a completely custom serial port, knowing Nintendo. 20:32:48 its not rs-232 level 20:33:03 just 5 volts i think, the inenr working of the gba is 3 volt 20:33:18 they get 5 volt for the link port and old gb carts 20:34:15 * kc5tja nods 20:34:26 How much RAM does the GBA have? 20:35:14 hmmm theres fast wram where the bootstrapper get data on boot, and other ram 20:35:22 hm ill check i dont remember 20:35:34 forth is taking a lot of mental enegry these days lol 20:37:10 I was just curious. It's not terribly important. 20:38:59 its puzzling me not knowing such basic facts lol 20:41:02 the specs are there 20:41:04 http://www.bottledlight.com/docs/sdk.html 20:44:06 i also intent on programming on the consoles like the gamecube, xbox and ps2 one day, all in the same forth! 20:44:17 it would be great 20:44:31 finfing a system that can work great on any of those platforms 20:45:22 * kc5tja nods 20:46:06 Well, when you finish such a system, I'd be interested in seeing it. I think it'd be cool to use a GBA as a really cheap color PDA. :) 20:46:19 Even if it does have lower resolution than a Palm IIIc or Zaurus. 20:49:04 forth is my top priority, and once i gained good knowledge of that I will surely look at the multiboot capability of the GBA, I think theres a c file some where detailing it 20:51:56 Cool. 20:58:37 --- quit: pyromaniac (Read error: 104 (Connection reset by peer)) 20:58:53 --- join: pyromaniac (~pyromania@dialup-129.159.220.203.acc01-high-pen.comindico.com.au) joined #forth 21:07:37 yahoo, PIC .asm source code for a smart multiboot cable http://www.godsmaze.org/gba/imb.asm 21:07:47 could not ask for something better lol 21:08:51 Heh 21:09:00 * kc5tja is refining his MachineForth dialect. 21:09:08 This is going to be one weird looking MachineForth. :) 21:09:17 Here's my current incarnation of (docolon): 21:09:36 $I $R PUSH, $W@, 5 #+, $I!, NXT, 21:09:48 That literally expands to the following instructions: 21:09:54 XCHG ESP,EBP 21:09:55 PUSH ESI 21:09:58 XCHG ESP,EBP 21:10:01 PUSH EBX 21:10:05 MOV EBX,EAX 21:10:08 ADD EBX,5 21:10:12 MOV ESI,EBX 21:10:14 POP EBX 21:10:15 LODSD 21:10:21 LEA ECX,[EAX+EDI] 21:10:22 JMP ECX 21:11:20 eax =? the word your at previously? 21:12:01 EAX = Current Word pointer, EBX = top of stack cache, ECX = scratch, ESI = Virtual instruction pointer, EDI = Dictionary base pointer, ESP = Data stack pointer, EBP = return stack pointer. 21:12:21 more clear now thanks! 21:13:06 What's neat is that also expands quite nicely to MIPS assembly language as well. 21:13:20 SUB $RSP,4,$RSP 21:13:38 ST $VIP,0($RSP) 21:13:51 SUB $DSP,4,$DSP 21:13:58 ST $T,0($DSP) 21:14:13 LD $T,$W 21:14:19 ADD $T,5,$T 21:14:27 ST $T,$VIP 21:14:35 LD $T,0($DSP) 21:14:39 ADD $DSP,4,$DSP 21:14:55 LD $W,0($VIP) 21:14:59 ADD $VIP,4,$VIP 21:15:16 ADD $tmp,4,$W 21:15:20 JMP $tmp 21:15:21 NOP 21:16:13 those fit in the 20 or so essential x86 instruction needed to implement forth on a x86, for mips I dont know, maybe theres even less instrcution needed to be assembled 21:16:17 It's somewhat wasteful on the MIPS, because the MIPS instructions are so much more powerful (despite being simpler), because they're orthogonal. But, oh well -- if I need higher performance, I can write a native MIPS assembler, and re-code certain primitives using that. 21:16:45 The ideal MIPS assembly would look like this: 21:17:07 ST $VIP,-4($RSP) 21:17:14 SUB $RSP,4,$RSP 21:17:27 ADD $VIP,4,$W 21:17:40 NOP 21:18:05 LD $W,0($VIP) 21:18:28 ADD $tmp,$BP,$W 21:18:31 JMP $tmp 21:18:35 Substantially shorter. 21:19:10 Whoops -- I wrote "ADD $tmp,4,$W" above -- that should read ADD $tmp,$BP,$W 21:19:41 a do colon is in fact the word going into the next one? 21:19:48 Wait a minute...that still doesn't look right. 21:20:42 im not the one that will complain about mips code, at leats not tonight lol 21:21:49 docolon is what simulates the "subroutine" call -- it places the return address onto the return stack, and re-starts the threaded interpretter with the current word's instructions. 21:22:51 but why not a call/ret on the x86? 21:22:59 ha youre using esp for the datastack 21:23:10 Because it's actually slower 21:23:32 you're sure? 21:23:38 It's been measured. 21:24:03 This doesn't mean that there aren't other advantages to using subroutine threaded code. 21:24:07 www.quantasm.com on a page somewhere tells that call/ret takes only one cycle on pentium class machines 21:24:11 But those advantages don't interest me for my Forth. 21:24:18 i thought it was true lo 21:24:26 One cycle *IF* the branch is properly predicted. 21:24:40 The problem is, the branch is relatively rarely predicted in actual practice. 21:24:46 predicted in the pipeline you mean 21:25:01 on amds ive read about a 96% or so brach prediction success rate 21:25:08 For C code, yes. 21:25:11 Not for Forth. 21:25:18 why? 21:25:27 it isnt the same thing? 21:25:39 Because C code uses long functions with tightly coupled loops -- that is, while/for/other loop structures are very tight. 21:25:48 Forth, however, calls all over the place. 21:25:56 Also, branch instructions do not use the stack; CALL and RET do. 21:26:09 Thus, CALL and RET always incurs a memory use overhead. That takes up cycles. 21:26:37 hmmm, so i should make two implementations and test which one is faster 21:26:44 I know it's totally counter-intuitive, and if I hadn't seen the numbers or the explanations why, I wouldn't have believed it myself. 21:26:48 one with call ret and one with simulated call/rets 21:27:42 look at that! 21:27:44 Can I hack the GameShark GBA (Action Replay GBX) to use the USB hardware for other stuff? 21:27:44 Probably, but realize that it uses the following chips: Cypress CY7C63743-SC Low-Speed USB chip, SST 21:27:44 39VF200A-90 2mbit flash, & Actel A54SX08A-FTQ100 FPGA. Since it contains a low-speed, rather than 21:27:44 full-speed, or high speed chip, it will not be able to transfer data very quickly over USB. Low-speed chips are 21:27:44 designed mainly for low-speed mice, keyboards, etc. Here is an excerpt from page 31 of USB Complete: 21:27:46 "Although the low-speed bus is 1.5 Megabits per second, the fastest guaranteed delivery for a single transfer is 8 21:27:49 bytes in 10 milliseconds, or 800 bytes per second." This particular USB chip has an embedded burned EPROM 21:27:51 (that can't be erased) so you can't just upgrade it with a faster chip. 21:28:04 Crowkilr: That's actually the best way to do things, no matter what. :) As Richard Feynman said, "The burden of proof lies in experiment." What he was referring to there was, "You can theorarize all day if you wanted, but only experiment will yield the truth." 21:28:12 hahaha ill bought myself a gameshark instead and build my own forth processor in the fpga lol 21:29:13 but i only need to understand that damn colorforth once and for all and nobody explains me, ive posted to the colorforth mailing list and if I dont get answers, chuck more will be here on the 18th 21:29:44 Right now, to be honest, I wouldn't be surprised if you're teh second most knowledgable person on ColorForth there is. 21:29:53 this will be my last chance after that ill give up and go on the GBA hardware project lol 21:29:55 LOLOLOL 21:29:55 Not many people on the c.l.f mailing list take an active interest in it. 21:31:36 to me colorforth should be the thightest and cleanest interpreter taht is, with a HTML to colorforth source converter, for the sake of SANE editing 21:32:13 because the editor provided is really a unusuable mess to me, and to anyone 21:33:42 Well, I don't see why it has to be. A standard QWERTY system can be used, with function keys being used to change colors, I'd think. 21:34:22 would be more mainstream to say the least 21:34:37 it could actually make it popular lol 21:42:09 http://nes.pocketheaven.com/ a nes emulator for GBA, wich is running nes carts from multiboot, im drooling ;p 21:42:59 Running a NES emulator on GBA -- that's just wrong... :) 21:44:48 --- join: Soap` (flop@210-54-91-131.dialup.xtra.co.nz) joined #forth 21:45:12 anyway, got to get some sleep, good night all 21:45:58 kc5tja i hope to get news from your macjine forth like implementation of forth! 21:46:40 --- quit: Crowkilr ("whoaaa coloring outside the lines, fantastic isnt? ;p") 22:08:42 --- join: pyro_ (~pyromania@dialup-129.159.220.203.acc01-high-pen.comindico.com.au) joined #forth 22:10:11 --- quit: pyromaniac (Success) 22:17:32 Well, it looks like my custom MachineForth is working astonishingly well. The code it produces is far from optimal, but it *should* run... 22:17:43 Now, if only I had some way of testing it. That'll come tomorrow.... 22:35:16 --- quit: pyro_ (Connection timed out) 22:42:39 --- quit: kc5tja ("[BX] Hey, where's the cream filling?!") 23:42:11 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 23:59:20 --- join: davidw (~davidw@adsl-ull-108-108.42-151.net24.it) joined #forth 23:59:59 --- log: ended forth/02.05.09