00:00:00 --- log: started forth/15.11.07 00:40:33 --- join: xyh (~xyh@183.11.178.36) joined #forth 00:40:41 --- quit: xyh (Remote host closed the connection) 00:41:13 --- join: xyh (~xyh@183.11.178.36) joined #forth 01:52:43 --- quit: ASau (Remote host closed the connection) 01:52:59 --- join: ASau (~user@netbsd/developers/asau) joined #forth 01:54:13 --- quit: xyh (Remote host closed the connection) 01:56:01 --- quit: asagk (Ping timeout: 240 seconds) 02:09:04 --- join: asagk (~asagk@i59F6CB6A.versanet.de) joined #forth 02:21:34 --- join: true-grue (~grue@176.14.216.104) joined #forth 02:24:08 --- quit: proteusguy (Ping timeout: 240 seconds) 03:11:22 --- join: bedah (~bedah@dyndsl-095-033-181-034.ewe-ip-backbone.de) joined #forth 03:19:38 --- join: proteusguy (~proteusgu@180.183.117.190) joined #forth 03:19:38 --- mode: ChanServ set +v proteusguy 03:24:50 --- quit: Bahman (Quit: Ave atque vale) 04:41:41 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 05:30:50 --- join: xyh (~xyh@113.87.240.155) joined #forth 05:34:10 --- quit: xyh (Remote host closed the connection) 05:41:48 --- join: xyh (~user@113.87.240.155) joined #forth 05:51:47 --- quit: xyh (Read error: Connection reset by peer) 06:58:37 --- join: xyh (~xieyuheng@113.87.240.155) joined #forth 06:58:53 --- quit: xyh (Remote host closed the connection) 07:04:58 --- join: xyh (~xieyuheng@113.87.240.155) joined #forth 07:22:09 --- quit: xyh (Ping timeout: 264 seconds) 07:55:06 --- join: mnemnion (~mnemnion@2601:400:8000:3da0:e1ba:6bae:672b:9e1) joined #forth 07:56:39 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 07:56:44 --- quit: xyh (Remote host closed the connection) 07:57:52 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 08:16:47 --- quit: xyh (Remote host closed the connection) 08:18:32 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 08:28:36 --- join: xyh` (~xieyuheng@183.14.255.19) joined #forth 08:32:42 --- quit: xyh (Remote host closed the connection) 08:34:20 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 08:37:58 --- quit: xyh` (Remote host closed the connection) 08:52:14 --- join: xyh` (~xieyuheng@183.14.255.19) joined #forth 08:56:09 --- quit: xyh` (Remote host closed the connection) 08:59:58 --- join: xyh` (~xieyuheng@183.14.255.19) joined #forth 09:00:40 --- quit: xyh` (Remote host closed the connection) 09:03:19 --- join: xyh` (~xieyuheng@183.14.255.19) joined #forth 09:09:40 --- quit: xyh` (Remote host closed the connection) 09:14:58 --- join: xyh` (~xieyuheng@183.14.255.19) joined #forth 09:19:30 --- quit: xyh` (Remote host closed the connection) 09:20:07 --- quit: xyh (Remote host closed the connection) 09:20:39 --- join: fantazo (~fantazo@213.129.230.10) joined #forth 09:21:26 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 09:21:56 --- quit: xyh (Remote host closed the connection) 09:22:59 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 09:32:57 --- quit: proteusguy (Ping timeout: 264 seconds) 09:48:14 --- quit: mnemnion (Remote host closed the connection) 10:32:55 --- join: proteusguy (~proteusgu@ppp-110-168-229-169.revip5.asianet.co.th) joined #forth 10:32:55 --- mode: ChanServ set +v proteusguy 10:41:55 the function which changes return-stack can not use the return-stack as usual functions 10:42:41 hi crc :) 10:42:49 I see you fixed the TOPIC 10:43:53 Yes. Sorry about that; a redirect on my server isn't working properly at the moment :( 10:44:13 --- join: MickyW (~MickyW@p4FE8C9AF.dip0.t-ipconnect.de) joined #forth 10:44:42 crc: how do you handle the functions which change the return-stack ? 10:45:33 I am think of implementing pattern matching now ~ 10:46:31 just implement them as primitive-function ? 10:46:40 I generally don't mess with the return stack. (Retro has only a few functions which do, and it's messy enough to be irritating. My parable language doesn't even expose the return stack) 10:47:57 I see 10:48:49 --- join: mnemnion (~mnemnion@c-68-40-49-135.hsd1.mi.comcast.net) joined #forth 10:50:42 crc: in my old implementation, I used functions [await & awake] which change the return-stack to implement features like non-local-exit 10:51:32 and now, in my new implementation, I think pattern-matching and type-checker can be implemented as functions that change the return-stack 10:52:02 maybe a special return-stack for them 10:52:25 I'd build things like that into my VM now. 10:52:45 you mean type-checker ? 10:52:51 or pattern-matching ? 10:53:26 --- quit: mnemnion (Ping timeout: 244 seconds) 10:54:59 Anything that alters execution flow at a low level 10:58:51 I called a function which changes the return-stack an instruction. 10:58:51 maybe when an instruction is executed, it should uses a temporary return-stack. 10:59:32 thus an instruction is able to be defined not only as primitive-function 11:07:10 --- join: mnemnion (~mnemnion@c-68-40-49-135.hsd1.mi.comcast.net) joined #forth 11:20:59 --- quit: MickyW (Quit: Verlassend/leaving) 11:24:01 looks like call-with-return-stack 11:24:03 :) 11:24:53 --- quit: fantazo (Ping timeout: 260 seconds) 11:48:14 --- join: tangentstorm (michal@2600:3c03::f03c:91ff:fec8:caab) joined #forth 11:48:44 --- join: MickyW (~MickyW@p4FE8C9AF.dip0.t-ipconnect.de) joined #forth 12:02:19 --- quit: MickyW (Quit: Verlassend/leaving) 12:22:50 --- quit: JohnMarkM (Quit: Leaving) 12:25:23 Ha! 12:25:58 "call-with-return-stack" is just a broken way of doing continuations. 12:27:45 :) 12:28:59 I just found that match should be implemented as a normal function instead of special thing which changes the return-stack :P 12:29:18 "match" as in ??? 12:29:24 pattern match 12:29:49 just a function called 'match' 12:29:57 Hm. 12:30:22 Doing it as something different to function call is quite stupid. 12:30:54 yeah 12:31:05 just as I was. 12:31:06 ASau: are you familiar with dependent-type system ? 12:31:20 I know what it is but has never used it. 12:31:31 oh! you should try! 12:31:46 idris has a good doc 12:32:05 There's one problem with dependent types. 12:32:10 waht 12:32:13 * what 12:32:39 Actually, with everything more complex than Hindley-Milner system (and close relatives). 12:33:12 The problem is that the industry is underqualified. 12:33:32 And you can see one of proofs here, in #forth. 12:38:09 please be civil, ASau 13:07:07 --- quit: xyh (Ping timeout: 246 seconds) 13:12:20 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 13:12:29 --- quit: xyh (Remote host closed the connection) 13:25:11 --- quit: mnemnion (Remote host closed the connection) 13:30:34 --- quit: defanor (Ping timeout: 264 seconds) 13:31:51 --- join: defanor (~defanor@95.215.47.16) joined #forth 13:35:07 --- join: mnemnion (~mnemnion@2601:400:8000:3da0:719a:a55b:f9c6:de12) joined #forth 13:37:08 --- join: Vuokko (~vuolasah@dsl-trebrasgw1-58c1ec-233.dhcp.inet.fi) joined #forth 13:39:57 --- quit: C-Keen (Quit: WeeChat 1.0.1) 13:47:01 How do I do this? I want to define array of strings CREATE myarray S" foo" SWAP , , S" bar" SWAP , , will not propably work as if I understood correctly s" uses PAD? and those addresses are invalid.. 13:48:55 If S" uses PAD, your implementation is broken. 13:50:04 you are right. system doesn't use PAD :) 13:50:23 but some other temporary memory area if I remember correctly 13:51:34 Or can it work like that? 13:56:07 I'm using gforth and now when I checked, S" has this: ANS Forth only guarantees one buffer of 80 characters, so in standard programs you should assume that the string lives only until the next s". 14:04:15 My google seems to be little bit picky this time neeeded gfort array of strings to be asked and solution came : http://stackoverflow.com/questions/8693341/how-do-i-implement-an-array-of-strings 14:17:09 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 14:18:29 --- quit: xyh (Remote host closed the connection) 14:29:41 "The Declarative, Imperative, then Inquisitive Pattern" by Sam A. Falvo II is well worth the read if you've never read it. My Forth code reads more like English now and has little or no stack-juggling. http://sam-falvo.github.io/2010/02/27/declarative-imperative-then-inquisitive/ 14:32:08 However, standards issues aside there a problem that's bothering me about this design pattern... it needs outer-exits: r>drop 14:34:03 and the reason that's a problem is because it makes WORDs that use them very un-composable. 14:35:43 Sure. 14:35:44 So I was reading about monads as a design pattern http://www.stephanboyer.com/post/9/monads-part-1-a-design-pattern 14:36:06 That's why nobody uses open stack these days. 14:36:43 (Only people who are stuck in early seventies.) 14:36:44 and I thought they sound very similar to Sam Falvo's DItI pattern only monads are composable by definition. 14:38:33 The latter is not entirely true, but they do provide at least the minimum of composability. 14:40:20 right 14:41:48 --- quit: true-grue (Read error: Connection reset by peer) 14:42:24 Monads in Forth, a ( more composable) DItI Pattern 14:42:42 * ASau shrugs. 14:42:56 "Monads in Forth" is meaningless expression. 14:43:33 --- quit: mnemnion (Read error: Connection reset by peer) 14:44:27 Why so? Monads can be thought of as a design pattern and they need not require typing. 14:44:53 Because monad is not a design pattern. 14:45:19 --- join: mnemnion (~mnemnion@2601:400:8000:3da0:719a:a55b:f9c6:de12) joined #forth 14:45:39 Monad is precise construction with given properties. 14:46:14 I know the 3 axioms. 14:46:23 In Haskell monads are implemented at the language level. 14:46:59 You cannot implement monads in Forth due to weakness of the language. 14:47:11 You can implement only particular instances of monad. 14:47:22 With pain and tears. 15:06:01 There was talk of monads in the "Cat" and "Joy" programming languages https://web.archive.org/web/20071003101917/http://cdiggins.com/2007/07/11/monads-for-a-stack-based-language/ but those are typed languages, afaik. 15:09:01 Introducing typing system in the sense of ML into language with open stack is highly problematic. 15:09:21 agreed 15:09:45 As such it has very little sense, if any, to discuss monads in the context of such a language. 15:11:13 If the typing system is unsound, then you're going to consider monad a "design pattern," which is idiotic. 15:12:28 The whole point of talking about monads is utilising their algebraic properties. 15:15:14 But could you not still use monadic operations at a value level? ( although in that case you could, afaik not do a general purpose >>= ) 15:15:15 It is like "soft real time" which is "like <> real time but you may miss deadlines." 15:15:38 You can. 15:15:57 This is exactly implementation of particular instance of monad. 15:17:24 E.g. "Option" signature in SML Basis implements: a) type constructor; b) all necessary monadic operations; c) for both canonical ways of defining monads. 15:17:54 Yet there's no definition for monad in general due to lack of type predicates. 15:18:20 Or type classes, as it is called in Haskell. 15:21:00 --- join: MickyW (~MickyW@p4FE8D6FA.dip0.t-ipconnect.de) joined #forth 15:21:06 Well... Technically, value constructor is not a function in ML... 15:38:40 --- quit: MickyW (Quit: Verlassend/leaving) 15:39:17 --- join: bb010g (uid21050@gateway/web/irccloud.com/x-snzooxdisjqxayal) joined #forth 15:40:46 --- quit: bedah (Quit: Ex-Chat) 15:47:56 --- quit: ASau (Ping timeout: 244 seconds) 16:07:57 --- join: ASau (~user@netbsd/developers/asau) joined #forth 16:12:49 --- quit: ASau (Ping timeout: 260 seconds) 16:23:36 --- quit: mnemnion (Read error: Connection reset by peer) 16:24:09 --- join: mnemnion (~mnemnion@c-68-40-49-135.hsd1.mi.comcast.net) joined #forth 16:36:42 * Zarutian went and saw the Martian (the movie in 3d) and highly recommends it. 17:11:18 --- join: ASau (~user@netbsd/developers/asau) joined #forth 17:21:00 --- quit: Zarutian (Quit: Zarutian) 17:24:33 --- quit: ASau (Ping timeout: 244 seconds) 17:26:56 --- join: ASau (~user@netbsd/developers/asau) joined #forth 17:34:09 --- quit: ASau (Ping timeout: 264 seconds) 18:41:57 --- quit: crc (Remote host closed the connection) 19:35:15 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 19:44:15 --- join: Bahman (~Bahman@5.238.169.214) joined #forth 20:08:13 --- join: johnmark_ (~johnmark@d53-64-14-247.nap.wideopenwest.com) joined #forth 20:09:10 --- nick: johnmark_ -> JohnMarkM 20:29:31 --- quit: xyh (Ping timeout: 244 seconds) 20:31:40 --- join: xyh (~xieyuheng@183.14.255.19) joined #forth 20:35:49 --- quit: xyh (Ping timeout: 246 seconds) 21:26:17 --- join: xyh (~xieyuheng@183.11.178.36) joined #forth 23:29:15 --- quit: xyh (Ping timeout: 265 seconds) 23:50:30 --- quit: proteusguy (Ping timeout: 244 seconds) 23:50:32 --- quit: mnemnion (Remote host closed the connection) 23:51:10 --- quit: proteusguy_ (Ping timeout: 272 seconds) 23:59:59 --- log: ended forth/15.11.07