00:00:00 --- log: started retro/12.11.08 05:47:40 --- join: impomatic (~digital_w@94.66.112.87.dyn.plus.net) joined #retro 06:14:27 --- join: kumul (~kumul@173.215.130.73) joined #retro 06:53:21 --- quit: impomatic (Quit: impomatic) 08:07:52 --- quit: kumul (Quit: WeeChat 0.3.9) 10:47:48 --- join: impomatic (~digital_w@94.66.112.87.dyn.plus.net) joined #retro 11:17:54 --- nick: harrison -> axolotl_hoffenas 11:18:16 --- nick: axolotl_hoffenas -> axolotlhoofenass 11:18:34 --- nick: axolotlhoofenass -> xltlhoofnssr 11:18:43 --- nick: xltlhoofnssr -> harrison 11:26:39 --- nick: harrison -> hp666 11:27:22 --- nick: hp666 -> satanicircnick 11:28:10 --- nick: satanicircnick -> haiku2012 11:28:48 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #retro 11:28:52 hello 11:29:44 wb 11:30:01 lots of new people in here today... hello quiet people :) 11:30:55 hi tangentstorm 11:31:43 haiku2012 maybe seem to be a friend of the haiku os ? 11:31:54 Hi all :-) 11:31:57 Mat2: what do you do for a living? I always get the impression you have like a 2-hour work day :D 11:32:12 hi impomatic 11:32:57 hey impomatic :) ... have we seen the end of itsyforth? :) 11:33:13 tangentstorm: I am a freelancer 11:34:10 tagentstorm: Not yet. I just need the time to tidy everything up. I think most of Forth is implemented. 11:36:01 what is itsyforth ? 11:36:04 Also I've just bought an MSP430 board. I'm planning to put Itsy on there. I'm thinking about making Itsy Forthlike at some point so I can tidy things up. 11:36:22 hmm, reads like camel forth 11:36:25 impomatic: i have to admit the assembler code kind of scared me off, but i still love the outer interpreter, and want to turn it into a lesson 11:36:28 Mat2: it's a minimal Forth in 8086 assembly language. 11:36:43 cool :) 11:37:33 what assembler do you use ? 11:37:37 I'd also like to build a decent Android Forth... 11:37:42 Mat2: nasm 11:38:03 Mat2: more importantly, it's tiny, and impomatic wrote each little piece up in a blog post http://www.retroprogramming.com/2012/03/itsy-forth-1k-tiny-compiler.html 11:38:18 that's the first one. you can see the others in the sidebar on the right 11:39:42 in the latest installment, someone else went through and added "what the heck is going on?" comments for practically every line : http://www.retroprogramming.com/2012/09/itsy-documenting-bit-twiddling-voodoo.html 11:41:49 which i think is a really good approach: you need someone who's already got it all worked out in their head to write the code, and then someone smart who doesn't understand it YET to point out what's confusing to newbies :) 11:43:13 Now I feel the need to comment my code better :-( 11:44:16 impomatic: no, what i mean is you can't 11:44:39 well, i mean obviously you can, but you're the worst person for the job :) 11:45:25 LOL. I try to imagine that I don't already know the code when I'm writing the blog posts... 11:45:36 try harder 11:45:43 you can't know how to explain something to someone else until you find out what they don't understand 11:46:22 It's the same if I try to write a tutorial for Corewar... It really needs someone to write a tutorial as they're learning to play. 11:46:55 that's actually a really good approach. i mean you knew what were the important bits to put into that outer interpreter 11:47:16 and you narrowed it down to basically one screen of code 11:47:33 That was actually about the 5th attempt to write an outer interpreter! 11:47:45 :) 11:50:34 impomatic: It's really really good. I'm just saying learning/teaching is a feedback loop, and no matter how good you write, there's *always* going to be a mismatch with something in the student's head. 11:51:39 like for me... i just plain didn't know forth... I rewrote that code by hand, and i went through the ANS standard and looked up every single word you used. 11:52:51 by hand = on paper. i copied it to paper in black pen, then wrote the definition for each word in some other color.... i went over it like 4-5 times 11:53:50 ugh. every time i try to talk about this i feel like i'm insulting someone's work :/ 11:54:13 No, it makes sense. 11:54:58 And now I know I wrote the outer interpreter exactly as it should be. Only using standard words. 11:55:08 :) 11:55:13 it was actually a good exercise 11:55:39 Most of the other outer interpreters I've seen use quite a few non-standard words. They're a pain to understand :-( 11:57:51 hrm. 11:58:49 impomatic: Have you take a look at starting forth from leo brodie ? 11:58:52 if you're writing it for an audience that knows forth, then i agree 100% 11:59:35 as someone who knew almost 0 forth to begin with, i didn't care so much that the words were standard... what was important is that i could look them up. 11:59:55 the ansi standard just provided one way to do that 12:02:41 ... i'm just musing today. I just watched the gang in #lpmc adopt and drop a perfectly good js library for a game they're making, mostly overy issues in learnability and the installation process 12:03:54 impomatic: the goal of the ansi standard was providing a specific base on which an implementation can be build. Most implementation found more effective ways to do that 12:05:41 (bewqare I am not a big fan of the ansi standard) 12:08:21 so the ansi standard do not define a complete implementation 12:08:48 and in my opinion, that is the waek point of it 12:08:54 sorry weak 12:09:02 Mat2: i still don't know enough to have an opinion either way. i mostly just meant that there was a human-readable dictionary that made it easy to look words up. the html version of the ansi docs filled that role for me when i was studying his code 12:10:08 retro's docs weren't as easy to access at random... but now that we have the "describe" word in 11.5, it's much easier 12:15:35 tangentsorm: you can take a look at pfe, which support all forth standards from fig to forth 79, forth 83 and the actual ansi standard. The sources are understandable except the ansi extensions 12:16:34 http://pfe.sourceforge.net/ ? 12:16:37 yes 12:19:41 by the way, this is the famous forth version, which is used in some medicinical apperatures (and some satellites) 12:20:54 and old version of retro was used for digital image processing of the HRSC mars express mission 12:21:32 I mean a part of the image processing 12:21:43 interesting 12:22:10 that was a programming project of me and retro fitted well 12:22:27 :D awesome! 12:23:25 specifely it was part of the post processing for publishing digital images 12:28:58 sorry, the ng.ports.pas file has no interface. Does this mean all definations are public ? 12:29:24 no 12:29:49 ng.pas has the interface for ng.*.pas 12:30:04 thanks 12:30:21 actually... i renamed them to ng_*.pas so i could compile on ms-dos but i guess i forgot to commit that working copy 12:32:04 let's see how well the SDL code work 12:32:26 Mat2: I have "Starting Forth", but haven't read it yet. I have about 20+ Forth books actually. I'm a big fan of "The Forth Encyclopedia" and "Object Oriented Forth". "All About Forth" is also pretty good. 12:32:58 Mat2: will it mess you up if i push the rename? 12:34:13 impomatic: You got me interested in that mouse book, and the recursion in pascal one too. 12:34:51 I'm still looking for a copy of these books... Very tricky to find: Solosky "FORTH: Elements of Programming Style", Wesseling "Forth: Implementation and Application", Ting "Inside F83", Koopman "Forth Floating Point" 12:37:52 I'm not a fan of the ANSI standard. It feels bloated. E.g. how many different types of division? 12:37:52 tangentstorm: no, otherwise you changed the code significally beside renaming 12:39:41 sorry for the scandinavian english :) 12:40:20 impomatic: I think your feel is right 12:47:54 --- nick: haiku2012 -> hp666 12:48:00 --- nick: hp666 -> satanicircnick 12:48:04 --- nick: satanicircnick -> haiku2012 12:48:21 * tangentstorm pushes the renamed files to github 12:49:11 hp666/satanicircnick/haiku2012 is a haiku 12:49:43 i voted for limerick. no hard feelings? 12:51:28 --- nick: haiku2012 -> harrison 12:52:49 haiku212 is internic geschäftlich *lol* 12:54:27 impomatic: http://www.latrobe.edu.au/phimvt/joy.html 12:54:53 if you haven't read them you are in for a rare diversionary treat 12:55:20 a book on joy from a professor of logic who taught his courses in pascal :) 12:55:57 i mean a page about joy, the language he crated :) 12:55:59 not joy as in de vivre 12:58:50 his logical foundations are important because there prove stack oriented languages are well suited for functional programming 12:59:18 there only differ in perspective 13:09:41 tangentstorm: ^H : write( ^H, ' ', ^H ); 13:10:16 the ^H, what control code is that, a tabulature ? 13:11:16 i worte a joyish language in oberon -- "toy" 13:11:18 long ago 13:11:24 it was fun 13:11:40 i used a chain of boxes -- no stack 13:12:01 Mat2: ^H is backspace 13:12:05 and when i had done it suddenly i realized that i understood "continuations" 13:12:09 ah ok :) 13:13:09 harrison: with chain of boxes, do you mean a linked list of arrays ? 13:13:36 Mat2: turbo pascal added the ^ syntax for control characters. you could also say #8 13:15:10 that's sad because '^' as operator is also used for pointer references ! 13:15:43 yeah, at the end of the token. 13:15:52 --- join: kumul (~kumul@173.215.130.73) joined #retro 13:16:03 --- quit: kumul (Remote host closed the connection) 13:16:20 --- join: kumul (~kumul@173.215.130.73) joined #retro 13:17:09 arrays? no, boxed types: a linked list of boxes which contain integers, characters, linked lists of boxed types ... etc 13:17:14 turbo pascal uses prefix @ for adress-of, prefix ^ for pointer-to ( in types ) or control-code ( for literals ) 13:18:25 I actually use control characters kind of a lot lately. There's a good reference here: http://www.cs.tut.fi/~jkorpela/chars/c0.html 13:18:29 also in the "mn" directory :) 13:19:53 harrison: i see, my oberon knowledge is limited 13:21:14 The "chain-of-boxes" design and oberon are orthogonal 13:21:33 i wish i had my old toy code 13:21:47 now i would have to reconstruct it if i wanted to show you 13:22:07 and of course i am always busy with the tracer 13:22:16 tangentstorm: it is good that freepascal support adr(x) := '@x' 13:22:21 if i have any code juice in me i use it there 13:22:28 lazarus pascal? 13:22:36 yes 13:22:45 that's a good project 13:22:47 in that 13:23:04 fnecati adapts code from there to oberon 13:23:08 specifically 13:23:47 i think he used the opengl interface for our opengloberon modules 13:24:02 but 13:24:17 do you have a realtime raytracer? 13:24:51 he asked innocently with a wan smile 13:25:08 while knowing the answer 13:25:38 http://www.youtube.com/watch?v=eYSfWcW8cYA&feature=youtu.be 13:26:13 http://www.freepascal.org/docs-html/ref/refsu60.html <- is this sort of like a boxed type? 13:26:31 i guess oberon doesn't have CASE in records though... 13:27:26 no. that must be one of the baroquely complex bits wirth took out. 13:28:27 A boxed type would be like: (the harrison prepares to riff) 13:30:18 TYPE toybox=RECORD; VAR prev,next: toybox END; 13:31:07 TYPE intbox=RECORD(toybox); VAR int: INTEGER END; 13:31:11 ... 13:40:22 got it 13:41:05 actually, i think it's very close to the same idea under the hood. he replaced variant types with type inheritance. 13:47:18 i do not wish to seem forward, 13:47:41 but may i enquire, sir, as to the operating system you currently operate? 13:49:43 who, me? 13:50:26 who else? 13:52:53 oh. i thought we talked about this the other day. i generally use xp or vista and telnet into a debian box in a full screen console 14:02:47 excuse me 14:03:13 i do have difficulty keeping track of the dizzying multiplicity of irc 14:05:56 ah yeah. me too.. i just remembered you because of the oberon list :) 14:11:18 there is a good aos for windows 14:11:25 --- quit: impomatic (Quit: http://corewar.co.uk) 14:12:12 http://www.ocp.inf.ethz.ch/wiki/OCP/WinAos 14:14:19 tangentstorm: I have replaced the terminal code in ng.ports.pas with code suitable for my VDP core, debugging follows tomorrow 14:14:30 I need some sleep, ciao 14:15:10 --- quit: Mat2 (Quit: Verlassend) 14:20:09 harrison: yep! i've played around with it, but haven't really gotten proficient with it 14:23:09 the compiler is much much faster now than it was earlier this year 14:23:17 at least on unix 14:23:34 very likely for winaos too since it is the same code 14:30:01 tangentstorm: i would imagine that it is easier to learn than pascal would be 14:30:15 due to its radical simplicity 14:30:33 harrison: yeah, i'm writing an oberon compiler. i just call it pascal because nobody knows what oberon is :) 14:30:58 but why write a compiler rather than using aos? 14:31:20 that is like writing a c compiler instead of using linux 14:31:22 it's not for me 14:31:39 ok i sort of take htat back 14:31:50 it is good to write a compiler no matter what 14:31:54 what i mean is 14:32:02 please use aos 14:32:04 also 14:32:26 i can't use aos for what i'm doing :) 14:32:37 the core oberon system maybe 14:33:57 are you making a raytracer? 14:34:03 no 14:35:19 i honestly don't know how to explain what i'm making. :/ 14:35:39 Then you have already succeeded. 14:35:54 I already don;t understand it. 14:36:44 okay, so for now, i'm making a compiler for a language like oberon-07 to target the ngaro vm that retro uses. 15:36:36 well, that is good news 15:36:56 ngaro vm is simple right? 15:37:11 you could prt the VM to aos first 15:37:16 recursiony 15:42:11 harrison: i might just take you up on your offer to help with the AOS side of things if i do that. I just don't have time to do it right now. 15:48:34 roger daltry that 17:40:09 --- join: hhm (6c11508f@gateway/web/freenode/ip.108.17.80.143) joined #retro 17:41:27 --- quit: hhm (Client Quit) 18:26:43 --- quit: tangentstorm (Ping timeout: 252 seconds) 18:26:59 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #retro 19:40:04 --- quit: kumul (Quit: WeeChat 0.3.9) 23:59:59 --- log: ended retro/12.11.08