00:00:00 --- log: started forth/19.05.10 00:01:50 --- quit: jedb (Ping timeout: 252 seconds) 00:12:12 --- join: jedb (~jedb@185.128.24.51) joined #forth 00:24:09 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 00:42:55 andrei-n: Forth has no formal grammar 00:43:31 the indenter for forth-mode in Emacs works sometimes but is hopeless with new constructions which is very common in Forth 00:45:45 andrei-n: this is probably the largest amount of Forth code I've written https://github.com/siraben/zkeme80/blob/aac8c8993c3247a2dfe5ca7a90fe6eb54988dc1e/src/bootstrap-flash1.fs 00:46:13 Tend to use one-liners when possible otherwise it's Python/C style indent 00:52:04 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 00:52:35 re 00:53:51 siraben, Well, there are coding conventions for many languages, for C (Linux, BSD, GNU), for Pascal (Embarcadero), for Aseembly (the Hyde article). I always try to find something like this when I'm learning a language and I find it very helpful. But for Forth, I can't find anything. I think it should exist. Otherwise, I will compile something like this based on what I find on GitHub... 00:54:30 andrei-n: Thinking Forth is perhaps your best style guide 00:54:42 the PDF is available for free online 00:56:14 but the power of Forth is also the ability to not follow conventions and make your own 00:56:36 to do this effectively you'll need to write Forth interpreter-compiler 01:31:55 I use cmforth as my style guid 01:32:04 but there IS a Forth style guide and it's great 01:32:33 andrei-n: http://forth.org/forth_style.html 01:36:31 siraben's style is what I'd call "ANS style". Takes up a lot of space, unnecessarily. 01:37:33 I'm not at home so I don't have access to my usual Forth source folder but here's some unfinished code I ripped off a server I have somewhere: https://hastebin.com/uravopukuj.php 01:37:58 Ah my code looks like that later in the file 01:38:11 this is more classic style, maybe "block style" would be a good name. or "chuck style", since he doesn't write ans style code 01:38:48 not to say anything bad about the content of your code siraben 01:51:05 Of course, it's just style. 02:06:34 I want to see ActorForth. 02:07:17 proteusguy or pointfree were working on it. Stronly typed, but somehow suited to team-based programming... 02:07:28 I always get those two big brainers confused 05:53:27 --- join: rdrop-exit (~markwilli@112.201.166.63) joined #forth 07:27:03 --- quit: travisb (Ping timeout: 255 seconds) 08:10:40 WilhelmVonWeiner: I think proteusguy was working on ActorForth and considering fifos for it. Jaanus Pöial writes about formal or typed forth http://www.kodu.ee/~jpoial/ 08:13:28 andrei-n: Here's another style that makes factoring easier http://www.0xff.in/2016/07/formatting-forth-to-help-you-factor/ 08:16:03 I don't really want strong typing but the team stuff sounds cool. 08:16:20 "Tagged types" maybe, I think that's what they're called 08:26:54 WilhelmVonWeiner: I linked to this article in ##dependent https://www.williamjbowman.com/blog/2018/01/19/untyped-programs-don-t-exist/ they said it was nuts. 09:03:26 --- quit: rdrop-exit (Quit: Lost terminal) 09:04:02 pointfree, thanks... This one is a bit weird though. Doesn't seem very practical. 09:06:45 what isn't practical about it 09:10:14 interesting article, pointfree 09:11:19 --- join: xek (~xek@apn-37-248-138-82.dynamic.gprs.plus.pl) joined #forth 09:11:45 https://lobste.rs/s/jrplgk/untyped_programs_don_t_exist 09:12:25 WilhelmVonWeiner, if you insert something, you have to change a lot of lines. 09:15:47 * Zarutian doesnt read the whole backlog but thinks "gap buffer" 09:17:22 so there is no concept of a private forth word is there? 09:18:52 Rickta59: well, you got vocs, wordlists, and anonymous words 09:19:12 ok .. i go try and read about those 09:19:13 vocs? 09:19:14 "private" has too many connotations - mostly bad 09:19:20 vocabularies 09:19:24 lexicons 09:19:41 i want a word that i only use and don't expose is that possible? 09:19:47 also, the smudge bit to hide a word 09:20:06 k lots to research thanks 09:20:34 Vocabulary Private Private Definitions : Rickta59 ." I'm private." cr ; forth definitions 09:22:59 andrei-n: format it once you're done with that section. 09:26:02 I have a construct for words not intended for use outside of a particular scope (it hides the headers after the public words using the factors are defined): http://forth.works/book.html#lexical-scope (non portable, as such things tend to be) 09:27:57 Mornin' 09:28:10 good morning john_cephalopoda 09:28:16 there is also the technique of 'encapsulating' words inside other words 09:29:19 if words in the dictionary have FIG-Forth structure then it is relatively easy 09:29:24 You could also hide words by just redefining them with the same name. 09:29:41 in short: "too damned many variations and methods" 09:30:22 crc is it possible to access cffi from retro? 09:30:54 nonlinear: no 09:32:07 So best way to determine if a uses exists on a system would be to parse /etc/passwd using retro words? 09:32:13 I have a modules.fs from Neal Bridges which allows for public and private words (for ANS forths): http://forth.works/6b9bddfe14d31d2edad79f908d92f194 09:32:20 in the method I am describing : inside another word definition first compiles in a jump, pushes the 'hole' of that onto the stack and pushes LAST onto the return stack. ; then fills the 'hole' and pops LAST off the return stack. 09:33:24 ( : and ; do that in addition to what they normally do ) 09:34:16 this has the effect of making words defined inside a word definition be accessible only to code inside that outer definition. 09:35:55 nonlinear: that, or open a pipe to `finger` and parse results from that 09:36:42 I like that. Thank you. 09:40:09 nonlinear: http://forth.works/01ea0e77e68c8a64017224faecfa8c42.html 09:41:50 (if not using the development snapshot, the `a:th` in `login?` will need to be changed to `a:nth`) 09:55:08 --- quit: Zarutian (Read error: Connection reset by peer) 09:55:19 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 09:55:25 Perfect!!! Thank you! 09:59:40 nonlinear: I just updated that with something to use /etc/passwd as well 10:33:05 crc: Why do you specifically ship a gopher client as language feature? 10:36:02 john_cephalopoda: I like gopher... 10:36:58 john_cephalopoda: more specifically: it's for the iOS version mainly; I can now use pipes & curl on unix to do http & gopher requests, but can't do pipes on iOS 10:37:00 crc: Yeah, nice protocol. The question is, why you ship that as a language feature and not something more low-level like sockets :þ 10:37:31 it'll be removed from the unix interface later this year 10:57:18 --- quit: dave0 (Quit: dave's not here) 11:35:20 :( 11:55:08 http://forth.works/ba15fd81f86d4187a99977972a295521.html implements `gopher:get` in forth, using the curl tool 12:18:09 --- quit: gravicappa (Ping timeout: 248 seconds) 12:54:03 pointfree: thanks for the redefine tip .. that seems simplest 12:57:34 ok so I made a second pass at the thing I asked for critique on yesterday .. a new more wordy vesion * not finished 12:57:38 https://raw.githubusercontent.com/RickKimball/mecrisp-stellaris/nucelo-f030r8/mecrisp-stellaris-source/stm32f030r8-ra/mhz.fs 12:59:55 am i headed in the right direction? 13:04:01 Rickta59: As long as your code works and you can read it (and still understand it in a few weeks), it is fine. 13:04:54 Everybody has their own coding style, all of them are fine. 13:05:09 i guess if you only talk to youself :) 13:06:41 morning forthniter 13:06:46 As long as Forth doesn't throw syntax errors, it is valid Forth ;) 13:07:06 Hey presiden 13:08:26 hello john_cephalopoda 13:08:39 any exciting forth news? 13:10:37 presiden: Not really. 13:43:05 --- quit: andrei-n (Read error: Connection reset by peer) 14:09:14 A mandelbrot set viewer for RETRO forth, using fixed-point numbers: http://thecutecuttlefish.org/tmp/mandelbrot.forth 16:02:54 --- quit: pierpal (Ping timeout: 245 seconds) 16:27:26 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:37:10 --- quit: xek (Ping timeout: 258 seconds) 16:41:11 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:00:50 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 17:10:17 --- quit: Zarutian (Ping timeout: 246 seconds) 17:13:04 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 17:51:08 --- join: rdrop-exit (~markwilli@112.201.166.63) joined #forth 17:55:08 c[_] Good morning Forthwrights :) 17:57:52 --- quit: dddddd (Remote host closed the connection) 19:33:01 --- join: travisb (~travisb@2600:1700:7990:24e0:180c:eb2f:a594:7f51) joined #forth 19:34:06 Rickta59: I just realized the example I gave use was backwards, it should have been: 19:34:20 RCC_CR 18 bit set 19:35:48 I was thinking of \set whose arguments are reversed 19:38:31 cummon, man - don't freak the newbs.. (give them a week and THEN freak them ;-P 19:39:23 Mea culpa :-) 19:42:43 In the future I'll make sure to take a swig of coffee before typing code off the cuff. 19:50:35 rdrop-exit: that prooves it! Coffee is the raw ingredient for making code! 19:52:25 Absolutely, I can't think straight before my second cup. :) 19:53:18 otoh, I no longer drink 3-5 pots a day.. Stomach won't allow it. Oddly, I no longer try to code that hard. 19:53:53 rdrop-exit: oddly, I get started anymore with no more than 1 cuppa joe or tea, anymore. 19:59:22 I've been a heavy espesso drinker since my teens. I worked summers in hotels, one of the perks was unlimited espresso. 20:00:22 oy.. I tried that stuff once.. around 82.. Poured a big ol coffee-mug full of expresso, slogged along for a few hours - then the shit hit bottom and I vibrated for like 12 hours. 20:00:39 :-)) 20:00:47 --- join: gravicappa (~gravicapp@h109-187-242-147.dyn.bashtel.ru) joined #forth 20:06:48 I just thought of advice for new Forthers: 20:07:09 Ask yourself "How would Yoda code this?" 20:07:52 ;-) 20:08:01 enough true 20:08:20 ..we'll hold the wookie reference for laters. 20:09:42 --- join: gaze___ (~gaze__@45.32.221.179) joined #forth 20:15:59 Have to walk the dogs, bbiab. 20:18:30 yoda would not code it 20:18:35 he is dead 20:19:09 pfft... he's got the Force - and a ghost, sheesh.. That's more than most folks have 20:36:48 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 20:37:36 hi 20:52:01 --- quit: pierpal (Quit: Poof) 20:52:20 --- join: pierpal (~pierpal@host57-236-dynamic.22-79-r.retail.telecomitalia.it) joined #forth 20:54:25 back 20:56:40 hi rdrop-exit 20:57:59 hi dave0 :) 21:40:36 Yoda's dead? I'm not up-to-date on Star Wars stuff. In Peace Rest. 22:10:48 --- quit: dave0 (Quit: dave's not here) 22:18:09 --- quit: vxe (Read error: Connection reset by peer) 22:18:09 --- join: vxe_ (~vxe@31.153.239.35.bc.googleusercontent.com) joined #forth 22:18:09 --- quit: gabc (Ping timeout: 258 seconds) 22:18:09 --- join: gabc (~gabc@165.227.34.49) joined #forth 22:26:07 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 22:51:25 --- join: gabc_ (~gabc@165.227.34.49) joined #forth 22:51:47 --- join: vxe (~vxe@31.153.239.35.bc.googleusercontent.com) joined #forth 22:52:20 --- quit: vxe_ (Ping timeout: 258 seconds) 22:52:21 --- quit: gabc (Ping timeout: 258 seconds) 22:52:21 --- quit: rain1 (Ping timeout: 258 seconds) 22:55:09 --- join: rain1 (~My_user_n@unaffiliated/rain1) joined #forth 23:28:37 --- join: andrei-n (~andrei-n@231.182-64-87.adsl-dyn.isp.belgacom.be) joined #forth 23:45:12 --- join: dave0 (~dave0@069.d.003.ncl.iprimus.net.au) joined #forth 23:47:09 re 23:59:59 --- log: ended forth/19.05.10