00:00:00 --- log: started forth/21.05.31 00:04:19 --- join: Zarutian_HTC joined #forth 00:07:23 --- quit: proteus-guy (Ping timeout: 248 seconds) 00:19:11 --- quit: Vedran (Read error: Connection reset by peer) 00:19:28 --- join: Vedran joined #forth 00:19:38 --- join: proteus-guy joined #forth 00:24:25 --- quit: Glider_IRC__ (Remote host closed the connection) 00:25:03 --- join: Glider_IRC__ joined #forth 00:44:42 --- join: Glider_IRC_ joined #forth 00:48:11 --- quit: Glider_IRC__ (Ping timeout: 272 seconds) 00:53:11 --- quit: proteus-guy (Quit: Leaving) 00:53:35 --- join: proteus-guy joined #forth 04:07:20 --- join: pointfree joined #forth 04:56:14 --- quit: Zarutian_HTC (Ping timeout: 252 seconds) 05:44:28 --- join: Zarutian_HTC joined #forth 06:11:40 -!- hosewiejacke(~hwj@i5C740E35.versanet.de) has left ##forth 06:16:13 --- quit: pointfree (Quit: Connection closed for inactivity) 06:38:55 Well, you're right of course, proteus-guy. I just meant that if we REGARDED the channel names as having become important, then they became important ON freenode and BECAUSE of freenode. I was referring to some strange world where we tried to decide based on fairness. Of course we live in a "legal" world where "he who got there first" wins. 06:39:57 I work for a corporation. If I invent something way cool on the job, or if over a period of years I do work that becomes significant in the world in some way, my corporate employer owns that. 06:40:10 I can't "take it with me" to a new employer, or to a shop of my own. 06:41:50 --- quit: Zarutian_HTC (Remote host closed the connection) 06:41:53 Morning, folks. Slept on a brand new mattress last night - it was fine and good. 07:25:41 --- join: Joanna joined #forth 07:27:21 proteusguy: I wanted to ask you something 07:27:28 In pm 07:44:24 --- quit: Glider_IRC_ (Remote host closed the connection) 07:45:02 --- join: Glider_IRC_ joined #forth 08:54:25 --- quit: sts-q (Quit: ) 09:43:16 --- quit: Joanna (Quit: Connection closed for inactivity) 10:27:35 --- quit: rpcope (*.net *.split) 10:27:37 --- quit: cbridge-freenode (*.net *.split) 10:27:37 --- quit: simpl_e (*.net *.split) 10:27:37 --- quit: gravicappa (*.net *.split) 10:27:37 --- quit: Kumool (*.net *.split) 10:27:38 --- quit: pareidolia (*.net *.split) 10:27:38 --- quit: ornxka (*.net *.split) 10:27:39 --- quit: proteus-guy (*.net *.split) 10:27:39 --- quit: Glider_IRC_ (*.net *.split) 10:27:39 --- quit: Keshl__ (*.net *.split) 10:27:40 --- quit: Guest21384 (*.net *.split) 10:32:25 --- join: rpcope joined #forth 10:33:58 --- join: Glider_IRC_ joined #forth 10:33:58 --- join: proteus-guy joined #forth 10:33:58 --- join: ornxka joined #forth 10:33:58 --- join: cbridge-freenode joined #forth 10:33:58 --- join: Keshl__ joined #forth 10:33:58 --- join: simpl_e joined #forth 10:33:58 --- join: gravicappa joined #forth 10:33:58 --- join: Kumool joined #forth 10:33:58 --- join: Guest21384 joined #forth 10:33:58 --- join: pareidolia joined #forth 10:51:56 --- join: xek joined #forth 11:04:26 --- mode: ChanServ set +o mark4 11:22:58 --- quit: xek (Ping timeout: 268 seconds) 11:23:50 --- join: wineroots joined #forth 12:30:14 --- join: xek joined #forth 12:44:38 --- join: Glider_IRC__ joined #forth 12:47:46 --- quit: Glider_IRC_ (Ping timeout: 252 seconds) 12:49:20 KipIngram: if you get an interesting idea, why would you start the invention part on company time? 12:50:21 maybe it is relevant to solving a company problem 12:51:26 if it's worth more than they pay it gets stashed and worked on during free time, surely 12:52:43 though i agree, i have become so dusallusioned with my own company that i now have two programming styles: one is clean and minimalist and uses clever or elegant solutions, and this is what i use on my own free time projects 12:53:18 the other style is basically close to what you see students produce, and this is what i use at work 12:54:09 it "fits in" with other code at work better, and i'm done trying to teach these buttheads that programming doesn't have to be this hard 12:55:12 (imagine c functions thousanda of lines long of nested if-else-if-else-if-else...) 12:57:15 --- quit: cbridge-freenode (Remote host closed the connection) 12:57:26 --- join: cbridge-freenode joined #forth 13:06:59 cmtptr, code it the way your heart says is right even if it does not fit in :P 13:07:48 --- quit: xek (Ping timeout: 268 seconds) 13:27:48 I can't bring myself to work on code with functions that are thousands of lines long 13:27:54 cess11: Well, it would depend on the nature of the idea - if it "arose naturally out of my work," then I do think the employer would be entitled to it. They pay me extremely well. On the other hand, if it was a fully independent idea, then yes, I'd pursue it on my own time. But that wasn't really the point. 13:31:50 i disagree. if i come up with something and i think it has more value than i'm getting payed for i save it for later regardless if i learned the prerequisites on the job or not 13:41:59 ACTION shrugs 13:42:21 We just have different ways of looking at things, I guess. 13:42:41 Part of what my employer is paying me for is my crerativity. 13:44:02 But like I said, that wasn't in any way the reason I brought it up. I was trying to find a way to say that I don't think any of the people managing any of our channels "own" the c hannel names. 13:44:50 Trying to claim exclusive right to use a name like #c or #scheme is a bit like trying to lay claim to the department name "Human Resources" or something like that. 13:45:55 right, i get payed to deliver product that keeps customers happy, if i do it through creativity, previous experience or asking someone who knows better isn't considered when my pay is settled 13:46:32 just seemed weirdly loyal to me, as long as you're happy i'm happy 13:46:46 yeah, i agree, that's weird 13:47:41 it's easy to just adjust a name a bit to show that the community is about a theme, like c, and then something that gives it more precision and that's likely a free channel to use until the next meltdown or migration 13:49:40 --- quit: cbridge-freenode (Remote host closed the connection) 13:49:54 --- join: cbridge-freenode joined #forth 14:27:23 --- join: Joanna joined #forth 15:03:28 --- quit: wineroots (Remote host closed the connection) 15:05:00 I just have no problem at all having a # on multiple servers, and hopefully both such channels will operate in a way that contributes to parties interested in communicating with one another. It's not a competition. 15:05:39 We don't need to have people holding such channels on a server with the intent of driving the traffic to the other server. 15:06:43 This isn't (or shouldn't be) about causing grief for someone viewed as some sort of villain - it SHOULD BE about providing a wholesome and positive experience to the community of users. 15:07:58 --- part: Joanna left #forth 15:13:28 maw 15:13:44 hi dave0 15:16:33 maw crc 15:35:41 maw, dave0 15:40:31 maw KipIngram 15:45:54 --- quit: dsmcfarl (Ping timeout: 265 seconds) 15:46:19 --- quit: ovf (Ping timeout: 250 seconds) 15:47:33 --- join: dsmcfarl joined #forth 15:53:21 --- join: ovf joined #forth 16:27:51 --- join: crab joined #forth 16:28:13 mark4, i'm a big believer of "when in rome, do as the romans do." and also at my workplace, code of my invention has a tendency to get thrown out in favor of something "less complex" (which is actually code for "written for the lowest common denominator, in two or three times the number of lines, and doesn't always work") 16:29:34 it's a weird thing that i've noticed 16:30:32 for some reason, code that is smaller but maybe takes a minute or two to read and understand fully is easier to work with than code that takes up several screens but is more straight-forward (e.g. that nested "if-else-if-else-if-else" style), but it seems like most people, at least where i work, feel the opposite 16:30:55 s/easier/easier to me / 16:31:36 with their style, i usually find that there are more test vectors and failure paths to cover, and i let more corner cases slip through the cracks 16:33:40 --- quit: cbridge-freenode (Remote host closed the connection) 16:33:46 --- quit: crab (Ping timeout: 268 seconds) 16:33:52 --- join: cbridge-freenode joined #forth 16:39:01 I fully agree with that, cmtptr. 16:39:05 i usually try to keep my functions extremely small. even if it makes them slightly more complicated 16:39:22 simply because they ARE easier to read simply for having more context visible at once 16:39:44 a function that is large is always harder to follow because you do not see the full context 16:44:46 Right. 16:50:01 I generally try to ensure a function isn't more than a screen [ 16:50:05 long 16:50:14 one screen in height is a good rule of tumb 16:50:26 i call these "hard fast rules of thumb" :) 16:50:46 What size screen? 1kB? 16:50:58 80x24??? :) 16:51:12 depends 16:51:12 Oh - ok. Not a Forth "screen." 16:51:21 I get it. 16:51:28 usually my terminals are 100x30 but i just sete sublime_text to a width/height that seems pleasing 16:51:42 and does not take up the entire desktop realestate 16:51:50 for C, Python, 80x24 - 80x30 16:51:54 I'm the same - more or less. I have 4kB blocks - 64 lines of 64 chars each, and at the level of zoom my eyes like these days that just almost exactly fills the screen top to bottom. 16:52:07 It's between 1/3 and 1/2 the screen wide - I cam comfortably put two of them side by side. 16:52:24 And I've found "one block" to be a good size for accomplishing a lot of useful things. 16:52:37 That's dozens of words, though. 16:52:47 Most of which wind up being "wiped" - they're just helpers. 16:53:11 For Forth, I don't use blocks most of the time (only really when running on bare metal) 16:54:42 I try to ensure a word and any internal factors fit into an 72x24 screen 16:56:39 I configure my terminal windows to 80x25 most of the time, this gives room for line numbers and input. (I'm largely using a simple line oriented editor now) 16:58:39 --- quit: cbridge-freenode (Remote host closed the connection) 16:58:52 --- join: cbridge-freenode joined #forth 17:10:40 Yes, I have an 80x25 panel in the top left of my console screen and use it for IRC. Mostly for "sentimental" reasons. 17:11:28 I use the 64-line high full height section on the right (which is a little over half the width of the screen - it's what's left when I take the 80 chars away). My block editor presents there. 17:12:26 Going forward I want more room, though, because I'm going to have these separately stored comments - I'll need room to present linked comments in a separate window. 17:13:03 And given it's going to support multiple levels (i.e., it's going to be a wiki, more or less) I may want several panels. 17:13:34 I'm kind of excited about it - haven't tried it yet, but it just feels like it's going to be a pleasant way of working. 17:14:03 Long as I can make the editor support it all smoothly enough. 17:16:03 --- quit: cbridge-freenode (Remote host closed the connection) 17:16:15 --- join: cbridge-freenode joined #forth 17:18:00 I've been going the other way on my editor; I'm using something brutally simple now, and am looking for ways to further simplify it 17:23:50 I do like simple. 17:27:03 I have taken steps to keep the editor simple. It doesn't wrap at the end of lines. It's actually like having 64 line editors stacked on top of one another. If I insert text in the middle of a line it will do that until insertin more would push a non-space character out the right end. 17:27:36 I can delete lines and re-insert them elsewhere, but each line is managed separately. 17:28:54 --- quit: Glider_IRC__ (Remote host closed the connection) 17:32:01 --- join: Glider_IRC__ joined #forth 18:45:15 --- join: wineroots joined #forth 18:55:45 --- join: proteanthread joined #forth 18:55:45 --- join: rtdos joined #forth 19:00:18 --- part: proteanthread left #forth 19:00:18 --- part: rtdos left #forth 19:14:45 crc, a suggestion: does cbridge need the network included in its nick? 19:15:26 not a big deal, it just makes it kind of long, and i know it's coming to me vua freenode 19:15:33 via 19:41:24 cmtptr: no; I'll remove that tomorrow 19:57:48 --- quit: cbridge-freenode (Remote host closed the connection) 19:58:01 --- join: cbridge joined #forth 19:58:24 --- nick: cbridge -> Guest71581 19:59:48 --- quit: Guest71581 (Remote host closed the connection) 20:06:26 --- join: cbridge_ joined #forth 20:08:08 not sure why, but it's not working with cbridge, so it's cbridge_ on the freenode side until I can determine why. 20:17:25 --- quit: wineroots (Remote host closed the connection) 20:33:41 --- join: crab joined #forth 20:34:08 Howdy fellow stack jockeys 20:37:31 Hi crab 20:44:22 you wrote Retro, yes? 20:44:44 Yes 20:46:25 I always want to write my own forth, but never get anywhere 20:50:18 I admire your Unu and how effortless 'export-as-html' and such are 20:50:51 although Retro itself is a struggle for my meager brain 20:54:24 --- quit: Glider_IRC__ (Remote host closed the connection) 20:55:01 --- join: Glider_IRC__ joined #forth 21:00:48 thank you. I should note that I when I started with Retro, I had a mostly working system (quite different to Retro today) to start with. 21:00:54 It took me 6-7 years before I was actually able to write a new implementation from the ground up. 21:01:25 --- quit: Glider_IRC__ (Remote host closed the connection) 21:01:31 And much longer than that before I was comfortable enough to switch to using as my primary language 21:02:01 --- join: Glider_IRC__ joined #forth 21:04:10 yeah it's a long road ahead starting out 21:04:21 I'd like to have something similar eventually 21:05:10 DIY appears to be the only way to get something that resonates with oneself 21:13:04 I agree with that. I encourage use of existing Forths for learning the essentials, but you'll eventually want something that maps to the way you approach things 21:15:27 KipIngram, we are definitely of the same mind regarding channel "ownership" I think. 21:16:36 cess11 it's sad that you think loyalty to be weird. By far one of the most valued attribute a person can ever have. 21:17:25 who is proteus-guy replying to 21:18:25 KipIngram and cess11 from earlier today (around 16:45 iirc) 21:20:51 crab, your experience isn't very different than a lot... don't worry. It's a running gag that 99.9% of forth code is just to build our own forth. It hurts cause it's true. 21:21:30 I feel like there's probably a lot of forth code that's never published 21:21:38 crc: ok, it seemed like a one sided conversation so I was confused 21:22:16 crc, yes - the vast amount of "production" code is proprietary. That's the nature of embedded systems. 21:22:21 unless matrix is having issues also 21:22:28 I know that I have written a lot that's owned by my employer and clients, and I don't publish a lot of my personal environment 21:22:50 siraben - don't you know there's always a glitch in the matrix? ;-) 21:23:57 proteus-guy: déjà vu 21:24:00 siraben: matrix bridge has been working w/retro's channel as far as I can see; haven't joined this with it 21:24:19 crc, I think your bridge seems quite stable so far. 21:39:38 don't know how to explain the difference between weirdly loyal, i.e. being loyal to a fictional person like a corporation, and calling loyalty weird, which i didn't do 21:43:48 cessll you seem to dislike the concept of a company and have a vastly different perspective of the concept than I do. It's a means for a group of people to collaborate towards a shared goal with an economic outcome. Like anything else it can be good or bad. But loyalty to a good company is loyalty to your team/family who shares that goal. That's a really wonderful thing. 21:46:15 if you think fictions are more important than people and that this attitude is a wonderful thing we'll probably have trouble finding common ground, yes 21:52:38 you don't believe in loyalty to groups of people? 21:54:19 cessll you're hung up on a technical definition so you can condemn an entire concept central to the economic mechanics of the planet so you can make a paper tiger argument against a claim I've never made.... not a method I recommend for discovering "common ground". ;-) 21:55:05 I gave you a useful definition of a company and that's the context that I and others (presumably KipIngram) share. QED - common ground. 22:03:54 I'm reading https://color-forth.github.io/POL.htm which I was unaware of until now 22:04:00 a good document I think 22:04:36 I'm getting reasons for things I hadn't known the logic behind before, straight from the horse-mouth 22:04:39 strange that link doesn't work for me. Gets me a 404. 22:04:45 hummm 22:04:59 oops 22:05:05 I put a dash in colorforth 22:05:22 https://colorforth.github.io/POL.htm 22:05:45 Oh! This "book" Programming a Problem-Oriented Language. Yes - define's Chuck's perspective of forth since its beginnings. 22:06:11 yes, that 22:07:57 a concept is a fantasy isolated and communicated through the use of language 22:08:55 the corporation is a very young type of fiction, humanity had relations and groups long before it was invented 22:09:37 yep and we didn't have paper, or reading, or writing, or the aqueduct - but we got better. ;-) 22:11:03 And you're abusing the term "fiction" as you've misapplied it against the context of its legal definition. So just further demonstrates your misunderstanding of the term. I gave you a better one. Why don't you adopt it, instead? 22:11:38 Anyway - I'm way off topic... gotta run for now. 22:13:14 One thing I've never understood about forths is why do we check whether something is a number in our main loop? Why "read a word, if it's in dictionary do this, if not check if its a number" instead of just leaving anything that isn't in the dictionary on the stack and assuming it to be some kind of data 22:13:26 I can't seem to find answers about that anywhere 22:15:51 1. The input buffer may be a transient area, where future input will overwrite 22:16:15 2. It's more convenient than having to call >number or similar every time 22:18:02 I don't technically check for numbers; but do check for sigils, and pass the input to the corresponding sigil handler if it has one. In mine, this occurs prior to the dictionary lookup, and if both fail, err:notfound is called. 22:20:02 --- quit: cbridge_ (Remote host closed the connection) 22:20:13 --- join: cbridge_ joined #forth 22:20:45 crab, it's a matter of space efficiency I suspect. Binary numbers are more efficiently stored (and are natural to the stack cell) than a text representation. Forth, notoriously, has almost zero syntax and this is its one exception. 22:21:32 it just seems like a lot of overhead to me to be checking if something is a number whenever it's not recognized especially after looking at all the different considerations for what should be considered a number 22:21:36 As it turns out, in my initial ActorForth implementation everything from the REPL first becomes an Atom on the stack and then you have to put in a word (like a constructor) to change it to any other type. 22:22:10 that makes sense though I suppose 22:22:45 crab, the overhead is only on the outer interpreter (so doesn't exist during compiled code execution) and that performance isn't key especially when compared to the cost of looking up the word in the dictionary which is a worse case performance as the number won't exist so it has to exhaust the entire linked list. 22:23:07 So it's actually both a space and time improvement. 22:23:17 fair enough 22:23:26 thanks for the explanations both of ya 22:23:55 factor can have 'anything' on the stack, might want to check it out 22:23:56 I keep going back & forth between keeping the Atom syntax vs interpreting numbers. In practical use, the Atom syntax requires a lot more code as well. 22:24:49 I skip validation; if you start the token with a # sigil, the sigil handler just assumes that you know what you're doing and does the conversion / compilation as necessary. No actual check on the number needs to be performed at the interpreter loop. 22:25:43 crc so #42 means a numeric 42 but #seven is gonna have undefined behavior? 22:26:20 proteus-guy: yes, unless using a Base with a sufficient symbol set 22:26:51 What happens to just typing 42? It performs a "safe" conversion? 22:27:48 42 isn't in the dictionary and '4' isn't a sigil, so it'll fail to be identified 22:28:04 So ALL literal number MUST start with #? 22:28:16 Yes 22:28:21 It's like ASM. :-) 22:28:45 It's similar to a color forth, but with sigils replacing the color 22:29:05 Yes :) 22:29:15 crab, so there's another option if you like. :-) Can pre-itentify numerics with a sigil or make everything an "Atom" on the stack first then convert it explicitly. 22:30:47 so many choices to be made 22:31:02 (My ultimate solution for ActorForth is that you can replace the interpreter quite easily and get whichever behavior you want. It's kinda like a meta compiler. Of course source code isn't compatible between the two.) 22:32:14 crab, that's why the Forthwrights are spending all their time & energy building their own forths.... so many options. It's also what makes it a language that tends not to scale in terms of team size and, I think, the biggest inhibitor to its ultimate adoption. 22:34:12 it's worth the noble pursuit of writing good software 22:35:28 that's the problem... it's quite fun. ;-) so easy to get distracted. 22:37:32 --- quit: cbridge_ (Remote host closed the connection) 22:37:42 --- join: cbridge_ joined #forth 22:47:57 Heading to bed; good night everyone 22:48:59 ciao 22:50:50 --- join: wineroots joined #forth 22:55:24 crc goodnight! 22:56:04 the choices are compounding 22:56:27 looking at choices related to dictionary organization and search now 22:56:51 crab, start simply and get something working. then iterate over what you think is interesting. 22:57:59 hard to even decide what option is simplest 23:05:54 Go with Chuck! ;-) Start the "standard" way and then see if you have ideas on how to improve it. If not, move on to the next thing. 23:06:15 wow, got just replicated a from-source bootstrap of gcc 4.0.4, amazing work 23:06:16 And by standard I do not in any way refer to the "ANSI FORTH". 23:06:37 for those curious: it's possible to bootstrap gcc from a less than 1 KB seed: https://github.com/fosslinux/live-bootstrap 23:06:57 albeit and older version (it's the last version before C++ was added which complicated bootstrap) 23:07:02 s/and/an 23:07:05 siraben - going old school I see. ;-) 23:07:42 heh, it's actually rather recent that all the bootstrapping parts by the bootstrappable project people came together 23:08:02 it goes through GNU MES (scheme) even 23:08:48 siraben - then I'm thinking of something else. When I used to build gcc you started with a really small C compiler which builds the base gcc and then that compiler builds all of gcc then that compiler builds all gcc again and compares that the last two are identical. 23:09:10 what was the really small C compiler? 23:09:19 because even that has to be bootstrapped somehow 23:09:50 It was part of gcc. And yeah - that was at some point created in assembly. 23:10:04 for reference here's the new bootstrap that's possible now https://raw.githubusercontent.com/oriansj/talk-notes/master/Current%20bootstrap%20map.pdf 23:10:10 One of the things clang improved on making it easier to move to new CPU environments. 23:10:13 yeah, over the years various parts of the bootstrap had been lost 23:10:25 this is if you wanted to do it without trusting any binaries whatsoever 23:10:43 (except the less than 1 KB seed which can be input into a hex monitor) 23:10:46 yep - prior to say 2003 we always built our own gcc, kernel, and postgres. 23:11:00 with a from-assembly compiler? 23:11:03 ooh, nice 23:11:27 was for optimizations as much as security. 23:11:43 surprisingly they implemented a Forth as well but it's unused in the bootstrap here 23:12:23 the Chuck way is probably the best start yeah 23:15:15 most difficult part for me to accept is that it is not uniform in that some words read forwards instead of from the stack 23:15:21 but who wants to write CALL all the time 23:15:53 sort of like lisp's "special forms" 23:15:58 crab, yeah that sometimes gets to me as well. 23:18:07 --- quit: wineroots (Remote host closed the connection) 23:24:03 I almost wonder how much of an inconvenience it would be if CALL looks more innocuous, perhaps a comma 23:25:26 still probably it's too much 23:27:10 crab: CALL? 23:27:19 (not standard word so I'm wondering what it is) 23:30:29 --- join: wineroots joined #forth 23:33:14 like an assembly language call instruction 23:34:16 enter the subroutine at specified pointer 23:36:16 also called BL (Branch and Link) on some architectures 23:42:09 problem I have is that DEFINE have to read forward in order to deal with the fact that words are called automatically. if words just left pointers on the stack we could have postfix DEFINE but we'd have to explicitly CALL everything 23:45:17 but postfix DEFINE would also require the length of the entry as an argument 23:45:25 so it has its inconveniences as well 23:47:47 crab, again for ActorForth if something isn't a number or discovered name, it becomes an Atom. My word definition syntax is " :" ... "." It's quite non-standard but I like it. 23:48:30 So the colon comes after the Atom and the whole definition is terminated by a "." 23:49:21 crab, you probably need to make the decision now as to whether you care if your forth can ever run other people's forth code. ActorForth cannot (unless you build a "normal" forth compiler with it) natively. 23:50:43 I certainly don't care to be compatible 23:51:47 (popping back in for a moment; I recommend not worrying about compatibility with other people's code. Build the language and environment you want; you'll be happier in the long run) 23:54:45 crab, I think that's the best and most fun option as well. 23:56:50 exploration is the point for me at this time, no reason to impose constraints like compatibility 23:59:59 --- log: ended forth/21.05.31