00:00:00 --- log: started forth/10.02.19 00:05:08 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 01:44:58 --- quit: alex4nder (Quit: leaving) 01:59:38 --- join: mark4_ (~mark4@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 02:00:02 --- join: GeDaMo (~gedamo@dyn-62-56-89-110.dslaccess.co.uk) joined #forth 02:00:03 --- nick: mark4_ -> I440r 03:03:39 --- quit: nighty__ (Quit: Disappears in a puff of smoke) 03:28:03 --- quit: kar8nga (Remote host closed the connection) 03:48:54 --- join: crcz_ (~Administr@216.1.43.130) joined #forth 03:51:47 --- quit: crcz (Ping timeout: 265 seconds) 04:01:12 --- part: yiyus left #forth 04:16:37 --- join: ASau`` (~user@77.246.230.163) joined #forth 04:17:20 --- quit: ASau` (Remote host closed the connection) 04:18:57 --- quit: GeDaMo (Quit: Now I lay me down to sleep; Try to count electric sheep) 04:19:29 --- quit: crcz_ (Read error: Connection reset by peer) 05:05:19 --- join: olivierG (~ogoudron@2a01:e35:8a1b:6280:224:8cff:fe9a:3b1f) joined #forth 05:18:24 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 05:31:25 ASau: Blame people? I lost track of the thread -- what were you referring to? 05:34:22 Not so bad. Just some stupid C++ errors. Things like putting & 05:34:22 instead of % in format strings and so forth. [06:58] 05:34:22 Forehead slappers. 05:54:13 Oh, well I was referring to my own C++ code, not to anyone else. 05:56:21 Ah. 05:56:47 Someone asked if it'd been hard to get my emulator working, and I was just mentioning how my own carelessness had been the main issue. 05:59:22 --- quit: kar8nga (Remote host closed the connection) 06:35:51 --- join: crc0 (~crc0@216.1.43.130) joined #forth 06:38:56 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 06:56:52 --- quit: gogonkt (Ping timeout: 256 seconds) 06:58:31 --- join: gogonkt (~info@59.38.230.18) joined #forth 06:59:53 --- join: yiyus (1242712427@je.je.je) joined #forth 07:27:12 --- part: olivierG left #forth 08:23:12 --- join: GeDaMo (~gedamo@dyn-62-56-89-110.dslaccess.co.uk) joined #forth 08:38:03 Hey, if "push instruction pointer to data stack" is one of my primitives then I can do VARIABLE as a subroutine defined as PUSHIP NOP RET with the data space starting right after. 08:38:17 CONSTANT would be similar, just PUSHIP @ RET. 08:38:41 In both cases that works because all three of the opcodes fit in one 16-bit word, so the IP will already be pointing to the next word.l 08:41:20 Actually CONSTANT could just be LIT NOP RET, I guess. 08:42:03 That's cool, because a double precision constant could be defined as LIT LIT RET 09:21:52 --- join: Quartus` (~Quartus`@74.198.8.60) joined #forth 09:24:12 --- quit: kar8nga (Remote host closed the connection) 09:31:56 --- quit: ASau (Ping timeout: 268 seconds) 09:37:37 --- join: ASau (~user@83.69.227.32) joined #forth 09:49:29 Ok, I think that I want this thing to work like this: when I type a command, the emulator will process it. At this point the target system will be halted. At some point the interpreter may encounter the need to execute a word that was compiled to the host. To do this, it will set up the target data stack to match the emulator data stack and then set up for that one word to execute on the target, 09:49:31 followed by target halt. Then it will copy the target stack back. 09:49:59 A loop on the target that does this would work: 09:50:08 CALL SPOT 09:50:18 HALT JUMP NOP 09:50:33 Address of CALL SPOT 09:51:12 So to exectue a word the emulator will just stick a call to the word into CALL SPOT and restart the processor. It will execute the call and then HALT again. 09:51:28 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 09:51:51 Of course if the host isn't attached then the emulator will just run everything. 09:52:10 But just pluggin in the target will take the system "live." 10:03:34 --- join: Maki (~Maki@dynamic-78-30-167-37.adsl.eunet.rs) joined #forth 10:23:20 --- quit: Deformative (Read error: Operation timed out) 10:37:50 --- quit: crc0 (Quit: Java user signed off) 10:43:14 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #forth 10:43:51 --- quit: erider (Changing host) 10:43:52 --- join: erider (~chatzilla@unaffiliated/erider) joined #forth 11:14:01 --- join: Deformative (~joe@141.212.210.55) joined #forth 11:18:28 --- quit: Deformative (Read error: Operation timed out) 11:28:07 --- join: Deformative (~joe@141.212.210.55) joined #forth 11:32:09 --- quit: Deformative (Read error: Operation timed out) 11:33:33 --- quit: Quartus` (Ping timeout: 272 seconds) 11:36:59 --- quit: I440r (Quit: Leaving) 12:03:20 --- join: tgunr (~tgunr@2001:0:53aa:64c:0:fbff:bd06:59f4) joined #forth 12:21:30 --- quit: madwork (Read error: Connection reset by peer) 12:24:48 --- join: madwork (~madgarden@204.138.110.15) joined #forth 12:28:25 --- quit: tgunr (Remote host closed the connection) 12:29:29 --- join: tgunr (~tgunr@2001:0:53aa:64c:0:fbff:bd06:59f4) joined #forth 12:32:10 --- join: nizchka (~nizchka@h59237.upc-h.chello.nl) joined #forth 12:33:11 Hi everybody!, I have an gforth question, regarding the building from the gforth 7 package 12:33:20 I do an autogen.sh 12:33:44 and then a ./configure --prefix=/usr --exec-prefix=/usr 12:33:56 do make and after that a make install 12:34:23 I get the installation files in the right dir /usr/ .... 12:34:49 but when I start the gforth exe, it tries to load the gforth.fi file from /usr/local/.... 12:35:15 If i try to locate the .fi file I can't find it. just the kernel32f.fi 12:35:36 has anybody an idea what I can do to fix this 12:36:45 ps I use an backtrack 4 (based on ubuntu 8,10) 12:36:56 thnx in advance 12:36:58 Yes. 12:37:23 Send PR to your vendor. 12:37:45 Why do you use --prefix and --exec-prefix? 12:38:16 because I want the installation to end up in the same directory /usr/share/gforth/ 12:38:20 I have no idea, it works for me. 12:38:30 But I'm using real operating system. 12:38:48 Are you sure that they mean the same? 12:38:54 I also have the gforth 6.2 12:39:06 And? 12:39:33 and? what do you want to ask? 12:39:43 Does your PMS support depot-style installations? 12:40:31 no idea, the original gforth package was installed as binary from the ubuntu server. (but 6.2 was the last version for ubuntu 8.10) 12:40:43 so I did an apt-get install gforth 12:41:06 There's no gforth 6.2, BTW. 12:41:14 Don't confuse others. 12:41:25 sorry 0.6.2 12:41:37 So, you installed gforth 0.6.2. 12:41:42 What next? 12:42:12 yes and then I downloaded the source package for gforth 0.7.0 12:42:24 i unpacked it to /usr/src/gforth-0.7.0 12:42:36 and did an ./autogen.sh 12:42:42 Why did you run autogen? 12:44:31 I did read the compilation instructions from the internet. I does some makes the aclocal.m4 needed by autoconfigure 12:45:00 autogen does some necessary configuring 12:45:40 All your howtos teach you that the only user way is "./configure; make; make install". 12:45:45 Why do you run autogen? 12:46:22 from a bash shell with /usr/src/gforth-0.7.0 as current dir 12:47:40 oke the gforth buildfromscratch text states that you should execute the ./autogen.sh 12:48:06 Do you build from scratch? 12:48:24 but thnx anyway, will look further into it. 12:48:44 All your howtos and common sense suggest that you read INSTALL. 12:48:57 thanx I will do that 12:50:12 --- join: iostres (~ivan@78-1-171-213.adsl.net.t-com.hr) joined #forth 12:50:16 ! 12:50:19 oke it is the source package without a compiled gforth 12:50:39 Dobro vece, iostres. 12:52:07 vecer' 12:55:08 russia? 12:55:17 Da. 12:56:00 cold? 12:56:01 :) 12:56:51 Zacem holod? Sneg! 12:57:15 ja ne volim zimu :* 12:57:47 ahh ko je voli :) 12:58:12 moja djevojka 12:58:13 :( 12:58:28 :D 13:00:58 --- quit: erider (Ping timeout: 272 seconds) 13:11:01 I need a Forth specification - building a small interpreter for educational purposes (my own education) 13:11:09 where I could get it? 13:11:33 dpANS 94 13:11:52 thx 13:12:06 (Ne nado delatj eshho odin fort...) 13:12:42 Lucse by vyucil uzhe gotovyj... 13:13:12 ja uvijek biram tezi nacin :) 13:16:48 (da znam da je to lose) 13:16:59 ali volim compilere & interpretere :D 13:20:02 --- quit: nottwo (Quit: leaving) 13:39:55 --- join: nottwo (~trannie@designvox-gw.iserv.net) joined #forth 13:49:46 --- join: Deformative (~joe@bursley-183118.reshall.umich.edu) joined #forth 14:30:46 --- quit: Maki (Quit: Leaving) 14:32:40 --- quit: nizchka (Quit: Leaving) 14:39:05 --- quit: TR2N (Ping timeout: 240 seconds) 14:46:47 --- join: TR2N` (email@89.180.200.252) joined #forth 14:50:37 --- quit: iostres (Ping timeout: 264 seconds) 14:57:59 --- quit: GeDaMo (Quit: Now I lay me down to sleep; Try to count electric sheep) 15:00:17 --- quit: qFox (Read error: Connection reset by peer) 15:08:56 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #forth 15:13:35 --- join: TR2N (email@89.180.200.252) joined #forth 15:16:02 --- quit: TR2N` (Ping timeout: 276 seconds) 15:24:54 --- join: TR2N` (email@89-180-204-185.net.novis.pt) joined #forth 15:25:45 --- quit: TR2N (Ping timeout: 248 seconds) 15:34:26 --- quit: xjrn (Read error: Connection reset by peer) 15:37:04 --- quit: kar8nga (Remote host closed the connection) 15:40:05 --- nick: TR2N` -> TR2N 16:28:57 crc: Was it you that talked a while back about a specific set of bit manipulation words (split, join, etc.)? If so could you post a quick synopsis of those again? Thanks! 16:30:43 KipIngram: what are you working on 16:31:16 I want to consider those words for inclusion in my fpga processor instruction set. 16:32:58 oh 17:26:55 Anyone on the split / join definitions? I can't seem to turn it up anywhere. 18:17:49 --- join: brime (~brime@207-118-125-61.dyn.centurytel.net) joined #forth 18:32:17 KipIngram: it wasn't me :( 18:43:18 Thanks. May have been I440r; can't remember for sure. 18:50:41 --- quit: TR2N (Ping timeout: 240 seconds) 18:55:34 --- join: nighty__ (~nighty@x122091.ppp.asahi-net.or.jp) joined #forth 19:00:52 2009 Dec 04 09:47:01 : #split ( x #bits -- x.lo x.hi ) 2dup rshift dup >r swap lshift xor r> ; 19:01:21 ohai 19:01:46 i actually use #split etc. as primitives 19:01:51 I hadn't gotton to december in the logs yet :) 19:02:01 2009 Dec 04 09:47:01 : #join ( x.lo x.hi #bits -- x ) lshift or ; 19:02:02 and build shifts on top of that :-) 19:02:40 I still haven't figured out how to search the logs effectively online, but fortunately I had my own logging turned on by then. 19:03:02 I have an account on the server the logs are stored on, and can grep them directly 19:03:24 Right; I'm going to think about making them primitive instructions in my processor. 19:20:19 --- quit: erider (Ping timeout: 272 seconds) 19:24:42 --- join: TR2N (email@89-180-183-231.net.novis.pt) joined #forth 19:33:55 --- quit: TR2N (Ping timeout: 245 seconds) 19:34:59 --- join: TR2N (email@89.180.230.255) joined #forth 19:45:30 --- quit: nighty__ (Quit: Disappears in a puff of smoke) 19:55:07 --- quit: segher (Quit: Leaving) 19:57:06 --- join: segher (~segher@84-105-60-153.cable.quicknet.nl) joined #forth 20:19:45 Does anyone here understand forth disk management? 20:29:50 Also, is there a difference between I and R@ 20:30:22 I have a feeling one of those is supposed to be second in "Starting forth" 20:30:25 But they most say top. 20:31:00 Deformative, forth use Block for a storage. 20:31:28 --- join: nighty__ (~nighty@x122091.ppp.asahi-net.or.jp) joined #forth 20:33:00 I understand that. 20:33:07 But how do I use them? 20:33:12 The words don't make sense to me. 20:41:49 R@ and I are two totally different things in standard Forth. in traditional implementations, I often is : I 2R@ + ; 20:48:07 I do not understand. 20:49:03 --- quit: nighty__ (Ping timeout: 268 seconds) 20:51:20 Deformative: What exactly do you not understand? 20:51:57 Deformative: some forths have a separate stack for flow control purposes; I index may be on that stack, not the return stack 20:55:03 Regarding blocks, you use them however you want. The block mechanism just gives you a way of mapping bytes on the disk into memory, where you can access them with the usual memory operation. That's for manipulating the content. 20:55:31 For compiling source from disk Forth generally offers you a way to "direct" the input stream to block data. 20:57:06 That, though, is a use for blocks that's "built on top" of the block mechanism itself. Blocks just get you at the disk -- nothing more. 21:19:51 words are too hard to explain something.... 21:27:13 Sorry for the delay everyone. 21:27:46 np 21:28:09 I was trying to convince a friend of mien that she shouldn't be smoking pot, It would seem to be too late, she has already been morphed into a hippie. 21:28:55 She went on about the media, and how the right wing is ruining the world. 21:29:40 Back to forth. 21:29:54 How do I write words/read words from a block? 21:32:46 And how to I move a block in disk from and to the memory? 21:41:29 You don't actually write to / read from the block itself. 21:41:40 You manipulate memory buffers. 21:42:01 If you want to read from the disk you first have a block of data from the disk brought into a buffer. Then you access that with normal memory access words. 21:43:34 You should understand, though, that in one sense you can think of the memory buffer as "the disk itself," because if you keep reading and modifying blocks eventually Forth will write the modified blocks back for you (when it runs out of memory buffers and has to reuse one). 21:43:45 You can force that to happen to; is the word FLUSH? 21:44:13 Hmmm.... 21:44:16 The block words let you *associate* a memory buffer with a particular disk block (i.e., with a particular location on the disk). 21:44:38 The actual changes to the data, though, you do with !, c!, cmove, and so on. 21:45:47 So... blocks do not contain code, just data? 21:45:56 Blocks can contain anything at all. 21:46:06 At the basic "block access level" it's all just data. 21:46:34 There are ways you can cause your system to take the data from a block and treat it as source, just as though you typed it from the keyboard. 21:46:36 Forth doesn't provide a way to push word definitions to data easily? 21:46:43 I mean, I can make one, I was just wondering. 21:46:56 Source is just a byte stream. 21:47:02 Are you talking about archiving the dictionary? 21:47:12 After it's compiled? 21:47:17 No. 21:47:33 Absolutely blocks are used to store source. 21:47:34 Well, pretend you have a byte stream in a block, how would I tell the system to interpret the bytestream. 21:48:03 That varies from system to system. I'm fuzzy on that because so many newer Forths use files instead. 21:48:10 Someone here will know though. 21:48:14 Is it INCLUDE? 21:48:22 LOAD? 21:48:26 LOAD seems right. 21:48:32 LOAD 21:48:33 load was used in older forths 21:48:46 Then there's a word called THRU that will load a range of blocks. 21:48:58 And in some systems a --> word that will load "the next" block. 21:49:11 THRU is considered better practice than --> for loading multiple blocks. 21:49:40 Hm, ok. 21:50:03 You should read "Thinking Forth" by Leo Brodie. 21:50:08 Thanks, I was just trying to decide how I would implement disk storage, and I wanted to stay as close to standard forth as I could. 21:50:15 I think there's a PDF out there somewhere, but I don't know if it's legal. 21:50:24 the pdf is legal 21:50:28 I have the pdf. 21:50:30 Just don't have time. 21:51:38 Well, bear in mind that *truly* implementing blocks will wreak havoc on any existing operating system that you have installed. Systems that want to work within the confines of an operating system but still "stay true" to the old Forth ways often use a "block file". It's a normal file as far as the operating system is concerned, but the Forth system treats it as an array of 1024 byte blocks. 21:53:19 Another way you could do that, though, would be by using something like TrueCrypt. It will let you create a file that (in addition to being encrypted, which isn'r really relevant here) shows up as a mounted drive. You could then treat that like a hardware device, but it would still just be a file to the OS. 21:56:13 --- part: crc left #forth 21:56:22 Ther eis no os. 21:56:30 --- join: crc (~charlesch@c-68-80-139-0.hsd1.pa.comcast.net) joined #forth 21:56:30 --- mode: ChanServ set +o crc 21:56:41 I am implementing this on a custom processor remember. 21:56:47 Right on the metal. :) 21:58:41 Good. Blocks will treat you well, then. 21:59:11 Yep. 22:00:48 In my case the source will in fact live on the host. I will probably implement blocks via a block file. The process of development will result in the target RAM (which resides in the FPGA) getting set. 22:01:27 When I'm happy I'll upload it and transfer it into the FPGA config file. So when the FPGA gets configured at power on it will come up with the app dictionary structure in place. 22:02:24 Same. 22:04:46 Well, I think I will read for a bit and then doze off. Night all. 22:05:41 Goodnight. 22:14:35 --- quit: segher (Quit: This computer has gone to sleep) 22:50:46 --- join: nighty__ (~nighty@x122091.ppp.asahi-net.or.jp) joined #forth 23:29:45 --- quit: nighty__ (Ping timeout: 260 seconds) 23:31:48 --- quit: brime (Quit: Leaving) 23:59:59 --- log: ended forth/10.02.19