00:00:00 --- log: started forth/05.06.25 00:26:55 --- quit: Herkamire ("off to bed") 05:13:21 --- join: PoppaVic (~pete@0-1pool73-251.nas24.chicago4.il.us.da.qwest.net) joined #forth 05:13:59 Mornin' 05:16:01 Hi. 05:59:06 ahh... Now I see what you meant, Stepan 06:09:04 hmpfh-hmpfh 06:09:13 .. May be a cleaner solution... 06:17:25 Intriguing... Bastich.. it means a major rewrite 06:22:15 --- quit: PoppaVic ("Pulls the pin...") 06:39:53 --- join: PoppaVic (~pete@0-1pool65-51.nas22.chicago4.il.us.da.qwest.net) joined #forth 07:02:27 --- join: Topaz (~top@spc1-horn1-6-0-cust117.cosh.broadband.ntl.com) joined #forth 07:02:33 lo 07:02:43 afternoon ;) 07:18:51 --- nick: saon_ -> saon 07:19:51 lo 07:23:13 --- quit: dt0x ("ERC Version 5.0 $Revision: 1.743 $ (IRC client for Emacs)") 07:24:28 --- join: d3ly51um (~user@66.189.37.253) joined #forth 07:24:35 --- part: d3ly51um left #forth 07:28:25 I'm beginning to believe 'token-code' is the best generic solution. 07:28:52 For some particular platform, or in general? 07:29:53 generically.. it's a level more complex and slower, but vastly more portable,and Metacompiling is still a possibility. 07:30:12 More portable? How so? 08:04:36 --- join: Herkamire (~jason@c-24-218-95-147.hsd1.ma.comcast.net) joined #forth 08:04:36 --- mode: ChanServ set +o Herkamire 08:05:02 lo, Herkamire 08:08:53 hi 08:09:43 been beating code for days, and I think I've reached a new cusp. 08:10:52 Given that most folks have fast cpu, and I am seeking portability: I think I need to interp/compile ids/xts rather than pointers 08:14:03 Herkamire: given much thought to Metacompiling? or true "compiling"? 08:16:37 what do you mean by metacompiling 08:16:39 ? 08:17:29 if, like most people in here, you mean a system that compiles it's self, then yes, I think it's very valuable, and my forth (herkforth) does it. 08:17:42 Well, for Forth - it means generating a crosscompiled Forth. Further, it can mean regenerating all the code needed to build a new and smaller, restricted binary 08:18:04 Herkamire: do you call-thread or xt-thread? 08:18:30 I compile branch instructions directly. I think that's called subroutine threaded 08:18:52 hmm, maybe - yeah 08:18:55 what do you mean by "crosscompiled"? 08:19:15 getting code from Forth to some target-platform. 08:19:32 the old forth-assembler is an example 08:19:46 ..it didn't necessarily compile for the CURRENT platform 08:20:49 hmph.. Anyway, given one layer of abstraction and slow-down, I think I can cogitate a "portable" system. 08:20:54 ok, so by crosscompile, you don't nessesarily mean across hardware architectures... 08:21:11 it prolly would, but it doesn't have to 08:21:25 Could be a similar cpu, but different kernel/os 08:21:54 all "cross compile" means is, A generates B-type-code and can save it 08:22:24 for some reason, listening to really loud music yet still being able to communicate properly on IRC feels very weird 08:22:34 B might end up getting inner & outer interp - that RUN on B - and code that runs on A _and_ B 08:22:41 do you hold as a rule that A does not run on B-type code? 08:23:10 right, A might be big-endian, and B might be little-endian - not to mention the ABI's 08:23:40 I see 08:23:41 It's a mess, but I keep flogging it... I just _KNOW_ forth offers a solution. 08:24:26 well, some of the threading models don't care how the core is implemented terribly 08:24:28 basically, past text/source, we need a PORTABLE form and - no more than - MAYBE a local-form 08:24:37 right 08:24:43 Understood 08:24:45 then you just need a compatible core for each architecture/host-OS 08:24:53 yeppers ;-) 08:25:19 herkforth will run under linux, open firmware and osx 08:25:20 So, I am trying to beat a C-core/module and use forms that can be portable. 08:25:36 but requires the same hardware architecture 08:26:05 Oddly enough, my goal is an extensible system to build C, but I think Forth has got the nitch to get there. 08:26:28 with C you can easily make a forth that is portable accross platforms, but then you can't metacompile 08:26:38 and it's very difficult I think to turnkey 08:26:55 ..and if you can beat the platform/abi to build portable C, then a portable forth-like system comes along for the ride ;-) 08:27:15 yeah, turnkey is gonna be an issue.. But not much of one 08:27:26 well, the advantage of C is that every platform big enough has a C compiler 08:27:32 yep 08:27:34 but the disadvantage is that C must be compiled ahead of time 08:28:09 no interactive testing/editing 08:28:16 Whereas we used to see Forth hit a platform after asm, we now have C getting there first (gcc and such), and the portability is still a whore 08:28:35 well, yeah 08:28:37 autoshit and such is just a mess 08:28:39 C is a portable assembler 08:28:45 no 08:29:07 look it up dude 08:29:13 C was designed to be a portable assembler 08:29:18 I'm not paraphrasing 08:29:25 C SHOULD be considered "portable assembler" - but the advocates will not admit it, and the autoshit stuff is their gateway to "portable". 08:29:38 trust me, I live in ##C 08:29:54 why is it ##C anyways? 08:30:00 so, yeah... THis multifaceted issue bugs me 08:30:16 saon: freenode decided that anything "nonoffical" needs ## 08:30:18 well, the advocates sound like egotists 08:30:23 no joke' 08:31:01 imagine how *I* feel, loving C, and liking forth - and astraddle the channels with fanatics 08:31:23 hehe 08:31:26 hell, I been coding LONGER than some been outta' diapers 08:34:10 the whole K&R/ansi/posix/iso thing compares to ANS/fig/herkforth/isforth/gforth 08:35:16 and, oddly enough, GNU 'as' has made me think we are all missing a bet and being stupid. 08:35:49 why does gas make you feel that way? 08:36:04 well, I did a little research the other day 08:36:28 On the WHOLE, the .directives are mostly portable, but the opcodes are certainly not. 08:37:37 so, I can envision a forth-ish system at 'as' level, generating a .directive and hexcode textfile to feed a "enduse compiler" 08:38:28 I grant you, (and feel very old), I havee not tried to read the 'as' source: so I dunno wtf it takes to generate a .o 08:38:57 but, the .directives are almost universal, and the opcodes are NOT 08:39:07 this strikes me as vocabularies 08:39:17 --- quit: Topaz (Remote closed the connection) 08:39:35 C has no comparable keyword/system 08:40:11 hence, my project to add forthlike vocs/lexicons/defs between lexer and parser 08:43:27 Frankly, I begin to believe - as I did 20 years ago - that *A* 'forth' is better for "portable assembler" than C... That 'C' should ride atop that portability. 08:44:35 or we can vice-versa - My current code is trying to never use a return-stack, but I can't much see a way to live w/o a datastack 08:46:14 Basically, I'm using 'C' to "metacompile" (bootstrap) my "portable module" 08:46:46 ok 08:47:00 With folks like I440r around, this seems pretty silly... But they will never accept the idea or bootstrapping. 08:47:04 you want to build a portable assembler in forth 08:47:11 far more than that' 08:47:52 I've not even done anything for asm. I am targettting a module akin to forth, to build a mini-shell to be used 100% by a Metabuilder 08:48:31 languages upon languages... 08:49:10 mmm 08:49:19 sounds like trouble 08:50:41 not really 08:50:58 Think of xlators, filters and transmogrifiers 08:51:45 we local assembler we can assume is GAS - that's our worst case; gcc/someone above that 08:52:00 we local/our local 08:52:48 For interp/immed: we use a forthlike system; but we need to eventually generate a file we can feed down 08:53:29 Our prob as forthers is - we expect this to ALL happen in RAM and stay the same forever 08:54:12 eh? 08:54:16 because of the way C is defined, we rarely make assumptions at compile-time, but we EXPECT shit to work once compiled 08:54:20 what stay the same forever? 08:54:39 Herkamire: here, pad, comma, etc 08:55:17 I'm trying to free myself - us? - from those expectations and live within the malloc/free universe 08:57:26 this is complicated by ansi/posix/iso/gcc, not to mention asm/as 08:57:50 huh? 08:58:16 * PoppaVic sighs 08:58:23 How to explain...? 08:58:28 how can you run without assuming that your core code utils are in memory? 08:58:37 the PLATFORM and kernel are the initial issue 08:58:52 Herkamire: virtual-memory 08:59:15 you can use addresses, but they exist in the NOW 08:59:27 ..unless they are in the objects 09:00:22 think 'linker and loader' 09:00:44 a major prob for folks is getting past ancient .com files 09:02:09 what's your idea? 09:02:24 not sure, it keeps flowing, evolving and mutating 09:02:45 I KNOW we need a bottom-line "assembler" - sans opcodes 09:03:02 we need 'macro-assemblers' above that 09:03:50 how does/should the presense of virtual-memory effect a programmer's expectations? 09:03:55 and, I think that my use of C under forthish is temporary. We need something to create this stuff 09:04:12 I have problems to catch your idea, you wan't a portable assembler, right? 09:04:15 Herkamire: memory-limits, swapping, cirtual-addresses 09:04:25 virtual 09:04:55 virl: hehe, I began this with a goal in mind, and it is growing and mutating as folks declaim it. 09:05:04 ok, I'm having trouble making sense of anything you're saying now 09:05:36 it would be easier when you could tell us your goal :) 09:05:50 Herkamire: I have N-meg or real ram... The system can treat that as 256*n-meg 09:06:10 what do we care? all we care is shit is available and exists and we can ref it 09:06:21 C does this quite well 09:06:57 right. so forth and C both assume things are in memory 09:07:04 and virtual-memory doesn't change that 09:07:18 'memory' being something the kernel KNOWS and we can ignore 09:07:25 right 09:08:00 now, the prob with most forth is: they want to bypass all this noise and pretend they ARE the OS 09:08:17 and quite a few aren't pretending :) 09:08:31 Great for speed and simplemindedness - not so good for space 09:08:48 Also doesn't help "portability" 09:08:50 what's not so good for space? 09:09:10 bypassing the goddamned OS virtual-mem system 09:09:12 forths are famous for getting a lot done in little space 09:09:19 arrrghhhhh 09:09:29 I know that, knew that decades ago 09:09:33 I didn't think it was possible to bypass the virtual-mem system 09:09:42 they still are 09:09:46 mostly because fig-forth did a shitload of threading 09:10:07 Chuck designed an awesome computer chip on his operating system and cad software that were both on a FLOPPY 09:10:16 ok, maybe I need to chill and let stuff percolate 09:11:08 PoppaVic, what are you ultimately trying to accomplish? i have yet to understand your original intentions 09:11:18 I don't really know much of anything about fig-forth, except that I think it is generally better liked than ans by people who seem to me to know what they're talking about 09:12:16 saon: originally, I wanted a mere module between lexer and parser ala' Forth. Then I started looking at what the lexer and parser were doing and started thinking about gcc and gas - and then linkers & loaders 09:12:57 well, trust me: fig-forth was USUALLY the next lang after asm that ever hit a chip - that was decades ago 09:13:40 folks got bent over fig and went f79, f83, and f-pc 09:13:43 ahh, sorry, I've only been programming for 10-11 years 09:14:05 ..and their solutions merely closed down holes or added new ideas 09:14:53 one of the greatest ideas in f83/fpc was not their insane branching args, but instead: the idea of a vocstack 09:15:59 that wasnt a tom zimmer idea and its called the context stack 09:17:41 ns: doesn't matter who or the "proper nomenclature" - it was pivotal 09:18:41 I've got issues of "Forth Dimensions" older than most folks here ;-) But, the prob was - we had a ton of ideas, and no "body" - we merely had the ANS commies 09:19:10 It'd be funny if it was not so dad 09:19:12 sad 09:20:14 Anyway, damn.. we got coders galore, but they either trail off in a closed path or they suck up to the ans-commies. It becomes pretty depressing. 09:21:02 whatia mean closed path? 09:22:22 The only kicker I see is: 1) forthists see vocs/wordlists/words; 2) they expect the lexer to be dead-simpleminded; 3) they nearly invariably generate [ip]code PERIOD.. 09:23:06 what's [ip]code? 09:23:22 Herkamire: "closed" as in "There is no OS, no libc, no .object, no .lib, no .s)hared-o)bject. 09:23:35 intermediate or pcode 09:24:08 so "closed path" means working directly with the hardware/os and not mucking about with libraries? 09:24:18 forth was ORIGINALLY a language dedicated to shit w/o an os 09:24:32 right. "Do the job, fuck the world" 09:24:38 yes, and many feel that it is still best that way 09:25:00 I don't think they're hostile 09:25:00 cool, they can learn crosscompiling, too 09:25:15 no, hostility has no value 09:25:54 BLINDNESS and unwillingness to discuss interlacing the language with the existing OS, yeah: that can become an issue 09:26:06 I think there is however quite a bit of the feeling that the world of computing is headed very much in the wrong direction, and is not solvable by working within the current systems 09:26:43 I will, w/o equivocation, state here and now: that a system w/o an OS needs to get a forth installed IMMEDIATELY 09:27:10 I am not terribly interested in helping to solve the problems with linux/windoze/mac because that is beyond what I'm capable of (by myself) and I don't think it's headed in the right direction weth everybody working on it 09:27:12 Herkamire: you cannot change the world - I've tried for decades. 09:27:39 Herkamire: well, then even #openbios and Stepan are not enough 09:27:41 thanks for the encouragement >;-) 09:28:12 I can make a kickass OS by myself, preferebly with a little help 09:28:45 Not one - in over 20 years - programmer has ever tried to code the parallel to a linux/*bsd kernel in forth. And, I suspect I'll be dust before I ever see it. 09:28:50 it's perfectly possible to change the world 09:28:58 sure 09:29:08 * Robert would like to wait for some decent hardware. 09:29:09 I don't want to code a paralell to linux 09:29:14 fine 09:29:20 Good luck to you 09:29:22 that would be pointless 09:29:33 REALLY? Interesting 09:29:47 I'm focusing on usability 09:29:51 Not stuff that drowns below decades of legacy and automagic, unpredictable caching. 09:29:52 on interface design 09:30:01 right 09:30:04 so, *nix is "not good enough", but its not worth encapsulating or even replacing. 09:30:14 interesting 09:30:27 I use linux, because it's the best thing I've found that will run on my current computer 09:30:39 ahh 09:30:43 I'm writing a replacement, because I think it would be easier than getting what I want on top of linux 09:30:45 again "interesting" 09:30:49 in the looong run 09:31:01 plus I just like doing stuff myself 09:31:03 yeah, personal-peeves over decades 09:31:26 OK, so much for that 09:31:26 I prefer learning about hardware and how to work directly with it, to learning about APIs and such 09:31:34 forthers like to reinvent the wheel. 09:31:41 yep 09:32:21 This rather justifies my IBM buddy that states: "Forth: the worlds most unsupported language" 09:32:29 when people ask "why should I use your software?" I'll have good answers, not just techno details that only forthers will appreciate 09:32:41 "it's free, fun, and you got so much more work done" 09:32:50 Herkamire: trust me, you will die alone and unknown. 09:33:01 FUN I can understand 09:33:21 I don't have to put MS out of the OS market or anything 09:33:33 dude, yer digging a hole 09:33:47 look, you're not going to convince me to stop 09:34:11 There is a reason that the ANS commies and advocates all work for someone with a special variant that they charge big$$$ for. 09:34:28 I would NEVER try to dissuade a forther 09:34:48 --- join: saon_ (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 09:34:51 ..no more than I would tell a C user to learn perl 09:35:42 BUT, I do do the latter for viciousness, and I will certainly encourage you to spin yer 4-wheel-drive in the mud all you like. 09:35:53 one good thing about an encapsulated forth system, with its own assembler & co. is that it's possible to install a development chain in a system without one, like windows. 09:36:16 virl: that was true with FIG over 20 years ago 09:36:29 ..the world is larger and more complicated 09:37:00 PoppaVic: how can you say "I would NEVER try to dissuade a forther" right after saying "dude, yer digging a hole" and "Herkamire: trust me, you will die alone and unknown." 09:37:10 for embedded systems, sure: use forth, 09:37:52 Herkamire: it wouldn't dissuade you, and I wont either. Perhaps my great-nephew will eventually use your system 09:37:58 you can't argue that it's impossible to write a system that becomes popular 09:38:02 linux is a good example 09:38:10 not really 09:38:11 --- quit: saon (Read error: 110 (Connection timed out)) 09:38:13 why shouldn't work it now? fascinating stuff like individual optimisation would be possible. 09:38:23 as I understand it, Linus just say the need, and started writing it 09:38:34 or did he just write it at first to see if he could? 09:38:45 given linux, and freebsd - and doze - you want to displace them. Go for it. 09:39:42 no, linus took shit like minix and made it WORK - the current mess makes me want to puke. MEANWHILE, you are talking about a parallel - not a layer. 09:39:47 oh, hell a hybrid forth system would be amazing 09:39:53 yep 09:40:07 ok, so it's a bit different 09:40:15 waaaayyyyyy diff 09:40:18 but I've done a lot of thinking about the schedule, and it'll work fine 09:40:26 No good 09:40:34 I started about two years ago, with no experience with asm or drivers or anything whatsoever 09:40:51 Either you replace A with B or you patch B over A or you write A' 09:41:04 and now I've got a bootable, metacompiling OS with the best IDE I've ever used 09:41:10 great 09:41:45 how many folks have adopted it? Who controls the releases? Can I get it for my Foo-Manchu-800? 09:42:05 no, because its assembler. 09:42:09 ahhhh 09:42:15 WHO asm? 09:42:32 brb 09:42:34 intel asm? gnu asm? 09:42:40 powerpc? 09:42:48 hehe: see my point? 09:43:39 If you want to see "why I love forth interp/compile": see GCC source 09:43:40 that was something I everytime hate, today it's difficult to write assembler. 09:43:47 yep 09:44:10 I've been arguing that here and in ##C for years now 09:44:29 your point? 09:44:36 that it's not popular yet? 09:44:46 or running on mainstream hardware? 09:45:26 My point is: the bottom line so far sucks, the libs are marginal - and Forth heads off into ozone as badly as C folks 09:45:30 eh? sry, but my english isn't the best. 09:46:12 to get anything, you need an assembler; C was SUPPOSED to be "portable assembler" - and forth has sucked hind-tit for decades 09:46:30 hind-tit? 09:46:32 I don't like the issues, but I see them 09:46:51 virl: unwanted stepchild 09:47:46 so, we assume - lately - a platform/os. We MIGHT assume an assembler. 09:48:05 we MUST assume C is gonna' show asap. 09:48:22 and, forth can do better given one or the other 09:48:22 but we can't 09:48:27 sure we can 09:48:52 virl: cross-compiling a binary-image 09:49:07 oh, wait: that would mean C usually 09:49:13 my bad 09:49:29 Recycle - revamp - re-argue 09:50:23 Check it out for a few days... It makes for depressing articles and ciews 09:50:25 views 09:51:19 there is a HUGE reason for .o/.a adoption universally 09:51:32 ..not to mention a.out 09:51:58 sarcasm? 09:53:25 so what do you thing is THE SOLUTION to fix that broken bottom line of the development chain? 09:54:26 Honestly? Not sure.. A forthish masm over an asm? a Forthish C/whatever? 09:54:47 basically, forth cannot use a special mem-only fmt forever 09:55:46 damn, gf just found a tick on me 09:56:17 what's this bit mean? "we MUST assume C is gonna' show asap." 09:58:14 I've gotten this far from scratch in 2 years 09:58:46 I expect in another 2 years I'll be running it more than linux 09:58:46 is there a forth/C interface? 09:58:57 chatting on IRC, checking my mail, and looking up stuff on the net with it 10:00:44 no, there is no universal C/forth interface. But, nowadays gcc will get there before forth 10:00:56 ..mostly because forth has stagnated 10:01:06 ah, really? so in 2 years you'll show us running the game 'uplink' on you OS, ok? 10:01:21 why in the world would I play a game? 10:01:50 @Herkamire 10:02:18 look, if you want to believe forth is std and ported and even replacing the OS is good, fine. I have no time for such. 10:02:24 virl: ahhh 10:02:54 what? 10:03:09 not following the bit about believing forth is std and ported 10:03:15 because today this is a big argument for an OS 10:03:16 ok, I'm gonna' toddle off and have lunch, and a nap - quick before I gotta' help move furniture. 10:03:22 laters 10:03:24 --- quit: PoppaVic ("Pulls the pin...") 10:04:47 virl: yeah, I expect in about 2 years it will be quite productive and friendly for doing a few common tasks, like googling, irc and maybe e-mail 10:05:17 and probably X will run on it... 10:05:31 nah 10:05:50 a posix environment, if it ever exists will be quite a bit further in the future 10:06:39 ok, then it will be something like opendos, but with lesser features. 10:06:55 actually, instead of a posix environment, I might just make a virtualizer or whatever it's called, basically like an emulator, except for the same processor architecture 10:06:58 like MOL 10:07:59 it'll be something like rchi frontend with colorforth backend 10:10:25 virl: do you run linux? 10:10:44 with the help of qemu, herkforth runs quite well on just about any architecture with linux 10:26:41 man, I never got to ask PoppaVic what he thought the "HUGE reason for .o/.a adoption universally" was 10:27:13 I always figured it was because C/C++ took so damn long to compile 10:30:26 Herkamire: I've started writing all the apps I use on a daily basis, in forth.. so when the time comes, I can plop them all on my custom apps ontop of my own Forth OS 10:31:02 alexander_: that sounds very farmilliar... do you have other nics? 10:31:44 that's really cool btw :) 10:33:05 As I expected, I didn't make SoC. 10:33:24 Herkamire: no, I don't. 10:33:37 I started writing an IRC client,.. which is almost done 10:33:47 it let me put together a set of words to deal with line-based protocols 10:33:55 so maybe I can do SMTP and IMAP next 10:34:00 Do you think it's reasonable with a database of Forth words on the word level (as opposed to the standard file or program level), so that each word can be compiled, downloaded etc. individually? 10:34:10 alexander_: very cool 10:34:20 Herkamire: I've also got a SHA-1 implementation that I wrote, that's going to let me start writing an SSH client. 10:34:42 Robert: yes, I'm in the process of changing herkforth to store it's source that way 10:34:47 time for breakfast, bbl 10:35:16 Actually I thought about a larger scale, as in an internet achive. 10:35:18 archive 10:35:51 yeah, I'll get to that :) 10:35:55 it will be herkforth specific though 10:37:59 I haven't worked out the details yet 10:38:18 Sounds nice. 10:38:26 but I'll work out some version controll system that is some kind of database of definitions 10:39:10 that stuff is a ways off though 10:39:25 currently herkforth has no concept of source outside it's self 10:39:52 but that will have to change 10:40:57 one thing at a time though 10:41:12 Would be a cool way to be able to modify single functions in a system without having to resort to slow indirect threaded models. 10:41:20 first I need to finish my new editor for the new source format 10:41:20 Yes, I suppose so :) 10:41:37 Herkforth... I forget - is that a colored forth for ppc? 10:41:45 yes 10:42:04 Ah, cool. Except I'm an x86 creature. 10:42:16 if you have linux, you can run it with the help of qemu 10:42:24 runs quite well that way in fact 10:44:20 Herkamire, I'm a linux user which is currently running a windows, because I'm writing my game forth for the XGS, it's name is 'thunderforth'. 10:44:39 virl: :) 10:44:54 XGS? 10:45:15 XGS: www.xgamestation.com 10:45:23 ok, I'm going to go finish tab-completion 10:46:03 Hmm... 10:46:21 That Fabrice Bellard guy seems to be somewhat of a genius. 10:47:25 who? 10:47:43 http://fabrice.bellard.free.fr/ 10:48:10 Maker of Qemu, tcc, and a mathematician too... 10:57:46 qemu is wonderful 10:57:56 I'm very impressed 10:58:23 emulates ppc on ppc about 20X faster than pearpc iirc 10:58:32 I forget exactly 10:58:34 but way faster 10:59:03 and I _do_ remember that it emulates ppc on ppc only 20x slower than native 10:59:08 which is plenty fast for herkforth 10:59:13 xgs looks really cool 10:59:24 except I'm not sure I want to code for an 8 bit cpu 11:02:58 I'm still a bit confused about it= 11:03:14 what's this mean: 4Kx12 WORD onboard FLASH memory 11:03:31 means 4000 12bit words? 11:04:06 do your games have to fit in the flash mem? 11:17:55 native games, yeah. but it has an 128k sram too :-) so I take forth for it. 11:19:07 and yes, it means 4000 x 12bit memory, iirc. 11:20:05 ahh, sram would help 11:20:11 is that included in the $200? 11:21:01 yep. 11:21:11 cool 11:22:54 sram zeros out when you kill the power right? 11:23:57 after my forth-system for this thing, I think I'm ready to learn the x86 instruction set. everytime I tried to learn it, I get quickly frustrated about the lot of instructions, the missing support for assembler on a lot of OSes 11:24:12 zeros out? 11:25:20 do you mean it resets the sram to zero when it gets no power? I don't know. 11:25:31 --- quit: saon_ ("Lost terminal") 11:26:31 I have a hard time imagining fitting any useful pice of software into 4K 11:27:50 Hah. 11:28:25 I'm just too young 11:28:39 The book I had on computers mentions 4k words as the optimum size of the main memory in a computer, but that much is "not yet practical". 11:28:42 I know compiled ppc code is big 11:28:58 after seeing menuetos, I had no more problems of thinking that every useful thing could fit into it. 11:29:00 However, core memory (which the author suggested at a lecture last year) may make it possible. 11:29:26 Hehe, has MenuetOS evolved? 11:30:13 Hm, seems a lot like when I last looked. 11:30:43 Nice idea I admit, but not a very good implementation... Although I really like the flat assembler. 11:31:03 I tried menuetos. pretty cool they get all that on a floppy 11:31:17 didn't like the GUI, but asside from that, it was neat 11:32:15 but still, 4k is 300X+ smaller than a floppy 11:32:51 and it's something which no forth system ever achieved 11:33:04 virl: what's that? 11:33:23 what is what? 11:34:19 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 11:34:33 I only say that I haven't see any forth system which I could compare to menuetos 11:35:15 Won't you only have to fit some loader software anyway? 11:35:16 what specifically were you saying that forth systems have not achieved? 11:35:23 The RAM is large... 11:36:19 virl: just wondering how you're thinking about it. seems menuet is more complete than the forth stuff I've seen 11:36:58 eh, what? sry, my bad english. 11:37:27 virl: is there a specific thing you would like to see a forth system do? 11:37:41 I meant, that the forth system I have seen aren't so complete like menuetos. 11:37:42 virl: or do you just think that menuet is generally more finished? 11:37:49 ahh :) 11:37:59 I agree 11:38:19 I'm curious if anybody uses menuet much 11:38:41 I really like seing a tiny complete os that can sustain it's own development 11:39:23 but I am concerned that people won't use it much because the interface is annoying 11:41:08 there another systems around which are much more annoying, *cough* w...... *cough* 11:43:06 yeah, windoze is annoying too 11:43:31 but I think to make a convincing argument to switch to it, it needs to be significantly better 11:43:37 in some way the user cares about 11:44:03 currently, as I understand it, it's significantly better for developing programs (especially graphical ones) in asm 11:44:49 I think menuetos is a highly successful project, but I think they have different goals than me 11:46:17 i haven't looked at menuet in a while, has hardware support gotten better? 11:47:44 looks sexy, it's come a long way i see 11:47:48 not sure what the purpose of menuetos is exactly, I'm just looking at what could be done differently in a similar project (such as my own) to make it more likely to meet my goals 11:48:24 Purpose? Tssss... :) 11:48:25 looks damn sexy 11:51:55 and what are your goals? 11:54:02 make computers easier to use (more productive and pleasant) for lots of people 11:54:12 afk going swimming 12:20:39 --- join: snoopy_1711 (snoopy_161@dsl-084-058-128-035.arcor-ip.net) joined #forth 12:24:34 yoh 12:25:40 Hi 12:28:50 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 12:29:05 --- nick: snoopy_1711 -> Snoopy42 12:35:15 --- join: true-grue (true-grue@ppp141.medlux.ru) joined #forth 12:37:52 --- part: true-grue left #forth 14:25:34 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 14:32:01 hi everyone 14:35:11 Hi, crc. 14:53:41 In Linux, can different processes share code easily? 14:54:44 * crc has no idea 14:54:49 I'm thinking about a "function daemon" which could be called with a function name, and return a pointer to the function used. Then the caller can use that function as if it was a part of the program. 14:54:52 Oh. 15:01:42 hmm, process boundaries. probably that could cause a segfault. 15:04:54 Yeah, normally I assume it will... but there must be some way of telling the kernel to give the client process access to the page of that function. 15:05:52 I think you'll go the average/todays way of abstraction that thing and emulate that function pointer. 15:06:10 "emulate"? How? 15:06:12 s/go/need to go/ 15:06:55 with a socket/linked list 15:07:50 does anyone here have opinions on strings with a length of 0? 15:07:51 thats the way ntfs, vos, corba works. 15:08:45 crc: I think they're pretty useless. 15:09:45 crc, hrmm, they are nice in situations where you want to return an error and the calling function expects a string 15:10:06 but that's only in languages that have higher-level of string control of course 15:10:08 NULL! 15:10:36 * crc has recieved a bug report/feature request to add support for zero-length strings in retroforth 15:10:45 "support"? 15:10:51 i was unaware we had strings in retroforth 15:10:54 Things break with empty strings? 15:11:10 Robert: segfault if you do: " " 15:11:15 Heh. 15:11:19 saon: we have some minimal support for strings 15:11:23 That's somewhat bad, I think. 15:11:36 But that's due to the way the parser works.... 15:11:40 ah, i see i haven't played with the stuff in lib much 15:12:03 Built in, you have: " s" ." 15:12:12 and $, to compile a string to a definition 15:12:20 and >pad to move the string to pad 15:12:26 and zt to make it zero-terminated 15:12:28 :) 15:13:36 who uses retro? 15:13:45 Lots of people :) 15:14:26 * crc has an idea... 15:14:40 Less than three? 15:15:06 More than three 15:15:17 Aww.. 15:15:25 Not very lovely. 15:17:54 yoh 15:18:04 Hi, alexander_. 15:20:34 ok, I fixed it 15:22:31 Hooray. 15:22:41 * Robert found a "mincore()" syscall. Mm... modern. 15:29:14 so I had a dream about a possible OS last night 15:29:35 microkernel, with a shared address space for the whole OS 15:30:42 the only issue this brings up if you want to do VM using the disk as a single-level store 15:30:44 microkernel, hell... that reminds me on hurd. 15:30:56 hurd is just an example of one 15:32:10 yeah, and it shows the crazy development time of such a kernel. 15:32:12 the problem is if you're on a 32-bit chip, you have 4 gigs total of total RAM and VM.. which I guess is fine for my workstation. 15:32:32 virl: no,.. that has nothing to do development time.. HURD just has no momentum 15:32:38 --- quit: Robert ("Bye.") 15:34:42 hey, even rms says that the design of it makes it really really hard to debug it. 15:35:16 their flaws in their microkernel have nothing to do with microkernels in general being hard to implement or debug. :) 15:35:37 you can't tell me a microkernel is harder to debug than a full blown kernel-space implementation than Linux or BSD. 15:39:14 the mircokernel design is too modular, it consists of a lot of seperatet servers and the intercommunication between each server makes it hard to debug the kernel. 15:39:39 again, that's their implementation 15:39:56 regardless, those servers aren't part of the kernel 15:40:24 ok, then tell me your design approach. 15:43:07 in my case, the kernel is responsible for a handful of things, namely preemptive multitasking, virtual memory configuration, and simple message passing. 15:43:44 like QNX did their microkernel implementation. 15:44:08 this stuff is nothing do, but I came up with a way to handle things like networking stacks, all written in Forth 15:48:58 er nothing new 15:48:58 hah 15:52:57 the problem with doing this shit is the initial bring-up on hardware.. like IA32 15:53:07 because you're forced to program IA32 chips. :( 16:04:23 so, I wouldn't write software on the lowest level on IA32 16:08:02 how else would you get your OS bootstrapped? 16:11:02 what? I'm not currently writing an OS for IA32 16:12:26 .. yah, but I am 16:12:39 I thought you had some suggestion. 16:16:27 * crc is interested in microkernels 16:17:53 crc: have you written any protected mode bootstrapping code before? 16:18:06 yes 16:18:39 arke rewrote my old boot code though (to make it compatible with most PC) 16:18:49 s/PC/PC's/ 16:19:28 ah 16:19:38 do you have any code online? 16:19:44 yes 16:20:06 http://retro.tunes.org/repos/retroforth/_darcs/current/native/ 16:20:40 nice 16:20:52 http://retro.tunes.org/repos/retroforth/_darcs/current/native/source/raw.asm 16:20:55 that's the boot code 16:24:20 yah, looks good 16:24:30 I'm comparing that GDT, to the reference material I've got 16:24:56 it sets up a flat address space 16:25:06 * crc is a big fan of flat address spaces 16:26:58 I used to have this as the gdt: 16:26:59 gdt: dw 0x18 16:26:59 dd gdt 16:26:59 dw 0 16:26:59 dw 0xffff, 0, 0x9a00, 0xcf ;code 16:26:59 dw 0xffff, 0, 0x9200, 0xcf ;data 16:27:20 Then arke noticed that it is improperly structured (though it works...) 16:27:37 nod. 16:27:41 yah, flat sounds good to me 16:29:11 Map 512 byte blocks of ram to the hard drive and you get easy persistance :) 16:29:48 yah 16:30:51 Back in Retro5 I had the system save all blocks as persistant 16:31:38 * crc could recompile everything from source in a few seconds, so I didn't need to make the compiled code persistant :) 16:33:43 yah 16:34:03 that's interesting, because that was my thought last night.. compile as much code as you want on the fly during process creation 16:34:27 if the entire system is all a shared address space, with permissions to certain sections 16:34:59 you could just link to remote read-only vocabularies of words 16:35:03 effectively giving you shared libraries. 16:35:42 yup 16:36:18 I want to be able to let's say.. hack on a new IPv6 stack, and have only certain programs use it 16:36:32 so I can do experimentation with network protocols, while still having my existing IRC connection up 16:37:01 yeah 16:37:14 being able to do stuff like that would be good 16:37:45 * crc and arke are doing some work on a ForthOS inspired by Multics, and I have my own personal project that I'll share someday 16:37:51 killer 16:38:24 I figure I'll have to have a process that is the ethernet driver, and obviously that would have to stay static, and only have one instance of said driver per piece of hardware 16:38:42 that would be beautiful, a ForthOS 16:38:42 why would it have to stay static? 16:39:50 crc: well because if I'm changing my drivers around, I can't expect to have two drivers talking to the same hardware at the same time and keep any sanity 16:39:59 Ahh 16:40:04 good point 16:40:10 but I mean, it'd still be flexible 16:40:24 like, you could hack on your wireless ethernet driver, while being plugged into a switch 16:41:02 I've recompiled drivers at runtime, but not had two drivers talk to the same device 16:42:06 I just want to start moving away from UNIX on my workstations 16:42:24 so even if it takes 10 years to do something useful, it's worth it 16:42:38 good, no time limits on development 16:42:47 * crc has been exploring ideas for four years 16:42:52 you still motivated? 16:42:57 Yes 16:43:00 that's good 16:43:21 Actually my motivation has grown since rf stopped being just a native forth 16:43:37 so you can write apps on a system that's stable? 16:43:43 Yeah 16:43:54 it's accelerated the development process a lot 16:44:31 what do you dislike most about Unix-like OSes? 16:48:52 I think what I don't like the most is the amount of code I'm constantly running,.. so changing things can be a real pain 16:49:11 ok 16:49:16 * crc understands that 16:49:37 My personal linux box only runs tools I wrote :) 16:49:56 like, I've got VT100 emulators running in the kernel.. and then I run an X server, in order to get a more VT100 emulators,.. 16:50:07 yeah 16:50:09 because the VT100 emulators in the kernel aren't flexible enough. 16:50:09 lots of layers 16:50:13 yah 16:50:31 also, I want to be able to do things like get fine grained control over my hardware. 16:50:48 so if, let's say I want the harddrive to turn off, and I want to slow down the CPU.. but still have the system be usable, I could do that. 16:51:02 ahh 16:51:08 * crc understands that desire 16:51:22 I haven't written a lot of drivers yet :( 16:51:29 yah 16:51:35 I've written a fair number under UNIX, and it sucks 16:51:38 * crc just has keyboard, text screen, hard drive, serial, and parallel ports 16:51:55 I did a bit of driver coding under Linux, it does suck 16:52:06 yah 16:52:41 I'm thinking of working on some PCI code to identify devices and such 16:52:48 but that's a low priority for me 16:53:04 * crc does want to get rf/native to boot from a hard drive soon 16:53:09 my 'work' application list really consists of an IRC client, mail application, ssh client, and serial terminal,.. so I figure if I had those tools, a Forth OS would be useful. 16:53:35 Hmm 16:53:47 and then maybe a schematic capture and board layout tool, PDF viewer, and web browser.. but I'm easy to please, since I don't use those all of the time. 16:54:24 * crc has used a serial connection to a Linux box to get ssh :) 16:54:28 yah 16:54:33 that'd totally work 16:54:58 implementing the required crypto support for SSH isn't that bad.. so that'll be the next thing I do after I finish my IRC client. 16:55:02 I have no problem letting a conventional OS do the heavy stuff, at least for now 16:55:04 cool 16:55:30 * crc just needs to do some parsing of input and separate channel messages to buffers and my irc code would be pretty decent 16:55:48 But I want to tie it to the editor, and I'm not sure how to best pull that off yet... 16:57:01 nod. 17:02:51 crc: does retroforth native run in bochs? 17:05:53 yes 17:06:05 I normally use qemu to test it 17:06:30 but it does work under bochs 17:09:41 hmm, bochs is puking when I'm trying to load rf8 17:12:29 --- join: Robert (~snofs@c-f778e055.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 17:16:03 hmm 17:16:49 Hi again. 17:18:48 crc: ah, I just got it loaded in qemu.. but when it comes up it dumps 'word found' with a bunch of garbage 17:19:00 what? 17:20:03 I just uploaded a new build, try the diskimage in it please 17:20:26 okay 17:21:07 http://retro.tunes.org/rf8-native.tar.gz <- here? 17:21:12 yes 17:21:50 ah,that worked 17:22:31 ok, so it's a bug in the serial port driver 17:22:34 * crc will work on that 17:22:49 I haven't tested the native version in a few days... 17:22:52 gotcha 17:23:10 * crc will do some thorough tests before Friday though 17:44:53 --- quit: saon (Read error: 104 (Connection reset by peer)) 17:45:55 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 17:53:11 * crc resumes work on the handbook 19:12:33 ok, the tutorial corrections are done :) 19:22:40 --- quit: saon ("leaving") 19:23:54 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 19:46:03 ahhhhhh :) 19:46:06 cool shower 20:16:30 I had been wanting to come online and discuss stuff... then I realized that the 8 muscle relaxants I hae will probably keep my comments completely incoherent. Time to harassee a bot! 20:18:47 heh 20:19:06 --- join: retrobot2 (crc@bespin.org) joined #forth 20:19:06 RetroForth Bot -- Type retrobot2: 20:19:14 yeah, I've tried to have meaningful discussions when out of it 20:19:19 doesn't work so well :) 20:19:32 retrobot2: 1 2 + . 20:19:33 Herkamire: 3 20:19:41 retrobot2: words 20:19:41 Ding! that's correct 20:19:42 crc: .version version# $, ." " s0 | zt-free zt-make words >pad clear del tab space cr << 0; fill alias execute ' columns lines 2swap 2over chars char+ cells cell+ align allot pad */ /mod octal binary decimal hex +! 2drop 2dup tuck over -rot rot here constant variable, variable mod / - negate * + c! c@ ! @ not >> xor or and nip dup drop swap base d0 h0 last cmove reset parse type . macro forth : compile ] (create) create 3, 2, 1, , eval >number find mfind syscall b 20:19:53 retrobot2: .version 20:19:54 crc: RetroForth 7 .5 .1 20:19:56 retrobot2: .version 20:19:58 Herkamire: RetroForth 7 .5 .1 20:20:03 hehe 20:20:08 I need to do an update to 8.0 soon 20:20:38 crc: does she have persistence? 20:20:50 retrobot2: : foo 1 2 + . ; 20:20:51 crc: 20:20:53 retrobot2: foo 20:20:54 crc: 3 20:21:01 Herkamire: yes :) 20:21:09 to a degree... 20:21:19 crc: is it the same as before where it just re-executes lines containing : ? 20:21:19 this is based on your old sifbot stuff 20:21:29 Herkamire: yes, I think so 20:21:32 ok 20:21:40 I haven't messed with the code in quite a while 20:24:20 : test 1 if 1 . then ; 20:24:28 retrobot2: : test 1 if 1 . then ; 20:24:29 Herkamire: RetroForth 8.0 :: Visit http://www.retroforth.org for updates Error: Word Not Found: if Error: Word Not Found: if 20:24:41 retrobot2: : test 1 =if 1 . then ; 20:24:42 crc: RetroForth 8.0 :: Visit http://www.retroforth.org for updates Error: Word Not Found: if Error: Word Not Found: if 20:24:47 hmm 20:25:07 crc: can I segfault it? :) 20:25:19 retrobot2: 0 0 / 20:25:20 crc: RetroForth 8.0 :: Visit http://www.retroforth.org for updates 20:25:26 it segfaulted :) 20:25:39 ooh! cool 20:25:43 retrobot2: 0 0 ! 20:25:45 arke: RetroForth 8.0 :: Visit http://www.retroforth.org for updates 20:26:09 iiiiiIIIIT's snacktime! 20:26:44 retrobot2: 0 0 ! 0 0 ! 0 0 ! 20:26:45 arke: RetroForth 8.0 :: Visit http://www.retroforth.org for updates 20:27:06 retrobot2: 13 emit 20:27:07 arke: RetroForth 8.0 :: Visit http://www.retroforth.org for updates 20:27:12 ? 20:27:35 retrobot2: ." now running 8.0" 20:27:37 crc: now running 8.0 20:27:56 Ok, I got rid of the welcome message 20:29:30 retrobot2: .version 20:29:31 crc: RetroForth 8.0 Provided by Charles Childers 20:29:59 retrobot2: '7 '3 dup '1 emit emit emit emit 20:30:00 arke: 1337 20:30:08 yay 20:35:01 retrobot2: words 20:35:02 Herkamire: .arke .version exit edit load w r use status .s v new blocks \f \ s i ia e el eb x d n p (line) block (block) #blks blk onWhite onCyan onMagenta onBlue onYellow onGreen onRed onBlack white cyan magenta blue yellow green red black bold normal home clear (esc) ok words u. . space cr zt $, ." " st0 >pad pad move fill ;loc loc: (loc) literal, 0; execute alias ' 2drop 2dup over tuck -rot rot variable: variable create: exit, later cell+ cells allot here << 20:35:11 retrobot2: 2 2* . 20:35:12 Herkamire: Error: Word Not Found: 2* 20:35:21 retrobot2: 2 2 * . 20:35:23 Herkamire: 4 20:37:56 why is there .arke? 20:38:09 retrobot2: works 20:38:11 arke: Error: Word Not Found: works 20:38:12 retrobot2: words 20:38:14 arke: .arke .version exit edit load w r use status .s v new blocks \f \ s i ia e el eb x d n p (line) block (block) #blks blk onWhite onCyan onMagenta onBlue onYellow onGreen onRed onBlack white cyan magenta blue yellow green red black bold normal home clear (esc) ok words u. . space cr zt $, ." " st0 >pad pad move fill ;loc loc: (loc) literal, 0; execute alias ' 2drop 2dup over tuck -rot rot variable: variable create: exit, later cell+ cells allot here << >> | 20:38:19 ... 20:38:26 retrobot2: .arke 20:38:27 crc: Chris Walton 20:40:02 retrobot2: char 2 2 * dup emit dup 1 + dup dup 6 / + emit swap emit emit 20:40:03 Herkamire: Error: Word Not Found: char 20:40:09 oh right 20:40:21 retrobot2: '2 2 * dup emit dup 1 + dup dup 6 / + emit swap emit emit 20:40:23 Herkamire: dude 20:42:01 ok, I feel special now 20:42:34 hehe 20:42:39 why is there .arke.... 20:42:53 retrobot2: .arke 20:42:54 crc: Error: Word Not Found: .arke 20:43:05 .. 20:43:08 wtf!? 20:43:28 why was it there? 20:46:58 you can talk to retrobot2 with /msg 20:47:08 crc: just had a great idea for the persistance stuff 20:47:30 you could only add lines to the auto-exec thing if they contain (or start with) : _and_ they don't output anything 20:47:42 hmm 20:47:50 not a bad idea 20:48:10 should be pretty easy right? 20:48:26 yeah 20:48:37 a few lines of sed or grep 20:48:38 and should solve most of the weirdness 20:48:51 * crc will add that tomorrow; I'm going to bed in a couple of minutes 20:49:52 that and a command interperated by the script to clear the history, and I'd say it's in good shape :) 20:50:08 yup 20:50:22 * crc does plan to do a retrobot in forth sometime this summer 20:55:04 yeah :) 20:55:34 man, I find the weirdest things in herkforth when playing with tab-complete 20:56:06 just decided to see what happens with numbers, and found the constant $10450405 20:56:47 had to go see what code used that 20:57:18 part of my random number generator 20:57:33 $10450405 * 1 + 20:57:43 goodnight 20:57:47 'night :) 20:58:37 --- join: lynx` (lynx@10-202.147.popsite.net) joined #forth 20:58:59 haha 20:59:35 --- quit: lynx` (Client Quit) 21:33:16 hehe 23:06:22 --- quit: sproingie ("Konversation terminated!") 23:17:36 --- quit: Herkamire ("off to bed") 23:59:59 --- log: ended forth/05.06.25