00:00:00 --- log: started forth/19.03.06 00:25:25 switched to the -1 for the results of the comparisons and redefined true accordingly - tripped some unit test failures which were explictly looking for 1 of course, but otherwise all fine 00:38:42 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 00:48:27 Good move, -1 is a more useful flag value 00:49:27 hmm - yeah - think i need to extend to the results of && and || as well 00:50:17 --- join: xek (~xek@user-94-254-224-236.play-internet.pl) joined #forth 00:50:52 these are boolean tests as opposed to bit wise operators (which i have as & and | rather than 'and', 'or' - there's xor as ^ too of course) 00:52:47 That's one advantage of -1, no need for two versions of the boolean operators 00:53:26 Just the bitwise ones 00:55:23 yeah - was considering that too - just dropping them 00:55:45 I have all 16 two-argument bitwise operators, plus all 4 single-argument ones 00:58:14 correction 3 single argument ones, and the comparisons with 0, i.e. 0=, 0<>, etc... 01:01:20 * 16 bitwise boolean operators that is 01:05:47 https://www.reddit.com/r/Forth/comments/957i86/fun_with_circular_stacks/ 01:06:35 sure - but in the c++ world, any non-zero numeric is true - hence 1 && 2 is true - while 1 & 2 would be 0 01:09:44 and, yes, throwing in the 0= or 0<> isn't a huge ordeal, but it's jarring when moving from the internal language to the external iyswim 01:10:50 if i keep the bool specifics and just negate the result, i cover the cases and the operators behave identically in both 01:11:07 Just think of a cell as an array of truth values 01:11:18 yeah 01:11:48 KipIngram: his forth works far differently 01:12:29 true enough :) 01:12:29 [ ] create a anonymous definition 01:12:40 Or better yet forget "truth values" and think of bits :) 01:13:38 sure - i have no issue with it :) - i'm just thinking of others - there's no real hardship on my side to carry both bools and bits 01:13:40 : dip >r execute r> ; basically 01:18:53 am going for the hybrid - both can coexist without issue and it should be clear to the user which one is being used in any given situation (any c/c++ coder will know the difference between & and && after all) 01:21:05 also, if i use names (and, or etc) it becomes less clear what it's doing 01:22:03 Any coder should be right at home with bits, even C++ programmers :) 01:22:13 :) 01:23:09 i don't disagree, and they have them with this approach 01:35:15 --- join: gravicappa (~gravicapp@h109-187-217-49.dyn.bashtel.ru) joined #forth 01:36:23 --- join: dddddd_ (~dddddd@unaffiliated/dddddd) joined #forth 01:36:59 --- quit: dddddd (Ping timeout: 252 seconds) 01:37:24 --- nick: dddddd_ -> dddddd 01:40:26 hmm - there is one other disadvantage with this approach - when the library is expanded (like i do in rpany-comms and vml-batch), then every word which places bools on the data stack should always them as negative - i don't think there's a simple/safe way for me to enforce it in the core 01:40:50 *always add 01:41:47 if they don't, well, it won't affect the && use, but bit wise stuff will fail 01:43:04 hmm 01:48:18 <`presiden> trying out https://ghidra-sre.org/ 01:49:06 <`presiden> on my forth implementation 01:49:20 <`presiden> looks good so far 01:50:14 <`presiden> now figuring out how to make it recognize forth dictionary 01:50:21 what's a 'bat' file? :p 01:50:23 that's the nsa competitor to IDA right? 01:51:31 ah - it has both bash and bat 02:02:25 <`presiden> yeah, it's IDA competitor 02:02:38 <`presiden> tho, I never use IDA 02:03:37 <`presiden> hm... the doc says it support dynamic data type 02:03:56 IDA is proprietary so no ta 02:04:20 --- quit: ashirase (Ping timeout: 252 seconds) 02:05:19 <`presiden> > Dynamic data types adapt to the underlying bytes to which they are applied.  These data types can only be created by writing a new Java class. 02:05:32 <`presiden> ah, so you need to write a class first then 02:12:38 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:47:26 hmm - it's kinda funny i guess - c++ doesn't provide a boolean xor (which i guess should be be ^^ to mirror the ^ bit wise operator) - guess i could add one in mine - would be something like ( b1 || b2 ) && !( b1 && b2 ) in infix notation i guess? 02:48:16 never really thought about it, but it's awkward to construct in c/c++ 02:48:28 you can't ^? 02:51:02 bool operator ^(bool a, bool b){return (bool)((int)!!a ^ (int)!!b);} 02:51:02 well, with with bools in the language - strictly speaking, yes, but it would break if you don't first coerce to a boolean first 02:52:55 as in a = 1, b = 2 - if ( a && b ) is fine - but clearly not the same as a & b - it follows that if ( a ^ b ) isn't what you want, but if ( bool( a ) ^ bool( b ) ) is probably fine 02:53:31 ah yea then just use !!a ^ !!b 02:53:38 !! is the bool operator 02:53:45 ah - yeah - cleaner - thanks :) 02:58:15 in my case, the ^^ would actually pull and coerce the top two items to bools anyway (ie: a = s.pull< bool >( ), b = s.pull< bool >( ) in which case i believe i get 0 or 1 for both, regardless of whether the stack contained ints, doubles or whatever - hence, s += a ^ b is probably all i need - if the object can't be coerced to a bool, it throws while pulling and stops) 02:59:03 --- quit: xek (Read error: Connection reset by peer) 02:59:11 --- join: xek_ (~xek@user-94-254-224-236.play-internet.pl) joined #forth 02:59:20 and to honour the negative - s += - ( a ^ b ) is probably fine 02:59:50 !a^!b 03:00:01 yes rdrop-exit is right 03:00:08 yes indeed 03:00:09 but confusing :) 03:00:14 :) 03:00:25 :) 03:03:19 the_cuckoo: the objection to ^^ in c is that it doesn't short-circuit like && or || 03:03:33 ah - yes 03:03:36 aha 03:03:39 good point :) 03:04:18 correctamundo 03:04:23 this is dennis ritchie talking about it: https://yarchive.net/comp/logical_xor.html 03:05:08 The C boolean operators are true boolean operations 03:05:56 dave0: yeah - good link - appreciated 03:06:10 They're control-flow 03:11:58 I prefer the Forth approach 03:12:48 but it's a little more work to do the short cirtcuit thing i guess 03:13:53 ie: || would always evaluate both 'somethings' 03:15:53 and sure, making something-else conditional itself and removing the || works, but it's not quite the same in terms of brevity 03:16:02 If those somethings are already on the stack they need to be consumed anyway 03:16:14 yup 03:16:39 If there's a lot of work involved in generating those somethings then I would do an early exit. 03:17:00 (i.e. deal with one at a time). 03:17:13 * with them one 03:17:47 yeah - all doable - but when you have a few conditions to check, the syntactical sugar that c/c++ provides is quite nice 03:19:11 You can always add syntactical sugar if you really want it, be careful you don't get diabetes 03:19:45 pros and cons to all such approaches anyway - mostly it's about people understanding the constructs and implications of the use of && and || - and i quite frequently run into experienced developers who will question the construct when presented with it 03:20:23 so, yeah - it's definitely possible to over sugar stuff :) 03:21:43 C makes it appear like a boolean combination when it's not, too much sugar IMO 03:22:06 still convenient though :) 03:24:12 Yes it can be 03:28:40 Conditional exit works great for that sort thing. If I need several things to be true before I do foo, then I factor the whole thing into a word and say 03:29:01 ..A.. 0=; ..B.. 0=; ..C.. 0=; foo ; 03:29:45 Obviously put the things in decreasing order of "likely to fail." 03:32:08 I do the same thing (using "0;"), it's the || case that's more verbose 03:33:30 Oh, um, let me see. 03:34:12 : (test) ..A.. 0<>; ..B.. 0<>; ..C.. 0<>; ;; 03:34:20 : test (test) foo ; 03:34:42 Any success returns to test to do foo - if they all fail you return double to test's caller. 03:35:16 So yes - more verbose, but not by a whole lot. 03:38:51 Yes, same here except the names 03:40:38 : (test) ... ?; ... ?; ... 0bail; ; 03:40:40 I think I may have a couple of places in my system where booleans are &&'d or ||'d, because I needed to make a traditional word work the way it was supposed to. 03:40:55 For the most part, though, I do those things above and do almost no && or ||. 03:42:01 I handle most early exit situations with either "?;" "0;" or "if ... then;" 03:44:53 * siraben uploaded an image: screenshot.png (263KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/GklyuElbKgjJIiWzRfAUINKk > 03:44:55 Added number reading to R216 Forth 03:46:00 kudos 03:47:00 thanks 03:47:19 See those pixels on the red area? That's the memory, each cell is 16 bits 03:47:25 Nice siraben. 03:47:43 This Forth barely occupies 1/3 of the memory and can do a lot 03:47:53 Thank you KipIngram . 03:48:53 rdrop-exit: Me too; far and away most of mine are 0=; or 0<>; 03:49:06 Huge kudos to the guy who made it too, it's amazing what you can do with quirks in a powder simulation game 03:49:10 made the computer* 03:49:30 A few places I use =; and so on, and with all three of those I might use the variant that retains an argument ( .0=; .0<>; .=; ) 03:50:08 It was previously impossible to get a computational device to perform 1 op/frame but around two or three years ago someone discovered this unexpected property 03:50:18 Me too, "if .. then;" is mainly for "if ... else ... then" situations 03:50:18 .0=; and .0<>; are faster primitives than 0=; and 0<>; since they don't have to pop the stack. 03:50:22 e.g. 03:50:28 b 03:50:29 c -row Console pane cursor up one row. 03:50:29 d 03:50:39 8 03:50:40 9 : -row ( -- ) 03:50:41 a top-row? if -scroll then; b/row console# -! ; compiled 03:50:52 b 03:51:04 I think I'd do that as 03:51:29 : -row ( --) top-row? 0<>; -scroll ; 03:51:56 Oh wait. 03:51:59 stuff comes after. 03:51:59 You're missing the else part 03:52:02 Sorry. 03:52:05 np 03:52:44 Ok, so then I'd do 03:53:10 drumroll... 03:53:39 :-) 03:53:45 I'm looking at it a minute. 03:53:51 :) 03:54:08 : (-row) top-row? 0<>; scroll ;; 03:54:25 : -row (-row) b/row console# -! ; 03:54:34 --- quit: xek_ (Ping timeout: 255 seconds) 03:55:17 That'll work too, slightly slower probably 03:55:36 I guess it has an extra call/return in it. 03:55:47 (not that it matters in this case) 03:59:02 I can do your then; as well - I write it as ;, then 03:59:53 Mines like this: 03:59:54 9 03:59:55 a then; Resolve a pending forward reference and compile an |exit|. 03:59:55 b 03:59:58 But I think I get precisely the same code - then; just compiles (;) and finishes the if, right? 04:00:11 7 04:00:11 8 : then; { a -- }( -- )( r: a -- ) & exit resolve ; directive 04:00:11 9 04:00:32 Oh, fancy... :-) 04:01:01 The exit can do tail call elimination 04:01:12 Yes, my ;, does that. 04:01:30 In fact, ; just invokes ;, at compile time; ;, does all the real work. 04:01:34 So pretty much equivalent, matter of personal taste 04:02:00 : ; POSTPONE ;, POSTPONE [ [ ; IMMEDIATE 04:02:05 if I recall correctly. 04:02:15 Is "directive" different from "immediate"? 04:02:50 It also makes the word a compilation only word. 04:03:02 Aha. Nice. 04:03:34 --- quit: nighty- (Quit: Disappears in a puff of smoke) 04:03:34 1 04:03:34 2 directive Set the precedence flag and reset the 04:03:34 3 interpretation flag of the last word. 04:03:35 Oh, I do like that. 04:03:45 1 04:03:46 2 : directive ( -- ) immediate compiled ; 04:03:46 3 04:03:53 I have always done that the much uglier way of having STATE @ tests in the definition. 04:03:57 Very slick. 04:04:02 Thanks 04:05:21 a 04:05:21 b : compiled ( -- ) interpretation last @ -flags ; 04:05:22 c : interpreted ( -- ) compilation last @ -flags ; 04:05:22 d : immediate ( -- ) precedence last @ +flags ; 04:05:22 e 04:06:08 2 precedence Indicates if the entry is immediate. 04:06:08 3 compilation Indicates the entry has compilation behaviour. 04:06:08 4 interpretation Indicates the entry has interpretation behavior. 04:06:14 Yes. I have plenty of room for those flags - I'd just never thought to have them. 04:06:40 the 0; stuff is new on me - like it though 04:06:47 I allocate the flag space and then never got around to considering ways of using htem. 04:06:49 them 04:06:58 It enabled me to factor the interpreter and compiler into their own words 04:07:03 the_cuckoo I love that stuff - it has changed the way I code. 04:07:26 yeah - it's pretty :) 04:07:45 brb 04:08:29 the_cuckoo: the other "unusual" thing I have in mine is what I refer to as the ME word group. 04:08:54 ME is an immediate word - it compiles an unconditional jump tot he latest definition in the dictionary (which of course is the word you're compiling). 04:08:59 So it loops back to the start. 04:09:19 But I also have conditional variants of it such as 0=ME 0<>ME and so on. 04:09:26 ah - yeah - makes sense 04:09:45 I do the same thing, the address is called MYSELF and the jump is layed down by RECUR 04:09:47 And I can put : in the middle of words because I have my headers separate from my definitions. 04:09:59 That creates a new "latest name" to be the target of the ME words. 04:10:24 So with those and the conditional returns, I can create just about any construct without using IF ... THEN, BEGIN ... AGAIN, and so on. 04:10:58 I thought about SELF instead of ME, but ME is shorter. 04:11:33 I explain the header flags in a reddit post if you're interest, some of the names have changed, but the principals are the same 04:11:39 The honest truth is I haven't even put all those constructs in my system yet (IF THEN, BEGIN AGAIN, etc.) I've just found that I haven't needed them. 04:11:46 https://www.reddit.com/r/Forth/comments/9izdtq/a_simple_approach_to_dual_words/ 04:12:03 Thank you - I am going to look into that; it would make a number of definitions much cleaner. 04:12:18 Cool 04:12:32 I might go backa and change my assembly, or I might wait until I work on meta-compiling, but it's a win. 04:13:16 Gotta run, some unexpected guests just arrived. Ciao 04:13:26 Oh, have fun. 04:13:27 --- quit: rdrop-exit (Quit: Lost terminal) 04:13:54 ah - was reading his article there :) - looked good i think 04:17:26 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 04:23:52 > 0 0 ^^ , space 1 0 ^^ , space 0 1 ^^ , space 1 1 ^^ . 04:23:55 0 -1 -1 0 04:23:57 > 2 1 ^^ , space 2 0 ^^ , space 0 2 ^^ , space 2 2 ^^ , space 2 1 ^^ . 04:23:59 0 -1 -1 0 0 04:24:08 think that seems right to me anyway 04:25:21 KipIngram: as WilhelmVonWeiner said, [ ] in retro make a nestable, anonymous function. In the assembly versions, the as{ }as act similarly to [ ] in traditional Forth 04:25:54 and i had it right - it s += - ( a ^ b ) where a and b are pulled from the stack as s.pull< bool >( ) 04:26:12 Oh yes - I remember that now. 04:26:14 Thanks. 04:26:16 : mux ( x1 x2 mask -- x ) tuck and >r swap not and r> or ; 04:26:25 Yes, I get it now. 04:26:44 It really made no sense trying to interpret those as the usual Forth [ and ]. 04:28:05 Does anyone know what chip this is? 04:28:05 https://rounded.com/images/detailed/120/krups-power-board-gsm-0300-114-ms-5945308.png 04:35:22 Which one? 04:36:00 Oh, never mind. 04:36:03 stm32 04:36:09 One thing I thought was a chip I don't think is. 04:36:28 or something like it 04:36:33 picture is too low res 04:37:04 Try this: 04:37:06 http://chipmanuals.com/datasheets/search/go/ 04:37:17 Oh wait. 04:37:23 That's a generic entry. Damn it. 04:37:28 siraben: http://elcodis.com/parts/1291139/ST72F324BJ6T6.html#datasheet 04:37:57 https://www.st.com/content/ccc/resource/technical/document/datasheet/a3/ff/ee/cf/95/f6/4a/90/CD00158271.pdf/files/CD00158271.pdf/jcr:content/translations/en.CD00158271.pdf 04:38:55 maybe the question is about a different chip 04:39:00 because that one is clearly labeled 04:39:06 https://www.st.com/content/ccc/resource/technical/document/datasheet/a3/ff/ee/cf/95/f6/4a/90/CD00158271.pdf/files/CD00158271.pdf/jcr:content/translations/en.CD00158271.pdf 04:39:19 Ah, you beat me. 04:39:28 pro :) 04:39:41 I was fighting for a couple of minutes with one of those damn "data sheet archives" that doesn't really make it very easy to find the actual pdf. 04:39:48 yea never use those 04:39:50 Finally gave up on that and went to Digikey. 04:40:00 octopart is the only one that works well 04:40:28 Interesting. 04:40:42 Thanks a lot crc , KipIngram 04:40:51 :( 04:40:52 and corecode 04:40:56 :) 04:41:04 haha 04:41:10 what are you up to? 04:41:20 Can't find any assembly examples except for that in the last few pages of the PDF 04:41:33 I was trying to see what chip my parent's coffee machine used 04:41:34 ah you want to write your own firmware? 04:42:03 we have a cheap nespresso-alike, it has an attiny85 in it :) 04:42:29 Would be interesting to see if I could get the assembly code and modify it 04:42:41 almost certainly firmware protection 04:42:52 There's an annoyance with the machine, we disconnect from power most of the time but when we need it it asks for the current date and time. 04:42:55 so you would have to bulk erase and write your own 04:43:03 aha 04:43:07 Have you modified firmware before? 04:43:20 i develop firmware professionally 04:43:26 and i've modified binaries before 04:43:27 I might try a low-risk device first since this is a little costly for a machine 04:43:32 Ah I see. 04:43:48 i think the solution would be to add a battery 04:43:49 sec 04:46:33 so it doesn't have a dedicated rtc backup 04:46:59 do you know whether it is normal that it asks for the time? 04:47:12 or is this something that only developed after a while 04:47:33 siraben: https://www.st.com/content/ccc/resource/technical/document/user_manual/00/69/94/42/92/11/40/a4/CD00004536.pdf/files/CD00004536.pdf/jcr:content/translations/en.CD00004536.pdf has some details on assembly language for this 04:47:50 siraben: the datasheet says it comes in a rom option - if that's the case it won't be modifiable. 04:48:52 yea, it has an external eeprom 04:51:49 Hm. 04:52:53 i'd put it at 90% chance that you need to spend >100 hours to modify/recreate the firmware 04:53:05 I guess which they chose to use would depend on their volume. Though I don't even know for sure if the rom is cheaper - I didn't price check. Another reason for the rom option might be for reliability; it said this is an automotive device. 04:53:31 I presume the rom would have superior data retention performance. 04:53:34 even if it isn't, most likely it has firmware protection 04:59:34 --- quit: dave0 (Quit: dave's not here) 05:11:53 What sort of consumer product is hackable? 05:14:04 Well, I'd think that A) it would have to use a flash memory for its code storage, and B) it would have to be viable to reprogram that flash. 05:14:31 That seems kind of like an tautological answer, but I can't think of anything else that would be required. 05:14:49 Some really interesting things have been done hacking alternate firmware for routers. 05:15:02 You know, the relatively inexpensive consumer ones. 05:15:33 There's a fairly well-known open-source project for one of those; I can't think of its name right now, though. 05:15:49 That's interesting because you're on a cheap box that has network capability. 05:16:31 OpenWrt. 05:17:30 There's a whole list of router projects here: 05:17:32 https://en.wikipedia.org/wiki/List_of_router_firmware_projects 05:23:58 KipIngram: calculators, of course! 05:24:10 Certain models anyhow, like the TI-84+ 05:24:25 Yes indeed. :-) 05:24:30 Later models are still programmable but the signed OS cannot be changed due to 2048 RSA 05:24:44 Someone factorized the 521 bit RSA key on the TI-84+ 05:28:16 Routers are worth a shot, because that space is still pretty proprietary and it's a critical device 05:35:18 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 05:38:17 Yes, I think that's exactly why it pulls so much interest. 06:40:46 hm, my compiler needs two word lists 06:40:56 at least for primitives 06:41:40 <`presiden> word lists? dictionary? 06:42:00 yes 06:42:24 <`presiden> corecode, why two dictionary? 06:44:01 because + is different for the compiler and the target 06:44:10 it's a cross compiler 06:44:55 or i have one, and have a compiler and target entry 06:46:56 hm, + is a primitive, not an immediate 06:47:24 i guess i could implement it as immediate? 07:16:53 --- quit: gravicappa (Ping timeout: 252 seconds) 07:17:46 --- join: gravicappa (~gravicapp@h37-122-112-168.dyn.bashtel.ru) joined #forth 07:21:18 --- quit: tabemann (Ping timeout: 246 seconds) 07:30:34 --- join: xek_ (~xek@user-94-254-224-236.play-internet.pl) joined #forth 07:33:12 --- join: xek__ (~xek@public-gprs401058.centertel.pl) joined #forth 07:33:16 --- quit: gravicappa (Ping timeout: 255 seconds) 07:35:35 --- quit: xek_ (Ping timeout: 252 seconds) 09:07:24 --- quit: pierpal (Quit: Poof) 09:07:44 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 09:22:34 --- quit: Zarutian (Read error: Connection reset by peer) 09:23:18 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 09:26:50 --- quit: pierpal (Quit: Poof) 09:27:11 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 09:40:55 --- quit: nighty- (Quit: Disappears in a puff of smoke) 09:51:55 Wow, Forth really is amazing. It's been less than a week since I started R216 Forth and most of the work was in the first two or three days and it's more or less complete 09:52:14 Or not, if I look at the standard. Hm. 09:52:37 ignore the standard 09:54:24 Yeah I don't look at it any more 10:04:20 it's funny though - most people approaching a language will look to write stuff in the language... not write the language :) 10:10:05 think i'll push my rpany-pi stuff to gitlab this evening - it's incomplete and untested (as the gpio pins i want to access are obscured by the 3d printed case i put on it and am somewhat reluctant to remove :)), but it covers the basics of the core wiring pi api 10:32:24 I've written a shell script (http://forth.works/c3e38d6893fe4d0a5483d4551789ded1) that can take a retro source file (e.g., http://forth.works/cacca889c001818c43c5cd97dd7059d3) and generate a glossary file of the words used in it (e.g., http://forth.works/d9af302587b6d8441d9b71a4897da5db). 10:36:42 --- quit: rprimus (Ping timeout: 244 seconds) 10:37:21 --- join: proteusguy (~proteusgu@49.230.15.231) joined #forth 10:37:21 --- mode: ChanServ set +v proteusguy 10:38:32 --- join: rprimus (~micro@unaffiliated/micro) joined #forth 11:11:26 --- quit: pierpal (Quit: Poof) 11:11:46 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 11:20:32 --- quit: proteusguy (Ping timeout: 252 seconds) 11:27:32 https://gist.github.com/935e31dc5656812657e7b572ea1cd689 11:27:39 getting somewhere 11:38:16 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:2ca4:a12:63fe:b6ae) joined #forth 11:38:16 --- mode: ChanServ set +v proteusguy 11:43:15 --- join: xek (~xek@user-94-254-224-236.play-internet.pl) joined #forth 11:45:13 --- quit: xek (Remote host closed the connection) 11:45:16 --- join: xek_ (~xek@user-94-254-224-236.play-internet.pl) joined #forth 11:45:50 --- quit: xek__ (Ping timeout: 252 seconds) 11:47:29 --- quit: proteusguy (Ping timeout: 252 seconds) 12:00:05 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:2ca4:a12:63fe:b6ae) joined #forth 12:00:05 --- mode: ChanServ set +v proteusguy 12:06:20 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 12:40:05 https://gist.github.com/f1e4ae278f500cdcfbbf7d6f7ab2b053 12:40:18 now optimizing EXITs 12:42:28 https://github.com/corecode/forth-cpu-compiler/blob/master/compiler.py#L298 12:42:34 that's the forth source 12:46:59 https://pastebin.com/FEndCk5p <- an example of use of rpany-pi 12:49:05 --- quit: proteusguy (Ping timeout: 252 seconds) 12:54:24 wow you support do loop in interpret mode 12:55:55 oh yeah 12:56:23 when a parser closes there, it executes 12:56:29 we hear so much about do loops lately but I wonder if they are done or not. 12:57:15 i feel this is a joke 12:58:13 corecode: did I throw you for a loop there? 12:59:47 :) 13:00:25 do it again 13:01:56 on one condition I might 13:02:13 so cmforth has FOR, not DO 13:03:56 --- quit: pierpal (Ping timeout: 252 seconds) 13:07:06 --- quit: mtsd (Quit: leaving) 13:32:12 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 13:32:56 hi 13:43:49 Hi dave0 13:45:25 hi crc 14:15:34 --- quit: Zarutian (Ping timeout: 255 seconds) 14:18:16 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 14:18:34 https://gitlab.com/lilo_booter/rpany-pi/blob/master/README.md <- first draft 14:19:27 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:59e6:bf5a:2b52:6a8e) joined #forth 14:19:27 --- mode: ChanServ set +v proteusguy 14:24:52 i guess i should implement constant 14:30:50 --- quit: proteusguy (Ping timeout: 252 seconds) 14:43:51 --- join: proteusguy (~proteusgu@49.229.39.165) joined #forth 14:43:51 --- mode: ChanServ set +v proteusguy 14:45:46 implement constantinople 14:57:10 --- quit: proteusguy (Ping timeout: 240 seconds) 15:12:50 --- join: proteusguy (~proteusgu@162-235-152-188.lightspeed.milwwi.sbcglobal.net) joined #forth 15:12:50 --- mode: ChanServ set +v proteusguy 15:12:53 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 15:17:13 --- quit: pierpal (Ping timeout: 255 seconds) 16:30:49 --- join: pierpal (~pierpal@host161-197-dynamic.245-95-r.retail.telecomitalia.it) joined #forth 16:48:20 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 16:59:08 --- join: xek__ (~xek@user-5-173-144-62.play-internet.pl) joined #forth 17:01:32 --- quit: xek_ (Ping timeout: 252 seconds) 17:02:10 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:05:06 --- join: xek_ (~xek@user-5-173-152-127.play-internet.pl) joined #forth 17:07:55 --- quit: xek__ (Ping timeout: 255 seconds) 17:15:28 --- join: tabemann (~travisb@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 17:41:08 --- join: xek__ (~xek@user-5-173-144-212.play-internet.pl) joined #forth 17:43:46 --- quit: xek_ (Ping timeout: 245 seconds) 17:44:10 --- join: xek_ (~xek@user-5-173-152-183.play-internet.pl) joined #forth 17:45:14 --- quit: cantstanya (Ping timeout: 256 seconds) 17:46:41 --- quit: xek__ (Ping timeout: 245 seconds) 17:47:51 --- join: cantstanya (~chatting@gateway/tor-sasl/cantstanya) joined #forth 17:48:08 --- join: xek__ (~xek@user-5-173-144-172.play-internet.pl) joined #forth 17:50:26 --- quit: xek_ (Ping timeout: 245 seconds) 17:55:06 --- join: xek_ (~xek@user-94-254-233-42.play-internet.pl) joined #forth 17:57:50 --- quit: xek__ (Ping timeout: 240 seconds) 17:58:08 --- join: xek__ (~xek@user-5-173-152-47.play-internet.pl) joined #forth 18:00:24 --- quit: xek_ (Ping timeout: 246 seconds) 18:02:36 --- join: xek_ (~xek@user-94-254-233-93.play-internet.pl) joined #forth 18:05:04 --- quit: xek__ (Ping timeout: 255 seconds) 18:16:03 --- quit: Keshl (Read error: Connection reset by peer) 18:16:38 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 18:17:31 --- quit: tabemann (Ping timeout: 245 seconds) 18:19:19 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 18:34:50 --- quit: `presiden (Ping timeout: 240 seconds) 19:04:20 --- quit: dddddd (Remote host closed the connection) 19:19:35 --- quit: dave0 (Quit: dave's not here) 19:36:32 --- join: rdrop-exit (~markwilli@112.201.168.172) joined #forth 20:03:17 --- quit: rdrop-exit (Quit: Lost terminal) 20:25:08 --- join: travisb (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) joined #forth 20:26:15 --- quit: proteusguy (Ping timeout: 245 seconds) 20:26:55 --- quit: jn__ (*.net *.split) 20:26:55 --- quit: crc (*.net *.split) 20:26:55 --- quit: malyn (*.net *.split) 20:26:55 --- quit: Lord_Nightmare (*.net *.split) 20:28:34 --- nick: travisb -> tabemann 20:54:02 --- join: crc (~crc@li782-252.members.linode.com) joined #forth 20:54:02 --- join: jn__ (~nope@aftr-109-90-232-48.unity-media.net) joined #forth 20:54:02 --- join: malyn (~malyn@unaffiliated/malyn) joined #forth 20:54:02 --- join: Lord_Nightmare (Lord_Night@unaffiliated/lordnlptp) joined #forth 20:54:02 --- mode: livingstone.freenode.net set +v crc 20:59:20 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 21:01:29 --- quit: pareidolia (Ping timeout: 264 seconds) 21:02:30 --- quit: MrMobius (Ping timeout: 240 seconds) 21:02:30 --- nick: [1]MrMobius -> MrMobius 21:05:00 --- join: pareidolia (~pareidoli@87.213.124.143) joined #forth 21:20:13 --- join: gravicappa (~gravicapp@h37-122-113-40.dyn.bashtel.ru) joined #forth 21:36:03 Programming on this in-game computer makes the Z80 look like a supercomputer 21:36:19 I have a clock rate of around 130 Hz 21:53:07 --- quit: pierpal (Read error: Connection reset by peer) 22:09:41 Hahahahahah... That's kind of priceless. 22:21:31 If you have a REALLY CISC architecture that could be fine. 22:21:40 The human brain operates at about 30Hz after all... 22:21:51 can confirm 22:23:42 --- quit: PoppaVic (Remote host closed the connection) 22:28:45 I think there's a lot more going on than we think in the human brain. 22:28:56 I suspect quantum stuff. 22:29:09 Penrose has written a lot about that. 22:29:12 Microtubules. 22:29:25 Penrose and, uh... Stapp? 22:30:29 Some folks will get vehemently riled up over talk like that, but I think we get rather arrogant at times over how much we think we know. 22:31:17 Science doesn't even have a REAL explanation for how it is we're even aware of our own existence. 22:54:23 Keep in mind the brain is highly parallel 22:54:34 And clock-less 23:14:53 --- quit: nerfur (Ping timeout: 250 seconds) 23:26:00 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:26:43 --- join: nerfur (~nerfur@broadband-95-84-184-13.ip.moscow.rt.ru) joined #forth 23:28:45 --- quit: MrMobius (Ping timeout: 268 seconds) 23:28:46 --- nick: [1]MrMobius -> MrMobius 23:32:47 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:35:37 --- join: [2]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:36:07 --- quit: MrMobius (Ping timeout: 250 seconds) 23:37:56 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 23:39:11 --- quit: [1]MrMobius (Ping timeout: 252 seconds) 23:40:51 --- quit: [2]MrMobius (Ping timeout: 245 seconds) 23:59:59 --- log: ended forth/19.03.06