00:00:00 --- log: started forth/13.05.01 00:35:12 so i see rshift is a logic shift, is there any arithmetic right shift in the standards 01:09:26 the standards need a better web-searchable documentation 01:27:56 --- join: nighty^ (~nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 01:48:35 i see 2/ 01:48:54 but its just 1 bit arithmetic right shift 02:29:54 2/ keeps sign bit 02:30:21 so yes you are right 02:30:59 the problem is 2/ only shift 1 bit 02:31:11 but in asm world, you could shift many bits 02:31:32 : >> 0 swap DO 2/ LOOP ; ?? 02:32:15 wouldn't be native but it would work. 02:34:30 of cause it could work, i just want to found the reason why they dont give a primetive which mapping to the native code since arithmetic right shift is a very often used opcode 02:35:31 or am i missing some specific hardware? since i am 80s born :[ 02:42:57 ?? if you don't know it, you can always just make the word up... then if you need to optimize it later or find an existing word, you can just change your code. 02:47:34 ok 02:48:05 that's why i don't like the huge standard, personally. 02:48:54 well. not so much that i don't like it... but i don't feel any particular need to memorize it all up front. 02:49:36 it ought to be pretty trivial to just search and replace if you learn the word later 02:50:05 * tangentstorm thinks forth could/should have a thesaurus to go with the dictionary. 03:03:21 --- join: epicmonkey (~epicmonke@188.134.41.112) joined #forth 03:08:37 Some systems have `arshift`, doesn't seem to be common though. I don't understand that one either. 03:10:07 tangentstorm: ya, I wrote an `fman` shell script that does `less -i +/"^[0-9.]+ +$1 +"` on the ANS text file. Handy. 03:12:42 I've been messing with Haskell a little lately -- hoogle is pretty awesome. Search by name with fuzzy matching, search by type signature, even if you get the arguments out of order... 03:22:50 tathi: thanks 03:43:52 And you might want to use ?DO in tangentstorm's word up above in case you have a word which passes a 0 shift... 03:44:56 ah, yes, you're very careful :] 03:45:25 I've been bitten enough times. :) 03:46:19 You wouldn't do it directly, but sometimes if you're using it in another word with a computed shift... 03:47:30 Another gotcha is that the standard doesn't specify what happens if you give LSHIFT and RSHIFT a shift amount >= cell width. 03:48:29 oh since you here, i want to know in which case can i claim my own implementation is a forth? 03:48:38 whenever you want :) 03:49:01 There are lots of crazy "forths" out there. 03:49:18 by crazy , can you show me some 03:50:48 colorforth is pretty far out there -- only uses 48 characters, uses huffman-compressed tokens instead of actual text, uses word-addresses (not byte addresses), dual dictionaries (forth/macro) instead of an immediate flag, etc., etc. 03:51:07 ah yes its crazy enought 03:51:23 Have you seen StrongForth? static type checking. A rather poorly designed type system IMO, but still interesting. 03:51:39 want to know if colorforth need a specific input? 03:51:46 ? 03:51:57 nope, i just know strong forth from you 03:52:10 then how people input different color word? 03:52:26 Ah. It has its own editor and everything. 03:52:48 Uses only the four keys under each finger, plus the row above and below, and maybe enter and space? 03:52:51 Pretty crazy. 03:53:17 and have chunk be sued for breaking the law which protect disable people? 03:53:21 It has a function-pointer table it uses to map the keys, and you can switch it out for different keyboard modes. 03:53:38 Heh. Because disabled people would be lost without colorforth. :) 03:54:00 yes, i heard that ms has be sued for that 03:54:41 any other crazy one? 03:55:07 Most of them aren't really all that different inside, just different syntax. 03:55:37 Retroforth and Reva have gone in some interesting directions (more anonymous words, namespace management etc.) 03:55:53 i know retro 03:56:08 i learn some from its nagro vm 03:56:18 kForth has a neat "compile-only" system where it always compiles to bytecode, but then in "interpretation state" it immediately executes it and throws it away. 03:56:42 That can eliminate some of the differences between the states (like char and [char]). 03:57:09 kForth also uses dynamically-allocated memory (malloc) exclusively. 03:57:32 you have mentioned bytecode 03:57:48 and i see so many vm design, is there any forth dont have its vm or bytecode 03:58:03 just in abstract level 03:58:58 Forth pretty much uses a virtual machine model. 03:59:21 There are certainly systems which compile straight to, say, x86 machine code. 03:59:38 but in practical i just saw many vm implementation 03:59:40 Retroforth before version 10, for instance, and colorforth. 03:59:43 for eg, retro 03:59:54 Yes, a lot of people do it that way. 04:00:55 The old traditional thing is to compile direct- or indirect-threaded code, so your primitives are in assembly language, then your Forth words are just a list of addresses of other words. 04:00:58 ok i need add a limitation 04:01:06 I don't know if that counts as a "vm" or not... 04:01:13 i mean the intepretered implementation 04:01:59 I don't understand 04:01:59 sounds like what i mean 04:02:54 i mean they dont have vm , bytecode, they have stack stuff 04:03:06 Ah, yes. 04:03:26 and they run on another platform , mostly its machine code but sometimes its another high level lang 04:03:31 like javascript 04:03:55 Right. 04:04:03 so when the it runs, it trans the forth definition directly to its native lang 04:04:54 If that's what you're interested in, you might have a look at the retroforth 9.x series: http://retroforth.org/past.html 04:04:57 for me, at least i want to run forth on python and javascript 04:05:16 Ah. have you looked at the javascript forths? 04:05:30 Nevermind about retro 9.x then, that's x86 assembly language. 04:05:30 on python , i want to use forth instead of some existing template language for web developing 04:05:39 tathi: yes, i have check jeforth 04:06:15 You might consider writing a language like Forth but less low-level and more suited to js or python. 04:06:52 i need it costs less resource and time on its language level 04:06:59 i.e. have a stack and the simple parser, but don't emulate memory and the whole fetch/store thing 04:07:09 most web templating language costs more but give less 04:08:01 yes, it dont need emulate memory, just use the host language's 04:08:59 Hmm...why do you want a whole language instead of just a small web templating library? 04:09:29 no i dont need whole language 04:09:46 i just need part of the words set 04:10:00 thats why i ask you how can i claim my implementation is a forth 04:10:07 because i might cut many features :] 04:10:32 just call it something else :D 04:10:40 yunforth :D 04:10:53 but i want to claim it *forth 04:11:04 yunforth is a *forth isnt it? 04:13:14 If you have the basic data stack and syntax (parsing and handling one word at a time), most people won't complain if you call it a Forth, I guess. :) 04:13:45 ok , if they complain i will ask they came here :] 04:14:49 So do you want to write forth code that runs both on your python forth on the server and a javascript forth in the browser? 04:15:12 no 04:15:14 dont want 04:15:56 i found most forth community people still pay attention on asm , low level, or embeding domain 04:16:25 but i saw its value on morden developing domain like web and app and db services 04:16:36 i want to use forth on these domain 04:16:36 Outside of that domain there are usually languages which are better. 04:17:35 tathi: no, in some specific domain like i have told tangentstorm , forth is very potential 04:17:38 like in redis 04:18:00 Yeah, people keep saying that. I've never seen anyone make it work well though. 04:18:15 Although I think Factor's whole site and everything run under Factor. 04:18:32 tathi: i dont like the one language to rule all idea 04:18:50 tathi: i like to use forth as an embeding DSL 04:19:16 and to replace those lua's domain :] 04:20:01 a famous example is there's a nginx lua project which use lua as nginx's dynamic configuare language 04:20:39 since each mathced http request would trigger a lua script to run 04:21:06 people talks about lua's benchmark improve by its closing to http server (nginx) 04:21:49 but if we compare lua to forth, we would know it would gain more if we replace lua using forth in nginx 04:22:08 another example is forth 04:22:15 sorry, another example is redis 04:22:40 redis implementing every cmd in c 04:23:01 but with it grow by, more and more cmd been added 04:23:05 its just a mess 04:23:25 so they decide to use lua for extending cmd 04:23:59 but i think the overhead of lua vm is too much times than a normal c cmd 04:24:17 so i think forth could get chance inside redis 04:25:44 tathi: i could show you many other ideas of using forth to improve on web domain 04:26:23 I don't know. I have the impression that Lua took a fair amount of inspiration in their VM from Forth implementation techniques and that it's pretty fast. 04:26:58 I'm pretty sure they were using Anton Ertl's (gforth) vmgen for a while. 04:27:21 tathi: yes, its vm level dont have problem, but to use language features, it need pay more 04:27:40 Ah. 04:27:54 like lua use table any where 04:29:37 I thought lua tables were pretty efficient. Isn't that the language where a table has both an array (for integer indices) *and* a hashtable for string indices? 04:30:16 its efficient compared to other table or hash implementation, but you dont need table sometimes , isnt it? 04:32:03 Are you planning to just use this yourself on your own server, or try to get other people to use it too? 04:33:04 well, that's the cool side 04:33:22 history just turn back nowadays 04:33:32 by using those cloud services 04:33:42 you're turn back to 60s 04:34:06 for my target, i dont need to ask user to know forth 04:34:17 they just know another new cmd xxx 04:34:23 and i reimplent xx in forth 04:34:39 it would run fast than the lua version 04:34:54 and isnt they use redis for fast data fetching? 04:36:05 that's the reason why i dont like the idea to use one languge in whole things 04:36:34 you could use the most suitable language in the target space, and hide them 04:37:23 Oh. I thought Lua was visible to programmers as a scripting language. 04:37:37 That makes more sense now. 04:37:44 yes 04:37:58 they wont use lua to write the whole http server , isnt it 04:38:13 they use lua just for its flexiable 04:38:24 and its low costs compare to python and ruby 04:41:09 and there're more cloud example which could use forth 04:41:23 Sure. 04:41:43 like google and amazon just give their cloud storage service 04:41:53 they suport a acl language in xml 04:41:59 which is faaaaat 04:42:06 I just think...at some point, someone is going to have to maintain the Forth code, and I think that will be a hard sell. 04:42:32 :D 04:42:58 it depends, they just showed me a example of runtime syntax changing in lua community 04:43:28 and my python code which use lots of lisp comprehension is always hard to read to other 04:43:54 but i wrote each logic a line , and have comment indicate that 04:44:40 tathi: dont worry, no one shoot a perl programmer for its code, isnt it? :] 04:45:26 yunfan: yeah, but people aren't building in perl as their configuration language any more; they're using Lua. :) 04:46:25 tathi: maybe but perl still used anywhere 04:46:44 and lua could write mess code eighter, that's the point 04:47:02 Well, sure, you can write ugly code in any language. 04:48:39 and i see many forth code are over comment 04:48:50 i dont worry about the maintain things 04:49:01 there're so many comment lines :] 04:50:19 Is it that lua attacts newbies or why lua code is written ugly way. like most visual basic code 04:51:20 because the lua programming book showed us a tricks to support oop using table 04:51:35 is you look some lua code you could find them everywhere 04:51:52 and soon, you will losts 04:52:47 that sounds like some unforgivable sin 04:53:33 because class could hide details 04:53:46 and its useful if you only hide 1 or 2 level details 04:53:49 isn't that idea of OOP? 04:54:01 but everyone create its own level 04:54:11 * tangentstorm calls this the gestalt problem. 04:54:17 so at the end , you just dont know what the code does 04:54:24 it isn't specific to lua, and it isn't solved by forth :D 04:54:50 yes, i just show you how lua could write mess code too 04:55:33 some high level code, is that, you know every syntax it use, you know every meaning of its name, but you dont know what it actually do 04:55:37 The programming language i'm working on is an attack on that problem. 04:55:42 like app:run() 04:56:07 you mean python or pascal? 04:56:08 I think to solve it you have to break a /lot/ of conventions. 04:56:15 no my language is called wejal. 04:56:57 It's got quite a bit in common with forth, but it looks (somewhat) more like a conventional language. 04:57:32 well forth have the problem too, but you know everything in your world 04:57:51 unfortunately other language dont let user know everything 04:58:07 What do you mean know everything? 04:59:06 hmm... i suppose maybe you do, in forth, provided you can dis-assemble words 04:59:46 yes, and it has simple model 04:59:55 you cant forget detail 04:59:56 the information is there but i don't know that the tools to support it are all that great. 05:00:06 like you're constantly asking us if words exist 05:00:22 seems like the tools should tell you that. 05:00:31 but they don't, afaik :/ 05:00:40 that's because i dont familliar with forth 05:00:52 (wheras smalltalk has some pretty amazing tools that you can use to find things, even as a beginner) 05:00:55 i think it would be solved after i implemented my own 05:01:04 is it? 05:02:13 and if i dont try to use forth for whole system, i might dont have more high abstract level 05:02:33 this could reduce those problem 05:02:56 even commands like python's help() and the unix 'apropos' comand would make a tremendous difference. 05:02:56 sure, in smalltalk you have "browsers" that show you all the defined classes and methods in the system 05:02:56 and there are tools that let you find methods based on the kinds of parameters they take 05:02:56 (no idea how that works, in a dynamically typed language, but it does) 05:03:02 http://www.youtube.com/watch?v=l8OeOp4tvqs <- method finder 05:03:32 there is an environment somewhat like this for a forth dialect called holonforth 05:03:46 http://www.holonforth.com/index.htm 05:03:48 pretty neat. 05:04:03 so forth could gain that too 05:04:09 just no one care about this 05:04:49 and python's help has no magic , its just got functions' __doc__ 05:05:36 yes, and it only answers "what does this do?" not "where is the thing that does X?" 05:06:30 no for *maintain* job, you need more "where is the hell thing that does X" so you could maintain it 05:07:14 think a case, they reported a bug and ask you to maintain the code 05:08:49 yeah. i deal with this problem a lot when porting code. 05:08:57 also when i was studying retro. 05:09:03 you have a needle in a haystack problem. 05:09:34 like... there's just so many words to learn 05:09:58 its ansi's wrong :] 05:10:22 there are still things that i struggle with in retro that are easy for me in ngaro (the virtual machine underneath) 05:11:02 maybe you could found a reduced standard words set 05:11:32 the document that showed how everything was built is very helpful... except it's written in retro. :/ 05:12:02 tangentstorm: you need a visual demo for showing how it works, its in my plan 05:12:11 i would much rather see a version where everything was written from scratch in ngaro assembly. 05:12:16 tangentstorm: just like visual brainfuck 05:12:33 ha 05:13:15 tangentstorm: i have wrote asm on my own vm inspired by nagro 05:13:52 and implemented forth in it? :D 05:14:12 nope, my handcode as sucks 05:14:54 tangentstorm: https://bitbucket.org/jyf1987/tweezervm 05:15:00 dont laught at me 05:15:06 :) i've made a start on recoding retro's kernel in pure ngaro assembly but i haven't gotten very far yet. 05:15:24 i think i need to go top-down instead of bottom up. 05:16:34 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 05:16:39 hey that's pretty cool 05:17:11 tangentstorm: check this http://fatiherikli.github.io/brainfuck-visualizer/ 05:17:27 i want to make a js version forth which could shows like this demo 05:17:35 ,so people could easily know what happen 05:17:52 and if possible , how all the words in a tree struct 05:17:57 neat 05:18:09 and let people could drag the word to the current input buffer 05:18:12 yeah that's somewhat similar to what i hope to do for my lessons 05:19:20 so when you ask student to do excerside 05:19:42 you could ask them to use the given words to solve the problem 05:20:07 and check it automatedly 05:20:25 this could be a nice interactive book 05:20:41 you could even make it into an app 05:22:47 yeah, it will be interactive. 05:22:52 more like a game. 05:25:29 i think interactive book is the future 05:25:37 at least in technical book 05:25:59 i have see many gif demo which just light my brain 05:51:00 --- quit: dto (Remote host closed the connection) 06:49:16 --- join: Shark8 (~Shark8@69-20-190-126.static.ida.net) joined #forth 07:29:48 --- join: jdavidboyd (~user@72.185.97.240) joined #forth 08:18:40 --- join: fantazo (~fantazo@213.129.230.10) joined #forth 08:27:00 --- join: I440r (~mark4@2600:100a:b10d:17d7:1271:1dab:3194:772e) joined #forth 08:38:48 --- quit: I440r (Ping timeout: 258 seconds) 08:41:59 --- join: I440r (~mark4@2600:100a:b10d:17d7:1663:c635:49a1:a6b) joined #forth 08:42:05 --- part: I440r left #forth 08:44:09 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 09:14:24 --- join: I440r (~mark4@132.sub-70-195-64.myvzw.com) joined #forth 09:22:25 --- quit: Tod-Work (Quit: Leaving) 09:37:52 --- quit: segher (Quit: This computer has gone to sleep) 09:38:23 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 09:40:55 --- join: mark4 (~mark4@194.sub-174-237-160.myvzw.com) joined #forth 09:41:55 --- join: chen (~chen@112.91.181.19) joined #forth 09:42:47 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #forth 09:43:45 --- join: AndChat-353729 (~mark4@172.sub-174-230-128.myvzw.com) joined #forth 09:43:52 --- quit: I440r (Ping timeout: 264 seconds) 09:46:03 --- quit: mark4 (Ping timeout: 276 seconds) 09:51:15 --- quit: AndChat-353729 (Ping timeout: 276 seconds) 09:54:27 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 09:54:48 --- quit: chen (Quit: 离开) 10:11:48 --- join: goingretro (~kbmaniac@host109-158-190-233.range109-158.btcentralplus.com) joined #forth 10:12:17 --- join: I440r (~mark4@132.sub-70-195-64.myvzw.com) joined #forth 10:45:51 --- quit: I440r (Ping timeout: 276 seconds) 11:00:31 books have always been interactive, yunfan! 11:00:44 unless you mean ebooks with embedded multimedia? 11:23:42 --- quit: dto (Remote host closed the connection) 11:27:00 --- nick: malyn_ -> malyn 11:45:09 --- join: RodgerTheGreat (~rodger@71-13-215-245.dhcp.mrqt.mi.charter.com) joined #forth 11:46:51 what's up, forthizens 12:04:03 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 12:14:02 --- quit: epicmonkey (Ping timeout: 245 seconds) 12:14:50 nothing... 12:14:54 just going back and ... you know. 12:34:32 --- quit: kumul (Ping timeout: 258 seconds) 12:35:58 --- quit: Nisstyre (Read error: Operation timed out) 12:41:58 --- join: kumul (~mool@c-76-26-237-95.hsd1.fl.comcast.net) joined #forth 12:49:31 --- join: Nisstyre (~yours@oftn/member/Nisstyre) joined #forth 12:50:34 * tangentstorm is working on a text editor. 12:51:00 fun stuff 12:51:13 maybe you'll end up writing the next ZZT 12:52:07 that's exactly what i want to do :D 12:52:27 but multiplayer/networked 12:52:34 and probably with actual graphics ;) 12:52:40 the age-old dream of a ZZT MMO 12:52:52 ZZT? 12:53:33 Vuokko: a text editor/object oriented programming language/game written by tim sweeney, who later went on to write Unreal 12:53:47 http://en.wikipedia.org/wiki/ZZT 12:59:24 --- join: Onionnion (~ryan@adsl-68-254-164-186.dsl.milwwi.ameritech.net) joined #forth 13:01:48 --- quit: segher (Quit: This computer has gone to sleep) 13:03:19 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 13:10:44 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 13:36:12 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 14:07:32 --- quit: segher (Quit: This computer has gone to sleep) 14:09:05 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 14:16:36 --- quit: dto (Remote host closed the connection) 14:34:06 --- quit: fantazo (Remote host closed the connection) 14:43:38 --- quit: xpoqp (Quit: WeeChat 0.4.0) 15:16:20 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 15:29:25 --- quit: dto (Remote host closed the connection) 15:44:11 --- quit: nighty^ (Remote host closed the connection) 16:12:39 --- quit: Tod-Work (Quit: Leaving) 16:49:34 --- join: ASau`` (~user@p5797F63D.dip0.t-ipconnect.de) joined #forth 16:52:16 --- quit: ASau` (Ping timeout: 245 seconds) 16:54:09 --- nick: ASau`` -> ASau 16:58:25 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 16:59:33 --- quit: dto (Remote host closed the connection) 18:45:57 --- quit: Nisstyre-laptop (Read error: Connection reset by peer) 18:58:03 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 19:00:01 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 19:13:59 --- quit: dto (Remote host closed the connection) 20:02:38 --- quit: goingretro (Ping timeout: 258 seconds) 20:11:45 --- join: cataska (~user@210.64.6.233) joined #forth 20:19:53 bjorkintosh: no i mean the ebook's structure could change after you choice some opinion 20:22:05 bjorkintosh: many book has some tips anywhere, like "for beginer" "for expert" "for python proagrammer" 20:22:54 if its a ebook, i think it could ask you if you are a beginer or expert, and then , at the target chapter, it would show the corresponsed tips 20:30:12 http://blog.jgc.org/2013/04/how-i-coded-in-1985.html this is interesting , do you guy have store for sharing? tathi ? 20:32:07 --- quit: Onionnion (Quit: Leaving) 21:18:10 --- quit: kumul (Quit: Leaving) 21:39:23 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 23:14:07 --- quit: tangentstorm (Ping timeout: 256 seconds) 23:23:00 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 23:34:50 --- quit: Nisstyre-laptop (Quit: Leaving) 23:59:59 --- log: ended forth/13.05.01