00:00:00 --- log: started forth/19.12.22 03:21:10 --- join: f-a joined #forth 03:26:36 --- quit: f-a (Ping timeout: 260 seconds) 03:27:08 --- join: f-a joined #forth 03:46:02 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 03:46:47 --- quit: crab1 (Quit: WeeChat 2.6) 04:02:48 --- quit: f-a (Ping timeout: 258 seconds) 04:04:40 --- join: f-a joined #forth 04:53:41 --- join: dys joined #forth 05:04:31 --- quit: smokeink (Ping timeout: 258 seconds) 06:42:36 --- quit: dave0 (Quit: dave's not here) 07:40:12 --- join: TwoNotes joined #forth 07:41:47 --- join: dddddd joined #forth 08:02:49 --- quit: f-a (Ping timeout: 240 seconds) 08:04:46 --- join: f-a joined #forth 10:15:31 --- quit: TwoNotes (Remote host closed the connection) 11:24:49 --- quit: dys (Ping timeout: 240 seconds) 11:35:09 --- quit: gravicappa (Ping timeout: 260 seconds) 12:00:13 --- join: gravicappa joined #forth 12:03:15 --- quit: f-a (Ping timeout: 268 seconds) 12:04:49 --- join: f-a joined #forth 12:13:39 --- quit: tabemann (Ping timeout: 260 seconds) 12:28:16 --- quit: X-Scale (Ping timeout: 265 seconds) 12:31:05 --- join: X-Scale` joined #forth 12:38:08 --- quit: gravicappa (Ping timeout: 265 seconds) 13:24:05 --- join: tabemann joined #forth 13:38:12 --- quit: jsoft (Ping timeout: 258 seconds) 13:40:27 --- join: dave0 joined #forth 14:35:38 --- join: jedb_ joined #forth 14:38:38 --- quit: jedb (Ping timeout: 268 seconds) 15:04:51 --- quit: tabemann (Ping timeout: 260 seconds) 15:14:12 --- quit: f-a (Quit: leaving) 17:15:51 --- join: tabemann joined #forth 17:29:26 --- join: ryke joined #forth 17:39:49 --- join: rdrop-exit joined #forth 17:47:20 hey 17:47:36 hi tabemann! 17:47:48 * tabemann is busy hacking on zeptoforth 17:47:53 heyhey fellow Forthlings! 17:47:58 hey tp 17:48:07 hi tp! 17:48:15 g'day rdrop-exit Zen Forth Guru! 17:48:34 Likewise Forth Master Technician (tm)! 17:49:35 lol, my IRC client beeps the pc speaker when someone types and I was just uploading a Forth file to a MCU which also has the same beep if a error occurs, so I halted the upload but it was IRC :) 17:49:53 I'm disturbed by how inefficient calls between RAM and Flash are on Thumb-1 17:50:28 Ive almost finished my cortex-m0 IDE upgrade, just have to find my latest silly error 17:50:48 busy beavers 17:52:27 and I also found I had a name clash some Mecrisp-Stellaris programs because matthias used "bl" for "space" in his Forth core, and later again redefined "bl" for use in his assembler 17:53:00 does Mecrisp have vocabularies? 17:53:54 this meant that my USB driver was screwing up the USB ID because it was using "bl" for space after the assembler.fs redefined it 17:54:37 rdrop-exit, yeah it does but I find them to wordy, so Ive just renamed "bl" in the assembler.fs to "_bl" 17:54:41 The "official" ASCII abbreviation for the space character is SP but most Forths use BL instead since SP can be confused with a stack pointer 17:55:56 I've often felt like just renaming BL to SP 17:55:56 yeah, it's not a easy situation to sort out. I note that Matthias is preceding all RISC-V 32 Bit asssembly names with "_" now 17:57:08 rdrop-exit, that was my first instinct but after I thought about it for a while I decided that I didnt want to fix every use of "bl" in the Mecrisp-Stellaris source and all the libraries 17:57:28 so now I get this with a dissasembly 17:58:22 0000C1DE: CF40 ldmia r7 { r6 } 17:58:22 0000C1E0: F7FF _bl 0000C144 --> seec 17:58:22 0000C1E2: FFB0 17:58:22 0000C1E4: F7F6 _bl 000025EE --> cr 17:58:25 and so on 17:58:44 Matthias' solution of preceding assembly names with "_" is just a band aid if you eventually want to support multiple assemblers 17:58:53 i was doing a bit of coding in C, and i had this function "ctrlc()" which checks for ctrl-c and prints a "***break" message and returns 1... my code was littered with if(ctrlc()) return 0; and i thought of Forth which could pop the return address off the return stack and i could avoid the if() ! 17:59:51 Forth has wrecked C for me ;^) 18:00:38 forth can return from the caller no problemo 18:00:39 rdrop-exit, yeah, good point but there is only one assembler and matthias makes it in Forth 18:01:07 i guess i could have used an exception... but c doesn't have that either :-p 18:01:21 dave0, yeah, C is a bit limiting ;-) 18:02:01 c is full of tedious repetition 18:02:22 rdrop-exit, this collision of names is a potential issue, there are only so many names to go around! 18:02:42 that's why there's vocabularies 18:03:33 rdrop-exit: do you write re-entrant words in Forth? 18:03:45 dave0, I couldnt drive myself to use C anymore because it's such hard work, I'd get RSI again or have to use some monstrous Java based Eclipse that's always shoving autocompletes in my face 18:04:23 dave0, yes 18:05:08 rdrop-exit: how did you do <# # #> ? i used a variable to keep track of the buffer? 18:06:24 I have a number formatting buffer 18:06:27 oh oops it uses hold but i still have a varaible holdp which is a pointer 18:08:54 My number formatting is not reetrant 18:09:02 * reentrant 18:09:32 I've never needed it to be 18:09:46 ah okay 18:10:20 you man your "pictured numerical output" ? 18:10:21 ;-) 18:10:38 same difference ;) 18:11:10 :) 18:11:24 it ws just an example of something that uses a variable, no it's not reentrant... i was thinking also of accept.. i did a simple accept that juggled lots of things on the stack 18:12:29 instead of using variables 18:12:47 variables would make it simpler 18:13:01 I don't use accept, my Forth is a full screen program, so it handles keyboard events individually 18:14:00 nice 18:15:20 back 18:15:53 if you're doing a lot of stack juggling then you're not factoring enough, at least that's my usual rule of thumb 18:16:52 Once you care about more than the top 3 items of the data stack you'll get headaches 18:17:06 4 is pretty much the limit 18:19:30 loops will drive you crazy if you don't factor enough 18:19:44 my brain catches fire if I have to mentally juggle more than 3 stack items 18:20:01 the problem I find is when dealing with words with more than three arguments 18:20:29 those should be extremely rare 18:21:00 or even words with just three arguments 18:21:13 because you have to line up each of their arguments 18:21:28 which means dealing with more than three things on the stack 18:22:35 doctor it hurts when I do this 18:23:14 doctor: "then don't do it, $25 please ..." 18:23:25 ;-) 18:23:35 doctors are that cheap?! 18:23:41 wow 18:23:47 I'm using 1903 dollars 18:23:53 wait, you live in Australia 18:24:17 be extra vigilant with loops 18:24:23 *everything* in Australia is either the most costly or the second most costly in the world 18:24:44 yeah but don't you have socialized medicine? 18:24:57 kindof 18:25:21 we pay a levy based on our income, and then we also pay the doctor each vistit 18:25:47 a 'specialist' may cost $130 above what the 'medicare' rebate is etc 18:25:53 or more 18:26:27 that's still much better than what many of us have over here 18:26:37 I rarely have words that take 3 arguments, usually words that have to do with user interface 18:26:38 usually we have to pay a extra $35 to a GP above what the govt pays 18:27:10 where we have ridiculous deductables where you often have to pay out several thou before the insurance will pay a cent 18:27:14 words that move things around 18:27:20 MOVE 18:27:32 tabemann, but I can go to the local hospital emergency and they won't charge me, but I'll have to wait in line 18:27:43 yes, words that have sources and destinations 18:28:18 tpbsd: whereas here the ER'll make you pay an arm and a leg 18:28:36 but there is a C advantage, I can take all the args I like, and return all the answers I like 18:28:43 with Forth 18:28:55 tabemann, yeah, Ive heard that 18:29:34 having to pay a bit for doctor's visits is better than having to pay a fuckload for an emergency visit 18:29:42 ok, fixed my latest cortex-m0 ide bug 18:30:30 now to weigh vocabs vs no vocabs 18:31:11 You should always keep in mind that the top few items of the stack are your "register space" equivalent in Forth, you need to keep it "hot" 18:31:44 That's why you never pretend it's an array 18:31:57 rdrop-exit, I think I'll just use the prepended "_" because that only applies between the Mecrisp-Stellaris assembler and the Mecrisp-Stellaris dissasembler 18:32:26 ok 18:33:23 One traditional way, is to have the assembler words be comma words, e.g. ADD, 18:33:43 rdrop-exit, if I need a proper assembly output I can just dump the machine code, disassemble it using arm-none-eabi and then feed it to a whatever 18:34:03 what's arm-none-eabi ? 18:34:18 it's the ARM maintained binutils 18:34:43 all the usual stuff, assembler, diss, linker, blahblah 18:35:30 ah if you want to use GNU tools instead that's a different story, you have to play by there rules 18:35:43 * their rules 18:36:39 Ive almost finished a word that dumps any chosen Word in iHex which is then captured in the terminal log, and converted to machine code, then converted to assembly 18:37:04 hex files are unecessary 18:37:28 rdrop-exit, well the arm-none-eabi stuff was initially GNU but ARM have been maintaining it for years 18:37:41 hex files are necessary here 18:37:41 hex files make it so that you don't need to remember the address something has to be loaded into memory at 18:38:06 hex files make it possible to capture machine code thru a ascii terminal 18:38:07 *flash 18:38:13 yes 18:38:19 it's the only way in fact 18:38:34 I make exensive use of iHex 18:39:07 i appreciate that rdrop-exit's tethered Forth doesnt require it 18:39:42 and neither does mecrisp-across MSp430 tethered Forth 18:42:04 I'm not saying don't have them if you want them, or if your toolchain requires them, I'm just saying they're not necessary 18:42:33 It's just a file format 18:42:37 I use Ihex to make a binary bootable clone of a finished MCU project. I used it to make the STM32F103C8 memory testing binary that has now been downloaded 21 times 18:43:06 oh, you mean I could be using motorola S format instead ? 18:43:14 :)) 18:44:08 rdrop-exit, iHex and Moto S are more than a file format, theyre the only way to encode binary over ascii mediums 18:44:30 a bit like the old UUCP format:) 18:45:03 I simply can't get binary data out of a MCU without such a encoding method 18:45:21 (via a serial terminal) 18:46:49 You can't because your using a tool chain that requires them, yes 18:47:05 * you're using ... 18:47:21 the advantage of ihex and like over uucp, base64, and like is that they also encode addresses 18:47:46 ah yes 18:47:59 tabemann, so true 18:48:04 You don't have to convinve me, I know they can be useful, they're just not necessary 18:48:59 saying "they're just not necessary" implies that one shouldn't use them 18:49:10 they seem to be necessary for a on chip Forth ? 18:50:27 it implies there's more than one way to skin a cat 18:50:52 perhaps rdrop-exit means if I coded a 'kermet' binary file transfer Word for use on the MCU ? 18:51:03 or something like that 18:51:31 bit then the binary data is just encoded for ASCII another way ? 18:52:39 anyway, rdrop-exit you're being too inscrutable for this poor technician today, so I'll just keep using what I have developed so far 18:52:39 You usually convert something to ASCII for human consumption, legibility, etc... or to feed it to a tool that requires ASCII input 18:53:27 okay, I'm gonna head home - bbl 18:53:34 bye tabemann 18:53:48 usually, yes, but sometimes the only pathway available only handles ascii, thats why iHex and moto S records exist ? 18:53:52 cya tabemann 18:54:27 iHex is for those occasions *when there is no other choice* ? 18:54:46 If your only pathway requires ASCII then yes, you must convert to ASCII, and convert from ASCII 18:57:01 and mine is 8,n,1 460800 ascii in and out of a USART 18:57:54 --- quit: tabemann (Ping timeout: 260 seconds) 18:58:14 That may be your only pathway, but it's not the only pathway possible 18:58:15 in this case, I also appreciate the error checking inherent in iHex over such a medium 19:00:35 Think of a debugger, it talks to the target, without going through ihex 19:00:59 and can show you the contents of the target 19:01:46 do you mean the old style serial debuggers that worked over a ascii terminal ? 19:02:01 or do you mean the more modern JTAG or SWD ? 19:03:15 depends on the target and what the debug facilities and protocol the target provides 19:03:42 I never used a serial bootloader debugger in the old days 19:04:15 in fact I didnt have any debugging apart from whats in my head until JTAG and GDB 19:10:53 The bottom line is you have content you want to move from your PC to the target's memory, or from the target's memory to your PC, going through the intermediary of a hex file is just one way to do that, maybe the only way if the toolchain you use provides you with no other option 19:15:08 If the Forth you use is dependent on the GNU/ARM toolchain, then you have to live with whatever limitations that imposes on your work flow 19:18:58 The GNU/ARM toolchain is just software leveraging the capabilities, specs, protocols of the target, a Forth can do that too 19:21:33 (as can any program in principle) 19:24:50 it's only dependent on the GNU/ARM toolchain to assemble it as the source is all in Thumb assembly language 19:24:57 --- join: smokeink joined #forth 19:26:09 the only forths Ive used all needed assembly for the mcu concerned. Ive never used one written in C or one capable of bootstrapping itself 19:27:13 ultimately the MCU responds to machine code and doesnt care where it is generated as long as it conforms to the ISA 19:27:55 once I used to write the machine code by hand, I didn't like that much! 19:31:54 I'm not sure how what your saying relates to being limited to hexfiles 19:32:02 * you're saying 19:35:08 Anyway I think the horse is dead :) 19:35:44 yeah, the man with the cart just loaded that horse up :) 19:44:00 --- join: tabemann joined #forth 19:51:06 --- quit: dddddd (Remote host closed the connection) 19:51:53 --- join: jsoft joined #forth 19:55:28 hey 19:58:57 hi tabemann 20:13:30 --- quit: MrMobius (Ping timeout: 268 seconds) 20:15:20 --- quit: proteus-guy (Ping timeout: 268 seconds) 20:23:35 --- join: jedb__ joined #forth 20:26:34 --- quit: jedb_ (Ping timeout: 260 seconds) 20:35:19 --- join: gravicappa joined #forth 20:44:40 --- quit: pointfree (Excess Flood) 20:45:26 --- join: pointfree joined #forth 23:07:24 --- quit: smokeink (Remote host closed the connection) 23:07:49 --- join: smokeink joined #forth 23:59:59 --- log: ended forth/19.12.22