00:00:00 --- log: started forth/17.02.03 00:22:55 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 00:30:11 --- quit: wa5qjh (Remote host closed the connection) 00:33:16 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 00:45:09 --- join: John[Lisbeth] (~user@2601:601:8f01:a6a0:65fb:d6da:fe19:5f9b) joined #forth 00:53:56 --- quit: wa5qjh (Read error: Connection reset by peer) 00:56:18 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 00:56:55 --- quit: wa5qjh (Remote host closed the connection) 00:59:44 --- quit: ACE_Recliner (Ping timeout: 258 seconds) 00:59:54 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 01:17:15 --- quit: wa5qjh (Read error: Connection reset by peer) 01:19:01 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 01:21:34 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 01:23:26 --- quit: wa5qjh (Read error: Connection reset by peer) 01:25:26 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 01:26:37 --- quit: ACE_Recliner (Ping timeout: 260 seconds) 01:26:38 --- quit: wa5qjh (Read error: Connection reset by peer) 01:28:38 --- join: wa5qjh (~Thunderbi@121.54.90.150) joined #forth 01:29:35 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 02:11:04 --- join: proteusguy (~proteus-g@i118-21-151-37.s30.a048.ap.plala.or.jp) joined #forth 02:11:08 --- mode: ChanServ set +v proteusguy 02:11:35 --- quit: ACE_Recliner (Remote host closed the connection) 02:41:02 --- quit: proteusguy (Remote host closed the connection) 02:42:15 --- join: proteusguy (~proteus-g@i118-21-151-37.s30.a048.ap.plala.or.jp) joined #forth 02:42:15 --- mode: ChanServ set +v proteusguy 03:03:49 --- quit: wa5qjh (Remote host closed the connection) 03:10:54 --- quit: mnemnion (Remote host closed the connection) 03:40:58 --- quit: nighty (Quit: Disappears in a puff of smoke) 04:27:29 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 05:50:45 --- join: GeDaMo (~GeDaMo@212.225.112.221) joined #forth 05:51:04 --- join: newuser|52731 (531c5b13@gateway/web/cgi-irc/kiwiirc.com/ip.83.28.91.19) joined #forth 05:52:08 --- quit: newuser|52731 (Client Quit) 06:10:29 --- quit: John[Lisbeth] (Ping timeout: 255 seconds) 07:57:18 --- join: neceve (~ncv@84.232.162.68) joined #forth 07:57:18 --- quit: neceve (Changing host) 07:57:18 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 08:19:45 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 09:56:42 --- quit: diginet2 (*.net *.split) 09:57:02 --- log: started forth/17.02.03 09:57:02 --- join: clog (~nef@bespin.org) joined #forth 09:57:02 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN | http://forthworks.com/forth/standards/DPANS/ | www.greenarraychips.com | https://github.com/mark4th' 09:57:02 --- topic: set by I440r!~mark4@138-229-170-157.dhcp.ftwo.tx.charter.com on [Fri Jan 27 23:46:59 2017] 09:57:02 --- names: list (clog Zarutian neceve GeDaMo nighty +proteusguy meff` karswell` true-grue joneshf-laptop midre reepca MrBusiness impomatic dys fiddlerwoaroof Quozl` rpcope koz_ cajg nighty- DGASAU CORDIC Uniju APic proteus-guy josh5tone M-jimt jyf phadthai dograt zy]x[yz irsol z0d newcup groovy2shoes cantstanya bluekelp segher ovf Vendan carc eldre pdewacht_ nerfur ggherdov`___ pointfree taij33n a3f dzho +crc yunfan malyn koisoke djinni) 09:57:17 --- join: diginet2 (~diginet@107.170.146.29) joined #forth 09:57:24 --- join: hexagon5un (~elliot@162.243.71.143) joined #forth 09:57:46 --- join: gordonjcp (~gordonjcp@ilyushin.gjcp.net) joined #forth 10:00:30 --- quit: ggherdov`___ (Ping timeout: 240 seconds) 10:00:32 --- quit: meff` (Ping timeout: 260 seconds) 10:02:34 --- join: ggherdov`___ (sid11402@gateway/web/irccloud.com/x-frxtwkfltedidtcp) joined #forth 10:04:32 --- join: jeremyheiler (sid81469@gateway/web/irccloud.com/x-watlpmozkiklbvlw) joined #forth 10:04:59 --- quit: ggherdov`___ (Excess Flood) 10:06:11 --- join: ggherdov`___ (sid11402@gateway/web/irccloud.com/x-gsrycxtzbbivcmjy) joined #forth 10:15:50 --- quit: Zarutian (Ping timeout: 248 seconds) 10:23:31 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:24:37 --- quit: Zarutian (Read error: Connection reset by peer) 10:24:44 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:52:27 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:a5fa:71e9:beca:8b7c) joined #forth 11:10:58 --- quit: karswell` (Remote host closed the connection) 11:12:26 --- join: karswell` (~user@164.209.208.46.dyn.plus.net) joined #forth 11:20:42 --- nick: karswell` -> karswell 11:43:42 --- join: gravicappa (~gravicapp@ppp83-237-163-141.pppoe.mtu-net.ru) joined #forth 11:57:59 --- join: dual (~bonafide@cpe-74-75-153-119.maine.res.rr.com) joined #forth 12:01:05 --- quit: impomatic (Quit: http://corewar.co.uk) 12:25:21 --- quit: gravicappa (Ping timeout: 252 seconds) 12:29:48 --- join: impomatic (~impomatic@host86-186-214-39.range86-186.btcentralplus.com) joined #forth 12:59:17 --- join: impomatic_ (~impomatic@host86-186-214-39.range86-186.btcentralplus.com) joined #forth 13:00:30 --- quit: impomatic (Ping timeout: 240 seconds) 13:00:43 --- nick: impomatic_ -> impomatic 13:25:10 best modernish Forth book? my friend wants my recommendation, but I picked up Forth from here and there, so.. 13:53:43 --- quit: GeDaMo (Remote host closed the connection) 13:54:53 --- quit: mnemnion (Ping timeout: 255 seconds) 13:59:29 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:8581:f390:261a:9eb7) joined #forth 14:00:21 --- join: mnemnia (~mnemnion@2601:643:8102:7c95:28ce:ed20:d099:a97a) joined #forth 14:01:26 --- join: mnemnion_ (~mnemnion@2601:643:8102:7c95:a119:b834:4a76:c5e6) joined #forth 14:03:13 z0d: I think "Mastering Forth" is really good as a non-beginner Forth book. afaik it is the sequel to "Thinking Forth" 14:03:13 I have a clean copy and I see they are hard to get so I'm considering scanning it. 14:03:13 How new to Forth is your friend? What is (s)he looking to do with Forth? 14:03:13 Someone needs to write a Forth book for advanced forthers with more far-out concepts like sourceless Forth etc. 14:03:53 --- quit: mnemnion (Ping timeout: 255 seconds) 14:04:43 he is not totally new to the Forth concept 14:04:47 --- quit: mnemnia (Ping timeout: 255 seconds) 14:04:53 --- quit: neceve (Quit: Konversation terminated!) 14:09:10 pointfree: by Martin Tracy? 14:09:55 z0d: Yes. 14:10:14 thanks 14:10:26 np 14:11:58 I've read Thinking Forth, but it's not a Forth tutorial book 14:12:47 pointfree: got an url to that book? Mastering Forth that is? 14:13:32 https://www.amazon.com/Mastering-Forth-Martin-Tracy/dp/0135599571/ref=sr_1_1?ie=UTF8&qid=1486159702&sr=8-1&keywords=mastering+forth 14:16:42 yep, that's the revised and expanded edition. It looks like I have the older edition: https://www.jupiter-ace.co.uk/book_forth_ISBN-0893036609.html 14:19:44 --- quit: joneshf-laptop (Remote host closed the connection) 14:21:23 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 14:25:54 z0d: Mastering Forth is a tutorial book. It has exercises at the end of each chapter but they are at a more advanced level than Starting Forth. 14:49:52 I hear the phrase "I'm new to Forth" a lot more these days. 14:49:53 The https://www.reddit.com/r/Forth/ subreddit passed 1000 subscribers recently. 14:49:53 I think the tides on Reddit, HN, Hackaday etc, indicate that Forth will enjoy a resurgence in the next few years. Keep x-posting and maybe someday you can make money writing Forth. 14:49:53 That said, Forth is less dependent than other languages on software ecosystems and popularity for usefulness. 14:50:14 I'm subscribed 14:50:40 for a year now, or so 14:57:32 --- quit: karswell (Remote host closed the connection) 14:59:29 --- join: karswell (~user@164.209.208.46.dyn.plus.net) joined #forth 15:21:29 Great! 15:21:29 comp.lang.forth is much older and probably bigger, but I personally prefer the discussion on /r/Forth even though there is less of it. 15:21:29 If Forth could get better at filtering-types of interactions I think it would be competitive with Unix for general purpose ad-hoc interaction and thus develop more of a software ecosystem. 15:21:29 Better Unix-like filtering-type interaction combined with the Forth-like 'code is your user interface' approach would be competitive. 15:21:29 Compilation is super-simple in Forth because of compile-time execution. It means you don't need to build an AST and all that overly-complicated compiler stuff. https://www.reddit.com/r/Forth/comments/55b8ta/what_makes_immediate_mode_the_key_to_everything/d8bs6bq/ 15:21:29 reepca and I were talking about introducing "parse-time execution" in this channel a long time ago. I think this has the potential to make parsing simple in the same way compiler complexity was dissolved with compile-time execution (aka immediate words) 15:21:29 When someone asks me how to parse a CSV file in Forth, I like to tell them to use the comma compiler. 15:21:30 There is just one problem with this: Forth only parses words right now. What if Forth could parse graphemes? 15:21:30 In Forth we extend the language to the application. What if we could extend the language to expressions other than text, like sensor readings from sensors other than a keyboard, such as a seismograph? 15:21:31 There is a bit of interpretation needed to understand a seismograph reading and recognize a future earthquake I would think. This makes it a perfect example for demonstrating the usefulness of parse-time execution. 15:21:31 My thought right now, reepca, is that parser combinators are the place to look for inspiration, not Forth recognizers. IMO parse-time execution has the potential to be more organic than Forth recognizers. 15:21:32 Parse-time execution will be the subject of one of my future SV-FIG talks. 15:36:54 If you want to do parsing state in the cmForth style, add the PARSE vocabulary to the top of your search order when you're inside the outer interpreter, or use BIND because ANS vocabularies are needlessly complicated. 15:42:16 My motivation for this is driven by my one-off reverse engineering tools in Forth. 15:42:16 http://quozl.netrek.org/cforth-milo-champions-band/ ( not me) 15:42:16 ...and reverse engineering involves a lot of parsing and interpretation of things designed outside of your own control. 15:48:59 is this the guy, who was on embedded.fm once? 15:49:03 can't recall his name 15:50:00 oh, yeah. he is 15:50:34 http://embedded.fm/episodes/172 15:57:01 So I'm thinking of putting a REPL in an inner loop to use as a console, but I don't want it to block on reads to get a line to evaluate. Any gforth-friendly way to test if a line is ready (KEY? doesn't exactly work the way I'd like)? 15:59:44 --- quit: true-grue (Read error: Connection reset by peer) 16:02:55 On second thought, KEY? might work, but it looks like I should be looking into putting stdin into "non-canonical" (not sure what that is yet) mode 16:03:21 err, rather, into "canonical" mode 16:29:19 z0d: I think he is in this channel right now and his irc nick is Quozl` 16:29:49 oh yeah. 16:29:54 small world 16:34:09 arg, I want to be able to tell if reading a line will block, but gforth's KEY? puts the terminal into non-canonical mode, so I would have to handle everything myself... surely there must be a way to tell if read will block without putting the terminal into non-canonical mode? 16:34:36 reepca: is there no readline word in your Forth? 16:35:29 (Forthers reinventing Lisp reader macros...) 16:35:49 no word named READLINE, no. There's read-line, but there's no way of knowing in advance whether it will block. 16:36:13 in Unix at least, read-line is used by shells to read input 16:36:45 In the end, "parse-time execution" is going to be open-coded LL(1) parser with immediate evaluation of synthetic attributes. :D 16:37:34 (Of course, it isn't going to simplify parsing since it isn't going to analyze the grammar...) 16:39:28 Here's the scenario: you're trying to mess around with something that needs to be constantly executing (rendering loop for example), but you want to update it live. So you use a deferred word to do the body of the loop and set it up so that at the beginning of the loop it checks for input and evaluates it if there is any, but you can't check for input without *waiting* for input, which you don't want to do - you want the loop to keep 16:39:29 running. 16:43:27 Thankfully gforth provides something that sounds like it sort of does what you want - KEY? - which says whether a character is available for input. Unfortunately it also puts the terminal in non-canonical mode so you can't see what you're editing, you can't use backspace or anything by default, and it's generally a headache 16:47:06 ohhh 16:47:38 I think I see what you mean now - use KEY? to do the check and then use ACCEPT or something like that to do the actual getting of input? 16:48:01 that actually does just what I want, thanks 16:48:02 Welcome to Unix "terminals" that attempt to simulate teletype line in different ways simultaneously. :) 16:50:04 Unix Way(tm) in all its glory. :D 16:50:20 well, it sort of does what I want - it will block until the line is finished being entered, but that's much better than blocking all the time. 16:57:15 Well... 16:57:41 reepca: SEE accept 16:57:41 it contains EDIT-LINE 16:57:41 : edit-line everyline rot over 2dup begin xkey decode until 2drop nip ; 16:57:41 You can add what you want into your own definition of EDIT-LINE 16:57:57 I agree that "it sort of does what I want" is a good approximation "I don't want to reimplement half of what tty driver does". 16:58:05 --- join: John[Lisbeth] (~user@173-160-167-234-Washington.hfc.comcastbusiness.net) joined #forth 17:06:18 --- quit: karswell (Ping timeout: 276 seconds) 17:06:22 --- join: karswell` (~user@164.209.208.46.dyn.plus.net) joined #forth 17:26:02 --- quit: ACE_Recliner (Ping timeout: 240 seconds) 17:27:23 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 17:43:06 --- quit: ACE_Recliner (Ping timeout: 260 seconds) 17:47:21 --- quit: Zarutian (Quit: Zarutian) 19:21:00 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 19:41:50 --- quit: proteus-guy (Ping timeout: 240 seconds) 19:42:38 --- join: proteus-guy (~proteusgu@183.88.33.223) joined #forth 19:52:14 --- join: vsg1990 (~vsg1990@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 20:32:27 --- quit: proteusguy (Ping timeout: 240 seconds) 20:41:14 --- quit: dual (Ping timeout: 255 seconds) 21:18:05 --- quit: ACE_Recliner (Remote host closed the connection) 21:53:48 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 23:01:57 --- quit: impomatic (Quit: http://corewar.co.uk) 23:04:43 --- quit: vsg1990 (Quit: Leaving) 23:19:18 --- quit: John[Lisbeth] (Ping timeout: 252 seconds) 23:36:34 --- join: neceve (~ncv@84.232.162.68) joined #forth 23:36:34 --- quit: neceve (Changing host) 23:36:34 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 23:59:59 --- log: ended forth/17.02.03