00:00:00 --- log: started forth/21.06.03 00:43:44 --- join: Glider_IRC_ joined #forth 00:47:10 --- quit: Glider_IRC (Ping timeout: 258 seconds) 02:15:14 --- quit: matthewcroughan_ (Remote host closed the connection) 02:15:33 --- join: matthewcroughan joined #forth 03:00:19 Well, there's nothing wrong with anything for an informed programmer who understands what he's doing. But earlier tonight someone commented that a lot of people regard ROLL and PICK as words of similar cost. 03:01:10 It's the kind of thing I don't like about behavioral Verilog - there are some rather innocuous looking bits of Verilog that will just happily consume half your FPGA if you don't know what you're doing. 03:01:43 I can't quite remember what it was, but we used to use one of them as an interview question when filtering FPGA candidates. 03:03:43 I don't disagree with you, though - particularly re: PICK. My stack frame setup is really just a different way of doing what PICK does,s which is to treat the stack as an array. I used to share the... Forth religious attitude toward doing that, but I've come to believe that once in a while it's the right way to solve the problem. 04:11:52 The Forth religious attitude is bad, not every problem is simple and not all parameters can be nicely handled with the basic stack words 04:12:30 If you say otherwise you're misselling Forth and then they'll wonder what they're doing wrong or become disillusioned when they try to implement something more complicated 04:13:01 veltas the complexity of a problem is a constant. you cannot in any way reduce the complexity of any problem but you can reduce the complexity of the soluthon 04:13:38 the best solution to ANY given problem is always going to be the simplest solution to that problem but... that is itself a problem :) 04:14:23 we always settle for the best solution we can find. i find forth helps achieve a simpler solution than almost any other programming languages in almost any situation 04:14:58 but... that does not mean C or java or python or whatever dont have a place at all 04:17:02 --- quit: cbridge_ (Remote host closed the connection) 04:17:13 --- join: cbridge_ joined #forth 04:21:22 veltas: I've come to agree with that. Though I don't think the concepts are "bad" per se - I just regard them more as "guideline" these days than as absolutes. Sure - if you can find a nice clean "top two elements only" solution to your problem, that's nice. It's probably easy to understand and fairly efficient and so on. But as you said - problems come along that are just different and need more powerful 04:21:22 tools. The one that springs most readily to mind for me is my handling of QUERY and EXPECT. I wanted to have a command line history integrated into my system, like the one you find in bash. By the time you get all the bits of information you need to handle all of that in front of you... well, let's just say "it's not 2." 04:22:50 mark4: I absolutely agree with your comment as well (Forth supporting simpler solutions than other languages). Some people might argue in cases where their language of choice has a pre-existing widget for solving a particular problem, but that's a non-argument; just because the complexity is hidden from you doesn't mean it's not there. 04:24:15 To my recollection the QUERY/EXPECT thing contained at least six or seven different important data items, that you needed fairly "mixed together" access to. 04:24:32 SWAP and OVER just were not going to get me there in any sort of sane way. 04:25:36 There is another way, use lots of variables, but some Forthers frown on that and globals will limit your usage 04:26:06 It's how Leo Brodie does stuff and I think it works well on washing machines 04:26:16 And probably many simple programs 04:26:21 Or controllers 04:27:03 well C is a good solution to some problems too simply for having a huge mountain of proven solutions 04:27:28 c allows you to use canned solutions to help solve your problem and forth does not have that mountain of support 04:28:05 veltas, people have stupid allergic reactions to silly things like goto or GLOBAL variables 04:28:22 look at my c code it is chock full of global variables 04:28:34 but it is also always single threaded :) 04:28:49 I prefer to avoid using variables in most cases, mostly because they are slower to use on my system, but if it makes the overall logic cleaner, I'll happily use them 04:28:49 Well, sometimes globals are just the ticket. 04:29:06 If you have a set of hardware resources, for example, you probably want global variable access to them. 04:29:23 The hardware's not going to suddenly go away - you're not going to stop needing that access. 04:29:26 That says "global" to me. 04:29:40 ACTION likes the washing machine remark. :-) 04:30:23 mark4: It's funny that you say C has canned solutions because almost all the C I write for a living is stuff that's already been done a million times and I'm reimplementing it because I need it to work baremetal or for proprietary reasons 04:30:31 In the case of QUERY/EXPECT, I had half a dozen data items I needed to get at, WHEN I WAS RUNNING QUERY. 04:30:42 So for QUERY to establish a stack frame seemed like a good solution. 04:30:58 Yeah a global for hardware access is as good as anything else 04:31:46 Yeah, a lot of that mountain of C solutions has unhappy characters "GPL" attached to it. 04:32:18 I think the reason I favor Python for quick and dirty utilities these days is because it has extensive packages that make things.. well, quick and dirty. 04:32:32 Oh no we want to own our product code, it's not because of GPL 04:32:41 Most good open source embedded code is MIT 04:33:13 And the tools we use can be GPL if they have the right exemptions like GCC 04:33:23 Right. 04:35:24 Well, all hail tempered glass screen protectors. My phone squirted out of my hand last night while I was turning on my alarms for this morning. 04:35:45 Didn't notice anything then, but this morning I found a nice pretty crack all the way across the screen. In the protector. :-) 04:35:57 Popped that off and put my last spare on, and ordered another two-pack. 04:36:41 I try to keep at least one of those on hand for every phone in the family. SuperShieldz - they make good stuff. 04:40:46 gpl started the rollercoaster moving. but it is too restrictive 04:40:49 i chose mit 04:41:46 It depends on what your aims are 04:42:18 GPL wasn't meant to be enticing, it was meant to be ethical 04:48:55 i find it to be just as much of a restriction as closed source in some cases 04:48:57 yeah, but when I'm search for new libraries to use I reject GPL that is non LGPL, so when I do release, I release LGPL or MIT/BSD, because I feel others do the same. So I don't want to restrict who I'm able to share with. 04:49:12 i think gpl has one flaw. its viral nature 04:49:26 YOU cannot impose YOUR license on MY code just because i used some of your code 04:49:40 that is unethical imho 04:50:08 if part of my binary is derived from your sources anyone can come to me and demand i produce... YOUR SURCES lol 04:50:25 that would be ethical 05:00:33 ACTION thinks that 'copywright "licenses"' are as effective as Home Officer trumption demand 05:01:52 other than the viral nature, I don't like the idea of using a license that's larger than most of my source files 05:08:17 heh 05:08:36 specially when it is written in legalese which means you LITERALLY do not understand one single word. 05:08:55 most common words in legalease have exactly the opposite meaning to the one you think it means 05:26:56 --- quit: Zarutian_HTC1 (Read error: Connection reset by peer) 05:27:17 --- join: Zarutian_HTC joined #forth 05:38:53 --- quit: Zarutian_HTC (Ping timeout: 258 seconds) 05:46:45 @mark4 on the other hand, you cannot just use someone's code without their permission. 05:47:35 --- quit: cbridge_ (Remote host closed the connection) 05:47:46 --- join: cbridge_ joined #forth 05:47:58 ah, bridge is back again. 05:48:27 the way things are now, we do get permission to use code all the time, in the form of licenses. 05:48:56 and almost all of them condition that permission in some way, even the MIT/BSD licenses. 05:50:26 so I guess the argument is that you should be able to use anybody's code however you want, regardless of the conditions they put on your use of it? 05:50:46 mark4: Personally, I don't find GPL restrictive. Sure, it requires that whenever I share software, I share it alongside its source (if distinct from 'software' proper); but that's exactly what I'm going to do when sharing software under any other free license, BSD, MIT, CC0, any of them. Which makes the point quite moot. 05:50:54 there are folks who want to abolish copyright entirely but I just want to be sure that that's the argument here. 05:53:36 crc, yeah, license size is one of the reasons why I choose BSD/MIT over Apache or something. 05:53:38 it seems particularly relevant to Forth since Forth is so old, and has so much legacy code that has always been under non-free licenses. 05:56:11 License complexity is a valid argument IMO, though. When what I publish is around hundreds LoC, I generally use CC0, or a variant of BSD, or FSF's permissive license. 05:56:15 @iv4nshm4k0v the trick is that you can get stuff under the less-reciprocal licenses like BSD, MIT etc in binary-only form, so you can't pay the source forward in those cases, or even know which parts you got under those licenses and which parts of it aren't 05:57:14 and if it's all your code to begin with you can do whatever you want in terms of passing it along, including giving it to some people under totally non-free terms, even if you gave it to someone else under GPL or BSD/MIT 05:57:32 iv4nshm4k0v, you don't find GPL restrictive on yourself because you intend to share your code, anyway, but it is restrictive on your users 05:57:52 --- quit: Bogen85 (Quit: Leaving) 05:57:54 yup 05:58:46 --- join: crab1 joined #forth 06:01:15 cmtptr: Well, those who find GPL restrictive are of course welcome to /not/ distribute (or even use) my code at all. I understand that my code won't be perfect fit to some, or actually most, people on Earth. Life's tough. 06:05:47 dzho: I reckon that US courts consistently rejected the notion of 'moral rights,' so I guess that may be the case. In the jurisdictions where such notion exists, I'd argue that the one who distributes modified versions of code has to clearly specify which parts belong to whom, so, for example, author of the original package won't be blamed for the faults of someone else who's modified it. 06:06:08 --- quit: crab1 (Ping timeout: 260 seconds) 06:07:21 --- join: Zarutian_HTC joined #forth 06:08:13 @iv4nshm4k0v from what I can gather, the Berne Convention on copyrights gives signatory countries wide latitude on what moral rights they recognize for works within their own countries 06:08:39 the US recognizes some moral rights, like, for numbered prints 06:09:31 but I take your point that the notion does a lot more work in some places outside the US 06:10:05 anyway, I was off looking for something that turned out to be a lot harder to find than I thought. 06:10:33 I went looking for it inspired by the discussion of how desirable a "short" license is. 06:10:48 as if the length of it is any sort of mark of quality 06:12:24 these discussions all tend to take place in a very limited context of free/open source licenses only, even though they're all operating in an environment in which people all over the world use things around the clock under licenses and policies like these: https://mymodernmet.com/social-media-policy-infographics-dima-yarovinsky/ 06:13:24 I think choose short, less-reciprocal licenses based on their length is a mistake and that the length and complexity and, most importantly, the meaning, of the GPL should really be compared to these monsters. 06:13:52 iv4nshm4k0v, that's fine if you want to take that position - it is your code, you can license it however you want - but you must concede that a "you can follow my rules or don't use my code" is a restrictive stance 06:15:01 it is! 06:15:16 but it's also the default, but not usually recognized as such. 06:15:52 people act like the GPL creates these restrictions. It doesn't. 06:16:14 Well, it is one way of imposing restrictions on your software. 06:16:15 cmtptr: I suppose. Though note that another such rule is "you agree not to bother me with tech support; don't use my code if you can't / won't." Would you call it unreasonable? 06:16:32 KipIngram: copyright imposes the restrictions. No license, no permission. 06:16:34 i never said anything was unreasonable 06:17:21 Well, let's not quibble over semantics. If you choose GPL for your software, you are placing restrictions on possible users. If you don't, you're not. 06:17:31 Re. BSD and LGPL, BTW, there's this old interview with a former NetBSD developer: http://web.archive.org/web/20071215050536/http://onlamp.com/pub/a/bsd/2006/09/14/netbsd_future.html . 06:17:36 KipIngram: I don't accept that framing. 06:17:39 and no, "use at your own risk" is not the same as "i don't grant you permission to use except under these terms" 06:17:43 And that's fine - it's good that there are options for people to get what they want. 06:17:46 That's fine too. 06:17:49 You don't have to. 06:17:49 sure 06:18:14 But you're right - it's not "the GPL" that imposes the restrictions. 06:18:17 It's the author of the software. 06:18:20 let's just be clear that who is quibbling here is a matter of perspective. 06:18:23 The GPL isn't an "entity." 06:18:57 well, I'd say the laws implementing the Berne convention create the restrictions, and then it's just a question as to what extent, and how, permission is given. 06:19:00 It's not some creature lurking out there waiting to pounce on your source. :-) 06:19:10 the default is closed. 06:19:25 I think trying to dance around that is, at best, misinformed. 06:19:41 trying to argue to the contrary when it's pointed out I think is misleading. 06:19:42 but once you stamp a license on it, we're not talking about the default anymore 06:19:57 @cmtptr sure 06:19:57 ACTION shrugs. I just know that the production code guys at the office steer well clear of GPL. I'm not a lawyer. 06:20:24 When IBM acquires a company, they have a process for scanning the acquisitions IP to be sure it doesn't contain GPL and other such things. 06:20:32 the dumbass production code guys at my office think that "gpl means it's free to use, right?" 06:20:34 A tool they've put a lot of effort into constructing. 06:20:37 KipIngram: ok, that's yet another thing though. Let's not project their choice onto the the system as it stands. 06:20:48 cmtptr: The whole point of /any/ license (and copyright itself) is "I don't grant you permission to use except under these terms." Moreover, GPL does /not/ place restrictions on the /use/ of the software: only on its /distribution./ So far as you don't distribute, you never can go against GPL. 06:20:53 I don't even know what you mean by that. 06:20:56 KipIngram: I'm afraid the only way not to place restrictions is to put the code in the public domain... at least in jurisdictions that have such a notion and allow you to do that. 06:21:03 I'm not trying to condemn the GPL here. 06:21:09 I don't personally like it, but I know some people do. 06:21:26 and every couple of releases i have to go purge gpl code with patches from our codebase and replace it with something similar but obfuscated enough that it fools the scanners 06:21:32 KipIngram: there's a difference between saying "these guys don't want to use GPL stuff" and "GPL has this nature" 06:22:05 Now see, THAT seems like dancing to me. OF COURSE GPL has that nature. That's what it DOES. 06:22:08 it's like saying "vanilla ice cream is bad" when what you really mean is "I don't like the taste of vanilla ice cream" or even "I'm lactose intolerant so I can't eat ice cream" 06:22:29 you know some guys who don't want to use the GPL. that's fine. 06:22:33 It's bad if you are trying to maintain a proprietary structure in your product's software. 06:22:38 It's not "bad" per se. 06:22:43 It's bad for certain applications. 06:23:08 look, you know some guys that have a GPL intolerance. that's fine. 06:23:37 Um, I know "some guys" that avoid it in the line of their work. 06:23:37 but the GPL in their case is no different from any other license they don't want to deal with. 06:23:43 I don't know if they are intolerant of it. 06:23:49 iv4nshm4k0v, if you're a hardware vendor, then distribution /is/ use 06:23:50 I guess they are "professionally" intolerant of it. 06:23:57 They may personally think it's great. 06:24:10 But they have a job to do. 06:24:10 yeah, whatever. They avoid it. 06:24:36 And that job is to make sure no one steps forth sometime down the road and claims that their crown jewel software IP is public domain. 06:24:47 eek 06:24:53 "public domain" is yet a different thing 06:25:00 Because it got linked with some sort algorithm years ago. 06:25:20 sure, everyone should know where the stuff they use came from and what license it's under. 06:25:23 no doubt 06:25:47 and if they do that well enough chances are good they have less to worry about in terms of GPL 06:25:58 I mean, IBM ships a *lot* of GPL stuff now. 06:26:01 --- join: Bogen85 joined #forth 06:26:02 --- mode: ChanServ set +v Bogen85 06:26:11 All I know is that when that sweep find stuff that even "might be" GPL, it gets added to a list of pieces that have to be "redone" before it goes out the door. 06:26:15 They call it "bluewashing." 06:26:22 cool 06:26:25 Not officially, but... vernacular. 06:26:45 I like learning in-the-trenches vernacular like this. 06:26:59 LGPL is much less worrisome. 06:27:06 KipIngram, oh yeah i've seen that before, too. an entirely "original" boilerplate function that was just a varargs and turned into a vsprintf with some prefix has gotten flagged several times where i work 06:27:16 they worry less about the LGPL. 06:27:16 Well, that's just an IBM thing, because of how they've been known as "Big Blue." 06:27:23 right 06:27:25 i ended up obfuscating that one just so we don't have to argue about it anymore 06:27:43 Yes, let's not. 06:27:54 Not a lawyer, don't want to be a lawyer. 06:28:35 so, bear with me, so to speak: I was reading a book recently about how people interact with wildlife. 06:28:41 so you have all these people that feed wildlife, thinking that helps. 06:29:09 but what really happens is that if you feed a bear, what you're doing is condeming it to death. 06:29:26 good, bears are scary 06:29:30 because it will associate humans with food, will grow to be a danger, and then will get killed as such. 06:29:36 heh 06:30:04 I'd say that a lawyer and legalese aversion is healthy to a certain extent. 06:30:30 but if you go too far you might avoid your way into a corner that's wall-to-wall lawyers. 06:30:51 maybe knowing some of the basics can help you out in the end. 06:33:00 anyway, we're talking about IBM bluewashing GPL stuff but it's hilarious how much they paid for a company whose main product line centers around probably the single most famous and widely used piece of GPL code ever 06:33:52 what bugs me about these 'licenses' (mainly proprietary) is the arse covering clause that starts with "AS IS" or something to that effect 06:34:41 yup. it's in almost all of them. WTFPL is one of the few exceptions. 06:35:05 something I could not get away with physical product like an electronic gizmo 06:35:23 not that they don't try there, too 06:37:18 I am thinking that for non-open source (that is the source code is not accessible) there should be minimal strict liability 06:37:52 Per http://en.wikipedia.org/wiki/Implied_warranty , I think that US law technically /does/ allow for physical goods to be sold "as is" / "with all faults". Think of, e. g., second hand. 06:38:43 (just as there is minimal standards for electronics regarding rf interferance, electrical safety, and fire hazard) 06:40:25 those faults must be often inspectable before the sale goes through or indication that the thing might have faults. 06:41:29 but first sale from manifacturer to end user has some standards, at least where I live 06:43:29 --- quit: cbridge_ (Remote host closed the connection) 06:43:43 --- join: cbridge_ joined #forth 06:44:02 cmtptr: Re. "hardware vendors", indeed one of my gripes is that they try to force me to buy a general-purpose computer with an OS preinstalled (thank you, but I can install one myself), and that they don't provide the source alongside embedded software (and then I'm forced to 'enjoy' their minor bugs for years.) 06:44:16 (FWIW, if it ever comes to a vote, I'd be rather inclined to support a law that makes it /mandatory/ for hardware vendors to only use software with GPLv3-compatible licensing.) 06:46:31 well one computer store here in town provided an 'no os' package or even installed ubuntu or some such eazy to setup gnu+linux distro 07:00:34 Zarutian_HTC: Some ten years ago there was such a wonderful abundance of engineers around here that it was cheaper to buy a custom-built PC than a pre-built one. Or at least it very much seemed that way. The computer literacy figures went down since; so it doesn't seem to be the case anymore. 07:02:35 note this place mostly sold rackable server equipment but had some side biz in laptops, which might explain it 07:14:55 iv4nshm4k0v, i wasn't even thinking of pcs. gpl'd software has a massive footprint in the embedded space 07:31:36 Jesus it's hectic at work today. 07:31:39 :-| 07:34:28 --- quit: wineroots (Remote host closed the connection) 07:43:30 i'm thinking of blowing today off 08:09:46 --- join: crab1 joined #forth 08:42:08 :-) 08:42:22 I at least see a path through today's thicket at my place. 08:43:00 Just love it when you discuss a situation with a manager in the group and agree on a course of action and then have them decide a couple of days before a deadline that's not what they needed after all. 08:43:05 Or not all they needed, at least. 09:01:14 --- quit: gravicappa (Ping timeout: 252 seconds) 09:30:09 --- join: gravicappa joined #forth 09:42:49 what do peeps here think of Bitcoin script? the forth inspired way of doing transactions 09:48:41 Do you have a link to what that is? 09:50:18 if it involved crytocurrency, it is automatically bad 09:50:18 https://en.bitcoin.it/wiki/Script 09:51:23 nihilazo: really? 09:51:36 I don't see why crypto should be dismissed as "just bad" 09:52:10 cryptocurrency is "just bad" to me because of the horrifying environmental impact 09:52:22 and the amount of wasted computing power 09:52:34 in order to provide a currency that is only useful to speculators because it's too unstable to use 09:53:01 anyway, I am actually looking for near straight line code encodings/expression-system 09:53:39 that isn't evidence of 'just bad' that's evidence of a single failed experiment, specifically bitcoin 09:53:47 https://digiconomist.net/bitcoin-energy-consumption 09:53:53 it's similar for any other PoW crypto 09:54:25 nihilazo: hmm... I am guessing that you live in USA or western Europe country with stable-ish currency 09:55:13 and "we're going to switch to proof of stake" has been a joke forever 09:55:34 hence your view on cc being mostly from inside a 'dollar filter bubble' or similar 09:55:47 crypto is "just bad" imo because it's just a dumb idea. the whole premise is that they're supposed to be finite and difficult to mine, which gives them value. except that anyone can create a new chain at any time, or forks happen, etc. 09:55:52 also, personally, I believe that an unregulated currency/market is just a really, really terrible idea 09:56:17 and especially with things like NFTs which are literally fucking like 09:56:26 people paying thousands of dollars to get their name in a database essentially 09:56:32 not even getting actual ownership of the thing they paid for 09:56:35 it's so dumb! 09:56:50 (the database is distributed on a blockchain but that's essentially all a blockchain is, a distributed database) 09:58:15 When it comes to gov't regulations, my colleague put it this way: "I was defrauded of my money by private parties twice; and by my government three times; guess whom I'm going to trust more?" 09:58:18 --- quit: crab1 (Ping timeout: 260 seconds) 09:59:09 what I have also found to be terrible terrible idea is debt based money like most fiat or government issued currencies are 09:59:12 lack of regulation is what lead to the financial crash, and it will happen again 09:59:28 I think cryptocurrency is a terrible idea, debt-based money is a terrible idea, personally I think we shouldn't have money at all 09:59:41 but I understand that this is a position that is difficult to explain fully in an IRC message 09:59:55 i'll take your money off your hands for you 09:59:56 (and this is hella offtopic either way) 09:59:59 nihilazo: Then use NNTP? 10:00:22 NNTP? like newsgroups? 10:00:49 nihilazo: Xactly. 10:00:50 nihilazo: what was a big factor in the 2007-2008 finical crash was the cronyism, cantalevering, and regulatory capture 10:01:34 fundementally my ideas are largely similar to those of philosophers like Kropotkin 10:01:46 although they are...very contrary to how society currently works 10:02:19 ideas that would be impossible to implement on a large scale with people's current attitudes towards what a society even *is* 10:02:41 although I do want to learn more about economics 10:02:51 as they exist within market economies 10:02:51 but I was asking about the forthy part of bitcoin not if crypto currency was a good idea or not 10:03:29 it being forthy is nicer than it being anything else 10:03:38 even if it's a forthy part of a system I dislike 10:11:11 --- quit: iv4nshm4k0v (Ping timeout: 245 seconds) 10:32:07 --- quit: rpcope (*.net *.split) 10:37:02 --- join: rpcope joined #forth 10:44:01 --- join: crab1 joined #forth 11:07:36 --- join: newuser|75 joined #forth 11:08:53 create var 10 allot - - > put string at tthe address of var ? 11:09:24 i mean I want to put custom string in my allocated variable named var 11:11:44 " poop" var swap move 11:11:52 or whatever the standard strcpy word is, i forget 11:12:01 thanks 11:12:31 (i haven't done this in a long time and when i was doing it, i was way off the weeds from any standard, so take that with a grain of salt) 11:15:44 why u swap instead of just putting them in proper order 11:16:28 what is the proper order? i don't remember. is it dest-src-count or src-dest-count? 11:17:01 the string is two values - address and count 11:19:19 so yeah newuser|75, it probably should be var " poop" move 11:23:45 no, you were right the first time 11:24:11 move is ( addr1 addr2 u -- ) 11:24:18 copying from addr1 to addr2 11:24:28 thanks 11:25:29 if that doesn't work, you might need to use cmove instead 11:26:28 i think move is intended for full address units and cmove for characters/bytes 11:26:38 (assuming an ans-style forth) 11:30:24 --- quit: newuser|75 (Quit: Connection closed) 12:43:45 --- join: Glider_IRC__ joined #forth 12:46:43 --- quit: Glider_IRC_ (Ping timeout: 248 seconds) 13:52:44 --- quit: gravicappa (Ping timeout: 252 seconds) 14:08:14 ah I forget string is two values 14:09:07 other implementations have string as just the address 14:09:13 I moved to single value strings long ago :) 14:09:37 easier that way tbh 14:22:13 if I can just treat a complicated structure as a pointer, I prefer to 14:22:16 almost universally 14:42:18 yeah 14:43:19 i've started thinking of introducing addressable return stack slots 14:43:53 --- quit: crab1 (Quit: WeeChat 3.0.1) 14:44:22 r1 returns the address of the top of the return stack, r2 the address of second-to-top, etc. maybe >r1 and r1> convenience words for storing and fetching from them 14:45:34 and then maybe some word to allocate space on the return stack and return its address, so you could create local structures and populate them or pass them around 14:46:46 i've been having a few ideas about this frame pointer stuff 14:47:36 but i can't bring myself to actually try any of it out just yet. too burned out at work 14:47:59 maw 14:48:50 maw dave0 14:48:56 "i've started thinking of introducing addressable return stack slots" 14:48:57 maw crc 14:49:13 That's actually old-school cmtptr 14:49:47 Fig-forth etc had I I' J for R@, second return stack cell and third 14:50:20 And it's quite useful in my opinion, but I generally avoid return stack because I find DO..LOOP so useful 14:52:05 Forth has like a kitchen sink of different places to store information and you just have to sort of put your washing up gloves on and wade through the dirty dish water and figure out what works 14:54:46 I have I J K for loop indices, but they're not on the return stack in my case 14:58:52 aah the i j k stuff. yeah, i never properly learned the old-school loops because they looked gross to me. that was probably a mistake 14:59:47 In fig-forth they just access explicit return stack positions, which happen to align with the inner loop iterator, limit, and outer loop iterator 15:00:15 So you can use them to access return stack (and there was no R@) 15:01:15 right 15:01:41 I think fig-forths are the best forths outside of embedded 15:02:15 Anything the standard did differently to fig forth it did worse 15:02:35 I like non-standard Forths :) 15:03:13 crc did you know that there are/were machines that were not byte-addressed, like retro's VM 15:04:01 veltas: retro's vm is word addressed, not byte addressed 15:04:04 I recently found out that's why C's pointers work the way they do, it was some kind of effort to keep B's syntax which was designed originally for a machine that was word-addressed, so you could add 1 to get next cell 15:04:17 That's what I was trying to say 15:04:28 I'm saying retro's VM is also not byte addressed 15:04:33 I've coded Forths for both word addressed and byte addressed systems 15:05:03 I just thought it was interesting about B/C, I don't know if you knew that or know those languages 15:05:16 If I can ever get a working B compiler, I'll attempt an implementation of my VM on it :) 15:05:38 I'd run into some information on B prior to beginning my VM 15:06:01 Anyway while reading the original B manual I decided I like the word-addressed idea, more than I previously thought I did when I saw it in retro 15:06:43 I think B is more elegant than C, it's a shame that it kind of falls apart on modern machines 15:07:02 Word addressing is a little wasteful of RAM, but makes a lot of things very straightforward 15:07:22 The B compiler for the PDP-11 converted code to threaded code like Forth 15:07:49 It wasn't wasteful in B, character strings were done using multiple characters per word 15:08:19 And that's actually where the multi-character constant comes from i.e. 'abc' 15:08:49 Yeah learning about B was really eye opening to me 15:09:15 having word-sized characters is not so far fetched with unicode 15:09:40 dave0: I'm ready for UTF32 :) 15:09:56 I'd still use UTF-8 15:10:10 crc: i read a story that UTF32 is the most sane to work with 15:10:47 It turns out the processing unicode is very difficult and UTF-32's one of many steps to making it possbile 15:10:52 'sane' is a strong word 15:11:10 veltas: ehehe :-) 15:12:10 It does mean that you can at least have an array of actual unicodes 15:12:19 Rather than uniencodes 15:17:17 One day I'll be able to work with UTF32 encoded source files. I still have a lot of tooling to write before that's fully feasible though. 16:05:59 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 16:06:12 --- join: Zarutian_HTC joined #forth 17:04:06 with UTF-32 you can index each character at the expected location 17:04:40 with UTF-8 you can't... you have to "walk" the string to get to the n'th character... 17:05:00 same with UTF-16 17:05:13 That's annoying to me 17:05:32 At some point I need to write a utf8 vocabulary for dealing with this 17:06:17 the decode for utf-8 is fairly simple, not need for tables, etc.. 17:06:25 no need... 17:14:27 How about encoding? Replacing characters in a string? 17:30:15 > It (UTF-32) does mean that you can at least have an array of actual unicodes 17:30:29 Until you hit combining characters, naturally. And all the other Unicode insanity. 17:32:19 oh, yeah, you have to convert ASCII to UTF-32 17:32:48 which is a utf-8 decode? 17:47:44 Is it often that you need to randomly access a large string? 17:49:36 I often do text manipulations 18:01:40 moreso, is it often that you need to randomly access a large string by unicode scalar value index 18:02:07 because if you want characters, indexing into a utf-32 string isn't that 18:02:22 if you just want cursors, utf-8 is fine 18:13:25 UTF32 appeals since I'm already using 32-bit words for storing characters 18:13:48 utf8 is for interoperability with the outside world 18:20:34 --- part: Bogen85 left #forth 18:36:05 --- join: iv4nshm4k0v joined #forth 19:07:56 Go uses a fixed Rune size. It's fine if you need random access and can afford the 2-4x increase in memory. But most of the time you're going to be cursoring anyway and you can always set up a an index map which will still be less memory usage, and can avoid pointer jumps by storing them as offsets. 20:00:24 --- join: Bogen85 joined #forth 20:00:25 --- mode: ChanServ set +v Bogen85 20:12:30 --- quit: Zarutian_HTC (Ping timeout: 258 seconds) 20:37:13 crc, heh, I was planning to do the same (UTF-32 strings will be the default string type) on my current language project (will announce it once I've got something to show). 20:39:06 as far as forths go, " I like non-standard Forths :)" well, it will quite a "non-standard" forth, but it does fit the "two (or more) stacks and speak RPN" definition... 21:49:47 --- join: Zarutian_HTC joined #forth 21:55:27 --- join: crab joined #forth 22:17:02 --- join: gravicappa joined #forth 22:34:46 -!- zmatt(~zmatt@178-84-91-79.dynamic.upc.nl) has left ##forth 22:34:51 --- join: zmatt joined #forth 22:35:05 --- part: zmatt left #forth 22:39:35 yo yo yo 23:35:47 --- quit: crab (Ping timeout: 248 seconds) 23:59:59 --- log: ended forth/21.06.03