00:00:00 --- log: started forth/18.06.07 00:01:32 this is the assembly code: http://termbin.com/mrfl and this is a little C program for i/o: http://termbin.com/jp94 rename the files to mrfl.S and jp94.c and compile with gcc jp94.c mrfl.S 00:01:46 tested on NetBSD/amd64 should work on linux 00:42:14 --- quit: dys (Ping timeout: 248 seconds) 00:59:35 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 01:11:44 --- quit: Keshl (Quit: Konversation terminated!) 01:21:10 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 01:32:53 I loled at "/* its not supposed to exit but it does */" 01:33:12 oh heh 01:33:38 it's more of a proof-of-concept right now 01:34:02 i'm switching back from coding to reading now.. i don't really know Forth :-) 01:34:07 --- quit: karswell (Read error: Connection reset by peer) 01:34:57 especially i don't know the terminology, which makes it harder to ask questions 01:36:44 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 01:37:46 --- quit: epony (Ping timeout: 265 seconds) 01:40:46 --- quit: karswell (Read error: Connection reset by peer) 01:43:17 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 01:46:54 I'm using a Forth that mentions the ISO standard... Is that the same as ANS? 01:48:08 i think so: http://forth.org/faq/faq1.txt section 3.4 01:48:23 oh wait sorry section 3.6 01:49:14 Cheers mate 01:49:36 --- quit: karswell (Ping timeout: 260 seconds) 01:58:21 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 02:00:53 --- quit: karswell (Read error: Connection reset by peer) 02:06:31 --- join: ncv (~neceve@79.114.7.58) joined #forth 02:06:31 --- quit: ncv (Changing host) 02:06:31 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 02:08:36 --- quit: ncv (Remote host closed the connection) 02:13:37 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 02:14:11 --- quit: karswell (Read error: Connection reset by peer) 02:27:43 --- quit: Keshl (Remote host closed the connection) 02:28:07 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 03:01:24 --- quit: Labu (Ping timeout: 256 seconds) 03:03:33 --- join: Labu (~Labu@obs92-6-88-179-3-123.fbx.proxad.net) joined #forth 03:17:33 --- quit: mnemnion (Remote host closed the connection) 03:18:22 --- join: Labmik (~Labu@labu.pck.nerim.net) joined #forth 03:21:42 --- quit: Labu (Ping timeout: 256 seconds) 03:25:13 --- quit: Labmik (Quit: WeeChat 2.0.1) 03:25:27 --- join: Labu (~Labu@labu.pck.nerim.net) joined #forth 03:36:00 --- quit: nighty- (Quit: Disappears in a puff of smoke) 03:44:33 --- join: epony (~nym@77-85-143-102.ip.btc-net.bg) joined #forth 04:04:34 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 04:49:51 --- quit: APic (Ping timeout: 260 seconds) 05:05:39 dave0: segfaults on FreeBSD 05:18:07 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:78df:c63:8328:68de) joined #forth 05:20:55 crc: damn :-( 05:21:19 --- quit: mtsd (Quit: Leaving) 05:22:27 --- quit: mnemnion (Ping timeout: 260 seconds) 05:22:31 maybe it's just not doable :-( 05:24:01 --- join: APic (apic@apic.name) joined #forth 05:52:55 --- join: TCZ (~Johnny@ip-91.189.219.200.skyware.pl) joined #forth 06:02:10 --- quit: pierpal (Quit: Poof) 06:02:28 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 06:10:39 I'll look at it more closely when I have some free time (next week) 06:18:22 So it's the "fast compile" part of the advanced source storage stuff that interacts badly with vocabularies and processes. 06:18:29 The compression part doesn't cause any problems. 06:18:46 So at the moment I'm looking at implementing that part. 06:19:06 And that will improve compilation speed some, because dictionary searches will involve comparing integers instead of comparing strings. 06:19:37 The compression system will just correlate symbol name strings with integers. 06:20:22 In the dictionaries those will all be 32-bit integers, but in the source I'll arrange for them to be 8, 16, or 32 using a variable token size method. 06:20:46 I'll arrange for the most commonly used words to get located in the table so that they have one-byte source tokens. 06:21:46 But each process will still have a local header structure that can be organized in the usual way, which gets me proper vocabulary behavior and process-private dictionary extensions. 06:21:55 Those will just contain integers instead of name strings. 06:30:39 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 06:37:16 --- quit: Keshl (Read error: Connection reset by peer) 06:37:34 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 06:52:37 --- quit: TCZ (Quit: Leaving) 07:04:48 KipIngram, these optimizations are intended for performance reasons? 07:11:21 Well, it looks like it will improve compile speed. Not to the extent that Moore achieved, because I'll still be searching during compilation, but the searches will be easier than full string searching. 07:11:33 So I do like the idea of performance improvement on compile time. 07:11:42 It won't affect run-time performance at all, though. 07:12:07 And the other benefit will be a very high degree of source compression and an opportunity to incorporate some other "nice features" into the source editing environment. 07:12:20 To some extent it's just intellectual curiosity and a desire to "try cool stuff out." 07:12:25 This is really sort of a hobby for me. 07:13:24 One of the things I'm thinking of doing is storing comments separately from the actual source, and having the ability to "tool tip" them and also the ability to switch normal display of comments on and off. 07:13:29 I get torn over commenting. 07:13:44 I like to describe things in deep detail, but I wind up hating how messy it makes my source look. 07:13:48 This seems like a good compromise. 07:14:42 So sort of like shadow screens, but with a different, more flexible data structure. 07:15:52 The craving for clean looking source usually wins, and I wind up under-commenting. 07:16:07 Then a year or two later I have trouble understanding my own code. 07:16:13 So hopefully this will put an end to that. 07:18:44 I hope to build a custom computer someday, using FPGAs to implement a rather high core count. And I'm hoping this that I'm doing now will become the "backbone" of the OS for that machine. So support for a lot of concurrent processes, each of which has compiled its own code, is important to me. Having it commented better than I've ever done before is too. 07:19:32 So I see this thought process as similar to what Moore does - think a lot about the application and structure the system optimally for it. 07:20:55 sounds ambitious 07:22:23 I just want a nice custom forth I can use for little one-off scripts and that I can build into a cross-compiler for microcontrollers and stuff, so that I end up with an easily-retargettable toolchain entirely owned by me 07:22:25 Yes. :-| I may never pull it all off. 07:22:52 But even if I never build a machine this is still fun to work on, and I feel pretty confident about finishing it as an "on top of another OS" project. 07:23:07 It's all assembly, and I'm not using libc or anything like that. 07:23:11 System calls. 07:23:28 right 07:23:59 Right - my focus right now is on "high powered platform" operation, but from time to time I have thought about something that could target micros. 07:24:21 that's where mine's at at the moment. I have the basics of a forth assembler written, so I can define some code words (like a syscall) in forth, but it's not enough for the entire thing to be self-hosting yet. 07:24:21 Different priorities - I imagine that would wind up being something I run *in* this system as an application. 07:24:36 and I'm not very happy with my assembler so I don't enjoy working on it enough to finish it 07:24:54 So my roadmap is first to get this where it will build with an assembler, and then start working on getting it to recompile itself. 07:25:31 Then to port it to a new machine (one I build or not) I'd have to change the stuff explicitly written in machine code, but hopefully all of the higher level stuff would "just work." 07:26:06 generating a binary executable with forth breaks my brain 07:26:29 it seems simple until I start doing it. the compile-time-execution aspect makes things really tricky 07:26:30 I know - I haven't done more than take a cursory look at ELF and MachO formats. 07:26:41 the ELF stuff is simple, that's not what bothers me 07:26:59 You're struggling with how to use the part you've already built to help build the rest. 07:27:04 yeah 07:27:17 I know EXACTLY how you feel - it does bend the brain. 07:27:30 and I keep struggling with things like how variables would be initialized 07:27:48 because I can initialize them, but then I'm going to use them during the compile, so by the time I write to disk their values will be different 07:27:53 I'm a good ways from having to grapple with that in depth. 07:28:15 I have a Forth I implemented in C. But it's a real Forth - not a "switch based" toy like a lot of them are. 07:28:21 I had thought I'd just advance it toward my goals. 07:28:36 But I found myself struggling with getting various changes in there. 07:28:45 A week ago or so I decided to ditch that effort and just go again in nasm. 07:29:29 That way I can design in the new ideas instead of trying to kludge them into something that wasn't originally intended to support them. 07:31:35 KipIngram, honestly it sounds like premature optimization. Compile speed is almost always a nonissue. Execution speed and code size are really the true challenges for resource limited environments. 07:32:40 * KipIngram shrugs 07:32:45 Could be, but like I said - hobby. 07:32:59 It's not a goal someone's paying me to get to as quickly and effectively as possible. 07:33:49 I definitely already attach value to the separate storage of comments. So even if implemented alone that would require some sort of token structure in the source. 07:34:04 I think that feature will make me a better programmer. 07:34:28 But I accept the validity of your comment. 08:03:30 --- quit: pierpal (Quit: Poof) 08:03:46 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 08:25:59 --- join: TCZ (~Johnny@ip-91.189.219.200.skyware.pl) joined #forth 08:35:53 KipIngram: "Switch based toy" sounds a bit dismissive 08:36:45 --- quit: TCZ (Quit: Leaving) 08:39:57 KipIngram, not knocking your attempts. Just would observe that optimizations over one dimension typically come at a cost of others. So figuring out which axis matter the most to you first can end up being quite important. Naturally exploring a concept as an engineering exercise just to see what comes out of it can result in some unexpected and potentially useful future insights. 08:49:18 Yes, I totally get it. 08:49:50 And I think you're right to some extent, but on the other hand I've been thinking around this stuff for years, and during that time I've explored a lot of "dimensions." 08:50:05 Not necessarily with real working code in every case, but with some pretty deep "thought experimentation." 08:50:15 I'm sorry - I didn't mean to be dismissive. 08:50:25 I think anything that exposes people to Forth is a good th ing. 08:50:49 But I do think there's a difference between those systems and systems that work the usual way down deep. 09:02:56 --- quit: pierpal (Quit: Poof) 09:03:16 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 09:46:03 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:78df:c63:8328:68de) joined #forth 10:28:17 --- join: dys (~dys@tmo-098-238.customers.d1-online.com) joined #forth 10:31:01 zy]x[yz: re forth on microcontrolers: do you know of mecrisp I assume. 10:34:22 no, what is that 10:51:50 zy]x[yz: it is a forth for MCUs such as ATtiny and such. 10:52:38 cool, thanks 10:53:10 doesn't meet my criteria of being an entirely-self-owned toolchain, but maybe I can cheat off of it 11:49:28 --- quit: mnemnion (Read error: Connection reset by peer) 11:50:12 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:78df:c63:8328:68de) joined #forth 12:27:18 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 12:29:30 Hello all ! 12:35:45 Hello 12:46:44 --- join: TCZ (~Johnny@ip-91.189.219.200.skyware.pl) joined #forth 12:54:54 --- quit: pierpal (Quit: Poof) 12:55:13 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 13:03:44 --- quit: mtsd (Quit: Leaving) 13:38:02 --- join: pierpa (57100917@gateway/web/freenode/ip.87.16.9.23) joined #forth 13:44:29 --- quit: TCZ (Quit: Leaving) 14:43:56 --- quit: epony (Quit: QUIT) 14:49:02 log2 or 2log? 15:17:42 --- quit: pierpal (Ping timeout: 256 seconds) 16:23:52 --- join: Gromboli (~Gromboli@rrcs-50-75-19-206.nys.biz.rr.com) joined #forth 16:41:54 ? you mean which would be the better function name? 16:41:59 --- quit: dddddd (Remote host closed the connection) 16:42:35 log2, I think. I think of "log2" as the function name, not something that has 2 as an implied parameter. 16:51:49 okthanks 17:12:46 --- join: dave9 (~dave@207.213.dsl.syd.iprimus.net.au) joined #forth 17:14:53 hi 17:23:18 Hi Dave. 17:23:28 hi KipIngram 17:23:36 sup? 17:23:55 Running tests for work, and otherwise just chillin'. 17:24:42 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 17:25:03 i'm going to read more of the forth faq today :-) 17:25:14 :-) 17:26:49 i don't know forth terms, so its hard to ask specific questions 17:27:30 also the code i wrote doesn't work on freebsd :-( 17:28:01 I saw that. 17:28:23 crc tried it, right? 17:28:49 yeah 17:29:23 my machines are linux/i386 and netbsd/amd64 17:29:23 Different word sizes? 17:29:28 Right. 17:29:31 --- quit: pierpal (Ping timeout: 264 seconds) 17:29:54 No clue yet why, right? 17:30:06 KipIngram: don't know, it's hard to debug someone else's machine heh 17:30:23 KipIngram: correct, no clue 17:31:01 How many lines of code is it right now? 17:31:27 i can check, give me a minute 17:32:24 i posted the code on termbin.com do you have the links in your scrollback? (this is a different client, no history) 17:33:18 Hang on. 17:34:31 the assembly is 507 lines 17:34:52 the c part is 13, i tried to use as little c as possible 17:35:21 i used C for KEY and EMIT so it was semi-portable to unix 17:35:27 Do the 32-bit register names foul up the 64-bit execution? 17:35:39 Should they be %rxx instead of %exx? 17:35:42 the jonesforth i was following used linux system calls and was not portable 17:36:02 i didn't use any 32-bit registers? 17:36:14 I see things like %esp in your code. 17:36:25 That's a 32-bit register. 17:36:29 %rsp is 64. 17:36:30 ah that's the wrong code 17:36:37 moment.. 17:36:38 Ok. There were a bunch of links. 17:37:06 shit 17:37:14 https://gist.github.com/crcx/4eeb8322ce39e245ad0452632669c382 is a gdb backtrack after the segfault 17:37:28 thanks crc 17:38:27 i'm not set-up for writing code at the moment... i'm on 2 laptops in my bedroom, my main machine is in the living room, but my friend is sleeping on the couch so i don't want to disturb them lol 17:38:58 i will read about forth 17:40:12 oh this backtrace is very useful! 17:41:31 KipIngram: try these links: http://termbin.com/jp94 http://termbin.com/mrfl 17:41:36 dave9: I recommend setting up VNC both server and viewer on those machines. It is very handy for not having to stand up. 17:43:41 * Zarutian comes across http://members.chello.at/~easyfilter/bresenham.html and is quite tempted to turn that code into forth code this comming saturday. 17:47:08 * Zarutian adds http://datagenetics.com/blog/august32013/ to do rotations between 0-90° of bitmaps and pixmaps 17:47:10 Has anyone here had relative Forth success with x4 or ciforth? I want to avoid gforth 17:47:25 crc: it looks like i screwed up the Forth-to-C interface, i clobbered the registers when calling the c code 17:47:56 there is still hope of having it work! 17:48:13 just a simple matter of programming lol 17:48:27 WilhelmVonWeiner: sorry, I have only really played with eForth in a homebrewed dualstack machine emulator. 17:50:08 WilhelmVonWeiner: been planning to try out mecrisp on an ATmega MCU 17:50:28 * Zarutian is off to bed. 17:50:39 nite Zarutian 17:52:59 --- join: nighty-- (~nighty@kyotolabs.asahinet.com) joined #forth 19:09:01 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 19:26:49 --- quit: pierpa (Quit: Page closed) 19:33:17 --- join: epony (~nym@77-85-143-102.ip.btc-net.bg) joined #forth 20:02:49 --- quit: pierpal (Quit: Poof) 20:03:07 --- join: pierpal (~pierpal@host23-9-dynamic.16-87-r.retail.telecomitalia.it) joined #forth 20:43:19 --- quit: Gromboli (Quit: Leaving) 21:09:20 --- quit: dave9 (Quit: dave's not here) 21:18:01 --- quit: proteusguy (Ping timeout: 260 seconds) 21:48:52 --- join: proteusguy (~proteus-g@2001:44c8:4381:274c:52f:51a3:d6a0:7b82) joined #forth 21:48:52 --- mode: ChanServ set +v proteusguy 22:04:57 --- quit: proteusguy (Ping timeout: 265 seconds) 22:10:33 --- quit: dys (Ping timeout: 276 seconds) 22:16:37 --- join: proteusguy (~proteus-g@2001:44c8:4381:274c:a1c8:c3bd:d5f4:5e4f) joined #forth 22:16:37 --- mode: ChanServ set +v proteusguy 22:41:06 --- quit: proteusguy (Ping timeout: 276 seconds) 23:16:04 --- join: reepca (~user@208.89.170.230) joined #forth 23:41:26 --- quit: mnemnion (Remote host closed the connection) 23:41:58 --- join: mnemnion (~mnemnion@209.209.238.148) joined #forth 23:58:22 --- join: mtsd (~mtsd@77.110.61.100) joined #forth 23:59:59 --- log: ended forth/18.06.07