00:00:00 --- log: started forth/05.12.31 00:19:47 --- join: amca_at_cins (i=amca@rdlax8-217.dialup.optusnet.com.au) joined #forth 01:10:02 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 01:27:37 --- join: amca_ (i=amca@rdlax12-a055.dialup.optusnet.com.au) joined #forth 01:34:52 --- quit: amca_at_cins (Nick collision from services.) 01:35:01 --- nick: amca_ -> amca_at_cins 01:37:18 Hello 01:37:48 I was wondering about a "typed Forth." 01:38:00 * Robert has been thinking about that. 01:38:09 Mostly in the context of optimisation. 01:38:45 The two options I thought about for implementing it are (1) Having 1 data stack per type and (2) each data type requiring bits in it allocated to label the type 01:39:42 Well, this would be static typing. 01:40:02 (1) would be static and (2) would be dynamic? 01:49:19 Anyone know of any good examples of event based programming in Forth? 01:59:23 Not really. You should implement a quick text GUI to play with. 02:00:23 hmmm 02:03:03 oh noo! No typed forth :( 02:03:28 Cheery: heh What would be wrong with a tryped Forth? 02:03:34 You prefer f+ dswap, etc? ;) 02:04:03 It is just not nice. 02:04:05 * amca_at_cins nods 02:04:37 Mind you I would prefer dynamically typed 02:04:52 With only 2 types: Integers and objects 02:04:56 ah, dynamically typed is ok. 02:04:58 :) 02:05:05 but statically typed is not. 02:05:13 Both can be OK. 02:05:18 Cheery: Just the idea of multiple data stacks is a bit of a freak out? 02:05:24 Dynamic typing in a speed-sensitive part, for example, is not ;) 02:05:36 (without optimisations practically making it static, under the hood..) 02:05:46 Robert: There you would use assembly anyway wouldnt you? 02:06:06 there's nothing bad in multiple data stacks I think 02:06:28 After all, if you would make an OS which runs only forth programs, there would be multiple anyway. 02:06:46 thinking now that that OS would be multithreaded. 02:09:35 It would probably be easier to use if you could either have stack specific operations and/or a word that would change the state of default stack (like hex changes the number system state) 02:12:39 what about: 'dumping' and 'picking' stacks? 02:12:59 You can have a colorforth with 256 colors. 02:15:47 Cheery: A stck of stacks? 02:16:06 stck? 02:16:16 s/stck/stack/ 02:16:44 ah. Maybe something like that. But I would use linked lists instead of stack :) 02:17:25 I had an idea for my stack VM. Any cell value other than a known processor instruction is treated as a call to that cell value. Do you know if that has been done before? 02:17:49 stack VM? 02:18:43 Im designing a simple virtual machine. 8 bits stack machine. Can only address 256 memory addresses. In wqays not too dissimilar from FOOL 02:19:29 Rob: Hey, did you say a month or so ago that you are gonna implement a more serious VM? 02:20:24 Perhaps... 02:20:33 * Robert says a lot of things, and usually forget about them really quickly. ;0 02:20:38 What do you have in mind for it so far? 02:20:40 lol 02:21:01 * amca_at_cins hears a lot of things and usually forgets them >_> 02:21:33 * Cheery forgets before he remembers. 02:21:42 lol 02:21:55 Cheery: Have I chatted to you before today? 02:22:09 Hmm. Today you haven't. 02:22:26 And I don't rememmber your nick too. 02:22:56 Can I ask you Qs about your coding experience please? 02:23:43 well, maybe you can. 02:24:26 Okay. Im a very curious person, so please tell me when you dont want to answer a Q 02:24:42 How long have you been coding in Forth for? 02:27:31 two weeks, or so. 02:27:48 Not much done with it yet. 02:28:32 But I agree the semantics is intresting and even works in many situations. 02:31:35 * amca_at_cins nods 02:31:43 I like the postfix 02:32:01 How did you come across Forth? 02:33:14 Well, that's a long story. 02:33:40 But simply, I were looking for different langugages. 02:33:50 *languages. 02:33:56 Feel like sharing the long story at all? 02:34:35 nah. It'd be boring. 02:34:57 LOL. Maybe for anyone but me. Im kinda insane with my curiousity 02:35:12 What attracxts you to Forth? 02:35:17 (attracts) 02:35:53 It's different, and it has some special abilities I'm after for. 02:36:21 Can I ask what those special abilities are? 02:36:31 First, it's simplest and still human readable language I've found. 02:37:06 * amca_at_cins nods 02:37:09 Second, it has a simple compiler. 02:37:13 Linda like a literate asm 02:37:19 Linda = Kinda 02:37:34 and that compiler works as interpreter too. 02:37:47 It's nothing C++ or C can provide me. 02:37:48 That's the best part, ihmo. 02:37:53 * amca_at_cins nods 02:38:03 And the simplicity is also important. 02:38:06 What languages are you somewhat familiar with? 02:38:12 Which are your faves? 02:39:45 C, C++, java, python, ruby, php, clisp, scheme, forth, factor, 02:40:25 my, my 02:40:27 A lot of langs 02:40:35 I were a C++ programmer long time, didn't even cared about other languages. 02:40:46 May I ask how long you have been coding for? 02:41:15 or wait. I know VB too, but it's 9 years, when I started with it. 02:41:27 * amca_at_cins nods 02:41:59 Ive had the joy of mainly avoiding VB, although I have coded in QBasic much earlier 02:42:44 I remember I had possibility to learn turbo pascal somewhere, but declined it being blinded by C++ 02:42:46 :D 02:43:17 hehe 02:43:30 I learnt Turbo Pascal for 1st year uni 02:43:44 It's dangerous to make a religion out of language. 02:44:26 Myself I think that different languages suit different people and situations. Some languages just fit more people and situations. :) 02:45:10 * amca_at_cins wonders how the computing industry would have turned out if the 8080 etc were stack based 02:49:47 I think the marketting of languages unbalances things a weird way. 02:49:56 * amca_at_cins nods 02:50:37 I mean, lisp and forth are both great language semantics. But still C style rules over since it is backed up commercial businesses. 02:50:38 The condition of the dev industry does seem to be mainly a popularity contest, moreso than a contest on merit 02:50:51 Same with operating systems 02:53:59 Do you have any projects in mind that Forth would be suited for? 02:55:36 I'm thinking about doing a completele operating system, written in forth. Mostly experimental, learning and researching. 02:55:52 currently reading a lot about things. 02:56:40 * amca_at_cins nods 02:56:49 Getting a lay of the land to see what is out ther 02:56:51 there 02:58:40 Forth itself is quite general language, like C is. I think that if you'd put some effort on it to learn existing stuff and making some your own, you could get a quite powerfull tool. 03:01:34 It seems to be more general than C. In C you code in C code. In Forth you code what Forth code you want to code with. 03:02:10 Or, simpler, you code *in* C and you code Forth. 03:02:22 I think the bad problem in C is that it is inflexible language. You cannot write your own language out of it. 03:02:55 * amca_at_cins nods. Not without compiling a new compiler. In Forth you can change the compiler in real time 03:03:21 I think Forth is unique in that. I dont know of any other language that allows you to do that 03:03:35 well, there's another, called list processing. 03:03:58 but you can make that from forth. 03:04:40 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 03:07:10 list processing as in lisp? 03:07:25 yes. 03:07:40 You can redefine ( and ) in lisp? 03:08:14 nop. 03:08:35 But you can write a program which does programs. 03:09:40 In Forth, no matter what the syntax is, you can change it. I dont think you can do that in LISP, althought it is a lot more flexible than other languages 03:09:54 But oh well, I think I'll go back to read about these things. :) There's a lot to read about implementing these things. 03:10:04 * amca_at_cins nods 03:10:13 Can I ask before you go what you are reading? 03:10:30 I'll go to read about filesystems. 03:10:56 Practical File system design. 03:11:06 Ah 03:11:08 Cool 03:11:10 Enjoy! 03:14:57 --- quit: aum () 03:53:36 --- join: PoppaVic (n=pete@0-1pool67-149.nas22.chicago4.il.us.da.qwest.net) joined #forth 03:56:24 LISP and Forth? eh, or about what was exactly the discussion? I'm confused, today. 03:56:52 virl: Which part of the chat? :) 03:57:00 We went all over the place 04:02:29 puh.. 04:02:50 puh? 04:03:21 they are somehow the negative of the other. like ying-yang 04:03:42 possibly 04:03:56 I havent thought much about it myself yet 04:04:40 forth: manual mem managment, real datastructs, rpn lisp: pn, gc, lists 04:05:42 pn? 04:05:48 Ah 04:05:49 polish 04:06:02 I get you now 04:06:40 and for me forth has the better syntax ;-) 04:07:18 virl, I think forth and lisp are quite same after all. 04:07:26 being totally different. 04:07:44 They both have no syntax. :) 04:07:56 I dont think RPN and PN are that different 04:08:03 Cheery: Lisp has syntax - the ()'s 04:08:34 s-expressions 04:08:57 amca_at_cins, it is not syntax 04:09:02 It is just representation 04:09:36 syntax is representation 04:10:01 what lies under are the words. 04:10:02 syntax is representation which follows some rules 04:10:34 It would be possible for lisp to have a different syntax: < instead of ( and } instead of ), to pick some arbitary examples 04:11:08 lisp's and forth's syntax is quite simple. Actually so simple that can you say it to syntax? 04:11:21 hell, yes, that would be nice! a lisp with a useable syntax, horray! so that even lazy people like me can use it!! 04:12:02 Forth doesnt have syntax. There are no elements of the language which *have* to remain. There are elements (the brackets) in lisp which *have* to remain 04:12:41 virl: Like ( being TAB and ) being EOLN? ;) 04:12:46 amca_at_cins, yes there are. The way that you write the words separated with space, is syntax already :D 04:12:52 everything in forth is mutable, except core structures 04:13:02 you can alter that 04:13:07 even the space doesnt have to be the word seperator 04:13:21 hm 04:13:27 tell me more about this. 04:13:33 amca_at_cins, eh what? 04:13:41 amca_at_cins, how should that look? 04:13:50 how would you remove the space and separator and use | for example? 04:14:10 like it'd accept: 1|2|+ 04:14:24 manipulating the interpreter 04:14:29 I'd write a new parser-word/loop 04:14:29 Im not totaslly sure, but off the top of my head, replace the word WORD with a version that uses | instead of SPACE/" " 04:15:16 example: "somestruct foo foo bar=12 04:27:11 Looking at the code in Win32Forth, it seems I was right about WORD being the word that defines the delimiting character 04:31:26 with gforth it is the same thing 04:31:37 yep, prolly ANS anyway 04:31:49 WORD is ANS 04:32:03 parse, word, etc, etc 04:32:08 * amca_at_cins looks at appendix entries for WORD 04:32:15 WORD is core 04:43:49 puh, after a discussion with slava, I feel myself senseless. GC or not GC? that is the question. I need to calm down. 04:44:48 heh 04:47:28 slava: Which side are you on? GC GC 0= OR ? 04:47:58 amca_at_cins, he coded a GC for factor, so which side is he on? 04:48:08 For GC then 04:48:26 And Xell doesnt have GC right? 04:48:46 in it's design, no.. 04:55:33 personally I prefer manual memory managment, because the possibility of better timing, but ok when somebody wants to build a xell vm with a GC, then I can't do nothing against it. 04:56:12 Do you realise that you can to some extent time memory management with GC? 04:56:34 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 04:57:25 sry, I don't understand. 04:58:57 For example in Java, you can run the gc() (I think) function at points in yoiur code that will run the garbage collector 05:00:07 you can.. but the only thing you get is that you start it too often, because it checks memory without starting it explizit. 05:00:29 that is one critic of gcs for me. 05:01:40 ok 05:03:09 all in all, GCs are the same like shit. and I told slava that when I would use the concept of a GC then I'll transform it into something, no GC ever was or is. and so it has nothing todo with this ugly term 'GC' 05:04:06 lol 05:05:16 at the moment I use a memory area and when I want to 'reset' it then I use an interrupt for it. 05:05:26 which does that job. 05:05:44 then the same for the dictionary 05:05:53 in what? xell? 05:06:10 yes 05:08:08 ah 05:32:53 --- join: Raystm2 (n=Raystm2@adsl-68-93-113-74.dsl.rcsntx.swbell.net) joined #forth 05:32:54 --- quit: nanstm (Read error: 104 (Connection reset by peer)) 05:50:36 --- quit: tathi ("rebooting") 05:58:06 --- quit: amca_at_cins ("lucky") 06:04:23 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 06:40:52 should I use it or shouldn't I? oh, slava can really cause headaches. 06:49:13 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 07:04:03 --- quit: tathi ("bleh...") 07:25:30 good morning 07:26:06 howdy 07:54:53 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 07:55:52 --- quit: PoppaVic (Nick collision from services.) 07:56:22 --- join: PoppaVic (n=pete@0-2pool238-126.nas24.chicago4.il.us.da.qwest.net) joined #forth 08:03:38 --- join: ASau (n=Diman@home-pool-173-2.com2com.ru) joined #forth 08:06:06 --- quit: ASau ("TinyIRC 1.1") 08:25:35 --- quit: snowrichard ("Leaving") 08:38:45 --- quit: ramkrsna (Remote closed the connection) 08:59:26 --- quit: PoppaVic ("Pulls the pin...") 10:05:58 --- join: sproingie (n=chuck@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 10:34:23 hi 10:36:19 This morning, ppl told me that I can even control what forth uses as word separator. 10:36:43 Sure, if you want to. 10:36:51 to a certain degree anyway :) 10:36:57 Could you tell what is the name of the operation? 10:37:15 * crc ponders adding a "whitespace" variable to Rx 10:37:38 it would depend on the forth 10:38:01 I'd think you might even have to replace the interpret loop on some 10:38:02 So it is very much implementation dependant. 10:38:10 yes 10:38:27 werywell then. But I'm able to replace even interpret loop on them? 10:38:51 you should be able to on most forths 10:39:16 Hmm. 10:39:24 I know already how to do forth interpreter 10:39:31 even partly how to do forth compiler. 10:39:53 But I wonder how that happens. 10:40:56 well, under forth you have access to the input stream 10:41:21 so you would just write a new word that parses input and handles it, and then call that word 10:41:58 hmm...it looks like under gforth, the interpreter uses parse-word, which is a deferred word. 10:42:27 so you could actually just write something that uses a different word separator, and set parse-word to that. 10:42:29 ah. So I would just alter tokenizer, which is just an another forth program... Intersting. 10:42:55 And quite simple one. 10:43:11 yah, if it's already coded in forth, and you have the source code, it should be very simple. 10:43:15 --- join: crc_ (i=crc@pool-70-110-154-175.phil.east.verizon.net) joined #forth 10:43:57 thanks tathi and others. 10:45:50 any time :) 11:07:15 --- quit: crc_ (Read error: 110 (Connection timed out)) 11:24:29 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 11:24:29 --- mode: ChanServ set +o JasonWoof 11:39:17 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-147-242.pools.arcor-ip.net) joined #forth 11:39:21 --- quit: Snoopy42 (Read error: 131 (Connection reset by peer)) 11:39:26 --- nick: snoopy_1711 -> Snoopy42 13:24:15 --- join: crc_ (n=crc@pool-70-110-188-231.phil.east.verizon.net) joined #forth 13:49:38 --- quit: tathi (Read error: 110 (Connection timed out)) 14:25:54 --- quit: crc_ (Read error: 110 (Connection timed out)) 15:37:24 --- quit: Cheery ("Leaving") 16:01:48 --- join: Topaz (n=top@spc1-horn1-6-0-cust128.cosh.broadband.ntl.com) joined #forth 16:23:11 --- join: crc_ (i=crc@pool-70-110-167-37.phil.east.verizon.net) joined #forth 16:42:05 --- quit: swalters_ (Read error: 104 (Connection reset by peer)) 16:58:28 --- join: swalters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 17:23:19 --- quit: Topaz (Remote closed the connection) 17:27:09 --- join: TheBlueWizard (i=TheBlueW@ts001d0602.wdc-dc.xod.concentric.net) joined #forth 18:00:31 --- part: TheBlueWizard left #forth 18:37:00 --- log: started forth/05.12.31 18:37:00 --- join: clog_ (n=nef@bespin.org) joined #forth 18:37:00 --- topic: 'Welcome to #forth. We discuss the Forth programming language, simplicity, and a variety of technical subjects. The rules are simple: don't spam, don't troll, and please speak English.' 18:37:00 --- topic: set by SunDragon on [Sat Dec 10 07:19:28 2005] 18:37:00 --- names: list (clog_ swalters_ crc_ Snoopy42 @JasonWoof sproingie madgarden @crc clog Jim7J1AJH slava virl Robert ianp OrngeTide warpzero Ray_work humulus ccfg saon Pragmatic skylan) 18:39:31 --- join: Raystm2 (n=Raystm2@adsl-68-93-113-74.dsl.rcsntx.swbell.net) joined #forth 18:39:31 --- quit: crc_ (Read error: 104 (Connection reset by peer)) 18:50:56 --- join: amca_at_cins (i=amca@rdlax12-a193.dialup.optusnet.com.au) joined #forth 18:51:13 Hello 18:52:08 --- quit: clog (Read error: 110 (Connection timed out)) 18:52:08 --- nick: clog_ -> clog 19:49:21 amca_at_cins: Happy New Year! 19:49:34 Happy New Year to you too! 19:49:38 How goes it? 19:57:08 * amca_at_cins is away: housework 20:37:19 --- join: amca_ (i=amca@rdlax10-b099.dialup.optusnet.com.au) joined #forth 21:00:27 --- quit: amca_at_cins (Read error: 110 (Connection timed out)) 21:03:53 --- part: amca_ left #forth 23:47:03 --- quit: JasonWoof ("off to bed") 23:59:59 --- log: ended forth/05.12.31