00:02:54 -!- ShadowHntr has joined. 00:04:37 -!- sebbu has quit ("@+"). 00:06:28 -!- ShadowHntr has quit (Client Quit). 00:09:37 Any people willing to help with the parser? 00:21:36 yacc is 00:21:46 But yacc isn't a person :P 00:23:07 o speed the messaging process, the runtime system caches the selectors and addresses of methods as they are used 00:23:40 so searching through the superclasses only happens once 00:24:02 I guess we should write sample code before we judge. 00:26:45 I want to see the definition of objc_object 00:26:47 OSKit, eh? 00:27:37 -!- atrapado has quit (Read error: 110 (Connection timed out)). 00:30:40 objc_class too 00:34:49 OSKit? 00:35:36 OSKit sounds like a useful thing. 00:35:47 A very useful thing. 00:36:11 i can't find the "objc" include directory 00:41:16 http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/objc/ 00:42:43 looks pretty simple 00:52:39 -!- EgoBot has quit (K-lined). 00:52:40 -!- GregorR has quit (K-lined). 00:54:03 gnustep is _huge_ 00:54:15 ...Uh, did GregorR just get K-lined? 00:54:21 O.o 00:54:36 Yeah it is bsmntbombdood. 00:54:48 Hard to find what you're looking for 00:55:11 That's one of my problems. ObjC has almost no development going in it. 00:55:24 maybe it's perfect already 00:57:58 i'm looking for objc_msgSend 01:03:53 -!- calamari has quit ("Leaving"). 01:13:23 it would be nice if instance variables were dynamic like messages are 01:18:25 Huh? 01:19:24 You can't access instance variables if the object is typed id 01:19:26 http://svn.gna.org/viewcvs/gnustep/libs/libobjc/trunk/sendmsg.c?rev=22341&view=auto 01:19:36 ^^ there's the good stuff 01:20:47 Well that's because it's a class object then. 01:26:04 that's odd 01:26:25 I think the message sending function looks up the method from a linked list of methods 01:26:28 not a hash table 01:26:32 ie linear time 01:27:53 but it seems classes keep both 01:28:11 I would hope so, because you can make a tree based on parameters. 01:28:19 what? 01:29:10 Wait. Nevermind. I was thinking of the system I had in mind. 01:29:36 objc_class has both a objc_method_list*, a aaray, and a sarray*, a hash table/sparse array 01:29:39 both holding methods 01:30:29 named methods and dtable, respectively 01:30:52 So, are we using libobjc from GCC or GNUStep ? 01:31:00 Errr, I mean. 01:31:14 Are we using Foundation from GNUStep or just subclassing from libobjc? 01:31:37 you mean NSObject or Object? 01:31:47 Yeah. 01:31:53 NSObject 01:32:48 Alright. 01:32:53 Are we going to use Foundation stuff? 01:33:12 I don't see any reason not to 01:33:46 Alright. 01:33:56 Now. Cellular Automata VM? 01:34:08 Dunno how that would work 01:35:07 i assume you mean Virtual Machine rather than Virtual Memory? 01:36:02 yeah 01:40:19 Yeah. 01:40:44 We'd have to create a set of assembler commands that can define cellular automata. 01:41:08 Weirdos. 01:41:11 * oerjan ponders adding extra time dimensions to ALPACA. 01:41:31 I don't think cellular automata are imperative. 01:41:43 indeed not 01:42:15 Just build a universal constructor and have the program be instructions to it. 01:42:18 (and space dimensions too, of course) 01:43:20 * oerjan envisions an ALPACA bytecode would do. 01:43:50 ALPACA? 01:44:04 the cellular automaton description language 01:44:13 Link please. 01:44:24 http://esoteric.voxelperfect.net/wiki/ALPACA 01:44:55 Wait. Is this a practical project? :P 01:45:12 ALPACA has already been implemented. 01:45:13 Once "Game of Life" hardware becomes common, you'll really want that constructor stuff. 01:45:22 (And "once" is just my fancy way of saying "if".) 01:45:28 ;P 01:45:38 i guess it could be a practical project. 01:45:52 That's a fancy way of saying no, isn't it? 01:47:41 * oerjan generally says no to projects. Or at least his hands do. 01:49:10 I wonder what the best way to implement a sparse array is 01:49:22 -!- calamari has joined. 01:49:26 I suppose an ordered binary tree would work 01:51:39 that's O(log n) best, O(n) worst though 01:52:39 insert "balanced" at appropriate spot. 01:52:59 then remove "O(n) worst". 01:53:06 O(n) if the objects are inserted in sorted order 01:53:55 -!- ShadowHntr has joined. 01:54:08 which they probably would be if read from a file. But if you know they are sorted you can use a different algorithm. 01:54:35 what's that? 01:55:19 Hmm, suddenly idea. 01:55:30 making the tree balanced immediately. 01:55:45 (I saw the accidental "ly" before I sent that, but I decided to leave it in.) 01:55:58 Of course, it's about Abrasax, not this, so... yah. 01:56:09 oerjan: how... 01:58:09 and O(log n) still isn't good 01:58:42 recursively: make 2^n-1 first elements into one subtree, then read middle, then 2^n-1 next into another, then put together. 02:01:19 -!- calamari has quit ("Leaving"). 02:03:18 if you are going to worry about log n, then you need to read serious literature, not ask on IRC. :) 02:03:48 unless you find a channel with the real experts. 02:04:48 chances are at that level you need to worry about things like cache behavior. 02:05:00 -!- graue has joined. 02:05:16 Hello, graue? 02:05:19 s/?/!/ 02:05:23 Hello. 02:05:30 Did you hear about GregorR getting K-lined? 02:05:31 oh, i wondered why you were incredulous 02:05:33 no 02:05:46 What's this about incredulity? 02:06:03 ? 02:06:32 Rather: 02:06:36 graue: what's this about incredulity? 02:06:50 since you said hello with a question mark, i thought you were like "what?! GRAUE is here?! how can this be!!!" 02:07:01 Gregor got K-lined?1? 02:07:06 also, i need to learn to use my irc client, because i just answered you in a different channel 02:07:13 Ave Graue, Morituri Te Salutant! 02:07:21 or something like that 02:07:24 * EgoBot has quit (K-lined) 02:07:24 * GregorR has quit (K-lined) 02:07:40 why'd that happen? 02:07:47 Apparently it was for spamming. 02:08:10 spamming who 02:08:21 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 02:08:38 No idea. 02:08:46 i bet it was code. 02:09:05 Ah, indeed, an EgoBot bug may cause spamming. 02:09:13 damn 02:09:18 that's a lot better guess 02:09:28 Rather, may have caused. 02:10:36 hmm 02:10:56 "Broken client, apparently .. not sure the details", "I'm speculating, but usually that reason means it was disconnecting/reconnecting/etc.. or joining/rejoining/etc.." 02:11:28 What's this, now? 02:11:49 I asked a staffer 02:12:12 Apparently you got a better answer than I did. 02:12:29 but there were no disconnections before the k-line. 02:13:16 Indeed there weren't. 02:13:32 That'd be join/part stuff, then, which EgoBot doesn't do. 02:13:46 you guys have too much free time. 02:13:58 freenode people aren't arbitrary 02:14:04 i'm sure gregor can work it out with them 02:14:18 Well, the freenode person did say "usually". 02:14:28 Would the freenode people not being arbitrary mean it wasn't bot spam that caused this? 02:14:39 no 02:15:27 actually, freenode staff are pretty arbitrary 02:16:24 But if GregorR's been K-lined for EgoBot, I'm surprised you haven't been K-lined for bsmnt_bot or something. :-) 02:16:49 my bot isn't in any channels that staff are in 02:16:54 ihope_: Not been reported for spamming. 02:17:03 bsmntbombdood: Nor was EgoBot. 02:17:13 hmm 02:17:21 ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!") 02:17:40 ~ps 02:17:41 0: 'while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!")', 18.34 seconds 02:17:45 ~kill 0 02:17:46 haha you fail 02:17:52 Tell me how to kill it, will you? 02:17:58 ~kill 0 02:18:03 Pff. 02:18:07 it was actually sending you messages? 02:18:10 Yes. 02:18:11 hmm 02:18:17 someone must have identified it 02:18:29 I have UNFILTERED set. 02:18:32 oh 02:18:48 ~raw privmsg bsmntbombdood :foo 02:19:13 ~exec while 1: __import__("time").sleep(2); self.raw("PRIVMSG ihope_ :Ya!") 02:19:27 :orwell.freenode.net 505 bsmnt_bot :Private messages from unregistered users are currently blocked due to spam problems, but you can always message a staffer. Please register! ( http://freenode.net/faq.shtml#privmsg ) 02:19:44 ~kill 0 02:19:46 Yeah, I'm thinking it's definitely the UNFILTERED. 02:19:51 yeah 02:25:35 In Curses, if you use mvwaddch, does it go to the absolute y and x, or relative to the origin of the window? 02:50:10 -!- ihope_ has quit (Connection timed out). 02:53:39 The routines prefixed with mv require a y and x coordinate to move to before performing the appropriate action. The mv routines imply a call to move before the call to the other routine. The coordinate y always refers to the row (of the window), and x always refers to the column. The upper left-hand corner is always (0,0), not (1,1). 02:53:47 (man ncurses) 03:40:19 We should design an esolang for human-human communication 03:40:27 english is so overrated 03:41:45 oh right, there's english as lisp 03:43:03 bsmntbombdood: Lojban. 03:43:03 -!- Pikhq has quit (Read error: 60 (Operation timed out)). 03:43:11 (need we (no other)) 03:55:53 -!- bsmntbombdood has changed nick to xor. 04:08:21 -!- xor has changed nick to bsmntbombdood. 04:11:01 -!- Sukoshi has left (?). 04:56:03 -!- Bigcheesegs has joined. 05:14:09 -!- graue has quit (Read error: 110 (Connection timed out)). 05:46:58 -!- oerjan has quit ("leaving"). 05:51:22 -!- digital_me has quit (Read error: 60 (Operation timed out)). 07:25:21 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 07:38:59 -!- GreaseMonkey has joined. 07:54:50 -!- maverickbna has joined. 07:55:22 -!- maverickbna has quit (Client Quit). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:12:59 -!- ShadowHntr has quit (Read error: 110 (Connection timed out)). 08:40:19 -!- GregorR-Foo has joined. 08:40:43 I've been banned O_O 08:41:21 from wot? 08:41:53 FreeNode 08:42:21 bugger. why? 08:43:23 Idonno ... apparently spamming. I looked through all the logs for bots-gone-crazy, and there are none, so what the bork :( 08:43:36 All my logs suggest that I was not spamming. 08:43:47 Nor was a hacked version of me spamming. 08:43:59 hmm... what line did you get put onto? z-line? g-line? 08:44:45 if it was from more than a fortnight before you got the ban, someone hates you 08:44:45 K-line 08:44:50 and you should shoot them 08:44:58 K-line = how long? 08:45:05 Idonno, it doesn't say. 08:45:47 k-line==g-line 08:46:02 did you ever get z-lined before that? 08:46:28 I've never been anything-lined. 08:46:36 k 08:47:03 it'd be really funny if i got o-lined 08:49:08 actually: z-line = ip-block, g-line = ban-on-login 08:49:15 dunno about a straight k-line 08:49:29 * GregorR-Foo bashes his head into the wall. 08:49:34 Why have I been K-lined >_< 08:50:45 who k-lined you? 08:51:07 i think GregorR-Wtf would be more appropriate 08:51:46 I don't know, that's what's so confusing - none of my logs have the actual K-line. 08:51:59 Just "disconnection", then upon reconnecting it says I'm K-lined. 08:52:13 bugger 08:52:30 i would advise a raw-log for next time something stupid happens 08:52:49 And that would help ... how? 08:53:42 you can catch everything that's catchable 08:54:11 I doubt highly that the small area of messages that that would catch that I don't currently catch would help. 08:54:35 you could catch an ERROR message 08:54:51 perhaps: ERROR :You have been K-Lined by renfield 08:55:17 (i picked renfield cos he's the worst ircop on bluehell) 08:56:11 I sent an email to staff@... 08:56:26 The response will probably be: "Idonno, we don't log it. You'll be allowed to connect in seven years." 08:56:36 wtf 08:56:38 they should 08:56:52 otherwise they should jack hyperion up the ass and switch to unreal 08:56:53 I'm just being pessimistic :P 08:57:33 oh ok 09:35:04 -!- sebbu has joined. 09:54:30 -!- GregorR has joined. 09:57:31 -!- Sephh has joined. 09:59:43 -!- Bigcheesegs has quit (Read error: 113 (No route to host)). 10:02:32 so you got it sorted? 10:41:48 -!- meatmanek has quit (Connection timed out). 11:00:00 gonna go to bed, gnight 11:01:20 -!- GreaseMonkey has quit ("YAYS! I achieved something cool today!"). 11:02:11 -!- meatmanek has joined. 11:04:50 -!- Pikhq has joined. 11:14:47 -!- ihope_ has joined. 11:36:01 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 11:36:26 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 11:36:49 -!- nazgjunk has joined. 11:44:18 -!- jix__ has joined. 12:13:39 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 14:08:39 -!- nazgjunk has quit ("Bi-la Kaifa"). 14:10:46 -!- nazgjunk has joined. 14:59:25 -!- sebbu has quit (Connection timed out). 15:07:11 -!- sebbu has joined. 15:29:09 -!- CRathman has joined. 15:47:11 -!- sebbu has quit ("reboot"). 15:49:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 15:49:58 -!- nazgjunk has joined. 16:04:06 -!- sebbu has joined. 16:20:42 -!- jix__ has quit (Read error: 110 (Connection timed out)). 16:21:17 -!- jix__ has joined. 17:23:47 -!- Sukoshi has joined. 17:26:27 -!- jix__ has changed nick to jix. 17:42:03 -!- CRathman has quit ("ChatZilla 0.9.78 [Firefox 2.0.0.3/2007030919]"). 17:46:14 -!- sebbu2 has joined. 17:53:19 -!- sebbu has quit (Read error: 60 (Operation timed out)). 18:21:19 -!- sebbu2 has quit (Connection timed out). 18:25:59 GregorR: I asked a staff they said it was probably spamming/client problems 18:28:39 bsmntbombdood: I also asked a staff (shocker) 18:30:33 wow! 18:31:03 you're one smart guy 18:32:33 :P 18:34:07 owtf my internets 18:36:14 -!- nazgjunk has quit (Client Quit). 18:36:45 -!- sebbu has joined. 18:38:16 -!- nazgjunk has joined. 19:00:31 -!- oerjan has joined. 19:35:02 -!- Pikhq has joined. 19:36:39 -!- sebbu2 has joined. 19:39:33 -!- atrapado has joined. 19:55:18 -!- sebbu has quit (Connection timed out). 20:25:05 -!- GregorR-Foo has quit ("leaving"). 20:33:23 -!- sebbu2 has changed nick to sebbu. 20:50:48 -!- Sgeo has joined. 21:34:42 -!- nazgjunk has quit ("Bi-la Kaifa"). 21:38:02 -!- nazgjunk has joined. 21:39:51 GregorR: Ya here? 21:45:30 I am now. 21:45:36 Not for long. 21:46:03 Did you see my ideas for an OO extension to C? 21:46:34 I was K-lined for no good reason, so I haven't seen anything in a while (I didn't log my other persona) 21:46:44 Ah. 21:47:17 A usefull OO extention to C? 21:47:20 I've refined my idea. So here it is, it's a minimal extension to C to support OOP using generic functions. 21:47:34 -!- Sephh has changed nick to Bigcheesegs. 21:47:50 It adds 4 keywords to the language, ``generic'', ``specific'', ``class'', and ``continues''. 21:48:06 If you're familiar with the concept of generic function OOP.... 21:48:22 * GregorR will read the log, must leave now. 21:48:27 ``generic'' defines a function generic ( generic void display(a, b); ) 21:48:54 ``specific'' specialized on the generic ( specific void display (int a, char b); specific void display (int a, int b); ) 21:49:19 ``class'' declares a class in struct form ( class Player { int xpos, ypos; } ) 21:49:48 ``continues'' designates that the specialized generic function calls the next-less-specific specialized method for the generic it is assosciated too. 21:49:50 *to 21:50:08 Very simple, and not very hard to implement, if only I knew the GCC parser-foo. 21:50:53 So is there a purpose other than just trying to create it? we already have c++ :P 21:51:02 .......... 21:51:07 Do you know what you're talking about? 21:51:10 yes 21:51:27 C++ follows an incredibly different object model, is very unclean, and favors its own big/bulky style. 21:51:46 I don't find it that way, I think it's damn sexy. 21:52:25 You may like C++ and its ``Do Everything My Way or NULL way'' philosophy, but this is designed to be a very small extension to C. 21:52:47 And the C++ object model is message passing, so it has to have all this annoying stuff like polymorphism/operator overloading. 21:53:16 Something a C coder can pick up in a few minutes and work with, like everything else in the C language. 21:55:49 -!- crathman has joined. 21:56:43 -!- Sukoshi has left (?). 22:12:05 -!- Sukoshi has joined. 22:30:57 -!- nazgjunk has quit ("Bi-la Kaifa"). 22:32:23 -!- nazgjunk has joined. 22:32:32 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 22:39:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:49:56 -!- nazgjunk has joined. 22:54:12 -!- ihope has joined. 22:55:39 Sukoshi: how do you implement it? 23:05:00 -!- nazgjunk has left (?). 23:17:39 bsmntbombdood: Not all that difficult. 23:19:18 bsmntbombdood: Classes are just structs with type information. Generic methods are determined and then less-specific behavior is inlined if the function is ``continues'', and these are all kept either in a virtual method table or a tree that matches based on parameter. 23:19:55 Oh, I think we need an ``inherits'' keyword too, to subclass. 23:20:28 Subclassing basically copies the fields of the super-class's struct directly into the derived class. 23:20:40 so with a generic call, the compiler looks up the correct method based on the objects' type? 23:20:48 Yup. 23:21:16 The runtime has to be able to keep type information. 23:21:23 it does? 23:21:29 Well, actually no it doesen't. 23:21:52 We can parse it so that arguments to generics are wrapped in structs that contain type information. 23:22:16 defining a method uses some kind of name mangling, then at compile time method(object) is replaced with _method(object) 23:23:13 not always possible to do at compile time 23:23:33 why not? 23:23:55 because the actual object might be of a subclass. 23:24:35 doesn't matter 23:25:05 if you type an object as one of its superclasses, you can only call methods defined in its superclass 23:25:38 sure, but the actual version of the method may be overridden by the subclass. 23:27:12 oh 23:28:21 ? 23:28:57 Remember, this is generic functions based. Subclasses don't override methods. If you mean it defines a wholly different specialization, then, so ? 23:29:06 -!- sebbu has quit ("@+"). 23:29:45 what's the point of inheritance then? 23:30:10 however, the specialization depends on the actual runtime class, not the compile time class. 23:31:32 so it requires runtime information to select the right specialization 23:31:53 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]"). 23:35:41 Inheritance only pulls in fields of the parent struct. 23:35:48 Yes, that it does oerjan. 23:36:43 Well there's no point if it requires runtime support 23:38:11 Unless we restrict it away from runtime changing classes. 23:38:21 So your classes can't be dynamic. 23:38:36 What do you mean dynamic? 23:38:50 Specifying classes during runtime == dynamic. 23:39:19 I thought the point was to have classes be static 23:39:32 Then it should be fine still. 23:40:09 wait a minute. do you mean that a subclass object cannot be passed as an object of the superclass? 23:40:48 What's the point? 23:40:49 it can, but the superclass method will be called 23:40:55 Exactly. 23:41:01 Haven't you played with CLOS, oerjan ? 23:41:06 nope. 23:41:10 Aha. That's why. 23:41:24 but common lisp is dynamically typed... 23:41:28 Quick overview of a generic method system. 23:41:49 Classes only hold slots, basically struct fields. 23:42:16 Generic functions are defined that only define the number of arguments (and in this case the return type) of a function. 23:43:10 After, you define specific implementations of the generic function based on different types. In this case, if you define that specialized function with the keyword ``continues'' it automatically calls the assosciated specialization for the next-less-specific specialization. 23:43:47 To simplify things, I want no multiple inheritance, because I can see maybe only a few rare cases where multiple inheritance works, and it's cleaner to simulate it with abstract classes. 23:43:53 all of this makes perfect sense with dynamical typing, but not with static typing. 23:44:09 But why wouldn't it work with static typing? 23:45:10 well it would work like haskell typeclasses, but not like an object-oriented system. 23:45:16 -!- atrapado has quit ("a tra pa da"). 23:45:48 Probably. 23:45:56 But when using C, 9/10 the only reason you need OOP is to manage state and to abstract away method calls to superclasses. 23:46:02 This creates that framework with a minimum of overhead and a minimum of language extension. 23:46:34 because with dynamical typing, you can pass a subclass object and treating it like an overridden superclass object. 23:47:20 so common lisp _behaves_ as if subclasses can override, although technically they don't. 23:48:12 (at least that is my guess from your description) 23:49:00 Exactly. 23:49:00 That's the beauty of the system. 23:49:11 but that wouldn't work in C 23:49:40 indeed, not without passing around some of the same information at runtime that CL needs. 23:50:14 The overlap of the generalized-method framework simulates operator overloading and polymorphism. 23:50:14 While actually abstracting the implementation to make it much more trivial to implement. 23:51:52 -!- bsmntbombdood has changed nick to xor. 23:52:29 Which things? I'll be wrapping my head around magnetization vectors while y'all talk. 23:54:33 essentially runtime type information. since this is multiple dispatch, the class struct doesn't contain enough information. 23:55:37 *information = tag 23:55:41 *s