00:00:00 --- log: started forth/18.01.25 00:27:05 --- join: Darkthird (~darksecon@84.243.212.208) joined #forth 01:24:44 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 01:28:30 --- join: ncv_ (~neceve@2a02:c7d:c5c9:a900:1ec6:932f:1b02:d27e) joined #forth 01:28:30 --- quit: ncv_ (Changing host) 01:28:30 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 02:56:38 --- quit: nighty-- (Quit: Disappears in a puff of smoke) 04:18:16 --- join: reepca (~user@208.89.170.230) joined #forth 05:37:54 --- quit: groovy2shoes (Ping timeout: 276 seconds) 05:50:34 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 06:25:56 --- quit: dddddd (Remote host closed the connection) 06:36:14 --- join: _spt_ (~Jupiter-R@unaffiliated/-spt-/x-5624824) joined #forth 07:09:59 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 08:14:25 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 08:31:18 --- quit: Darkthird (Ping timeout: 248 seconds) 08:45:09 --- join: dograt (~dograt@unaffiliated/dograt) joined #forth 10:07:43 --- quit: lijero (Remote host closed the connection) 10:07:54 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 10:08:10 --- join: MrBismuth (~ArcMrBism@2600:1700:6620:5660:1426:998c:b44b:81fb) joined #forth 10:10:20 --- join: dys (~dys@tmo-098-46.customers.d1-online.com) joined #forth 10:10:40 --- quit: MrBusiness (Ping timeout: 265 seconds) 10:33:57 --- quit: Zarutian_PI (Remote host closed the connection) 10:36:10 --- join: Zarutian_PI (~3.1415@173-133-17-89.fiber.hringdu.is) joined #forth 11:40:03 I am not productive with forth 11:40:29 which sucks because I really wanted to like it, but I think it's about time I got over it 11:45:11 productive? spewing out half working code and expecting it to work??? 11:46:48 yeeeaaahh 12:09:22 I need to identify what it is about forth that attracts me to it and use that as criteria when evaluating other languages 12:09:51 or recognize that it's not important or good criteria 12:10:32 in theory I love the the DIY-ness of it, but as that hasn't actually panned out very well for me I should probably abandon that as a bad criterion 12:17:25 --- quit: _spt_ (Remote host closed the connection) 13:04:51 --- quit: reepca (Ping timeout: 268 seconds) 13:31:02 --- quit: ncv_ (Ping timeout: 240 seconds) 14:33:12 --- join: LOR_42 (6b4dd4c4@gateway/web/freenode/ip.107.77.212.196) joined #forth 14:37:44 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 15:20:33 --- quit: nighty- (Quit: Disappears in a puff of smoke) 16:06:41 --- quit: dddddd (Remote host closed the connection) 16:12:48 --- part: LOR_42 left #forth 16:18:34 --- quit: dys (Ping timeout: 252 seconds) 17:52:13 --- join: saml_ (~saml@pool-100-2-73-38.nycmny.fios.verizon.net) joined #forth 18:18:47 --- quit: saml_ (Remote host closed the connection) 18:33:07 --- join: karswell (~user@cust125-dsl91-135-5.idnet.net) joined #forth 18:51:26 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 18:58:23 --- quit: nighty- (Read error: Connection reset by peer) 18:59:05 zy]x[yz: i guess we need a IT/mobile oriented forth . 18:59:14 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 19:07:55 --- quit: cheater (Ping timeout: 256 seconds) 19:09:58 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 19:16:41 zy]x[yz: some say it is because Forth has so minimal core yet is quite growable 19:17:45 zy]x[yz: have you ever looked into Lua, Tcl and Scheme and even pure vanila Javascript? 19:18:30 yes, I've done a lot with lua and tcl 19:18:51 lua is imo the greatest high level language ever made 19:18:54 all share that there is a rather simple and easy to use datastructure 19:19:02 and tcl is hot garbage 19:19:23 zy]x[yz: i really hate lua's `end 19:19:34 we used to use it a lot where I work and I hated it 19:19:51 you hate lua's what? 19:19:51 maybe i got too long time protecting by python 19:19:57 zy]x[yz: end 19:19:59 for lua it is tables, for tcl it is strings, for scheme it is lists and for javascript it is strings to anything dicts. 19:20:02 the keyword? 19:20:06 yes 19:20:11 weird 19:20:28 well, lua feels a bit to pascally to me syntax wise 19:20:34 too* 19:21:05 I can get used to any syntax as long as it's consistent and sane 19:21:13 lua's is extremely clean 19:21:13 scheme has just rawly serialize tree structure (hence all the parens) 19:21:39 but tcl's twelf rules isnt consistent? 19:21:42 yeah I couod never bring myself to get too much into the lisps 19:22:02 I hate tcl for reasons other than syntax 19:22:10 well have you ever tried moon language? which is based on lua while provide many python/typyscript like syntax 19:22:15 oh, yeah it is warty as hell 19:22:33 like many js language, it will let you use the new syntax while compiled them to lua 19:23:14 tcl's problem (other than uplevel hell) is an utter lack of any useful data structures 19:23:16 yunfan: I have strong opinon on typing. Typescript doesnt get close what I want. Haskell is too EBNFy and abstract. Perhaps guards of E and Monte is enough. 19:23:48 zy]x[yz: yepp strings or when the stand in for lists are much abused. 19:24:21 Zarutian_PI: well , actually you could got these new syntax and keep strong type 19:24:24 s/the s/they s/ 19:24:41 Zarutian_PI: type hint has been tested on clojure/python/ruby 19:24:54 yunfan: typescript type system is basically java wannabe typesystem afaik. 19:25:21 Zarutian_PI: agree, and i dont like typescript and ES 19:25:22 yeah, "everything is a string" ... oh, oops, except for arrays (tcl's hash maps) because we couldn't figure out how to express those as strings. but then they aren't first-class, so to pass them or nest them you have to convert them to and from strings 19:25:25 yunfan: well at least last time I checked. 19:25:41 but i need to say they were much better compared to javascript 19:26:23 zy]x[yz: do you mean those that use that dreaded $ble(index) syntax? most people I know who write tcl have switched over to [dict] constructs. 19:26:39 yeah, and dicts are clunky as hell 19:27:19 tcl is just bad and needs to be put to rest 19:27:42 I'm sure it was novel for its time, but it really has not aged well 19:27:46 zy]x[yz: then what you use for hashmap case? 19:27:47 doesnt mean it doesnt have something good in it worth stealing. 19:28:08 it really doesn't 19:28:27 "everything is a string" is just not that great an idea 19:28:34 not that. 19:28:42 yunfan, what do you mean? 19:28:53 more like 'even the control structures are commands' 19:29:10 yeah, that's sort of forthy 19:29:11 zy]x[yz: you said dict are clunky as hell, so i want to know what you use when you need to process hashmap like data 19:29:21 I avoid tcl 19:29:29 yunfan: dicts in Tcl 19:29:30 but if I'm using tcl, I use dicts 19:29:42 Zarutian_PI: aha 19:29:46 I don't have to like it 19:30:56 I've written some cool state machines with tcl using uplevel so that it looks like a nice control structure 19:31:03 yunfan: well, at least in javascript half arsed attempts at type systems (which java type system is) doesnt get in your way. 19:31:13 but still, the bad outweighs the good imo 19:32:27 Zarutian_PI: of course, if you used to use python, you will be much angry to those most common language 19:32:46 but python has its own problem too, so finally you need a brain reboot 19:33:15 yunfan: the only slight I have against python is that there is no way to encapsulate objects in it like you can do with javascript or lua. 19:34:10 tbh I'm actually of the opinion that you could do pretty much anything you'd ever want to do with c and lua, but (like with forth) I've never actually finished any of my c/lua projects I started 19:34:16 (and that its libraries are ambient authority leaky as hell) 19:35:28 zy]x[yz: well that is pretty much the turing-tarpit argument. I understand what Guy Steele jr was on about regarding growable programming languages. 19:35:51 I don't know who that is 19:36:42 google him and his OOPSLA 1996 talk, it is hillarious and gets that spefic point home. 19:37:02 Zarutian_PI: sorry i dont understand 19:37:46 yunfan: done any sandboxing for or in lua? 19:40:03 Zarutian_PI: yep, there's a chapter about it in the book programming in lua 19:40:10 yunfan: for instance, in ComputerCraft (I know those APIs a bit better than the regular lua ones) you can virtualize and give your own implementation of say the socket package to a script that you eval from a source you do not trust to do quite the correct things. (Clumsy lua scripter say) 19:41:10 Zarutian_PI: if you talk about this, python could do that too 19:41:16 yunfan: that is an example of attenuation and in some cases making adapter. 19:41:19 but i got your meaning now 19:41:48 Zarutian_PI: do you know that gevent library will patch the default socket library for python 19:42:31 nope, with python you can not hand possibly flawed code one of your objects and expect that said code might not muck with its internals and violate its invariants. 19:43:35 * Zarutian_PI rather likes Lua require() and wish that javascript module system was kept that way (see CommonJS spec) 19:44:10 re python object: why? because they are not encapsulated and there is no way to do so in python. 19:45:06 (in Lua you can do it with metatables and in javascript by using closures as stand in for methods on an record-like object though it has improved) 19:45:53 zy]x[yz: what I have found with Forth is that is extremely easy to factor out even the smallest repeation of code into short words. 19:47:35 yunfan: if you google for Dr.Ses by Mark S. Miller then you find a paper you might find interesting. 19:48:45 * Zarutian_PI susses out a link 19:49:23 https://research.google.com/pubs/pub40673.html 19:50:10 Zarutian_PI, I think what I'm finding is that I actually dislike forth because you have to do that to be able to keep anything straight 19:51:08 when writing lua or c, I tend to keep my functions fairly short, but even still they achieve enough that in forth I'd be forced to break them up or they'd be unwieldy 19:51:24 and what sucks is that if you break them up, then you have to name those pieces 19:51:58 it's hard enough naming functions that do relatable things 19:52:17 how do you name a function which is just a piece of a loop, for example? 19:52:54 so I end up with a lot of name reuse. how many words is my program going to have called "next?" 19:52:56 Zarutian_PI: is there any minimal forth for impl datastruct and algorithm? 19:53:02 yeah, that is one problem. One that has an attempted fix of having subwords ( a colon definitions inside other colon definitions with some hiding/shadowing) 19:54:39 yunfun: well, I do not know. But one minimal forth I have studied a bit and ported is eForth. Mecrisp could be worth looking at too. 19:54:56 also re: lua's require, I modeled my forth's import after that 19:55:38 if so i choose eforth, at least i could got some chinese documents about it 19:55:39 does that require return an interface object? or does your 'namespace' get polluted so to speak? 19:56:14 (I hate not being able to suss out when I read code which parts are imported and from which modules) 19:56:16 it defines a vocabulary that's local to your current module 19:57:26 well, I am more of a fan of the: local ble = require(name_of_module) style where an interface table gets put into ble. 19:58:29 so basically it loads a module if it hasn't been loaded yet, and then caches that module's local vocabulary and culls from it any words that weren't marked for export 19:58:53 and then when you import it, you define what you want to name it and it gets aliased to the cached vocab 19:58:58 yunfan: I have a whole zip file with eforths implementation and authors writing on it somewhere. 19:59:32 it's basically local foo = require("bar") but vocabularies instead of tables 19:59:57 Zarutian_PI: well i think i need much more documents not code :D 20:00:04 zy]x[yz: hmm... stumbles on the whole math.square and shapes.square ambigiouity problem. 20:00:15 well codes' with documents is better like jonesforth 20:00:59 so the top of most of my files ends up looking like :import foo also :import bar also local ( :import is a shorthand when the local name and module name match because : foo " bar import ; is tedious) 20:01:30 yunfan: look for EFORTH86.ZIP on the net. The macro assembler file is quite well commented. 20:01:43 Zarutian_PI, they're vocabularies like any other forth vocabularies. you can change the search order around using previous and also 20:03:56 :import math also :import shapes also local also math ' square alias math.square previous ( now square is shapes.square and math.square is math.square ) 20:04:19 zy]x[yz: yeah. But to many that feels clunky. well that is quite better. 20:04:36 it is clunky 20:04:45 everything in forth is clunky 20:05:02 and I'm not smart enough to fix it! 20:06:13 it is. The seed of this whole discussion is what you find so attractive about Forth and it developed into a bit more general programing language discussion. 20:06:40 for instance one thing I have noticed is that most programming is still textual 20:07:11 I am not advocating for purely visual programming a la puredata or mit scratch (or that google blocks lib) 20:07:34 more that it isnt as, for lack of a better term, hyper-textual 20:08:56 or aural! 20:08:56 lots of IDEs work overtime to try to make it feel like it is but often fail or constrain you in other ways. 20:09:27 Zarutian_PI: ok also need arm/mips version, 20:09:42 mips router is everywhere, i think could be used for something 20:10:26 I'm fine with just text. I don't like the idea of requiring a special program just to edit source 20:10:36 one issue that comes up with programming hyper-textually is that you can not do at a glance the gestal switching of looking at picture of a pipe and seeing the pipe. 20:12:07 yunfan: there might be a mips version somewhere but the best learning experience, at least for me, was to port eForth from x86 assembly to a diffrent assembler. (One thrown together in javascript and utilizes promises for forward code-refences resolving) 20:12:37 I use a ton of tools when working with source code that aren't text editors or IDEs, but general-purpose text processing tools, like grep 20:12:43 zy]x[yz: which ties into my pipe metaphor above. 20:12:47 yeah 20:14:31 I looked at an programming project that utilizes Google Blocks in their program composing interface. Spefically I looked at their 'workspace' save format. 20:15:00 pretty much if someone wrote a lisp using JSON as the serialization syntax 20:15:47 that problem got the same vibe as the 'so many parensis' quirk of most lisps 20:19:12 now I am wondering how it would look by using Stackish ( https://zedshaw.com/archive/stackish-an-xml-alternative/ ) as the serialization surface syntax. 20:28:00 * Zarutian_PI looks at his local clock and is off to bed 20:28:12 nice chatting with ya about this stuff. 20:30:44 same 20:34:25 Zarutian_PI: x86 asm is a big issue 20:34:50 Zarutian_PI: i prefer riscy asm that has lesser and clear commands 21:37:05 Zarutian_PI: what's the minimal binary size of eforth for x86 that running on linux system? 21:48:14 --- quit: Gromboli (Quit: Leaving) 21:58:21 --- quit: lijero (Remote host closed the connection) 23:10:01 --- join: newuser|14893 (8269ce3f@gateway/web/cgi-irc/kiwiirc.com/ip.130.105.206.63) joined #forth 23:12:59 hi can I get a little help, I tried to create a edit compile run program in forth, but its not working. It uses ---marker--- marker ---marker--- to do somthing to the dictionary. Is there something I can review that explains how to set this up properly. Additionaly lots of the tutorials and books examples don't seem to work with gforth is there a 23:13:00 reason for this? 23:59:59 --- log: ended forth/18.01.25