00:00:00 --- log: started forth/20.11.24 00:01:36 --- quit: zolk3ri (Remote host closed the connection) 00:30:55 --- join: xek_ joined #forth 00:39:02 the_cuckoo: The point is that it's "as if" there is an intermediate buffer, that's a way of thinking about it 00:39:28 I don't know if anyone used to implement it that way, I imagine it's been relatively obvious that's unnecessary the whole time 00:39:52 Maybe I should clarify that further somehow 00:51:56 --- quit: gravicappa (Ping timeout: 260 seconds) 00:52:19 yeah - i don't really know what they would do either - i suppose there's a point where a small intermeirary buffer may allow for the types of mmx/sse/avx2/whatever type of optisimations, but i have no idea what they actually use 00:52:54 veltas: either way, just thought your post was interesting and made me curious about that specific point :) 01:08:41 Fair enough 01:09:00 I think it might be worded that way in C standard, to make it clear what the requirement on handling overlapping memory is 01:13:52 yeah - makes sense - it's definitely an easier way to visualise the special cases 01:14:51 anything else would likely border on being implementation specific 02:57:38 --- quit: hosewiejacke (Ping timeout: 260 seconds) 03:13:17 --- join: jw joined #forth 03:59:36 --- join: gravicappa joined #forth 04:41:18 --- join: Gromboli joined #forth 04:43:40 --- quit: dave0 (Quit: dave's not here) 05:14:22 --- quit: jw (Ping timeout: 260 seconds) 05:14:40 Anyone know how to cross-compile gforth? 05:15:00 Going from x86_64-linux to armv7l-unknown-linux-gnueabihf 05:15:07 I get this error, `checking for gforth... echo "You need to configure with a gforth in \$PATH to build this part" && false` 05:34:20 --- join: xek__ joined #forth 05:37:08 --- quit: xek_ (Ping timeout: 272 seconds) 06:20:57 --- quit: Zarutian_HTC (Remote host closed the connection) 06:26:50 --- join: jw joined #forth 06:42:32 --- quit: jedb_ (Ping timeout: 256 seconds) 07:00:06 siraben: Get an older copy of gforth and build that first 07:00:21 It needs a copy of gforth to build itself 'from scratch' 07:00:39 Or be like me and give up after the older one builds! 07:01:32 Ok, sounds like a plan! 07:17:27 "Use rock to break glass to get rock" 07:18:38 --- quit: jw (Ping timeout: 240 seconds) 07:24:34 --- join: jw joined #forth 08:05:40 --- quit: ggVGc (Changing host) 08:05:40 --- join: ggVGc joined #forth 08:31:06 --- quit: jw (Ping timeout: 256 seconds) 08:36:38 --- join: jw joined #forth 08:37:51 --- join: Zarutian_HTC joined #forth 09:44:58 --- quit: jw (Ping timeout: 240 seconds) 10:08:39 I made this little blog post about solving a puzzle with Forth: 10:08:42 https://librehacker.com/2020/11/23/forth-solution-to-grecian-computer-puzzle/ 10:36:22 Reading it now 10:40:15 I might recommend defining a word to make constructing the arrays a bit easier, so you can write e.g. C{ 1 2 3 4 5 } 10:40:51 And have it execute any words that aren't numbers, so you can define e.g. : HOLE -1 C, ; 10:44:45 I think if I had attempted this I would have tried keeping the rotation as a variable for each disc, and then provide words to lookup each location's current value based on those variables 10:44:53 --- join: xek joined #forth 10:45:13 Because although moving them around in memory is simple in concept, I don't know if it's any easier to code, and it's seems like it's less efficient 10:45:16 --- quit: xek__ (Read error: Connection reset by peer) 10:46:46 That really sucks that the one you had was wrong! What a bad puzzle 10:56:14 dup 0<> if ... else drop then I think can be replaced with ?dup if ... then 10:56:41 --- join: WickedShell joined #forth 11:00:28 --- join: jw joined #forth 11:02:07 Sorry I mean 'endif' instead of 'then' 11:02:46 --- quit: jw (Client Quit) 11:06:49 veltas: I don't quite have the energy to go tweaking that article, but if you wanted to make any comments on the blog post with recommended optimizations, it would be appreciated 11:07:26 so everybody could learn 11:08:36 I don't expect or require anything, just telling you in case you are interested since you went to the effort of writing the post 11:08:47 You don't need to change it 11:08:59 I can change it if I want, it's GPLv3 after all 11:09:34 of course, but if you feel inspired to share anything in the comments on better ideas or coding practice, the world would be a better place for it I'm sure 11:10:09 for learning purposes 11:10:38 probably there are at least a few bad examples of beginning forth coding in that article 11:11:12 I have shared your post on Twitter although I doubt anyone will look at it because of me 11:11:15 I can leave a comment 11:11:59 thanks - I won't be offended by any criticism or better ideas you drop into the comments 11:12:50 unless you insult my mother 11:13:00 I would take that personally 11:13:59 I generally assume people are okay with a code review if they post code online 11:16:30 --- quit: gravicappa (Ping timeout: 265 seconds) 11:17:14 I don't know why I wrote : -1 hole ; instead of -1 hole constant 11:17:24 Er : hole -1 ; 11:17:46 Oh I know why, I didn't write that I wrote -1 C, in there, that makes sense 11:18:32 Anyway I added a comment, you now have a blog post with a comment! Also I just realised our real names are quite similar. 11:18:43 --- join: gravicappa joined #forth 11:19:04 I was confused because I thought I read my own name on the copyright for a split second 11:20:44 thanks! 11:24:40 I'm sure some people are sensitive about it initially but personally I always want critique, if I know a better way or at least know someone doesn't like what I've done it's valuable info 11:25:16 I would really like to try this out, but there is a problem with one of the Makefiles preventing me from fully building it: 11:25:22 https://github.com/rm-hull/byok 11:25:50 I contacted the author, he responded, but said he hadn't tried building the code in a few years 11:26:19 What's the problem? 11:29:31 it is on my home computer, but it was an issue where make said it didn't have instructions on how to build a certain rule 11:29:51 or a certain object file, I think 11:30:41 I suspect that maybe something changed in the make software behavior since it was last built two years ago 11:30:51 but I'm not sure what version of make he was using originally 11:31:27 if anyone here can get it built, I'd be quite interested in know what versions of make, etc. that you used. 11:53:00 make :/ gross 11:57:01 paraphrasing the error isn't perhaps the right way for us to understand what the issue was 11:59:42 I'm sorry, I don't have the environment and files set up here at work 12:00:22 ok - and did you try building the linked barebones-toolchain stuff? 12:01:05 no, I used his pre-built toolchain. The code itself was all building fine, but the make process dies when make doesn't know how to build one of the object files 12:01:55 I think it was something in the kernel directory 12:02:30 to clarify, I was using his pre-built toolchain, but building by-ok source 12:04:11 hmm - not sure i want to dig too deep just now (machine at hand being stuff i'm doing work stuff on) 12:10:16 I am trying to build it 12:12:33 thanks 12:13:55 --- join: dave0 joined #forth 12:30:35 --- quit: xek (Ping timeout: 264 seconds) 12:42:27 MrMobius: what would you suggest instead of make? 12:42:44 --- quit: gravicappa (Ping timeout: 272 seconds) 12:42:55 Because I sort of agree but also I don't know a better tool for what it does 12:46:45 lispmacs[work]: https://pastebin.com/d5DyjTD3 12:47:56 i'm not a fan of using random toolchains for once-off builds, so that patch to include the static libraries when byok.kernel is linked is all i needed to change to use the version of i686-linux-gnu-gcc listed there 12:48:05 Good that you did it because I am now making bacon instead 12:48:43 I absolutely agree about the i686 gcc 12:49:10 bacon sounds like a much better goal to work towards 12:53:22 veltas, what sized project? for small ones, make is not worth the trouble 12:54:21 i had shenanigans trying to get a 6502 forth to build on windows 12:54:34 turns out the lunix and windows versions are not identical 12:54:53 the linux version ignores semi colons (they serve no purpose) and the windows version crashes and dies 12:55:46 MrMobius: which implementation of make was that? 12:57:50 who knows. i unistalled it after that 12:58:34 the last time I used it before that was 2014 for an mcu with 32k flash 12:58:48 not sure why you need a 100+ line make file for that 12:59:01 I replaced it with a 2 line batch script 12:59:29 inode: thanks. did that run successfully in qemu? 13:00:03 lispmacs[work]: at face value, yes 13:00:28 MrMobius: The opposite I find is true, make (if you are proficient) is nice and trivial for small projects and doesn't scale 13:01:17 The Windows/Linux differences in make are the fault of Microsoft primarily, I've used their make and it has lots of weird MSisms 13:01:30 inode: what version of make are you running, or which version of Debian? 13:01:32 what is the point though? it takes 2 second to compile a 32k flash image. no need to clean and figure out what's what at link time 13:02:09 i could see using if it took you a long time to compile every time or something 13:02:21 The feature of make is not helpful, but the automatic rule writing in gmake makes it shorter than a build.sh 13:02:52 lispmacs[work]: GNU Make 4.1 on Devuan ascii 13:03:17 You are right that the dependency graph is pointless in a small project, and in a large project it's useful but make doesn't scale well on those projects IMO 13:06:18 So you think bash is the right replacement? I haven't really had an opportunity to try. Do you have an example I can see? 13:06:32 I might use that as inspiration at work, don't tend to have 'big' projects at home 13:07:43 lispmacs[work]: i didn't test i very much, WORDS lists a bunch of names. : works, but SEE doesn't seem to disassemble code words though it workd for colon words. also HELP is missing dispite the splash disclaimer though LICENSE is available. 13:10:05 --- join: Filipp888 joined #forth 13:11:24 veltas, on windows I just make a batch file with one line for the compiler, one for the linker, and one for copying the result to the simulator or flashing the mcu 13:12:15 and then other optional debug stuff if you want to see how much space the image takes 13:12:37 Preferably for larger projects 13:19:19 inode: okay, but it "boots up". thanks 13:21:12 i'll plan to try that at home again hopefully this evening 13:25:53 make will always win for me over a shell script - seems strange to even make the comparison (unless you're talking about a couple of source files, in which case, meh - who cares?) 13:27:21 That is your opinion! I find make's usage tedious on medium size projects, where it is meant to shine, and you admit it is 'pointless' on smaller ones 13:27:49 make was written back when you were happy if you had a tool that could only build 1 instead of 3 source files with one command 13:29:06 isn't that where you'd consider using autotools when make alone gets kludgy? the obvious auto{conf,reconf,make} bloat aside 13:29:11 I don't think anyone's done a good job extending the core of make's syntax for more automatic rules across different directories 13:29:40 autotools are horrific, and so is cmake. It's true that's the direction people conventionally go in when make gets clunky 13:30:03 sure - there's never a case of one tool fits all, but make for a multi file/multi library/executable project is pretty cool - not ideal for multiple libary in their own project thing.. needs external stuff like pkg-config for that kinda thing 13:30:38 Yes I happen to think Make works best with a small number of files, but apparently that's not a universal opinion 13:31:34 I write 2-3 line makefiles in GNU make that build one-directory projects for one platform usually, that's much shorter and sweeter than anything else can do. 13:31:41 stuff breaks at the edges as you span multple projects - there's no good solution for that (cmake isn't bad for c++ stuff, but sucks badly for everything else) 13:32:06 Well autotools and cmake are designed to solve that problem, but I don't think that's even where the cracks form 13:32:22 I think just *large* projects with basically no dependencies still have chronic issues from using make 13:32:23 automake is just awful though 13:32:57 automake and cmake are revolting as far as I can tell 13:33:23 awful due to the fact that it uses m4 or for the quality of the stubs that it generates? 13:33:25 i wouldn't disagree - cmake fits a particular niche, but outside of that... it's a mess 13:33:30 We need linus torvalds or someone to solve the big make problem 13:34:05 hmm - but torvalds gave us git, and i'm not sold on that one.. hg was/is better 13:34:38 (and it's not perfect either :)) 13:36:09 git's better than other systems I used before, like svn and p4 13:36:23 (I still have to use p4 at work :( ) 13:36:24 yeah - no competition with those 13:36:29 --- quit: Gromboli (Quit: Leaving) 13:36:31 ugh 13:37:50 have done cvs, svn, bzr, hg, git.. i hated all of them, but learnt to respect hg 13:40:12 My benchmark for version control is "would I be in a better situation right now with tarballed versions of my code"? If yes then it's no good 13:41:20 heh - i think in all cases, i'd rather have a bad repo, but i can see where you're coming from :) 13:41:59 --- join: [1]MrMobius joined #forth 13:43:55 --- quit: MrMobius (Ping timeout: 256 seconds) 13:43:55 --- nick: [1]MrMobius -> MrMobius 13:45:36 "Would I be in a better situation right now with COPY'd versions of my block?" 14:01:56 > No external libraries or dependencies 14:07:36 --- quit: Filipp888 (Ping timeout: 272 seconds) 14:36:15 --- join: jedb joined #forth 15:11:35 --- quit: WickedShell (Remote host closed the connection) 16:41:23 --- join: Zarutian_HTC1 joined #forth 16:41:23 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 17:11:13 Git is great IMO, would not be able to work this well otherwise 17:11:29 bisect, branch, worktree, cherrypick, rebase, log, blame 17:16:31 For build systems, Nix is definitely my favorite. 17:17:14 Well it's more about package management 17:20:34 --- nick: Zarutian_HTC1 -> Zarutian_HTC 17:27:42 --- quit: Zarutian_HTC (Remote host closed the connection) 17:30:07 --- join: Zarutian_HTC joined #forth 17:30:25 --- quit: Zarutian_HTC (Client Quit) 17:35:29 Trying to build byok I get,cc -c src/stdio/printf.c -o src/stdio/printf.o -std=gnu11 -O2 -g -Wall -Wextra -ffreestanding -fno-builtin -D__is_byok_libc -Iinclude 17:35:29 src/stdio/printf.c:7:10: fatal error: 'kernel/tty.h' file not found 17:35:44 Heh, wrong folder include 17:38:11 --- quit: dave0 (Quit: dave's not here) 17:54:46 inode: how did you get it to build? 18:25:43 --- join: boru` joined #forth 18:25:45 --- quit: boru (Disconnected by services) 18:25:48 --- nick: boru` -> boru 19:14:10 --- quit: spoofer (Quit: leaving) 19:18:08 --- join: spoofer joined #forth 20:52:02 --- join: dave0 joined #forth 20:57:35 --- quit: sts-q (Ping timeout: 264 seconds) 20:58:37 --- join: sts-q joined #forth 21:00:02 --- join: hwj joined #forth 21:00:12 --- nick: hwj -> hosewiejacke 21:00:17 --- quit: hosewiejacke (Client Quit) 21:00:29 --- join: hosewiejacke joined #forth 21:16:49 --- join: gravicappa joined #forth 21:25:06 --- quit: hosewiejacke (Ping timeout: 260 seconds) 22:10:40 --- join: hosewiejacke joined #forth 22:38:09 --- quit: nmz (Quit: EXIT) 22:39:18 --- join: nmz joined #forth 22:52:03 --- join: lispmacs joined #forth 23:58:46 siraben: the same way that i listed in that pastebin splurb, i'll do it afresh to see if i've left anything out 23:59:59 --- log: ended forth/20.11.24