00:00:00 --- log: started retro/10.02.13 02:11:20 --- quit: probonono (Ping timeout: 240 seconds) 02:12:07 --- join: probonono (~User@unaffiliated/probonono) joined #retro 04:33:00 --- quit: crc_work (Ping timeout: 260 seconds) 04:38:19 --- join: virl (~virl__@chello062178085149.1.12.vie.surfer.at) joined #retro 05:01:08 --- join: crcz (~Administr@216.1.43.130) joined #retro 05:01:08 --- mode: ChanServ set +o crcz 08:42:17 --- join: crc0 (~crc0@bespin.org) joined #retro 10:14:31 --- join: random100 (~random@p5486E8F8.dip.t-dialin.net) joined #retro 10:14:34 hi 10:15:49 I'm trying to define a word, that works like ":" but inserts an additional check for checking whether the stacks contains enough items to execute that word 10:17:01 : def create , ??? , does> dup @ depth > if cell+ execute else ." Stack low." ;then ; ( my "idea" so far ) 10:17:11 1 def square dup * ; ( an example ) 10:18:17 ( I wonder how to replace "???" -- in ANS Forth I'd use "noname:" I guess ) 10:18:56 any ideas ? 10:20:03 ( cell+ is defined like ": cell+ 4 + ;" ) 10:25:32 ( don't bother if you got "serious stuff" to do ) 10:39:14 is this rather a task for a word-class ? 10:54:38 --- quit: SimonRC (Ping timeout: 265 seconds) 11:04:29 --- join: SimonRC (~sc@fof.durge.org) joined #retro 11:16:10 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 11:16:20 --- quit: erider (Changing host) 11:16:20 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 11:17:23 crcz: how is a if foo || bar done in forth 11:20:07 --- join: Mat2 (~5b40e948@gateway/web/freenode/x-oeztqefrkzvvnyqo) joined #retro 11:20:12 good afternoon 11:22:01 hi 11:22:25 hello random100 11:22:47 foo bar or 11:22:50 erider, 11:23:41 Mat2, maybe you got an idea how to solve my "problem" ? (don't bother if you got serious stuff to do - I'm just having fun) 11:24:01 waht problem ? 11:24:04 whast 11:24:06 what 11:24:30 I'm trying to define a word that checks whether "the stack contains enough items to execute that word" 11:24:35 i.e. 11:24:48 2 1 add ( works ) 11:24:55 I am not sure that will work because I am not looking for a bitwise operation 11:25:35 1 add ( if add requires two items on the stack and "1" is the only one, will not work ) 11:25:36 check for the word returning the number of elements on the stack (at vm level simply the stack offset) 11:25:59 erider, hm, what are "foo" and "bar" ? 11:26:29 my idea so far is 11:26:44 : def create , ??? , does> dup @ depth > if cell+ execute else ." Stack low." ;then ; 11:26:54 | != || 11:26:55 "???" is "the problem" 11:27:23 erider, yeah 11:27:33 || 11:27:40 foo if bar if ... ;then ;then ... ? 11:27:49 oh stupid 11:27:50 hmm there looks like an extra space 11:27:52 || ... hm 11:28:20 erider, do you need the "short-circuiting" ? 11:28:34 random100: look, the number of elements on the stack is returned by depth in ANS 11:28:44 Mat2, yep 11:29:15 so your word needs just check up depth and execute conditionally 11:29:56 yep 11:30:04 but I want it "automatically" done 11:30:12 in retro this can be accomplished though defining a word class 11:30:24 yeah, thought about that also 11:31:08 the rest is a design problem, e.g. if you want to create classes for every possible stack depth or handle this dynamical at run-time 11:32:56 Mat2, I think my question is rather: how to "anonymously" define a word 11:33:43 like noname: in ANS Forth 11:34:14 Mat2: the port forwarder is working 11:35:01 erider: good to read, what was the problem (I expect some reva related bug) ? 11:36:22 random100: if you want to implement closures ? 11:36:39 Mat2, kind of I think 11:37:46 Mat2: reva+netcat had some issues 11:39:24 Mat2: I had to add to the net/sockets library to get more functionality because they have the sockaddr structure hidden in the context and I need to be able to access the structure so it was causing probelms 11:41:47 random100: one way (which is easy to implement) would be to creating a vector [mostly named (noname)] pointing to last and compile like colon definations but without dictionary header 11:42:44 the drawback is: nesting closures isn't possibe and it don't work for retroforth 11:43:06 and I'm trying to use retroforth .. hm 11:43:17 sorry, i mean here NOT last 11:45:05 you can decompile the conditional code (if, then, else) with see and compile closures as generic conditionals 11:45:23 (decompiling to see how there are implemented) 11:47:02 ok, I guess I got an idea 11:49:45 using [ and ] for closures, [ can just compile a jump and save it's start address in a temporary variable, ] then patch it's address to ip+1 11:50:30 leaving the start adress of the closure on the stack 11:50:41 so the closure can be called with execute later 11:50:51 address 11:51:50 for example 11:52:07 except for "[" being already in use 11:52:15 yes 11:52:23 and { } also 11:52:36 !" "! aren't 11:53:26 ok, thanks :) 11:53:44 personally I prefer :: and :; 11:53:52 why that ? 11:54:44 does not matter -- sorry 11:54:47 :: is an alternative word name for :noname (or noname:) 11:54:54 ok 11:56:21 Mat2: you use forth for embedded devices? 11:57:26 for some 8 bit computers, yes (6502, mc6809, Z80) 11:57:29 hm, what is the instruction for an unconditional jump ? 11:58:15 Z80 is gameboy right 11:58:31 random100: 8: jump 11:58:42 see http://retroforth.org/pages/?NgaroVm 11:58:49 Mat2, ok 11:58:51 thanks 11:59:12 erider: the gameboy uses an slightly extended z80 clone as cpu 12:00:04 (I think the color also does ?) 12:01:31 think yes 12:03:15 how do I use literals ? 12:03:15 Mat2: I would like to talk to you later about embedded devices but it can be later 12:03:44 random100: try this, 12:03:55 : test [ 1 , 100 , ] ; 12:04:03 compiles to: 12:04:08 nop 12:04:09 nop 12:04:11 lit 12:04:12 100 12:04:15 ; 12:04:25 k :) 12:04:36 [ 1 , 8 , ] <-- jump ? 12:04:44 hmm, no 12:04:51 :( 12:04:56 8 , 12:05:09 ah, ok :) 12:05:21 of course 12:05:29 there is an assembler for ngaro somewhere in the repro 12:07:09 erider: ok, I will be back in two hours because the next benchmark (fib) wait to be completed 12:07:19 bye 12:07:32 * random100 also leaves 12:07:35 and I will begin with the retroforth port to nAvm 12:07:50 --- quit: random100 (Quit: Leaving) 12:08:08 ciao later 12:08:37 --- quit: Mat2 (Quit: Page closed) 12:27:10 --- join: random100 (~random@p5486E8F8.dip.t-dialin.net) joined #retro 12:27:31 hm ... how do I use repeat ... again ? 12:27:57 : foo 10 repeat -1 dup 0 < if dup . again ;then ; ( does not work ) 12:28:02 --- join: vaporatorius (~vaporator@191.Red-81-34-126.dynamicIP.rima-tde.net) joined #retro 12:28:06 hi 12:29:50 (ah.. of course, I'm not supposed to use repeat there ... ) 12:30:15 hi 12:31:58 I'm just not supposed to become a forth-user :) -- have fun -- good night 12:32:04 --- quit: random100 (Quit: Leaving) 12:44:36 howdy 12:52:51 --- join: Mat2 (~5b40e948@gateway/web/freenode/x-ivijnwqecmnjgryq) joined #retro 12:53:00 hello again 12:55:38 hi Mat2 12:55:52 hi docl, what's up ? 12:56:13 * docl has been intending to do more forth now that it's the weekend, but keep getting distracted 12:57:10 just watched a 32-part youtube series on creationism 12:57:45 hmm, ok i'm understand that you are distracted 12:58:41 but why have you watched it ? 12:59:02 well, once I start something I tend to get in a sort of trance where I have to complete it 12:59:33 also the guy doing it was really good at presenting a scientific worldview 12:59:59 I converted from creationism just a few years ago 13:01:29 I probably would have given up partway through the first video back in the day. when you believe something it is not fun to have it poked fun at. 13:04:02 this is an anti-creationism series I'm talking about, in case I didn't make that clear 13:04:42 scientists also believers -> believers in the scientfic he scientfic 13:05:02 ahm scientific theory of knowledge 13:05:06 true 13:05:19 but that's a different sort of belief... 13:06:49 hmm, I think no both represents a religious attitude 13:07:15 if you believe in something of a generally religious nature, it is most likely motivated by various psychological factors. for example desire to please one's religious peers (or in my case family members). 13:07:58 other motives would be the sense of personal satisfaction it causes, or a desire to avoid punishment after death / achieve a reward after death 13:08:11 believe me, scientists can be very dominated by psychological factors .... 13:08:20 true 13:08:37 but science is motivated largely by a desire to conform to the physical evidence 13:09:26 the *essence* of science is to conform to physical evidence and ignore subjective psychological factors entirely -- although it may not always play out this way. 13:09:32 yes, exactly that's religious -> there believe in some kind of objective reality 13:09:57 I don't think "belief" can really be fairly applied to the opinion that there is an objective reality of some kind. 13:11:06 it is impossible to coherently concieve of an existence without such a thing 13:11:32 that's only an spect of logic 13:12:40 hmm 13:13:00 well, the objective reality of the situation might be other than the reality observed via science I suppose 13:13:22 for example there could be a computer simulation that causes everything to happen 13:13:40 the laws of physics would thus just be programming, rather than actual laws 13:14:12 but the laws of physics, causality, etc. still hold true with remarkable consistency 13:14:33 an objective view is always related to axiomatic definations, which can't be proved but must be taken so every objective definition leads at last to a circle cause 13:14:56 so as long as you are restricting the question to observable reality (since the supercomputer would be unobservable) the scientific model is still 100% correct 13:15:15 hmm 13:16:16 that's the reason why quantum mechanics is only able to describe the reality in statistical terms 13:16:31 I think what that kind of philosophical paradox really boils down to is a language-based loophole in our minds... one part of the brain describes things in a convenient, pragmatic way whereas the other evaluates strict logical definitions 13:17:05 from a pragmatic viewpoint, the sciences such as physics, chemistry, biology, etc. are a 100% accurate description of reality. 13:18:07 and that holds true even if we are computer simulations, or part of God's imagination, or *whatever* remaining alternatives there are that might be the case for nonmeasurable reality 13:19:08 it's kind of like how newtonian mechanics is a completely valid description of how things operate at the scale of most mechanical devices, planetary orbits, etc. 13:19:51 but einsteinian relativity kicks in when you have significant gravitation or velocity approaching c 13:20:05 and quantum mechanics kicks in when you measure subatomic particles 13:20:17 look, newtonian mechanics doesn't match reality to be useful and provable 13:20:26 those are things that aren't measurable in the newtonian range and are thus of no practical use for such things 13:21:18 exactly -- it doesn't have to match *all* reality -- just *measurable* and *relavent* reality 13:21:46 I mean it isn't logic at all to assume that one theory must be related to some kind of reality to be determinable and provable 13:22:05 what do you mean by that? 13:22:25 newtonian physics is related to the kind of physical interactions that are easily measurable 13:22:51 that in turn makes it easily provable using that kind of physical interactions 13:23:31 QM is measurable, using more sophisticated equipment 13:23:40 the simulation hypothesis is not measurable at all 13:24:21 one example: The cyclic way do determinate planetary orbits in the middle age was more accurat than the erly heliocentric theories of keppler etc. 13:25:06 (at least the "perfect simulation" hypothesis is not... a less than perfect simulation might have measurable proofs like a rounding of pi at some point) 13:25:31 hmm 13:25:35 both are able to describe planet movements and both was proven 13:26:21 the planetary orbits dip into general relativity a bit, e.g. with mercury's precession 13:26:54 of course, the big issue was figuring out that an orbit could be an ellipse rather than a circle 13:27:30 what I mean is: The defination of reality from both was completly different but both was able to describe the same objections 13:29:40 but heliocentricism involved fewer extra variables 13:30:08 so it met the critera that has come to be known as occam's razor 13:30:29 if you don't know the general conext you are not able to decide which corresponds to reality and which not 13:30:42 hmm 13:30:58 that's generally true 13:31:13 occam's razor is a statistical method 13:32:53 in forth, we try to make well factored code 13:33:01 it's more beautiful if it is simpler 13:33:22 yes but this is an analogy 13:33:24 this is similar to occam's razor 13:33:28 sure 13:33:40 and analogies can't be proven, only postulated 13:33:47 hmm 13:33:54 are you saying this is a bad analogy? 13:34:03 yes 13:34:35 ok, our context is ptolemaic versus copernican models of the solar system right? 13:34:50 which one took the most entities to describe? 13:35:26 or I should say, which one needed the most additional mechanisms to fit with the observed reality? 13:36:00 my point is, if you postulate some kind of objectivity you must descripe at last two axioms which must be declared as true 13:36:08 describe 13:36:35 such as? 13:36:57 some kind of object 13:37:14 a relation between objects 13:38:12 and you are saying that assuming these two axioms are true is the equivalent of a religious belief? 13:38:52 you must believe that there are true because you can't prove that there are 13:39:29 moreover as these axioms are the base for every argumentation 13:40:03 these are analogic functions to the object description 13:40:44 there exist no logic which can proven analogies 13:41:15 so you must believe that there are true 13:41:33 and that is a double circle cause 13:42:08 hmm 13:42:29 so the whole scientific theory is irrational 13:42:42 --- join: Raystm2 (~1808e8d4@gateway/web/freenode/x-atxgvulonuvtoruj) joined #retro 13:42:48 hi Ray 13:43:01 HEY Mat2 'sup my good man? 13:43:10 I am still struggling with the concept that someone in their right mind might deny that there exists an objective reality, i.e. at least some objects and relations between them, of some sort. 13:43:15 hi Raystm2 13:43:37 hi-de ho good neighbor. 13:43:59 I don't know what 'sup mean but i'm fine, thanks 13:44:14 Mat2: no religious system -- or system at all -- can exist which coherently and consistently denies the existence of an objective reality of some sort 13:44:28 'sup is short for " 13:44:31 what's up" 13:44:35 ah ok 13:44:55 Ray: working on porting retroforth to my now vm 13:45:00 new 13:45:30 docl: buddhism for example denies reality at all 13:45:31 'sup is chat for "What is up" which is short for "What activities and conversations are being currently enjoyed by the collection of people gathered here previous to my own personal arrival." 'sup is shorter. lol :) 13:47:19 docl: quantum mechanics denied reality also (because real is only a statistical approximation of an time seperated process) 13:48:20 for relativists, all is real, for pan-entheists reality can be real 13:48:40 or will be real by defination 13:49:12 docl one can not only deny that there is an object reality, but there appears to be absolutely no real way to prove the contrary-- that is, no one can prove that what they are experiencing is actually happening outside their own mind. We all agree that this supposition total Male Cow Pucky, but one can not use the Scientific Method and achieve a debatable, supportable answer to the question. 13:50:03 brb 13:52:34 Raystm2: that is only because the scientific method is excluded by definition. without objective reality to be tested, the scientific method would be useless. 13:52:49 often, one forget who these realists and pan-entheists and the history that they used to come up with their suppositions. 13:53:19 trying to propose a level on which this question (whether OR NOT objective reality is objectively real) strikes me as ludicrous and self-defeating 13:54:15 it holds an implicit assumption of its own -- that such a question could somehow be meaningful, that there is a meaningful way to map such a question to the real world. there is not. 13:54:17 Politicians are 180deg from scientists, even political scientists don't use any real science, they use gut, which is very nearly always wrong in situations more complicated then "save me at this very moment". 13:55:03 it's similar to how you can't just say "can an omnipotent being create an object heavier than it can lift" 13:55:08 docl, remember, those useing those arguments are looking for bedrock to place the rest of the arguments, and the rock can not be found. 13:55:30 it's a meaningless paradox -- we can parse it incorrect english, but it does not correspond to valid logic in any way. 13:56:08 *in correct 13:56:44 this really just points to the limitations in our own linguistic-logical processing units, not to a fundamental flaw in reality itself. 13:56:47 your point is excellent in the face of unscientific politicians. 13:57:19 lol by definition you can "say that' and it can be true and also false. :) 13:57:32 back 13:58:03 This Sentence Is False. 13:58:19 This Sentence Is Misleading. 13:58:20 :P 13:59:12 --- join: hyazinthfuchs (~hyazinthf@port-92-195-6-193.dynamic.qsc.de) joined #retro 13:59:45 it's all a "Sigh, defect, of a side effect of a side effect." reading meaning into any of it is a personal quirk. 14:00:00 docl: You can always solve paradoxons though the dialectic method (read Hegel) 14:00:11 I understand the motive to question objective reality, it's sort of in the principle of questioning everything. Since science questions everythiing, failure to question the existence of reality seems unscientific... 14:01:02 the odd thing is that most everything else provides a pat standard answer, save for the most important questions that happen to support the whole. 14:01:26 but objective reality is already a part of the scientific method. once you've gotten to the point of questioning everything you have to have already gotten past the whole "do we or don't we objectively exist" thing. 14:01:53 And in the face of Uncertanty Principle... Gosh just proving that something exists or something moves, we know they do both but can't prove it ... 14:02:35 trails off. 14:03:36 in this chat, we all KNOW you touch a keyboard that you never touch. 14:03:41 * docl doesn't have a problem with asking philosophical questions and turning your brain into a pretzel, only taking it seriously ;) 14:04:52 Pass the salt. ( had to pass up the beer. ) 14:05:06 also pass the assault. :) 14:05:17 (defun reality (x y) (cons (x T) (reality ((car (y)) (cdr (y))))) 14:05:18 * docl passes a battery to Raystm2 14:05:35 lol I gotta charge outta that. 14:05:37 now you can have a salt and battery 14:05:57 you are a very punny ferson. :) 14:07:32 * docl has decided to learn C this weekend 14:07:50 * Raystm2 is reminded of the famous "Network News" scene -- "I'm a person --Damn it!" "I'm mad as hell..." 14:08:04 I'm tired of not knowing it.... 14:08:33 it seems ubiquitous. even people who love alternative languages tend to write them *in c* 14:09:00 I use C only as platform independent assembler 14:09:04 reading http://www.iu.hio.no/~mark/CTutorial/CTutorial.html 14:09:22 I did my c stuff more then 10 years ago. 14:09:48 used the Coranado Tutorials and help to turn them into something they could charge for. 14:10:22 docl: better learn something more modern like D 14:10:25 It was maybe the first free tutorial on c that was available on the early "veronica-archy" web. 14:11:29 *Mat had learned C with small-C for cp/m + 14:13:05 * and think's it's one of the ugliest languages avariable with exception of pl/m 14:13:35 but is any other language as widely supported as c? 14:13:50 sadly no 14:13:58 seems to be the most cross-platform language with any significant power out there 14:14:38 hmm with exception of Ada I think, yes 14:15:38 people write compilers for c for every machine. In Forth, one has to actually know what they are doing at the level of a compiler. a person that can port c compilers could also port forth at a whim. 14:16:18 the paradox here is... 14:16:46 if you know what to do as the compiler you could be forth. BUT everyone you know does not know how to be a compiler so you provide them one. 14:17:22 Ray: tht's not the case for token threaded vm interpreters whcih can be implemented in every language of choice without much problems (other than performance) and can encapsulate the lower-level details 14:17:45 um, I think you just said compiler. 14:17:57 hmm, yes 14:18:02 sorry 14:18:09 hehe paradox sorry. 14:18:23 compiler part of the interpreter 14:19:21 writing efficient vm's in C is a very hard task though 14:20:22 right. if you know how to do that, then you don't need the structure, you are the structure. but this obviates convenience, which is the entire purpose of the computer to begin with. A compiler is a convenience and even forth programmers use convenience, infact every word is a mere shortcut or convenience for some other task you could actually, possibly very slowly and innacurately, do yourself. 14:22:18 Mat2: i have to agree with your last. Hard task. This supposes that we some how know how the thing is to be used. 14:22:40 which drives a demand for a general usage version. 14:22:49 it's all about factoring as the forth vm can be seen as general abstraction for specific processor architectures. 14:22:55 something trying to "be-all" to everyone 14:23:19 Now there ya go with another excellent point. 14:24:20 the quastion is: how general can a vm be left to be efficient ? 14:24:26 question 14:24:29 from usage statistics, we all know how to use forth, right? we know that at least one man has spent MOORE then 40 years reducing programming problems of his own and others into a very tiny group of words that can be built apon to provide everyting else. 14:25:52 That man has generalized every kind of computer problem known into a smallish group of words. Those words are HIGHLY portable. 14:26:06 dup is not even one of them but ?dup is. 14:26:14 swap is not one of them. 14:26:17 drop is. 14:27:27 yes, so the underlying vm don't need to be portable (because it is so small it can be ported quite easy for differnet cpu's in assembler) 14:27:34 Now this same guy is taking it another level and providing a machine that represents the word-ideo-grams in physical machinery. 14:28:17 right, agreed, I believe that is the very definition of a vm as I understand it 14:29:08 so a vm in C have the advantage to shorten this effort even more (only recompilation needed) 14:31:25 one only writes c AFTER researching that the c answer is not easily avialable. To program properly one is to reuse what has been done. If one goes directly to writing someing on there on, well that's called a personal research vehical. Everything has already been done. The VM you want to write already exists and the proper c programm writer goes to look for those "already-dones" first. 14:32:47 one searches for the library, or re-invents the wheel. both are challenging and rewarding. 14:33:41 exact but that isn't the goal. It's a porting vehicle for retroforth and other dynamic languages which can't be implemented in an efficient way. I have tried this (LLVM, Erlang VM, LibJIT, gnu lightning etc ...) 14:34:31 there's a demand for a generic low-lebel vm designed for supporting dynamic languages 14:34:37 retroforth it'self is a porting vehical for retroforth. Lol that's what you are doing, isn't it? hehe I get it. 14:34:55 is there? 14:35:01 I was not aware. 14:35:18 yes, LLVM generate quite impressive bad code for a forth like vm 14:35:38 dynamic has no official meaning for me at this point in our conversation, I must find a definition for it. 14:35:54 * Raystm2 llooks up llvm 14:36:34 http://www.iolanguage.com/ <- extrem dynamic programming language 14:36:51 all definations are created at run-time 14:36:59 and modificable 14:37:26 Pascal, C etc: statical language -> all definations are created at compile time 14:39:04 colorForth is HIGHLY dynamic in the face of your definition of dynamic here. Chuck's earlier chips provided c using a forth machine ( not virtual but a real c compiler written in forth ) 14:39:18 should I add a forum for low-level vms on my site, I wonder? 14:39:29 that c compiler was extended to provide Python. 14:39:48 one could write all three and the chip was fine with it. 14:40:07 docl: Would be nice 14:40:09 forth provides llvm so yes, I would agree. 14:41:56 the author of helforth had once tried to impkement a forth on top of llvm and it was a mess 14:42:02 implement 14:42:03 As an extended example of much said in the last few paragraphs, there are those that wish to run colorForth for one reason or another on machines that it is not known to be ported too, except that those ports DO exist, and are just not found. 14:42:28 sure 14:42:31 I don't know the particulars about that but I'm not surprised. 14:42:48 *Mat had designed his current vm with languages like colorforth in mind 14:43:13 colorForth most likely appreciates your efforts. :) 14:43:37 unfortunetly for colorForth this is taking it just a step too far. 14:44:08 it is the virtual machine and the education you get for provideing one that runs it, is the education you needed to run it with out it. 14:44:14 does that make sence. lol :) 14:44:44 So, I personnaly applaud your vm effort. 14:45:02 what you will learn will help you when you don't need the vm but want to work at that level. 14:45:47 AND you will also provide a vm that will help others get to that level as well. 14:45:54 very good project in my estimation. 14:46:04 educational 14:47:32 I was poking fun the other day at crc by my saying that retroforth is bloat ware. but from my perspective as a colorCoder, everything is bloatware. 14:47:52 even my own prgrams. 14:48:15 I come back to a program I've not seen in a while and gosh if I can't factor out more then two words every time. 14:49:15 My chuckBot program started out as proof of 1% the pascal or C or Python coded Karel the Robot. NOW it is 1/4 the size ( after 8 years ) of the original 1%. 14:49:27 hmm, look one feature of my vm is: You can generate vm-code and interpreting it. You can also compile it to native code at run-time without difference. You can embedding vm-code into C without problems and compile an interpreter or compiler without modificating the source-code 14:50:00 sounds like a vm to me. 14:50:44 so after my retroforth oport is finished i'm able to compile differnet interpreters or binarys form the same source 14:50:57 for differnet platforms for example 14:51:02 different 14:51:23 I turned that robot program written in about a hundred thousand lines of c sitting in an os of millions of lines of code, into a program that can run naitive with just less then 100 system wide definitions. 14:52:12 crc does a bit of that now when he creates all the versions that he does. He has a vm. What's it called? Ngaro, in the Toka language also his invention. 14:52:52 I will also be able to compile an interpreter or JIT compiler which will run on bare metal 14:53:13 that's where I live. ON the bare metal. 14:53:30 the point is: I don't need to change one line of code for this 14:53:55 and my point is, I will never need ( sorry, nothing personal, ) your vm. 14:54:03 that's fine 14:54:08 hehe :) 14:54:09 BUT 14:54:36 I will read it, learn it and learn from it and it will be a great resource for such stuff because you did it. 14:54:53 that's also fine :) 14:55:57 --- quit: hyazinthfuchs (Quit: hyazinthfuchs) 14:56:59 the vm i'm working on will be used for an project which needs incorporation of more than one language (Forth, TCL, IDL, Haskell) for calculation of data for 3d modelling in a heterogenous network 14:57:06 It will be a great learning experience for both of us, if you share. :) 14:57:46 http://rapiddatabase.assembla.com/wiki/show/navm 15:07:51 /ns identify cabrera 15:08:31 erider: ??? 15:08:40 hi erider, you put a space and not you need to change your password. 15:08:46 not == now 15:08:55 I know lol 15:10:05 i did that once, never changed the password ( now everybody knows and can grep it ) and have not suffered for it as far as I can tell. 15:10:27 Raystm2: just don't use the same password for you bank account or whatever 15:10:42 don't use online banking at all 15:10:43 that's correct! much agreement. 15:10:51 THAT TOO! 15:11:38 how would I pay my bills otherwise? 15:11:47 lol. 15:11:51 lol 15:12:04 its a irc password 15:12:28 but I changed to feel good about it :) 15:12:43 like they did in the old'n days, you know, pre-1984, in post or in person or over the phone in a call that YOU innitiated. 15:13:39 I thought it said Canberra at first, which is where my flightgear simulated airplane world tour just happens at. 15:13:53 happens to be at. sorry. 15:15:32 mat2, that's what I'm doing. I'm learning flightgear so I can take the recently publicly distributed colorForth chip simulator and turn it into an autoPilot simServo and maybe even into the autoPilot itself, proving a real usage for the device with "human" lives in the balance. 15:15:57 brb /me needs to check his update 15:16:05 --- quit: erider (Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558]) 15:17:07 --- join: erider (~chatzilla@pool-173-69-160-231.bltmmd.fios.verizon.net) joined #retro 15:17:20 --- quit: erider (Changing host) 15:17:20 --- join: erider (~chatzilla@unaffiliated/erider) joined #retro 15:17:23 the uptake is, when I'm done, I'll have a sellable, workable, example of a usage of the real chip irw. 15:17:38 wb :) 15:17:54 Ray: I think this is a good effort, i'm just a bit sceptic about the marked acceptance of the cpu's 15:18:07 Raystm2: I want to get into embedded devices with forth 15:18:51 really device drivers I want to start learning 15:18:59 We will have to find a way to use forth to program a device that will shrink you down small enough to "get into" the device. humor ( or lack there of ) hehe ;) 15:19:16 I haven't found anything on line to start with 15:19:55 linux. 15:20:06 start with linux if you want to write device drivers. 15:20:26 easiest, softest start that I know of. 15:20:40 erider: you mean a cheap development board or an os suitable for beginners ? 15:20:53 so much has allready been done in linux but so much more need be done. 15:21:13 Mat2: something suitable for beginners 15:21:29 can I get something at radio shack? 15:21:41 you mean a TRS 80 ??? 15:21:41 OH you mean the embedded... 15:21:46 lol mat2 15:21:49 shesh 15:22:02 lol 15:22:07 best ones are found online, best prices, newest devices and features. 15:22:23 Raystm2: ok I can start on FC4 since I have the vm image for testing 15:23:33 lol it's been more the 20 years since i, ( well not actually, i did a few eeprom programs for security, but that's really not the same as ) did any embedded work, and the entire world has changed since. 15:23:36 erider: if you have some money left, the beagle board will be a good choice because of the TI DSP, the Cortex ARM core, the 3D GPU and standard interfaces 15:23:46 Raystm2: linux is fine because it can run on embedded systems 15:24:03 linux runs also fine on the beagle board 15:24:12 there ya go. :) 15:24:16 (as NetBSD which I personally would prefer) 15:24:22 sweet when a plan comes together. 15:24:49 NetBSD is solid 15:25:04 I know them that sware by it, I've never used it. 15:25:09 knowingly. 15:25:17 I just need a good pull with a tutorial and the way we go 15:25:36 Much luck to you, kink person. 15:25:40 dang 15:25:42 kind 15:25:47 not kink 15:25:48 I would like to get into drivers 15:25:57 Texas Instruments support it directly though a wiki, one moment 15:26:20 http://beagleboard.org/ 15:26:47 I have a personal ( what's the word... not vendetta, not mad at them just not happy ) with equipment manufactures not selling the interface to their device when they sell you the device. 15:26:48 Mat2: so know what I have forth on my phone so maybe I can start there it is ARM 15:27:10 you can try retroforth 15:27:36 erider isn't it retroforth on your phone? 15:27:52 wow nice link thanks! 15:27:59 no Raystm2 dsforth 15:28:20 lol have not seen that one yet.... /me searches... 15:28:51 erider: before you start: http://rapiddatabase.assembla.com/wiki/show/avm/Benchmarks 15:29:04 look at the benchmark from crc (iphone) 15:32:12 so for a device driver from within retroforth you can later use nAvm 15:32:33 --- quit: SimonRC (Ping timeout: 265 seconds) 15:36:43 *Mat had finished the recursive benchmark and nAvm seem to beat GCC generated code (so a interpreter beats a optimizing compiler, interesting) 15:36:58 an 15:37:06 hey this is how you make a class ' .fast is .word 15:37:47 no, this is how you reassign a new class to a word 15:38:10 the class code is .fast 15:38:22 Mat2: is the compiler time 15:38:37 that* 15:38:57 * erider has a iphone too 15:39:19 nAvm (40 fib) 13.412s, GCC -O2 16.432s 15:40:20 or hat you mean ? 15:41:48 my completely inefficient fib example for the colorForth movies is faster then that at 45 fib, AND it is accumulating and displaying each step just as fast as it can. 15:41:54 * erider is interested 15:42:50 it's faster then the GCC even. 15:43:00 hey what does .fast do ah the is used to skip nop right 15:44:08 --- join: SimonRC (~sc@fof.durge.org) joined #retro 15:45:12 Mat2: I have HTC CE OS processor SC32442-400MHz wm6 Pro phone that can be used to test on 15:45:25 nice. 15:46:32 erider: It would be fine if you would run the benchmarks for retroforth and nAvm on your device. That would help me for optimizing the interpreter better 15:47:25 Ray: I have an version which is similar to the colorforth version you mention and I bet it would bet colorforth 15:47:55 oh, someone here asked about more info on greenArrays chips and I just wanted to say that I have followed up that question with an e-mail to the company and am expecting a response. 15:48:04 because the current bench don't use any accumulator 15:48:20 Mat2: what do I need to get started 15:48:21 May have been foucist 15:49:23 erider: at first you need the sources for retroforth and a linux box with gcc for cross compiling 15:49:52 ok I have the linux 15:50:13 you must cross compile retroforth 10.4 for your phone 15:50:31 tthe same for the sources of nAvm 15:50:36 lol sorry sorry. I just read the computer that the tests were done on and mine is faster so the speed of FIB compare is not fair. 15:50:48 read the list of computers used to do the tests. 15:51:35 my code could verywell be slower on those machines. 15:51:39 ok 15:51:42 gosh I hope so. 15:51:57 I have retroforth on my linux box 15:52:36 erider: hmm, so the best would be to test it first at your linux box. What are the specs ? 15:52:42 There's a pill for that now. lol -- is the rest of that joke : 15:53:44 sorry, but what means: pill for that ? 15:57:00 erider has retroForth on his Linux Box. If someone where to read this, and was NOT a programmer ( highly unlikely but it happens, as my wife says hi often here ) then my statement of "Pill for that" in context causes humor to make retroforth a "condition needing doctoring" and a linux box "a part of the body with that condition". It's not funny if it has to be explained. Humor is often lost on programmers. That's why I find it funn 15:57:04 as the best medicine. 15:59:15 it could also be something that needs to be washed off, as in Yikes I got Ketchup on my WhiteShirt. Change the nouns, kind of program with intent to be humorus. 15:59:57 ah ok 15:59:58 this is word play. this is what forth programmers do. :) 16:00:11 Mat2: SPECS: AMD Athlon 64 processor TF-20(1.6 GHz) 3 GB ram Linux Mint, gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) 16:00:15 and now we do it in color too. :) 16:01:57 erider: http://trac-hg.assembla.com/navm/browser 16:02:15 you find unter /tests some benchmarks 16:02:33 I will explain you tomorrow how to compile nAvm, retroforth etc. 16:04:31 seems, I must solve a problem at work, see you tomorrow 16:04:33 ciao 16:04:37 --- quit: Mat2 (Quit: Page closed) 16:15:26 Raystm2: so you use cf on linux 16:17:59 crc did I tell you that none of the reva arm examples worked on my phone 16:24:02 are there different classes of arm 16:26:59 Only natively, so that means that tho those particular colorForths were written on linux, I didn't have linux or ANY other operating system other then colorForth when I run those versions. 16:32:10 I always get a bit of a chuckle ( chuck pun not intended) when I see someone say they "want to run colorForth in linux" because I don't really know what a person is saying when they say that. Do they want to make a colorForth out of BASH commands? words that interface with stdio? It may even be meaningless and the person that desires it doesn't quite know. want to run it along side all of the things that linux can provide, i suppos 16:32:13 be easy. 16:32:43 still out. hopefully home in an hour to hour and a half. 16:32:58 will answe questions when i return 16:33:03 hi-d-ho good neighbor. 16:33:12 ahi ray 16:33:40 bad signal here :( 16:33:57 np await your home arrival :) 16:35:41 * Raystm2 keeps fighting the need to plug in the Ubuntu drive, installed but not on the daisy-chain. 16:36:26 lol I could always start it with the cdrom instead... hmm... 16:37:35 yikes I do need to connect it out of normal backup shedual to back up the new colorForth releases and my changes to them. hmmm... 16:50:12 --- part: Raystm2 left #retro 16:54:31 --- quit: foucist (Quit: leaving) 16:54:36 --- join: foucist (~foucist@69.93.127.31) joined #retro 16:54:37 --- mode: ChanServ set +v foucist 17:08:52 crc is your iphone jb 17:25:55 hi foucist 17:30:54 --- join: nizchka (~nizchka@h59237.upc-h.chello.nl) joined #retro 17:44:57 crc can retro expose Microsoft - Windows Embedded CE api 17:49:36 no 17:49:45 not without extensions to the vm 17:50:05 erider: my phone is a blackberry, no need to jailbreak 17:50:15 my ipod touch is jailbroken 17:51:13 erider: there are different ARM chips 17:51:33 and wm may have become more picky about headers, etc since the reva-for-arm cross compiler was written 17:51:43 I thought you had an iphone 17:51:50 nope 17:51:52 ipod touch 17:51:55 and blackberry 17:52:05 ok 17:52:55 I have retro for both devices 17:56:53 crc so it is just a toy without being able to expose the APIs of the underlining OS 17:57:09 erider: that depends on your definition of toy 17:57:50 erider: I *refuse* to work with the raw windows api's anymore. 17:58:04 no access to the phone's functionality 17:58:16 ie sms messages etc... 17:58:19 nope 17:58:26 * crc doesn't care about that 17:59:13 I have a completely consistent environment across the board. That's a nice thing. I can start work on my desktop, do work remotely via the web interface, run the same image on my blackberry or ipod/iphone 17:59:15 --- quit: nizchka (Quit: Leaving) 17:59:29 crc understood 17:59:55 I fully allow for extended ngaro implementations, and extending the image for platform-specific tasks 18:00:08 but I'm focusing mostly on the core, common base platform 18:00:27 * crc encourages forking for specific applications 18:00:28 I know that you are moving towards a web framework 18:01:10 digging more in to the browser's functionality 18:01:29 yup. that's platform specific though, which is why it's not part of the basic system 18:03:06 I understand the 18:03:32 that* 18:03:51 a port of Ngaro to WM could provide FFI via ports or extended instructions 18:04:10 what can retro get out of firefox right now 18:04:14 I'd be open to including such a thing in the main repo, provided all extensions are documented 18:04:20 erider: I don't use firefox much 18:04:42 erider: I can inject javascript and call it, so basically anything javascript can do, retro can do 18:04:52 * crc will be publishing some of this stuff soon 18:08:45 crc I would like to see some retro code that can play with the browser 18:08:50 the would be neat 18:28:05 crc you have an example 18:32:59 nothing uploaded at the moment 18:33:07 I'll get something up shortly 18:33:22 * erider will be waiting :) 18:36:18 erider: as a trivial example: 18:36:25 go to http://retroforth.org/mobile 18:36:36 past this in the input box: 18:36:37 : foo ." click me" cr ; 18:36:43 then hit evaluate 18:36:48 then enter: 18:36:49 foo 18:36:55 evalaute, and click the link 18:39:25 that is cool 18:40:11 the retro mobile is the environment that one would run for the device 18:41:12 it's the most widely supported js implementation at the moment 18:41:27 runs on the iphone, blackberry, mainstream browsers, etc 18:41:35 (not on any version of IE though) 18:41:42 * crc rejects IE completely 18:42:48 cool 18:44:03 crc your evaluate button is weird. you have to hit it in the corner 18:44:08 I'm experimenting with a vm extended to allow javascript to access and call retro words 18:44:24 erider: I can click it anywhere and it works 18:44:38 it's a standard button 18:44:53 no worries I got it 18:45:17 hey if you hit clear display does it forget the dictionary too 18:45:38 no 18:45:44 that just clears the output 18:45:54 same as executing 'clear' 18:46:20 cool 18:46:45 you can use all retro words, so if you want to clear part of the dictionary, use 'forget' 18:47:00 I like this version because I can type stuff in and hit evaluate when I want 18:47:23 can I load a file 18:47:28 erider: no 18:47:34 this has no server-side access 18:47:35 or how big is the buffer 18:48:05 so I have to type the stuff in the evaluation box 18:48:22 how much text will it take 18:50:03 buffer is not capped 18:50:25 I can paste in at least the full metacompiler and core sources 18:51:46 crc it will take a minute to evaluate but it will accept it 18:51:48 cool 18:52:14 if you metacompile it'll take 30 minutes to several hours, depending on the browser and machine speed 18:52:25 but you can't 18:52:41 you can't 'save' the image with this (yet) 18:56:37 --- join: retro-commit (~Karere@c-68-80-139-0.hsd1.pa.comcast.net) joined #retro 18:57:20 * erider is playing with it 18:57:22 [crcx/retroforth] efdbf7: split image file into two classes for j2me port. n... 19:00:55 hmm, the nop-skipping makes a big difference. 19:01:15 metacompiler fully loaded in 9 minutes instead of 20 :) 19:03:07 --- part: foucist left #retro 19:19:01 ok, I'm considering having the metacompiler lock out all the words defined before it once loaded 19:19:33 would this affect anyone? 19:20:00 --- quit: virl (Remote host closed the connection) 19:25:08 it makes the builds much less intensive 19:25:15 http://retroforth.com/paste/?id=1971 - stats with current metacompiler 19:25:32 http://retroforth.com/paste/?id=1972 - stats with new metacompiler 19:29:37 saves 9,980,972 instructions on a rebuild 19:30:21 (current metacompiler uses 19,676,214 instructions to rebuild, new one uses 9,695,242) 19:31:59 back 19:32:32 wb erider 19:32:51 thanks 19:33:01 wow gforth is bloated 19:35:21 1,744 words in the main dictionary in gforth 0.7.0 19:35:27 *1,774 19:35:58 yeah I am seeing that 19:36:06 crazy like the glue 19:37:10 retro has 233 words in the default system 19:38:03 * erider only needs 25 words 19:38:09 tops :) 19:38:14 erider: you'll learn to use more :) 19:38:14 lol 19:38:47 186 are visible by default 19:39:02 crc maybe words from a lib but standard stuff you think? 19:39:34 erider: I've used most of the words in retro in many applications 19:40:02 crc how is value defined 19:40:10 in retro? 19:40:36 reva retro ANS forth or which ever 19:40:53 they should be around the same 19:41:01 not really 19:41:08 retro's is different than ANS and Reva 19:41:13 since mine doesn't parse :) 19:41:32 http://code.assembla.com/retro/git/nodes/library/contrib/values.retro?rev=efdbf76e0fde8f0935d15eb23503696880e7a81f 19:42:54 crc reva then 19:43:23 but : value create 0 , ['] etc .. looks good 19:45:02 reva's is different 19:45:06 relevant bits: 19:45:07 http://retroforth.com/paste/?id=1973 19:45:19 part asm, part forth 19:45:38 the first word in the fist line should be PROC 19:47:42 ok cool 19:47:46 not sure about ANS, but each forth has its own implementation 19:47:47 good to know 19:48:23 I ported mine to reva: http://retroforth.com/paste/?id=1952 19:49:08 using a context and create/does> to simulate the class behavior of retro 19:51:56 http://retroforth.com/paste/?id=1974 is a cleaner retro implementation, using some of the more recent features 19:53:23 [crcx/retroforth] 9c5c4f: cleaner "values" library 19:55:53 crc I need to get more familiar with cmove 19:56:29 no cmove in my reva 19:56:42 crc how do you emulate 19:56:51 reva has 'move' 19:56:56 ( src dest n -- ) 19:57:05 if ((foo || bar)) 19:57:32 retro has 'copy' which does the same as reva's move 19:58:02 crc I don't want bitwise operation 19:58:03 foo bar or if 19:58:25 will the work 19:58:30 that* 19:58:51 assuming -1 for true, and 0 for false, yes 19:59:12 actually it should work for any non-0 being true 20:00:01 though it is bitwise 20:00:48 ok 20:02:01 : || ( ff-f ) if drop -1 ;; else if -1 ;then 0 ; 20:02:08 for a non-bitwise version 20:02:16 I'd just use 'or' though 20:04:39 crc I will just use what you use 20:06:18 crc how do you expose browser APIs 20:07:10 erider: In the experimental vm, there are extra ports specifically to allow calling javascript code 20:07:43 you can call JS directly 20:07:55 via the ports 20:08:15 I'm working on a javascript library to allow calling retro code directly 20:08:49 which would allow for two-way control. write in js, but leverage retro, or write in retro and leverage js. 20:10:24 I'm also playing with some stuff to create js objects, which share a common retro image, but have their own stacks/vm loops 20:11:22 retro is running in the browser via ngaro vm written in JS right 20:11:28 yes 20:12:15 so you are exposing the browser thru the interface of the vm 20:16:02 crc so what is the framework going to allow you to do at the end of the day 20:22:48 erider: my goal with this is a client/server framework for creating web apps in forth 20:23:04 I'd like to be able to use forth on both the backend and the frontend eventually 20:23:33 with forth code generating and controlling javascript 20:24:26 but you have a clientside thing going on right now 20:24:32 yes 20:24:41 cool 20:24:47 what is mips 20:25:02 cpu family 20:25:16 http://en.wikipedia.org/wiki/MIPS_architecture 20:25:19 arm? 20:25:22 nope 20:25:43 it's RISC, like ARM, but a completely different family of processors 20:26:10 i see 20:45:23 [crcx/retroforth] 5d6c67: metacompiler now restricts dictionary during build 22:34:11 --- quit: erider (Ping timeout: 256 seconds) 23:59:59 --- log: ended retro/10.02.13