00:00:00 --- log: started forth/03.11.20 03:04:29 --- join: XeF4 (~xef4@eukaryote198.gprs.suomen2g.fi) joined #forth 03:44:25 --- quit: XeF4 ("pois") 05:08:44 --- join: schihei (~schihei@p5085DAFC.dip.t-dialin.net) joined #forth 05:15:41 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 05:20:00 quack uack 05:20:01 :) 05:35:45 --- quit: I440r ("going to work -->") 05:43:54 --- join: elmex (~elmex@elmex.x-paste.de) joined #forth 05:43:58 helo?! 05:47:33 --- part: z0d left #forth 05:47:43 hmm 05:47:49 hel lo 05:48:19 the forth FAQ @ forth.org isn't avaible.. 05:55:11 hm, i like to program networking programs... is it possible to interface sockets somehow? is there any standart facility which makes it possible? or is forth for other purposes? 06:11:26 dup dup dup di di dup 06:13:58 --- join: I440r (~mark4@saturn.vcsd.com) joined #forth 06:16:59 elmex: yes, in RU spforth 06:17:05 www.forth.org.ru 06:17:38 i attempted to write a trivial news client, but failed th grok it's socks i-face 06:18:57 hm, i somehow would like to use gforth 06:19:56 elmex, why gforth specifically ? 06:20:06 and whats stopping u ? 06:20:13 simple reason: because i like gnu software 06:20:19 lol 06:20:24 isforth.clss.net :) 06:21:44 --- quit: Robert (Read error: 60 (Operation timed out)) 06:24:15 --- join: Robert (~snofs@c-255a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 06:26:23 --- join: madgarden (~bughead@216.94.153.178) joined #forth 06:27:50 hm... i guess..forth is way too lowlevel for my taste :) (i'm more a script programmer, and like C... ;) 06:31:17 --- quit: schihei (Client Quit) 06:31:39 --- join: schihei (~schihei@p5085D976.dip.t-dialin.net) joined #forth 06:33:57 bbl 06:33:58 --- part: elmex left #forth 07:01:54 --- quit: Serg_Penguin () 07:13:40 --- quit: schihei (Client Quit) 07:14:22 --- join: schihei (~schihei@p5085D7E7.dip.t-dialin.net) joined #forth 07:22:59 --- join: melinda (melinda@melinda.usercloak.freenode) joined #forth 07:48:09 --- quit: schihei (Client Quit) 07:49:30 --- join: schihei (~schihei@pD954894A.dip.t-dialin.net) joined #forth 08:15:19 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:40:20 --- quit: I440r ("Leaving") 08:41:52 --- join: I440r (~mark4@saturn.vcsd.com) joined #forth 08:49:42 --- quit: I440r ("Leaving") 09:26:29 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 09:26:29 --- mode: ChanServ set +o kc5tja 09:27:13 Well, I've decided to start writing my own humane text editor for Linux. (in C, using GTK as its toolkit, and arch as the source code management system) 09:28:00 Since it's written in C, not much else will be said about it here, except to let people know that's my current project. :) 09:28:59 why not python? 09:30:05 I'm suprised you're starting another big project 09:31:21 This is a project I've been wanting to work on for a while now, if you'll recall. 09:31:43 * kc5tja has always wanted a humane editor, and so now I'm going to write one. 09:32:16 Why not Python? Because I feel C will offer smaller, faster software. 09:32:28 I think it's great you're making one 09:32:35 In fact, speed is pretty critical issue for me. 09:32:41 s/is crit/is a crit/ 09:32:59 Plus, it helps keep my XP programming skills up to date. 09:33:21 I have it opening a window, with nothing inside it. :) And it's a ROX AppDir already. :) 09:33:22 kc5tja: à la THE? 09:33:31 is there some incompatibility between python and XP? 09:33:32 ROX? 09:33:43 ianP: Inspired by THE, yes, but not as far reaching. I'm aiming first and foremost for text editing applications, not a whole environment. 09:33:52 kc5tja: so more practical ;) 09:33:56 Though I do intend on extending it to include a complete environment at some point in the future. 09:34:08 Yes, I'm going to add features to it only as I need it. 09:34:10 kc5tja: nice :) 09:34:14 And I've decided on REXX as its scripting language. 09:34:16 kc5tja i suppose there's not much to the far-reaching-ness of THE though, besides incompleteness. I wish he'd freaking port to OSX already 09:34:29 it was fun to play with when i had os9 running 09:34:31 ianP: re ROX; http://rox.sourceforge.net 09:34:33 heheh 09:34:44 ianP: play with what? Rexx? 09:35:03 I've tried THE on Mac os 9, and it crashed so much it wasn't fun to play with 09:35:05 Oh, OS9 as in MacOS 9. Sorry. 09:35:27 Well, here's the deal. 09:35:32 Stability is the ultimate requirement. 09:35:35 Speed is the #2 requirement. 09:35:40 it didnt crash 09:35:42 form e 09:35:46 kc5tja: what do you need the speed of C for? searching? 09:35:53 --- quit: haroldo_ (Read error: 104 (Connection reset by peer)) 09:36:12 seems to me a text editor is something that mostly sits there and waits for user input 09:36:20 Herkamire: Among other things. The humane concept presents a "flat" file concept to the user, and if you have hundreds of documents in the humane environmnent, your session is going to be *huge*. 09:36:41 Herkamire: Also speed in rendering the display too. 09:37:00 have you considered SDL for graphics? 09:37:08 and input 09:37:10 Also convenience in accessing the document memory. Python must go through string or sequence accessors to do this, which just slows things down. 09:37:34 Herkamire: Yes, but unless using GTK becomes overbearingly hard, I don't see a need to change from it. 09:38:08 oh yeah. I tried to write something in python where I needed direct access to memory, sometimes bytes sometimes words, and sometimes half-words. it was a major pain. I translated it into C :) 09:38:20 My goal is to make 'qm' (what I'm calling it; short for QuasiMode) as fully ROX integrable as possible. 09:38:43 I already have the AppDir finished. 09:38:49 It even compiles itself the first time. :) 09:39:02 And I compile with -Wall, and it's a development *requirement* that *ANY* warning *MUST* be fixed before release. 09:39:18 can you do the keyboard handling you need for THE with gtk? 09:39:48 If I write my own widget, I'm positive I can. GdkEvents mirror all the raw X11 events closely. 09:39:57 kc5tja - nice 09:40:04 cool 09:40:39 Once I get this thing even *minimally* functional, I'm planning on opening it up for Bazaar-style development. 09:41:07 word. 09:41:18 i like the way you worded that :) 09:41:23 hmmm.... I still think you should use SDL. I haven't done enough with gtk to really know, but SDL is so simple. 09:41:30 only problem is you'll have to do your own text rendering 09:41:40 SDL also requires me to work up my own complete set of widgets, and font engines. 09:41:49 Right. 09:42:01 It may still come to that, I don't know. 09:42:03 what widgets? 09:42:08 will it be easy to port to another gui framework? 09:42:19 ianP: That depends on how friendly GTK is towards that concept. 09:42:45 i suppose portability often depends on code quality too 09:42:54 with good design much more things are possible i find 09:43:02 --- join: haroldo (~haroldo@r200-40-218-202.adsl.anteldata.net.uy) joined #forth 09:43:03 Being that it is developed with XP principles, while still meeting most of the GNU coding standards, GUI code will necessarily be separated from the core logic of the code. 09:43:34 The overall architecture of the system will be as MVC as possible. 09:43:52 right on 09:44:32 Herkamire: If I write using SDL instead of GTK, then it wouldn't support resizable windows, I don't think. Resizable windows are a must for productivity applications, even though I personally use Ion. 09:44:57 SDL can be resizable 09:45:08 Also, ? 09:45:12 err 09:45:13 ? 09:45:15 I didn't know that. 09:45:19 my koch fractals thing is SDL in a resizable window 09:45:27 hmm 09:45:41 How does SDL communicate that a window has been resized? 09:46:20 (it would be kind of neat to be able to use qm in full-screen mode, I suppose, as when working exclusively with console applications...) 09:46:22 http://jason.herkamire.com:5000/svn/koch/sdl.c 09:47:07 I think if you used SDL you could have your editor work on the framebuffer of many machines (SDL can work through SVGALIB right?) 09:47:41 SDL_SetVideoMode(w, h, 0, SDL_RESIZABLE) 09:48:18 Herkamire: I don't think so, but I know it can use fbcon and GGI directly. 09:48:29 What is the deal with SDL_LockScreen()? 09:48:41 don't know. I just followed docs. 09:48:59 there's a tarball for that project here if you want it: http://herkamire.com/jason/downloads/kochfractals-0.2.1.tar.bz2 09:49:05 And can I get SDL to deal with framebuffer conversions for me? That is, I don't want to have to deal with 8-vs-16-vs-24big-vs-24little-vs-32 bits per pixel modes. 09:49:09 or feel free to browse http://jason.herkamire.com:5000/svn/koch/ 09:49:22 fwoom! 09:49:40 fwoom? 09:49:49 what do you mean conversion? you mean change the bit depth of the screen? 09:51:11 No, I mean that I don't want to have to deal with 8/16/24b/24l/32 bits per pixel. 09:51:24 I don't want to have to have 5 different back-end renderers. 09:51:47 you can ask SDL to change the bit depth http://sdldoc.csn.ul.ie/sdlsetvideomode.php 09:51:49 kc5tja: yeah, rendering one back should be plenty ... 09:52:02 but you won't always get it. 09:52:10 Herkamire: I don't think you're understanding me. 09:52:13 with SDL you usually deal with the different pixel formats 09:52:35 I do not want to have five different back-end renderers in my program. :) I want *one* function that pokes pixels into memory, and that's it. 09:52:58 for that you need to have memory in a standard format. 09:53:01 I understand that having five offers the fastest visual performance, but I'm not writing a game either. :) 09:53:18 I don't think you can have that. 09:53:27 Herkamire: Maybe with a SWSURFACE instead of a HWSURFACE? 09:53:35 you could write one backend and five blitters to copy what the backend makes onto the display 09:53:48 Herkamire: That's the same as having five back-end renderers. 09:53:50 blitter? 09:53:50 SDL may have those blitters 09:54:24 MysticOne: A blitter is a piece of software or hardware, designed to block-move bits from one bitmap to another, performing various transformations in the process (e.g., changing colors, handling transparencies, etc) 09:54:36 kc5tja: that might work. if you ask for swsurface, SDL may translate for you. then you can write to memory in whatever format you want. 09:54:53 I've forgotten a lot about SDL internals. 09:55:02 I'm sure they've probably updated the API a bit too. 09:55:12 then the only think you'd have to bother with is setting the 8-bit pallete. 09:55:22 16-bit. 09:55:30 interesting 09:55:31 I need at least 16 bits to handle transparent text properly. 09:55:45 (I need control over the RGB values of each pixel precisely) 09:56:28 Is there any advantage to using an 8-bit screen instead of a 16-bit screen? Other than reduction in consumed memory? 09:56:49 If so, I can use my pseudo-512-color screen technique to fake a 3-bit-per-channel display mode. 09:57:44 Otherwise, I'd rather just use 16 bits per pixel, to make the math easy on the computer. 09:58:06 kc5tja: don't really know. I figure it's cool to support 8-bit display if you can because that's what some people have. I don't think many people use it though. I think gamers sometimes switch the monitor to 8 bit because blits are faster (lower bandwidth to gfx card) 09:58:41 kc5tja: if you need that many colors, than you can just require at least 16 colors. 09:58:45 Most gamers I personally know have 32-bit displays, and rely exclusively on the card's GPU to do all the work needed. :) 09:58:57 linux terminal is usually in 8-bit 09:59:08 Herkamire: You mean fbcon? 09:59:21 I've forgotten what fbcon is again 09:59:31 Frame buffer console 09:59:37 yeah. that 09:59:44 It's what your Linux uses because YOUR computer lacks a proper text-mode. 09:59:50 (not that that's a bad thing...) 10:00:18 it has a text mode ;) you get it by holding down apple-option-O-F 10:00:49 That's not text mode. 10:00:53 That's OpenFirmware. 10:01:01 The card is still sitting in a graphics mode to display it though. 10:01:31 I think the text renderer for that OF text is in the graphics card. not sure though. 10:01:55 doesn't matter. still probably not a text mode. 10:02:21 At any rate, point taken regarding video mode selection. 10:02:48 yeah. I didn't even think about that (that most machines are in text mode not 8-bit) 10:03:17 so svga has to change the graphics mode 10:03:25 Yep. 10:03:39 That's why PCs have to go ***CLACK!!*** when the monitor changes video frequencies and whatnot. :) 10:04:12 Those are a bunch of relays switching the CRT's horizontal and vertical refresh rates to keep up (and so as to not destroy the monitor's flyback circuitry in the process). 10:05:04 CRTs are annoying 10:05:25 But, I'm kind of wondering about the whole 8bpp thing though, especially if qm is going to work also for console operation. 10:05:26 although it is cool to be able to go low-res for a game to run smoothe 10:05:51 You mean, without having to wear magnifying glasses to play it. :) 10:06:30 Nahh, I'll just choose 16-bpp mode stuff now, and just let the open source developers hack it to their desires. 10:06:32 :) 10:06:36 Make it easy on myself. 10:06:45 But SDL is looking a bit more attractive to me now. 10:07:08 My only concern is fonts. 10:07:25 (and rendering the text on the screen) 10:07:26 do you want multiple fonts? 10:07:41 do you want variable width font(s)? 10:07:44 At some point, I'm going to have to, I think. 10:07:51 Maybe not from the get-go, but in the future. 10:08:10 Also Unicode support. 10:08:19 really 10:08:34 wow. I wouldn't bother with any of that. 10:08:49 Well, this is what I'm saying: *I* am not, to start with. 10:08:50 you sound kinda serious about this ;) 10:09:00 But to be a truely useful editor, I think it needs to be supported at *some* point. 10:09:19 I mean, even VIM supports Unicode now, IIRC. :) 10:09:37 I wonder if there is any advanced text rendering stuff for SDL 10:09:49 vim does? :) 10:10:08 Well, one can use the FreeType library to render TrueType fonts, and I know that supports Unicode character sets if the font does. 10:10:27 But how it handles right-to-left and other nationalized text rendering issues, I don't know. 10:11:14 BTW, I notice you're using SVN. :) 10:11:18 * kc5tja is using arch. 10:11:26 Down with CVS!! 10:11:43 CVS haters of the world -- COMMIT! ;P 10:12:52 yeah. svn has been much better to me that cvs 10:13:06 svn looks like they are nearing beta finally :) 10:13:25 vim does indeed support Unicode 10:14:01 According to savannah.gnu.org/projects/gnu-arch, arch is actually production ready. I have personally found only one bug with it, and it's annoying, but not project killing. 10:14:33 arch is the one that's written in bash, and has weird ALL-CAPS directories in your working copies right? 10:15:56 I've only found one bug with svn (that's easily avoided) and I'm using a version that is very old (there have been about 20 bugfix releases since) 10:16:52 arch has been rewritten in C, and while it has distinct naming conventions (e.g., files beginning with + are "precious, non-source" files, while files starting with ',' are junk files, etc), nothing in my directory trees are all-caps. 10:17:06 I do not believe the Bash version is being maintained anymore. 10:19:37 cool 10:21:04 arch looks very cool 10:22:58 there's sdl_ttf which renders truetype fonds in SDL. not sure if it does unicode though. http://www.libsdl.org/projects/SDL_ttf/ 10:27:33 looks like it does unicode 10:41:40 If it uses FreeType, it should. 10:41:48 But I think rendering characters takes more than just producing the graphics. 10:41:54 So, for now, what I'll do is this: 10:42:07 when importing text files, I'll expand each character to a 16-bit or 32-bit word. 10:42:52 BUT, I'll only support proper ASCII codes for the time being. Anything above that is rendered according to the font used, but is not in itself "supported officially" by the program. 10:42:55 That'll be a to-do item. 10:43:31 In retrospect, I think I have one more compelling reason to support SDL instead of GTK: it's vastly more cross-platform. 10:43:35 SDL works on AmigaOS too. :) 10:43:47 (and, IIRC, OS/2, BeOS, et. al.) 10:43:56 So it greatly improves the portability of qm. 10:44:04 I think that has convinced me. 10:44:30 Oh, and native MacOS too. 10:49:05 OXS native? 10:51:29 OXS? 10:51:41 You mean OS X? I would assume SDL has been ported to OS X. 10:54:00 --- join: Speuler (~Speuler@node-d-9180.a2000.nl) joined #forth 10:54:17 g'day 10:56:52 re 11:00:32 hi 11:02:24 Okay, the final architecture won't be true MVC; it'll be Document/View instead (basically, the View includes the controller built-in). 11:02:41 I can't think of a way to split the controller functionality out of the View proper. 11:03:14 If I come up with something, I'll use it. 11:16:54 clear 11:16:56 gahh! 11:17:58 Crap. I haven't even gotten started yet, and I'm already finding myself in need of a good object system. :/ 11:18:24 --- quit: schihei (Client Quit) 11:38:31 anyone here know of any embedded systems (x86 based) that can be fanless and get about 60-70mbps of network throughput? :) 11:40:41 Soekris? :) 11:40:44 I'm guessing? 11:42:00 no 11:42:06 not fast enough :( 11:42:10 maxes out at about 20-25mbps 11:44:57 In that case, then I guess you're out of luck. :/ 11:45:10 BTW, are you sure you mean mbps and not Mbps or MBps? 11:45:12 :) 11:45:22 millibits per second are pretty slow throughputs. :) 11:45:43 megabits :) 11:45:51 there's mini-ITX ... 11:45:57 but damn, I don't want fscking sound on it! or any of that crab 11:53:38 Well, why is Soekris only getting 25Mbps throughput? 11:53:42 What CPU and what clock-speed? 11:53:57 AMD ELan 133 MHz (roughly a P120) 11:58:46 kc5tja: spaced out for a while there. that's great you're going to use SDL :) 12:00:06 Herkamire: Well, I'm already running into issues with respect to objects in the system. 12:00:23 lol 12:00:25 * kc5tja has to basically reinvent an object system, or switch to C++, to achieve my goals. 12:00:32 python then? 12:00:37 No. 12:00:43 Python is too inconvenient for this. 12:01:19 for some oo-likeness, you might consider using quans 12:01:46 those are words, consisting of a list of xts 12:02:12 Speuler: I'm not writing this in Forth. It's written in C. 12:02:13 could view them as objects 12:02:40 * Speuler checks wether he has joined the wrong channel 12:03:04 hehe 12:03:07 kc5tja, try #c 12:03:29 Speuler: There is no need. 12:03:31 It's not like people talk much Forth in here anyway. :P 12:03:35 Notice that I'm not asking for assistance. 12:03:47 I'm merely reporting thoughts. 12:04:02 I've made object systems in C before, and I can do it again. 12:04:13 I just need to think things through a bit. 12:04:17 i made those in forth :) 12:04:34 So have I. 12:04:53 thus, no problem 12:06:09 --- join: thin (thin@bespin.org) joined #forth 12:06:17 kc5tja: i emailed you at falvosa yahoo.. 12:06:25 have you gotten that email yet? 12:06:52 thin: I no longer check that account. Use kc5tja at arrl dot net instead. 12:07:25 Speuler: The 'problem' is that when writing for GTK, I had an object model already usable -- GTK's. Now I don't. So now I have to make one. 12:07:51 Since I had not counted on doing that today, it kind of screws up my list of things to do. 12:08:45 i'd figure so does explaining to us what you need to do :) 12:09:03 kc5tja: how long do you think it will take you to make this editor? (the basic features anyways) 12:09:16 p.s. email sent 12:11:13 Speuler: The object model is to support a model/view/controller triad, for the most part. It is also required to support object prevalence, which allows the editor to come as close to being orthogonally persistent as one can get under Linux. 12:11:17 thin: I have no idea. 12:11:45 Speuler: In the future, I'd like to CORBA-enable the editor, so as to allow remote scriptability. 12:15:07 thin: I'm working on it in my spare time, as you might expect. 12:15:10 i've been thinking, i don't want to know the same amount of computer/software trivia that you guys know in order to accomplish the same amount that you guys can.. it seems quite ridiculous to have to learn mutliple interfaces to multiple software packages when all i want is one complete interface (i.e. forth or something else) 12:15:37 i'm talking about "the dream" here :P 12:16:18 kc5tja: whats happening with some of your other projects? Doesn't seem like you have much free time since you have quite a few projects.. 12:16:31 Well, the Singularity isn't too far off. 12:17:31 kc5tja: maybe you should make a throwaway THEish, rather than worrying about future features like unicode, etc.. 12:17:34 thin: qm is a project designed to accomplish several goals related to Dolphin. 12:17:57 First, it's an experimental editor with humane concepts in mind, designed to help explore the construction and manipulation of a flat, file-less user interface. 12:18:11 It is Dolphin's primary goal to be as user friendly as possible, and I feel this is useful in and of itself. 12:18:14 madgarden: i don't know what Singularity is, and i don't think i want to :) 12:18:32 Hee. :D 12:18:45 Second, the object model I was going to adopt for it (now that I'm using SDL) ties right into my ideas for a very, very high performance CORBA wire-level compatible object model. 12:18:46 * thin expects its some religious/programming combo 12:19:15 thin: I too wish I didn't have to learn all these stupid interfaces. that's why I'm making an OS. Ironically to do so I have to learn all sorts of hardware interfaces 12:19:27 herkamire: :) 12:19:32 This ORB implementation is itself Dolphin related, as I have plans of using CORBA extensively throughout Dolphin. 12:20:48 CORBA sounds like a pretty mainstream thingie and i'm usually suspicious of mainstream thingies because they're usually bloated. is CORBA simple & rational? 12:20:59 --- quit: warpzero (Read error: 110 (Connection timed out)) 12:22:47 thin: Depends on how simple and rational you want it to be. 12:23:06 CORBA is a tool. 12:23:10 It does its job. 12:23:13 It does it well. 12:23:27 But like anything that is a standard, it has to have implementations. 12:23:39 And implementations can vary from vendor to vendor. 12:23:59 MICO, for example, gave the kDE developers the reputation that CORBA is slow, resource intensive, and utterly unfriendly to programmers. 12:24:21 ORBit, however, is the core of Gnome's CORBA infrastructure, and is extremely simple to write software for (well, simple within the context of CORBA). 12:24:27 Like all standards, there is a learning curve. 12:24:30 That's just the way things are. 12:24:51 Anyway, ORBit is at least an order of magnitude faster than MICO, if not faster. 12:25:04 It's much lighterweight too, and supports only a proper subset of the whole CORBA standard. 12:25:33 How does that compare to XMLRPC? 12:25:35 What I'm looking to do is even lighter-weight still; I'm looking to support ONLY the wire-level protocols and basic capabilities of CORBA-compatible objects. 12:26:16 madgarden: It doesn't. CORBA is so overwhelmingly superior to XML RPC that they're not even considered on the same level. 12:26:34 Well, there you go! ;) 12:26:37 would chuck moore use CORBA or would he invent something more forthlke? 12:26:54 how come you are going to use REXX for the scripting language of the editor and not forth? 12:27:15 thin: Approachability by newbies and experts alike. 12:27:45 thin: I have considered using Guile, since qm is going to be GNU licensed, but Guile, being a Scheme dialect, is going to thoroughly confuse people. Utterly. 12:27:58 (Guile seems to be the perfect name for it then...) 12:28:00 Forth is cool, but something REXX or BASIC is *fun* to use. 12:28:27 Also, Forth lacks innate string and memory management features which are a requirement for text editing. 12:28:42 Forth also lacks a system by which it can 'address' other programs to control them with. 12:29:15 madgarden: depends on what implementation you've used.. MUF (forth-like) is more fun than BASIC, altho i have no experience with REXX 12:29:16 REXX can/will provide qm with a scripting language at least as powerful as elisp is for Emacs. 12:30:46 REXX is not a fast language. But it IS a good language for string manipulation. (In fact, it even internally represents numbers as strings, which gives it a unique advantage over other languages right out of the box: infinite precision, and it can accurately represent 1/3 and 1/7 without round-off errors!) 12:30:47 thin: And well, my Forth-like (forthy) is fun to use, and has strings and so forth as well, I imagine it's a lot like MUF. But (ANS) Forth itself wouldn't be a good choice, I'd think. Now, a high-level Forth extension, sure. 12:31:21 And string manipulation is precisely what you want for text editing purposes. 12:31:26 the funnest forth implementation to date was probably the one that the engineers of iTv were trained on 12:31:31 machienforth 12:31:39 There's nothing funny about it. 12:31:44 i didn't say funny 12:31:50 I find it extremely elegant. 12:31:54 Oh, sorry. I misread it. 12:32:03 * kc5tja is bleary-eyed right now. Didn't get much sleep. 12:32:10 If I seem crabby, that's why. 12:32:18 Please don't take it personally. 12:32:20 yeah.. its a ton of fun because its extremely elgant, simple, no bullshit, no noise, no worries about esoteric interfaces 12:32:25 its just the man and the machine 12:33:28 i won't take it personally :P 12:33:28 * kc5tja thinks of abandoning the classical inheritance type object system in favor of aggregation-based system. 12:33:48 Aggregation/composition is the shiznit. 12:34:00 And, it's perfect for a C implementation. 12:34:00 * kc5tja is shocked to hear someone else in favor of aggregation. :) 12:34:13 Well, I don't much like C++, so static inheritance annoys me. ;) 12:34:21 (especially if I have to do it in C) 12:34:26 * kc5tja nods 12:34:29 isn't it well known that inheritance is a lousy system? 12:34:30 :P 12:34:50 that was rhetorical 12:34:51 I like the idea of determining the type of an object based on what interfaces it actually supports, versus what it claims to support. 12:35:18 thin: It's actually a good system, but when multiple-inheritance comes into play, it can cause major headaches. :) 12:35:45 It also sucks when you only want to inherit parts of something. 12:36:39 I guess that if I'm going to support an aggregation-based object system, I would probably end up with a COM-clone. 12:36:48 COM is pretty damn simple in that respect. 12:37:07 COM == Component Object Model 12:37:21 You going to write your own registry too? :) Love those GUIDs! 12:37:41 Why do that? The Unix filesystem is as good a registry as anyone will ever need. 12:38:26 http://sourceforge.net/projects/gcom 12:38:34 (I'm surprised they're still hosting it!) 12:39:10 * thin is eagerly waiting for a reply to the email he sent kc5tja ;) 12:39:23 if you're too tired to respond today that's fine.. 12:40:00 I would be happy to reply if the POP connection limit was not so easily reached on my mail server. 12:40:05 It's been that way for HOURS now. 12:40:47 Yea, I don't much like the registry. ;) 12:41:26 Well, a registry is required. 12:41:43 Otherwise you couldn't say, "Give me an object with a FooTextWidget interface." 12:42:07 There could be any number of implementations of FooTextWidget interfaces; the registry needs to maintain that linkage. 12:42:19 What sucks is that MS decided to use the registry for **EVERYTHING** else too. 12:42:38 MS could just as well have used the filesystem. 12:43:07 It's THE registry I'm opposed to. Sure, throw all my eggs in one basket, why not! Then they're all in one place for me to drop... er... 12:43:09 Yep. 12:43:30 Gosh, that's only version 0.2 up there. 12:43:37 All these years, I had 0.3, but I apparently forgot to upload it. 12:44:00 Just one more thing to throw into the arch repository. 12:44:01 :) 12:49:21 extreme programming seems to be out. at least, interest in it seems to be close to 0 12:49:57 i conclude this from forth wiki page popularity 12:50:18 Speuler: I fail to see how that relates? 12:50:25 99% of Forth coders do not practice XP anyway. 12:50:28 the was exactly one hit in 3.5 months on the xp page 12:50:50 Try http://www.xpsd.com -- that's a whole Wiki devoted to XP development in the San Diego area. 12:51:04 It's not as busy as it used to be either, but the XPSD meetings are as large as they've ever been. 12:51:35 i translate this to "popularity didn't increase" 12:52:29 Depends on your point of view. 12:52:47 t'is just a an observation 12:52:48 I don't think you can make that judgement, even with the evidence you have on hand. 12:52:59 Any more than I can say that it has increased. 12:53:19 But here's what I do know -- bookstore shelves are packed with XP-related books. So I know they're selling. 12:53:32 does chuck moore practice XP? :P 12:54:26 thin: His practices are largely in leage with XP's practices. But he does not practice XP itself, no. 12:54:42 XP is a person-to-person development methodology; no cubicle walls in offices, programmers talk directly to customers, etc. 12:54:43 i like the "there must be food" bit 12:54:49 :) 12:54:53 Chuck prefers solitude in his work. 12:56:45 speuler: yeah, you're the food junkie of the channel ;) 12:57:05 and always candies at meetings 12:59:29 kc5tja so you actually got the email or you havent? 12:59:44 No, not yet. 12:59:55 I can't check any of my mail, because, "POP3 connection limit exceed." 13:00:21 I've never seen my mail server this bad before. 13:03:04 kc5tja: ok, read the email at http://thin.bespin.org/idea.txt 13:05:52 So I guess that each person on the site would have their own blog, and the front page just filters the blogs for the most recent posts by each user? 13:05:58 (sorting them in chronological order, I guess) 13:09:56 I think the forth community is too small for a system that formal. I think a wiki would be good 13:11:15 Oooh, I would love a Forth wiki. 13:11:16 I am happy to discuss my ideas and experiments on forth, but I am not going to write regular articcles about it or even bother signing up as an editor on a site. 13:11:53 madgarden, you're aware there are forth wikis ? 13:12:36 what's our wiki status? I've seen at least one, but I'm not sure if it was going to stick around 13:12:56 Yes,I have seen a couple Forth wikis out there, though I seem to lose track of them. They didn't seem too active. 13:14:45 --- join: warp0x00 (~warpzero@dsl.142.mt.onewest.net) joined #forth 13:16:20 --- join: I440r (~mark4@saturn.vcsd.com) joined #forth 13:19:05 we could pick a wiki and promote it with this site 13:19:14 s/this site/this chatroom/ 13:20:43 hgn 13:27:49 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:29:52 --- quit: tathi (Client Quit) 13:29:54 How about an existing general software development wiki? 13:32:54 I think the best wiki stuff I saw for forth was on some general wiki. possibly the original wiki 13:35:09 c2.com 13:35:47 General Forth info, sure, but what about a blog setting for people with specific projects? 13:38:44 --- quit: madgarden ("*poof*") 13:46:47 thin: I *finally* got the e-mail. :) 13:51:43 --- part: Speuler left #forth 13:53:51 heh 13:54:02 woops, afk for ab it.. 13:55:12 herkamire: the forth community is small because it's mostly aimless :P 13:57:08 * warp0x00 is away: right... 14:02:23 yeah, the idea is sort of a mini-blog for each person and all the good content gets tied into the mainsite.. 14:02:57 kind of like a forum website, but with a different interface for putting in content and managing it 14:03:12 herkamire: it's not even articles or being an editor or anything.. 14:03:21 think of it more like posting on a fourm 14:03:26 forum* 14:05:29 it's possible to combine the advantages of a newsgroup, forum, and blog 14:05:58 sort of like a forum except the sub-threading could be included, plus the blog interface on the input/maintainence side of it 14:06:10 i can see it pretty clearly 14:06:29 great for communities with specific goals 14:06:42 thin! 14:10:28 * kc5tja still likes a Citadel BBS. :D 14:10:30 But I digress. 14:17:05 well taht would mean making the website interactive, possibly being forced to use java :/ 14:17:17 in order to run a citadel bbs interface on the website.. 14:17:31 i440r: heya, how's isforth? 14:20:28 what's the smallest forth in java could we get? 14:20:34 kc5tja: you're stuck in the past, old man! 14:20:51 I think the best way to get people to contribute is through a wiki. 14:21:05 that way you can put up incomplete things 14:21:16 and have others help with it (add links, fix inacuracies etc) 14:23:37 people can still write articles on a wiki. tunes wiki has some good ones 14:23:46 there are already 3 or 4 forth wikis and they're all dead, so i disagree with you 14:24:55 tunes is already a community of ppl who know each other, who talk to each other all the time on the mailing list, etcd 14:25:07 we don't really have any community 14:25:17 is CLF even a community or is it a flamewar center? 14:25:34 if there's minimal flaming on CLF, then maybe i'll consider it a community 14:25:37 thin: Umm... no. :) Citadel BBS runs as a back-end server, with a web front-end. No Java (or Javascript, for that matter) is involved. 14:25:41 But like I said, I digress. 14:25:50 The existing forum we have suits the needs well enough. 14:26:02 what forum? 14:26:13 http://forum.forth.org??? 14:26:16 i'm not talking about the current #forth community when i talk about this idea 14:26:31 i'm talking abotu creating a whole new forth community with a specific goal 14:26:32 I'm out for the evening. be back in 5 hours :) 14:26:53 laters herk 14:27:31 Well, if Forth doesn't have a community, then there's no point in going through the expense and administrative load to set up a forum, I think. 14:27:46 I think Speuler's Forth wiki isn't dead. 14:27:52 no, i was talking about wikis 14:28:24 this blog/forum idea is for starting and supporting new communities.. 14:28:40 i.e. build it and they will come 14:30:21 why would speuler's forth wiki be active? there's already 3 other wikis (dead), is there some problem with them? why would people suddenly go to speuler's wiki and suddenly start using it and keeping it active for the next several years? doesn't make any sense.. 14:30:33 speuler's wiki doesn't offer anything extra except for being coded in forth 14:30:37 maybe that's the key? ;) 14:36:07 hmm, seems like people either disagree or don't care. 14:36:12 oh well 14:36:25 it'd be cool to have the fifth forth community 14:37:28 ? 14:37:44 fifth as the programming lang? 14:37:49 or 5th forth community? 14:37:59 what communities are you counting? 14:38:34 kc5tja: I don't think they get my warped humor :( 14:39:07 i get it, after you tell me it was humor 14:39:15 :) 14:39:19 that was what i was trying to verify afterall 14:39:38 so you are so bored with #dragons that you come to #forth to give us your warped humor? 14:40:11 comedians are usually bored i think 14:40:15 that's the danger 14:41:23 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 14:43:50 thin for a while i couldnt log into the clss.net accunt so i couldnt do any updates - i fixed that so maybe soon ill update :) 14:43:50 #Dragon, and I haven't been in there in years :) 14:43:58 * MysticOne makes thin thicker 14:44:16 thin: my goal has actually been to learn Forth, but I haven't had time yet :) 14:44:21 unfortunately, I'm getting much better at perl 14:44:22 which scares me 14:45:23 --- quit: thin (Remote closed the connection) 14:46:16 I killed him :( 14:53:19 lol you scared him off :) 15:01:42 --- join: Sonarman (~matt@adsl-67-113-234-78.dsl.snfc21.pacbell.net) joined #forth 15:04:00 bbl 15:04:01 --- quit: I440r ("Leaving") 15:06:12 MysticOne: Sorry, dealing a bit with ye olde land lorde. 15:06:37 Getting some yard work done. 15:07:44 MysticOne: And no, you didn't kill him. He does that. :) 15:22:06 greetings and salutations 15:22:07 :) 15:23:06 :) 15:25:12 :) 15:25:14 whats up? 15:25:29 Going to take a shower. 15:25:38 Then in about an hour or so, I'm going to go pick up my car (finally). 15:25:49 In the mean time, I'm going to be hacking on some software I'm writing. 15:26:18 * kc5tja is away: shower 15:26:37 :) 15:41:19 --- join: jamc (dne@as3-6-8.asp.s.bonet.se) joined #forth 15:42:48 * kc5tja is back (gone 00:16:30) 15:43:46 --- nick: arke -> rk 15:44:06 :) 15:44:39 --- join: arke (~chris@ca-cmrilo-cuda1-c3b-66.vnnyca.adelphia.net) joined #forth 15:54:15 --- quit: arke ("Client Exiting") 15:54:26 --- nick: rk -> arke 16:15:32 --- join: Kev (~good@c-24-130-223-224.we.client2.attbi.com) joined #forth 16:17:56 What is Forth all about? 16:22:10 lots of words 16:22:56 words, words, words 16:23:13 basically, Forth is a collection of words, written from left to right, top to bottom. 16:23:16 Done. 16:23:19 :) 16:33:02 Yep. 16:33:06 That's pretty much it. 16:33:11 Forth just "is". 16:44:59 hello all 16:45:02 im back 16:45:03 lol 16:47:02 picking up car 16:47:04 brb 16:48:30 bye 17:02:34 --- join: I440r (~mark4@12-126.lctv-a5.cablelynx.com) joined #forth 17:09:29 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 17:51:29 --- join: Robert_ (~snofs@c-255a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 17:51:41 --- quit: Robert (Read error: 104 (Connection reset by peer)) 17:54:35 --- quit: jamc ("If I have enough money to buy 5,000 CANS of NOODLE-RONI, can I get a VAT of MARSHMALLOW FLUFF free??") 18:09:19 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 18:23:33 I440r: greetings, Mark Manning 18:23:40 Robert_: greetings, Robert Oestling 18:23:47 kc5tja: greetings, Samuel Falvo 18:26:31 Back 18:26:59 The car is back, runs OK. It idles much lower than it used to, but it's smooth, and starts easily. 18:27:04 I'm not going to worry about it. 18:27:18 Probably due to the new alternator delivering more power at lower RPMs. 18:27:48 :) 18:27:51 awesome 18:27:52 :) 18:27:53 : 18:28:09 kc5tja: Ro0tSiEgE, my co-worker, found an 86 (I think) RX-7 here with about 115k miles on it he's thinking about buying 18:28:21 kc5tja: I think they wanted $2500 for it, but he said it was in immaculate condition 18:32:10 Was there any engine work done on it? 18:32:30 (eg., was the engine rebuilt at all during its lifetime?) 18:32:40 115k seems high for me for that model year. 18:32:40 dunno 18:32:52 It'd be a fun car to have anyway. Just expensive when the engine goes. 18:33:21 But when it goes, just get a higher performance engine put in, give it a mild street port or something, and put in a half-way free-flowing exhaust. 18:33:33 It'll easily churn out 200HP with jsut the exhaust mods alone. 18:33:39 :) 18:33:44 kc5tja: how is that a lot of miles for that year? 18:33:57 kc5tja: if I'm not mistaken, average mileage of a car is 15k miles/year 18:33:59 Mazda warrants their engines only for 150,000 miles. 18:34:16 I think most cars stop at 100k 18:34:26 Yes, but I'm just saying. 18:34:31 It's getting up there in age. :) 18:34:36 (unless it's been rebuilt, like mine was.) 18:34:40 but even at 14k miles/year, that'd be 224k miles ... so I think it's doing pretty well :) 18:34:44 yeah, I dunno if it has been or not 18:35:00 Although my car has 165,000 miles on it (WOW -- already?), the engine has only, maybe, 45,000 or so miles on it. 18:35:12 I have 9k 18:35:13 :) 18:35:17 * kc5tja nods 18:36:34 Weird. My phone just lit up, but no ring signal, and no new messages. 18:36:34 :) 18:36:52 Phreak attack! 18:36:57 Heh 18:37:28 Well, I think I'm going to go with an aggregation-based object model for my program. 18:37:42 Anyone else listen to C64 remixes? Or am I the only big geek... 18:38:01 Go aggregation! 18:38:07 I was talking about it with a close friend of mine, who happens to have several degrees related to compsci, and he brought up a great point: inheritance is just concealed aggregation. 18:38:25 And he has a point. I'd never looked at it in that manner before. 18:38:40 Concealed and static. 18:38:53 madgarden: I have a C64, C128, and PET emulator on my box. Also UAE for Amiga emulation. Does that count though? 18:43:15 Oh, and an Atari 2600 emulator too. 18:43:16 :P 18:44:54 Well, do you listen to the tunes, other than while playing games? :) 18:45:02 Nope. 18:45:14 Well then, NO. :P 18:45:21 But in case you want to: http://remix.kwed.org/ 18:45:22 heh 18:45:43 And of course, there's Slay Radio: http://c64.org/radio/ 18:45:45 :D 18:45:50 heh 18:45:59 * kc5tja wonders what he's going to call his new object model. 18:46:12 How about... Extremely Aggregating. 18:46:33 * kc5tja can't call it Component Model Designed With CORBA Compatibility In The Future (CMDWCORBACITF) 18:46:44 * kc5tja laughs 18:47:49 CORBA? eew 18:47:59 sorry, gut reaction 18:48:08 Nothing wrong with it at all. 18:48:37 Wasn't that an old Sylverster Stallone movie? 18:49:07 * kc5tja just loves how everybody gets these totally gut reactions with things like CORBA. 18:49:39 Not realizing it's not the standard that is the problem, but the particular implementation thereof. 18:50:26 Same goes for anything. 18:50:54 ORBit is a *nice* CORBA ORB. 18:51:09 Amazingly quick for something that follows OMG's ORB API closely. 18:51:19 Very low overhead too. 18:51:32 Not as good as COM for in-process objects though, but for remote objects, it's vastly superior. 18:51:45 OhMyGawd's ORB API? 18:51:58 Object Management Group 18:52:15 Oh.. 18:52:22 Acronyms kill me. 18:53:07 OMG is the industry group that created the CORBA specification, and currently maintain it. 18:53:16 like, OMG! 18:53:36 CORBA 3.0 is rather extensive; to support all of CORBA 3.0 takes a lot of work. 18:54:00 But the truth is, there are a lot of components to the CORBA specification, and it's possible to be CORBA compatible without actually being CORBA compliant. 18:54:18 (by that, I mean that I can implement a proper subset of the full CORBA specification, and still have a useful product!) 18:54:24 Like, OMG! Was't CORBA an old movie with Sylvester Stallone!? 18:54:32 madgarden: Umm...no. 18:54:38 :P 18:55:50 Implementing a subset sounds reasonable. Forthy, dare I say. 18:56:05 In my case, I'm going to design a component model based around CORBA compatibility, but it certainly will not be CORBA source-compliant. So my component model will still work with other programs that also use CORBA. 18:56:48 Besides, for as much as I like COM, there's no getting around a basic truth: CORBA is a free standard. You don't owe anyone anything to use it. Ever. 18:56:49 I'll say that CORBA is indeed the problem. It's overdesigned and hard to integrate into non-C-ish projects 18:57:11 chandler: Overdesigned? I hardly think so. 18:57:22 It solves the problems related to distributed object infrastructure very nicely. 18:58:31 Look at all the mish-mash that Microsoft released over the years to get COM to do the same things: several MIDL versions, DCOM, then MTS, and now COM+, and now they're building a whole new object model ON TOP OF COM+, to get a whole different set of capabilities that CORBA has had for years. 18:58:51 :) 18:58:51 Their security model is pathetic. 18:59:04 should be COBRA 18:59:09 And COM takes substantially MORE network traffic to accomplish the same things CORBA does. 19:00:01 perhaps you should compare to RMI... 19:01:45 I openly challenge ANYONE to design an object-oriented remote method invokation subsystem that (a) consumes absolute minimum network bandwidth, (b) is 100% LANGUAGE INDEPENDENT (sorry, your claim about C-preference is utter hogwash; I've used CORBA with C, C++, Python, Java, and Perl, to name a few), and (c) can support both in-process and out of process objects. 19:02:23 I have. And I note that RMI is (a) based on CORBA (*snicker!*), and (b) highly Java specific -- e.g., it's utterly and totally useless to interface with, say, a Basic or COBOL server system (yes, these still exist). 19:02:35 --- quit: Kev () 19:11:12 At any rate, for the time being, I'm going to be planning on purely in-process stuff anyway. My qm program has no immediate need for remoting any of its internal interfaces. 19:11:26 But when the time comes, I don't want to have to re-implement 90% of the program just to make it possible. 19:24:11 FYI, C, C++, Python, Java, and Perl all essentially support the same object model 19:24:26 CORBA, like CLR, encompasses a myopic view of object orientation 19:25:06 chandler: sure, they have classes instances methods... so they are essentially very similar ;p 19:25:37 onetom: not hardly. These languages follow the Simula model of OO, as opposed to the CLOS/Dylan model of OO 19:25:37 And your point is...? 19:25:54 that I don't like CORBA. I think you remarked on my gut reaction :-) 19:26:05 Multi-methods take even more run-time to dispatch than CORBA does. 19:26:36 (That being said, I do like multi-methods) 19:31:28 bacvk 19:31:31 hack 19:31:32 back 19:31:33 :) 19:31:55 hello, my friend sam 19:35:55 --- quit: Sonarman (Read error: 60 (Operation timed out)) 19:42:56 Heh 19:47:25 --- join: Sonarman (~matt@adsl-64-160-165-4.dsl.snfc21.pacbell.net) joined #forth 19:47:59 :) 19:48:02 whats up? 19:48:08 hrm 19:48:13 STC is the way to go. 19:48:15 I repeat. 19:48:18 STC is the way to go. 19:49:33 stc? 19:54:07 Sub Threaded Code 19:54:08 :) 19:56:02 what exactly does subroutine threaded code mean? 19:59:06 : foo a b c ; 19:59:07 foo: 19:59:09 call a 19:59:10 call b 19:59:12 call c 19:59:12 ret 19:59:14 or... 19:59:15 foo: 19:59:15 call a 19:59:17 call b 19:59:18 jmp c 19:59:42 isn't the second example what colorForth does? 20:00:10 Yes, it's subroutine threaded. 20:00:35 so the second example is subroutine threaded code? 20:00:49 (andd the first insn;tz) 20:01:15 No. 20:01:19 They're both subroutine threaded. 20:01:25 The latter simply does tail-call optimization. 20:01:37 (which is nice, since return stack space is usually more limited than data stack space) 20:02:39 so (and please pardon me for being so clueless) wouldn't that be what *all* forths do? 20:03:15 No. 20:03:27 A Direct Threaded Forth uses just arrays of addresses to implement colon definitions: 20:03:29 foo: 20:03:34 call do_colon_stuff 20:03:37 dw a 20:03:38 dw b 20:03:39 dw c 20:03:41 dw EXIT 20:03:53 dw NEXT you mean? 20:04:04 NEXT, EXIT, same thing. 20:04:46 An indirect threaded Forth is somewhat similar, but it can do away with the initial 'call do_colon_stuff'. 20:05:10 The advantages to (in)direct threaded Forth systems is their compactness, even on 32-bit machines, since words can be referenced with 16-bit numbers instead of 32-bit numbers. 20:05:35 For systems with limited memory spaces, like the 6809, 6502, et. al., this can allow more code to be implemented than you'd normally think possible. 20:05:49 Performance isn't too bad either, but it's not nearly as fast as native machine code. 20:05:52 BUT... 20:05:56 it depends on the CPU. 20:06:10 Many early x86 processors could actually execute DTC code faster than STC. 20:07:11 what do you mean by, "words can be referenced with 16-bit numbers instead of 32-bit numbers"? 20:07:33 kc5tja: how so? 20:09:43 Sonarman: If you're using indirect threading, well, OK, token threading (which is one step removed than indirect threading), you can reference a table of word implementations. 20:10:02 So, each 'word' you compile into a definition is not, itself, a proper word address, but rather, an index into an array of word addresses. 20:10:46 oh, ok 20:10:51 arke: It just is. x86 subroutines have HHOORRRRIIBBLLEE latencies. Modern CPUs have decent performances only because of branch prediction logic. But earlier x86 platforms could easily spend 24 clocks (combined) doing a RET and CALL. 20:11:03 thanks kc5tja 20:11:10 Sonarman: No problem. :) 20:11:22 well, i guess that makes sense. 20:11:45 kc5tja: heehee, the way i have it set up, theres literally no call overhead except for whats absolutely necessary :) 20:12:09 Well, on modern CPUs, STC is the proper thing to do, since the branch prediction logic takes care of all the cruft. 20:12:41 * kc5tja looks to learn Scheme. 20:13:04 * chandler redirects kc5tja towards CL 20:15:07 --- quit: I440r ("Read error: 1.414213562 (Excessive square root of 2)") 20:18:18 Common Lisp is good, but Scheme is smaller and easier to embed in applications. 20:19:36 aah, yes, for an embedding language I'd choose Scheme 20:27:08 Figures you'd be talking Forth when I'm not around. 20:27:57 Heheh :) 20:29:16 My system uses ITC. It's a C Forth-like, and makes sense to keep it stackless for scripting purposes. 20:33:32 arke: have you tried xColroForht now that you're running Linux? 20:37:32 * kc5tja notes XcolorForth is hardly for beginners. :) 20:40:41 how so? it seems pretty simple to get up and running, and once it is, shouldn't be any harder than straight colorForth 20:42:10 You're assuming colorForth is for beginners too. :) 20:42:21 The fact that some words take byte addresses while others take cell addresses doesn't help. 20:43:04 The fact that the PAD word is undocumented, and all the screen output words for that matter too does help either. 20:43:04 The fact that I started colorForth and had no idea what the hell I was doing didn't help. I guess there's some sort of funky keyboard mapping. 20:43:17 it's dvorak-like 20:43:21 madgarden: It's a type of Dvorak layout. 20:44:04 Yea, I gathered that from c.l.f., later. 20:45:25 well, i'm starting to figure out at least a little but of colorForth 20:45:58 i can get around the editor just fine, load the example screens 20:46:10 but a LOT of it i don't understand (like pad :) 20:46:31 s/little\ but/little\ bit/ 20:47:45 rj from #c4th sure is helpful 20:49:29 but arke was interested in trying colorForth a while back, and was pretty pissed because he couldn't get it to work 20:50:40 Ahh 20:52:39 why is he not here? 20:52:46 --- join: sophist (sophist@d026.wildapache.net) joined #forth 20:57:27 'he'? 20:57:39 or she 20:57:48 #c4th 20:58:21 Who is 'he' or 'she'? 21:00:03 no idea 21:09:02 sorry, i meant #c4th on IRCnet 21:10:11 --- quit: Sonarman ("leaving") 21:11:57 ic 21:13:46 Ahh 21:20:42 I suppose I should stop reading up on Scheme and start working on my object system, eh? :) 21:21:28 So, you're not using GCOM for this? 21:25:33 GCOM's interface IDs are UUIDs. 21:25:51 CORBA IDL doesn't work with UUIDs (at least, not without special directives, which are almost never used) 21:26:23 Hence, interface IDs will need to be changed to strings (e.g., IDL:SDL/Surface:1.0 or some such) 21:27:59 where IDL means that it was created with the IDL compiler, SDL would be a module, Surface would be the specific Interface inside the SDL module, and 1.0 is the version number. 21:27:59 Hmm. 21:29:03 For module names, I'm thinking of adopting a Java-like hierarchy, where the modules go from outer to inner, like a directory path. 21:29:03 e.g., IDL:com/falvotech/qm/document:1.0 21:30:07 In fact, I'm thinking of dropping the IDL: prefix entirely; it's not needed. What does the application care if it was automatically generated by an IDL compiler or made by hand? 21:30:07 If the interface requirements are met, that's all it needs to know. 21:31:24 Yea, the IDL can suck it! 21:31:55 What about a XML schema sort of path? 21:32:21 You mean, basing the interface on a common URL? 21:34:09 Summat like that. 21:35:17 That's a possibility, but I'm not sure I like that scheme very much. 21:35:50 Besides, to get the same effect in IDL as what I'm proposing, I can use pure IDL constructs to do it: 21:35:54 module com { 21:35:58 module falvotech { 21:36:01 module qm { 21:36:09 interface document { ... }; 21:36:13 } 21:36:14 } 21:36:15 } 21:36:37 If I revise the interface in some manner, then I can set its version number explicitly: 21:36:40 module com { 21:36:43 module falvotech { 21:36:47 module qm { 21:36:52 #pragma version 1.1 21:37:00 interface document { ... } ; 21:37:03 } 21:37:07 } 21:37:08 You're allowing interface revisions? 21:37:08 } 21:37:09 } 21:37:25 They're considered entirely different interfaces. 21:37:42 But, they must be backwards compatible. 21:37:47 So, for example, if I have: 21:37:49 interface foo { 21:37:59 void a( int x ); 21:38:03 void b( int x ); 21:38:06 void c( int x ); 21:38:06 } 21:38:10 Ahh, OK. 21:38:12 then later revise it like this: 21:38:15 #pragma version 1.1 21:38:17 interface foo { 21:38:32 void a( in sequence array_of_ints ); 21:38:33 } 21:38:47 While *technically* legal, it would be a gross violation of intent. 21:39:19 So, when you query an interface, the version stamp is considered a part of the interface at all times. 21:39:51 pBar = pFoo -> QueryInterface( "com/falvotech/qm/bar:1.0", &ev ); 21:40:05 if( SUCEEDED(ev) ) 21:40:05 { 21:40:08 pBar is valid. 21:40:09 } 21:40:10 else 21:40:11 { 21:40:20 No interface com/falvotech/qm/bar:1.0 supported. 21:40:21 } 21:40:29 SUCCEEDED even. 21:40:37 The other thing: no AddRef and no Release(). 21:41:15 Gotcha. Well, seems reasonable. 21:41:21 Well, I should qualify that: AddRef and Release() will exist, but they ONLY affect the interface handles themselves; they do NOT affect the core object itself 21:42:02 This is in stark contrast to COM, where if all interface handles disappear, then the core object disappears too. 21:43:23 Aggregation vs. composition? 21:44:38 Aggregation and delegation support will be different from COM too. 21:44:54 To better support code re-use, I'm going to have functions to duplicate and customize vtable lists. 21:45:52 COM's aggregation support is weak, I think. 21:45:57 --- quit: haroldo (Read error: 60 (Operation timed out)) 21:46:01 And, therefore, I feel it gave the technique a bad name. 21:46:15 The whole concept of inner versus outer interfaces just shouldn't have to exist at all. 21:46:17 MS giving a technique a bad name? 21:46:42 --- quit: Herkamire ("bedtime") 21:47:11 For example, suppose I have a com/falvotech/qm/button:1.0 interface. 21:47:40 I want to create a "subclass" of it called PushButton. 21:47:46 I could perhaps have code like this: 21:48:36 myVTable = pORB -> InheritInterface( pORB, "com/falvotech/qm/button:1.0" ); 21:48:43 --- join: haroldo (~haroldo@r200-40-167-223.adsl.anteldata.net.uy) joined #forth 21:48:51 at this point, myVTable will be full of pointers that refer to button's implementation. 21:49:14 To override one or more of the methods, I'd have to patch the table: 21:49:36 pORB -> PatchVTable( pORB, myVTable, 3, &myFunctionInstead ); 21:50:00 I haven't quite figured out the complete set of logistics or the complete interface yet. 21:50:06 I'm positive that there is an easier way to do this. 21:50:32 I might just have a VTable that is initialized to NULLs, except for the methods you want to override. Then, InheritInterface() would just fill in the blanks, so to speak. 21:53:14 Hmm... 21:53:48 The component model is closer to Sather, now that I think about it. 21:54:04 In Sather you can inherit interfaces, code, or both. :) The two aren't tied together. 21:54:05 :) 21:54:10 The PatchVTable is specifying an index? 21:54:22 In the above case, yes. 21:54:41 You could maybe set it up to query for a particular function, maybe by name... 21:54:46 No 21:54:50 Too slow. 21:54:59 If I did that, then every method dispatch would have to be by name. 21:55:16 Too memory intensive too; we're already storing interface names by name, there's no need to store method names that way too. 21:55:44 Perhaps a hash. 21:55:59 The compiler knows the offset of each function in the table, so the offsets are well-known. 21:56:10 The compiler doesn't hash. It uses offsets directly. 21:56:16 --- join: s-phist (sophist@d004.wildapache.net) joined #forth 21:56:28 Oh, this is being done by the compiler. 21:56:33 Well, 21:56:37 yes. 21:56:38 :) 21:56:44 Hey. 21:56:48 It is an object model intended for use with C after all. :) 21:56:51 re s-phist 21:57:03 :) 21:57:11 but if you want to inherit code from another module, you must explicitly code it in. 21:57:12 Can I ask a lame question? 21:57:15 s-phist: sure. 21:57:26 Why do you guys use forth? 21:57:46 s-phist: There are too many answers to that question, not all of which may seem practical. 21:58:14 Practical in what way? 21:58:16 Forth is a simple and elegant language; implementing a Forth system is comparatively trivial compared to, say, Oberon (itself a vastly simpler language to implement than C). 21:58:28 It's so elegant and organic and malleable, and I grok it. 21:58:31 Practical in a "real-world, high-speed, useful for desktop applications" kind of way. 21:58:45 oh 21:58:49 So forth is slow? 21:58:51 Forth is easily adaptable to a specific problem domain. 21:58:57 cool 21:58:59 s-phist: I didn't say that. :) 21:59:11 Forth is slower than C, but faster than Perl or Python by a long shot. 21:59:25 Why is it slower than C? 21:59:28 Aye. That's exactly why I'm making a C-Forth. I can adapt it to any problem for whatever project I'm on. 21:59:40 Modern microprocessors are specifically tuned and optimized to run C and similar languages. 21:59:42 Heh, even my C Forth is faster than Python. 21:59:54 kc5tja: oh, that sucks 22:00:01 Forth represents a fundamental difference in how data processing occurs, and the underlying hardware isn't optimized for that method of processing data. 22:00:03 madgarden: forth implemented in c? 22:00:17 s-phist: Forth can be written in Forth itself, C, machine language (usually), etc. 22:00:18 Yep. Well, a Forth-like. 22:00:34 I actually don't adhere to many "standards" for Forth. 22:00:37 I once wrote a Forth in TI Basic 22:00:44 kc5tja: yeah, sounds like a lot of forthers write their own forth implementation 22:00:47 it was sooooooo slow lol 22:00:49 arke: hahah 22:00:50 such a hack too 22:00:55 But, I draw concepts from everywhere. 22:00:59 Heh. 22:01:03 * kc5tja notes: Oberon, Pascal, Fortran, et. al. are all included in the "C-like" umbrella for the purposes of this discussion, because they're all pretty much the same language once you get past the syntaxes of each language. 22:01:04 it would use Str0 as an index string for the dictionary 22:01:21 That's the other reason I like Forth... SYNTAX. There is none. 22:01:36 * kc5tja has written four already, and has a fifth on the back-burner. :) 22:01:44 matrix [A] contained name length, offset (in Str0), then length of code (in L1) and offset there 22:01:49 * kc5tja too. Syntax is a major hinderance, I think. 22:01:52 I'm a newbie... still on my first one. ;) 22:02:05 that was my first forth ... lol 22:02:09 I'm reading about Scheme now. I am liking Scheme for the most part. While it has syntax, it is still relatively little. 22:02:10 Okay, anyone recommend a good forth interpreter for windows? 22:02:14 no immediate words, however 22:02:24 kc5tja: scheme turns ugly really quick 22:02:25 s-phist: I've heard Win32Forth is a good system. 22:02:26 FICL is a good one for starters. FICLWin. 22:02:30 kc5tja: although it _is_ quite neat :) 22:02:40 They say scheme doesn't have syntax :/ 22:02:42 arke: Ugly in what way? 22:02:47 Scheme absolutely has syntax. 22:03:06 kc5tja: Its just a parse tree or whatever. 22:03:07 foo bar is wrong; (foo bar) is right only if foo is a function; '(foo bar) if you want a list with foo and bar inside 22:03:20 s-phist: Yes, that's why I like it. 22:03:34 Forth only has minimal syntax because "Forth" is a language on top of RPN. 22:03:52 --- quit: sophist (Connection timed out) 22:04:06 '(foo bar) is a macro, its translates to (quote (foo bar)) 22:04:19 madgarden: Well, Forth has 'no syntax' because what syntax it has is actually the result of Forth words processing Forth code. E.g., the Forth runtime core proper doesn't define the syntax. 22:04:31 Aye. 22:04:36 s-phist: If you consider taht a macro. 22:04:49 Ankc: I was told its a macro :) 22:05:19 s-phist: It's not, in the Scheme sense. Scheme has a macro engine that makes macros indistinguishable from normal function calls. 22:05:27 OK, one thing I don't quite understand about some Forth discussions... macros? In Forth? Not even sure what that means... 22:05:41 Forth has no macros. 22:05:46 Forth has "compiler" words. 22:06:12 They are macros in the sense that they are executed 'immediately' while compiling (hence the term "immediate" in ANSI Forth and F83). 22:06:23 But they do NOT produce another Forth instruction stream as output. 22:06:29 Hence, they're not macros in the true sense of the word. 22:06:53 Instead, compiler words produce actual machine code (or threaded code, if appropriate) for direct execution by the inner interpreter or CPU itself. 22:07:17 Usually they do this by invoking lower-level compiler words/immediate words. 22:07:22 kc5tja: did you mean win32forth? 22:07:24 So, we're just talking immediate words then. 22:07:32 madgarden: Yes. 22:07:46 s-phist: Yes, that's what I wrote. 22:07:48 winforth is payware 22:08:11 s-phist: I've heard Win32Forth is a good system. 22:08:18 :-) 22:08:23 oh, my bad :) 22:09:11 FICL is neat because the WIndows build has a few widgets you can mess with in your Forth programs. 22:09:16 Makes a good demo to show others. 22:10:14 madgarden: yeah, it looks small too 22:10:24 win32forth seems like its big 22:10:37 It is. I use it a fair bit when I need to test out some Forth concepts. 22:10:59 ANd Win32Forth can crash. 22:11:50 Win32Forth is nice though, because you can SEE any word in the thing. However, I find the words in that system to be rather convoluted (to a Forth newb like me anyway). 22:12:21 Win32Forth is designed for commercial software development. 22:12:35 So it's pretty big because it supports a lot of the Win32 APIs and stuff. 22:12:49 http://cliki.tunes.org/Forth%20is%20NOT%20intrinsically%20slow 22:12:58 I just found that right now. 22:13:24 Dunno, maybe you guys want to look at it. "Forth is not intrinsicly slow" :/ 22:13:44 Yea, it's not. He's right. ;) 22:15:48 Ahh, I remember contributing material to that page. :) 22:16:10 oh? which is your handle on there? 22:17:20 KC5TJA 22:17:20 :) 22:17:20 Dunno, TUNES interested me for a little while, then I realized that its basically vaporware and the leaders of the project have different motivations 22:17:22 Yep. 22:17:27 TUNES will never come to be. 22:17:50 But as a result of their bickering, they've amassed one of the most impressive and freely available repository of public documentation on operating system and programming language research ever. 22:17:58 But there is a lot of stuff I would never have learned of if it wasn't for the TUNES webpages. 22:18:06 kc5tja: yeah, definitely 22:18:21 their language review thingy is the best of its kind on the web 22:27:53 Welp, must catch some zzzz's... nighty night. 22:28:09 --- quit: madgarden ("*frotz*") 22:28:13 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 22:28:19 hi ! 22:29:09 Yeah, I do too. :( 22:29:16 Got work in the morning. 22:29:18 re Serg_Penguin 22:36:51 kc5tja: do you know any RU man in USA personally ? 22:37:08 Yes, at least I used to. 22:37:17 I used to work with Sergey Nekrasov at Hifn, Inc. 22:40:13 :)) 22:41:28 i enlisted to pre-university courses ;)) to quickly refresh badly forgotten math/phys 22:42:54 wanna hack my way out of RU sinking in vodka, via education etc.. 22:46:53 Good luck. :) I hope it goes well for you. 22:47:01 Aack, I really need to get to bed. 22:47:06 I'm just so tired... :( 22:47:17 Good night! 22:47:42 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:55:10 --- quit: s-phist (""Wisdom: that seems to the populace to be a kind of flight, a means and artifice for withdrawing successfully from a bad game) 23:26:29 --- quit: Serg_Penguin () 23:31:50 --- join: melinda_ (name@melinda.usercloak.freenode) joined #forth 23:32:53 --- quit: melinda (Read error: 54 (Connection reset by peer)) 23:59:59 --- log: ended forth/03.11.20