04:18:08 --- log: started forth/21.02.28 04:18:08 --- join: clog joined #forth 04:18:08 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th' 04:18:08 --- topic: set by proteusguy!~proteusgu@cm-58-10-208-146.revip7.asianet.co.th on [Mon Dec 30 10:43:28 2019] 04:18:08 --- names: list (clog cartwright sts-q gravicappa boru lispmacs X-Scale Croran Vedran shmorgle mark4 proteus-guy +proteusguy astrid _whitelogger +KipIngram patrickg siraben jimt[m] jevinskie[m] jn__ koisoke rprimus cp- cheers- a3f_ tabemann remexre jyf kiedtl TangentDelta spoofer_ crest_ Keshl_ actually1atman djinni ecraven pareidolia_ jedb_ rixard tolja guan tangentstorm krjst routeveg crc- APic dddddd Wojciech_K fiddlerwoaroof veltas dnm crc mstevens ovf rpcope- klys neuro_sys) 04:18:08 --- names: list (nitrix ornxka dzho lonjil mjl Lord_Nightmare dys lispmacs[work] wineroots nihilazo rann phadthai bluekelp) 04:18:29 SP@ gives you the value of the stack top after pushing TOS to it, and it gives ...FFF8 for me. Therefore when the stack is empty at interpreter SP is ...0000 i.e. not STKSZ-CELL 04:25:03 Changing start to STKSZ-2*CELL now I don't segfault and empty stack SP is ...0008, I think there's an off-by-one in your ABORT 04:34:52 mark4: QUIT isn't meant to reset the parameter stack, ABORT is supposed to do that before calling QUIT. 04:36:47 And I found the bug, you run SP0 SP!, but SP! (correctly, for cases where you're not resetting) pops the top of the new stack pointer into TOS 04:38:02 So either SP! needs to store n-CELL before popping, or you need to run SP0 CELL - SP! 04:39:20 In my forth SP! just sets SP and TOS becomes nonsense, so you can only reset the stack with it, so I don't have this bug 04:39:32 Because my ABORT code just does S0 SP! 04:48:24 --- quit: _whitelogger (Remote host closed the connection) 04:51:23 --- join: _whitelogger joined #forth 05:03:33 siraben: Why do you want that kind of info, out of interest? 05:04:20 veltas: well I'm studying analysis and topology at the moment and like the rigor, and wanted to see how similar techniques could be done for floating-point 05:04:39 which is of great importance because fixed point severely restricts the range 05:04:46 Oh okay cool 05:05:31 more excuse for some assembly or C programming too, heh 05:05:53 Well people complain about floating point numbers being illogical, but they would never allow the banach tarski paradox 05:06:26 So maybe they're better than multidim real spaces? 05:07:09 I think "the axiom of choice" is ironically named 05:07:24 well Banach-Tarski follows from AOC 05:07:42 yeah it's a pretty weird axiom especially for constructivisrs 05:07:47 constructivists* 05:09:21 veltas: which parts of floating seem illogical to people? Maybe predicting error propagation/losing the nice ring property of R are some examples 05:09:43 a+(b+c) does not necessarily equal (a+b)+c in IEEE floating point 05:30:49 Just stuff like that yeah 05:31:23 The issue is just that people don't know anything about floating point, and then when it doesn't do what they want the first time they go complain 05:34:47 siraben: What topics are you on right now in analysis/topology? 05:36:00 --- join: dave0 joined #forth 05:36:51 veltas: the topology I'm learning is for differential geometry, so just enough of it (went from open sets to Heine-Borel and countable bases in a few weeks), now we're on manifolds 05:37:27 for analysis, the usual, so Cauchy completion of Q gives R, Bolonzo-Weierstrauss, limits and continuity so far 05:38:14 many of the results if course would not hold in FP because you can't just take an arbitrarily small epsilon neighborhood :( 05:38:59 perhaps I shouldn't be too concerned because that's all the subject of numerical analysis 05:41:10 I never really followed the rabbit hole but there is supposedly an alternative approach that doesn't use axiom of choice 05:41:26 It's a bit like the alternative approach of Forth compared to other languages, so seems like it might appeal to you 05:41:34 Why does AOC need to be used? Haven't gotten to that part yet. 05:41:57 You have if you've got R, I don't think you can define R without it, or at least the 'easy' definition uses it 05:42:31 It's not given a huge amount of attention because you don't want to trip up your analysis students right when they're about to start using what was just assumed in high school 05:43:08 Interesting, and I thought we know all we needed to know about R because of the completeness property 05:44:28 The completeness property is sort of the definition of R, and the assumption that R exists based on the definition assumes AOC 05:44:51 ....I think 05:45:08 Go ask in #math, I haven't done maths in years so there's probably more nuance somewhere 05:46:04 Ok I'll look out for it. Did you study mathematics in university? 05:46:21 When you are thinking about AOC at all you are going slightly more rigorous than you tend to in analysis and going to the level of axiomatic set theory 05:46:39 Yes I did but dropped out / changed course after years of poor health 06:01:32 siraben: Let me try, consider the class of "sequences in Q that converge", not necessarily to a number in Q, and we can define an equivalence relation for sequences that converge to each other (i.e. eventually get within epsilion of other sequence). To get an equivalence class from that (which is R, with different labels) you need AOC. 06:01:44 I don't know if that whole message sent 06:03:40 By even talking about that first class I might have already assumed AOC... okay enough maths back to forth 06:06:09 veltas: Oh I see that makes sense. You don't have actual equality if the Cauchy sequences so need to define an equivalence relation, which is probably where AOC comes in 06:06:31 Yeah would be too low level details for an analysis class 06:06:40 s/if/of/ 06:08:20 When we did real numbers at uni, it was in the first couple weeks and we spent almost no time on it 06:12:31 --- join: X-Scale` joined #forth 06:13:27 --- quit: X-Scale (Ping timeout: 256 seconds) 06:13:27 --- nick: X-Scale` -> X-Scale 06:31:47 Wanna do something interesting in math/computers and get rid of that abomination called floating point? Switch to posits! :-) 06:34:11 --- join: X-Scale` joined #forth 06:34:29 --- quit: X-Scale (Ping timeout: 276 seconds) 06:35:06 --- nick: X-Scale` -> X-Scale 06:42:21 proteusguy: Some interesting reading in there I'm sure but I happen to think floats and fixed are fine 06:42:35 Well I know there is interesting reading because I started reading about them 06:43:10 Why does everyone always refer to floats as "IEEE floating point", the concept is larger than the standard and doesn't usually depart from what everyone knows or is talking about 06:43:51 veltas, floats are evil - always have been. the whole history of how it came to be shows what an awful design by committee standard it was. It's basically the space shuttle. Set computation back 40 years. Posits is SpaceX. ;-) 06:45:03 veltas, are you aware of any implementations of floats that don't have negative & postive zero? How many versions of NaN do they cause? How many can represent 0.1 well? 07:07:25 proteusguy: what's good about posits? do you know of texts that have a rigorous treatment of them? 07:08:05 --- join: f-a joined #forth 07:10:28 Oh https://www.cs.cornell.edu/courses/cs6120/2019fa/blog/posits/ seems like a decent introduction 07:13:44 Representing 0.1 exactly seems irrelevant since no matter the choice of base, "nice" decimals would more often than not line up with the exponent/mantissa representation 07:14:48 hmm hard for me to judge the pros/cons of posits compared to IEEE without having read up on numerical analysis, perhaps good for later 07:16:25 TIL in machine learning model it's common to degrade floating-point precision to 16 bits because it halves the model size, with not much of an impact on gradients 07:17:32 --- quit: dave0 (Quit: dave's not here) 07:34:07 siraben, I don't have those bookmarks handy as I reset this machine. There are some excellent YouTube videos by the inventor that should be easy to find. Really impressive stuff when dealing with computations that don't need to be precise but need to have a known good accuracy. 07:34:47 We just need hardware to start implementing them as alternatives to floats so we can consign floats to the wastebin of compu-history. 07:37:14 --- quit: f-a (Remote host closed the connection) 07:39:50 --- join: f-a joined #forth 08:13:33 veltas good finds! 08:16:50 i seem to recall that proteusguy might be a math wizz :) 08:16:57 siraben: Yeah 16-bit floating point is surprisingly good, the caveats just come in faster and harsher 08:17:22 Well then he can tell me if I'm right about the R AOC thing 08:18:22 just woke up. went to bed at 1:30 but did not get to sleep till past 4am grrr 08:18:44 mark4, nah - just a hard core eliminator of complexity whenever possible forth-wright doing what us forthers have been doing since 1968 - exposing the nonsense of what pretends to be proper computer engineering & architecture! ;-) 08:19:08 going to make coffee - we can push those bug fixes to github :) 08:19:16 siraben, (aka smart ben) is a stronger math whiz than me. 08:19:18 mark4: If you can't tell from the fact that I found the bug, your code is very good. I would have no hope if it was an unmaintainable mess 08:19:24 As I'm certain veltas is as well. 08:19:46 I just know some stuff 08:20:00 proteusguy: i have said for a long time that the best solution to any given problem is the simplest solution to it - the real problem is finding that simplest solution and the industry has abandoned that 08:20:38 veltas: if you cant understand my code how the heck am i going to be able to understand it later :) 08:20:44 +1 (not good for business) 08:20:48 i always write my code to be readable as best i can 08:21:20 not that the memory manager or the terminfo code is trivial to understand overall lol 08:21:58 The bits I had to look at to fix the bug were all fine 08:22:00 and the tui code is currently b0rken lol 08:22:17 Yeah I think I'd prefer it if all the graphical stuff was optional 08:22:24 OOOOOH!!!! your crash was because of my not doign sp! correctly? 08:22:43 Is it fixed on your computer or something? :P 08:22:57 no ive not changed anything here yet 08:23:02 need to get coffee first :) 08:23:08 but i was not experiencing that crash 08:23:13 I've got the master branch from github 08:23:23 "it works on my machine (tm)" is not a good attitude tho :) 08:23:27 Well segfaults aren't guaranteed, it could be my system just chooses to make pages more granular 08:23:40 They also appear to be random 08:24:00 do you want to get rid of the status bar and have a simpler "hello" option? 08:24:06 we can do that... after coffee hehe brb 08:24:13 Yeah that would be my preference 08:24:20 My Forth just starts and says "HI" 08:29:18 It's not obvious to me what the fix should be, either change SP! to subtract a cell first or change the stack reset code to do SP0 CELL - SP! 08:29:33 I think it will depend on which part you think deserves to be more generic / simpler 08:34:31 --- join: inode joined #forth 08:35:39 well, the status bar depends on the terminfo parsing 08:35:45 same as the hello message currently does 08:36:08 a more generic hello can be done easilly. 08:36:30 if you dont want any of the terminfo stuff included you can create a stripped down version of src/x4.f <-- extend load file!!! 08:36:44 if you look at ./extend it pipes src/x4.f to kernel.com 08:36:58 you can strip out anything you dont want to use. 08:37:07 if you have a new machine 08:37:11 and you need to port forth there 08:37:23 what is your most likely choice? 08:37:30 roll it up yourself from assembly? 08:37:36 some kind of cross compilation? 08:37:48 both i would say 08:37:54 a well known™ forth whom you can twe- I see 08:38:02 leverage the power of forth on an existing machine to create an assembler for the new machine 08:38:31 then use the existing machine to cross compile for the new one 08:38:41 mhhh 08:39:28 for example i have been writing an ESP32 assembler 08:39:44 its mostly complete, just need to pull my head out and write the branch resolution lol 08:40:56 veltas where exactly did you change? 08:42:16 you think sp! should not pop bx? that would leave what ever was at top of stack prior to the change still in top of stack 08:42:22 that actually seems more correct to me 08:42:39 mark4: No that's not what I've said at any point :P 08:42:50 what was your fix lol 08:43:19 I personally think SP! is correct, do SP0 CELL - SP! instead of SP0 SP! in QUIT (which should really be in ABORT) 08:44:20 quit should leave the stack unchanged and abort should reset the stack? 08:44:35 something in the back of my wrinkly brain thinks that sounds right lol 08:44:52 QUIT should reset return stack and run interpreter, ABORT should reset parameter stack and then QUIT 08:45:06 I believe that's how fig-forth does it, I can check if you want 08:45:29 i think you are right 08:45:29 I'm assuming that's more authoritative to you than the standard? 08:45:42 "the" standard? 08:45:43 lol 08:46:02 i tend to follow the 83 standard more closely - but the way ANS does it might not be objectionable to me either 08:46:27 my objection to ANS is that they are taking a simple thing and making it more complificated than it needs to be 08:46:42 i loathe and despise both "invert" and "postpone" 08:46:45 You don't have to explain to me, I am not a huge fan of the standards 08:46:47 for example 08:46:58 im 100% compliant with the x4 standard :) 08:47:17 and its perfectly fine for that to be a moving goalpost 08:47:35 ok. so back to the bug. sp0 cell- sp! ? 08:48:02 i moved at line into abort too 08:49:15 i made that change and thats possibly uncovered some more bugs 08:49:28 when i run ./x4 the status bar shows 3 items on the stack :) 08:49:32 I didn't fix it on mine, I got it to not segfault by moving S0 further in, that's how I realised it was some kind of off-by-one 08:49:44 You will probably need to change depth too 08:49:53 I mean the word DEPTH 08:50:06 i know :) 08:50:11 i know what you meant 08:50:35 but the items on the stack are -1 an f7f4xxxx address (possibly related to environment) and a 1 08:52:31 yea the environment is at fffd4b38c when i run it so the f7f8xxxx is not env 08:53:48 i added a cell- to depth and now theres only 2 items on the stack when i run it heh 08:54:32 sp@ sp0 cell- - or sp@ cell- sp0 - ? 08:55:11 I just put 1- at the end 08:55:38 ya that seems simpler 08:55:49 but its tribal knowledge why that -1 is there now lol 08:56:07 when you run do you have a dpeth of 2 ? 08:56:26 k think something is legitimately leaving shmoo on the stack 08:56:28 somewhere 08:56:42 i mean... not legitimately :) 08:57:27 Not for me, it's 0 now 08:57:45 did you remove any of the terminfo stuff yet? 08:57:48 or just this fix 08:58:34 My diff https://pastebin.com/raw/iiHNAjpd 08:58:36 No 09:03:34 let me see if i get a clean stack in xterm 09:03:41 maybe its a difference with gnome terminal 09:04:07 nope. depth 2 still. weird 09:04:10 I would bet money it's not xterm 09:04:24 Did you do 1+ or 1-? 09:04:27 no i was not saying xterm was possibly at fault 09:04:53 What are you writing to get the depth, looking at status or "depth ."? 09:04:54 prior to this change i had 3 items on the stack at launch. after i have one 09:05:15 I mean I would bet money the terminal emulator doesn't affect it 09:05:19 i did 1- 09:05:39 no but my handling of them has had bugs like this in the past 09:06:13 Oh right 09:09:15 When "Works for me (TM)" applies to the user and not the programmer :P 09:10:02 heh 09:38:26 --- quit: gravicappa (Ping timeout: 276 seconds) 09:39:35 --- join: gravicappa joined #forth 09:41:21 mark4: Might want to update readme, you say you use IRC as "I440r" 09:41:39 long time since i used that nick :) 09:41:51 i need a web site where i can do REAL documentation :/ 09:42:03 --- nick: mark4 -> I440r 09:42:06 Can we have an official x4/x64 IRC channel? 09:42:11 Ibanez 44- radius 09:42:22 well technically this is an official x4/x64 channel lol 09:42:35 but there are almost no rules about what you can talk about in here 09:42:56 so talking x4 specifics or the like is not "noise" 09:43:04 440 radius 09:43:20 thats the guitar they based the JS series on (Joe Satriani) 09:43:45 i created this channel when i started writing x4 (called isforth back then) 09:43:54 sat in here SOLO for a cpl of years lol 09:44:56 --- nick: I440r -> mark4 09:46:34 wtf am i no longer channel owner? lol 09:46:42 not logged in in ages lol 09:47:02 Founder : freenode-placeholder-accoun 09:47:11 ouch 09:48:01 lol not really a problem 09:48:10 --- join: julianmarcos joined #forth 09:48:14 i never claimed ownership, just stuardship :) 09:48:15 --- part: julianmarcos left #forth 09:48:21 -ChanServ(ChanServ@services.)- Entry Nickname/Host Flags 09:48:21 -ChanServ(ChanServ@services.)- ----- ---------------------- ----- 09:48:21 -ChanServ(ChanServ@services.)- 1 foucist +ARefiorstv [modified 9y 6w 1d ago] 09:48:24 -ChanServ(ChanServ@services.)- 2 crc +AVeiorstv (op) [modified 9y 6w 1d ago] 09:48:27 -ChanServ(ChanServ@services.)- 3 kc5tja +AVeiorstv (op) [modified 9y 6w 1d ago] 09:48:30 -ChanServ(ChanServ@services.)- 4 KipIngram +AVeiorstv (op) [modified 6y 11w 2d ago] 09:48:33 -ChanServ(ChanServ@services.)- 5 proteusguy +AVeiorstv (op) [modified 6y 11w 2d ago] 09:48:36 -ChanServ(ChanServ@services.)- 6 tangentstorm +AVeiorstv (op) [modified 6y 11w 2d ago] 09:48:39 -ChanServ(ChanServ@services.)- 7 freenode-placeholder-account +AFRefiorstv [modified 46w 1d 4h ago] 09:48:42 -ChanServ(ChanServ@services.)- ----- ---------------------- ----- 09:48:44 -ChanServ(ChanServ@services.)- End of #forth FLAGS listing. 09:48:47 sorry for megaping 09:50:02 --- mode: ChanServ set +v crc 09:51:28 wow what happened? and hard to believe it's been over 6 years since I was made... 09:54:24 --- join: jess joined #forth 09:55:04 were about to possibly get a channel name change to ##forth 09:55:12 which i objected to prior to loki dieing 09:55:24 i won that arguement with him but im not going to be pissy about it now lol 09:56:45 I think it is *required* as now 09:57:02 among other stuff — i.e. we had to change #haskell.it to #haskell-it 09:57:23 but only when freenode staff remember it xD 09:57:26 it was a requirement back then too but chuck moore gave his ok on this being the official irc forth channel 09:57:38 oh 09:57:44 then maybe it *is* part of an organisation 09:57:48 and not «general forth talk» 09:58:06 ok, I received a reply 09:58:08 . 09:58:09 For such older hardware, you need to port an assembler and the primitives 09:58:09 (which is exactly what Klaus Kohl-Schöpe did for the 8086). 09:58:10 . 09:58:18 what does he mean with «port an assembler»? 09:59:06 ok were staying as #forth :P 09:59:13 but the owner is going to be placeholder forever 09:59:14 no biggie 09:59:27 I suspect you could poke freenode staff to get your credentials back 10:06:45 ok so i registered this channel with the nick I440r almost 20 years ago 10:06:52 i have not used that nick in a long time 10:07:39 so when I440r got deregistered due to inactivity this channel ownership dropped to the placeholder owner 10:07:46 so now NOBODy owns this channel lol 10:07:53 and im somehow not an oper either lol 10:08:58 yeah, #freenode staff can help, as I have been teeling you :P 10:08:59 the only way to get #forth off placeholder is to have chuck moore come in and register it as the official forth irc chhanel officially or something lol 10:09:08 i am in #freenode lol 10:09:20 i have been talking to them as soon as i saw i was no longer the owner lol 10:09:32 :P sorry 10:09:51 grab the attention of an op there and — well I hope you have your old mail accessible — you should be back on track in no time 10:09:52 no 10:10:01 well :P 10:10:05 that *might* be a problem 10:10:16 i might email CM and ask him if he would like to register it back in his name 10:10:23 i have no objections to CM being "THE" owner :) 10:10:31 else it can stay on placeholder :) 10:10:40 they have to get hold of some active — active here — OPs etc. 10:10:42 and any oper in here can +o me any time lol 10:11:00 and the fact that i did not know i cant +o myself shows how long its been since i have done so lol 10:11:08 not some. ALl 10:12:08 they said they could register ##forth to me and some oper here can redirect #forth to ##forth. 10:12:09 meh 10:12:14 keep this channel 10:12:42 I wouldn’t be against — not that anyone cares — to a move to ##forth 10:12:50 but we would need a functioning redirect 10:21:01 --- quit: proteus-guy (Ping timeout: 265 seconds) 10:31:01 im emailing chuck moore and asking if he would like to come by and take ownership :) 10:31:22 and if he would like to come and visit us again 10:31:38 i dont remember if any of the current regulars were here when CM came by last time 10:31:47 maybe crc? 10:32:51 let’s pull a stunt and retheme this to a Rust channel 10:32:52 --- join: proteus-guy joined #forth 10:32:57 I think that was just before I started here 10:34:49 well i just sent CM an invite - he is not one for idling on irc tho :) 10:35:09 ugh. the email bounced lol 10:35:17 his web site needs updating 10:35:26 he didnt die yet did he? 10:35:41 Your message couldn't be delivered to chipchuck@colorforth.com because the remote server is misconfigured. See technical details below for more information. 10:35:41 Hmm, my #retro is also a placeholder account holder; I might want to address that at aome point 10:36:08 He's not doing much online now, but still alive as of a few months ago 10:47:03 https://www.facebook.com/GreenArrays-Inc-202003206534708/ <--- WOW!!!!!!!! 10:52:12 keep us #forth - we're legit. 10:52:55 i don't have Facebook any more so can't check. 10:54:08 when facebook blocks you from viewing one of their accounts you can actually ADBLOCK their block and see the account :p 10:54:44 the page says that facebook UNLAWFULLY registered their companies page and the only way they can take ownership of it is to have one of their employees create a PERSONAL account 10:55:15 and i agree with we are legit, chuck moore gave us his blessing to be #forth 10:55:28 but because i have not used i440r in a long time the registration dropped 10:55:40 so im no longer associated with this channel at all lol 10:55:47 not the owner, not even an oper lol 10:55:57 but its still mine k. just sayin :P 10:59:50 gontacted greenarrays. not sure if cm is still associated but maybe they know how to contact him :) 11:02:49 tho...probably not on sunday :) 11:05:05 cm is still listed on the board of directors so... 11:07:05 --- quit: gravicappa (Ping timeout: 245 seconds) 11:26:36 ! they replied and gave me an active email address for him :) 11:28:59 crc there? 11:29:17 or proteusguy ? 11:29:42 if i promise not to abuse it can i haz +o plzkthxbai? :) 11:33:08 --- mode: ChanServ set +o crc 11:33:37 --- mode: ChanServ set +o mark4 11:33:50 Done :) 11:40:01 --- quit: f-a (Read error: Connection reset by peer) 11:43:55 --- join: f-a joined #forth 11:47:39 veltas: omg were you running x64 or x4? i just looked at the liner script for x64 and it DOES specirfy a load address of . = 0x401000; 11:47:54 x4 has a different load address 11:48:29 AND... in x64 when i type "drop" it segfaults :) 11:54:17 lol ty :) 11:55:05 was going to add "do drop >in" to the topic and discovered i cant! lol 11:55:23 --- topic: set to 'Forth Programming | do drop >in | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th' by mark4 12:03:21 ok so i guess im not authorized to add perm access to myself lol 12:03:35 i wonder if any oper now existing has authority to add opers 12:12:01 yes 12:12:07 try woth /op f-a 12:12:10 (and then /deop) 12:12:40 and read an irc manual, when spam hits it hits fast and loose :P 12:18:09 I can't edit the access permissions; looks like only foucist and the placeholder have +f 12:19:57 who is foucist? an admin here? 12:20:03 yup (@ +f) 12:21:51 i have no idea who foucist is 12:27:37 --- join: tech_exorcist joined #forth 12:28:32 notify foucist 12:28:44 hello 12:29:01 --- join: eli_oat joined #forth 12:30:11 he is just a user and has not been in freenode in 41 weeks 12:30:17 grr and he has founder status lol 12:30:34 tech_exorcist: you interested in forth programming? 12:31:03 yeah 12:31:11 know anything about it? 12:31:23 basically nothing 12:31:32 good place to start :) 12:31:40 :D 12:37:08 beside gbforth, does anyone know of game building tools for forth/ 12:37:10 ?* 12:37:21 I am sure I have seen something 12:37:23 let me fish it 12:37:27 thanks! 12:37:31 much appriciated 12:37:35 I suspect you use sdl2, right eli_oat ? 12:37:55 sdl2 is my first go-to, yeah, but I'm not beholden to it 12:38:08 I'd be happy to fiddle with roguelikes, or even text adventure stuff 12:38:14 I just wanna fiddle with game-code in forth 12:38:39 https://laptrinhx.com/a-game-development-framework-written-in-forth-swiftforth-version-3360072648/ this is swift forth (wich I think it is not FO- well if you do roguelike etc, remember that forth has `at` 12:39:23 (and if you like RLs, I have recently published for a jam this http://ariis.it/link/repos/pigafetta/bin/ — not in forth but you might enjoy it) 12:39:36 if you want to really go retro https://gbforth.org/ 12:39:38 ooooh, I'll check it out 12:39:51 yeah, gbforth is what I've been poking at so far 12:40:25 as a total forth noob, there are a bits of it that still feel a bit more like ASM at the moment -- so, head swimming 12:40:30 BUT, I am enjoying it :P 12:40:38 hehe no worries 12:40:46 Foucist was active here and in #retro ~6-8 years ago 12:40:55 with only v limited time to devote to it, though, and wanting to actually make something more than a hello world, I'm thinking gbforth probs isn't the best go-to focus right now 12:41:07 yeah 12:41:15 they actually have examples 12:41:44 the ones in the repo are where I've started 12:41:48 IIRC, he doesn't use Forth much since then; was using Ruby for a while, not sure about currently 12:42:07 crc: try to see if you can get +f from them then 12:42:18 it is unwise not to have active fs 12:42:51 f-a: I'll see if I still have his email address from back then 12:48:54 eli_oat: x4 has full cursor control in terminals, you could write a rogue like game there :) 12:49:05 tho... the TUI code is kind of broken and needs fixing :/ 12:49:31 that adds to the fun! 12:49:59 eli_oat: if you dont use the TUI all the cursor control stuff works just fine 12:50:12 ill be adding gray scales and full RGB color control soon 12:50:30 this x4? https://github.com/mark4th/x4 12:51:01 yes 12:51:04 sweet 12:51:07 its for linux 12:51:17 download, do a make (needs nasm) then ./extend 12:51:24 as a test and to show cursor control in action run 12:51:25 sick! easy peasy 12:51:36 I'm interested in retroforth 12:51:41 maybe I should join #retro and hang out there too 12:52:01 although looking at retro code confuses me (tbh looking at forth code confuses me in general still) 12:52:01 I've been lurking in both crc is wicked helpful, and retro's docks are next level 12:52:03 ./x4 -f src/examples/dots/wmdots.f 12:52:24 then type "main enter" without the quotes :) 12:52:31 make your terminal as big as it can go. 12:52:46 that demo will be wicked once i get rgb or gray scales implemented in terminals :) 12:55:35 hmm, doesn't seem to play nice with my weird virtualized debian enviroment, but I have another vanilla debian box I can try it on this evening 12:55:41 I'm excited to check this out! 12:55:59 I've spent less time writing forth, and waaay more time exploring various implementations of it :P 12:56:23 oh TIL retro runs on a VM, that's cool 12:56:38 * nihilazo knows nothing about different forths 12:58:30 thanks for the recommendations f-a and mark4! I've gotta bounce but will defo be back 12:58:32 --- quit: eli_oat (Quit: WeeChat 2.3) 13:09:20 I lurk here and in #retro and will try to answer questions on retroforth (or other systems where I can) pretty quickly, though the speed will vary depending on real-world busyness 13:12:35 or sleep mode :) 13:13:13 Sleep is just ~4 hours of the day at best 13:13:34 I could never do it 13:15:22 --- join: Zarutian_HTC joined #forth 13:16:35 how come only 4 hours? 13:17:13 I don't sleep well 13:35:42 mark4: Oh right so I guess this is the official #x4 channel then :P 13:40:15 mark4: I'm using x64 13:42:16 mark4: "x4 has full cursor control in terminals, you could write a rogue like" that's of interest to me 13:42:26 Separate interest to regular use though 13:45:10 nice to know people like roguelikes 13:46:35 --- quit: inode (Quit: ) 13:54:24 --- quit: _whitelogger (Remote host closed the connection) 13:54:32 veltas check out the demo i linked i think that works in x64 too 13:55:03 What does it do? 13:55:09 Oh "main enter" 13:55:18 3d rotating dots in a terminal using different characters for pixles lol 13:55:29 it looks better with a large xterm and a smaller font 13:55:52 its going to give you a black background tho :) 13:56:24 its also only using the standard 16 color palette because i dont have the gray scales or RGB coloring implemented in forth yet 13:56:34 Cool 13:56:43 main is the entry point to the demo 13:56:46 Yeah if I make the font too small it doesn't work at all 13:56:47 space stops it 13:57:01 yea xterm lest you make a rediculously small font lol 13:57:06 tiny works i think 13:57:17 I typed the word enter but it did not do any harm :P 13:57:20 but the larger the terminal window the more memory it takes 13:57:23 --- join: _whitelogger joined #forth 13:57:35 yea i meant hit the enter key :) 13:57:55 Does it just go over the 16MB or however much memory you have for dictionary? 13:58:37 its allocated separately 13:58:46 using the memory allocator i wrote 13:58:58 lol 13:59:06 It segfaults when I leave it for a bit 13:59:34 The good forths are the ones that capture my interest and imagination, and also segfault on a regular basis 13:59:49 Like the colorforth presentations by CM 14:00:21 those seffaults did not used to happen at all - but x64 is still in its infancy compared to x4 and many of the examples dont run right in it yet 14:00:58 I'm running it in gdb right now 14:02:59 Yes I know x64 is experimental :P 14:04:26 x4 does not segfault that i can tell 14:04:30 Can anyone get me into the exclusive ForthHub group? 14:04:59 what i really need to do is go through every single primitive in x64 and compare it with the one in x4 and verify i did the translation correctly 14:07:59 Nah I think just use it and keep debugging 14:08:06 Do you have a test suite? 14:08:39 Probably most of it is correct 14:09:50 mark4: If I have an address in a word, how can I find out what word it is (if it's in extended part)? 14:10:11 RIght now I am looking at WORDS assuming they're in order and doing a binary search with ' 14:10:19 ooh that would be an interesting debug word to write :) 14:10:20 for the address 14:10:32 Yes I think that would be a useful word 14:11:02 if you look at the structure of my words i have a header in head space 14:11:08 I suppose it would just go backwards through the list until it's less than the address and then name the previous word 14:11:21 that points to the CFA and one cell lower down in memory from the CFA is a pointer back to the NFA 14:11:32 thats so i can do name> and >name easily 14:12:08 well. with a slight modification to the macros in src/kernel and to (head,) you COULD add a marker cell so it could be something like 14:12:17 Yeah admittedly a hexdump would make this easier, most of my debug tools are geared towards well structured C output 14:12:29 A hexdump with an ASCII preview I mean 14:12:31 0xaa55aa55 followed by the NFA pointer followed by the CFA 14:12:44 Like flash :P 14:12:51 so if you are at an address above cfa scan back in memory to the maker. the next cell up points to the nFA 14:13:24 understand 14:13:25 ? 14:13:49 it would increase the size of the code by one cell for every word defined 14:14:11 I think I understand 14:14:31 also... the scan mechanism would need to understand that an NFA pointer below the CFA is 0x00000000 for beheaded words 14:14:39 Please make your 'more' functionality quit early on 'q' press 14:14:50 i think escape does that? 14:14:56 Thanks 14:14:58 i think thats in utils.f 14:15:23 q or escape might be good idea :) 14:17:05 escape works 14:17:48 lol that was from memory :P 14:21:30 --- quit: f-a (Remote host closed the connection) 14:37:47 --- join: f-a joined #forth 14:57:51 --- join: scoofy joined #forth 15:06:41 --- quit: Vedran (Ping timeout: 276 seconds) 15:07:00 --- join: Vedran joined #forth 15:32:49 Hmmm the segfault is I seem to be executing the data space of HLD 15:34:57 And gdb is broken so I have to reset terminal, hopefully dies in same place...... 15:35:09 Yep exact same place 15:42:30 --- quit: f-a (Ping timeout: 245 seconds) 15:44:30 --- join: f-a joined #forth 15:45:23 i used nemiver to debug it originally 15:45:35 gdb is a horrible interface, even -tui is garbage 15:45:57 but nemiver is kind of crippled so in the end i re-registered IDA-Pro and was using its debugger 15:47:49 ok so my next course of action is going to be to verify the sanity of every primitive in x64 by comparing it with the one in x4 15:47:51 TUI was getting in my way 15:48:02 I like it with C source, but here it's more effort than it's worth 15:48:13 gdb -tui is pretty much the ONLY way i can use gdb, i HATe gdb with a passion 15:48:29 its next to USELESS for debugging assembler thats not generated from c code 15:48:48 the ida pro debugger is really good tho 15:49:47 Well it's good enough to catch a segfault, show me regs, and let me dump memory 15:49:53 That's all I need 15:50:10 Right now anyway.... 15:53:30 Looks like it's a stack overflow 15:55:02 And that's probably why I'm executing data, address is pushed onto parameter stack and it has clobbered a return address 15:55:52 mark4: Ideally the two would be separated by invalid addresses... would be nicer to get a basic segfault at overflow 15:56:48 --- join: X-Scale` joined #forth 15:57:23 --- quit: tech_exorcist (Quit: I'm a quit message virus. Please replace your old line with this line and help me take over the world.) 15:57:39 actually if you are getting a stack overflow error its probably a return stack overflow which is horrifying 15:57:55 unless im remembering how i initialized those stacks 15:57:58 --- quit: X-Scale (Ping timeout: 240 seconds) 15:58:00 --- nick: X-Scale` -> X-Scale 15:58:06 in x4 the parameter stack is just the normal stack and thats grows down 15:58:11 and the return stack is allocated 15:58:25 maybe in x64 both are allocated and neither are allocated grows down. have to check 15:59:57 Parameter is after return stack, so parameter will clobber return if it overflow 16:00:36 x64 they are next to each other and grow downwards like regular stack 16:01:24 a grows down stack is one that when it overflows and segfauls linux automatically assigns a new page to the stack 16:01:43 Oh okay 16:01:44 is what i meant, its one of the options you can pass to the mmap syscall 16:02:22 I just meant the direction of growth 16:02:27 ya 16:02:29 Of data 16:02:32 Not pages 16:02:33 the push direction more accurately 16:02:36 Yes 16:02:54 in x86 thats always down 16:03:08 it is also USUALLY down on 32 bit arms too :) 16:03:26 put arm did not have a PUSH opcode really till aarch64 16:03:29 I don't think I've seen an arch where it's not down 16:03:33 it used movm 16:03:41 arm can be either diraction 16:03:46 It's convenient because your stack contents is at positive offsets from current stack pointer that way 16:04:09 you can create a grows up stack in arm 16:04:10 And you can stick it at the end of your available memory in a flat setup 16:04:21 yup 16:04:26 which is what i do :) 16:04:30 veltas: 6502 and variants? Motorola 68K? 16:05:04 Zarutian_HTC: I was thinking of 6502 but couldn't remember which way, is it really upwards? 16:05:04 Zarutian_HTC: does that mean coldfire is grows up too? 16:05:06 that Hitatchi sr04 bot uses. 16:05:53 in 6502 iirc, the stack is in page 0x0100 and incr when pushed iirc 16:06:14 yes the stack is in page 1 16:07:51 and I am not sure but I suspect 6502 never had any stack relative memory addressing mode 16:08:03 Zarutian_HTC: I just looked it up and it's not upwards, it grows downwards 16:09:21 And apparently S points to next free word rather than last allocated word? Very strange 16:09:36 --- part: f-a left #forth 16:09:39 --- join: f-a joined #forth 16:13:02 6502 has push and pop but with indexed x and indexed y you CAN index into the stack 16:13:07 but i dont think ive ever seen that doen lol 16:13:42 veltas: on arm you can make push grow up or down and make the stack pointer point to the last item pushed or to the next cell to push into 16:13:54 ldm and stm 16:14:26 not movm which is 68k bs lol 16:14:53 You have told me this like 3 times now mark4 16:14:53 ldmfd stifd ldmia stmia i think 16:15:14 veltas: i didnt state taht you can point to full or to empty tho :) 16:15:51 I find features like this really pointless 16:16:24 well arm does not really have push or pop it has load and store multiple which you can use to do memory to memory moves really really fast 16:16:34 Like on PowerPC the ability to work with either endianness is never used, it's just there so NT can be incompatible with everything else 16:16:50 lol 16:17:13 And big endian itself is utterly pointless and confusing now 16:17:20 --- part: f-a left #forth 16:17:21 eh, it is left out of the radhardened versions of PowerPC 16:17:32 Good 16:17:49 I say little endian is pointless on all levels 16:18:14 It's like saying 8-bit bytes is pointless 16:18:43 and many sane arch have returned to cell addressing instead of byte addressing 16:19:27 Big endian gives me 1-based-indexing vibes 16:19:54 have you looked how contorted and big little endian adder with and without lookahead is? 16:20:34 If it's an 'adder' and it cares about byte order you're doing it wrong 16:22:42 whacha mean? adders in most alus and other places in an cpu core are of the full datapath width of the machine, nowdays 64 bit usually 16:23:05 Yes so by the time the data gets there it is as a 'word', not in bytes 16:23:16 I can read a little endian number from an address as any size, and get the right answer truncated to that read size. 16:25:03 Byte indices are in ascending order of shifts/units, so most endian-aware algorithms operating on the raw bytes are cleaner 16:25:38 And it's convention now too 16:26:09 then why bother with byte addressing? there are byte select instructions/addressing-modes that can select which of eight bytes are used in the calculation 16:26:23 So that's all there is to say about it for me, I don't see point in big endian the way I don't see point in 10-bit bytes. 16:27:03 Well actually 10-bit bytes aren't worse they're just unconventional 16:27:09 I think big endian is actually worse 16:29:46 Zarutian_HTC: Why bother? Because e.g. if I want to store an unaligned 24-bit number in a binary format, I can't in general use a single instruction to load that, and would probably be writing C at work anyway so instruction would be irrelevant 16:30:15 I know of one exploit (old one) that relied on addresses and ints being little endian 16:31:06 There are reasons to want either, but mostly rare concerns. The most common endian-aware code I write is neater with LE 16:31:38 For example big endian is better for encoding words in my tokenized forth that are not tokens 16:31:39 stack ovetflow by one byte, an ending null byte of the shell string 16:32:00 Because I can write the high byte of XT first, and determine if it's in range 16:32:31 Or if it's not in range it's the single byte indexing the token vector 16:33:17 But it's a specialist usage and machine endianness support here is irrelevant to algorithm 16:33:23 that overflow over rode the return address so it started at the 256 byte page of where the calling function was 16:34:18 This is not a very strong point against LE in general though 16:35:39 it just happened to be a handy gadget that used offsets into the callstack, offsets that pointed into the shell string 16:36:19 suffice to say the exploit was rather neat 16:37:33 personally I am against little endian in, file formats, network protocols, and device interfacing 16:39:15 I wonder if there is a reason 16:40:40 The only advantage of big endian I see is making it easier to spot data in a hex dump, because the bytes are in reading order already 16:41:32 hours and hours trying to figgure out why a wrong value was being written to a memory address mappend device control register 16:42:41 mapped* 16:43:11 Yes but the issue there is that there are alternative endianness, you can't blame it on one or the other, only complain that there are two 16:43:29 You, at best, can blame it on the less conventional one for trying to stick around, which is big endian 16:43:40 oh, no there are not two, there at least three 16:44:14 middle endian has it place of honour in the hall of hated abominations 16:45:00 "middle endian" just means using both big and little endian I thought 16:45:27 the damn compiler thought I was writing an in when in fact the cell-word was an 32 bit split into bitfields 16:45:48 an int* 16:45:55 doesnt little endian allow you to store a char in a 23487659234659 bit value and you can just printf it ? :) 16:47:59 The ZX Spectrum's BASIC stores line numbers as big endian for no apparent reason 16:50:57 lol 16:51:01 i had a zx81 16:51:31 typed a full 16k basic program in by hand and on the final "enter" the ram pack moved and.... it crashed 16:52:01 the ram pack plugged in to the back and had legs that lifted the back of the computer up so pushing down too hard unplugged the rm pack lol 16:52:38 * Zarutian_HTC is still looking for that home computer zine that dissasembled Bill Gates MicroSoft BASIC and proceeded to utterly trounch it 16:52:41 but i lived in cambridge where clive sinclair lived... never saw him tho 16:54:45 * Zarutian_HTC notes that was in response to Bill Gates (in)famous letter to the editor 16:55:40 * Zarutian_HTC further notes that in next issue after that the zine published much better BASIC implementation 17:01:49 --- quit: rixard () 17:02:05 it was only eclipsed by Bill Gates use of Ctrl-Alt-Del in Microsoft (yes I am aware of the capitalization changed) software 17:02:33 you know Windows Logon key combo 17:03:33 yea u had to give the vulcan nerve pince to log in lol 17:03:34 DUMB 17:05:24 it was onstensibly to prevent bluepilling the ui 17:06:53 wtf is that lol 17:07:52 it is when someone made a full screen application mimicing the logon screen 17:08:39 aha 17:10:42 the nifty thing that this was before the movie The Matrix had even been shot so the term bluepilling had not yet been coined 18:08:46 --- join: eli_oat joined #forth 18:20:37 --- join: Zarutian_HTC1 joined #forth 18:20:37 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 18:25:45 --- join: boru` joined #forth 18:25:48 --- quit: boru (Disconnected by services) 18:25:50 --- nick: boru` -> boru 18:42:34 --- quit: eli_oat (Quit: WeeChat 2.3) 18:42:56 --- join: eli_oat joined #forth 18:54:32 --- join: dave0 joined #forth 19:02:42 --- quit: eli_oat (Quit: WeeChat 2.3) 19:59:21 --- join: joe9 joined #forth 20:32:58 --- quit: dave0 (Quit: dave's not here) 20:40:03 --- join: gravicappa joined #forth 20:47:56 --- quit: sts-q (Ping timeout: 276 seconds) 20:53:54 --- join: sts-q joined #forth 23:58:22 --- nick: actually1atman -> actuallybatman 23:59:59 --- log: ended forth/21.02.28