00:00:00 --- log: started forth/21.03.09 00:06:24 trying to get the unix sources to build... "kernel.c:9:24: error: unknown register name '%a3' in asm" 00:07:59 Alas, looks like it was written for a different time and architecture. 00:08:18 Nix expression to build it: http://ix.io/2SdP 00:13:40 Costs money to keep a server running 00:14:26 i think it was his concept of optimal stack ops, "stack quarks", that made me first run into his site: https://web.archive.org/web/20060620011610/http://www.compusmart.ab.ca/rc/Timbre/index.html 01:47:05 --- join: f-a joined #forth 01:47:30 --- join: joe9 joined #forth 01:57:08 --- quit: andrei-n (Read error: Connection reset by peer) 02:16:45 --- join: hosewiejacke joined #forth 02:50:08 --- join: andrei-n joined #forth 03:10:46 --- join: m2rrorbird joined #forth 03:11:34 --- join: mirrorb2rd joined #forth 03:14:20 --- quit: mirrorbird (Ping timeout: 265 seconds) 03:14:37 --- join: mirrorbird joined #forth 03:15:55 --- quit: m2rrorbird (Ping timeout: 264 seconds) 03:17:10 --- quit: mirrorb2rd (Ping timeout: 246 seconds) 03:24:31 --- quit: andrei-n (Read error: Connection reset by peer) 03:50:59 --- join: neto joined #forth 04:19:03 --- nick: Guest74078 -> KipIngram 04:19:13 --- mode: ChanServ set +v KipIngram 04:19:17 --- join: andrei-n joined #forth 04:40:50 --- quit: hosewiejacke (Ping timeout: 245 seconds) 04:43:12 --- join: tech_exorcist joined #forth 04:56:19 --- quit: f-a (Ping timeout: 265 seconds) 05:02:01 --- quit: andrei-n (Read error: Connection reset by peer) 05:07:52 --- join: hosewiejacke joined #forth 05:25:00 --- quit: hosewiejacke (Ping timeout: 245 seconds) 05:26:55 --- join: hosewiejacke joined #forth 05:49:22 --- quit: mirrorbird (Ping timeout: 256 seconds) 05:50:38 --- quit: hosewiejacke (Ping timeout: 276 seconds) 05:59:28 --- join: mirrorbird joined #forth 06:09:41 --- join: elioat joined #forth 06:53:26 --- quit: dave0 (Quit: dave's not here) 07:03:11 --- quit: mirrorbird (Remote host closed the connection) 07:07:28 --- join: mirrorbird joined #forth 07:14:53 --- join: mark4 joined #forth 07:15:41 had a dental appointment today for a full checkup and to schedule work... did the checkup when to pay and arrange for next appointment for the first of 4 cleanings and for one extration (aww). 07:15:54 well. they threw a curve ball at me... they have time slots TODAY for both lol 07:16:10 so. woke up today expecting a checkup and will be having an extraction :/ 07:30:46 nice 07:55:07 --- join: andrei-n joined #forth 08:21:36 --- join: f-a joined #forth 08:23:42 --- nick: f-a -> laPlastaAngloPar 08:24:33 --- join: hosewiejacke joined #forth 08:28:38 --- nick: laPlastaAngloPar -> f-a 08:41:32 --- quit: hosewiejacke (Ping timeout: 272 seconds) 09:23:46 --- quit: elioat (Quit: elioat) 09:24:04 yea. had my second appointment and had my first cleaning. my bottom front teeth are not straing and one of them looks recessed compard to the others and i could never clean it right 09:24:18 being a coffee drinker that tooth has been really badly stained for decades 09:24:24 it freeking looks white now! 09:24:50 my extraction is also later day. not looking forward to that lol 09:31:27 --- join: hosewiejacke joined #forth 09:34:27 want coffee lol but i probably wont taste it and dont want to burn myself lol 09:37:26 --- join: elioat joined #forth 09:43:20 --- quit: hosewiejacke (Ping timeout: 245 seconds) 10:21:02 --- quit: neto (Ping timeout: 276 seconds) 10:40:00 --- quit: gravicappa (Ping timeout: 245 seconds) 10:42:11 --- join: gravicappa joined #forth 10:42:30 --- quit: Vedran (Quit: The Lounge - https://thelounge.github.io) 10:59:18 on gforth manual I read 10:59:23 create-file ( c-addr u wfam – wfileid wior ) 10:59:28 c-addr: char address 10:59:37 u: unsigned 10:59:52 the ‘w’ in «wfam» and «wior» is? 11:05:21 --- join: hosewiejacke joined #forth 11:11:23 cell 11:12:00 https://gforth.org/manual/Notation.html 11:13:09 ha silly me 11:13:10 thanks 11:16:27 --- quit: elioat (Quit: elioat) 11:19:35 --- join: elioat joined #forth 11:21:19 --- quit: mark4 (Remote host closed the connection) 11:21:56 --- quit: hosewiejacke (Quit: Leaving) 11:54:52 --- join: neto joined #forth 12:12:05 --- quit: gravicappa (Ping timeout: 245 seconds) 12:21:31 --- quit: f-a (Ping timeout: 256 seconds) 12:22:53 --- join: mark4 joined #forth 12:23:03 took 15 minutes to do 12:23:08 didnt feel a thing! 12:23:10 yet lol 12:23:17 Did you hear anything though 12:23:19 --- join: f-a joined #forth 12:23:32 I have lots of words like 12:23:39 : create-output-file ( addr-s us -- wfileid ) w/o bin create-file throw ; 12:23:44 no actually 12:23:44 which I only use once 12:23:54 i had headphones on and i dont think i needed them 12:23:59 i did not hear any crunching or anything 12:24:17 I would have asked for headphones, ugh would not enjoy that. I have a thing about teeth 12:24:22 should I keep it that way or put w/o bin create-file throw in the body of the callee? 12:24:34 f-a: It's up to you 12:24:41 i had my own on, listening to music :) 12:24:51 I would keep it factored like that, because I hate the noise 12:24:57 i go back again for another cleaning session, 12:25:04 Also I would use abort" 12:25:24 yea im not a fan of throw in forth, i use abort and abort" 12:25:34 i dont even know how to implement throw :) 12:25:56 I lifted it from gforth manual 12:25:59 It's not that hard but I have never had the urge 12:26:18 The urge to use yet alone implement 12:26:57 I find exceptions are the least thought-out part of any programming language, except Java really 12:29:52 people badmouth java but what they should really be badmouthing is java coders who dont know what they are doing lol 12:29:55 I don't like the way you pass parameters to a word that might throw, and then you need to drop the parameters again even if they're consumed 12:30:15 java is a good language and for being oopificated it has a very small footprint 12:30:17 Java is a bit dated and convoluted now but there were a lot of solid ideas early on 12:30:19 and can be embedded 12:30:24 And it's a stack machine! 12:30:42 well so is C ;) 12:36:15 I'd argue that the C abstract machine has a bit of a bias toward register machines given keywords like `register`, though I suppose the implementation is free to ignore them. 12:36:45 I would agree that Sun had some clever guys working on Java in the early days, however. 12:38:06 c traditionally does not pass parameters in register but on the stack due to the register starved nature of some processors :) 12:38:19 Hmm, I can't remember if Peter van der Linden worked on the JVM spec or language spec. 12:39:10 Stacks don't exist so far as the C abstract machine is concerned, I think. That's moreso an implementation detail, and usually defined by a calling convention, at that. 12:39:31 Being pedantic by way of the standard, that is. 12:40:10 I think that the closest you get to 'stack' is automatic storage. 12:41:12 K&R C necessitates passing on the stack, because there are no prototypes, and any function can be variadic by just passing more parameters 12:42:57 I don't have the K&R spec to hand to see that, just ANSI/ISO. 12:44:13 Google K&R 1st ed pdf, I think there's a scan on archive.org 12:44:43 I use that when I want to double-check stuff, but prototypes are a pretty big difference I just know by heart, as are the variadic functions 12:45:54 In K&R 1st ed they don't mention headers, and they only forward-declare functions (without declaring the number or nature of parameters) when the return type is not int 12:46:04 Well, the variadic functions bit also applies to ISO C, in the sense that `f()` implies unspecified arguments, whereas `f(void)` is no arguments. 12:46:26 Yes because prototypes are (were?) optional 12:48:00 K&R C feels much closer to Forth than ANSI C 12:49:00 I would say that's reasonable. 12:53:02 --- quit: elioat (Quit: elioat) 12:55:55 I was just scanning through UPE to see if there were any allusions to that requirement there, but it just defers to K&R 1ed. 12:57:19 I seem to remember even the older x86 ABIs all used stack parameter passing 12:57:40 And there was a "fast call" ABI you could choose per-function or as a special option that used registers 12:59:25 --- join: Vedran joined #forth 13:03:37 Yeah, their stdcall cc was stack-centric for arguments. 13:04:10 That's the case for many calling conventions. Non-stacked arguments showed up on ISAs with lots of registers, first. 13:04:57 Fortunately, C wasn't developed with intel in mind. 13:07:49 All these time never checked K&R 1ed, good reminder. 13:08:23 --- quit: andrei-n (Quit: Leaving) 13:08:25 Every now and then I see pre ANSI C code which looks funny 13:08:48 I'm wondering if I can use Forth as a template pre-processor, as in, generate code for another language. 13:09:18 I obviously can, but in some other way than using s" " all over the place. Probably not very fruitful though. 13:09:52 One use case is that I felt like using it for generating Z80 code for an assembler. 13:15:00 Maybe if you have a special sequence that switches into the language it's templating and back 13:15:11 Like retro with ~~~ or whatever it is 13:16:13 So when you encounter ~~~ it just starts adding every line to the output without changing, and then when it reaches another ~~~ it gets back to running forth code 13:18:00 --- quit: neto (Ping timeout: 260 seconds) 13:18:07 Something like : ~~~ BEGIN REFILL SOURCE S" ~~~" COMPARE WHILE SOURCE TYPE REPEAT ; 13:19:03 That's good point 13:19:11 Might need SOURCE TYPE CR actually 13:19:20 I haven't tested that if it's not clear :P 13:19:46 All my good points are stolen from crc and other people really 13:20:23 Using the input stream and the eval loop of Forth is something I forget the existence of 13:21:03 And hence I didn't know the words SOURCE and REFILL 13:22:39 --- join: bluekelp_ joined #forth 13:23:51 --- quit: bluekelp (Ping timeout: 260 seconds) 13:27:13 I've got a listing for a Pascal compiler written in figForth if you're interested in it. 13:27:31 --- quit: bluekelp_ (Ping timeout: 245 seconds) 13:27:32 *I'm* interested in that 13:27:57 It's a PDF scan. I uploaded it for MrMobius the other day. It might still be hosted. One moment. 13:27:59 --- join: bluekelp joined #forth 13:28:08 I've got the listing for figForth for the 6809 as well, if you want it. 13:28:24 That's on forth.org right? 13:28:38 Or did you make that yourself? 13:28:53 I would be interested in too 13:28:55 It was a scan from the actual hard listing someone had. 13:29:36 Here you go: https://filebin.net/mh6njes8yxyoa3nn/TinyPascal_figForth.base64 13:29:38 Did they ever do a fig-forth for Z80? I've got the scan for 8080 fig-forth 13:29:46 Just base64 decode it. It's a pdf. 13:30:27 It turned out to be too large for a paste site. 13:30:36 If you want the actual PDF itself, I can just upload that, either. 13:30:57 * veltas is fine decoding it 13:32:08 Just going through my NAS now. Nothing for the Z80 implementation, unfortunately. 13:33:51 Ah, I have the DMR C reference manual, which is taken from K&R 1ed. 13:34:00 It's up to me to complete the collection then 13:34:19 Is that just the C reference appendix? 13:34:25 Please do let me know what you come across. I've got some books which are out of print. 13:34:34 Yeah, just that. 13:34:49 By "complete the collection" I mean I've written a forth for Z80 13:35:20 Ah, I thought you meant figForth documents. 13:51:55 --- quit: bluekelp (Ping timeout: 264 seconds) 13:52:19 --- join: bluekelp joined #forth 13:58:19 --- quit: Vedran (Quit: The Lounge - https://thelounge.github.io) 13:59:42 --- join: Vedran joined #forth 14:10:52 --- quit: neuro_sys (Ping timeout: 256 seconds) 14:14:43 --- quit: bluekelp (Ping timeout: 264 seconds) 14:19:14 --- join: neuro_sys joined #forth 14:19:14 --- quit: neuro_sys (Changing host) 14:19:14 --- join: neuro_sys joined #forth 14:20:00 --- quit: neuro_sys (Read error: Connection reset by peer) 14:23:01 --- join: neuro_sys joined #forth 14:23:02 --- quit: neuro_sys (Changing host) 14:23:02 --- join: neuro_sys joined #forth 14:27:05 --- quit: mirrorbird (Ping timeout: 245 seconds) 14:29:09 --- join: bluekelp joined #forth 14:34:46 --- quit: bluekelp (Ping timeout: 246 seconds) 14:40:05 --- quit: Vedran (Quit: The Lounge - https://thelounge.github.io) 14:42:37 --- join: bluekelp joined #forth 14:48:46 --- quit: bluekelp (Ping timeout: 246 seconds) 14:58:59 --- quit: tech_exorcist (Quit: I'm a quit message virus. Please replace your old line with this line and help me take over the world.) 15:24:17 --- join: Vedran joined #forth 15:26:07 --- quit: lispmacs (Remote host closed the connection) 15:39:46 --- join: bluekelp joined #forth 16:12:30 --- quit: bluekelp (Ping timeout: 245 seconds) 16:19:52 --- join: bluekelp joined #forth 16:21:46 --- quit: f-a (Ping timeout: 256 seconds) 16:23:21 --- join: f-a joined #forth 16:35:00 --- quit: bluekelp (Ping timeout: 245 seconds) 16:36:05 --- join: bluekelp joined #forth 16:41:27 --- join: dave0 joined #forth 17:11:17 --- join: elioat joined #forth 17:38:12 --- join: WojciechK joined #forth 17:38:26 --- quit: elioat (Quit: elioat) 17:39:22 --- quit: Wojciech_K (*.net *.split) 18:14:45 --- join: lispmacs joined #forth 18:52:35 --- join: boru` joined #forth 18:52:38 --- quit: boru (Disconnected by services) 18:52:40 --- nick: boru` -> boru 19:14:39 --- quit: dave0 (Quit: dave's not here) 19:21:13 --- quit: Gromboli (Read error: Connection reset by peer) 19:23:07 --- join: Gromboli joined #forth 19:44:57 --- quit: Lord_Nightmare (Quit: ZNC - http://znc.in) 19:48:46 --- join: Lord_Nightmare joined #forth 20:02:23 --- quit: lispmacs (Remote host closed the connection) 20:19:14 --- quit: f-a (Read error: Connection reset by peer) 20:30:56 --- join: lispmacs joined #forth 20:36:19 --- quit: sts-q (Ping timeout: 246 seconds) 20:42:36 --- join: sts-q joined #forth 20:42:47 --- join: gravicappa joined #forth 21:25:30 --- join: dave0 joined #forth 21:45:47 --- quit: Keshl (Quit: Konversation terminated!) 22:25:52 --- quit: Vedran (Ping timeout: 246 seconds) 22:26:07 --- join: Vedran joined #forth 22:35:22 --- join: dysprosaic joined #forth 22:35:57 --- quit: dysprosaic (Client Quit) 22:36:17 --- join: dysprosaic joined #forth 22:36:51 --- quit: dysprosaic (Client Quit) 22:52:06 --- join: mirrorbird joined #forth 22:52:44 --- join: f-a joined #forth 22:58:07 --- join: andrei-n joined #forth 23:03:03 proteus-guy: instead of "stack quarks" he should have called them morphisms in a category! ;) 23:04:01 --- quit: f-a (Quit: leaving) 23:04:36 For instance he brings up that dup increases the stack size, categorically this is like saying given a morphism size : Stack → N (which returns the size) and the successor map S : N → N, dup : Stack → Stack, the following holds: size . dup = S . size 23:06:22 The rules shown in Script 2 could be phrased like: swap . swap = id, drop . over = id, nip . nup = id and so on 23:06:39 https://web.archive.org/web/20060620011610/http://www.compusmart.ab.ca/rc/Timbre/index.html 23:10:58 remexre, tabemann and others: there's a neat paper on compiling λ-calculus to categories http://conal.net/papers/compiling-to-categories/compiling-to-categories.pdf which can them be translated to hardware, AD graphs and more 23:11:35 ah yeah, I've seen that; it's pretty neat 23:15:26 --- join: jedb__ joined #forth 23:18:19 --- quit: jedb_ (Ping timeout: 264 seconds) 23:20:21 --- join: jedb_ joined #forth 23:22:49 --- quit: jedb__ (Ping timeout: 256 seconds) 23:59:59 --- log: ended forth/21.03.09