00:00:00 --- log: started forth/19.01.22 00:40:08 --- join: proteusguy (~proteus-b@mx-ll-180.183.135-187.dynamic.3bb.co.th) joined #forth 00:40:08 --- mode: ChanServ set +v proteusguy 01:00:45 --- join: xek_ (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 01:10:50 --- quit: proteusguy (Ping timeout: 245 seconds) 01:22:18 --- quit: `presiden (Read error: Connection reset by peer) 01:31:03 hi 01:31:18 i think i'm getting to a point that i can start implementing my forth cpu 02:03:43 --- quit: ashirase (Ping timeout: 244 seconds) 02:08:58 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:18:58 --- join: proteusguy (~proteus-b@110.164.217.65) joined #forth 02:18:58 --- mode: ChanServ set +v proteusguy 02:49:33 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 02:51:49 --- quit: MrMobius (Ping timeout: 240 seconds) 02:51:49 --- nick: [1]MrMobius -> MrMobius 03:02:32 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 03:05:32 --- quit: MrMobius (Ping timeout: 246 seconds) 03:05:32 --- nick: [1]MrMobius -> MrMobius 03:10:42 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:16:53 --- quit: proteusguy (Ping timeout: 250 seconds) 03:28:48 --- quit: pierpal (Read error: Connection reset by peer) 03:29:01 --- join: pierpal (~pierpal@host53-189-dynamic.17-79-r.retail.telecomitalia.it) joined #forth 03:54:34 --- quit: xek_ (Remote host closed the connection) 03:55:01 --- join: xek_ (~xek@apn-31-0-23-82.dynamic.gprs.plus.pl) joined #forth 04:43:55 --- quit: X-Scale (Read error: Connection reset by peer) 04:45:41 --- join: X-Scale (~ARM@83.223.243.178) joined #forth 04:46:15 --- quit: smokeink (Ping timeout: 245 seconds) 04:55:23 --- join: proteusguy (~proteus-b@cm-58-10-154-54.revip7.asianet.co.th) joined #forth 04:55:23 --- mode: ChanServ set +v proteusguy 05:35:14 --- quit: john_cephalopoda (Ping timeout: 264 seconds) 05:36:57 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 07:00:33 --- quit: pierpal (Quit: Poof) 07:00:51 --- join: pierpal (~pierpal@host53-189-dynamic.17-79-r.retail.telecomitalia.it) joined #forth 07:26:32 --- quit: tabemann_ (Ping timeout: 268 seconds) 07:56:21 corecode, awesome about the forth cpu! what's your target device? 08:00:24 the human brain 08:00:27 play, and play 08:00:30 total control 08:07:56 --- join: darithorn (~darithorn@75.174.238.174) joined #forth 08:22:33 --- quit: nighty- (Remote host closed the connection) 08:32:45 proteusguy: ice40ul for now 08:33:34 corecode, great! gonna use symbflow or other open source tools? 08:33:44 no, the ul isn't supported yet 08:34:00 oh... what's special about the ul? 08:34:09 no idea, nothing probably 08:36:19 I got several of these hopefully showing up in June https://www.crowdsupply.com/sutajio-kosagi/fomu 08:37:38 meh 08:37:40 That looks cool. How does it compare to the popular Cyclone IV boards? 08:37:51 bit expensive for a fpga board 08:37:57 Croran, obviously not nearly as much i/o! :-) 08:37:59 and bit small to be useful 08:38:17 But it's entirely programmable via open source tools. I don't have to boot into Windows to program the damn thing. 08:38:26 nice. 08:38:30 i don't have to use windows either :) 08:39:37 corecode, what's the concept for your cpu? 08:41:53 what do you mean, concept 08:42:32 how does this fomu do python? 08:43:47 it's micropython - a very small implementation. companies like Adafruit use it. 08:44:13 and how does it do python? 08:44:38 on a softcore? 08:45:03 ...cause it's a small interpreter and minimalist implementation. it's been ported to a lot of SOCs and cpus. 08:45:31 concept == architectural drivers that determine the characteristics of your design. 08:46:03 https://micropython.org 08:46:08 i can't see how this fomu works 08:46:11 no schematics 08:46:28 no design overview 08:46:43 does it run a riscv cpu on the fpga? 08:46:54 it's a softcore riscv 08:47:03 and that runs the micropython? 08:47:08 yep 08:47:21 what's the point tho? 08:47:30 to run Python on RISC-V 08:47:34 that's the point 08:47:47 but it's micropython 08:48:02 corecode, seriously??? you're in a forth channel and your asking "what's the point" regarding a cool technical achievement??? 08:48:24 doesn't look like anything new tho 08:48:54 corecode, technology really shouldn't be your career path then, my friend! 08:49:02 proteusguy: Chuck would probably ask "what's the point" unless the Python is doing something 08:49:05 what's new about it? 08:49:24 the fact that it is smaller than an existing board? 08:50:24 WilhelmVonWeiner, Chuck's got the history & chops to have earned his curmudgeon badge. :-) But I think he'd find it an interesting way to introduce brand new users to SOC coding for small devices like IoT. 08:50:34 Oh I bet. 08:50:54 How do we get IRC running on a GA144 so we can get Chuck in here 08:51:11 * proteusguy is working on that... ;-) 08:51:30 i'll bet that 80% of all FOMU boards will never be used, or tried to be used and given up on within less than 10h 08:51:33 intermittently, i'd feel on edge in the presence of greatness if he was here 24/7 08:51:59 corecode: I feel that way about most of them too 08:52:14 run some C program on it, "wow cool", put it in a drawer 08:52:21 yes 08:52:26 corecode, you know that's true of all such boards. but what do you figure will get the most usage? those boards or your forth cpu? 08:52:36 my forth cpu 08:52:46 implement the cpu on these boards and it'll get more usage 08:53:07 what's the point of the small formfactor tho? 08:53:16 corecode, I'd love for you to be right. but if I had to place money I wouldn't bet on you... 08:53:17 * Zarutian mulls about super/ultra-caps from chorundium and alnumium grown from litographied crystal seed 08:53:18 because it's cool as hell 08:53:20 it's like they're trying to make it stupid to use 08:53:27 WilhelmVonWeiner gets it. 08:53:33 what is cool? 08:53:38 I keep an OS inside my mouse 08:53:40 not you clearly. haha 08:53:41 that you need a pick to pull it out of a port? 08:53:46 though I forgot the encryption key 08:53:55 so it's just a cool, tiny USB stick inside my mouse 08:53:59 should really format it 08:54:09 how about a crypto wallet device that plugs into your usb? 08:54:30 what about it 08:54:36 cool as hell 08:54:37 wait? this is an tiny usb stick with an fpga on it? SRAM based? 08:54:47 and you can swallow it when some masked men kick your door in 08:54:53 corecode, ok.... you're beyond hope my friend.... I do hope you get a forth cpu going, however. 08:54:55 Zarutian: yea 08:54:59 "FOMU? what FOMU? 08:55:11 proteusguy: just because i don't agree with this silliness? 08:55:46 corecode, lack of vision. 08:55:50 what's the vision 08:55:55 hmm... perhaps I could use it to make an Agoric Opaque Box. 08:55:57 precisely 08:56:18 can you explain it? 08:56:22 that is if it is cheapish to get 08:56:44 corecode, not to you apparently. 08:56:52 well not if you don't try 08:57:08 * proteusguy doesn't do well with people wasting his time. 08:57:36 to me it a) is too small, 2) has too few IOs, 3) inconvenient IOs 08:57:40 ah 08:58:34 yea i guess if you cannot explain your vision, i'm wasting your time 08:58:45 * Zarutian fucking hates when pages 'blur' images while the load in. 08:58:54 interlacing innit 08:59:07 deinterlacing? 08:59:13 isn't it just a super small preview image? 08:59:18 or even a fake preview image? 08:59:20 either way just give me the bytes 08:59:23 corecode, "The rules are simple: don't spam, don't troll, and speak english." 08:59:25 oh, it can fit inside an usb A port? nifty. I can think of all kinds of mischief I could get up to with this 09:00:31 now, if it was that small that it could sit in an usb port and intercept the usb 09:00:32 btw, USD one cent coins are enormous 09:05:15 proteusguy: hmm... this thing looks like something to experiment on. 09:05:55 WilhelmVonWeiner: not even that. 09:06:04 or if you don't need the small form factor, you get get a ice40up devboard 09:06:13 small form factor is always nice 09:06:31 I will go out of my way for a smaller form factor a lot of the time 09:06:57 for experimenting? 09:06:58 Zarutian, it's an extremely accessible platform for getting your feet wet with fpgas. 09:07:13 well it has a hole for a string so one doesnt lose it too easily 09:07:34 haha 09:08:09 corecode: for anything 09:11:27 --- join: dys (~dys@tmo-096-250.customers.d1-online.com) joined #forth 09:12:01 This guy has a few cool projects as well. https://hackaday.io/project/13048-flea-ohm-fpga-project 09:46:40 --- quit: proteusguy (Ping timeout: 245 seconds) 09:50:02 --- join: proteusguy (~proteus-b@cm-58-10-154-54.revip7.asianet.co.th) joined #forth 09:50:02 --- mode: ChanServ set +v proteusguy 10:18:03 --- quit: pierpal (Ping timeout: 268 seconds) 10:29:18 --- part: john_cephalopoda left #forth 11:14:29 --- quit: gravicappa (Ping timeout: 244 seconds) 12:20:38 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 12:40:23 --- join: smokeink (~smokeink@185.189.254.154) joined #forth 12:59:26 --- quit: mtsd (Quit: WeeChat 1.6) 12:59:29 --- quit: xek_ (Ping timeout: 246 seconds) 13:55:52 crc: interestingly.. the 16bit engine is really as cheap as the 32bit, but then the code goes gonzo at 64bit. 13:56:09 This is, of course, in the C examples. 13:56:48 I find that pretty... odd. Weird. Interesting. 13:59:28 --- quit: dys (Ping timeout: 250 seconds) 13:59:28 Mind you, my code - so far - is not dedicating any registers. Doing so really peeves gcc, but it works fine embedded 14:07:22 --- join: dys (~dys@tmo-098-254.customers.d1-online.com) joined #forth 14:29:14 --- join: logand (~user@mem-185.47.220.106.jmnet.cz) joined #forth 14:32:05 --- join: dave0 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 14:33:09 hi 15:12:27 hi 15:12:41 hi smokeink 15:16:00 hi dave0 15:16:55 hi Zarutian 15:28:15 --- quit: dys (Ping timeout: 268 seconds) 15:37:08 --- join: dys (~dys@tmo-126-254.customers.d1-online.com) joined #forth 15:39:05 --- quit: Zarutian (Ping timeout: 246 seconds) 15:59:04 --- quit: dys (Ping timeout: 250 seconds) 16:02:53 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 16:05:25 --- quit: MrMobius (Ping timeout: 245 seconds) 16:05:25 --- nick: [1]MrMobius -> MrMobius 16:26:49 --- join: rdrop-exit (~markwilli@112.201.166.158) joined #forth 16:27:24 Top of the morning Forthwrights :) 16:30:04 --- join: tabemann_ (~tabemann@rrcs-98-100-171-35.central.biz.rr.com) joined #forth 16:58:14 --- quit: dave0 (Quit: dave's not here) 17:04:16 Good afternoon rdrop-exit 17:04:42 Likewise Croran 17:05:18 Today I'm trying to figure out the difference between single precision and double precision in gforth. 17:06:05 9223372036854775807 can be stored as single or double precision with no issue. 17:06:05 hey guys 17:06:14 9223372036854775808 goes into negatives whether stored as single or double. 17:06:25 the difference is the binary format you store things in 17:06:51 by default gforth uses native floats 17:07:03 floats? 17:07:11 i'm talking about single vs double integers 17:07:31 oh you mean single cell and double cell 17:07:33 What is the cell size of your forth 17:07:49 * tabemann_ is used to "single precision" and "double precision" referring to floating point numbers 17:08:09 I'd really need to see some code before I could help you 17:08:12 --- nick: tabemann_ -> tabemann 17:08:21 The term is also use for single and double precision integers 17:08:33 rdrop-exit: i can't seem to get a solid answer on that. it appears my cell size is 64-bits given i can store 2^62 in a single cell 17:08:52 rdrop-exit: but i seem to be limited to the same value in a double precision int 17:08:52 do 1 cells . 17:08:59 * jn__ notes that the precision of single and double integers is the same, the minimum difference between different numbers is always 1 17:09:13 1 cells . 8 ok 17:09:36 pastebin some code so we can see what exactly you are doing, Croran 17:10:12 not much to see https://pastebin.com/AiqM9Pt3 17:10:35 jn__, true but the term is used that way nevertheless 17:10:47 what is your question Croran? 17:11:03 rdrop-exit the question is why can't i store a larger value in a double-precision int? 17:11:43 You need to look at two cells to see the value of a double 17:12:05 A double occupies two cells 17:12:23 rdrop-exit ok i think i'm understanding now... 17:12:31 it's all the bits together that matter 17:12:40 0 and 4611686018427387904 actually represents 85070591730234615865843651857942052864 17:13:02 i'm just confusing myself by using .s 17:14:15 and it just happens that 9223372036854775808 has the same lower 64 bits in double precision as -9223372036854775808 in single precision 17:14:16 You likely won't be needing doubles much on a 64-bit system 17:14:41 They're more useful on smaller systems 17:14:43 don't assume that a 64-bit forth will even support double cells 17:15:02 great 17:15:05 thank you 17:15:10 :) 17:15:32 still, I see a place for them, since double cells *are* much faster than arbitrary precision math 17:15:59 * tabemann 's mouth waters at the thought of 64.64 fixed point math 17:16:08 meh 17:16:09 --- quit: X-Scale (Ping timeout: 244 seconds) 17:16:09 --- quit: proteusguy (Ping timeout: 240 seconds) 17:17:41 Croran: The scaling operators on your 64-bit Forth internally use a 128-bit intermediate product 17:17:45 on another note, hashforth is coming along okay - it crashes on startup, but I'm getting it to crash later and later in the startup process 17:18:04 The joys of debugging 17:18:22 as I assume gforth is typically compiled with gcc, and gcc does natively support 128-bit integer math 17:18:35 as does clang 17:19:27 Or you can handroll your own 17:19:57 if you want to be compiler independent 17:20:49 nice 17:22:16 that you have to do in assembler if you want it to have reasonable performance 17:25:28 It can also be useful to have *hi and u*hi primitives 17:26:08 for the most significant cell of a product 17:26:15 yes 17:26:40 a way of making use of 128-bit math without requiring a full 128-bit math implementation 17:27:52 is there a way to tell Forth to overwrite old definitions of words ? (instead of populating the dictionary with new definitions of old words) 17:28:47 Normally no 17:29:05 --- join: proteusguy (~proteus-b@cm-58-10-154-54.revip7.asianet.co.th) joined #forth 17:29:05 --- mode: ChanServ set +v proteusguy 17:29:31 Your new definition might be longer than the old definition 17:29:49 the typical approach is to make a pointer, and have a word that is like : FOO 'FOO @ EXECUTE ; 17:30:05 then if you need to change that word, you do ' FOO-NEW 'FOO ! 17:30:16 Althoug tForth on the Canon Cat always overwrote old definitions with new ones 17:30:52 And some Forths had patching of old definitions 17:31:05 in many Forth implementations you can delete old words - but you can only delete all words back to a certain point in history 17:31:22 with FORGET in older Forths and MARKER in newer ones 17:31:58 thanks 17:32:15 marker can be done retroactively to any arbitrary point, but is rather unsafe, especially with modern wordlists and like 17:32:19 whoops 17:32:20 Metacompilation can also be used 17:32:21 *forget 17:32:31 marker provides a safe way of deleting words 17:32:44 --- quit: darithorn (Quit: Leaving) 17:32:51 the disadvantage of marker is you need to plan ahead of time as to when you want to delete words 17:33:04 almost safe 17:33:59 marker is good when you have the system in a known, well-defined state, and you know you'll want to return to that state in the future 17:35:25 Useful for rolling the dictionary back after testing or experimenting 17:36:20 * tabemann is happy that he actually got a working marker implemented for hashforth 17:36:47 I removed marker from my host forth 17:36:55 (whereas MARKER would never have been feasible with the ripe mess that is the implementation of attoforth) 17:41:15 Here's the source for my old marker: 17:41:44 --- quit: rdrop-exit (Quit: Lost terminal) 17:42:31 --- join: rdrop-exit (~markwilli@112.201.166.158) joined #forth 17:43:11 Wow, irssi froze up, had to restart it 17:43:29 figured out how to use the forth numeric output formatting to give me the thousands separation i wanted 17:43:43 Cool 17:44:46 https://pastebin.com/gWQbjd9K 17:46:31 Need more coffee, brb 17:48:47 back 17:50:42 I almost wish I had coded a debugger into hashforth 17:51:09 the most it has is "trace mode", where it shows every word executed and the stack trace for when each word is executed, until the program exits or dies 17:51:47 but that's impractical because if it's busy parsing code written in forth, that can take what seems like forever 17:51:54 --- quit: Keshl (Quit: Konversation terminated!) 17:52:31 Why did you name it hashforth? 17:52:38 #forth 17:52:46 Cool :) 17:52:49 # = hash 17:53:10 I thought maybe you were hashing the dictionary 17:53:26 oh, no - pure linked lists for that 17:53:51 using a hashtable for the dictionary would be heretical 17:54:01 I call mine No Frills Forth 17:54:10 nff 17:54:40 attoforth is named because when I originally started it it was supposed to be small - even though it turned out to be huge - and because the name was not taken 17:55:41 I see 17:57:06 It requires much self-discipline to keep a system small and simple 17:58:16 And a well defined specific purpose for the Forth 17:58:20 probably the biggest mistakes I made there were 1. preemptive multitasking and 2. trying to implement much of 2012 17:58:49 Live and learn :) 17:59:56 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 18:00:05 preemptive multitasking involved implementing all kinds of other stuff like locks, condition variables, and messaging channels 18:00:35 I might still implement messaging channels for hashforth, but they'll be lock and condition variable-less 18:00:35 i refactored my code and fixed a bug. even shorter now! https://pastebin.com/tHqdXLBa 18:00:56 Preemptive is a rabbit hole 18:01:01 --- join: X-Scale (~ARM@83.223.243.166) joined #forth 18:01:40 Cool 18:01:51 also, my IO management was overly complicated 18:02:16 there's an IO manager of sorts in hashforth, but it's almost all implemented in Forth, and it's way smaller 18:04:36 --- join: dave0 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 18:05:03 re 18:05:15 Hi dave0 18:05:35 Good evening dave0 18:05:39 hey 18:05:49 I should get going, though - coffee shop is closing 18:05:53 hi rdrop-exit, crc, tabemann 18:05:54 see ya later 18:06:02 bye tabemann ! 18:06:05 Ciao tabemann 18:10:17 --- quit: tabemann (Ping timeout: 246 seconds) 18:13:04 Have to walk the dogs before it gets too hot, catch you all later. Keep on Forthin' 18:13:10 --- quit: rdrop-exit (Quit: Lost terminal) 18:18:31 hmm 18:21:57 --- quit: smokeink (Quit: Leaving) 18:39:00 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 18:50:06 --- join: darithorn (~darithorn@75.174.238.174) joined #forth 19:24:07 --- quit: proteusguy (Remote host closed the connection) 19:31:47 --- join: tabemann (~tabemann@2600:1700:7990:24e0:8d7a:3d82:9669:8573) joined #forth 19:45:11 --- quit: darithorn (Remote host closed the connection) 19:51:20 --- join: darithorn (~darithorn@75.174.238.174) joined #forth 20:01:22 --- join: dave69 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 20:04:20 --- quit: dave0 (Ping timeout: 250 seconds) 20:16:13 --- join: rdrop-exit (~markwilli@112.201.166.158) joined #forth 20:22:58 --- nick: dave69 -> dave0 20:52:02 --- quit: darithorn (Quit: Leaving) 21:00:52 --- join: gravicappa (~gravicapp@h109-187-251-146.dyn.bashtel.ru) joined #forth 21:14:50 --- join: proteusguy (~proteusgu@mx-ll-14.207.171-27.dynamic.3bb.co.th) joined #forth 21:14:50 --- mode: ChanServ set +v proteusguy 21:23:02 --- nick: proteusguy -> proteus-guy 21:23:21 --- mode: ChanServ set -v proteus-guy 21:23:37 --- nick: proteus-guy -> proteusguy 21:23:44 --- mode: ChanServ set +v proteusguy 21:26:46 --- quit: dave0 (Quit: dave's not here) 23:05:07 --- join: pierpal (~pierpal@host53-189-dynamic.17-79-r.retail.telecomitalia.it) joined #forth 23:09:04 --- quit: MrMobius (Ping timeout: 246 seconds) 23:22:32 --- quit: dddddd (Remote host closed the connection) 23:59:59 --- log: ended forth/19.01.22