00:00:00 --- log: started forth/20.04.14 00:10:04 --- quit: dddddd (Ping timeout: 256 seconds) 00:19:09 --- join: rdrop-ex1t joined #forth 00:19:29 --- quit: rdrop-exit (Ping timeout: 256 seconds) 00:20:42 --- join: dys joined #forth 00:39:31 --- quit: webchat9 (Ping timeout: 250 seconds) 01:06:23 --- quit: rdrop-ex1t (Ping timeout: 250 seconds) 01:11:54 --- quit: reepca (Read error: Connection reset by peer) 01:12:04 --- join: reepca` joined #forth 01:15:26 --- join: rdrop-exit joined #forth 01:39:33 --- quit: siraben (Quit: killed) 01:39:56 --- quit: jimt[m] (Quit: killed) 01:42:24 --- join: webchat9 joined #forth 01:49:40 --- join: siraben joined #forth 02:02:19 --- join: jimt[m] joined #forth 02:40:21 --- join: xek joined #forth 03:04:58 --- quit: WickedShell (Remote host closed the connection) 03:19:11 --- quit: rdrop-exit (Ping timeout: 256 seconds) 03:19:52 tp: i inserted rdepth . into at the beginning of the word and the stack kept growing until it overflowed 03:20:14 heh 03:20:31 gee, I've *never* done that before ;-) 03:21:46 because my recursive words used if ... exit then the dissambler gets confused by the exit opcodes 03:21:53 and shows just part of the word 03:22:19 too bad because the tail recursive definitions are nicer to read 03:22:57 still doing the tail call conversion into a begin/again loop by hand isn't too bad 03:23:57 i now have a word to search the dictionary and show words containing a substring 03:24:09 e.g. token rcc match prints 03:24:22 nice! 03:24:23 Looking for words containing the substring: rcc 03:24:23 RCC 03:24:23 RCC-CR 03:24:23 RCC-CFGR 03:24:23 RCC-AHBENR 03:24:25 RCC-APB2ENR 03:24:27 RCC-APB1ENR 03:24:40 thats very handy 03:25:14 just don't search for things like a single dash because there is no pagination 03:25:28 but tmux and screen can help with that 03:25:48 is pacination a problem ? 03:25:53 -c+g 03:25:59 --- quit: mtsd (Ping timeout: 256 seconds) 03:26:56 do you have that code available ? 03:26:59 https://pastebin.com/raw/VXGfxb9T 03:27:08 --- join: rdrop-exit joined #forth 03:27:55 awesome, I'll play with it after I finish the new 'blue pill developer edition' 03:29:18 printing into multiple 20 or so wide columns would be an other improvement, but i already had enough stuff on stack 03:30:30 hence your question re the header composition the other day 03:31:35 --- quit: rdrop-exit (Ping timeout: 256 seconds) 03:43:34 --- join: iyzsong joined #forth 03:48:05 --- quit: cheater (Ping timeout: 256 seconds) 03:55:44 --- join: cheater joined #forth 04:29:37 --- nick: ornxka_ -> ornxka 04:31:33 --- nick: reepca` -> reepca 04:44:54 tp: yes 04:45:12 but i found what i needed in the mecrisp stellaris words list 04:45:31 and looked over your words4 04:45:45 cool 04:46:04 the code could use a faster substring algorithm but it works fast enough for interactive use 04:47:04 Ive just started making some progress on eliminating reading "write-only" registers from the svd2forth pretty print section 04:48:32 code like the svd2forth generated one would really profit from compression 04:50:08 --- join: mtsd joined #forth 04:50:11 the problem then is the terminal would need to decompress it ? 04:50:14 the dictionary contains a ridiculous amount of similar strings after loading all those autogenerated words 04:51:09 just provide a word to decompress a counted string? 04:51:17 sure, but this is a development aid, it's not supposed to go in the final product, and it's designed to only load pretty print words you want 04:51:55 no one loads everything as everything cant be used at once except in a 'developers edition' 04:52:01 that's just the lowlevel assembler freak in me talking 04:52:24 hey, all improvement suggestions are nost welcome 04:52:28 most 04:52:37 i once spend most of the summer holidays optimizing a aes128 implementation on my poor old powerpc g4 04:53:10 until i had a constant time implementation of the sbox that calculated 16 sbox lookups in 12 cycles 04:53:21 programmers! 04:54:03 but this was before poly1305 so there was no authentication fast enough to keep up with the vector unit that could run in the three scalar units 04:54:25 not even hmac-md5 (still common at the time) 04:54:32 I on the other hand am developing a home made copper rivet press to make rivets from copper wire so I get exactly the size and dimensions I want 04:54:49 :-P 04:55:07 this then allows me to prototype designs without resorting to a PCB 04:55:48 as pcb's don't allow me to make the type of designs I want 04:55:51 probably better than single layer pcbs with the toner transfer method 04:56:22 there are always holes in the ground planes etc. 04:56:25 I can easily make pretty good single sided pcb's, thats no problem 04:56:33 I have been for decades 04:56:53 the reason is that pcb's wont work for what I want 04:57:19 why not? what's so special about your projects? 04:57:33 just high current or voltage? 04:57:45 a programmer attempts to make the most efficient code, a tech attempts to make the most efficient hardwae 04:57:58 no, nothing like that 04:58:01 if you have the time for it 04:58:28 e.g. for now i'm happy with my match word because its fast enough and the code compact and readable 04:58:37 it's a construction method to enable use of BGA chips in hand assempled prototypes 04:58:42 for the number variables i'm juggling on the data stack 04:58:52 oh shit 04:58:56 no one does this method yet 04:59:24 you solder individual pins on bga chip? 04:59:26 I think so far outside the box, I cant see the box anymore ;-) 04:59:30 sure 04:59:43 ok you're stranded down under 05:00:07 the guys i know are spoiled by a two day turnaround on pcbs for rush jobs 05:00:15 my hand made wire pen: https://mecrisp-stellaris-folkdoc.sourceforge.io/prototyping.html?highlight=prototype#wiring 05:00:56 below it you will see some pics of my hand soldered BGA prototypes 05:04:43 my next experiments use much nicer rivets and a fine mechanical servo to position the wire, and a laser to solder it 05:15:43 --- join: dave0 joined #forth 05:17:58 tp: i found a simple way to improve match further: https://pastebin.com/raw/xsrQCWM7 05:18:14 you can now type: match substr directly 05:19:18 now i need a [match] too and i have no idea how to implement it 05:19:25 or even better dispatch based on state 05:25:08 --- join: dddddd joined #forth 05:28:37 crest, it will be awesome to have a word name search 05:29:10 it's exciting to see your source as I have nfi how to approach stuff like this 05:29:45 the latest version of match can be used on the console like this: match rcc 05:29:55 to search for all words containing "rcc" 05:30:39 which is nicer for interactive use than: token rcc match 05:31:12 definitely 05:32:00 token was another word I was clueless about 05:32:03 but i kept that interface in (match) for someone to build on top of 05:32:27 i would like to write a [match] word that works inside compile mode 05:32:45 but i don't know how because ['] and [char] are implemented in assembler 05:32:48 why ? 05:33:07 because i may need the same kind of interface for other things in the future 05:33:24 not because see a use it in match 05:33:38 match is a word to inspect the running system from the console 05:33:58 but match gets compiled anyway ? 05:34:19 like all words ? 05:34:56 if you define an other word using match it doesn't work as expected 05:35:06 : foo match bar ; doesn't match bar 05:35:21 if you call foo on a line of its own 05:35:42 it matches the empty token because thers is nothing left on the input buffer and attempts to execute bar 05:35:44 ahh 05:35:47 i see 05:37:08 afaik there are two ways to deal with this 05:37:19 one is to have to versions of a word 05:37:23 e.g. ' and ['] 05:38:22 [match] ? 05:38:23 or to dispatch based on state (the variable that tells you if you're executing in compile or interpret mode) 05:38:27 yes 05:39:14 i have no idea how to write a [match] word that calls (match) with the correct parameters (caddr and length) 05:39:22 nice, more Forth understood :) 05:39:43 i suspect you'll soon find out 05:40:00 yes but i should focus on payed work instead 05:40:22 bah, that only pays the bills and allows you to eat! 05:41:08 even worse. my boss trusts me to manage my time 05:42:26 oh oh ! 05:42:56 look at it this way, Forth improves your programming hence making you more efficient ! 05:43:19 only in the most general sense 05:43:21 anything that improves your efficiency will compound the benefits in time 05:43:55 a general sense is exactly what one needs to improve 05:44:02 in that case i should learn python 3.x and write ansible modules 05:44:40 learning python only improves python, Forth improves thinking 05:45:31 i've already learned enough forth for it to expand my horizon years ago but let my forth skills waste away 05:45:39 but your boss may not appreciate that 05:46:01 for the same reasons i looked into haskell, common lisp and scheme 05:46:06 and factor 05:46:07 they still seem pretty good to me 05:46:26 well youre a programmer, programmers do that 05:46:33 i spend a lot of time on a few lines 05:46:46 and learning functional programming helps even in c 05:47:20 most of the time there're better ways than naive code repeating the same crap again and again 05:47:59 Forth has helped my other programming a lot, I think my planning has improved 05:48:09 an other hobby project of mine is to write an ipsec key exchange daemon without runtime memory allocations 05:48:37 and improve the security ? 05:48:42 yes 05:48:42 as a result 05:48:59 because there is no parsing of network input 05:49:41 probably as interesting to me as making copper rivets is to you :) 05:50:05 i'm not bored by crazy prototyping ideas 05:50:28 but i don't plan on building my own rivet gun any time soon 05:50:50 i have made some awesome prototypes, some taking me a year to get right, all commercial so I cant talk about them 05:51:22 i have to make a rivet making jig, then a rivet application gun 05:51:49 your prototypes do look like delicate works of art, but is it good use of your time? 05:51:49 well I've made numerous jigs, I juet need to make a optomised one 05:51:56 hell yeah 05:52:29 wouldn't it be faster to just order multilayer pcbs with masks? 05:52:33 usually each of the finished prototypes is enough to build a new business on 05:52:48 no, much slower 05:53:09 --- join: cox joined #forth 05:53:29 maybe i overestimate the time per joint because my soldering skills are sorely lacking 05:53:35 rapid development isnt about sending work out, it's about making it all in house 05:54:11 it might be in california where one could get it done same day ? 05:54:28 but even then, other see it, make it etc 05:54:52 many of my protos have never been seen, the design is a commercial secret 05:55:07 --- quit: dave0 (Quit: dave's not here) 05:55:21 people dont talk about them, they need to retain their commercial advantage 05:56:33 I once knew a guy who was paid to work 3 years just to design a 50,000 galon water tank kit that would fit on a standard shipping pallet 05:57:21 at that time water tank kits were pretty much optimised and the only cost saving left was the shipping cost 05:57:41 and all tanks used multiple shipping pallets 05:57:56 his when it was finished, used only one 05:59:39 this is the type of work I do. not water tanks tho, thats purely sheet metal stuff 06:28:15 --- quit: mtsd (Quit: Leaving) 06:30:15 --- quit: cox (Remote host closed the connection) 06:30:45 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 06:31:00 --- join: cox joined #forth 06:37:48 crest, nice! 06:37:51 match crc 06:37:51 Looking for words containing the substring: crc 06:37:51 SPI1_CRCPR 06:37:51 SPI1_RXCRCR 06:37:51 SPI1_TXCRCR 06:37:51 SPI1_CRCPR. 06:37:53 SPI1_RXCRCR. 06:37:55 SPI1_TXCRCR. 06:37:57 ok. 06:38:44 did you finish the blue pill image? :-P 06:38:52 --- quit: cox (Remote host closed the connection) 06:39:10 --- join: cox joined #forth 06:39:16 not yet, still stuck on the XSLT processing 06:39:44 nice to see that my code is useful 06:39:54 I'll be including your 'match' in the new dev edition I think 06:40:33 it's too handy not to 06:40:34 in that case i should probably put a mit license header on top to cover you 06:40:45 --- quit: cox (Remote host closed the connection) 06:41:07 I have the one with no license already ;-) 06:41:10 --- join: cox joined #forth 06:41:35 sure 06:41:40 kidding 06:41:57 Im delighted to use whatever OSS lic you release it under 06:42:15 --- quit: cox (Read error: Connection reset by peer) 06:42:15 and mit license is one of the simplest "enjoy but leave me alone" licenses 06:42:20 just redo it and pastebin when you get a chance 06:43:00 I almost always have a std text header, I hadnt got around to it with the words4 yet 06:43:30 natthias uses the gpl, so I use it as well tho my personal choice is the BSD one 06:43:45 mit is fine also 06:58:03 sure but the gplv3 is restrictive and bloated 06:58:45 and any mecrisp stellaris image is a derived work 06:58:56 i only use it because the author uses it ianal 06:58:59 I'm using the GPL3 for zeptoforth, because parts of the code are taken from mecrisp-stellaris 06:59:47 only 98% ;-) 06:59:51 (just some driver code, but still) 06:59:53 lol 07:00:23 tp: https://gist.github.com/Crest/9d41da63400404fd2a8481958eec99da 07:01:30 mit is gpl compatible so you can freely combine them and the end result is locked away under gpl 07:02:17 thanks crest, perfect apart from gitcrap 07:02:20 I used to use the lgpl, but now I normally use bsd3 for my own projects, except for zeptoforth 07:02:21 9d41da63400404fd2a8481958eec99da-9d5b6944839732391be81988fb26aae8aefec24c.zip 07:02:34 tp: there is a raw link: https://gist.githubusercontent.com/Crest/9d41da63400404fd2a8481958eec99da/raw/9d5b6944839732391be81988fb26aae8aefec24c/match.fs 07:03:13 ahh thanks 07:03:36 what was wrong with match.fs.zip ? too hard for gitcrap ? 07:05:51 tabemann see crests 'match' ? 07:06:53 yeah I see it 07:08:08 I should get off to work though 07:08:11 bbl 07:08:52 cya! 08:34:45 --- join: cox joined #forth 08:34:50 --- nick: cox -> mark4 08:55:13 --- quit: dys (Ping timeout: 256 seconds) 08:59:23 --- quit: proteus-guy (Remote host closed the connection) 09:01:18 --- join: proteus-guy joined #forth 09:09:31 --- quit: mark4 (Read error: Connection reset by peer) 09:09:55 --- join: mark4 joined #forth 09:15:31 --- quit: mark4 (Read error: Connection reset by peer) 09:15:55 --- join: mark4 joined #forth 09:20:31 --- quit: mark4 (Remote host closed the connection) 09:20:51 --- join: mark4 joined #forth 09:21:49 bingo! 09:21:52 GPIOC_ODR $00000000 09:21:52 1|1|1|1|1|1| 09:21:52 5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0 09:21:52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 09:21:52 GPIOC_BSRR write-only, CANNOT READ! 09:21:53 GPIOC_LCKR $00000000 09:21:55 3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1| 09:21:57 1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0 09:21:59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 09:23:31 --- quit: mark4 (Remote host closed the connection) 09:23:54 --- join: mark4 joined #forth 09:33:52 https://www.youtube.com/watch?v=3ML-pJFa8lY&list=WL&index=21&t=4235s No need for a garbage collector? 09:33:56 how? 09:37:22 --- join: cox_ joined #forth 09:38:24 --- quit: reepca (Ping timeout: 264 seconds) 09:41:37 --- quit: mark4 (Ping timeout: 250 seconds) 09:43:33 Kumool: just don't create garbage :) 09:43:54 well, he's talking about a circular stack 09:44:04 and he did mention he was using a single address to keep the entire stack 09:44:18 but that's way too small 09:45:01 --- quit: cox_ (Remote host closed the connection) 09:45:23 --- join: cox_ joined #forth 09:59:31 --- quit: cox_ (Remote host closed the connection) 09:59:52 --- join: cox_ joined #forth 10:05:01 --- quit: cox_ (Remote host closed the connection) 10:05:24 --- join: cox_ joined #forth 10:06:46 --- join: reepca joined #forth 10:07:01 --- quit: cox_ (Remote host closed the connection) 10:07:21 --- join: cox_ joined #forth 10:11:24 --- quit: reepca (Ping timeout: 264 seconds) 10:11:31 --- nick: cox_ -> mark4 10:47:31 --- quit: mark4 (Remote host closed the connection) 10:47:54 --- join: mark4 joined #forth 10:58:28 --- join: cox_ joined #forth 10:58:58 --- quit: mark4 (Remote host closed the connection) 11:04:01 --- quit: cox_ (Read error: Connection reset by peer) 11:04:23 --- join: cox_ joined #forth 11:05:31 --- quit: cox_ (Remote host closed the connection) 11:06:08 --- join: cox_ joined #forth 11:07:01 --- quit: cox_ (Remote host closed the connection) 11:07:26 --- join: cox_ joined #forth 11:09:31 --- quit: cox_ (Remote host closed the connection) 11:09:55 --- join: cox_ joined #forth 11:28:32 --- join: Zarutian_HTC joined #forth 11:40:22 --- quit: cox_ (Remote host closed the connection) 11:43:55 --- join: reepca joined #forth 12:26:35 --- quit: webchat9 (Ping timeout: 256 seconds) 12:44:59 --- quit: Lord_Nightmare (Quit: ZNC - http://znc.in) 12:51:23 --- join: Lord_Nightmare joined #forth 12:52:46 Kumool: My guess is that he does not have DROP or anything that pops from the stack, and will only ever care about a limited context of the stack at once? 12:53:08 So the stack fakes an infinite stack 12:53:54 If that's how he is doing it then that's 'garbage collection' according to Raymond Chen, who defined it as simulating infinite memory, but it's the most simple cheap method I could possibly imagine 12:54:26 I am going to have to watch this whole video this guy seems like a proper genius 12:57:30 yeah, this guy 12:57:32 who could it be 12:59:52 ive seen him before 13:00:33 ;-) 13:11:55 "I use almost no comments. They are not helpful. I cannot construct a brief comment or even a long comment that explains anything that's going to be useful to me. So I just leave them out." 13:56:51 --- quit: xek (Ping timeout: 250 seconds) 14:21:07 --- quit: Zarutian_HTC (Ping timeout: 250 seconds) 14:46:42 --- quit: gravicappa (Ping timeout: 256 seconds) 14:51:45 --- join: Zarutian_HTC joined #forth 15:04:37 tp: nice to see a proper error instead of a warning and lots of zeroes 15:11:48 crest, it should make a bit of a difference to the blue pill memory map when I port it over ( I do almost all my dev on the M0) 15:23:44 --- join: dave0 joined #forth 15:34:12 h'lo folks 15:34:28 heyhey Zarutian_HTC 15:35:53 tp: you done anything smartcard related? like interfacing with JacaCard or GlobalPlatform cards like SIM (often all three in one)? 15:36:28 Zarutian_HTC, no never 15:37:51 hmm, what about that secure element ST makes? (dont recall its part number, sorry) 15:38:56 no I only use the stm32 MCU's and mainly stm32F051, STM32F103, STM32F407 15:39:07 I have a very narrow focus 15:39:41 when it comes to embedded. I also do a lot of mechanical stuff, hence my milling machine and lathe 15:40:11 smart cards have never interested me 15:41:27 so more in the direction of mechatronics then 15:42:38 always, since my earliest days. I'm quite pragmatic, I just can't get interested in something abstract 15:43:28 and the real world consists of mechanical/electronic interfaces 15:45:07 and to me a smart card is just a mcu/flash stuck in a plastic card with almost no useful pins brought out. Far easier for me to directly deploy a 32QFN 15:48:00 some hacker-/maker-spaces/workshops use them on machines that require some modicum of training to handle safely. But you dont frequent such places deeming from your rants. 15:50:16 no, because there arent any within at least 200 km and probably 1000km, and I probably have heaps more useful equipment than they do 15:50:59 frankly I'm exactly the kind of person youd probably never find at those places 15:52:00 yeah, you got something I dont, cheapish space 15:52:25 well I live in a shed, not a house 15:53:33 throw up a shed from steel frame and corrucated roof sheets and you got place for space demanding equipment 15:53:59 my walls and roof are metal and the main factory area is a unbroken rectangle of 20m*15m with a polished flat concrete floor and the roof peak is about 15m high 15:54:23 and it's full of stuff! 15:55:11 well, any structure here that isnt made from rebarred concrete or proper timber is shedish here :) 15:55:41 i prefer this to a 'loungeroom' with a TV and cupboards full of tiny porcelain penguins or cats or the kind of things that women find collectable 15:56:04 right, would call that a shed more of an hangar or skemma 15:56:18 you have some *seriously proper* timber buildings there from what Ive seem 15:57:20 just yesterday winds were around 20 metres per sec, peak though 15:57:38 lol, apart from the access on the long side being controlled by three huge roll up doors, it could be a hangar, but as it is no aircraft can fit thru any of those doors 15:58:19 theyre designed to take trucks with shipping containers on them 15:58:25 but it isnt unheard of that winds go up to USA hurricane speeds in the worst but semiregular winterstorms 15:58:37 20 metres per sec ! my doors couldnt withstand that! 15:59:11 hence your old wooden buildings are *very solid* 16:00:27 one funny thing that happens regularly here, related to tech, is that foreign companies send samples of equipment meant to be outdoors 16:01:07 telly attennas and the like 16:01:43 for environmental fast testing ? 16:02:02 they age at 100x the rate in their countries ? 16:02:10 such is deemed bare minimum base level if it manages to survive two years 16:02:38 pretty much 16:02:49 such is the effect of 20 metres per sec winds! 16:03:37 add in sea saltiness and relentless thermal cycling 16:05:13 sounds awesome! 16:05:39 it is remarkable how "quality" stuff made for other countries is like chineseum crap here 16:05:40 no wonder Viking were tough 16:05:51 I can imagine 16:08:08 the usual advice for budding companies wanting to try out stuff is for them to follow satellite spacecraft design requirements. That is ofren met with incredulaty. 16:08:46 s/stuff/stuff here/ 16:09:14 how long does spacecraft rated mechanical gear last there ? 16:09:47 surprisingly long time 16:10:35 lol, "Id like to buy a space rated TV antenna please ?" 16:11:46 well the vaccum rating might be omitted (one never knows though) but essentially yes 16:13:45 and might need to be strengthened to be self supporting in ground level gravity ? 16:14:49 you forgot g forces rating for rocket launches and such 16:15:08 it might be rolled up for that ? 16:16:40 sure, but the vibro rating is pretty accurate too. Some of these tv airials vibrate like mad in some "gales" 16:17:18 oh yeah 16:17:54 especially in hurricane speed winds 16:19:13 then add in hails and near frozen sleeting and it is pretty accurate 16:20:22 I suppose this weather is when Vikings go out for their exercise ? 16:20:33 probably with leg weights ? 16:21:00 horizational icefangs is something to see 16:21:21 hah, I hate Git, but my hate of it may be a bit unfounded, much as my dislike for C is 16:21:55 leg weights? you mean propper and good hobnailed boots, no? 16:21:55 oh oh, like stalactites from a cave doing 200 kph ? 16:22:23 Zarutian_HTC, um, er, yeah .... I think so 16:22:47 naah, they can just fuck with your perception 16:22:53 Australians wear cheap soft 'thongs' usually 16:23:58 oh, flops. Makes one feel floaty during some operations or activity 16:24:02 unless walking in the outback, then your boots without hobs would be good to resist the needle sharp "spinifex" bushes that seem to penetrate most shoes 16:24:24 hahah, due to the lack of weight ? 16:25:01 this is, in part, a programming channel, no? ;3 16:25:08 how many are killed per year by "horizational icefangs" ? 16:25:20 reputedly 16:26:14 none as those are not spearing about like you think 16:27:02 I just copy tabemanns git stuff into a fossil repo using a "git pull" but lately git kept refusing to update insisting two files had been changed by me and must be commited forst 16:28:03 so I blamed it on git being "gittish" for a while, then decided to see if fossil would agree, and yep, I changed them both ... 16:28:24 and forgot about one change 16:28:45 ya sure felt dense as stone then, no? 16:28:53 oh the "horizational icefangs" just grow in place that way ? 16:29:02 no, I'm always learning 16:29:19 a stone doesnt know it's dense :) 16:30:04 yebb, splendidly for some photo opertunities to visual bendy things 16:31:25 reminds me, saw this in relation to corona: its spread will be determined by how dense the population is, in both senses 16:32:23 hahah 16:32:38 density squared ? 16:35:40 hey guys 16:35:56 hey tabemann ! 16:36:59 Zarutian_HTC, it's hitting South Dakota quite heavily right now, proportionate to population size, despite it not being dense 16:37:14 tabemann, seems we have some excellent embedded Forth improvements and additions going on lately 16:37:26 that's because the gov of South Dakota refused to put in "safer at home" in place 16:38:31 tp: yep, now DEFER/DEFER!/DEFER@ and also made an optimization that made my pull_tos, aka DROP, operation take up just 16 bits as opposed to 32 16:39:01 nice 16:39:22 time for dinner though - bbiab 16:39:57 I've reduced the size of my memmap.fs by restricting the pretty prints of write only registers to a warning 16:40:01 no problemo 16:41:08 Zarutian_HTC, you know the 'IR stabilised' sticky tape made for outdoor use ? 16:41:44 tp: no. Havent seen such 16:42:05 Zarutian_HTC, we tried all the brands we could get on our waveguide slots but found they all failed and came unstuck after about 3 years in the Australian sun 16:42:54 aah, you want the uv resistant stuff 16:43:17 it's just a wide tape with one side coated with glue, like 'masking tape' for sealing cardboard boxes for shipping 16:43:31 thats whet we got, but it didnt last 16:44:15 we didnt get any 'sapace rated' tape tho as our waveguides sold for only $100 16:44:21 -a 16:44:40 it's not a problem now as I dont do wifi anymore 16:44:54 airplane fiber tape with alumnium backing and better glue is usually what does the job 16:45:10 lol, cant use that over a waveguide slot 16:45:33 oh, you want to let rf through 16:45:40 aluminium has a nasty habit of stoping radio waves 16:45:48 yeah, thru the slots 16:46:20 so it had to be transparent to 2 - 6 Ghz frequencies 16:46:59 two part superglue and uv resistant plastic ribbon would be my solution 16:47:58 in the end, we just left the slots open and made sure water could run in the slots and out the bottom of the waveguide. I waterproofed the transmitting element in the base of the waveguide and that seemed to fix problems 16:48:04 this was for structural or just ingress protection? 16:48:16 ingress protection only 16:48:32 I could stand on a waveguide and not damage it 16:49:35 theyre made out of roll formed zinc plated steel with a seam (joining) and the slots are laser cut 16:50:02 Id fit end caps, and the transmitting element and thats it 16:50:11 they are a awesome antenna 16:50:22 like bigclivedotcom says: always think of drainage even you are sure no water could get in 16:50:34 thats true 16:50:44 directional long range? 16:51:00 I say, "no man can stop the river, bend like a reed and survive" 16:51:35 yes, 11dBm so makes wifi useful over a couple of kilometers 16:51:42 "rain can go upwards to" is my reason 16:51:49 hahah 16:52:40 done anything with laser links? 16:53:05 I had one client phone that my antenna wasnt reliable as he had one on a mountain top and it's output had fallen by 50%. I suggested he go up the mountain, have a look and get back to me. 16:54:03 after looking he found that wind had snapped the base of the antenna off, and it was hanging upside down by the cable and pointing in the original direction 16:54:29 no, never any optical links since I was about 12 years old 16:54:56 saw one project many years back that used an calculator lcd, a laser pointer, a color filter, a shadow box, and a photo transistor to attain around 12 mbps 16:55:36 I have always admired the OSS RED led comms design that reused 10mb/s ethernet link cards tho 16:55:46 and that over more than 4 kilometers 16:55:53 wow, thats a LOT 16:56:03 probably the laser 16:56:50 yeah, but the guys doing the project hated it because you needed to aim it pretty accurately 16:57:32 it was a green laser but well below safety limits 16:57:39 I was about to say the alignment would have been pretty hard if the laser was properly collimated 16:58:03 I used to sell 24MHz radio links 16:58:33 they were serious kit and had a 3.5 degree beam angle 16:58:58 and even 3.5 degrees is pretty hard to line up over 100m 16:59:11 Id use a red laser just to line them up 16:59:34 max range is about 4km at 1.5Gb/s 17:04:07 hmm... I am now wondering about satellite stuff. 17:05:59 tp, from where you are do you think you could "see" the satellite TELSTAR 18V ? 17:08:09 * Zarutian_HTC wanted to downlink Blockstreams broadcast but he lives outside the footprints (see https://blockstream.com/satellite/ ) 17:17:00 back 17:20:18 Zarutian_HTC, I've no idea, probably not 17:21:22 Zarutian_HTC, I have no satellite gear, and Australia uses AUSSAT, a geo sync some 64,000km round trip 17:22:17 Zarutian_HTC, you need to wait for SpaceX's multiple sat leo constellation, that will be awesome 17:22:20 --- join: iyzsong joined #forth 17:22:43 now I'm wondering what to do next with zeptoforth 17:23:31 tabemann, do you have 'pictured numerical output' yet ? 17:23:39 no I don't 17:23:51 I don't know how that works, TBH 17:24:17 you cant use my svd2forth register pretty prints if you dont 17:24:51 you know it's just a print formatter like the C "printf" stuff, but very powerful ? 17:25:57 tabemann: there is a global buffer for formatted output 17:26:03 you reset it with <# 17:26:13 add one digit to it with # 17:26:18 yes 17:26:23 https://mecrisp-stellaris-folkdoc.sourceforge.io/words.html#pictured-numerical-output 17:26:28 this works by divding the double word on the stack by the base 17:26:53 #> finishes the conversion and drops the double word 17:26:53 I... don't yet have support for double worods 17:27:03 *words 17:27:06 replacing it by the address and length of the buffer 17:27:19 in between <# and #> you format your numbers 17:27:22 because I don't know how to multiply or divide double words 17:27:39 because Thumb-2 has no double word multiply or divide instructions 17:27:59 I dont have support for double wo-rods either, am I missing out ? whats a single wo-rod do anyway ? 17:28:10 but does it have a 32x32->64 multiply? 17:28:12 *word 17:28:16 crest: dont forget #s and that word that allows you to add chars to the buffer 17:28:17 crest: nope 17:28:38 Zarutian_HTC: and hold for fixed stuff like units 17:29:09 tabemann, then maybe add support for doubles ? 17:29:15 doesn't #s just repeat # until the number is zero? 17:29:39 tp: the problem is that I don't know how to implement multiply and divide for doubles 17:30:08 https://en.wikipedia.org/wiki/Karatsuba_algorithm 17:30:28 (if you want to get fancy) 17:30:48 if you have just 32x32->32 split the number into 16bit parts 17:31:23 do it just like you would do multiplication with pen and paper 17:31:35 just that your base is 2^16 instead of 10 17:32:04 do you remeber the annoying multiplication tables you had to learn in school? 17:32:15 yes 17:32:37 well the cpu multiplication instruction is just such a table (it's implemented differently) 17:33:00 every 16 bit multiplication fits into a 32bit register 17:33:10 tabemann, dont listen to crest ... just use the floating point peripheral on your mcu! 17:33:23 ;-) 17:33:23 lol 17:33:40 tp: because? 17:33:47 crest, easier ? 17:33:58 he just wants 64 bit multiply not true bignums 17:34:10 does the fpu have 32x32->64 multiplier? 17:34:17 i know, my comment was in jest 17:34:31 probably 17:34:34 being a M4 17:35:24 normally ieee754 fpus contain just 56 bit multipliers for the mantissa 17:35:46 ahh! 17:35:54 actually Im a fixed point lover 17:35:56 if you have a fast fpu and no 32x32->64 multiplier you can certainly speed up large bignum operations by using larger limbs 17:36:08 27,75 C 17:36:08 81,94 F 17:36:34 temp at my desk at 10:36 am 17:36:39 because all realworld multiplications algorithms have superlinear runtime 17:37:31 last year there was a new breakthrough in multiplication algorithms 17:38:09 they claim to have beat n*log(n) long thought to be the lower bound for multiplication 17:38:32 but it only beats the existing algorithms for number with > 2^100 *digits* 17:39:07 as in larger than 10^2^100 17:39:13 which is insane 17:39:21 yeah 17:39:34 not that useful on a cortex-m 17:39:36 the algorithm may be fast but you could still bruteforce most 128bit ciphers in less time 17:40:18 back 17:40:23 I have another question 17:40:29 what about 64-bit division? 17:41:54 tabemann, didn't you learn your 64 bit tables at school ? 17:45:35 lol 17:59:22 --- quit: X-Scale (Ping timeout: 256 seconds) 18:00:14 --- join: [X-Scale] joined #forth 18:00:20 --- nick: [X-Scale] -> X-Scale 18:41:35 --- join: boru` joined #forth 18:41:38 --- quit: boru (Disconnected by services) 18:41:41 --- nick: boru` -> boru 18:42:16 * tabemann is going to buck the ANS people can make his <# # #> use single words 18:42:51 partially because while the Karatsuba algorithm seems simple on the surface but is too complex in practice 19:02:33 --- join: rdrop-exit joined #forth 19:10:41 hey 19:10:58 c[] good morning tabemann 19:19:08 does anyone here know how to do doubleword division on a machine without a 64-bit divide instruction? 19:23:08 hi tabemann 19:23:20 hey 19:23:32 i have code for that, but it's slow cos i goes a bit at a time 19:23:36 lots of shifts 19:23:39 is that okay? 19:24:21 ah divison.. one sec 19:27:18 tabemann: 64 bit dividend divided by 64 bit divisor to give a 64 bit quotient and 64 bit remainder ? 19:28:37 yes 19:30:17 gimme a minute 19:30:23 double by single is probably more useful 19:30:49 e.g. 64 by 32 19:32:40 double by single would probably work for me actually, since I'm dividing by BASE 19:33:59 tabemann: https://paste.c-net.org/PaddleMorse 19:34:41 it's for amd64 and you will need to modify it to use 64 bit registers 19:35:12 also it's for gnu as in intel mode 19:35:25 this is for Cortex-M4 19:36:46 that's arm? 19:37:12 you'll have to port it :-( 19:37:44 i'm quite sure i tested the algorithms (with brute force) 19:38:12 yes, Cortex-M4 is ARM 19:38:42 I have 64 by 32 => 32 in C if you like 19:39:08 sorry I mean 128 by 64 => 64 in C 19:39:31 are you using __int128? ;) 19:40:05 I have without 19:42:05 let me figure out how to paste it somewhere 19:42:52 rdrop-exit: if you like command line (netcat/curl/wget) i use https://paste.c-net.org/ for binary files and termbin.com for text 19:44:00 this is what i used just then for PaddleMorse: curl --upload-file um.zip https://paste.c-net.org/ 19:44:45 and for text: nc termbin.com 9999 < file.c 19:45:36 I used this pastebin thingie 19:45:37 https://pastebin.com/J8bvKssY 19:45:48 cool 19:45:56 I use wgetpaste :) 19:46:20 I use different ones every time, I keep forgetting which one I prefer 19:46:46 forgetfulpaste ? 19:46:54 ;-) 19:46:56 rdrop-exit: aha you don't use bit-shifts 19:47:25 and octal ;-) 19:47:54 you estimate with a smaller division and fix it up to the true quotient 19:47:58 that's faster 19:50:39 I forgot to paste in the U64 etc defines 19:50:39 #define U64 uint64_t 19:51:47 No warranties explicit or implied BTW 19:52:58 gn 19:53:04 --- quit: Zarutian_HTC (Quit: Bye) 19:56:46 --- quit: cantstanya (Ping timeout: 240 seconds) 20:01:11 --- join: cantstanya joined #forth 20:09:16 --- quit: dddddd (Ping timeout: 240 seconds) 20:10:08 cI've found a problem with the use of the Karatsuba algorithm 20:10:17 it doesn't take into account carries 20:12:12 Karatsuba is for huge numbers, I don't think you need it 20:15:02 ah wait, maybe I'm confusing it with another algorithm 20:17:29 I provided you with a MULH in that paste 20:21:47 tabemann: you have to worry about negative numbers too :-/ 20:22:52 dave0: oh, I'm taking negative numbers in question 20:22:55 the MULH gives you the high order bits of a product, it'll work with either signed or unsigned 20:23:25 since it's a macro 20:24:01 rdrop-exit: I'm only using one stage of Karatsuba 20:24:22 --- quit: dave0 (Quit: dave's not here) 20:28:05 Have a look at the MULH, it's based on that 20:38:43 --- join: WickedShell joined #forth 20:41:28 the ARM assembler provides a MULH macro if I understood this page correctly 20:41:35 https://developer.arm.com/docs/100069/0608/a64-general-instructions/smulh 20:51:49 bbiab 21:05:56 --- join: webchat9 joined #forth 21:18:16 --- quit: reepca (Read error: Connection reset by peer) 21:18:33 --- join: reepca joined #forth 21:33:24 --- quit: _whitelogger (Remote host closed the connection) 21:36:28 --- join: _whitelogger joined #forth 22:01:48 --- quit: rdrop-exit (Ping timeout: 264 seconds) 22:05:46 --- join: rdrop-exit joined #forth 22:50:29 --- join: xek joined #forth 22:56:23 --- join: gravicappa joined #forth 23:27:16 --- join: mtsd joined #forth 23:55:01 --- quit: rdrop-exit (Ping timeout: 256 seconds) 23:59:16 --- join: rdrop-exit joined #forth 23:59:59 --- log: ended forth/20.04.14