00:00:00 --- log: started forth/03.12.01 00:05:44 --- join: njd (~junk@njd.paradise.net.nz) joined #forth 00:26:21 --- join: schihei (~schihei@blueice1x.de.ibm.com) joined #forth 03:52:57 --- quit: njd (Remote closed the connection) 04:22:52 --- quit: arke (Remote closed the connection) 04:23:25 --- join: arke (~chris@ca-cmrilo-cuda1-c3b-66.vnnyca.adelphia.net) joined #forth 04:59:19 --- quit: haroldo (Read error: 104 (Connection reset by peer)) 05:04:44 --- join: haroldo (~haroldo@r200-40-216-53.adsl.anteldata.net.uy) joined #forth 05:11:40 --- quit: I440r ("BitchX: its what's for lunch") 05:39:41 --- join: yasam (~sam@210-55-150-210.dialup.xtra.co.nz) joined #forth 06:01:34 --- quit: arke (Remote closed the connection) 06:10:15 --- quit: warp0x00 (Excess Flood) 06:10:59 --- join: warp0x00 (~warpzero@dsl.142.mt.onewest.net) joined #forth 06:53:02 --- part: yasam left #forth 06:53:39 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 06:55:01 --- join: oooo_ (o@virgo.bombsquad.org) joined #forth 06:55:34 --- quit: oooo (Read error: 104 (Connection reset by peer)) 07:37:35 --- quit: warp0x00 (Connection timed out) 07:38:14 --- join: warp0x00 (~warpzero@dsl.142.mt.onewest.net) joined #forth 08:17:44 --- quit: schihei (Client Quit) 08:36:58 --- quit: onetom (Read error: 110 (Connection timed out)) 08:40:21 --- join: Robert_ (~snofs@c-2b5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 08:41:27 --- quit: Robert (Read error: 113 (No route to host)) 09:08:14 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:27:27 --- nick: Robert_ -> Robert 09:29:20 * mmanning hides 09:32:13 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 09:43:55 robery 09:55:51 --- join: schihei (~schihei@p5085D1C2.dip.t-dialin.net) joined #forth 10:58:56 --- part: gilbertdeb left #forth 11:08:22 --- quit: schihei (Client Quit) 11:08:44 --- join: schihei (~schihei@pD9E5C019.dip.t-dialin.net) joined #forth 11:10:20 --- quit: schihei (Client Quit) 12:05:33 --- quit: mmanning ("Reality Strikes Again") 12:16:56 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 13:04:17 --- join: schihei (~schihei@pD9E5C019.dip.t-dialin.net) joined #forth 13:29:55 --- join: arke (~chris@ca-cmrilo-docsis-cmtsj-a-23.vnnyca.adelphia.net) joined #forth 14:39:33 --- quit: schihei (Client Quit) 15:14:02 --- join: jamc (dne@as3-6-8.asp.s.bonet.se) joined #forth 15:26:51 --- quit: arke (Read error: 104 (Connection reset by peer)) 15:37:55 --- join: arke (~chris@ca-cmrilo-docsis-cmtsj-a-23.vnnyca.adelphia.net) joined #forth 16:06:22 http://www.snafu.com/Rotation.html 16:17:19 --- join: Sonarman (~matt@adsl-64-160-164-27.dsl.snfc21.pacbell.net) joined #forth 16:19:56 arke: that's really weird 16:34:31 yea 16:57:24 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 17:07:09 --- join: haroldo_ (~haroldo@r200-40-212-36.adsl.anteldata.net.uy) joined #forth 17:16:56 --- quit: jamc (zelazny.freenode.net irc.freenode.net) 17:16:56 --- quit: oooo_ (zelazny.freenode.net irc.freenode.net) 17:16:56 --- quit: haroldo (zelazny.freenode.net irc.freenode.net) 17:16:56 --- quit: skylan (zelazny.freenode.net irc.freenode.net) 17:16:56 --- quit: mur (zelazny.freenode.net irc.freenode.net) 17:17:14 --- join: jamc (dne@as3-6-8.asp.s.bonet.se) joined #forth 17:17:14 --- join: oooo_ (o@virgo.bombsquad.org) joined #forth 17:17:14 --- join: haroldo (~haroldo@r200-40-216-53.adsl.anteldata.net.uy) joined #forth 17:17:14 --- join: skylan (sjh@vickesh01-4904.tbaytel.net) joined #forth 17:17:14 --- join: mur (~mur@uiah.fi) joined #forth 17:18:21 --- quit: Herkamire (zelazny.freenode.net irc.freenode.net) 17:18:21 --- quit: madgarden (zelazny.freenode.net irc.freenode.net) 17:18:38 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576567.sympatico.ca) joined #forth 17:18:38 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 17:20:55 --- quit: haroldo (Read error: 110 (Connection timed out)) 17:21:05 --- quit: arke (zelazny.freenode.net irc.freenode.net) 17:21:05 --- quit: onetom (zelazny.freenode.net irc.freenode.net) 17:21:32 --- join: arke (~chris@ca-cmrilo-docsis-cmtsj-a-23.vnnyca.adelphia.net) joined #forth 17:21:32 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 17:21:53 --- quit: chandler (zelazny.freenode.net irc.freenode.net) 17:21:53 --- quit: ianp (zelazny.freenode.net irc.freenode.net) 17:22:10 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 17:22:10 --- join: ianp (ian@inpuj.net) joined #forth 17:24:00 --- quit: haroldo_ (zelazny.freenode.net irc.freenode.net) 17:24:19 --- join: haroldo_ (~haroldo@r200-40-212-36.adsl.anteldata.net.uy) joined #forth 17:27:30 --- quit: jamc ("Two with FLUFFO, hold th' BEETS..side of SOYETTES!") 17:28:51 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 17:29:09 --- join: ChanServ (ChanServ@services.) joined #forth 17:29:09 --- mode: zelazny.freenode.net set +o ChanServ 17:30:23 --- quit: ChanServ (zelazny.freenode.net irc.freenode.net) 17:31:13 --- join: ChanServ (ChanServ@services.) joined #forth 17:31:13 --- mode: zelazny.freenode.net set +o ChanServ 17:31:47 --- join: I440r (~mark4@13-100.lctv-a5.cablelynx.com) joined #forth 17:36:02 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 17:36:03 --- mode: ChanServ set +o kc5tja 18:51:07 --- quit: arke (Read error: 104 (Connection reset by peer)) 19:02:24 --- join: arke (~chris@ca-cmrilo-cuda1-c3b-124.vnnyca.adelphia.net) joined #forth 19:03:10 --- quit: I440r (Connection timed out) 19:52:10 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 20:23:34 --- join: arke_ (~chris@ca-cmrilo-cuda1-c3b-124.vnnyca.adelphia.net) joined #forth 20:26:08 --- quit: arke (Read error: 60 (Operation timed out)) 20:26:15 --- nick: arke_ -> arke 21:26:52 --- log: started forth/03.12.01 21:26:52 --- join: clog (nef@bespin.org) joined #forth 21:26:52 --- topic: 'where people get together to talk about CVT, stirling engines, tesla turbines, data structure and algorithm design, and occasionally Forth' 21:26:52 --- topic: set by kc5tja on [Wed Oct 15 21:47:35 2003] 21:26:52 --- names: list (clog arke @kc5tja @ChanServ haroldo_ ianp chandler onetom Herkamire madgarden mmanning Robert warp0x00 MysticOne TreyB oooo_ skylan mur) 21:41:00 kc5tja: I've been thinking a lot about how to store data in my system, and how the user interacts with it 21:41:23 Hey, you caught me just in time. 21:41:30 I just got back from cooking up some chicken fajitas. :D 21:41:37 nice :) 21:42:12 my thought seem to be running very simular to what I've heard you say about an object system 21:42:15 flat database 21:42:18 * kc5tja was reading Anton Ertl's paper on RAFTS. 21:42:27 objects can easily reffer to eachother 21:43:09 * kc5tja nods 21:43:13 each object has a type which you can use to determine how to display/search/etc it 21:45:03 * kc5tja nods 21:45:17 --- quit: arke (calvino.freenode.net irc.freenode.net) 21:45:17 --- quit: kc5tja (calvino.freenode.net irc.freenode.net) 21:45:17 --- quit: mmanning (calvino.freenode.net irc.freenode.net) 21:45:17 --- quit: warp0x00 (calvino.freenode.net irc.freenode.net) 21:45:17 --- quit: Robert (calvino.freenode.net irc.freenode.net) 21:45:21 --- join: Robert (~snofs@c-2b5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 21:45:47 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 21:45:48 --- mode: ChanServ set +o kc5tja 21:45:49 --- join: mmanning (~mmanning@saturn.vcsd.com) joined #forth 21:45:50 WTF.... 21:45:53 definately going to have a type tree 21:45:53 That pisses me RIGHT off. 21:45:59 --- join: warp0x00 (~warpzero@dsl.142.mt.onewest.net) joined #forth 21:46:17 --- join: arke (~chris@ca-cmrilo-cuda1-c3b-124.vnnyca.adelphia.net) joined #forth 21:49:19 I'm starting to think I'm going to want some sort of language with namespaces 21:50:26 kc5tja: you reading this? DISSERTATION Implementation of Stack-Based Languages 21:50:37 ? 21:50:44 I got disconnected. 21:50:55 you reading DISSERTATION Implementation of Stack-Based Languages 21:52:19 No. 21:52:49 OK, yes. 21:52:57 (the title is in German; I didn't recognize it) 21:52:59 --- quit: chandler (calvino.freenode.net irc.freenode.net) 21:52:59 --- quit: ianp (calvino.freenode.net irc.freenode.net) 21:53:00 --- join: ianp (ian@inpuj.net) joined #forth 21:53:09 Implementation of Stack-Based Languages on Register-Architecture Machines is the full title. 21:53:12 (as best I can translate) 21:53:15 ah, yes, google did return some german pages 21:53:34 hey there :) 21:53:41 re arke 21:53:45 here's english if you prefer :) http://www.complang.tuwien.ac.at/projects/forth.html 21:55:30 Herkamire: I'm kind of pondering creating a Forth dialect where the state of compilation can be statically deduced at all times. This means no PICK, ROLL, ?DUP, et. al., since they all have unknown stack effects at compile-time. Moreover, EXECUTE will impose a huge run-time penalty, also due to unknown stack effects. 21:55:42 I still have a great many questings in my head about object systems and languages. 21:55:42 Well, the paper I'm reading is in English. 21:57:17 re arke 21:57:38 Sorry, I was reading and involved in a conversation. I didn't even see you until now. 21:57:38 I've seen a native forth for Mac OS X that optomized out the stack to an extent 21:57:59 called D 21:58:03 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 21:58:31 unfortunate name. makes it a bit hard to find. I think it's on the list of forth systems at figsomething 21:59:50 I still have quite a distaste for object oriented programming languages (mostly from C++ I have to admit) 22:01:36 Herkamire: OO programming is a tool. Consequently, like any tool, it can be misused. 22:01:50 yep. 22:02:04 I must first define what I need done, before I choose/design a tool 22:02:06 Herkamire: Tools which enable the use of OO programming, such as C++, can themselves be misused. 22:02:32 I find C++ to be quite an acceptable language provided I don't use or rely on software that uses templates. 22:02:45 I abhore templates with a passion. 22:03:33 what I hate about C++ is that I can never find the code that actually get's executed, and that debuggers are much harder to use/understand that with C 22:04:19 What do you mean by never find the code that gets executed? 22:05:07 when looking through other people's code I invariable spend most of my time searching and guessing through the sources to find the code that get's executed 22:05:26 I see something like i->print(bla.c); 22:06:00 and I'll have to go searching around to see what type i is. then where that type is defined, then it doesn't have a print() function, so I'll have to go searching around for it's parrent classes, and their parrent classes 22:06:31 Well, that's an endemic issue with object oriented programming in general. 22:06:38 You'll find that with all OO programming languages. 22:06:52 I think that's a major problem 22:07:00 (which I intend not to have) 22:07:51 I realized I've been missing a huge, HUGE opportunity for object oriented programming in Forth this morning. 22:08:10 currently my editor will show you the code for the word you're looking at 22:08:15 I realized that I can achieve many of the benefits of a CLOS-like object system in Forth, without ever invoking the need for a macro/compiler word. 22:08:37 I'm not farmilliar with CLOS 22:08:44 Well, static determination of methods is nice, when it can be done. It can't be done for all functions though. 22:09:17 * kc5tja notes that even Forth supports "DEFER" to implement words whose run-time semantics aren't known at compile-time. 22:09:21 yeah, sometimes you need to say "call the print function for whatever this object is" 22:09:59 CLOS is often called the most sophisticated object oriented programming extension on the planet. 22:10:29 It is currently the only object system that supports "multiple dispatch" -- choosing which method to execute based on *ALL* of a function's types, not just "the receiver" object. 22:10:58 This enables the implementation of various design patterns, such as the Visitor pattern, rather trivially. 22:11:24 Well, in Forth, if you follow a few conventions, you can achieve 90% of CLOS's functionality. 22:11:39 I'll admit that it's not a full reproduction. But it comes 'close enough for government work' in nearly every case I can think of. 22:11:49 when you can't determine what function is called at compile or edit time, you can make a debugger that shows you where it's going at runtime 22:12:17 The idea in CLOS is that objects contain state, and that's as far as it goes. 22:12:56 Due to Lisp's support for lisp processing and garbage collection, multiple inheritance is easily implemented by simply taking the union of two or more lists (each list representing object state). 22:13:17 what I really don't like seeing is when things that are compiled statically, and perfectly obvious to the user, and hidden behing something non-specific like ->print 22:13:20 In Forth, multiple inheritance is implemented using aggregation and delegation, as it is done in the component object model. 22:13:48 Herkamire: Every method is like that. Can you be more specific in what you're objecting to? 22:14:13 At any rate, in CLOS, methods are independent of the class definitions. 22:14:40 In order to define an interface, you first need to declare the existance of a method, called a generic function, or just 'a generic' for short. 22:14:57 Then, once the generic is defined, you can create methods for that generic, that specialize that one generic. 22:15:20 Well, in Forth, we don't need to define generics. We can use the dictionary itself as the one meta-generic that we need. 22:15:20 abstraction is very useful when you need it, but when you are doing something specific, just be specific. if you're just printing integers, use print_int(i); 22:15:49 Herkamire: How do you know you're printing an integer? What kind of integer -- unsigned, signed, infinite precision, et. al.? 22:16:37 However, I understand what you're getting at. It's just that I'm sure they had a specific reason for doing what they did. 22:16:39 I'm saying often in a program you know what kind of data you're working with. I object to people using generic methods for doing one specific thing 22:17:32 abstraction can be very useful, but also can very easily be confusing and misleading. 22:17:34 Anyway, in my Forth object system, which ties in to what you're complaining about somewhat, a generic method is used for polymorphic dispatch only. 22:17:52 This is because polymorphic methods must be resolved at run-time, as they are in CLOS. 22:17:58 I think abstraction should only be done deliberately, and much effort should be made to make it clear, and how to find out what's happening 22:18:14 Consider the 'max' function, which returns the maximum of two values. Conceivably, it can work on two integer or two floating point objects. So we can define the following: 22:18:34 : max 2dup int? swap int? and if (int-max) exit then max ; 22:18:48 : max 2dup float? swap float? and if (float-max) exit then max ; 22:19:31 Here, we have one generic word that takes two parameters. The first thing 'max' does is check to see if they are both floats. If they're not, it dispatches it to whatever previous definition exists for max (in this case, the integer version). 22:19:51 In this way, 'max' behaves precisely like a CLOS-style generic. The only difference is type-checking is explicit. 22:20:33 The only requirement is that objects must have some kind of run-time type information to be able to determine whether or not an object conforms to an interface. 22:20:33 I like having int-make available. if you know you have two integers, just call int-max, and save readers the trouble of searthing through definitions like you printed above (and checking that they are correct) before reading the definition for int-max 22:20:54 right 22:21:13 are you thinking of adding a type stack or something? 22:21:17 No. 22:21:20 Objects always have type. 22:21:22 Always. 22:21:39 As you indicated in your database designs; each object MUST have a type associated with it, so you know what the heck to do with it. 22:21:45 so you'le use the stack for pointers to an object with a type stored in it? 22:21:50 Otherwise, an object is no different than a Unix file. 22:21:52 --- join: Mark4 (Mark4@13-100.lctv-a5.cablelynx.com) joined #forth 22:21:56 Yes 22:22:19 The type ID can be very, very abstract too. 22:22:37 I plan to have a type tree 22:22:41 My idea for a type ID is dreadfully simple: a Forth word, whose body contains a vector where each element points to base types. 22:23:00 hi kc 22:23:50 don't quite understand your vector 22:24:32 In this manner, multiple interface inheritance is supported trivially, multiple dispatch ensures a clean calling convention where appropriate, and aggregation and delegation are used (in fact, the definitions for max above are examples of delegation) for code re-use. 22:24:43 Herkamire: Sure you do. A vector is an array, no? 22:24:56 Consider a C Source File type. 22:25:03 gotcha 22:25:22 It's (a) a text file, (b) a source file, and (c) a C source file in particular. 22:25:36 so each element is more specific 22:25:57 So we can define a type CSourceFile with base types , where CSource itself is derived from Source. 22:26:13 It's just an inheritance tree. 22:26:15 I was thinknig of just storing (c) and having words to ask "is this a text file" etc 22:26:27 That's single inheritance. 22:26:45 yes 22:26:54 Single inheritance works well for applications, but I'm not yet convinced that it would work well for everything. 22:27:36 Consider the case where you have a C source snippet in a string variable. It's not a text file, so it can't inherit from CSourceFile. It'd have to inherit from CSourceString or something, 22:28:30 You'd get a nasty proliferation of classes if you maintained a strict, single-inheritance system. 22:29:16 I don't plan on having files, so I'm having trouble seeing how your example would be a problem 22:29:30 Think generally. 22:29:42 I used files as an example of a much, much broader class of problems. 22:29:42 I'm trying. 22:29:52 the snippet is code 22:30:01 --- quit: arke (calvino.freenode.net irc.freenode.net) 22:30:01 --- quit: warp0x00 (calvino.freenode.net irc.freenode.net) 22:30:01 --- quit: kc5tja (calvino.freenode.net irc.freenode.net) 22:30:02 --- quit: haroldo_ (calvino.freenode.net irc.freenode.net) 22:30:25 text->code->C 22:30:31 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 22:30:32 --- mode: ChanServ set +o kc5tja 22:30:37 --- join: haroldo (~haroldo@r200-40-212-36.adsl.anteldata.net.uy) joined #forth 22:30:43 --- join: arke (~chris@67.23.43.124) joined #forth 22:30:45 --- join: warp0x00 (~warpzero@dsl.142.mt.onewest.net) joined #forth 22:31:00 anyone here using fbsd > 22:31:00 ? 22:31:09 noti 22:31:11 not I 22:31:24 Think about this then. You have a text editor that supports embedding graphics in it. 22:31:26 well isforth now works in fbsd and i didnt have to change a thing :/ 22:31:29 And multiple fonts and the li.e 22:31:30 like 22:31:51 Each text element in the document is a 'glyph.' 22:31:58 ok. I'll probably have to have one of those eventuall 22:32:28 oh god. 22:32:36 A glyph can be text (a single letter), so we have TextGlyph. 22:32:49 A glyph can also be a picture, so we have an ImageGlyph. 22:32:52 I'll probably have to make it so you can put a little graphic inbetween characters 22:33:25 What if you want to create an more sophisticated glyph, like a figure? A figure contains both text and graphics -- hwo do you reconcile this? 22:33:28 so I represent my document as a tree 22:33:50 A dedicated FigureGlyph has properties of both TextGlyph and ImageGlyph. 22:34:54 the glyph contains images, and text just like the document. why would it be a different type? 22:35:39 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 22:36:21 Herkamire: Because at the level the user is familiar with, for the purposes of selecting, manipulating, and cursoring around, it behaves exactly like any other glyph. 22:37:00 If you don't represent it as a glyph, you'll have special-case code in your editor to work around the discrepency and try to make it behave like one, which defeats the whole point of object orientation to begin with. 22:37:21 I expect documents to act like gliphs when they are small enough (zoomed out) 22:37:38 I think we're talking past each other here. 22:37:54 What you're talking about != what I'm talking about, despite using the same words. 22:38:10 I think the user will have to be clear about what they are editing. when you are editing a document, you don't expect to be able to change the contents of images in it, or glyphs 22:39:28 you are trying to show me how multiple inheritance is important 22:39:38 I don't see that it is 22:39:57 I certainly DO expect to be able to change them. 22:40:23 I plan to have trees, and arrays containing sub elements of the same or differing types 22:40:23 When I have a generic document editor, I don't care what is actually on the page; I only care that I can edit it. 22:40:30 and then objects of single types 22:40:33 Yes yes, I know all that. 22:40:36 That is not important. 22:41:05 What is important is that compound types exhibit compound behaviors, and that's where multiple inheritance proves its worth. 22:41:09 I do want to be able to edit them too, but I think you'll have to tell the editor that you want to edit them first, so it will stop treating it as one glyph 22:41:20 Well, yes, of course. 22:41:33 I don't believe I said anything to the contrary. 22:41:56 cool. glad we are on teh same page :) 22:41:58 But, if I have a figure, for example, with descriptive text, I'd like my "Search" tool to find text within it as well as within normal, top-level text. 22:42:44 I'd think you'd want to have a top-down sort of text search on your tree 22:43:08 Note that my discussion of multiple inheritance applies strictly to interfaces. I do not advocate multiple ``inclusion'' inheritance to facilitate code re-use. 22:43:21 * kc5tja bangs head on table!! 22:43:36 something that would search through the tree from the cursor/focus to the end, then from the begining. then search subdocuments/glyphs, then search outside teh document 22:43:38 for x in document.objects: 22:43:47 x.search(text) 22:43:50 That's all that needs to be implemented. 22:44:07 If x happens itself to be a compound glyph, then it's search method will search its children, and so on. 22:44:18 --- quit: chandler (calvino.freenode.net irc.freenode.net) 22:44:18 It naturally forms a tree, which naturally is searched top-down. 22:44:23 --- join: chandler (~darmok@64-145-60-36.client.dsl.net) joined #forth 22:44:39 I like that from a code simplicity standpoint 22:45:02 I was thinking that the user might appreciate what I just described, but I'm rethinking that now 22:45:37 Well, that all can be implemented using single inheritance or multiple inheritance. 22:45:47 But I'm just describing how multiple inheritance can be applied towards this situation. 22:46:16 (if using single inheritance, you can make a 'CompoundGlyph', which serves as a Facade Pattern interface to emulate the characteristics of multiple inheritance; it's not too hard). 22:46:52 something like that 22:46:52 At any rate, my point is with respect to interfaces, not to implementation re-use. 22:47:09 * kc5tja overwhelmingly prefers aggregation and delegation over normal inheritance-based code-reuse anyway. 22:47:14 It's more natural to me, and much more powerful. 22:47:35 I a glyph would be a tree object object it's self (if it was a figure with text etc) 22:48:14 I think my issues with multiple innheritence are when people are trying to reuse code 22:48:45 I find that I can generally reuse code just fine without OO. I can use nice, specific names for my funcions. 22:49:07 Well, I am using this approach in qm. 22:49:17 Method names are always of the module_type_method() format. 22:49:21 (as it is with GTK) 22:49:29 (and C binding for CORBA) 22:49:57 I don't consider any of my projects to have been terrably complex though, and as projects get bigger, I think the optimal stratagy is a bit different 22:50:05 It makes sense that, for Forth, we can do the same thing. Maybe use '.' or '-' instead of '_' in the name. 22:50:25 yeah :) 22:50:32 i've been using - 22:50:33 : someModule.IntObject.max max ; 22:50:42 : someModule.FloatObject.max fmax ; 22:50:51 exactly. my editor functions are ed-display ed-find etc 22:51:00 ed-next-block 22:51:04 : max 2dup someModule.IntObject? swap someModule.IntObject? and if 22:51:12 someModule.IntObject.max 22:51:17 then max ; 22:51:32 : max 2dup someModule.FloatObject? swap someModule.FloatObject? and if 22:51:38 someModule.FloatObject.max 22:51:40 I considered using . but I didn't want people to confuse it with object syntax 22:51:41 then max ; 22:52:04 I'm just giving an example. 22:52:10 I just assume use _ as I would -. 22:52:18 I like - only because it doesn't require the shift key. :) 22:52:24 me too :) 22:52:44 I use - because it's easier to type 22:53:09 I find it nice for reading too 22:53:38 I've grown used to underscores from GTK programming. 22:53:54 I actually prefer GTK's object model over other C-based object systems I've used. 22:53:54 it cost me 5 minutes in debugging once though. I typed _ in one place and - in another and it took me a while to figure out why I was getting "word not found" 22:54:12 I really like gtk's object model 22:54:13 :) 22:54:15 haven't used it much 22:54:23 Herkamire: Mind if I send you a PDF? 22:54:39 Herkamire: It is the source code to qm's core object facilities. 22:54:41 I got a bit frustrated with it, but mostly C typechecking BS and when I couldn't find documentation for drawable areas 22:54:50 send away 22:55:01 --- quit: Mark4 ("Leaving") 22:55:11 Yeah. Mine is written in C too, so I have to put up with type checking and whatnot. 22:55:52 PDF? you doing WEB? 22:55:57 #2 brb 22:56:08 Yes, I'm using nuweb. 22:59:49 cool 22:59:53 I just started reading about literate programming 23:00:37 :) 23:01:07 * kc5tja decided to try it for two reasons: 1) I wanted to fully disclose how my software works, for the poor souls who wants to hack on the project, and 2) I've never used it for a production-level project before. 23:01:26 BTW, if you want to hack on qm, you can. 23:01:45 It's open for bazaar-style development by anyone who has GNU/Arch installed on their box. 23:02:47 (Arch is the source code control tool I'm using; CVS can go to hell as far as I'm concerned, and I feel it supports open-source development FAR better than CVS does, IMNSHO) 23:04:46 I might try arch sometime 23:05:13 it lets you use revision controll even when you're not connected to the web right? 23:05:44 Yes. 23:05:54 I've been using svn, which is nice, but I could see it being annoying if the repository wasn't on my machine :) 23:05:54 Suppose you want to hack on qm as well. 23:06:23 You would create a local copy of my repository (which is on my company's website, btw) on your computer. 23:06:29 very cool you are trying WEB. I like the concept very much (the concept is really all I have I think I only read a quick intro to WEB 23:06:31 You would do all your own hacking on your own repository. 23:06:51 so my computer would have the history back to when I started hacking right? 23:06:55 Then, when you have something I want, I can `star-merge' your changes into my copy, and publish it on the web. 23:07:29 Herkamire: And, indirectly, back to when I started hacking, yes. 23:07:46 very very cool. 23:07:48 There'd be a log entry that reads, "CONTINUATION: ...etc...", which contains information on where to find the file you forked the project from. 23:07:59 solves biggest problem with cvs and later svn at work. 23:08:03 s/file/branch and version/ 23:08:38 when you have made significant changes, and want to save, (so you can make risky/spike changes with the possibility of rolling back) but your major changes are not yet ready for others 23:08:47 Yep. Learning it isn't that difficult; just spend some time with it before using it for production work though. :) It is very different from CVS. 23:10:00 Herkamire: What do you think about qm's object system? 23:10:37 * kc5tja hasn't gotten into the standard persistence engine yet; I'm still working on getting the core object system working (I have to make the unit tests compile first, and I've been too lazy to work on that of late. I'll probably get to it sometime tomorrow if I remember or feel up to it.) 23:13:22 I'm still reading the intro. I like bit about "besides having to deal with an injured dog" :) 23:15:11 --- quit: Serg_Penguin () 23:15:46 :-) 23:32:16 why are there question marks in the references like this: Macro referenced in ? 23:37:10 It means that a section hasn't been defined yet. 23:37:52 Although, that is weir.d 23:37:54 woeifja; efjehjoeijvqwpo iejbweoi t 23:38:00 Fuck, I can't type tonight!!! :( : :( :( 23:38:06 It was working just last night. 23:38:42 Dude, that *IS* weird. 23:38:50 I had to re-build the DVI file to get the links working right. 23:38:57 If I rebuild the PDF file, it'll have the right page numbers. 23:39:03 Do you want me to do that? 23:39:54 I'm ok for now. I was just curious 23:41:45 I see, nuweb was complaining because of broken links, that I had to re-run nuweb once more *after* running latex. 23:41:48 I fixed the Makefile. 23:44:17 * kc5tja really likes working with TeX. It's a bear to set up and configure on your box, but once done, it's smooth as ice to use. At least I think so. 23:44:34 * kc5tja should probably get the TeXBook from Knuth. 23:52:17 * kc5tja wonders what a language based on Forth would be like, but with a specific eye towards exploiting instruction-level parallelism, a la RAFTS. E.g., a Forth-like specifically optimized, as a language, for high-performance compilation. 23:55:27 Oh well, I need to get to bed. I have school tomorrow. 23:55:45 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/03.12.01