00:00:00 --- log: started forth/04.07.13 00:06:06 --- join: foobar_ (fooboo@dialup-4.152.81.13.Dial1.Atlanta1.Level3.net) joined #forth 00:13:01 --- join: segher (~segher@blueice3n1.de.ibm.com) joined #forth 01:33:17 --- quit: Serg () 01:42:34 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 02:06:07 --- part: foobar_ left #forth 03:37:49 --- join: ASau (~asau@158.250.48.204) joined #forth 03:37:56 Dobryjj den'! 03:51:37 privet 04:14:07 Privet, mur i ASau :) 04:17:07 What's new? 04:17:16 hmm 04:17:22 new date 04:17:26 I've been far away recent week. 04:17:36 new week then, too 04:18:27 To where, ASau ? 04:23:40 I've been at South-East. 04:25:42 China? 04:29:07 Volga, near border to Kazakhstan. 04:29:16 Ah, OK. Vacation? 04:30:15 Yes. 04:31:19 Nice. :) 05:37:43 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 05:49:46 Guten Tag, Topaz. 05:57:14 --- quit: Topaz (Read error: 110 (Connection timed out)) 05:57:47 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 06:15:39 --- quit: Topaz (Read error: 110 (Connection timed out)) 06:16:29 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 06:35:18 --- quit: Topaz (Read error: 110 (Connection timed out)) 06:35:38 --- join: arke (arke@melrose-251-251.flexabit.net) joined #forth 06:35:49 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 06:35:49 hi 06:36:02 Terve. 06:37:07 Pryvit. 06:49:10 terve :) 06:49:17 Robert: done anything? 06:55:40 Coding 06:57:06 --- quit: Topaz (Read error: 110 (Connection timed out)) 06:57:20 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 06:58:52 when you accidentally put red paint on a white wall, it really shows 06:58:55 oops :p 07:00:32 :D 07:00:39 Poor fox. 07:00:41 also, when the label of a bucket of paint tells you it'll be dry in 16 hours, multiply it by... oh 4 or something 07:02:12 lol 07:02:21 Robert: what have you coded? 07:02:29 Forth! And stuff. 07:02:50 I got a new-old Forth here... 07:02:58 Robert is good at designing forths with a initialized stack on startup 07:03:11 stfu plz :) 07:03:15 sir! 07:03:20 :) 07:03:21 I solved it in TForth, you know 07:03:30 Robert: how far are you on F2? 07:03:39 wait, F2? 07:03:39 Well, uhm, I'm not. :P 07:03:51 OH NOES, YOU REVEALED TEH SEKRIT 07:04:01 you were holding back on me? 07:04:07 words fail me. 07:04:11 Hehe, nah, I abandoned that project. 07:04:31 But I was planning to write a Forth compiler with some high-level extentions. 07:04:49 indirect threaded ! 07:05:21 Hell no. :) 07:08:11 the funniest thing happened btw. i added stuff to core.f and suddenly it refuses to boot. 07:08:32 --- quit: ASau () 07:14:25 --- quit: Topaz (Read error: 110 (Connection timed out)) 07:14:54 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 07:16:39 Robert: you..gave...up...on....F2......... 07:16:46 Robert: TR4IT0R 07:17:02 qFox: Oh, fun. 07:17:14 arke: What was F2 going to be like, anyway? 07:18:13 Robert: ...# 07:18:20 Robert: I just needed the damn compiler. 07:18:27 Robert: tis all I need 07:18:37 later 07:18:43 --- quit: arke ("leaving") 07:19:50 i have arke on my side, muhahahahah 07:20:17 Heh 07:32:07 --- quit: Topaz (Read error: 110 (Connection timed out)) 07:32:25 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 07:41:47 --- join: tucknip (~Huck@170.141.109.33) joined #forth 07:43:03 --- part: tucknip left #forth 08:50:32 --- nick: TomasuDlrrp -> TomasuWork 09:23:53 --- join: segher_ (~segher@blueice1n1.de.ibm.com) joined #forth 09:24:21 Hi 09:34:01 --- quit: segher (No route to host) 09:50:19 --- quit: Topaz (Read error: 110 (Connection timed out)) 09:50:52 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 10:10:41 --- quit: Topaz (Read error: 110 (Connection timed out)) 10:11:01 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 10:48:59 --- join: gNoam (xru52729fj@HSE-Kitchener-ppp105010.sympatico.ca) joined #forth 10:48:59 --- quit: onetom (Read error: 104 (Connection reset by peer)) 10:49:34 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 10:53:27 --- part: gNoam left #forth 11:03:07 --- quit: segher_ ("Leaving") 11:08:17 --- join: warpzero (~warpzero@mi195.dn185.umontana.edu) joined #forth 11:26:30 --- join: Sonarman (~matt@adsl-64-160-165-182.dsl.snfc21.pacbell.net) joined #forth 11:59:57 --- join: SDO (~SDO@67-23-111-213.clspco.adelphia.net) joined #forth 12:18:35 --- quit: SDO (Read error: 110 (Connection timed out)) 12:22:46 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:17:11 --- quit: tathi ("leaving") 13:29:30 --- join: I440r_ (~mark4@64.47.44.254) joined #forth 13:29:49 grr fscking server wouldnt let me on because my IP doesnt resolve to any name 13:32:53 Hehehe 13:33:05 Welcome to IRC. :P 13:33:32 You know what? qFox doesn't respect your hate for postpone. 13:33:40 correct. 13:33:40 Explain to him why you don't use it 13:33:47 well 13:33:54 it caused a delay in development for a few hours 13:33:57 because robert here 13:34:09 mixed up the word he needed that does postpone 13:34:18 because he defined it with different name in his forths 13:34:21 dumdum 13:42:45 no 13:43:00 postpone is an abomination invented by the ans morons 13:43:12 i use compile and [compile] 13:43:30 compile takes the next token from the execution stream and compiles int into the definition being created 13:43:48 [compile] takes the next token out of the INPUT stream and compile it into the definition being created 13:43:55 yes well, robert uses both for the same ;) 13:43:57 the two functions have NO FUCKING comonality what so ever\ 13:44:09 * qFox points 13:44:17 Bah 13:44:26 but the ans team decided that these are too difficult for dumbass coder wannabe's to understand so they invented postpone 13:45:05 I've used [compile] compile and (compile) in various configurations 13:45:08 the precieved problem is taht you would have to understand and know all immediate words because [compile] is used to compile them instead of executing them 13:45:10 And sometimes they're incompatible :P 13:45:34 postpone is an attempt to relieve you of the responsability of knowing the language you are programming in 13:51:33 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 13:51:45 hi all 13:52:30 hello 13:55:16 --- join: wossname (wossname@HSE-MTL-ppp73265.qc.sympatico.ca) joined #forth 13:57:25 --- quit: wossname (Client Quit) 14:03:11 --- join: wossname (wossname@HSE-MTL-ppp78092.qc.sympatico.ca) joined #forth 14:11:16 --- join: ASau (~asau@158.250.48.204) joined #forth 14:11:22 Dobryjj vecher! 14:11:30 ASau! 14:13:05 is it possible to have a recursive loop in forth? 14:13:40 Like : x recurse ; ? 14:13:44 : rec adr begin dup while rec 1+ repeat ; 14:13:59 what do you guys think, does this have too much >r/r> : http://paste.lisp.org/display/1728 14:14:01 its to for execute 14:14:20 slava> forth or factor? 14:14:31 factor, but it shouldn't look worse than forth ;) 14:14:32 or lisp.. :) 14:14:35 k 14:14:55 cant you use pick? 14:15:15 i don't have pick ( n -- x ) 14:15:19 or roll 14:15:26 nope 14:15:28 well, make it :) 14:15:44 drop, dup, over, swap, nip, tuck, rot 14:16:01 and pick ( x y z -- x y z x ) 14:16:04 do you have a stack index? 14:16:05 What is it for? 14:16:43 ASau, its a function that checks if each element of an array ("vector") satisifies a predicate (the predicate is a function that returns true/false). 14:16:54 ASau, its like saying 'for all x in X: P(x)' in logic :) 14:17:12 Is it "filter" or "and"-analog? 14:17:30 its for checks like 'is every element in this list a number' 14:17:43 i also have a general 'apply f(x) to each x in X' function 14:17:48 Aha. Like "and" in Scheme. 14:17:53 yup. 14:18:20 I think it's too complex. 14:18:47 yeah. generally i use linked lists, and recursive algorithms for these sorts of problems are MUCH simpler with a linked list 14:19:15 If you're afraid of bouns, then use "min". 14:19:24 my words for working with vectors are not as powerful because they get complex very quickly. but sometimes you need vectors for O(1) random access 14:19:33 ( length ) ( max-length ) min 14:19:49 ( length ) ( max-length ) min ( proceed ) 14:22:10 : all ( a n p -- ? ) >r ( max-length ) min 1 -rot times dup @ r execute rot and swap cell+ repeat rdrop ; 14:22:20 Something of this kind. 14:22:54 You should replace "( max-length )" with your calculation of length limit. 14:23:10 i think i'll drop the idea of stopping iteration when it returns false 14:23:16 and just compite it for each vector element. 14:23:29 That's what I've done. 14:25:33 If you want to stop at first false, than you should rewrite "times-repeat" to "begin-while-repeat" with checking for accumulator to be 1. 14:25:48 i don't have a way of breaking out of a loop 14:26:30 Do you have "while"? 14:26:34 yes 14:26:56 Check for accumulator to be "true". 14:27:38 "acc and (index>=0)" 14:39:18 --- quit: wossname ("woah") 15:12:13 --- join: thin (thin@66.114.33.57) joined #forth 15:12:13 --- mode: ChanServ set +o thin 15:13:34 [Forth]: 2 dup 15:13:38 [Forth]: 2 dup . 15:14:06 : thin recurse ; 15:14:24 I wonder if "recurse" in that word has anything to do with the curses it will prodce- 15:14:32 Repeated curses. 15:14:36 That can't be aconincidence. 15:14:43 do you like cursing? 15:14:45 a coincidence 15:14:57 Maybe. What do you have to offer? 15:15:13 Stop trolling or I'll kickban you :P 15:15:54 Tsss... 15:16:04 More coding and less kickbanning from you, young man! 15:16:22 FORGET Robert 15:16:52 Ouch. 15:17:27 DEFER Robert 15:17:33 BTW. 15:17:36 ' thin IS Robert 15:17:40 One trick: 15:17:41 less elitism and making an "ass of u and me", younger and stupider man! 15:18:12 ASau, i decided to implement this vector-all in a much more inefficient manner. 15:18:19 : aconst here-we-calculate-a-number ; aconst FORGET aconst CONSTANT aconst 15:18:22 ASau, it does a scheme style map from vector->P(x in vector) 15:18:30 ASau, then does logical and of all elements in the resulting vector. 15:18:49 ASau, here it is: 15:18:51 : vector-all? ( vector pred -- ? ) 15:18:51 vector-map vector-and ; 15:19:09 thin my bot doesnt do ANYTHING yet lol 15:19:17 hey I440r 15:19:22 You mean (apply and-op (map p vector)) ? 15:19:22 it will happilly ignore you forever :) 15:19:27 hi slava 15:19:31 thin: Elitism? Just because I happen to point out you're not a coder? :( 15:19:32 im in california right now 15:20:17 Guten Abend, I440r and thin. 15:20:32 :) 15:24:20 Robert: because you seem to think you're better than me and generally bring up the fact i'm not much of a coder everytime we're both in the channel 15:25:05 maybe you're jealous too that i'm a better coder and don't bother coding 15:25:16 Yeah, that's probably it. 15:26:16 actually its funny how ppl take it as an insult when someone is "better" than the other 15:26:35 ppl operate on too much ego 15:26:57 Honestly, how could I be jealous on your coding skills if you've never coded anything (and thus never showed it to me)? 15:27:39 uh you've seen some of my code 15:27:54 Oh? What? 15:29:15 a year ago or so i put up a webpage 15:29:23 pretty sure everyone in the channel saw it.. 15:29:25 including you 15:29:55 What did the code do? If it's a year ago I forgot it 364 days ago. 15:30:15 didn't do much but it sure was pretty ;) 15:31:28 when i did code forth i coded several pieces of code 15:31:41 Uhm, OK... 15:31:42 and i must've recoded each piece several times 15:31:44 factored them etc 15:31:45 what else does one code? ;) 15:31:58 basically i took the time to learn to code forth properly 15:32:10 and tackled the factoring etc 15:32:11 i never did :) 15:32:13 so i made some nice code 15:32:39 so i'm a good forth coder imo, albeit not a prolific one at all 15:33:12 Have you met ree? 15:33:24 why do you ask? 15:33:57 Just asking, he's known for having talked about extremely advanced systems for years, but nobody has seen a code line of his. 15:33:57 yes i have 15:34:11 yeah same with kc5tja 15:34:24 except kc5tja actually has coded stuff 15:34:31 Uh. 15:34:37 well ree did code the begining of his os 15:34:58 ree, kc5tja, and i are all INTPs 15:35:20 so i guess we're more interseted in thinking and exploring complex systems 15:35:35 implementating it is harder 15:35:43 and ideally we'd be better off outsourcing that 15:36:25 Buy a Korean. 15:36:33 They're cheap. 15:36:39 yup 15:37:16 i'm serious about outsourcing, i think that's the main way i'll accomplish my goals 15:37:44 By letting someone else do your work? 15:38:00 no 15:38:25 it would be run like a business 15:38:36 probably a business that starts other businesses 15:38:56 basically i'd handle idea generation and rough draft of the design 15:39:06 and review changes to the design 15:39:26 and everyone else working for me would deal with the implementating 15:39:46 Always the one who doesn't do any work in the top. :) 15:40:00 idea generation and design is work 15:40:10 just because i'm focusong on my talents doesn't mean i'm not doing work 15:40:20 It's a part of a job, yes. 15:40:48 the tall talented basketball player gets payed millions .. he's working 15:40:57 running a business has plently of headaches 15:41:04 But it easily ends up with everybody wanting to command. 15:41:17 And 99% forced to follow orders because they need food. 15:43:47 I hope you don't take me for someone who can only take orders on what to suck on, I have tons of ideas, but either I try to implement them myself or discard them as too far-fetched (AI systems made to take over the world, a la ree...) 15:56:15 suppose you wanted to build a spaceship 15:56:28 you're going to need a team of experts 15:56:39 of ppl with specializations 15:56:52 you're going to need to organize them to make your dream a reality 15:58:42 suppose everyone in the world believes a spaceship is impossible 15:58:50 but you know its possible 15:59:02 (and it is, based on the reality of today) 15:59:53 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 16:00:10 You know, 99.99% of the ideas everybody say are insane, actually ARE insane. 16:01:03 And wasting 10% of NASAs budget on such a project would get you into a little bit of trouble if those 1 to 10000 odds turn you down. 16:01:40 are you aware that pessimism isn't rational? 16:01:52 No. 16:02:22 Besides, what's your Great Plan? 16:04:52 i'm serious, there's nothing particularly rational about pessimism, but all these smart people who have never achieved much success will claim that they are "realists" or "skeptics" when they are only pessimists 16:05:06 --- quit: I440r_ (Read error: 104 (Connection reset by peer)) 16:05:17 in fact, "realism" is a synonym of "rational" 16:05:31 And people like you claim to be misunderstood geniuses.... 16:05:34 and if pessimism is not rational, then a pessimistic person is not a realist 16:06:04 why do you harbor so much hate towards me? 16:06:08 I don't. 16:06:16 Actually I was about to ask you the same... 16:06:23 with the sarcastic "Great Plan" and "and people like you claim to be.." 16:06:46 Actually, that Great Plan thing wasn't sarcastic. You've been suggesting something like that all along 16:06:46 you don't care about my plans 16:07:09 you just want me to tell you something that you can deride 16:07:10 I do. Otherwise I don't know if I should consider them realistic or not. 16:07:26 No.. if it's good I'm not worse than I can admit that. 16:09:20 thin, speak more particular. 16:09:42 If you don't have any suggestion, then you have nothing to speak about. 16:10:28 And your speech about realism and pessimism has no support. 16:13:21 robert: i have hundreds of ideas but they are not the core of my plans, ultimately i just want to reduce noise. i.e. simplify systems. i'm a systems person, and i'd like the reduce the system noise by simplifying as many systems around us as i can 16:13:43 thereby freeing ppl from the noise, making them more intelligent 16:13:48 more productive 16:13:49 etc 16:14:09 all the inefficiencies and noise ultimately dumb us all 16:14:15 i like to simplify my APIs to reduce 'noise' in the code that calls those APIs 16:14:47 my nick name is derived from "thin api" as thats sort of my philosophy 16:14:48 thin, I bet your ideas are not new ones. They're already done by someone you don't know. 16:16:39 asau: i recognize you for who you are. you are one of the irrational pessimists that calls himself a "realist" and uses his knowledge and command of language to attempt to come across as someone who knows everything and is always right, but in reality you are irrational. 16:17:56 i have seen your type 16:18:17 i have seen you argue with kc5tja 16:18:28 i have seen your type argue with others and been exposed similarly 16:19:01 the type of person that argues wonderfully but without the aim of truth 16:19:08 thin, I know many of people, saying "i have hundreds of ideas but they are not the core of my plans." 16:19:32 There was no one idea that was _new_. 16:19:45 i do not know more than 1 or 2 people that have more a hundred ideas 16:19:54 than* 16:19:55 Each time I've realized it is _already_ done. 16:19:56 * slava removes 2>r and 2r> words. 16:20:13 why. they are good for doubles 16:20:19 maybe you are thinking of tinkering ideas 16:20:22 as long as you dont forget to keep the order 16:20:26 as opposed to creative ideas 16:20:46 as opposed to product ideas to be sold on the marketplace 16:20:47 qFox, i try to use a minimum set of stack words to keep code clear. 16:20:59 qFox, i'm getting rid of this one too: rover ( r:A r:B -- r:A r:B r:A ) 16:21:07 yeah, but those goals are meant to be discarded anyways, and you know it ;) 16:21:52 generating ideas is simple 16:21:54 ideas are nothing 16:22:11 i can sit and come up with 10 GOOD ideas in 2-4 hours 16:22:13 thin, you know that one can sell _any_ idea, be it good or not. 16:22:22 the values that drive the idea generation are where its at 16:22:44 One can come up with 100 really good ideas in an hour. 16:22:55 a wise man once said "innovation comes from angry people" 16:22:58 But will they be new ones? 16:23:03 no. 16:23:18 i doubt you can come up with a new original idea within the hour 16:23:30 problem is verifying that its indeed new or not. 16:23:35 new in terms of whether it has been implemented or new in terms of whether someone has thought of it? 16:23:48 You can express any idea, but I bet it is not new and is _already_ imlemented. 16:23:52 IT DOES NOT MATTER IF SOMEONE ELSE HAS THOUGHT OF AN IDEA. THE IMPLEMENTATION IS WHAT MATTERS YOU MORON. 16:24:15 It is _already_implemented_, "you moron." 16:24:17 already implemented 16:24:18 lol 16:24:19 you angry people man now thin? ;) 16:24:37 you are not being realistic asau 16:25:21 it is fairly obvious whether an idea is implemented or not 16:25:28 a product for example 16:25:36 sold all across north america 16:25:53 lets say that there isn't a given product 16:25:55 which i have an idea for 16:26:01 It is not so obvious, as you can think of it. 16:26:15 perhaps its implemented in russia, but who cares about russia 16:26:21 Heh. 16:26:37 the only good thing that came from russia is kettlebells 16:26:41 You can't even find it, if you don't know where you should seek. 16:26:52 well, its pretty hard to miss actually 16:26:55 why would i want to find it? 16:26:57 exactly qfox 16:27:10 i have a product idea 16:27:14 which i'm not gonna describe 16:27:24 as i haven't patented or anything yet 16:27:31 you're not? on a public channel? why i wonder 16:27:40 and i'm aware of what is available in the marketplace 16:27:50 now maybe i'm ignorant and it's available over in russia 16:27:51 You just make more noise, when you reinvent already implemented thing. 16:27:53 but who cares? 16:27:57 not really 16:27:57 i usually just lack funds to start something 16:28:00 so i dont :) 16:28:02 maybe it was implemented poorly in russia 16:28:29 don't forget of evolution 16:28:35 evolution is the ultimate in reducing system noise 16:28:50 reinventing the wheel? thats just an evolution thing 16:29:01 creating millions of different versions of the same thing 16:29:05 then seeing which survives better 16:29:17 the leader, simpler, etc will survive 16:29:18 er 16:29:20 leaner* 16:29:47 anyways asau, you're a moron, this argument is ridiculous and i have work to do 16:29:53 --- part: slava left #forth 16:30:16 --- mode: thin set +q asau!*@* 16:30:53 --- mode: thin set -q asau!*@* 16:31:08 * thin doesn't know what to do with asau.. 16:31:17 maybe kc5tja will 16:31:35 i bet kc5tja LOVES you asau 16:32:03 because you're such a rational person that never debates stupid points 16:33:42 --- quit: Topaz (Remote closed the connection) 16:33:55 asau: yes force is the last resort of the incompetent. but its a free wheeling chaotic universe, and capitalism is the only moral alternative 16:34:18 --- part: thin left #forth 16:34:29 Finally... 16:34:34 clog: Hi. 16:35:15 Make next step: admit you're incompetent. 16:38:36 --- join: _I440r_ (~mark4@64.47.44.254) joined #forth 16:40:30 oh come on, relax guys 16:41:57 Hard to relax with futhin in the neigborhood. 16:42:36 i'm sorry. i cant take fighting. /me out 16:42:38 --- quit: qFox ("meh ircii's netsplit detection appearantly sux ^^") 16:43:40 I don't exert myself. So why should I relax? 17:09:43 --- join: foobar (fooboo@dialup-4.153.53.86.Dial1.Atlanta1.Level3.net) joined #forth 17:10:09 Guten Morgen, foobar. 17:10:26 Guten tag 17:15:33 Mit donnerstimme geb ich die antwort: nein! 17:17:28 ? 17:21:03 A line from "Don Juan und Faust" by Christian Grabbe. 17:26:02 --- part: foobar left #forth 17:39:15 --- quit: _I440r_ (Read error: 110 (Connection timed out)) 18:05:26 --- join: SDO (~SDO@67-23-111-213.clspco.adelphia.net) joined #forth 18:14:55 --- quit: SDO ("Vision[0.9.6-0203]: i've been blurred!") 18:25:47 --- join: SDO (~SDO@67-23-111-213.clspco.adelphia.net) joined #forth 18:37:51 --- quit: SDO ("Vision[0.9.6-0203]: i've been blurred!") 18:47:53 --- join: ayrnieu (~julian@205.241.56.30) joined #forth 19:03:28 Labas ritas, ayrnieu. 19:03:45 hello, asau. 20:11:31 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 21:19:49 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 21:20:38 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 21:20:44 --- mode: ChanServ set +o kc5tja 21:21:08 hi kc5tja 21:21:14 Greetings 21:21:30 * kc5tja is thinking that I need to write a VLIR-like file "system" for Linux. 21:21:40 what is VLIR? 21:21:48 Variable length, indexed records. 21:22:15 Basically, a fancy name invented by Berkeley Softworks for the GEOS/64 operating system, as that name wasn't known at the time. 21:22:23 s/that name/Object Database/ 21:22:54 oh right 21:23:02 It's perhaps best to think of a VLIR file as a file with lots and lots of forks. 21:23:28 C64's VLIR files were limited to 128 records/forks. 21:23:55 how is this different from a directory full of files? 21:23:59 give them numbered names :) 21:24:17 No names (they use numbers), and file structure is simpler. 21:24:59 what is this used for? 21:25:44 Well, it can be used for pretty much anything you want. 21:25:48 I can give examples of how GEOS used it. 21:26:04 * kc5tja is thinking of using it to write my mail client with (keeping its internal database in a VLIR file). 21:26:16 And I can't imagine why I wouldn't use something similar on the Kestrel either. 21:26:53 Basically, any time you have a lot of smallish objects with lots of interdependencies, VLIR files can be very handy. 21:27:06 OR, if you are trying to keep memory consumption down, and you need to swap data in and out of memory a lot. 21:27:27 (although my first versions of the library probably won't include swapping support; you'll have to do that yourself if that's what you want.) 21:28:26 In fact, GEOS for the PC actually extended the VLIR concept into what's known as "VM Files." 21:28:27 ok 21:28:31 A VM file is a virtual memory file. 21:28:39 Keep in mind that GEOS ran on 8086 machines -- no MMU. 21:28:52 Yet, it regularly swapped objects in and out of memory space on behalf of the application, and was *FAST*. 21:29:11 i remember using geos on a 386 21:29:15 it was snappy 21:29:21 Opening a document meant switching to that VM file. It's like switching the whole address space of a process to a new state. 21:29:34 cool 21:30:02 I was thinking more and more about this, because of reading up on the history of the Macintosh, its OS evolution, hardware evolution, etc. 21:31:12 I was going to base the file architecture on FAT, but instead of managing individual clusters, I was going to manage whole extents. 21:31:22 I don't need anything super sophisticated. Especially for a v1.0 release. :D 21:31:30 yup. keep it simple. 21:31:57 I am thinking of writing it as a library in C, then providing GForth bindings for it (of course!). 21:32:09 This way, i can write my POP client in Forth. 21:32:20 you could write the entire thing in forth 21:32:31 It won't be usable by others. 21:32:45 I mean, for the Kestrel version of the software, of course, it'll be re-written. 21:32:51 But for Linux, it really ought to be written in C. 21:34:04 Although, there is an advantage to writing a library in Forth too -- it can be used on Forths that cannot link to C libraries. 21:35:07 make a forth that can output ELF .so's :) 21:35:46 slava: My target compiler currently produces statically linked ELFs. It's not terribly hard to put out dynamically linked ELFs. 21:35:51 However, this doesn't get me anywhere. 21:35:54 It'll be for x86 only. 21:36:01 true. 21:36:04 Not very useful 21:36:53 --- quit: ASau () 21:41:03 I just think it's high time to start writing some serious applications in GForth, and start publishing them. 21:41:13 Well, Forth in general, for that matter. 21:41:32 yup. 21:41:46 Writing my Kestrel emulator in GForth was one of the biggest things I've ever done in my entire life with Forth. 21:41:52 And it took me mere days to write. 21:42:00 i intend to use factor to develop various web apps, of various 'seriousness'. 21:45:41 I've learned that structuring my Forth sources into block-like entities works very well. 21:45:50 os1.ef demonstrates that very nicely. 21:46:19 Which only further demonstrates just how false it is to say that Forth isn't modular. 21:46:27 who says this? 21:46:33 Like I said before. 21:46:41 Everyone who has a chip on their shoulder against Forth. 21:46:50 every language has its detractors. 21:47:03 Any fan of "structured" programming languages, like Pascal, Oberon, C, even some BASIC people. 21:47:25 yeah, but there has, to date, been no concerted effort to counter-pose the argument. 21:48:07 that reminds me -- in forth, there is usually no checking for misplaced if/then begin/again and such 21:48:08 I honestly, seriously think my os1.ef project (Kestrel's first OS, hence its name) the first real evidence of the falsity. 21:48:17 or if you mis out a ; before the next : 21:48:21 is this a problem in practice? 21:48:54 slava: There is in many ANSI compilers. However, in practice, it is rarely an issue. I had an issue yesterday, before releasing 0.1.9. But it was only one line out of . . . quite a few. :D 21:50:47 having really short definitions really helps keep things like that in check. 21:51:04 This is why I strictly adhere, and actively advocate, one-line-one-definition. 21:51:16 i usually end up with 2 lines: 21:51:19 : foo ( comment ) 21:51:28 \ comment 21:51:32 definition ; 21:51:34 If I violate that rule, it's because I felt that breaking it up would ruin comprehension of the concept. 21:51:35 that's 3 lines oops;) 21:51:41 I usually do something like this: 21:51:50 \ foo ( a -- b ) description 21:51:52 : foo .... ; 21:52:11 Although I did experiment with Smalltalk-style in my Kestrel simulator and assembler. 21:52:18 \ foo ( a -- b ) description 21:52:20 : foo 21:52:22 ..... ; 21:52:36 BUT!!!!! 21:52:42 To me that is still only one line!! 21:52:42 i have trouble coming up with good word names sometimes. 21:52:59 That's another area I tend to simplify beyond belief. 21:53:31 Unless I'm authoring a word as part of a publically callable interface, I just name the word after the concept in question. 21:53:34 For example: 21:53:43 : digits ...convert digits or whatever... ; 21:53:53 : field ... digits ... ; 21:54:05 Never mind the fact that i probably have another word defined elsewhere, also called "digits". 21:54:29 The fact that digits appears so close to "field", and is obviously being used by it, dictates that digits is pertinent to the use of field. 21:54:47 (Note: this hides the previous definitions of digits, thus achieving yet more modularity -- encapsulation!) 21:55:37 You can also usually recognize public from internal names: public names tend to be longer and more descriptive/suggestive without its surrounding context. 21:55:51 internal names *depend* on its immediate context to make sense. 21:56:16 Example: when rendering a character in Kestrel's ROM software, I have a definition that is basically like this: 21:56:16 have you ever used any OOP library in forth? 21:56:21 Never. 21:56:25 I've never had a need for one. 21:56:44 : draw frameBuffer #, 8lines ; 21:56:51 : 8lines l l l l l l l l ; 21:56:56 : l ...draw a single line... ; 21:57:23 (oops, posted that in reverse order. But you get the idea) 21:57:27 yu[. 21:57:31 i mean yup 21:57:33 : EMIT ...etc... draw ...etc... ; 21:58:05 i am forced to use multiple vocabularies to achieve the same effect, since my : redefines a word if it already exists, it doesn't create a new definition 21:58:13 * kc5tja nods 21:58:40 Yeah, I should grep my sources to see how many times I redefine "l", "r", "c", etc. :) 21:58:46 heh 21:59:07 i find it convinient being able to reload one source file after making changes to it, and having all existing uses of those words use the new definitins 21:59:21 But I mean, if I just posted a definition for : l ... ;, people would freak out on me because 'l' is undescriptive and cryptic. 21:59:48 But in the context of 8lines, well, that's more descriptive, and within the context of "draw", it's even more descriptive. Oh, then we see that draw is called by EMIT, and well, that clinches everything. 21:59:57 yup. exactly 22:00:05 And since they're all on the same screen, easily within 25 lines of each other, it's trivial to figure this out. 22:01:06 If one wants to examine illogical indecipherability, look no further than Perl. One "word" is all that needs to be said: qw. 22:01:21 What the *HELL* is qw? And why is it important? 22:01:21 haha 22:13:03 kc5 - Perl shamelessly requires that you memorize such things =) and it can mean 'quote words', if you like. 22:22:02 ayrnieu: That is the first time I've ever heard of a rational explanation for what it means or does. 22:27:55 --- join: lalalim (~lalalim@pD95EAE40.dip.t-dialin.net) joined #forth 22:39:42 --- quit: lalalim_ (Read error: 110 (Connection timed out)) 23:17:37 I'm off to bed. 23:17:44 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:26:34 --- nick: TomasuWork -> Tomasu 23:26:37 * Tomasu is back (gone 26:05:37) 23:43:57 --- quit: Sonarman ("leaving") 23:47:13 * Tomasu is away: dlrrp 23:47:18 --- nick: Tomasu -> TomasuDlrrp 23:59:59 --- log: ended forth/04.07.13