00:00:00 --- log: started forth/20.04.07 00:05:01 --- quit: webchat9_bbl (Ping timeout: 258 seconds) 01:39:00 --- join: webchat9_bbl joined #forth 01:46:33 --- join: mtsd_ joined #forth 01:47:28 --- quit: mtsd (Read error: Connection reset by peer) 01:51:38 --- quit: mtsd_ (Ping timeout: 256 seconds) 02:12:20 --- join: actuallybatman joined #forth 02:21:14 --- join: xek joined #forth 02:25:41 --- quit: xek (Read error: Connection reset by peer) 02:25:58 --- join: xek joined #forth 02:27:29 --- quit: xek (Remote host closed the connection) 02:27:57 --- join: xek joined #forth 02:30:35 --- join: xek_ joined #forth 02:31:34 --- quit: xek_ (Remote host closed the connection) 02:33:00 --- quit: xek (Ping timeout: 256 seconds) 03:25:55 --- join: wickedshell_ joined #forth 03:28:39 --- quit: wickedshell_ (Client Quit) 03:35:03 --- join: dave0 joined #forth 04:00:55 --- quit: jsoft (Ping timeout: 265 seconds) 04:08:56 --- quit: webchat9_bbl (Read error: Connection reset by peer) 04:09:49 --- join: webchat9 joined #forth 04:15:21 --- quit: WickedShell (Remote host closed the connection) 04:28:05 --- join: dddddd joined #forth 04:32:59 --- join: xek joined #forth 05:57:20 --- quit: dys (Remote host closed the connection) 06:07:51 --- join: dys joined #forth 06:15:19 --- join: jsoft joined #forth 06:18:01 --- quit: iyzsong- (Read error: Connection reset by peer) 06:31:12 --- quit: dave0 (Quit: dave's not here) 06:58:26 --- join: webchat991 joined #forth 06:58:27 --- quit: webchat9 (Read error: Connection reset by peer) 07:14:05 --- quit: Zarutian_HTC (Ping timeout: 250 seconds) 07:16:03 --- quit: webchat991 (Quit: Leaving) 07:57:53 --- join: Zarutian_HTC joined #forth 08:50:26 --- quit: jsoft (Ping timeout: 265 seconds) 09:01:33 --- quit: proteus-guy (Ping timeout: 250 seconds) 09:03:44 --- join: crab1 joined #forth 09:03:57 what's up forth boys 09:04:54 Do any of y'all have experience with writing VMs? 09:13:34 --- nick: lonjil2 -> lonjil 09:14:06 crab1: What sort of VM? 09:22:06 Well I'm writing a simple VM to construct a forth on top of, it's extremely simple, just two stacks and a chunk of memory, a few instructions. But I'm wondering how I should implement interaction with other devices. Should I create instructions specifically to do that? Should I take inspiration from physical hardware and have devices mapped to 09:22:07 memory? 09:26:08 --- quit: karswell (Remote host closed the connection) 09:26:44 --- join: karswell_ joined #forth 09:27:49 --- join: proteus-guy joined #forth 09:33:24 tpbsd: sounds you would want to use the mecrisp register allocator if your chip is supported and has enough space for the slightly larger compiler 09:34:56 because spilling the stack to sram costs power, time and code space 09:41:17 --- join: rdrop-exit joined #forth 09:52:05 crab1, a sandboxed VM written in C or some HLL? 09:55:51 wdym by sandboxed? 09:57:35 Is your VM's "RAM" just an array in the implementation language? 09:58:19 At least for now I'm doing it that way to keep it simple 09:59:00 crab1, memory mapped peripherals are good for things like video ram 10:01:57 like if you want to keep it simple and pick a fixed size with one byte per pixel so its easy to draw graphics from forth 10:02:12 then let your VM figure out how to take that and render it 10:02:53 or just redirect EMIT to console if thats complicated 10:04:03 I don't think I would need graphics, more like filesystem access and block storage, maybe keyboard 10:04:36 and syscalls 10:04:58 If this is a JAVA style bytecoded VM than I would just have an escape instruction to access the outside world, call it SYS or something like that. 10:05:45 Then you can have as many different system services as you want. 10:06:20 and sys would just offer an argument to the system then? 10:06:54 The instruction would take a service# parameter from the stack 10:07:53 So 0 SYS might be write, 1 SYS might be read, and so on. 10:08:36 hm 10:08:52 You can add new services without adding new opcodes. 10:10:02 So if your VM is bytecoded, only one opcode takes care of any future interfacing needs to the underlying OS. 10:11:45 right 10:11:58 --- join: xek_ joined #forth 10:13:09 Of course when you add a new service# you'll have to recompile your VM executable 10:13:57 This is all assuming you're doing a JVM style sandboxed VM 10:14:41 --- quit: xek (Ping timeout: 256 seconds) 10:14:55 Oh it looks like Retro does something similar to what you're talking about 10:15:12 does it, I've never looked into Retro 10:16:58 By sandboxed I mean that a VM address isn't a real address of the underlying platform, it's just an offset into your "simulated" RAM array 10:18:13 https://forthworks.com/retro/book.html#internals-nga-virtual-machine <-- if you go down to I/O devices 10:18:44 but yes I just have memory as an array of bytes 10:19:16 on retro, some documentations related to the io devices: http://forth.works/live/doc/DEVICES.txt http://forth.works/chapters/internals/interface-layers.html http://forth.works/chapters/internals/io.html 10:19:45 Ya, he's talking about actual devices, I'm talking about a way to access OS services from a VM 10:20:31 but conceptually it's pretty much the same thing 10:20:54 my device model can wrap os services (e.g., on unix hosts, I have a unix device to handle system calls and such) 10:22:38 what is io:enumerate useful for? 10:22:46 a SYS service# can be whatever you want, just a thin wrapper on a POSIX call, or something more high level. 10:23:58 In retro's case he seems to be using it for a sort of H/W abstraction layer, my proposal is more basic 10:24:38 more basic, less power 10:24:41 io:enumerate returns the number of io devices provided by the vm 10:27:05 yes, but when is that useful? 10:27:15 you can think of it as less power, I think of it as more basic, you think up any new service you want to make available, implement it, assign it a number, and your done. 10:28:15 more work is deferred to the OS, right 10:29:44 like I said a service is whatever you want it to be, you decide, it's mechanism without policy 10:31:11 the main thing is that only one opcode in your ISA is used for all your underlying platform needs 10:31:42 whatever they may turn out to be 10:35:20 (you can also you the mechanism to configure memory mapped virtual devices if you want those too) 10:37:08 * use the mechanism (not you the mechanism) :) 10:37:52 we the mechanisms 10:38:01 :)) 10:39:31 in effect it's a type of escape opcode 10:40:23 --- quit: xek_ (Remote host closed the connection) 10:42:17 it's almost 2am here, must sleep, stay healthy my friends 10:42:26 --- quit: rdrop-exit (Quit: Lost terminal) 10:42:28 sleep well 10:42:31 o too late 11:02:51 I like my model; the enumerate and query abilities make it easier for an application to confirm that the vm in use supports the I/O needed 12:20:19 --- quit: karswell_ (Read error: Connection reset by peer) 12:48:09 --- quit: dddddd (Ping timeout: 260 seconds) 13:04:12 --- join: WickedShell joined #forth 13:27:47 --- join: dave0 joined #forth 14:29:25 --- join: keltono joined #forth 15:47:46 --- join: jsoft joined #forth 16:04:42 --- quit: cartwright (Remote host closed the connection) 16:07:02 --- join: cartwright joined #forth 17:12:00 back 17:12:06 hey guys 17:12:34 hey tabemann 17:12:48 I looked into that Nordic board 17:12:55 and ? 17:13:04 apparently it is compatible with standard J-Link tools on Linux 17:13:21 there is no problem with compiling with the standard GNU ARM toolchain 17:13:28 and then loading code onto the board 17:14:32 STM32 Nucleo 144: J-Link Reflash https://www.youtube.com/watch?v=ezPou8W_Ntc 17:14:36 oh cool 17:15:04 I really dislike the nucleo swd programmer, I might change it to a J link 17:16:10 not that I use them much being a Forth user 17:16:34 https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/debugging-on-nrf52840-with-gdb-from-cli-on-linux 17:18:39 Andre over 2 years ago 17:18:39 When using OpenOCD with nRF52, use a recent git build, the latest release version has no working support yet. Also make sure you include the nrf52 config file in stead of the nrf51 one. 17:18:51 looks like a recent openocd may work anyway 17:20:55 I'm still trying to debug the sleep problems with zeptoforth 17:21:25 oh 17:22:16 morning 17:25:03 i have nrf52 and nrf51 cfg's for my openocd 17:27:06 bbl - dinner time 17:27:19 no problemo 17:33:42 --- quit: dave0 (Quit: dave's not here) 18:03:03 back 18:03:17 welcome back! 18:03:24 seems the j-link isnt needed 18:03:50 it's a older thing when openocd didnt have the nordic chip configs 18:04:19 but Im not 100% sure, I dont have any nordic stuff 18:04:55 then of course there is the STM32Gxxx stuff 18:05:16 --- quit: jsoft (Ping timeout: 240 seconds) 18:05:26 which Ive mentioned before, and at the rate chips are developed thesedays, who knows what else 18:07:05 will remember that 18:12:03 * tabemann at least now has an LED driver for the F407 DISCO 18:12:29 as the F407 DISCO has four different-colored LEDs under user control 18:13:59 yeah a gyro to drive them i believe 18:17:26 okay, I think I may have fixed the sleep problem 18:17:39 but it requires a stupendously large set of buffers 18:17:52 a 256 byte rx buffer and a 256 byte tx buffer 18:19:18 ahhh 18:20:26 there is a lot of ram on those M4's 18:24:19 it's still losing data when sending lots of data with WORDS 18:27:07 which can be easily moe than 256 chars 18:27:18 oops 256 bytes 18:36:06 yeehaw 18:36:14 figured out why it was losing tx data! 18:36:38 why ?? 18:37:01 going to sleep ? 18:37:48 no 18:38:00 there was a bug in my circular buffer implementation 18:38:49 and was able to shrink the buffers way down again 18:39:56 --- join: jsoft joined #forth 18:44:31 hah 18:47:53 well I blew up the size of the buffers a bit again 18:48:13 still losing chars ? 18:48:37 because I figured with multitasking a slowish task could cause rx data to be lost if it were too small, or a tx-generating task to be slown down too much 18:48:43 --- join: boru` joined #forth 18:48:46 --- quit: boru (Disconnected by services) 18:48:48 --- nick: boru` -> boru 18:48:55 no, just doing it as a general preventative measure 18:49:01 bbl, lunch here 19:00:25 --- quit: jsoft (Ping timeout: 265 seconds) 20:14:22 --- join: rdrop-exit joined #forth 20:14:24 --- quit: reepca (Read error: Connection reset by peer) 20:14:36 --- join: reepca joined #forth 20:36:37 --- quit: reepca (Ping timeout: 250 seconds) 20:42:52 --- join: jsoft joined #forth 20:46:57 --- join: reepca joined #forth 20:48:49 --- quit: proteus-guy (Ping timeout: 260 seconds) 20:53:33 --- join: webchat9 joined #forth 20:59:10 --- quit: jackdaniel (Quit: server upgrade) 21:17:45 --- join: jackdaniel joined #forth 21:27:16 --- quit: actuallybatman (Ping timeout: 240 seconds) 21:47:21 --- quit: reepca (Ping timeout: 265 seconds) 21:51:25 --- quit: _whitelogger (Remote host closed the connection) 21:54:27 --- join: _whitelogger joined #forth 22:50:56 --- join: proteus-guy joined #forth 23:01:11 g'day 23:02:25 hey 23:03:47 what's up? 23:04:48 hi guys 23:05:00 hey webchat9 how goes your Forth based machine code binary generation ? 23:05:14 rdrop-exit, Zen Guru of Forth! 23:05:27 tpbsd: going well, so far 23:05:50 crab1: learning forth 23:05:53 hello Forth Matster Technician (tm) :) 23:06:03 are you new to forth? 23:06:42 yes 23:07:29 I feel like everybody is new to forth, like you can't get past being a newbie 23:08:57 unless you consider things relative to other forth users 23:16:22 --- quit: crab1 (Quit: Connection closed) 23:16:36 The more you know, the more you know you don't know -- Aristotle 23:17:41 The more I know, the more I realize I know nothing. -- Socrates 23:25:30 --- join: crab1 joined #forth 23:29:07 --- join: mtsd joined #forth 23:30:49 crab1, what do you find most difficult to overcome in your study of Forth? 23:31:07 Hello Forthers 23:31:14 hi mtsd 23:31:32 Hi rdrop-exit, how are you doing, in these times? 23:32:17 ok, haven't left home in weeks, stay in touch with my kids virtually. Yourself? 23:33:22 rdrop-exit, the worst for me is that forth is almost what I want, but is not quite what I want, and getting what I want nearly always requires modification of the language 23:33:42 I also can't find the language that IS what I want 23:34:33 what do you want? 23:35:13 Similar here, rdrop-exit. Working from home. Schools are still open here though. 23:35:32 mtsd, ! g'day mate! 23:35:43 hello tpbsd! 23:35:49 How are you? 23:35:57 mtsd, glas to see you're still with us! 23:36:00 My kids are all adults, two living in country, 2 overseas, and 1 granddaughter overseas 23:36:18 mtsd, Im good, I havent been outside my home in 2+ weeks now 23:36:31 I just want something that works how I expect it to 23:36:37 I work from home now, but that suits me just fine 23:36:37 or how I expect it should 23:36:55 mtsd, I think it suits most people ? 23:37:14 tpbsd, glad too see you around. Take care of yourself 23:37:15 mtsd, I guess after this is over, working from home may be far more common ? 23:37:24 tpbsd, especially Forth people ;) 23:37:51 Yes, I think working from home is going to be far more common after this 23:37:59 mtsd, Im semi retired anyway, and when I worked last, it was from home for 15 years 23:38:12 I am worried that this will lead to people being more socially distant as whole, I find that notion to be dangerois 23:38:16 dangerous* 23:38:28 I've worked from home since 2004 23:38:43 I've been retired for almost 11 years 23:38:49 I have been wanting to work from home for years, as a matter of fact 23:39:03 mtsd, I think a lot of people have 23:39:38 of course many cant, but far more can than had the option before CoV-19 23:39:44 But that could be just me. I like focusing without being interrupted by meetings etc. 23:39:46 crab1, I guess it all depends on what those expectations are 23:40:07 That's me. So much fun at parties :) 23:40:58 mtsd, expecially when you demonstrate your Scandinavian-eel Ice-hole fishing technique ;-) 23:41:31 rdrop-exit, that's the trouble, my expectations are not well defined 23:44:19 crab1, I see 23:45:54 I know I want something homogeneous, which is why forth was initially attractive, I expect some form of "everything-is-a" to apply to a language 23:46:10 i.e. with forth, everything is a word 23:47:04 But I don't think the forth word is the thing that I want a language to consist of 23:48:50 tpbsd, haha, the scandinavian eels! That seems to have made a lasting impression 23:49:16 crab1, why not? 23:49:16 If I ever make a Forth of my own, it will have to be called Eel-Forth 23:49:58 Eel-Forth, cool 23:50:40 mtsd, hahahahahahaha 23:52:37 I'll just clone JonesForth and change the name. Just so I can have something named Eel-Forth 23:52:46 why not ? 23:53:19 Yes, why not. Good learning experience, if nothing else 23:53:27 have you noticed the number of projects on github that just fork a popular project and do *nothing* with it ? 23:54:03 Yes, that seems to be the case. Is imitation still the highest form of flattery? 23:54:20 i guess it must be :) 23:54:51 I remember scanning through the JonesForth code and getting the impression that the author wasn't all that familiar with Forth 23:56:31 --- join: reepca joined #forth 23:56:52 rdrop-exit, I think maybe JonesForth is popular as a tutorial ? 23:57:21 Yes it seems to so 23:57:31 Have any of you looked closer at Lina-Forth? 23:57:54 I installed that some time ago, but have just skimmed through the docs yet 23:58:03 No, name sounds familiar 23:58:43 rdrop-exit, for one, I don't like that a forth word cannot be replaced with its definition and guarantee the same result 23:59:59 crab1, that's not a realistic expectation 23:59:59 --- log: ended forth/20.04.07