00:00:00 --- log: started forth/18.09.19 00:21:46 --- quit: dys (Ping timeout: 246 seconds) 00:36:37 --- join: xek_ (~xek@134.134.139.72) joined #forth 00:39:25 --- quit: nighty- (Ping timeout: 252 seconds) 00:39:25 --- quit: xek (Ping timeout: 252 seconds) 00:44:35 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 00:56:21 --- join: ncv (~neceve@2a02:c7d:c5c9:a900:6eaf:6ef7:3b81:d5f6) joined #forth 00:56:21 --- quit: ncv (Changing host) 00:56:21 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:42:19 --- join: dne (~dne@jaune.mayonnaise.net) joined #forth 02:03:46 --- quit: ashirase (Ping timeout: 252 seconds) 02:10:29 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:12:52 --- join: Keshl_ (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 02:13:41 --- quit: Keshl (Read error: Connection reset by peer) 03:01:48 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 03:11:18 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:12:52 --- quit: pierpal (Ping timeout: 252 seconds) 03:33:03 --- quit: nighty- (Quit: Disappears in a puff of smoke) 04:12:15 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 04:28:16 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 04:56:35 --- quit: pierpal (Quit: Poof) 04:56:53 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 05:00:10 --- quit: pierpal (Read error: Connection reset by peer) 06:53:01 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 07:03:24 So does anyone know if nasm supports "subsections"? 07:03:44 I may be able to do what I want to do with just sections, but I'm not sure of that yet - I've made it work on gas with subsections. 08:21:19 --- join: lemonpepper24 (~lemonpepp@c-24-6-137-62.hsd1.ca.comcast.net) joined #forth 09:16:17 --- join: dys (~dys@tmo-096-22.customers.d1-online.com) joined #forth 09:20:57 --- quit: jedb (Remote host closed the connection) 09:21:09 --- join: jedb (~jedb@162.219.176.251) joined #forth 10:05:28 --- quit: ncv (Remote host closed the connection) 11:01:22 --- quit: lemonpepper24 (Ping timeout: 252 seconds) 11:56:07 --- quit: epony (Ping timeout: 252 seconds) 12:05:35 --- quit: Zarutian (Ping timeout: 250 seconds) 12:07:05 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 12:17:12 --- join: epony (~epony@unaffiliated/epony) joined #forth 13:34:34 --- quit: pierpal (Ping timeout: 252 seconds) 14:11:37 --- quit: dys (Ping timeout: 246 seconds) 14:49:33 --- join: rscho (~raoul@2a02:1205:5017:3ca0:428d:5cff:febb:33b) joined #forth 14:52:28 Hi all! I am trying to get my own STC Forth running on 32-bit ARM. Would someone know of a good example I could look at? I was able to partially infer what I had to write from JonesForth, but I am a bit stuck on INTERPRET now... 15:04:12 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 15:08:23 rscho: I always recommend one looks at eForth and mecrisp if that helps 15:32:14 --- quit: phadthai (Quit: brb) 15:35:17 Zarutian: Ok, thanks! As I understand it from what I read so far, a subroutine threading model allows one to do without DOCOL NEXT or EXIT, isn't it? 15:36:16 Mecrisp-stellaris is clearly out of my league, but I seem to more or less understand what is going on in the eForth source... 15:36:37 --- join: phadthai (mmondor@ginseng.pulsar-zone.net) joined #forth 15:36:42 well the e in its name stands for educational 15:38:20 iirc subroutine threading is just a series of CALL instructions to each word used in a word-definition 15:38:21 --- join: nonlinear (~nonlinear@unaffiliated/discrttm) joined #forth 15:38:46 so, EXIT would probably replaced with RETurn (or some such) instruction 15:39:40 yes, bx lr in ARM 15:39:53 what I do nowdays is to write an emulator for a dual stack machine from "Stack Machines the New Wave" book 15:41:39 basically in it all "instructions" above a certain powers of two is simply an call to that address. The ones below and equal are then just primitives (I have gotten away with 16) 15:42:15 right ARM uses an leaf register for subroutine return linkage 15:43:02 meaning one has to save that register somewhere before calling another subroutine 15:43:27 (no implict call stack support in ARM iirc) 15:43:40 indeed, thanks 15:45:39 What do you mean by "simply called if above a certain limit"? Does it mean that the instructions higher in memory are left unnamed (i.e they are simple labels)? 15:48:09 a concrete example: lets say each cell can hold 16 bits, the program memory is cell addressed (not byte addressed), if the three upper nybbles of a cell is zero then the cell contains a primitive instruction, if not then the cell contains a call to that address. 15:49:38 means that the cells at the addresses 0x0000-0x000F inclusive of the program memory cannot be called but that is a small sacrifice. 15:52:12 Ok, so basically your INTERPRET simply tests for this condition and BRANCHes to either a call or an IMMEDIATE EXECUTE? 15:53:28 well, I do not have an inner address interpreter. Basically I wire up an ROM-logic controler that pretty much does what you said. 15:54:36 or in case of an emulator an switch-case block with sixteen cases (for each primitive) and one default case (to handle calls) 15:55:32 I see. I am trying to run on bare metal by bootstrapping from assembly, though. 15:55:54 makes the forth image I have been fiddling with pretty portable 15:57:03 yeah, looking at how eForth does it with its primitives is illuminating 15:57:32 --- join: lemonpepper24 (~lemonpepp@c-24-6-137-62.hsd1.ca.comcast.net) joined #forth 16:05:50 rscho: I think m3forth is what you need https://bitbucket.org/cbiffle/m3forth/wiki/Home 16:15:37 * pointfree thinks factoring KolibriOS is the fastest way to a daily driver forth OS https://x0r.be/@pointfree/100754950629378262 16:17:04 pointfree: that's pretty much exactly what I was looking for. Thanks! It's "Just do it" time, now ;-) 16:26:14 --- quit: rscho (Quit: WeeChat 1.9.1) 17:04:53 I think a lot of people struggle to initally "get" the concatenative/stack based paradigm 17:07:56 I saw someone in a github issue for the lang "Kitten" mention their language, where they've added infix operators, because "drop dup dup * swap abs rot3 ( wtf??? ) dup * swap - +" is too complicated 17:08:44 aside from not having any idea what rot3 is, this is a result of thinking in infix by default, because really it's not compilcated, I think those are very simple steps to create an otherwise complex system 17:10:19 --- nick: Keshl_ -> Keshl 17:11:40 People always want to change the paradigm and really, Chuck got it pretty spot on first time. Only things i like more are Forths that get rid of special parsing constructs like `if ... then` 17:20:41 --- quit: nighty- (Quit: Disappears in a puff of smoke) 17:29:49 WilhelmVonWeiner: On the topic of control structures, I really like keeping things array based by default like lang5 http://lang5.sourceforge.net/tiki-index.php and then using Sam Falvo's assertive-style programming. Reads like pseudo-english with no IF CASE ?DO LOOP or any of those. 17:29:57 Sam Falvo is going to continue the story on Forth Day in his talk on ascetic programming. 17:35:40 aha! I think array-based by default is what I need for gelforth hdl. (I was unsatisfied with the aesthetics of Boolean algebra in forth, and James Bowman was suggesting to me that gelforth should make better leverage of large parallel vectors) 19:17:22 --- quit: dddddd (Remote host closed the connection) 19:18:53 --- join: dave9 (~dave@90.20.215.218.dyn.iprimus.net.au) joined #forth 19:19:04 hi 20:00:33 --- quit: dave9 (Quit: one love) 20:12:09 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 21:17:02 --- quit: nonlinear (Ping timeout: 244 seconds) 21:20:10 --- join: nonlinear (~nonlinear@unaffiliated/discrttm) joined #forth 21:43:52 --- quit: pierpal (Quit: Poof) 21:45:08 --- join: pierpal (~pierpal@host102-235-dynamic.181-80-r.retail.telecomitalia.it) joined #forth 22:04:47 --- quit: pierpal (Ping timeout: 260 seconds) 22:58:45 --- quit: lemonpepper24 (Ping timeout: 245 seconds) 23:13:43 --- join: dys (~dys@tmo-080-189.customers.d1-online.com) joined #forth 23:59:59 --- log: ended forth/18.09.19