00:00:00 --- log: started forth/19.04.01 00:08:16 --- join: cp-- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 00:12:14 --- quit: cp-- (Client Quit) 00:18:35 --- join: cp-- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 00:20:52 --- quit: cp-- (Client Quit) 00:56:39 --- quit: dys (Ping timeout: 245 seconds) 01:01:52 --- join: cp-- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 01:08:02 --- quit: cp-- (Quit: Disappeared in a puff of smoke) 01:13:03 --- join: rdrop-exit (~markwilli@112.201.169.15) joined #forth 01:23:50 --- join: cp-- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 01:41:07 --- quit: jackdaniel (Remote host closed the connection) 01:46:10 --- join: jackdaniel (~jackdanie@hellsgate.pl) joined #forth 02:02:40 --- quit: ashirase (Ping timeout: 246 seconds) 02:06:59 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:08:38 [facepalm] Oh today is the UNIX Day even though every day is. 02:11:01 --- join: xek (~xek@public-gprs354015.centertel.pl) joined #forth 02:26:47 --- quit: chunkypuffs (Remote host closed the connection) 02:27:25 --- join: chunkypuffs (~chunkypuf@2a01:4f9:2b:16d5::1) joined #forth 02:29:45 --- quit: cp-- (Quit: Disappeared in a puff of smoke) 02:33:48 --- join: cp-- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 02:38:29 --- quit: cp-- (Client Quit) 06:03:09 --- join: dddddd_ (~dddddd@unaffiliated/dddddd) joined #forth 06:07:23 --- nick: dddddd_ -> dddddd 07:30:02 --- quit: tabemann (Ping timeout: 246 seconds) 07:41:15 --- quit: dave9 (Ping timeout: 245 seconds) 08:27:26 --- quit: cheater (Ping timeout: 246 seconds) 09:21:28 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 09:38:59 --- join: dave9 (~dave@223.072.dsl.syd.iprimus.net.au) joined #forth 11:55:37 --- quit: gravicappa (Ping timeout: 250 seconds) 12:06:26 --- join: dys (~dys@tmo-123-47.customers.d1-online.com) joined #forth 12:08:58 --- quit: irsol (Ping timeout: 244 seconds) 12:10:38 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 12:46:52 --- quit: dys (Ping timeout: 250 seconds) 13:21:49 --- quit: irsol (Ping timeout: 268 seconds) 13:22:36 --- quit: xek (Read error: Connection reset by peer) 13:28:40 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 14:19:26 --- quit: irsol (Remote host closed the connection) 14:19:54 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 14:24:41 --- quit: irsol (Ping timeout: 255 seconds) 14:26:19 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 14:41:46 what is it with not-forths and renaming : to `define` 14:43:30 I imagine it must be the same reason we aren't all coding in apl/J/K, deep down everyone likes verbosity 14:44:42 speak for yourself 14:44:56 I switched to a modal editor to save keystrokes 14:45:56 I dislike verbosity for simple/basic things, like defining a function/variable 14:47:30 It would be nice to have an unsymbolic programming language that is verbose but compressed 14:47:55 kind of how I feel about Forths 15:15:32 --- quit: cheater (Ping timeout: 255 seconds) 15:23:01 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 16:08:11 --- quit: cheater (Ping timeout: 255 seconds) 16:36:48 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 16:43:29 --- quit: john_cephalopoda (Ping timeout: 258 seconds) 16:45:20 --- quit: cantstanya (Ping timeout: 256 seconds) 16:48:57 --- join: cantstanya (~chatting@gateway/tor-sasl/cantstanya) joined #forth 16:56:34 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 16:58:26 --- quit: presiden (Ping timeout: 258 seconds) 17:00:20 --- join: presiden (fwiw@unaffiliated/matematikaadit) joined #forth 17:12:45 --- quit: cantstanya (Remote host closed the connection) 17:18:37 --- join: cantstanya (~chatting@gateway/tor-sasl/cantstanya) joined #forth 17:30:07 --- join: tabemann (~tabemann@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 17:39:47 I don't see it above but https://nanovms.com/dev/tutorials/running-forth-unikernels made hackernews 17:40:12 so if you want to put gforth in AWS for some reason... :) 18:07:54 --- quit: tabemann (Ping timeout: 245 seconds) 18:45:48 Greetings Forthlings 18:47:41 greetings rdrop-exit 18:48:35 Hi crc 19:06:38 On a lark I came up with some forthy words while having my coffee. 19:07:01 : forthwith ( -- ) last @ >code execute ; compiled 19:07:17 : henceforth ( lxa -- ) dup usage definitions ; 19:07:27 : forthcoming ( -- ) lexicon forthwith henceforth ; 19:12:28 henceforth sets both CONTEXT and CURRENT 19:13:54 forthcoming creates a new vocabulary and makes the newly created vocabulary both CONTEXT and CURRENT 19:17:09 forthwith executes the last definition 19:17:38 right away 19:22:05 bbiab 19:28:01 back 19:29:02 Anyway that was fun 19:31:52 I guess I would also want a word that sets a vocabulary as the only context and makes it current as well: 19:32:03 : solely ( lxa -- ) dup only definitions ; 19:34:58 So that FORTH SOLELY would be equivalent to the Forth 83 19:35:16 ONLY FORTH DEFINITIONS 19:37:05 or was that ONLY FORTH ALSO DEFINITIONS 19:37:56 Yes that was it 19:38:20 Solely seems like a synoonym for only to me, and doesn't really IMPLY it's going to change current. 19:38:30 But long as one knows... 19:38:51 When I first wrote it I had my ONLY setting current too, but I took that out over the weekend. 19:39:03 Realized it really closed some doors. 19:39:26 I agree, I'll try to come up with a better name than SOLELY 19:39:41 Need more coffee, brb 19:39:48 If I think of anything I'll let you know. 19:40:18 "only forth also definitions" - it's hard to beat those for simple and clear 19:41:28 Thanks KipIngram 19:41:51 --- quit: cp- (Quit: Disappeared in a puff of smoke) 19:42:48 That true PoppaVic, but I prefer vocabularies to be plain variables, my LEXICON word is just a synonym for VARIABLE 19:44:11 I never really liked that vocabularies were self-executing 19:44:12 I like nouns, verbs, adjectives - you know: the language ;-) 19:44:37 rdrop-exit: we could do worse - work with those goddamned wordlists. 19:44:43 So do I 19:46:54 As a general principle I prefer words that return addresses to words that are self-executing 19:47:11 I'm torn on that one, actually. I can see several reasons to prefer the "plain variable" approach. That particular application of does>, however, REALLY smooths the language. 19:47:20 --- join: tabemann (~tabemann@2600:1700:7990:24e0:e9cf:9aca:5cdd:e5ee) joined #forth 19:47:33 But when you find just the right words for these functions, you may wind up with something just as smooth, so - cool. 19:49:55 Right, I'm always on the lookout the right words 19:50:04 Why do we need "also" in "only forth also definitions"? 19:50:14 * KipIngram is weak on the *precise* aspects of the standard. 19:50:31 In my system it would be "forth only defs" 19:51:00 ALSO copies the current TOS voc to make two of them, (it's like DUP) 19:51:09 then, yer next VOC would replace it 19:51:17 forth would push forth to context; only takes the top context item and makes it the only context item, without touching CURRENT, and defs does the usual. 19:51:41 OH - like the ENTER key on an HP calculator. 19:52:09 On an HP Enter gives you two copies of the top element, but the topmost one will be overwritten if you immediately enter a number. 19:52:10 I never liked that aspect of the Ragsdale vocabularies 19:52:31 So Enter + will double you current number. 19:52:41 The whole duplication thing he uses never made sense to me. 19:52:48 Anything OTHER than an immediate digit entry will operate with both copies on the stack. 19:53:03 And yes, while I see exactly why they did it, it's always bugged me a bit. 19:53:23 I prefer FORTH ONLY to ONLY FORTH ALSO 19:53:42 I like it better too. 19:54:02 only forth also order cr Forth Forth Root Forth 19:54:02 ok 19:54:30 Anyway, that Enter key handling seemed like a concession to human expectations and psychology, and a step away from a rigorous architecture. 19:54:40 My current alternative to something like ONLY FORTH ALSO COMMON 19:54:52 are you sure it ain't "architecting"? ;-P 19:54:52 is FORTH ONLY COMMON USAGE 19:55:03 Heh. 19:57:07 Instead of VOCABULARY TEST ALSO TEST TEST DEFINITIONS 19:57:59 I can now do FORTHCOMING TEST 19:59:08 That's a little cleaner 19:59:09 I don't have your meanings well in mind yet, but that looks like it would just HAVE to be better. :-) 19:59:45 I thought mine through this weekend in the context of metacompilation, and convinced myself I had what I needed. 20:00:09 FORTHCOMING creates a new vocabulary, pushes it onto the context stack, and also makes it the CURRENT vocabulary 20:00:23 I did go with CURRENT being the first thing searched by default, but I can turn that on and off with LOCALS ON and LOCALS OFF 20:00:27 busy lil word 20:01:10 Ya, I was getting tired or repeating that pattern 20:03:57 That is EXACTLY the right reason to create a new word. 20:04:17 If the TEST vocabulary already exists, I can do TEST HENCEFORTH instead 20:05:33 which is equivalent to ALSO TEST TEST DEFINITIONS 20:05:42 in Forth 83 20:09:54 I think you're onto something. 20:11:17 KipIngram: I think your default of splicing CURRENT into the search order by default is putting too much smarts into the search order mechanism, better to have explicit words that setup what you need when you need it 20:13:43 Then it just becomes a naming problem, finding the elusive "right" name 20:13:50 I know, but I'm making a deliberate choice to go the other way. 20:13:58 One which I can always reverse later if I choose. 20:14:08 But right now it feels right to me (for me). 20:17:37 --- join: cp- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 20:18:59 Cool. It's just my personal bias to "smart" mechanisms showing through. 20:19:15 * against "smart" mechanisms 20:21:06 I just can't think of any language I know where I can bind a symbol to a meaning and then *immediately* use that symbol and not have it invoke the meaning I just bound to it. 20:21:12 That seems like an intuitive things to expect. 20:21:28 --- join: wa5qjh (~quassel@110.54.243.37) joined #forth 20:21:28 --- quit: wa5qjh (Changing host) 20:21:28 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 20:21:30 I JUST TOLD YOU WHAT IT MEANS!!!!! FIVE SECONDS AGO!!!!! 20:22:07 I do see that there are some corner situations where it's not what you want. 20:22:44 But I want to LAND in the middle of the room, and do work to get to the corners. 20:23:46 Now, the point I'll admit in favor of the other direction is that the MOST common situation is something like this: 20:23:53 vocabulary foo foo definitions 20:23:56 ... code ... 20:24:04 And that has foo on top of the context stack. 20:24:14 So that case is no problem to me. 20:24:52 So I may well be overestimating the number of cases where this will "cover me." 20:25:00 If so I'll fix it later. 20:25:38 Pretty much everything other than that is a corner. 20:27:05 You can have words that explicity configure things the way you need them, that's another layer from the core data structures and mechanisms 20:27:19 I decided that what I want for metacompilation is to have LOCALS OFF, have the target vocabulary on the context stack, and have a "tools" directory on TOP of that. 20:27:33 The tools voc containing primarily compiling words. 20:28:27 Because when I metacompile a : def, 20:28:35 : foo bar bam ; 20:28:53 I want foo to be created in the target, bar and bam to be found in the target, but I do NOT want to use the target copy of : and ; 20:28:58 So those will be present in tools. 20:31:51 And yes, I'd figured I'd have a word in tools 20:31:58 Are you speaking of meta-compilation or cross-compilation? 20:31:59 : setup image defs tools ; 20:32:10 Well, both, but initially meta. 20:32:30 Cross may be very different - I haven't given it deep thought yet. 20:34:00 But my next major goal is to divorce myself from nasm and make this thing something I can maintain using *it*. 20:34:11 Meta has some shortcuts 20:34:35 Ok. 20:35:05 But meta is also in many ways more confusing 20:36:27 I will drink to that - most of a bottle. 20:36:34 :) 20:38:10 brb 20:40:53 back 20:45:58 Meta is conceptually akin to bootstrapping 20:46:40 Using the previous version of something to produce the next (slightly modified) version of itself 20:47:49 Meta can only handle slight modifications without falling apart 20:48:42 Well, the biggest "convenience" I saw was that most of the time in meta you'd want your headers to look exactly the same. 20:48:46 So you can just compile them. 20:49:29 In my case (with everything relative to the base of my system) paying due attention to what you're using as the compilation base - it needs to be the base of the image, not the base of the running system. 20:49:43 --- quit: wa5qjh (Remote host closed the connection) 20:49:49 I made some small changes this weekend to facilitate that. 20:50:19 Just cleaned up how I was dealing with that base - it's in a register for "execution," but in a variable for compilation now. 20:50:33 Under normal conditions they're the same of course, but I can change the variable if I choose to. 20:51:25 Well, bed time. 20:51:29 You guys have a good night. 20:51:37 Nighty night KipIngram 20:54:02 --- quit: cp- (Quit: Disappeared in a puff of smoke) 20:54:05 I better walk the dogs, catch you all later. 20:54:14 --- quit: rdrop-exit (Quit: Lost terminal) 20:54:37 --- join: cp- (~cp@b157153.ppp.asahi-net.or.jp) joined #forth 20:57:09 --- join: gravicappa (~gravicapp@h109-187-213-103.dyn.bashtel.ru) joined #forth 20:57:23 --- join: rdrop-exit (~markwilli@112.201.169.15) joined #forth 20:58:24 Before I leave, I just realized my stack comment needs correction: 20:58:35 : forthwith ( -- ? ) last @ >code execute ; compiled 20:58:46 Ciao 20:58:56 --- quit: rdrop-exit (Client Quit) 21:17:00 --- quit: dddddd (Remote host closed the connection) 23:59:59 --- log: ended forth/19.04.01