00:00:00 --- log: started forth/19.02.04 00:10:25 --- quit: dys (Ping timeout: 245 seconds) 00:21:32 --- join: proteus-guy (~proteusgu@2403:6200:88a6:329f:94de:9e0c:d90b:5b5) joined #forth 00:33:09 --- join: xek (~xek@apn-37-248-138-81.dynamic.gprs.plus.pl) joined #forth 01:35:29 --- quit: dave0 (Quit: dave's not here) 01:40:49 --- quit: jedb (Ping timeout: 246 seconds) 01:42:55 --- join: jedb (jedb@gateway/vpn/mullvad/x-xqqnhtabyjmiepma) joined #forth 01:48:52 --- quit: jedb (Ping timeout: 250 seconds) 01:56:21 --- quit: `presiden (Ping timeout: 244 seconds) 02:03:34 --- quit: ashirase (Ping timeout: 246 seconds) 02:09:27 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:50:41 --- join: dave0 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 02:58:44 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:04:32 --- join: jedb (~jedb@199.66.90.113) joined #forth 03:09:41 --- quit: proteusguy (Remote host closed the connection) 03:11:04 --- join: proteusguy (~proteusgu@cm-58-10-154-147.revip7.asianet.co.th) joined #forth 03:11:04 --- mode: ChanServ set +v proteusguy 04:14:58 --- quit: dave0 (Quit: dave's not here) 05:43:45 --- quit: MrMobius (Ping timeout: 245 seconds) 06:20:07 --- quit: reepca (Ping timeout: 246 seconds) 06:30:58 --- quit: ashirase (Ping timeout: 246 seconds) 06:31:25 --- join: reepca (~user@208.89.170.37) joined #forth 06:34:47 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 07:25:33 --- quit: tabemann (Ping timeout: 268 seconds) 07:59:06 --- join: X-Scale (~ARM@43.80.108.93.rev.vodafone.pt) joined #forth 08:15:35 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 08:42:01 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 09:32:22 --- quit: Keshl (Quit: Konversation terminated!) 09:42:58 --- quit: nighty- (Quit: Disappears in a puff of smoke) 09:45:12 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 10:26:44 --- quit: pierpal (Quit: Poof) 10:27:05 --- join: pierpal (~pierpal@host132-240-dynamic.52-79-r.retail.telecomitalia.it) joined #forth 10:39:11 --- quit: pierpal (Ping timeout: 268 seconds) 10:52:12 --- join: dys (~dys@tmo-104-235.customers.d1-online.com) joined #forth 11:00:25 hmm.. I am debating with meself if I should have vectored interrupts and traps in my VM spec or not. 11:00:39 for things like when I/O primitives error or such. 11:01:13 interrupts are HW. 11:01:22 traps are... hybrids 11:02:01 I presume the VM is NOT actual hardware, so - you are infringing. 11:12:38 --- quit: gravicappa (Ping timeout: 250 seconds) 11:15:11 --- join: pierpal (~pierpal@host132-240-dynamic.52-79-r.retail.telecomitalia.it) joined #forth 11:35:09 --- join: xek_ (~xek@apn-37-248-138-81.dynamic.gprs.plus.pl) joined #forth 11:37:36 --- quit: xek (Ping timeout: 244 seconds) 12:39:56 hmm... or I could change the stack effects of those I/O primitives to also leave error code on the stack 12:42:56 Zarutian: Imnsho, you want interrupts to speak in a queue/ring - someone better care or no one does. 12:43:48 interrupts are not an ERROR - they may signal one, but someone has to care sequentially.. Or, you just handle it "in place" 12:44:19 well, one mechanism to handle interrupts, traps and faults really 12:44:31 * PoppaVic sighs 12:44:42 You keep returning to a hw imp. 12:44:53 hey I am more used to MCUs and such 12:44:56 a VM has none 12:45:38 I know, I know - I only started with MCU about 3 years ago: it's a bit of a headspace from "OS and lappy/tower" 12:46:36 any PROCESSOR can/may do INTERRUPTS - but they are usually NOT "someone fucked up" - they tend to be external events, signals, timers, etc 12:46:40 a VM is just a virtualization of an machine. Even though said machine never was implemented in phyisical hardware 12:46:59 the world is just technicolor dreams, too - so what? 12:47:50 INTERRUPTS are something, for some reason, somehow vectoring to code - regardless of state. 12:47:51 what about traps? Say, like on IBM 370 where an supervisor emulates what an priviledged instruction does. 12:48:23 afaik, "traps" are a pretty word for "we examine X every moment and vector" 12:49:39 who? I am not talking about some shitty ISA like x86 or Radon CISC that doesnt know what to do when a priviledged instruction is encountered in user mode. 12:50:31 (x86 does a general protection fault, which makes it hard to figgure out what the program was attempting) 12:50:46 (Radon CISC is no better) 12:50:48 'who' whom? TRAPS are a monitor&omg-jump. 12:51:26 they are all shitty ISA, sheesh... Shit happens or it does not. People need to grok that. 12:52:00 Is it an EVENT? does doing A result in B? 12:52:17 I mean in the way their core design was made or in case of x86, accumulated. 12:52:26 If your code is not testing it, then forsure the microcode will. 12:52:56 x86 is an abomination.. I say this as an intel hater and acknowledged user. 12:53:25 or there is just an combinatory logic in the cpu that causes an unscheduled mode change and branch when their inbuilt criterion is met 12:53:58 Zarutian: look, as far as the gates/cpu - they can do anything.. Even kill yer puppy 12:55:26 On the one hand, you want Shit Does What Told; now yer expecting Shit TRAPS other Shit I Didn't Want To Consider 12:55:29 what seems to plaque many software people is this strange mysticism around machine code is actually performed. 12:55:47 meh. Handle errors where they occur, move along. 12:56:10 Folks keep expecting voodoo-answers 12:56:26 error codes in the I/O primitives stack effect it is then. 12:56:41 effects* 12:56:53 "OMG! My math resulted in rollover/around insanity!" - Well, then fix that routine. 12:57:31 note that I said i/o and not compute 12:57:53 wtf error can IO have? You sent it. So? A) The link is closed; B) the link didn't see it. 12:58:23 IO is the easiest of fucking wtf?! to resolve 12:59:06 I/O can have delay. 12:59:20 In 99.99% of my code: I send shit, I'm done. I receive shit, it better be correct. 12:59:39 john_cephalopoda: offs, please. If you want Zmodem, use Zmodem 12:59:49 io could collide with europa 13:00:13 then you have not dealt with robotics or high reliablity systems. Anything that interfaces with the outside world requires consideration. Even though the error is "ya tried to I2C that byte to that chip but something is constantly pulling down both data and clock" 13:00:14 zy]x[yz: amen - wtf happened to pluto? what was the next one? 13:00:47 the next thing after pluto? idk it's too far for me to see 13:01:11 Fun fact: My computers are called "Metis" and "Adrastea". io could bring them down. 13:01:15 Zarutian: I deal with a variety of shit. Meanwhile, yer COMMO is not my problem. Robotics? please. 13:01:46 PoppaVic: HDDs are slow as hell. Access time in the ms range. 13:02:08 either you debug the io and protect it, or you don't. I usually don't, but I don't code Life Support. 13:02:13 PoppaVic: you often deal with abstractions that hide the grueling annoyances away. 13:02:19 And when you do networked I/O you get seconds. And when you do interplanetary I/O (which Forth code is actually used for :þ), then you got minutes. 13:02:29 john_cephalopoda: SO WHAT? he was freaking on content. 13:02:54 john_cephalopoda: minutes? I thought hours. Isnt there an RTX2010 running on that commet visitor? 13:02:56 Forth isn't DATA - it's code. 13:03:29 Yeah, IP/IS is still minutes/years. Doesn't matter: they can use Zmodem ;-) 13:03:36 The distinction between data and code is a difficult one. 13:03:48 no, it isn't 13:03:56 Not in I/O 13:04:37 Is x86 bytecode "code" or "data"? Is BASIC "code" or "data"? Is XML "code" or "data"? 13:04:45 IO is, itself, a matter of "don't care"(wtf?) vs "accurate". 13:05:02 it's all Data, you pick yer poison levels 13:05:22 There are many kinds of I/O. 13:05:43 I send you code? it has to be 100%; I send you data? You want to glare and curse it. 13:05:48 * PoppaVic sighs 13:06:24 john_cephalopoda: and yet another reason I don't usually help anyone anymore 13:06:26 A BASIC interpreter doesn't differ much from an XML parser in a browser. 13:06:33 how nice 13:07:19 The BASIC interpreter gets code and does something on it, which leads to a result specified by the contents of the code. The XML parser gets an XHTML document and does something on it specified in the XML source. 13:07:30 * PoppaVic sighs 13:07:53 When the BASIC code is malformed, it will result in an error. When the XHTML is malformed, it will result in an error. 13:07:58 no one knew of the horror that is XML until about a decade back - we were no missing much 13:08:20 oh, it grew out of the horrow that was SGML 13:08:41 Zarutian: I recall it's horrific birth - I still gag 13:08:42 Markup languages are pretty complex beasts in general. 13:09:28 XML was made as a markup language. For putting tags around stuff. The intention wasn't to make a database format. 13:09:32 Anyone that cries for XML is also going t cry for C++ - and problems double, treble or quadruple. 13:09:46 markup my balls 13:10:17 You can use markdown to write databases. It will suck because it's not what it was made for. But it will work and people probably do it somewhere. 13:10:18 john_cephalopoda: looked at Rich Text Format? The markup in that are basically like escape codes that change certain states inside the parser. 13:11:09 john_cephalopoda: stuff like "switch BOLD on" and "switch BOLD off" et ceterata 13:11:21 From wikipedia: "RTF is a data format for saving and sharing documents, not a markup language; it is not intended for intuitive and easy typing by a person." ;) 13:11:51 I take offense at "intuitive" and "easy typing" 13:12:56 --- join: xek__ (~xek@apn-31-0-23-81.dynamic.gprs.plus.pl) joined #forth 13:13:30 Ew, especially ugly because it only supports ASCII and you'll have to escape all utf-8 characters. 13:14:16 (Which used to be true for HTML back in the day, but isn't necessary any more, thanks to encoding="utf-8") 13:15:20 --- quit: xek_ (Ping timeout: 246 seconds) 13:17:18 * PoppaVic sighs 13:28:35 So I started a new job today 13:29:05 this guy was telling me about the codebase he was basically hired to maintain because the contractor who wrote it priced himself out of maintaining it 13:29:23 sounds like shit 13:29:27 Problem is, the contractor was clearly a much better programmer 13:29:51 how is it "clearly"? 13:30:15 WilhelmVonWeiner: oh, c-class management making a dumb decision. "Save the penny, spend the pound" kind of thing, no? 13:30:57 I've never heard that expression Zarutian 13:31:52 WilhelmVonWeiner: so far, all I can tell is: "management decided the programmer was too pricey" and your conclusion "he was BETTER than?" 13:31:56 well ya heard of "Pennywise, poundfoolish" then? 13:32:08 Zarutian: yes, ancient 13:32:45 PoppaVic: "Clearly" because I could understand the older code (still running on the production servers/cluster), this beta code has huge blocks commented out with massive, useless comments and what I can only describe as schoolboy-style code 13:32:49 yeah the first saying is by a person the latter one applies to. 13:33:15 WilhelmVonWeiner: how is that "better"? 13:33:40 It was simple and clean 13:33:44 WilhelmVonWeiner: aah, the management hired some CS 'gratuates' and they made a beta. 13:33:49 yep 13:34:14 so.. he commented out simple and clean for noxious and that's "better'? 13:34:48 No, that's worse, I think we had a miscommunication somewhere. 13:34:57 ah, see above 13:35:47 I do know about management stupidity; and I also know about idiots trying to job-protect themselves. 13:36:10 --- quit: xek__ (Ping timeout: 268 seconds) 13:36:58 ..frankly, both should be turned into jerky & burger. 13:37:01 I think I undersold myself at 25k 13:39:27 VOIP, telephony stuff - was suprised nobody at the company had heard of Erlang 13:40:17 I've heard of it - then I puked - but that doesn't make me laugh less at yer post. 13:41:34 better than launching luajit on every connection 13:42:00 WELL, THEY COULD ALWAYS USE JAVA 13:42:03 caps 13:44:06 I'm just gonna stick to C and Python 13:44:19 that's what I said I can do, that's what I'll do 13:44:32 The 'Starting Forth' book talks about using base 36 to store airport codes as integers. Does anyone think that's a good idea? 13:45:01 no, it isnt a good idea at all. 13:45:22 Croran: yes, BASE can be very useful. The range of them is moot. So, you need to think it thru. 13:46:09 It is a good example of mega forth optimisation 13:46:26 I've discussed BASE before with folks, and it can be really edumacational. 13:46:35 haha. I started a practice problem to shuffle a deck of cards and I used base 36 to store the card names eg. 'kc' for king of clubs. It's turning out to be way more of a hassle than I expected. 13:47:11 Sounds like you need a rethink 13:47:25 could've just used base 13 13:47:32 0-C 13:47:38 0 being 1 13:48:10 wait no 13:48:21 13 cards per suit. "shufling" always strikes me as a real issue 13:48:33 I could have just used decimal, but I thought it would be interesting to avoid strings. 13:48:45 Oh, I see 13:49:00 I don't think any calculationis being done with airport codes 13:49:09 the human labels to the cards are not the values - unless you play bridge or such ;-) 13:50:13 innit 13:50:15 its funny the new version of gforth 0.7.9 complains every time i define a word in base 36. 13:50:32 : test compiled 13:50:32 ; 13:50:32 *terminal*:3:1: warning: defined literal test as word ok 13:50:36 Croran: DECIMAL is handy when yer born with 5@ fingers/thumbs/toes - so is base 20, and others like base 12 - it's a headspace 13:50:54 Croran: lol. gforth gives the craziest warnings 13:51:25 Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc. 13:51:26 Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license' 13:51:26 Type `bye' to exit 13:51:26 36 base ! ok 13:52:40 yeah setting the base gives no warnings. it gives a warning when defining a word using letters afterward, because any english word is effectively a number at that point. 13:52:46 gforth is an abomiation. That said. it builds easier than PFE 13:53:03 but i'm using Gforth 0.7.9_20190130 13:53:29 what's PFE? is it available for Linux? 13:53:33 yes 13:53:51 gforth doesn't really build on Ubuntu 16.04. I had to load 18.04 in a VM to build it. 13:54:07 Portable Forth Environment - I an't remember wtf I did to make it build on linux - I did message the author. 13:54:17 can't 13:54:38 Lina Forth (ciforth) 13:54:45 best linux Forth imo 13:55:09 does it support editor and code screens? 13:55:31 there arew a number of forths, and some build on linux; many don't have any later support, and many are also "not portable". 13:56:05 Croran: I believe so 13:56:17 Frankly, imnsho: if you can't build on linux, it isn't worth the effort. 14:00:50 seems like this guy may have set up a build environment for PFE on linux 14:00:51 https://github.com/gdraheim/pfe 14:01:27 cool 14:01:32 seems to have the latest version per the official sourceforge 14:01:32 https://sourceforge.net/projects/pfe/files/pfe/ 14:02:05 Croran: I can remember having to fuck with the makefile, and posting it it the author - but never hearing back. 14:45:51 --- join: dave0 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 14:46:10 hi 16:10:25 Good morning Forthies 16:14:07 morning forthest 16:14:58 Hi presiden 16:41:50 Gung hee fatt choi 16:56:35 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:58:31 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:51:26 Just catching up on the logs, I don't see an issue with Zarutian's vectored VM interrupts. You might want an interrupt mask register in your VM and an iret instruction that restores it before returning, or some equivalent mechanism to prevent interrupts piling up on each other. Traps on the other hand can just raise an exception, although you need to be careful of exception handling code that ends up 17:51:32 causing a double-fault. 18:06:29 Of course being an emulation in SW, with all the caveats regarding performance that implies. 18:08:25 I said what I meant, and meant what I said: a curmudgeon is faithful, 200% 18:08:51 What do you mean? 18:08:59 ;) 18:14:38 Vectored traps are useful in a VM for things like division by zero or memory bounds. 18:15:24 If you're checking for those. 18:18:11 I'm not sure if vectored interrupts are worth the trouble, depends on how you want to handle VM I/O I guess. 18:19:49 this isn't under an OS ? 18:20:43 under? 18:20:56 in unix you use signals and windows has AddVectoredExceptionHandler 18:21:20 oh running on an OS 18:23:01 I was responding to Zarutian's debating VM interrupts with himself, I have no idea what platforms his VM is meant to run on. 18:23:16 ah okay 18:25:20 The point of a VM is usually to provide independence from the underlying platform. 18:25:43 At least some degree of independence. 18:25:53 i agree that catching traps is useful, it's a nice feature to get a trace of which word generated the trap, rather than just crashing 18:27:37 It all depends on the amount of sandboxing you're willing to pay for. 18:28:54 A fully sandboxed environment has very high overhead. 18:30:02 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 18:34:13 sandbag em, defilade; crossing lanes of fire - add a few claymores. 18:36:53 For example, your VM is alignment-neutral but there's an attempt to read 32 bits from an address 2 bytes from the end of VM memory. 18:43:57 i'm still a Forth newbie... i get store backwards: addr n ! instead of n addr ! 18:44:21 put this there 18:45:08 I have both in my forths: ! ( x a -- ) as well as \! ( a x -- ) 18:46:06 oh haha 18:46:22 that would confuse me more lol 18:46:33 :) 18:53:37 --- quit: dave0 (Quit: dave's not here) 19:06:09 --- quit: dddddd (Remote host closed the connection) 19:20:24 --- join: travisb (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) joined #forth 19:37:41 --- nick: travisb -> tabemann 20:34:15 --- join: gravicappa (~gravicapp@h109-187-17-233.dyn.bashtel.ru) joined #forth 20:40:25 --- quit: dys (Ping timeout: 246 seconds) 20:55:33 --- join: dave0 (~dave0@193.060.dsl.syd.iprimus.net.au) joined #forth 21:03:21 hi 21:14:36 --- quit: rdrop-exit (Quit: Lost terminal) 21:15:01 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 21:18:40 --- quit: MrMobius (Ping timeout: 268 seconds) 21:18:40 --- nick: [1]MrMobius -> MrMobius 21:21:50 --- quit: proteusguy (Remote host closed the connection) 21:35:24 --- join: smokeink (~smokeink@118.131.144.142) joined #forth 21:43:10 --- quit: pierpal (Quit: Poof) 21:43:27 --- join: pierpal (~pierpal@host132-240-dynamic.52-79-r.retail.telecomitalia.it) joined #forth 21:58:49 --- quit: pierpal (Read error: Connection reset by peer) 22:47:29 --- join: X-Scale` (~ARM@43.80.108.93.rev.vodafone.pt) joined #forth 22:47:30 --- quit: nerfur (Ping timeout: 245 seconds) 22:48:35 --- quit: X-Scale (Ping timeout: 250 seconds) 22:48:35 --- nick: X-Scale` -> X-Scale 23:01:48 --- join: dys (~dys@tmo-084-151.customers.d1-online.com) joined #forth 23:54:08 --- join: proteusguy (~proteusgu@mx-ll-180.183.128-65.dynamic.3bb.co.th) joined #forth 23:54:08 --- mode: ChanServ set +v proteusguy 23:59:59 --- log: ended forth/19.02.04