00:00:00 --- log: started forth/21.03.06 00:10:32 --- join: dave0 joined #forth 00:46:53 --- quit: mark4 (Ping timeout: 265 seconds) 01:41:16 --- join: hosewiejacke joined #forth 02:23:26 --- join: andrei-n joined #forth 02:25:05 --- quit: joe9 (Ping timeout: 260 seconds) 02:25:18 --- join: joe9 joined #forth 02:37:09 --- quit: hosewiejacke (Remote host closed the connection) 02:37:26 --- join: hosewiejacke joined #forth 02:43:11 mark4 is not here now but that's basically how I put UTF-8 into C code, I just enter hex into a string 02:43:20 --- quit: hosewiejacke (Ping timeout: 245 seconds) 02:43:48 It's the most compatible way because not every compiler will handle a UTF-8 encoding 02:44:02 Now onto Forth.... 02:44:26 I have a complaint, 42 here is *not* a magic number: : STAR 42 EMIT ; 02:45:06 Because everyone keeps using this as an example of magic numbers, and saying magic numbers are bad, but here 42 is indeed documented because what else would this word do? 02:45:45 It's a word called "STAR" that emits the character with code 42, does it need more work to clarify 42 is the star? 02:46:53 I would personally prefer : STAR [CHAR] * EMIT ; (actually I would prefer : STAR ." *" ; because it's shorter and the same compiled length on my forth), but you can't really say the 42 is 'magic' 02:47:30 Or : STAR '*' EMIT ; 02:48:10 Notice that Leo Brodie's version is shorter than all of these and unambiguous, sometimes people think magic numbers mean any number at all that's not in a CONSTANT.... 02:48:20 I disagree 02:50:27 In Forth Programmer's Handbook section on style, they say about Brodie's version "forces the reader to know that ASCII 42 means * (although this could be remedied by a comment)". 02:51:09 So what should the def be? \ Emit a star \n : STAR 42 EMIT ; 02:52:04 That's akin to comments that just say what the code states, totally useless 03:54:24 --- quit: _whitelogger (Remote host closed the connection) 03:57:22 --- join: _whitelogger joined #forth 04:02:17 --- join: inode joined #forth 04:24:20 veltas: think were they hoping for an : ASCII-STAR 42 EMIT ; to contrast with something like : EBCDIC-STAR 92 EMIT ; ? 04:27:46 inode: I don't know but I'd consider that unnecessary in forth where you're assuming the encoding in your application usually 04:35:00 i agree with : STAR 42 EMIT; being the best of the lot, but there're way better examples of why magic numbers can be a nuisance though 04:53:57 I prefer : STAR [CHAR] * EMIT ; 04:54:54 at least when referring to IO pins by number instead of name, getting the number wrong is more tedious than replacing just a single constant, and might make the logic less obvious at face value depending on how much is going on in that definition 04:57:38 --- join: mirrorbird joined #forth 04:57:56 hi . 05:02:30 nihilazo: When the original was written, I don't think [CHAR] existed. Today it would be weird, but the point is more about whether it needs further documentation that 42 is * in a word defined like it is 05:02:35 mirrorbird: Hello 05:03:06 inode: Yep, definitely. And the advice in the handbook is bad there too, it says using comments are fine. 05:03:25 And comments stop them being 'magic', but the result is code has less locality so is harder to maintain, more error prone 05:03:59 did they discuss comments outliving the code they once described? :) 05:04:23 I don't remember but it's such a common problem, especially in embedded code 05:08:22 do forth implementations typically allocate the dictionary on the stack? 05:21:42 On modern systems, almost certainly not 05:21:50 Usually stacks are protected against execution 05:22:15 mirrorbird: ^ 05:22:24 hm. then i need to allocate my dictionary somewhere 05:22:42 mirrorbird: mmap 05:23:08 If you are not using C standard library then you could use brk()/sbrk() 05:23:09 yes i saw that 05:23:32 i could just set a bit old resb 10000 05:33:36 veltas, oh actually i was going to interpret the code from the dict 05:33:43 usually the code it executes is compiled? 06:04:05 --- join: j joined #forth 06:05:48 --- join: f-a joined #forth 06:10:34 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 06:10:44 --- join: Zarutian_HTC joined #forth 06:31:36 --- quit: mirrorbird (Remote host closed the connection) 06:36:29 --- join: mirrorbird joined #forth 06:42:50 --- quit: Zarutian_HTC (Remote host closed the connection) 06:48:39 here's why i wasn't in this channel! on feb 25th, following a netsplit: "04:58 -!- Cannot join to channel #forth (Channel is full)" 06:49:16 it was full?? 06:50:28 yes, elon musk posted about it and tens of thousands of people wanted to learn forth 06:50:34 tweeted* 06:51:23 mhhh weird cmtptr 06:51:39 of the many things I can say about #forth, being «full» is not one of those 06:51:46 stack overflow? 06:51:50 e.g.: Irssi: #haskell: Total of 1049 nicks [2 ops, 0 halfops, 0 voices, 1047 normal] 06:52:00 yeah 06:52:04 maybe freenode was under attack by the usual suspects 06:52:42 --- quit: j (Quit: K-Lined) 06:53:03 --- join: j joined #forth 06:53:10 who are they? 06:53:14 could be, there were notices about spammers sent a couple of days prior 06:54:48 ↑ mirrorbird 06:55:12 ? 06:55:28 I meant: «what cmtptr said, mirrorbird» 06:55:35 --- quit: jess (Quit: K-Lined) 06:55:39 not that you were one of those unsavory people xD 06:55:43 wow. i never noticed haskell has > 1000 people 06:55:53 f-a, i am unsavoury, but i did not raid forth lol 07:17:34 --- join: mark4 joined #forth 07:24:54 --- join: hosewiejacke joined #forth 07:46:19 i finished my 45 minute arithmetic forth interpreter :P 08:06:40 it takes 45 minuts to do anything or it took you 45 minutes to create it? :) 08:06:47 gotta be specific! 08:07:36 to finish it! 08:07:57 i think it's arithmetic optimized for 45-minute time units 08:09:29 :) 08:09:40 --- quit: mark4 (Remote host closed the connection) 08:10:54 --- join: mark4 joined #forth 08:11:09 --- mode: ChanServ set +v mark4 08:16:08 nah it's a numbers + arithmetic operator forth subset interpreter 08:16:31 i gave up on the assembly version 08:29:17 --- quit: mirrorbird (Ping timeout: 258 seconds) 09:35:02 --- join: mirrorbird joined #forth 10:00:41 --- join: hosewiejacke2 joined #forth 10:02:05 --- quit: hosewiejacke (Ping timeout: 245 seconds) 10:07:04 --- quit: f-a (Ping timeout: 265 seconds) 10:08:31 --- join: f-a joined #forth 10:09:47 so my TUI demo code now has two windows moving all the way right, down, left then up in the opposite direction, one blue, one magenta, and on each pass they flipflop who overlaps who lol 10:10:11 need to change the way thats done internally so i can also puke out lorem ipsum in chinese in one window and english in the other :P 10:10:21 lol well. the chinese wont be lorem ipsum tho :P 10:18:31 --- quit: gravicappa (Ping timeout: 246 seconds) 10:21:41 --- quit: dave0 (Quit: dave's not here) 10:21:41 --- join: gravicappa joined #forth 10:42:53 --- nick: j -> jess 10:44:30 hi jess. still no response from chuck moore :/ 10:44:41 who's chuck moore 10:44:49 the inventor of the forth programming language 10:45:01 you'll want him to do a group registration probs 10:45:10 though we've been over this topic ad infinitum 10:45:39 my intent is to RESOLVE the issue per freenode policy. just giving you an update 10:46:05 i thought maybe you were hanging in here to monitor us or something 10:46:09 which is fine of course lol 10:46:12 or you can learn forth :) 10:46:56 i'm in something stupid like 250 channels 10:47:02 aha :) 10:47:08 but also i was interested in what goes on in the forth world 10:47:13 and also some of my mates are here so why not 10:47:22 lookin @ u astrid 10:47:38 :) 10:48:05 forth is not a very well accepted language in the industry because its 99.99% different from modern CS thinking 10:48:12 no data types for example :) 10:48:22 RPN also scares the skript kiddiez away 10:48:50 how can you manage being in so many channels at once? 10:50:36 i've got adhd 10:50:36 Have you recently been made a chanop here? Why the sudden urge to forward to ##forth or get Chuck Moore involved? 10:51:21 The access lists the flags as being modified two days ago. 10:52:09 mark4 claims they used to own the channel and are looking to regain ownership 10:52:36 the forth world lol 10:53:11 jess actually i am just looking to get ownership on ANY current oper, crc would be a good choise, i never really claimed ownership, just stuardship :) 10:53:12 where ten people live in one stack 10:53:17 mirrorbird: is your account name an anagram 10:53:24 the channel is kind of in limbo till we have a real founder again :) 10:53:30 i dont actually care if it is me or someone else :) 10:53:38 jess, what is my account name 10:53:42 jewsdid911 10:53:52 but a bit scrambled 10:53:55 i wasn't aware of that 10:54:05 Ah, I just see the +F founder flag on the placeholder account. 10:54:11 i think you've had other choice account names haven't you 10:54:19 such as? 10:54:21 What happened? Was the nick purged in that recent DB cleanup? 10:54:30 i'd have to check my logs 10:54:30 boru probably :) 10:54:34 boru: april 2020 10:54:36 Aha. 10:54:56 i think you have a conspiratorial mind 10:55:08 it's funny. i haven't used this account for at least a year, and i didn't notice anything weird about it 10:55:12 I guess the +f users on the access list could vote. 10:55:29 At least two are active, I think. 10:55:39 jess, you have adhd or just kiddin? 10:55:58 boru who else has +f and how to i see that list? 10:56:11 /msg chanserv access #forth list 10:56:14 and their vote wont actually count 10:56:22 Why not? 10:56:39 because freenode policy 10:56:53 i have adhd :) 10:56:59 I'd say the spirit of the channel is more important. 10:56:59 me too 10:57:02 it would take someone who defines what forth is (i.e. chuck moore) to register 10:57:20 in other words, the channel needs more chuck 10:57:28 It seems like a minute detail to make a song and dance over, imho. 10:57:30 jess so do i but i can write my own forth compiler for any processor you put in front of me thats not insane like microchip processors :P 10:57:43 yeah mood 10:57:47 Somehow I doubt Chuck Moore would care to do anything other than send an email of endorsement 10:57:55 If you can even get that 10:58:03 boru i WOULD agree but this is not my server so when in rome... 10:58:24 That's the situation with a lot of semi-official Freenode channels, really. IRC is not top of most important tech peoples' minds 10:58:33 mark4, help me with my forth interpreter :P 10:58:45 i got a verbal endorsement from him when he visited here 20 ish years ago. it was never made official with freenode but prior to his death lilo gave up arguing with me lol 10:58:46 well you can just register ##forth, set a forward on here and call it a day 10:58:47 but whatevs 10:58:52 actually crc did 10:59:07 i like #forth, im kind of attached to the name lol. 10:59:08 i hate people invoking the name and death of lilo 10:59:12 crc already regged ##fortgh 10:59:48 we don't take primary namespace channels away from non-official channels but we don't help people regain ownership of lost access in the primary namespace without a group registration 10:59:54 so i don't know what lilo was arguing with you about 10:59:55 probably does not happen much any more 11:00:24 Anyway, it's Saturday, and it's whiskey o'clock. 11:00:27 * boru absconds. 11:00:35 what kind of whiskey 11:00:37 Agreed 11:00:41 and what other than whiskey do you put in it? 11:01:01 Irish, and no, I'm Irish. That's a sin. 11:01:06 i almost bought beer. almost :( 11:01:15 Specifically Redbreast 12. 11:01:23 and its only 2pm here and im out of whiskey 11:01:23 Really absconding now. 11:01:35 My paternal line is Irish ... probably 11:01:43 i like evan williams tennessee whiskey too 11:01:51 isn't everyone in the us like 1/2,1/4,1/8,1/16,1/32 irish? 11:01:56 not a fan of scoth or irish whiskey tho 11:02:00 I'm not in the US but who knows mirrorbird 11:02:20 SPECIALLY not with water in it, that actually makes me puke. i can drink it straight, the water makes it pissy 11:02:49 actually you dont DRINK whiskey, its for sippin :) 11:02:53 I struggle to drink whiskey of any sort 11:02:55 Or sip 11:03:11 for each american there exists an x such that 1 out of their 1/2^x most recent ancestors were irish 11:03:13 sippin from the lid of a mason jar? 11:03:22 wait. 2^x* 11:03:30 mirrorbird: cool story bro 11:04:07 iirc, I registered ##forth and set it to redirect here at some point 11:04:23 can you slurp when you sip whiskey? 11:04:23 can someone that has +f give +f to someone else? i literally have NO idea how the people i gave +o to also got +f 11:04:33 no objection to it but confused lol 11:05:19 mark4: yes 11:05:24 and fore the life of me i cant remember who foucist is lol 11:05:35 but he was the only one i knew with +f 11:05:39 You, me, and foucist should all have +f now 11:05:47 i dont seem to have it 11:05:49 but thats fine 11:06:01 kc5 still has +f tho lol 11:06:42 oooh. i DO have +f i was just at the bottom of the list below view :) 11:06:46 what is +f 11:07:00 Looks like foucist deserves the +F according to the access list. 11:07:06 mirrorbird; /msg chanserv help flags 11:07:14 i dont care if i get founder status, just that SOMEONE does eventually, if we can get Cm to help 11:07:53 this channel has been around for 20 years and you're still talking about it? :P 11:08:26 i mean, who's a founder 11:08:26 i created it 20 years ago with I440r nick which died :) 11:09:13 i literally sat in this channel ALONE for over a year before anyone noticed it, then for about a year i got a few fly by's and then after a year i had a few regulars stay in... then i got 284598254 bots lol 11:10:23 i wonder what kc5 is up to these days. if he ever finished his OS he was writing 11:10:51 i wonder if the bots were written in forth and tried to find their home 11:11:31 He's still working on his kestrel computer project (now named "forthbox") 11:13:28 you in contact with him? 11:13:36 One version of it has been complete enough to run RetroForth 11; http://sam-falvo.github.io/kestrel/2015/07/07/rapidio-retroforth-and-risc-v 11:13:38 he should come back here :) 11:13:54 Yes, he's still active on mastodon and Twitter 11:14:09 i dont use either :) 11:14:16 i never even heared of mastodon :) 11:14:38 wac considering joining parler but to do that you have to give them your phone number. you cannot register without giving them your phone number. 11:14:43 Mastodon is a decentralized social network 11:15:47 a student of two martial arts (don't worry; he's still rather poor at them, so you're still safe around him. Or not, depending on your point of view). 11:15:48 lol 11:16:52 you can tell him he is welcome to come fly by or stay here :) 11:19:23 He's not really interested at this point. He's left both this channel and comp.Lang.forth over past issues with others :( 11:20:34 he sounds like a bit of a forth extremist 11:21:19 He's fine; we're all opinionated here 11:22:09 And we did have some stretches with really negative people here that were a turnoff to people 11:24:30 i would defend, do the death if need be, YOUR right to hear MY opinion! 11:24:55 he is a certifiable nutcase... in the good way 11:25:28 Options are fine; actively trolling and discouraging any use of forth is not 11:25:51 agreed 11:26:01 who was that that did that again? i forget. err nvm dont remind me lol 11:26:26 he was the only person i agreed should get the +b here 11:42:38 ASau/DGASAU was a big one 11:43:19 There were a few others who received +q or a temporary ban 11:46:41 hea he was the one lol 11:47:05 probably went back to trolling CLF, not sure you can be banned from CLF 11:47:30 --- quit: hosewiejacke2 (Ping timeout: 245 seconds) 11:48:10 you can't. people can just add you to their killfile one by one, so that eventually you have nobody who reacts to you (which seems important to that kind of people) 11:53:10 --- quit: Keshl (Quit: Konversation terminated!) 11:54:04 what does doinit do? http://ix.io/2RVa 11:54:14 oops, wrong paste. 11:54:59 http://ix.io/2RVa 11:55:04 correct paste of the code. 11:56:40 it is part of this routine it is called while searching the dictionary by interpret http://ix.io/2RVf 12:01:04 looks liek its initializing a loop maybe? hi/lo for DO loops? 12:01:18 usually not done quite that way but that can work 12:02:13 in forth you can do begin while repeat loops or begin again loops 12:02:21 i think it's moving the top 2 cells of the data stack to the return stack, if the commentary at the top of ff-i386.s is applicable about "TOS: eax" and "RP: ebp" 12:02:27 I think it's moving two values to the return stack 12:02:30 begin again is literally an unconditional branch from the again to the begin 12:02:56 with begin while repeat there is a test between begin and while and if it fails it branches past the repeat, the repat is an unconditional branch back to the begin 12:03:12 heretics like me have been nown to do begin while until else then loops :) 12:03:38 joe9: compare doinit to rpush, it does something similar with just the TOS by the looks of it 12:03:48 thanks. 12:03:53 think of the WHILE as a IF so its begin do this if do this and repeat and loop here else alternate end of loop then 12:04:00 * crc dislikes the complete lack of any useful comments or documentation in this 12:04:06 Boo. MacPorts won't install the gEDA electronics tool suite. 12:04:25 correction: think of the WHILE as a IF so its begin do this if do this and repeat END loop here else alternate end of loop then 12:04:27 I suspect it's a 32-bit/64-bit thing; I've recently been forced to upgrade to Big Sur, and it's dropped 32-bit support. 12:04:44 So I've got a nice PCB layout tool installed with no way to make schematics. :-( 12:04:55 I think I got it. Thanks guys. 12:05:06 --- join: hosewiejacke2 joined #forth 12:05:17 I'm half-tempted to try to write my own text-based schematic editor. The PCB tool eats human readable netlist files. 12:05:19 crc, what are you talking about ? ff? I find it easy to understand. 12:05:46 joe9: just personal preference 12:05:56 kip if you help me with my text user interfae that might be of use to you ;) 12:06:09 crc, oh, ok. but i am a noob so my opinion does not count. 12:06:28 crc, is there a forth you prefer that is easy to port. I do not want to go the c route. 12:06:31 No, all opinions count 12:06:36 joe9: your opinion is as invalid as everyone elses :) 12:07:06 I just personally prefer sources with more commentary :) 12:07:18 How do you define easy to port? 12:07:21 what crc said 12:07:31 --- quit: hosewiejacke2 (Client Quit) 12:07:33 NO source, no matter how well written is "Self commenting" 12:07:34 period 12:07:38 forth builds up from ~30 primitives 12:07:43 Eforth 12:07:51 thats literally my ONLY real critisism of the Linux Kernel sources 12:07:59 i have heard a lot about eforth. 12:08:02 and why you wont catch me dead looking at them hhe 12:08:07 eforth is ultra simple! 12:08:36 oh, really. I found this forth simple. I have not explored eforth at all. any good reading material to understand it. 12:08:53 this forth is will baden? 12:09:09 s/this forth/felix forth/ 12:09:13 the ff 12:09:14 oh 12:09:44 * crc doesn't know much about portability in a forth sense; my Forth is written in assembly and Forth; I achieve portability by implementing my underlying architecture on different systems 12:10:17 joe9: try "eForth and Zen" 12:10:19 (My prior systems were in x86 assembly, with support for different OSes, but that'd a different kind of portability) 12:10:42 portability in any language is a myth anyway 12:11:43 --- quit: mirrorbird (Ping timeout: 272 seconds) 12:21:19 --- quit: gravicappa (Ping timeout: 264 seconds) 12:21:25 is the eforth hosted somewhere? 12:22:17 http://forth.org/eforth.html 12:22:34 thanks. 12:25:57 ftp://ftp.taygeta.com/pub/Forth/Compilers/native/unix/Linux/linux-eforth-1.0e.tar.gz <-- thats a linux port of eforth 12:26:23 i notice my forths dont make the list on that site lol 12:26:37 maybe if i was slightly less anti ans for th :P~ 12:28:06 thanks. 12:29:19 The majority of forths aren't listed on forth.org 12:29:40 true 12:51:42 so in a custom prinf do you thin it would be ok for some %? character to eat more than one parameter ? 12:52:18 for example i might want to change my foreground color to some RGB values so "... %R ... ", RED, GREEN, BLUE); 12:52:45 i might need to make it something like %Rf or %Rb for foreground and background 12:56:54 most users would expect just one to be consumed for each format string introducer, but if you're going through a va_list and consuming arguments via va_arg, nothing really stops you from taking as many as you like 12:58:39 yea 12:59:19 were you thinking of something like a composite %Rf;b? 13:00:11 yes 13:00:54 also need to add ability to set gray scale values for fg and bg and also normal color values from 0 to 15 13:04:42 question: should i abort printf if vlaues are out of range or mask them into range :) 13:04:56 --- quit: f-a (Ping timeout: 276 seconds) 13:07:22 i guess trippy user interface colour schemes become a visual indicator of possible stack corruption? :) 13:07:32 lol 13:07:43 or malformatted printfs :P 13:08:38 what are you expecting to be passed? 13:09:55 3 values in the range from 0x00 to 0xff. one for red, one for green, one for blue 13:11:35 for normal colors and gray scales im thinking %fc for colors and %fs for gray scales (foreground). and %bc %bs for background 13:15:54 for colors thr range is 0 to 15, for gray scales its 0 to 20 13:16:35 joe9: My REPEAT is literally : REPEAT POSTPONE AGAIN POSTPONE THEN ; IMMEDIATE 13:16:38 chars usually get promoted ints for variadics, so if you access each channel argument as an int and cast it to an unsigned char, no need for any error checking if you're fine with just taking the least significant byte as the channel value/shade? 13:16:40 And I think a lot of them are 13:16:49 ie. (unsigned char)va_arg(list, int) 13:17:06 what is the then for? 13:17:11 then modulo to the respective range if necessary 13:17:22 ya 13:18:01 or halt and catch fire 13:18:10 Yeah the variadics get the old K&R style argument promotions, because there is no prototype info for the additional args so it has to 'guess' like in the old days 13:18:17 And we have to do the annoying extra casting 13:18:27 --- join: f-a joined #forth 13:18:34 i thought i smelt a toner cartridge burning somewhere 13:18:40 normally i avoid division but this is i/o so already relativly slow 13:19:17 Meanwhile the standard is still adding functions that take an int in the prototype that's meant to be a character, and requires you cast it to unsigned char, even though they could have made the type unsigned char thus requiring no cast 13:19:47 I know it would be less consistent but why be consistent with broken 13:25:05 what is the usual forth word to print the whole stack? 13:25:43 I'd not call that broken, but I agree that it's silly; the promotion of char to int was to allow getchar and friends to present errors. That said, signedness should not matter (not be relied on) for char. 13:25:45 .sa 13:25:50 erm .s 13:25:54 ok, thanks. 13:26:02 its non destructive, everything is still on the stack after 13:26:14 char isn't meant to be signed or unsigned. It's just supposed to be a type to hold a human-readable character. 13:26:24 i also implement an unsigned version 13:26:33 And its signedness differs from implementation to implementation. 13:26:45 mark4, thanks. 13:27:13 i never use char or int or any of those. ill use uint8_t, uint16_t or uing32_t or int8_t... . . . 13:27:33 boru: "the promotion of char to int was to allow getchar and friends to present errors". It was used for this, but it's due to the K&R rules for parameter passing. It's a common source of errors, that C standard library functions typically require a cast to unsigned char. 13:28:25 Don't get me wrong, I'm not defending it. I've been writing C for a long time, and I'll be the first to air my grievances with it's utterly bonkers design deicisions. 13:28:39 And yes char can be either signedness, but given it's often signed and you typically aim to write mostly portable C code anyway 13:28:55 s/it's/its 13:28:58 It's not bonkers design, it was quite sensible with K&R C and became redundant with prototypes 13:31:39 I don't agree, but I'm also too tired to argue my position. 13:33:34 You're right though that the signedness *shouldn't* matter 13:33:59 Forth standard efforts have a far greater sin of making characters not necessarily 1 byte 13:39:29 C also defines char to be at least 8 bits 13:43:42 FYI I'm not talking about it being 8 bits, I don't consider a byte to be necessarily 8 bits, I mean what the standard refers to as an "addressible unit" 13:46:23 --- join: mirrorbird joined #forth 13:50:33 boru: Please don't tell dad I complained about C again 13:53:47 char is always 8 bits. word is always 16 bits, dword is always 32 bit and qword is always 64 bits. PERIOD 13:53:49 grrr 13:54:27 a WORD is not always equal to CELL size or else word and char would have both been 8 bits on 8 bit forths 13:54:35 byte/char same diff 14:04:28 Tell that to powerpc 14:06:27 mark4: If you think char not being 8 bits is bad, then imagine ans/f200x where it's not even guaranteed to be 1 address unit 14:08:20 --- quit: f-a (Ping timeout: 256 seconds) 14:20:51 --- join: f-a joined #forth 14:23:00 lol 14:23:15 char can be multiple bytes in utf8, i can accept that 14:23:34 utf8 is a necessary evil 14:23:39 so BYTE is 8 bits, char might be 14:34:00 --- quit: andrei-n (Quit: Leaving) 14:54:44 --- quit: Croran (Quit: Croran) 15:12:53 --- join: tech_exorcist joined #forth 15:36:43 --- part: mirrorbird left #forth 15:42:07 normally ." string" -- prints string at the repl,correct? 15:42:20 or, is it only used within definitions? 15:42:20 yeah 15:42:37 but I would use \ instead of -- :P 15:43:32 oh, ok. for comments, makes sense. 15:43:58 where are those used bar from Haskell and SQL? 15:46:17 I used to use haskell a lot. old habit, I guess. 15:46:24 : -- POSTPONE \ ; -- here! 15:46:34 nice to find a fellow haskeller 15:46:52 not anymore. I got sick of it's lazy handling. 15:47:11 C was better for something that I wanted to work reliably. 15:47:36 more stable once the initial development was done and the programs kept to a certain size. 15:48:21 I find that there are different forth coding styles especially with stack comments. Any recommendations for a good reference? 16:43:30 is anyone interested in the felix forth amd64 native on 9front? I seem to have it running ok. i can host it if you want to try. 16:48:11 --- join: mirrorbird joined #forth 16:52:55 --- quit: mirrorbird (Ping timeout: 272 seconds) 16:52:59 is there a way to output hex numbers with .? 16:53:41 maybe base-execute ? idk much about numbers sorry 16:54:41 HEX . DECIMAL 16:55:08 Change the `base` before displaying works on most Forths I've used 16:56:07 thanks. 16:56:35 crc, that worked. Thanks. 16:57:05 joe9: btw if you want strict haskell, you can pass the compiler -XStrict; it's scoped to the module, so shockingly little code breaks 16:57:17 (assuming it wasn't using laziness) 17:05:15 remexre, i screwed around with strict too. This was a few years ago when they were rolling out strict more. 17:05:31 and, it just was not worth the hassle. The binary sizes are huge. 17:05:52 i had no way of profiling it as there were so many layers 17:06:11 Every layer was a different learning experience. 17:06:35 It was easier to do it in C and sock it to a learning experience. 17:06:38 ...huh, I haven't really ever checked binary sizes when I'd used it, but I can't imagine it having a huge effect; it's just equivalent to using bang-patterns everywhere, isn't it? 17:07:09 remexre, and, the stack builds are big. 17:07:28 can't speak to that, I use cabal exclusively :) 17:07:33 just not worth the effort. when the whole plan9 system can be built in lesser time than installing haskell. 17:08:00 not with forth, it is even simpler than C. 17:08:50 and, anything serious, the types would get convoluted. 17:08:54 yeah, forth's fast enough that I haven't bothered implementing a REPL in mine, it's fast enough to rebuild the whole forth system and bundle a file with it, plus boot that in a VM lol 17:10:11 I want to read some strings from a syscall (error string). i am new to forth. I am not sure what buffer would be ideal to use. 17:10:24 I can use the tib, but, it would clobber the input. 17:10:33 wordbuffer ? I am not sure. 17:10:48 what is the normal convention? 17:10:53 if you don't need to be reentrant and know the max size, you can just allocate a buffer in the dictionary 17:11:45 --- 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.) 17:12:54 and, any serious haskell code was ending up just looking like C any way. It was tough walking away from it after all the effort that i put into it. 17:13:26 I'm a researcher by profession, so performance doesn't matter for my code :P 17:28:19 so. writing chinese characters into a terminal writes characters wider than the character cell witin the terminal. tahts bullshit 17:28:59 it even does it in the linux console 17:29:09 its like every single chinese character has an implied space after it 17:30:36 mark4: that's the full-width characters I was talking about the other day 17:30:38 and the linux console does not seem to be able to putput either the box characters OR chinse characters 17:30:57 remexre: it breaks my code. a character has a ccell not a cell and some more 17:32:28 and they are not full width, they are EXTRA width which is utter bullshit 17:32:34 --- part: f-a left #forth 17:32:54 how can i account for when a character is going to eat up more space that its supposed to? 17:33:03 without adding 28375629346592435 gigs of tables to my executable 17:33:22 chinese characters also display as X X X X not XXXX 17:33:23 --- join: Keshl joined #forth 17:33:28 would like to turn that crap off too 17:34:22 fullwidth = two characters cells; is that not what's happening? 17:34:31 full = a full square, ig 17:35:12 no its like if one character is normally XX wide these chinese characters are XXX wide and have a space following them 17:35:21 huh 17:35:35 i can do aaa <-- the As are packed close and not wide 17:35:44 中文鍵盤 17:35:51 aaaa 17:35:59 those characters are ALL wider than the a's 17:36:00 AAAA 17:36:04 and wider than the A's 17:36:15 AND they have a SPACE following them that I am not specifying 17:36:23 that chiese displays as 17:36:26 https://cdn.remexre.xyz/screenshots/c5b49f28cfef1ba1b25bc59c0e8c183caa00083d.png is that the size you're expecting? 17:36:28 中 文 鍵 盤 17:36:44 but the spaces are not a full character cell wide 17:37:08 does your terminal's font support CJK characters 17:37:12 sounds like you're getting a fallback font 17:37:18 nope 17:37:22 thats STILl no good to me 17:37:40 i would like EVERY character to be exactly one character wide not one and a bit. not almost 2, not 2 and a bit 17:37:51 im in gnome terminal 17:37:51 like you're definitely not gonna solve "the user needs the right font for the language" from a TUI program 17:37:58 i would be very furprised if it doesnt 17:38:09 its a TEXT MODE not a graphical mode 17:38:13 in that same way that if you used a different font for every A, that'd mess things up 17:38:22 a character can NOT take up more than ONE CELL in a text mode 17:38:30 thats the entire fucking point of a text mode 17:39:14 if i change my font from size 14 to size 8 the window shrinks 17:39:32 the window size is entirely based on the font size AND the specified width 17:39:46 i cannot write width chinese characters into a width sized console 17:39:59 because each character is drawn as a BITMAP into that TEXT MODE CONSOLE!!!!!!!!!! 17:40:03 thats fucking idiotic 17:40:13 like, install a fixed-width chinese font if you want fixed-width chinese characters... 17:40:31 im not switchig my console to a chinese font 17:40:34 i dont speak chinese 17:41:04 my existing font has all the characters specified for UTF8 17:41:16 uhhhhhhh is it gnu unifont? 17:41:33 because the vast, vast majority of fonts have nowhere near complete unicode coverage 17:41:34 its MONOSPACE regular 17:41:43 that's an alias provided by X, isn't it? 17:41:44 well it has a significant number of them 17:41:54 no idea 17:42:11 but if its MONOSPACE that means every charactrer is EXACTLY the same width 17:42:12 period 17:42:22 if it has variable width characters in it then its NOT fucking monospace! 17:42:32 right, gnome uses a different font as opposed to not being able to show characters 17:42:52 blink i didnt even understand what you just said lol 17:42:55 and that font's metrics are different from your main one 17:42:58 so 17:43:15 i have a font selected. what the FUCK is the terminal doing going outside THAT FONT? 17:43:21 being gnomeware 17:43:55 my terminal size and my character cell size inside the terminal is determined by the font I have sselected 17:44:28 therse absolutely NO fucking point in supporting ANY language other than english now 17:44:31 NONE!!!!!!!!!! 17:44:37 users who are using a font other than yours? 17:45:02 their terminal will be sized to have exactly XxY character cells of the specified font size 17:45:41 each character should take up EXACTLY the space allocated for one character 17:46:02 the fact that it does not do so is utter fucking bullshit 17:46:16 how can ANY fucking text mode application work with this? 17:46:56 you cannot know how many pixles any given character takes up in that console because of this 17:47:24 what if i display a string containing chinese, english, mongolian, ... .. .. . etc? 17:47:38 you can definitely know if you use characters the font supports and link to ncurses and icu 17:47:47 every single one of those characters from the different languages might take up a different amount of horizontal space 17:47:55 so. how do i know how many spaces to write to clear to end of line? 17:48:07 FUCK NCURSES!!!!!!!!!!!!!!!!!!!!! 17:48:12 no offense to thomas dicky 17:48:17 but im writing a fucking TUI 17:48:50 and that means that these text mode consoles are treated GRAPHICALLY!!!!!!!!!! 17:49:05 which is utter fucking bullshit and makes the entire point of UTF8 broken 17:49:24 this is necessary to support actual human languages written by millions of people 17:49:55 if ONE character in a given font is XXX pixles wide and every other character in that font is X pixles wide 17:50:03 then EVERY CELL IN THE TERMINAL SHOULD BE XXX PIXLES WIDE!!!!!!!!!!!! 17:50:06 you're using multiple fonts, I guarantee it 17:50:09 monospace 17:50:21 fontconfig falls back to other fonts 17:50:28 when a character isn't present in your font 17:50:29 fuck 17:50:40 (as stated above) 17:50:44 and i have no control over what random font it selects? 17:51:01 how do i stop it from using ANY font other than the one i have selected 17:51:02 you do, configure fontconfig how you like it 17:51:11 no 17:51:14 thats system wide 17:51:27 how do i stop fontconfig from fucking over THIS SINGLE APPLICATION? 17:51:27 think you can make it process-wide, but the process is the terminal 17:51:35 no 17:51:45 that fucks over every other linux applicatipn 17:51:55 i want to stop MY application from using 2874592364952 different fonts 17:52:22 if you are chinese your characters are going to be of a certain size 17:52:38 actually this is still going to be broken for me 17:52:58 yeah, I think your application depending on a properly-configured terminal is a reasonable requirement? 17:53:02 i would be restricting the applications using this TUI to only ONE language 17:53:20 im pretty certain my terminal is properly configured 17:53:23 fonts can support multiple languages; the one you are using at this moment just happens not to 17:53:35 the problem is the terminal fucking me over and going outside the bounds of the font i have selected in its configs 17:53:44 and randomly picking a font 17:53:54 how do i stop it doing that within THIS application? 17:53:57 yeah, that's a "you're using a terminal that renders with fontconfig and have a bad fontconfig config" problem 17:54:40 https://dpaste.com/GDLSAMPAP thats my fonts.conf 17:54:43 make a fontconfig file that specifies the font selection behavior you want (idk off the top of my head, consult the docs), then either put it into one of the user/system-wide locations, or pass it via the FC_CONFIG_FILE environment variable 17:54:57 i cannot force YOu to use MY fonts 17:55:23 right; if my terminal were configured to use Arial, your TUI would also be broken on it, but that's my problem, not yours 17:55:26 i need ALL characters, no matter what font this terminal randomly selects, to be EXACTLY the same width what ever that is 17:55:38 anyway, I'm getting nagged to go pick up dinner for the 3rd time, so gtg 17:55:46 lol 18:09:04 --- join: f-a joined #forth 18:09:37 I have a question on stack comments ( a b -- c ) ← these 18:09:42 say I have a compile time word 18:09:54 how do I indicate «it takes the next word from stream»? 18:10:07 or «next word from stream and top of stack»? 18:10:46 you dont in the stack comment 18:15:37 In the ANS spec, words that parse the input stream have comments like (for 6.1.080, ( ): (“ccc”--) 18:17:01 thanks 18:20:10 --- join: dave0 joined #forth 18:20:11 --- join: boru` joined #forth 18:20:14 --- quit: boru (Disconnected by services) 18:20:16 --- nick: boru` -> boru 18:20:36 maw 18:28:25 --- join: f-a_ joined #forth 18:28:31 --- quit: f-a (Ping timeout: 264 seconds) 18:28:37 --- quit: f-a_ (Client Quit) 18:28:55 --- join: f-a joined #forth 18:29:24 sorry I got d/c 18:29:29 I will paste again 18:29:31 f-a uuhhh ok another q 18:29:34 f-a create palla \ creates a new entry in the dict 18:29:36 f-a is there a 18:29:39 f-a s" palla" screate ( addr u -- ) ? 18:31:56 also crc , say that a word consumes from the stream *and* from the stack, how would that work, ( -- ) wise? 18:33:07 I'm not aware of any standard words for `create` that take the string from the stack 18:34:11 thanks 18:34:14 Before eliminating forward parsing, I used to do things like ( a b "word" -- c ) 18:34:29 that is appropriate 18:40:57 Forth200x standard there is execute-parsing, which would let you do: s" palla" ' create execute-parsing 18:44:17 super 19:03:00 I have a forth routines file that i am trying to include from the repl. Is that possible? I can read that the include word opens the file and puts the file descriptor in stdin. 19:03:09 It is not doing anything else other that. 19:03:39 If I type query or interpret, it seems to work fine (no errors) but the defined words in the file are still not recognized. 19:04:08 this is what include does: http://ix.io/2RYn 19:04:39 after I set the stdin to the included file, how do I get the file to be read? (query interpret) does not seem to do it. 19:11:53 `include filename` works for me with 8l/ff on ff-i386 19:12:15 oh, that is interesting. 19:12:30 it works, but, is it reading the word definitions in? 19:12:49 I mean do the words in the file get added to the dictionary? 19:13:10 why shouldn’t they joe9 ? 19:13:16 i put : foo ." testing" cr ; foo \ to the top of a file and included it. 19:13:58 f-a, they are not in my situation. but, I am porting it and want to make sure what the expected result should be. 19:14:46 but, nothing happpens. if i paste the some of the contents of the file into the repl, it gets those words into the dictionary. 19:14:55 They are for me; in the example you posted, I can run `foo` after the include is done and it works fine 19:15:30 just foo, correct? do you need the ticks? 19:15:39 Just foo 19:15:55 ok, thanks. so, something is still broken for me. 19:16:10 are you using the 8l/ff hosted there? or, did you make changes? 19:16:15 (I use the ticks as a matter of practice, to denote input) 19:16:17 s/there/github/ 19:16:24 oh, ok. thanks. 19:16:47 Just the ff-i386 in the GitHub repo 19:17:44 the code does not make sense to me though. The include word changes v_stdin to the included file. 19:17:58 other than that i cannot see any code that raads from that file though? 19:18:42 do you run the ff and then type into the console include file.ff? 19:20:10 I am assuming that the query interpret in the quit word definition would read the contents of the included file, correct? 19:21:29 this is how my console looks: http://ix.io/2RYJ 19:23:12 My console: http://forth.works/share/6be6ccafee4139a8144c84694c4c6359 19:23:46 I'm assuming that the input source is read until EOF, then reset to the actual stdin somewhere 19:25:03 yes, that makes sense. Thanks. 19:32:03 --- quit: dave0 (Quit: dave's not here) 20:41:07 --- quit: sts-q (Ping timeout: 264 seconds) 20:56:25 --- join: sts-q joined #forth 20:57:22 crc in core.f defer is being used before being defined. How would that work? 20:57:37 or, is there some other defer word defined anywhere else 21:00:19 defer is defined in meta-install.f using mdefer from meta.f 21:01:20 https://github.com/8l/ff/blob/5f2c919015d19b802b3f45d3d768305f3c3acd83/meta.f#L197 for mdefer 21:01:41 got it. Thanks. 21:18:24 --- quit: _whitelogger (Remote host closed the connection) 21:21:23 --- join: _whitelogger joined #forth 21:43:25 --- join: dave0 joined #forth 22:02:42 --- quit: f-a (Quit: leaving) 22:02:59 --- join: f-a joined #forth 22:13:08 --- join: Zarutian_HTC joined #forth 22:29:19 --- quit: f-a (Read error: Connection reset by peer) 22:34:42 --- quit: Keshl (Quit: Konversation terminated!) 22:44:47 --- join: gravicappa joined #forth 22:57:40 hmm... been thinking, I have an 128x128 bitmap matrix lcd and a 4x4 keypad as user I/O. Would using the old style sms nokia editor entrymethod for text work? 22:58:17 would be heavily menu driven ui/ux for the most part 22:59:15 but I foresee cases where alphanumerical data might be need to be entered 22:59:56 --- join: Keshl joined #forth 23:00:15 can the keypad see multiple keys at once? 23:00:18 make it chorded :) 23:02:11 hmm two text input methods then 23:05:18 but the old style 5 5 , 2 2 , 9 9 9 input might work better as getting five fingers on the pad is ackward 23:05:42 lol 23:05:51 well its 2am and im about to face plant lol 23:06:35 btw, did Englebart's Augment system (see Mother of All Demos) use ITA.2 baudot code for lefthand keyboard chording? 23:07:27 I woke around 3 am due to an earthquake, so I am fresh as daisies 23:07:52 where are you again 23:07:54 ? 23:08:06 i usually sleep through earthquakes lol 23:08:22 Iceland, near Reykjavík 23:08:46 aga cool! 23:09:03 no pun intended lol 23:09:06 well this one was like somebody yanked my bed 23:09:28 read that one of your volcainos is maybe going to pop soon 23:09:51 been quite a few last 14 days or so 23:10:15 aah, yeah somewhere near Keilir 23:10:54 whose name can be translated as Cone-r 23:11:16 named so because it is cone shaped 23:12:11 but yeah somewhere near Sundhagagígjaröð í Þráinsskjaldarhrauni 23:12:42 * Zarutian_HTC wants to see tv news anchors balk at that one 23:14:04 if there is an erruption there it most likely will be a lavaflow one 23:14:24 and not ashcloud one 23:14:53 ya i think it looked like that kind of volcaino they had pictured 23:15:06 no telling if the picture was the actual one tho 23:15:46 but i have to sleep 23:15:54 gn 23:24:29 --- quit: ornxka (Read error: Connection reset by peer) 23:25:38 --- join: ornxka joined #forth 23:29:09 --- quit: Zarutian_HTC (Remote host closed the connection) 23:59:59 --- log: ended forth/21.03.06