00:00:00 --- log: started forth/16.04.25 00:53:43 --- quit: picobit (Ping timeout: 268 seconds) 01:00:18 --- join: picobit (~tomkl@unaffiliated/tomkl) joined #forth 01:12:13 --- quit: Kumool (Ping timeout: 268 seconds) 01:21:33 --- quit: nisstyre_ (Ping timeout: 250 seconds) 01:30:16 --- quit: picobit (Ping timeout: 250 seconds) 01:34:44 --- join: nisstyre_ (~yourstrul@li611-52.members.linode.com) joined #forth 01:46:10 --- join: proteusguy (~proteusgu@180.183.132.54) joined #forth 01:46:11 --- mode: ChanServ set +v proteusguy 01:53:06 --- quit: ASau (Ping timeout: 276 seconds) 01:54:55 --- quit: nisstyre_ (Ping timeout: 250 seconds) 02:00:57 --- join: nisstyre_ (~yourstrul@li611-52.members.linode.com) joined #forth 03:04:43 --- quit: novaskell (Remote host closed the connection) 03:04:58 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 03:05:56 --- quit: nighty (Quit: Disappears in a puff of smoke) 03:13:43 --- join: true-grue (~true-grue@176.14.216.104) joined #forth 03:19:32 --- quit: wa5qjh (Quit: wa5qjh) 03:23:31 --- quit: novaskell (Remote host closed the connection) 03:23:46 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 03:24:18 --- quit: novaskell (Client Quit) 03:33:43 --- join: novavis (97435fd6@gateway/web/freenode/ip.151.67.95.214) joined #forth 03:35:02 --- join: wa5qjh (~Thunderbi@121.54.58.155) joined #forth 04:01:10 nerfur: you don't want to write CGI in Forth, seriously. 04:01:55 You can write some toy applications, but other than those toys, you don't want to waste your time on Forth. 04:09:40 DGASAU: why? 04:10:41 Because you have to reimplement a lot of software to do that more or less correctly. 04:10:52 And even if you do implement all that, it is painful to use, 04:11:05 unless you implement essentially another programming language. 04:11:16 but it is toy cgi for specific toy goals 04:11:32 like my own textfile-based url bookmarking ) 04:12:22 If it is anything more complex than single boolean knob, Forth is awfully bad choice for it. 04:13:32 so why are you here? to save young souls before they corrupted by evilForth? ) 04:13:33 ...And if you implement another programming language in essense, you could have started from the one from the very beginning. 04:13:59 To counter idiotic propaganda from sixties. 04:14:47 I see you got some success, because channel is nearly "empty") 04:17:18 You may not believe me, that's fine. Just try it out and compare to anything of comparable complexity. E.g. Lua. 04:18:22 I tried lua and c, java, c#, perl, python and even some COBOL and other exotic 04:18:56 and I don't think it is fair to compare "low" forth and "high" languages 04:19:39 It is fair. 04:20:18 For start, Forth is just the same programming language as any other. 04:21:13 every Turing-complete is "same" 04:21:42 The usual Forth propaganda is that you don't need usual syntax because "parsers are hard." 04:21:59 The latter "parsers are hard" statement comes from mid-sixties, when it all started. 04:22:25 Yet in 1970 there was one important discovery made that is ignored by Forth propaganda even today. 04:22:40 It was very effective LL(1) parsing algorithm. 04:23:23 This is the reason why you see this weird way to write expressions in Forth. 04:23:45 Everyone else moved to using stack-based languages as intermediate representation at most. 04:23:51 Forth stayed in sixties. 04:25:42 and? I don't see any propaganda there, they simply don't use it 04:26:07 They don't "simply don't use it." 04:26:29 They suggest invalid "reasons" why. 04:27:17 I'm not into "scientific" much, so I probably just don't saw all this "suggests", probably on meetings and in papers? 04:27:52 On meetings, in papers, on USENET, on IRC... 04:27:57 Books too. 04:28:35 There's nothing scientific there today. 04:28:39 It's purely engineering. 04:29:09 Get some book on compilers, read how to implement LL(1) algorithm, implement it yourself, and you'll see that it is nearly trivial. 04:29:22 Yet it solves a lot of problems when using the language. 04:29:29 what language you use or advocate for? 04:29:45 I use a number of different languages. 04:29:57 From C to SML. 04:31:23 In fact, top-down parsers were used long before year 1970 :) 04:32:16 Yes, there existed less general or less effective algorithms before that. 04:33:10 Yes, you can turn Earley parser into as general and effective GLL with a number of sequential transformations. 04:33:36 Yet GLL is discovery of mid-2000s rather than of early 1970s. 04:33:52 Are we talking about LL(1)? 04:34:02 No. 04:34:36 here were predicative/backtracking parsers/parser generators before 1970. 04:34:37 We're talking about Forth community that ignored and still ignores discoveries in algorithms since early seventies. 04:36:16 *crying in corner* I.. I just wanted... to write some CGI... 04:41:51 nerfur, Just look at Asau. Many-many years ago he was excited by Forth just like you... And look at him now. You don't want to be so grumpy and disappointed, don't you? Then don't use Forth! :) 04:44:01 Yes, if I'd met someone like me who presented such clear arguments against Forth, I'd stopped using it long ago. 04:48:40 Ok, I'll go back to my brainfuck domain :-D 04:49:20 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 05:09:18 --- quit: proteusguy (Ping timeout: 244 seconds) 05:58:05 --- quit: wa5qjh (Ping timeout: 250 seconds) 05:58:32 --- join: wa5qjh (~Thunderbi@121.54.58.155) joined #forth 06:00:15 --- quit: DocPlatypus (Ping timeout: 250 seconds) 06:01:33 --- quit: dzho (Ping timeout: 250 seconds) 06:03:13 --- join: dzho (~dzho@unaffiliated/dzho) joined #forth 06:18:22 --- join: DocPlatypus (~skquinn@c-73-166-108-48.hsd1.tx.comcast.net) joined #forth 06:54:36 --- join: real-grue (~true-grue@176.14.216.104) joined #forth 06:57:16 --- quit: true-grue (Ping timeout: 244 seconds) 07:15:35 --- join: vsg1990 (~vsg1990@rrcs-72-45-253-82.nys.biz.rr.com) joined #forth 07:53:03 --- quit: mnemnion (Remote host closed the connection) 08:20:23 --- join: pointfree (~pointfree@c-174-62-81-78.hsd1.ca.comcast.net) joined #forth 08:31:38 nerfur, DGASAU is a troll. Ignore him. 08:33:07 pointfree: thanks) 08:33:47 Forth works just fine for CGI and is great for domain specific languages. Check out Sam Falvo's "Over the Shoulder Forth 08:33:51 https://www.youtube.com/watch?v=mvrE2ZGe-rs 08:34:09 He does a blog engine in Forth 08:34:49 subscribed! 08:35:43 --- quit: karswell (Read error: Connection reset by peer) 08:36:54 --- join: karswell (~user@162.139.115.87.dyn.plus.net) joined #forth 08:39:41 and thanks for your djb2 again, I was implementing my own SDBM one and I refactor it heavily! with "tricks" from your code, I'm especially loved how you made do loop with a as i ) 08:48:30 --- join: jmg8766 (~justin@justin-pc.wireless.rit.edu) joined #forth 08:48:48 how is at-xy implemented? I can't find any details online 08:49:55 Which implementation? 08:50:57 It is a lot easier to fetch the source and check yourself, actually. 08:52:19 https://github.com/bewest/amforth/blob/master/lib/hardware/vt100.frt#L14 08:54:36 --- quit: jmg8766 (Ping timeout: 260 seconds) 08:55:11 --- join: xyh (~user@111.50.69.250) joined #forth 09:01:49 --- quit: karswell (Read error: Connection reset by peer) 09:20:53 nerfur, re: cgi/text-processing, There was a discussion about text processing in Forth at SV-FIG this past Saturday. We talked about how the text to be processed *is* Forth source code, e.g. to process a csv use the comma compiler: https://www.reddit.com/r/Forth/comments/3zgyee/forth_and_data_manipulation/cymafkh For texts with words and syntax not known in advance, new words in the text could be seen as defining new words in a VOCAB 09:23:38 For pattern matching in your CGI consider this: Pattern matching is the inverse of a function ( or rather word) and the composition ( or rather juxtaposition) of inverse functions results in an inverse function. Therefore you only need the inverses of the nucleus of Forth words to get the inverses of all the rest ( for pattern matching). The article (for factor but easily applies to Forth): http://micsymposium.org/mics_2009_proceedin 09:25:29 freenode truncated my two messages 09:25:36 VOCABULARY 09:25:38 and 09:25:40 http://micsymposium.org/mics_2009_proceedings/mics2009_submission_72.pdf 09:42:33 pointfree, What's wrong with using parsers? They are easier than WORD in case of parsing real CVS files. 09:44:15 Take, for example, Rebol. The programmer could just use dialect with the proper syntax inside the language. 09:45:46 I have seen many examples of "almost parsers" with help of WORD in Forth. They are all just fragile hacks. 09:46:59 And if embedded parsers are possible in such language as Rebol then why can't we use something similar in Forth? 09:47:07 Not to mention that those are nothing but shift-reduce parses coded manually. 09:47:18 "parsers" 09:47:53 Of course, it is easier to call an opponent a troll rather than to present any sensible argument. :D 09:50:56 Moreover, there are examples that it's possible to do embedded parsing in Forth. http://www.bradrodriguez.com/papers/bnfparse.htm 09:51:00 1988. 09:51:31 And most forthers today are completely unaware of such methods... 09:52:00 Sure. 09:52:04 Those are parser combinators essentially. 09:54:18 Yes. And I've seen parser combinators implementations even on C language. They are uglier than this version. And much uglier than new Forth versions could be! :) 09:54:52 I have implemented such a thing myself. :) 09:54:55 Yeah, it is horrible. 09:55:41 You should admit that it's possible to make more clear version in Forth :) 09:55:48 It is possible. 09:56:14 Still, there's a lack of abstractions tools. 10:29:23 --- join: bigone (~chatzilla@ppp91-76-160-159.pppoe.mtu-net.ru) joined #forth 10:58:59 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:09:53 --- join: bedah (~bedah@dyndsl-095-033-223-092.ewe-ip-backbone.de) joined #forth 11:13:47 --- nick: xyh -> xieyuheng 11:18:49 --- join: jmg8766 (~justin@justin-pc.wireless.rit.edu) joined #forth 11:29:20 --- quit: xieyuheng (Remote host closed the connection) 11:51:05 --- quit: jmg8766 (Ping timeout: 268 seconds) 11:51:17 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 11:57:09 --- join: jmg8766 (~justin@justin-pc.wireless.rit.edu) joined #forth 12:08:31 --- quit: jmg8766 (Ping timeout: 250 seconds) 12:26:54 --- quit: novaskell (Ping timeout: 244 seconds) 12:56:44 --- join: jmg8766 (~justin@129.21.125.213) joined #forth 12:59:35 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 13:09:24 --- quit: novaskell (Ping timeout: 268 seconds) 13:17:25 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 13:21:45 --- quit: jmg8766 (Ping timeout: 250 seconds) 13:29:19 --- join: JDat (JDat@89.248.91.5) joined #forth 13:31:13 --- quit: bedah (Quit: Ex-Chat) 13:37:16 --- join: mnemnion (~mnemnion@2601:643:8103:f9d0:1dcf:cbcc:241c:b0fe) joined #forth 13:39:52 --- quit: vsg1990 (Quit: Leaving) 13:46:47 --- join: picobit (~tomkl@unaffiliated/tomkl) joined #forth 14:08:43 --- quit: mnemnion (Read error: Connection reset by peer) 14:09:19 --- join: mnemnion (~mnemnion@2601:643:8103:f9d0:1dcf:cbcc:241c:b0fe) joined #forth 14:29:30 --- join: jmg8766 (~justin@cpe-69-207-173-120.rochester.res.rr.com) joined #forth 14:44:53 --- quit: novaskell (Ping timeout: 252 seconds) 14:46:00 --- join: novaskell (~novaskell@31.205.156.216) joined #forth 14:56:26 --- join: vsg1990 (~vsg1990@pool-74-110-57-203.bflony.fios.verizon.net) joined #forth 15:03:58 --- quit: real-grue (Read error: Connection reset by peer) 15:05:00 --- quit: novaskell (Quit: leaving) 15:26:50 --- quit: novavis (Ping timeout: 250 seconds) 15:53:52 --- quit: bigone (Read error: Connection reset by peer) 16:22:56 --- quit: DGASAU (Ping timeout: 250 seconds) 16:23:11 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 16:37:13 --- quit: DGASAU (Ping timeout: 268 seconds) 16:39:06 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 16:51:40 --- quit: Zarutian (Quit: Zarutian) 16:57:09 --- join: nighty-- (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 17:02:17 --- quit: DocPlatypus (Quit: Leaving) 17:45:06 --- join: Kumool (~kumool@adsl-64-237-232-3.prtc.net) joined #forth 19:07:36 --- quit: JDat (Ping timeout: 250 seconds) 19:11:58 --- quit: wa5qjh (Ping timeout: 244 seconds) 19:29:29 --- quit: jmg8766 (Ping timeout: 260 seconds) 19:42:07 --- join: wa5qjh (~Thunderbi@121.54.58.155) joined #forth 20:01:34 --- join: eazar001 (~idpispopd@2602:306:3970:760:7c7c:73f1:5114:a284) joined #forth 20:45:04 --- join: bb010g (uid21050@gateway/web/irccloud.com/x-mhkskwroydwhhegj) joined #forth 21:08:50 --- join: karswell (~user@162.139.115.87.dyn.plus.net) joined #forth 21:27:00 --- quit: vsg1990 (Quit: Leaving) 21:34:26 --- quit: impomatic (Read error: Connection reset by peer) 21:34:58 --- join: impomatic (~impomatic@84.51.143.223) joined #forth 21:39:28 --- quit: Kumool (Read error: Connection reset by peer) 22:34:00 --- quit: wa5qjh (Remote host closed the connection) 22:45:30 --- join: wa5qjh (~Thunderbi@121.54.58.155) joined #forth 22:55:49 --- quit: DGASAU (Read error: Connection reset by peer) 22:56:01 --- join: DGASAU (~user@lmpc.drb.insel.de) joined #forth 23:15:37 --- join: DocPlatypus (~skquinn@c-73-166-108-48.hsd1.tx.comcast.net) joined #forth 23:40:22 --- quit: eazar001 (Quit: Leaving) 23:59:59 --- log: ended forth/16.04.25