00:00:00 --- log: started forth/13.01.25 00:47:53 --- quit: proteusguy (Remote host closed the connection) 00:48:42 --- join: proteusguy (~proteusgu@ppp-115-87-200-255.revip4.asianet.co.th) joined #forth 00:48:42 --- mode: ChanServ set +v proteusguy 01:05:57 --- join: epicmonkey (~epicmonke@188.134.41.175) joined #forth 01:05:57 --- mode: ChanServ set +v epicmonkey 01:16:59 --- quit: cataska (Read error: Connection reset by peer) 01:17:40 --- join: cataska (~user@210.64.6.233) joined #forth 01:17:41 --- mode: ChanServ set +v cataska 01:22:00 --- quit: derk_ (Read error: Connection reset by peer) 01:23:30 --- join: derk_ (~derk@c-174-60-176-249.hsd1.pa.comcast.net) joined #forth 01:23:30 --- mode: ChanServ set +v derk_ 01:34:34 --- quit: cataska (Read error: Connection reset by peer) 01:36:18 --- join: cataska (~user@210.64.6.233) joined #forth 01:36:18 --- mode: ChanServ set +v cataska 01:44:25 --- quit: cataska (Read error: Connection reset by peer) 01:50:00 --- join: cataska (~user@210.64.6.233) joined #forth 01:50:00 --- mode: ChanServ set +v cataska 01:52:12 --- quit: cataska (Read error: Connection reset by peer) 01:56:09 --- quit: epicmonkey (Ping timeout: 264 seconds) 02:01:10 --- join: cataska (~user@210.64.6.233) joined #forth 02:01:10 --- mode: ChanServ set +v cataska 02:05:04 --- quit: cataska (Read error: Connection reset by peer) 02:07:47 --- join: cataska (~user@210.64.6.233) joined #forth 02:07:47 --- mode: ChanServ set +v cataska 02:17:51 --- quit: tgunr (Quit: Nity nite) 02:24:38 --- quit: cataska (Ping timeout: 255 seconds) 02:42:38 --- join: cataska (~user@210.64.6.233) joined #forth 02:42:38 --- mode: ChanServ set +v cataska 02:50:17 --- quit: cataska (Ping timeout: 256 seconds) 02:57:31 --- join: protist (~protist@125-237-130-19.jetstream.xtra.co.nz) joined #forth 02:57:31 --- mode: ChanServ set +v protist 03:06:45 --- join: cataska (~user@210.64.6.233) joined #forth 03:06:45 --- mode: ChanServ set +v cataska 03:08:15 --- quit: proteusguy (Ping timeout: 264 seconds) 03:20:38 --- join: proteusguy (~proteusgu@ppp-61-90-8-211.revip.asianet.co.th) joined #forth 03:20:38 --- mode: ChanServ set +v proteusguy 03:29:50 --- quit: cataska (Read error: Connection reset by peer) 03:29:58 --- join: epicmonkey (~epicmonke@host-224-58.dataart.net) joined #forth 03:29:58 --- mode: ChanServ set +v epicmonkey 03:37:35 --- join: cataska (~user@210.64.6.233) joined #forth 03:37:35 --- mode: ChanServ set +v cataska 03:42:08 --- quit: cataska (Ping timeout: 255 seconds) 05:44:14 --- quit: impomatic (Read error: Connection reset by peer) 06:19:14 --- join: cataska (~user@210.64.6.233) joined #forth 06:19:14 --- mode: ChanServ set +v cataska 06:19:52 --- join: nighty^ (~nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 06:19:52 --- mode: ChanServ set +v nighty^ 07:59:49 --- join: I440r (~zhiming@36.sub-70-194-128.myvzw.com) joined #forth 07:59:49 --- mode: ChanServ set +o I440r 08:12:31 --- join: IAmHere_ (~IAmHere@c-75-70-11-91.hsd1.co.comcast.net) joined #forth 08:12:31 --- mode: ChanServ set +v IAmHere_ 08:14:57 --- quit: IAmHere (Ping timeout: 252 seconds) 08:14:58 --- nick: IAmHere_ -> IAmHere 08:30:11 --- quit: proteusguy (Remote host closed the connection) 08:39:25 --- quit: protist (Quit: leaving) 08:54:23 --- join: Onionnion (~ryan@adsl-76-199-147-230.dsl.milwwi.sbcglobal.net) joined #forth 08:54:23 --- mode: ChanServ set +v Onionnion 09:23:20 --- join: ncv (~quassel@89.35.216.197) joined #forth 09:23:20 --- quit: ncv (Changing host) 09:23:20 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 09:23:20 --- mode: ChanServ set +v ncv 10:07:00 --- quit: epicmonkey (Ping timeout: 248 seconds) 10:08:07 --- join: MayDaniel (~MayDaniel@unaffiliated/maydaniel) joined #forth 10:08:07 --- mode: ChanServ set +v MayDaniel 10:45:56 --- quit: Nisstyre (Ping timeout: 255 seconds) 11:00:02 --- join: Nisstyre (~yours@oftn/member/Nisstyre) joined #forth 11:00:02 --- mode: ChanServ set +v Nisstyre 11:32:09 --- quit: Onionnion (Ping timeout: 264 seconds) 11:41:47 --- join: tgunr (~davec@cust-66-249-166-11.static.o1.com) joined #forth 11:41:47 --- mode: ChanServ set +v tgunr 11:47:55 --- join: Onionnion (~ryan@adsl-76-228-195-238.dsl.milwwi.sbcglobal.net) joined #forth 11:47:55 --- mode: ChanServ set +v Onionnion 11:56:20 --- quit: Onionnion (Ping timeout: 248 seconds) 12:16:36 --- join: FlimmFlamm (~FlimmFlam@blk-215-117-36.eastlink.ca) joined #forth 12:16:36 --- mode: ChanServ set +v FlimmFlamm 12:41:45 --- join: RodgerTheGreat (~rodger@71-13-215-242.dhcp.mrqt.mi.charter.com) joined #forth 12:41:45 --- mode: ChanServ set +v RodgerTheGreat 13:16:50 --- quit: tgunr (Quit: Nity nite) 13:35:55 if i run : TEST C" ExampleText" ; Which part of the memory is the string stored in? 13:36:10 upon running test 13:36:47 --- join: jdavidboyd (~user@72.185.97.240) joined #forth 13:36:47 --- mode: ChanServ set +v jdavidboyd 13:36:49 i know it gives me an adress but i'm not sure if this is a part of the dictionary or some temporary buffer 13:41:00 or if i am misunderstanding things, what is the function of c" ? 13:45:26 --- join: tgunr (~davec@cust-66-249-166-11.static.o1.com) joined #forth 13:45:26 --- mode: ChanServ set +v tgunr 13:54:30 --- quit: jdavidboyd (Remote host closed the connection) 14:11:33 --- join: JDat (JDat@89.248.91.5) joined #forth 14:11:33 --- mode: ChanServ set +v JDat 14:17:28 --- quit: MayDaniel (Read error: Connection reset by peer) 14:26:25 --- join: impomatic (~digital_w@187.120.125.91.dyn.plus.net) joined #forth 14:26:25 --- mode: ChanServ set +v impomatic 14:54:43 --- quit: JDat (Quit: Pālī guļ grāvī!) 14:56:40 FlimmFlamm: search for A.6.2.0855 C" on this page: http://lars.nocrew.org/dpans/dpansa6.htm 14:57:58 --- nick: tangentwork -> tangentstorm 15:06:36 --- quit: nighty^ (Remote host closed the connection) 15:14:07 --- join: epicmonkey (~epicmonke@188.134.41.175) joined #forth 15:14:10 --- mode: ChanServ set +v epicmonkey 15:38:53 --- quit: tgunr (Quit: Nity nite) 15:57:58 finished a title screen for that game I'm working on: http://i.imgur.com/Z3eTyeA.png 16:01:52 it's going to be sort of a puzzle game where you write code to complete levels 16:05:31 the screen looks really good 16:06:42 :) that does look pretty cool. you've got some mad pixel art skills, RodgerTheGreat :) 16:06:55 so far I have finished the sprites, the title screen and the forth engine 16:07:12 FlimmFlamm, tangentstorm: thanks guys 16:09:24 now I guess I do tilesets, design some levels and then start pulling everything together 16:14:08 meanwhile i'll continue to figure out why ( c" ... 16:14:12 " ) 16:14:21 saves things in such a high memory adress 16:14:53 --- quit: epicmonkey (Ping timeout: 255 seconds) 16:15:16 FlimmFlamm: is that for storing constant strings or what? 16:15:50 im not exactly sure, my tutorial doesn't define c" precisely 16:15:53 it's for storing strings 16:16:04 hm 16:16:10 basically it's a form of superstring 16:16:11 so it seems to do what s" does? 16:16:49 well, it saves teh string and returns an addr 16:16:52 which can be typed 16:16:57 after you add 1 byte 16:17:15 TYPE 'd 16:17:50 it's an alternative to making a superstring where you use a ." to put the string in the definition f a word 16:17:54 of* 16:18:41 if you do c" you only have to offset the addr by 1 in order to get to the start of teh string instead of using ' XXX >body cell+ to get to the string in the word definition 16:19:37 The thing i want to know is exactly what part of teh memory structure c" saves strings into 16:19:54 i want to know if it's temporary or what, and what pointer it uses 16:20:22 apparantly it's an ans portablt word, but i can find nothing on it beyond that 16:21:41 hm 16:22:04 have you tried using it in a word definition and then using see or simple-see on the word> 16:22:23 with an ordinary superstring that makes it very easy to see the structure 16:22:44 alternatively decompile c" itself 16:22:46 I guess 16:23:28 FlimmFlamm: see the link I posted about an hour and a half ago.. it describes C" 16:23:48 i joined after that 16:23:52 could you repost it for me? 16:24:19 http://lars.nocrew.org/dpans/dpansa6.htm search for A.6.2.0855 C" 16:24:20 also, since my forth doesnt appear to have see commands, how do you decompile rodger/ 16:24:24 thanks tangent 16:24:31 FlimmFlamm: "see" 16:24:59 or you could dump it starting at the xt I guess but then you'd need to know more about the structure of the dictionary 16:25:01 returns an error 16:25:06 really? 16:25:11 yea 16:25:13 see takes a name 16:25:20 use it like "see foo" 16:25:32 there we go 16:25:36 lol thanks 16:25:49 hooray I guessed correctly 16:26:06 apparanntly it uses the r stack i thinks 16:26:14 --- join: kumul (~Kumool@c-76-26-237-95.hsd1.fl.comcast.net) joined #forth 16:26:14 --- mode: ChanServ set +v kumul 16:26:28 on some systems see just shows the sequence of threaded code addresses, and on others it actually decompiles and shows you forth code 16:26:44 it decompiled it for me :) 16:26:48 spiffy 16:29:13 on an unfamiliar system, see is often my first approach for figuring things out 16:48:31 I440r, question for you. 16:55:21 --- quit: kumul (Ping timeout: 256 seconds) 17:03:00 so what's going down for everybody on this fine friday evening 17:04:44 i'm at work :( 17:04:47 but i'm leaving :) 17:06:54 * tangentstorm is still working on the oberon07->retroforth compiler 17:07:13 what progress have you made? 17:11:51 i implemented a PL/0->retro compiler a while back, and i've mostly ported that. oberon07 is a superset of pl/0 though 17:12:12 is that related to PL/1? 17:12:20 no it's a tiny dialect of pascal 17:12:24 hunh 17:12:35 http://en.wikipedia.org/wiki/PL/0 17:13:31 niklaus wirth (the pascal guy) implemented it in a book called Algorithms + Data Structures = Programs as a simple demonstration of how to build a compiler. 17:13:50 that seems like a very poor choice of name 17:14:03 it's very tiny. doesn't even have strings or function arguments 17:14:13 you wouldn't use it for real work or anything 17:14:38 that sounds like a challenge ! 17:14:43 much later wirth created a language and operating system, both called oberon 17:15:00 kulp: PL/0 compiler that runs on cray machines. GO. 17:15:29 haha 17:15:30 okay 17:15:34 gcc pl0.c 17:15:35 done 17:15:35 he expanded the compiler chapter of the book to an entire book on compiler construction 17:15:56 kulp: SELF-HOSTING PL/0 compiler that runs on cray machines. GO. 17:16:04 uhhhh 17:16:09 * kulp faints dead away 17:16:13 --- join: kumul (~Kumool@c-76-26-237-95.hsd1.fl.comcast.net) joined #forth 17:16:13 --- mode: ChanServ set +v kumul 17:16:33 good luck. there's no way to call system functions :) all you have are input and output of integers as ascii :) 17:16:58 that's sufficient for brainfuck 17:17:23 oh it's turing complete and all that. you'd just need something external to hook it up to your operating system 17:17:28 just say it's a compiler which receives a collated source file from stdin and prints a binary to stdout. 17:18:00 kulp: hypothetically what would you like to see in a programming adventure game 17:18:37 anyway... i made an Oberon07 parser in ANTLR some time ago, and now i'm trying to walk the abstract syntax tree and output retro code 17:18:58 ah 17:19:15 i got simple expressions working but decided to backtrack and make my compiling words understand something about types 17:19:22 main problem with that approach is you'll need ANTLR to bootstrap the system every time 17:19:28 nope 17:19:32 well yeah 17:19:49 RodgerTheGreat: hmm. well, clearly more than one way to solve a problem 17:19:49 but i don't care because i'm just using this as a prototype :) 17:20:05 I guess that's fine 17:20:08 RodgerTheGreat: i'm afraid i've not got much imagination 17:20:15 kulp: dreadful 17:20:26 how do you program? 17:20:29 when i finish, i will have an entire compiler bootstrapped from ngaro machine code. 17:20:40 RodgerTheGreat: i hired a team of monkeys 17:20:48 RodgerTheGreat: I am also working on an adventure game about programming in forth :) 17:20:59 tangentstorm: so ultimately you intend to hand-roll a parser of some kind 17:21:06 oh and that's pretty neat 17:21:55 yes. i already wrote the parse engine but it's in pascal at the moment. 17:24:11 i am roughly following this path: http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html 17:24:41 except i will build a mini-forth, then a mini-lisp, then a mini pascal/oberon 17:24:51 but right now i'm prototyping it with antlr :) 17:25:28 I would skip the lisp myself but otherwise it sounds like a blast 17:25:39 :) 17:25:55 forth by itself is pretty groovy for implementing compilers 17:26:08 i want to talk about ASTs and different kinds of programming languages 17:26:28 it's a course... not about forth in particular, but about programming. 17:27:03 i've found the source of a pascal compiler written in forth from 1983 17:27:45 https://raw.github.com/sabren/b4/master/ref/winfield-pascal-83.org 17:27:49 that sounds really interesting 17:28:07 it was in a PDF scan of an article.. i had to transcribe it 17:28:13 that's quite compact 17:28:17 haven't actually got it running yet 17:28:41 I got about halfway through writing a Pascal compiler in my forth but I got distracted 17:29:08 along the way I ended up spinning off a bunch of the pieces of that compiler into libraries which I now use for writing other compilers 17:29:11 it's not the complete language or anything, but it covers the basics 17:29:24 is it in your repo? 17:29:32 no, never checked in the main project 17:29:45 I could pastebin what I had if you're really curious but it doesn't work 17:29:57 sure. it might save me some work :) 17:30:11 what the hell- I'll poke around 17:32:16 when i finish the pascal compiler, i'm going to port my old turbo pascal code to it... i had a text-mode adventure game engine. 17:32:30 alright, here's Pask.fs itself: http://hastebin.com/raw/yogoqibihi.fs 17:32:33 https://github.com/goldsmile/eg4d/blob/master/ref/concept.org <- rough sketch of my forth game 17:33:10 wow, this is great ! :) 17:33:24 here's the test fixture I had so you have some idea of what I knew worked: http://hastebin.com/hinukemiba.fs 17:33:28 can i assume this is under the same do-whatever-you-want license as your mako repo? 17:33:35 yeah go hog wild man 17:33:54 no guarantees about usability etc etc 17:34:46 oh yeah and this is cute- I hijacked a bunch of the guts to pask and glued them together to form a functioning compiler for a simpler C-like language 17:34:48 http://hastebin.com/nipiwalipe.coffee 17:35:22 so you could compile a program like so: http://hastebin.com/qiqiragiso.mel 17:36:26 the best result of Pask was I scooped out an generalized the parser code it contained and made Parse.fs: https://github.com/JohnEarnest/Mako/blob/master/lib/Parse.fs 17:38:55 wow. thanks so much ! :) 17:39:54 is { a standard forth word? 17:40:02 it is not, but it's simple 17:40:16 I use {} to enclose anonymous inline procedure definitions 17:40:24 like a lambda minus the binding part 17:40:29 ok. 17:40:42 i was just confused because github was highlighting it 17:41:07 I wrote a little code which is ANS-compatible that adds { } to a forth system- it's just a couple lines 17:42:26 retro has quotes like that too.. it just uses [ ] 17:43:14 yeah 17:43:17 quotations 17:43:27 but in retro and factor quotations are mutable 17:43:39 here's a question : do you have any tools for tracking dependencies between words ? 17:43:52 I don't currently, no. 17:43:54 like tsort for unix 17:44:00 I'm not familiar 17:44:04 what would it do for you? 17:44:32 it would tell me which order things need to be implemented in 17:44:53 well remember that in forth everything is compiled in one pass 17:44:56 so far all the forth systems are implemented in themselves or another forthlike system 17:45:01 so you can basically read it top to bottom 17:45:10 yeah, following the dictionary... 17:45:37 in my forth there are words called :proto and :ref for making forward references to procedures or data respectively 17:45:49 but the order things were implemented in and the order they have to be implemented in aren't the same 17:46:01 mm 17:46:05 yeah I see what you mean 17:46:18 because you can make 100 words you think you'll need and only really use 10 or 12 17:46:37 i would prefer to have the minimum number of steps 17:46:38 I normally try to organize my source files so that they're broken into sections which are mostly self-contained 17:47:02 I guess what I'd suggest then would be to read the file bottom-to-top 17:47:27 yeah :) 17:47:30 it's not like you're going to be able to use my code verbatim for anything anyway 17:47:55 if you can use any of it, it'll need massaging and debugging 17:48:08 bjorkintosh, whats your question? 17:48:23 i was actually thinking about the retro listener in particular, but it was also a general question about forth 17:48:31 ah ok 17:48:40 yeah I'm not aware of any tools like that 17:48:41 and about being able to understand new words from the top down, recursively 17:49:29 I440r: i don't know if he's still here but i'm pretty sure he wanted to talk to you about the voice notifications flooding this channel. 17:51:40 I440r: he was wondering if they served any purpose, and if not, would you consider running /msg Chanserv FLAGS #forth -V to disable them? :) 17:52:16 oh 17:52:24 yea i thought it was -V 17:54:40 tangentstorm: in general I think the main reason people haven't tried making high-level code browsing tools for forth is that generally people would say you have to read the code to understand it in the first place 17:54:56 forth is not very easy to skim and actually understand 17:55:05 every word matters 18:03:16 I definitely agree with that, but it's still helpful to have reminders. 18:04:10 I implemented a help system for retro (with a bunch of help from crc) but i'm still constantly forgetting what words mean and having to look them up again. 18:04:38 * tangentstorm has ADHD 18:05:55 when I am working on complex forth code I often move to just using a plain text editor because it helps me focus 18:06:11 forth doesn't benefit tremendously from syntax highlighting anyway 18:06:35 i think it does :) 18:06:47 --- join: PoppaVic (~pops@unaffiliated/poppavic) joined #forth 18:06:47 --- mode: ChanServ set +v PoppaVic 18:07:00 well comments and strings are helpful naturally 18:07:07 that was the first thing i did with retro: write an emacs mode for it 18:07:08 because those are modal 18:07:08 anyone managed to compile FF3.8? 18:07:15 yo PoppaVic 18:07:19 howdy 18:08:40 I tried the zipfile, the git clone. Nada. neither mplabx nor gputils likes the package. 18:09:26 Which is a damned shame, because reading thru the code is interesting. 18:13:25 --- quit: karswell (Read error: Connection reset by peer) 18:15:10 --- join: karswell (~user@93-97-29-243.zone5.bethere.co.uk) joined #forth 18:15:10 --- mode: ChanServ set +v karswell 18:29:20 i think being able to see control words stand out or stack manipulation words stand out is a good way of seeing if the word needs to be refactored or redesigned 18:29:40 too much of either is a good way to see this 18:30:22 which is why i like sublime text 2 because its almost perfect at syntax highlighting forth with the right syntax definitions 18:32:04 I use TextWrangler with a custom language module I set up 18:36:01 have you seen ST2? 18:36:16 i dont think thers an editor in existance that is as efficient as ST2 18:36:44 --- quit: ncv (Remote host closed the connection) 18:36:57 I hardly use any of textwrangler's features as it is 18:37:19 I just want a fucking text editor with line numbers and maybe some color now and then 18:37:28 you would use the ST2 features. and its not about featureitis, its about ease of preforming common editing tasks 18:37:59 I have simple needs and textwrangler makes me happy 18:38:00 https://tutsplus.com/course/improve-workflow-in-sublime-text-2/ 18:38:14 watch those videos and tell me ST2 isnt the most efficient editor you ever saw :) 18:38:31 I don't have to watch tutorial videos to use my current editor 18:38:41 yea just watch video 4 then 18:38:50 srsly im dont own shares in this :) 18:38:51 if I wanted a learning curve I'd just fucking learn emacs or something 18:40:49 haha 18:40:58 emacs does have a ridiculous learning curve 18:41:16 what I find most hilarious about emacs is that the documentation is all in emacs 18:41:20 * tangentstorm is also writing an editor as part of all this. it will be written in pascal and scriptable in forth. 18:41:24 so to learn to use emacs you have to know emacs 18:41:45 tangentstorm: that sounds pretty spiffy 18:42:14 actually that's one of the main reasons i'm porting oberon 18:43:29 the oberon system had a very text-centric user interface... in a way it's sort of like a giant emacs-style text editor 18:43:56 but with the ability to add graphics and active widgets and whatnot 18:44:01 hmm 18:44:27 once upon a time the company I worked for did an all day "hackathon", and my project was building a REPL for java 18:44:35 it was kind of cool: you could just write text to make your menus .. almost like a wiki or something 18:44:39 the demo was great and the implementation was hilariously awful 18:44:55 :) 18:45:25 the javax compiler stuff is basically a wrapper around javac so you don't get any sort of sane compiler errors or anything 18:45:39 and it expects to be given a file name to open 18:45:57 i wrote a pretty awful prolog repl in java 18:45:57 so I wrote a class which wraps around a string and fakes being a file well enough for javac to swallow it 18:46:05 :) 18:46:18 --- part: PoppaVic left #forth 18:46:23 but then I didn't know how to tell if the line entered was an expression or a statement 18:46:53 so I just try compiling it as an expression first and if it encounters an error I go "welp, must be a statement" 18:47:22 and then compile it by using a different template 18:47:31 haha 18:47:48 that's actually not that bad for a repl 18:47:59 it worked and I learned some things 18:48:10 things like "don't ever do this" 18:48:19 :) 18:48:38 upon reflection all of my hackathons were horror shows 18:48:53 I wrote a PHP application which ran on the company cisco phones 18:49:01 haha 18:49:07 because I discovered they all had webservers 18:49:21 one of the IT guys was like "oh yeah we have some manuals, here" 18:50:02 and then I needed to generate HTTP headers and in a moment of weakness I thought "oh hey I bet this is easy in PHP, I didn't want to fuck with asp.net anyway" 18:50:55 i think that's one reason php is so popular despite its flaws: it's very often the path of least resistance 18:51:05 then another time I teamed up with one of the other engineers and we wrote a plugin for our company's remote file management thingy that ran on blackberries that allowed you to play hunt the wumpus by exploring a spoofed directory structure 18:52:05 I couldn't figure out how to get SOAP to serialize and deserialize the game state properly so I figured out a way to pack everything into some invisible unicode characters in filenames 18:52:23 in summary I am a terrible human being 18:52:50 :D 18:53:16 http://i.imgur.com/YwsB9.png <- screenshot of my editor ( right hand side ) 18:53:29 oh yeah I saw that earlier 18:54:40 RodgerTheGreat: did you say the other day that you're working on a new compiler technique for your phd? 18:54:50 yeah 18:54:52 internals stuff 18:55:34 so does that mean you're going back to school after working for some years? 18:55:45 I did yes 18:55:54 I have "industry" experience 18:56:52 that's cool. i never quite finished college and have kind of been thinking about going back after i get this project out the door 18:56:59 --- quit: FlimmFlamm (Quit: irc2go) 19:34:07 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 19:34:10 --- mode: ChanServ set +v Nisstyre-laptop 19:46:13 i fell asleep. 19:46:50 i believe i am now awake. i was about to undertake some serious home remodelling while i was asleep but my phone woke me up. 19:47:10 so anywho. I440r. 19:49:52 hi 19:50:07 yea i think i set -V but i cant tell if i got it right or not :) 19:50:35 hopefully you still have a home after you remodel :) 19:50:35 hmm. i still have voice. 19:50:52 no i meant to stop external messages into the channel 19:50:58 heh. it was in my dreams. glad i didn't go through with it... i needed the rest. 19:51:04 lol 19:51:16 u had a question? 19:51:22 yes about the -V issue. 19:51:31 why is it useful at all? 19:51:48 i think it stops people outside the channel sending priv messages to people inside it 19:51:55 i might be wrong about that 19:52:34 oh i see. but that is hardly a problem, given how many channels one is usually signed into at one time! 19:52:47 i'm all for eliminating it. 19:52:55 well i think most of them set that 19:53:28 if someone outside the channel wants to send a message they can always join the channel 19:53:40 setting -V prevents spam bots broadcasting to everyone in here 19:53:55 hmm i see. 19:57:04 i will leave and come back and see if i have a voice 19:57:07 --- part: tangentstorm left #forth 19:57:09 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 19:57:09 --- mode: ChanServ set +v tangentstorm 19:57:16 guess so 19:57:19 * ChanServ gives voice to tangentstorm 19:57:29 yea i dont think it prevents voicing. 19:57:37 it does that every single time there's a netsplit. 19:57:41 it might be "group -V" in the flags command.. i wasn't sure because i didn't have rights to try it 19:57:55 i was just looking at /msg ChanServ HELP 19:58:27 is the channel +m pre default but auto voices everyone so they can speak? 19:58:42 i think so. but it is not necessary in almost any other channels. 19:58:52 it wasnt me that set that up 19:59:03 ah. do you have admin rights to remove it? 19:59:20 lol i hope so i am the channel owner 19:59:21 heh 19:59:38 but ive no idea how :P~ 20:00:35 ah. me neither. perhaps i should do some legwork and see what happens. 20:01:25 im not even sure what modes / flags to switch or how to make them perm 20:02:05 me either. i was just guessing on -V 20:02:21 perhaps someone in #freenode can point us in the right direction 20:03:09 nope. thats invite only 20:03:14 oh i typed it wrong 20:03:42 --- quit: Nisstyre-laptop (Read error: Connection reset by peer) 20:07:38 someone exit and come back again 20:07:47 see if you get voiced and if not 20:07:50 if you can still speak 20:08:33 --- part: kulp left #forth 20:08:36 --- join: kulp (~kulp@unaffiliated/kulp) joined #forth 20:08:36 --- mode: ChanServ set +v kulp 20:08:41 meh 20:08:41 yay ? 20:08:47 stupid 20:09:47 ok try again 20:10:21 exit and come back 20:10:24 --- part: kulp left #forth 20:10:26 --- join: kulp (~kulp@unaffiliated/kulp) joined #forth 20:10:26 --- mode: ChanServ set +v kulp 20:10:30 test test 20:10:33 ugh 20:10:43 everyone mutiny ! 20:10:49 i nominate kulp the new chanop ! 20:10:53 in xchat, we all have amber balls next to our names. 20:10:56 * kulp +o kulp 20:11:13 and yours, I440r has a green ball. 20:11:18 if i am elected, i promise to devoice everyone PERSONALLY 20:11:28 i think once the amber balls are gone, chanserv will stop giving voice. 20:11:29 lol 20:11:40 --- mode: ChanServ set -vvvv carc clog malyn koisoke_ 20:11:40 --- mode: ChanServ set -vvvv crc Adeon dzho djinni 20:11:40 --- mode: ChanServ set -vvvv ttmrichter dTal zbrown yiyus 20:11:40 --- mode: ChanServ set -vvvv newcup cratuki Inode schmx 20:11:40 --- mode: ChanServ set -vvvv bjorkintosh nighty-_ segher nottwo 20:11:40 --- mode: ChanServ set -vvvv rixard ASau derk_ cataska 20:11:40 --- mode: ChanServ set -vvvv IAmHere Nisstyre RodgerTheGreat impomatic 20:11:40 --- mode: ChanServ set -vvvv kumul karswell tangentstorm kulp 20:11:47 can anyone still talk? 20:12:06 ok gimme a sec 20:12:07 ohy 20:12:12 erm. someone exit and come back 20:12:17 i want to see it NOT voice you 20:12:17 --- part: bjorkintosh left #forth 20:12:17 --- part: kulp left #forth 20:12:19 --- join: bjorkintosh (~bjork@ip68-13-229-200.ok.ok.cox.net) joined #forth 20:12:19 --- join: kulp (~kulp@unaffiliated/kulp) joined #forth 20:12:26 ill unmoderate the channel so everyone can talk 20:13:15 --- part: tangentstorm left #forth 20:13:22 --- mode: I440r set -m 20:13:22 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 20:13:24 saontuhsanoh 20:13:26 htrof 20:13:29 yay! 20:13:29 ok now you can talk 20:13:29 yay. 20:13:32 the amber balls are gone! 20:13:44 thanks, I440r 20:13:47 take that, ChanServ! 20:13:48 and i agree having everyone voiced looks shitty but i didnt set the channel up that way lol 20:14:08 if someone starts trolling i can always boot them :P 20:14:11 i for one, will not elect kulp as the next op. i will cast my vote for I440r. 20:14:40 sorry kulp. I440r slew the ChanServ dragono. 20:14:47 with the extra 'o'. 20:15:06 im the channel OWNER lol. i registered this channel in 1999 or maybe 2000 and sat in here ALONE for about 3 years :P~ 20:15:19 :) 20:15:29 bjorkintosh: i will wait patiently for my chance 20:15:34 Sooon. 20:15:35 i used to set the channel limit to 83 people as a joke 20:15:43 i.e. limiting the channel to the 83 standard :P~ 20:15:45 hah. 20:16:39 i was hanging out alone in #oberon for a while.. people eventually start showing up if someone just waits around long enough and "collects" them :) 20:16:50 oberon? 20:17:08 it's a language / operating system 20:17:16 by Wirth. 20:17:17 by the guy that invented pascal 20:17:19 yeah 20:17:24 yeah. i have his book. 20:17:33 i'm writing an oberon07 -> retroforth compiler 20:17:39 and i have run it and blue bottle before. 20:17:55 blue bottle crashed a lot, but native oberon itself, was pretty damned stable and fun. 20:18:08 --- join: Plazma (~Plazma@freenode/staff/plazma) joined #forth 20:18:10 i want to get it running atop the ngaro vm 20:18:35 i want it to run on bare metal again. i enjoyed that a lot. 20:18:52 it was like discovering thai food for the first time or something. 20:19:21 wirth himself is working on a new version that runs on a cpu he designed and implemented on an FPGA 20:19:39 yeah. he did that once before, a long time ago. 20:19:46 lilith, i think he called the machine. 20:20:09 lilith is supposed to be adams FIRST wife 20:20:26 i'm actually making a new language called wejal... it's sort of like an extensible oberon built up from forth 20:20:34 Wirth has a sense of humor. 20:20:48 is oberon on the ARM yet? 20:20:51 HAS? he is still alive? 20:21:02 with a dependent type system borrowed from agda, which i am currently struggling to understand 20:21:09 yes, wirth is still alive 20:21:31 yeah he is, I440r. he thinks the world's problems will be solved with pascal or some variant thereof :) 20:21:32 http://www.inf.ethz.ch/personal/wirth/ 20:21:44 of course he does :P~ 20:21:56 i am not strongly inclined to disagree with him. 20:22:11 oberon07 is his latest language... revised in 2011. as far as i know he's working on revising his project oberon book 20:22:19 oh cool. 20:22:41 it is a very nice combination of OS and language. 20:23:17 well. elegant, is the correct term here. i don't much care for Oberon the language itself 20:23:49 still fits on a floppy though. 20:24:00 the only reason i still have floppies. 20:24:03 which nobody has so nobody can run it :P~ 20:24:19 it runs on an emulator in *nix, windows, and *bsd. 20:24:23 has CM ever recieved a turning award? 20:24:25 never tried it on the mac. 20:24:34 don't think he has. 20:24:58 :/ 20:25:15 i bet CM doesnt even care "<-- this much 20:25:33 i bet he does not. 20:25:38 he is not an academic. 20:27:43 i am trying to add dependent types to oberon, using this: http://www.andres-loeh.de/LambdaPi/ 20:28:02 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 20:28:03 since my compiler is written in retro, i am therefore trying to implement dependent types in forth 20:28:24 you are ... como ce dice ... 'masochist'? 20:34:36 does retro keep headers and code separate? 20:36:28 if so just keep type info in word headers and have this plugged in by the word that creates instances of that data type 20:36:45 and of course then you have to do type checking at compile time too 20:38:05 headers and code are all in one variable length record, but that record has a field for something called a class 20:38:40 the class controls how the word is evaluated 20:39:21 so instead of the listener checking whether the word is immediate or not, there's a class called MACRO 20:40:00 you cannot turnkey? 20:40:09 i don't know what you mean 20:40:23 throw away all word headers and save out only the code 20:40:49 ' my-app is default 20:40:54 turnkey myapp 20:41:12 creates an executable called myapp and saves out only code space not headers 20:41:36 when ./myapp is run the default init chain has been set to run the main entry point to your application 20:42:32 default is a deferred word usually used to add initializations in a chain 20:42:33 so 20:42:35 defer default 20:42:49 : init-foo defers default do stuff here ; 20:43:31 "Defers" here compiles the current body of default into init-foo so that init-foo calls that directly and then sets default equal to init-foo 20:45:56 huh 20:46:14 not sure if it's possible 20:46:25 well it's possible obviously but it would be somewhat tricky 20:46:49 i think "direct threaded" is the word to describe what retro does 20:47:07 if the function is at address 3344 in memory, then the opcode to call it is 3344 20:47:34 any opcode > 30 is treated as GOSUB by the vm 20:48:23 so to do turnkey, you'd have to map all the old calls to their new places 20:54:50 --- join: proteusguy (~proteusgu@ppp-61-90-8-211.revip.asianet.co.th) joined #forth 20:59:20 --- join: Bahman (~Bahman@bba141175.alshamil.net.ae) joined #forth 20:59:48 not if code and headers were in different regions 20:59:55 all the code addresses would be the same 21:00:18 to really benefit from turnkey you have to relocate all the code 21:00:30 isforth does not relocae any code 21:00:48 oh I see keep them separate in the first place 21:00:51 yeah that works 21:00:54 --- join: Nisstyre_ (~yours@oftn/member/Nisstyre) joined #forth 21:01:07 probably makes your dictionary a little more complicated or adds indirection 21:01:13 nope 21:02:16 --- quit: Nisstyre (Ping timeout: 256 seconds) 21:02:35 im not entirely sure why you think i would need to relocate anything 21:03:14 I didn't catch that you were keeping your headers separate from your dictionary bodies 21:07:29 --- quit: I440r (Ping timeout: 255 seconds) 21:08:52 i'm not sure i'm ready to tackle re-modelling the retro dictionary yet 21:09:21 so is the plan to really use retro, or just have something running on Ngaro? 21:09:30 i do kind of like the idea of having separate areas of ram for fixed-sized records and variable records 21:10:03 well. i started out with the plan to make a language called b4 that would just be a very tiny forth-like 21:10:53 but i've been hanging out in #retro for months and i've gotten used to it while i implemented a version of ngaro in pascal 21:11:27 also my pascal is called retropascal :) 21:11:44 you avoided the obvious pun? 21:11:48 "rascal" 21:12:16 yeah... i wanted to actually use the word pascal ... :) 21:12:23 :| 21:12:51 my fortran compiler is called FIVETRAN 21:12:56 the weird language i'm making is called wejal... retro pascal will be pretty standard ISO pascal... 21:13:16 :) i like it 21:13:54 when people complained that my VM didn't have a C-like infix language I made one called Stroyent, which is named after the green goo in Quake 2 which can dissolve flesh and is made from dead people 21:14:33 and actually rascal was one of my top choices for the name... because it's pascal + haskell ... but "raskell" looked like it was pronounced differently 21:14:55 and "rascal" wouldn't be google friendly 21:15:05 tell that to google 21:15:10 Go, anyone? 21:15:13 Stroyent :) 21:15:18 yes go is a horrible name 21:15:29 you don't search for go, you search for golang :) 21:15:38 dlang for d 21:16:04 if you google "stroyent language" I am the number 1 result 21:16:09 :) 21:16:33 I wrote one game in Stroyent and then tried to forget about it 21:17:07 you have a lot of compilers under your belt 21:17:17 so it would appear 21:17:28 i implemented a python -> parrot compiler in 2003 or so 21:18:19 and i was messing with a lisp-like syntax for python called scarlet 21:18:33 that's a nice name for a language 21:18:38 (another bad name. scarletlambda.org ) 21:18:52 I avoid colors though because I use colors to name all of my computers 21:19:07 i used two colours to name two computers 21:19:12 but they were in japanese 21:19:28 the rest i made up. 21:19:34 scarlet eventually morphed into a whole other language with actual syntax but it's not online 21:19:45 presently I have red, blue, indigo, violet, amber and fuchsia 21:20:01 my computer is named calavera after the character in the game grim fandango. my laptop is named threepwood after a famous pirate. :) 21:20:26 my computer names are all about five letters long because i am lazy and do not want to type long ones. 21:20:46 i guess you'd get pretty good at typing fuchsia, eh 21:20:48 kulp: "red" is pretty easy 21:20:51 --- join: I440r (~zhiming@220.sub-70-194-131.myvzw.com) joined #forth 21:20:51 --- mode: ChanServ set +o I440r 21:21:00 RodgerTheGreat: that's hardly an average case :P 21:21:10 kulp: thankfully that one is my iphone so I rarely have to use it as a hostname 21:21:34 RodgerTheGreat: until recently, i couldn't use my iphone hostname if i wanted to 21:21:45 it was エバ 21:21:45 and red is my main machine, so it actually is the average case 21:22:10 but how often do you type that É 21:22:16 oops sorry, french layout 21:24:00 I think it's time for me to hit the sack. 'Night folks 21:24:05 n8 21:24:19 nate? 21:24:50 nacht 21:24:59 ah, that works 21:25:13 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 21:31:07 so... i think my plan is to have a lifting function that takes a word like ( nn-n ) and converts it to ( ntnt-nt ) 21:31:17 so everything on the stack is tagged with a type. 21:32:18 convert is the wrong word... in haskell you'd say 'lift the word'... into the realm of typed values i guess 21:54:42 --- quit: Bahman (Remote host closed the connection) 22:24:12 --- quit: kumul (Quit: Leaving) 23:17:06 --- join: Bahman (~Bahman@bba141175.alshamil.net.ae) joined #forth 23:18:56 --- nick: karswell -> rexelwatcher 23:19:07 --- nick: rexelwatcher -> karswell 23:21:01 --- quit: I440r (Remote host closed the connection) 23:59:59 --- log: ended forth/13.01.25