00:00:00 --- log: started forth/02.05.08 00:00:06 SELF comes to mind, and also Smalltalk (to a lesser extent since it is a class based system). 00:00:43 Mach is a very bad example of a microkernel though. 00:00:47 But I tangential again, sorry. Back to FORTH, I will put up the page as soon as I have the host. Does anyone here have a host they can put a 15-20 meg website, my ISP blocks http now, bastards! 00:00:50 It's slow, and tries to be all things to all people. 00:01:17 BigBoyToddy: what will your page be about? 00:01:23 Dolphin doesn't do this. Compiled with GCC, the last build of 0.4 came to around 16KB, including limited MMU facilities, dynamic memory management for processes, message passing, and interrupt handling. 00:01:37 kc5tja: well, to some extent Mach as it is today is a 'bad' example of an extreme microkernel concept. Yet it does and did take the dynamic nature of loadable modules to a new level, 13/14 years ago. Today, the extreme micro design is way off the lower end fo the scale, so I agree. 00:01:54 I expected the C-based 0.5 kernel to be around 24K when I was done, but considering the use of Forth, I predict around 8 to 10K 00:02:19 BigBoyToddy: AmigaOS did it before Mach, and it still outperforms it. :D 00:02:27 GilbertBSD: it will be about FORTH books. I have started a library of RARE and hard to find FORTH things, with the help of some great personalities (and some not so great) in the community. It will be PDF'ed documents that are copy-released, and also reviews of the books in the library. 00:02:53 BigBoyToddy: OOh...so you're going to put the PDFs on a website? 00:02:56 kc5tja: I'm not an AmigaOS knowledgable guy, so I will have to take your word for it, but before 1986'ish? 00:02:56 so all the books will be online is that what you are saying? 00:03:14 when Mach was first conceived as a Fed funded gov project at CMU and other universities? 00:03:17 BigBoyToddy: AmigaOS was released to the public in 1985, and was released to developers in 1984. 00:03:42 GilbertBSD: no, just a few that are copy-released, and reviews written by me and those that also have read them. 00:03:44 BigBoyToddy: Mach is not the first microkernel, contrary to popular belief. 00:04:01 For that matter, neither is AmigaOS. 00:04:06 kc5tja: well, then you may be right, I know NOTHING about AmigaOS other than a spinning red bouncing checkered white ball :o) 00:04:38 The first "true" microkernel, that was actually called a microkernel, would have to go to QNX 2.0, IIRC. 00:04:39 BigBoyToddy: are Brodie's books among them? 00:05:10 * kc5tja would like to read Forth for Professionals, actually. That sounds like an interesting read. Will that be available online? 00:05:11 kc5tja: I know a little about them, I booted off floppy and was impressed as heck about 5 years ago, actually blown away by the micro-ness of it, and also the lack of apps. 00:06:02 kc5tja: it is actually an amazing book, has GREAT comparisons and LOW level information about different processors, like the 6502, 6800, 6809, z80 and so forth, shows code generated and more! Really cool, well written, some typos, and some errors in accuracy, but most part it is good. 00:06:03 BigBoyToddy: Well, except for the lack of apps, that's exactly what AmigaOS is like. :D 00:06:45 GilbertBSD: yes 00:06:49 And that's exactly what Dolphin will be like. 00:07:12 Dolphin 0.3's task switcher hauled butt -- over 1000 task switches per second before it started to show signs of stress. 00:07:23 GilbertBSD: I have USING Forth also, and still working HARD to get elizabeth to release me from prosecution to put it online. Leo said yes, Liz said NO, but I'll ask again in a few months. 00:07:37 * kc5tja is going to set the kernel's quantum at a more reasonable level, of course, but that just goes to show you what good, clean kernel coding can do. 00:07:49 will Brodie be online too? 00:08:30 BigBoyToddy: What you need to do is scan all those books into PDF format, and burn a CD of them. Just to keep them preserved in the event of a web server crash or something. 00:08:32 GilbertBSD: the bottomline is that I have had to spend LOTS of money, WAY too much IMHO to get information old and new about FORTH. That is IMHO a major reason why folks don't come to FORTH, the learning and effort curve invested is TOO high initially, and folks just give up and go away. I almost did, and said to myself for whatever reason I would find the information as to why FORTH is so cool, and the reward was there in pers 00:08:42 That's a lot of really valuable material, and should be preserved. 00:09:18 BigBoyToddy: I was interested in the very early forth documents written by Chuck Moore 00:09:20 kc5tja: I have done so to some extent, I can't explain or expound which, for legal reasons, but I own the books, so I'm not worried about legality for personal use. I am concerned about legal action against me if I put them online, so that won't happen without well documented release forms from the copyright owners. 00:09:25 but I couldn't find them at all. 00:09:27 GilbertBSD: I have a few! 00:09:36 --- quit: ChanServ (ACK! SIGSEGV!) 00:09:45 GilbertBSD: and I'm talking more with CM about getting more preserved. 00:09:51 BigBoyToddy: No no, I don't mean put the CD online, I'm just saying, keep that CD available. :) 00:10:24 kc5tja: yes I understand clearly what YOU mean, I have also other interests, to make it easy for FORTH programmers to find and learn from the past, as well as forums like this in the future. 00:10:40 kc5tja: my intent is to create a very robust and complete FORTH-HISTORY.com site. 00:10:46 Nice. 00:10:47 I will do it. 00:11:07 * kc5tja thinks that Forth will get a publicity boost if I successfully release Dolphin to the public, with it written in FS/Forth. 00:11:14 BigBoyToddy: so starting from the first ever article by CM al the way down to the last book written? 00:11:15 And NO, I will not charge admission, except to expect someone visiting to be interested in FORTH :o) 00:11:23 GilbertBSD: that is the intent. 00:11:35 BigBoyToddy: prosecution? 00:11:50 hmmm cool. Iwas gonna copy brodie and simply put it online and pretend I never knew what happened. 00:11:55 GilbertBSD: bottomline is that I need to play to political game to get all to understand what I'm up to, and some folks (named withheld for liable reasons :o) just don't see it yet. 00:12:09 ER? 00:12:21 GilbertBSD: maybe :o) 00:12:26 mkay. 00:12:55 ER can be a @*#$&(*#& sometimes. She's an extremely business-savvy person, and can and will make money on anything she can. 00:13:04 ofom a eb tsum 00:13:10 kc5tja: as she should. 00:13:16 GilbertBSD: can be. 00:13:30 now ER means er ... er er I dunno 00:13:32 er 00:13:37 ;) 00:13:39 BigBoyToddy: mmmm yes, but there are some cases in which an immediate profit might sacrifice more long term profits 00:13:52 indeed. 00:13:53 I believe with all my heart some folks simply mean well, and protect themselves first because somewhere in life they have been burned. I give them the benefit of the doubt until otherwise, I have not experience otherwise, yet. 00:13:55 BigBoyToddy: no idea if that applies to anything in this case 00:15:19 davidw: yes that is true, and I have seen that in other segments of software. In this case, I simply think most in the FORTH commercial sector have something to lose, and when it is not obvious what is to be gained, the loss seems very large when in reality it is nothing. Perception versus reality, imbreeding, insecurity, market share, you name it whatever ya want, I simply respect it. 00:16:50 BTW, aside from this topic, the real topic of the materials is interesting. Sitting on my shelf is a copy of USING Forth, has anyone here even heard of it? 00:17:01 no. 00:17:06 Nope. 00:17:14 I've heard of Starting Forth, and Thinking Forth, and that's it. 00:17:34 This is what I am concerned. It predates Starting and Thinking. USING is written also by Leo and ER. 00:18:04 It is a 8.5 x 11 perfect bound, and is really, really interesting read :o) 00:18:05 Hmm. 00:18:12 Hey, I gotta go. 00:18:15 They're locking this place up. 00:18:16 see ya! 00:18:26 kc5tja: thanks for the chat, I look froward to your works. 00:18:36 n/p :) I'll keep y'all posted. 00:18:41 ltr. 00:19:08 Oh, and yes the scan and PDF'in of the materials is of interest to me also. 00:19:22 I think it will help the community in a major way, and that is the direction I'm heading with some of the materials. 00:19:54 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:20:14 davidw and others, take care. I wish all FORTH programmers the very best, it seems there is potentially a serious revival of FORTH importance in simplicity of software, and I hope it happens with a critical mass of information that really does exist out there, it is just hard as heck to find and digest. 00:20:16 ltr. 00:21:21 bye toddy 00:21:57 --- nick: Frac -> Fractal 00:22:19 its ALIVE 00:22:38 w00t t0 the w00t, yozzzzz!!!!!1111!1@!133@$%!@#$^@#$%c756f3cf^%c3f6C%F^#C(Gc3g9 00:23:16 --- nick: Fractal -> Jesus 00:23:29 jesus 00:23:33 Sup? 00:23:33 do you ever talk? 00:23:45 No, the lord talks through me. 00:23:56 what does the lord have to say? 00:24:14 He says that irc.openprojects.net sucks my ass!! 00:24:43 Oh well. 00:24:46 --- nick: Jesus -> Fractal 00:24:47 Jesus: think you could take Buddha? 00:24:53 In a second. :) 00:24:57 --- join: ChanServ (ChanServ@services.) joined #forth 00:24:57 --- mode: carter.openprojects.net set +o ChanServ 00:24:57 --- mode: ChanServ set +l 83 00:25:02 Bah. 00:25:06 --- nick: Fractal -> Frac 00:25:54 Lame. Let's r00t ChanServ's box! 00:26:40 I want to talk to this Fractal fellow. 00:26:52 sure go ahead. 00:26:53 Perhaps I can convince him to give me his nick. 00:26:58 He's never on! 00:27:23 --- nick: GilbertBSD -> Fractalis 00:27:31 Heh. 00:28:14 --- nick: Fractalis -> mandelbrot 00:28:18 how about that? 00:28:43 Heh. There you go. :) 00:30:42 Fractal's a neat. 00:30:48 Are. 00:31:29 do you create fractals in forth? 00:32:31 No. 00:32:40 That'd be pretty neat, though. 00:33:35 so what do you use forth / fractals for? 00:35:02 --- quit: ChanServ (Shutting Down) 00:35:08 .1 00:35:10 --- join: ChanServ (ChanServ@services.) joined #forth 00:35:10 --- mode: carter.openprojects.net set +o ChanServ 00:35:10 --- mode: ChanServ set +l 83 00:35:17 Well... 00:35:34 I'm just vaguely interested in forth. 00:35:51 hi 00:36:00 it's got some neat ideas,for sure 00:36:13 like what davidw? 00:36:25 hi onetom 00:36:31 mandelbrot: no 00:36:43 mandelbrot: i dont deal w fractals ;) 00:36:45 --- nick: mandelbrot -> GilbertBSD 00:36:47 mandelbrot: well, I like that there isn't really syntax 00:37:09 I also like that some forths let you write stuff on the fly in ASM 00:37:39 Ya, that's kinda neat too. What I don't like is how non-portable it is. 00:37:41 * davidw has to boot into OF on his mac sometime to see what capabilities I've got... 00:37:50 Frac: in what sense? 00:37:55 ans is more or less portable 00:38:00 For something that so easily could be 100% source compatible, there sure are a lot of incositencies. 00:38:18 Maybe, ya. 00:38:34 But I've played with a number of em, and they're all different. 00:38:45 If they all implemented ANS, then it'd be cool. 00:38:48 oh, well, yeah 00:38:53 it's like scheme 00:39:03 no one wants to build libraries or anything on *top* of it 00:39:10 but everyone wants to write their own interpreter 00:39:15 Heh. Yeah. 00:39:25 Definite description of forth. 00:39:29 C 1 Other languages 0 00:39:55 Heh. 00:40:18 Better not say that too lound in here. :) 00:40:38 I don't see why not 00:40:42 :) yes. better... 00:40:53 j/k 00:41:08 You might get hunted down by one of the forth afficionados. 00:41:16 Heh. 00:41:20 Frac: i like 2 consider 4th a processor architecture 00:41:25 I think the bright ones may see some truth in what I'm saying 00:41:37 onetom: that's a realistic possibility for general work 00:41:45 Ya, interesting idea. 00:41:57 that's about ^10 worse than writing your own forth;-) 00:42:07 Frac: if u consider it as such, u can expect them 2 b compatible 00:42:49 I want a calculator that runs forth on it. 00:42:55 Now THAT would be useful. 00:43:07 Frac: you can get forth for the palm 00:43:13 Hm... 00:43:21 I guess... 00:43:26 Frac: buy a palmtop. a cheap palmpilot eg 00:43:46 Heh. Maybe I can shopl1ft it from future shop. 00:44:48 It would be cool, but a solar powered calculator with actual buttons would be cooler. 00:45:24 buttons? 00:45:42 Frac: the old hps had something forthy on them. 00:45:43 Ya, palmpilots have those touch screens. 00:45:46 u need a normal alphanumerical keyboard 00:45:56 GilbertBSD : Yeah, RPN calculators. 00:46:08 I dunno if you could define words and such on them, though. 00:46:21 onetom : Maybe, yeah... 00:46:32 Frac: have u ever tried a palm? their touch screen is very professional 00:46:39 You could prolly get by with only 6 letters, though. 00:46:39 --- quit: Soap` () 00:46:55 Frac: and the writing recognizer is pretty diligent 00:47:24 Really? Even for people like me who couldn't draw a straight line to save their life? 00:47:47 Frac: probably... iguess... 00:47:58 Maybe I'll look into it. 00:48:15 Frac: u can try the emulator 1st, tho 00:48:29 Emulator? 00:48:33 how cheap is the cheapest Palm that will let you do cool stuph? 00:48:34 Frac: writing w a mouse is much harder then w a stylus 00:48:45 Frac: eeer, simulator? 00:49:07 Oh, ok. Windows program? 00:49:17 http://www.velonews.com/images/int/2177.2115.f.jpg 00:49:23 damn... is that a badass sport or what 00:50:45 You guys ever play with m4? 00:50:47 no 00:50:58 m4 is sweet. 00:51:00 Frac: ewwww 00:51:21 frac what is m4? 00:51:24 It's a preprocessor that lets you make recursive definitions. You've gotta love it just for that. 00:51:52 gimme an example frac 00:52:00 Ok... Let's see... 00:52:34 define(blah, `blah t') blah 00:52:34 anything that has anything to do with ./configure is a good candidate for the crap pile in my book 00:52:45 Will put it an infinite loop. 00:52:49 So that's not cool. 00:52:58 But it can do neater stuff. 00:53:10 real examples I can run 00:53:24 davidw : No, m4 is a standard unix utility. Maybe configure uses it, but it's really neat. 00:53:32 Give it a shot. :) 00:53:35 Erm... 00:53:37 it's not standard, afaik - it's a gnu thing 00:53:37 Ok. 00:53:48 I'd rather use a real language, like Tcl 00:54:14 Nope, m4 was shipped with BSD originally, and GNU made a version themselves. 00:54:27 As did IRIX, AIX, SunOS, etc. 00:54:43 davidw: how about python for a real language? 00:54:46 GilbertBSD : Ok, let's see... 00:54:50 Real examples... 00:55:40 GilbertBSD: that too, but tcl is more adaptable for something like a preprocessor 00:56:00 Well, I'm using it for CGI scripts now, so you do like: define(showpic,`') 00:56:10 it's more string based, and more flexible (you can create new 'syntax' commands like if, while, etc.. in Tcl itself) 00:56:11 And you can then just do showpic(blah.jpg) 00:56:18 That's a simple example, of course... 00:57:37 are you the only one who uses m4 as a cgi thingamabob? 00:58:32 Erm. Probably not. 00:58:45 hmmm forth is like lego. 00:58:54 you write little 'bricks' and connect them as you go along. 00:59:20 But I'm gonna start writing everything in m4 defines for preprocessing before compiling. It's so... useful... 01:00:13 Trust me: The C preprocessor sucks compared to m4. :) 01:01:06 GilbertBSD : Ya, forth is kinda like lego. 01:01:32 So is any OO language, in a way. 01:02:01 Except often the bricks aren't so little... 01:02:05 but something like this: 20 allocate do this for me 01:02:14 is more like lego than some oo thing. 01:02:19 * GilbertBSD hates OO for now. 01:02:41 Heh. I've always thought of forth as a type of OO language, but oh well. :) 01:03:15 OO has its uses 01:03:37 Ya, it does. I personally don't care for it much, but I think it does. 01:04:48 I like the merging of code and data. Being able to go object.do_something() is cool. 01:06:25 Anyways, back to idling for a few weeks. Laters. :) 01:06:47 hey 01:06:55 Yo. 01:06:56 you idled for n weeks before today! 01:07:26 Heh. Maybe. I dunno. I'm just not really on IRC much. 01:07:44 So I expect it'll be at least a week before I get back here. :) 01:07:54 hmmm . 01:09:03 doh dit dit dit doh dit doh doh dit 01:15:49 buddy of mine who built me 2 custom bicycles when I was racing was/is the tech editor for VeloNews :o) 01:15:59 davidw: do you race? 01:16:58 BigBoyToddy: I used to 01:17:02 davidw: me to. 01:17:08 leonard zinn? 01:17:10 yep 01:17:31 I used to be based out of Boulder, he was in Louisville, and met him thru a mutual buddy in Boulder. 01:17:52 I used to read velonews regularly, but I live in Italy now, and...uh... well, we have la gazzetta dello sport:-) 01:18:11 davidw: you have much better coverage in eu, us coverage of world cycling SUCKs as you know. 01:18:21 why you move to Itali? 01:18:26 it's getting worse here, unfortunately 01:18:40 davidw: too bad, hopefully they are not covering US football more. 01:18:41 soccer soccer soccer, more soccer, and a bit of formula 1 and motorcycle racing:-/ 01:18:49 F1 RULEZ! 01:18:53 BMW rules F1 :o) 01:19:00 McClaren does :o) 01:19:02 I get bored out of my mind watching it 01:19:22 Not me, I love it, because I own 4 BMWs, and cheer for BMW. 01:19:34 I'm a BMW idiot. 01:19:52 LOL 01:19:52 --- quit: ChanServ (ACK! SIGSEGV!) 01:20:05 --- join: ChanServ (ChanServ@services.) joined #forth 01:20:05 --- mode: carter.openprojects.net set +o ChanServ 01:20:05 --- mode: ChanServ set +l 83 01:21:00 davidw: glad to meet you, I raced for 4 years full time, made cat 2 here in the states, wanted to go to Europe, but was also in school. So, instead I went into programming full time, cycle ended, I got PHAT and lazy, and 'retired'. Life aint' so bad after all. LOL 01:21:27 hehe 01:24:57 davidw: so why you move to Italy. 01:25:05 because I like it here 01:25:17 cool, really? Just went, liked it and moved? 01:25:38 yep, well, the first time I went, in 95 01:25:45 I tought english to get by 01:25:50 taught 01:25:53 ahaha argh 01:25:53 LOL 01:26:19 then I went back to the states, got a job as a computer programmer... when I had the chance to come back here with a 'real job', I took it 01:32:30 gone private, be back in a minute 01:33:09 --- quit: BigBoyToddy ("See ya folks, it has been nice to chat with you all.") 01:50:46 --- join: Soap` (flop@210-54-195-245.dialup.xtra.co.nz) joined #forth 01:58:19 --- join: goshawk` (goshawk@panix1.panix.com) joined #forth 02:01:05 --- quit: goshawk` (Client Quit) 02:01:42 --- join: goshawk` (goshawk@panix1.panix.com) joined #forth 02:28:37 --- quit: GilbertBSD ("xchat exiting..") 02:49:13 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #forth 02:50:47 * rob_ert sees air in #forth. Cool... 03:57:48 :) 05:16:24 --- join: LuckyPhil (~1331-h4x0@203.45.197.55) joined #forth 05:18:03 hello? 05:18:16 bye? 05:18:18 j/k :) 05:18:33 Ahh.. someone is alive :) 05:19:33 Anyone else alive? 05:21:07 guess not 05:26:37 --- quit: LuckyPhil () 05:40:27 "1337 h4x0r" ? 06:06:48 Frac: u still here? 06:07:14 Frac: im a bit lazy 2 read all the logs back, but 06:08:11 Frac: i have 2 tell ya, i use m4 many times. eg, ive written assembler in pure sh, awk & m4 06:08:28 --- quit: ChanServ (ACK! SIGSEGV!) 06:08:38 Frac: i also have a lil script what resolves 06:08:38 --- join: ChanServ (ChanServ@services.) joined #forth 06:08:38 --- mode: carter.openprojects.net set +o ChanServ 06:08:38 --- mode: ChanServ set +l 83 06:10:26 Frac: require-s in forth sources, so i can feed 1 file into my 4th->asm compiler (what also extensively uses m4) 06:29:59 onetom: isn't m4 fun? heh 06:35:00 yeah, it is :) 06:36:22 I wrote about 2 lines of an assembler in it... decided not to though 06:36:40 didn't feel much like doing it after those two lines heh 06:45:30 tho, u should have written 5 more line & ur assembler would have been done ;p 06:46:01 heh nod :) 06:46:10 lineZ 07:18:55 --- quit: joa (Read error: 110 (Connection timed out)) 07:20:04 --- quit: ChanServ (Shutting Down) 07:21:50 --- join: joa (~james@245-118-237-24.anc-dial.gci.net) joined #forth 07:22:24 --- join: ChanServ (ChanServ@services.) joined #forth 07:22:24 --- mode: carter.openprojects.net set +o ChanServ 07:22:24 --- mode: ChanServ set +l 83 07:29:24 --- quit: ChanServ (ACK! SIGSEGV!) 07:29:35 --- join: ChanServ (ChanServ@services.) joined #forth 07:29:35 --- mode: carter.openprojects.net set +o ChanServ 07:29:35 --- mode: ChanServ set +l 83 07:33:39 http://groups.google.com/groups?hl=en&selm=a8vvlu02ac2%40enews4.newsguy.com 07:52:54 MrReach: cool stuff:-) 07:53:10 having something forth-like be the backend to tcl would be too cool 07:57:02 --- quit: ChanServ (ACK! SIGSEGV!) 07:57:11 --- join: ChanServ (ChanServ@services.) joined #forth 07:57:11 --- mode: carter.openprojects.net set +o ChanServ 07:57:11 --- mode: ChanServ set +l 83 07:57:37 * MrReach nods 09:17:10 --- join: juu (ammu@62.165.189.112) joined #forth 09:21:25 --- join: davidw_ (~davidw@ppp-159-16.25-151.libero.it) joined #forth 09:26:13 --- quit: davidw (Read error: 110 (Connection timed out)) 09:26:48 --- nick: davidw_ -> davidw 09:36:19 --- join: tathi (~tathi@wsip68-15-54-54.ri.ri.cox.net) joined #forth 09:55:19 --- join: GilbertBSD (~gilbert@max2-78.dacor.net) joined #forth 09:57:32 --- quit: GilbertBSD ("xchat exiting..") 10:34:43 --- join: kc5tja (kc5tja@stampede.org) joined #forth 10:52:42 --- join: GilbertBSD (~gilbert@max2-78.dacor.net) joined #forth 10:53:04 hullo 10:53:15 MURR! 10:53:35 MURR to you too 10:54:59 --- quit: air ("AIRC v0.2.0pre -- http://www.qzx.com/airc") 10:55:06 htank you :) 10:55:20 --- join: air (brand@12-254-199-50.client.attbi.com) joined #forth 10:57:01 mou.. 10:57:20 is there a way of seeing the instructions a chip has ? 10:58:20 GilbertBSD: yes, getting the reference manual 10:58:56 what if you are stuck in Afghanistan and you can't get a manual? 10:59:30 uh... sell the chip and get the hell somewhere less screwed up 10:59:54 no the buyer wants to see its instructions first. 11:00:04 you could take some raw opium with yuo and reselll it for lots of $$$ 11:00:33 no the buyer is very religious and only wants a chip to complete a smart bomb with 11:00:56 shoot him and take his cash 11:00:58 he has promised me land and women. 11:01:20 his thugs are standing nearby. Ever watchful. 11:04:27 you could try reverse engineering it 11:04:53 put junk in, see if something happens 11:04:54 how would I go about that? 11:04:59 hmm. 11:05:05 good question, but I bet it's a bitch, if it's a complex chip 11:05:12 what is the practical application of this, anyway? 11:05:22 how to build an asm from scratch. 11:05:42 and put a forth on top of that. 11:05:52 well, you really need the reference manual! 11:06:18 all the instructions are in binary is that not so? 11:06:58 yes 11:07:36 so could one go through it one at a time? 11:08:00 no 11:08:05 you don't even know how long they are 11:08:24 let's run this by you again: 11:08:25 what is the most basic information one needs to do that? 11:08:31 * find the reference manual * 11:08:41 * GilbertBSD scratches his head. 11:08:50 whatever the hell happened to exploration? 11:08:59 whatever 11:09:07 how long do you want it to be then? 11:09:46 --- nick: GilbertBSD -> GilbertMystik 11:12:36 okay its a byte 11:12:39 00000000 11:12:57 can one go through all the way to 11111111 and know or uncover all the instructions? 11:13:55 heh. 11:14:33 whadya think klooie? 11:14:56 i think this shouldn't be undertaken. 11:15:11 davidw: I got the idea from you btw so stay with me. you could try reverse engineering it 11:15:11 put junk in, see if something happens 11:15:14 why klooie? 11:15:33 what's the point to it, Gilbert? 11:16:16 klooie: doing it for the heck of it. 11:16:21 does that not happen anymore? 11:16:58 i'm alive for the heck of it. 11:17:15 alive? 11:17:16 what 11:17:19 Indeed you are. 11:17:27 can geeks be alive and code at the same time? ;) 11:17:36 juu: I am not a geek. 11:17:40 jk 11:17:41 i know 11:20:04 hmm, my wrist hurts. 11:20:23 klooie: cease and desist 11:20:31 it doesn't like emacs. 11:20:37 use vim or ed 11:20:45 all that control-meta-hyper-alt-everything. 11:21:41 my mind prefers emacs, different body parts and their opinions. 11:22:06 klooie: emacs is a mind twister. Have you seen a picture of RMS? 11:22:12 you don't wanna be like him do you? 11:22:16 * klooie smiles. 11:22:16 use vim ... 11:22:22 vim ... 11:23:14 well, there's M-x viper-mode. 11:24:31 its face says vi, its heart says emacs. 11:24:39 you want something that won't turn on you ... 11:24:50 hehe. 11:25:30 i don't really know vim, but use nvi daily. 11:25:52 vim comes closer to being a development environment i know, but i highly doubt it can rival emacs (for what i do). 11:25:54 vim has syntax hilighting and folding. 11:26:03 what do you do? 11:26:43 --- join: davidw_ (~davidw@ppp-132-4.25-151.libero.it) joined #forth 11:26:47 it's still an editor, not windowing system / operating system / lisp machine that emacs is. :) 11:27:22 i don't mean to start the usual discussion, my point is that i don't see them as being in the same space really. 11:27:52 well, lisp amoung other things. 11:28:12 klooie: vim is the only editor I use. 11:28:19 --- quit: davidw (Read error: 110 (Connection timed out)) 11:28:31 *nod* kc5tja, and may it serve you long and well. 11:28:42 emacs is an elisp machine first. 11:28:50 and then grudgingly other lisps. 11:28:58 * kc5tja just implemented a new block editor for Forth that uses a VI-like keybinding setup. However, it's expandable to use Emacs-ish conventions if you want. 11:29:05 yep, (require 'cl) (require 'eieio) :) 11:29:13 --- quit: ChanServ (ACK! SIGSEGV!) 11:29:26 --- join: ChanServ (ChanServ@services.) joined #forth 11:29:26 --- mode: carter.openprojects.net set +o ChanServ 11:29:26 --- mode: ChanServ set +l 83 11:29:33 klooie: do you write lisp programs? 11:29:39 kc5tja have you made irc plugin yet? 11:29:43 i'm learning, and loving it. 11:29:47 oh I see. 11:30:01 are you reading sicp or what? 11:30:05 juu: 99.995% of Forth environments haven't a clue what a socket is, let alone write an IRC plug-in for it. :) 11:30:50 Especially since I've compiled the editor for Pygmy Forth, which on my laptop, has zero network connectivity anyway. 11:30:53 --- quit: ChanServ (ACK! SIGSEGV!) 11:31:08 --- join: ChanServ (ChanServ@services.) joined #forth 11:31:08 --- mode: carter.openprojects.net set +o ChanServ 11:31:08 --- mode: ChanServ set +l 83 11:31:13 * kc5tja just made the announcement for VIBE on comp.lang.forth -- should show up in a few hours. 11:31:38 I have GForth sources in file format, and Pygmy sources in block format (written using VIBE of course!) 11:31:38 yeah i have, sicp uses scheme though. 11:31:40 kc whats so hard about sockets btw? 11:31:40 so you read sicp and are now learning cl or elisp? 11:31:40 i'm not quite as fresh as that, i've read at least over 5 lisp books but it's hard to really get into (i find). 11:31:40 hmmm just read Guy Steele's book . 11:31:40 that should cover everything adequately ;) 11:31:41 sure, the gentle introduction, successful lisp, cltl, on lisp, etc. 11:31:51 --- nick: davidw_ -> davidw 11:31:52 having a book on your desk that covers something is different from understanding though. :) 11:32:04 what is so hard to understand? 11:32:09 * GilbertMystik never quite got lisp either. 11:32:17 * GilbertMystik listens attentively. 11:32:25 :D 11:32:39 not any particular construct of the language, more the lispy way of doing things. 11:32:41 GilbertMystik: Theoretically, nothing. Practically, it's a very mind-bending API. It makes sense once you wrap your mind around it; but wrapping your mind around it is the more or less difficult part. 11:32:55 i made the mistake of mixing scheme and cl.. 11:33:13 kc so what does one need to understand it? the RFC's and the C sources? 11:33:17 the similar syntax is deceptive and hides the differences. 11:33:21 has it ever been implemented in asm? 11:34:04 klooie: you could write a lisp in scheme. 11:34:27 i was thinking of forth, actually. 11:34:32 writing a lisp in forth? 11:34:37 GilbertMystik: No. You need to sit down with a good book on sockets programming. There is a huge amount of detail covered in the sockets API, and even more that isn't (it's covered in the POSIX API, such as ioctl(), and fcntl()). You need to set up signal handlers to trap certain events if you want to be robust, you need to detach your process from the current process group so you can become a proper daemon, etc... It's a lot of leg-work. All details. 11:34:43 probably scheme in forth, cl is horribly complex to implement. 11:34:55 GilbertMystik: And WinSock is different still. 11:37:42 yeah, scheme in forth! 11:37:47 so if and when it is written once and put in the public domain, all forth would benefit no? 11:38:39 GilbertMystik: Yes and no. The vocabulary might get standardized and adopted as "comus" (Common usage), but the implementation is highly, highly, highly, highly OS dependent. 11:39:14 The reason is each OS has different methods of invoking system calls. 11:39:41 implementing scheme should not be that much of a challenge, i have read a book about it and will largely follow it. 11:39:53 klooie: would that be sicp? 11:40:12 hmmm. 11:40:29 the forth part may be more difficult, as i haven't written an actual program in it yet. 11:40:44 no, "an introduction to scheme and its implementation", Gilbert. 11:40:55 by Dyv something? 11:41:15 * klooie looks. 11:41:54 --- quit: air (Remote closed the connection) 11:41:54 kc supposing you had a floppy with dos on it or something. and you also had forth on it, how would you go about writing sockets etc? 11:42:01 or would that be generally impossible? 11:42:32 Paul Wilson. 11:42:40 ah neba mind. 11:43:29 hey you could write a scheme using the r5rs 11:44:23 yep. 11:44:34 just what the world needs, the n-th implementation of r5rs. 11:44:50 --- quit: juu (Read error: 104 (Connection reset by peer)) 11:45:13 klooie: forth is like lisp. 11:45:21 umm no like scheme 11:45:25 yes, in some ways. 11:45:27 n implementations 11:45:44 lisp is also stackish. 11:46:00 0 libraries, N implementations. 11:47:53 forth has the excuse of tight hardware coupling, with scheme it's too much in my humble opinion. 11:48:20 so, i'll make it worse so that people will see the error of their ways. 11:49:06 Well, in Forth, there is no syntax. 11:49:27 Words like IF and BEGIN are just as much a "custom" definition as words like HelloWorld. 11:49:44 kc just like lisp 11:49:52 you can redefine anything the heck you please. 11:49:58 --- join: juu (ammu@baana-62-165-189-112.phnet.fi) joined #forth 11:49:59 So really, Forth isn't a language per se, but rather, a holistic environment that "just so happens" to include words like IF. 11:50:13 kc thems are fighting words. 11:50:21 Forth and Lisp are brothers in every sense of the word. 11:50:21 i have never seen anyone refer to forth as not a language. 11:50:28 It's not. 11:50:37 It's more like a complete operating environment. 11:50:44 and lisp is what? 11:50:46 yes, forthers tend to appreciate lisp and vice versa. 11:50:54 It's an OS, it's an assembler, it's a high level language, it's ... it's whatever it happens to be at that moment. 11:51:08 Lisp is also a holistic environment. 11:51:19 klooie: I asked some guys in the #lisp room what to read before sicp and they said 'Starting Forth' so here i am 11:51:22 hmm.. 11:51:23 Scheme is too, really. 11:51:28 cool, Gilbert. 11:51:30 --- join: Fare (fare@samaris.tunes.org) joined #forth 11:51:33 my dad gave a whole new dimension to "rebooting" 11:51:44 disconnecting main electricity to here 11:51:50 juu: Hehe :) 11:51:59 re Fare 11:52:36 kc I prefer to think of forth as lego.. 11:52:47 you put a bunch of words together to make things happen. 11:52:55 GilbertMystik: That only proves my point. 11:53:13 gakuk 11:53:16 Consider: IF is a high-level word in Forth! 11:53:21 but it is a language that lets you do that. 11:53:27 kc whadya mean? 11:53:30 : IF POSTPONE 0branch >MARK ; IMMEDIATE 11:53:43 g4 see if 11:53:47 GilbertMystik: : IF 11:53:47 GilbertMystik: POSTPONE ?branch >mark ; immediate compile-only 11:53:54 Ooo...I was doggone close. :) 11:54:06 Missed the compile-only, but that's a GForth-specific feature. 11:54:17 g4 see ?branch 11:54:21 GilbertMystik: Code ?branch 11:54:21 GilbertMystik: ( $804A3E6 ) add 204 [esp] , # 4 \ $83 $84 $24 $4 $2 $0 $0 $4 11:54:21 GilbertMystik: ( $804A3EE ) test ebp , ebp \ $85 $ED 11:54:21 GilbertMystik: ( $804A3F0 ) jne 804A412 \ $75 $20 11:54:21 GilbertMystik: ( $804A3F2 ) mov ebx , 204 [esp] \ $8B $9C $24 $4 $2 $0 $0 11:55:04 g4 see >MARK 11:55:07 kc5tja: : >mark 11:55:07 kc5tja: cs-push-orig 0 , ; 11:55:29 g4 see cs-push-orig 11:55:33 GilbertMystik: : cs-push-orig 11:55:33 GilbertMystik: cs-push-part dead-code @ 11:55:33 GilbertMystik: IF dead-orig 11:55:33 GilbertMystik: ELSE live-orig 11:55:33 GilbertMystik: THEN ; 11:55:45 so it is recursive? 11:55:55 g4 see cs-push-part 11:55:59 kc5tja: : cs-push-part 11:56:00 kc5tja: locals-list @ here ; 11:56:12 g4 see dead-orig 11:56:16 No; but a lot of high-level activity is going on to process your simple IF statement. :) 11:56:16 GilbertMystik: 2 Constant dead-orig 11:56:32 what is >mark anyway? 11:56:53 >MARK reserves a cell to hold the target address of the branch virtual instruction. 11:57:02 it is not in SF 11:57:07 It leaves a fix-up record on the stack so that g4 see ELSE 11:57:29 kc5tja: : ELSE 11:57:29 kc5tja: POSTPONE AHEAD 1 CS-ROLL POSTPONE THEN ; immediate compile-only 11:57:36 g4 see THEN 11:57:37 g4 see cs 11:57:39 kc5tja: : THEN 11:57:39 kc5tja: dup orig? then-like ; immediate compile-only 11:57:42 GilbertMystik: in file included from *the terminal*:-1 11:57:43 GilbertMystik: /tmp/fsock-sh-server.request.tmp:1: Undefined word 11:57:43 GilbertMystik: see cs 11:57:43 GilbertMystik: ^^ 11:57:44 GilbertMystik: Backtrace: 11:57:49 --- part: Fare left #forth 11:57:50 neba mind g4 11:59:38 And now Chuck has introduced all new control flow structures, -IF, -WHILE, -UNTIL, etc. So, really, that begs the question, "What really *IS* Forth?" ;D 12:00:17 Hence, while it clearly is a language, it's also demonstrably much more than that. 12:02:03 what do those words do btw? 12:04:10 They work by checking the carry bit instead of checking for a zero value. That way, it doesn't have to pop the top of stack in the process. 12:04:13 --- nick: GilbertMystik -> GilbertBSD 12:04:38 --- join: futhin (~thin@h24-64-174-2.cg.shawcable.net) joined #forth 12:04:40 so is it like dup if? 12:04:46 hi futhin 12:04:52 Hi 12:05:01 howdy 12:05:18 * rob_ert just implemented IF/THEN/ELSE, and realized the true power of forth :D 12:05:35 rob_ert: using immediate? 12:05:48 immediate? 12:06:13 yeah, you define compiler controlling words using immediate 12:06:27 you said you implemented IF/THEN/ELSE ? 12:06:44 GilbertBSD: More or less. It's really a check for carry or overflow than a check for zero, but yes. I suppose you could conceptually think of them in that manner. 12:06:45 : IF code ; immediate 12:07:31 My Forth follows the cmForth model, which uses a separate vocabulary for compiler words; hence, it doesn't have "immediate" words. Words defined in the compiler vocabulary are 'immediate' by the very fact that they're defined there. :) 12:07:33 rob_ert: how did you implement if/then/else ? 12:07:53 Ah 12:07:53 Well, yes 12:07:53 But my solution for immediate words are kind of hackish 12:07:53 is* 12:08:15 Well 12:08:26 I'll upload the code later 12:08:26 don't tell me you are coding it in C? :P 12:08:28 BAH 12:08:32 IA-16 asm. 12:08:33 if forth were to be written in forth, what would be the most primary words? 12:08:47 dup 12:08:50 and.. 12:08:54 something else :P 12:09:07 g4 see dup 12:09:11 GilbertBSD: Code dup 12:09:12 GilbertBSD: ( $804C220 ) add 204 [esp] , # -4 \ $83 $84 $24 $4 $2 $0 $0 $FC 12:09:12 GilbertBSD: ( $804C228 ) mov ecx , 204 [esp] \ $8B $8C $24 $4 $2 $0 $0 12:09:12 GilbertBSD: ( $804C22F ) mov eax , 8054A40 \ $A1 $40 $4A $5 $8 12:09:12 GilbertBSD: ( $804C234 ) mov 4 [ecx] , ebp \ $89 $69 $4 12:10:09 g4 see and 12:10:12 GilbertBSD: Code and 12:10:12 GilbertBSD: ( $804B450 ) mov esi , 204 [esp] \ $8B $B4 $24 $4 $2 $0 $0 12:10:12 GilbertBSD: ( $804B457 ) mov eax , 4 [esi] \ $8B $46 $4 12:10:12 GilbertBSD: ( $804B45A ) and ebp , eax \ $21 $C5 12:10:12 GilbertBSD: ( $804B45C ) mov eax , 8054A40 \ $A1 $40 $4A $5 $8 12:10:18 it too is in asm 12:10:21 hmmm 12:10:34 so all asm words are basic forth words or what? 12:11:09 all the basic forth words are coded in asm.. 12:11:14 runs faster, and stuff like that.. 12:11:29 but forth is supposed to be faster than c no? 12:11:41 depends 12:11:50 on? 12:11:59 Not necessarily. It comes close. 12:12:27 good forth coders will usually come up with more optimal solutions because of the way the forth language is 12:12:35 However, C has an enormously huge compiler optimizer section in it, while Forth doesn't. Thus, it's expected that Forth runs at about the same speed as unoptimized C code. 12:12:45 and thus their code will run faster 12:13:06 can it not happen to forth though? 12:13:11 Exactly. The algorithm is almost unilaterally far more important than any code optimization. Code optimization is quite useful to have, but far from absolutely necessary. 12:13:18 yes, there are some optimizing forths 12:13:31 Mostly the commercial Forths are optimizing. 12:13:51 I believe Anton Ertl and Bernd Paysan have experimented with native code optimizing compilers in the past, and have reported reasonable results. 12:14:00 bigFORTH is optimizing, for example. 12:14:18 the forths that optimize aren't going to do as good a job as the optimizing C compilers, because more work has been done on C compilers 12:14:47 does it not boil down to the asm? 12:14:47 becoos c is much more easier to code :) 12:14:56 juu: No. 12:15:04 kc5tja: i am thinking that for a forth os, it would be handy to have an optimizing layer, but ontop of that layer, there is bytecode in order to maintain a 1:1 ratio 12:15:07 well depends on person 12:15:27 juu: It's because C has type information handy, and it allows a larger selection of optimizations. 12:15:37 what do you *want* out of a forth OS 12:15:40 what is the point 12:15:40 GilbertBSD: It boils down to how clever the compiler is. 12:15:44 gilbertbsd: yeah, forth can be seen as a macro assembler, but most forths aren't compiling to asm, they are just doing threading (indirect or direct or whateveR) 12:16:23 davidw: something that competes effectively with windows and linux for the desktop market, usable by both beginers and power users, userfriendly and consistent, easy to code for. 12:16:34 that's a dream 12:16:46 and you are a pessimistic person 12:16:46 pick something easy to start with 12:16:47 futhin: I see no need for that. Just implement the Forth environment as you would any other native environment Forth, and code off of that. Once the code is compiled, it's static in the dictionary anyway, so you might as well just compile right to machine language. 12:16:50 yes, very much so 12:17:17 * davidw has a working ecos + pforth 12:18:08 davidw: what do you use forth for? 12:18:25 kc5tja: a 1:1 ratio makes it easier to debug.. and programs would be debuggable at the bytecode layer, not the optimized code layer 12:18:30 * kc5tja will be implementing his next Dolphin incarnation in Forth instead of C. 12:18:46 GilbertBSD: nothing, yet 12:19:01 davidw: what do you plan on achieving with ecos + pforth, what is it useful for? and what is ecos and why? 12:19:10 futhin: I've yet to encounter the need to debug any Forth code using a debugger. 12:19:27 kc5tja: i'm talking about a forth debugger.. 12:19:47 * kc5tja has had, to date, no need to use a debugger for Forth code. Of any kind. 12:19:53 i haven't used a debugger program yet either heh 12:20:10 i just end up making lots of iterations 12:20:11 * kc5tja is a strict minimalist in that sense: don't implement something unless you need to. 12:20:13 of changes 12:20:20 and testing each word individually 12:20:31 that usually helps me pinpoint whatever mistake i made.. 12:20:41 * kc5tja just got done throwing away his two-layer VM approach here at work, precisely because it's too complex, and a nightmare to debug. It was taking up way too much of my time. 12:20:42 if forth were implemented like a smalltalk . 12:20:46 would that not be supercool? 12:21:04 gilbertbsd: are you thinking of squeak? 12:21:04 like any other programming language forth can look clean and understandable 12:21:13 futhin yes I am. 12:21:14 GilbertBSD: how is it _not_ implmeneted like smalltalk? 12:21:19 but also terrible, unfortunatly clean requires much work 12:21:19 squeak is GUI 12:21:24 not all smalltalks are like squeak i imagine 12:21:24 yep. 12:21:33 well most smalltalks have mvc 12:21:38 mvc? 12:21:39 GilbertBSD: Whatever advantages that would bring would be hidden by the Forth environment itself. Smalltalk written in Forth is quite possible (consider: Smalltalk compiles to a stack-based bytecode anyway), but the reverse? I don't see that being profitable. 12:21:53 no no not that. 12:22:07 yeah, it'd be nice for forth to have graphics and to be extended to something like squeak :) 12:22:08 see how its supposedly easy to build applications in squeak? 12:22:12 futhin: 99% of all Smalltalks have a GUI, 12:22:34 kc5tja: so each smalltalk implementator codes the gui up from scratch? 12:22:37 if that code were forth instead of smalltalk ... that would spearhead the writing of forth apps won't it? 12:22:43 GilbertBSD: Oooh, you're talking about "drag-and-drop" code? Like Morphic? 12:22:47 kc5tja: why aren't each forth implementator coding a gui from scratch ? 12:22:49 futhin: Yes. 12:22:53 kc precisely. 12:23:01 so that if you look behind it, all you see is forth 12:23:04 Nice... 3300 byte, and that includes A TON of built-in words :) 12:23:06 GilbertBSD: I've considered it, actually. 12:23:46 futhin: Because Forth has no native object support; each Forth's object implementation, if it even has one, is completely different. 12:23:58 futhin: FICL is the best object system I've seen for a Forth though... 12:24:01 kc but does it have to be 'object' based? 12:24:29 kc ficl url? 12:25:05 GilbertBSD: No, but GUIs are ***very*** data-manipulation centric, and objects make that very simple. 12:25:24 GilbertBSD: http://ficl.sourceforge.net 12:25:24 so smalltalk has a standardized object support and that helps the smalltalk implementators code the GUIs? do they reuse any code? 12:26:02 futhin: Smalltalk is the language by which *ALL* other object oriented languages are compared to. They virtually INVENTED the modern object oriented practice. 12:26:46 Smalltalk reuses code quite heavily. 12:26:54 Much more so than Forth. 12:28:08 so the implementators reused code that someone else coded? 12:28:08 futhin: guis' were first written in Smalltalk iirc 12:28:29 and smalltalk is written as much as possible in smalltalk 12:29:04 so... should we be creating a new standard for forth? with object support or something ? 12:29:26 i mean, we should have more forth support.. forth should be more extended.. 12:29:37 I don't see that happening. It's been tried before, and nothing came of it. 12:29:42 tried where? 12:29:48 Everywhere. 12:29:55 Just look at how many different object packages exist for Forth. 12:30:13 well the object part isn't important.. is it? 12:30:13 FICL has its own, GForth has its own, bigFORTH has its own, Yerk has its own, MOPS has its own, Neon has its own... 12:30:54 kc5tja: just like smalltalk 12:31:00 As I indicated earlier, it helps immensely. 12:31:08 GilbertBSD: No, smalltalk has a *very* consistent object model. 12:31:43 kc5tja: it is not at all like c from what I have seen. 12:31:48 You can take code written for Dolphin Smalltalk, and expect it to run "sort of well" on Squeak, as long as you stick to the Smalltalk-80 GUI API. 12:32:04 I tried for weeks to learn squeak with adele goldbergs book. 12:32:13 it was an exercise in frustration. 12:32:30 Do you know how long it took me to to learn how to create a subclass in Smalltalk? ;) 12:33:01 ahhhh 12:33:02 Two years. 12:33:03 hahahahaha 12:33:06 heh 12:33:18 hahahahaha I knew I wasn't cucko 12:34:00 if we didn't want to use an object system, but still wanted GUIs and code reuse happening like in smalltalk, what would we be using..? 12:34:13 But it was so incredibly EASY to do, that I never thought of looking at acontext-sensitive menu for "Create subclass..." 12:34:30 futhin: You'd probably want to use something like the GEM GUI. 12:34:54 hm, time to go googling i guess :P 12:34:54 GEM is a wonderful GUI, and it's nice and procedural. However, it's also ancient. It's best to learn its lessons, but not to repeat its mistakes. 12:35:03 does PCI assign irq's automatically or what? 12:35:22 davidw: Depends on the motherboard and chipset. 12:35:28 didn't they open source GEM? 12:35:35 kc5tja: I thought smalltalk 80 was small and close enough to the heart of it all. 12:35:39 what was it's mistake? being a WIMP? :) 12:35:45 davidw: BIOS ultimately assigns the IRQs, but you can change them at run-time if you want to. 12:35:54 hrm 12:35:59 shit 12:36:01 GilbertBSD: It is. That's half its problem. :) 12:36:04 stupid PC 12:36:14 davidw: Yes, they open sourced GEM. 12:36:26 futhin: No. Not being quite flexible enough. 12:36:30 kc why is that a problem? 12:36:46 even squeak is pretty small 12:36:59 GilbertBSD: Well, the core APIs are not very well documented, and the GUI is so incredibly powerful, it's easy to get lost with it. 12:37:00 and it comes with a hell of a lot of stuff from networking to gui to graphics etc 12:37:14 well, let's fuck around with the bios some 12:37:51 how much memory does the bios chip have? 12:37:55 davidw: Good luck. I wish I had a better answer to give. :( However, if you're willing to touch the PCI configuration registers directly, you can probably discover what IRQs things are mapped to, I'd imagine. 12:37:55 32k ? 12:38:34 futhin: Modern BIOS flash ROMs are 1Mb (128KB) in size, if I recall correctly. 12:39:16 GilbertBSD: Definately. I'm not saying its unimpressive. But because it's so incredibly dense, it's really hard to navigate around. 12:39:52 kc what about rebol? 12:39:58 To really learn and use Smalltalk, you really need to understand its GUI, because everything hinges around that. And to understand its GUI, you need to understand MVC, and to understand that, you need to know its object model. 12:40:01 it has gui building words, 12:40:10 it has networking stuff in there for sure 12:40:16 and it is freaking small. 12:40:17 * kc5tja never used the more recent REBOL products. However, while cool, I find it to be too slow to be useful for my needs. 12:40:22 128kB is a lot :) it would be fun to replace the bios with forth os :P 12:40:37 kc but it can be a model for something really cool can't it? 12:40:53 Hehe 12:40:55 you can write a full fledged gui app in rebol 12:41:02 Why don't they make cheap forth computers? :D 12:41:05 GilbertBSD: Not on the Forth level; REBOL has garbage collection, and list management, and all sorts of really high-level stuff that Forth doesn't have. 12:41:17 Like...16kB RAM and the same amount flash 12:41:19 kc but does forth need those? 12:41:20 --- quit: klooie (Read error: 110 (Connection timed out)) 12:41:36 GilbertBSD: If you're going to do the things that Rebol does, the way Rebol does it, yes. 12:42:03 That's why I'd rather adopt a GEM/screne-graph GUI hybrid, which is what I was getting to before I got deluged with all these questions. 12:42:05 :) 12:42:18 GEM 12:42:19 what is the solution for forth? 12:42:23 url? or google? 12:42:36 how do we make it into a more supported & extended language?? 12:42:50 http://www.deltasoft.com/ 12:42:55 futhin: I have seen languages < 1.4 meg that pack all the gui building words and networking protocols 12:43:05 I think it simply should be possible. 12:43:07 Well, a portable, reusable GUI is a hhuuggee first step. 12:43:35 kc don't you think a squeak like thing would be perfect? eg smalltalk under with squeak and morphic on top? 12:43:37 I agree with you, GilbertBSD -- but precisely imitating other languages isn't always the best solution. 12:43:54 kc but it is a step at least! 12:43:58 * kc5tja really doesn't like Morphic, to be honest. 12:44:09 But is it a step in the wrong direction? That's my concern. 12:44:15 GEM is designed to be incredibly compact. 12:44:23 It's written for computers with 64K or less, and yes, is as powerful as MacOS. 12:44:48 That's why you never heard of GEM after 1986 or so, because Apple sued the hell out of the authors. 12:44:53 :( 12:44:58 ah 12:45:06 At any rate, GEM is broken up into two major pieces. 12:45:09 kc why didn't alan kay sue the heck out of APPLE? 12:45:16 The first piece is the AES -- Application Environment Services. 12:45:16 oh thats right, he was employed by apple :( 12:45:28 GilbertBSD: When Apple sued Microsoft for GUI infraction, he did. ;D And won. :) 12:45:39 Well, Xerox sued at least. 12:45:51 A guy said forth is C-like, since all word definitions end with ; :D 12:45:54 The second piece is the VDI -- Video Display Interface. 12:46:05 rob_ert: An interesting observation. 12:46:26 The way the GEM GUI works is pretty interesting. 12:46:35 The application technically has complete access to the whole display. 12:46:52 rob_ert: same thing could be said of pascal. 12:46:53 The application, therefore, is responsible for restricting its screen updates to just those that are visible. 12:46:57 or bcpl 12:47:02 tell him it is more bcpl than c 12:47:04 That's the job of the AES -- to report to the application which parts fo its windows are visible. 12:47:42 This is cool, because the video driver can be enhanced without regard to enhancing the AES to match it. 12:48:02 Thus, if you want to support 3D environments with OpenGL, the AES doesn't need to be aware of what's going on. 12:48:03 :) 12:48:13 Now, what I'm proposing is something slightly different. 12:48:49 The VDI no longer gives the application direct control over the screen on a pixel level, but rather, on a *logical* level, through the use of scene graphs. 12:49:10 Scene graphs? 12:49:16 That is, you tell the VDI, "I have this aggregate object that is a square with a text that reads "Hello world" at these coordinates." 12:49:27 kc I really think it would be forthy to do a gui frontend. 12:49:30 look at this for instance. 12:49:41 The VDI is responsible for "rasterizing" this description, expressed as a tree (hence its name), to the screen. 12:49:41 : hello ." hello world " ; 12:49:48 and then hello window 12:50:07 Actually, in my proposed environment, it'd be a little bit different. 12:50:07 or hello windowcancelbutton 12:50:14 Here's how I'd do it: 12:50:30 S" Hello World!" LabelText: myLabel 12:50:38 what is S" ? 12:50:51 0 0 160 100 Window: myWindow 12:50:58 hmmm 12:51:20 : Hello ' myLabel myWindow AddChild myWindow Show ; 12:51:33 why do you need a show? 12:51:35 S" is the word that starts a string. 12:51:45 it is already getting wordy right from the get go. 12:51:54 To tell the window to present itself. That's what tacks myWindow into the scene graph, and thus, is displayed. 12:52:04 Well, GUIs aren't simple. 12:52:06 Sorry 12:52:28 i'd break it up a little bit, i would try to not have 0 0 160 100 window 12:52:32 i would do something like 12:52:35 0 0 moveto 12:52:36 160 100 window 12:52:45 (borrowing from postscript here) 12:52:46 But now you're bossing the system around. 12:52:58 What I'm doing is describing what I want to the system, and letting the system figure out how best to do it. 12:53:14 It turns out to be vastly superior that way. 12:53:15 kc thats what I'm saying... the gui for rebol is SIMPLE 12:53:46 kc remember sassenrath was a forther 12:53:49 GilbertBSD: But the language structure of Rebol allows that to happen. Like I said, in Forth, you're *not* going to find that kind of simplicity. Not without creating some frighteningly high-level, and highly application specific words. 12:53:50 kc5tja: actually, with the 0 0 moveto, 160 100 window.. this would be affecting the user space, however, the system can figure out how to display the user space.. 12:54:26 hmmm 12:54:30 futhin: Great, so now we can't take advantage of hardware acceleration because it occurs all in user space. 12:54:31 postscript has a userspace, and the interpreter has it's own userspace that modifies the user space you write to 12:54:43 kc sassenrath is a heck of a hacker then for writing such a tiny language with all those guis 12:54:51 A GUI isn't a page layout. 12:54:54 and goodies too 12:55:24 um, there shouldn't really be a difference between "0 0 100 160 window" and "0 0 moveto 100 160 window" 12:55:28 GilbertBSD: Again, Rebol is a different language than Forth, and has a different set of fundamental properties. Rebol is more closely related to Lisp than to Forth. 12:55:38 futhin: There is a critical different. 12:55:41 0 0 moveto is an action. 12:55:46 100 160 window is an action 12:56:04 0 0 160 100 Window: foo is a creation -- it's creating a data structure that says, "Yes, I'm a window." 12:56:16 It doesn't actually *do* anything at that point in time. 12:56:30 Only when you call foo Show does it take that data and compile it into the scene graph. 12:56:39 hmmm. 12:56:42 Then, when the scene graph is updated, the hardware's frame buffer also gets updated. 12:56:48 Think MVC taken to the extreme. 12:57:14 kc: i just think its a good idea to not pass more than 2 parameters.. so couldn't we do 0 0 point: foo and 100 160 window: foo or something like that 12:57:28 This is precisely how Smalltalk's GUI works at the lowest levels. This is precisely how MacOS X's GUI works at the lowest levels. This is precisely how Berlin works at the lowest levels. This is precisely how QNX Photon works at the lowest levels, etc. 12:57:56 futhin: I was just posting an example; it's by no means even close to a finished product. 12:57:58 i don't know what MVC and morphic are.. 12:58:11 futhin: mvc was the first gui thingy 12:58:14 Model View Controller is a GUI framework 12:58:15 and morphic comes from self 12:58:28 And, in my opinion, sucks eggs compared to MVC. 12:58:33 kc5tja: qnx, macos, etc use MVC ? 12:58:42 you prefer MVC ? 12:58:55 No, they use scene graphs for rendering to the video frame buffer. 12:59:01 Absolutely. 12:59:07 MVC is incredibly powerful. 12:59:14 MVC vs scene graphs ? 12:59:26 MVC is not "vs" scene graphs. 12:59:28 k 12:59:34 Scene graphs is a structure to represent a scene -- a visual. 12:59:38 s/is/are/ 12:59:47 Hence it's name 12:59:51 It's a tree structure. 12:59:54 I have a box. 13:00:01 well. 13:00:04 Let me start over. 13:00:14 The root of the scene graph is the very framebuffer itself. 13:00:15 futhin: I have a proposal 13:00:25 All graphical elements on the screen are children of that single root. 13:00:44 They can be manipulated abstractly -- "move here," "resize to these dimensions," etc. 13:00:58 GilbertBSD: yeah? 13:00:59 Graphical elements can be composed of still more graphical elements. 13:01:03 futhin: sassenrath is an old forther ... could you get him to talk about that kinda thing? 13:01:11 Think of a window on a typical GUI. It's clearly a rectangle, but has a lot of stuff inside. 13:01:13 eg forth with gui with networking? 13:01:44 * kc5tja can see my input is going largely unheard. :) 13:01:53 kc I'm listening man 13:02:25 kc5tja: i'm reading it 13:02:25 OK, I'll demonstrate with something concrete then. 13:02:30 http://www.deltasoft.com/graphics/screenshots/desk302c.jpg 13:02:42 Look at that picture (when you get a chance). It's a screen shot from GEM. 13:02:55 --- join: joseph (user@ip68-3-237-161.ph.ph.cox.net) joined #forth 13:03:02 --- part: joseph left #forth 13:03:06 it all starts with bitmaps 13:03:10 Please understand that GEM does *NOT* work the way I'm going to describe the following. But I'm using it as a concrete example 13:03:36 What we see on that picture is a desktop with a menu bar, and four windows. Are we in agreement so far? 13:04:02 kc my putt putt modem is getting there. 13:04:07 Hehe :) 13:04:14 Well, I shouldn't need any more pictures than this one. 13:04:15 yeah that looks like MVC! 13:04:32 OK. 13:04:56 OK, now imagine a tree structure in memory. The root of the tree contains five nodes. 13:05:12 The first node represents the menu bar, at location (0,0), and of dimensions (640,12). 13:05:26 It's a composite object, but I won't get into that just yet. 13:05:38 The next three nodes represent the background windows. 13:05:40 hey, guyz! what gui r ya talkin about? 13:05:54 onetom: sexy and gui stuff 13:05:55 Finally the last node represents the top-most window. 13:06:15 onetom: A GUI called GEM, and how it can be readily adapted to Forth to make Forth into a more or less Smalltalk-ish environment 13:06:24 oops "were u talking" :) i was scrolled away a bit :) 13:06:44 GilbertBSD: See how that tree works? 13:07:18 Basically, the video driver, when it sees that a scene graph has changed in any way, walks the tree, from start to finish, interpretting it as a program of sorts, describing what needs to be done. 13:07:22 yes yes. 13:07:29 The video driver then can take whatever action it needs to ensure this happens. 13:07:36 Now, the menu is nice and simple, so I'll look at that next. 13:08:05 The composite object desribing the menu itself consists of a solid white rectangle, a black thin line at the bottom, and some chunks of text. 13:08:21 Each of these items are placed relative to its surrounding container. 13:08:48 Note that containers are never opaque -- thus, you can have weird-shaped GUI objects if you really wanted to. :) 13:09:07 (e.g., the mouse is one such object; but I left that out because it would only muddle the explanation) 13:09:33 That's why the menu bar description has the solid white rectangle as part of its description. 13:09:57 time out kc 13:10:05 what about a curses tui thing instead. 13:10:11 that would be way simpler to do won't it? 13:10:16 You and I think entirely too much alike. 13:10:32 i'm interested in coding a gui in forth 13:10:35 something simple 13:10:37 * kc5tja was going to implement an application-specific form of this for my file viewer application I want to make for NT. 13:10:38 a gui or tui 13:10:40 doesn't matter 13:10:46 got any ideas? 13:10:58 do i have to learn all sorts of platform specific crap :( 13:10:59 futhin only 2: ncurses and tvision 13:11:04 tvision is OO though. 13:11:16 ncurses is a c library 13:11:16 blah, i don't want to touch anything outside of forth :P 13:11:22 hahahaha 13:11:25 Well, he could also write a Forth binding for GEM, and then work backwards from there. :) 13:11:47 Maybe creating a Forth binding to the SDL library, and going off of that. 13:11:57 GilbertBSD: don't laugh, i440r is coding some tui/gui stuff for isforth 13:12:13 really? 13:12:20 lame, i don't want to bind with any libraries heh 13:12:25 too bad isforth does not like freebsd 13:12:31 it will soon 13:12:33 don't u worry 13:12:53 futhin: Well, unless you write directly to the hardware, there's not much you really can do. 13:13:06 kc why not? 13:13:18 forth is all about talking to the hardware isn't it? 13:13:24 Well, you either write your own code, or you use somebody else's. 13:13:40 kc5tja: i was thinking of creating a tui using ascii 13:13:44 anything for VGA should be pretty standardized now for the pc 13:14:00 If you view Forth as a strictly low-level language, then yes, I suppose it is. I view Forth as much more. 13:14:03 kc5tja: i should be able to draw ugly ascii boxes and stuff like that 13:14:07 futhin definitely take a look at tvision sometime then. 13:14:09 kc5tja: right ? 13:14:14 the pascalites created it though. 13:14:36 there are animated legos afterall. 13:14:37 futhin: Yes. Like I said, I was going to hack together something along those lines when I write my file viewer/manager application. 13:14:58 if you use unicode you can make nicer-looking boxes :-) 13:15:01 More as a proof of concept. 13:15:15 deltab: ok, how do i use unicode? 13:15:25 deltab: i want to keep it all within forth, no accessing libraries and stuff 13:15:30 futhin: Unless your Forth environment supports it, you can't. 13:15:49 "can't"? 13:16:01 how do they stop you? 13:16:05 futhin: i dont think 1 should reinvet a "tui" 13:16:27 onetom: hey, it would be good practice for me, to code the backend part of it 13:16:31 futhin: turbo vision is a very well constructed system 4 this purpose 13:16:34 the "MVC" or whatever 13:16:38 of the tui 13:16:44 futhin: MVC? 13:16:51 futhin: Microsof Visual C? 13:16:55 huh? 13:17:04 model view controller 13:17:10 a gui framework 13:17:32 * GilbertBSD goes googling for forth smalltalk 13:17:41 coding a TUI with somekind of "MVC" backend would be good practice :P 13:19:10 okay prepare for sassenrath talk. 13:19:14 TNC: You know, it seems that the complexity of learning a language and using a language interferes with developing solutions. Programmers spend most of their time struggling with the language rather than struggling with the problem domain. 13:19:14 CS: That?s why one of the fundamental principles behind REBOL is to get away from the language and be one step removed from the actual computer language, to speak in terms or to write your solution in terms of the problem domain. 13:19:16 TNC: How does REBOL accomplish this? 13:19:19 CS: We call it dialecting. It turns out that it?s not an entirely new concept. [Forth uses it], although Rebol is really nothing like Forth in terms of implementation and the way it functions. One of the concepts of Forth that was very good was that if you wanted to control a telescope, you should do it in terms of astronomy, in terms of stars and their locations, azimuths etc? You?d write a sub language within Forth that would be for controlling tele 13:19:19 Or if you wanted to control a car engine, you?re talking about spark plugs and cylinders and gear boxes and you?d want to write your solution in terms of those elements. 13:19:21 This isn?t really different from English. If you?re a lawyer you speak in legal terms. If you?re a doctor you speak in medical terms. You have your own vocabulary and even have your own grammar, the way you rearrange words to make it more specific to that domain. And that?s one of the ways we humans have evolved to deal with complexity. 13:19:25 hehe 13:19:27 he talks about forth ;) 13:19:31 onetom: Re-inventing a tui is actually very educational on how GUIs work. 13:19:48 kc writing a smalltalk has just gotta be sweet. 13:20:21 everybody is out reinventing everything in forth.. reinventing a forth implementation, reinventing an object system, reinventing editors, debuggers, la la la la 13:20:22 onetom: TUIs are nice and simple. And the structure of GEM, as I was proposing before, allows you to use the TUI "engine" with the GUI library, and have a working GUI almost from the get-go. 13:20:51 It's all about factorization. 13:21:00 One of the concepts of Forth that was very good was that if you wanted to control a telescope, you should do it in terms of astronomy, in terms of stars and their locations, azimuths etc? You?d write a sub language within Forth that would be for controlling telescopes. 13:21:14 futhin: Forth is so simple, that it's quite easy to do and still get useful stuff done. :) 13:21:31 see my quote above ^ 13:21:37 i dunno, seems to be a huge time-waster :P 13:21:55 It is, but it's also a one-time investment. 13:22:03 I mean, when FS/Forth is done, well, it's done. :) 13:22:25 yeah, hopefully 13:22:31 kc5tja: infact, i agree :) tho, discover & reimplementing an already existing & well constructed 1 13:22:34 kill off all forthers after it's done or something ;) 13:22:38 how do you intend to deal with varied terminal types? 13:23:01 mrreach: for the tui? i won't, it'll just be really simple.. 13:23:05 onetom: There, I disagree. I say, use an existing one as a model, but if the environment doesn't work well, then fix it. 13:23:06 kc5tja: can also help enough, and doesnt takes so long 13:23:17 onetom: The reason why Smalltalk's GUI is so powerful is because it takes advantage of Smalltalk. 13:23:24 kc5tja: "environment doesn't work well"? what does it mean? 13:23:28 The reason why Rebol's GUI is so powerful is because it takes advantage of Rebol. 13:23:34 Why can't a Forth GUI take advantage of Forth? 13:23:52 kc5tja: aha, thats how i read "reimplementing" 13:23:53 onetom: I don't know -- what context was it used in? 13:23:55 why not kc? 13:24:22 GilbertBSD: Because GUIs are built for their languages. That's just the way things are. 13:24:37 Win32 is written in C, and thus, takes heavy advantage of the C language's (mis)features. 13:24:37 [10:22] kc5tja: infact, i agree :) tho, discover & reimplementing an already existing & well constructed 1 13:24:39 kc but forth is precisely that way isn't it? 13:24:49 you build a forth dialect to do gui stuff. 13:24:58 kc5tja: just as eg, the palm os :( 13:25:08 GilbertBSD: Yes, you do. But is that dialect Rebol? If so, why use Forth? Why not just use Rebol? 13:25:11 kc5tja: imean the gui interface of the palm os 13:26:05 kc no, a forth dialect to do gui stuff. 13:26:22 so that if you do a see Window for instance, you see forth code. 13:26:25 just like in smalltalk. 13:26:37 Well, that's just an application of the GUI. 13:26:44 You don't have to see Smalltalk code for every GUI element. 13:26:57 re re 13:27:26 kc you can though. 13:28:00 smalltalk is built for the most part in smalltalk, just as lisp is hopefully built in lisp and forth is built in forth. 13:28:17 You're confusing a lot of different things. 13:28:20 Btw is the ncurses.h file the only thing that controls ALL ncurses stuff? 13:28:23 i think one of the problems with forth, might be because of how the code is parsed.. each one is a word, that gets run, but it makes it difficult to have clean looking object code, and stuff 13:28:26 The Smalltalk IDE is written in Smalltalk, using the Smalltalk GUI as its user interface. 13:28:34 The Smalltalk IDE is what enables you to see code. 13:28:35 --- quit: MrReach () 13:28:47 The GUI intrinsically has nothing to do with the code that backs it. 13:29:04 In fact, it's object orientation essentially forbids that. 13:29:18 Models, views, and controllers are all separate. 13:30:01 However, since each object identifies what class it is, the IDE (!!) can find the source code for the relavent GUI object that you click on. 13:31:30 GilbertBSD: think ncurses.h is the only include file, if that's what you mean... 13:32:17 it can't then be that hard to do a forthcurses should it? 13:32:41 if ncurses.h has EVERYTHING one needs for doing curses coding... then that is a pretty good place to start at. 13:32:49 Now, to learn C ;) 13:34:06 OK, much as I'd love to chat, I have a lot of work I need to get done. I'm so far behind, it's not funny... :( 13:34:08 GilbertBSD: talk to i440r, he's doing curses or something for isforth 13:34:19 yeah 13:34:23 i440 where are you? 13:34:23 #forth is a waste of time ;) 13:34:34 really futhin it is? 13:34:35 although the past hour was pretty interesting discussion 13:34:40 better than the norm 13:34:44 more productive 13:34:47 i thought 13:35:02 I am still a newbie, so anything forthy is interesting. 13:35:03 kc5tja: you there? 13:35:14 oh 13:35:20 he's busy 13:35:20 Try asking anyone in your neigborhood about forth. 13:35:21 * juu have noticed #forth <-> #osdev have side effect.. ppl more one from to another and both and so 13:35:43 osdev? what about osdev? 13:36:23 i should go 13:36:27 bye 13:36:28 --- quit: futhin ("bye") 13:38:39 ppl from tehre come here 13:38:42 and here ppl go there 13:38:43 :) 13:38:47 hmmm 13:46:57 --- join: I440r (~mark4@1Cust33.tnt2.bloomington.in.da.uu.net) joined #forth 13:47:07 Hey 13:47:26 btw, http://ostling.no-ip.com/files/nano4th/nano4th.asm <-- my forth 13:47:39 Anyway, brb. 13:48:06 You don't have permission to access /files/nano4th/nano4th.asm on this server. 13:48:11 13:48:22 Forbidden 13:48:22 You don't have permission to access /files/nano4th/nano4th.asm on this server. 13:48:22 Apache/1.3.20 Server at ostling.no-ip.com Port 80 13:48:23 touche 13:49:43 hah! its you again deltab! 13:53:14 rob_ert: still no permisson... 13:55:56 --- quit: tathi ("Client Exiting") 13:56:04 --- join: MrReach (~mrreach@209.181.43.190) joined #forth 13:56:27 rob_ert: is only teasing us 13:58:16 --- join: Forth (~Forth@1Cust33.tnt2.bloomington.in.da.uu.net) joined #forth 13:58:17 yeaah 13:58:41 --- quit: Forth (Remote closed the connection) 13:58:58 --- join: CrowKilr (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 13:59:10 if someone woudl put diskette written "full of forth source gems" on it and then bomb next to, would some forth coder grab the diskette anyway 13:59:10 --- join: Forth (~Forth@1Cust33.tnt2.bloomington.in.da.uu.net) joined #forth 13:59:14 hi everyone 13:59:27 murr 13:59:50 bombs are actually pretty safe devices 14:00:04 safer than Win32 14:00:06 unless your one of their targets :) 14:00:08 yes, safe when they are not SUPPOSED to blow 14:00:19 who told you it was not connceted to the floppy? :) 14:06:55 I440r: 14:07:04 i hear you are doing a curses thing in isforth 14:07:08 -1 0 or? 14:08:29 true 14:08:40 it can already do quite a bit 14:08:50 im working on a windowing system 14:08:58 but i want my sockets DNS working first 14:09:03 the windowing system is easy 14:09:18 http://www.jwdt.com/~paysan/httpd-en.html 14:09:25 I just saw that ... a webserver in forth 14:09:38 cool :) 14:09:52 --- nick: GilbertBSD -> Gilbert 14:11:14 so I440r when is iit gonna work with freebsd ? 14:13:44 gilbert soon as TCN fixes it :( 14:13:48 or someone else 14:13:55 i WANT it to work in fbsd 14:14:55 does anyone here *GET* what Bernd was doing with all the wierd vocabulary work??? 14:15:29 in that webserver above? 14:15:35 *cough* write only language *cough* 14:15:43 * MrReach laughs. 14:15:50 MrReach: nope 14:16:07 I don't know forth well enough to decipher everything 14:16:20 well, apparently neither do I 14:16:47 --- quit: gforth (Read error: 110 (Connection timed out)) 14:17:13 lol 14:17:20 mrreach doesnt know much about forth :) 14:17:23 lol 14:17:25 dont know about gforth enough you mean 14:17:34 some day i hope to not know as much as he doesnt know :) 14:17:35 forth is really the easiest language to learn 14:17:45 --- quit: onetom (Read error: 110 (Connection timed out)) 14:17:56 keep it it, you're going to inflate my ego 14:18:19 hmm 14:18:35 incidently, I440r, you're getting there in a hurry 14:18:44 it is interesting what one comes up by typing forth smalltalk or forth rebol in google 14:18:46 hehe 14:18:54 im never in a hurry 14:19:03 ya rush - ya fsck it up 14:19:08 ive always been a slow coder 14:19:30 but a fast learner 14:19:45 --- quit: Soap` () 14:19:54 i try to be... tho some things take a while to sink in :) 14:20:13 well, pat me on the back ... I've managed to totally stuff up my web server 14:21:37 damnit! worked just fine two weeks ago 14:22:32 lol 14:22:37 * I440r pats mrreach on the back 14:23:03 --- join: onetom (tom@adsl52013.vnet.hu) joined #forth 14:23:11 * MrReach grins lopsidedly. 14:23:16 heh 14:23:33 but grin is not in forth vocabulary!! 14:23:59 : grin ..... ; 14:24:00 i.e. it COULD be 14:24:09 --- join: gforth (guest@adsl52013.vnet.hu) joined #forth 14:24:11 but is not :) 14:24:26 no, it *IS* a vocabulary, you have to put it in the search order to get at LOPSIDEDLY 14:24:35 whose is gforth btw? 14:24:44 Anton Ertl 14:25:02 Paysen co-authored, I think 14:25:36 or do you mean which one of us runs the bot? 14:25:41 that would be onetom 14:25:51 --- quit: ChanServ (ACK! SIGSEGV!) 14:26:03 --- join: ChanServ (ChanServ@services.) joined #forth 14:26:03 --- mode: carter.openprojects.net set +o ChanServ 14:26:03 --- mode: ChanServ set +l 83 14:28:20 hmmm 14:28:40 is it possible to make gforth follow me to another room? 14:28:45 Gilbert no you can't be! 14:28:53 Gilbert: pardon? 14:29:04 can gforth join other rooms? 14:29:13 can it be made to not only sit here, but to sit anywhere else? 14:29:14 Gilbert: if u ask me :) 14:29:28 ah Okay :) 14:29:42 well... anywhere else is a bit more complicated ithink... 14:29:56 brb 14:30:03 --- quit: onetom (Read error: 104 (Connection reset by peer)) 14:30:09 --- join: onetom (tom@adsl52013.vnet.hu) joined #forth 14:30:26 onetom your bot? 14:30:36 onetom @ magyar? 14:30:53 juu: pardon? 14:31:06 pff where do you live? 14:31:25 in hungary 14:31:33 and im (magyar) hungarian 14:31:48 yes that's what i asked :) 14:32:11 hungarianspeaking or ? 14:32:19 heh, I'm surprised you haven't tried to convert forth to a "hungarian prefix" format 14:32:31 hungarian notation 14:32:42 it's useless in low and upper level languages 14:32:51 in c++ for ex. it's useless 14:32:58 M$ sure uses it a hell of a lot 14:33:00 juu: persze, a magyar az elsodleges nyelvem 14:33:03 because classes are checked.. 14:33:15 MrReach but ms api is like nightmare :) 14:33:28 yes, juu, I was trying to be facetious 14:33:33 hungarian notation is ch_Some_Stupid_Character_Variable_With_A_Rediculously_Long_Name_And_A_ch_Prefix 14:33:37 and failed miserably 14:34:00 szpMoo 14:34:02 and is not called hungarian notation because its from .hu hehe 14:34:13 i dont think 14:34:18 the author was hungarian programmer, it's not from hungary 14:34:27 no, hungarian mathematician 14:34:44 * juu knows a bit hungarian too, very bit, but not enough to talk 14:34:46 :) 14:34:55 nNothing vtIs adjWrong prWith adjHungarian nNotation; pnI vtUse pnIt adjAll artThe nTime! 14:35:29 The inventor of Hungarian notation is Hungarian; however, it's an American invention -- he created iit while working for Microsoft. 14:35:43 Charles Simonyi, his name is 14:35:44 kc he worked for Xerox Parc 14:35:48 and his name was Simonyi 14:35:49 ;) 14:35:50 * juu though learnign hungarian some day 14:36:01 http://www.google.com/search?q=hungarian+notation 14:36:02 he wrote the first wysiwyg 14:36:13 called bravo 14:36:28 well.. if windows didn't had that it would never have been working supposingly :) 14:37:01 That's only because Microsoft programmers can program their way out of a paper bag, much less produce worthwhile code. 14:37:07 if windows didn't have hungarian notation??? 14:37:23 juu: interesting... ive never heard of hun.notation earlier... 14:37:26 windows uses goto loops too 14:37:35 juu: tho, i heard about simonyi 14:39:01 oki 14:39:08 * juu will go sleep some finnish dreams 14:39:12 seesja now 14:39:33 be well 14:39:58 i try to 14:40:02 you never know ;) 14:42:10 onetom you'll be here tomorrow? 14:42:21 sure 14:42:31 when do you arrive at? 14:42:33 (@least i hope so :) 14:42:48 just wrote an email to H Peter Recktenwald :) 14:43:08 I440r you shoudl not write love letters with email ;) 14:43:37 k 14:43:38 juu: u and not even me can b sure of it 14:43:38 seesja 14:43:47 juu: but what about u? 14:43:54 dont know 14:43:55 :) 14:44:02 juu: if u say an interval 14:44:08 6 eet i guess 14:44:10 juu: i could try 2 b here 14:44:17 eet? 14:44:25 Easter European Time? 14:44:28 finnish timezon.. ah east european time zone 14:44:30 yea 14:44:32 cet +1 14:44:33 gmt+? 14:44:40 ehhh... 14:44:48 what time is it overthere? 14:44:51 :45 14:44:57 its 23:44 here 14:44:59 or so, clock is not right 14:45:10 you use cet then :) 14:45:19 k but sleep now cya 14:45:26 still dunno what cet is... 14:45:34 central european tz 14:45:34 probably gmt+1? 14:45:35 Central European Timezone 14:45:43 ooh 14:45:51 i'll just kill irc app :P 14:45:53 hey, not the abbrev but the offset :p 14:45:55 Let's see, I have 14:39 on my clock. 14:45:58 --- quit: juu ("this quit message is VIRUS -- all your files will be deleted! thank you for using windows.") 14:46:06 And I'm GMT-8. 14:46:45 * onetom jotted gmt-8 14:46:45 So it looks like GMT+1 for you, since there is a 9 hour difference. 14:49:04 im gonna grow a #forth channel homepage ithink... 14:49:37 its gonna hold 1st a member list w some useful info about the members 14:50:02 like their timezone, skills, experiences, older¤t projects 14:50:03 etc 15:07:54 ok, got the webserver going again, but totally borked the file security ... everything is writable by everybody 15:08:06 blah 15:09:11 ouch... what did you *do* ? 15:09:31 * davidw installs bind 15:10:36 heh, chmod -R a+rwx /home/tclhttpd 15:10:38 you dont have bind installed ? 15:10:51 eep! 15:10:51 that needs fixing dood :) 15:10:58 it's a persistent process 15:11:10 take it easy! I'm getting there! 15:11:39 sheesh! 15:11:51 hrm i just realised something 15:12:24 hrm this is more complex heh 15:12:37 a dns query MUST be able to timeout 15:12:44 thers nothing in isforth that will let it yet 15:12:46 oopts heh 15:13:54 yeah, dns queries can take quite some time 15:14:20 so it's kinda important that the app is able to do them asynchronously 15:15:08 well isforth isnt going to do recursive lookups 15:15:21 its going to ask ONE server - whats this ? 15:15:21 and wait for a reply 15:15:33 that's fine 15:15:43 I would use glibc, personally 15:15:49 no use reinventing the wheel 15:15:55 or - as you say 15:15:55 go off and do something else 15:16:02 * MrReach ducks. 15:16:06 need signals 15:16:18 no 15:16:18 not no but HELL no 15:16:30 i absolutely flat refuse :) 15:16:35 * MrReach laughs. 15:16:37 i WANT to reinvent the wheel 15:16:48 those idiots made it square and too big to use 15:17:03 hmm an OS is actually a bulk thing to use 15:17:04 * MrReach pokes I440r and gets a VIOLENT reaction. 15:17:40 heh 15:17:40 btw did you see skipC in here earlier ? 15:17:52 that was skip carter :) 15:18:05 not violent - just loud :) 15:19:39 yep, sure did 15:19:48 he seems to have "gone away" 15:20:20 in fact, he was shoing off his linux PDA, which was connected from "taygeta.com" 15:20:52 I440r: do you think people set out to make bloated programs, and that you just happened to be the first one to think of not doing it, or what? 15:20:56 he ya ? 15:20:56 cool :) 15:21:28 engineering is a compromise 15:21:58 to my eyes, youre only reinventing some already existant wheel, a forth implementation on top of an OS, and its no use to me, maybe because im a total newbie, but IMHO I look at isforth or any other forth and I cant find any justification to code in that instead of other high level language 15:23:01 davidw they arent given the tools to produce anything OTHER than bloatware 15:23:13 and C is NOT capable of anything except bloat 15:24:07 in fact, Forth usually runs slower than most compiled languages 15:24:24 it's advantage is in that it forces you to simplify programs 15:24:35 or "encourages", anyway 15:24:54 when I look at gforth code im saying to me exactly the same thing: it smells bloatware 15:25:07 which is MORE IMPORTANT than speed 15:25:17 good forth is speedy 15:25:20 once in native code 15:25:22 * MrReach grins, and agrees wholeheartedly 15:25:40 if the code is simpler and doesnt drag its ass it is GOOD 15:25:49 I440r seems to disagree vehemently with native code forths 15:25:58 slightly slower but more maintainable 15:26:04 no 15:26:14 but they are COMPLEX 15:26:17 not simple 15:26:17 i dont think so it makes the fastest forth 15:26:21 im aiming for simple 15:26:29 that is very true, I440r 15:26:36 I have to agree there 15:27:09 to me forth has always meant simple 15:27:22 to me too 15:27:35 and I know it since only 3 months lol 15:27:48 I440r: Native code compilers are complex because the optimizations they perform are complex. 15:28:07 simple = more likely to work as expected 15:28:13 kc5 i know. 15:28:20 I440r: x86 is not a simple architecture to write code for. For that matter, neither is MIPS nor PowerPC. Even 680x0 is reasonably complicated if you want good performance. 15:28:45 i started to learn x86 assmebly 2 weeks ago 15:28:53 and thats why I want to use x18 macros 15:29:32 and optimizations to get rid of "dup drop" and other blatant code 15:29:34 That being said, even modest native code compilers can produce software that is at least as fast as unoptimized C, and sometimes can beat C. 15:29:37 and make portability possible 15:29:38 when I have insane quantities of processing power (1,000-10,000 BogoMIPS) ... the speed of the language is quite irrelevant 15:30:09 who got 10000 mips lol 15:30:25 on commodity hardware I mean 15:30:36 kc5 it depends on your definition of good. i could care less about an agi here and there or a slightly less than optimum call. if the call is more understandable and does its jot WELL i consider it good code 15:30:48 two years ago ... my K6-2/400 clocked 980 BMIPS ... it's gotta be 5-10x that now 15:31:03 bmips ? 15:31:09 BogoMIPS 15:31:12 bogomips 15:31:14 I440r: You are changing the argument now. 15:31:22 oh heh 15:31:28 rite 15:31:28 lol 15:31:29 * kc5tja is talking strictly in terms of code generation; the readability of the source code is not in question. 15:31:39 Code output is. 15:32:09 and I can't even imagine what do to with 128-256MB of memory 15:32:12 kc5 no - it was my point all along. i want something thats simple but not quite the BESTEST it could be over something thats SUPER DUPER optimum but totally unreadable 15:32:19 Direct threaded code is some 80 to 110% the speed of unoptimized C. 15:32:20 :) 15:32:46 with THAT kind of memory, one can keep an entire, reasonably complex, website in memory ... including images 15:32:47 and optimizing forht compilers are VERY complex 15:32:54 The only way to get the best possible speed from a CPU is to eliminate any and all control flows from it. Period. 15:32:57 mrreach my laptop has 128 megs :) 15:32:59 bah look at colorforth optimizations 15:33:02 This is why C promotes huge functions. 15:33:03 its easy 15:33:06 I440r: so does my PDA 15:33:19 it's totally insane 15:33:20 remove "dup drop", do tail recursion 15:33:24 It's function call overhead is *SO* large that you can't profitably get away with using small functions (unless you want abhorently slow code). 15:33:36 Here is where Forth actually exceeds C in performance. 15:33:36 and use litteral where its possible 15:33:56 kc5 i.e. it encourages BAD code 15:34:00 Even the best optimized C code will pale in performance compared to an unoptimized, direct-threaded code Forth implementation on x86 architectures. 15:34:09 That depends on your definition of "bad." 15:34:09 I440r: you ever build a website??? 15:34:12 a good compiler would allow you to INLINE functions 15:34:18 I440r: No. 15:34:30 so you can split things out and the compiler would inline them 15:34:31 I440r: A good compiler should *itself* inline functions as needed. 15:34:40 Inlining should *NEVER* be a programmer-visible option. 15:34:43 (in the ideal world) 15:34:48 bah 15:34:53 to me it sould always 15:34:55 mrreach define "website" :) 15:34:56 should 15:34:58 The reason is it changes the semantic meaning of the program. 15:35:09 kc5 optimized code is a bitch to debug 15:35:14 I440r: a group of .html files, with associated images 15:35:24 I440r: Only if you don't know how to debug it. 15:35:31 Like anything else, it's a skill that can be developed. 15:35:33 served by any number of web servers 15:35:35 mrreach yea ive done that 15:35:41 never done java or php tho 15:35:48 * kc5tja strongly urges one to follow extreme programming practices for debugging of anything and everything. 15:35:52 I440r: how many MB, total, did all the files combined come to? 15:36:13 kc5 no - the point is that optimized code looks nothing like the sources 15:36:21 mrreach not much :) 15:36:38 I440r: Correct. They don't have to. Optimized sources look like what the CPU expects for maximum performance (that is the compiler's job after all) 15:37:03 x18 core instruction set is 171 bytes large on the x86, unoptimized and missing some fonctions but its great to start with, it simplifies a lot the x86 15:37:20 this virtual instrcution set is all made of pairable instruction 15:37:36 kc5tja: extreme programming? ive already met w the term, tho its definition was not clear 15:37:47 kc5 im against the compiler modifying MY sources to conform to what IT thinks is correct - thats an accident waiting for a place to happen 15:37:47 so you can get great performance even if theres only 20 or so x86 mnemonics involved 15:37:51 ok, so you have a 10MB website (let's assume a fairly big one) ... all in memory ... and 1,000 BMIPS to shove it out the pipe with ... that's INSANE 15:37:51 kc5tja: could u explain it in 1-2stentences? 15:37:53 i dont care WHO coded the optimizer, its BROKEN 15:37:54 I440r: Then you're against Forth. 15:37:58 onetom: No. 15:38:01 onetom: :) 15:38:10 onetom: http://www.extremeprogramming.org 15:38:22 kc5 i dislike optimizing forths 15:38:25 isforth isnt optimizing 15:38:42 but in the future if someone were to write an optimizer for it i would include it in the distro 15:38:49 someone ELSE might want it 15:39:01 I440r: A language's job is to allow you to describe what needs to be done, not how it needs to be done. 15:39:02 it goes back to my "simple is better" rule 15:39:12 Yes, simple IS better. But it quite often times isn't sufficient. 15:39:15 The world is very complex. 15:39:15 kc5tja: what's the point of building an optimising forth for linux? 15:39:27 MrReach: Until there is a need for speedy code, there isn't. 15:39:44 However, if you do numerical simulations, like *I* do, I *WANT* the speedy code. 15:40:10 forth isnt slow, its reasonablly fast 15:40:28 When the optimizer knows how to lay out CPU instructions better than I do at the machine language level, and yet preserve 100% of the semantic content of the code, such that it cuts simulation time by 33% or more, why the heck not? 15:40:49 I440r: Reasonably fast, yes. As fast as it possibly can go? No. 15:40:50 if you cant code youru quick sort fast enough then think about using a radix counting sort instead. not only is it a HELL of alot faster, its also SIMPLER!!!! 15:40:58 radix count doesnt compare ANY item to any other 15:41:20 kc5 you dont NEED software to be absolutely the fastest it could possibly be 15:41:27 you just need it good enough 15:41:31 <MrReach> kc5tja: what's the point of building an optimising forth for linux? 15:41:38 i think thats the real point here 15:41:41 if you cant code it good enough you need to rethink HOW you are doing it 15:41:42 I440r: Again, the problem at hand may not be applicable to use such simpler measures. And, by the way, radix sort is substantially *MORE* complicated than quick sort. 15:42:08 I440r: How many times have you waited a day or two for simulation results, when it could have been done in a couple of hours? 15:42:09 kc5 no it isnt :) 15:42:12 I am willing to bet you, 0. 15:42:17 it dosent pay to argue abou that stuff, compilers and all, were on a forth channel and we should recognize that forth isnt made to work on top of an os 15:42:41 oh? 15:42:42 you just have the overhead of NEEDING to do it using a radix huristic 15:42:44 and a compiler 15:42:49 is only a minor problem 15:42:49 I440r: Yes it is. i'm very much aware of sorting algorithms and various numerical techniques. I have to use them in my job daily. 15:42:58 one of all the small factors that inlfeunce performance 15:43:09 --- quit: davidw (Success) 15:43:34 well, I've got to head down to the store ... be back in a couple of hours 15:43:38 --- nick: MrReach -> MrGone 15:43:42 The fact of the matter is, if nobody needed that extra speed, why the heck do we have so many man-hours invested in optimizing technology? You think it's purely for the purpose of being complicated? No way. 15:44:10 kc5 radix/counting is nothing complex. a quick sort uses recursion. that automaticaly makes it more complex 15:44:17 HAHAH! 15:44:21 That's laughable. 15:44:21 * I440r thinks anyone who uses recursion should be working for microsoft :) 15:44:28 That doesn't even warrant further comment. 15:44:33 oh 15:44:33 they mostly do already heh 15:44:33 nevermind :)P 15:44:40 * kc5tja sticks to my argument. 15:45:11 they made processor reister based and so much complicated 15:45:11 of corse not. how can you make a comment that reinforces perfection ??? :) 15:45:33 hey I440r :) 15:45:39 neway im not AGAINST optimizers even in forth 15:45:39 --- quit: CrowKilr (Read error: 104 (Connection reset by peer)) 15:45:44 i just prefer the MOST SIMPLE solution to ANY problem 15:45:52 --- join: CrowKilr (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 15:45:58 joa!! whussup :) 15:46:15 I440r: I'd like CPUs that can't be optimized if it were possible... (just came to mind right now) 15:46:37 look at forth machines ;p 15:46:40 And if part of that problem, there exists a condition that, "This simulation must be completed in X hours," where X is substantially less than however long it's taking now, then do you not feel that such an optimizer *must* be part of the solution, especially if you're already using the fastest algorithms possible? 15:46:41 how about ones that dont NEED to be 15:46:52 i think forth should not fall into optimization debate its no use 15:46:57 I440r: any CPU that doesn't NEED to be can't be ;) 15:47:17 and ya CrowKilr, that's what I thought of heh 15:47:17 I440r: You're changing the question. 15:47:29 I don't give two flying @*#&s about the ones that don't need to be. 15:47:36 I care about the ones that DO. :) 15:47:48 kc5 this is my channel im allowed to change the subject ;) 15:47:48 lol 15:47:52 lol 15:48:01 well 15:48:03 * kc5tja does intend on doing musical and wave processing with FS/Forth too, and that will definately require hard optimization techniques to keep up with real-time requirements. 15:48:16 if a processor NEEDS to be heavilly optimized to be of any use 15:48:24 it needs to be thrown out :P 15:48:35 and the x86 enter this category 15:48:46 I440r: Well, yes and no. Here, I'll largely agree that we could have done a lot of things a whole lot differently. 15:48:48 I440r: woooaah, lil king! slow down a lil! or we will byte ya ;p 15:49:04 I440r: : : CREATE COMPILE ] (;CODE) ; IMMEDIATE ( I dunno how to add something that postpones execution of an immediate but COMPILE ] looked about right ;) 15:49:16 kc5tja: what is FS/Forth? url? 15:49:18 I440r: However, part of the aforementioned problem statement is, "You can't re-invent your own CPU for under $5. Use x86 because it's effectively free." 15:49:27 onetom: It's a Forth dialect that I'm writing myself. 15:49:33 I440r: except for the COMPILE ] part, does that look about right? 15:49:41 onetom: No URL as of yet. 15:50:02 kc5 most employers want you to do it THEIR way - not "the best way" 15:50:11 That being said, I must admit, the F21 and Steamer16 are really bad-ass CPUs. I *love* the fact that the F21 is a "passive" CPU. 15:50:20 kc5tja: probably ive already told it once, but i forgot... what arch is it 4? 15:50:41 I440r: Even for personal use. I can't just dump a $1500 machine for a $25 chip that already demonstrates less FP performance than an AMD Athlon... 15:50:42 joa actually yes 15:50:51 onetom: PC currently. 15:50:53 maybe 15:50:56 (;code) is doing what in the example ? 15:51:08 oops! 15:51:09 onetom: System 1 is for DOS, System 2 is for x86 32-bit native, and possibly for Linux and WIn32 as well. 15:51:12 being wrong 15:51:21 kc5tja: does it requires and os? if so, what os? 15:51:32 and : shouldnt be immediate 15:51:32 no need for it to be 15:51:33 change it to ;CODE assembly code for ENTER END-CODE 15:51:44 I440r: ah yes, quite true 15:51:55 kc5tja: ah, those were ur FS/Forth versions, ok 15:52:02 onetom: System 1 runs under MS-DOS. System 2 Native will not require an OS; it'll boot natively using GRUB bootloader. System 2 Linux/NT will require Linux or NT, respectively. 15:52:27 I440r: I was contemplating how the CODE part of ENTER should be findable and it occured to me it really didn't have to be any different from any other 15:52:34 so thats ur own personal stuff, so u wont release it, iguess 15:53:15 I440r: obviously that's fairly useless code unless you're using a metacompiler (and it's still not right then ;) but it's good to look at so you can compile it by hand 15:53:15 They will be, only when I'm happy with them. 15:53:51 joa im assuming enter == nest :) 15:54:01 I440r: eh! 15:54:07 i prefer nest/unnest to enter/exit 15:54:16 tho isforth calls unnest exit 15:54:25 tcn changed it and i just left it as is heh 15:54:26 I440r: create-stack-frame is what I'm gonna start callin' it soon 15:54:33 do u plan 2 implement tcp/ip 4 it? 15:54:34 incorrect though it may be 15:54:38 nest/unnest to me is more descriptive of what forth is doing 15:54:48 onetom: To whom is that question directed? 15:55:02 I440r: let's make it shorter :) prj 15:55:05 oops, sorry. certainly 4 ya 15:55:05 push return jump 15:55:13 what are those words, nest/unnest? 15:55:18 joa call it anything you want to :) 15:55:28 I440r: then we can use the same name and make it REALLY confusing 15:55:31 except change it to 'prj 15:55:49 or do it sh style... jrp heh 15:56:00 onetom: No, I do not have intentions of making a separate Forth networking stack for it. The Linux and NT versions will offer the facility to utilize external libraries, however, so interfacing with the C sockets interface will be made available. 15:56:03 CrowKilr: the fundamental program flow controller words of a 4th system 15:56:19 ??? 15:56:37 what do they do? 15:56:47 CrowKilr: they're machine code fragments used to point the forth interpretter to a new high level definition 15:56:51 CrowKilr: that pair of code is the so called inner-interpreter 15:57:08 like a call in fact 15:57:13 call/ret 15:57:15 analogous to call and ret 15:57:16 ya 15:57:16 CrowKilr: the heart of the virtual 4th processor itself 15:57:17 heh 15:57:31 joa: yes, ur analogy is perfect :) 15:57:45 then its bloat, or just another name to call/ret 15:57:53 joa: tho "they're machine code fragments" is a bit contraining... 15:57:55 CrowKilr: it's not at the same level 15:58:04 onetom: that's what they are 15:58:21 joa: u assume that the 4th system is emulated on top of another processor arch. 15:58:38 CrowKilr: calling a high level forth thread is like calling a text file... it's not what you want 15:58:58 --- quit: Gilbert (No route to host) 15:59:03 callinga high level forth tread to me is calling something like 15:59:03 joa: not really... 15:59:06 SQUARE 15:59:08 call dup 15:59:09 call * 15:59:11 ret 15:59:40 onetom: assuming a threaded forth where nest and unnest are needed, *attach explanation here* 15:59:51 joa: calling a 4th thread is much more similar 2 calling a 68k machine code subrutine on an x86 arch 16:00:21 CrowKilr: that is how it's done in a subroutine threaded forth 16:00:34 joa: its a wrong picture about forth i think... 16:00:45 buts its the best way 16:00:46 joa: tho, it very popular :( 16:00:53 the next best way is unrolled loop 16:01:06 joa: 4th is a 2stacks processor architecture 16:01:12 call and rest take one cycle on the pentium 16:01:20 kc5tja: two sheds jackson? ;) 16:01:26 so its very efficient 16:01:36 or am I lost? 16:01:40 tell me lol 16:01:55 CrowKilr: "we don't all use pentiums" is the best answer I can come up with 16:02:00 --- quit: ChanServ (ACK! SIGSEGV!) 16:02:22 CrowKilr: on a lot of systems, that'll take up a lot of space and not be much faster than using a threaded model 16:02:46 I know I use SX microcontrollers to do my bidding around inelectronic projects and AVRS too and call/ret stall the pipeline 16:03:06 so it takes at least 3/4 cycles 16:03:11 3-4 16:03:15 not 0.75 ;p 16:03:29 but were talking about PC here right? 16:03:57 the chan was talking about optimizing and forth is slow, etc etc etc 16:04:05 onetom: I'm not sure having a conceptual model that puts a language beyond the grasp of a computer save those with the correct processor is useful when writing a forth for a processor that doesn't fit the model 16:04:22 CrowKilr: I wasn't talking to I440r about that. I just got here 16:04:28 :) 16:04:39 brb 16:04:41 food 16:04:43 joa: forth is two things in 1 16:04:47 ya, me too except not quite food :) 16:05:04 kk but at least in my design efforts the pentium and x18 virtual instruction set are my prime priorities 16:05:54 vggggggggfback 16:06:00 bad kitty 16:06:13 vggggggggggggfLikely excuse.... :D 16:06:14 joa: 1st its an arch. its the inner interpreter. 16:06:37 joa: 2nd its a lang. its the outer interpreter. 16:07:00 joa: the role of the 1st thing is 2 interpret threaded code 16:07:40 onetom: let's try this one. make machine code fragment be something more like, "something suitable for being addressed by the code field" 16:07:53 joa: the role of the 2nd is 2 transfor text into threaded code (the machine code of the forth architecture) 16:08:42 onetom: the next statement to anyone but people who already understand forth would have to be "something suitable to be addressed by the code field is a machine code fragment on most systems" 16:08:56 but people to whom you don't have to say that didn't need the explanation in the first place 16:09:16 joa: "being addressed"? what if the code field is not an address but a "code"/a constant w a predefined meaning? 16:09:43 joa: on most systems... on most systems... 16:10:04 onetom: most systems being the PCs most people use 16:10:11 joa: the correct version: on systems where the forth arch is simulated 16:10:29 onetom: I fail to see how this helps CrowKilr understand what nest and unnest do 16:11:21 joa: but those 4thes for the PC r just a family of "all 4thes". they r just a branch. 16:11:55 nest takes the current Forth "instruction pointer", and saves it on the return stack. It then begins execution of the new colon definition. 16:12:03 unnest is basically a "return from this Forth subroutine word. 16:12:21 joa: probably it doesnt help CrowKilr but it also doesnt make harder 2 understand... 16:13:33 joa: its better not let them think nest&unnest r "machine code" subroutines 16:13:36 i understand nest and unnest now 16:13:40 onetom: words fail me now. I'll just leave that one 16:14:02 thats what i call an explanation thank you kc5tja ;p 16:14:08 oops 16:14:14 hey rob_ert 16:14:18 joa: coz it makes him harder 2 imagine that forth is not only a lang but an arch. what is f.ckin important, ithink 16:14:18 onetom: Permissions fixed =) 16:14:21 Hi joa 16:14:39 rob_ert: k 16:14:41 ;) 16:14:46 Sorry for that 16:15:36 joa: coz it makes him harder 2 imagine that forth is not only a lang but an arch. what is f.ckin important, ithink 16:15:40 is the him me? 16:15:49 lol i know forth is an architecture 16:15:49 CrowKilr: sorry 4 not takin care about u, i thought that correction very important 16:16:07 i think forth is a processor architecture 16:16:15 anyway doesnt matter 16:16:24 Hmm.. btw, read the comment in my asm file, it says "Don't take this too seriously". 16:16:34 CrowKilr: (it does :p) 16:16:35 And I mean it, don't :-) 16:21:49 rob_ert: thats nice, tho there r too many things defined in asm, which is unnecessarry in many cases 16:22:17 Yeah 16:22:29 rob_ert: & i would b too shy about it. its serious! 16:22:29 But I didn't have time to think too much :) 16:22:41 well... 16:22:46 Too shy about...? 16:23:10 thinking is more important than the actual work 16:23:15 shy about nano4th 16:24:43 u can "safely remove" that "Don't take it too seriously" from its beginning 16:25:06 its already better than what u think, iguess... 16:25:34 Heh 16:25:46 Well...not really. It's a mess. 16:26:00 The input is probably the worst mess 16:26:05 then general program structure 16:26:09 then everything else ;D 16:28:21 --- join: futhin (~futhin@h24-64-175-61.cg.shawcable.net) joined #forth 16:28:49 Hi :) 16:28:50 fu thin chu! 16:29:04 eeyore! :P 16:29:24 hm 16:29:26 eeyore sucks 16:29:28 nevermind 16:29:35 * rob_ert neverminds. 16:30:41 hm 16:30:49 oink :) 16:31:43 :) 16:41:34 --- join: ChanServ (ChanServ@services.) joined #forth 16:41:34 --- mode: carter.openprojects.net set +o ChanServ 16:41:34 --- mode: ChanServ set +l 83 16:43:09 blah blah blah blah blah blah blah blah 16:43:31 blah 16:43:33 i'm bored 16:43:37 heh 16:43:38 me too 16:43:41 cool 16:43:49 i'm thinking i should go learn lojban 16:43:54 lojban ? 16:43:54 so oink, what's up? 16:43:57 do you code forth? 16:44:01 not yet 16:44:03 hm 16:44:18 lojban, is a constructed language, it's supposed to be very well designed 16:44:22 not programming lang 16:44:25 natural lang 16:44:41 go to www.lojban.org 16:45:07 http://www.lojban.org/why_learn.html 16:45:09 --- quit: ChanServ (ACK! SIGSEGV!) 16:45:18 --- join: ChanServ (ChanServ@services.) joined #forth 16:45:18 --- mode: carter.openprojects.net set +o ChanServ 16:45:18 --- mode: ChanServ set +l 83 16:48:01 so whassup oink 16:48:20 i'm bored. 16:48:43 44 new mails .. ehm 16:48:46 brb (: 16:50:45 bleah, i get 6 emails a day. 5 spam, 1 content :P 16:52:06 * kc5tja would rather have spam than e-mails telling me my grandmother just had a pace-maker put in... :/ 16:57:36 well i get email from relatives.. but i tend to be slow to respond 16:59:32 lojban doesn't use capitalised words as far as i can tell fun fun 17:00:04 I just received an e-mail pertaining to my grandmother's health. It's not pretty. She's also getting weaker instead of stronger, but the doctor thinks it's an effect of the medication. 17:00:17 Lojban uses capitals for emphasis. 17:02:21 c is pronounced sh :( 17:03:01 o cit. ;) 17:04:58 ahha! SMB caches the user and groups internally 17:05:01 uat.izkuliz.jat.u.kynraitwizlojban.endxaevytbiprfekliridybl. 17:05:06 --- nick: MrGone -> MrReach 17:06:00 kc5tja: do you know some lojban then? 17:06:02 wb mrreach :) 17:06:11 danke 17:07:02 Guten Abend! :D 17:07:03 futhin: Only the most rudimentary things about it. 17:07:24 why are you using periods instead of commas? 17:07:35 or the periods are necessary for those words? 17:08:00 time to change the topic to Lojban & Forth ;) 17:08:00 If you read the sentence, you'll see I'm actually writing English. ;) 17:08:49 heh, pretty hard to read heheh 17:09:04 Since each letter in Lojban corresponds to one, and precisely one, sound, what I wrote above is, "What is cool is (th)at you can write with Lojban and have it be perfectly readable." 17:09:12 what is cool is that you can write with lojban and 17:09:17 yeah 17:09:51 Yeah; normal Lojban doesn't cram everything together like that. But that's an extreme example of why I feel that English's alphabet sucks eggs badly. 17:09:58 I really *hate* non-phonetic alphabets. 17:10:02 yes 17:10:04 agreed 17:10:36 i've always thought about creating a new language, phonetic, international, easily handles more complex concepts, etc 17:10:46 but i guess lojban beat me.. 17:10:51 Esperanto beat Lojban. :) 17:10:57 By about 112 years to boot. 17:11:09 is esperanto better than lojban? 17:11:39 i know esperanto is a constructed language, but is it "regular", uses predicate logic, la la whatever? :P 17:11:43 depends on what you use them for. If you can think of French as being the language of love, and German as the language of engineering, then Esperanto is to French as Lojban is to German. 17:11:45 esperanto has a large following :) 17:11:45 but its a silly language 17:11:56 it wont become universally used 17:12:06 why silly? 17:12:08 so theres no point 17:12:14 i440r: uh, there's around 40 million people who know esperanto afaik 17:12:37 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 17:12:42 its more dead than latin is heheh 17:12:46 who really cares about a universal language? :P 17:12:47 I440r: That's a rather defeatist attitude about a language that aims to simplify (and succeeds) spoken and written language. 17:12:53 I440r: I beg to differ with you, quite severely. 17:12:56 exactly. next to nobody :P 17:13:16 kc5 yes i bet esperanto is a gazillion times better than english 17:13:20 i440r: you are just trolling, that's my opinion :P 17:13:44 when they start teaching it as the primary language in our schools 17:13:44 futhin bleh 17:13:44 :P 17:13:53 i wanna learn latin hehe 17:14:03 you cant split infinatives in latin 17:14:13 because a language is unused does not make it "silly" 17:14:14 its not possible :) 17:14:14 thats why its wrong in english :) 17:14:21 the same might be said of Forth 17:15:05 latin is a pain in the arse to learn afaik 17:15:13 or not 17:15:14 no. the language isnt silly 17:15:19 no - forth will be universally accepted :) 17:15:23 thats an isforth goal :) 17:15:23 i'd probably learn it if i was given a good book 17:15:51 lies, that's the job of forthos! everybody come to #forthos to learn more about making forth a universally accepted language! ;) 17:16:00 lol 17:16:20 I440r: There are no infinitives in Esperanto. 17:16:45 kc5 you know esperanto ? 17:16:50 im crap at nagural languages 17:17:02 I used to be able to read and write it fluently. 17:17:13 It's been a few years since I've participated in an Esperanto group though. 17:17:23 * kc5tja could never get the hang of speaking it though. 17:17:27 cool 17:17:54 Lojban is even worse for me. :) 17:18:26 Speaking Lojban is awfully hard for me to do. Especially when you have such incredibly funny sounding words like cmima, cmene, cmavo, etc. 17:18:39 shmema 17:18:43 shmeme 17:18:46 not hard :P 17:18:52 oops 17:18:55 shmehmeh 17:19:02 who puts consonants together? 17:19:10 It gets harder when you have full sentences; but it's difficult because the sentences just make me want to crack up laughing. 17:19:28 MrReach: The consonants are designed to go together. 17:19:35 c is pronounced "sh" in Lojban 17:20:09 why split the alphabet into consonants and vowels 17:20:10 j is a soft j sound in Lojban, and thus, dj is a hard j sound 17:20:15 i never understood that 17:20:23 just have LETTERS lol 17:20:31 why does my wife come into the room I'm in ... alter the environment, and the leave??? 17:20:46 that's got to be the most irritating thing she could do 17:20:59 * MrReach walks across the room and closes the damn window. 17:21:02 lol 17:21:23 because she is trying to make it uncomfortubble for you to waste time on irc :) 17:21:39 yeah, maybe I'm not paying enough attention to her 17:21:45 its a - stop BSing on irc and come attend to my state of boredom :) 17:22:10 "talk with ME in rl - not with tham idlers on irc" :) 17:22:29 I would if she weren't vacuming 17:23:06 * MrReach says "HI HONEY!!! I LOVE YOU A LOT!!" 17:23:46 heh 17:23:46 maybe she just thunked you needed some FRESH air :P 17:24:03 perhaps 17:24:15 maybe she thinks this room stinks 17:24:27 Does it? 17:24:31 Heheh :) I love this site. http://www.unusualresearch.com/spelling/spell.htm 17:24:40 yes, of stale smoke 17:24:41 Especially the poem...er...pome at the end. 17:24:48 well i gtg do some coding 17:24:57 have fun, I440r @:^> 17:24:58 im just sittin here doin nuttin 17:24:58 you smoke mrreach ? 17:25:03 yes, I do 17:25:42 only poetry i like is the rhyme of the ancient mariner 17:26:00 i memorised the first two parts - gotta get the rest memorised :) 17:26:00 im an x smoker :) 17:26:08 cool! 17:26:09 neway - outa here 17:26:13 be well 17:26:15 --- quit: I440r ("coding") 17:26:40 --- quit: Forth (Remote closed the connection) 17:29:22 ugh wtf 17:29:27 have you checked out www.unifon.com 17:29:46 If he would just read the poem, he'd see that the little limrick would be quite enjoyable. 17:29:50 * kc5tja is reading it now. 17:40:18 --- quit: ChanServ (ACK! SIGSEGV!) 17:40:18 --- quit: BigBoyToddy (Read error: 104 (Connection reset by peer)) 17:40:33 --- join: ChanServ (ChanServ@services.) joined #forth 17:40:33 --- mode: carter.openprojects.net set +o ChanServ 17:40:33 --- mode: ChanServ set +l 83 17:41:47 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 17:42:38 Hey =) 17:42:46 hihi! 17:43:18 * MrReach listens about companies that are moving headquarters into tax-free countries 17:44:28 :) 17:54:35 I listen to the rarity issue of what companies are not. 17:54:42 :o) Good night, and happy forthin' 17:54:53 be well 17:55:06 mrreach: which companies and which countries? 17:55:46 this particular news segment (NPR) was about StanleyWorks recent descision to relocate to Bermuda 17:56:49 brb 18:18:05 --- quit: ChanServ (ACK! SIGSEGV!) 18:18:05 --- quit: BigBoyToddy (Read error: 104 (Connection reset by peer)) 18:18:20 --- join: ChanServ (ChanServ@services.) joined #forth 18:18:20 --- mode: carter.openprojects.net set +o ChanServ 18:18:20 --- mode: ChanServ set +l 83 18:32:12 --- quit: futhin ("brb") 18:41:39 well i posted on comp.lang.forth, if some of you knows about colorforth and have a news reader, the you know what to do ;ppp 18:43:04 (here's a better sentence) Well, I posted on comp.lang.forth, if one of you knows about colorForth and have a newsgroup reader, then you know what to do. 18:44:42 --- quit: ChanServ (Shutting Down) 18:44:53 --- join: ChanServ (ChanServ@services.) joined #forth 18:44:53 --- mode: carter.openprojects.net set +o ChanServ 18:44:53 --- mode: ChanServ set +l 83 19:03:06 bacl 19:03:08 back even 19:03:20 wb =D 19:04:05 * kc5tja really is sucking badly at this. :( 19:04:20 * kc5tja can't seem to produce a single line of code for his Forth environment here. :( 19:10:41 --- quit: rob_ert ("Strawberry fields forever.") 19:31:53 --- join: njdaway (junk@njd.paradise.net.nz) joined #forth 19:33:08 --- part: njdaway left #forth 19:59:02 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 20:13:47 --- quit: CrowKilr ("User pushed the X - because it's Xtra, baby") 20:13:47 --- quit: BigBoyToddy (Read error: 104 (Connection reset by peer)) 20:36:02 good night forth'ers 20:46:04 --- quit: ChanServ (ACK! SIGSEGV!) 20:46:14 --- join: ChanServ (ChanServ@services.) joined #forth 20:46:14 --- mode: carter.openprojects.net set +o ChanServ 20:46:14 --- mode: ChanServ set +l 83 20:46:45 --- quit: ChanServ (ACK! SIGSEGV!) 20:46:58 --- join: ChanServ (ChanServ@services.) joined #forth 20:46:58 --- mode: carter.openprojects.net set +o ChanServ 20:46:58 --- mode: ChanServ set +l 83 20:47:11 --- quit: ChanServ (ACK! SIGSEGV!) 20:47:21 --- join: ChanServ (ChanServ@services.) joined #forth 20:47:21 --- mode: carter.openprojects.net set +o ChanServ 20:47:21 --- mode: ChanServ set +l 83 21:07:11 --- quit: ChanServ (ACK! SIGSEGV!) 21:08:21 --- join: ChanServ (ChanServ@services.) joined #forth 21:08:21 --- mode: carter.openprojects.net set +o ChanServ 21:08:21 --- mode: ChanServ set +l 83 21:10:44 --- quit: ChanServ (ACK! SIGSEGV!) 21:10:55 --- join: ChanServ (ChanServ@services.) joined #forth 21:10:55 --- mode: carter.openprojects.net set +o ChanServ 21:10:55 --- mode: ChanServ set +l 83 21:12:40 --- quit: ChanServ (ACK! SIGSEGV!) 21:12:48 --- join: ChanServ (ChanServ@services.) joined #forth 21:12:48 --- mode: carter.openprojects.net set +o ChanServ 21:12:48 --- mode: ChanServ set +l 83 21:13:43 --- quit: ChanServ (ACK! SIGSEGV!) 21:15:43 --- join: ChanServ (ChanServ@services.) joined #forth 21:15:43 --- mode: carter.openprojects.net set +o ChanServ 21:15:43 --- mode: ChanServ set +l 83 21:18:11 --- join: GilbertBSD (~gilbert@max1-33.dacor.net) joined #forth 21:33:21 --- quit: ChanServ (ACK! SIGSEGV!) 21:33:31 --- join: ChanServ (ChanServ@services.) joined #forth 21:33:31 --- mode: carter.openprojects.net set +o ChanServ 21:33:31 --- mode: ChanServ set +l 83 21:37:26 --- quit: ChanServ (ACK! SIGSEGV!) 21:37:35 --- join: ChanServ (ChanServ@services.) joined #forth 21:37:35 --- mode: carter.openprojects.net set +o ChanServ 21:37:35 --- mode: ChanServ set +l 83 21:38:03 --- quit: ChanServ (ACK! SIGSEGV!) 21:38:10 --- join: ChanServ (ChanServ@services.) joined #forth 21:38:10 --- mode: carter.openprojects.net set +o ChanServ 21:38:10 --- mode: ChanServ set +l 83 21:38:18 --- quit: ChanServ (ACK! SIGSEGV!) 21:38:43 --- join: ChanServ (ChanServ@services.) joined #forth 21:38:43 --- mode: carter.openprojects.net set +o ChanServ 21:38:43 --- mode: ChanServ set +l 83 21:38:49 --- quit: ChanServ (ACK! SIGSEGV!) 21:38:55 --- join: ChanServ (ChanServ@services.) joined #forth 21:38:55 --- mode: carter.openprojects.net set +o ChanServ 21:38:55 --- mode: ChanServ set +l 83 21:40:04 --- quit: ChanServ (Shutting Down) 21:40:15 what is wrong with chanserv? 21:40:20 --- join: ChanServ (ChanServ@services.) joined #forth 21:40:20 --- mode: carter.openprojects.net set +o ChanServ 21:40:20 --- mode: ChanServ set +l 83 21:40:32 and why does chanserv in this particular room keep hiccuping? 21:41:51 --- quit: GilbertBSD ("xchat exiting..") 21:45:41 --- quit: ChanServ (carter.openprojects.net irc.openprojects.net) 21:50:56 --- join: ChanServ (ChanServ@services.) joined #forth 21:50:56 --- mode: carter.openprojects.net set +o ChanServ 21:50:56 --- mode: ChanServ set +l 83 21:53:34 It's not just this room. 21:53:37 It's everywhere. 21:53:58 They're having issues with the servers. They're trying to fix the problems. 21:55:11 --- quit: ChanServ (ACK! SIGSEGV!) 21:55:21 --- join: ChanServ (ChanServ@services.) joined #forth 21:55:21 --- mode: carter.openprojects.net set +o ChanServ 21:55:21 --- mode: ChanServ set +l 83 21:55:38 --- quit: ChanServ (ACK! SIGSEGV!) 21:55:55 --- join: ChanServ (ChanServ@services.) joined #forth 21:55:55 --- mode: carter.openprojects.net set +o ChanServ 21:55:55 --- mode: ChanServ set +l 83 21:56:27 --- quit: ChanServ (ACK! SIGSEGV!) 21:56:37 --- join: ChanServ (ChanServ@services.) joined #forth 21:56:37 --- mode: carter.openprojects.net set +o ChanServ 21:56:37 --- mode: ChanServ set +l 83 21:57:58 --- quit: ChanServ (ACK! SIGSEGV!) 21:58:11 --- join: ChanServ (ChanServ@services.) joined #forth 21:58:11 --- mode: carter.openprojects.net set +o ChanServ 21:58:11 --- mode: ChanServ set +l 83 21:58:39 --- quit: ChanServ (Shutting Down) 21:58:50 --- join: Shain (~steve@12-236-220-28.client.attbi.com) joined #forth 21:59:59 --- part: Shain left #forth 22:30:17 --- join: Viracocha (tcuriousit@dhcp788.mc01.dsl.fastucson.net) joined #forth 22:30:29 --- part: Viracocha left #forth 22:42:37 --- join: Soap` (flop@210-86-47-61.dialup.xtra.co.nz) joined #forth 23:15:13 --- quit: kc5tja ("BitchX: the OTHER white meat") 23:45:33 --- quit: Soap` (Read error: 104 (Connection reset by peer)) 23:47:24 --- join: Soap` (flop@210-86-47-61.dialup.xtra.co.nz) joined #forth 23:48:24 --- join: ChanServ (ChanServ@services.) joined #forth 23:48:24 --- mode: carter.openprojects.net set +o ChanServ 23:48:24 --- mode: ChanServ set +l 83 23:59:59 --- log: ended forth/02.05.08