00:00:00 --- log: started forth/18.06.08 00:50:45 --- quit: nighty- (Ping timeout: 255 seconds) 01:41:37 --- join: dave9 (~dave@207.213.dsl.syd.iprimus.net.au) joined #forth 01:43:00 hi 02:04:18 --- quit: nighty-- (Quit: Disappears in a puff of smoke) 02:19:59 --- join: proteusguy (~proteusgu@2403:6200:88a6:d26d:2d09:c90a:9956:b5e0) joined #forth 02:19:59 --- mode: ChanServ set +v proteusguy 02:22:49 --- quit: proteus-guy (Ping timeout: 240 seconds) 02:39:43 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 02:51:11 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 03:19:43 --- quit: nighty- (Ping timeout: 245 seconds) 04:25:05 crc: can you please try this? i tried to fix it for FreeBSD: http://termbin.com/bka9 http://termbin.com/wa3a rename bka9.S and wa3a.c and compile with gcc bka9.S wa3a.c 04:34:23 dave0: I grabbed those and tried them on MacOS. Got a ton of this type of thing: 04:34:26 :6:2: error: 32-bit absolute addressing is not supported in 64-bit mode 04:34:29 xchg %rbp,Crbp 04:34:44 Which is the same problem I fought with for a couple of days before finally working out a way around it. 04:34:57 MacOS requires a pretty strict position independent code thing. 04:35:10 ah right position independent 04:35:54 so did you add (%rip) to all the memory references? 04:36:09 No, I didn't edit it at all. I was just curious. 04:36:14 ah 04:36:26 hmm 04:36:33 what should i do? 04:36:44 Oh, I don't know. I didn't get that far into it. 04:36:51 lol 04:37:01 I'm just waiting for work tests to finish - been running them all night. 04:37:07 It was something to do for a minute. 04:37:23 i can post the i386 version if you like? 04:37:44 in nasm I can say lea rxx, [label] and that works. 04:38:24 So I do that four times at the very beginning, loading r15, r14, r13, and rsi with various things. 04:38:36 Then from there on out I use register addressing. 04:38:51 i use a fair few absolute pointers 04:38:59 hmm 04:39:17 Yes, Forth is just "fond" of that sort of addressing. 04:39:43 ah i remember you saying you had a position independent Forth 04:39:59 everything was offset to something (a register?) 04:40:01 I had to make all of my cells that would normally contain absolute addresses contain offsets instead, and then use that offset relative to one of those regs. 04:40:24 sounds tedious 04:40:57 Well, once I figured out what to do it was then about as easy as the other way. 04:41:17 absolute addresses work for me on netbsd, and if there's a positive reaction from crc, that will be just fine 04:41:25 When I'm defining a definition list, I have dd hello-o, bye-o and so on. 04:41:32 The -o gets me the offset. 04:41:38 ah 04:41:57 So yeah, I have to stick that -o on EVERY SINGLE cell spec, but it's not that bad, and I get into a rhythm. 04:42:30 KipIngram: have you tried any other unix? linux netbsd freebsd openbsd? 04:45:40 being portable is kinda tricky 04:47:06 Not on this one, no. 04:47:20 The C imp I did a couple of years ago I've run on 32-bit Ubuntu and 64-bit MacOS. 04:47:57 It used no assembly, though - it's "operationally" a real Forth (has the standard indirect threading mechanism), but it uses C variables for those. 04:48:19 I have a roadmap for shifting it to registers, but probably will never get to it now that I'm working on this one. 04:48:27 it's assembly that attracted me to jonesforth 04:48:50 I've done a proof of feasiability of machine code primitives in my main system image buffer. 04:48:58 ah cool 04:49:01 But the primitives are all still the little bits of C code I originally wrote. 04:49:19 Little short one-linters, but they still live wherever gcc put htem. 04:49:24 liners 04:51:09 so was inc like stack[0]++; goto *ip++; with the gcc "label pointers" ? 04:51:13 This assembly project currently initializes the inner interpreter (four lea instructions), which points rsi to a test word and then takes off. 04:51:15 dave9: if you are looking for an Forth whose most of starting image is written in assembler check out eForth. 04:51:19 It prints a message a few times and exits. 04:51:41 Zarutian: okay thanks i will! 04:52:10 KipIngram: i print a twirling baton for my demo prgoram lol 04:52:12 I want to write cold and warm (so my stacks will then be set up) and have quit be the test word, and then I think I'll start working on the header structures. 04:52:38 KipIngram: how do you get the operating system to print a byte? like EMIT ? 04:52:49 a system call? 04:52:51 "write" system call. 04:52:55 Prints a string. 04:52:57 ah okay 04:53:12 And bye is a system call too. 04:53:14 that is not very portable :-( 04:53:35 KipIngram: oh, I thought the write syscall only wrote out one char each time 04:53:42 i mean to other unixes 04:53:48 It's odd - MacOS requires a system file to be linked in 64-bit mode. 04:54:02 I wasn't expecting that - I thought the system calls would be ready to work right from machine code. 04:54:08 But evidently some sort of interface has to be loaded. 04:54:14 if crc has success with freebsd i might see if i can do soething with macos 04:54:38 KipIngram: most likely it is a virtual.so or some such 04:55:01 Yeah. I'm treating it like a black box. :-) 04:56:15 i really hope it works with freebsd because i am proud of the code lol 04:56:20 I also need to make some decisions about what my basic "process" data structure is going to be. Since I'll need to set one up as the "first execution" thing for this. 04:56:53 Right now I'm just using the stack that the system gave me by default. So there are some "polishing" things to do before starting to move forward in earnest. 04:58:09 I plan to have no variables except for a handful of system memory manager variables in the "main kernel" of this thing. 04:58:44 Almost all of the usual variables will be per-process. I want to have an initial image of those that can be copied into each process created. 04:58:58 So COLD will create the first process and copy that into the process memory. 04:59:13 That way they'll get reset to the default values if I run cold. 04:59:51 I think what that will amount to is 1) reset all the memory management stuff, 2) kick off a process. 05:00:33 gotta pee! 05:00:46 At the moment I'm leaning toward treating free memory when the system starts up as 64k pages, and the default amount a process will get will be one page. 05:00:58 I may change that number; we'll see. 05:01:18 But I want a fixed size block so avoid having process start/stop over time fragment my memory. 05:46:51 --- quit: pierpal (Quit: Poof) 05:47:10 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 05:51:37 --- join: mnemnia (~mnemnion@2601:643:8102:7c95:1d0b:effe:e72e:7681) joined #forth 05:54:27 --- quit: mnemnion (Ping timeout: 256 seconds) 05:58:40 beer-time 06:02:03 The best time 06:09:16 dave9: still no luck: https://gist.github.com/crcx/402ab2f8210bcc28714aa0beb66a9349 06:09:47 fuck! 06:11:06 --- quit: mnemnia (Remote host closed the connection) 06:12:17 crc: thanks for trying 06:12:37 no problem 06:12:59 i have a freebsd cdrom somewhere, i will try and install it 06:24:57 how do Forth folk refer to themselves? i thought "Forth-ian" maybe? 06:40:09 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 06:40:36 --- quit: bluekelp (Ping timeout: 256 seconds) 06:45:14 dave9: "Forthers" usually. I have also seen "Forthwrights" in older forth publications (like "playwright"). A "wright" is a "maker" or a "builder". "Wright" is kind of an archaic word. I'd probably go with "Forthers". 06:46:06 Forthwrights has a nice sound to it :-) 06:46:11 nice ring to it 06:46:14 Forthwights? :-D 06:48:26 frothwights 06:48:36 Sounds like "forthright" -- blunt, straightforward talk 06:51:35 I used to have forthwrights as the demonym on /r/Forth. 06:56:16 --- quit: mtsd (Quit: Leaving) 07:06:48 --- quit: pierpal (Ping timeout: 245 seconds) 07:07:15 it's midnight, sleep time 07:08:51 --- quit: dave9 (Quit: dave's not here) 07:18:22 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 07:35:46 --- quit: pierpal (Read error: Connection reset by peer) 07:37:53 Heh heh - I do like "forthwright." 07:41:07 beats forthwrong I guess 07:54:25 :-) Indeed. 08:32:49 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 08:53:49 --- quit: pierpal (Read error: Connection reset by peer) 08:54:06 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 09:07:22 --- quit: pierpal (Ping timeout: 256 seconds) 09:26:40 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 09:31:05 --- join: dys (~dys@tmo-119-65.customers.d1-online.com) joined #forth 09:47:07 --- quit: pierpal (Quit: Poof) 09:47:29 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 09:51:08 --- join: bluekelp (~bluekelp@bluekelp.com) joined #forth 10:12:13 --- quit: dys (Ping timeout: 245 seconds) 10:13:04 --- join: dys (~dys@tmo-118-157.customers.d1-online.com) joined #forth 10:54:44 --- quit: pierpal (Read error: Connection reset by peer) 11:12:55 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:1d0b:effe:e72e:7681) joined #forth 11:37:31 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 12:02:10 --- quit: pierpal (Remote host closed the connection) 14:42:17 I am translating some C code to forth and I was stumped by: err += dy += a; 14:42:49 what does it do? increase err by dy then by a? 14:49:36 Zarutian: Multiple assignment operates right to left. So, dy = dy + a; err = err + dy; 14:54:10 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 14:56:52 pointfree: thanks. 14:57:44 also whoever wrote that needs a spanking 14:59:25 --- join: pierpa (57100917@gateway/web/freenode/ip.87.16.9.23) joined #forth 15:31:03 --- quit: pierpal (Quit: Poof) 15:31:20 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 15:42:22 crc: sorry to bug you yet again.. mind trying this code on freebsd please? http://termbin.com/wa3a http://termbin.com/6gd7 rename to wa3a.c and 6gd7.S and compile gcc wa3a.c 6gd7.S 15:45:01 If at first you don't succeed... 15:45:12 --- join: dave9 (~dave@207.213.dsl.syd.iprimus.net.au) joined #forth 15:46:43 hi 16:06:15 Hi Dave. 16:06:34 hi KipIngram 16:07:00 i'm all settled and ready to code! :-) 16:07:07 :-) 16:14:01 --- quit: dddddd (Remote host closed the connection) 16:21:17 --- quit: tusj (Read error: Connection reset by peer) 17:04:31 --- quit: pierpal (Ping timeout: 260 seconds) 17:44:55 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 17:48:01 --- quit: nighty-- (Max SendQ exceeded) 17:48:34 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 17:50:04 crc: i just had a thought... maybe the stack is mis-aligned! 17:51:19 --- quit: Zarutian (Read error: Connection reset by peer) 17:51:26 --- join: Zarutian_2 (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 18:28:37 --- join: pmc_ (~Patrick@2601:2c3:4300:8be:b984:b502:b4d8:70ad) joined #forth 18:29:40 --- quit: pmc_ (Quit: Leaving) 18:44:55 --- join: karswell (~user@185.161.200.11) joined #forth 18:46:44 --- quit: karswell (Remote host closed the connection) 18:48:13 --- join: karswell (~user@185.161.200.11) joined #forth 18:50:01 --- quit: karswell (Remote host closed the connection) 18:51:33 --- join: karswell (~user@185.161.200.11) joined #forth 19:00:22 dave9: same problem 19:01:10 https://gist.github.com/crcx/5f06caa66e24a6e0cdd3b075c2d77373 19:01:14 crc: thanks for trying 19:01:56 no problem 19:02:02 crc: will you be active for the next little while? 19:02:53 Yes; at least for an hour; maybe two 19:03:36 --- join: karswell_ (~user@cust125-dsl91-135-5.idnet.net) joined #forth 19:03:46 cool, i'll try not to bug you too much ;-) 19:05:29 --- quit: karswell (Ping timeout: 265 seconds) 19:09:46 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 19:11:58 crc: i'll try and paste it on the web 19:12:35 ok 19:13:46 --- nick: karswell_ -> karswell 19:14:16 --- quit: pierpal (Ping timeout: 256 seconds) 19:15:46 https://ufile.io/qjtbm 19:17:44 https://ufile.io/7qao3 19:19:53 These work! 19:20:00 aha! 19:20:08 squashed a bug! 19:20:20 the stack was not aligned properly 19:20:41 awesome 19:20:53 --- quit: karswell (Remote host closed the connection) 19:21:07 crc: thanks for your help :-D 19:21:35 no problem 19:22:18 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 19:31:11 --- quit: pierpa (Quit: Page closed) 19:45:46 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 19:51:21 --- quit: pierpal (Quit: Poof) 19:51:41 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 20:12:34 --- quit: pierpal (Read error: Connection reset by peer) 21:20:18 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 21:32:40 --- quit: mnemnion (Remote host closed the connection) 21:33:16 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:1d0b:effe:e72e:7681) joined #forth 21:37:42 --- quit: mnemnion (Ping timeout: 240 seconds) 21:39:01 hmm 21:46:31 crc: if you're still there, can you try this 32-bit version on freebsd please? 21:46:37 https://ufile.io/9fmve 21:46:50 compile with gcc -m32 i386.S io.c 21:47:02 (it works for me on NetBSD) 21:50:20 that also works for me 21:50:31 awesome thanks very much 21:53:16 according to a guy on #winapi, windows doesn't write to the processes user stack either, so there's a chance it will work on windows too 21:53:26 like unix 21:58:54 I might be able to test that next week 21:59:25 crc: sweet! 22:02:16 let me know if i can help in any way 22:14:30 --- quit: dys (Ping timeout: 248 seconds) 22:27:35 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:1d0b:effe:e72e:7681) joined #forth 22:40:06 --- quit: yunfan (Ping timeout: 248 seconds) 22:41:42 --- join: yunfan (~roooot@unaffiliated/yunfan) joined #forth 23:59:59 --- log: ended forth/18.06.08