00:00:00 --- log: started forth/20.12.09 00:03:16 --- join: inode joined #forth 00:43:12 neuro_sys: On most forths the stack is at least mostly addressable using e.g. s', s0 is the base 00:43:56 But ... I can't think of a reason why you need to access stack during an interrupt (if that's what you mean), only what's in the current interrupt / stack. 00:58:54 --- quit: iyzsong (Quit: ZNC 1.7.5 - https://znc.in) 00:59:26 --- join: iyzsong joined #forth 01:16:24 --- join: xek__ joined #forth 02:29:15 --- join: dave0 joined #forth 03:09:50 MrMobius: Sorry I actually meant thread safe. 03:13:23 Or more clearly, I meant not using fixed memory locations for the program, so that it can be executed simultaneously by different tasks/processes. 03:14:15 But I'm wondering if Forth systems handle multitasking so that dictionaries are private to each task, then it is safe to use dictionary for data access and it would be still thread safe. 03:34:27 --- quit: Vedran (Ping timeout: 256 seconds) 03:57:24 --- join: Vedran joined #forth 04:19:42 --- quit: hosewiejacke (Ping timeout: 272 seconds) 04:24:43 --- join: marksmith joined #forth 04:53:13 --- join: hosewiejacke joined #forth 05:13:51 --- quit: dave0 (Read error: Connection reset by peer) 05:18:49 neuro_sys: PolyForth does this, and other forths. They have 'user' variables and user dictionaries local to a thread, and a system dictionary/variable for some stuff (e.g. words common to all threads) 05:19:03 --- join: dave0 joined #forth 05:19:14 I believe e.g. gforth has support for this 05:20:11 --- quit: marksmith (Ping timeout: 246 seconds) 05:20:21 --- quit: dave0 (Read error: Connection reset by peer) 05:21:05 veltas, wouldnt anything you do in an interrupt access the stack if the interrupt's in forth? 05:32:21 --- join: marksmith joined #forth 05:33:22 I mean an interrupt shouldn't interfere with the current stack contents or expect anything particular on the stack 05:34:15 I think I misunderstood what particular problem neuro_sys was trying to solve 05:35:13 I understand now they are trying to make all their state 'automatic' or 'stacked' so it can be used arbitrarily without thought for where it's currently running 05:36:01 neuro_sys: rdrop-exit or someone I can't remember implemented this by putting stuff in the pad area, and allowing increasing and decreasing the size of the pad with pad+ and pad- by 256 bytes or something 05:36:35 Their pad was at the end of dictionary space (rather than just after HERE) and so it could grow downwards like a stack 05:37:22 So at the start of a word they could pad- to get some more reentrant space if they wanted, and then pad+ to clean up 05:38:05 The other (more common, but not as general-purpose) trick is to just ALLOT space and then ALLOT with negative argument later 05:38:29 Obviously that has limitations on where it can be used, but in forth that should bug you less: YAGNI to the extreme etc 05:39:31 I'm currently writing a merge sort algorithm that uses this space for the merge buffer. 05:39:59 And then it's convenient too because you can ALIGN and then use , to write to it like a stream 05:46:11 --- quit: marksmith (Ping timeout: 264 seconds) 05:56:28 Yes, I didn't mean reentrancy (misused the term), and I don't see any problems with interrupts wrt Forth (actually it's faster since there's no register saving/restoring). 05:59:29 On another note, I changed my forth lib words to use Dictionary instead. Now I'm focusing on the classic style, and not using local variables, and reading more material. 06:01:44 Cool 06:10:17 --- quit: hosewiejacke (Ping timeout: 258 seconds) 06:26:24 --- join: marksmith joined #forth 06:50:25 --- quit: X-Scale (Quit: HydraIRC -> http://www.hydrairc.com <- Wibbly Wobbly IRC) 07:06:10 --- join: X-Scale joined #forth 07:09:48 --- quit: koisoke (Remote host closed the connection) 07:15:52 --- join: koisoke joined #forth 07:30:09 --- join: xek_ joined #forth 07:32:48 --- quit: xek__ (Ping timeout: 260 seconds) 07:42:27 --- quit: gravicappa (Ping timeout: 240 seconds) 07:45:09 --- join: gravicappa joined #forth 08:10:18 --- join: xek joined #forth 08:11:58 --- quit: xek_ (Ping timeout: 240 seconds) 08:12:14 --- join: xek_ joined #forth 08:15:25 --- quit: xek (Ping timeout: 265 seconds) 08:32:27 --- quit: koisoke (Ping timeout: 240 seconds) 08:44:13 --- join: koisoke joined #forth 09:08:58 --- quit: Lord_Nightmare (Quit: ZNC - http://znc.in) 09:10:47 --- join: Lord_Nightmare joined #forth 09:37:55 --- join: hosewiejacke joined #forth 09:43:47 --- quit: hosewiejacke (Ping timeout: 264 seconds) 10:00:07 --- quit: the_cuckoo (Ping timeout: 240 seconds) 10:02:12 --- join: the_cuckoo joined #forth 10:07:21 --- quit: koisoke (Remote host closed the connection) 10:13:31 --- join: koisoke joined #forth 10:55:47 --- quit: gravicappa (Ping timeout: 240 seconds) 11:12:02 --- join: hosewiejacke joined #forth 11:12:47 --- join: gravicappa joined #forth 11:14:51 --- join: charlie joined #forth 11:15:14 --- nick: charlie -> Guest16873 11:16:29 --- quit: hosewiejacke (Ping timeout: 246 seconds) 11:18:06 --- quit: the_cuckoo (Ping timeout: 258 seconds) 11:34:34 --- quit: Guest16873 (Ping timeout: 256 seconds) 11:36:16 --- join: Guest16873 joined #forth 11:40:18 --- join: charlie1 joined #forth 11:41:46 --- quit: Guest16873 (Ping timeout: 272 seconds) 12:02:53 --- nick: charlie1 -> the_cuckoo 12:09:58 --- quit: marksmith (Ping timeout: 240 seconds) 12:10:37 --- quit: gravicappa (Ping timeout: 258 seconds) 12:36:42 --- join: marksmith joined #forth 12:47:13 --- join: dave0 joined #forth 13:02:19 --- join: Zarutian_HTC joined #forth 13:25:40 --- join: lispmacs[work] joined #forth 14:15:35 --- quit: marksmith (Quit: Leaving.) 14:28:38 --- quit: xek_ (Ping timeout: 246 seconds) 15:01:57 --- quit: dave0 (Read error: Connection reset by peer) 15:07:11 --- join: dave0 joined #forth 15:16:58 --- quit: dave0 (Read error: Connection reset by peer) 15:22:13 --- join: dave0 joined #forth 16:58:21 --- quit: dave0 (Quit: dave's not here) 17:32:37 --- quit: Zarutian_HTC (Remote host closed the connection) 17:45:42 --- quit: iyzsong (Read error: Connection reset by peer) 17:47:37 --- join: iyzsong joined #forth 18:03:35 --- join: jedb_ joined #forth 18:04:00 --- join: Zarutian_HTC joined #forth 18:05:12 --- quit: jedb (Ping timeout: 258 seconds) 18:09:24 --- join: boru` joined #forth 18:09:26 --- quit: boru (Disconnected by services) 18:09:29 --- nick: boru` -> boru 18:11:29 --- nick: jedb_ -> jedb 19:27:51 --- join: jsoft joined #forth 19:41:57 --- quit: actuallybatman (Quit: leaving) 20:14:25 --- join: gravicappa joined #forth 20:41:41 --- quit: sts-q (Ping timeout: 265 seconds) 20:51:21 --- join: sts-q joined #forth 20:53:52 --- quit: jsoft (Ping timeout: 258 seconds) 21:42:58 --- quit: Zarutian_HTC (Remote host closed the connection) 22:11:02 --- quit: neuro_sys (Quit: -) 22:11:11 --- join: neuro_sys joined #forth 22:11:11 --- quit: neuro_sys (Changing host) 22:11:11 --- join: neuro_sys joined #forth 22:13:42 --- join: hosewiejacke joined #forth 22:47:56 --- join: actuallybatman joined #forth 23:05:10 --- join: dave0 joined #forth 23:56:08 --- join: marksmith joined #forth 23:59:59 --- log: ended forth/20.12.09