00:00:00 --- log: started forth/17.04.14 00:12:48 ha I've got lambdas I believe 00:14:05 only they-re backwards 00:34:31 he he he 00:34:42 now regular order lambdas 00:49:32 ugh 00:49:36 I need to implement recursion you guise 00:49:39 cruds 00:50:01 cant have lambdas without recursion 00:50:55 --- quit: wa5qjh (Ping timeout: 260 seconds) 01:06:39 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 01:30:38 hmmm 01:30:57 Try running this in gforth : some-lambda true 4 2 4 2 ' + false ; some-lambda 01:31:02 for me I return an error 01:35:19 ' is not an immediate word 01:37:36 i think you mean ['] but still isn't clear from context what you plan to do there 01:39:37 --- quit: John[Lisbeth] (Ping timeout: 258 seconds) 01:55:11 --- join: John[Lisbeth] (~user@2601:601:8f01:a6a0:304f:f98a:3a25:ead2) joined #forth 01:55:12 you guys 01:55:18 Linux kernel is an llvm for physical hardware 01:55:23 you plop gnu on top of it 01:55:29 you can have linux and have just one program running 01:55:32 and that one program can be a kernel 01:55:40 and that kernel can be a gforth kernel 01:56:40 you simply have to develop a version of linux with gforth directly on top of linux and then port gnu to gforth 01:57:00 This in a sense develops half of the kernel 01:57:15 not the half that connects to the hardware but the half that manages the programs 02:07:06 John[Lisbeth]: *sigh* 02:08:49 linux is not a virtual machine. it does not abstract away the instruction set of the hardware and only abstracts some of the memory model 02:14:34 I can bootstrap a kernel ontop of a kernel. You know this. 02:15:39 A kernel does a couple main things 02:15:41 it talks to the hardware 02:15:47 it separates processes from hurting each other 02:16:12 I can make one process which is locked down and separate programs within it can not hurt each other 02:16:15 --- join: wa5qjh (~Thunderbi@121.54.90.148) joined #forth 02:16:20 and each program in there I could call a "process" 02:16:31 and within those processes I could port a copy of gnu 02:17:02 All that it does is create a sandbox ontop of linux which behaves like it is the kernel only linux is the real kernel below 02:17:54 as far as linux is concerned it is running one thing, and focuses on just that thing 02:18:14 --- quit: nighty-- (Quit: Disappears in a puff of smoke) 02:18:24 ok (modulo a lot of handwaving away of implementation details), but what does that have to do with linux being a llvm? 02:22:17 could you implement (pseudo-)preemptive multitasking/multithreading in gforth and make gcc target gforth and build most of gnu on it? yeah, i guess 02:23:01 would that be remotely useful? no. reasoning left as an exercise for the reader 02:30:26 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 02:37:19 It would create a gpl kernel and give gnu more control over it's system 02:37:31 It in a sense takes half of the kernel away from linus 02:38:11 yeah you are exactly right you would jut need multithreading and target it with gcc wouldn't you? 02:38:24 Linux is gpl 02:38:46 and gnu has their own kernel: https://en.m.wikipedia.org/wiki/GNU_Hurd 02:39:00 yeah but hurd ain't cutting it 02:39:04 prolly cause it's c 02:42:02 the things is linus controls the linux kernel 02:42:04 most gnu software is c or c++. writing a useful, reliable os kernel is hard. inn any language. 02:42:12 but anyone can make their own kernel with their own rules ontop of linux 02:42:31 it merely circumvents the rules of the linux kernel 02:42:38 allows you to create your own rules 02:43:07 John[Lisbeth]: that handwaves away a lot of details, and no, not really 02:45:02 short of writing linux kernel modules to access the hardware directly and provide your own syscall interface you're still bound by the kernel rules in implementing your fake kernel above it. 02:45:56 and bound by the linux scheduler etc 02:46:39 John[Lisbeth]: you should not go for implementing a kernel or VM _and_ a Forth system. first you should just implement your own Forth (without any bells) 02:46:48 pick a Forth specification and try to implement it 02:46:52 (no e of this should matter anyway, as kernel development is by necessity low level which isn't something you're interested in) 02:46:53 then you'll learn a lot 02:47:40 I should warn you: writing a kernel for x86 or any other complicated architecture is hairy 02:48:02 and very daunting 02:49:11 writing a kernel will also require a lot of reading, something else you've expressed a dislike for 02:49:49 nah I don't think you know what I mean 02:50:03 I am gonna put gforth ontop of linux first of all there is no reason for me to implement 02:50:03 it 02:50:07 second of all 02:50:24 stuff that the linux already controls I'll just say phuck it htere was probably a reason for that 02:50:33 I mean why would I want to implement my own scheduler because linux does that 02:50:46 You want to steal as much as possible 02:51:46 i think his philosophy is "i don't know about X, therefore X has nothing to know about" and the corrolary "if i learn something, X might become complex, so i will remain ignorant of X lest the world be crushed by X's complexity. you should thank me for caring so much about the world that i remain ignorant of it" 02:52:37 I can only operate based on what I currently know 02:54:05 runn g gforth atop a linux kernel isn't the same as writing a 'kernel' on top of Linux. you basically would just be using gforth as init. 02:56:08 and gforth is a really unsuitable init outside of maybe some embedded application where you don't have tight hardware constraints and need realtime guarantees 02:56:32 *and don't need realtime guarantees 02:59:18 Is it not possible for forth to give you realtime guarantees? 02:59:21 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 02:59:23 why wouldn't gforth work well with realtime guarantees? 02:59:45 not under a host kernel that can't guarantee that 02:59:52 well duh 02:59:58 ah, okay 03:00:11 I am not trying to give real time guarantees if linux does not already offer that 03:01:04 also, if you are implementing all the tasking and memory management under gforth, gforth will not magically give you memory protection for free 03:02:23 No I will either have to get my memory protection from linux or else I will have to implement it 03:02:38 John[Lisbeth]: *sigh* 03:03:26 if you were root in this forth kernel then memory may be open to you 03:03:38 John[Lisbeth]: you don't want to implement memory protection 03:03:57 you're wrong 03:04:14 no, you're still operating within the memory provided and managed by the kernel 03:04:34 I would devote all of the memory to my forth or else I would have linux manage the memory and control it with forth 03:05:31 gforth assumes one process with a big flat memory area. the hardware and linux kernel support memory protection where processes have their own memory, but you don't magically get that conferred upon whatever tasking you implement inside gforth, because as far as the kernel is concerned, it is one thread with a big flat memory area 03:06:21 I will have to make that decision of either to use linux's threads or to implement my own threading 03:07:19 you could probably use mmap and /dev/mem as root to access kernel emor, but you're screwed if you actually start chaging things there. 03:08:25 I was thinking I could spin gnu hurd up into a forth and then port it to the linux kernel 03:08:28 * crc would recommend #osdev channel if you actuall. want to pursue kernel related work 03:09:47 John[Lisbeth]: could you please, please, rise to the level of being wrong? now you're just juxtaposing projects with feature sets and expecting them to magically interact, without putting any thought into how that might happen 03:10:50 I do not think I am incorrect 03:11:21 it would be kind of like a preprocessor for linux almost 03:14:07 "kind of like a preprocessor for linux" is what i mean. it is not even wrong. it is a meaningless word salad. 03:15:02 s/mean/am referring to/ 03:15:53 You can put whatever you want ontop of linux 03:16:27 computer hardare is made out of logic gates, more or less 03:16:38 and any turing complete program can be expressed in logic gates 03:16:44 but you cant just write an application that sits between linux and other apps as an additional layer 03:16:54 so just as we can imagine computer hardware being described as software we can imagine computer software being written as hardware 03:17:06 and it is not impossible that one could write the linux kernel entirely in hardware 03:17:35 now if you had a linux kernel encoded in hardware then sure you could decide to just put gnu on that 03:17:41 but since it "IS" hardware you could write a kernel for it 03:17:44 * crc shakes his head 03:17:46 and that is what you are not understanding 03:18:26 There is not a real difference between the function of a piece of software and a function of a piece of hardware if they are functionally equivelant 03:18:32 one made with goto and one made with logic gates 03:18:44 crc: you can target the compiler to a VM that sits on top of linux, but he wants to use a really unsuitable one and handwave away all the unsuitability with "i'll make the parts fit" 03:19:03 exactly 03:19:15 stealing as much code as possible from hurd while I do it 03:19:34 the vm still has to deal with the kernel and its underlying limitations/restrictions 03:19:49 yes there are some limitations I could not circumvent 03:19:56 specifically where the kernel deals with the hardware 03:20:03 but that is not super limiting 03:20:28 you really don"t understand operating systems or kernels 03:21:12 I am not sure whethere or not you understand what I understand or don't undestand, but based on my current level of understanding what I am talking about is possible 03:21:32 then shut up and build a functional prototype 03:25:48 lol I will one day build a functional prototype but I will certainly not shut up 03:26:30 I have a main project right now which is too important to put down now so I can go pick up an even harder more enormous problem 03:29:55 and if you want to have the kind of elegant unilingual system you seem to want, that is no way to implement one. you will just get a big huge gob of compiler output, that runs an order of magnitude slower than on bare metal, has no memory protection or very slow emulated memory protection, doesn't do preemptive scheduling because it can't from within its little world, and isn't any easier to integrate with 03:30:01 or borrow functions from than compiler output on bare metal 03:32:04 I think I could get it pretty fast 03:33:11 and that secenario was giving every possible benefit of the doubt i could 03:35:34 I could be wrong, but I do not think that I am in this instance 03:36:50 John[Lisbeth]: what is your level of familiarity with any of these things? 03:37:20 novice level 03:38:13 meh you are boring me though I am gonna go write some more forth 03:39:07 okay so why can't this run : some-lambda true 4 2 4 2 ' + false ; ? 03:39:15 when I run some-lambda I get an error 03:39:41 it should give me 4 2 4 2 some-pointer 0 03:40:02 or rather -1 5 2 5 2 some-pointer 0 03:40:39 6.1.2510 and 6.1.0070 03:40:45 in the dpans document 03:40:55 read and learn :) 03:41:23 John[Lisbeth]: you are talking to a channel full of people who have written VMs with various memory models, looked at gforth in detail, and developed against the bare linux kernel and/or bare metal. we are all saying no, there are huge issues you're not appreciating. you are saying we are too stupid to get how easy it is 03:41:36 and providing word salad handwaves as evidence of our stupidity 03:42:03 I think it only sounds like word salad from your perspective 03:42:07 because you are not a high level programmer 03:42:19 You can find those at https://www.forthworks.com/forth/standards/DPANS/dpans6.htm#6.1 03:42:47 * crc shakes his head 03:42:53 i would ban you if i did not feel like i had to tread lightly after my long absence from here 03:43:13 systems development is low level by necessity 03:45:22 08:34 <@koisoke> ' is not an immediate word 03:45:22 08:37 <@koisoke> i think you mean ['] but still isn't clear from context what you plan to do there 03:46:47 koisoke: where his questions can be answered by learning the spec, I"ll only be providing him with information from the spec. If he"s not willing to read and learn, it"s not worth the repetition. 04:06:30 --- join: ricky_ricardo (~quassel@2601:240:4203:ecb0::6) joined #forth 04:27:35 --- join: GeDaMo (~GeDaMo@212.225.127.213) joined #forth 04:34:04 any idea if Journal of FORTH Application and Research Vol 5 is available for free anywhere? I searched but didn't find it 0,00http://dl.acm.org/citation.cfm?id=59429 04:35:07 http://soton.mpeforth.com/flag/jfar/vol5.html 04:37:46 thanks 04:41:52 I think this is the specific article: http://soton.mpeforth.com/flag/jfar/vol5/no1/article16.pdf 04:42:23 :) 04:51:12 Forth as a target instuction set? I see no benefits here. 04:52:26 Forth is not a good intermediate representation. 04:52:42 Stack machines are often used as intermediate representations 04:53:39 Sure. In a simple compiler using of stack code is a natural way to do things. 04:53:56 But Forth machine is not a classical stack machine. 04:54:38 Is this true?? "In Forth if I want to define a matrix on a linear space defined by objects with non-trivial definitions .. I switch to Python" http://stackoverflow.com/questions/24282153/comparison-of-common-lisp-macros-and-forth-metaprogramming-capabilities 04:58:36 Yes. In Forth most of mathematical properties are not respected. 05:00:35 For good abstractions you need to have such properties like composability or closure under a set of operations. 05:01:11 can't one program a domain specific language over forth that has these properties? 05:03:02 It's much easier to do fast hacks with DSL in Forth. For example, you can easily make a C-like structure in Forth, but it will be much harder if you plan to include one structure in another. 05:03:37 --- quit: ricky_ricardo (Remote host closed the connection) 05:11:22 I have an interest in languages targetting Forth (given that I have a MISC-inspired VM as one of my projects). 05:19:23 Some years ago there was an interesting experiment of using Forth IR in Tamarin Tracing. 05:20:08 A pair of Forth and JIT compiler is still a new and mostly unexplored area. 05:23:09 Classical problem for targeting Forth is a finding of effective algorithm of generation of the optimal sequence of stack combinators. 05:39:17 is there a way to define a word that has no name and simply put it's pointer onto the stack? 05:40:49 6.2.0455 :NONAME 05:42:10 Mostly you need to do so inside the colon definition, so it's better to write such "lambda"-word by yourself. Hint: you'll need only two lines of Forth code to do it. 05:42:28 cool 05:42:51 that saves me from having to implement lambdas 05:43:04 now I can scrap all the code I just wrote 05:46:10 forth200x quotations would be better for lambdas. see http://www.forth200x.org/quotations.txt 05:47:49 is that part of ans? 05:48:17 no, its part of he successor standard 05:48:35 successor standard ey? 05:48:39 can I install it in apt-get? 05:49:23 its a standard, not a specific implementation 05:50:04 some versions for forth support quotations as do vfx, amforth, and bigforth 05:50:11 of gforth 05:50:50 eternal ANS process... Meantime, forthers were already using lambdas in 80s. 05:50:52 * crc is typing on a virtual keyboard since his physical one died this morning. please forgive any typos. 05:52:31 There is a another way, more classical way, to implement lambdas. You'll need only to do some return stack manipulations. ANS doesn't support is, because it doesn't support the using of return stack for the changing of control flow. 05:54:07 there's still a fair amount of resistance to lambdas in forth. i find them very useful in my forth. (i use quotations for nearly all flow control) 05:55:30 And which way do you prefer? 05:55:30 1) : ... [: ... ;] each ... ; 05:55:30 2) : ... each: ... ; 05:55:30 ? :) 06:00:39 eh 06:00:43 my lambda works fine for me 06:02:16 now I've got almost all the types I need, too 06:10:44 again I mean 06:10:49 I am sure forth 200x is real great 06:11:04 and maybe when an implementation of it is available in apt-get I will use it as a dependency 06:11:15 but for now to make my shell I need a stable forth which is already in apt-get 06:14:44 true-grue: the former 07:02:59 --- join: neceve (~ncv@86.125.247.109) joined #forth 07:02:59 --- quit: neceve (Changing host) 07:02:59 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 07:06:38 Just picked up a new keyboard. Happy to be back to a working system again. 07:10:09 crc, I, for some reason, think that the "each:" variant is more traditional for Forth. 07:11:30 You are probably right, though my Forth is far from traditional 07:14:06 Well, I'm talking about pre-ANS tradition anyway. It's interesting for me to learn more about Forth in 80s, because it seems that it was a best time for the language, it was a peak of its popularity. 07:19:03 my earlier work was influenced by cmForth in various ways. (dual wordlists being the biggest one) 07:26:26 --- join: vsg1990 (~vsg1990@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 07:30:03 crc, Yes, I like the elegance of cmForth too. And you still use a dictionary lookup instead of immediate words? 07:35:47 I now have a single dictionary. 07:36:07 It has a pointer to the prior entry, a pointer to the word, a pointer to the word's class handler, and the name of the word 07:36:31 The class handler is a function that determines the runtime and compile-time behavior of the word 07:37:39 so I have something like. :class:immediate (a-) call ; 07:37:46 for "immediate" words 07:38:18 and :class:word (a-) @Compiler [ compile:call ] [ call ] choose ; for normal words 07:38:57 and :class:data (a-) @Compiler [ compile:lit ] if ; for data words (variables, constants, etc) 07:45:52 crc, Ah, I see. And there are a times when you may redefine your class:immediate, class:word ..., right, if you want something really special? They are vector words? 07:46:21 These aren't vectors. I can add any number of new classes as needed though. 07:47:47 (Mostly, I only make things vectors if I have a clear need to do so. Making these vectors would allow for significant alteration of existing behavior, which can be useful, but isn't something I've needed yet) 07:51:11 crc, Ok. I think, It could be useful for the compilation for different target, for example. 07:52:13 But maybe it's simpler just to use a special colon-like word with the different class entry. 07:53:17 --- quit: neceve (Quit: Konversation terminated!) 07:53:34 I'm not metacompiling or cross compiling :) 08:22:40 I've almost got all my language done except my macros now 08:22:47 I still need to implement dynamic arrays 08:22:53 perhaps objects 08:23:00 I cant think of any other types I need 08:24:00 I mean all I could really implemenet now are objects, dynamic arrays, and doubly linked lists 08:24:22 and I guess I need to figure out what syntax I want for shell commands and implement that 08:24:26 and then all that's left is macros 08:28:08 basically I have to make a separate dictionary for my second language and add words to that dictionary which process the language and then be able to take a string and separate it into words and then I should almost be done 08:30:26 I don't know what the best way to implement a dictionary would be though 08:31:51 My best guess is I should make a trie so that it is optimized for looking up the strings 08:41:11 https://raw.githubusercontent.com/johnmorrisbeck/gforth-config-nightly/master/.gforth-config 08:45:18 got to go to bed 08:45:23 --- quit: John[Lisbeth] (Remote host closed the connection) 08:55:05 --- quit: Bahman (Ping timeout: 260 seconds) 09:02:31 "vaporlang" oh god the irony 09:07:49 Good name for it :) 09:08:07 : overswap over swap ; <-- seems pointless 09:08:48 I think I've seen that called "under" 09:10:17 Which would be a much better name 09:10:45 I always thought tuck should have been called under 09:11:02 it's the inverse of an over 09:11:24 You can always rename it :P 09:11:57 yes I can, and I've thought about it but haven't committed yet 09:13:05 I did rename invert to compl, negate to -1*, and does> to => (still on the fence about that one) 09:14:55 but I can't be bothered with these trivial things at the moment. something more important requires my attention right now: what's for lunch? 09:16:02 --- quit: smokeink_ (Ping timeout: 260 seconds) 09:18:00 --- quit: wa5qjh (Ping timeout: 252 seconds) 09:20:23 Trivia: the minimum set of stack ops you need is dup, drop, >r, r> and either swap or over 09:20:40 * crc had nine slices of bacon and about 1lb of hamburger meat with some Gouda 09:26:25 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 09:32:38 --- join: gravicappa (~gravicapp@ppp83-237-166-236.pppoe.mtu-net.ru) joined #forth 09:44:17 John's code seems broken. It starts with a broken definition. Many missing stack comments. No real comments. 10:15:53 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:16:51 --- quit: Zarutian (Read error: Connection reset by peer) 10:17:18 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:46:44 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 10:49:13 --- quit: Keshl (Quit: Konversation terminated!) 11:02:18 --- quit: Bahman (Quit: ave atque vale) 11:04:10 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 11:13:25 --- quit: Bahman (Remote host closed the connection) 11:14:36 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 11:26:55 --- quit: Bahman (Quit: ave atque vale) 11:29:21 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 12:44:59 --- join: Wedamm (~Adium@x55b0c140.dyn.telefonica.de) joined #forth 13:07:32 [: ... ;] is the one true way. simple needs no further special casing for whatever iterators/control flow one wants to use 13:11:08 re: john's code, i am not sure if some of it is broken or if his naming is just so bizarre as to completely obscure his intent 13:16:22 is that John[Lisbeth]'s code? 13:16:37 that yes 13:19:16 https://github.com/johnmorrisbeck/ 13:20:09 his repos don't make much sense either 13:33:20 lol https://github.com/johnmorrisbeck/deleteFile/blob/master/deleteFile 13:37:19 i guess he has . in his $PATH? 13:38:40 not necessarily, you just have to put that file someplace that is in $PATH 13:39:04 on debian, ~/bin is in there by defualt 13:41:49 seems i spoke too soon https://github.com/johnmorrisbeck/deleteFile/blob/master/installFile 13:42:23 https://github.com/johnmorrisbeck/addBURPathNightly/blob/master/addBURPath 13:43:28 not spending more time on this 13:43:37 heh, same 13:43:50 he is the most sophisticated troll ever :-> 13:46:47 --- quit: GeDaMo (Remote host closed the connection) 14:28:13 --- quit: gravicappa (Remote host closed the connection) 14:43:39 --- quit: Bahman (Quit: ave atque vale) 14:47:15 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 14:49:43 --- quit: Bahman (Client Quit) 14:51:15 --- join: Bahman (~Bahman@141.8.40.60) joined #forth 15:34:16 --- quit: Bahman (Quit: ave atque vale) 15:42:12 --- quit: true-grue (Read error: Connection reset by peer) 15:42:15 --- quit: Wedamm (Quit: Leaving.) 15:43:01 --- join: wa5qjh (~Thunderbi@121.54.90.143) joined #forth 16:44:08 --- quit: wa5qjh (Read error: Connection reset by peer) 16:45:53 --- join: wa5qjh (~Thunderbi@121.54.90.143) joined #forth 16:47:00 --- join: John[Lisbeth] (~user@2601:601:8f01:a6a0:e8be:847a:c12d:703e) joined #forth 16:47:05 hooray I'm back 16:48:06 John[Lisbeth]: curtail the grandiose handwaves and focus on understanding and/or cleaning up what you've already bitten off, or you are sailing out of here 16:48:21 lol alright well handwaves aside that project as I had said was for years into the future 16:48:25 so a moot point 16:48:35 the current project I am working on I have code to I can show you 16:49:36 basically I have been implementing a bunch of types 16:50:01 https://github.com/johnmorrisbeck/gforth-config-nightly/blob/master/.gforth-config 16:50:27 yeah, i saw that 16:50:59 that is not at all grandiose. It works and if you have a problem with it and can prove that it is a problem I will fix it 16:52:45 I am only a few steps away from making it a c style language 16:53:12 in fact maybe I will just do that now and fix it later 16:53:17 re: prove it is a problem, it is such an uncommented and bizarrely named jumble that working out what you intend is impossible. 16:53:44 he he he 16:53:47 its broken. i put it in a file and tried to load it. all i get is: https://gist.github.com/crcx/9d0d682c2149452c557414a34ba1b53f when i try to load it. 16:53:47 well thats the forth component 16:53:53 when it is bootstrapped it will look alot nicer 16:53:58 plus later on I may add comments 16:56:17 I fixed it try it now 16:57:19 some comments on how your data structures are laid out would be good 16:58:21 When I write the manuals I will do that. For now I will implement functions which operate on those datastructures and you will have to use those, or else implement your own datastructures. It is after all an untouched ans forth 16:59:11 John[Lisbeth]: ok, then do that, but please don't spam the channel as if that jumble was meaningful to anyone but you 16:59:33 What part of it did you not understand? 16:59:54 you ask for help with implementation bits and then point people to code and say ~"it's your fault you don't have access to my internal mental state so neener neener" 17:00:52 There is no fault either way. We are simply communicating. 17:03:16 whatever. if you're going to ask for help or a second pair of eyes, don't deliberately make it harder for people than you have to 17:05:38 because nobody knows what data structures you're imagining for this stuff, it is impossible to look at a definition and know if it does what you intend 17:05:47 (unless it is broken in a way that obviously causes undefined behavior) 17:10:28 that is the error of your thinking 17:10:43 I do not actually show you any of my real code when I ask questions I just make a small mockup problem to explain what I mean 17:11:44 and *please* consider actually looking through the spec when you have questions on words. 17:13:09 whih spec? 17:15:36 the ans spec 17:16:11 John[Lisbeth]: small mockup problems are fine. small mockup problems where you give a little code snippet, ask if that is right, and respond with ad hominems when people ask for clarification on what you want are less fine 17:16:23 the document that describes the language you are using 17:16:41 theres a link in the topic of this channel 17:17:05 I usually don't use those 17:19:36 if you really intend to build something on top of forth you should try to actually learn the language 17:20:04 documents or ad hominems? you've been using the latter at a couple per day, which is way too much when soliciting help with your personal project 17:21:17 the amount of time it takes to consume the document is not worth the reward 17:21:23 I already have a good understanding of forth 17:21:28 just not ans forth 17:22:45 *which* forth do you claim to understand? 17:22:57 < John[Lisbeth]> the amount of time it takes to consume the document is not worth the reward 17:23:00 other than maybe R5RS, the ANS document is one of the most approachable language specifications there is 17:23:12 that's funny, that's how I feel about most of what you write 17:23:28 --- quit: ACE_Recliner (Remote host closed the connection) 17:23:51 koisoke: I think R7RS is also pretty approachable. 17:24:20 koz_: fair. R5RS is the latest one i have read in entirety, so i named that one :P 17:25:01 dpans94 is ~200 pages and you can easily read through it over a weekend with time left over to write some code 17:25:09 koisoke: If you're interested, do check out R7RS. It's really quite nice, and it's bbasically a (fairly) conservative extension of R5RS anyway. 17:25:23 But anyway, this isn't about Forth, so I'll STFU. 17:25:44 koz_: i shall 17:26:24 * crc doesn't even use ans forths and i still have read and occasionally review the spec. 17:35:49 --- quit: Zarutian (Quit: Zarutian) 17:49:52 * crc is rewriting several string manipulation words currently 17:57:16 I've eliminated the use of variables from s:map and s:filter, which will make both considerably faster. 18:04:43 --- join: ACE_Recliner (~ACE_Recli@c-50-165-178-74.hsd1.in.comcast.net) joined #forth 18:16:50 --- quit: ACE_Recliner (Remote host closed the connection) 18:20:14 --- quit: LeCamarade (Ping timeout: 268 seconds) 18:31:09 --- quit: zy]x[yz (Ping timeout: 240 seconds) 18:32:45 --- quit: irsol (Remote host closed the connection) 18:33:20 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 18:38:48 --- join: zy]x[yz (~corey@unaffiliated/cmtptr) joined #forth 19:37:02 Finished - No more variables in my string manipulation words :) 19:37:09 :) 19:39:01 currently taking another crack at an old stack machine project for embedded use and trying not to get bogged down in premature optimization this time 19:43:15 it's too bad arm thumb doesn't have the condition bits on every instruction, since that would be really nice for handling type tags 19:43:25 (in constant time) 19:44:13 I've only recently begun looking into arm assembly 19:44:19 er right, *looks at what he said just one line above that* 19:46:23 --- quit: wa5qjh (Remote host closed the connection) 19:46:44 --- join: wa5qjh (~Thunderbi@121.54.90.143) joined #forth 20:13:16 --- quit: nighty-- (Quit: Disappears in a puff of smoke) 20:17:09 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 20:19:40 --- quit: nighty-- (Remote host closed the connection) 20:20:00 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 20:56:10 I sometimes wonder if, compared to other languages, we end up naming things more often or less often. On the one hand, named variables are way less common. On the other hand, we give names to sequences of words way more (I think). 21:09:53 --- join: smokeink (~smokeink@175.20.93.55) joined #forth 22:28:00 --- quit: karswell (Remote host closed the connection) 22:29:25 --- join: karswell (~user@36.91.199.146.dyn.plus.net) joined #forth 22:33:27 --- quit: smokeink (Quit: Leaving) 22:38:48 --- quit: dual (Ping timeout: 252 seconds) 22:56:44 --- quit: vsg1990 (Quit: Leaving) 22:56:54 --- quit: koz_ (Ping timeout: 260 seconds) 23:26:33 --- join: smokeink (~smokeink@175.20.93.55) joined #forth 23:47:52 --- join: smokeink_ (~smokeink@175.20.93.50) joined #forth 23:49:36 --- join: koz_ (~koz_@121.99.240.58) joined #forth 23:49:56 --- quit: smokeink (Ping timeout: 240 seconds) 23:58:04 --- nick: smokeink_ -> smokeink 23:59:59 --- log: ended forth/17.04.14