00:00:00 --- log: started forth/07.10.31 00:03:09 --- quit: TreyB (Read error: 110 (Connection timed out)) 00:27:33 --- join: doublec_ (n=doublec@202-74-216-220.ue.woosh.co.nz) joined #forth 00:36:36 --- quit: doublec (Read error: 110 (Connection timed out)) 00:37:00 --- quit: TreyB_ (Read error: 110 (Connection timed out)) 00:39:52 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 00:57:34 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 01:05:36 --- quit: TreyB (Read error: 110 (Connection timed out)) 01:14:32 --- quit: doublec_ () 01:25:21 --- quit: arke (Read error: 113 (No route to host)) 01:40:16 --- join: arke (i=arke@x496.vpn.hrz.tu-darmstadt.de) joined #forth 01:40:16 --- mode: ChanServ set +o arke 01:47:01 --- quit: H4ns (Read error: 113 (No route to host)) 01:48:39 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 01:57:00 --- join: H4ns (n=Hans@p57BBB538.dip0.t-ipconnect.de) joined #forth 02:20:38 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 02:23:20 --- quit: TreyB_ (Read error: 110 (Connection timed out)) 02:35:30 --- quit: wossname (Read error: 110 (Connection timed out)) 02:50:19 --- quit: Raystm2 ("Should have paid the bill.") 02:52:30 --- quit: TreyB (Read error: 104 (Connection reset by peer)) 02:52:33 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 04:21:09 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 04:24:14 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 04:32:17 --- quit: TreyB (Read error: 110 (Connection timed out)) 05:28:07 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 05:42:44 --- join: TreyB__ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 05:44:50 --- quit: TreyB_ (Read error: 110 (Connection timed out)) 05:55:48 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:59:15 --- quit: TreyB (Read error: 110 (Connection timed out)) 06:21:45 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 06:21:45 --- quit: TreyB__ (Read error: 104 (Connection reset by peer)) 06:38:08 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 06:38:39 --- quit: wossname (Read error: 110 (Connection timed out)) 06:47:57 --- quit: TreyB_ (Read error: 104 (Connection reset by peer)) 06:51:47 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 06:54:41 --- quit: TreyB (Read error: 110 (Connection timed out)) 07:12:36 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 07:13:39 --- quit: TreyB_ (Read error: 104 (Connection reset by peer)) 07:31:27 --- join: ZabaQ (n=jconnors@194-105-174-193.ifb.co.uk) joined #forth 07:31:47 What's a good modern forth for someone who forthed ages ago? Is CREATE DOES> still there? 07:32:02 Gforth is a good start. 07:34:37 CREATE/DOES> is part of the Forth standard. 07:35:22 wordlists are new to me. 07:36:02 They're a generalization of older vocabulary mechanisms; you can build vocabularies on top. 07:37:52 No mucking about with LFA , CFA, etc! That was 80% of the fun! 07:38:50 If you're interested in fiddling at that level, and writing code that runs on one Forth only, then you can certainly still poke around in the internals of whatever specific Forth you're using. :) 07:50:24 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 07:50:30 --- quit: TreyB (Read error: 104 (Connection reset by peer)) 08:25:03 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 09:37:21 --- quit: madgarden ("?OUT OF DATA ERROR") 09:46:10 --- quit: H4ns (Read error: 110 (Connection timed out)) 09:58:56 --- quit: Al2O3 () 10:12:47 --- quit: ecraven ("bbl") 10:19:09 --- quit: crest__ (Read error: 110 (Connection timed out)) 10:25:32 --- quit: arke (Read error: 110 (Connection timed out)) 10:32:24 --- join: Al2O3 (n=Al2O3@225.sub-70-209-160.myvzw.com) joined #forth 10:40:12 --- join: H4ns (n=Hans@p57A0F508.dip.t-dialin.net) joined #forth 10:41:34 --- join: arke (n=arke@p54A7C96A.dip.t-dialin.net) joined #forth 10:41:34 --- mode: ChanServ set +o arke 12:10:36 --- join: ygrek (i=user@gateway/tor/x-8fbfc0ee76c55341) joined #forth 12:18:31 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:18:31 --- mode: ChanServ set +o slava 12:19:01 --- kick: slava was kicked by slava (slava) 12:19:12 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 12:19:12 --- mode: ChanServ set +o slava 12:19:21 Quartus: what did you do that for?? 12:22:02 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-115-166.pools.arcor-ip.net) joined #forth 12:24:24 --- quit: Quartus (Connection timed out) 12:24:43 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 12:24:43 --- mode: ChanServ set +o Quartus 12:31:09 --- quit: snoopy_1711 (zelazny.freenode.net irc.freenode.net) 12:31:55 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-115-166.pools.arcor-ip.net) joined #forth 12:39:37 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 12:39:46 --- nick: snoopy_1711 -> Snoopy42 12:44:53 hey slava 12:45:20 Straightforward booster-shot update to the gavino immunization 13:12:12 :P 13:16:00 --- quit: wossname (Connection timed out) 13:27:32 --- quit: timlarson_ ("Leaving") 13:37:23 --- join: H4n1 (n=Hans@p57A0F2EC.dip.t-dialin.net) joined #forth 13:41:07 --- quit: H4ns (Read error: 110 (Connection timed out)) 13:45:41 we have an anti-troll policy, and if gavino doesn't count as a troll, absolutely nobody does. 13:50:10 --- quit: ygrek ("Leaving") 13:53:43 --- join: C0ltZs1 (i=Unix@74-132-210-197.dhcp.insightbb.com) joined #forth 13:54:36 But ogres are allowed. ;) j/k 14:12:19 --- quit: Quartus__ ("used jmIrc") 14:12:34 --- join: Quartus__ (n=Quartus_@209.167.5.1) joined #forth 14:12:50 an ogre would be a trade-up 14:16:19 slava, were you referring to 'happy_guy'? Gavino sock-monkey. 14:17:41 --- join: happy_guy (n=gschuett@147.21.16.3) joined #forth 14:17:41 --- mode: ChanServ set +b *!*@147.21.16.* 14:17:41 --- part: happy_guy left #forth 14:32:27 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 14:58:18 --- join: doublec (n=doublec@202.180.114.137) joined #forth 14:59:05 --- join: arcus_ (n=Miranda@130.195.209.73) joined #forth 15:02:05 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 15:02:14 --- mode: Quartus set -b *!*@147.21.16.* 15:03:35 fyi: http://forth.pastebin.ca/757004 15:06:10 --- join: happy_guy (n=gschuett@147.21.16.3) joined #forth 15:06:17 hello all 15:06:32 Hello. 15:10:05 does gforth support tcp/ip under linux? 15:10:25 can a gforth on box a for example comunicate with one one box b? 15:12:32 I haven't done any TCP/IP with Gforth recently, but I'm aware of at least a rudimentary httpd available for it, so yes. 15:13:26 --- quit: arcus_ (Connection reset by peer) 15:16:39 I surf around to a lto fo free sotware sites. 15:16:42 lot 15:16:48 and I see lots fo interesting apps. 15:19:44 Here's a note from Fondren back in '02 showing a socket-listener that uses lib.fs: http://groups.google.com/group/comp.lang.forth/browse_thread/thread/f781f2cbc40d953c/8b63e246a0cf4284?lnk=st#8b63e246a0cf4284 15:20:15 --- quit: arcus (Connection timed out) 15:35:02 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 15:35:02 --- mode: ChanServ set +o tathi 15:35:08 Hi tathi. 15:35:22 Hi Quartus 15:36:21 remind me what lib.fs is again? 15:36:26 Part of gforth. 15:36:34 For accessing external libraries. 15:37:15 gforth also comes with a unix/socket.fs that has some rudimentary stuff (using lib.fs) 15:39:22 --- join: KragenSitaker (n=kragen@panacea.canonical.org) joined #forth 15:39:59 ah 15:40:12 hi folks. anybody else been reading rich jones's new forth in gas? 15:40:20 i've been enjoying it a lot. 15:40:28 Haven't heard of it. 15:40:40 Nor Rich Jones, I don't think. 15:40:48 it's more a pedagogical exercise than anything else --- he has it at http://www.annexia.com/forth 15:41:06 i'd heard of him because he added bounds-checking to gcc 13 years ago; apparently he's at red hat now 15:41:09 not found 15:41:12 doh 15:41:13 sorry 15:41:27 http://www.annexia.org/forth 15:42:31 Another partial Forth that doesn't make it over the CREATE/DOES> hurdle! 15:42:33 i've found it easier reading than F-83 but maybe that's because it's written in a language I more or less know 15:42:41 you mean, in that it doesn't have DOES>? 15:42:51 That's what I mean. A Forth without CREATE/DOES> isn't a Forth. 15:43:31 i think i can add it 15:43:37 The ground is veritably littered with these things, half-made. 15:43:48 yeah 15:44:14 Give it a try; it needs to pass the CREATE tests in Hayes' coretest. 15:44:22 Esp. WEIRD. 15:44:23 Do you have any other implementations you'd suggest reading? 15:44:28 Even my really basic Forths from when I was first learning the language implemented CREATE/DOES>. It was a bit of a challenge for me then, but it worked, doggone it!! 15:44:51 Ideally something shorter than jonesforth rather than longer? 15:45:05 --- nick: arke -> not_arke 15:45:15 jonesforth is about 4000 lines 15:45:15 I've heard it said that eForth is a good model to study; not sure if it has the elusive CREATE/DOES> though. 15:45:30 Yes, it does; it's an ANSI Forth. 15:45:40 Then it might be worth a look. The CREATE/DOES> thing is a touchstone. 15:46:07 If the infrastructure can't support CREATE/DOES>, it's not properly thought-out. 15:46:14 --- nick: not_arke -> arke 15:46:36 Jonesforth seems to be a pretty standard indirect-threaded interpreter. 15:46:52 There's a note in the source that DOES> is impossible because of the basic design of the dictionary. 15:47:54 well, it doesn't have a data field address as such; just a data field. 15:48:13 RetroForth is a neat little native-code Forth; the source is pretty readable. You could also then look at the ANS Standard layer I wrote for it, and see how it can go from what it is, to a Standard system. 15:48:15 I think "impossible" is overly pessimistic. 15:48:40 Thanks! 15:48:44 His words: "DOES> isn't possible to implement with this FORTH because we don't have a separate data pointer." 15:49:06 Yeah, I see that. I just don't believe it :) 15:49:24 I built a CREATE/DOES> for RetroForth that might be informative. 15:49:54 Any Forth that is subroutine threaded or direct threaded also lacks such a pointer, but that's precisely how I implemented my CREATE/DOES> (first with direct-threading, and then with subroutine threading). 15:50:47 kc5tja: Right, but those Forths have to do some amount of native-code compilation even for ordinary words, and right now jonesforth doesn't have an assembler. 15:51:08 KragenSitaker, no -- they don't. 15:51:24 RetroForth is native-code, but that's not a requirement for implementing CREATE/DOES>. 15:51:41 It can be implemented in indirect-threaded, direct-threaded, etc. 15:51:55 Quartus: I know it's not a requirement for implementing CREATE/DOES> 15:52:28 Ok. But direct-threaded implementations don't require native-code generation. Native-code starts with subroutine threading. 15:52:44 It's just that it's straightforward to implement CREATE/DOES> if you can easily assemble a trampoline to point the CFA at 15:53:02 Regardless of whatever else you've done to yourself in your dictionary implementation. 15:53:29 What you need to be able to do is back-patch a reference inside the latest CREATE. 15:53:40 --- join: edrx (i=edrx@189.25.176.120) joined #forth 15:54:02 Well, I've never actually been inside a direct-threaded implementation, but how do you handle colon definitions in them without generating native code? 15:54:35 I'd think you'd at least need to assemble something like MOV $3020852, EAX; JMP DOCOL for each new colon definition 15:55:51 Aftershock quake from the earthquake from yesterday. w00t! 15:55:57 (Sorry if I'm asking dumb questions.) 15:56:21 KragenSitaker, that's one way to do it, certainly; you can have CALL or JMP 15:57:31 Where is the address of something that pushes the program counter onto the return stack and points the program counter at the beginning of the colon definition? 16:00:20 Yes, usually the ENTER routine. 16:02:04 Well, that's the way I know to implement colon definitions in a direct-threaded implementation, even though I've never done it. But that involves generating native code at run-time. What's the approach for supporting colon definitions in a direct-threaded FORTH that doesn't require generating native code at run-time? 16:02:20 I find indirect and direct threading arcane, though -- I think starting at native-code is all that makes sense in virtually every circumstance. 16:02:54 I've been coming to the same conclusion about interpreters in general lately, not just in the FORTH context. 16:03:49 But I'm interested in what you were saying earlier, that "direct-threaded implementations don't require native-code generation." 16:05:19 Ya, me too. I thought you had to be able to generate at least CALL or JMP instructions. 16:06:13 Also, where do I find Hayes' coretest these days? ftp://taygeta.com/pub/Forth/ANS/tester.fth seems to be a broken link at the moment, and it doesn't seem to be included in the pForth .deb from Debian, which I thought it would be. 16:07:05 wrong directory 16:07:18 pub/Forth/Applications/ANS maybe? 16:07:25 just go to the web site; it's listed on their Forth page 16:07:38 thanks 16:08:09 KragenSitaker, perhaps it's my own fading understanding of the various threading approaches. There are hybrids, and various ways to go about it. 16:08:55 Quartus: Overall, I agree. All of my systems since the very first have been subroutine threaded. 16:10:59 I've been toying with the question of how much interactive computing power I could squeeze into a microcontroller-based device that costs under US$10. 16:11:46 A lot of them are Harvard-architecture with all the code space being flash, which makes subroutine threading and native compilation somewhat less desirable. (Although they tend to have buttloads more flash than they have RAM.) 16:12:16 But also, token threading might be warranted in that kind of environment. 16:12:37 --- part: edrx left #forth 16:17:27 Memory would have to be very, very tight to warrent token threading. I believe in full code- and data-space segregation. 16:19:12 Well, if your microcontroller budget is US$3, you can get a microcontroller that includes 40kiB of SRAM last I checked. 16:20:02 Is that what you mean by "very, very tight"? 16:20:49 does gforth hae ability to manipualte files and directories? 16:20:55 ormoduels to do so? 16:21:04 manipulate 16:21:11 (darn I need larger keyboard) 16:21:48 So what is "DOES> 1 + DOES> 2 + ;" supposed to do? 16:21:58 tathi: thanks, that worked 16:22:05 hmm 16:22:14 KragenSitaker, not sure ... I'd guess it's implementation dependant 16:22:56 arke: That's the "WEIRD" test Quartus was saying to "make sure to get right" ;) 16:23:00 it makes the word do 1 + and then replace the action of the most recently CREATEd word with 2 + 16:23:08 . 16:24:21 ahhh! thanks! 16:24:59 sneaky, huh? 16:25:05 :) 16:25:08 yes :) 16:25:59 gforth does have directory manipulation words, but the documentation doesn't seem to have made it into the info pages somehow 16:26:01 ok can I ask a zany question about something I saw online? 16:26:18 is there some wiki for such stuff? 16:26:20 you could try reading under read-dir in file 'prim' in the source 16:26:35 one sec, must email myself that 16:31:09 (I was thinking of personal computers in the price range of these devices here: http://courageous.murch-sitaker.org/~kragen/electronics/ 0 16:31:13 s/0/)/ 16:31:41 KragenSitaker, tight means the app won't fit in the memory provided, such that you need to go to something compressed, i.e. token threading 16:31:51 Suggests to me that the hardware wasn't appropriately chosen. 16:31:59 --- quit: forther ("Leaving") 16:32:25 yes, WEIRD is a DOES> that does a DOES> 16:35:00 --- join: skas (n=skas@203-217-61-74.perm.iinet.net.au) joined #forth 16:35:24 Well, my objective is to figure out how to get maximum functionality out of some particular inexpensive hardware. If the limiting factor on what I can do with that hardware is code space and not, say, execution speed or power consumption, then it seems like token threading might be the Right Thing. 16:35:34 BUt I probably shouldn't speculate so much. Thanks for all your advice and help! 16:35:48 Right, prototype and then decide 16:59:08 OK, so the gforth directory words are as follows: 16:59:09 open-dir ( c_addr u -- dir-id ior ) 16:59:09 close-dir ( dir-id -- ior ) 16:59:09 read-dir ( c_addr u1 dir-id -- u2 flag ior ) 16:59:40 read-dir works exactly like the Standard word READ-LINE, except it returns the name of the next "entry" in the directory. 17:00:23 hmm 17:11:11 I mean is using files not soemthing done when using somethign liek forth? 17:11:38 Do have a look at the Forth Standard. There are a wide range of words for working with files. 17:11:59 ah 17:12:21 There's a whole wordset for it. 17:12:45 googling now 17:12:57 There are links in the channel topic. 17:13:12 http://lars.nocrew.org/dpans/dpans.htm 17:13:33 http://quartus.net/dpans for that matter 17:15:06 does optional mean anything 17:15:38 ok 17:15:39 A Standard system can just contain CORE and still call itself Standard. The other wordsets are all optional, technically. This is not important, however. 17:15:47 k 17:31:31 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 17:32:29 --- quit: TreyB_ (Read error: 110 (Connection timed out)) 17:35:53 --- quit: skas ("Ex-Chat") 17:38:32 there are Standard systems that run without operating systems or filesystems, which is why the file-handling words are optional. 17:38:53 Also true. 17:48:49 that sounds awesome 17:48:53 I saw the colorforth iso 17:49:05 but how owuld I know if my hardware was supported? 17:49:12 wow 17:49:15 without an os 17:49:18 trippy 17:49:45 You don't; it's virtually undocumented, and completely unsupported. If you're not ready to try whacking away at it until you think it's working, you're out of luck. 17:50:12 heh 17:50:20 well linux taught me to wakk and wak 17:50:26 esp when I didnt know much about x 17:50:34 heh 17:50:50 are said forths without os always commadn line or are there graphics too? 17:51:34 There aren't a huge number of Forths that don't run under an OS, nowadays. A few, usually text-based. 17:54:23 is there a forth cpan? 17:54:33 No such animal. 17:58:13 now forth is supposed to allow great ability to build up an app from scratch, so much so that the particular solution will be nicer than something borrowed...?? 17:58:39 --- part: doublec left #forth 17:59:02 I don't think there's any one single reason why there isn't a CPAN equivalent in Forth. It's been discussed before. Perl is a substantially different thing, operating in a different niche. 18:02:14 hmmmm 18:05:36 --- join: zpg (n=user@81-86-212-166.dsl.pipex.com) joined #forth 18:05:39 hi 18:05:44 Hey. 18:12:39 How goes it? Forthing? 18:18:44 naturally. 18:18:53 how's the book progressing? 18:19:29 In fits and starts. I work on it as time permits. 18:19:49 * zpg nods 18:24:07 I have two other manuscripts to complete, as well. One day :) 18:25:01 heh heh. 18:27:59 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 18:28:49 can I ask what else you're writing? 18:29:07 A book on random numbers, and one on the history of Pi. 18:29:47 my brain is frozen 18:29:49 help 18:30:15 in regards to forth 18:30:32 how is forth's niche different than perls? 18:30:51 is forth only for low level micro machines? 18:31:14 It's not so black and white as all that. Perl grew out of Awk; it started as a sysadmin language, and is still strong there. 18:31:31 that explains all my admin friends knowing it 18:32:07 Forth began with resource-limited hardware; it's strong there, but is otherwise also a general-purpose language. 18:32:39 can you have forth use the resources it saves, thereby speeding up processing? 18:32:52 like do parallel processing? 18:33:00 Origin-wise, Perl is aimed at text processing, Forth at manipulating hardware ... all vague generalizations, but they're not in the same space, really. 18:33:01 or some sort 18:34:11 happy_guy, consider. Resources are things like processing cycles, and memory. If you get a task done in less memory, the remaining memory is still available. If you get something done faster, you can do more of it in the same time. 18:34:21 ah yes 18:34:23 ok 18:34:52 Often memory is traded for speed; speed for memory. It's not that simple, either. 18:36:46 when you save a bunch of data using forth, for later display and analysis, what does orth use to store this data? 18:36:54 -forth 18:37:10 what do you mean, what does forth use? 18:37:23 like say you need to turn off your computer and goto bed 18:37:30 What do you store files in? 18:37:36 what does forth do to save that data? 18:37:48 so you can just write to disk? 18:38:02 or does it do something like save an image al la smalltalk 80 18:38:06 Forth doesn't do a blessed thing to save data. A program written in Forth might write it to disk, or use an automatic chisel to carve it into stone, for all that maters. 18:38:15 lol 18:38:37 ok so foth has no problems writing to disk..or files...and retrieveing them later....ok 18:38:48 It's a _general_ _purpose_ _programming_ _language_. 18:38:52 ok 18:38:57 brain unfrozen 18:41:43 genela housekeeping question: how do I save my previously defined words between invokations of gforth? 18:41:49 general even 18:42:25 You write source in files, and include it at startup from the command-line, or via include statements from inside gforth. 18:45:51 --- quit: tathi ("leaving") 18:49:39 ok like in tcl when you source a file. 18:49:56 Like in virtually every programming language. 18:50:28 heh 18:50:39 is your startup file huge? 18:50:52 No. 18:55:26 you just know howto use existing words in weird and wonderful ways? 18:55:38 Something like that. 18:55:47 nice 19:09:22 --- join: KNY (n=KNY@samp.rh.rit.edu) joined #forth 19:12:42 --- join: madgarden (n=madgarde@bas2-kitchener06-1096651024.dsl.bell.ca) joined #forth 19:23:42 --- quit: wossname (Connection timed out) 19:27:44 im stating to get the hang of it. 19:27:55 9a2 - ba ( a b -- result ) 19:28:00 this one was a bit of a bugger 19:28:06 now seems simple though 19:28:16 9a^2 19:29:01 : 2c6 swap dup 9 * rot - * ; 19:29:26 10 3 2c6 . 870 ok 19:29:51 although someone hre said rot is to be avoided 19:29:54 the other day 19:31:05 why who knows 19:32:02 You'll learn soon enough. 19:33:11 --- join: arke_ (n=arke@p54A7BE51.dip.t-dialin.net) joined #forth 19:36:57 In reply to "<@Quartus> There aren't a huge number of Forths that don't run under an OS, nowadays." 19:38:38 I don't think that's true. I suspect that the vast majority of different implementations of Forth are running on microcontrollers, and perhaps the majority of instances of Forth are Open Firmware. 19:39:07 KragenSitaker: I disagree. 19:39:09 I think the number of Forth instances installed on top of operating systems is relatively small. 19:39:24 Most Forth software running on embedded devices are built on a host machine, then downloaded via a tether onto the target. 19:40:22 happy_guy, that can be done without the dup and rot 19:40:25 That's true. 19:41:02 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 19:42:28 kc5tja: Oh, I think you're saying that because it's built this way, the Forth is running on the OS of the host machine as well as on the microcontroller itself? 19:43:56 And therefore this is unlikely to give the number-of-implementations prize to the operating-system-less camp? 19:45:15 there's no way to drop a specific item from the stack, is there? 19:45:21 (At first I didn't see how what you said related to what I said.) 19:45:36 KNY: generally you have to move it to the top of the stack before dropping it. 19:45:46 KragenSitaker, that's what I thought 19:45:56 KNY: except there's NIP I think 19:46:19 Hmm, maybe i shouldn't be answering questions like that ;) 19:46:25 KragenSitaker: No. The Forth on the host machine builds a static, binary image (akin to the output of a C compiler and linker output), which is then placed in the microcontroller's ROM. 19:46:43 KragenSitaker, I'll look into restructuring my code :) 19:47:41 kc5tja: Yes, I know how target compiling works. Are you saying that you don't think of the microcontroller as "running FORTH" then? 19:48:18 KragenSitaker, for reference, NIP does a "SWAP DROP" meaning it would work for my given example, but not any arbitrary depth 19:48:33 Oh, most likely not. To me, you're "running Forth" if you include the bulk of the Forth runtime environment, meaning you can hack on the device to program the device itself. 19:48:35 --- join: arke__ (n=arke@p54A7F565.dip.t-dialin.net) joined #forth 19:48:38 Most modern environments no longer do this. 19:50:13 --- quit: arke (Read error: 110 (Connection timed out)) 19:50:13 --- nick: arke__ -> arke 19:51:32 kc5tja: I guess I can see that point of view. 19:54:01 An application written in Forth is not a Forth, any more than an application written in C is a C compiler. 19:54:40 A Forth, extended to contain an application, and run on a target -- that's a Forth. That's a rare animal. 19:54:56 Nowadays, at any rate. As kc5tja said. 19:55:10 Yeah, few commercial applications will include the whole interpreter environment. 19:55:37 A possible exception to this would be space applications, where it's strongly desired to be able to fix bugs with a probe gazillion miles out into space. :) 19:55:59 Maybe. 19:56:26 Well, I guess I was more interested in the target environment, though; the original discussion was about why the file words weren't in the ANS core. 19:56:45 CORE simply defines the minimum expectation. 19:56:52 Well, I for one am glad that they aren't. :) 19:57:01 * kc5tja prefers using Forth with blocks. But I'm backwards like that. 19:57:04 A given target environment need not be a Standard Forth, even if it started as one. 19:57:05 Which is more about the facilities available in the target environment than the facilities that the compiler could conceivably make use of. 19:57:18 Oh great. 19:57:27 * kc5tja may get to use his chanop powers too, today. 19:57:38 ? 19:57:41 Hm? Am I in danger of being kicked? 19:57:49 If a gentleman by the nick of bjorkintosh joins, kickban him immediately, assuming I'm not here. 19:57:51 I wasn't trying to be obnoxious --- sorry if I came across that way. 19:57:54 ah ok 19:58:00 Oh. 19:58:04 KragenSitaker, I'm sure it's not you. 19:58:09 KragenSitaker: No, there's a troll in #lisp, and they're telling him to join #forth. 19:59:10 Shields raised. 19:59:36 He won't shut up about how Forth is just such a useless, non-commercially-viable language, etc. etc. etc. 19:59:51 Someone in #lisp wanted to bring up a new Lisp environment by first raising Forth to bootstrap with. 19:59:58 Finally, I /ignore'd him. 20:00:01 Hardly useless; it's clearly very important to him. 20:00:05 But he's still not shutting up about it. 20:00:17 He needs an outlet for his impotent rage. 20:00:28 He won't find such an outlet here. 20:00:49 He doesn't realize I'm a chanop here, in ##forth, and in #c4th-ot. :) 20:01:13 (yeah, he's too stupid to /who me) 20:03:06 Who's the person who wants to build their Lisp atop a Forth? 20:03:36 It's not really important. 20:03:47 I'd rather not divulge people's names without their OK. 20:03:52 It's not? I think it's an interesting idea, and I'd like to chat with them about it. 20:04:06 Lisp isn't exactly turning the world on with its smile, either. 20:04:11 Heh. 20:04:28 --- quit: arke_ (Connection timed out) 20:05:42 Yeah, Haskell is doing a much, MUCH better job at that. 20:05:43 Have you seen http://e7code.org/ by the way? 20:05:45 As is OCaml. 20:07:03 don't forget Erlang. 20:07:22 is there a way to get the depth of the return stack? 20:07:28 DEPTH 20:07:51 kc5tja, how can I tell it to get the return stack instead of the normal one? 20:07:58 r DEPTH ? 20:08:56 --- join: Quartus____ (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 20:09:33 KNY: I do not believe there is a word for determining return stack depth. 20:09:45 hmmm 20:09:54 there isn't. Consult your implementation's docs. 20:09:57 If your Forth exposes them, you can use RP0 and RSP to compute the depth manually. But this is very, very platform specific. 20:11:21 why do you want to? 20:11:55 I don't think I want to now that I've taken a closer look at my code 20:13:03 often the absence of a facility can be taken as a warning against its use 20:17:12 I see PoppaVic has devolved into a constant stream of insane homilies 20:18:07 --- join: arke_ (n=arke@p54A7DB91.dip.t-dialin.net) joined #forth 20:25:30 --- quit: Quartus (Read error: 110 (Connection timed out)) 20:30:53 --- quit: Quartus____ () 20:31:29 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 20:31:29 --- mode: ChanServ set +o Quartus 20:35:29 --- quit: arke (Read error: 110 (Connection timed out)) 20:35:30 --- nick: arke_ -> arke 21:01:01 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 21:09:40 --- join: Quartus___ (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 21:09:49 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 21:26:17 --- quit: Quartus (Connection timed out) 22:43:20 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 22:46:08 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 23:32:36 --- quit: forther ("Leaving") 23:59:59 --- log: ended forth/07.10.31