00:00:00 --- log: started forth/05.09.23 00:20:19 Ok. Formatted & cleaned up, all the text files (resource.h, hello.rcp, hello.c, and Makefile) fit on 4 pages. 00:20:55 Is that any more than 1 line? ;) 00:21:30 Well, let's see. One for the filename/comment, one blank, two for the definition (why not), one more blank, one for the MakePRC line. That'd be six. 00:21:56 hehe 00:22:04 Extavagance! ;) 00:22:04 If I want the menu & about box, it ramps up a few lines. 00:23:11 (extravagance) 00:28:58 #asm is a bit presumptuous. They seem to think that asm coding is always on a x86 from the topic ;) 00:29:16 I suppose the lion's share of it is. 00:30:41 I just thought that in a way it is ironic. Of all the platforms that for the majority of tasks dont need going near asm, x86 is it 00:32:54 It would only be newer x86 instructions and embedded processors that asm would be needed for wouldnt it? 00:33:05 I don't quite understand. 00:33:20 What you mean, that is. 00:34:18 Hand-coded assembler can still sometimes take you closer to the metal than even the best optimizing compiler, though they're pretty good these days. 00:34:36 I was trying to think of legitimate reasons for coding in asm (if you arent just leanring) 00:37:45 The need for speed, I guess. Anyway I'm off. 00:37:54 enjoy! 01:09:10 --- join: amca_ (n=plump@as-bri-2-49.ozonline.com.au) joined #forth 01:12:49 --- quit: amca (Nick collision from services.) 01:13:13 --- nick: amca_ -> amca 03:00:28 --- quit: madgarden (Read error: 113 (No route to host)) 03:09:20 --- quit: amca ("d34d") 05:06:29 --- join: aardvarx (n=folajimi@shell4.sea5.speakeasy.net) joined #forth 05:08:10 Morning, all. 05:10:17 --- join: madgarden (n=madgarde@Kitchener-HSE-ppp3577624.sympatico.ca) joined #forth 05:44:06 --- quit: saon ("Lost terminal") 05:58:17 --- join: saon (i=1000@c-24-129-89-116.hsd1.fl.comcast.net) joined #forth 05:58:53 --- quit: saon (Client Quit) 06:01:18 --- join: saon (i=1000@c-24-129-89-116.hsd1.fl.comcast.net) joined #forth 06:15:31 morning aardvarx :) 06:17:43 :) 06:34:40 --- join: PoppaVic (n=pete@0-1pool67-80.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:35:00 Yo ho-ho. 06:36:46 I got your message yesterday. 06:36:52 ahh? 06:37:01 Which msg? 06:37:41 10:47:03 aardvarx: intsead of commenting about my writing a book and such, perhaps yer "Q:" is better served with specific issues or questions? I'm not sure how to A: such stuff in ways other than those bordering on the rude. 06:40:03 The suggested actions were gleaned from comments in the channel shortly after you left; the idea was not to heckle/troll. 06:40:19 hidy-ho PoppaVic 06:48:11 --- quit: PoppaVic (Nick collision from services.) 06:48:22 --- join: PoppaVic (n=pete@0-2pool236-124.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:48:36 goddamned isp keeps dropping off 06:48:46 What were you saying, aardvarx ? 06:49:02 The suggested actions were gleaned from comments in the channel shortly after you left; the idea was not to heckle/troll. 06:49:14 um, ok 06:49:57 10:47:03 aardvarx: intsead of commenting about my 06:49:57 writing a book and such, perhaps yer "Q:" is better served 06:49:57 with specific issues or questions? I'm not sure how to A: 06:49:58 such stuff in ways other than those bordering on the rude. 06:50:07 eeew! 06:50:12 ahh 06:50:14 That came out wrong! 06:50:52 10:47:03 aardvarx: intsead of commenting about my writing a book and such, perhaps yer "Q:" is better served with specific issues or questions? I'm not sure how to A: such stuff in ways other than those bordering on the rude. 06:50:59 There. Much better. 06:51:13 S'ok 06:51:28 * PoppaVic wonders what it all means... "What is Life?" 06:52:25 Well, most of what you say sounds like greek to me. I just thought that having a context would help. 06:52:33 right. 06:52:35 I can't tell whether you're coming or going. 06:52:41 Contexts always help. 06:54:52 I cannot ask specific (but relevant) questions without having a _roadmap_ 06:55:09 Yeppers. I'm just about ready to begin one. 06:55:30 I still lack a good "concept" for strings and io 'layers'. 06:55:42 Quartus, ping. 06:56:19 PoppaVic, I have no idea what you're talking about :P 06:56:52 aardvarx: it ain't difficult... I am considering the vm as built in layers, not a shitpile of disorganized fluff. 06:57:15 oh -- PoppaVic, you missed my 'hidy-ho' due to isp :( 06:57:30 So, I consider a "string" as a distinct struct/object, and not 100% needed for all purposes. And, IO is another such layer. 06:57:40 hi Ray_work ;-) Bad day with the isp, my apologies. 06:57:46 PoppaVic, how many layers do you have at the moment? 06:58:11 not your fault, no appology necessary :) 06:58:13 core is flow/some FFI, and single-precision/gymnastics 06:58:33 doubles are like long-longs; and reals are C "doubles" 06:58:54 To date, those are the layers I am considering. 06:59:11 Hold it. 06:59:24 Define *Core* 06:59:46 hold on... 07:00:09 http://rafb.net/paste/results/SkOIQm16.html 07:00:42 As I said: flow/machine/stepping/ffi and the essentials of gymnastics and single-precision numbers. 07:01:35 This file is what I (so far) consider *THE* "core" wordset (opcodes) 07:02:07 I see. 07:02:09 lines 40-43 are really, really tentative. 07:04:03 I see 40..43 as "structured flow", and MAYBE useful; and lines 34..38 as unstructured (dangerous), but very flexible. 07:05:40 So, there are three layers so far, correct? 07:06:05 Right. Or, "three sets of opcodes". 07:06:38 1. Core (including single precision) 07:06:46 2. Doubles 07:06:50 3. Reals 07:07:12 right 07:07:51 #3 is currently considered as automagically requiring #2, but I believe it might be a mistake to do so. 07:08:16 because I can envision a guy coding in FP exclusively. 07:08:29 I'm afraid I don't know any more than you do at this point. Quartus may be the one to answer that. 07:08:34 (It'd be dumb, but it would also be compact) 07:08:48 FP == floating point, right? 07:09:24 aardvarx: right. NOW.. Consider "strings" and "input-output"... You can now begin to see why I'm stalled/stalling/tinkering. 07:10:12 Well, you are going from arithmetic to the netherworld of characters, right? 07:10:36 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 07:10:37 If that is the case, I don't see how you can make the transition between both. 07:10:44 tathi, tathi !!! 07:10:54 Not really. I've long considered that we should not be exposing a "string" as discrete subunits. 07:10:54 So nice to see you, tathi! 07:11:06 hi tathi 07:11:22 I feel so welcomed :) 07:11:24 hi all 07:11:48 tathi: well, yer company is appreciated - and aardvarx is enthusiastic ;-) 07:12:04 PoppaVic, pose your problem to tathi; perhaps you might gain more insight. 07:12:44 * tathi finally spent some time learning about Factor yesterday. Interesting system. 07:12:45 aardvarx: ok, but he's seen it before (I am sure), and quite probably been considering in his own ways and projects. 07:13:05 * Ray_work ( side note, mainly for myself, thinking about implimenting Rational Trig with Tractenberg math in colorforth . 07:13:22 tathi: consider a near-opaque "string" type. What should we consider for operations? Same with "io" 07:15:25 hmm 07:15:57 is there a need to parse the text, cut it up like a list and take slices? 07:16:09 most languages implement approximately the same set, I think. 07:16:23 Ray_work: come again? 07:16:52 Ray_work: you mean for "strings"? 07:16:57 sorry sub string for text yes 07:17:03 :( 07:17:07 I'm not sure I've done enough string stuff to list it off the top of my head though. 07:17:11 for I am a bone head today. 07:17:18 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:17:36 hi sproingie 07:17:41 hmm, well the basic opcodes would be strictly handling, copying, regx, searching, etc. (ie: still no terminal i/o) 07:17:48 hi sproingie 07:18:10 Yeah. 07:18:45 I've always felt C had the right idea, then lost track and got messy and stupid. 07:18:49 hi all 07:18:59 PoppaVic, is the CORE on the wiki? 07:19:07 sproingie, good day. 07:19:09 mmm intriguing. where did C go wrong? 07:19:21 aardvarx: I can post a tarball today, if you like. 07:19:29 Very well. 07:19:46 arguably va_args is perhaps one area it went wrong. something that underspecified in a system programming language doesn't belong 07:20:01 sproingie: I think they began with the ol' KISS-principle, and then added things too similar to other things, and then screwed life with regex and whatnot. 07:20:19 C added regex? 07:20:55 there is a libc regex-support, but afaik they never matched even things as "simple" (core) as "grep" 07:21:04 since when is libc the C language? 07:21:17 libc is the crap that went into unix 07:21:26 sproingie: I'm talking about "strings and operations/opcodes" 07:21:34 which i suppose is hard to separate from C since C was written to port unix 07:21:53 the inital screwup is that there is no "string type" 07:21:57 strings ... what strings? 07:22:03 PoppaVic, will this be a separate layer? 07:22:04 exactly 07:22:09 it's a shame pascal was always so mistreated 07:22:18 a lot of C's sins have never been borne by pascal 07:22:31 aardvarx: sure, added only if you NEED strings or demand something that itself needs strings. 07:22:44 buffer overruns? you could have made the length field a range value 07:22:49 strings? got 'em 07:22:58 sproingie: I worked in pascal for a few years, and yeah - it had some oddities, but I never hated it. 07:23:17 pascal's syntax isn't always the best, but frankly neither is C's 07:23:24 agreed 07:23:34 PoppaVic: did you ever meet Karel the Robot in your pascal days? 07:23:35 I even tried modula-2, one year 07:23:47 write-once run-anywhere bytecode? pascal. 07:23:54 Ray_work: nah, I was learning to program and beat on my cp/m system 07:24:05 :) 07:24:16 sproingie: yah, except TP didn't bytecode - it compiled. 07:24:42 most did, but UCSD Pascal was the first mainstream language to compile to bytecode 07:24:54 as mainstream as languages got then 07:24:54 yah, sounds familiar 07:26:01 i think pascal just lacked some stuff that systems programming really needed 07:26:09 like bitfields in structs 07:26:26 aardvarx: the kick with this project of mine is to underlay forth, ride atop C - and come up with the "layers" of bytecode-ops to support nearly any insanity from ANS-forth to - well, we don't care. 07:26:34 right. 07:26:57 I've always preferred bitfields over masking-voodo 07:27:19 * sproingie switches his system font to tahoma and wonders why on earth anyone would use it. maybe i don't have the subpixel hinter working properly 07:27:42 looks decent on windows. looks like ass on ubuntu 07:29:19 PoppaVic, I think I might need a picture to understand what you just said. 07:29:28 However, that can probably wait. 07:29:37 aardvarx: boy, do I understand THAT feeling! ;-) 07:31:20 Anyway, back to core... 07:31:26 aardvarx: Try thinking of it this way... This engine/vm rides atop C as portable as possible. We emulate an idealizes stack-based CPU. We write "modules" supporting more and more different 'types' 07:31:43 "idealized" 07:32:04 I had it reversed. 07:32:20 I thought Forth was closer to the metal. 07:32:22 Folks can use it to write "a forth" or they can write "a pascal" - or whatever. 07:32:54 aardvarx: yes, on the whole - looking over the spectrum of Forths, they are. We want to climb above it. 07:33:19 --- join: JasonWoof (n=jason@c-24-218-59-196.hsd1.ma.comcast.net) joined #forth 07:33:19 --- mode: ChanServ set +o JasonWoof 07:33:21 C is actually closer to the metal. 07:33:26 JasonWoof, HEY!!! 07:33:45 Now, mind you: nothing sez a guy or team could not recompile the bytecode to HIT the metal. 07:33:54 hi JasonWoof 07:34:30 Why do you need the engine, then? Why not just use C for everything? 07:34:40 aardvarx: indeed, they might want to "optimize" the bytecode and THEN recompile it. - or optimize asm-from-byte-code and optimize that. 07:35:11 aardvarx: you ever write an interpreter, let alone a compiler, let alone an extensible interp/compiler? 07:35:31 Answer to all questions: no. 07:35:45 C is probably not closer to the metal than forth 07:35:52 ..It's a tedious and paiful chore nor for the faint-hearted, so: why not write a single layer/tool that you CAN use to do the schlock? 07:36:36 Too much information at once. 07:36:40 Trust me, aardvarx - you write enough interpreters and parsers over the years, you just get fed the fuck up. 07:37:02 forth is more like BCPL than C. BCPL was also untyped, it only had "cells" 07:37:11 I always liked forths; I always liked C - and they never seemed to play-well-together. 07:37:28 sproingie: I'll but that. 07:37:30 buy 07:37:35 Back to core... explain (slowly) what you mean by "flow/machine/stepping/ffi and the essentials of gymnastics..." 07:38:22 i'd say with forth and bare metal, it depends on which forth you use 07:38:23 I understand that *core* is a bunch of primary opcodes. 07:38:58 retroforth is definitely more bare-metal than C. you usually get a good understanding of exactly what asm is coming out of each primitive op 07:38:59 PoppaVic, what did you mean by "flow/machine/stepping/ffi"? 07:39:40 sproingie, if that is the case, shouldn't the model proposed by PoppaVic be reversed? 07:39:58 flow-control, machine-special (altering vm), stepping thru the pcode, and ffi outside the vm-universe. 07:40:22 right, sproingie 07:40:41 aardvarx: the map isn't the territory. either layer can produce raw instructions and access main memory, so it doesn't matter which one he prefers 07:40:49 aardvarx: you've got to keep in mind the basic premise of "Using C as a 'portable assembler'" 07:40:53 aardvarx: ultimately the end product is what he's aiming at 07:41:16 C is a lousy portable assembler. way too much policy. 07:41:39 right. And, the fact that we can then write a tool in ANY language to really, truly write asm or assemble-direct - based on the pcode. 07:42:25 sproingie: I agree, and I tried to broach that with folks... Everyone in every channel acted like I was a plague-ridden heretic and dropped it. 07:42:38 PoppaVic, machine-special? Do you mean machine-specific opcodes? If so, what are those for? 07:43:09 aardvarx: strictly related to changing/altering the vm in a consistent way. 07:43:35 see allotX and altTable 07:44:12 then consider lines 25..26 07:44:59 When you say, "*altering* the VM..." does this affect how it operates, or is it just cosmetic? 07:45:19 aardvarx: now, please bear in mind thru ALL of this: these are simple 'opcodes' - there is still a function-pointer used.. "pointer" is the important term. 07:45:31 PoppaVic: i suspect you'd have found a sympathetic ear in #haskell, which has both C and C-- backends. I imagine the C-- folks prefer it far above C 07:45:35 there is no "cosmetic" down here. 07:46:25 tho i suspect the C-- "folks" is probably just Simon, who I don't think does IRC 07:46:35 that's why he gets work done on haskell :) 07:46:42 C-- is a language? 07:46:43 sproingie: could be, the #asm folks just stared and got insulting and peeved; the ##C folks were not interested; and C-- looked like (to me) they had little to stand on. 07:46:54 yeah 07:47:12 FFI? 07:47:21 aardvarx: unfortunately, what I saw at their 'home' suggested they are writing for doze. 07:47:44 or "for sale" or something... I recall I gave up on it. 07:47:46 well, casting aspersions on C's suitability to a task probably isn't the most genial subject for #C 07:47:48 Well, keep moving then! 07:47:59 :P 07:48:01 foreign-function-interface 07:48:14 C-- works perfectly well on *nix 07:48:22 sproingie: oh, my no - the lispers and C++ wouldcheer and rally. 07:48:31 LLVM looks a bit more interesting to me, but it has vastly different goals than C-- 07:48:57 sproingie: I had to give up on it, the whole thing looked like it was mostly overcomplicating C. 07:49:10 yeah, I recall LLVM 07:49:16 C-- is for writing runtimes. LLVM is one. 07:49:35 C-- hardly overcomplicates C, it in fact simplifies it 07:50:11 this is why I decided on a forthish "engine" - we can do more and extensibly, all we need is a lower-level of organization. 07:50:20 of course its best compiler is in ocaml, so that sort of bloats your toolchain, but you only need it to build the compiler itself 07:50:22 HALT! 07:50:50 yeah, I don't want to learn ocaml atop the rest of the crap. 07:50:54 you don't have to 07:51:01 This *IS* important! Is that the primary reason for using Forth? 07:51:03 just build the compiler with it 07:51:17 aardvarx: which? what? State it first. 07:51:50 "this is why I decided on a forthish "engine" - we can do more and extensibly, all we need is a lower-level of organization" 07:51:56 i don't know what haskell uses to turn its C-- backend into native. it might have a compiler in haskell 07:51:59 right. 07:52:01 you probably want to learn haskell even less 07:52:07 YOu got it, aardvarx 07:52:58 sproingie: and, those tools would always be 2ndry installs. gcc/C is almost always installed everywhere, w/o further ado 07:53:16 sure, but you said yourself that it's crap 07:53:43 certainly nothing wrong with forth as a backend, though it would be tricky to turn into really good native code 07:53:50 No, I said it wasn't a perfect "portable assembler" - but for a VM,we don't care. 07:54:15 unless that native code was for a pure stack machine of course, like an ignite chip or a java vm 07:54:23 PoppaVic: oh you're targeting bytecode? 07:54:24 yeah. Turning the pcode into local asm or mc would be interesting. 07:54:30 yes 07:54:34 i thought you were targeting native 07:54:42 screw using C then 07:54:42 oh, my no. 07:54:55 heh, I think in C, dude 07:54:58 using C would be totally pointless 07:55:17 if your VM is stack-based, forth would make a great IL 07:55:27 Hey, once we get a "system", we can rewrite in whatever. 07:55:28 in fact gforth has vmgen for that sort of thing 07:55:42 IL - intermediate language? yes 07:56:02 there's a register machine example for vmgen too, but i never looked that close at it 07:56:25 yeah, vmgen looked pretty weird to me, but sure - I use gforth daily. 07:56:57 --- join: ccfg (n=ccfg@dsl-roigw3a42.dial.inet.fi) joined #forth 07:57:06 I think my prob with gforth is STILL that they really work on "optimizing" and "configuring" and then fall down some on docs. 07:57:25 gforth's docs are egregiously bad 07:57:57 it seems an excellent forth. not as fast as bigforth, but a hell of a lot more stable 07:57:58 I want to avoid every possible gcc "attribute" and completely ignore the cpu (except as in sizes/order) 07:58:11 PoppaVic, pcode == Primitive opCODE? 07:58:17 yeah, tinkering in gforth is fun.. Far more so than bash 07:58:42 aardvarx: pcode == bytecode 07:58:49 aardvarx: pcode := bytecode := "intermediate code" - Synthetic-assembler. 07:58:54 pcode is an old term from the ucsd pascal days 07:59:04 yeah, it dates me 07:59:05 the P stood for Pascal 07:59:10 right 07:59:20 or, think of it as "portable code" 07:59:30 C <- pcode <- Forth VM ? 07:59:32 ah, "portable" is probably actually what it stood for 07:59:41 maybe we can call it "bcode" nowadays 07:59:47 Bare Metal <- C ? 07:59:59 Bare Metal <- C <- pcode <- Forth VM ? 08:00:15 C\vm\pcode\[any languages] 08:00:17 no point in doing pcode to C 08:00:33 pcode to bare metal is well-understood and not that hard to do 08:00:52 O_o 08:00:56 I refuse, 100%, writing assembler 08:00:57 But... 08:01:00 every JIT compiler does it 08:01:06 and any serious VM has a JIT 08:01:23 pcode is higher than the VM; how can it be close to the metal? 08:01:26 That's nice, and I'm not writing an assembler. 08:02:04 pcode IS the VM ... it's the code the VM runs, anyway 08:02:10 aardvarx: easy: take a pcode-image... Convert it to local asm-source... Assemble it. 08:02:30 all the "parsing" is already done for the convertor 08:02:34 JIT is something you can do piecemeal 08:02:45 compiling to C you have to do pretty much all at once 08:03:25 if you do your so-called "JIT" ahead of time and cache it away somewhere, you have the basic model of .NET 08:03:28 morning aardvarx, PoppaVic 08:04:09 well, I fixed the bug that had me stumped yesterday, and now I'm stumped on the next one 08:04:12 that's where .NET just kills java. java spends so much effort analyzing and compiling the bytecode at runtime ... and throws it away every time it exits 08:05:14 that and assemblies have far cooler metadata features than the hack that is .jar 08:05:18 --- nick: tattrdkat -> virsys 08:05:20 yep, and .NET is not your friend either.. But, we do all agree there advantages to pcode/bytecode. 08:05:50 or should i say .jar .war .ear etc 08:06:06 i think j2ee recently metastisized a few more .?ar file formats 08:06:07 no idea - never suffer it deliberately 08:06:30 Why the hell would they NEED all those files?? 08:06:42 with .net, they just rev the schema for assemblies in some backward compatible way and the assembly cache understands it 08:06:55 PoppaVic: because java has no real concept of "a container of jars" 08:07:04 ugh. Idiots. 08:08:06 --- nick: Raystm2 -> nanstm 08:09:03 i'm sure if they gave it such a concept, you'd have to write a 300-line "archive descriptor" xml file to manage it 08:09:23 to be fair, that is exactly how .NET does assemblies, but it's more or less transparent 08:09:37 heheheheha! btw, I've back-burned the idea of stack-typing. 08:09:56 I'll never embrace XML as world-savior. 08:10:10 it makes sense for this case, it's a very hierarchical config file 08:10:28 sounds like piss-poor-planning 08:10:30 i prefer yaml for quick and dirty structured data 08:10:48 but all yaml tools i've seen are nasty unstable hacks, so i have to pull out xml when i need it to be solid 08:11:10 I've heard of several formats for config, but I often think folks try to treat a config as a precompiler 08:11:49 ..and, then they top it off by wanting weird internal tables/lookup 08:12:05 ..even weird "relationships" 08:12:17 can't blame them, when they language they're using isn't sufficiently declarative itself 08:12:28 could be 08:12:31 they yearn to move all that declarative logic into the config file 08:13:00 I always find myself using either straight-text/columnized or ancient text-style INI files. 08:13:24 KISS is a wonderful principle. 08:14:11 sproingie: I suspect those same folks also yearn for "all numbers are reals and all strings are unicode" 08:15:03 i'm all for the latter. actually strings and numbers should be polymorphic 08:15:13 in other words: they want a universally-useful, flexible, hand-holding language and files. 08:15:13 scheme does a nice job with numbers. perl and python do all right with strings 08:15:42 python does what it can to make unicode confusing and scary. in perl you hardly even notice unicode 08:15:57 sproingie: If I can come up with a way to do so for strings and numbers, I'd be fine with it. But, I think we need to lower-layers before we get there. 08:16:36 sproingie: and, mind you: opaque-types don't bother me, when well written. 08:16:49 unlike C++'s std::string 08:16:56 ewwww 08:17:13 there's a msdn blog that goes into great detail about how much std::string sucks 08:18:13 well, look at single, double and FP precision-numbers and forthish... There are some intersections, but not UNIVERSAL unity. And, it's the same with strings. 08:19:56 Now, to be honest, I'd also considered making doubles.h and reals.h reflect the single-precision core.. I see no real problem with opcodes that do nothing but scream to stderr and otherwise NOP. Folks trying to bit-bash FP's _need_ a slap 08:20:47 just curious, you designing a new language on top of this? 08:24:58 prolly.. with roots in forth 08:25:51 Idon't want it "unapproachable", but I do end up needing an extensible, interpretive-compiler for my own use anyway. 08:26:47 sproingie: this is another reason I often ask you guys (and some in ##C) about ideas/peeves. 08:28:26 I think we have - collectively - a lot of interesting ideas; we also can benefit from restricting the core to C for now - just to declare a clean api and make it portable - and THEN we can smite it as required. 08:29:52 Sadly, we have to consider ansi|c99 plus posix, but both situations are correctable in the "engine space" 08:30:20 hm. well, language design is hard. sounds like you want something like a compiler toolkit of some sort, perhaps an embedded language? 08:30:29 PoppaVic, HEY!!! 08:30:34 From what I can tell, lisp-contributors and engines already saw this years ago 08:30:47 What's wrong with POSIX and ANSI|C99 ? 08:30:47 sproingie: both, yes - bingo. 08:31:28 plenty of languages to go by as far as embedded goes 08:31:35 From what I have read, they are supposed to avoid PROBLEMS, not CREATE them. 08:31:39 what's your main goal? nice syntax? interoperability with C? 08:31:41 ansi itself is cripple, you'd need posix - and posix is no more universally-portable than C99. So, you write the cleanest C you can tolerate as the "core". 08:31:54 * aardvarx shakes head. 08:32:03 ANSI is crippled? 08:32:37 sproingie: back and forth from C/fovm, and syntaxes that satisfy forthers while not being slavish to ANS or C 08:32:45 PoppaVic, How do you define "clean"? 08:33:07 the point is to write an "engine" that simplifies all further code/app development for Metabuilder. 08:33:26 PoppaVic, I'm with you there 100% 08:33:38 what's Metabuilder? 08:33:46 aardvarx: "clean" (to me) Means, that any variation of C can be tinkered within an hour or so to make the shit build and run. 08:33:52 sounds like you're looking for runtime support for a specific tool 08:34:08 What I would like to know is, why do you perceive ANSI and POSIX as impediments. 08:34:32 Metabuilder is my conceptual "fuck gnu autoshit" utility for configure, make, install/uninstall. 08:34:33 * sproingie sees a lot of tools named metabuilder, nothing that's obviosus 08:35:14 sproingie, I'm not sure he's clear about Metabuilder at this point. 08:35:16 aardvarx: ansi lacks all forms of file-hierachy-support; Posix is adopted piecemeal all over. 08:35:21 i definitely believe in leaving autotools in the dust ... not sure what requires a brand new language and runtime though 08:35:28 I think things might get clearer once the VM is complete. 08:35:44 Metabuilder would "unify" the syntax/semantics at all steps - and be extensible. 08:36:12 to sound like a Smug Lisp Weenie ... sounds like lisp 08:36:31 ..and the distro-site would be the definitive location for Metabuilder "extensions" - just like the perl-foo site. 08:36:50 sproingie: no doubt, lisp predates forth 08:36:52 definitely sounds like lisp. asdf, specifically 08:37:08 no idea - never could figure out lisp 08:38:01 lisp unifies the configuration and building steps within the language, syntax is as regular as it gets (with some weird warts of course), and semantics are excruciatingly well-defined, without relying on all the baggage of posix 08:38:24 Basically, I'm looking at forth, C, and ASM - laying autoshit on it - and screaming at the result. THEN, trying to break out ideas and such. 08:38:26 not to say that common lisp doesn't have its own baggage, though there's always scheme for the do-over enthusiasts 08:39:28 sproingie: yeah, and I also note the lispers I talk with are always talking about issues that are more computer-science topics than "makes sense", realworld can-do. 08:40:19 I always liked the "feel" of forth, aside from mechanicals and some of the RPN issues. 08:40:40 I always liked C for the ability to pervert the world semi-portably. 08:40:54 asm, though: yer stuck. 08:41:30 And, mind you: gcc can generate asm - so, there is no reason folks should be overly bugged by using C. 08:43:11 i've always seen forth as a sort of super-duper macro assembler 08:43:20 First, we get a vm/engine working; add then vocs/words (headers); Then, we can relax or write bytecode translators to asm or C or mc - I don't care. 08:43:29 sproingie: yeah, not a bad view. 08:44:14 What does *forthish* mean? 08:44:58 rpn, i presume 08:45:22 PoppaVic, sproingie raised a good question earlier. Could you, in five sentences, explain what *METABUILDER* is? 08:46:22 aardvarx: "forthish" is my clean, collective term for something akin to all the forth-variants we know of. 08:48:28 OK.. "Metabuilder: A project which will allow programmers to utilize a single, extensible, consistent interface and language/semantic to perform all the duties which currently require learning GNU autotools, m4, sh and a variety of other, lower tools - which themselves must be installed." 08:49:37 "Metabuilder is not to be remotely confused with REPLACING GNU Autotools. It is, instead, a way to endrun a variety of languages and semantics with one unified tool and semantic." 08:50:04 Does this help you, aardvarx ? 08:50:21 unified language front-end? 08:50:22 Somewhat. 08:50:29 PoppaVic: what languages are you targeting to start with? 08:50:32 sproingie: sorta', yeah 08:51:00 sproingie: well, Metabuilder will rely on the vm/engine 08:51:30 FOr me, just insuring my C can install wherever metabuilder is installed is a plus. 08:52:01 a large part of the whole problem is Make+sh+tools 08:52:14 MAKE is a problem? 08:52:23 * sproingie shrugs. i don't use make for non-trivial projects 08:52:30 aardvarx: check out how many versions of 'make' there are 08:52:42 * aardvarx will not even try. 08:52:44 ..then check if the make uses sh or perl 08:52:59 there's posix make, gnu make, bsd make, and versions that don't count 08:53:09 THEN, look over gnu autoshit and see what THAT silly sucker requires 08:53:10 that makes (har har) three 08:53:35 i know of no make whatsoever that uses perl 08:53:49 and, hell.. Meanwhile, I could easily change my universe to work in this vm. 08:53:52 i suppose you COULD set SHELL to something exotic 08:53:57 --- quit: virsys ("bah") 08:54:06 sproingie: I had read that some doze-platforms subbed perl for sh 08:54:09 make is pretty agnostic about the shell it runs as long as it returns a status code 08:54:31 sproingie: the prob remains: they should be integrated 08:54:33 PoppaVic: oddly enough, i never thought of that. nmake certainly doesn't use perl 08:54:48 i guess nmake is another dialect, but it's retrograde, not really worth considering 08:54:59 hmm.. I'd not wish it on enemies, but I swear I read it. 08:55:05 no one writes serious makefiles for nmake 08:55:30 PoppaVic: i've never seen a makefile use perl, ever. though come to think of it, it's a pretty neat idea 08:55:33 yeah, and while "make" is ok, dipping into sh (and friends) is really nuts. 08:56:04 PoppaVic, there is something you said earlier that I still do not understand. 08:56:13 make is just old, it's still a half-decent batch process front end 08:56:21 only half-decent though ;) 08:56:34 What I'd like to target is, in a nutshell, "learn one language beyond your apps language: the job is done." 08:56:55 yah that language is lisp ;p 08:57:04 hehe - bugger! 08:57:13 sorry, smug lisp weenie again 08:57:14 PoppaVic: "aardvarx: the kick with this project of mine is to underlay forth, ride atop C, and come up with the "layers" of bytecode-ops to support nearly any insanity from ANS-forth to ..." 08:57:34 Expand on, please. 08:57:34 OK, what part was confusing? 08:57:45 layers of bytecode-ops... 08:57:51 ahhh 08:58:17 OK. hmm.. You seen retroforth? or seen Z80 opcodes? 08:58:47 The Z80 is more pertinent. 08:58:53 Nope. 09:00:40 OK, given a base-set of "opcodes"; you have an 'opcode' that is a multibyte "window". This opcode (altTable) let's you EXTEND the available-opcodes by storing/reading a new opcode "table#" and "opcode" 09:00:51 Hey all. 09:00:59 hi Quartus ;-) 09:01:01 Quartus, greetings! 09:02:18 quart-tastic! 09:02:22 WIth "opcodes", we are always, ALWAYS looking up a function-ptr at an index. For "tables" we can trat them as indices or "handles" - it doesn't matter, the underlying code KNOWS 09:02:34 trat/treat/ 09:03:11 aardvarx: so, you may lose a few clock-cycles, but you open pandora's box 09:04:20 It's similar to the idea of unicode and "multibyte" 09:05:51 In terms of size and speed, yes: you need to cogitate and examine what _suggests_ a new "table" and then what the table should hold. 09:06:03 PoppaVic, wiki update!!! 09:06:14 you added one? 09:06:23 Check it! 09:06:34 PoppaVic: I believe autoconf on Windows uses Perl -- that may be what you were thinking of... 09:06:46 ahhhhh, thanks tathi 09:07:56 I heading off to get something to eat; see you in ~:30... 09:08:38 Damn. aardvarx is getting a decent FAQ generated. 09:09:08 I note he focusses on HIS own Q rather than sproingie and others, though. 09:09:53 I include questions from others. 09:10:12 They'd rather not bring it up, so I will. 09:10:23 I'm still the dweeb, remember? 09:10:36 this is non-negative 09:10:50 Speaking of negative... 09:11:01 where's this FAQ? 09:11:26 PoppaVic, *YOU* need to stay away from denigrating the work of others. 09:11:38 sproingie: http://quartus.net/cgi-bin/twiki/view/Main/VmFAQ 09:12:23 We want to attract (promote if necessary) but *NOT* repel others. 09:12:26 aardvarx: any specific? I flail GNU and committee's w/o a bit of remorse. 09:12:39 my advice: don't 09:12:44 Well, that is not helpful. 09:13:00 I understand your views - I used to have that view. 09:13:01 Anyhoo, I need to eat... bbiab... 09:13:10 btw, added the ling to the tarball 09:13:14 link 09:13:37 venting one's spleen at the insanity of this or that implementation, whatever. but a generally negative tone just sets a negative mood 09:14:04 for instance, i wonder how many people are turned off from factor by slava's polemics against java 09:14:07 Right. And, I certainly try to NOT go into "rants" (oy, my brother - spare me). 09:14:43 well, java makes me ill, so I can understand the foulness. But, ranting is pointless. 09:15:01 One of the Forth books in my collection goes off on IF...THEN on page 2. "It's an abomination that I'll never use!" He prefers ENDIF. He's quite a bright guy, but that rant stayed with me above all else. 09:15:32 Quartus: yes, I'd seen similar in my FIG and Forth-Dimensions days. 09:15:41 THEN was a pretty stupid word, but not really deserving of a rant in a published book 09:15:52 I sometimes felt that all they wanted was a few "aliases" 09:16:12 THEN is a syntactical marker, and not hard to understand when you consider Moore turned an ALGOL if...then on its head. 09:16:17 : ENDIF POSTPONE THEN ; IMMEDIATE 09:16:22 I can recall HUGE, insane debates on flow-controls 09:16:31 The same way : name is the reverse of name: 09:16:58 sproingie: ' then ALIAS endif 09:18:04 frankly, I'd plan to code "endif" and 'then' is ignored and folks can add the alias 09:18:30 ..or it can be in the ANS voc 09:18:55 * sproingie yays that slava may be changing 'ifte' to just plain 'if' in factor 09:18:57 Great, you want to abandon accepted convention and drop back to FIG naming. 09:19:33 was good enough for FIG. might be a bonus if one is throwing away ans compatibility 09:19:45 Forth79 was ugly. 09:20:18 retroforth's even weirder 09:20:29 Oops. Forth79 is the one that soundly rejected the FIG ENDIF. 09:20:34 tho being closer to asm one can see the motivation for the compare-branch ops 09:20:56 Read "FIG" for "Forth79" up there; I confused them momentarily. Forth79 was the first standardization effort. 09:21:14 well, "names" should be clean mnemonics, but not affecting the mechanics. 09:21:29 oh, shit never-ever confuse f79 with FIG 09:21:41 * PoppaVic cowers and cries 09:22:24 I can tell you that I stuck to FIG until F83 - F79 wasn't ever on the agenda 09:22:40 Too many people never break free of the chains of whatever they learned first. Doubtless you learned FIG FORTH first, PoppaVic. 09:22:43 i never even knew there was a F79. just FIG, then F83 09:22:59 sproingie: cleaner, too 09:23:17 Quartus: perhaps, but I was there - and F79 was a snotrag. 09:24:00 The only reason I gave up on FIG was basically the costs versus their articles... It got bad for awhile. 09:24:09 And F83 uses THEN, not ENDIF. 09:24:13 THe costs are _still_ too high, though 09:24:23 The costs of what? 09:24:41 my one real beef with ANS, and well, the forths that came before, off the top of my head is C@ 09:24:59 Yeah, I never liked 'THEN' - the costs of membership - to get the sometimes-trash/sometimes-useful, slow newsletter/rag 09:25:00 sproingie, go on. 09:25:01 it's supposed to be "char", but it's a nod-and-a-wink "byte" 09:25:10 everyone ues C@ to access a byte and nothing but a byte 09:25:18 yep 09:25:26 I use it to access chars from time to time :) 09:25:55 sproingie: honestly, it was NORMAL in those days - all the talk of late about 'bytes' and 'octets' and 'chars' is a lot of noise 09:26:00 Anyway if a char is not a byte, there'll be implementation-specific byte-access words, to be sure. Unless the architecture is so weird as not to be byte-accessible. 09:26:14 the prob is the direct-relationship of 'char' to 'string' 09:26:21 PoppaVic: in forth circles, it's naught but noise. the rest of the world has learned a painful lesson to disassociate "char" from "octet" 09:26:42 sproingie, Standard Forth disassociates them. 09:26:46 well, i guess C hasn't 09:27:11 sproingie: I never, ever say "octet" - I say "byte" or "nybble" - and freaky machines with non-8-bit "bytes" are just too freaky to suffer. 09:27:42 PoppaVic: i say "byte" too, these days it's synonomous. back in the day "octet" was coined, it was not necessarily so 09:27:54 octet is the French word. 09:27:55 I even asked around... and smaller-than-8-bit-byte machines fetch to GET bytes 09:28:13 Quartus: let's not go there ;-) 09:28:23 or larger. i've heard of 10-bit byte machines 09:28:36 they would make BCD a snap 09:28:42 "byte" and "nybble" are synthetic words, and we all KNEW that 20 years ago 09:28:58 of course. it's a neat word tho 09:29:08 the guy who coined the term also invented the backslash 09:29:11 the expection of 8/4 bits was just expected 09:29:15 "octet" is *actually* the French word, PoppaVic. I'm not making a joke. 09:29:31 Quartus: I know, I know - np 09:29:44 i suspect they weren't trying to be francophone 09:29:59 Luckily, I ain't a frog/french 09:30:16 PoppaVic, can you leave the ethnic slurs at the door? 09:30:24 sproingie: at the time, nybble/byte were "buzzwords" 09:30:45 "nybble" is an odd one. i hardly ever see it spelled with a y these days 09:30:45 Quartus: I just *KNEW* you'd say that 09:31:06 sproingie: yeah, which dates the authors 09:31:33 I guess their spell-checkers save them 09:31:40 * sproingie has docs for a serial interface that talk about "nibble-encoding". device drivers that talk about "the high nibble". no y's 09:31:52 i should grep the linux source to see which is prevalent 09:31:55 yeah, no suprise 09:32:01 2nd or 3rd generations 09:33:36 seems linux source uses nybble in function names pretty consistently 09:33:46 but "nibble" is far more prevalent in docs 09:33:56 I dunno, sproingie.. I really think we got an opportunity. Just not sure how to flog it. 09:34:00 got a few funcs using nibble too 09:34:11 sproingie: specll-checkers and rugrats 09:34:17 spell 09:34:21 * sproingie sees nibble winning about 5 to 1 09:34:47 yeah, and folks talk about and listen to Rap-crap incessently. 09:34:52 which begs the question, why did he spell it with a 'y'? 09:35:06 byte that is 09:35:11 same as "bYte" 09:35:20 right, why was byte spelled that way? 09:35:33 oh, because it was a "bite" of memory 09:35:42 maybe to make it more visually distinct from "bit" 09:35:54 and a "nybble" of a "byte" 09:36:04 bit, bite, i could see how that could get hard to read 09:36:08 sure. 09:36:20 the term bit predates computers 09:36:27 Google gives it 6.5:1 in favour of "nibble" 09:36:50 I could care less what folks insist upon today. 09:36:51 was it shannon who coined "bit"? 09:37:00 No idea. 09:37:23 bit, nybble, byte - then we had 'word' and 'dword' - and THOSE went to shit. 09:37:24 Yes, sproingie -- 1948. 09:37:33 hm, shannon attributes it to someone else 09:37:41 wikipedia knows all 09:37:46 or at least claims to 09:37:51 heh 09:38:45 anyway, i may start banging on a retroforth that uses wide characters exclusively 09:39:06 i haven't a damn clue how to treat surrogate pairs though. are they considered two characters? 09:39:21 What's always and ever bugged me is this: defining the terms employed and sizes should be systemic... The ABI. 09:39:42 sproingie: what is a "surrogate pair"? 09:39:52 This sounds like yer working from rfc's 09:39:52 utf-8 as a native format is kind of compelling, but probably too insane for forth 09:40:25 PoppaVic: surrogate pair is a utf8-16 thing to represent codepoints that won't fit in 16 bits 09:40:42 shows my ignorance that i don't know the exact codepoint range that surrogates start at 09:40:43 not really... Still cogitating it, and I *DO* want a "strings" layer, but utf-8 encompasses ascii PLUS 09:40:44 PoppaVic: I think terms for sizes are usually defined by the CPU architecture. 09:41:11 tathi: yeah, they like to hide such beasts down in obscure files that are not portable. 09:41:22 PoppaVic: i love the backward compatibility of utf-8, but variable width strings by default is insane for a bit-banging language like forth 09:41:34 i just did the utf8 routines as an exercise 09:41:46 er variable-width chars that is 09:41:52 sproingie: this is why I'm adamant that a "string" is a type, and needs an opset/s 09:42:15 PoppaVic: you'll get no disagreement from me there 09:42:44 So, again.. What sort of std "opcodes" apply to a "generic string"? 09:43:01 I can even see, 'string' and 'dstring' 09:43:17 all your standard string ops 09:43:26 or, hell: "istring" and "ustring" 09:43:27 create, index, collate 09:43:46 if you're working with utf-8 you almost certainly want strings to be immutable 09:43:48 there ARE no "standard string ops" - we have very few consistent guides. 09:44:14 afaik, a "string" is a "literal" 09:44:20 really the only standard string ops are compose and index 09:44:23 a BUFFER can be almost anything 09:44:36 compose a string out of chars, and index the char at the nth positon 09:44:40 the rest is gravy 09:45:00 a concept of length is pretty much de rigeur too 09:45:02 yeah, but we need a decently "complete" basic set of opcodes. 09:45:09 not really 09:45:19 no not strictly necessary 09:45:22 but quite nice to have 09:45:33 length can be 0..255, or 0..16K, or.... 09:45:40 all you strictly need are compose and index 09:46:01 sproingie: imagine that no possible secondary (colon def) is possible w/o our opcodes. 09:46:05 or "construct", since compose sounds too functional 09:46:26 then pick the string ops out of whatever language 09:46:33 hehe 09:46:52 javascript's not too bad to look into, though i think it assumes mutable strings. you might leave regex out too 09:47:29 python's also decent, though some of the methods like .join() are nonsensical 09:48:15 strings aren't really a hard problem unless you want to make some super-duper string-handling language 09:49:13 you need essentials. 09:49:56 envision: "3 nth string" and "3 [] string" 09:50:14 they are NOT the same 09:50:30 i'd just stay away from perl, which may have some very rich string handling ops, but strings are too fungible with ints 09:50:34 and, I already know it was a pair of semi-bad examples 09:50:37 that whole nasty "scalar" thing 09:51:35 i hope perl6 gives me some sort of pragma to not auto-cast scalars between strings and ints 09:51:39 well, there are two classes of string: ascii/utf8 and "other"; there are also FIXED (const) "strings" and "buffers". 09:52:11 an ascii string is a utf8 string. if you mean a string indexed only by byte, you really just have a buffer 09:52:14 From those, you need to consider functions on and between 09:52:23 if you have a "buffer" with variable chars, you really have a vector of chars 09:52:38 whereas a buffer is a vector of bytes 09:52:45 sproingie: there are never any guarentees on implementation - only API 09:53:17 all depends on how you want to approach types 09:53:32 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 09:53:32 umm.. Yes, and also "no". 09:53:38 typeless language like forth, you need a different op for each type. no polymorphism there 09:54:09 imagine the engine. All we know is opcode 'bytes', and CELL and DCELL. 09:54:19 right. 09:54:42 the polymorph is when you reset the opcode lookuptable of funcptrs 09:55:14 OR, you run higher, and dick with wordlists, vocs, and words 09:55:50 Basically, the opcode-tables are nothing more than a codified vtable. 09:56:48 polymorphic vm, eh? 09:57:00 i think parrot is like that too 09:57:34 sure, if the programmer wants to insure he will input/process/output consistently, he can change anything - including the original defs 09:57:38 i guess most manifest typed languages do that, since the op itself checks the type 09:57:59 Yeah, I've been trying for a week to consider 'type' 09:58:20 ...I can't come up with anything that works as well interpreting as compiling. 09:58:29 unless you're a fan of mind-bendingly abstract maths, i wouldn't go down the rabbit hole of type theory 09:58:46 once compiled, we could care less: but I was trying for paranoia. 09:58:58 just pick a type system like static or manifest and go from there 09:59:34 sequent and predicate types might be academically interesting, but you'll never get out of the morass 10:00:01 "manifest"? Nothing I've paper-computered seems to play well with interpret AND compile - and I just KNOW we have to mix them to build new words or interpret inout. 10:00:04 input 10:00:15 manifest type, as in the type carries its type information with it 10:00:19 like javascript or python 10:00:38 oh, crap - for every data-payload OR opcode? 10:00:52 i tend to stay away from "dynamic" type, since that's an overloaded term 10:01:01 I ain't writing something that slow 10:01:09 yeah, manifest type means having a type field on every chunk of data 10:01:17 and typically it's pretty damn slow, yep 10:01:18 hmm 10:01:31 though there's ways around that, like with specializing compilers 10:01:34 let's skip typing for now, I had a brainfart to mull 10:01:45 java's hotspot is a specializing compiler, psyco is another 10:01:57 yes, specialized interp or compilers are the forte' of forthish 10:02:27 specializing compiler waits until you call a function, then looks at the types passed in, and compiles a version for that type 10:02:53 I can approach this another day, based on a few notes last night. But, I don;t believe we need it for CORE issues. 10:03:33 conceptually very simple, though you can get into lots of dataflow analysis gyrations trying to optimize away the type checks 10:03:47 stuff that's over my head to say the least 10:04:02 Let's cogitate "strings" over the next few hours or days... I think they are extremely important, and generally either crap to suffer, or you get into the machine. 10:05:28 if strings are opaque types, you'll want to add a byte-vector type as well 10:05:37 I'm pretty sure we could offer a sensible set of funcs for an opaque-type. And, base it from CELL or DCELL w/o getting too crazy 10:05:52 not as a support thing for strings, just as a separate type. you'll probably want casting ops to convert the two 10:06:03 sure, I have no issue with a BUFFER type - but we need to mull this over. 10:06:56 The kicker is... We might embed a "string", but not a buffer. 10:07:15 if you want to mutate it, you better convert it to a buffer 10:07:26 abosultely. 10:07:46 and the size of the string need never agree with size ofbuffer. 10:07:57 phone, bbiab 10:08:15 np 10:09:31 A string that has a 'size' (range??) followed by data and zero-terminated doesn't bother me. the SIZE issue might. 10:10:03 no need to do size *and* zero-terminate 10:10:11 A buffer should record {current,max}, to my mind - and speak of bytes 10:10:26 i don't consider zero termination to be a viable option for a robust string type 10:10:29 sproingie: I would/do to facilitate C, and scanning 10:10:58 i guess you could overallocate by 1 and zero-terminate it. that would certainly make conversion a lot simpler 10:11:10 the zero-byte means "no more, dumbass" and we can speak in _substrings_ 10:11:20 yeah, trivial 10:11:43 the kicker is the count-size 10:12:06 Well, that took a wee bit longer than I expected... 10:12:10 but I'm back. 10:12:14 I can SEE strings more than 255 bytes, but I have issues seeing strings longer than a short. 10:12:28 wb 10:13:08 so, for headers: sure, 255 is MORE than enough. But, not for literal strings - and then consider ascii/utf8 versus unicode. 10:14:24 Personally, I feel all headers should be in ascii - and not even utf8 10:14:49 With a great scheme, sure - I'd consider utf8 10:15:18 BUT, the core/essentials should stick to ascii 10:15:23 So, is the content of the FAQ accurate? 10:15:43 aardvarx: I think yer doing a great job on it, to date. 10:16:24 Thanks. 10:16:30 aardvarx: make sure you incorporate any other folks Q/A that seems significant as well, and yer stylin' 10:16:43 I am doing that already. 10:16:49 Good deal. 10:16:56 Where do you think most of the ideas came from? 10:17:07 It can't hurt anything, and it might help you or others. 10:17:17 I did *NOT* come up with the suggestions that you balked at. 10:17:47 stay calm, man ;-) THe entire concept is basically blasphemy and heretical. 10:18:41 So, before I left an issue about attitude came up. 10:18:47 Where do we stand with that? 10:18:52 There are a dozen languages that deal with one facet or another, and a dozen more that try to resolve the mess - I'm simplying sticking in a hot-poker and seeing where it leads. 10:19:32 I'd recommend checking the log, f you really left it was too far fore my local-log. 10:19:49 That's not what I was referring to. 10:19:59 oh.. WHat did you mean? 10:20:04 GNU Auto 10:20:08 --- join: virsys (n=virsys@or-65-40-177-69.dyn.sprint-hsd.net) joined #forth 10:20:21 That rhetoric must go. 10:20:50 oh, fuck autoshit... No one likes it, and we all would love an alternative. The "alternative" simply has to be encapsulated and consistent. 10:22:02 * aardvarx must be missing something... 10:22:09 aardvarx: I say "autoshit" and MEAN "autoshit", I'm saddened it seems offensive to folks, and I understand that every tool serves a porpoise, but I ain't about to hug and kiss the authors anymore than suggest we burn them at a stake 10:22:48 Just remember this: 10:22:54 Actually, the whole issue strikes me as more "political correctness" 10:23:41 You don't like to be heckled by virl; what makes you think that those developers would appreciate you doing the VERY SAME THING you detest so much? 10:23:42 aardvarx: I've been coding too long to worry much about shorthands like this 10:24:11 shorthands? 10:24:16 What are you tallking about? 10:24:27 I never "heckle" virl - I ignore him because every time I mention XML is not godly/godlike he rants as much as when he misreads and gets defensive 10:25:05 I do "bitchbait" him occasionally, I do it to in-laws and liberals too ;-> 10:25:32 I never said that you did. 10:26:01 so, never you fear: I respect programmers all over the damned place; I just won't kowtow to them and their beliefs and idiosyncracies. 10:26:03 I said you don't like to be heckled *BY* virl... 10:26:47 You're trying to be productive (I think.) 10:26:50 virl is no isse, because virl is busilily improving his own mindset and stance against the world. 10:26:55 issue 10:27:32 Nobody's perfect. 10:27:41 Hell, if enough folks feel .net and xml is "the answer", maybe I'll no longer programmer - just return to leatherwork and reloading. 10:27:53 "be a" 10:28:21 --- quit: virsys ("bah") 10:28:32 --- join: virsys (n=virsys@or-65-40-177-69.dyn.sprint-hsd.net) joined #forth 10:28:34 You can't please EVERYONE, aardvarx - you can try to placate them, and you can always ask for the zero-dollar "opinion". 10:29:22 Will it hurt to be nice? 10:29:31 you can even respect them (instead of placate) - but it does NOT mean you should stub yer smoke and leave the bar, ok? ;-) 10:30:13 depends on the def of "nice" - I'm quite tolerant, and if folks don't believe it - they need to live longer (if they can). 10:32:07 tsk, tsk, tsk... 10:32:11 Thou dost protest too much. - William Shakespeare (1564-1616) 10:32:12 aardvarx: please recall my input over the long haul... I doubt you'll find much that belittles/ridicules folks here. I don't often do it, but I do retain the right to disagree, 10:32:49 aardvarx: dude, if that's yer feeling, fine. Then just look unto others you "approve" of. 10:34:30 PoppaVic, I don't have any beef with you. 10:34:53 aardvarx: dude, you need to examine your own words.. and the channel. 10:35:31 I'm not sure that you can get much support in the OSS community if you're tearing others down to raise your profile. 10:35:37 Not a troll, just a thought. 10:35:59 I never gave a rats-ass for "politically correct". Ever. I just try to spin around and see another guys view, if possible. But, I don't let his own views corrupt me. 10:36:44 I don't get it -- why is everything about politically correctness with you? 10:37:01 I mean, I don't even know you that well; I want to help out. 10:37:22 because about 80% of "polite" seems to mean (any more) "don't rock any boat". 10:37:58 I rock boats, launch them, build them, question-them and generally treat them like any other tool. 10:38:44 OTOH, I also try not to ridicule countries or religions as best I can, (but I still chuckle over the reactions to 'frog' and 'chin' ;-) 10:38:58 Well, I'd like to think that intelligent people can disagree, without losing all semblance of civility... 10:39:23 "civility" based on whom's definitition? Back to context. 10:40:49 aardvarx: you ever hear the phrase "Don't teach Gramma' to suck eggs"? 10:40:51 ok, PoppaVic to remind you now the 3th time, I NEVER THOUGHT THAT .NET, JAVA OR XML IS THE ANSWER, WHAT ARE YOU? STUPID OR WHAT? 10:41:22 virl, you are asking for trouble... 10:42:05 See? virl is already ranting - I see it daily here at home, and I like the kids AND virl. *sigh* Too defensive/paranoid. 10:43:35 aardvarx, some people don't understand something when it's said quietly, even some don't understand it when it's said loudly, so some need to understand something to be said very very very loudly. 10:45:03 I wash my hands of both of you. 10:45:04 I suspect that the "understanding" is quite one-sided. 10:45:22 aardvarx: fine with me, 10:45:58 I want to help out; but I am *NOT* that desperate to help. 10:48:36 ranting? so what do you mean? 10:49:18 --- quit: PoppaVic (Nick collision from services.) 10:49:36 --- join: PoppaVic (n=pete@0-1pool75-1.nas24.chicago4.il.us.da.qwest.net) joined #forth 10:49:43 damned isp 10:50:49 aardvarx: here's the deal... I can respect a variety of folks, but I won't apologize for being me or because of their beliefs - although I tread lightly around religion. Other than that, the hell with it. 10:52:08 I wanted to help you PoppaVic, but you are rude and ignorant to every idea. 10:52:31 You don't get to insult other ethnicities. If racism is fair game with you... 10:52:39 I've gone with gays to bars - both sexes; I've dealt with folks alergic to The Universe; and I've dealt with Wicca, baptists, methodists and cathlics, etc. I won't apologize for speaking up. 10:53:10 aardvarx: you read a lot more into my posts than were ever meant, so I suspect AYOU - rather than me. 10:53:49 yunno ... it's one thing to be steadfast and not compromise. but when everyone around you asks you to tone down the abrasive rhetoric, then maybe you're in the wrong crowd, and it ain't the crowd that needs to change 10:53:52 about the worst I can say is, "I lose touch with friends over the years". 10:54:01 PoppaVic, I think you overstate your point a bit more often than is considered polite 10:54:53 docl: which? I'm trying to answer aardvarx as I can, and as replies delay I try to explain further, (assuming he's confused). I can cease really fast. 10:55:58 I guess the impression I get is we are supposed to play Victorian and snuggle warm-fuzzies. 10:56:15 forget it. i give up 10:56:40 i have to shower and get going to jury duty, which will no doubt involve me sitting around and getting to read my book 10:56:59 ouch 10:57:21 sproingie: stay well 10:57:30 i.e. no stress today. sounds like more far more fun than irc 10:57:41 :) 10:57:58 well, I've dat around for such - it ain't amusing. 10:58:03 dat/sat 10:59:26 PoppaVic: FWIW, I'd prefer it if you'd drop the unnecessary language as well. 10:59:38 Not that I'm particularly offended by it, but it does make it hard to take you seriously. 11:00:15 yeah, it often sounds like you're joking when you're serious, or vice versa 11:00:18 WHICH language? autoshit/autofoo? unicode/unishit? the term "shit"> 11:00:26 yup 11:00:27 ? 11:00:32 e.g. "autotools" is only one char longer than "autoshit", and I really don't see that using the latter does anything other than make you come across like an asshole. 11:00:33 ahhh 11:00:44 ok, I see, 11:01:03 hmm 11:01:07 there's a freenode rule about avoiding "emotive" terminology when possible 11:01:27 this rule speaks the truth. 11:01:29 yeah, yeah - "Ve haff Rulez" - I'm aware 11:01:44 see, most of us are not offended, it's just kind of distracting I guess 11:01:54 distracting, I can see 11:02:21 well, I'll try to avoid it. I wish xchat had a reverse-filter. 11:02:51 Offensive are your forays into bigotry. This is *decidedly* not a forum for you to expound on your personal opinions of the French, the Chinese, or any other of the planet's cultures. 11:03:12 ok I think I missed those 11:03:21 probably in the backlog 11:03:27 Count yourself fortunate. 11:03:40 sadly, it's been "autoshit" for a decade; and gramp - well, we won't speak of his "collective races/groups" terms - althogh, they were friendly/fun, more often than not. 11:04:17 i.e. no real insult intended? 11:04:25 Quartus: ahh, poor me. Spank me very much - they were shorthand and jokes, more often than not. 11:04:40 Offensive and inappropriate 'jokes'. 11:05:03 *Particularly* in a forum that is a) about a programming language and b) international in scope. 11:05:04 docl: omg, he'd use terms we'd pale over - and it was all "the stuff we used to say in the mine": apparently, acceptable universally. 11:05:59 Whether or not your grandfather was a racist is not relevant to this discussion. 11:06:02 Quartus: Fine. Yer sensitive... THe channel is sensitive.. I shall refrain, else I may be spanked. 11:06:22 hmm. well there's also a matter of frequency. if you say it a lot that is more distracting than an offhand comment or two 11:06:24 Quartus: FUCK you, it wasn't RACIST - he was himself. I watched. 11:06:46 And evidently learned well. 11:06:55 I never really understood him until deades later, but he was honest: they ALL spoke that way. 11:07:06 decades 11:07:26 * PoppaVic sighs 11:07:33 I give it up. 11:07:53 PoppaVic: Dude, whether you like it or not, it's just not polite to do that stuff anymore. 11:08:29 PoppaVic, I've been more than patient with you; spent time trying to understand your barely-coherent ramblings; politely asked you to refrain from emotive language and ethnic slurs. You've just yelled 'FUCK you' at me. I retract my offer of wiki space; I'll be removing the relevant pages forthwith. 11:08:33 And if nothing else, it's counterproductive for you -- you might get a better reception to your ideas if you tried to be less abrasive. 11:08:49 tathi: yeah, welcome to the New World - where it all is offensive. I can see it. And, near as I can tell this has nothing to do with anything other than personalities. 11:09:09 I'll try, tathi - I can't do more than that. 11:09:34 Quartus: fine. NP. Suit yerself. 11:10:38 ..sorry I ever asked you, Q. 11:11:36 anyway... We left off with "strings" 11:13:32 --- quit: virsys (Remote closed the connection) 11:16:14 interesting. 11:19:16 Wow. That was quick. The FAQ is gone. 11:19:33 yep. 11:20:16 Q is fast on the trigger, and "racist" - throw out the water with the baby. Fine. 11:20:42 I think he was just making a point, PoppaVic. 11:20:59 aardvarx: well, sorry I can't help you further. Feel free to talk or email me. 11:21:11 docl: point made, done and over. 11:21:48 PoppaVic, you have *GOT* to be kidding. 11:22:11 How so? 11:23:09 Quartus, tathi, docl and sproingie are uninterested; you have shown yourself to be a very divisive character. 11:23:40 You've just given their collective expertise the middle finger. 11:23:50 ahh, so what you mean is "Not interested, blow off" - then say so, 11:24:16 that's not what he's saying 11:24:19 Nope. Never ridiculed Q, tathi or sproingie - ever. Not once. 11:25:01 not on purpose, I understand. 11:25:10 not even once name-called them. The whole episode is a political-correctness "I am offended" issue. 11:25:20 docl: indeed 11:25:24 i shouldn't have come back and read this before walking out... 11:25:40 ..and I agreed with tathi, and try to keep it toned-down. 11:26:00 sproingie: I'm a bad-boy - spank me 11:26:01 but frankly it was edifying. i'm a tunnel-visioned geek when i talk tech, and i've worked with far more abrasive people 11:26:13 meanwhile, I've tried for 15 minutes to get past it. 11:26:29 but frankly, i'm flabbergasted that i can meet someone 10-20 years my senior and so god damned immature 11:26:30 sproingie: I know, I been at it too long. 11:27:03 so long. there's other people here i want to talk to. today, and perhaps for some time after, you're not among them 11:27:10 --- join: virsys (n=virsys@or-65-40-177-69.dyn.sprint-hsd.net) joined #forth 11:27:12 which part? Since I never said anything that was ever intended to be more than a joke/shorthand? 11:27:14 laters sproingie 11:27:26 * PoppaVic sighs 11:28:57 Well, that's about five re-interpretations. 11:29:01 PoppaVic, if people take a joke the wrong way it's a sometimes good idea to apologize to them 11:29:11 I tried, goddamnit 11:29:28 I even use ;-) a lot of times 11:30:11 well I think you're creative enough you can think of a good apology that will satisfy the whole channel. 11:30:19 I can't change their cute little PC mindsets! *sigh* Not even sure it really matters, if they are that "sensitive". 11:31:18 hey everyone has nerves, right? you can't blame people for trying to focus, can you? 11:31:21 docl: np. I doubt it will matter, I tried - it's over, done and gone. Fuck it. I'll end up lurking and not bothering to post 11:31:39 "focus" on what?? 11:31:59 nerves, I understand - I'm ready to throttle sibs 11:32:56 sorry they get on your nerves. we're human beings on the other end here and don't appreciate being treated as whiny nebbishes when we're looking for civility. 11:33:00 programming issues. if you put swear/cuss words in your programming terminology it's itchy for some people. 11:33:23 but i see there is no room for compromise. so good luck with that approach to life. see ya. 11:33:30 --- quit: sproingie ("Chatzilla 0.9.68.5 [Firefox 1.04/20050922]") 11:33:34 sproingie: It's neither consistent, applicable or contextual. 11:34:00 ahh/ Thanks docl. understood. 11:34:57 * PoppaVic bites his tongue and just deals. 11:35:06 good boy. :) 11:35:22 apparently, it won't matter 11:37:05 I could deal with that. But all this horseshit over stupid interpretations is just goofy. 11:37:21 interpretations? 11:37:33 Yep. 11:37:53 like interpreting ethnic slurs as sincere rather than jokes? 11:38:23 One guy sees them as insults, another as "racial slurs", another as . 11:39:12 whatever. Np. It's not going to cause another "flood" (pick a religion) 11:40:11 heh - we even argue on unicode. ;-) It's MORE than hard to take seriously ;-) 11:43:25 docl: you ever read Brian Daley? 11:43:31 no 11:43:37 ahh 11:44:34 well, he did a few SW books, but I liked his "Alacrity Fitzhugh" trilogy 11:45:05 yeah actually I might have read his SW books 11:45:59 in one book, we had a 'droid with a "linguistics module" - it kept 2 chars from ever being insulted/irked - diplo-speak. 11:46:38 ..Until "Our Heros" pulled/broke the module and got the 2 chars to kill each other. 11:46:50 hehe 11:47:06 Such is IRC/internet. 11:47:13 yeah that's how it goes 11:47:17 yup 11:47:43 same thing, worded differently, and it's all just fine 11:47:43 Oh, well - the best you can ever hope is to outlive yer "opponent" 11:47:55 yeppers - filter that sucker 11:49:50 anyway, don't take my shit too serious... Too many years and miles, and too many more to come. Folks are becoming to "sensitive" to . Similar is occuring with the insanity of allergies and kids and schools, let alone politics. 11:50:02 too 11:50:04 I learned to filter incoming stuff that way at work. personally I never cuss, but I sometimes have to work alongside people that do. and I realise they don't mean anything much by it. 11:50:31 nah, it's like use '!' or "that '!'" 11:50:47 maybe I'm just too lazy to get irked 11:51:13 english lacks a really GOOD method to emphasize. and, yeah: I agree 11:52:38 plus, "shit" covers soooo much - and the lesser-used "clusterfuck" sez it all. 11:53:11 hmm I did so *not* want to read that. :P 11:53:29 anyway, sorry I broke up the CF with their ideologies, maybe once I leve they will again spew well. 11:53:37 hehe. 11:53:55 docl: honestly, I _rarely_ want to hear it. 11:54:19 cool 11:54:57 but back to programming. you were discussing strings? 11:55:21 recall my own Ma' - over 70... Let's not offend her TOO far ;-) (we can discard my deceased father and his religious whackiness) 11:55:39 docl: yeah.. a string "type" and operators. 11:56:21 we can think CELL or DCELL and consider subtypes, but a STRING is a structure - a mechanical-layer. 11:56:39 yeah. it's an array of chars usually, right? 11:56:50 typically, yes 11:57:05 but - the assumptions are multifold 11:57:20 and, why are we MAKING assumptions? 11:57:50 I can envision a "buffer" that is a size-restricted byte-array 11:57:53 maybe because we have to to get it to work? 11:57:58 because otherwise you get bogged down in an excess of undifferentiated information and never get anywhere :) 11:58:12 ahhh, wb tathi ;-) 11:58:16 I disagree 11:58:28 I've noticed. ;-) 11:58:59 you can make lists of char arrays, and abstract it so that they are all part of the samy "string" 11:59:13 I think a few hours of contemplation of BUFFER versus string, thinking of structs, opaque and operators will prove it out 11:59:26 docl, yes - very similar 11:59:47 buffer tends to connotate a specific size, is that the difference? 11:59:53 yes 12:00:17 docl: a buffer just must be limited, but of byte-sizes 12:01:05 a "string" can be (usual is) a const or var of 'type' and indexing/operations are based on "unit-size" 12:01:33 a buffer is sort of a precursor to a string then, as you can get a string of the proper exact size from a buffer that's somewhere in the neighborhood. 12:01:33 I think we need a major rethink of the 'type' and operators 12:01:58 right. You can generally go from a buffer to a "string" 12:02:17 a buffer can also be "in terms of" a string. 12:03:05 It's seriously "non-intuitive" from the moment you thing 'string' and (wtf is a) 'char'?? 12:03:12 think 12:04:20 Right up until unicode/wchar_t: we think of "zero-terminated bytes" - and I think THAT isan issue. 12:04:32 the string "type" is a bit more abstract/complex than say the integer type. 12:04:50 absolutely. 12:05:03 the buffer type is a bit simpler 12:05:04 it's almost a "complex type" 12:05:22 yep 12:05:25 also a char-array is pretty much the same as a buffer 12:05:36 almost, not exactly 12:06:32 what's the basic difference there? 12:06:48 a "buffer" should always be: a worst-case, maximum-size, disposable "buffer" 12:07:07 oh - "working with bytes" 12:07:26 ok. buffer connotates disposable and worst-case big size. 12:07:37 a 'string' is a lot more akin to a 'foo struct' 12:08:29 sorta' like: "I'm embeddable w/o more than alignment being an issue" 12:08:53 what's alignment? 12:08:57 think of CELL, DECELL "STRINB" 12:09:10 alignment is a bs issue for cpu's 12:09:12 size of cell? 12:09:32 cell's are - usually - sizeof(unsigned) 12:09:52 or sizeof(void*) or sizeof(fptr) 12:10:11 docl: on some platforms, if you're fetching values that are bigger than a byte, you can only fetch from an aligned address. 12:10:14 dcells usually use 2x cells 12:10:30 tathi: efficiently. 12:10:31 i.e. for a 4-byte (32-bit) value, your address has to be divisible by 4. 12:10:54 has to do with segreg and foo-foo 12:10:54 PoppaVic: some platforms (PPC) don't allow non-aligned fetches at all. 12:11:17 really?? Never seen that! Must be asm level 12:11:30 ok, divisibility. for the mapping and such. 12:11:40 * PoppaVic politely skipped 'shit' - twice ;-> 12:11:42 yup. Makes the hardware simpler and faster. 12:11:45 right! 12:11:56 good for you, PoppaVic, have a cookie :) 12:12:12 I will! I have! I'm sooooo "pretty" ;-) 12:12:29 Some platforms, like x86, allow you to use any address, but it's slower if you're not aligned, so (I think) compilers usually align things anyway. 12:12:30 * PoppaVic ponders blue fur... 12:12:38 atta boy 12:12:46 yeah, they generate abs-addresses 12:13:11 but, this is MOSTLY an "ABI issue" 12:14:18 in other words: don't tie yerself to it, but expect "foo-foo" to store best in 'CELLS' 12:14:57 ..on the whole, sure: the cells make sense - so... "What is a 'string'?" 12:15:06 string is a program 12:15:11 ahh 12:15:17 * PoppaVic spanks docl 12:15:42 "strings" is a program/app 12:16:24 docl: I - and I believe tathi - are not quite sure what the opaque-type "string" should mean. 12:16:38 So, I throw it into the arena 12:17:04 a way of handling arrays of characters that allows you to change their sizes dynamically 12:17:11 arrays of bytes I mean 12:17:30 how do we interpret them? why? how? 12:17:55 Mind you, once embedded there is no change to "larger: 12:18:04 "larger" 12:18:26 ..at least - AS CURRENTLY SEEN 12:18:46 I dunno' if that is a major issue, but it could be 12:19:34 well if it's at the top of a buffer/heap, you can change it to larger. that's pre-embed I guess 12:19:45 docl: it defies all current semantics/distro 12:20:12 buffers are sort of like heaps 12:20:12 think of: ," this is a test" 12:20:21 yes, they are related 12:20:41 heap is a buffer in memory? 12:20:53 the above example never suggested we should make it changeable or implied a storage-size 12:21:16 the "heap" is an ancient term for malloc() memory 12:21:16 yeah 12:21:46 well, ," and " are typical 12:22:12 they PRESUME a whole lot they should never have pressumed 12:24:47 their "context" is also suspect 12:25:04 - and we can't ignore them because of a poor context. 12:26:01 tathi: hmm. this also suggests something about the various opcode-tables. 12:26:29 what's that? 12:27:01 I'm not sure - it just flashed and smit me.. 12:27:20 imagine: [opcode][..data] 12:27:47 or: [opcode][table][opcode][...datat] 12:28:00 umm.. 12:28:07 ok there's opcodes and tables. the opcodes correspond to data in the table? 12:28:23 opcodes are indexes - core is assumed 12:28:25 data being a set of internal machine instructions 12:28:44 maybe - or representations via bytes 12:29:04 [lit][32bit-word], for example 12:29:12 32+8 12:29:31 lit? literal? 12:29:36 yah 12:30:10 docl: [..] is an 8-bit opcode unless otherwise documented. 12:30:16 ok 12:30:37 32bit-word is an opcode? 12:30:44 but, once yer RUNNING the opcode - nothing sez it can't process/span 0 or N 'bytes' 12:30:49 no 12:31:11 32-bit would be, (at this time), a standard "cell" 12:31:58 docl: it's a really, really freakish mind-set/space 12:32:25 you want to 'encode' everything- and less bytes are better 12:32:30 ok 12:33:03 I think a good 30% or more of the "issues" are personal-preferences. 12:33:44 so every type of basic instruction corresponds to an instruction of a single or few bytes 12:34:03 lit is an actual opcode? 12:34:18 yes, and their potential "data" - which the code would offset w/i the "engine" 12:34:43 yeah, docl - it simplifies life no end 12:35:26 ..basically, it simply implies that HIGH level code need not dick around "low-level" 12:36:10 and "opcodes" (low-level) should never need more than C, or can be written to use asm. 12:38:06 Sooo, the "opcodes" and cells/dcells and orders can become an API (don't forget stacks) - and we could otherwise care less what the core runs in. 12:38:51 hmm 12:39:09 The kicker is almost 100% opcodes/relative/cells 12:39:34 yeah... boy, this can screw with yer head 12:39:48 try and simplify this for me 12:39:55 which? 12:40:07 are opcodes machine codes? 12:40:13 or bytecode? 12:40:25 VM codes, yes: bytecodes 12:40:45 ok. makes more sense now 12:40:49 yah 12:41:05 but it also opens doors and falls on you like a truck 12:42:08 Leverage, all is leverage.. And, extensibility 12:42:21 these are held in a table which corresponds them with the code that they execute 12:42:52 right. THe 'opcode' is an index into a table of func-ptrs (ala' C) 12:43:57 "fetch an opcode; check range; vector thru ptr" 12:45:13 tathi had a great idea I ran with. Hell, I'd done this for vtables (roughly) 12:46:01 the IDEAS are kosher. Worst is the "stacks" and "orders". 12:47:51 ok, well - also "interp/compile typing" - THAT I can't see protecting well 12:48:50 --- quit: aardvarx ("If not, it'll be me on the floor...") 12:49:23 anyway, docl - you can get the idea. I need to adjust an url (since Q wants to flaggelate himself). Send me an email to mailto:pfv@hypercon.net 12:49:52 Do your best to refrain from making any personal comments about me in this forum, sir. 12:50:33 I'll call it a Knight and be back tomorrow - I'm expecting sibs. Stay well. 12:50:38 --- quit: PoppaVic ("Pulls the pin...") 13:46:03 --- quit: tathi ("leaving") 14:14:57 --- quit: YoyoFreeBSD_ (Read error: 110 (Connection timed out)) 14:49:27 --- quit: crcx (Remote closed the connection) 15:14:36 --- quit: Ray_work ("Stupid NetSplit") 16:02:21 --- nick: nanstm -> Raystm2 16:02:54 Hi Ray. 16:03:30 Hi Quartus, how's business? 16:04:44 Not brisk enough! But ok otherwise. How about yours? 16:04:52 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 16:05:16 Sinusoidal ( sp?) 16:05:38 Up and down, eh? 16:07:13 yes. Got 2 of the largest orders the company has ever recieved, just this week. 16:07:58 Nice. 16:08:09 fixing a plate of kfc. brb :) 16:08:12 k 17:10:40 --- quit: virsys (Remote closed the connection) 17:14:32 Back, dinner was good. 17:19:06 :) 17:21:50 Working my way through Paul Graham's "On Lisp". The intro is well-written, and then he dives into all sorts of arcane examples; I can't imagine a beginner staying on the path. 17:25:05 paper book? 17:25:51 Seems like a lot of books on programming are like that, unfortunately. 17:26:54 yeah. I read a lot of first chapters. 17:27:46 :) 17:29:21 The introduction or preface or whatever to SICP was fun. :) 17:30:13 I've seen that abreviation before. What is it? 17:31:02 structure and interpretation of computer programs 17:31:08 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 17:31:16 I see. 17:31:22 Thanks. 17:31:32 prominent scheme book :) 17:31:49 http://mitpress.mit.edu/sicp/ 17:31:55 I've seen Design Patterns 17:32:06 Ya mit press stuff. 17:32:20 I even tryied the mit E-macs 17:33:06 Foreword, that's what they call it. :) 17:33:08 thanks for the link, tathi. 17:33:12 hehe 17:37:17 the universe is all one big program :) 17:43:05 What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.'' 17:43:05 Alan J. Perlis (April 1, 1922-February 7, 1990) 17:53:11 Graham leaps directly into mapcar, closures and scoping. He uses the word 'consing' without ever once explaining cons. 17:53:26 wow 17:53:39 The intro is so good, I expected it to be a great book. 17:54:35 One of the footnotes in the first chapter goes something like 'This example will also work in a Lisp with dynamic-scoping, using mapcar, but for a different reason, and only if neither argument is named x.' 17:54:44 That made part of my brain die. 17:54:47 graham is amazingly overrated 17:55:04 i like the beatdown maciej ceglowski gave him on his blog 17:55:07 consing is concatenating a string, right? 17:55:18 docl: nope. it's creating a list 17:55:22 grahm is good at sounding like he knows what he's talking about 17:55:35 docl: yah that's pretty much how ceglowski put it 17:55:40 He undoubtedly knows Lisp. He does not, however, know the faintest thing about teaching it. 17:55:55 http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm 17:57:54 Great paintings, for example, get you laid in a way that great computer programs never do. Even not-so-great paintings - in fact, any slapdash attempt at splashing paint onto a surface - will get you laid more than writing software, especially if you have the slightest hint of being a tortured, brooding soul about you. For evidence of this I would point to my college classmate Henning, who... 17:57:56 ...was a Swedish double art/theatre major and on most days could barely walk. 17:58:41 Yeah, first time I read something of Graham's on the web, I wrote him off as a big airbag. 17:58:57 I was kind of surprised later to find out that he was some lisp guru or something. 17:59:05 it's pretty funny 18:01:08 I don't know if he's any good at writing Lisp. But he learned about it at some point. 18:01:59 He slams Raymond's "What is a Hacker" in that article, too -- I agree with that. I just read that. 18:03:34 Ha. He calls Graham an "excellent author" as regards "On Lisp". 18:03:35 read the footnote on ESR. it's truly frightening to imagine 18:04:34 Heh. I liked Eben Moglen's article debunking Raymond's characterization of hackers as a gift culture. 18:04:35 Dear god. 18:08:13 sproingie, I expect you're referring to ESR's monograph on how to please women? 18:09:01 well, I'm off. Got to be up early to butcher turkeys. 18:09:03 --- quit: tathi ("'night all") 18:09:05 You think that's scary. http://www.kernelthread.com/hotshots/pictures/esr/esr0.jpg 18:12:56 damn, ceglowski is definitely becoming my favorite pundit 18:12:58 http://www.idlewords.com/2005/08/a_rocket_to_nowhere.htm 18:16:03 Quartus: i think that picture is doubly scary when combined with the mental images of his sex howto 18:16:23 in fact i'm feeling somewhat ill at this point thinking about it 18:17:26 MC: Writing popular online essays is like being the prettiest girl in Scotland - satisfying on its own terms, but you can't let it go to your head. 18:29:33 MC has clearly never been to Scotland. 18:31:02 I think MC is speaking to quantity not quality. 18:31:53 them scots lasses are mighty fine indeed 18:33:20 Part of the problem with being a popular blogger is the need to be urbane quickly, which clearly isn't easy even for MC. 18:34:24 ok, kernel upgrade, time to reboot. brb hopefully 18:34:27 * sproingie waves 18:34:42 --- quit: sproingie (Remote closed the connection) 18:37:33 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 18:38:56 It worked. 18:48:06 golly, gentoo is starting to make sense to me. to run kubuntu, i have to have piles and piles of crap i don't need 18:48:23 like poster. makes poster-sized prints. because kdeprint depends on it 18:48:37 or ico. because xbase-clients depends on it, and kdm depends on that 18:49:14 doot doot 18:49:21 but hey, hard drives are cheap, so why not clutter up the whole system with thousands of executables, manpages, and packages you'll never want or use? 18:50:42 i use a distribution with packages to keep packages up to date, not so that i can keep mounds of shovelware around 19:04:50 huh... just playing with google maps 19:05:17 just hit the button to swap the source and dest for driving directions, and it gave a different route 19:06:03 oh... heh, must be that one-way exit 19:09:19 i wish google maps showed bus routes 19:10:13 that'd be cool 19:10:55 I have had the bus map and google map open at the same time, and spent a while trying to figure out where the stop was 19:11:20 bus schedule says "vetrans park" but gives no address 19:11:53 turned out well though. I could actually see the building I wanted to go to from the bus stop 19:28:11 --- join: virsys (n=virsys@or-65-40-177-69.dyn.sprint-hsd.net) joined #forth 19:32:59 Just reading reviews of "On Lisp", people seem to love it, but all carefully explain that it's not for beginners. But the intro of the book is plainly aimed at the beginner, and chapter one starts out simply enough. 19:36:58 Here's a review that says "It starts out slowly, by handling function calls, lexical scoping, closures and the like.". :) 19:37:15 How would you start out quickly, in that case? 19:37:22 heh 19:37:41 suppose that would be slow if you were a lisp expert 19:37:52 No kidding. 19:38:15 like starting a book by explaining that in forth you read into a space and then look it up etc 19:38:36 He starts with defun, and launches into functions that return functions. 19:39:28 sounds like it's aimed at people who know lisp already 19:39:50 The Forth texts I have here -- maybe a dozen or so -- all start out well enough. Interpreter, literals, addition, colon words -- and then leap off into outer space and talk about threading and dictionary headers. 19:40:19 JasonWoof, the intro talks to the reader about Lisp as though it were a brand new concept the reader had never heard of before. 19:41:01 If you replaced 'Lisp' with 'Forth' in the intro, it'd make a good case for Forth, too. Then chapter one starts, and he reveals Lisp to be the hairiest, most confusing thing you'd ever cross the street to avoid programming in. 19:42:35 Which it isn't, particularly, but you'd never know it from this. 19:44:59 getting across the intermediate stage has been a challenge for me in both languages. 19:45:35 Good books are hard to find. 19:45:49 probably because easy stuff looks boring. kind of like playing Mary Had A Little Lamb on the piano I guess 19:46:39 Boring maybe, but these guys go the other way. I mean, just because you know the details under the hood doesn't mean you have to rip it open and show it. 19:47:36 heh 19:47:37 yeah that stuff is confusing. and I sit around wondering how it all fits in 19:47:49 until I finally learn it and it's something bonehead 19:47:55 I haven't read any programming books since high school 19:48:02 As I think I've said here before, how many books on learning C launch into how the compiler manages its symbol tables in chapter 3? 19:48:12 I did a bit of basic, following a very fun and silly book 19:48:43 then in highschool I did C and read a book and tried out the stuff I was learning 19:48:52 I started to do the same with C++ 19:49:06 I have an introductory book here on VB, I think it is, and the first example is print "Ward, I'm worried about the Beav." 19:49:06 then when I found out that C++ didn't work nearly as well as it sounded in the book, I lost interest 19:49:21 and I don't think I've read a book on programming since 19:49:57 Forth needs a good book. Pelc just wrote one, but it looks more like a brain-dump of everything Pelc could think of about Forth than a teaching text. 19:50:00 yeah. first they tell you how easy it is, then they show you how hard it is. 19:53:16 teaching is hard 19:53:28 Seems to be. 19:53:31 teaching to an audience that demands immediately relevant application is harder 19:54:00 in that sense, it's easier to pitch quartus forth, since it creates really tiny apps on the palm 19:54:08 I know I ought to give more grace. I've just seen too many hello worlds. 19:54:13 it's hard to pitch it on a PC though 19:55:16 sproingie, I would suggest that anyone to whom it's hard to pitch learning a new language is probably never going to write anything worthwhile anyway. If somebody wants to learn Forth (or Lisp, for that matter) for the sake of it, they need a good text -- one that actually teaches. That's a rare bird. 19:55:44 true, but there's always the folks wondering "what the hell do i do with this now that i have it? 19:55:59 aside from a couple applications, i'm actually among those 19:56:10 yeah that's me 19:56:39 That confuses me. Why did you learn to program if there was nothing you wanted to write? 19:56:53 with lisp, i have cl-sql and cl-ppcre, and an application i can immediately port to using those 19:57:38 i learned to program when i did have stuff i wanted to write. my muse has since not only left me, she's got a restraining order out against me 19:57:41 Quartus, it's hard to write operating systems and browsers. even a simple mud server's beyond me. 19:58:00 You want to write operating systems and browsers? 19:58:31 i get this existential angst whenever i decide i once again want to write a mud 19:58:33 of course. doesn't everyone? 19:58:42 a sort of "what's the point, it's a text mud" 19:59:10 docl, that's kind of like wanting to throw a rock and hit the moon. That lofty an ambition will likely keep you from ever starting. 19:59:14 * sproingie has no desire to write a web browser. freakin hairy tedious stuff, and it's already accomplished quite well 19:59:34 operating systems aren't that hard. device drivers are hard. 20:00:24 Maybe a better analogy would be wanting to write an encyclopedia, instead of, oh, an article. 20:00:44 i might write a 9P protocol library in forth, tho that begs the question of what the hell i'd want to do with it 20:01:11 interoperate with inferno perhaps ... for whatever i want to do with inferno 20:02:32 I guess a bit more realism would do me good. I'm probably notorious for being unrealistic. 20:03:07 dreams are supposed to be big. goals are how you get there, and they're supposed to be realistic 20:03:26 maybe I just take people too literally when they say "shoot for the moon, at least you won't hit your foot" or "operating systems are easy" 20:04:01 if I separate goals and dreams maybe I can get somewhere? 20:04:03 If you just pick some probably-unreachable target, I suppose it's easier to find excuses not to do anything at all. 20:04:19 operating systems are relatively easy. it's a common one-semester undergraduate project to write a simple OS with tasks, memory management, and so forth 20:04:52 relatively. but to my current level, not easy at all 20:05:06 i.e I shouldn't fool myself into thinking that. 20:05:36 Or do the opposite; assume it's true. Start the OS. When you hit a hurdle, start learning. 20:05:56 to myself it wouldn't be easy either, i don't know the first thing about dealing with MMU's and DMA channels and whatnot 20:06:02 that's what OSKit is for 20:06:31 does OSKit actually teach you what to do? 20:06:32 --- join: snoopy_16 (i=snoopy_1@dsl-084-058-128-038.arcor-ip.net) joined #forth 20:07:05 not really. the point of such a project is to apply what one learns in an OS course 20:07:40 it's a junior or senior level undergraduate CS topic 20:07:55 it's, in reality, hard work to the uninitiated. 20:08:08 So an ideal project if your goal is to never produce anything. 20:08:17 well yes, and the OS's that come out of those courses are all toys 20:08:42 a real OS has to have all kinds of weird wrinkles deal with the supreme ugliness of the hardware it runs on 20:09:06 to say nothing of all the grunt work that goes into device drivers 20:09:18 if you thought the PC architecture was insane, try some of its peripherals 20:10:11 perhaps I should focus on muds instead of oses for a while. 20:10:23 i'd still like to write a mud just for the heck of it, but i know that even superior technology will not cause people to use your mud 20:11:21 much of the mud world is about cultures and subcultures, and frankly i don't even like most of it 20:11:29 yeah. 20:11:43 the average maturity level tends to be extremely low 20:12:07 The software universe isn't just operating systems and MUD programs. 20:12:09 there's niches though 20:12:30 Quartus: yeah it's also mp3 organizers. none of those on freshmeat :p 20:12:32 I guess I could try for a spreadsheet or something 20:12:56 actually spreadsheet would probably be a good program for my level 20:13:02 go for a spreadsheet that does something weird and useful you wished other spreadsheets did 20:13:08 * Raystm2 's wife goes to work and the ChuckBot the Glyph coding marathon begins. 20:13:24 well I never use them, but I guess I could pretend I did 20:13:48 I'll sleep on that idea tonight. 20:13:50 Is finding a suitable project really your trouble? 20:14:05 finding inspiration is mine 20:14:46 Ertl's posted a tweaked Forth spreadsheet -- not his, he just tidied it up for Gforth -- today in comp.lang.forth. It's neat, and would give you a platform to build something really useful on. 20:14:51 when you don't know what app to code. sharpen tools. Or better, make new ones. 20:15:23 eh, i'm tired of sharpening a saw that never cuts anything 20:16:01 It's not finished till it can e-mail :) /me cracks /me up :) 20:16:12 Raystm2, :) 20:16:21 Man. I wish my problem were a lack of ideas to pursue, instead of a lack of time to pursue them! 20:16:38 I'd get more rest. 20:16:57 you should command those looking for projects 20:17:04 command? 20:17:07 well, 20:17:08 another part is procrastination 20:17:13 I was in the NAVY :) 20:17:23 if i got garbage collection into retroforth, that could open up so many doors 20:17:25 you know, parcel out the jobs. 20:18:04 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 20:18:09 Raystm2, I suspect 'lack of inspiration' is just an unwillingness to work in different clothing. 20:18:11 ( navy stands for Never Again Volunteer Yourself ) 20:18:25 If I suggest a project, it'll be uninspirational. 20:18:32 there is that 20:18:33 grr. it's certainly not a conscious block, Quartus. 20:19:03 Then start! Start writing the impossible thing. 20:19:08 but my stupid subliminal blocks could be stopping me 20:19:21 ok. first step. write something. 20:19:30 * docl tabs to a text editor 20:19:47 for me, Chess was once a challenge to code. 20:21:18 gtg 20:21:34 k bye :) 20:22:35 Fear of success/fear of failure is another major cause of non-starting. 20:23:19 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 20:23:29 fear of success i never quite get. i think it's "fear of almost success" 20:23:32 --- nick: snoopy_16 -> Snoopy42 20:23:34 getting close then screwing up 20:24:31 tho for rf, i am still waiting on that assembler to get used in the source so i can stop puzzling over words like this: 20:24:32 : next m: r> $48 1, $8f0f 2, here - 4 - , $ad 1, ; 20:24:55 i dont care how much asm i learn, i am never going to want to work with raw hex 20:25:30 there's just no way to hack on words like that 20:25:57 Uh oh. This is ColorForth Ray you're saying that in front of :) 20:26:03 hehe 20:26:07 not a prob. 20:26:25 * Raystm2 is extreamly tollerant. 20:27:00 I agree, it's difficult at best. 20:27:04 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 20:27:12 not for prime time players. 20:27:25 it's just not mnemonic 20:27:31 I embrace the invention of the mnemonic assembler. 20:27:32 there is that 20:27:45 ya me as well. 20:27:51 Not Chuck, though. 20:28:03 wimp :^) 20:28:17 He's had enough of that 'readable' stuff, he wants his hands right on the ones and zeros. 20:28:17 Well, we don't know that really. I think he just made the consession... 20:28:24 hahaha 20:28:40 chuck does what works for chuck, and he does get real work done with it 20:28:47 That he does. 20:28:50 if only they still had toggles on the box... 20:29:00 * sproingie finds it weird talking in the third person about someone with the same name as him 20:29:09 :) 20:29:21 george likes his kung pau 20:29:32 Raystm2 thinks... so long as you don't do it yourself. 20:30:30 actually chuck's approach is far more GUI and less code oriented than others 20:30:46 Speaking of toggles, I've got a Popular Electronics January 1975, announcing the Altair 8800, that I think I'm going to auction. 20:30:54 he uses okad to simulate heat flow where others would have to use complex vlsi simulators 20:31:16 he eyeballs it visually for hotspots because his stuff is that efficient 20:31:20 sproingie, I heard that. But have they ever released a chip? 20:31:41 he's designed and released several. he's in the custom silicon business 20:31:47 or was. no idea what he does now 20:32:08 I know about the old ones... but this new stuff, the OKAD... anything from that? 20:32:52 granted he wasn't designing new major CPU's like a pentium or a Cell, more like microcontrollers and such, but he was plenty productive 20:33:13 i dunno what he does now, i think he's semi-retired 20:34:16 consulting it looks like 20:37:42 unfortunately chuck comes off as a run of the mill crank on his own pages 20:37:49 Well, I can say I hope to never have to directly work with machine code again. If the Dark Ages come, I hope we can keep the mnemonic assembler. :) 20:37:51 using a lot of the same specious arguments 20:38:00 >>> Bloated code does not just keep programmers employed, but managers and whole companies, internationally. Compact code would be an economic disaster. Because of its savings in team size, development time, storage requirements and maintainance cost. 20:38:11 heard it before. it's just bullshit through and through 20:38:29 Yes. But isn't that mostly Jeff Fox's writing? 20:38:48 jeff fox is to chuck moore what leonard piekoff is to ayn rand 20:39:02 An unfortunately accurate assessment. 20:39:53 in this case, it's either horse's mouth, or chuck publishing jeff's words, since it's at colorforth.com 20:39:55 http://www.colorforth.com/1percent.html 20:41:57 It's not attributed. Hard to tell. 20:42:14 I think it's Chuck. 20:43:42 i should probably stop trying to put gc and continuations into forth and write something in factor, which has both 20:44:04 but then i'd lose my excuse for not writing anything, and i'd have to figure out something to write in factor 20:44:07 Heh. 20:44:19 You need gc and continuations to write anything? 20:44:50 I've spent decades coding and rarely used either. 20:45:07 i like to use microthreads 20:45:19 In theory, you mean -- because you don't write anything. :) 20:45:38 well i have written stuff that used them, in stackless python 20:45:59 I'm largely unaware of what a microthread even is. Somehow I don't think that's holding you back. 20:46:08 mass DNS lookup utility. much easier to spawn 5000 microthreads than deal with 5000 elements in a select 20:46:36 used it to map out a few /16's of spamming ISP's 20:47:01 for a mud, the applications of lightweight threads are really obvious 20:47:41 used to do a fair amount of moo hacking. i should get over muds tho, leave them in the past. i just wish i could find something similarly compelling as they were 20:48:16 Stop finding excuses not to write, and start writing. Inspiration will come. 20:48:27 irc and im grate on me, real steps backward in text chat 20:50:00 there is #forthmud, and we could use your experiance. 20:50:09 I want to write a reasonably-complete BASIC in Standard Forth, as a stepping-stone for new coders. 20:50:33 on the moo moo, i could type something like this .bonk ~Quartus and ~Raystm2 with `rock. 20:50:56 Ok, you just said 'on the moo moo', and I'm guessing nothing funnier will be said all night. 20:51:06 yes i dup dup words 20:51:17 ~Raystm2 raise sheild to block" 20:51:18 assuming you had an object named like, oh, "Rock of Ages", it would substitute the name properly 20:51:29 with a moo moo here, and a moo moo there 20:51:32 it would substitute player names appropriately, to where you would see "you" instead of your name 20:51:41 and it would conjugate the verbs 20:52:14 I played an online MUD for awhile about 15 years ago. 20:52:34 you could also put that into a single "message" command to just turn that into, say "bonk ... with " 20:53:03 nothing like that will ever exist for im chatrooms or irc. it's sad, 20:53:17 That's humanity's loss. 20:53:20 hell this is a world where the letter 'u' is becoming a pronoun 20:53:22 Inefficient bonking. 20:53:42 flexibility, customization. i can't even have a description on irc 20:53:59 None of which is any kind of meaningful barrier to communication. 20:54:14 crc's irc client/server and #forthmud, Keep watching. 20:54:31 I thought some of the prominent MUD languages were Forth-based? 20:54:34 how about a factormud? 20:54:39 Quartus: just MUF 20:55:23 I have no idea what the one I used to play was written in. 20:56:11 I'll just hack a DS into a crappy laptop..Actually it wouldn't be too crappy, it would be ok. because it would have FOS 20:56:13 MOO is a thing all its own, it takes bits from pascal, oberon, the unix filesystem (all objects and slots have "rwx" permissions), and self 20:56:27 moo moo? 20:56:33 lambdamoo 20:56:44 yes, moo moo 20:57:13 Here a moo, there a moo. 20:57:21 everywhere a moo moo 20:58:05 Moore says that C results in complex applications that have millions of lines of code. How many complex applications really have millions of lines of code? 20:58:11 Old Chuck Moore he had a server farm. eieio. 20:58:16 i remember putting in a bug report on jayshouse for irregular plurals that weren't being covered in $english, including moose->moose, louse->lice, mouse->mice 20:58:37 the response was "i added these in case someone wants to start up FarmMOO." 20:58:55 another poster said "would failure to match an animal raise E_IEIO?" 20:59:01 Heh. 20:59:19 :) 21:01:00 i've seen super-complex applications with only a few hundred lines of code. anything with millions of lines is going to be organizationally complicated by definition 21:01:17 linux kernel certainly has several million 21:01:36 It'd have several million in any language. 21:02:17 yep, unless your idea of a device driver is the nonfunctioning one from colorforth's examples 21:02:18 Really, the kernel is that big? I never knew that/ 21:02:50 functions on the machine(s) it was written for quite well. 21:03:21 "write one for your machine today" 21:03:45 counting lines of code is a bit of a bogus benchmark. for C, counting semicolons at the end of a line works reasonably well 21:04:27 there are exits in some lines... 21:04:50 one line could handle 2-4 things easily. 21:05:16 I'm trying to parse this -- "Preoccupation with contingencies. In a sense it's admirable to consider all possibilities. But the ones that never occur are never even tested. For example, the only need for software reset is to recover from software problems." 21:05:17 it's a bit more complicated, i think the more common ones count more than that 21:05:22 I can't figure out what it means. 21:05:42 2.6 kernel has roughly 4 million lines of code 21:06:42 Quartus: he's saying robustness and internal error handling are for weenies, real programmers write perfect code on the first try 21:06:52 Is he? I'm not sure. 21:07:14 The first two sentences I understand. The last two, I don't. 21:07:30 generally, what does cf do when given bad input? 21:08:11 Says on that page that in colorForth there are 'no errors that can be detected'. 21:08:26 hehe 21:08:28 no 21:08:46 when you call a word that isn't there you get a '?' on the command line. 21:08:54 also 21:09:39 if you have coded a word that calls a word that doesn't exist or is not yet loaded, the cursor will be right behind the word, because it's linked to the bytecode parser. 21:10:14 you always know imediately where you went wrong. 21:10:41 it's the last tested word. 21:10:42 It was when you booted up colorForth. :) 21:10:46 hahaha 21:10:47 lol 21:11:38 gotta remind Glyper' author, Roger Levy of the error handler in colorforth. 21:12:03 right now, his is crash or burn.(run that is) 21:12:54 its okay that way too. but you have to guess what you did to crash. 21:13:20 in colorforth you always know what you did, provided you use convention and test test test each word. 21:13:27 That's some new use of the word 'okay' that I haven't previously encountered. 21:13:58 ya, I'm tolerant of crash-run systems. 21:19:53 Men, I don't have the real experiance you enjoy. Quartus with your production forth, sproingie with your spam attack. You code for a living. I'm a hobbyist and I took a very very long time to get to the smallest coded chess in the world using colorforth. It's not an achievment from your points of view. From hear, it's amazing. 21:20:20 actually i am most impressed at seeing a chess program in colorforth 21:20:21 here that is :) 21:20:52 colorforth is radically strange and brutally minimalistic, so it's nice to see something real in it 21:20:56 I have 4 now, at different levels of complexity. with 5 more planed that ends with killer AI> 21:21:10 chess is not my thing, i prefer go, but that's just personal taste 21:21:34 Chess was a problem I knew I could get my head around. 21:21:43 what i do for a living can hardly be considered real programming 21:21:52 I'm not a great player. I just understand the problem domain. 21:22:05 Oh? 21:22:22 what i do is glorified scripting, really. i sprinkle in a bit more advanced code than the rest of the folks in my group do, but that's as far as it gets 21:22:22 Social programming, maybe :) 21:23:30 You never did answer my question about what algorithm you use for chess, Raystm2. 21:23:47 didn't I? 21:24:00 didn't I say Raygorithm? 21:24:02 No. 21:24:08 Yes, you did. Can you amplify that? 21:24:16 no it's stupid. 21:24:27 there's a computer player, right? 21:24:30 I really didn't understand the question and didn't want to admit. 21:24:47 not yet, untill now it's been too player. 21:24:51 just recently 21:24:57 Oh. I thought you had a computer player. 21:25:11 ah. you mentioned the killer AI. the computer player could really give cf a workout 21:25:14 the computer can read a list of moves and act them out. 21:25:43 I have a version of that made out of wood. 21:26:16 ya the ai's that i'm collecting and stealing from are going to be inplemented in versions 5-9. 21:26:30 Quartus :) lol again. 21:26:59 in some ways, there's not a lot of novel ways to do chess AI. they're basically all depth search with pruning and heuristics 21:27:12 but i'm here in fortworth and can't reach your table. 21:27:18 determining where to prune and the heuristics of what to weight each choice is the hard part 21:27:45 these days you could probably just stuff the whole BCO into an opening dictionary 21:27:53 with colorforth as the only code running on the machine, even a small machine could contain major move books in mem. 21:28:00 ya 21:28:44 Ok, here's something I'd like written in Standard Forth -- from a given board position, generate all possible legal next-moves. If somebody wants a project. 21:29:05 I've mentioned that before, 21:29:28 actually a database that the world could use of every possible move or board position . 21:29:51 Er, I think there's something like 2^168 possible board positions. 21:29:53 it's quite a few, but it's certainly within the capabilities of modern PC's to store 21:30:00 but what would that database gain you? 21:30:01 yes 21:30:13 hub of chess? 21:30:15 :) 21:30:16 2^168 is more than the total number of elemenary particles in the universe. 21:30:31 you'd have a list of every possible position, but not how it got there or who has advantage 21:30:51 many board positions are unattainable in the legal number of moves for a tournament. 21:31:22 So how would this imaginary database be of value? 21:31:29 There are other natural contraints. 21:31:46 If I figure that out, i'll charge the proper amount. 21:31:54 well if you calculated every possible game, chess would become as conceptually simple as tic tac toe 21:32:06 absolutely. 21:32:19 I think the math on that has been done, guys. Computationally infeasible. 21:32:42 your still going for every possible position? 21:32:46 it's actually feasable within our lifetimes, though it won't really help a human player 21:33:03 I don't think it is, sproingie. Even with constraints it's a vast number. 21:33:40 you're thinking exhaustive search of all possible positions of all possible moves 21:33:57 Exhaustive search, generation thereof -- same problem. 21:34:10 you don't need to do that if you're looking at a minimax solution where the mini and max are "lose" and "win" 21:34:36 whats the 64! factor of 32 pieces? 21:34:38 because there's lots of opposing moves from a "win" that require no corresponding change of moves 21:35:20 i'm saying it's probably computationally feasable within our lifetimes. there's games more complex than chess, they can just try their hand at that 21:36:04 there's no computer that can beat even the lesser masters at Go, and solving the game is a FAR more vast problem space 21:36:23 even if computers solve chess, that doesn't mean humans will stop playing it 21:36:58 a 3d milling machine can knock out any statue to the most perfect precision. we'll still have sculptors 21:38:00 "It has been estimated that the number of distinct 40-move games is 25 x 10 to the 115th, far greater than the estimated number of electrons in the universe (10 to the 79th)" 21:38:02 hell, kids still play connect-4, which is a *trivially* solved game 21:38:50 number of electrons in the universe is meaningless, we can calculate more information than that by far 21:39:31 sproingie, that's a really, really, really big number. 21:41:01 hehe :) 21:41:40 i still dispute that you'd ever have to compute every possible game 21:41:46 you could find enough investment in this world to have a server farm host the database and let some algorithm order the new storage space when the calculation needs it :) 21:42:12 Ray, it follows that if we converted every electron in the universe into storage, we'd still be out of room. :) 21:43:26 have to make more universe. 21:44:00 compression 21:44:09 and in a way, it is stored 21:44:26 by way of the specification. you just might have to compute lots of it on the fly 21:45:51 At any rate, I'd love the program I outlined above. 21:46:13 I have a couple of theories I'd like to explore, and that code is the first step. 21:46:21 code? 21:46:29 how far up above? 21:46:39 "Ok, here's something I'd like written in Standard Forth -- from a given board position, generate all possible legal next-moves. If somebody wants a project." 21:46:51 oh sorry yes 21:47:01 would have to consider what chess rules too. speed chess would be a bigger problem space to search because you can take the king 21:47:05 you don't even say check in speed chess 21:47:06 A board position is the location of all the pieces, plus whose move it is, plus castling status and en-passant status. 21:47:24 rigth 21:47:31 right even 21:49:05 casting status is queenside and kingside for both sides. 21:49:16 sometimes stored as rnbqkbnr/pppppppp/0/0/0/0/pppppppp/RNBQKBNR/can castle/ has castled/ ep/something else i forget. 21:49:40 I'm not too worried about the input/output format, eventually I'd go with that kind of board description, yes. 21:49:46 I need the workhorse part. 21:50:39 I also want a PGN parser, but I've mapped that out already; I think it's pretty easy. 21:50:49 oh yeah yeah /check/kingcheck or some such. 21:51:03 PGN? 21:51:57 Portable Game Notation. 1. e4 e5 etc. 21:52:05 FEN is "Forsyth-Edwards Notation" is the position-description standard. 21:53:38 It would be fine if the engine read a FEN, and output all the possible next-moves from that position in FEN. 21:53:48 But that part is icing. 21:53:56 :) 21:54:25 I remember now, yes. ChuckBot reads a subset of PGN right now. 21:54:45 The rose on the icing would be to output the PGN notation for the move, too. 21:54:54 so does b18chess. 21:55:04 yes 21:55:21 b18chess lists the input as PGN in a list next to the board. 21:55:31 but I guess most chessgames do that... 21:56:00 well, there's PGN and there's PGN. There is an abbreviated notation when the move is non-ambiguous. 21:56:37 But that's not the worry. The hard part is the move engine. 21:56:46 you know what? i'm wrong! b18 only ever displays board co-ords. 21:57:06 there's not wkp2. 21:57:21 wkp2? 21:57:31 you know white king pawn 2 21:58:05 I've never seen 'w' and 'b' used as prefixes for notation, but ok. 21:58:16 c4thches2 does do moves like 'wkp 2 up' 21:58:27 it's inplied in whosemove. 21:58:49 if you were telling some one of one move you would include it. 21:59:13 Generally the notation is either 1. e4 or 1. ... e5. 21:59:30 yes board co-ords. 21:59:48 e4 is a destination for a pawn move; the P is not written. 22:00:03 not necessary, agreed. 22:00:24 Well, yes, not necessary, but also specified as not written in the PGN standard. 22:00:28 only during taking when two pawns could take would you specify. 22:00:46 Still no 'P'. 22:00:51 then you give the file. 22:01:07 kpxn 22:01:31 No. Never kp. 22:01:56 The PGN standard is here: http://www.very-best.de/pgn-spec.htm 22:02:02 I see. I'm not using PGN then :) it's ontop of PGN. 22:02:59 Here's a text copy: http://pgn.freeservers.com/Standard.txt 22:03:26 i see. instead they give the file letter. 22:04:08 both are conversant, I believe. but mine is not the PGN standard, obviously. 22:06:30 I'm even willing to assume that people not familure with PGN or even the fact that ranks are numbered and files are lettered, use a system similar to the one i'm describing and used as a boy. 22:06:48 Possibly. But it's all about interchange, and being able to play against other systems. 22:07:07 Now you point takes on new life for me :) 22:07:35 And being able to import games into, say, Fritz for analysis. 22:08:26 Right. I use the board co-ord subset only at the lowest level, so PGN or Fritz could handle easily. 22:08:45 AI's too :) 22:13:32 32(64!)-1. but that assumes king vs king only boards and the like. 22:13:52 It's not that bad. Pawns can't be on rank 1 or 8, for instance. 22:14:10 right 22:14:17 But it's bad. 22:14:21 hehe 22:15:43 some moves lead no-where or worse, but you don't know that till you've calculated that, but once you have you never go down that "tree" . 22:15:56 You also can't have more than 16 pawns, or fewer than two kings -- but no more than two kings. 22:16:27 right and no more than 9 queens ( potentialy ) :) 22:16:42 There's some theoretical maximum of promotions, and it doesn't get to 8 per side; I think it can't. 22:16:57 And a promotion can be Q, N, B, or R. 22:16:58 I'm certain your right :) 22:17:15 Q unless your a master closer :) 22:17:27 Nevertheless all four are legal. 22:17:42 It is clever to promote to only what you need to win. 22:17:47 or your choise is the move that kills with out overkill. 22:17:52 yes 22:17:55 it really is 22:18:21 * Raystm2 wishing he was THAT good. 22:18:45 You'd have to be playing someone noticeably worse than you for them not to see it coming and resign. 22:18:59 There is that. 22:19:13 I wouldn't see it comming, too impatient. 22:19:41 So have you started writing the Standard Forth program I suggested? Then you could port it to colorForth and we'd have a side-by-side to see how wonderful CF is. :) 22:19:44 can't keep the last board in mind while thinking from piece to piece, no disapline for the game. 22:19:58 And you need it for your AI anyway. 22:20:28 well, I wrote b18chess in gforth, and several in colorforth. 22:20:48 of course they are all functionally equivelent, You can play a real game. 22:21:50 b18chess requres the factoring of a real forth coder to be fair. 22:22:15 Well, I must retire. More tomorrow. 22:22:34 My pleasure. New topics tomorrow. :) 22:22:42 Ok. 22:26:26 dang wanted to say that crc's version in retroforth (spawned from an idea in one of my CF chesses) is exceptionally small. 22:33:07 --- quit: Quartus (Remote closed the connection) 22:44:45 --- quit: LOOP-HOG (Read error: 104 (Connection reset by peer)) 22:54:34 --- quit: JasonWoof ("off to bed") 23:00:10 --- join: LOOP-HOG (n=chatzill@sub22-119.member.dsl-only.net) joined #forth 23:59:59 --- log: ended forth/05.09.23