2023-01-06 05:55:56 I was a bit confused by the HP41 FORTH when it came out. Doesn't seem like there's a lot of extra resources for that 2023-01-06 05:56:48 There is an HP50G forth video on the same channel though which sounds much more plausible. 72mhz ARM7 that you can access directly from the emulated calculator system 2023-01-06 06:09:12 crc: Last thing I encountered trying to optimise the Lua ilo is that it runs so slowly that I never see it reach the prompt, on both optimised an unoptimised. 2023-01-06 06:09:32 crc: For reference my laptop takes about 10 seconds to get to the prompt in the C VM as well 2023-01-06 06:09:41 Or more like 5 seconds 2023-01-06 06:10:09 What order of magnitude slower would you say the Lua ilo is? 2023-01-06 06:22:24 a lot of the startup time is due to loading stuff in blocks 1&2. You might try erasing them (#1 set new save #2 set new save`) 2023-01-06 06:23:27 With a smaller set of things loaded (just 3 blocks), I get: 2023-01-06 06:23:35 0.20s C 2023-01-06 06:23:35 26.78s Python3.9 2023-01-06 06:23:53 on my linode vps 2023-01-06 06:24:05 lua5.4, not 5.3 2023-01-06 06:28:29 http://temp.retroforth.org/ilo.blocks.gz (loads just a few extra things on startup [a minimal manual viewer & `describe`] by default, rather than everything) 2023-01-06 06:33:19 Well, my DM41X is slowly working its way toward me. Meanwhile I've seen information on both sides of the fence in reviews and so on. I saw one review that praised the "sure and certain key clicks" of the unit. That was positive sounding, given how important the HP-41CV keystrokes were to me. 2023-01-06 06:33:46 On the other hand I also saw someone note that it takes more force to push the keys than the HP product did - perhaps significantly more. 2023-01-06 06:34:05 That's a little concerning. So I guess I'm still in "wait and see" mode. 2023-01-06 06:35:08 Saw one forum post that was really flamey - pointing out all the ways that other various modern calculators are "so much better." 2023-01-06 06:35:13 But that misses the point. 2023-01-06 06:35:29 You don't get this calculator because you're looking for the most powerful / most features etc. 2023-01-06 06:36:05 You get it because you loved the iconic HP-41. The purpose of this calculator is to be a faithful recreation of that machine. 2023-01-06 06:37:06 I hauled out one of my WP-34S units last night and started mucking around with it, user manual open in a browser tab. Man, that is a PACKED calculator. Just getting in mind all the things it can DO is daunting. 2023-01-06 06:37:48 Oh, I also discovered something about it I hadn't realized. It supports a double precision arithmetic mode, that basically uses 128 bit floating point numbers. 2023-01-06 06:37:59 Around 34 digits of computational accuracy. 2023-01-06 06:38:16 You kow, for all the times I just can't live without that... 2023-01-06 06:39:30 The Swiss Micros DM-42 sports that accuracy across the board, as its default operation. 2023-01-06 06:40:24 The impression I get (from market reviews and from Swiss Micros themselves) is that it's actually more powerful than the DM-41X; once again the 41X had a different "raison d'etre." 2023-01-06 06:43:08 So, on the processor design, I've now got that opcode sequencer "mostly there" - needs a few touches. I've got a return stack module done, though I haven't really tested it very heavily so it will probably need some debug. And I've got a "RAM module" done. So now I ought to be able to pull those together inside a "fetch and handle" module that will coordinate their activities. 2023-01-06 06:43:24 That will leave the data stack and the ALU as the primary remaining pieces. 2023-01-06 06:44:04 And that "exception stack," but it should be a simplified return stack, so hpefully not too much work. 2023-01-06 06:46:04 I need to think about how I'm going to work with this model after it's all done. I want to set up some kind of ecosystem that lets me "program the simulation" (craft the RAM contents to offer a Forth interface). Haven't thought to much about that yet. 2023-01-06 06:46:56 I'd like to get that all working well enough to let me eventually just port the RAM data into the Xilinx software and have the actual hardware "just run" when I eventually fire it up. 2023-01-06 06:50:06 I really hope I can eventually get this into that Lattice iCE40 chip. That's a much more viable "working deployment" than this Xilinx part. Under $10 vs. around $150 for the chip? That's quite a difference. 2023-01-06 06:50:25 The Artix 7 is way overkill. 2023-01-06 07:16:25 crc: So the lua ilo is like 10-20 times slower? 2023-01-06 07:17:07 yes, in my limited tests of it 2023-01-06 07:17:59 Any Python is like 100 times slower 2023-01-06 07:18:35 And* 2023-01-06 07:31:06 yes 2023-01-06 07:36:09 100 is about the factor I saw between Python and my Forth as well. Round about, at least. 2023-01-06 07:36:20 Python3.11 is much faster than 3.9 (takes 9.6s) 2023-01-06 07:37:01 latest pypy3 is 1.9s 2023-01-06 07:42:05 That's neat. My Python is 3.10.8, apparently. 2023-01-06 08:00:46 Oh, looks like there's a nice Android emulator of the WP34S. 2023-01-06 08:01:16 I may want that instead of the HP-42S emulator I currently have on "gesture." 2023-01-06 08:06:28 Why is the new so much faster? 2023-01-06 08:06:33 Or should I ask why the old is so slow 2023-01-06 08:08:34 This is one of the reasons people dragged their feet moving to Python 3 2023-01-06 08:08:41 Python 2 was a lot faster for a while 2023-01-06 08:11:32 Oh, well, this WP34S emulator has a really bad wart. 2023-01-06 08:12:06 What's that? 2023-01-06 08:12:21 It's gorgous - very nice looking screen, and the keys are a LOT easier to read than on the actual calculator. But... if you fully close the app it WIPES THE CALCULATOR'S data and program memory. 2023-01-06 08:12:26 That makes it... useless. 2023-01-06 08:12:59 How could anyone have thought for a millisecond that was an okay way to work? 2023-01-06 08:13:56 it might be a side effect of not writing persitance code for it. It is wierd how smartphone apps are structured 2023-01-06 08:17:04 Well, yeah - I suppose that is the root cause. But... my feeling would be that it was unshippable until that was resolved. 2023-01-06 08:17:44 Anyone who uses a powerful calculator like that writes SIGNIFICANT programs for them. And as far as I can tell there are no menus or settings or anything - no way to save off your data, etc. 2023-01-06 08:19:19 Probably the dev knows it's bad, and they released before it was 'finished' because it's better to release something than nothing 2023-01-06 08:19:32 And the persistance code just doesn't come easy/natural in a phone app 2023-01-06 08:20:14 Is it an open source app? 2023-01-06 08:20:56 I don't know the pedigree of the code. 2023-01-06 08:21:02 I just checked the app store and found it. 2023-01-06 08:21:21 I do not agree that it's better to release something that nothing. 2023-01-06 08:21:29 You only get one chance to make a first impression. 2023-01-06 08:23:17 It's not as though there's any competition to it out there. 2023-01-06 08:23:26 This isn't a case where there's market share to be captured. 2023-01-06 08:23:35 It's the only WP34S emulator I see in the app store. 2023-01-06 08:30:44 Anyway, I realize my thoughts in that area our totally counter to the way things are done in the world. 2023-01-06 08:31:16 But that little company I first worked for in Houston - the owner was fanatical about making sure everything was RIGHT before we let products out the door. 2023-01-06 08:31:25 He was ok with "features not ready yet." 2023-01-06 08:31:35 But what was THERE had to work, and work flawlessly. 2023-01-06 08:31:58 His cliche on that was "if we program the chip wrong, the airbag controller malfunctions." 2023-01-06 08:32:15 Or something like that - I forget his exact words. 2023-01-06 08:32:30 Really depends on context 2023-01-06 08:32:35 But his point was that our wares were used to program devices that went into things all over the place. 2023-01-06 08:32:44 Sometimes into life-critical applications. 2023-01-06 08:32:44 You're going to lose in business if you're doing a non-critical app and want it 'perfect first' 2023-01-06 08:33:05 Yeah, I get it that first to market matters. 2023-01-06 08:33:16 But see above about this being the only emulator of this calculator in the store. 2023-01-06 08:33:42 Anyway, like I said - I realize I'm out of line with the world. 2023-01-06 08:33:49 But I just absorbed that mentality from that guy. 2023-01-06 08:34:08 I think there are some fundamental forces at work there, that I don't want to fight 2023-01-06 08:34:33 I instead must embrace them 2023-01-06 08:35:55 Well, I'd use the word "accept." I can't change the world. But I can disagree with it. 2023-01-06 08:37:41 I realize it's an imperfect world. But what I really object to is the way the software industry (far more than other industries, which can no longer touch their product once it's out the door) has "institutionalized" imperfection. 2023-01-06 08:37:59 There's no longer even an EXPECTATION that products will ship defect free. 2023-01-06 08:38:07 It's not even anyone's goal anymore, REALLY. 2023-01-06 08:38:26 They might pay lip service to it, but no one really thinks it's going to happen and takes it as a serious objective. 2023-01-06 08:39:53 Saying something about it gets you almost a "Aw, aren't you cute?" reaction. 2023-01-06 08:40:11 Cute / childish / naieve. 2023-01-06 08:41:49 Just one of many problems with products today 2023-01-06 08:41:57 Well, that's the truth. 2023-01-06 08:42:22 You guys don't risk assess? 2023-01-06 08:42:36 Also see maximize vs satisfice 2023-01-06 08:43:06 I've got a watch, a present I received for my 21st. It's clockwork, uses high precision parts, crystals etc, to deliver reliable time keeping to me 2023-01-06 08:43:27 Will last for years without maintainance, no batteries etc 2023-01-06 08:43:45 It's like a window into a lost world, nobody could design something like this today if they tried 2023-01-06 08:44:37 I think that the “AS IS” ‘clause’ is a cover yer arse must go 2023-01-06 08:45:24 I don't require this level of perfection, perfection is the enemy of the good, but I wish quality was controlled a bit better 2023-01-06 08:45:54 I suppose that's actually why there was such a strong culture of automated testing, because that is a reasonable attempt to achieve that quality when you have to compromise in process 2023-01-06 08:46:29 That culture is developers who actually have some pride in what they do, or at the very least consider it a manner of honour that they deliver something that actually works 2023-01-06 08:46:32 veltas: https://docs.python.org/3.11/whatsnew/3.11.html#faster-cpython has some details on the changes made to improve performance 2023-01-06 08:46:44 Yeah I've read that 2023-01-06 08:46:53 Turns out they haven't tried JIT so far 2023-01-06 08:47:33 One thing they've done was remove some massive overhead they had on every single call, and also avoid calling recursively in the C VM to do recursive functions (why it even works this way is a mystery to me) 2023-01-06 08:47:53 This is how bash does it too 2023-01-06 08:48:02 pypy3 uses JIT, it's noticeably faster than cpython 2023-01-06 08:48:08 I suppose bash's performance makes Python's look pretty stellar though 2023-01-06 08:49:06 Python seems very unattractive to me, just not impressed at all 2023-01-06 08:49:11 I suppose you go for the ecosystem 2023-01-06 08:49:24 s/you go/one goes there 2023-01-06 08:53:12 Yeah - if it can be automated then you remove a human error factor. It's almost always good. 2023-01-06 08:53:41 And yes, that pride factor is good. 2023-01-06 08:53:52 It helps when the folks involved can feel that way. 2023-01-06 08:56:10 I think you're more likely to get that in a culture that actually values programmers as genuine individuals who matter to the team, as opposed to a part that's just been dropped into a machine. 2023-01-06 08:56:57 I think the "team is a family" mentality can get taken too far, but a dash of it isn't a bad thing. 2023-01-06 09:14:21 I prefer 'honour' over 'pride' 2023-01-06 09:14:49 That's fair. Pride can become a negative; honour generally doesn't. 2023-01-06 09:15:29 I meant the word in the good ways, and yeah - maybe honour captures that too without picking up as much risk of excess. 2023-01-06 09:16:00 craftsman honour basically 2023-01-06 09:21:17 Right. I suppose even honour too can get carried too far, but I don't think that's as common as pride excess. 2023-01-06 09:21:39 but craftsman honour - that sounds quite pure as a goal. 2023-01-06 09:22:29 "Gold plating" 2023-01-06 10:14:08 There are positive and negative meanings to pride. I think enough people consider some of the bad meanings to be 'positive' however. There is less of this problem with 'honour'. 2023-01-06 10:14:23 Exactly as I say, this is my own preference, I won't prescribe the word 2023-01-06 10:20:10 the olden Greeks were big on the hubris/nemesis thing 2023-01-06 10:28:20 fall er drambi næst is an saying for a reason 2023-01-06 10:43:14 granted some cultures celebrate the hubris more and ignore the rest 2023-01-06 14:21:00 I have a "general" way to fake async code in the lang 2023-01-06 14:21:10 but I don't think it would be efficient xD 2023-01-06 14:21:36 mainly it's just a list of lists with [ stack, code ] 2023-01-06 14:21:55 you can add code like this: [ some code ] async 2023-01-06 14:22:09 it won't be executed, you have to call 'execute.async' 2023-01-06 14:22:37 it will only execute one statement for every code associated, when it ends it gets removed from the list 2023-01-06 14:23:29 execute.async iterates that list of lists, sets the stack to the stack in the corresponding element and executes one statement of the code, then goes to the next async code 2023-01-06 14:24:40 it saves the contents of the stack and restores it later. every async code has its own stack 2023-01-06 14:27:03 [ 'oh . ] async for example this sets the list of lists like that: [[],['oh,.]] 2023-01-06 14:27:14 the first element is the stack 2023-01-06 14:27:47 when you call execute.async this list ends like: [[oh],[.]] 2023-01-06 14:28:10 the 'oh was pushed on the stack, and . is the remaining code to execute 2023-01-06 14:28:52 next time you execute.async 'oh is printed on the screen and the list is like this [[],[]] 2023-01-06 14:29:12 the next time you execute.async this element will get removed 2023-01-06 14:30:18 there's a drawback anyways, a colon word will get executed entirely, and a loop would fuck the process 2023-01-06 14:30:44 same for blocking operations 2023-01-06 14:31:20 how could I improve that? 2023-01-06 15:26:38 thrig: Yeah, a lot of groups tend to make too big a deal out of "superstar" people. Celebrity syndrome etc. 2023-01-06 15:29:43 rockstars who set production on fire and give IT (me) more work 2023-01-06 15:40:12 Heh heh. 2023-01-06 15:40:53 Well, it's one thing for someone to just be naturally a little rowdy. But when they start making a performance of their destructiveness, it's gotten a little out of hand. 2023-01-06 15:40:58 "no the code is perfect it does not need any documentation" "well the perfect code is on fire, how do we restart it?" 2023-01-06 15:41:10 First thing you know it'll become a competition and they'll be trying to top one another. 2023-01-06 15:41:34 But it's "our" fault, because "we" reward them for it. 2023-01-06 15:42:05 and by "production is on fire" I mean "credit card tokenization for a small internet retailer is down" 2023-01-06 15:42:06 The normal customs that should be encouraging good behavior get broken. 2023-01-06 16:27:29 Gosh people are worthless sometimes lol 2023-01-06 16:42:59 KipIngram: the DM42 for sure and I assume all other DM calculators use Intel's BCD lib which is where the 34 digits claim comes from 2023-01-06 16:43:26 rather than 128 bit or any other typical floats 2023-01-06 16:44:08 You can pick between binary or decimal internally when you compile the Free42 program which the DM guys ported to make the DM42 2023-01-06 16:59:26 factoring is the only reliable debugging method 2023-01-06 16:59:28 :D 2023-01-06 17:06:46 rewrite it in Factor? 2023-01-06 17:12:33 no, we use rust to rewrite things 2023-01-06 17:14:12 not with those compile speeds 2023-01-06 17:16:42 this is the main reason why people use rust 2023-01-06 17:16:58 https://xkcd.com/303/ 2023-01-06 17:21:26 I really need to offline all the xkcd JSON and images for searching 2023-01-06 17:22:16 use Mojo::DOM 2023-01-06 17:23:36 just need to retrieve from 1 to 2721 2023-01-06 17:24:35 or the https://xkcd.com/archive/ 2023-01-06 17:26:47 still using forth seems funnier 2023-01-06 17:40:48 You know that is true somehow 2023-01-06 17:41:03 Factoring for debugging, also for developing, maintainability, understanding, .... 2023-01-06 17:41:06 List goes on 2023-01-06 17:43:02 The difficulty with factoring becomes naming the words, don't you think? 2023-01-06 17:58:58 some times 2023-01-06 17:59:26 I tend to use large names and the word will usually be named like what it does 2023-01-06 17:59:31 but sometimes is hard, yes 2023-01-06 18:00:43 and well it wasn't a joke at the end XD. Factoring isolates bugs 2023-01-06 18:19:00 veltas: you know what they say 2023-01-06 18:19:10 veltas: there are two hard problems in computing 2023-01-06 18:19:18 veltas: cache invalidation, naming things, and off-by-one errors 2023-01-06 18:21:02 I've done cache invalidation 2023-01-06 18:21:06 From software anyway 2023-01-06 18:32:19 Well, I've had fun tinkering with this WP34S today. I'm actually beginning to learn my way around a bit better. 2023-01-06 18:33:06 I pick up two completely distinct "threads" in the appreciation people seem to have for it. 2023-01-06 18:33:24 I think I'm more into one of them than the other. I'm all for "ability to calculate." 2023-01-06 18:33:41 But another thing this calculator offers that's not that particularly valuable to me is a huge catalog of constants. 2023-01-06 18:33:55 It just remembers a bunch of numbers, and that seems to be awfully important to some folks. 2023-01-06 19:49:45 thrig: why do you want a json from xkcd 2023-01-06 19:50:09 do you have some kind of xkcd viewer using json or what 2023-01-06 19:50:30 the only thing you need it's the number, the image and the alt text 2023-01-06 19:53:08 search engines can suck at finding specific text in xckd comics that is present in the json 2023-01-06 19:56:22 oh I see 2023-01-06 19:56:32 the json has a transcript of the text on the image 2023-01-06 21:48:49 ok now I have kind of a way for an async loop, but it's a bit sad xD 2023-01-06 21:49:21 [ 'oh . ] async => this is for only one execution 2023-01-06 21:49:46 [ 'oh . 1 ] async.loop => this will get executed for ever as long as 'execute.async' is called 2023-01-06 21:50:16 what is really doing is taking the code and adding an if statement that will call async.loop with that code if true 2023-01-06 21:50:19 XD 2023-01-06 21:51:01 so [ 'oh . 1 ] actually becomes [ 'oh . 1 [ [ 'oh . 1 ] async.loop ] if ] 2023-01-06 21:51:33 and since that's the async.loop word, this process will be recursive as long as the if gets a true value 2023-01-06 21:52:10 still it would better just to do it from perl directly 2023-01-06 21:52:16 be better* 2023-01-06 21:55:32 still maybe the next time I rewrite everything I'd end having real async stuff from the start 2023-01-06 22:07:08 alright phoenix, time to get on that grill 2023-01-06 22:12:13 funny you say phoenix, cause I was thinking I should study about the actor model as it's what makes erlang shine so much 2023-01-06 22:13:14 still idk how the actor model would map in a stack based lang, but I think it's worth to study about anyways 2023-01-06 22:13:49 (phoenix is a web framework of elixir) 2023-01-06 22:15:50 https://www.phoenixframework.org/ 2023-01-06 22:24:38 all day to just have a bullet moving and did not even start 2023-01-06 22:25:12 but now I want to add oop first :D 2023-01-06 22:59:28 https://www.youtube.com/watch?v=VqkXdZuKv6A 2023-01-06 23:00:01 That's a cute little toy. 2023-01-06 23:05:35 lol the keyboard micro is better than the calculator one 2023-01-06 23:07:42 :-) 2023-01-06 23:08:58 this makes me want to start using assembler choosing some emulator 2023-01-06 23:09:38 I always wanted to do stuff with some consoles like the gameboy 2023-01-06 23:16:33 I had a gameboy dev book that started fine, but later just wanted to force me to use the author's library :/ 2023-01-06 23:17:08 still there's an official manual from nintendo and a lot of resources 2023-01-06 23:18:29 I have some links saved in the best website I ever made 2023-01-06 23:18:33 https://vms.neocities.org/asm 2023-01-06 23:18:49 https://vms.neocities.org/asm.html * 2023-01-06 23:19:07 well I think also works without the .html 2023-01-06 23:19:42 funny that the link ends in org/asm 2023-01-06 23:39:58 https://micromegacorp.com/umfpu-v3.html