00:00:00 --- log: started forth/17.12.06 00:09:10 --- quit: ggherdov` (Ping timeout: 240 seconds) 00:23:07 --- quit: proteusguy (Ping timeout: 268 seconds) 00:39:10 --- join: proteusguy (~proteus-g@2001:44c8:4146:8044:6548:9875:f54:9842) joined #forth 00:39:10 --- mode: ChanServ set +v proteusguy 01:09:56 --- quit: proteusguy (Ping timeout: 246 seconds) 01:18:48 --- join: xek (xek@nat/intel/x-aqedtpfpkfpbucer) joined #forth 01:23:00 --- join: proteusguy (~proteus-g@119-46-178-20.static.asianet.co.th) joined #forth 01:23:00 --- mode: ChanServ set +v proteusguy 01:30:20 --- quit: proteusguy (Ping timeout: 268 seconds) 01:43:32 --- join: proteusguy (~proteus-g@2001:44c8:4146:8044:4dfa:d353:1143:b426) joined #forth 01:43:32 --- mode: ChanServ set +v proteusguy 02:04:35 --- quit: nighty- (Quit: Disappears in a puff of smoke) 02:12:58 --- join: ggherdov` (sid11402@gateway/web/irccloud.com/x-iwxjhsthcaxnvqtz) joined #forth 02:47:15 --- join: mtsd (~mtsd@194.218.150.197) joined #forth 02:47:59 --- quit: mtsd (Remote host closed the connection) 02:53:00 --- join: mtsd (~mtsd@194.218.150.197) joined #forth 03:25:19 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 03:36:27 --- quit: mtsd (Ping timeout: 240 seconds) 03:37:20 --- join: mtsd (~mtsd@194.218.150.197) joined #forth 03:43:27 --- quit: mtsd (Ping timeout: 240 seconds) 03:49:56 --- join: mtsd (~mtsd@194.218.150.197) joined #forth 04:03:02 --- quit: mtsd (Ping timeout: 248 seconds) 04:30:26 --- join: mtsd (~mtsd@194.218.150.197) joined #forth 04:36:07 --- quit: proteusguy (Remote host closed the connection) 04:37:58 --- quit: mtsd (Remote host closed the connection) 05:00:43 --- join: proteusguy (~proteus-g@2405:9800:bc10:1ca:3554:635f:55e3:34cc) joined #forth 05:00:43 --- mode: ChanServ set +v proteusguy 05:28:30 --- join: MrBismuth (~ArcMrBism@104-50-90-48.lightspeed.brhmal.sbcglobal.net) joined #forth 05:31:25 --- quit: MrBusiness (Ping timeout: 255 seconds) 05:38:47 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 05:48:10 cheater: is it a joke? 06:06:31 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 06:22:44 --- quit: nighty- (Ping timeout: 240 seconds) 06:35:46 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 08:01:29 --- quit: ncv (Remote host closed the connection) 08:09:00 DGASAU: no 08:09:07 DGASAU: real question 08:09:13 DGASAU: what do you mean 08:15:52 Forth is strongly anti-math, it doesn't have a parser even. What you ask for is well above heads. 08:16:10 forth is "anti-math?" wut? 08:16:22 what does having a parser have to do with math? 08:16:31 also how does it not have a parser? 08:17:00 zy]x[yz: check how comments are implemented. ;) 08:17:10 I know how comments are implemented 08:17:27 in fact, they're implemented by calling into the parser 08:18:03 They don't call into parser, they call into reader, it is different thing. 08:18:21 do you actually use forth or are you just here to troll? 08:18:21 Control structures are implemented even funnier. 08:19:11 zy]x[yz: I am the last maintainer of FICL at least. ;) 08:19:33 So, perhaps I know what it means, and perhaps a little better than you. ;) 08:19:51 are you the last one because nobody could stand you? 08:20:07 No, I'm the last because everyone else left well before. 08:20:30 You can go and check the gap between last commit of Sadler and the first of mine. 08:21:14 (And that's not the only Forth implementation I worked on.) 08:21:49 zy]x[yz: now, who is a troll here? 08:21:55 you are 08:22:00 we already established that 08:22:11 In particular, who has asked your crappy opinion here? 08:22:41 Have you implemented anything in Forth that was used in industrial setup? 08:23:04 so now you're dick-waving? 08:23:27 You can call it whatever you wish, yet do you have any comparable experience? 08:23:31 you seriously have got some social problems, man 08:24:04 Or are you just another student, who thinks that whatever he has learned in small projects applies everywhere? 08:25:17 hey, I'm not the one spewing unintelligible nonsense like "forth is anti-math because it doesn't have a parser" 08:25:51 cheater: anyway, the way comments, string literals and control structures are implemented means that Forth doesn't have parser. 08:26:19 cheater: in order to understand lexical structure, you need to simulate execution. 08:26:53 zy]x[yz: Forth lacks a lot more things than parser. 08:27:52 forth doesn't lack a parser 08:28:26 begin ... while ... while ... while ... repeat ... else ... else ... else ... then 08:28:29 Is the code correct? 08:28:39 How can you prove it? 08:28:50 "correct" according to what criteria? 08:29:04 Syntactically. 08:29:08 sure 08:29:27 Wrong. 08:29:33 assuming "..." is a defined word 08:30:51 (...Which shows that you don't even know control structures in Forth.) 08:31:30 I do, though 08:31:43 you just seem to think that a simple syntax isn't a syntax 08:32:03 It isn't simple. 08:32:17 it is, though. I see words separated by spaces 08:32:20 For start, you have failed to determine whether it is correct. 08:32:25 looks verifyably correct to me 08:32:32 : ... ; 08:32:49 : test begin ... while ... while ... while ... repeat ... else ... else ... else ... then ; 08:33:01 Type that into your Forth prompt. 08:33:16 of I did, it would parse it just fine 08:33:23 whether it would do what you want is another question 08:33:40 Have it processed it correctly? 08:33:52 what does "process" mean here? 08:34:04 because I'm pretty sure we've been talking about parsing 08:34:26 It means that compiler has finished interpretation without exception or other way to indicate error. 08:34:36 i think DGASAU is here to troll 08:34:45 DGASAU: gforth complains it's unstructured 08:34:53 bavier: exactly. 08:35:25 exactly what? 08:35:43 Interpreter rejects the code as syntactically incorrect. 08:36:38 Note that this is trivial example, you can easily detect it yourself, if you know how "while" and "then" are to be implemented. 08:37:35 Yet this is rather easy case, since you can do weird things with "do", "loop", "while", and "unloop". 08:38:06 yet another reason to have denotational semantics for forth 08:38:15 i bet someone's written something like this 08:41:06 plus since you're swinging around about industrial use you should be able to appreciate that a forth compiler that can be generated in certifiably provable fashion from a description of denotational semantics should be much more reliable than anything you've proven by hand if at all 08:41:39 Forth has a lot worse problems than lack of denotational semantics. 08:42:24 Lack of parser is just the first of them. 08:43:16 It alone causes a lot of headache. 08:43:56 you just said earlier that the interpreter would reject your example as syntactically incorrect 08:44:36 DGASAU: the fact that the implementation of forth that you maintain does not use a parser doesn't mean forth can't have one 08:44:51 cheater: implement it. 08:45:12 cheater: and prove that it conforms to, say, ANS-94. 08:46:01 what an arbitrary criterion 08:46:15 Alright, prove that it conforms to F-83. 08:46:15 --- quit: Zarutian_PI (Ping timeout: 248 seconds) 08:48:32 You can choose any other standard that requires implementation of "immediate" and doesn't put arbitrary limitations on "immediate" words. 09:06:03 this is the most circular-logic shit I've ever seen 09:10:41 Sure, when you fail to solve trivial problems, go one "meta" higher so that less people notice your stupidity. :) 09:18:10 --- join: Zarutian_PI (~3.1415@173-133-17-89.fiber.hringdu.is) joined #forth 09:18:25 I really don't know why the channel ops refuse to ban DGASAU 09:20:05 pointfree: who? at glance only cheater and zy]x[yz seems to have said anything today 09:20:29 yeah I probably should just stop biting 09:26:46 --- quit: Uniju_ (Ping timeout: 248 seconds) 09:50:11 --- join: newuser|51857 (50b26e9b@gateway/web/cgi-irc/kiwiirc.com/ip.80.178.110.155) joined #forth 09:50:37 hello, is there a word in gforth that will tell me the return stack depth? 09:51:07 never mind, i found it rp@ 10:04:54 --- join: Uniju (~frog_styl@cpe-74-78-4-232.mass.res.rr.com) joined #forth 10:04:56 DGASAU: why maintain FICL if you hate Forth? 10:05:38 crc: I stopped it long ago. :) 10:06:53 Then why are you still in this channel? 10:10:19 DGASAU, why troll? 10:11:26 yo i have a question regarding Rodriguez's bnf parser 10:12:09 if i give it an n digit long number, wouldn't the return stack size be equivalent to how many digits i have in the number? 10:12:28 --- mode: ChanServ set +o proteusguy 10:13:30 --- kick: DGASAU was kicked by proteusguy ("Last warning troll.") 10:13:45 if it's keeping backtracking info on the stack, for each digit i gave a backtrack value, so on the return stack i'll have backtracking information about all the digits till far 10:13:47 right? 10:14:20 newuser|51857, for those of us who aren't familiar with the code you're referring to, do you have a link? 10:14:30 http://www.bradrodriguez.com/papers/bnfparse.htm 10:24:49 --- mode: ChanServ set +q asau!*@* 10:24:58 --- mode: ChanServ set +q *!*@lmpc.drb.insel.de 10:25:30 --- mode: ChanServ set +q *!*@*.lmpc.drb.insel.de 10:26:04 --- mode: ChanServ set +q asau`!*@* 10:26:14 --- mode: ChanServ set +q asau``!*@* 10:27:00 newuser|51857, I think that's right 10:27:08 --- mode: ChanServ set +q KOHTPA!*@* 10:27:48 maybe I just haven't seen it yet but I don't see anything that would collapse his checkpoints 10:28:14 --- mode: ChanServ set +q dgasau`!*@* 10:28:15 --- mode: ChanServ set +q dgasau``!*@* 10:29:32 10x for lookin, appreciate it 10:36:20 k, i am feeding the parser one exp at a time with an outer loop. 10:36:54 so as long as a single exp is not too nested, i can parse as much txt as i won't without needing a huge r stack 10:37:06 want* 10:47:46 cheers all, bb 10:47:50 --- quit: newuser|51857 (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 11:19:34 --- quit: dys (Ping timeout: 240 seconds) 11:43:27 --- quit: carc (Ping timeout: 276 seconds) 11:46:14 --- join: carc (~carc@unaffiliated/carc) joined #forth 12:07:18 --- quit: Uniju (Ping timeout: 248 seconds) 12:24:17 --- join: carc_ (~carc@unaffiliated/carc) joined #forth 12:31:35 --- quit: APic (*.net *.split) 12:31:37 --- quit: diginet2 (*.net *.split) 12:31:37 --- quit: carc (*.net *.split) 12:31:38 --- quit: reepca (*.net *.split) 12:31:50 --- nick: carc_ -> carc 12:36:12 --- quit: M-jimt (Ping timeout: 252 seconds) 12:36:45 --- quit: pointfree1 (Ping timeout: 276 seconds) 12:48:17 --- join: APic (apic@apic.name) joined #forth 12:48:17 --- join: diginet2 (~diginet@107.170.146.29) joined #forth 12:48:23 --- join: reepca (~user@208.89.170.230) joined #forth 12:48:47 --- quit: APic (Max SendQ exceeded) 12:52:59 --- join: APic (apic@apic.name) joined #forth 13:39:21 --- quit: jn__ (*.net *.split) 13:39:21 --- quit: bavier (*.net *.split) 13:51:15 --- join: newuser|47324 (a2d28203@gateway/web/cgi-irc/kiwiirc.com/session) joined #forth 13:59:00 --- join: schuldt (~user@162.210.130.3) joined #forth 14:02:23 --- join: jn__ (~nope@ip-109-90-134-221.hsi11.unitymediagroup.de) joined #forth 14:02:23 --- join: bavier (~bavier@msp-nat.cray.com) joined #forth 14:04:19 --- quit: newuser|47324 (Changing host) 14:04:19 --- join: newuser|47324 (a2d28203@gateway/web/cgi-irc/kiwiirc.com/ip.162.210.130.3) joined #forth 14:19:13 what's an r stack? does forth have multiple stacks? 14:24:11 typically two or three 14:24:17 one for data 14:24:28 one for return addresses 14:24:39 maybe a floating point stack 14:30:28 are there forths where you can have an unlimited amount of stacks? 14:30:37 eg for holding lists of stuff to iterate over 14:31:03 thanks for kicking out dgasau btw. he was really killin our buzz here 14:37:51 cheater: http://theforth.net/package/stack 14:45:00 bavier: how is this related to normal stacks (data, return addresses, fp)? 14:47:25 --- quit: newuser|47324 (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 14:51:00 --- quit: schuldt (Ping timeout: 252 seconds) 15:14:56 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 15:15:30 --- quit: nighty- (Quit: Disappears in a puff of smoke) 16:07:26 --- join: pointfree1 (pointfreem@gateway/shell/matrix.org/x-owpckprodmdczyrz) joined #forth 16:33:38 btw, are there transactions for Forth? 16:33:51 something similar to haskell's STM 16:38:35 cheater: I think I heard of one forth that provides access to Compare'n'swap instruction. 16:38:59 interesting 16:39:47 i'm thinking of something more involved, including checkpoints, change logs, rollbacks, etc 16:40:26 something like : cas ( new_val expected_val address -- T | F) ; Where the bool says if it was successfull or not. 16:41:12 huh hm 16:41:13 yeah 16:41:29 i'm more looking for something like eg SQL's BEGIN ... END 16:41:32 stuff like that 16:41:50 I think most Forths are too low level to support such but it might be that @ and ! are hooked to stash their values read and written effects. 16:42:27 Zarutian_PI: more and more things point me towards thinking i will write my own forth-like language. 16:42:36 so START_TRANSACT and END_TRANSACT. 16:42:48 what do you mean by that last line? 16:43:16 which would turn on stashing and then attempt to write the written effects out into memory 16:43:51 are you saying that exists or that this is your idea of how you'd do this? 16:44:14 a draft/sketch how you could do it 16:44:31 gotcha 16:44:45 here's a few things i'd like to have: totality, transactions, multiple stacks, lack of general recursion, well defined semantics, possibly dependent typing 16:45:01 while on the other hand keeping the gist of forth in how the computational model works 16:45:13 because let's be honest it's very simple 16:45:22 have you looked into Factor, which is a concative language like Forth but might have what you seek? 16:45:46 stuff like context-freedom and concatenativity make the language simpler 16:46:00 Zarutian_PI i have not looked into factor yet but i know it exists and it's on my agenda 16:46:14 but i believe it's TC which i believe is too strong for my needs 16:46:22 the language should explicitly be sub-TC 16:47:04 cheater: is Primitive Recursive Algo sub-TC enough for you? 16:47:36 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-qhefxvhegnacfwtr) joined #forth 16:47:44 yes, i think so 16:48:04 hence my idea to have multiple stacks. you could just build up a stack, and then say, i want to iterate over this stack 16:48:38 no iteration index or boolean check when to terminate, you just eat the whole stack until you bottom out 16:51:13 you could then do something like just, stack2 = map myfunc stack1, and that would mutate stack1, or you could do x = fold myfunc init stack3 to fold 16:51:57 of course i'll need to come up with a concatenative syntax for that 16:52:07 or maybe not, who knows 16:59:42 https://groups.google.com/forum/#!topic/comp.lang.forth/JoU_fghLqpc 17:00:00 interesting chat about forth and formal semantics 17:00:36 "Unfortunately, the full, unrestricted Forth language can't be expressed 17:00:36 in terms of such a grammar. The primary problem comes from words that 17:00:38 reach into the input stream and have arbitrary semantics. 17:00:40 " 17:00:54 what does he mean here? "words that reach into the input stream"? 17:05:56 also, another guys says: "Very roughly, a grammar is said to be context-free if, whenever there is a rule that allows one phrase A to be replaced by another B, replacement is permitted regardless of the context in which A occurs. (More at http://en.wikipedia.org/wiki/Context-free_grammar.) It's fairly easy to see that forth does not have a context-free grammar, and therefore its syntax cannot be ... 17:06:02 ... described by BNF." 17:06:11 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 17:06:38 how does one see that Forth isn't context-free? and can a useful subset of Forth (say, without renaming words) be context-free? 17:12:42 --- quit: proteusguy (Ping timeout: 255 seconds) 17:15:31 --- join: proteusguy (~proteus-g@2405:9800:bc10:1ca:3554:635f:55e3:34cc) joined #forth 17:15:31 --- mode: ChanServ set +v proteusguy 17:29:42 (totally noob here) cheater, I think that an example of "reaching into the input stream and..." is WORD. I just skimmed chapters 10 and 11 of "Starting FORTH" and I guess you can find some answers there. HTH 17:37:03 thanks. can you tell me what WORD does and why it is bad? 17:37:09 dddddd 17:40:10 I didn't say it's bad (nor good). To quote chapter 10 (wrt what it does) """WORD actually scans the input stream, which is either the terminal input buffer, a string being EVALUATEd, or disk memory being LOADed or INCLUDED. 17:40:10 To achieve this flexibility, WORD uses other pointers in addition to >IN. The other pointers make sure WORD looks in memory (when doing EVALUATE), on disk (when doing LOAD or INCLUDED) or in the terminal input buffer.""" 17:40:25 http://home.iae.nl/users/mhx/sf10/sf10.html 17:59:10 aha! 17:59:56 thank you dddddd 18:00:15 my pleasure 18:00:16 why do you believe this prevents context-free grammar/ 18:16:59 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 19:15:39 --- quit: karswell (Read error: No route to host) 19:16:28 --- join: karswell_ (~user@cust125-dsl91-135-5.idnet.net) joined #forth 20:10:56 --- quit: dddddd (Remote host closed the connection) 21:33:53 cheater: first, "valid syntax" will vary depending on what parsing words do. Second, "what parsing words do" is limited only by what is computable. Figuring out whether a program halts without running it is in general undecidable, let alone what class of grammars it might recognize (I realize that's a bit of a hand-wave argument). If you limit forth so that it has no parsing words, then the grammar ends up pretty much just being "any 21:33:53 sequence of defined words". Of course, not all sequences of defined words are valid, but it's sort of expected that parsing alone can't reject all invalid programs. 21:35:45 Actually, that would be an interesting challenge: find the largest subset of forth that can have correctness checked by merely parsing with a context-free grammar. 21:36:35 I assume, given the other limitations you've described, that you'd be okay with disallowing words that parse the input stream? 21:45:27 --- quit: Gromboli (Quit: Leaving) 22:57:39 --- quit: karswell_ (Ping timeout: 260 seconds) 23:22:47 --- join: dys (~dys@tmo-101-1.customers.d1-online.com) joined #forth 23:59:59 --- log: ended forth/17.12.06