00:01:48 this retroforth is frustrating 00:01:49 alise: Too bad! 00:01:53 and undocumented 00:01:54 zzo38: so what /does/ Alt+D do in the editor 00:01:58 nooga: older retroforth was better 00:01:59 methinks 00:02:04 they've recently redone it all 00:02:10 alise: In MegaZeux, you mean? 00:02:17 zzo38: in your fork 00:02:30 Alt+D toggles default color for objects on/off in my fork. It does the same thing in the original DOS versions. 00:02:45 However, in the modern mainstream MegaZeux, ALT+D in the editor does the same as ALT+E ALT+D 00:03:59 zzo38: can you tell qbasic to stop UPPERCASING all my code? 00:04:32 alise: If you have QuickBASIC Extended, you can open the file in "document" mode and it will stop reformatting your code. 00:04:53 I only have QBasic, because I am but a pilgrim. (I can get QuickBASIC, but *eh*) 00:04:57 QBasic is fast enough, right? :-P 00:05:22 alise: It depends what you are making! 00:08:28 -!- cpressey has joined. 00:08:52 (Later when I make up my own design of computer system, it will include ForthBASIC which allows you to make games and other programs using the built-in Forth or BASIC systems. They can even use game conrtollers, since the computer will have game controller ports on the front and can be used easily as game console system.) 00:09:49 -!- Wamanuz has quit (Remote host closed the connection). 00:09:58 (The BASIC mode is not intended for writing new programs, it is intended mostly for compatibility with programs in old books. And will probably be designed to require line numbers. Forth mode can be used for new programs, or for system administration. Native codes are also usable. Still, you can write new programs in BASIC if you want to.) 00:13:24 -!- GreaseMonkey has joined. 00:21:38 qbasic is so liberating 00:21:45 WHO CARES ABOUT STRUCTS?? JUST USE GLOBALS! 00:24:58 -!- FireFly has quit (Quit: swatted to death). 00:24:59 alise: Structures are useful too, in QBASIC, though. (Use the TYPE command to create structures) 00:25:01 zzo38: what? 00:25:09 zzo38: NOBODY NEEDS STRUCTURES 00:25:29 Structures are also useful in other programming languages, too. 00:25:48 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:26:09 But you are correct, that many of these things can be done without type structures 00:26:14 But sometimes it is useful anyways 00:26:52 Type structures might be useful to load/save the state of a program in a file, using GET and PUT commands, for instance. 00:27:27 can't you just list the variables to save 00:27:41 alise: Yes, you can. And I have used that way too. 00:28:27 But instead of listing them twice, I use something like FileInt and FileLong and then define those subroutines to use GET or PUT depending on the value of a issaving global variable. 00:28:37 You can also make FileString for variable length strings. 00:28:49 (Which is something that the TYPE command cannot use) 00:29:00 it is WEIRD how qbasic separates the subs into different windows 00:30:05 If you do not want to use the QBASIC editor, you can just edit it in a separate program and then use QBASIC /RUN to run the program. (Put SYSTEM at the end of the program to cause it to exit QBASIC after it is finished running, this works if the /RUN option is given) 00:32:28 -!- Sgeo has joined. 00:33:06 Is Forth generally a used language for DSLs? 00:33:10 Did you know that in MegaZeux, the A_SPEC_BOMB flag does nothing, and the A_SPEC_PUSH is the same as A_PUSHABLE flag? These are not features I have added. They were like that when Gregory Janson designed MegaZeux. 00:33:27 Sgeo: What do you mean by DSLs? 00:33:37 Domain Specific Language 00:33:45 -!- kwertii has quit (Quit: bye). 00:33:52 Sgeo: Forth can certainly be used for those purposes. 00:34:03 I know it _can_ 00:34:08 Is it a good idea, or bad idea? 00:34:15 It does it better than other general use programming languages do. 00:34:24 It is sometimes a good idea, it depends what you are making. 00:34:31 * Sgeo wants to do AWelectronics in Forth, instead of Haskell as originally planned 00:34:43 Sgeo: What is AWelectronics? 00:35:06 AW logic gates and so forth, hopefully to build a computer 00:35:13 Which I think should be a stack machine 00:35:14 pikhq: sorry, I went out. 00:35:17 OK. 00:35:18 Sgeo: Forth IS DSLs. 00:35:29 Every word can read an arbitrary number of words or characters ahead of it. 00:35:31 if boost is dynamically linked, you need -rpath, which is EVIL 00:35:41 Forth is much better for domain specific languages than other general purpose programming languages are. 00:35:53 If it turns out keyboard space is limited, I'd just have the user enter hex digits... 00:35:57 Sgeo: In fact, you don't write Forth libraries. 00:36:04 dynamically linking and boost do not go together generally 00:36:05 You write Forth languages. 00:36:22 In Soviet Russia, Forth libraries write YOU!!! 00:36:26 alise, is there a generally accepted way to isolate dictionaries? 00:36:27 in fact, boost and dynamic linking should never ever be used together 00:36:30 And sandbox Forth? 00:36:33 etc.? 00:36:41 because Boost makes new SONAMEs every version 00:36:41 Sgeo: why are you so obsessed with sandboxing 00:36:43 Or would I have to write that code myself if I wanted to do that? 00:36:46 alise, because I am 00:36:51 Sgeo: I refuse to answer. 00:36:51 so all you're doing is wasting space 00:36:56 zzo38: FWIW, King is ludicrously slow in QBASIC 00:37:21 Sgeo: You can isolate dictionaries, but how it is done depends on the Forth system you are using. 00:37:30 alise, maybe for Warrigal's new nomic... 00:38:46 We need ForthNomic ASAP 00:38:57 But if you want to add security stuff and various things like that, it is better built in to the Forth interpreter, before Forth is entered. 00:39:06 Sgeo: That is interesting idea. Now invent it 00:40:28 How often is LOCAL| used, and is it standard? 00:40:55 Sgeo: I don't know the answer to that question, unfortunately 00:41:15 I don't use it often 00:41:39 But I suppose it can be useful in a few cases..... 00:42:44 I sometimes use the return stack to store a temporary value if it is needed, although usually the data stack is good enough 00:43:04 * Sgeo wants a quiz 00:43:13 Give me some parenthesized arithmatic to RPNize 00:45:13 x=(4+x+y)*(y%(x+4))*(x%(y+4)); 00:46:05 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.). 00:46:41 -!- GreaseMonkey has joined. 00:46:50 x y 4 + + y x 4 + % * x y 4 + % * 00:46:57 my answer: "(4+x+y)*(y%(x+4))*(x%(y+4))" toformula calculate x store 00:47:42 Sgeo: Yes that is RPNized. 00:47:45 Sgeo: % won't be defined, most likely 00:47:46 anyway 00:47:51 you never really do stuff like that in forth :P 00:47:57 In Forth, generally MOD is used for modulo 00:47:58 alise, what, why not? 00:48:03 x=y=(4+x+y)*(y%(x+4))*(x%(y+4)); 00:48:14 (Where X and Y variables) 00:48:17 because % is a Cism 00:48:21 it'll most likely be mod if anything 00:48:23 or rem 00:48:25 Sgeo: return d = w1 = 300+rz+-587 / 644%s(609 / 556) / -648-543 / -382*o8(950%146 / 891, -933 / d6[-519][13]*333)*547+-74*752; 00:48:32 ...? 00:48:41 Sgeo: ? 00:48:44 were you talking to me 00:48:52 alise, do you have nooga on ignore? 00:48:55 no 00:49:26 I'm afraid of this becoming real: http://www.theonion.com/video/in-the-know-are-tests-biased-against-students-who,17966/ 00:49:27 By "stuff like that", all you meant was the % ? 00:49:49 4 x @ y @ + + y @ x @ 4 + MOD x @ y @ 4 + MOD * * DUP y ! x ! 00:49:51 coppro: standardised tests are biased against people who are actually intelligent 00:50:03 which is worse 00:50:15 Sgeo: no, just 00:50:15 eh 00:50:17 zzo38: @ ? 00:50:31 It would be broken down into words? 00:50:42 Sgeo: yes 00:50:42 nooga, roughly Forth's dereference 00:50:47 not roughly 00:50:48 WHY IS IT IMPOSSIBLE TO FREAKING LEFT-ALIGN AN EQUATION. GOD. 00:50:48 exactly that 00:50:53 it reads a word from memory 00:51:30 pikhq: http://www.google.co.uk/search?hl=en&source=hp&q=left+align+latex+equation&aq=f&aqi=g1&aql=&oq=&gs_rfai= 00:51:34 pikhq: I found it in two sections. Can you? 00:51:37 \begin{equation*} 00:51:42 If yo uwant indented, put fleqn in document class 00:51:47 and \setlength{\mathindent}{...} 00:51:48 *you want 00:51:53 Lesson to be learned: Google 00:51:56 coppro: Do you have a text version of that article? 00:52:21 alise: I spent a long time Googling. 00:52:26 zzo38: do you have computer capable of displaying websites? 00:52:29 zzo38: no, it's too scholarly 00:52:36 it has to be displayed in the audiovisual format 00:52:41 as it presents 57 well-researched graphs 00:52:54 dedicated to the proposition "are tests biased against students who don't give a shit?". 00:53:05 WARNING: BLATANT LIES 00:53:09 zzo38: unfortunately not 00:53:17 the thing with the onion is 00:53:27 they start with the title and just write the rest based on that (they have stated this) 00:53:32 in any case, it wouldn't be conveyed correctly; when they do their panels it's not like a traditional news report 00:53:33 which means reading the whole thing is almost always pointless 00:55:54 How do I write a DVI driver? So that I can make TeXnicard 00:56:41 zzo38: We don't know. 00:57:12 cpressey: Amiga was killed by this patent: 00:57:15 The XOR patent covers the use of the machine language XOR (exclusive-or) 00:57:15 operator to make a cursor blink in a bitmapped display. 00:57:21 cpressey: YOUR NOSTALGIA: CRUSHED 00:57:23 http://xcssa.org/pipermail/xcssa/2005-February/002587.html 00:57:45 I'm not the only one with severe nostalgia issues? 00:57:52 no, you are 00:58:01 cpressey was just mildly nostalgic for the amiga an hour or two ago 00:58:04 yours is crippling 00:59:17 -!- augur has quit (Remote host closed the connection). 00:59:23 It's not impacting the quality of my life 00:59:29 I'm not not trying new things 00:59:48 but you are spending a hell of a lot of time with old things that nobody cares about :P 01:00:07 But _I_ care about those things 01:00:15 And so do at least a few other people, usually 01:00:20 Really, there is XOR patent like that? In CZZT, it uses XOR to make blinking text. (But this is not the cursor) 01:00:23 but you have also said that the currency you care about is attention 01:00:28 so clearly there is a contradiction here 01:01:15 alise, the AW community is small enough for a single individual to potentially make waves, even to this day, and large enough to satisfy my attention needs 01:08:40 -!- zzo38 has quit (Remote host closed the connection). 01:14:57 alise, what are some uses of [ ] without LITERAL? 01:15:04 Sgeo: don't know 01:15:12 ask zzo :P 01:15:12 Also, is Win32Forth decent or horrible? 01:17:20 Horrible. 01:17:23 Almost certainly. 01:25:34 What's a good Forth for Windows 01:26:02 Also, why does a Google for Forth LiveCD not find anything 01:27:19 Okay, screw it, I am *not* going to type this assignment up. 01:27:32 SO MANY GRAPHS 01:27:36 SO FUCKING MANY GRAPHS 01:27:42 WHY ARE THERE SO MANY GRAPHS 01:31:00 Sgeo: because what would a forth livecd be? 01:32:08 Some very minimal kernal that had the bare minimum of non-Forth-written Forth interpreter stuff, plus some Forth code, all loaded in 01:32:19 Something like Losethos, except Forth and decent 01:32:50 why not just have an asm forth interp and then a forth os? 01:32:52 that's easier 01:32:54 and coole 01:33:18 alise, ... on a LiveCD 01:33:36 Make it more accessible 01:33:36 *cooler 01:33:41 Sgeo: that's what i meant 01:33:42 except not a cd 01:33:44 it'd be a floppy 01:33:45 forth code is tiny 01:33:47 That works 01:34:01 Well, except fewer and fewer computers have floppy drives.. 01:34:01 maybe 5-10k for the compiler 01:34:08 so put it on a usb stick 01:34:14 1-2k for the base set of words 01:34:26 then maybe 5-7k for a usable OS, perhaps even with a GUI 01:36:06 i mean 01:36:17 -!- SgeoN1 has joined. 01:36:24 you could fit a web browser and an irc client in 1.44 mb of forth OS 01:36:28 Dear school 01:36:31 oberon packs all that in, forth would pack in even more I bet 01:36:45 Fuck you in the ass for making me install Symantec 01:37:08 Oberon? 01:37:37 Niklaus Wirth's latest language, successor to pascal etc 01:37:39 very cool 01:37:42 very small spec (smaller than r5rs) 01:37:46 OS is very minimal 01:37:50 inspired plan 9's acme 01:38:13 Wait, it's old? 01:38:23 modula-2 is like early 90s 01:38:28 the os is a bit old 01:38:30 but it works fine 01:38:37 erm 01:38:38 oberon 2 01:38:39 that is 01:38:45 there's a 2007 revision 01:38:54 oberon originally came about 86 or thereabouts 01:39:13 [[The Oberon OS is available for several other hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package fits on a single 3.5" floppy disk. The version which runs on bare PC hardware is called Native Oberon.]] 01:40:26 I should attempt to determine an upper bound on memory an AW computer can have 01:40:51 Although at this point, the bound would be much, much, higher than an AW computer could ever actually have 01:41:33 Imagine, if you will, a VHDL file, that defines circuits for memory. You know the maximum size the VHDL file can have 01:41:39 That's essentially the bound I'm finding 01:42:37 -!- augur has joined. 01:43:02 Let's say we go with Ulta 01:43:12 11000 bytes per cell 01:43:44 20 cells by 20 cells visible at a time (it's going to be less than that) 01:43:58 4mb 01:44:20 And keep in mind, that's orders of magnatude too big 01:44:36 So, any chance of building a decent Forth machine? 01:44:56 you can do forth with <10kb of ram 01:45:26 there's a reason it's primarily used in embedded stuff 01:45:29 it's really damn good at it 01:46:30 I should attempt to construct a memory cell, see how many I can fit per cell 01:46:37 Then I'd have actually useful numbers 01:55:20 * Sgeo still wants to see Forth servers 01:56:31 YOu know what might be a nice project for me, if I got my hands on a decent Forth? 01:56:40 Making comments be compiled into word definitions 01:56:51 But then I'd have to modify SEE to recognize it :/ 01:56:58 I think gforth does that 01:57:01 gforth sucks though 01:57:44 What shouldn't I use Forth for? 02:01:31 Nothing! 02:01:35 It's jawsome. 02:01:37 Even web development! 02:02:04 Querying 'se': ";; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1."... DNSSEC is actually getting deployed... 02:03:24 * Sgeo ponders how one would go about adding static typing... 02:03:54 Hmm. Is the stack usually defined at the non-Forth interpreter level? 02:03:55 Sgeo: see the Cat language 02:04:00 Hmm, that shouldn't be a problem 02:04:48 * oerjan hasn't heard more about Cat in a while though 02:06:46 http://wiki.laptop.org/go/Forth_Lesson_4 02:06:46 http://en.wikipedia.org/wiki/Cat_(programming_language) 02:06:51 Ugh, no RECURSE word? 02:07:03 Just RECURSIVE flag thingy? 02:07:51 Sgeo: eh? 02:08:44 oh i see 02:08:48 recursive flag is cool :P 02:09:36 It's completely needless 02:11:52 eh 02:11:55 nothing wrong with it 02:15:56 -!- nooga has quit (Ping timeout: 260 seconds). 02:16:13 hm it is not clear to me that cdiggins ever got around to actually implementing the static typing part of Cat 02:16:58 it _was_ rather awkward to do inference, i recall 02:17:25 anyway it seems to have been dormant since 2007 02:18:15 basically stack languages with arbitrary no. of input and output are not good matches for the usual type inferencing algorithms 02:24:06 he did 02:24:08 i'm pretty sure 02:24:38 http://groups.google.com/group/catlanguage 02:24:40 not so dormant 02:24:55 it's just that wikipedia claims the main implementation does not actually support static typing 02:25:03 hmm 02:25:11 well there's something that does, i think 02:25:14 some cat implementation 02:25:17 or sub-implementation, etc 02:26:39 "not so dormant" seems only technically correct in this case (the best kind of correct, of course) 02:27:02 he was doing experimental stuff related to it as of a year ago or s 02:27:03 *or so 02:27:06 *a year or so ago 02:27:25 -!- yiyus_ has quit (Ping timeout: 240 seconds). 02:27:38 Sgeo: I want to create a Forth OS now... damn you. 02:29:28 -!- cheater- has quit (Ping timeout: 252 seconds). 02:31:35 -!- yiyus_ has joined. 02:38:02 -!- nooga has joined. 02:45:00 -!- cheater99 has joined. 02:58:05 Words do not express my tiredness 02:59:40 try an interpretive dance 03:14:57 I think I like Forth's native approach to modularity: Don't worry about overriding something, it won't break anything 03:14:59 Hmm, wait 03:15:17 It might break future code that was expecting to use something that was accidentally overridden 03:22:31 -!- cheater99 has quit (Ping timeout: 272 seconds). 03:28:43 -!- SgeoN1 has quit (Read error: Connection reset by peer). 03:32:17 coppro: So, let's see about that build system. 03:33:46 -!- calamari has joined. 03:35:35 pikhq: Is it going to be autohell? 03:40:24 coppro: BTW, AC_CHECK_LIB is a macro that should die. 03:40:44 pikhq: I warn you, I have Makefile powers and I'm not afraid to use them. 03:40:50 :| 03:42:03 alise: This uses Boost. If it used saner packages, I'd just make it a very simple Makefile. 03:42:16 pikhq: pkg-config dude 03:42:27 alise: Boost does not install .pc files. 03:42:35 well then just link the .as in 03:42:57 It spreads headers everywhere. 03:43:15 And its own build system. 03:43:46 * pikhq nukes the support for precompiled headers 03:43:58 Hmm 03:44:13 Jonesforth uses [COMPILE], but according to wiki, ANS Forth uses POSTPONE 03:44:24 coppro: Would you say you feel safe in only supporting environments with C99? Yes? Okay, there goes 3/4ths of the configure.ac 03:44:27 ANS Forth is a bit rubbish 03:44:33 although quite well-supported 03:44:43 pikhq: I like how you're making it simpler for me to turn it into a Makefile. 03:44:45 >:) 03:44:55 Oh, hey, this doesn't even use conf.h. 03:45:05 Ooh 03:45:05 Well, then. Makefile anyone? 03:45:11 How did I forget about :NONAME ? 03:45:47 I'm starting to think that Win32Forth is rubbish for learning Forth 03:45:56 see :NONAME 03:45:56 : :NONAME ALIGN HERE "0x509E8C" ; ok 03:46:28 Win32Forth is rubbish 03:46:35 even gforth sounds better than that 03:46:36 Wait. If this doesn't use conf.h then *there's no point to most of the configure script*. 03:47:00 pikhq: Makefile~ 03:47:01 :P 03:47:19 alise, so what good Win32 ANS Forths are there? 03:47:36 Sgeo: i refuse to answer that question because you specified ANS 03:47:41 which is irrelevant 03:48:29 Fine 03:48:35 WHat good Win32 Forths are there? 03:48:41 I'll make them ANS myself if I have to 03:49:06 Sgeo: why do you care so much about ans? 03:49:18 alise, because I like standards and portability 03:49:21 some of the best forth programmers including chuck moore don't like it, it's basically irrelevant in practice 03:49:23 and forth is NOT portable 03:49:26 coppro: It also checks for atomic primitives and never does anything with the results of that test. *sigh* 03:49:29 it's close to the metal and to the implementation 03:49:30 on _purpose_ 03:49:47 Oh, wait, src/util/atomic.hpp. 03:50:01 Sgeo: you should stop approaching every language with the same mindset :| 03:50:59 Still, no point to that check at all. __GNUC__ should suffice. 03:51:11 Erm, no, never mind. It wouldn't. 03:51:25 What's wrong with Gforth? 03:51:54 it's too hosted 03:51:56 too many OS niceties 03:52:08 that's not the point of forth, it's not how you get to know how to use forth in a way that really exercises its strength 03:52:12 *strengths 03:52:12 etc 03:53:38 I'll avoid the Gforth-specific stuff then 03:54:05 Sgeo: You're going to try and code pure ANS Forth, aren't you? 03:54:10 Yes 03:54:19 -__- 03:54:22 I see linking JonesForth helped not one bit. 03:54:25 AC_CHECK_FUNCS([floor memset pow select sqrt]) 03:54:30 That line makes me a sad panda. 03:54:38 -!- cheater99 has joined. 03:54:41 You are not going to be able to use Forth how it's intended to be used, Sgeo 03:54:42 It makes me understand how a Forth can work 03:54:48 *made 03:55:04 -!- Vegabondmx has quit (Quit: Vegabondmx). 03:55:04 But if you're sticking to ANS Forth, it is irrelevant; it could be coded as stupidly as Python because you refuse to exercise its capabilities. 03:55:06 Are most metal-level Forths not ANS + extas 03:55:20 *extras like asm-level stuff? 03:55:28 asm-level stuff? Dude, Forth IS asm-level stuff. 03:55:29 @ 03:55:30 ! 03:55:34 That's peek and poke right there. 03:55:41 It's /not/ a high-level language. 03:55:51 I mean, it IS, but it's not not low level, either. 03:56:11 Find me a Forth LiveCD 03:58:28 coppro: You *love* you some cargo-cult programming, don't you? 04:04:05 There should be a language were all constructs are metaphors to balancing online games. 04:04:23 Empowering, depowering, complicating, and stripping objects. 04:04:43 The program is exited once balance is achieved 04:04:59 magicseteditor_CXXFLAGS = $(AM_CXXFLAGS) 04:05:01 *facepalm* 04:06:06 http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Designing-the-stack-effect-Tutorial.html#Designing-the-stack-effect-Tutorial 04:06:27 -!- bsmntbombdood has quit (Ping timeout: 240 seconds). 04:07:06 * Sgeo growls at non-standard { } 04:07:25 Although I guess it's easy to add 04:08:10 Sgeo: >_< 04:08:11 endif?!?!?!?? 04:08:17 Okay listen 04:08:17 http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Conditional-execution-Tutorial.html#Conditional-execution-Tutorial 04:08:31 Gforth is not the standards torch-bearer that I expected 04:08:35 1. Stop being obsessed with ANS Forth. IT SUCKS. Use the strengths of the implementation. 2. gforth has basically no strengths 04:08:47 And... Your "--debug" flag is stupid. Don't do it. 04:08:54 Chuck Moore hates ANS Forth. When the creator of a language hates the standard, IT SUCKS. 04:08:57 Forth is so low-level. 04:09:01 You're asking for portable assembly. 04:09:02 That's ludicrous. 04:09:07 Forth is useless without its low-level toolkit. 04:10:27 Ugh @ { ... } 04:10:28 Locals sucks 04:10:30 *suck 04:10:54 alise, does that include LOCAL| ? 04:10:59 Or just { } ? 04:11:05 Locals, as a general rule, suck. 04:11:29 Sgeo: But seriously: LISTEN to my last few lines. 04:11:36 If you don't, you'll never be able to use Forth effectively. 04:12:48 What good Win32 Forths are there, and what good bare-metal Forths are there? 04:13:21 Bare-metal Forths: often you write one yourself. it's hardware, situation - specific. 04:13:35 win32 forths: it is ok to us gforth as long as you don't use its os integration, just the pure forth parts. but ANS devotion is /wrong/ 04:13:46 retro forth might be cool i guess if you can figure out the weird new version 04:14:21 Gforth does not seem to be ANS devoted 04:14:39 I'm saying that your code shouldn't be ANS devoted. 04:15:24 When doing something practical, sure. But what about academic exercizes? 04:15:34 -!- cheater99 has quit (Ping timeout: 265 seconds). 04:15:34 -!- Mathnerd314 has quit (Ping timeout: 265 seconds). 04:15:44 Even moreso them. 04:15:48 *exercises, also. 04:16:01 ANS is basically irrelevant. Pretending it doesn't exist is a good start. 04:16:12 Oh sure, the implementations claim standards-compliance, but that's just to tick the boxes. 04:16:16 It's not important. 04:17:14 It should be possible to write tail-recurse using return stack manipulation, right? 04:17:25 coppro: Oh, yeah. BTW. AM_LDFLAGS is the wrong place to place libraries. 04:17:34 Doing that will make it fail to build on modern distros. 04:17:34 Sgeo: Yes, of course. 04:17:38 RECURSE is tail-recursive, I think. 04:17:40 Not sure. 04:17:42 Maybe not. 04:17:48 I think such a word exists, though. 04:18:13 In which implementation? >:D 04:18:46 I think it's fairly common. I forget the name. 04:19:06 ColorForth has it without trying :P 04:19:08 but that's cheating 04:19:14 since it has way different :/; semantics 04:19:20 and conditionals (no else clause) 04:19:51 I've been pondering hypothetical AW SDK bindings to a Forth 04:19:58 * Sgeo prepares to be slapped 04:20:11 I hate you. 04:20:14 I was thinking I'd make an rc2ex, but I guess it makes more sense to redefine throw 04:20:29 -!- bsmntbombdood has joined. 04:21:36 : min 2dup > if swap then drop ; 04:21:41 it's so poetic 04:21:44 if swap then drop! 04:21:45 ... Waitwaitwait. The makefile *doesn't* install the data. 04:21:48 *groan* 04:22:26 stack-effect comment for 2dup please? 04:22:32 a b -- a b a b 04:22:36 Ah 04:22:58 Wow, that's rather simple 04:23:04 I would likely NOT think of that 04:23:20 well i saw : min 2dup < if drop else nip endif ; in the gforth manual 04:23:23 and it told me to rewrite it without else 04:23:29 so i just thought about the logic for a second 04:23:38 but yeah, it takes practice to get good at factoring... 04:24:18 ...Gforth does define THEN , right? 04:25:31 yes 04:25:34 i just quoted literally 04:26:57 I should write PSOX in Forth 04:29:00 coppro: You know what? Fuck that damned thing's design to hell. It should be rewritten. 04:29:11 zzo38: You have license to do your NIH thing. 04:30:26 He needs to know how to create a DVI driver! 04:36:45 AWCREATE S" auth.activeworlds.com" 6767 THROW VARIABLE INSTANCE INSTANCE ! 04:37:11 what? 04:37:20 why the hell did you write it like that 04:37:22 firstly 04:37:26 Hmm? 04:37:28 variable declarations go before other code kthx 04:37:29 secondly 04:37:31 CUT THE CAPS 04:37:35 thirdly 04:37:38 why are you throwing there 04:37:49 alise, because AWCREATE returns an error code 04:38:03 ... 04:38:06 your design sucks 04:38:13 variable instance 04:38:16 No, that's how it works in the AW SDK 04:38:20 s" auth.activeworlds.com" 6767 aw-connect instance ! 04:38:22 -!- pikhq has quit (Ping timeout: 276 seconds). 04:38:26 yes, but the AW SDK sucks, I think we can conclude. 04:38:33 also, hyphenated names, man 04:38:34 use them 04:38:40 Oh, right, parameters before the word 04:38:47 That was a Forth thinking fail 04:38:51 Not an AW SDK fail 04:39:42 -!- pikhq has joined. 04:39:43 You still need a throw, or if you're going to ignore the return code, a drop 04:40:31 Um, does throw attempt to interpret error codes? 04:40:35 Or what? 04:45:37 see throw 04:45:55 STUFF! 04:46:12 (Havem 04:46:19 Haven't downloaded Gforth yet 04:47:23 STUFF!? 04:47:42 " Unfortunately, f~, the standard word for that purpose, is not well designed, so Gforth provides f~abs and f~rel as well." 04:47:49 Wht's wrong with f~ ? 04:47:52 alise, not literally 04:48:02 Just return stack stuff I don't understand 04:49:18 the floating point stuff is shit 04:49:20 i suggest not using it 04:49:22 it's really complex 04:49:24 floating point sucks anyway 04:53:04 I already know not to use fp for currency, or anything requiring precise stuff 04:53:23 Floating-point issues do have interesting consequences in Second Life 04:56:36 fp is just evil 04:57:38 The other programmer on the Project decided to use floating-point to store position, despite AW using ints... 04:57:59 >_< 04:58:24 I would have just sighed and not cared if it didn't introduce a bug that was fixed by me adding int-based positions to the code 04:58:37 Meaning there are two ways to store positions, that must be converted between 05:01:19 "and therefore this practice was been declared non-standard in 1999." 05:02:06 bye 05:02:10 -!- alise has quit (Read error: Connection reset by peer). 05:15:47 -!- TTUser has joined. 05:15:57 hi 05:16:00 -!- augur has quit (Remote host closed the connection). 05:16:12 -!- augur has joined. 05:16:25 so...what happens here 05:18:55 -!- TTUser has left (?). 05:31:06 pikhq: I hate most of it 05:31:22 except for a few bits, the main code isn't mine 05:39:56 -!- sftp has quit (Remote host closed the connection). 05:50:44 It amazes me that the US *still* has not converted to metric. 05:51:01 Come on you fools, just freaking do it. 05:52:23 The worst part is, a *lot* of things here are actually *dimensioned* in metric, but *sold* in customary units... 05:54:03 Somehow, it makes more sense to label something as being 23.7 fl oz. than 700 mL. 06:06:28 -!- Wamanuz has joined. 06:40:07 -!- oerjan has quit (Quit: leaving). 07:00:29 -!- cheater99 has joined. 07:19:36 -!- kar8nga has joined. 07:21:47 -!- MigoMipo has joined. 07:38:07 -!- relet has quit (Quit: Leaving.). 07:40:57 -!- calamari has quit (Quit: Leaving). 07:47:03 -!- wareya_ has joined. 07:50:25 -!- wareya has quit (Ping timeout: 258 seconds). 07:51:02 -!- MigoMipo has quit (Quit: Quit). 07:53:45 -!- relet has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:41:34 -!- kar8nga has quit (Remote host closed the connection). 09:13:06 -!- tombom has joined. 10:09:26 -!- ais523 has joined. 10:09:27 -!- ais523 has quit (Changing host). 10:09:27 -!- ais523 has joined. 10:36:17 hmm, reddit found this interesting ontopic link: http://github.com/resistor/BrainFTracing 10:36:29 -!- dbc has quit (Ping timeout: 255 seconds). 10:36:40 an LLVM-based tracing JIT for Brainfuck 10:37:55 according to the comments, it's quite a bit slower than esotope 10:38:00 oh, that was alise's comment 10:38:08 -!- wareya_ has changed nick to wareya. 10:38:16 must have been discussed while I wasn't here... 10:41:47 It sounds like it should be, since there's the tracing overhead. BrainFuck is a strange thing to JIT, but I do understand it's more of an LLVM example. 10:42:09 Don't remember seeing any discussion on-channel, but I don't always follow things very well. 10:43:16 there's also the way esotope analyses idioms statically 10:43:28 the only other compilers I know that do that are in-between for BF, and C-INTERCAL for INTERCAL 10:45:10 I'm doing too many other things atm, but if I wasn't busy with anything else I'd probably try to write a BF compiler that beats esotope 10:47:12 That JIT thing does [-], but on the other one everyone does that. 10:47:34 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.). 10:48:58 There's a "jump table idiom" heuristic in my static Funge-98 compiler (funcot), but it's pretty trivial, not-always-correct, and done purely to be able to follow the control flow over "j"s with a non-constant offset. 10:50:46 does it fallback or break in the case where it isn't correct? 10:52:22 Break, since it infeasible to follow all possible ways a j can go; and it's a purely static compiler, so there's not much it can do on runtime if it fails. (I seem to recall it fails cleanly, though; if the j offset is outside the "expected" boundaries, it'll die cleanly. (For some values of "clean".)) 10:54:13 I'm not sure how common the idiom is, anyway; it's been tuned to work with my code (the j instances found in fungot), so for a non-constant j it expects absolute direction-setting commands immediately after the j, like "[...]jvvvvvvv". 10:54:13 fizzie: a small number of gp at the battle arena were done by a huge barrier of light. 10:54:23 ^style 10:54:23 Available: agora alice c64 ct darwin discworld europarl ff7* fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube 10:54:28 Oh, still that. 10:55:01 well, crashing cleanly isn't really breaking 10:55:25 I have this speech corpus in Finnish I could feed to him, but we don't exactly (yet) have a .fi majority here. 10:55:49 well, the rest of us wouldn't realise it was nonsensical 10:55:54 although we could probably guess 10:56:34 and there's no real reason why you couldn't add it as an option alongside the English ones 10:57:45 `swedish That's true; after all, we already have a Swedish-speaking thing. 10:57:54 Thet's trooe-a; effter ell, ve-a elreedy hefe-a a Svedeesh-speekeeng theeng. \ Bork Bork Bork! 10:58:12 meanwhile, I wrote a fuzz-test for the C-INTERCAL optimiser last night 10:58:15 and it's found bugs already 10:58:51 of course, as is often the case with fuzz-tests, I'm not entirely sure what the bugs are even after it's found them 11:15:36 Hrm, the scripts I have for fungot seem to have some trouble with äös. 11:15:36 fizzie: i never saw that report... where is the end. and, this is it! all right, you're right...... 11:16:56 -!- asiekierka has joined. 11:16:58 hello 11:19:12 hi 11:35:27 -!- sftp has joined. 11:42:50 -!- iGO has quit. 11:42:56 meanwhile, esr is trying to prove to me over email that it's legal in the UK and US to relicense GPL code as BSD without permission from its author 11:44:03 unfortunately, there's exactly one actual binding precedent decision AFAIK, /Jacobsen v Katzer/ 11:44:37 hahaha 11:44:40 but it, plus a few other statements, proves relatively convincingly that it's illegal to relicense code under the Artistic License as BSD (because the verdict disallowed Artistic -> proprietary, and if you could do that via BSD it would be pointless) 11:45:21 The origin of code that was relicened doesn't matter as long as the relicense is complete 11:45:31 relicensed* 11:50:59 hey 11:51:40 if my project uses a GNU GPL lib, do i have to GPL the whole source? 11:52:30 nooga: it depends on how tightly the library binds to the rest of the source 11:52:40 but generally, GPL libs don't mix well with non-GPL source; that's why the LGPL exists 11:53:09 my project is written in a script language, i just include the lib source and make several function calls 11:53:11 there are "definitely illegal" and "definitely legal" combinations and a whole gray area in between... 11:53:40 + it's optional, library is only for graphing, so the application works without it, may be treated as a plug-in 11:53:48 nooga: are you using only documented APIs? and could the library function as a seperate module from the rest of the app? 11:54:04 yes 11:54:06 as in, connecting via RPC over the internet or something, in theory? 11:54:28 it could 11:54:33 if so, it's a gray area but probably OK; it's in much the same area as the whole libreadline thing, which people still bitch about to this day on occasion 11:58:50 oh whee, i'm downloading a webcomic to my PC 11:58:58 using a .cmd script and wget 12:03:17 I feel for you, having to wrestle with cmd scripting 12:03:25 although hopefully wget's powerful enough that it isn't so bad 12:03:51 (also, cmd finally started copying UNIX shell scripts in many respects, and became a lot better as a result) 12:05:58 i am still on XP 12:06:01 it only took 5 minutes 12:06:14 i already downloaded 37% of it (1000 strips) 12:07:25 were you obeying the site's robots.txt 12:07:34 if you do the download with a single wget command, it does that automatically 12:07:48 but presumably if you have a separate wget command for each strip it doesn't 12:10:24 i use a separate wget command for each strip 12:10:26 the site has a format of: 12:10:32 (hundreds number)/(comic number).gif 12:10:38 so i run my .cmd for each 100 strips 12:12:42 what are the numbers of the first and last strip? 12:12:53 and do the comic numbers include the hundreds, or not? 12:13:03 I want to see how quickly I can write this in UNIX shellscrip 12:13:06 *shellscript 12:13:51 ais523 - the first strip is 1.gif (hundreds number being 0) 12:14:02 the comic numbers include the hundreds 12:14:23 and thelast strip is 1000.gif (i'd assume the hundreds number would be 10 this time, but not sure) 12:15:07 hmm... what about this: (for x in `seq 1 1000`; do echo http://example.com/comics/$(($x/100))/$x.gif) | xargs wget 12:15:09 * ais523 tests with echo 12:15:42 ah, it's (for x in `seq 1 1000`; do echo http://example.com/comics/$(($x/100))/$x.gif; done) | xargs wget 12:15:45 I forgot to end the loop 12:15:45 probably 12:15:56 but i'm already 55% through 12:16:00 still, that's a one-liner, and even does things like reusing HTTP connections 12:16:04 you may as well go the rest of the way 12:16:11 how long is your script, btw? 12:16:18 well 12:16:22 i've had a separate script for 1-99 12:16:30 and i'm downloading 1000 manually 12:16:30 but 12:16:30 for /L %%J IN (0,1,9) DO wget http://undefined.net/1/0/%1/%10%%J.gif 12:16:31 for /L %%J IN (10,1,99) DO wget http://undefined.net/1/0/%1/%1%%J.gif 12:16:38 i revealed the webcomic here, too 12:16:45 not to me you didn't 12:16:55 for %1 (first param) being equal to 1 12:17:00 but hmm, makes sense, but rather repetitive 12:17:10 it gives http://undefined.net/1/0/1/100.gif 12:17:17 * ais523 vaguely wonders if Windows cmd does arithmetic yet 12:18:01 Curl can do the sequence bit independently, but probably couldn't quite do the hundreds-numbers. 12:18:12 I'd have done a bash arithmetic for-loop instead of seq, but that's just me. 12:18:51 fungot 12:18:51 asiekierka: that means there ain't no gettin' to him.). 12:18:52 ^style 12:18:53 Available: agora alice c64 ct darwin discworld europarl ff7* fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube 12:19:00 oh hey, my youtube style is still here 12:19:06 ^style youtube 12:19:07 Selected style: youtube (Some YouTube comments) 12:19:09 fungot: hello! 12:19:09 asiekierka: holly shit this game could've been one of the controls during the cold war. 12:19:20 fungot: and what was being controlled? 12:19:21 ais523: a website of one of those two were doin each other! lol, this aircraft crashed was because of the best stories with this 12:19:36 now all we need is for fungot to post these on appropriate videos 12:19:36 ais523: i'm still trying to slow the plain down. duke is still herself. gosh." 12:21:35 I should make a youtube comment parser and make it download all comments for a list of like 1000 videos 12:21:53 fizzie - would fungot lag at a style made with a 15-20MB text file? 12:21:54 asiekierka: he wasen't flying so slow with an iq over 50. full crew and 130 passengers, 6 crew members and officials were charged with man slaughter 12:25:37 No, it doesn't keep that stuff in memory. 12:26:07 ^style 12:26:07 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube* 12:26:14 large memory wouldn't cause lag anyway, would it, assuming it uses some sort of hash table for fungespace? 12:26:19 (and if it's running on cfunge, at least, it does) 12:27:29 The europarl sources are something like 80 megs, and the irclogs are reasonably huge too. 12:28:21 115M model.bin.europarl 187M model.bin.irc 12:29:21 (The model size is somewhat proportional to the amount of text data, given the same sort of settings and so on.) 12:29:56 ^style europarl 12:29:56 Selected style: europarl (European Parliament speeches during approx. 1996-2006) 12:30:03 (In other news, my fungot installation seems to take ~600 megabytes of disk space.) 12:30:04 fungot: welcome 12:30:06 fizzie: i would like to thank you for your kind words. i would also ask you to distinguish between three types of approach: strengthening the foundation for trust by the public in the field of human rights in the turkish-cypriot state than a turkish cypriot and a portuguese national, i would like to ask your attention for the victims of this religious policy: christians attached to churches which are not in salaried work, it wa 12:30:07 fizzie: mr president, ladies and gentlemen, on behalf of women and the many women whose children have been abducted to western fnord and there has been a considerable increase in the time of the last nominations. ladies and gentlemen, i am sure that the commission has presented two proposals for the reform of the employment strategy and provides for operations that are not clear and it must lead on to a discussion of the erika, 12:30:14 oh my 12:30:16 oooh my 12:30:34 That's strange, it sent both replies to me. 12:30:47 we clearly need to rescue these poor children from Western Fnord! 12:31:33 ^style 12:31:33 Available: agora alice c64 ct darwin discworld europarl* ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube 12:31:35 ^style irc 12:31:36 Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 12:31:40 Hello fungot! 12:31:41 asiekierka: that sounds a bit suspicious. scheme is a first." 12:33:17 Yes, "hello" sounds very suspicious. 12:33:31 Beware of ircers saying "hello". 12:33:32 -!- ais523 has quit (Remote host closed the connection). 12:43:39 oh i love YouTube's feed API 12:43:56 the tutorial to getting comments out: 12:44:08 1) grab the XML from http://gdata.youtube.com/feeds/api/videos/video ID/comments 12:44:17 2) go inside the 12:44:42 3) iterate through all the tags getting the data inside the tag 12:44:44 4) voila 12:44:54 i just love and adore XML now 13:17:41 fizzie: is there a way to use Sed to wipe any ASCII chars that aren't 32-127? 13:22:33 -!- Zuu has quit (Read error: Connection reset by peer). 13:23:33 It might be a bit sed-specific... piping through tr -cd ' -~' seems to work here. 13:24:07 fis@iris:~$ echo -e '\x10foo\x90bar' | hexdump -C 13:24:07 00000000 10 66 6f 6f 90 62 61 72 0a |.foo.bar.| 13:24:07 00000009 13:24:07 fis@iris:~$ echo -e '\x10foo\x90bar' | tr -cd ' -~' | hexdump -C 13:24:07 00000000 66 6f 6f 62 61 72 |foobar| 13:24:48 For some reason sed here doesn't like "[^ -~]" as a character range. 13:26:20 okay 13:26:25 i've made a set of cmd scripts and java classes 13:26:30 -!- Zuu has joined. 13:26:31 -!- Zuu has quit (Changing host). 13:26:31 -!- Zuu has joined. 13:26:37 to download youtube comments and parse them into a fungot-compatible format 13:26:38 asiekierka: society doesn't like people with too much time, with the second ( ( length primes) 1)... what would be the best in every metric. but all our programming was in 6th grade 13:30:04 oh my god 13:30:06 1 million comments 13:30:10 if you guess which video it is you win 13:31:03 -!- Zuu has quit (Read error: Connection reset by peer). 13:33:54 -!- Zuu has joined. 13:38:02 nyet! 13:38:06 this will require more scriptery 13:48:45 woot! 13:48:53 i am now downloading each and every comment on Justin Bieber - Baby 13:49:05 oh whee, it crashed 13:50:12 oh 13:50:20 youtube's API just won't let you get more than 1000 comments 13:50:32 that is still 200KB of data 13:58:55 fizzie 13:58:56 wake up 13:59:07 i already downloaded like 6 very popular YT films 13:59:17 524KB of YouTube comments and more coming 13:59:57 -!- ais523 has joined. 14:00:05 hello ais523 14:00:08 i just did the worst thing ever 14:00:44 no you didn't, I'm still alive and the Earth still exists 14:00:48 yes i did 14:00:49 i made an app 14:00:55 that batch-downloads YouTube comments 14:01:01 (up to 1000 from each video, YouTube API limitation) 14:01:09 and used it on most popular YT videos 14:01:12 that's not as bad as destroying the entire universe... 14:01:19 giving me currently 6000 comments of YouTube stupidity with more coming 14:01:32 in 520KB 14:07:30 -!- bsmntbombdood_ has joined. 14:08:11 15 video IDs 14:08:11 -!- bsmntbombdood has quit (Ping timeout: 240 seconds). 14:18:08 -!- sftp_ has joined. 14:18:16 -!- sftp has quit (Ping timeout: 265 seconds). 14:28:46 -!- alise has joined. 14:29:30 02:37:55 according to the comments, it's quite a bit slower than esotope ;; based on the author's post saying it's slower than a plain compiler 14:30:23 02:47:12 That JIT thing does [-], but on the other one everyone does that. 14:30:26 the other one WHAT? 14:30:59 The other one hand. I don't know. I must've been confusion. 14:31:14 (For example, I'm a bit away even now.) 14:32:17 03:42:56 meanwhile, esr is trying to prove to me over email that it's legal in the UK and US to relicense GPL code as BSD without permission from its author 14:32:22 refuse to help him if he does 14:32:28 problem solved 14:32:34 at least, it won't be /your/ problem any more 14:33:10 I don't /think/ he will 14:33:16 he still thinks it's a dick move even if it's legal 14:33:23 03:53:40 + it's optional, library is only for graphing, so the application works without it, may be treated as a plug-in ;; Stallman is insane enough that this won't help you if he gets angry 14:33:44 03:54:33 if so, it's a gray area but probably OK; it's in much the same area as the whole libreadline thing, which people still bitch about to this day on occasion 14:33:50 Stallman's lawyer agreed with him on that one 14:33:56 so I'd be very careful there 14:33:59 yep 14:34:02 of course, nowadays there's libedit :) 14:34:17 I think someone should put a server up somewhere which does libreadline over RPC 14:34:33 just, because 14:34:56 alise: anyway, the argument I just sent esr was "BSD stuff can be relicensed proprietary; therefore, if GPL can be relicensed BSD, then GPL can be relicensed proprietary by making a BSD version in between" 14:35:00 and he hasn't answered that yet 14:36:58 ais523: he's trying to comprehend the concept of "indirection" 14:37:01 it may take a while 14:37:27 I think someone should put a server up somewhere which does libreadline over RPC ;; ioctl over HTTP? :D 14:37:34 also, there's judicial precedent in the US that you can't relicense code under the Artistic License under a proprietary license that doesn't allow distribution 14:37:38 alise: it can send the syscalls back 14:38:04 also, readline needs ioclts? 14:38:07 *ioctls? 14:38:17 /curses/ doesn't need ioctls except to figure out the size of the screen 14:39:11 ais523: Sure it does, to uncook. 14:39:20 Unless it uses termios or whatever it is these days. 14:39:39 (Probably.) 14:39:53 also, readline needs to know the width of the screen 14:39:59 I suppose so 14:41:41 06:00:08 i just did the worst thing ever 14:41:41 06:00:44 no you didn't, I'm still alive and the Earth still exists 14:41:52 what if everything else but the earth was destroyed? 14:42:27 00:44:38 * coppro wants to write a BF compiler in sed 14:42:29 it's trivial 14:42:45 I think I wrote a Thue-to-sed interpreter in sed 14:42:56 (My patented today-yesterday-{start of today} log reading method!) 14:43:22 treating the "nondeterminism" as "unspecified" rather than "multithreaded" or "backtracking" or "random" 14:43:47 06:36:42 so 14:43:47 06:36:49 i'm drinking organic cola 14:43:47 06:36:56 and it's equally terrible as normal cola 14:43:47 make some OpenCola! 14:43:56 it's probably awful! 14:44:18 I should get around to making some Swig Ingest Drink, that was a nice recipe. 14:45:04 -!- dbc has joined. 14:56:42 fizzie - can you add in a new style in about 5 minutes? 14:56:59 and it'd be nice if you also had my old "youtube" style in original .txt form somewhere 14:57:08 i could combine them and get 2.5 megs of comments compared to just 2 megs 14:58:10 -!- derdon has joined. 15:17:46 -!- relet has quit (Quit: Leaving.). 15:22:50 asiekierka: do you know anything about freedos? 15:22:59 yes, i've used it 15:23:08 but i dont know about any specific features of it 15:23:31 -!- derdon has quit (Ping timeout: 265 seconds). 15:23:46 asiekierka: will it run a .COM that does nasty low-level tricks? to boot an operating system 15:23:58 eh 15:24:01 i'll just use a boot disk 15:24:15 alise: it might, but FreeDOS is much more picky about things 15:24:40 fff, bootdisk.com distributes as EXE 15:24:43 how irritating 15:25:20 there 15:25:22 got one 15:25:25 Hey, I've been irritated by that too. 15:25:53 fizzie: If it's so irritating, tell me THIS: How do I make a floppy disk image with a file in it on Linux? EH? 15:26:17 "Alternatively, Unix can copy COLOR.COM to a bootable floppy with cp or dd." 15:26:18 oh 15:26:19 There's that "Non-Windows Based Image Files W/ImageApp" bit on bootdisk.com though. 15:26:25 you could have told me it didn't need DOS earlier, Chuck. 15:26:33 fizzie: there's also http://www.allbootdisks.com/download/dos.html 15:27:01 -floppy COLOR.COM feels so weird 15:27:15 huh 15:27:17 there is no floppy 15:27:23 or spoon 15:27:23 Anyway, you make a floppy disk image with a file in it with dd'ing a suitably sized blob of zeroes, mkfs.msdos + loop-mount. For a bootable disk you'd have to do more work, though. 15:27:43 yeah but -floppy COLOR.COM should work in a sufficiently lax VM, right? 15:28:04 Probably, if it's boot-sector-friendly. 15:28:18 -!- cpressey has left (?). 15:28:35 fizzie: Hmph; do you know the QEMU switch to make it use regular VGA or whatever instead of the card it emulates? 15:29:20 It's "-vga type", but I'm not sure what's the right type. 15:29:34 "std: Standard VGA card with Bochs VBE extensions. If your guest OS supports the VESA 2.0 VBE extensions (e.g. Windows XP) and if you want to use high resolution modes (>= 1280x1024x16) then you should use this option." 15:29:35 std, I think. 15:29:37 That sounds good. 15:31:13 Many (or at least some) qemu flags can do things like "-M ?" which makes it list the available machines, but "-vga" doesn't seem to be one of those. 15:31:21 Gah, it is still the freezy. 15:31:36 To answer my own question, I have got my modified 800x600 colorForth to _run_ 15:31:36 under qemu-0.7.0. Won't boot 'cause the qemu emulated floppy interface is not 15:31:36 set up at fd chip level. Probably would work if the floppy I/O was BIOS based. 15:31:37 Dammit. 15:31:44 Instead, I have a bare DOS boot image with just io.sys, msdos.sys, command.com 15:31:45 and c4.com. Tell qemu to boot this floppy image and when it comes up to a DOS 15:31:45 command line, execute c4.com. This loads into memory and then copies 64k to 15:31:45 address 0 and runs colorForth, so the floppy I/O is never used. 15:31:46 Oh, goody. 15:32:16 fizzie: I don't have a mkfs.msdos... 15:32:30 Ot 15:32:36 It's in dosfstools. 15:33:05 * alise replaces FDISK with COLOR to avoid doing all that. 15:33:18 (In other news, I was about to say: "Ot\ns om dpsfstpps.") 15:33:23 Wat. 15:33:33 (In case you were wondering about the "Ot".) 15:33:36 -!- cpressey has joined. 15:33:44 colorForth boots! 15:33:48 Wonky QEMU scaling in effect! 15:33:57 Time to figure out this 27-key Dvorak system! 15:33:59 w00t 15:34:04 Why god why! 15:34:14 (Seriously; it uses these keys: http://colorforth.com/keys.html as Dvorak) 15:34:24 Apparently the entire right is digits and ?, the left is a bunch of punctuation, z and j 15:34:32 and I have ".com" and "a"; for what, I know not 15:34:33 Because Chuck Moore is a GOD. 15:34:49 "Mount a formatted floppy. Contents irrelevant." How, you fucker?! 15:35:12 Oh goody, left alt changes it into actual letters mode. 15:35:41 "2?" WHY DO YOU NOT RECOGNISE 2 15:36:11 Yay, dup does something. 15:36:29 Whoops, I loaded the editor and QEMU crashed. 15:36:31 This is trippy. 15:36:46 qemu: fatal: Trying to execute code outside RAM or ROM at 0x83672a33 15:37:20 That's a feature 15:38:43 "mount?" WHY ISN'T THAT THE WORD TO MOUNT WHY WHY WHY 15:38:52 Oh hell let's just assume it's mounted 15:38:53 save! 15:39:08 qemu's monitor (ctrl-alt-2 or some-such) can swap floppies. 15:39:18 YAY SAVE DOES SOMETHING 15:39:21 I THINK 15:39:34 NAMELY APPARENTLY CRASH THE SYSTEM 15:39:35 (Or "qemu -stdio", which is more convenient; then you can use the original terminal to fiddle with the monitor.) 15:40:34 Now I get to figure out the editor 15:40:53 "In case of difficulty" --colorForth website 15:41:21 [[The qwerty word 'save ' is an alias for the colorForth word (terminal space).]] 15:41:21 xD 15:42:03 So "oadf". 15:42:47 http://colorforth.com/user.htm Thank god, it has a manual 15:42:48 Sort of 15:43:06 "You cannot backspace characters (they've already been packed)." 15:43:09 I hate you. 15:43:35 Wow, colorForth is even more... Moorey than I thought. Thank you alise for guinea-pigging it. 15:44:06 cpressey: It's a window where you press keys and the wrong keys come out, and then you press space and it says "?". 15:44:11 Sometimes, it crashes. 15:44:56 I think this thing can't run without a proper floppy with it on. 15:46:00 meanwhile, esr is trying to prove to me over email that it's legal in the UK and US to relicense GPL code as BSD without permission from its author 15:46:01 Type 'hex '. 15:46:01 Displays 7 hexagons. Center one has color at top of screen (rgb: 888). One to left has less red, to right more red. To upper left less green, to lower right more. To lower left less blue, to upper right more. 15:46:07 THIS IS THE FIRST THING I UNDERSTAND ABOUT COLORFORTH 15:46:14 ... 15:46:17 HOW DO I EXIT THE EDITOR 15:46:54 haha 15:46:57 it lied about hex 15:47:00 just says "hex?" 15:47:20 haha woah 15:47:28 So... esr has taken up 18th-century haberdashery, I take it? 15:48:05 chuck moore is the most idiotic visionary ever 15:48:10 idiotic, genius visionary 15:48:15 he hates my guts 15:49:00 alise: Is this because I mentioned it last night...? 15:49:09 No, just the whole Forthy kick. 15:49:23 Turns out I'm a machine of Big Forth, not a Chuckist. 15:49:30 Or, at least, Medium-Sized Forth. 15:50:34 I don't think I can do Forth at all at this point. :/ 15:50:50 cpressey: Aww. 15:50:54 It's no fun unless it's on the metal, anyway. 15:51:03 Which is why I'm so, so tempted to make Alise's Wonderful Forth OS Yay. 15:51:49 14:41:17 .za is to South Africa as .ch is to Switzerland. 15:51:49 14:41:26 In that it's not actually short for any /official/ name. 15:51:53 Very incorrect, past-Gregor! 15:52:24 "Confœderatio Helvetica" is used as the neutral form of the name "[the] Swiss Confederation", due to its multilingualness! 15:52:41 Because nobody speaks Latin, so it's equally horrible for everyone. 15:55:07 -!- Phantom_Hoover has joined. 15:55:17 cpressey: Actually what I'm really irritated at now is just how bloated OSes are. 15:55:42 Oberon fits a full, self-compiling, graphical environment with a web browser on a floppy. Forth could probably fit quite a bit more. 15:56:11 -!- FireFly has joined. 15:59:06 Also, South Africa was once known as "Zuid-Afrika". 15:59:45 It just stopped being the official name when they acknowledged that Afrikaans had ceased to be mutually intelligible with Dutch. 16:01:34 And the CCTLDs come from ISO country codes. When these were set, it was still "Zuid-Afrika", rather than "Suid-Afrika". 16:02:08 pikhq: You said that at the time. 16:02:12 Well, in less detail. 16:02:17 And you didn't mention the ISO connection. 16:02:27 (So you thought it was just a weird archaicism.) 16:02:32 This was in March. 16:02:43 Ah, yes. Time ago. 16:03:06 * pikhq should head out 16:06:00 time ago 16:06:04 in a galaxy away 16:12:19 17:57:45 ''=~('('.'?'.'{'.('`'|'%').('['^'-').('`'|'!').('`'|',').'"'.('`'^'%').('{'^'"').('`'^'%').('{'^'[').('`'^'$').('{'^')').('`'^'/').('{'^'+').('{'^'(').'"'.'}'.')') 16:12:20 i see 16:13:22 What lang? 16:15:37 fizzie come back here, please 16:15:52 asiekierka, where did he go? 16:15:55 idk 16:16:07 i'm just not on when fizzie is talking 16:16:08 for some reason 16:22:24 I was eatinging. 16:24:53 cpressey: JForth 16:24:54 Oh the pain 16:24:59 That is, J+Forth. 16:25:08 -!- relet has joined. 16:25:16 It's low-level, stack based, and all single characters! Wait, that's FALSE. 16:33:05 12:30:34 fax: maybe you shouldn't have mentioned your win by paradox in philosophy? bah, humbug :) don't have that 16:33:05 alise: maybe i should put lisp-poetry in fnord furniture too much or you'll crack) has in ( mz)scheme? 16:33:11 well, it does have some philosophical issues... 16:37:39 -!- MigoMipo has joined. 16:41:00 fax was here? 16:47:15 -!- BeholdMyGlory has joined. 16:49:54 -!- sshc_ has joined. 16:52:34 -!- sshc has quit (Ping timeout: 252 seconds). 16:56:57 -!- kar8nga has joined. 17:03:04 Phantom_Hoover: in march 17:03:19 alise, oh. 17:03:36 S?he was in #epigram a while ago, but not any more. 17:04:04 "it" 17:05:39 (S?he)|It, then. 17:05:47 er, (It) 17:05:49 J+Forth? 17:06:36 J&Forth? 17:07:19 Weh, fax was here? Or are you looking at really old logs, alise? 17:07:28 cpressey, really old logs. 17:07:37 Weh. 17:07:39 When did fax storm off, again? 17:08:05 April/May-ish I think. 17:08:37 Or, if I were to believe what was just said 17:08:44 Did (s?he)|(it) ever return after blockening. 17:08:48 s/./?/ 17:10:37 n 17:10:38 no 17:10:40 she was banned 17:10:42 she is band 17:10:44 banned 17:10:48 Oh? 17:10:50 -!- augur has quit (Remote host closed the connection). 17:11:08 I thought oerjan unbanned (h(im)|(er))|(it)? 17:15:17 no 17:18:41 Huh. 17:19:14 Wait, is this the time s?he was banned for flooding the channel with "FUCK YOU"? 17:22:28 -!- kar8nga has quit (Remote host closed the connection). 17:23:23 fungot: Watch the steam coming off my head. 17:23:23 cpressey: many people prefer to avoid it whenever possible. " formal language", maybe. 17:23:33 Yeah. Maybe. 17:26:03 In general, if there's steam coming off someone, I'd probably prefer to avoid it too. 17:26:04 -!- sebbu2 has joined. 17:26:10 -!- roblo has joined. 17:26:21 hi 17:27:31 do you speak fr? 17:28:07 PUTAIN DE MERDE YA QUELQUN QUI VA REPONDRE!!! 17:28:43 ya meme pas un bot!!! 17:29:12 jai trouv ce chan sur wikipedia 17:29:36 Parle not Frenche. 17:30:14 okay 17:30:28 how are you 17:30:53 can you help me for brainfuck 17:31:23 I look for an interpreter in real time 17:31:46 for the input 17:31:54 an interactive one? 17:32:11 yes 17:32:43 for he can look my keybord 17:32:51 everytime 17:33:01 http://people.fishpool.fi/~setok/proj/tclbf/ < like this? 17:33:30 -!- augur has joined. 17:34:17 -!- cal153 has quit (Ping timeout: 245 seconds). 17:34:53 not exactely 17:34:56 Do you want , to wait until keypress or what? 17:35:41 Ooh, the BBC made a radio serial of Foundation. 17:35:59 I want he knows when I press a key 17:36:21 Phantom_Hoover: Asimov's, or something else? It's the sort of generic word I expect others have used too. 17:36:41 fizzie, Asimov's is the only one I would use unqualified. 17:37:56 roblo: so unbuffered? 17:38:01 take a c interp 17:38:03 put termios code in 17:38:03 done 17:38:07 * alise helpful 17:38:31 Alise a bit unportable, too. 17:40:33 ok thanks bye 17:40:35 I don't recall offhand an unbuffered sort of implementation, but possibly environments where line-buffering isn't so prevalent might have some. 17:40:58 -!- roblo has quit. 17:41:28 erm 17:41:41 who's relet? 17:41:54 not me. 17:42:20 ah, okay 17:53:26 -!- oerjan has joined. 17:55:05 09:11:08 I thought oerjan unbanned (h(im)|(er))|(it)? 17:55:05 09:15:17 no 17:55:07 yes 17:55:20 alise, told you so. 17:55:46 -!- sftp_ has quit (Ping timeout: 276 seconds). 17:59:32 who 17:59:40 fax 17:59:46 -!- sftp_ has joined. 17:59:54 who is it? 18:00:14 aka soupdragon 18:01:21 AKA total nutcase 18:02:13 (h(im)|(er))|(it) makes no sense anyway; | binds less tight than concatenation, so (assuming that the beginning and end are implicitly tied) that matches "him", "er" or "it", with lots of unnecessary grouped submatches. (At least in common regex syntaxes.) 18:03:16 Just say h(im|er)|it, or h(?:im|er)|it if you want to use the common non-capturing group thing. 18:04:11 Very well. 18:04:14 -!- cal153 has joined. 18:04:25 The 153rd cal! 18:04:53 the 152nd was better 18:09:59 Yeah. 18:27:29 -!- augur has quit (Ping timeout: 240 seconds). 18:35:38 alise, you know how you said that there was a Coq proof of Gödel's first incompleteness theorem? 18:37:40 Where is it? 18:40:07 -!- oerjan has quit (Quit: You can only prove it exists if it doesn't). 18:49:03 -!- nooga has quit (Ping timeout: 260 seconds). 18:59:17 -!- madbrain2 has joined. 18:59:38 It's the second mad brain! 19:02:57 It's the Hoover'th Phantom. 19:04:37 No, I'm the only phantom hoover. 19:05:01 Honestly, don't you know about hoover metaphysics? 19:05:54 more like pigeon hole problem :D 19:08:50 -!- augur has joined. 19:25:15 -!- derdon has joined. 19:37:38 alise, you know how you said that there was a Coq proof of Gödel's first incompleteness theorem? 19:37:41 i'll find it 19:37:58 alise: Yes, Forth is only really fun when it's on the bare metal (or a reasonable approximation thereof). And if I'm going to code for that environment, I might as well code in assembly, most of the time. 19:37:59 Phantom_Hoover: http://r6.ca/Goedel/goedel1.html 19:38:07 cpressey: But assembly is crap. 19:38:09 Forth is wonderful. 19:38:24 alise, well, assembly is tolerable enough. 19:38:26 A computer verified proof of Gödel’s incompleteness theorem is not new. In 1986 Shankar created a proof of the incompleteness of Z2, hereditarily finite set theory, in the Boyer-Moore theorem prover. My work is the first computer verified proof of the essential incompleteness of arithmetic. Harrison recently completed a proof in HOL Light of the essential incompleteness of Σ1-complete theories, but has not shown that any particular theory is Σ1-comple 19:38:26 te. His work will be included in the next release of HOL Light. 19:39:23 Phantom_Hoover: Indeed, his work could even print out the unprovable statement, but it is huge (and would require a slight movement from Prop to Set). 19:39:30 So that's pointless. 19:39:31 alise: Well, depends on the arch, I suppose. 6502 > Z80 > Forth > 68000, maybe. 19:39:47 cpressey: Duuude, no way. 19:39:51 Actually, I don't know about Z80. Never got into it much. 19:39:55 You can't turn 6502 into the perfect language. 19:40:05 It's at the lowest level and stays there. 19:40:18 You don't *want* to turn 6502 into the perfect language. You want to write mad raster effects in it :) 19:41:04 -!- kar8nga has joined. 19:41:50 alise, the important thing is that I know Coq, and I don't know the Boyer-Moore theorem prover. 19:42:06 I was merely quoting from the page. 19:42:54 And if I want a language to turn into the perfect language, give me Scheme! And not on bare metal, preferably! :) (I'm not entirely serious about any of this. I may yet pick up Forth in seriousness some day.) 19:43:36 cpressey: Scheme is so limited in that respect compared to Forth, though! And Scheme code is so big. 19:43:42 Hmmm. Schorth? 19:43:46 Besides, Scheme relies on other systems below it, a runtime etc. 19:43:51 Forth is entirely self-reliant. 19:43:54 Like an adult's language! 19:43:58 How do I stop Emacs from creating those irritating #backups# when I tell it to quit without saving a file? 19:44:23 Phantom_Hoover: http://amitp.blogspot.com/2007/03/emacs-move-autosave-and-backup-files.html 19:44:30 copy the code for GNU Emacs into your .emacs 19:44:35 this will also move foo~ files elsewhere 19:44:43 and #foo# will still exist, but moved out of the way 19:44:57 But I don't want #foo# at all! 19:45:04 Phantom_Hoover: it just goes into /tmp, dude 19:45:09 they're useful for recovering files you lose 19:45:10 Not for me. 19:45:17 Phantom_Hoover: ... 19:45:19 THE CODE makes them do that 19:45:23 Copy the code from that blog post. 19:45:24 Ah.. 19:45:27 And they will go into /tmp. 19:45:40 Incidentally, the author of that proof, Russell O'Connor, has a great blog: http://r6.ca/blog/ 19:45:44 Very interesting posts. 19:46:00 So that's pointless. <-- wait, why? It would be kind of fun to have a laser etch it into a rock face somewhere in the Canadian shield, so that when the cockroaches eventually develop sophisticated mathematics... 19:46:23 cpressey: Because it's so big, it would never finish printing. 19:46:51 Bah. Oh right, Goedel encoding uses powers.\ 19:47:44 ColorForth makes me weep. 19:48:04 Huh, RetroForth's homepage is hosted on TUNES. 19:48:09 Just like our logs! Buddies! 19:48:19 on the subject of Emacs autobackups, I send them to a different directory 19:48:23 They share our log URLs! 19:48:26 alise: colorForth comes from a guy who proposed a one-handed, five-switch input device, iirc. 19:48:26 (but with retro instead, ofc) 19:48:39 and the reason is to recover from an accidental rm * 19:48:39 ais523: yeah, the blog post I linked has code for GNU Emacs and XEmacs to do that 19:48:50 cpressey: actually, /those/ are a good idea 19:48:57 although you generally want more than five switches 19:49:02 (multiple directions of pushing for each finger) 19:49:08 keyboards are an ergonomic disaster, we're just used to them. 19:49:24 alise: it depends on what you're using them for, really 19:49:24 Anyway, colorForth is awesome, I just can't use it. 19:49:34 Oh, but 5 is enough for 32 signals, which is, hell, MORE THAN YOU NEED (seems to be the Moorian logic.) 19:49:43 Cording keyers are awesome. 19:49:52 I think Moore did something horrible to cpressey. 19:50:00 No, no, I quite like him. 19:50:01 pikhq: *chording? 19:50:02 pikhq: with two hands you can actually have no chording 19:50:05 ais523: Yes. 19:50:07 since you have five buttons per hand 19:50:12 flick up, down, left, right, and press down 19:50:22 there's a device which does this, very expensive but very popular with everyone who uses it 19:50:26 fits on to your chair, your hand nests in it 19:50:26 alise: Yeah, but with one hand you can type with one hand. 19:50:28 has a built-in mouse too 19:50:59 pikhq: Someone's probably marketed a one-hand keyboard directly: "the Masturboard!" 19:51:01 And, yeah: traditional keyboards are an absolute ergonomic *nightmare*. 19:51:14 http://s3.retroforth.org/index.html Hey look, it's the site for classic RetroForth. 19:51:18 That's more like it. 19:51:29 Coming about soly because of the needs for traditional typewriters. 19:51:34 Much like QWERTY. 19:51:35 I think. 19:51:53 "Running on a virtual machine..." sigh. 19:52:15 sandbox 19:52:44 * cpressey swats his Windows manager 19:52:47 cpressey: Yes, well, it's closer to real Forth than gforth. 19:52:57 Since with gforth @ and ! are extremely limited, obviously. 19:53:02 -!- augur has quit (Remote host closed the connection). 19:53:24 btw, fun slightly-insane colorForth fan: http://colorforthray.info/ 19:53:31 -!- augur has joined. 19:53:32 Gene Ray, colorForth Ray... 19:54:11 colorForth: the official language of eye strain. 19:54:41 cpressey: colorForth: the official language of optometrists 19:54:41 Other problem: 19:55:07 I just realised something... I bet LoseThos works in QEMU. 19:55:09 I don't have a good reason to learn & use Forth *instead of* creating my own vaguely Forth-esque language and using that. 19:55:11 >:) 19:55:23 cpressey: Well, uh, the first step to using Forth is quite often "implement Forth". 19:55:41 -!- augur has quit (Remote host closed the connection). 19:55:49 Indeed, that would be both my problem and my solution. 19:56:12 -!- augur has joined. 19:56:38 cpressey: You know that colorForth does not actually require poor color choices, right? 19:56:49 [ehird@dinky losethos]$ qemu-system-x86_64 -cdrom LTCD.ISO 19:56:50 [boot crash boot crash boot crash boot crash] 19:56:51 I think it hates me. 19:57:00 It merely requires *some* visual distinction. Underlining, italics, strobe-lighting, etc. 19:57:14 Okay, what insane thing does LoseThos do... 19:57:26 Nope, -vga std doesn't help. 19:57:28 pikhq: Well, if I want my colorForth code to be understandable by others -- aren't the default colors the standard convention for interchange? 19:57:28 Or just two fonts. 19:57:42 cpressey: That's called "syntax highlighting". 19:57:47 cpressey: Pretty much 19:57:50 But it's also dependent on the OS 19:57:53 And who the hell would use the OS? 19:58:46 pikhq: So what you're saying is that the VERY NAME OF THE LANGUAGE IS A LIE. 19:59:01 Yes. 19:59:08 "visualDistinctionForth" 19:59:27 Let's talk about something funner. 19:59:36 Anyone wanna help me figure out why LoseThos doesn't work in QEMU? 19:59:47 alise: Wait, what? This is hilarious. But OK, I have to go to a meeting now anyway... 19:59:49 -!- olsner has quit (Quit: Leaving). 19:59:55 cpressey: Funner, not funnier. :P 20:00:00 -m megs set virtual RAM size to megs MB [default=128] 20:00:01 Aha! 20:00:03 Clearly it needs 4 gigs. 20:00:29 -m 2048 makes it boot more, but now it won't do anything. 20:00:48 Uh, LoseThos? Helloooo? 20:01:44 [[The name, "LoseThos", was inspired by the scene in the movie, Platoon, where 20:01:44 Elias says to Chris, "S**tcan this and this...", referring to dorky standard 20:01:44 issue equipment.]] 20:01:49 Sense making of this: none. 20:02:36 OMG IT'S BOOTING 20:02:40 qemu-system-x86_64 -m 512 -cdrom LTCD.ISO 20:02:40 fwiw 20:02:54 pikhq: ais523: I have LoseThos running in a window right now. 20:02:59 Wow, the titles really do scroll constantly. 20:03:01 Of every window. 20:03:35 Holy shit. 20:03:38 So many things are blinking and scrolling. 20:03:44 I have a headache. 20:04:23 Is the mouse cursor meant to be this slow? Who knows? 20:04:51 LOL 20:04:55 it uses #include to run files from the shell 20:05:30 alise: stop taking drugs 20:06:23 augur: i'm not 20:06:25 I'm taking LOSETHOS 20:06:33 which is EVEN BETTER 20:07:10 o mai 20:07:24 it's truly beautiful 20:07:32 i mocked it from a distance 20:07:32 but here 20:07:33 oh my 20:07:47 it's like being touched by jesus 20:08:52 I haven't been touched by Jesus lately. 20:08:58 Remind me what it's like. 20:09:04 like using LoseThos 20:09:38 The New Testament could be made much more entertaining. 20:10:20 needs more whores 20:10:46 How's Magdalene? 20:11:50 MISUSING BIBLICAL NAMES 20:12:37 I can't remember what LoseThos is 20:12:42 although I think i knew once 20:12:45 *I 20:12:56 It seems to be what you get when you take the OS out of an OS. 20:13:04 ais523: the crazy 640x480x4 64-bit operating system 20:13:21 that's an...unusual juxtaposition 20:13:26 with the loony author who spammed bizarre Christian stuff on reddit 20:13:30 alise, 640x480x4? 20:13:32 like how he talked to god using his random-word outputter 20:13:33 and stuff 20:13:33 although I am used to 640x480x4, it's what I grew up in 20:13:35 Phantom_Hoover: yes, 16 colours 20:13:36 *with 20:13:46 ais523: it's well-known for being laughed at. 20:13:47 Ah, screen things. 20:13:51 And my GOD it FLASHES. 20:13:56 Every window name scrolls across the itle bar, constantly. 20:14:00 "MENU" flashes, constantly. 20:14:05 Every cursor in every window flashes constantly. 20:14:09 Minimised windows appear to flash constantly. 20:14:17 Woo, I crashed it. 20:14:18 I take it it isn't just using alternate-frame dithering to get more colors? 20:14:27 ais523: it DOESN'T get more colours 20:14:30 happy australian mailman reminders day! 20:14:30 but no, it isn't 20:14:33 it's legitimately flashing 20:14:38 My god, we HAVE to port that battleships game to it! 20:14:45 Phantom_Hoover: ? 20:15:04 alise, don't you remember? 20:15:05 ais523: right now i'm just trying to get it to install, which is difficult as it wants a partition 20:15:15 oh, here we go 20:15:19 the auto-partitioner appears to be working 20:15:21 That 300K C++ file which ostensibly implemented Battleships? 20:15:28 although it creates 3 identical losethos partitioners, for some bizarre reason 20:15:31 Phantom_Hoover: oh yes, that thing 20:15:33 *partitions 20:15:42 We MUST PORT IT. 20:15:46 ok... you've done that part... display the next part of the installer please now losethos 20:15:48 Phantom_Hoover: what did it /actually/ implement? 20:15:55 also, how much of that 300K was encoded binary? 20:16:04 ais523, some weird game that intersected somewhat with Battleships. 20:16:28 wow, there's an XcolorForth, for X11 20:16:31 It implemented all games of Battleships in which Player 1 wins and no illegal moves are attempted. 20:16:47 what if player 1 lost? 20:16:58 It still said they won. 20:17:32 When I compiled it, I felt god himself stare upon me. 20:17:55 And playing it is also like being touched by Jesus. 20:18:05 So if we play it on LoseThos.... 20:19:44 I SHALL BE AS UNTO A GOD MWAHAHAHAHAHAHAHAHA 20:21:20 Actually, not only was that Battleships game only ostensibly Battleships, it was only ostensibly C++. 20:21:45 It is literally entirely C. 20:22:21 And C without arrays, at that. 20:22:28 Or loops. Or conditionals. 20:23:23 Yay, LoseThos is actually formatting. 20:23:36 Anyone want to golf a TCP/IP stack? 20:23:48 I am going to install this and try to compile that game. 20:24:24 Wait, no. 20:24:26 It failed. 20:24:33 Phantom_Hoover: It has a VMWare install mode that should work with VMWare. 20:24:37 With QEMU, pain. 20:24:48 That's it, I'm going to partition with fdisk 20:25:51 But it has no networking! 20:26:20 And? 20:26:35 You won't be able to report back on your experiences! 20:26:48 It'd be so Lovecraftian! 20:26:57 ^style lovecraft 20:26:58 Selected style: lovecraft (H. P. Lovecraft's writings) 20:27:03 fungot, comment. 20:27:04 Phantom_Hoover: published july 1922 in home brew vol. 1, no. 5, p. fnord. 20:27:07 fungot, comment. 20:27:08 Phantom_Hoover: lake called me later to say that the fairly round moon was " about a foot square, which must not be fancied that inspector legrasse had the least interest in fnord charlatanry, fnord, and for this honor kalos and musides. from lydia to fnord the speaker. 20:27:26 Lovecraft does not fungot well. 20:27:27 Phantom_Hoover: when fnord the events of that horrible good friday of the previous year. 20:27:44 Or should that be "fungot does not Lovecraft well". 20:27:44 Phantom_Hoover: written sep 1922 i lived a very normal life of work and recreation. there 20:29:36 Bloody non-kvm computer... 20:29:44 YES 20:29:46 IT IS INSTALLING!!!!! 20:29:51 Phantom_Hoover: I don't have kvm either. 20:29:52 Holy crap, this guy is 40. 20:29:57 O.o 20:29:58 And crazy. 20:30:05 He thinks he talks to God with his program that outputs random words. 20:30:13 Phantom_Hoover: Do you want to know how to install it with QEMU? 20:30:15 Crazy, or INSPIRED. 20:30:18 I can give you complete instructions. 20:30:25 (It's not easy if you don't know how.) 20:30:30 alise, I assume it requires 64-bit virtualisation in software. 20:30:37 Just install QEMU. 20:30:41 On the part of qemu. 20:30:47 Yes; it's fast enough. 20:30:51 But it's more than that. 20:30:56 That's not the installation process. 20:31:01 O god 20:31:29 -!- madbrain2 has quit (Ping timeout: 240 seconds). 20:32:06 Wow, his voice is weird. 20:32:16 He sounds like he's about to cry. 20:32:58 I find the ".CPZ" extension foreboding... 20:33:05 It's his mega-super C-alike. 20:33:19 Oh, double god. 20:33:35 It's us, but without the nice language. 20:33:44 Or good OS design. 20:33:45 Or anything. 20:33:50 NEVER FORGET THIS 20:34:25 But what if you want your programs to screw around with the contents of 0x0? Inferior OSes lack this feature! 20:35:32 Phantom_Hoover: http://pastie.org/1129702.txt?key=q8chaljltwsiclmbchw3cq 20:35:38 Phantom_Hoover: How to install and run LoseThos using QEMU. 20:36:00 The mouse is so slow it isn't funny. 20:36:29 void *i = NULL;while(*i++=*NULL); 20:36:38 pikhq: Aaaargh 20:36:52 Phantom_Hoover: Pah, colorForth can do that! 20:36:54 1234 0 ! 20:37:48 It's not an inferior OS! 20:37:58 InferiOS 20:38:06 Yes! 20:38:18 Memory protection is for those who need malloc. 20:39:35 -!- augur has quit (Remote host closed the connection). 20:40:01 -!- augur has joined. 20:40:07 I'm pretty sure LoseThos has malloc. 20:40:14 With a single heap, mind. 20:40:58 It's probably MemAlloc or something. 20:41:22 I'm surprised the guy actually managed to code something this, you know, "polished". 20:41:28 Oh, look, I ended up in the debugger. 20:41:36 It is the best debugger ever. 20:41:37 It doesn't randomly crash or anything, it has a ton of formatted debugging output, it has an automatic installer... 20:41:42 Phantom_Hoover: Did you follow my instructions? 20:41:45 Or is this post-install? 20:41:51 Installing. 20:41:54 "You can adjust the mouse movement rate" YES PLEASE 20:41:59 I followed them, as far as I know. 20:42:00 Phantom_Hoover: Follow my instructions and don't do anything else, and it'll work fine. 20:42:04 Eh. 20:42:05 Try again. 20:42:11 The HD selection part is a bit difficult. Pay attention there. 20:42:16 I ran into problems with it. 20:42:25 YES I GOT RID OF WORDSTAT 20:42:28 Worst completion system ever 20:42:47 "Adjust these to set mouse move scale" yes plz ^_^ 20:44:45 Phantom_Hoover: this is the most amazing thing ever 20:44:53 it's like i finally understand life 20:44:59 It would be, if it would install. 20:45:08 Evidently only the worthy may do so. 20:45:17 Phantom_Hoover: did you do my fdisk stuff properly? 20:45:35 Why did you have to type the 'n'? 20:45:46 ... 20:45:49 Was there a y/n prompt? 20:45:50 To create a new partition. 20:45:54 It's the command do. 20:45:55 *to. 20:46:14 Ah. 20:46:39 'n': You must set cylinders. 20:46:39 You can do this from the extra functions menu. 20:47:01 You are using Linux, right? 20:47:08 Yes. 20:47:15 Phantom_Hoover: OK, wait. 20:47:24 Do the dd thing again, then run fdisk hd and tell me what it outputs. 20:47:31 My fdisk might be different to yours. 20:47:59 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 20:47:59 Building a new DOS disklabel with disk identifier 0xc009eb3c. 20:47:59 Changes will remain in memory only, until you decide to write them. 20:47:59 After that, of course, the previous content won't be recoverable. 20:47:59 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 20:47:59 You must set cylinders. 20:48:01 You can do this from the extra functions menu. 20:48:04 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to 20:48:06 switch off the mode (command 'c') and change display units to 20:48:08 sectors (command 'u'). 20:48:09 Command (m for help): 20:48:12 Oops. I should really have pastebinned that. 20:48:18 That's ok, that's absolutely fine. 20:48:22 Just "n". 20:48:26 Well, and then enter. 20:48:37 Then press enter until you're back at the Command prompt. 20:48:37 Yes, then it complains about cylinders. 20:48:42 Phantom_Hoover: Howso? 20:48:44 What does it say? 20:49:04 Trying again with a fresh blankness. 20:49:17 You must set cylinders. 20:49:17 You can do this from the extra functions menu. 20:49:28 Okay, press "c". 20:49:30 Then try n again. 20:50:34 DOS Compatibility flag is not set 20:50:40 Does n work? 20:51:21 Np. 20:51:24 s/p/o/ 20:51:39 Hmm. 20:51:45 Phantom_Hoover: How about I give you my fdisk binary? :P 20:51:52 You're on 64-bit, yes? 20:51:54 Yes. 20:52:11 Uploading. 20:52:16 LoseThos is well worth it, btw. 20:52:20 Phantom_Hoover: http://filebin.ca/ztskmb/fdisk 20:52:34 FWIW, fdisk -v gives fdisk (util-linux-ng 2.17.2) 20:53:03 fdisk (util-linux-ng 2.18) 20:53:07 Mine's less sucky. Ha. 20:53:11 The binary should work. 20:54:05 Wowww using this thing is such a crapshoot. 20:54:44 Now it requires me to press either e or p. 20:54:48 Eh? 20:54:50 What does it say? 20:56:06 Command action 20:56:07 e extended 20:56:07 p primary partition (1-4) 20:56:10 p 20:56:13 I forgot that in my guide. 20:56:43 Which one, then? 20:56:45 http://pastie.org/1129751.txt?key=sia4cjdcp4hkckxdpnaa Guide with p in it. 20:56:46 Phantom_Hoover: p 20:56:47 as I Said 20:56:48 *said 20:57:06 Oh, I thought that was :p. 20:57:23 Wow, apparently I have multiple accounts now. 20:57:26 What did I do... 20:57:36 Well, it works! 20:58:05 This is physically painful to use. 20:58:51 The pain is but a prelude to enlightenment. 21:01:24 Oh, he doesn't like non-monospaced fonts. 21:01:34 oklo would like him. 21:02:58 oklo is insane but in a nice way 21:03:00 this guy is just insane. 21:04:37 Jeez, one meeting and the scrollback size doubles. 21:04:51 -!- yorick has quit (Read error: Operation timed out). 21:05:24 alise, where's the talking to god stuff? 21:05:39 And I was doing something vaguely productive before you mentioned this. 21:05:45 I hope you're happy. 21:06:05 "* 64-bit compiler/assembler. Nothing is "interpreted."" 21:06:17 ...so how does the shell...? 21:06:55 Compiles it. 21:06:59 Like SBCL, only crazy. 21:07:03 O.o 21:07:08 http://www.reddit.com/user/losethos 21:07:12 dunno where the God program is 21:07:12 aw what 21:07:15 he might have got banned 21:07:17 MAJOR BUMMER 21:07:56 http://forum.osdev.org/viewtopic.php?f=11&t=18636 ← ahahaha. 21:08:35 ld: i386 architecture of input file `color.o' is incompatible with i386:x86-64 output 21:08:37 i386:x86-64 21:08:40 worst binary format EVER 21:09:07 But some of his insanity touches slightly on our insanity... 21:09:55 Like everything running in ring 0, and the JITing, and the 64-bitness. 21:10:06 Yeah -- I bet he likes food, and breathing too. 21:10:21 But that doesn't mean those things are bad. He woefully misapplies all the things you listed. 21:10:24 -!- ais523 has quit (Remote host closed the connection). 21:10:32 Indeed. 21:10:32 Wait, so, the shell is this CPZ language, and what you enter is compiled? 21:10:39 cpressey: Yes. 21:10:45 Like Forth, only insane. 21:10:47 This is the dark side of insane computing. 21:10:51 Wonderfully insane. 21:10:52 Or, indeed, SBCL. 21:10:57 cpressey, no, that's us. 21:11:25 OK, insane but in a non-wonderful fashion. 21:11:53 I dunno, someone who intentionally designs a GUI with constant blinking. 21:12:08 Probably has his ocular nerves wired up in a special way. 21:12:27 Sounds pretty wonderful to me, for some value of wonderful. 21:12:38 My god, his OSDev stuff is fun. 21:14:16 I need to add a "crackpot" tag to my site and put the LoseThos and Laws of Form links under it. 21:15:11 Laws of Form 21:15:13 -!- yorick has joined. 21:15:14 ? 21:15:34 -!- alise has quit (Read error: Connection reset by peer). 21:15:40 -!- yorick has changed nick to Guest4213. 21:15:54 Phantom_Hoover: Yeah, you know. Laws of Form. 21:16:03 -!- Guest4213 has quit (Changing host). 21:16:04 -!- Guest4213 has joined. 21:16:06 O god, alise has been taken by LoseThos. 21:16:30 -!- alise has joined. 21:16:33 HOLY SHIT 21:16:40 One system crash just OBLITERATED my /usr/share/man/man3. 21:16:42 It is not there any more. 21:16:50 3 is stdlib? 21:16:54 Ouch. 21:16:54 Yes. 21:17:01 /lost+found is now very well-populated. 21:17:02 How the hell did that happen? 21:17:04 -!- Guest4213 has changed nick to yorick. 21:17:16 I don't know; this program must have a destroy_all_files() function somewhere! 21:17:21 Installing a man package when crash came? 21:17:21 (I ran it as root.) 21:17:23 I am LoseThos. Fear me! I shall eat your stdlib manpages. 21:17:27 Nope. 21:17:30 MWAHAHAH 21:17:36 cpressey: Oh dear God. 21:18:00 OK, Laws of Form looks completely mad. 21:18:07 And yet Wikipedia does not say this. 21:18:14 Effing NPOV. 21:18:48 he claims to have proved several things 21:18:51 such as 4ct, riemann 21:18:57 and also that the computer proof of 4ct is wrong 21:18:58 he's, uh 21:18:59 a kook. 21:19:09 Maths kooks are the worst. 21:19:39 ... oh dear; something appears to have forgotten that I disabled that god damn PC speaker. 21:19:52 alise: I want to categorize it and LoseThose under "kook", except to add a "kook" tag to my site, I should really have at least one "kook" project of my own. Maybe N'DCNC. 21:20:05 *LoseThos :P 21:20:07 cpressey, N'DCNC? 21:20:07 N'DCNC? 21:20:38 'Twas my entry for the Essies one year, when that contest was still a-running. 21:21:15 The National Do Call, Nocturnally Call registry. 21:21:16 lrwxrwxrwx 1 root root 18 Aug 10 11:49 I465196.RCN -> CMS_get0_type.3.gz 21:21:18 Haha... 21:21:32 -!- Wamanuz2 has joined. 21:21:34 man displays these pages. 21:21:39 Really creepy. 21:22:56 The power of this one program, however, suggests something awesome. 21:23:02 What's in them? 21:23:05 What program is this? 21:23:15 We could make a hosted-in-Linux bootloader, like LOADLIN in the days of yore (DOS program that booted Linux). 21:23:20 Is this "man" in LoseThos? 21:23:25 Phantom_Hoover: The program is a random program that, when ran as root, crashed my system. 21:23:26 cpressey: No. 21:23:29 This is my local man. 21:23:40 It displays the files in /lost+found, which once were in /usr/share/man/man3. 21:23:44 Now they have lost their dignity and filenames. 21:23:51 Which random program? 21:24:06 XcolorForth; it's meant to run colorForth from Linux. 21:24:14 I guess it really hates 64-bit machines. 21:24:34 -!- Wamanuz has quit (Ping timeout: 276 seconds). 21:25:24 Dude. 21:25:32 ... wait, n/m. 21:25:48 Wow, the WP article on the Laws of Form seems to be biased crap. 21:26:14 cpressey: wat 21:26:16 "Ostensibly a work of formal mathematics and philosophy, LoF became something of a cult classic, praised in the Whole Earth Catalog. Those who agree point to LoF as embodying an enigmatic "mathematics of consciousness," its algebraic symbolism capturing an (perhaps even the) implicit root of cognition: the ability to distinguish. LoF argues that the pa (primary algebra) reveals striking connections among log 21:26:17 ic, Boolean algebra, and arithmetic, and the philosophy of language and mind." 21:27:04 alise: Was going to say some crap about writing my own OS in Forth. Really, just crap though. 21:27:12 cpressey: No, no, do say. 21:27:43 I wonder if a working TCP/IP stack can be stuffed into less than a page of Forth. I bet yes. 21:27:55 -!- myndzi\ has joined. 21:28:33 alise, cpressey, can one of you please look at WP's article on LoF and tell me if it's completely nuts. 21:29:02 1 Write own Forthoid in Forth 2 Write kernel in Forthoid 3 Write VM for Forthoid in Forthoid to support virtualization? 21:29:05 It's nuts, but nobody intelligent cares enough to critique it, so you can't really make it more neutral without just cutting out parts of the article, which the fans will counter as bias. 21:29:12 cpressey: lawl 21:29:20 cpressey: You do realise 90% of writing Forth is extending it to become a Forthoid? 21:29:31 alise: I've seen a TCP/IP stack in a few screens of colorForth... somewhere. 21:29:41 alise: Yes, of course. You do remember I said "crap"? 21:29:49 I mean, words are powerful; defining one can be defining a whole new language feature. And with their ability to read the input stream and whatnot, they can literally be that. 21:29:53 cpressey: True :P 21:30:29 My plan would basically be: 1. Write a Forth base in assembly. 2. Write the rest of the Forth in Forth. 3. Write drivers. 4. Write an interface. 21:30:41 Which isn't the most exciting plan, but it'd definitely be fun. 21:30:59 MenuetOS can go suck my Forth. 21:31:04 -!- myndzi has quit (Ping timeout: 276 seconds). 21:31:09 (Actually, I'm incredibly envious of the MenuetOS author. Takes skill.) 21:31:21 You could argue that it's a better OS than Linux! 21:32:02 Re hosted-on-Linux loaders, there's the kexec infrastructure that can do it with at least semblance of cleanliness; I think I've seen at least some experiments on loading something else than a regular Linux kernel with it. 21:32:41 Both 32 and 64-bit support, written entirely in assembly, full WIMP GUI with alpha transparency (e.g. on the title bars), USB support, control panels, even window morphing effects (http://www.menuetos.net/086c.png), DVD/MP3 players, FASM, Quake, Doom, digital TV support somehow, a web browser... 21:32:48 Entirely in assembly! 21:33:07 Oh yeah, and it fits on a floppy. 21:33:41 (Of course kexec trickery might not lead to the evaporation of your stdlib manpages, so there's that downside to consider.) 21:34:47 fizzie: I was thinking the more awesome way: make the kernel commit suicide (i.e. disable multitasking so you get full control), load your OS into where the kernel was (or, really, wherever it has to start), jump there. 21:34:53 Possibly zero out the kernel if you have to. 21:35:10 The fun bit there, of course, is making the kernel commit suicide. 21:36:28 I'm not sure how you get to supervisor mode from userland code without doing something very nonstandard. 21:36:53 Of course if you're in it for the awesome, it's a different matter. 21:37:19 fizzie: You're root, so you can crash the system, right? 21:37:22 -!- asiekierka has quit (Ping timeout: 276 seconds). 21:37:24 alise, why are you goading the kernel into suicide? 21:37:27 So you can basically do whatever the fuck you want to memory. 21:37:30 Ah. 21:37:36 no, that was to fizzie 21:37:38 What if the kernel takes you down with it? 21:37:42 Phantom_Hoover: So you can stop it switching out your task. 21:37:49 Other OSes kind of like to be the only guy in town. 21:37:52 Also, that's the fun part. 21:38:04 Screw with its innards? 21:38:12 LOADLIN had it easy, since there was no real DOS kernel; it was basically a big library. 21:38:18 This is getting near that CoreWars fanfic I want written. 21:39:21 I don't think a uid 0 process is still supposed to be able to switch processor protection levels. I'm sure you *can*, it just sounds very brittle, maybe involving the direct-physical-memory device nodes. (are those even still there and unfiltered?) 21:39:29 -!- Wamanuz2 has quit (Read error: Connection reset by peer). 21:39:30 It's just that kexec is explicitly designed for handing control over. (How boring!) 21:39:44 Phantom_Hoover: CoreWars slash! 21:39:48 fizzie: But it's so UNGENERAL. 21:39:49 Well, a uid 0 process can fiddle with the kernel's memory, can't it? 21:39:53 How can I load LoseThos from it? 21:40:07 -!- Wamanuz has joined. 21:40:30 It's like Inception, but with kernels. 21:40:42 It's not ungeneral; just write a bit of code that looks kernely enough that kexec can jump into it; it will start in kernel-mode with full access to anything. 21:41:09 See, the kernelly enough bit is the issue! 21:41:16 Ooh, I know! 21:41:20 You could make it inject a DRIVER. 21:41:23 Those run in the KERNEL, see. 21:41:28 You can see where I'm going with this. 21:41:38 Kernel-raping drivers! 21:41:50 Yes, but why! I no get it. 21:42:26 The kernelly-enough wrapper needs to be a few hundred bytes, it can then load your LoseThos just fine. 21:42:39 There's kexec-loader, I think it can boot any multiboot-standard-compliant image with kexec. 21:42:47 -!- kar8nga has quit (Remote host closed the connection). 21:42:56 But we want the kernel to commit suicide! 21:43:21 * Phantom_Hoover wants to inject code into /dev/kmem 21:43:26 fizzie: We want to load ARBITRARY CODE without succumbing to the kernel's EVIL KEXEC DEMANDS. 21:43:29 Yes, I can see it's more about cruelty than pragmatism with you! 21:43:31 MULTIBOOT? FUCK MULTIBOOT 21:43:36 We should be able to LOAD bootloaders from this 21:43:42 It should just execute RAW code 21:44:06 So can we poke the kernel through kmem or not? 21:44:18 You could just write memory directly, Phantom_Hoover. 21:44:46 Wait, I though this was going to be something like "sudo depose-kernel"! 21:44:48 No, you can't. UID-0 processes aren't exempt from memory access protections. 21:45:06 fizzie: We want to load ARBITRARY CODE without succumbing to the kernel's EVIL KEXEC DEMANDS. <-- what demands? 21:45:13 I think they added some dev-kmem filters that are possibly the default now. 21:45:32 Wait, is mem the physical memory? 21:45:34 Vorpal: There's the loading address, and maybe some metadata in the image. 21:45:43 Vorpal: DEMANDS 21:46:01 I don't think a uid 0 process is still supposed to be able to switch processor protection levels. I'm sure you *can*, it just sounds very brittle, maybe involving the direct-physical-memory device nodes. (are those even still there and unfiltered?) <-- they are there, but: /dev/kmem is off by default, /dev/mem is filtered to pci config space and bios stuff by default iirc 21:46:22 of course you could just modprobe a module that let you do it 21:46:35 Vorpal, this is also an interesting idea. 21:46:39 A suicidal driver is perhaps an appropriate method, yes. 21:47:03 fizzie, I still fail to see what is wrong with kexec. The docs says it could load something else than linux if you wanted 21:47:23 Vorpal, it's so BORING 21:47:26 Or: find a module with an exploitable bug. It's like jailbreaking your own computer! 21:47:34 You don't get the #esoteric spirit! 21:47:38 Phantom_Hoover, yeah not having the replay file system logs when booting next time is boring 21:47:51 or having the new OS confused by already up-and-running hardware 21:47:55 and so on 21:47:57 Vorpal: That's what I said, but it wasn't the point here. 21:48:04 fizzie, sigh 21:48:06 Vorpal, the new OS is DESIGNED to depose a kernel. 21:48:28 The point here is perversity for the sake of it, if I've understood right. 21:48:56 Vorpal hates FREEDOM 21:48:58 Phantom_Hoover, so it can cleanly umount my ext4 and jfs file systems on top of lvm2 on top of software RAID 1? 21:49:12 Phantom_Hoover, if your solution doesn't do that then it fails 21:49:25 How did your stdlib-man-page-eating tool do its dirty trick, by the way? 21:49:34 fizzie, directed to? 21:50:04 Vorpal, it ignores these holdovers from the tyranny of the previous kernel. 21:50:07 To alise; I always forget to direct. 21:50:24 fizzie: I don't know; it loaded some .s. 21:50:27 Phantom_Hoover, okay now you are just being absurdly and stupidly silly 21:50:39 fizzie: http://colorforthray.info/XcolorForth.tar.gz 21:50:41 fizzie: Inspect it yourself. 21:50:51 (If you manage to get it compiled and aren't on 32-bit, it will eat your manpages.) 21:51:11 alise, if anything loading a module is even more restricted in format than loading a kernel with kexec! 21:51:22 Phantom_Hoover, yeah not having the replay file system logs when booting next time is boring ;; shut down file stuff beforehand 21:51:25 umount etc 21:51:47 I'll look at it when not on the phone. 21:51:48 Vorpal: DIE 21:51:53 alise, what? 21:51:54 Vorpal, general idea: module gets ring 0, kills kernel, replaces it with its own code. 21:52:02 Vorpal: EVIL 21:52:09 It then brings in a new era of freedom and democracy. 21:52:15 alise, Vorpal hates FREEDOM 21:52:26 Phantom_Hoover, yes but the module format is even more restricted than kexec 21:52:38 Phantom_Hoover, so your whole reasoning is completely flawed 21:52:53 Vorpal, modules run in ring 0, yes? 21:52:57 -!- sftp_ has quit (Remote host closed the connection). 21:53:02 Phantom_Hoover, so does a kexec image 21:53:09 Vorpal: shut the fuck up 21:53:11 Vorpal, but this is so boring! 21:53:11 we don't want to do kexec 21:53:12 so stop saying it 21:53:20 The idea is to do it ESOTERICALLY 21:53:36 Phantom_Hoover, but with a module you need to hook it up to the linux kernel interface 21:53:41 or it won't load or work 21:53:56 Phantom_Hoover, with a kexec image you are free from such restraints 21:54:09 Vorpal, do you actually understand the idea? 21:54:23 Phantom_Hoover, thus your argument about freedom is flawed 21:54:27 -!- Phantom_Hoover has left (?). 21:54:33 Phantom_Hoover, I understand the idea but your argument *for* it is flawed 21:54:36 -!- Phantom_Hoover has joined. 21:54:37 which are quite different things 21:54:43 * Phantom_Hoover (~phantomho@cpc3-sgyl29-2-0-cust326.sgyl.cable.virginmedia.com) has left #esoteric ("Leaving") 21:54:43 Phantom_Hoover, I understand the idea but your argument *for* it is flawed 21:55:00 Vorpal, accidentally closed the tab. 21:55:10 Phantom_Hoover, repasted the only line sent 21:55:11 so 21:55:46 Vorpal, I tire of this. 21:55:55 We aren't using kexec. End of. 21:56:13 Phantom_Hoover, okay. Your argument for not doing so is still flawed 21:56:18 besides the module thing is old 21:56:23 seen it implemented once before 21:56:30 was as a hack against 2.4 kerne 21:56:31 kernel* 21:56:34 which lacked kexec 21:56:39 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:56:45 Phantom_Hoover, so what you are now doing is fairly boring 21:57:40 alise, besides your request for hypothetical software timed out today. 21:58:01 My plan would basically be: 1. Write a Forth base in assembly. 2. Write the rest of the Forth in Forth. 3. Write drivers. 4. Write an interface. <-- That is less of dumbness. Actually my idea was both stupider and cooler than what I said. It was kind of "want to write my own OS" plus "Oh, I already have, I just never finished it", and such a collision seems to have sparked... ideas. 21:58:04 alise, too late now 21:58:21 Vorpal: our argument is WE DON'T WANT TO use kexec 21:58:30 Oh funt, what are we talking about now. 21:58:38 alise, that is however no reason 21:58:46 Indeed it is. 21:58:53 And we don't need you telling us so because it's fucking obvious. 21:58:57 alise, and your hack has been done before 21:58:58 Nothing done in this channel has much of a reason. 21:59:00 Deal. 21:59:02 alise, so ol 21:59:03 old* 21:59:18 Yeah, I like how you conspicuously forgot to tell us that before. 21:59:20 >_< 21:59:53 alise, anyway your hypothetical request for hypothetical software timed out today due to lack of hypothetical initiating of the hypothetical file transfer 22:00:04 I'll just get it off torrents. 22:00:06 omg there is YouTube of LoseThos: http://www.youtube.com/watch?v=9i0pMO697Zk and TERRIBLE MUSIC 22:00:07 You have told me three times already. 22:00:23 cpressey: God generated it 22:00:24 -!- FireFly has quit (Quit: swatted to death). 22:00:25 You evil person 22:00:41 THIS IS WHY YOU FEAR GOD 22:00:54 This thing is actually a complex piece with multiple time signatures and tempos 22:00:56 You just can't tell. 22:01:07 I CAN"T HEAR THE MUSIC FOR ALL THE BEEPING 22:01:17 It's experimental. 22:01:21 LOL @ the sad face 22:01:23 that just appeared 22:01:26 Wow 22:01:27 Rendered with a human hand on a violin, I admit, it could be... something. 22:01:28 Is he typing lyrics 22:01:28 alise, why do you want to load LoseThos like that btw? 22:01:31 Or just typing about sins 22:01:42 No, it's lyrics. Wow. 22:01:47 But as it stands, uh, God has no rhythm. 22:01:54 Vorpal: Uhh, it was just an example of an OS that is compatible with no standard. 22:02:02 cpressey: Read the lyrics 22:02:03 Top window 22:02:04 It's amazing 22:02:17 That may just be my favourite video ever. 22:02:37 I CAN"T HEAR THE MUSIC FOR ALL THE BEEPING <-- cpressey++ 22:03:17 Rendered with a human hand on a violin, I admit, it could be... something. <-- doubt even that would salvage it... It seems to lack a proper melody 22:04:15 This may be a fizzie question, or rather trivial for fizzie maybe, but: In unreal mode, I can still change CS, right? And loading a value into CS is effectively a jump? 22:05:01 fizzie: the Tome of all Knowledge. 22:05:25 cpressey, btw that youtube thingy.... Why use that OS for that song 22:06:14 I'm sure it would be trivial to generate it under most other OSes that support the pc speaker (which seems to be what was used) 22:07:08 Because he is LoseThos... 22:07:10 Duh 22:07:16 Vorpal: Because that OS is AWESOME. 22:07:16 Besides, it's the only OS which can connect to God 22:07:25 cpressey, from my understanding of the NASM manual, changing CS directly is only easily possible through black magic on the 8086. 22:07:28 right, so he is a OS coding religious nutjob 22:07:31 "Why would LoseThos use LoseThos for X?" "Uhhh, I dunno lol" 22:07:36 Vorpal, the best kind! 22:07:39 Vorpal: He's a nutjob even for the religious. 22:08:08 alise, well I suspected he was a nutjob for each half of that independently... 22:08:28 Phantom_Hoover: Sure you're not thinking of IP? 22:08:38 cpressey, no, CS. 22:08:59 But the detailed appendix to the NASM manual has been removed. 22:09:02 though it does take a bit of skill to code any OS. So... a somewhat smart (in at least one area) nutjob 22:09:56 Phantom_Hoover: Well I know I've loaded *from* CS. OK, I realize, not at all the same thing. 22:10:11 Main:movax, cs; find DATA segment 22:10:15 Vorpal: Yes, he's obviously intelligent. He's also fucking nuts. 22:10:28 cpressey, I'm pretty sure mov cs doesn't work, but pop cs worked on the 8086. 22:10:41 pikhq, indeed. I'm more used to nutjobs like that also being fairly stupid 22:10:53 It has never done so on any subsequent processor, though. 22:10:55 pikhq, or at least acting fairly stupid in all areas 22:11:24 Phantom_Hoover: Hm. How do you execute code in another segment, then? 22:11:51 cpressey, jmp and its friends. 22:12:23 Oh, a far jump will update CS too? OK, that actually... makes sense. 22:12:45 -!- myndzi has joined. 22:13:14 call far is more common, obviously. 22:13:29 (You don't run into this when everything you write you try to fit into 512 bytes.) 22:15:09 Was thinking about "writing my own OS", thinking now about extending BefOS instead. Well, sort of. 22:15:53 -!- myndzi\ has quit (Ping timeout: 265 seconds). 22:16:09 Each of the Befunge-93 instructions can be implemented in less than 256 bytes of 80[2?]86 code -- surely. 22:17:37 So, in each 2K page you can implement 4 instructions (in inline machine code), and the whole thing fits in one 64K segment. The kernel (fetch-execute loop) runs in another segment and does far calls into these pages. 22:17:40 Well, it depends. 22:17:46 (Sooo efficient!) 22:19:13 BefOS is rubbish :| 22:19:39 alise: Thus explaining the presence of a desire to make it ... not rubbish. 22:19:49 To make it merely naff. 22:19:56 As it were. 22:19:56 cpressey: I'd say a Befunge-93 instruction would be more like 50 bytes, not 256. 22:20:18 This is a bit late, but yes, I think you keep an unreal-mode DS even if you change CS. (Segment register changes were expensive, though, IIRC.) 22:21:03 alise: I guess 128 bytes per inst would still be plenty, and would let the interpreter be in the same segment. 22:21:33 If some inst really does need more, it can jump to some "spare" slot at the end. 22:21:42 cpressey: Really? The instructions are just things like +, /, p, g, ... 22:21:48 I can't imagine any of them being more than a few bytes, actually. 22:21:56 Apart from bounds checking, which would be minimal. 22:22:00 The IO is nontrivial. 22:22:36 Jump elsewhere for it? 22:22:44 IO is slow anyway, after all. 22:23:22 alise: They're not complex. But the thing is, here... you could modify them. Install some machine code in the slot for Z or chr(20), and then it's an instruction. 22:23:58 cpressey: Ah. 22:24:24 In fact, not at all sure this would be befunge anymore. 22:24:40 Although, it's a place to start. 22:26:26 pikhq, hm I can't actually think of any other *intelligent* religious nutjob in modern times 22:28:06 Was thinking about "writing my own OS", thinking now about extending BefOS instead. Well, sort of. <-- bef as in befunge? 22:28:16 cpressey, is there any link to that? 22:28:24 Vorpal: NO. NO LINKS. 22:28:27 -!- augur has quit (Ping timeout: 265 seconds). 22:28:35 cpressey, but is it bef as in befunge? 22:28:51 cpressey, if so it sounds awesome 22:28:53 Vorpal: Perhaps you should keep reading the log? 22:29:07 cpressey, oh excellent idea 22:29:55 Vorpal: It's not an idea. I mean, it's been done. By me. And it sucks. Because it was basically just an extended experiment in baremetal assembly coding on my part. 22:30:10 cpressey, ah 22:30:24 cpressey, I meant reading the log was an excellent idea 22:30:42 OK, then, it's not awesome. 22:31:44 cpressey, and befOS sounds awesome too 22:32:09 I meant BefOS is not awesome. 22:32:13 cpressey, why do it in real mode 22:32:28 cpressey, you wouldn't have the CS problem if you just went into protected mdoe 22:32:32 mode* 22:32:50 Because unreal mode is AWESOME. 22:33:00 Etc. 22:33:02 cpressey, how so? I don't remember the details for i 22:33:06 it* 22:33:19 Gaa, the misunderstandings! I somehow thought that this Xcolorforth actually did the trick of kernel hijinks; but it doesn't, it just puts the code into the process' memory space, and emulates a framebuffer with SDL. I mean, that's what is sensible, I just had it somehow confabulated it with the bootloader discussion. 22:34:50 fizzie: Yes; if you're on 32-bit, it /should/ work. 22:34:57 Although I have no idea what the fuck happens to Linux afterwards. 22:35:10 There appears to be a befos.com. "Admin Organization: BefOS". Should I be frightened? 22:35:38 Vorpal: You flip to protected mode, set DS selectors so that you have a flat 32-bit memory, then go back to real mode. As long as you don't touch the DS, the limits won't be reset, and you have the unreal mode. 22:36:24 fizzie, mhm 22:36:30 Also, zzo38's OS uses unreal mode. Just more evidence that it is AWESOME. 22:36:31 fizzie, and why was that useful? 22:36:41 cpressey, zzo made an OS? 22:36:43 when? 22:36:59 alise: I don't think anything happens to Linux afterwards. I mean, it's a normal process that does video and keyboard stuff with SDL, and runs code inside its own address space; nothing abnormal about that. 22:37:00 Vorpal: You should ask me more questions like that. 22:37:11 cpressey, mhm 22:37:14 fizzie: ColorForth does rather more than run code inside its own address space, last I checked. 22:37:19 Such as direct hardware access. 22:37:31 *colorForth 22:37:47 alise: Well, Xcolorforth certainly won't do direct hardware access. It's not even located at 0. 22:37:59 * Phantom_Hoover wonders if Unreal Tournament ran in unreal mode. 22:38:05 fizzie: I thought color.s does. 22:38:09 Anyway, it has to be run as root otherwise nothing happens. 22:38:11 That's all I know. 22:38:17 When you run it as root, [boom] 22:38:28 Phantom_Hoover: Unreal is more likely to, being older. :P 22:39:08 Well, according to README it at least behaves perfectly responsibly. I haven't really looked closely; maybe I'll take a peek tomorrow. 22:40:22 cpressey, what exactly makes unreal mode better than protected mode? 22:41:47 Vorpal: Flat (non-segmented) access to the 32-bit address space. 22:42:04 cpressey, right, protected mode has that too 22:42:04 To clarify: 22:42:22 unless I completely misremember 22:42:24 -!- oerjan has joined. 22:42:31 That is what makes it more desirable to me. Not better. 22:42:34 you can set up the segments so that they essentially don't matter 22:42:39 It would be equally valid to say that I like the name. 22:42:42 Do what LoseThos does! Set up paging to map directly to memory! HOORAY 22:42:45 cpressey, ah 22:45:10 "It was used by many computer games in the 1990 to 1995 time frame, since it allowed programmers to use more memory than in real mode, which is restricted to 1 MB (640 KB usable on IBM PC-compatible machines), but still access the DOS operating system, which doesn't work in protected mode." 22:45:14 Vorpal: One tangible benefit is that in unreal mode, you can still (with some care) keep calling DOS services for filesystem/IO/what... 22:45:29 Gah! Stop ruining my comments! 22:45:36 Sorry fizzie :) 22:45:45 Not that I'd be running this code under DOS or anything mind you... 22:45:49 fizzie, ah 22:46:21 fizzie, why can't you do the same thing as whatever vm86 does for calling DOS services? 22:47:42 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 22:47:48 Doesn't it go to the virtual-8086 mode? 22:47:55 fizzie, yes 22:48:01 fizzie, is that not enough? 22:48:26 fizzie, hm... what does stuff like djgpp (sp?) do? 22:48:30 It involves basically switching to real mode and back every time you need something from DOS. 22:48:41 presumably it somehow needs to access the DOS fs 22:49:21 -!- augur has joined. 22:49:26 It does DPMI, and the DPMI implementation involves a lot of that mode-switching, I believe. 22:51:16 Real protected mode with dos4gw and other "dos extenders" did end up being whap people did; I think unreal mode was used more before DPMI implementations were available. 22:52:15 It's a lot more complicated to call DOS that way. Probably also slower. (But then again, the DOS routines are bound to be slow too.) 22:52:51 DJGPP in particular uses CWSDPMI, IIRC. 22:58:35 fizzie, hm 22:58:46 fizzie, couldn't it implement it's own FAT driver? 22:59:08 fizzie, even my camera implements fat32, and back then you only had to do fat12 and fat16 22:59:24 And IDE drivers, too? You can't call into BIOS from protected mode either. 22:59:49 fizzie, ah... 23:00:20 Anyway, no, it couldn't implement it's own FAT driver, because DOS would be very confused if the "mounted" disk would magically have its blocks changed. 23:00:22 Hey, now that's an actual reason. I do make lots of BIOS calls. 23:00:40 (*reason to not use protected mode in BefOS or whatever it is.) 23:03:01 hm I recently saw a quite mad DSP (forgot brand and model) where CHAR_BIT was 128. That seems quite large even for a DSP to me 23:03:21 If you're feeling lucky (or just terminally brave), you might even manage to get some "write a big block into ds:di" interrupt services to directly write to non-low memory, if you just load full esi with a wide address (or does that always need some prefix bytes in real mode?); with the mode-flipping, you'd have to read into buffer, then copy from there to high memory. 23:03:39 -!- augur has quit (Ping timeout: 265 seconds). 23:05:18 hm 23:05:19 Oh, also a reason: I tried playing around with the EMS and XMS interfaces (BIOS interrupts) and found they sucked. 23:05:35 how did those emm386 and himem.sys things of DOS work? 23:05:52 wasn't there one doing a window into higher memory? 23:05:57 TI C64x has a 256-bit wide memory bus for code; it reads and executes in packets of eight instructions. But the data memory is word-addressable with 16-bit words, so I would guess it defines CHAR_BIT to either 16 or 8 (faked&. 23:06:24 And don't go to extended/expanded memory things; that way lies madness. 23:06:40 fizzie, just wondering how it worked 23:07:02 fizzie, the window into higher memory stuff sounds like it would need an MMU 23:07:12 not available in real mode afaik 23:07:15 EMS in particular was intended originally for hardware memory extensions that aren't in the usual memory bus. 23:07:29 fizzie, ah interesting 23:07:33 It doesn't need a MMU, it just involves a lot of copying. :p 23:07:54 (On a real hardware EMS implementation, it doesn't copy so much.) 23:08:00 fizzie, ouch 23:08:15 fizzie, how can it access the higher memory to copy from/to it? 23:08:23 it goes into protected mode every now and then? 23:09:30 I guess it would have to, when it's emulated using regular processor-addressible memory. 23:10:18 Since you just can't get more than 20 address bits out of the x86's addressing lines without skipping to protected mode, I would think. 23:12:01 XMS is just calling HIMEM.SYS's routines via an interrupt; it would then copy bytes in-between low memory used by the app, and high memory. 23:13:01 While EMS involves EMM386 faking a "expanded memory" hardware thing, on a 386 or better. 23:18:11 Since the EMS hardware would map memory pages somewhere in the 640k .. 1M range, I think that would involve some duplicate copying; first the app would copy from <640k to there, and then EMM386 would copy to high memory to fake memory-page swapping. Unless that latter part could be faked with the paging hardware, but I'm not sure if that's a reasonable approach. I do recall vague "EMS is SO SLOW" complaints. 23:19:08 -!- sshc_ has changed nick to sshc. 23:21:35 On a protected-mode OS which runs DOS and DOS apps in the virtual-8086 mode, it would of course be faster, since the paging system could be used to do the, um, paging. 23:21:50 As fascinating as the bizarro-city x86 is, I think I really need sleep now. 23:22:10 xD 23:24:55 -!- derdon has quit (Ping timeout: 265 seconds). 23:44:19 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:45:45 "SyntaxError: invalid syntax" 23:45:58 Thank you, CPython. 23:47:14 GAHHHH DJANGO 23:48:08 cpressey: XD 23:48:12 SyntaxError: error in your syntax 23:51:19 -!- tombom has quit (Quit: Leaving). 23:57:52 -!- sebbu has quit (Read error: Connection reset by peer). 23:57:52 -!- sebbu2 has changed nick to sebbu.