04:56:56 --- log: started forth/13.09.29 04:56:56 --- join: clog (~nef@bespin.org) joined #forth 04:56:56 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN | links: qr.net/gforth isforth.com forthfreak.net qr.net/ans_standard | Buy forth chips from www.greenarraychips.com' 04:56:56 --- topic: set by foucist!~foucist@ps14150.dreamhost.com on [Thu Apr 26 19:32:21 2012] 04:56:56 --- names: list (clog impomatic sirdancealo2 epicmonkey kludge` newcup true-grue ASau`` jyc dys tangentstorm carc nighty- mtm nisstyre dessos C-Keen ErhardtMundt djinni c00kiemon5ter jevin_ ttmrichter TodPunk kulp daowee plover karswell bluekelp cataska koisoke rprimus Adeon yunfan dzho OrangeTide yiyus Backer Vuokko Anarch malyn) 05:05:10 --- join: _spt_ (~Jaat@unaffiliated/-spt-/x-5624824) joined #forth 07:05:21 --- quit: epicmonkey (Remote host closed the connection) 07:06:18 --- join: epicmonkey (~epicmonke@188.134.41.115) joined #forth 07:14:23 --- join: Gracana (~Gracana@phoenix.pnnk.org) joined #forth 07:15:07 Hey all, I'm getting started with forth and I have a question about programming interactively. 07:15:28 When you redefine a definition, as I understand it, the new definition is created but previously compiled words still point to the old one. 07:16:01 If you want to, say, modify the definition to fix a word that depends on it, do you have to recompile everything? Is there a way around that? 07:17:10 Gracana: No. The whole point is that you can't redefine words that are already in use. 07:17:29 I mean you could, I guess, manipulate the dictionary but that would be a non-trivial undertaking. 07:17:32 The whole point of Forth is that you can do everything :) 07:17:42 <_spt_> in Jupiter ace forth you Redefine name, it removes the older version to the new version 07:18:11 _spt_: Sounds like a really dumb approach. 07:20:24 So if you discover a bug in a word that lots of other words depend on, what is the best course of action? 07:20:31 You can, for example, make a construction that will compile specific word with embedded find or execute (i.e. deferred word). 07:21:47 Gracana: Don't make the buggy word in the first place. Failing that, recompile it all, yes. 07:21:58 dynamic binding or static one -- it's all up to you, as Forth programmer :) 07:22:19 "don't write bugs" is pretty ridiculous advice 07:22:29 but that is the answer, ok 07:22:52 That seems like a significant barrier to using forth interactively. Hmmmm. 07:26:12 Ah so one trick is to make the new definition at the end of the dictionary as normal, then patch the old definition to point to the new one. http://www.ece.cmu.edu/~koopman/forth/4thdim_7_4.pdf 07:27:12 I think it would be interesting to take that one step further and make the definitions independent of their declarations, such that the dictionary is a list of words and references to memory locations where those words are defined. 07:30:12 --- join: Kumul (~nmz@adsl-64-237-233-87.prtc.net) joined #forth 07:30:29 --- join: kumool (~mool@adsl-64-237-233-87.prtc.net) joined #forth 07:37:46 --- join: RodgerTheGreat (~rodger@24-247-42-238.dhcp.mrqt.mi.charter.com) joined #forth 07:37:48 <_spt_> Gracana: if you are just getting started in FORTH there is some very useful information here http://www.jupiter-ace.co.uk 07:38:40 Cool, thanks, I've actually ended up there a couple times but I haven't really browsed the site. 07:44:08 Oh I'm curious, I don't suppose one of you is tschak909 from youtube? 07:44:53 <_spt_> no, this is me http://www.youtube.com/user/JupiterAceArchive#g/u 07:45:56 cool 07:46:35 after learning about the jupiter ace I went to ebay to see if I could buy one cheap... nope :X 07:46:56 vintage computing stuff always seems to be very expensive on ebay 07:46:58 they're a bit rare 07:47:09 <_spt_> these days about £2,500 07:47:13 Oh, really? 07:47:16 wow :O 07:48:36 _spt_: is jupiter-ace.co.uk your website? 07:48:48 <_spt_> it is one of many 07:49:42 I've been there a few times when I've been searching for Forth books! 07:49:48 <_spt_> the Ace was one of my first machines I bought, 07:49:57 I think I've got about 30 Forth books now :-) 07:50:58 sounds like quite a collection 07:51:04 <_spt_> we are just ORCing this book right now http://www.jupiter-ace.co.uk/book_forth_ISBN-0894331736.html 07:51:05 do you have Scientific Forth? 07:51:06 impomatic, what would you recommend for someone with some programming/computer experience who is new to forth? I'm reading Leo Brodie's Starting Forth and it is a little too cutesy and simplistic. 07:51:46 "The Complete Forth" is another fairly well-regarded introductory book that cuts to the chase faster 07:52:01 I'm going to start reviewing them books soon. I haven't got Scientific Forth. The cheapest I've seen it was £48 GBP. While I was wondering whether to buy, someone else grabbed it. 07:52:12 and Programming Forth is also pretty good: http://www.mpeforth.com/arena/ProgramForth.pdf 07:52:44 Thanks, I'll see if I can buy copies of those. 07:52:54 er 07:53:19 a copy of the complete forth anyway 07:53:27 yay for pdfs being available for some things 07:53:50 for a more intermediate programming text I think "Object Oriented Forth" is a really good read 07:54:02 the title is a bit misleading as it is more about data structures in forth 07:54:20 it takes a nice step-by-step approach that considers many tradeoffs 07:54:40 So is that about using data structures and OO design in a normal forth, or is it specific to a forth that supports such things? 07:55:02 it starts with an ordinary forth and extends it with data structures 07:55:09 ah fair enough 07:55:15 and mechanisms for creating abstract datatypes, etc 07:55:29 * ttmrichter is away: 好记性不如烂笔头 07:55:33 "Mastering Forth" and "The Complete Forth" are both decent, no-nonsense introductions to Forth. At the moment I'm reading "Student's Forth" which seems pretty good. 07:56:25 "Advanced Forth" actually costs more than "Scientific Forth" on amazon.co.uk 07:58:14 <_spt_> this one http://www.jupiter-ace.co.uk/book_forth_ISBN-0905104714.html 07:58:29 I really wish somebody would re-typeset Scientific Forth and publish a new edition. It is not a pleasant-looking book and the code examples are difficult to read, but it contains a lot of interesting ideas 07:59:28 typesetting code in a variable-width font with inconsistent capitalization should be a crime 08:00:12 :X 08:00:36 That sounds awful. I'm not sure if I'd have given it a chance after I ran into that, haha. 08:01:02 it is pretty much the definition of substance over style 08:01:14 Well that's good. 08:01:32 where else are you going to find a book describing numerical methods in detail that uses forth for all the example code 08:02:33 Are there any books that explore forth from a modern perspective? Most forth books seem to be 30 years old or so. 08:02:55 oh this Programming Forth book says revised in 2011, so 08:03:09 and copyright 2005 08:03:51 not that older books aren't worthwhile I'm just interested to see something that considers the latest developments in the language and computers/the way we use computers 08:07:57 forth is still thriving in the embedded development world but apart from breathless enthusiasts it seems to be more or less dead in the desktop world 08:09:01 when you're writing code that controls an entire machine, it's possible to simplify things by changing the problem, and forth can lead to very elegant solutions 08:09:48 when you're writing code that has to play nice with an OS, filesystem and countless pre-designed protocols which are inescapably complex you have a lot less room for cleverness 08:10:31 <_spt_> you have to be more creative 08:11:23 and there is something to be said for the ample resources of modern computers making programmer time more valuable than computer time in some situations, so for many applications higher-level languages can be more productive 08:11:34 _spt_: if you need cover scans / details for any books I have I'd be happy to send them. I assume you own all of the books already listed on the website? 08:11:42 Also modern compilers and high level languages and the way current processors are designed (with register remapping and tricks that are far more clever than your own stack manipulation is likely to be)... forth on the desktop seems more like something you'd pick because you enjoy it and know it well, than because it is the best tool for the job 08:12:28 Gracana: it is entirely possible to write optimizing compilers for forth, but in general I tend to agree 08:12:37 <_spt_> impomatic: I do, yes please do send in any scans. 08:14:02 In any case I think forth is pretty neat. My end goal is to design a MISC CPU and have it run a forth (or forth-like) environment of my design. 08:14:22 oh yeah, that's a golden application for forth 08:23:03 --- quit: c00kiemon5ter (Remote host closed the connection) 08:25:03 an example I like to use when describing the strengths and weaknesses of the forth approach is a web browser 08:25:27 if you had to write a totally standards-compliant web browser in forth, I don't think it would be much simpler than the same thing written in C 08:25:44 probably a little shorter, but not orders of magnitude 08:26:03 because the domain has a huge range of intrinsic, inescapable complexity 08:26:27 and cleverness in trying to get around that will be defeated by maintenance because it's changing constantly as well 08:26:57 on the other hand, suppose you had to write something that accomplishes the *purpose* of a web browser and can function however you like internally 08:27:51 in that case, you could radically simplify every aspect of the problem and you could likely come up with a program which does what you need in a couple pages of code 08:41:44 --- join: c00kiemon5ter (~c00kiemon@foss-aueb/coder/c00kiemon5ter) joined #forth 08:42:45 that's a goode way to put it 08:51:54 --- quit: sirdancealo2 (Remote host closed the connection) 09:01:15 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 09:12:42 --- quit: sirdancealot (Ping timeout: 256 seconds) 09:26:10 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 09:50:23 --- quit: epicmonkey (Ping timeout: 245 seconds) 10:27:24 --- quit: true-grue (Read error: Connection reset by peer) 10:28:00 --- join: true-grue (~quassel@95-27-122-236.broadband.corbina.ru) joined #forth 10:32:10 --- quit: c00kiemon5ter (Ping timeout: 264 seconds) 10:39:46 --- join: goingretro (~kbmaniac@host31-51-145-15.range31-51.btcentralplus.com) joined #forth 11:13:50 --- join: c00kiemon5ter (~c00kiemon@foss-aueb/coder/c00kiemon5ter) joined #forth 11:45:05 --- join: JDat (JDat@89.248.91.5) joined #forth 12:07:18 --- quit: plover (Ping timeout: 240 seconds) 12:10:33 --- quit: c00kiemon5ter (Ping timeout: 240 seconds) 12:11:15 --- join: c00kiemon5ter (~c00kiemon@foss-aueb/coder/c00kiemon5ter) joined #forth 13:27:04 --- log: started forth/13.09.29 13:27:04 --- join: clog (~nef@bespin.org) joined #forth 13:27:04 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN | links: qr.net/gforth isforth.com forthfreak.net qr.net/ans_standard | Buy forth chips from www.greenarraychips.com' 13:27:04 --- topic: set by foucist!~foucist@ps14150.dreamhost.com on [Thu Apr 26 19:32:21 2012] 13:27:04 --- names: list (clog nisstyre rixard plover c00kiemon5ter JDat goingretro sirdancealot RodgerTheGreat kumool Kumul Gracana impomatic kludge` newcup ASau`` jyc dys tangentstorm carc nighty- dessos C-Keen ErhardtMundt djinni jevin_ ttmrichter TodPunk kulp daowee karswell Backer Vuokko Anarch malyn yiyus OrangeTide dzho yunfan Adeon rprimus koisoke cataska bluekelp) 13:39:34 --- join: epicmonkey (~epicmonke@188.134.41.115) joined #forth 13:41:25 --- nick: ASau`` -> ASau 13:51:46 RodgerTheGreat: out of curiousity, do you really think that the purpose of web browser is to display raw content of some remote chunk of data on display? 13:51:59 That is essentially netcat. 14:03:06 I think he means like... A web browser's purpose in a certain case might be to read tweets, and you could write a pretty small and effective tweet-getter using forth. 14:04:22 Do you realize why hypertext exists at all? 14:05:06 --- quit: epicmonkey (Ping timeout: 256 seconds) 14:06:18 It is quite possible to use ftp client or even mail responder to fetch files by request. 14:06:47 And some people even did that in past. 14:08:22 No, I didn't. Boy, I sure am stupid! 14:10:05 I'm not interested in having an adversarial conversation with you. So... bye. 14:12:06 The point is that once you try to think about the proposed "write-a-special-client" way, 14:12:21 you'll understand why it is wrong, and why browsers do what they do. 14:23:16 --- quit: dys (Remote host closed the connection) 14:51:27 --- quit: JDat () 15:14:37 --- quit: nisstyre (Ping timeout: 256 seconds) 15:29:29 --- join: nisstyre (~yours@oftn/member/Nisstyre) joined #forth 15:46:26 --- quit: Gracana (Remote host closed the connection) 19:03:56 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 19:13:15 --- quit: ErhardtMundt (Ping timeout: 248 seconds) 19:57:35 --- quit: malyn (Ping timeout: 245 seconds) 19:58:08 --- join: malyn (~malyn@unaffiliated/malyn) joined #forth 20:00:51 --- quit: Kumul (Quit: Divided by 0) 20:05:13 --- quit: kumool (Ping timeout: 252 seconds) 20:16:18 --- join: Kumul (~nmz@adsl-64-237-233-87.prtc.net) joined #forth 20:16:23 --- join: kumool (~mool@adsl-64-237-233-87.prtc.net) joined #forth 21:40:46 --- join: Tod-Autojoined (~Tod@50-198-177-185-static.hfc.comcastbusiness.net) joined #forth 21:42:23 --- join: jevin (~jevin@72.12.217.220) joined #forth 21:44:43 --- join: jyc_ (~jyc@173.245.6.163) joined #forth 21:45:00 --- join: ttmrichter_ (~ttmrichte@gertm.eu) joined #forth 21:46:52 --- quit: ttmrichter (Disconnected by services) 21:46:55 --- nick: ttmrichter_ -> ttmrichter 21:47:22 --- join: yours_truly (~yours@bas2-hamilton02-845478447.dsl.bell.ca) joined #forth 21:49:57 --- quit: Kumul (*.net *.split) 21:49:57 --- quit: nisstyre (*.net *.split) 21:49:58 --- quit: goingretro (*.net *.split) 21:49:58 --- quit: sirdancealot (*.net *.split) 21:49:58 --- quit: jyc (*.net *.split) 21:49:58 --- quit: jevin_ (*.net *.split) 21:49:58 --- quit: TodPunk (*.net *.split) 21:53:12 --- join: goingretro (~kbmaniac@host31-51-145-15.range31-51.btcentralplus.com) joined #forth 21:53:36 --- join: ASau` (~user@p5797F235.dip0.t-ipconnect.de) joined #forth 21:56:20 --- quit: ASau (Ping timeout: 245 seconds) 21:56:37 --- quit: goingretro (*.net *.split) 21:57:39 --- join: sirdancealot (~sirdancea@194.228.11.84) joined #forth 22:02:23 --- join: goingretro (~kbmaniac@host31-51-145-15.range31-51.btcentralplus.com) joined #forth 22:29:49 --- quit: yours_truly (Ping timeout: 256 seconds) 22:38:10 --- quit: tangentstorm (Quit: WeeChat 0.3.2) 22:52:30 --- quit: kumool (Read error: Connection reset by peer) 22:52:48 --- join: nisstyre (~yours@oftn/member/Nisstyre) joined #forth 23:38:40 --- nick: ASau` -> ASau 23:59:59 --- log: ended forth/13.09.29