00:00:00 --- log: started forth/20.03.11 00:00:25 --- quit: dys (Ping timeout: 265 seconds) 00:13:01 --- join: jfe` joined #forth 00:18:49 --- quit: jfe` (Ping timeout: 240 seconds) 00:19:47 --- join: jfe` joined #forth 00:24:36 --- quit: jfe` (Ping timeout: 258 seconds) 00:27:29 --- join: C-Keen joined #forth 00:29:59 --- join: [1]MrMobius joined #forth 00:30:05 --- join: jfe` joined #forth 00:32:35 --- quit: MrMobius (Ping timeout: 255 seconds) 00:32:35 --- nick: [1]MrMobius -> MrMobius 00:34:06 --- quit: jfe` (Remote host closed the connection) 00:34:20 --- join: jfe` joined #forth 00:36:16 --- join: [1]MrMobius joined #forth 00:38:10 --- quit: MrMobius (Ping timeout: 256 seconds) 00:38:11 --- nick: [1]MrMobius -> MrMobius 00:39:05 --- quit: jfe` (Ping timeout: 265 seconds) 00:41:37 --- join: jfe` joined #forth 00:46:23 --- quit: jfe` (Remote host closed the connection) 00:46:40 --- join: jfe` joined #forth 01:06:25 --- quit: _whitelogger (Remote host closed the connection) 01:09:28 --- join: _whitelogger joined #forth 01:22:35 --- quit: jfe` (Ping timeout: 265 seconds) 01:23:49 --- join: jfe` joined #forth 01:28:49 --- quit: jfe` (Ping timeout: 260 seconds) 01:30:32 --- join: jfe` joined #forth 01:32:42 --- join: mtsd joined #forth 01:36:40 --- quit: jfe` (Ping timeout: 258 seconds) 01:39:30 --- quit: MrMobius (Ping timeout: 265 seconds) 01:39:44 --- join: jfe` joined #forth 01:41:57 --- join: MrMobius joined #forth 01:44:20 --- quit: dddddd (Ping timeout: 265 seconds) 01:44:41 --- quit: jfe` (Ping timeout: 260 seconds) 01:45:26 --- join: jfe` joined #forth 01:49:06 --- quit: cartwright (Ping timeout: 240 seconds) 01:50:08 --- quit: jfe` (Ping timeout: 265 seconds) 01:50:09 --- quit: mstevens (Ping timeout: 260 seconds) 01:51:05 --- join: mstevens joined #forth 01:51:31 --- join: jfe` joined #forth 02:01:39 --- join: cartwright joined #forth 02:02:18 --- join: xek joined #forth 02:22:23 --- quit: jfe` (Ping timeout: 255 seconds) 02:22:58 --- join: jfe` joined #forth 02:34:15 --- join: dave0 joined #forth 02:59:15 --- quit: reepca (Ping timeout: 265 seconds) 03:10:36 --- join: reepca joined #forth 03:37:26 --- quit: WickedShell (Remote host closed the connection) 04:10:28 --- quit: Croran (Ping timeout: 240 seconds) 04:17:38 --- join: Croran joined #forth 04:29:09 --- quit: MrMobius (Ping timeout: 265 seconds) 04:30:57 --- join: [1]MrMobius joined #forth 04:35:01 --- join: MrMobius joined #forth 04:35:37 --- quit: [1]MrMobius (Ping timeout: 240 seconds) 04:49:04 --- join: [1]MrMobius joined #forth 04:52:01 --- quit: MrMobius (Ping timeout: 240 seconds) 04:52:58 --- join: MrMobius joined #forth 04:53:45 --- quit: [1]MrMobius (Ping timeout: 256 seconds) 05:14:08 --- quit: rdrop-exit (Quit: Lost terminal) 05:18:14 --- quit: gravicappa (Ping timeout: 258 seconds) 06:08:13 --- quit: iyzsong (Ping timeout: 272 seconds) 06:20:16 g'morning all 06:21:05 good morning remexre 06:21:59 howdy 06:22:10 remexre, I have just this second uploaded my latest Forth project :) https://mecrisp-stellaris-folkdoc.sourceforge.io/touch-sensor.html 06:22:18 hey proteus-guy ! 06:22:31 tp: nice! 06:22:46 Forth again sweeps the competition into the weeds! 06:26:10 tp, nice going. 06:26:38 proteus-guy, ta, that's the kind of stuff I do 06:26:44 being a technician 06:27:38 the hardest part was working out the C code in the STMicro factory example, then debugging my first simple Forth scheduler 06:29:15 tp, you're employed to do this stuff or you are self-employed doing this? 06:29:31 whilst searching for code examples for the TSC I came across a plea for help on stack-exchange that was 12 months old. Someone had written it up in C and was mystified why it refused to work 06:30:00 proteus-guy, I'm a old guy, I used to do this while self employed, starting embedded in 1974 06:30:33 now Im semi retired, learning Forth and still making small embedded gear that I sell 06:31:46 ironically whils the guy had got all the hard bits right, he had screwed up a simple config by one bit, because the C bit manipulation syntax he decided to use was error prone 06:32:15 you were doing embedded all those years and just now getting around to forth. 06:32:40 as MrMobius pointed out another layer of abstraction could have fixed it for him 06:33:11 yeah, I first saw Forth in 1987 but I was making hardware for the system, I'm not a programmer 06:34:01 well now you are! :-) 06:34:11 but the love the programmers has for the Forth they were using was infectious and stayed with me until I 'had the time' which for me was 2014 06:34:47 proteus-guy, nah, Im a technician who programs, I know what Im great at and what Im ordinary at :) 06:35:43 it took me a couple of years of pocking Forth with a stick and having no clue why anyone would use it until the 'penny dropped' for me 06:35:52 :-) 06:36:05 of course after that I never looked at anything else quite the same way 06:36:16 Forth isnt a OS, it's a journey ;-) 06:37:00 so I guess I took to Forth with a mission in 2016, tried a few forths always embedded ones 06:37:32 finally found that Mecrisp-Stellaris for cortex-m suited me just fine and have been making tools for it ever since 06:38:31 most recently Retro has been calling out to me to replace Perl and shell with it on my PC toolset 06:38:51 and I'm finding the Retro siren call harder and harder to resist 06:38:53 even better 06:39:45 and watching CRC using Retro is like watching a real Hacker using Vim, it's a stunning experience 06:40:01 and very humbling 06:40:49 a bit like riding your pushbike down the road when a Bugatti passes at 408 kph 06:43:26 proteus-guy, my last Forth public project is a diagnostics binary to analyse clone/fake microprocessors pretending to be STM32F103 chips. As of today that has been downloaded 181 times since last december mainly by American Windows users 06:44:29 that's good traffic for forth projects. 06:45:31 --- quit: jfe` (Ping timeout: 268 seconds) 06:46:05 heheh, yeah I was stunned when it passed 42 downloads! 06:46:33 I mean at that level I figured every Forth STM32 user in the world had one each 06:47:08 all this iot and embedded stuff seems to be making a forth resurgence. hoping it'll catch on beyond embedded devices. 06:47:10 but it's menu driven and I think 99% have no idea it's a Forth 06:49:05 the only thing Ive noticed thats 'popular' about embedded Forth is the hate it engenders amongst the younger population in online forums, and the few 'I used that once' reminisces by old retards like me 06:49:34 * proteus-guy remains a firm curmudgeon. 06:49:36 I'm willing to bet that all 'flat eathers' and 'moon landing hoaxers' hate Forth 06:50:10 the strongest hate I get is from people who have never used Forth and dont know anything about it 06:51:06 I guess the burden of crufty 'I hate Forth' articles has had the longest time to build up on the InterTubes ? 06:55:47 --- quit: mtsd (Quit: Leaving) 07:09:40 --- join: gravicappa joined #forth 07:12:11 hey guys 07:12:43 hey tabemann i was just heading off for some zzz 07:12:53 have a good night then 07:13:02 tabemann, I released my Forth touch sensor demo 07:13:14 cool 07:13:21 https://mecrisp-stellaris-folkdoc.sourceforge.io/touch-sensor.html 07:13:25 --- join: jfe` joined #forth 07:13:26 --- join: dddddd joined #forth 07:13:45 * tabemann is a (relative) young-un who does not have forth at all 07:13:53 just a demo as most of the people who download my binaries are arduino windows users I think 07:14:06 well, if being 35 counts as being a "young-un" 07:14:43 I'm nearly 2x your age, but I still remember being 35, was a great time for me :) 07:16:03 now I just need to get my multitasker working 07:16:23 it works on bootup, with a single (main) task 07:16:37 but when I try to add another task, it breaks 07:16:52 sounds non trivial to me 07:17:08 I had enough problems with a simple scheduler! 07:17:15 I think it's just a problem with how I'm initializing the second task 07:17:27 oddly I can relate 07:17:38 it was my second task that was my problem 07:17:43 hahah, one is always ok 07:17:50 it works even when the second task exists until I activatethe second task 07:18:12 then it breaks 07:19:24 --- join: [1]MrMobius joined #forth 07:20:13 hey I ran RA2 from the cli, it looks pretty good 07:20:18 radare2 07:20:36 cool 07:20:43 it's easily scripted, heaps better than the cutter gui 07:20:52 more like gdb 07:21:10 https://www.radare.org/get/r2snow.pdf 07:21:17 https://r2wiki.readthedocs.io/en/latest/tools/radare2/ 07:21:32 it may be what you want if GDB isnt doing it 07:21:43 it has a ton of plugins etc 07:22:07 anyway zz for me, it's 0121 here 07:22:09 cya 07:22:13 --- quit: MrMobius (Ping timeout: 256 seconds) 07:22:55 g'night 07:24:21 --- quit: [1]MrMobius (Ping timeout: 258 seconds) 07:25:44 --- join: MrMobius joined #forth 07:29:26 --- quit: tabemann (Ping timeout: 265 seconds) 07:37:14 --- join: pierpal joined #forth 07:44:08 --- quit: jsoft (Ping timeout: 255 seconds) 07:45:23 --- quit: jfe` (Ping timeout: 265 seconds) 08:14:11 --- join: jpsamaroo joined #forth 08:14:56 --- join: [1]MrMobius joined #forth 08:17:44 --- quit: MrMobius (Ping timeout: 256 seconds) 08:17:46 --- nick: [1]MrMobius -> MrMobius 08:33:21 --- join: X-Scale` joined #forth 08:34:08 --- quit: X-Scale (Ping timeout: 240 seconds) 08:34:08 --- nick: X-Scale` -> X-Scale 08:42:40 --- quit: pierpal (Read error: Connection reset by peer) 08:44:48 --- join: jfe` joined #forth 08:50:03 --- quit: jfe` (Ping timeout: 256 seconds) 09:08:34 --- quit: dave0 (Quit: dave's not here) 09:16:46 --- join: [1]MrMobius joined #forth 09:18:34 --- join: jfe` joined #forth 09:19:13 --- quit: MrMobius (Ping timeout: 260 seconds) 09:19:13 --- nick: [1]MrMobius -> MrMobius 09:29:29 --- quit: jfe` (Ping timeout: 260 seconds) 09:59:08 --- quit: phadthai (Ping timeout: 255 seconds) 10:04:43 --- join: phadthai joined #forth 10:12:50 proteus-guy: I wonder if you could modify the interpreter so that an undefined type in a type signature represents an any 10:12:57 Is there a common forth word for doing 'memset' i.e. set all bytes in a region to a given value? 10:13:01 --- join: [1]MrMobius joined #forth 10:13:12 that way `swap : A B -> B A` makes sense 10:13:14 veltas: fill? 10:13:41 Ah lovely 10:13:44 Thank you 10:14:50 https://forth-standard.org/standard/core/FILL 10:14:53 Forth is the only language where I can't google stuff like "forth equivalent for memset" 10:15:06 hahahaha look at the "suggested reference implementation" 10:15:26 Does it use CMOVE? 10:15:51 where : FILL >R BEGIN DUP 0<> WHILE OVER R@ SWAP C! 1 /STRING REPEAT R> DROP` is considered as reasonable 10:16:10 --- quit: MrMobius (Ping timeout: 256 seconds) 10:16:16 the first guy said `: FILL ROT ROT 0 ?DO 2DUP C! CHAR+ LOOP 2DROP ;` which is so simple 10:17:02 this is why nobody takes Forth standardisation seriously 10:18:02 --- quit: [1]MrMobius (Ping timeout: 255 seconds) 10:19:40 --- join: MrMobius joined #forth 10:20:59 : FILL OVER 0= IF 2DROP DROP EXIT THEN ROT DUP >R C! R> DUP 1+ ROT CMOVE ; 10:21:11 (Untested) is roughly what I was expecting to see 10:21:19 But writing it out that is horrific 10:22:14 In Z80 this is how most people do 'memset' and I'm assuming 'fill', using the LDIR instruction where CMOVE is 10:22:20 honestly I don't remember what CMOVE does 10:22:35 It copies byte by byte in ascending address order 10:22:48 CMOVE> is same in descending addresses 10:23:08 So you copy the first byte over and then use cmove to fill with the rest 10:23:27 Hmm I am already spotting a mistake because I should have a 1- at the end to do "the rest", not "one more" 10:23:39 ah yeah 10:24:07 You are welcome to ask for your money back, I did label it 'untested' and therefore with a full warranty 10:24:30 Luckily I am sure no Forth programmer has ever copy+pasted code 10:24:54 i probably did a bunch 10:25:00 when i started 10:25:07 https://forth-standard.org/standard/string/CMOVE 10:25:14 you can probably do FILL smaller than that 10:25:40 Okay let's code golf it in forth 2012 10:25:55 I would try but i'm really tired rn 10:32:30 : FILL ROT ROT 0 ?DO 2DUP C! 1+ LOOP 2DROP ; 10:32:45 Is the best I can come up with and that is exactly what they suggested, but with ROT ROT instead of -ROT 10:33:29 I do agree that anything significantly longer is bad forth 10:47:05 WilhelmVonWeiner: I don't know I don't really take any standards seriously 10:47:29 I like Forth's standard because it only seems to take itself so seriously and has let everyone get involved 10:47:49 But I don't know much about the committee 10:54:24 --- quit: _whitelogger (Remote host closed the connection) 10:57:28 --- join: _whitelogger joined #forth 11:12:33 --- join: [1]MrMobius joined #forth 11:14:25 --- quit: MrMobius (Ping timeout: 240 seconds) 11:15:12 --- join: MrMobius joined #forth 11:17:34 --- quit: [1]MrMobius (Ping timeout: 265 seconds) 11:18:33 --- join: [1]MrMobius joined #forth 11:20:28 --- quit: MrMobius (Ping timeout: 265 seconds) 11:20:28 --- nick: [1]MrMobius -> MrMobius 11:48:18 --- quit: deesix (Ping timeout: 268 seconds) 11:48:33 --- quit: dddddd (Ping timeout: 260 seconds) 11:48:40 --- join: deesix joined #forth 11:48:57 --- join: dddddd joined #forth 11:57:01 --- join: mykespb joined #forth 12:12:48 --- join: mtsd joined #forth 12:19:29 --- join: WickedShell joined #forth 12:36:09 --- join: X-Scale` joined #forth 12:36:11 --- quit: X-Scale (Ping timeout: 255 seconds) 12:36:50 --- nick: X-Scale` -> X-Scale 12:39:18 --- join: jfe` joined #forth 12:44:01 --- quit: jfe` (Ping timeout: 240 seconds) 13:13:23 --- join: jfe` joined #forth 13:14:03 --- quit: MrMobius (Ping timeout: 265 seconds) 13:16:43 --- join: MrMobius joined #forth 13:19:10 --- quit: mtsd (Remote host closed the connection) 13:19:22 --- join: mtsd joined #forth 13:43:35 --- quit: mtsd (Remote host closed the connection) 13:47:33 --- quit: mykespb (Quit: Leaving) 13:50:57 --- quit: jfe` (Ping timeout: 256 seconds) 13:52:52 --- quit: gravicappa (Ping timeout: 268 seconds) 14:15:39 --- join: dys joined #forth 14:42:59 --- quit: xek (Ping timeout: 265 seconds) 15:10:10 might've asked this before, but is there a word FOO such that for a non-immediate word BAR, in compile mode, FOO BAR is equivalent to ['] BAR COMPILE, ? 15:37:15 --- quit: jhei (Remote host closed the connection) 15:40:12 --- join: jhei joined #forth 15:50:39 --- quit: guan (Remote host closed the connection) 15:50:40 --- quit: arrdem (Remote host closed the connection) 15:54:33 --- join: guan joined #forth 15:55:18 --- join: arrdem joined #forth 15:56:25 --- quit: rann (Remote host closed the connection) 15:56:26 --- quit: ovf (Remote host closed the connection) 15:59:56 --- join: ovf joined #forth 16:00:58 --- join: rann joined #forth 16:04:55 --- join: [1]MrMobius joined #forth 16:05:53 --- quit: MrMobius (Ping timeout: 255 seconds) 16:09:37 --- quit: [1]MrMobius (Ping timeout: 240 seconds) 16:11:14 --- join: MrMobius joined #forth 16:59:49 --- join: jfe` joined #forth 17:10:22 --- join: tabemann joined #forth 17:16:43 --- join: iyzsong joined #forth 17:33:05 --- join: dave0 joined #forth 18:16:24 --- quit: tabemann (Ping timeout: 258 seconds) 18:19:05 --- quit: proteus-guy (Ping timeout: 258 seconds) 18:19:31 --- quit: proteusguy (Ping timeout: 265 seconds) 18:26:31 --- join: iyzsong- joined #forth 18:26:37 --- quit: iyzsong (Ping timeout: 260 seconds) 18:32:24 --- join: proteusguy joined #forth 18:32:24 --- mode: ChanServ set +v proteusguy 19:01:40 --- join: boru` joined #forth 19:01:43 --- quit: boru (Disconnected by services) 19:01:45 --- nick: boru` -> boru 19:13:30 --- join: tabemann joined #forth 19:51:33 --- quit: jfe` (Ping timeout: 260 seconds) 19:59:06 --- join: rdrop-exit joined #forth 19:59:53 --- join: boru` joined #forth 19:59:56 --- quit: boru (Disconnected by services) 19:59:58 --- nick: boru` -> boru 20:09:38 remexre, do you mean POSTPONE ? 20:09:43 --- quit: rdrop-exit (Quit: Lost terminal) 20:10:22 rdrop-exit: I don't believe so (or I misunderstand POSTPONE)? 20:11:54 my understanding is that POSTPONE BAR = [ ' BAR COMPILE, ] 20:15:46 hey guys 20:15:59 howdy 20:22:10 agh.... I don't get why, if I don't turn off multitasking, compiling to RAM crashes 20:22:43 and no chance it's multiple tasks writing to the same spot at the same time? 20:22:47 or more like trying to call something compiled to RAM 20:22:50 or rather, writes being interleaved 20:23:32 the thing is that in zeptoforth, by default, PAUSE is only called when doing IO 20:24:16 hmm, odd 20:48:25 --- quit: _whitelogger (Remote host closed the connection) 20:51:28 --- join: _whitelogger joined #forth 21:01:50 --- join: jfe` joined #forth 21:05:06 tp: have you experimented with using a bluetooth module in your Forth code? 21:12:47 --- quit: jfe` (Ping timeout: 255 seconds) 21:27:25 --- quit: _whitelogger (Remote host closed the connection) 21:30:28 --- join: _whitelogger joined #forth 21:37:57 --- join: [1]MrMobius joined #forth 21:39:37 --- quit: MrMobius (Ping timeout: 265 seconds) 21:39:49 --- quit: pareidolia_ (Ping timeout: 260 seconds) 21:40:58 --- join: MrMobius joined #forth 21:42:55 --- join: pareidolia joined #forth 21:42:56 --- quit: [1]MrMobius (Ping timeout: 255 seconds) 21:43:39 --- join: [1]MrMobius joined #forth 21:45:42 --- quit: MrMobius (Ping timeout: 258 seconds) 21:45:43 --- nick: [1]MrMobius -> MrMobius 21:49:49 --- join: [1]MrMobius joined #forth 21:51:37 --- quit: MrMobius (Ping timeout: 240 seconds) 21:52:26 --- join: MrMobius joined #forth 21:55:06 --- quit: [1]MrMobius (Ping timeout: 268 seconds) 22:24:25 --- quit: _whitelogger (Remote host closed the connection) 22:27:26 --- join: rdrop-exit joined #forth 22:27:28 --- join: _whitelogger joined #forth 22:29:55 remexre, if POSTPONE is not the answer than I'm not sure what the question is :) 22:30:29 I've got a couple words that are like 22:30:46 : foo ['] bar COMPILE, baz ['] xyzzy COMPILE, ; 22:31:05 I want smth like 22:31:14 : foo ??? bar baz ??? xyzzy ; 22:31:32 that's what POSTPONE is for 22:32:49 doesn't it only do that in the case of an immediate word? 22:32:57 or am I misreading the spec 22:33:21 it postpones the compilation behavior, whatever it happens to be 22:33:57 hm 22:34:14 so I guess my POSTPONE is wrong then 22:34:29 so for an immediate word the normal compilation behavior it to execute, and it postpones that 22:34:30 does it / should it need a branch on whether the word is immediate, then? 22:34:59 for a non-immediate word the normal compilation behavior is to compile, so it postpones that 22:35:06 yes 22:35:13 oh, ok 22:35:19 right now mine's literally just : POSTPONE ' COMPILE, ; IMMEDIATE 22:36:39 in previous Forth standard there were two different words, COMPILE and [COMPILE] 22:37:38 in the ANS standard they decided to make one word that just postpones the behavior whatever it might be 22:38:58 --- join: proteus-guy joined #forth 22:40:39 As an example this is my version of POSTPONE on my PC Forth: 22:40:45 : & { -- }( -- ? ) 22:40:46 compilation defined 22:40:46 dup immediate? if >code compile, then; 22:40:46 >code lit, [^] compile, call, ; directive 22:41:13 (BTW, I use the name & instead of POSTPONE) 22:41:58 WilhelmVonWeiner, sorry just saw your comment about undefined type. There's no such thing as an undefined type but if you mean assuring that something like swap: Any, Any -> Any, Any actually enforces swap: Any1, Any2 -> Any2, Any1 that is coming. 22:55:03 --- join: gravicappa joined #forth 23:42:24 --- quit: _whitelogger (Remote host closed the connection) 23:45:28 --- join: _whitelogger joined #forth 23:49:39 --- quit: iyzsong- (Quit: ZNC 1.7.1 - https://znc.in) 23:50:07 --- join: iyzsong joined #forth 23:59:59 --- log: ended forth/20.03.11