00:00:00 --- log: started forth/19.11.15 00:36:49 --- log: started forth/19.11.15 00:36:49 --- join: clog joined #forth 00:36:49 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th' 00:36:49 --- topic: set by proteusguy!~proteusgu@cm-58-10-209-120.revip7.asianet.co.th on [Wed Jun 26 09:13:14 2019] 00:36:49 --- names: list (clog dys pareidolia mtsd SysDsnEng APic deesix yunfan patrickg C-Keen jn__ farcas82 presiden rpcope gravicappa Keshl tabemann rdrop-exit ovf chunkypuffs jedb__ X-Scale dave0 fftww MrMobius guan alex4nder superjudge +crc gabc arrdem fiddlerwoaroof lonjil cheater a3f Jookia inode remexre phadthai +proteusguy ornxka reepca heredoc dne cp +KipIngram koisoke pointfree cartwright tp nonlinear bluekelp newcup dave9 djinni dzho jpsamaroo WilhelmVonWeiner rann irsol) 00:36:49 --- names: list (diginet2 rprimus jhei catern mstevens louisg ecraven Lord_Nightmare malyn Kumool dbucklin) 00:37:58 We have around +4 here, right now 00:38:11 crazy! 00:38:28 c[] 00:38:39 Cooling computers here means opening the door, at this time of year ;) 00:38:58 brrr 00:39:57 34C and cloudy here 00:41:00 mtsd, hahah\ 00:41:26 rdrop-exit, whats the humidity like ? 00:42:05 rdrop-exit, where are you located? 00:42:17 Metro Manila 00:42:46 humid, can't remember which website gives me humidity 00:43:00 it's never not humid 00:43:10 --- quit: pareidolia (Quit: ZNC 1.7.3 - https://znc.in) 00:43:38 My books turn yellow/brown if I open the windows 00:44:15 --- join: pareidolia joined #forth 00:44:43 and let the airconditioning out ? 00:45:23 At the beach it's nice to open all the windows, but not in the city 00:46:12 yeah 00:46:39 Actually more like sliding doors than windows 00:47:58 Bit too hot for my taste :) 00:48:41 Summers here are usually around 20-25 degrees. Some days a bit more. 00:49:02 where are you? 00:49:08 Sweden 00:49:11 sweden ? 00:49:18 Yep 00:49:29 Id like that temperature range myself 00:49:41 20 - 25 is perfect for me 00:50:16 I like it as well. We usually have summer weather from, perhaps, late may until early september 00:50:18 I've been to sweden a few times, long time ago now 00:50:36 July and august are often the warmest 00:50:44 mtsd and 6 month long winters also ? 00:51:14 Something like that. First snow came a week ago. Didn't stay though, but it snowed 00:51:31 Melts away somewhere around march 00:51:54 The north is coverd in snow ny now, and it last longer there as well 00:51:58 mtsd, winter is a good time for staying indoors and programming Forth ? 00:52:22 Indeed :) 00:52:43 Need to get some more Forth done, but in principle, yes 00:53:22 rdrop-exit, how did you like sweden? 00:54:47 It was always business trips, but had a good time there and liked the people I was dealing with there 00:55:27 Didn't like the cold 00:56:25 Also went to Norway and Finland, but the coldest I felt was in Poland one winter 00:56:55 Fell on my ass in stupid moonboot like things 00:57:53 The south usually feels colder than the north here. Dryer climate up north 00:58:28 makes sense 01:01:46 --- quit: pareidolia (Read error: Connection reset by peer) 01:02:37 I don't mind miss ice and snow 01:04:31 I'll never know what Ive missed then :) 01:04:36 --- join: pareidolia joined #forth 01:05:03 Lay down in a ice bath for an hour or so 01:05:44 I am used to the climate here. Lived here all my life 01:05:56 yeah, us humans are very adaptable 01:07:25 ok, I just threw together a library part for a 3.3v-usb-serial dongle, now to use it in a schematic for the nucleo STM32L072 board 01:07:47 kudos Master Technician 01:07:55 first the schematic, then the assembly code changes, testing, then the binary release 01:08:50 You present new things you have done every day, tp. Very impressive! 01:09:20 this things insane it has 192 KB Flash memory with ECC and 20KB ram 01:09:52 mtsd, Ive always loved electronics it's hard for me not to work on something every day 01:10:11 and Forth has provided such a canvas for me to paint on ;-) 01:11:09 6 KB of data EEPROM with ECC 01:11:09 20-byte backup register 01:11:45 this chip is a cortex-m0+ 01:17:58 What is a common way to store an array of strings like in C in FORTH for later indexing and retrival? For example the following array (Src from GitHub MDIO Debugging): 01:17:58 char const * const bmsrNames[REGISTER_WIDTH] = { 01:17:58 "Extended Capability", 01:17:58 "Jabber Detect", 01:17:58 "Link Status", 01:17:59 "Auto-Negotiation Ability", 01:17:59 "Remote Fault", 01:18:00 "Auto-Negotiation Complete", 01:18:00 "MF Preamble Suppression", 01:18:01 "Unidirectional ability", 01:18:01 "Extended Status", 01:18:02 "100BASE-T2 Half Duplex", 01:18:02 "100BASE-T2 Full Duplex", 01:18:03 "10 Mb/s Half Duplex", 01:22:43 there is no common way 01:25:31 rdrop-exit: You may have a proposal how you would it? I do have some experience is using eFORTH within my FPGA's (J1 derivce Forth CPU). However I came accross it in oder to implement MDIO debug utility within the eFORTH wordset ...eFORTH is much more compact to use in my FPGA's (VHDL based) 01:31:32 it depends on a lot of things, the simplest is to put them in a block one per row, preceded by a count byte 01:35:46 rdrop-exit: Thank's! I will elaborate on the 'block' word. Actually it is not in my actual wordset of my deeply embedded eFORTH machine. 01:36:21 There are a lot of tradeoffs, in space, in ease of maintenance. 01:36:30 I would usually make two words 01:36:44 one to lay down the string 01:36:56 and one to randomly access the string 01:37:22 the details depend on when and where, and memory constraints 01:38:01 If it a super simple need, I just type them into a block 01:38:10 (or blocks) 01:38:53 i think there is a good article on a array of strings in "thinking Forth" ? 01:38:56 and randomly access them by row or half-row 01:38:56 iirc 01:40:52 Is there? I don't remember, it's been a while 01:41:22 Okay, I will have a look at 'thinking-forth.pdf'. 01:45:48 i think it was a example of using create to make a array of strings word 01:46:01 something like that 01:46:10 apolagies if Im mistaken 01:46:41 I'm sure you're right, it's just been a while since I last read it cover to cover 01:47:00 i hope so I shoud have checked but I'm busy coding 01:48:24 I've never longed for generic array words in Forth, I just concact what best fits the specific tradeoffs I need 01:48:42 * concoct 01:49:37 theyre just offsets into memory anyway 01:49:45 'Leo Brodie' has something close to what you did propose in the Factoring Chapter. I will need to read furthter ... 01:49:48 nothing special as far as I can see 01:50:25 i think the secret sauce is to make a defining word that makes arrays 01:50:59 or something like that, Im still a utter novice there 01:52:07 ie rather than making a custom array, one could make a word that takes the number of strings and the maximum length and then creates an array word for them ? 01:52:19 or just comma-ing words, into the dictionary, or wherever 01:52:40 I dont have that level of Forth-Fu yet 01:53:07 the Forth-Fu is still weak within tp-san 01:54:19 Depends also if you're filling out the array all at once or not 01:55:10 --- join: xek__ joined #forth 01:55:18 one thing that annoys me with modifying Mecrisp-Stellaris assembly is that the author made up his own cortex-m assembly syntax which closely resembles the CMSIS-SVD standard, but is different 01:55:42 --- quit: pareidolia (Ping timeout: 276 seconds) 01:56:04 --- join: pareidolia joined #forth 01:56:07 ah yes, well filling it out later is too difficult so I passed a law that arrays must be filled out first 01:56:19 heavy fines apply 01:56:28 I like postfix assemblers 01:57:17 I got the idea from a African Dictator who declared that PI would henceforth be 3.14 because all those other numbers were to tedious and unweildy 01:57:50 I just use the default GCC arm-eabi-none-as 01:58:16 I'm a Forth traditionalist when it comes to assemblers 01:58:38 I'm a technician when it comes to assemblers 01:58:39 :) 01:58:56 I just get it done then back to Forth 01:58:58 figures :) 01:59:11 yeah, it's not like I have a choice ... 01:59:50 I'm only adding RTS handshaking and increasing the serial speed from 115200 to 460800 baud 02:00:02 Sun is down, going to give the dogs a walk, catch you tomorrow 02:00:25 --- quit: pareidolia (Ping timeout: 240 seconds) 02:00:25 cya! 02:00:40 :) 02:00:43 --- quit: rdrop-exit (Quit: Lost terminal) 02:01:14 --- join: pareidolia joined #forth 02:06:28 --- quit: pareidolia (Ping timeout: 252 seconds) 02:09:17 --- join: pareidolia joined #forth 02:34:59 --- join: iyzsong joined #forth 03:03:33 --- quit: SysDsnEng (Quit: SysDsnEng) 03:14:01 --- quit: pareidolia (Ping timeout: 240 seconds) 03:14:45 --- join: pareidolia joined #forth 03:19:07 --- quit: pareidolia (Ping timeout: 250 seconds) 03:21:04 --- join: pareidolia joined #forth 03:25:13 --- quit: pareidolia (Ping timeout: 240 seconds) 03:25:41 --- join: pareidolia joined #forth 03:46:56 --- quit: pareidolia (Ping timeout: 252 seconds) 03:47:00 --- join: pareidolia_ joined #forth 03:59:19 --- quit: pareidolia_ (Ping timeout: 246 seconds) 04:00:54 --- join: pareidolia joined #forth 04:11:49 --- quit: pareidolia (Quit: ZNC 1.7.3 - https://znc.in) 04:23:10 --- join: SysDsnEng joined #forth 04:26:31 --- join: pareidolia joined #forth 04:29:53 --- quit: pareidolia (Read error: Connection reset by peer) 04:31:02 --- join: pareidolia joined #forth 04:40:50 --- quit: pareidolia (Ping timeout: 252 seconds) 04:41:51 --- join: pareidolia joined #forth 04:46:13 --- quit: pareidolia (Ping timeout: 250 seconds) 04:47:51 --- join: pareidolia joined #forth 05:02:15 --- quit: pareidolia (Ping timeout: 250 seconds) 05:04:49 --- join: pareidolia joined #forth 05:09:11 --- quit: pareidolia (Ping timeout: 250 seconds) 05:12:49 --- join: pareidolia joined #forth 05:26:39 --- quit: pareidolia (Ping timeout: 240 seconds) 05:34:54 --- join: pareidolia joined #forth 05:37:26 --- join: dddddd joined #forth 05:38:10 --- quit: pareidolia (Client Quit) 05:39:02 --- join: pareidolia joined #forth 05:42:19 --- quit: pareidolia (Read error: Connection reset by peer) 05:44:51 --- join: pareidolia joined #forth 05:49:37 --- quit: pareidolia (Ping timeout: 240 seconds) 06:00:13 SysDsnEng: in my forth, I can create an array of strings (or other values) pretty easily: http://forth.works/share/2acf69a38f5f503a55944d82a566bdc3.html 06:01:41 crc, I think you'll be waiting forever to receive any proof of people going insane using Forth from that odd poster;-) 06:01:45 dave0: I have written a bot for that, but am not running it currently. Code is browsable at http://forth.works/examples/irc-bot.retro.html 06:02:01 crc: cool! 06:02:03 tp: I don't actually expect a reply to that 06:02:44 crc, I wonder if that person has ever used forth, his reply was one of the strangest Forth related posts Ive seen 06:03:22 crc, it would be great to have a forthbot here 06:03:52 forthbot, 2 2 + ? 06:05:24 --- join: retroforth-bot joined #forth 06:05:41 retroforth-bot: #2 #2 + n:put 06:06:16 retro: #2 #2 + n:put 06:06:16 4 06:06:19 retroforth-bot, #3 #5 * n:put 06:06:32 needs a retro: prefix 06:06:45 oh 06:07:57 retro: #3 #5 * n:put 06:07:58 15 06:08:01 ahahh 06:08:03 awesome 06:08:46 I think thats very cool, any chance of leaving it up for a few weeks to see how it goes ? 06:08:57 runs retro in a special vm with a limited set of i/o interfaces 06:09:29 any protection from people generating massive data with it ? 06:10:20 other than the usual k-lining by #freenode ? 06:11:01 anyway, 1am here, Im off to zzzzz, night all! 06:11:13 it's running on a restricted implementation of my vm with some guards 06:11:58 it's not well tested as I wrote it mainly as a way to test the socket words 06:12:27 so if somebody wants to abuse it to mine bitcoin they could? 06:12:28 --- join: pareidolia joined #forth 06:13:10 patrickg: in theory, but it'll be very slow for that 06:15:55 (my forth runs on an emulated MISC architecture, it's not a fast system; it's also limited to ~1 million cells of memory, with no file or network i/o exposed via the sandboxed vm, so getting the blockchain into it would be difficult...) 06:16:32 crc: I don't know your version of FORTH, RETRO. However I must admit the string array looks very elegant. I am looking for a solution for deeply embedded Forth machines similar to the J1, H2, ... etc. 06:20:09 --- quit: pareidolia (Read error: Connection reset by peer) 06:22:42 --- join: pareidolia joined #forth 06:24:01 I'm not familiar with the forths for those systems 06:24:42 --- quit: mtsd (Remote host closed the connection) 06:25:45 --- quit: pareidolia (Client Quit) 06:28:10 --- join: pareidolia joined #forth 06:28:32 in mine, { starts an anonymous function and } ends it, then runs it, counts the number of returned items, and constructs an array using them. 06:28:56 crc: A minimal set of words (100..200) minimal amount of memory 8..16KB.. limited address range. A 16 bit ALU maybe 1000..2000 LE's depending on other things like interrupt support, waitstates and the stack deepth. This small FORTH systems can easily be included in todays FPGA's for testing or conrolling the behavior of the system on chip 06:32:18 crc: Can I find the code of the two words '{' and '}' ? I am pretty new to FORTH using it know for a year or so. However I have done VHDL designs for the last 30 years or so ... 06:34:31 my system is very non-traditional: 06:34:32 :{ (-) |[ |depth |[ ; immediate 06:34:32 :} (-a) |] |dip |depth |swap |- |n:dec |] |a:make ; immediate 06:34:59 http://forth.works/share/dd4524fec3769a9a06582e63259f794a 06:34:59 would be something similar to my example, but using ANS 06:35:37 the | prefix is similar to POSTPONE in ANS 06:37:40 Thank's that looks interesting to me ;-) 06:39:27 : { :noname postpone depth postpone >r ; immediate 06:39:27 : } postpone depth postpone r> postpone - postpone here postpone >r 06:39:27 postpone dup postpone , 0 postpone literal postpone do postpone , 06:39:27 postpone loop postpone r> postpone ; execute ; immediate 06:40:01 my arrays are cell aligned, with the first cell containing the number of items in the array 06:51:15 crc: You may have an example that runs on GForth. I am struggling ... 06:53:12 --- quit: iyzsong (Ping timeout: 252 seconds) 07:01:35 --- quit: dave0 (Quit: dave's not here) 07:04:41 --- join: karswell joined #forth 07:09:09 http://forth.works/share/75350b4d4f57eae886e2691e3719072c 07:11:30 --- quit: pareidolia (Read error: Connection reset by peer) 07:14:43 --- join: pareidolia joined #forth 07:16:12 this runs in gforth 0.7.0 07:17:32 crc: Pretty Cool! Thank's. I Got it 'working' now in GForth (PC). I will test it on my tiny machine (most ANS words) in terms of memory. 07:21:55 --- quit: pareidolia (Ping timeout: 245 seconds) 07:25:35 --- quit: SysDsnEng (Quit: SysDsnEng) 07:26:08 --- join: pareidolia joined #forth 07:29:24 --- join: siraben joined #forth 07:29:25 --- join: nonlinear[m] joined #forth 07:29:25 --- join: alexshpilkin joined #forth 07:29:25 --- join: jimt[m] joined #forth 07:34:15 --- quit: pareidolia (Read error: Connection reset by peer) 07:37:25 --- join: f-a joined #forth 07:37:30 --- join: pareidolia joined #forth 07:44:45 --- quit: pareidolia (Ping timeout: 276 seconds) 07:45:46 --- join: pareidolia joined #forth 07:54:25 --- quit: pareidolia (Ping timeout: 240 seconds) 08:01:30 --- join: pareidolia joined #forth 08:17:10 --- quit: pareidolia (Ping timeout: 252 seconds) 08:44:28 --- join: SysDsnEng joined #forth 08:45:02 --- quit: SysDsnEng (Client Quit) 09:12:43 --- quit: dys (Ping timeout: 250 seconds) 09:34:33 --- join: dys joined #forth 11:23:38 --- join: WickedShell joined #forth 11:36:19 --- quit: f-a (Ping timeout: 240 seconds) 11:38:26 --- join: f-a joined #forth 11:58:22 --- quit: fftww (Quit: WeeChat 2.6) 12:06:29 retro: #3 #15 * n:put 12:06:30 45 12:06:35 haha, awesome 12:14:09 retro: vlist 12:14:09 ERROR: Word Not Found: `vlist` 12:19:21 retro: words 12:19:21 ERROR: Word Not Found: `words` 12:19:52 retro #0 #10 do i n:put +loop 12:20:18 oh oh spammers! 12:20:21 oops ;) 12:21:05 should have checked the cell size first 12:23:40 --- quit: gravicappa (Ping timeout: 246 seconds) 12:26:46 retro: d:words 12:26:46 generations generation record at evolve group update display Next This string, generations generation record at evolve group update display Next This string, 1d20 greetings unix:io:s:put unix:io:n:put unix:write d:words-beginning-with d:words-with d:words clock:utc:second clock:utc:minute clock:utc:hour clock:utc:year clock:utc:month clock:utc:day clock:second clock:minute clock:hour clock:year clock:month clock:day clock:timestamp io:clock-syscall lis 12:28:25 retro: #0 [ drop n:inc ] d:for-each n:put 12:28:25 524 12:28:58 The glossary can be browsed at forthworks.com:9999 via http or gopher 12:30:08 most of the words are present; some (like the sockets, unix, and file words) are disabled by the sandbox to reduce the chance of abuse 12:30:17 :) 12:30:56 patrickg: retro's loops are not like ans... 12:31:15 crc: will it respond to privmsg from users? so we don't have to flood the channel to poke around? 12:31:18 crc, you could substitute abuse words with "visit forthworks.com:9999 for your answer" ? 12:31:41 crc: ah :) 12:31:41 retro: #10 [ I n:put sp ] times 12:31:42 0 1 2 3 4 5 6 7 8 9 12:32:11 tp: I'll do something for that when I update the image next 12:33:16 crc or send the answer to a "dpaste" and just return the url ? 12:33:30 hahah, what cool challenge 12:33:45 I do have a paste service written in retro that I could use... 12:34:01 wow, why am I not surprised 12:36:10 all of my http://forth.works/share/ urls are generated by it 12:37:24 I do make extensive use of forth to implement the things I use on a daily basis... 12:40:12 --- part: f-a left #forth 12:48:57 crc, eating ones own dog food is the ultimate display of confidence 12:51:40 it's very nice to be able to use my own tools as much as possible 12:59:01 absolutely, the beauty of Forth 13:05:41 crc: when you get some time, please add https to your website and gpg-signed releases 13:09:38 Jookia: my main website https://forthworks.com/ has https; not doing this on forth.works as it's mainly my dev machine which only hosts a few pastebin bits and small things I'm working on 13:10:17 ah ok. gpg signing? 13:26:25 I'll look into that 13:27:06 yay. i think there's also new tools that openbsd uses like minisign 13:27:36 https://jedisct1.github.io/minisign/ 13:28:37 i'm just annoyed with software that doesn't have signed releases since it's impossible to tell if the version i have is legitimate without guessing and comparing multiple sources each time i get a new version 13:40:05 --- quit: inode (Quit: ) 13:51:17 Jookia: can you see if the signed copy at http://forth.works/ works? If it does, I'll setup something on the main server over the weekend to sign the releases and snapshots. 14:00:28 crc: Works! Wow that was easy, I had to build minisig. The only problem it gave me is that when running 'minisign-0.8/minisign -V -p fw.pub -m latest.tar.gz' it wanted the signature to be named latest.tar.gz.minisig not latest.tar.gz.sig 14:06:22 I signed it using openbsd's signify 14:11:14 Oh, interesting 14:12:33 Part of me wants to suggest GPG since it allows you to have a CA- meaning you can rotate keys without it affecting users as much. But I wonder if that just masks that key rotation is inconvenient 14:13:01 --- quit: cheater (Ping timeout: 250 seconds) 14:13:19 I might do what openbsd does, and have each release include the key that will be used for the next release 14:14:10 That's fancy! 14:14:12 --- join: cheater joined #forth 14:14:28 I should do that, since it will force proper key rotation 14:16:16 gpg would probably hate that too 14:16:21 managing all them keys 14:30:42 --- join: dave0 joined #forth 14:37:13 --- quit: X-Scale (Ping timeout: 240 seconds) 14:37:45 --- quit: Keshl (Ping timeout: 245 seconds) 14:38:58 --- join: X-Scale` joined #forth 15:03:37 --- quit: farcas82 (Ping timeout: 246 seconds) 15:08:03 --- quit: dys (Ping timeout: 276 seconds) 15:46:43 --- join: fftww joined #forth 16:05:55 --- join: Keshl joined #forth 16:46:54 --- join: ryke joined #forth 16:51:21 --- quit: dave0 (Quit: dave's not here) 17:21:49 --- join: pareidolia joined #forth 17:27:12 --- join: TonySidaway joined #forth 17:39:24 --- quit: TonySidaway (Quit: TonySidaway) 17:42:01 --- quit: xek__ (Ping timeout: 240 seconds) 18:39:12 --- join: dave0 joined #forth 19:12:35 --- quit: cartwright (Remote host closed the connection) 19:15:09 --- join: cartwright joined #forth 19:57:31 --- quit: ryke (Ping timeout: 265 seconds) 19:57:38 --- join: iyzsong joined #forth 20:14:40 --- join: gravicappa joined #forth 20:42:56 --- join: farcas82 joined #forth 21:09:00 --- quit: farcas82 (Ping timeout: 252 seconds) 22:02:09 --- join: farcas82 joined #forth 22:05:54 --- quit: dddddd (Remote host closed the connection) 22:22:01 --- quit: gravicappa (Ping timeout: 240 seconds) 22:46:17 --- quit: WickedShell (Remote host closed the connection) 23:51:53 --- join: jsoft joined #forth 23:52:05 Good evening 23:55:51 good evening jsoft 23:59:59 --- log: ended forth/19.11.15