00:00:00 --- log: started forth/11.12.19 00:07:29 --- join: jyfl987 (~jyf@124.65.163.2) joined #forth 00:40:35 Well... 00:40:47 There are things that make it different, actually. 00:41:11 I doubt you can write it as easily as in Prolog or some FPL. 00:41:15 Or even Lisp! 00:42:04 Or it will be reimplementation of respective facilities, like anonymous functions or/and closures. 00:42:41 I agree that it is more like designing parser in C. 00:42:47 --- nick: ASau`` -> ASau 00:49:30 On another hand, what is different to C that you can 00:49:30 introduce support to generate code directly rather than 00:49:30 implementing state machine inside. 01:39:31 --- join: ASau` (~user@95-26-89-189.broadband.corbina.ru) joined #forth 01:39:56 --- quit: karswell (Remote host closed the connection) 01:42:50 --- quit: ASau (Ping timeout: 240 seconds) 01:48:18 ASau`: it seems that you like lisp 03:53:23 --- quit: DGASAU` (Read error: Connection reset by peer) 03:54:11 --- join: DGASAU` (~user@91.218.144.129) joined #forth 03:54:36 --- join: swiley (~swiley@142.sub-75-197-195.myvzw.com) joined #forth 04:12:07 --- join: shachaf_ (~shachaf@204.109.63.130) joined #forth 04:15:37 --- join: angstrom1 (~Unknown@puma.picklum.net) joined #forth 04:15:47 --- quit: dom96 (Ping timeout: 244 seconds) 04:15:48 --- quit: angstrom (Ping timeout: 240 seconds) 04:15:48 --- quit: segher (Ping timeout: 240 seconds) 04:15:48 --- quit: nottwo (Ping timeout: 240 seconds) 04:15:48 --- quit: shachaf (Ping timeout: 240 seconds) 04:15:48 --- join: dom96 (~dom96@unaffiliated/dom96) joined #forth 04:16:11 --- join: segher (~segher@5ED3C3A7.cm-7-4d.dynamic.ziggo.nl) joined #forth 04:16:13 --- nick: angstrom1 -> angstrom 04:16:19 --- join: nottwo_ (~trannie@nottwo.org) joined #forth 04:16:37 --- quit: angstrom (Changing host) 04:16:37 --- join: angstrom (~Unknown@unaffiliated/angstrom) joined #forth 04:20:44 --- quit: eldre (*.net *.split) 04:21:26 --- join: eldre (~eldre@sd-11738.dedibox.fr) joined #forth 04:24:37 --- quit: jyfl987 (Quit: leaving) 04:26:29 --- quit: eldre (*.net *.split) 04:28:48 --- join: eldre (~eldre@sd-11738.dedibox.fr) joined #forth 04:33:37 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #forth 05:12:47 --- join: _spt_ (~postmaste@host-92-4-103-101.as43234.net) joined #forth 05:12:47 --- quit: _spt_ (Changing host) 05:12:47 --- join: _spt_ (~postmaste@unaffiliated/-spt-/x-5624824) joined #forth 05:38:25 --- quit: Fox78 (Ping timeout: 240 seconds) 05:46:29 --- join: nighty- (~nighty@static-68-179-124-161.ptr.terago.net) joined #forth 05:51:23 --- join: Fox78 (~fox@123.118.149.174) joined #forth 05:56:12 --- quit: ttmrichter (Quit: Leaving) 05:57:11 --- join: saon (~saon@mire.hcoop.net) joined #forth 06:27:31 --- quit: Fox78 (Ping timeout: 244 seconds) 06:38:40 --- join: xpololz (~xpol@50.80-203-124.nextgentel.com) joined #forth 06:41:10 --- join: Fox78 (~fox@123.118.158.161) joined #forth 07:01:56 --- join: fantazo (~fantazo@178-190-233-246.adsl.highway.telekom.at) joined #forth 09:02:49 --- part: _spt_ left #forth 09:18:40 --- quit: karswell (Ping timeout: 240 seconds) 09:27:17 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #forth 09:47:58 --- nick: shachaf_ -> shachaf 10:11:00 --- join: davazp (~user@89.100.226.133) joined #forth 11:09:16 how can i redefine if else then structure using my own " ise degilse sonra " words in the same way if else then works ? 11:10:12 : если postpone if ; immediate 11:10:27 : иначе postpone else ; immediate 11:10:37 : всё postpone then ; immediate 11:15:42 If Forth would have clean separation between word name and 11:15:43 word behaviour, one could just make words completely synomous. 11:16:14 But it doesn't have that separation, hence the hack. 11:16:18 what do u mean exactly ? 11:16:32 What exactly is unclear above? 11:16:52 You cannot get word semantics and assign it to another denotation. 11:16:54 clean seperation part 11:17:27 And you cannot compare whether two words have identical semantics. 11:17:51 E.g. for the above all you can do is 11:18:02 ' если ' if = 11:18:10 sometimes, because it isn't guaranteed. 11:18:29 And even if you can get execution tokens, they may differ. 11:18:39 (And they do most frequently.) 11:19:51 btw i ve chosen to install vfxforth 11:20:09 anything wrong with it for a beginner ? 11:44:07 --- quit: davazp (Ping timeout: 244 seconds) 11:46:54 --- quit: swiley (Ping timeout: 268 seconds) 12:06:19 --- quit: saon (Quit: Lost terminal) 12:12:46 how can i redefine : and ; words : :> postpone : ; immediate : ... postpone ; ; immediate does not work as it was the case for if else then 12:23:15 --- quit: fantazo (Ping timeout: 248 seconds) 12:43:57 --- join: davazp (~user@89.100.226.133) joined #forth 13:04:02 --- join: tathi (~josh@dsl-216-227-95-32.fairpoint.net) joined #forth 13:06:56 truefx: colon is not immediate 13:07:21 You want `: :> : ;` 13:08:46 :> for : (defining words) ... for ending word definitions and if its possible a different delimiter for words other than space 13:11:07 tathi, ? 13:11:17 Why? 13:11:58 why not ? is it too hard to do it ? 13:12:37 You can't change the word delimiter easily. The other two are trivial, but totally pointless. 13:13:01 ok then lets focus on trivial ones 13:13:02 If you expect anyone else to read your code and help you with it, it's an extremely bad idea. 13:13:09 how to do it 13:13:21 You have those. 13:13:29 Your definition for ... was fine 13:13:35 i dont expect anyone else to read my code in international community 13:14:03 but it gives an error in gforth and vfx forth 13:14:06 Your definition for :> was wrong because : is not immediate -- I gave you the correct one above. 13:14:51 Then you're doing something else wrong. 13:15:11 : :> : ; 13:15:11 : ... postpone ; ; immediate 13:15:11 :> foo ." testing..." cr ... 13:15:11 foo 13:15:46 thx a lot 13:15:57 it works now 13:16:10 1 more thing 13:16:29 lets say that i want to use my words in gforth or vfxlin . A Turkish replacement for all English words. But i dont want to issue include mywords.fs each time i launch compiler. What am i supposed to do ? 13:17:14 even if i do try a few words it produces error 13:18:13 gforth doesn't have any sort of config file that is loaded on startup, so your only option would be to build a new one, I think. 13:18:17 Don't know about VFX 13:18:36 is there anything wrong with : someword immediate; 13:18:40 Actually, you might just be able to build a new gforth image -- look up in the manual about building images. 13:18:52 probably 13:19:22 You need a space between immediate and the semicolon 13:19:25 nope right but when i include same line from a file using include it produces error 13:19:34 there is 13:19:40 what same line? 13:19:43 my typo now sorry 13:20:01 that will make someword do the same thing as immediate 13:20:18 It won't make someword an immediate word that does nothing. 13:20:40 So...depending on what you want, there may or may not be something wrong with it. 13:20:46 nope i try to do first thing 13:21:06 just a Turkish word for immediate 13:21:28 in fact i try to localize forth in someway 13:21:38 Should work fine then. 13:22:01 but i dont know if this should be the way 13:22:41 or is it to primitive to redefine all forth words in a file and include them ? 13:24:44 include tpd.fth 13:24:44 Including tpd.fth 13:24:44 Err# -13 ERR: Undefined word. 13:24:44 Source: "tpd.fth" on line 4 13:24:44 -> : hemen immediate ; 13:25:15 same error in gforth and vfx 13:25:46 tathi, any idea ? 13:31:26 no 13:31:39 looks fine 13:32:21 when i type same think in compiler windows its fine no problem 13:32:39 but when i try to include i produces error 13:36:03 --- quit: karswell (Ping timeout: 240 seconds) 13:39:26 truefx: : someword ; immediate 13:39:51 try it 13:40:29 i want someword to do exact thing with immediate 13:40:49 not nothing 13:40:51 oh, I misunderstood 13:41:15 any idea about above error ? 13:41:42 in compiler no error but when i use include this same line gives error 13:42:08 : ertele postpone ; gives no error 13:42:22 : hemen immediate ; errorrrrrr 13:43:29 hemen is undefined but this is what i try to do define it :) 13:44:04 oh yes 13:44:08 do you have both definitions? 13:44:37 I think the first is wrong 13:44:47 postpone is `immediate', it consumes the ; 13:45:00 so forth is trying to compile : hemen in the boyd of ertele 13:45:08 you should put an extra ; 13:45:19 : ertele postpone ; ; 13:46:31 (and you should make ertele immediate, probably) 13:54:31 let me see 13:55:29 include tpd.fth 13:55:29 tpd.fth:5: unstructured 13:55:29 : ise ertele if >>>;<<< hemen 13:55:29 Backtrace: 13:55:29 $7FE7FBEF5988 throw 13:55:30 $7FE7FBF054E0 c(abort") 13:55:32 $7FE7FBF124F0 def? 13:55:34 $7FE7FBEFE8C0 ;-hook 13:55:37 I asume ertele is an alias for ;, I don't understand what you want :) 13:55:41 extra ; gives this 13:56:00 I see, so, you want ertele to be an alias for postpone 13:56:01 ertele is alias for postpone 13:56:15 ertele is wrong anyway 13:56:20 define it so: 13:56:33 those are Turkish translations of immediate and postpone 13:56:45 why ? 13:56:54 is it wrong ? 13:56:58 truefx: the same reason I said, it consumes the ; 13:57:35 postpone is immediate 13:57:48 : ertele postpone postpone ; immediate 13:57:53 should work 13:58:20 same for hemen ? 13:58:43 hemen seems good, because immediate is not immediate itself 13:59:33 tpd.fth:7: expected orig 13:59:33 : sonra >>>then<<< ; hemen 13:59:33 Backtrace: 13:59:33 $7F0A6D311988 throw 13:59:33 $7F0A6D3215A8 c(abort") 13:59:33 $7F0A6D3220F0 orig? 13:59:38 so many errors 13:59:45 see 13:59:48 : ` postpone postpone ; immediate 13:59:57 how can i know which words are immediate which ones are not ? 13:59:59 it is an alias for postpone which I use in a code 14:00:21 do u type it all the time ? 14:00:31 or load it from a file ? 14:01:00 it is used locally in a file, but it works 14:01:09 I think it is a common definition 14:01:58 do u use English words in forth ? 14:02:28 truefx: control-flow words and parsing word are usually immediate 14:02:35 or do you try to localize all words in forth to program in your native language ? 14:03:02 truefx: well, I only wrote a program in Forth, so I don't write a lot of code 14:03:18 but I used english words 14:03:32 i have 1 days acquintance with forth 14:03:49 lookin at it it control structure 14:04:19 someone in compiler channel has suggested to analyse stack based languages 14:04:38 I learnt Forth to implement it (because it it easy) 14:05:03 in fact i try to write my compiler in my own language right now just trying to customize forth words translate i mean 14:05:07 truefx: you need to know which words have special compilation semantics... they should be : x postpone y ; immediate 14:05:09 Forth programming is little crazy but you have fun :) 14:05:16 normal words should be : x y ; 14:05:38 yeah no probles with normal words 14:05:54 i have done it for if else then structure too 14:06:20 using immediate asuu told me to do so 14:07:02 davazp, probably in the end i ll try to implement forth itself just to learn something 14:07:16 before i try to implement my own language 14:07:42 any directions for that ? links documents to implement forth in forth ? 14:08:03 --- quit: xpololz (Ping timeout: 240 seconds) 14:08:25 in fact forth is very similar to what i try to do. Turkish is very similar to RPN 14:09:59 and i want to program as if i write in my own language. Using , to seperate words . to finish definitions (sentences ) and be able to use space in word names 14:10:45 truefx: if you have programming experience already (in any language), only try to 14:10:47 not : two-word ; but : two words something makes. 14:11:06 i have in c pascal assembly 14:11:43 i ve done a toy compiler in a few day followin crenshaw's tutorial 14:11:51 I chose assembly to implement my (toy) Forth, but 14:12:07 but this is the first time i learn a stack language 14:12:14 now I want to replace the only file (forth.S) by a Forth one 14:12:21 mostly i can follow the text easily 14:12:34 I wrote a little x86 assembler in Forth, so I hope to get bootstrapping before the year ends 14:13:09 truefx: it works on the metal, without OS, that's nice :-) 14:13:58 i was thinking of running my language on baremetal 14:14:06 do you know it ? 14:14:08 you really feel that you can build something useful from a piece of metal! 14:14:32 baremetal os which is written entirely in x64 assembly 14:14:42 truefx: good luck :-), a tip: test it on real hardware frequently 14:14:50 monotask os for high performance computing 14:15:17 I did not do it and when I tried, nothing worked 14:15:25 what is your test platform ? 14:15:29 it was so difficult to fix those bugs.. 14:15:57 and what kind of documents did you read ? 14:16:22 i cant find any detailed website about forth 14:16:54 i was just looking at some chess engines and editors written in forth 14:16:54 qemu principally, often bochs and sometimes my machine 14:17:08 qemu is specially convenient because it has support for multiboot kernels 14:17:36 editors, :) I need one to do the bootstrapping practical in my Forth 14:17:57 if you write one, please, share it! 14:18:00 i plan to write something similar to vim too 14:18:02 suuuuuure 14:18:08 it will be vimlike 14:18:13 do u use vim ? 14:18:25 oh no, sorry, I am an emacs user :-) 14:18:43 its not to late for an ide i think 14:18:59 give me your old editor ill give you an ide 14:21:27 --- join: ASau`` (~user@95-26-89-189.broadband.corbina.ru) joined #forth 14:21:53 --- quit: ASau` (Ping timeout: 240 seconds) 14:23:24 forth is a good language for an extensible editor I think 14:27:18 I gave up hacking my system when it was bootstrapped, but it would be nice that 14:27:47 someone will go on having fun from it :-) 14:47:56 --- join: karswell (~coat@93-97-29-243.zone5.bethere.co.uk) joined #forth 14:55:34 davazp: no, that's wrong. 14:55:42 Forth is bad choice for extensible editor 14:55:54 ASau``: forth-like, stack-based language 14:56:13 Still no. 14:56:17 I don't agree 14:57:02 You have to have first class continuations. 14:57:26 Otherwise you have problems with temporary editing tasks. 14:57:50 And once you recognize that, your language doesn't fit stacks. 14:57:50 even though I use emacs, and I wrote quite emacs lisp code! forth seems a good language for an editor 14:58:09 not for something so big as emacs, of course, there you need a complete language 14:58:13 * ASau`` has wrote commercial code in Emacs Lisp. 14:59:09 Of course, Emacs has bigger problem than lack of continuations, 14:59:11 but forth allows concise definitions, which are great for customization commands 14:59:13 still you need those. 14:59:28 Concise definitions are not the requirement. 15:00:10 Also, you can't make definitions simpler than task complexity, 15:00:15 or you have to cheat. 15:00:27 The latter raises language's complexity. 15:01:13 Anyway, once the first problem in Emacs Lisp is fixed, 15:01:38 ASau``: of course, extensibility is not a requirement either, 15:01:41 and I've heard that it has been fixed recently, people start striving for continuations. 15:01:57 Extensibility _is_ the requirement. 15:02:18 Otherwise you can handle only pre-defined set of text types. 15:02:38 ASau``: and it can be a perfectly valid target, of course 15:02:43 Sure. 15:02:55 ASau``: you are too categorical in your statements, other alterantives can be used 15:02:58 Some people know nothing besides C and Forth. :) 15:03:10 What are your alternatives? 15:03:14 Forth? 15:03:19 No, Forth isn't. 15:03:27 I can imagine a beautiful small recourses emacs-like clone, yet extensible 15:03:37 in a stack-based language as something useful for me 15:03:49 Imagination breaks once you start doing that in code. 15:04:13 I know at least one example when people started with stack-based language. 15:04:15 Guess what? 15:04:28 They broke away soon. 15:04:38 See S-lang and JED. 15:05:16 I don't know those particular _examples_, 15:05:27 That shows. 15:11:05 Imagination is nice, but ones don't build houses of sand. 15:13:25 --- quit: nighty- (Ping timeout: 268 seconds) 15:14:04 (By the way, you should also understand that Forth isn't strictly speaking stack-oriented.) 15:14:44 ASau``: ok, let me choose what I should understand :-) 15:14:45 15:15:39 as I said ASau``, for better or worse it is not math 15:15:59 What? 15:16:01 where I like categorical statements. Some options are superior, sure, but 15:16:13 Oh, no. 15:16:42 You think that programming is somehow different from other engineering branches, do you? 15:17:20 no, I don't really like participating in useless discussions 15:17:25 (this is only an exception) 15:17:56 Many people call discussion useless when losing argument. :) 15:19:07 no, currently I call most discussions useless (out of mathematics, my field) when the other person tries to arise the opinion as an universal truth 15:19:17 and it is not going everwhere 15:19:32 That's because there's no universal truth in mathematics since Hilbert. 15:19:38 I did not think this as a discussion (it is not worth for me) 15:19:49 In science and engineering it is just the opposite. 15:20:00 When energy conserves, it is universal. 15:21:05 --- quit: tathi (Quit: leaving) 15:23:28 So far, the problem is that only few provided at least a concept of stack-based language used for extensible text editor, 15:23:34 the experiment failed. 15:24:34 And that wasn't even close to Forth in order to prove that Forth might be viable in such environment. 15:44:42 --- nick: ASau`` -> ASau 17:21:51 --- quit: davazp (Quit: ERC Version 5.3 (IRC client for Emacs)) 17:52:54 --- join: ttmrichter (~ttmrichte@61.184.205.206) joined #forth 18:10:55 --- quit: ttmrichter (Ping timeout: 276 seconds) 18:25:40 --- join: ttmrichter (~ttmrichte@61.184.205.39) joined #forth 19:29:26 what does $+ mean in forth ? 19:30:00 its not available in gforth but i ve come across an example using $+ 20:09:18 --- join: jyfl987 (~jyf@114.242.114.131) joined #forth 20:31:11 --- join: nighty__ (~nighty@69-165-220-105.dsl.teksavvy.com) joined #forth 20:38:28 --- quit: jyfl987 (Quit: leaving) 21:10:23 --- quit: nighty__ (Quit: Lost terminal) 21:18:14 truefx: Where did you come across it? 21:18:35 It's not in pfe either, for what it's worth. 21:28:49 --- quit: Snoopy_1611 () 22:39:01 --- quit: karswell (Ping timeout: 248 seconds) 23:04:05 It is string concatenation probably. 23:06:21 --- quit: ttmrichter (Quit: Leaving) 23:59:59 --- log: ended forth/11.12.19