00:00:00 --- log: started forth/19.11.28 00:09:17 --- join: inode joined #forth 00:10:02 --- join: mtsd joined #forth 01:25:29 --- join: smokeink joined #forth 01:30:42 --- join: jsoft joined #forth 01:38:54 --- quit: jsoft (Ping timeout: 268 seconds) 01:58:19 --- quit: mtsd (Ping timeout: 276 seconds) 02:00:25 --- join: mtsd joined #forth 02:02:04 --- join: dave0 joined #forth 02:50:23 --- join: iyzsong joined #forth 03:08:12 --- join: proteus-guy joined #forth 03:14:50 --- quit: mtsd (Ping timeout: 245 seconds) 03:30:55 --- join: mtsd joined #forth 03:48:10 --- quit: smokeink (Ping timeout: 250 seconds) 04:37:20 --- quit: dave0 (Quit: dave's not here) 05:15:22 --- quit: siraben (Write error: Connection reset by peer) 05:15:29 --- quit: nonlinear[m] (Write error: Connection reset by peer) 05:15:39 --- quit: jimt[m] (Write error: Connection reset by peer) 05:15:50 --- quit: alexshpilkin (Remote host closed the connection) 05:39:18 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 05:41:01 I just found out one of my colleagues' uncles is Peter Knaggs, editor of the Forth 200X standard 05:41:14 what a crazy small world 06:05:12 --- quit: ryke (Ping timeout: 265 seconds) 06:14:33 --- quit: mtsd (Quit: Leaving) 06:32:10 --- join: dddddd joined #forth 07:09:27 --- join: siraben joined #forth 07:09:27 --- join: jimt[m] joined #forth 07:09:27 --- join: alexshpilkin joined #forth 07:09:28 --- join: nonlinear[m] joined #forth 07:10:35 --- quit: rdrop-exit (Quit: Lost terminal) 07:18:41 --- quit: proteus-guy (Ping timeout: 268 seconds) 09:26:05 --- join: ryke joined #forth 10:58:35 --- quit: ryke (Ping timeout: 265 seconds) 11:43:58 --- join: ryke joined #forth 11:52:17 --- join: jsoft joined #forth 12:15:55 --- quit: gravicappa (Ping timeout: 268 seconds) 12:28:10 --- quit: jsoft (Ping timeout: 250 seconds) 13:46:55 hey guys 13:47:17 yo tabemann 13:47:42 just wondering what I should do next with hashforth 13:52:54 I should really work on uhashforth 13:54:23 but that is hard 13:55:11 since it is essentially working on a platform I do not know (namely the DISCOVERY board) 13:59:27 tabemann, you wont learn much doing easy stuff ;-) 13:59:38 hey tp 13:59:45 hey tabemann 14:05:12 the thing to me is that "easier" things include things that aren't really easy, like, say, writing a built-in text editor for hashforth 14:05:47 rather the difference is between problems that are a simple matter of coding and ones that are not 14:06:19 easier for programmers ? 14:06:32 embedded is a totally different field I know 14:07:32 tabemann, why not ease yourself into embedded with a tethered Forth ? 14:07:41 have hashforth on the pc only 14:07:52 make it build the machine code for the target 14:07:55 etc 14:08:21 the thing is most of the design problems for me are the same either way 14:08:33 oh 14:08:41 how to handle flashing 14:09:04 how to handle a mixture of in-flash and in-ram words 14:09:09 if youre just flashing a binary, use openocd over jtag or swd ? 14:09:37 probably the simplest approach to be completely honest would be to say screw it with flash 14:09:44 only flash the uhashforth binary over 14:09:52 and do everything else in RAM 14:10:23 I'm initially flashing a binary with ST-Link 14:11:12 well if you at least build something, the rest will follow later 14:16:35 I'm also wondering how to load my initial image 14:16:55 do I combine it with the binary and flash it all together 14:17:25 or do I transfer it with serial and have the bootloader parse it in RAM 14:18:39 Mecrisp-Stellaris binary is only loaded into flash 14:19:21 all 20kB of it 14:21:01 unless Ive added 120kB of Words and made a binary of that including the Mecrisp-Stellaris image, by thats also flashed 14:22:57 --- quit: ryke (Ping timeout: 268 seconds) 14:23:14 okay, so what I ought to do is to write a utility that parses the image file and combines i with the binary 14:30:51 --- join: jedb__ joined #forth 14:31:11 this is where I get lost as Mecrisp-Stellaris is all assembly and gets compiled into a binary by arm-none-eabi-as 14:33:24 --- quit: jedb_ (Ping timeout: 250 seconds) 15:09:44 --- join: dave0 joined #forth 15:40:43 --- join: jedb_ joined #forth 15:40:46 tp 15:40:52 I have a stupid question 15:41:03 before I even attempt to do anything with my board 15:41:13 I am going to try with Mecrisp-Stellaris first 15:41:18 but 15:41:27 I don't even know where to start 15:41:44 my ST-Link connector for instance does not match anything on the board 15:42:59 --- quit: jedb__ (Ping timeout: 240 seconds) 15:44:37 okay, I see a connector marked "ST-Link" 15:44:59 and it looks like the connector on my ST-Link marked "STM8" not the one marked "STM32" 15:46:34 but wait 15:46:44 it also says "USB ST-Link" on the board 16:37:22 --- join: smokeink joined #forth 17:28:25 tp 17:28:38 hey, I got mecrisp-stellaris working on my DISCOVERY board 17:37:38 --- join: jsoft joined #forth 17:46:44 in addition to getting mecrisp-stellaris working on my DISCOVERY board, I also discovered that the provided demo.fth file makes it crash 17:49:55 --- quit: jsoft (Ping timeout: 265 seconds) 17:52:58 okay, that's because I didn't use slowpaste 17:59:59 bak 18:00:09 tabemann, cool 18:00:31 okay, I have the stupidest of questions - how do I make mecrisp output CRLF, or how do I make screen accept LF? 18:01:13 to make Mecrisp-Stellaris do it, you have to hack the source, easy 18:01:54 to make a terminal do it, you have to configure the terminal. Picocom has a easy setting for it 18:02:09 screen has a setting but it doesnt work 18:02:41 I can tell you the file and what to do if you want to recompile Mecrisp-Stellaris ? 18:04:24 tabemann, I did petition the Mecrisp-Stellaris author to add the cr but he refuses to do it. He said that it's a sensible thing to do, but he made Mecrisp-Stellaris for him, not for me :) 18:05:09 which is fair enuf, it's his work 18:05:45 which file 18:08:41 common/datastackandmacros.s chance every occurrence of "\Meldung\n" to "\Meldung\r\n" 18:08:56 there are several 18:10:15 then in mecrisp-stellaris-source/your-micro just run make 18:21:35 STM32F030CCT6 MCU 32-bit ARM Cortex M0 RISC 256KB Flash 2.5V/3.3V 48-Pin LQFP Tray 10+ $1.3563 USD, arrow.com 18:23:52 back 18:23:55 got it working! 18:24:10 of course! youre a C heavy hitter! 18:24:18 oops 18:24:23 a Forth heavy hitter! 18:24:45 Mecrisp-Stellaris is easy to work with, and you also have the advantage of reading german ? 18:25:28 tab, you can even load my red prompt word if you want :) 18:25:33 mein Deutsch is nicht wirklich gut 18:26:09 I wish I did 18:27:22 I generally don't understand the guy behind Mecrisp's comments 18:27:33 Matthias Koch 18:27:57 but at least I have my board running properly! 18:28:23 and fast! 18:28:36 then I usually add hardware handshaking 18:28:48 thats the first two things I do 18:29:29 how do you add hardware handshaking? 18:29:33 and while I add the HH, I increase the baud rate to 460800, which is the fastest that gnu screen will go 18:30:00 simply enable RTS in your chips "terminal.s" 18:30:59 that involves condiguring the GPIO pin in alternate function mode, and enabling RTS in the USART youre using 18:31:39 again, these are straigtforward, but does involve some assembly language if you want it in Mecrisp-Stellaris on bootup 18:31:56 see, these are all things that me, a software guy, am not familiar with 18:32:16 BUT you can also create a Word to do it, but it's less convenient 18:32:35 well you smashed the CR addition 18:33:08 tabemann, there are tools you can use to make it a lot easier 18:33:30 I understand youre a software guy, but I dount you have any problems 18:33:50 maybe I should just should just use arduino :( 18:34:06 first thing is to dl the 'reference kit' for your chip from the Mecrisp-Stellaris site 18:34:28 yeah right, thats like me saying I should use arduino instead of Forth 18:36:31 software people are afraid of hardware and vice versa, yet we really don't need to be. All you need is a little mental horsepower, and if you do one or the other, then you have that already 18:36:50 where do do I find the "reference kit"? 18:37:58 it's usually here https://sourceforge.net/projects/mecrisp/files/ just see if there is one for your chip 18:38:06 okay, gonna have pumpkin pie with family, so bbl 18:38:33 tabemann, also, if youre using linux, you should probably use e4thcom terminal as it solves ALL your terminal problems 18:38:36 cya\ 18:40:30 mein deutsch existiert nicht 18:52:55 --- join: ryke joined #forth 20:12:59 --- quit: ryke (Ping timeout: 265 seconds) 20:48:52 --- join: gravicappa joined #forth 21:45:51 --- quit: dddddd (Remote host closed the connection) 22:33:19 --- quit: cheater (Ping timeout: 276 seconds) 22:49:22 --- quit: Jookia (Quit: Jookia) 22:51:18 --- join: rdrop-exit joined #forth 22:52:25 c[] 22:52:41 good afternoon Forthians 22:52:50 heyhey Zen Forth Guru! 22:53:24 hey Master Forth Technician :) 22:55:32 this tecnician is wrestling with a nice Forth iHex extended address algorithm. I'm at the part where the detective knows what size shoes the murder wears and is eliminating the guests shows sizes one by one ... 22:55:49 shows = shoes 22:56:33 cool 22:56:44 hows the weather, got some decent rain to go with the heat yet ? 22:57:14 we have the heat, the fires, the smoke, but no rain 22:57:26 not much, just drizzle a couple times a day 22:58:11 I'm considering retrofitting a multiple undo/redo to the latest version of my block editor 22:58:39 10,000 deep ? ;-0 22:59:01 no way :) 22:59:33 hahah, I'm persistent but stupid, the first thing I do is increase my shell history to 10,000 23:00:33 I don't think I'd ever undo more than a handful of editing operations 23:00:59 same, I just like to be able to reference earlier operations 23:01:03 I do have 64k of history in my console (not the editor) 23:01:07 days, months ago 23:01:27 nice! 23:01:39 ya cant have too much history I say 23:02:28 circular buffer of 64 blocks, recycle the oldest row 23:03:25 you love your circular Zen! 23:03:47 life is a circle, not a fifo ? 23:03:58 :) 23:04:30 we all live on a carousel of time ? 23:04:49 I use circular buffers a lot, since I avoid dynamic allocation in Forth 23:05:18 that sounds like good houskeeping to my limited Forth experience 23:06:46 I'm not modern, no dynamic allocation, no GC 23:08:15 hmm, I think i'll add a piezo buffer to my standby Forth system and make it beep intermittently for a minute every hour after the temperature peaks for the day 23:08:42 ever seen a Forth with a GC ? 23:08:48 that'll get annoying fairly quickly 23:09:22 I'll adjust the length and volune if it does 23:09:42 I think I'd like to know when the heat for the day is over 23:09:51 I think some of the desktop Forth variants that are object oriented and/or functional oriented use GC, not sure 23:10:04 I'll incorporat it into my relative humidity guage 23:10:33 sounds reasonable, but no embedded user would want GC 23:10:48 I'd image they at least use the C library's dynamic allocation 23:10:53 * I'd imagine 23:11:17 so if the Forth is written in C it may have GC ? 23:11:38 I very rarely even used the C library's alloc & free when writing C programs 23:12:47 C programs don't usually have GC 23:13:33 they have the capacity for it tho ? 23:13:49 I've never used it in the few C programs I have written 23:14:21 I suppose there may be specialized libraries available, but the C standard has no GC, only basic heap allocation 23:15:09 and once ram is allocated from the heap, that's it, if it's only used once it's not recovered ? 23:15:40 there's also alloca() that allocates off the stack, but I don't think that's either standard C or POSIX 23:16:04 you explicitly release with free() 23:16:51 which is garbage collection ? 23:17:11 oh, thunder ans a small storm heading my way! 23:17:27 I havent seen rain for about 3 months 23:17:56 GC is when the system either automatically or on request recycles memory 23:18:05 ok 23:18:36 i should read about it but I dont use C nowadays and only ever used it for simple tasks when I di 23:18:38 d 23:19:45 e.g. Java has GC 23:19:57 makes sense 23:23:36 dynamic allocation and/or GC is fine in systems that do a lot of string handling, like scripting languages 23:24:33 yes 23:24:51 not wanted in realtime embedded systems usually 23:25:35 absolutely, things are much more pre-determined and pinned down 23:25:42 yes 23:26:08 and a few nanoseconds can be a make or break situation 23:27:17 predictability and reliability 23:27:40 yes 23:28:32 I remember once I only had a 50ns window to read a peripheral, any longer and I'd miss it 23:30:48 The ultimate is fully deterministic, minimal interrupts 23:30:55 https://en.wikipedia.org/wiki/Time-triggered_architecture 23:33:30 yes, RTOS's typically use the "systick" overflow to drive the task timing 23:33:44 Ive never used one vecause they are all in C 23:33:49 -v+b 23:34:34 plus I like more latitude designing 23:35:02 You don't need an OS to do a TT system, just poll devices on predermined schedule 23:36:05 sure, thats all they usually do afaik 23:36:33 the main aspect is getting away from preemption so that the system is more deterministic 23:37:14 most embedded systems arent multitasking anyway 23:37:22 right 23:37:41 basically it boils down to coroutines is all you really need 23:37:58 certainly mine havent been until Forth and I have used a cooperative multitasker for development, but I dont need it 23:38:36 there is a interesting Forth called 'propellor Forth 23:39:12 it runs on the 'parallax propeller' mcu which has eight 'cogs' 23:39:12 Forth-style cooperative multitasking at least gets away from preemption, but in the end coroutine support is all you really need 23:39:35 propeller is a really cool design 23:39:38 and a Forth runs independently on each cog 23:39:57 I have a couple and liked propforth when I tested it 23:40:10 then we have the GA-144 23:40:32 so there re alternatives to multitasking as well 23:40:51 I like the thinking behind the propeller design 23:41:34 me too, I hope they continue to build interesting mcu's 23:41:53 the propeller was more for video processing I think 23:42:59 for what I do, even a lowly cortex-m0 is tons, it's more like using a M60 machine gun to hunt rabbits in my case 23:44:04 the main thing is if you want very reliable or safety critical one needs to forgo preemption and multiple interrupt priorities 23:44:52 now the arduino world has a new board with a miocrochip MCU running at 600 Mhz. It draws 100mA and will clock a GPIO at 250 Mhz, essential for every cat door or pet feeder 23:45:31 true enough, safety critical is a career all in itself I think 23:46:34 safety critical is too scary, high reliability though is always good 23:46:47 agreed 23:47:39 tho I think that as always, one doent have to be a genius to build decent solutions, one just has to avoid being a idiot 23:47:52 --- join: ryke joined #forth 23:48:58 and anyway, from what I read, in safety critical, the pointy headed maths team do all their stuff analysing everything before code is laid down 23:49:23 and they specify how and where and what 23:49:50 it's a universe away from me 23:50:31 in theory maybe, practice is much messier 23:51:46 all plans fail when the enemy is met ? 23:52:06 Clausewitz 23:52:41 No plan survives contact with the enemy IIRC 23:52:53 ah yes, mush better put 23:53:18 I worked, as a wee lad, on a prototype liquid hydrogen plant project in Quebec 23:53:47 no smoking zone ? 23:54:14 I only had a minor role, I'm not a process control engineer, just a computer guy 23:54:50 I was never more scared than during that plant startup 23:55:09 everyone expected it to blow up ? 23:55:18 mainly because I knew how messy the project was 23:55:23 ahh 23:55:43 I had no confidence in the engineers that designed or implemented 23:55:58 In the end though it worked 23:57:00 i know a guy working in aerospace, hes really depressed because he knows how poorly designed their project is and the leaders wont let him do the things he feels are mandatory 23:57:37 nobody got cut in half walking through a leak 23:57:39 hes unhappy with the huge costs and hopes the project never flies 23:57:54 hahah 23:58:29 I remember once we were testing a 50,000 PSI guage and the feed line blew out 23:58:44 wooosh 23:58:58 the two of us dived for cover, I cleverly dived behind a cardboard box ... 23:59:33 a cloud of oil appeared and neither of us were cut in half as expected 23:59:59 --- log: ended forth/19.11.28