00:00:00 --- log: started forth/10.05.12 00:02:35 --- join: ASau` (~user@77.246.230.105) joined #forth 07:01:51 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 07:26:18 --- join: nighty^ (~nighty@x122091.ppp.asahi-net.or.jp) joined #forth 07:27:25 --- join: docl (~luke@216-161-87-126.ptld.qwest.net) joined #forth 07:50:34 --- quit: ASau` (Quit: off) 08:10:27 --- quit: crc (Read error: Operation timed out) 08:13:05 --- join: crc (~charlesch@184.77.185.20) joined #forth 08:19:21 --- join: safe_bird (~4d4f92f2@gateway/web/freenode/x-wcljancmseqybtqv) joined #forth 08:31:41 Hello. I have a question about how conditional statements work in immediate mode. 08:31:48 In Jonesforth, there are primitive branching subroutines written in asm, 08:31:54 http://paste.lisp.org/display/99137 08:32:05 and an implementation of IF-THEN-ELSE conditional written in Forth, which uses these low-level primitives 08:32:11 http://paste.lisp.org/display/99138 08:32:17 The question is: how can I make such a statement work in immediate mode? 08:33:21 would this involve compiling some temporary words? 08:47:44 --- join: _I440r (~mark4@baldr.openesque.com) joined #forth 09:19:25 --- quit: ASau (Remote host closed the connection) 09:20:09 --- join: ASau (~user@83.69.227.32) joined #forth 09:20:14 --- quit: docl (Ping timeout: 264 seconds) 09:21:32 safe_bird: Can you further explain your question? 09:21:49 Sure. 09:22:05 Feel free to use specifics from the jonesforth impelementation, I am rather framiliar with it. 09:22:10 I want to make conditionals work in interpretered mode. 09:22:31 What is a conditional? 09:22:47 An IF-THEN-ELSE control structure, for example 09:23:01 sorry for my poor English, I honestly try to do my best 09:23:01 Ok. 09:23:14 Your english is fine. 09:24:18 So you want if-then-else outside of a colon definition? 09:24:24 yes 09:24:44 And my guess is that I would need to compile some temporary words for that 09:25:25 I am not sure that is possible with an implementation like jonesforth. You see, jonesforth does a single pass, it only reads left to right and never goes in reverse. 09:25:38 like... when Forth reads "IF" in immediate mode, it should start constructing a temporary word until it hits "THEN" 09:25:43 So, when your interpreter reaches the 09:25:50 after that it should execute that word 09:25:51 IF" word, it won't know where to branch to. 09:26:21 Yeah, that's the problem. That's why I think it is necessary to compile things anyway 09:26:37 Yes, if you wanted you could compile each word of input. 09:27:31 But where to store that temporary word? 09:28:28 I could be always redefining a word with some reserved name 09:28:40 it would be quite dirty :-) 09:31:07 Why does it need a name? 09:31:30 You suggest building some anonymous word? 09:32:11 Sure, why not? If you want you could even have an independant stack for it, prealloced to some arbitrary size. 09:32:33 And by stack, I mean like the dictionary stack. 09:33:05 Hm.. a stack! It would allow me to define nested control structures, right? 09:33:14 Sec, phone. 09:34:39 Back. 09:34:48 Why a dictionary for a nameless word? I don't quite get it. 09:35:09 Well, the dictionary is fundamentally a third stack. 09:35:16 That's how I explained it to my team anyway. 09:35:34 It is a really big stack, with a linked list across it. 09:35:39 In jones forth. 09:36:08 Oh. I see what you mean. 09:36:40 So, keep some space somewhere, even in the dictionary, you can do it by just moving "HERE" up by some arbitrary ammount. 09:36:55 Ok, so you have this space. 09:37:12 And a link to it. 09:37:36 Then I can run it right after compiling 09:37:48 Now when your STATE is 0 (I use 0 for immediate mode) you do what you would do for compile mode, except in this place rather than HERE. 09:37:55 Well, you don't need a link. 09:38:40 You could just have a pointer in a register, or a variable, or you could create a proper dictionary header for it. 09:39:29 Then, whenever you encounter newline on the input, you execute your anonymous word which we just made. 09:39:49 And reset your pointer to the beginning of the anonymous word to overwrite what was there before. 09:40:18 Oh, great! Just move HERE back and the word would be overwritten. 09:40:35 But why should I wait for a newline? 09:40:47 You would of course run into problems with immediate words not behaving properly. 09:41:19 Well, when would you prefer to execute your input? 09:41:36 newline was just an example. 09:41:45 After IF-THEN-ELSE ends with the ELSE keyword. 09:42:05 So, i should be waiting for "ELSE" 09:42:21 Oh yes, you could do that, yes. 09:42:57 So IF would have a different behavior in immediate/compile mode, in immediate it would serve to change the state to a third state. 09:43:11 Yeah, and run a COLON 09:43:20 But then if you wanted loops, you would need to do the same thing. 09:43:26 Or any other control structure. 09:43:47 And you couldn't have IF-THEN with your model, only IF-THEN-ELSE 09:43:56 Because THEN could not predict if there was an ELSE or not. 09:43:57 Thank you for being very informative 09:44:04 I will try to hack something :-) 09:44:23 No problem, people in here (namely KipIngram) helped me a lot too. 09:45:38 I want to hack something for Jonesforth as a part of the assembly programming course 09:45:46 Spent 3 days learning how it works, 09:46:01 And can't wait to modify it somehow :-) 09:46:06 Cool. 09:46:30 Making IF-THEN work in immediate mode seemed like an interesting exercise 09:46:32 I designed my own minimal Forth for a school project. 09:46:43 Very similar to JonesForth. 09:46:44 For which platform? 09:46:50 Custom platform. 09:46:55 Wow! 09:47:20 You have designed a microcontroller? 09:47:23 :-) 09:47:41 My professor designed a custom core in lecture, and had the class do small bits of it, then our final project was to write a large program for it in groups of 4. 09:47:49 My group did a Forth implementation. 09:48:02 I am designing one right now actually. 09:48:05 So is KipIngram. 09:48:07 Wow! That's an amazing assignment! 09:48:19 We each are designing Forth-style cores. 09:48:31 Yeah, it was a good class. 09:49:13 My university has like 14 "intro to engineering" courses, and that is the only one where the students actually have a legitimate engineering project. 09:49:15 So I took that one. 09:49:35 I mean, most people just design a game of pong or something simple like that. 09:49:41 But their grade reflects that. 09:50:55 I wish we had more creative assignments at my provincial university in central Russia :-/ 09:51:20 What is a provincial university? 09:51:41 Should have gone to Microelectronics instead of Computer Science 09:51:52 Ufa State Aviation Technical University 09:52:11 http://ugatu.ac.ru/ 09:52:33 Yeah, I wish the same thing. 09:52:47 It wasn't too late for me to bump my degree down a bit though. 09:53:24 Have you studied Computer Science as well? 09:53:27 So I am what my university calls "computer engineering" which is electrical engineering with a heavy focus on digital circuits and computer science with a heavy focus on low level software like compilers and assembly. 09:53:33 it is never too late (: 09:53:39 I was on track for computer science, yes. 09:54:19 I wish I had more of a hardware background. 09:54:34 My course is more like "Software Engineering" than "Computer Science" 09:54:49 And we had mandatory electrotechnics and electronics 09:54:54 I fell in love with it 09:55:29 Electronics are so awesome! 09:55:34 It isn't that I took my education toward computer science. When I came to university I knew I wanted a EE degree, but I already had 4 years of computer science self-education. 09:55:39 So I settled for CE. 09:55:43 And I am pretty happy with it. 09:56:00 I am just too good at CS to not take advantage of it. 09:56:45 I have failed exams to a decent university (MSU) and was forced to enter the course here :-/ 09:56:48 At least it's free 09:57:36 I feel like EE is harder to teach yourself than CS. With CS all you need is an internet connection, you download a compiler and go. But for EE, you need all the components, you need some books, etc etc. It was just too difficult for me to learn by myself. 09:57:42 safe_bird: MSU? 09:57:50 Michigan State University? 09:58:01 Moscow State University 09:58:10 Oh, I see. 09:58:14 reportedly best place to study CS in Russia 09:58:30 I go to University of Michigan. 09:58:38 I have failed miserably on Physics 09:58:54 I applied to MIT, but I got rejected. 09:58:58 So I came here. 09:59:03 It was much cheaper and local. 09:59:06 Hehe, same story :-) 09:59:22 Uni is 5 minutes from my apartment. 09:59:32 It is like 2 hours from my house. 09:59:38 :-P 09:59:52 So I live on campus when shool is in session. 10:00:10 I am really good at physics. 10:00:15 I fail at reading. 10:00:17 Campus :-/ How many people live in one room? 10:00:22 2 10:00:30 Well, that's fine 10:00:31 Typically. 10:00:51 I get my own room next year. 10:01:06 And I suck on physics, chemistry and biology :-) 10:01:35 I am renting an appartment which is like .5km from campus. 10:02:15 Is campus that bad? 10:02:30 Yes. 10:02:35 It must be noisy, yes? 10:02:48 Well, the appartment is still considered on-campus. 10:03:07 Because the university owns the appartments, but offers a lot more freedom. 10:03:18 Noisy isn't the bad part. 10:04:11 And you can't invite a girlfriend? 10:04:16 In a dorm at my college the food is aweful, the rooms are extremely small, and everything smells bad. 10:04:40 Well, I suppose you could, but the room mate would be mad that he has to sleep in the hall. 10:04:46 Not that any girls are interested in me. 10:04:50 D: 10:05:01 Hehe. Same here :-) 10:05:44 Girls are interested in me when they want me to do their homework :-/ 10:06:02 Yeah.. I know how that is. 10:06:46 This semester it is Compiler Construction which everyone asks me to help with 10:06:49 so annoying 10:07:05 ! 10:07:11 I love compiler construction. 10:07:17 Yeah, me too! 10:07:21 I haven't taken the course yet, but I tought myself many of the concepts. 10:08:03 Ths summer I am going to write a compiler in OCaml + LLVM for a local Data Mining company 10:08:36 http://prime-en.geotec.ru/index.php?option=com_phocadownload&view=category&id=1:pdf-cat-files&Itemid=59 10:08:40 This summer I am writing mobile graphics software for Qualcomm. 10:08:42 The girl-thing will get better soon (not that that makes things any easier in the short term). 10:09:16 I know my fare share of funcitonal languages (not ML though) and I know some about llvm. 10:09:19 Interesting stuff. 10:09:26 Qualcomm :-/ You have so many great computer companies in the United States :/ 10:09:35 Find the graduate student pub. 10:09:38 yoh 10:09:43 Well, I have some things I need to get done today, but I am here a lot if you stick around. 10:09:58 TreyB: :o We'll see. 10:10:07 Hang out where the smart girls hang out. 10:10:07 god. 10:10:20 Deformative: you should just do what Richard Feynman did 10:10:45 * TreyB married a girl doing her PhD :-) 10:10:54 alex4nder: What's that? 10:11:06 Meh, drinking age is 21 here. 10:11:07 I am 18. 10:11:12 So a pub doesn't help much. 10:11:12 Deformative: functional languages kick ass! I am a long time member of the local Common Lisp sect. 10:11:24 safe_bird: I am not a fan really. 10:11:29 Like I said: soon, but it doesn't help much. 10:11:29 CL is not a functional language ;) 10:11:35 Deformative: he just would ask women to have sex with him. 10:11:39 not as much an Haskell for sure, schme :-) 10:11:43 *as 10:11:44 go read _surely you're joking_ 10:11:55 or just read this: http://www.gorgorat.com/#35 10:12:05 safe_bird: You can code totally non-functional code in CL. It is about as functional as C. 10:12:10 I just know my fair share because scheme was my first programming language ever, and I stayed around that part of the language neighborhood for a while. 10:12:10 Wow, Deformative! I'm surprised that you're 18. 10:12:19 alex4nder: That is actually a very good method for getting sex. 10:12:24 I'm 22 already and still suck at programming :-P 10:12:24 I am much more interested in minimalist languages now. 10:12:26 schme: I know, right? 10:12:45 alex4nder: I guess some people think it is rocket science (: 10:13:03 schme: I have seen a lot of miserable Common Lisp written as if it was C 10:13:17 schme: that was awful 10:13:22 Well, be back later. 10:13:23 o. 10:13:25 o/ rather 10:13:45 schme: I prefer to write in a mostly functional style with heavy use of macros for micro-languages 10:14:09 safe_bird: But you can write CL anyway you please. That's the charm, no? Sure it lends itself to highly object oriented semi-functional stuff.. but eeh. it's all good. 10:14:13 defmacro is the main thing that makes me prefer Common Lisp over the likes of Haskell and OCaml 10:14:52 schme: It's a much better imperative language than, say, Java for sure :-) 10:15:48 safe_bird: How come you don't hang out in #lisp ? 10:16:18 IRC destroys my productivity, schme 10:16:24 yes. mine too. 10:16:27 and IRC client in Emacs is an invention of devil 10:16:42 Not if you turn off notifications of activity. 10:16:46 it totally disrupts my workflow 10:17:08 even if I turn notifications off, I would constantly check the IRC buffer 10:17:16 That's a bit.. not so good. 10:17:26 Maybe take a year off of IRC then. You seem addicted. 10:17:38 Hell, I even turn my cellphone off during long programming sessions. 10:17:49 That sounds like a very good idea. 10:17:55 I need around one hour to get into the _flow_ 10:18:00 This is normal. 10:18:26 after getting into flow I become 5x more productive.. until something breaks the effect 10:18:38 There have been studies on these... notifications of things. Like email popups, visual CPU load displayers, IRC activity bar.. they all mess up your workflow something bad. 10:18:39 a ringing phone, for example 10:18:42 and cause brain damage actually. 10:18:59 Yeah, and I have issues with brain already 10:19:14 That is normal the flow effect.. it is why one must not be interrupted. :) 10:19:27 Which is why you should be darned happy you don't have any woman around to bug ya. 10:19:30 (: 10:19:38 seriously 10:19:55 you'll spend most of your work time, asking them to stop talking to you. 10:20:42 My productivity is like... _zero_ while I am in the office 10:20:46 people drive me mad 10:21:02 Not all people, of course :-) 10:22:25 when someone asks how to contact me and I give them my email adress, they take it as an abuse 10:22:29 :-/ 10:22:58 huh? 10:23:01 abuse wha? 10:23:14 Sorry for my English 10:23:39 I mean, they think that I'm trying to get rid of them 10:23:48 oh! 10:23:54 and I try to explain that email is my primary communication channel 10:24:07 I like that. A very good primary communication channel. 10:24:17 because it doesn't interrupt ones work :) 10:24:26 but most people don't quite get it 10:24:42 and ask me for ICQ, cellphone etc. 10:24:53 It seems quite common for me to have most communication of email. 10:25:09 ICQ destroys my linguistic capacity almost as much as IRC does 10:25:12 I mostly just give people my business card, that has my email address. It all works out. 10:25:58 ICQ seems an odd way to do communication imo :) 10:26:14 I mean for people to contact me via. 10:26:16 seems weird! 10:26:58 Yeah! Email rocks. It allows me to give comprehensive answers bundled with proof links etc. 10:27:30 Also, it allows me to be consequent and refer to the previously written statements. 10:27:57 Most clients contact me using email, and I seem to contact most people using email. Unless it is after work hours and I'm jsut hookin' up with some mates, obviously. 10:28:10 But in a context of work.. I think email is normal :) 10:28:48 Explain that to the new generation crowd :-/ 10:29:03 The Facebook generation. 10:29:56 I have yet to see any business card giving some facebook account instead of email, url, and phone# :) 10:30:43 Hehe. Well, I mostly refer to personal contacts. 10:30:58 IRL buddies, potential girlfriends and such. 10:31:10 Right. 10:31:30 If I use ICQ, they write me something like... 10:31:33 "Hello." 10:31:37 "How do you do." 10:31:42 "What are you doing." 10:31:49 "R U THER??!!" 10:31:54 So just stop using ICQ. 10:31:54 Hate it! 10:32:24 I almost never use it nowadays. 10:32:46 Only if I need to contact someone who doesn't answer to my emails ;-) 10:33:02 Maybe call 'em. 10:33:17 Yeah, even better. 10:33:24 It seems that I just meet the buddies when I'm out clubbing or what not. 10:33:34 now if I could just turn of the wife the same way... 10:33:55 "turn of the wife" ? 10:34:03 explain that idiom, please 10:34:24 ya. Like how I don't actually have to have contact with my mates or whatever.. unless I head out to hang out. 10:34:47 I can just turn off ICQ (not that I have ICQ, but still). I can't turn off the wife. 10:34:57 Ah :-) 10:35:17 Well, you shouldn't have married :-) 10:35:47 I think this is why people buy sex. To not have to listen to all the ramblings about toenails and whatnot. 10:35:50 Does your wife like Forth? 10:36:05 I highly doubt it :) 10:36:45 I'd love to have a girlfriend who would share some of my hobbies. 10:36:50 At least one of them. 10:37:05 Even if not computer-related. 10:37:07 Yes. That's a nice thing to have. 10:37:38 so get one. 10:37:47 But 99% of girls I have known have no real passion in their life. 10:37:53 No true hobby. 10:38:15 Maybe this statistics is true for all people and not just women. 10:38:22 If they study Maths, they do it for greades, diploma etc. 10:38:30 Not for the point of studying maths :-/ 10:38:38 *grades 10:39:01 Perhaps, schme. Dedication is a rare trait. 10:39:24 We had some russian women staying here for a few days. They seemed very passionate about their hobbies. 10:39:35 What hobbies? 10:39:44 painting 10:39:49 Wow, that's great! 10:40:14 You know passion used to be a negative term. 10:40:17 Funny how that changed. 10:40:18 Not one of my hobbies, but something I am very fascinated about. 10:40:50 Speaking of arts, my true passion is literature. 10:41:01 forth litterature? 10:41:13 I have never met a person IRL who loved literature as much as I do. 10:41:24 Both fiction AND literate programming :-) 10:41:36 Axiom = pure bliss! 10:41:55 TeX, Metapost, etc. 10:42:05 Works of art! 10:42:09 How come you're not studying litterature? 10:42:40 My passion is girevoy sport ;) 10:42:40 I study in a related field 10:43:19 A programmer is 30% linguist, 30% mathematician, 30% engineer.. 10:43:22 and 10% artist 10:43:24 IMO :-) 10:43:27 I see. 10:44:21 that could be correct sure 10:45:20 Some day programming will be 0% art and 100% craft 10:45:31 How so? 10:45:34 This is not quite the case at the point 10:45:52 --- quit: kar8nga (Remote host closed the connection) 10:46:56 It is a relatively new engineering discipline 10:47:29 The methodology of building good programs is still in its infancy 10:47:53 We need to think a lot nowadays, we need to invent a lot 10:48:25 With proper tools and theory it should be as simple as burning pots 10:48:39 Could be very wrong with this, of course :-) 10:48:51 It seems to me that the ground we are building on keeps changing. So it becoming 100% craft seems.. maybe not right. 10:49:42 Unless we start to count those changes in our theory 10:49:55 well sleep time \o/ 10:50:10 A metatheory that would count in the possible development of humankind \o/ 10:50:43 Good night, schme. It was nice to talk. 11:16:57 --- join: ygrek (debian-tor@gateway/tor-sasl/ygrek) joined #forth 11:27:05 Yeah, girls don't have hobbies. 11:27:09 They don't even are about things. 11:27:12 Most of the time. 11:27:13 D: 11:27:41 yah they do 11:27:53 have you ever seen a girl who is into makeup, talk about makeup? 11:28:17 those chicks know more tech specs than your average PC-nerd overclocker 11:28:33 Well, if they have hobbies, they look like men. D: 11:28:53 In my experience. 11:29:30 I am not saying this is true for all of them. 11:29:33 Just from what I gather. 11:30:15 I have never seen a girl talk about makup, no. 11:31:55 Actually I have met girls who have passion for drugs. 11:31:58 >.> 11:32:40 http://www.youtube.com/watch?v=op3kxcNPVRc#t=1m24 11:32:50 I picked that randomly from a search for makeup 11:32:55 listen to this girl talk about her makeup 11:33:20 x.x 11:33:29 My ears, they bleed. 11:33:34 just listen to her 11:35:55 I have once met a great girl, who is a PhD in Mathematics and lives in Emacs (!). Unfortunately, I turned up to be not up to her standards :-/ 11:36:12 Oh yes. 11:37:37 Girls start to think that I am batshit insane after the first epileptic seizure. 11:37:41 So sad :-( 11:38:43 x.x Ok, I am no in the same boat there. 11:39:44 They tend to find me batshit insane when they realize I hold so little value in friendship, and that I do not enjoy what people typically consider fun. 11:40:10 I like to either sit on my ass and do nothing all day, or make something I can be proud of. 11:40:25 I don't enjoy going to a party or such things. 11:40:31 Are you a typical schizoid type of personality? 11:40:58 I also hate parties and watching some sports :-l 11:40:59 * Deformative googles. 11:41:07 you guys think too much. 11:41:17 No, I am not. 11:41:21 Hehe. 11:41:46 I enjoy being with people, I just don't value friendships too much, they are effort to maintain, I only need a small number of them to be good enough. 11:41:47 But you don't like the idea of close relations, right? 11:42:21 If I haven't talked to someone for a month, I will go out of my way to try to not talk to them. 11:42:31 I like the idea of close relationships. 11:42:34 I hate superficial ones. 11:42:44 I value friendship a lot, but my notion of friendship differs dramatically from what most people usually consider under it 11:43:13 And I have two close friends, whom I love and whom I trust 11:43:21 Which is enough :-) 11:43:32 Yes, that is how I am. 11:43:38 A girlfriend for free sex would be great though 11:44:09 Except I don't have any close friends anymore since starting college. 11:44:15 It is too difficult to get to know anyone very good here. 11:44:20 In high school it was easier. 11:44:26 Why so? 11:44:50 Because there were not nearly as many people. 11:44:59 I go to a school with roughly 50,000 people. 11:45:23 Actually, wikipedia says it is 41,674 11:45:45 And that means that you can know a lot more people, no? And that your chances of finding an interesting person are actually higher than in high school. 11:45:51 It is rare to see the same person many times unless they are in the same classes or live very close. 11:45:58 Especially considering that many people here share your hobbies. 11:46:32 No, because I cannot tell if they are interesting by blindly picking them out. 11:46:44 I need to get to know them first, and it is difficult to get to know them. 11:47:10 I understand. 11:47:28 Join some club maybe? 11:47:39 I have joined a Common Lisp sect, for example 11:47:54 there are no girls though :-( 11:48:24 A chess club also helped me to build new relations 11:48:28 Brb phone. 11:48:30 te meet a lot of new people 11:48:38 *to 11:48:48 Back. 11:48:53 I don't like clubs. 11:49:04 Meh. 11:49:42 There are none that interest me other than computer related ones, and I get quite enough of computer related material in my course work. 11:49:44 Another way: you can attract people by being _brilliant_ 11:49:56 instead of searching for relations, make people wish to know you 11:49:58 I suppose the wakeboard club is cool, but too much effort. 11:50:08 I don't like driving to the lakes and paying the fees. 11:50:39 Heh safe_bird, I don't think it works like that. 11:51:07 It is one of the universities in america, there are brilliant people all over. 11:51:09 For some people it works. Like for that brilliant PhD girl I mentioned. 11:51:31 Well. Destroy them :-) 11:51:37 ...I am a freshman. 11:52:09 Granted, I am in classes with many juniors, and anything involving programming I destroy them at, but still. 11:52:10 Not easy. 11:52:13 If you are 18 and have build a forth system already, then you're a one hell of a freshman 11:52:33 Indeed. 11:52:47 But I am not in classes with any freshman. 11:52:59 Like ever. 11:53:28 It shouldn't be easy. The more brilliant people are around you - the better. 11:53:45 Envy has always been one of the main driving forces behind by development :-) 11:53:52 *my 11:53:52 Heh. 11:53:55 But there aren't! 11:53:59 That's the problem. 11:54:10 --- join: impomatic (~chatzilla@87.115.109.119) joined #forth 11:54:13 Meh, I don't even know. 11:54:14 Hi :-) 11:54:15 I give up. 11:54:18 Hi impomatic. 11:54:21 There are no brilliant people? Or no envy? 11:54:22 There's a Vintage Computer Festival at the U.K.'s National Museum of Computing if anyone's interested? 19-20 June. 11:55:04 --- join: tathi (~josh@dsl-216-227-91-166.fairpoint.net) joined #forth 11:55:07 safe_bird: There are brilliant people all around, but I cannot really compare or come into contact with them I suppose. 11:55:14 Meh, whatever. 11:55:23 It doesn't matter, I am not back at school for another 3-4 months. 11:55:26 No use worrying about it now! 11:55:28 :) 11:55:39 I would be interested. 11:55:43 Too bad I am in the US. 11:55:49 safe_bird: You can attract their attention by rising above their presumed brilliance 11:55:56 Too bad I am in central Russia 11:56:25 safe_bird: Yes, but how do they know? 11:56:31 THey have no way of being informed of this. 11:56:32 Be happy that you are somewhat close to the civilized world 11:56:47 In the same way as you have known of them 11:56:58 Hi guys 11:56:59 The only situation that really fed that idea is my algorithms class had optimization contests, and I won every single contest. 11:57:01 Create something beautiful 11:57:43 Enter the ACM contests. It helped me to meet a lot of smart people. 11:58:22 The skill ceiling there is quite enermous. 11:58:58 ACM has contests? 11:59:01 Hi tathi. 11:59:01 Yes. 11:59:02 Yeah 11:59:04 ACM ICPC. 11:59:09 Oh, icpc. 11:59:19 My university murders that contest. 11:59:23 I have never made it past the 1/4 finals. 11:59:26 There is only one person on the team too. 11:59:35 Competition in Russia in _fierce_ 11:59:36 From what I undertand. 11:59:46 Nope, there are 3 persons 11:59:49 At most 11:59:53 .... 11:59:55 no 11:59:59 *in = is 12:00:14 Then we are talking about different competitions 12:00:28 From what I understand there is one person on my university's team, and they just take a few extra people to meet requirements. 12:00:37 But they just sit there and don't get anything done. 12:00:39 Ah. 12:00:51 Yeah, that was exactly the case with _my_ unfortunate team :-) 12:01:05 safe_bird: in regards to making if/then work at interpret time: there are also [if] [else] [then] which parse/skip text. 12:01:23 But there are people at my Uni who have made it to the World Finals. 12:01:29 I feel quite intimidated by them :-l 12:02:00 safe_bird: My university placed 14 in world finals. 12:02:15 I know the guy who is my university's team, he is ranked globally on topcoder. 12:02:18 He is a real smart guy. 12:02:22 And our Uni was 12th and 13th 12:02:26 Who is he? 12:02:31 What is his nickname? 12:02:35 Not sure. 12:02:40 His real name is Mark Gordon 12:03:10 Nope. Haven't heard of such. I know a lot of contest monsters by nickname though. 12:03:14 He placed fourth in 2009. 12:03:39 Oh, that was north america. 12:03:40 Never mind. 12:03:58 http://webcache.googleusercontent.com/search?q=cache:nXCJ-b02l1sJ:www.acmsolver.org/index.php%3Foption%3Dcom_content%26view%3Darticle%26id%3D312:results-world-finals-2010-full-and-final-standing%26catid%3D55:news-and-results%26Itemid%3D174+icpc+university+of+michigan&cd=5&hl=en&ct=clnk&gl=us 12:03:59 Those Topcoder/ICPC winners are really good at algorithms :-l 12:04:12 Yeah, not my sort of thing though. 12:04:18 I don't like competition programming. 12:04:30 I should be working on my core right now, but whatever,. 12:04:33 Same here. After 5 years of efforts I got tired of it. 12:04:57 It stopped being a pleasure. 12:05:02 As chess stopped. 12:06:11 Demoscene looks quite interesting though :-) 12:07:28 msg555 12:07:29 That's mark. 12:07:39 What do you think of the idea of using Forth to produce 4k intros and such? 12:07:43 He is ranked 31 globally for algorithms. 12:07:57 Forth allows to produce tiny executables :-) 12:08:14 Demoscene does look cool. 12:09:21 Why would you have a full forth? 12:09:43 You could use forth to generate some nice compact indirect threaded code. 12:09:47 Not a full Forth, but some Forth-like language specifically designed for the domain of 4k intros. 12:09:54 Yeah! 12:10:23 safe_bird: How is this ranking though? http://www.topcoder.com/tc?module=MemberProfile&cr=15117368&tab=alg 12:10:31 I don't know a lot about topcoder. 12:11:08 Wow, very impressive! 12:11:19 He IS my school's icpc team. 12:11:33 http://www.topcoder.com/tc?module=MemberProfile&cr=22643518 12:11:37 Guy from my school. 12:12:25 Coo. 12:12:28 Cool rather 12:12:59 http://www.topcoder.com/stat?c=school_avg_rating 12:13:07 I would often beat his algorithm efficiency. He was one of the instructors for that course. 12:13:18 My school is 16th. Unexpected. 12:13:46 My school is not there. 12:13:49 algorithms I find interesting. 12:13:57 especially parallel ones (: 12:15:02 And do you like the idea of pararellizing compilers, schme? 12:15:13 Will functional languages save the world? ;-) 12:15:27 I'm not such a big fan of functional languages. 12:15:33 I like ocaml ok though. 12:15:44 Your nickname makes me think of Scheme. 12:15:46 I very much like erlang.. nice syntax, nice idea, a bit functional. 12:15:47 ya. 12:15:53 I know. I wish I had picked another nickname. 12:15:57 :-)) 12:16:04 --- nick: schme -> schmx 12:16:36 I'd love scheme if it had real defmacro instead of restricting syntax-rules 12:16:51 scheme has some very nice ideas ya. 12:16:57 But you could make a scheme with a defmacro, no? 12:17:01 Sure! 12:17:05 There are already. 12:17:07 I'd miss CLOS (: 12:17:15 e.g. Chicken, if I'm not mistaken 12:17:57 Hmm, what are parens in BNF? 12:18:05 and also Clojure is a very interesting Lispy language with defmacro. 12:18:14 What kind of parens, Deformative ? 12:18:19 () 12:18:31 What do they represent in BNF? 12:18:40 * schmx has no idea. 12:18:44 BNF I never got. 12:18:48 ()+ is repeat once or more 12:18:59 ()* is zero times or more 12:19:11 I thought that was {} 12:19:45 there are many syntaxes, I'm afraid 12:20:05 If you are trying to represent a statement which can either be was or is, what would it be? ? 12:20:25 "be was or is" ? 12:20:31 ah 12:20:35 was | is 12:21:15 Pretend that the s was required. 12:21:47 (wa | i) s 12:21:48 s was part of syntax, and wa|i were options. 12:22:03 Hmm. Ok. 12:22:05 round braces do grouping 12:22:07 usually 12:23:16 Deformative: a very useful page: 12:23:17 http://www.cs.man.ac.uk/~pjj/bnf/ebnf.html 12:24:23 Hmm. 12:24:46 it only describes several variants. You will meet a lot more in the field. 12:25:33 I am planning to write a small-c compiler for my core. 12:25:51 I will probably write my own rather than porting an existing one. 12:26:17 Write a parser generator first :-) This is a great excercise. 12:27:02 A mini-language in Forth, which describes grammar and produces table-driven LL parser. 12:28:39 Nah. 12:28:42 --- join: qFox (~C00K13S@5356B263.cable.casema.nl) joined #forth 12:28:55 I need to keep this as minimal as possible. 12:29:09 There will be no parser, it will be single pass. 12:29:12 And all hand coded. 12:29:25 I need it to fit in under 14k. 12:29:34 Hehe :-) 12:29:44 With assembler included. 12:29:48 So I suppose dual pass. 12:29:49 Is it a 8-bit microcontroller? 12:29:53 Because assembler will do a pass. 12:29:59 Damn, you're hardcore :-D 12:30:16 I haven't decided if I want to make it 16 or 32 bit yet. 12:30:21 My opcodes are 5 bits. 12:30:36 So I can either fit 3 opcodes per word, or 6. 12:30:45 I am only using 24 of my opcodes so far. 12:30:51 I still have 8 more for optimizations. 12:30:57 Buy some 16-bit Atmel microcontroller and run your system right on the metal ! 12:31:07 Just for the feeling of epicness! 12:31:47 Then use it to solve some real world task. Even if it's going to be garage door opener ;-) 12:31:58 Uhh, I am on an fpga. 12:32:04 I am writing my own core. 12:32:10 Sub-metal. 12:32:16 :-/ 12:32:18 Below the metal, if you will. 12:32:33 Have you bought a fpga? 12:32:43 I have done plenty on microcontrollers in the past. 12:32:48 Yeah. 12:33:01 It ran me $130 12:33:03 USD 12:33:12 well, that's fine 12:33:12 Altera DE0 12:33:31 I've never worked with fpga's yet :-) 12:33:48 the concept seems awesome though 12:33:48 The whole idea is to broaded my work to core architecture. 12:34:02 And I am writing a minimalist assembler/compiler while I am at it. 12:34:08 Maybe an app or two to actually run on the core. 12:34:16 Yeah, FPGAs are a ton of fun. 12:34:52 have you bought a used one? 12:34:56 No. 12:35:01 I didn't know they were that cheap. 12:35:02 Altera DE0 is inexpensive. 12:35:13 Need to get my hands on one then :-) 12:35:16 Comes with everything you need. 12:35:31 Doesn't have any sram though. 12:35:35 Unfortuantely. 12:35:50 But you can make some out of the fpga's internal components. 12:35:54 Not a lot though. 12:36:02 Which is why my compiler is restricted to 14k. 12:36:08 So, it only runs while connected to PC? 12:36:24 It doesn't need to be connected to a PC, no. 12:36:35 Then i misunderstood something 12:36:41 the part about sram :-) 12:37:40 An FPGA is a bunch of transitors layed out in such a way that you can program it as though you were actually manipulating transitors themselves. 12:37:56 Yeah, and you need SRAM to store configuration, right? 12:38:02 So you hook it up to a pc, program the fpga, and now it is basically a microcontroller. 12:38:04 Which is stand alone. 12:38:20 Well, that is different sram. 12:38:35 Actually, that is like eeprom or something. 12:38:39 * Deformative shrugs. 12:38:42 That stuff doesn't matter. 12:38:43 :-l 12:38:59 I will investigate into that myself later. FPGAs are fascinating beasts. 12:39:13 I mean, there isn't a component on the board which is sram. 12:39:26 So you can use some of the internal memory blocks on the fpga. 12:39:32 I wouldn't want to be doing embedded stuff for money though. 12:39:33 Rather than interfacing with the fpga 12:39:35 's io pins 12:39:58 I understand now, Deformative 12:40:08 There is a dram chip on the board. 12:40:10 like 4m. 12:40:28 But I want my core to run fast like lightning, so I am trying to restrict everything to sram. 12:40:59 This is my board: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=364 12:42:26 Looks sexy :-) 12:43:37 So I am implementing a stack machine cpu on it. 12:43:44 Influenced heavily by forth. 12:44:06 It has VGA output? :-P 12:44:12 Yes. 12:44:15 What's that for? 12:44:23 Only 12 bit pixels though. 12:44:57 Why not? I am for sure going to have at least a shell implemented on my core. 12:45:03 Maybe even a minimalist gui. 12:45:06 http://www.youtube.com/watch?v=sNCqrylNY-0 12:45:06 That would be interesting. 12:45:13 Have you seen that epicness? :-) 12:45:21 A demoscene platform. 12:45:42 I have seen it. 12:45:59 Badass? ;-) 12:46:24 Make a demoplatform on your FPGA. 12:46:35 Forth-based, of course :-) 12:47:55 I could put audio on some of my extra pins. 12:48:06 I just bought a FPGA. Not sure what to use it for yet. 12:48:16 But I was thinking I would try putting a mouse on there. 12:48:20 impomatic: What model? 12:49:47 impomatic: If you decide to make a forth cpu, then you would be the third one here. 12:49:57 And we could bounce around a lot of ideas in this channel. 12:50:04 Well, moreso than Kip and I already do. 12:50:38 And why Forth, Deformative? What makes you love Forth so much? 12:50:46 (I'm 3 days into Forth) 12:51:42 Forth as a language is interesting to me because of how minimal it is and how quickly it is bootstrapped. 12:52:05 As an inspiration for my core, I can do most of my opcodes without any operands. 12:52:06 Yeah, this is the thing I like as well. 12:52:12 They implictally use the stack. 12:52:27 But.. as a language Forth terrifies me in many ways. 12:52:28 Forth as a language is also interesting because it is probably the most minimal example of a reflective language. 12:52:49 But I am not planning on writing a forth shell. 12:52:55 It's weakly typed :-/ 12:53:01 It isn't typed. 12:53:11 Even so :-/ 12:53:44 Also, 90% of Forth programs I've seen look like a total mess 12:54:02 Same can be said for Lisp though 12:54:04 ;-) 12:54:31 Ok, i am modeling my ASSEMBLY after forth. 12:54:45 I see. 12:54:46 I am writing a C-like compiler. 12:55:20 I am very much a C developer by now. 12:55:43 safe_bird: Seeing how you have a CL background maybe you would like factor. 12:56:01 Deformative: why C and not some tiny Lisp? 12:56:22 Lisp relies on it's interpreter. 12:56:29 I don't really like that. 12:56:48 I like my languages stati. 12:56:49 schmx: Most factor programs are as unreadable to me as Forth is. Polish notation makes my head explode. 12:56:50 c 12:57:03 The only thing I miss about functional programming is the lambdas. 12:57:07 And I can live without those. 12:57:13 Deformative: make something static with a proper type system then. 12:57:34 Types bloat the language too much. 12:57:36 IMO. 12:57:36 Deformative: mini ML 12:57:43 safe_bird: it is not anywhere near as.. minimal and "low level" as forth can be though. But it has a lot of very lispy things going on. The whole object system is much like CLOS :) 12:58:19 Yeah, schmx, It has lists, hashes, etc. I still can't wrap my head around stack-based data passing. 12:58:33 schmx: It makes me think a lot while reading programs. 12:58:46 (: 12:58:51 Perhaps I'm not yet accustomed 12:58:59 safe_bird: that is good with the thinking :) 12:59:23 safe_bird: When I see Forth I don't think about the stack. 12:59:34 You shouldn't be using the stack a lot anyway. 12:59:40 I hate thinking and like the code to be as readable as a task specification 12:59:51 Forth is mroe to say "this then this then this then this" 13:00:06 I like to go into much the same mindset as when I do assembly coding.. 13:00:07 It is that each word is simply a jump. 13:00:08 for forth that is. 13:00:12 And that is beautiful. 13:00:21 I haven't used nor Forth nor Factor much yet and don't have any strong opinions yet. 13:00:24 Time shall tell. 13:00:34 factor is very different, obviously. very high level etc. :) 13:00:39 But it is good that stuff makes you think. 13:00:47 Maybe next time around check out prolog ;) 13:00:59 I hate assembly :-) 13:01:04 prolog rocks! 13:01:10 HEATHEN! 13:01:14 One of my favourite languages for embedding. 13:01:40 Great for doing queries on weirdly structured data :-) 13:01:42 Ok, we are very different hten. 13:01:55 Deformative: Altera MAX II. Someone recommended the DE0 in a comment on my blog. 13:02:10 Only has 240 elements. Might be enough for OISC. 13:02:19 schmx: and what about Datalog? 13:02:26 safe_bird: never even heard of it. 13:02:33 schmx: I'd like to have it as an SQL replacement. 13:02:41 I like to be able to control the computer, and know exactly what it is doing. For me, a language's value is heavily influenced on how predictable the assmebly generated is. 13:02:47 http://en.wikipedia.org/wiki/Datalog 13:02:49 impomatic: Yeah, I have a DE0. 13:02:52 I recommend it. 13:03:19 I understand, Deformative. It is a very personal thing, you know :-) 13:04:23 A direct corellation exists between personality and preferred programming tools. 13:04:57 My mother uses VIM. I prefer Emacs. We never understood each other :-/ 13:06:43 DE0's spec makes my board look inadequate :-/ 13:07:00 schmx: the thing I liked a lot about Factor are stack guards! 13:07:29 schmx: always fucked up in Forth with words corrupting my stack :-) 13:08:07 impomatic: DE0 is very limited with sram unfortunately. 13:08:11 And there is no audio output. 13:08:21 But it isn't too difficult to make one on the extra pins. 13:08:47 safe_bird: forth is fun because it is easy to write data over your dictionary and mess shit up ;) 13:08:49 Looks like I can max out my board somewhere around 28k of 16 bit words. 13:09:35 schmx: I agree that it is quite fun. Studying and playing with Jonesforth has been one of my most joyful experiences lately 13:10:41 schmx: Still I don't quite see which advantages it can give me vs, say, Lisp (not counting the ridiculous ease of bootstrapping). 13:11:00 safe_bird: None. 13:11:02 schmx: Forth feels very low-level and barebones. 13:11:04 Jones Forth is impressive. I wish someone would write something similar for Lisp 13:11:26 safe_bird: That is the advantage.. it can easily be used very low-level, and you can have it very barebone. 13:11:39 safe_bird: but you could have a very low-level lisp too.. without GC, and whatnot. 13:11:41 impomatic: do you know jonesforth well? 13:11:56 safe_bird: forth has ease of implementation.. and it is small. nice for interactive dev on embedded devices and whatheck. 13:12:13 safe_bird: and.. forth is so sexy. But if you do not like assembly, then I can see how forth might be unsexy. 13:12:17 Ok, I max at 28672 words of sram. 13:12:43 schmx: for _embedded systems_. I see. And embedded systems are something I wouldn't enjoy working on for living :-) 13:12:50 impomatic: There is a tinylisp somewhere. 13:12:54 I had the pdf for it. 13:12:59 Was a good read. 13:13:01 safe_bird: I've read the source several times. 13:13:07 I can dig it up later if you relaly want... 13:13:17 Deformative: thanks, that'd be handy. 13:13:53 safe_bird: and this is why maybe.. forth is wrong for you. No disrespect. But if you don't think working in the embedded world seems just.. WOW THAT IS SO DARNED HOT AND THE MOST FUN YOU CAN DO IN THE COMPUTER INDUSTRY 13:13:59 safe_bird: then maybe forth is not you cup of tea 13:14:00 impomatic: I want to implement some control structure, like IF-THEN-ELSE in immediate mode. Deformative already gave me some pointers, but I'd like to hear some alternative suggestions. 13:14:00 safe_bird: Why don't you like embedded systems? 13:14:03 just my random thinking here :) 13:14:34 Deformative: I like embedded systems, but much more I enjoy working with other kinds of software 13:14:44 Deformative: e.g. Data Mining is my pet peeve 13:14:45 :-) 13:15:02 Other kinds of hardware should be treated like embedded systems. 13:15:12 * Deformative grumbles something about memory being inefficient. 13:15:41 Core2duo has a 4m cache, why do we need any damn ram? 13:15:48 safe_bird: I understand why you like prolog then :D 13:15:48 Grumble grumble. 13:15:52 schmx: I will play with Forth for a while anyway. I see it has potential in the metaprogramming department. 13:15:53 yes we need RAM. 13:16:07 safe_bird: oh yes. you should play with it obviously :) 13:16:20 Deformative: working with a gigabyte or two of audio.. you need RAM :) 13:16:21 schmx: I like declarative programmnig in general. 13:16:45 safe_bird: how about just compiling an unnamed temporary word then discard it after. Then all the control structures will work in immediate mode. 13:16:53 schmx: we should have seprate allocation functions or something. 13:16:57 That would be damn useful. 13:17:05 Deformative: how you mean? 13:17:30 cache-malloc() ram-malloc() use ram for hashtables, and large data 13:17:35 yeah, impomatic, that was exactly my idea. But where to store that temporary word? Deformative suggested either using a separate stack or allocating space in the main dictionary. 13:17:37 cache for everything that matters. 13:18:53 safe_bird: space at the end of the main dictionary, then it's easy to discard straight after. 13:19:19 Alright, will try to hack it down :-) 13:19:26 Seems like a good exercise. 13:20:00 safe_bird: Why not bootstrap your own forth? 13:20:06 In ocaml or whatever you like. 13:20:06 safe_bird: by the way a few things in Jones Forth are non-standard. E.g. ROT rotates backwards. 13:20:07 It will make me more familiar with Forth. 13:20:13 Should be under 2k words. 13:20:15 Erm lines 13:20:18 rather 13:20:28 Well, I need to go now. 13:20:43 Deformative: 1) I have no time 2) I am not that familiar with Forth yet, though I could try _porting_ Jonesforth to some other platform. 13:21:00 I understand it quite well now. 13:21:11 Documentation is excellent! 13:21:16 Look up buzzard.2.c or whatever 13:21:21 It is neat. 13:21:24 I've looked at that. 13:21:29 Ok. 13:21:40 Yes, neat. But I understood it only after studying Jonesforth :-) 13:21:50 Ok, well, good luck. 13:21:56 I need to go now. 13:22:17 No need to wish good luck. Only work and dedication can help me :-) 13:22:20 Good night! 13:23:59 Deformative: I dunno there. Maybe it is just better to let the intel cpu logic figure out what to cache :) 13:28:57 Wow, this channel is so hardcore :-P 13:30:35 * safe_bird tries to resist sudden arousal of supposedly beaten IRC addiction 13:31:47 --- join: Kumul (~Nalras@adsl-64-237-142-212.prtc.net) joined #forth 13:32:04 2:30am here. Good night, everybody! Thanks for the interesting chat. 13:32:45 --- part: safe_bird left #forth 13:33:46 saper: nite. 13:34:23 nite :) 13:45:37 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 14:08:56 --- part: impomatic left #forth 14:09:24 --- quit: kar8nga (Remote host closed the connection) 14:09:55 Oh, no. Another jonesforth lover. 14:36:38 <_I440r> and a jonesforth hater too?? :) 14:36:49 <_I440r> i dunno if i would like it or not... probably not much :) 14:44:24 --- quit: ASau (Remote host closed the connection) 14:45:08 --- join: ASau (~user@83.69.227.32) joined #forth 14:52:16 --- quit: qFox (Read error: Connection reset by peer) 15:03:00 schmx: Even so, it would encourage programmers to actually think. 15:03:11 Rather than just hog memory for no damn reason. 15:06:19 ...Finally. 15:06:22 Amazon shipping sucks. D: 15:06:44 I hope I get my books before I move to California on the 22nd. 15:08:26 --- quit: ygrek (Ping timeout: 245 seconds) 15:10:23 I suppose I wouldn't be in a hurry either if someone just purchased a $4 book from me. 15:16:45 --- quit: alex4nder (Quit: Lost terminal) 15:48:37 --- quit: gnomon (Ping timeout: 276 seconds) 16:17:24 Hm... 16:17:52 If I make my word size 18 bits, then I can store my sub-word IP in one word. 16:18:07 If not, I need to hold an extra 2 bits around for the sub-word IP. 16:18:08 :/ 16:18:16 18 bit words it is. 16:21:12 Brings me to 25600 words sram. 16:23:51 Of course, now i have 3 spare bits per instruction filled word. 16:23:56 That is 1 bit per instruction. 16:53:02 Maybe I should just bump it up to 64 opcodes. 16:53:06 That would make a lot of things easier. 16:53:16 I would need to think of a lot more though... 17:46:01 --- join: docl (~luke@216-161-87-126.ptld.qwest.net) joined #forth 18:00:38 --- join: alex4nder (~alexander@dsl093-145-168.sba1.dsl.speakeasy.net) joined #forth 18:01:06 hey 18:02:15 Hi. 18:02:22 I am trying to think of more opcodes. 18:02:24 ^^ 18:06:40 Bah. I missed the "compiling temporary definitions" discussion again. :) 18:07:41 I go halfway to the end of the heap for my temporary compilation buffer. 18:08:14 And reset if it gets too close to the end, or if the permanent stuff gets too close to it. 18:09:02 tathi: Heh. 18:09:11 here' here - unused over - min unused 4 / < if here unused 2 / + to here' then 18:09:30 something like that 18:11:24 I have code kicking around somewhere for a compile-only interpreter that goes on top of gforth. 18:11:49 It's an interesting model. I'm not sure it's *better* than the usual one, but I kinda like it. 18:21:33 hrm 19:34:51 --- join: cataska (~cataska@210.64.6.233) joined #forth 19:36:05 --- join: gnomon (~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 20:09:40 --- quit: ASau (Remote host closed the connection) 20:10:25 --- join: ASau (~user@83.69.227.32) joined #forth 20:20:36 --- quit: tathi (Quit: leaving) 20:52:43 KipIngram: Are you around? 22:28:51 --- join: kar8nga (~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 22:45:49 --- quit: kar8nga (Remote host closed the connection) 23:33:58 --- join: ASau` (~user@77.246.231.18) joined #forth 23:59:59 --- log: ended forth/10.05.12