00:01:48 <nooga> this retroforth is frustrating
00:01:54 <alise> zzo38: so what /does/ Alt+D do in the editor
00:01:58 <alise> nooga: older retroforth was better
00:02:04 <alise> they've recently redone it all
00:02:10 <zzo38> alise: In MegaZeux, you mean?
00:02:17 <alise> zzo38: in your fork
00:02:30 <zzo38> 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 <zzo38> However, in the modern mainstream MegaZeux, ALT+D in the editor does the same as ALT+E ALT+D
00:03:59 <alise> zzo38: can you tell qbasic to stop UPPERCASING all my code?
00:04:32 <zzo38> alise: If you have QuickBASIC Extended, you can open the file in "document" mode and it will stop reformatting your code.
00:04:53 <alise> I only have QBasic, because I am but a pilgrim. (I can get QuickBASIC, but *eh*)
00:04:57 <alise> QBasic is fast enough, right? :-P
00:05:22 <zzo38> alise: It depends what you are making!
00:08:28 -!- cpressey has joined.
00:08:52 <zzo38> (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 <zzo38> (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 <alise> qbasic is so liberating
00:21:45 <alise> WHO CARES ABOUT STRUCTS?? JUST USE GLOBALS!
00:24:58 -!- FireFly has quit (Quit: swatted to death).
00:24:59 <zzo38> alise: Structures are useful too, in QBASIC, though. (Use the TYPE command to create structures)
00:25:09 <alise> zzo38: NOBODY NEEDS STRUCTURES
00:25:29 <zzo38> Structures are also useful in other programming languages, too.
00:25:48 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:26:09 <zzo38> But you are correct, that many of these things can be done without type structures
00:26:14 <zzo38> But sometimes it is useful anyways
00:26:52 <zzo38> 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 <alise> can't you just list the variables to save
00:27:41 <zzo38> alise: Yes, you can. And I have used that way too.
00:28:27 <zzo38> 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 <zzo38> You can also make FileString for variable length strings.
00:28:49 <zzo38> (Which is something that the TYPE command cannot use)
00:29:00 <alise> it is WEIRD how qbasic separates the subs into different windows
00:30:05 <zzo38> 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 <Sgeo> Is Forth generally a used language for DSLs?
00:33:10 <zzo38> 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 <zzo38> Sgeo: What do you mean by DSLs?
00:33:37 <Sgeo> Domain Specific Language
00:33:45 -!- kwertii has quit (Quit: bye).
00:33:52 <zzo38> Sgeo: Forth can certainly be used for those purposes.
00:34:03 <Sgeo> I know it _can_
00:34:08 <Sgeo> Is it a good idea, or bad idea?
00:34:15 <zzo38> It does it better than other general use programming languages do.
00:34:24 <zzo38> 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 <zzo38> Sgeo: What is AWelectronics?
00:35:06 <Sgeo> AW logic gates and so forth, hopefully to build a computer
00:35:13 <Sgeo> Which I think should be a stack machine
00:35:14 <coppro> pikhq: sorry, I went out.
00:35:18 <alise> Sgeo: Forth IS DSLs.
00:35:29 <alise> Every word can read an arbitrary number of words or characters ahead of it.
00:35:31 <coppro> if boost is dynamically linked, you need -rpath, which is EVIL
00:35:41 <zzo38> Forth is much better for domain specific languages than other general purpose programming languages are.
00:35:53 <Sgeo> If it turns out keyboard space is limited, I'd just have the user enter hex digits...
00:35:57 <alise> Sgeo: In fact, you don't write Forth libraries.
00:36:04 <coppro> dynamically linking and boost do not go together generally
00:36:05 <alise> You write Forth languages.
00:36:22 <zzo38> In Soviet Russia, Forth libraries write YOU!!!
00:36:26 <Sgeo> alise, is there a generally accepted way to isolate dictionaries?
00:36:27 <coppro> in fact, boost and dynamic linking should never ever be used together
00:36:30 <Sgeo> And sandbox Forth?
00:36:41 <coppro> because Boost makes new SONAMEs every version
00:36:41 <alise> Sgeo: why are you so obsessed with sandboxing
00:36:43 <Sgeo> Or would I have to write that code myself if I wanted to do that?
00:36:46 <Sgeo> alise, because I am
00:36:51 <alise> Sgeo: I refuse to answer.
00:36:51 <coppro> so all you're doing is wasting space
00:36:56 <alise> zzo38: FWIW, King is ludicrously slow in QBASIC
00:37:21 <zzo38> Sgeo: You can isolate dictionaries, but how it is done depends on the Forth system you are using.
00:37:30 <Sgeo> alise, maybe for Warrigal's new nomic...
00:38:46 <Sgeo> We need ForthNomic ASAP
00:38:57 <zzo38> 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 <zzo38> Sgeo: That is interesting idea. Now invent it
00:40:28 <Sgeo> How often is LOCAL| used, and is it standard?
00:40:55 <zzo38> Sgeo: I don't know the answer to that question, unfortunately
00:41:15 <zzo38> I don't use it often
00:41:39 <zzo38> But I suppose it can be useful in a few cases.....
00:42:44 <zzo38> 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:13 <Sgeo> Give me some parenthesized arithmatic to RPNize
00:45:13 <zzo38> 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 <Sgeo> x y 4 + + y x 4 + % * x y 4 + % *
00:46:57 <coppro> my answer: "(4+x+y)*(y%(x+4))*(x%(y+4))" toformula calculate x store
00:47:42 <zzo38> Sgeo: Yes that is RPNized.
00:47:45 <alise> Sgeo: % won't be defined, most likely
00:47:51 <alise> you never really do stuff like that in forth :P
00:47:57 <zzo38> In Forth, generally MOD is used for modulo
00:47:58 <Sgeo> alise, what, why not?
00:48:03 <zzo38> x=y=(4+x+y)*(y%(x+4))*(x%(y+4));
00:48:14 <zzo38> (Where X and Y variables)
00:48:17 <alise> because % is a Cism
00:48:21 <alise> it'll most likely be mod if anything
00:48:25 <nooga> 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:44 <alise> were you talking to me
00:48:52 <Sgeo> alise, do you have nooga on ignore?
00:49:26 <coppro> 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 <Sgeo> By "stuff like that", all you meant was the % ?
00:49:49 <zzo38> 4 x @ y @ + + y @ x @ 4 + MOD x @ y @ 4 + MOD * * DUP y ! x !
00:49:51 <alise> coppro: standardised tests are biased against people who are actually intelligent
00:50:31 <Sgeo> It would be broken down into words?
00:50:42 <Sgeo> nooga, roughly Forth's dereference
00:50:48 <pikhq> WHY IS IT IMPOSSIBLE TO FREAKING LEFT-ALIGN AN EQUATION. GOD.
00:50:53 <alise> it reads a word from memory
00:51:30 <alise> 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 <alise> pikhq: I found it in two sections. Can you?
00:51:42 <alise> If yo uwant indented, put fleqn in document class
00:51:47 <alise> and \setlength{\mathindent}{...}
00:51:53 <alise> Lesson to be learned: Google
00:51:56 <zzo38> coppro: Do you have a text version of that article?
00:52:21 <pikhq> alise: I spent a long time Googling.
00:52:26 <nooga> zzo38: do you have computer capable of displaying websites?
00:52:29 <alise> zzo38: no, it's too scholarly
00:52:36 <alise> it has to be displayed in the audiovisual format
00:52:41 <alise> as it presents 57 well-researched graphs
00:52:54 <alise> dedicated to the proposition "are tests biased against students who don't give a shit?".
00:53:05 <alise> WARNING: BLATANT LIES
00:53:09 <coppro> zzo38: unfortunately not
00:53:17 <alise> the thing with the onion is
00:53:27 <alise> they start with the title and just write the rest based on that (they have stated this)
00:53:32 <coppro> 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 <alise> which means reading the whole thing is almost always pointless
00:55:54 <zzo38> How do I write a DVI driver? So that I can make TeXnicard
00:56:41 <alise> zzo38: We don't know.
00:57:12 <alise> cpressey: Amiga was killed by this patent:
00:57:15 <alise> The XOR patent covers the use of the machine language XOR (exclusive-or)
00:57:15 <alise> operator to make a cursor blink in a bitmapped display.
00:57:21 <alise> cpressey: YOUR NOSTALGIA: CRUSHED
00:57:23 <alise> http://xcssa.org/pipermail/xcssa/2005-February/002587.html
00:57:45 <Sgeo> I'm not the only one with severe nostalgia issues?
00:58:01 <alise> cpressey was just mildly nostalgic for the amiga an hour or two ago
00:58:04 <alise> yours is crippling
00:59:17 -!- augur has quit (Remote host closed the connection).
00:59:23 <Sgeo> It's not impacting the quality of my life
00:59:29 <Sgeo> I'm not not trying new things
00:59:48 <alise> but you are spending a hell of a lot of time with old things that nobody cares about :P
01:00:07 <Sgeo> But _I_ care about those things
01:00:15 <Sgeo> And so do at least a few other people, usually
01:00:20 <zzo38> 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 <alise> but you have also said that the currency you care about is attention
01:00:28 <alise> so clearly there is a contradiction here
01:01:15 <Sgeo> 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 <Sgeo> alise, what are some uses of [ ] without LITERAL?
01:15:12 <Sgeo> Also, is Win32Forth decent or horrible?
01:25:34 <Sgeo> What's a good Forth for Windows
01:26:02 <Sgeo> Also, why does a Google for Forth LiveCD not find anything
01:27:19 <pikhq> Okay, screw it, I am *not* going to type this assignment up.
01:27:36 <pikhq> SO FUCKING MANY GRAPHS
01:27:42 <pikhq> WHY ARE THERE SO MANY GRAPHS
01:31:00 <alise> Sgeo: because what would a forth livecd be?
01:32:08 <Sgeo> 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 <Sgeo> Something like Losethos, except Forth and decent
01:32:50 <alise> why not just have an asm forth interp and then a forth os?
01:33:18 <Sgeo> alise, ... on a LiveCD
01:33:36 <Sgeo> Make it more accessible
01:33:41 <alise> Sgeo: that's what i meant
01:33:45 <alise> forth code is tiny
01:34:01 <Sgeo> Well, except fewer and fewer computers have floppy drives..
01:34:01 <alise> maybe 5-10k for the compiler
01:34:08 <alise> so put it on a usb stick
01:34:14 <alise> 1-2k for the base set of words
01:34:26 <alise> then maybe 5-7k for a usable OS, perhaps even with a GUI
01:36:17 -!- SgeoN1 has joined.
01:36:24 <alise> you could fit a web browser and an irc client in 1.44 mb of forth OS
01:36:31 <alise> oberon packs all that in, forth would pack in even more I bet
01:36:45 <SgeoN1> Fuck you in the ass for making me install Symantec
01:37:37 <alise> Niklaus Wirth's latest language, successor to pascal etc
01:37:42 <alise> very small spec (smaller than r5rs)
01:37:46 <alise> OS is very minimal
01:37:50 <alise> inspired plan 9's acme
01:38:13 <Sgeo> Wait, it's old?
01:38:23 <alise> modula-2 is like early 90s
01:38:28 <alise> the os is a bit old
01:38:45 <alise> there's a 2007 revision
01:38:54 <alise> oberon originally came about 86 or thereabouts
01:39:13 <alise> [[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 <Sgeo> I should attempt to determine an upper bound on memory an AW computer can have
01:40:51 <Sgeo> Although at this point, the bound would be much, much, higher than an AW computer could ever actually have
01:41:33 <Sgeo> 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 <Sgeo> That's essentially the bound I'm finding
01:42:37 -!- augur has joined.
01:43:02 <Sgeo> Let's say we go with Ulta
01:43:12 <Sgeo> 11000 bytes per cell
01:43:44 <Sgeo> 20 cells by 20 cells visible at a time (it's going to be less than that)
01:44:20 <Sgeo> And keep in mind, that's orders of magnatude too big
01:44:36 <Sgeo> So, any chance of building a decent Forth machine?
01:44:56 <alise> you can do forth with <10kb of ram
01:45:26 <alise> there's a reason it's primarily used in embedded stuff
01:45:29 <alise> it's really damn good at it
01:46:30 <Sgeo> I should attempt to construct a memory cell, see how many I can fit per cell
01:46:37 <Sgeo> Then I'd have actually useful numbers
01:55:20 * Sgeo still wants to see Forth servers
01:56:31 <Sgeo> YOu know what might be a nice project for me, if I got my hands on a decent Forth?
01:56:40 <Sgeo> Making comments be compiled into word definitions
01:56:51 <Sgeo> But then I'd have to modify SEE to recognize it :/
01:56:58 <alise> I think gforth does that
01:57:01 <alise> gforth sucks though
01:57:44 <Sgeo> What shouldn't I use Forth for?
02:01:37 <alise> Even web development!
02:02:04 <Ilari> 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 <Sgeo> Hmm. Is the stack usually defined at the non-Forth interpreter level?
02:03:55 <oerjan> Sgeo: see the Cat language
02:04:00 <Sgeo> Hmm, that shouldn't be a problem
02:04:48 * oerjan hasn't heard more about Cat in a while though
02:06:46 <Sgeo> http://wiki.laptop.org/go/Forth_Lesson_4
02:06:46 <oerjan> http://en.wikipedia.org/wiki/Cat_(programming_language)
02:06:51 <Sgeo> Ugh, no RECURSE word?
02:07:03 <Sgeo> Just RECURSIVE flag thingy?
02:08:48 <alise> recursive flag is cool :P
02:09:36 <Sgeo> It's completely needless
02:11:55 <alise> nothing wrong with it
02:15:56 -!- nooga has quit (Ping timeout: 260 seconds).
02:16:13 <oerjan> hm it is not clear to me that cdiggins ever got around to actually implementing the static typing part of Cat
02:16:58 <oerjan> it _was_ rather awkward to do inference, i recall
02:17:25 <oerjan> anyway it seems to have been dormant since 2007
02:18:15 <oerjan> basically stack languages with arbitrary no. of input and output are not good matches for the usual type inferencing algorithms
02:24:38 <alise> http://groups.google.com/group/catlanguage
02:24:55 <oerjan> it's just that wikipedia claims the main implementation does not actually support static typing
02:25:11 <alise> well there's something that does, i think
02:25:14 <alise> some cat implementation
02:25:17 <alise> or sub-implementation, etc
02:26:39 <oerjan> "not so dormant" seems only technically correct in this case (the best kind of correct, of course)
02:27:02 <alise> he was doing experimental stuff related to it as of a year ago or s
02:27:25 -!- yiyus_ has quit (Ping timeout: 240 seconds).
02:27:38 <alise> 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 <Sgeo> Words do not express my tiredness
02:59:40 <oerjan> try an interpretive dance
03:14:57 <Sgeo> I think I like Forth's native approach to modularity: Don't worry about overriding something, it won't break anything
03:15:17 <Sgeo> 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 <pikhq> coppro: So, let's see about that build system.
03:33:46 -!- calamari has joined.
03:35:35 <alise> pikhq: Is it going to be autohell?
03:40:24 <pikhq> coppro: BTW, AC_CHECK_LIB is a macro that should die.
03:40:44 <alise> pikhq: I warn you, I have Makefile powers and I'm not afraid to use them.
03:42:03 <pikhq> alise: This uses Boost. If it used saner packages, I'd just make it a very simple Makefile.
03:42:16 <alise> pikhq: pkg-config dude
03:42:27 <pikhq> alise: Boost does not install .pc files.
03:42:35 <alise> well then just link the .as in
03:42:57 <pikhq> It spreads headers everywhere.
03:43:15 <pikhq> And its own build system.
03:43:46 * pikhq nukes the support for precompiled headers
03:44:13 <Sgeo> Jonesforth uses [COMPILE], but according to wiki, ANS Forth uses POSTPONE
03:44:24 <pikhq> 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 <alise> ANS Forth is a bit rubbish
03:44:33 <alise> although quite well-supported
03:44:43 <alise> pikhq: I like how you're making it simpler for me to turn it into a Makefile.
03:44:55 <pikhq> Oh, hey, this doesn't even use conf.h.
03:45:05 <pikhq> Well, then. Makefile anyone?
03:45:11 <Sgeo> How did I forget about :NONAME ?
03:45:47 <Sgeo> I'm starting to think that Win32Forth is rubbish for learning Forth
03:45:56 <Sgeo> : :NONAME ALIGN HERE "0x509E8C" ; ok
03:46:28 <alise> Win32Forth is rubbish
03:46:35 <alise> even gforth sounds better than that
03:46:36 <pikhq> Wait. If this doesn't use conf.h then *there's no point to most of the configure script*.
03:47:19 <Sgeo> alise, so what good Win32 ANS Forths are there?
03:47:36 <alise> Sgeo: i refuse to answer that question because you specified ANS
03:47:41 <alise> which is irrelevant
03:48:35 <Sgeo> WHat good Win32 Forths are there?
03:48:41 <Sgeo> I'll make them ANS myself if I have to
03:49:06 <alise> Sgeo: why do you care so much about ans?
03:49:18 <Sgeo> alise, because I like standards and portability
03:49:21 <alise> some of the best forth programmers including chuck moore don't like it, it's basically irrelevant in practice
03:49:23 <alise> and forth is NOT portable
03:49:26 <pikhq> coppro: It also checks for atomic primitives and never does anything with the results of that test. *sigh*
03:49:29 <alise> it's close to the metal and to the implementation
03:49:47 <pikhq> Oh, wait, src/util/atomic.hpp.
03:50:01 <alise> Sgeo: you should stop approaching every language with the same mindset :|
03:50:59 <pikhq> Still, no point to that check at all. __GNUC__ should suffice.
03:51:11 <pikhq> Erm, no, never mind. It wouldn't.
03:51:25 <Sgeo> What's wrong with Gforth?
03:51:56 <alise> too many OS niceties
03:52:08 <alise> 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:53:38 <Sgeo> I'll avoid the Gforth-specific stuff then
03:54:05 <alise> Sgeo: You're going to try and code pure ANS Forth, aren't you?
03:54:22 <alise> I see linking JonesForth helped not one bit.
03:54:25 <pikhq> AC_CHECK_FUNCS([floor memset pow select sqrt])
03:54:30 <pikhq> That line makes me a sad panda.
03:54:38 -!- cheater99 has joined.
03:54:41 <alise> You are not going to be able to use Forth how it's intended to be used, Sgeo
03:54:42 <Sgeo> It makes me understand how a Forth can work
03:55:04 -!- Vegabondmx has quit (Quit: Vegabondmx).
03:55:04 <alise> 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 <Sgeo> Are most metal-level Forths not ANS + extas
03:55:20 <Sgeo> *extras like asm-level stuff?
03:55:28 <alise> asm-level stuff? Dude, Forth IS asm-level stuff.
03:55:34 <alise> That's peek and poke right there.
03:55:41 <alise> It's /not/ a high-level language.
03:55:51 <alise> I mean, it IS, but it's not not low level, either.
03:56:11 <Sgeo> Find me a Forth LiveCD
03:58:28 <pikhq> coppro: You *love* you some cargo-cult programming, don't you?
04:04:05 <wareya> There should be a language were all constructs are metaphors to balancing online games.
04:04:23 <wareya> Empowering, depowering, complicating, and stripping objects.
04:04:43 <wareya> The program is exited once balance is achieved
04:04:59 <pikhq> magicseteditor_CXXFLAGS = $(AM_CXXFLAGS)
04:06:06 <Sgeo> 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 <Sgeo> Although I guess it's easy to add
04:08:17 <Sgeo> http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Conditional-execution-Tutorial.html#Conditional-execution-Tutorial
04:08:31 <Sgeo> Gforth is not the standards torch-bearer that I expected
04:08:35 <alise> 1. Stop being obsessed with ANS Forth. IT SUCKS. Use the strengths of the implementation. 2. gforth has basically no strengths
04:08:47 <pikhq> And... Your "--debug" flag is stupid. Don't do it.
04:08:54 <alise> Chuck Moore hates ANS Forth. When the creator of a language hates the standard, IT SUCKS.
04:08:57 <alise> Forth is so low-level.
04:09:01 <alise> You're asking for portable assembly.
04:09:07 <alise> Forth is useless without its low-level toolkit.
04:10:54 <Sgeo> alise, does that include LOCAL| ?
04:11:05 <alise> Locals, as a general rule, suck.
04:11:29 <alise> Sgeo: But seriously: LISTEN to my last few lines.
04:11:36 <alise> If you don't, you'll never be able to use Forth effectively.
04:12:48 <Sgeo> What good Win32 Forths are there, and what good bare-metal Forths are there?
04:13:21 <alise> Bare-metal Forths: often you write one yourself. it's hardware, situation - specific.
04:13:35 <alise> 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 <alise> retro forth might be cool i guess if you can figure out the weird new version
04:14:21 <Sgeo> Gforth does not seem to be ANS devoted
04:14:39 <alise> I'm saying that your code shouldn't be ANS devoted.
04:15:24 <Sgeo> 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:16:01 <alise> ANS is basically irrelevant. Pretending it doesn't exist is a good start.
04:16:12 <alise> Oh sure, the implementations claim standards-compliance, but that's just to tick the boxes.
04:16:16 <alise> It's not important.
04:17:14 <Sgeo> It should be possible to write tail-recurse using return stack manipulation, right?
04:17:25 <pikhq> coppro: Oh, yeah. BTW. AM_LDFLAGS is the wrong place to place libraries.
04:17:34 <pikhq> Doing that will make it fail to build on modern distros.
04:17:34 <alise> Sgeo: Yes, of course.
04:17:38 <alise> RECURSE is tail-recursive, I think.
04:17:48 <alise> I think such a word exists, though.
04:18:13 <Sgeo> In which implementation? >:D
04:18:46 <alise> I think it's fairly common. I forget the name.
04:19:06 <alise> ColorForth has it without trying :P
04:19:08 <alise> but that's cheating
04:19:14 <alise> since it has way different :/; semantics
04:19:20 <alise> and conditionals (no else clause)
04:19:51 <Sgeo> I've been pondering hypothetical AW SDK bindings to a Forth
04:19:58 * Sgeo prepares to be slapped
04:20:14 <Sgeo> 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 <alise> : min 2dup > if swap then drop ;
04:21:44 <alise> if swap then drop!
04:21:45 <pikhq> ... Waitwaitwait. The makefile *doesn't* install the data.
04:22:26 <Sgeo> stack-effect comment for 2dup please?
04:22:58 <Sgeo> Wow, that's rather simple
04:23:04 <Sgeo> I would likely NOT think of that
04:23:20 <alise> well i saw : min 2dup < if drop else nip endif ; in the gforth manual
04:23:23 <alise> and it told me to rewrite it without else
04:23:29 <alise> so i just thought about the logic for a second
04:23:38 <alise> but yeah, it takes practice to get good at factoring...
04:24:18 <Sgeo> ...Gforth does define THEN , right?
04:25:34 <alise> i just quoted literally
04:26:57 <Sgeo> I should write PSOX in Forth
04:29:00 <pikhq> coppro: You know what? Fuck that damned thing's design to hell. It should be rewritten.
04:29:11 <pikhq> zzo38: You have license to do your NIH thing.
04:30:26 <alise> He needs to know how to create a DVI driver!
04:36:45 <Sgeo> AWCREATE S" auth.activeworlds.com" 6767 THROW VARIABLE INSTANCE INSTANCE !
04:37:20 <alise> why the hell did you write it like that
04:37:28 <alise> variable declarations go before other code kthx
04:37:38 <alise> why are you throwing there
04:37:49 <Sgeo> alise, because AWCREATE returns an error code
04:38:16 <Sgeo> No, that's how it works in the AW SDK
04:38:20 <alise> s" auth.activeworlds.com" 6767 aw-connect instance !
04:38:22 -!- pikhq has quit (Ping timeout: 276 seconds).
04:38:26 <alise> yes, but the AW SDK sucks, I think we can conclude.
04:38:33 <alise> also, hyphenated names, man
04:38:40 <Sgeo> Oh, right, parameters before the word
04:38:47 <Sgeo> That was a Forth thinking fail
04:38:51 <Sgeo> Not an AW SDK fail
04:39:42 -!- pikhq has joined.
04:39:43 <Sgeo> You still need a throw, or if you're going to ignore the return code, a drop
04:40:31 <Sgeo> Um, does throw attempt to interpret error codes?
04:46:19 <Sgeo> Haven't downloaded Gforth yet
04:47:42 <Sgeo> " 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 <Sgeo> Wht's wrong with f~ ?
04:47:52 <Sgeo> alise, not literally
04:48:02 <Sgeo> Just return stack stuff I don't understand
04:49:18 <alise> the floating point stuff is shit
04:49:20 <alise> i suggest not using it
04:49:22 <alise> it's really complex
04:49:24 <alise> floating point sucks anyway
04:53:04 <Sgeo> I already know not to use fp for currency, or anything requiring precise stuff
04:53:23 <Sgeo> Floating-point issues do have interesting consequences in Second Life
04:57:38 <Sgeo> The other programmer on the Project decided to use floating-point to store position, despite AW using ints...
04:58:24 <Sgeo> 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 <Sgeo> Meaning there are two ways to store positions, that must be converted between
05:01:19 <Sgeo> "and therefore this practice was been declared non-standard in 1999."
05:02:10 -!- alise has quit (Read error: Connection reset by peer).
05:15:47 -!- TTUser has joined.
05:16:00 -!- augur has quit (Remote host closed the connection).
05:16:12 -!- augur has joined.
05:16:25 <TTUser> so...what happens here
05:18:55 -!- TTUser has left (?).
05:31:06 <coppro> pikhq: I hate most of it
05:31:22 <coppro> 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 <pikhq> It amazes me that the US *still* has not converted to metric.
05:51:01 <pikhq> Come on you fools, just freaking do it.
05:52:23 <pikhq> The worst part is, a *lot* of things here are actually *dimensioned* in metric, but *sold* in customary units...
05:54:03 <pikhq> 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 <ais523> 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 <ais523> an LLVM-based tracing JIT for Brainfuck
10:37:55 <ais523> according to the comments, it's quite a bit slower than esotope
10:38:00 <ais523> oh, that was alise's comment
10:38:08 -!- wareya_ has changed nick to wareya.
10:38:16 <ais523> must have been discussed while I wasn't here...
10:41:47 <fizzie> 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 <fizzie> Don't remember seeing any discussion on-channel, but I don't always follow things very well.
10:43:16 <ais523> there's also the way esotope analyses idioms statically
10:43:28 <ais523> the only other compilers I know that do that are in-between for BF, and C-INTERCAL for INTERCAL
10:45:10 <ais523> 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 <fizzie> 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 <fizzie> 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 <ais523> does it fallback or break in the case where it isn't correct?
10:52:22 <fizzie> 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 <fizzie> 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 <fungot> fizzie: a small number of gp at the battle arena were done by a huge barrier of light.
10:54:23 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7* fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
10:55:01 <ais523> well, crashing cleanly isn't really breaking
10:55:25 <fizzie> 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 <ais523> well, the rest of us wouldn't realise it was nonsensical
10:55:54 <ais523> although we could probably guess
10:56:34 <ais523> and there's no real reason why you couldn't add it as an option alongside the English ones
10:57:45 <fizzie> `swedish That's true; after all, we already have a Swedish-speaking thing.
10:57:54 <HackEgo> Thet's trooe-a; effter ell, ve-a elreedy hefe-a a Svedeesh-speekeeng theeng. \ Bork Bork Bork!
10:58:12 <ais523> meanwhile, I wrote a fuzz-test for the C-INTERCAL optimiser last night
10:58:15 <ais523> and it's found bugs already
10:58:51 <ais523> 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 <fizzie> Hrm, the scripts I have for fungot seem to have some trouble with äös.
11:15:36 <fungot> 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:35:27 -!- sftp has joined.
11:42:50 -!- iGO has quit.
11:42:56 <ais523> 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 <ais523> unfortunately, there's exactly one actual binding precedent decision AFAIK, /Jacobsen v Katzer/
11:44:40 <ais523> 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 <wareya> The origin of code that was relicened doesn't matter as long as the relicense is complete
11:51:40 <nooga> if my project uses a GNU GPL lib, do i have to GPL the whole source?
11:52:30 <ais523> nooga: it depends on how tightly the library binds to the rest of the source
11:52:40 <ais523> but generally, GPL libs don't mix well with non-GPL source; that's why the LGPL exists
11:53:09 <nooga> my project is written in a script language, i just include the lib source and make several function calls
11:53:11 <ais523> there are "definitely illegal" and "definitely legal" combinations and a whole gray area in between...
11:53:40 <nooga> + it's optional, library is only for graphing, so the application works without it, may be treated as a plug-in
11:53:48 <ais523> nooga: are you using only documented APIs? and could the library function as a seperate module from the rest of the app?
11:54:06 <ais523> as in, connecting via RPC over the internet or something, in theory?
11:54:33 <ais523> 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 <asiekierka> oh whee, i'm downloading a webcomic to my PC
12:03:17 <ais523> I feel for you, having to wrestle with cmd scripting
12:03:25 <ais523> although hopefully wget's powerful enough that it isn't so bad
12:03:51 <ais523> (also, cmd finally started copying UNIX shell scripts in many respects, and became a lot better as a result)
12:06:14 <asiekierka> i already downloaded 37% of it (1000 strips)
12:07:25 <ais523> were you obeying the site's robots.txt
12:07:34 <ais523> if you do the download with a single wget command, it does that automatically
12:07:48 <ais523> but presumably if you have a separate wget command for each strip it doesn't
12:10:24 <asiekierka> i use a separate wget command for each strip
12:12:42 <ais523> what are the numbers of the first and last strip?
12:12:53 <ais523> and do the comic numbers include the hundreds, or not?
12:13:03 <ais523> I want to see how quickly I can write this in UNIX shellscrip
12:13:51 <asiekierka> ais523 - the first strip is 1.gif (hundreds number being 0)
12:14:02 <asiekierka> the comic numbers include the hundreds
12:14:23 <asiekierka> and thelast strip is 1000.gif (i'd assume the hundreds number would be 10 this time, but not sure)
12:15:07 <ais523> hmm... what about this: (for x in `seq 1 1000`; do echo http://example.com/comics/$(($x/100))/$x.gif) | xargs wget
12:15:42 <ais523> 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 <ais523> I forgot to end the loop
12:16:00 <ais523> still, that's a one-liner, and even does things like reusing HTTP connections
12:16:04 <ais523> you may as well go the rest of the way
12:16:11 <ais523> how long is your script, btw?
12:16:30 <asiekierka> for /L %%J IN (0,1,9) DO wget http://undefined.net/1/0/%1/%10%%J.gif
12:16:31 <asiekierka> for /L %%J IN (10,1,99) DO wget http://undefined.net/1/0/%1/%1%%J.gif
12:17:00 <ais523> but hmm, makes sense, but rather repetitive
12:17:10 <asiekierka> 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 <fizzie> Curl can do the sequence bit independently, but probably couldn't quite do the hundreds-numbers.
12:18:12 <fizzie> I'd have done a bash arithmetic for-loop instead of seq, but that's just me.
12:18:51 <fungot> asiekierka: that means there ain't no gettin' to him.).
12:18:53 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7* fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
12:19:00 <asiekierka> oh hey, my youtube style is still here
12:19:07 <fungot> Selected style: youtube (Some YouTube comments)
12:19:09 <fungot> asiekierka: holly shit this game could've been one of the controls during the cold war.
12:19:20 <ais523> fungot: and what was being controlled?
12:19:21 <fungot> 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 <ais523> now all we need is for fungot to post these on appropriate videos
12:19:36 <fungot> ais523: i'm still trying to slow the plain down. duke is still herself. gosh."
12:21:35 <asiekierka> I should make a youtube comment parser and make it download all comments for a list of like 1000 videos
12:21:53 <asiekierka> fizzie - would fungot lag at a style made with a 15-20MB text file?
12:21:54 <fungot> 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 <fizzie> No, it doesn't keep that stuff in memory.
12:26:07 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube*
12:26:14 <ais523> large memory wouldn't cause lag anyway, would it, assuming it uses some sort of hash table for fungespace?
12:26:19 <ais523> (and if it's running on cfunge, at least, it does)
12:27:29 <fizzie> The europarl sources are something like 80 megs, and the irclogs are reasonably huge too.
12:28:21 <fizzie> 115M model.bin.europarl 187M model.bin.irc
12:29:21 <fizzie> (The model size is somewhat proportional to the amount of text data, given the same sort of settings and so on.)
12:29:56 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
12:30:03 <fizzie> (In other news, my fungot installation seems to take ~600 megabytes of disk space.)
12:30:06 <fungot> 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 <fungot> 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:34 <fizzie> That's strange, it sent both replies to me.
12:30:47 <ais523> we clearly need to rescue these poor children from Western Fnord!
12:31:33 <fungot> Available: agora alice c64 ct darwin discworld europarl* ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
12:31:36 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
12:31:41 <fungot> asiekierka: that sounds a bit suspicious. scheme is a first."
12:33:17 <fizzie> Yes, "hello" sounds very suspicious.
12:33:31 <fizzie> Beware of ircers saying "hello".
12:33:32 -!- ais523 has quit (Remote host closed the connection).
12:44:08 <asiekierka> 1) grab the XML from http://gdata.youtube.com/feeds/api/videos/video ID/comments
12:44:42 <asiekierka> 3) iterate through all the <entry> tags getting the data inside the <content> tag
13:17:41 <asiekierka> 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 <fizzie> It might be a bit sed-specific... piping through tr -cd ' -~' seems to work here.
13:24:07 <fizzie> fis@iris:~$ echo -e '\x10foo\x90bar' | hexdump -C
13:24:07 <fizzie> 00000000 10 66 6f 6f 90 62 61 72 0a |.foo.bar.|
13:24:07 <fizzie> fis@iris:~$ echo -e '\x10foo\x90bar' | tr -cd ' -~' | hexdump -C
13:24:07 <fizzie> 00000000 66 6f 6f 62 61 72 |foobar|
13:24:48 <fizzie> For some reason sed here doesn't like "[^ -~]" as a character range.
13:26:25 <asiekierka> 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 <asiekierka> to download youtube comments and parse them into a fungot-compatible format
13:26:38 <fungot> 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:10 <asiekierka> 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:48:53 <asiekierka> i am now downloading each and every comment on Justin Bieber - Baby
13:50:20 <asiekierka> youtube's API just won't let you get more than 1000 comments
13:59:07 <asiekierka> i already downloaded like 6 very popular YT films
13:59:17 <asiekierka> 524KB of YouTube comments and more coming
13:59:57 -!- ais523 has joined.
14:00:44 <ais523> no you didn't, I'm still alive and the Earth still exists
14:01:01 <asiekierka> (up to 1000 from each video, YouTube API limitation)
14:01:12 <ais523> that's not as bad as destroying the entire universe...
14:01:19 <asiekierka> giving me currently 6000 comments of YouTube stupidity with more coming
14:07:30 -!- bsmntbombdood_ has joined.
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 <alise> 02:37:55 <ais523> 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 <alise> 02:47:12 <fizzie> That JIT thing does [-], but on the other one everyone does that.
14:30:26 <alise> the other one WHAT?
14:30:59 <fizzie> The other one hand. I don't know. I must've been confusion.
14:31:14 <fizzie> (For example, I'm a bit away even now.)
14:32:17 <alise> 03:42:56 <ais523> 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 <alise> refuse to help him if he does
14:32:34 <alise> at least, it won't be /your/ problem any more
14:33:10 <ais523> I don't /think/ he will
14:33:16 <ais523> he still thinks it's a dick move even if it's legal
14:33:23 <alise> 03:53:40 <nooga> + 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 <alise> 03:54:33 <ais523> 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 <alise> Stallman's lawyer agreed with him on that one
14:33:56 <alise> so I'd be very careful there
14:34:02 <alise> of course, nowadays there's libedit :)
14:34:17 <ais523> I think someone should put a server up somewhere which does libreadline over RPC
14:34:56 <ais523> 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 <ais523> and he hasn't answered that yet
14:36:58 <alise> ais523: he's trying to comprehend the concept of "indirection"
14:37:01 <alise> it may take a while
14:37:27 <alise> <ais523> I think someone should put a server up somewhere which does libreadline over RPC ;; ioctl over HTTP? :D
14:37:34 <ais523> 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 <ais523> alise: it can send the syscalls back
14:38:04 <ais523> also, readline needs ioclts?
14:38:17 <ais523> /curses/ doesn't need ioctls except to figure out the size of the screen
14:39:11 <alise> ais523: Sure it does, to uncook.
14:39:20 <alise> Unless it uses termios or whatever it is these days.
14:39:53 <alise> also, readline needs to know the width of the screen
14:41:41 <alise> 06:00:08 <asiekierka> i just did the worst thing ever
14:41:41 <alise> 06:00:44 <ais523> no you didn't, I'm still alive and the Earth still exists
14:41:52 <alise> what if everything else but the earth was destroyed?
14:42:27 <alise> 00:44:38 * coppro wants to write a BF compiler in sed
14:42:45 <ais523> I think I wrote a Thue-to-sed interpreter in sed
14:42:56 <alise> (My patented today-yesterday-{start of today} log reading method!)
14:43:22 <ais523> treating the "nondeterminism" as "unspecified" rather than "multithreaded" or "backtracking" or "random"
14:43:47 <alise> 06:36:42 <cheater> so
14:43:47 <alise> 06:36:49 <cheater> i'm drinking organic cola
14:43:47 <alise> 06:36:56 <cheater> and it's equally terrible as normal cola
14:43:47 <alise> make some OpenCola!
14:43:56 <alise> it's probably awful!
14:44:18 <alise> I should get around to making some Swig Ingest Drink, that was a nice recipe.
14:45:04 -!- dbc has joined.
14:56:42 <asiekierka> fizzie - can you add in a new style in about 5 minutes?
14:56:59 <asiekierka> and it'd be nice if you also had my old "youtube" style in original .txt form somewhere
14:57:08 <asiekierka> 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 <alise> asiekierka: do you know anything about freedos?
15:23:08 <asiekierka> but i dont know about any specific features of it
15:23:31 -!- derdon has quit (Ping timeout: 265 seconds).
15:23:46 <alise> asiekierka: will it run a .COM that does nasty low-level tricks? to boot an operating system
15:24:01 <alise> i'll just use a boot disk
15:24:15 <asiekierka> alise: it might, but FreeDOS is much more picky about things
15:24:40 <alise> fff, bootdisk.com distributes as EXE
15:25:25 <fizzie> Hey, I've been irritated by that too.
15:25:53 <alise> 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 <alise> "Alternatively, Unix can copy COLOR.COM to a bootable floppy with cp or dd."
15:26:19 <fizzie> There's that "Non-Windows Based Image Files W/ImageApp" bit on bootdisk.com though.
15:26:25 <alise> you could have told me it didn't need DOS earlier, Chuck.
15:26:33 <alise> fizzie: there's also http://www.allbootdisks.com/download/dos.html
15:27:01 <alise> -floppy COLOR.COM feels so weird
15:27:17 <alise> there is no floppy
15:27:23 <fizzie> 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 <alise> yeah but -floppy COLOR.COM should work in a sufficiently lax VM, right?
15:28:04 <fizzie> Probably, if it's boot-sector-friendly.
15:28:18 -!- cpressey has left (?).
15:28:35 <alise> 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 <fizzie> It's "-vga type", but I'm not sure what's the right type.
15:29:34 <fizzie> "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:31:13 <fizzie> 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 <alise> Gah, it is still the freezy.
15:31:36 <alise> To answer my own question, I have got my modified 800x600 colorForth to _run_
15:31:36 <alise> under qemu-0.7.0. Won't boot 'cause the qemu emulated floppy interface is not
15:31:36 <alise> set up at fd chip level. Probably would work if the floppy I/O was BIOS based.
15:31:44 <alise> Instead, I have a bare DOS boot image with just io.sys, msdos.sys, command.com
15:31:45 <alise> and c4.com. Tell qemu to boot this floppy image and when it comes up to a DOS
15:31:45 <alise> command line, execute c4.com. This loads into memory and then copies 64k to
15:31:45 <alise> address 0 and runs colorForth, so the floppy I/O is never used.
15:32:16 <alise> fizzie: I don't have a mkfs.msdos...
15:33:05 * alise replaces FDISK with COLOR to avoid doing all that.
15:33:18 <fizzie> (In other news, I was about to say: "Ot\ns om dpsfstpps.")
15:33:33 <fizzie> (In case you were wondering about the "Ot".)
15:33:36 -!- cpressey has joined.
15:33:48 <alise> Wonky QEMU scaling in effect!
15:33:57 <alise> Time to figure out this 27-key Dvorak system!
15:34:14 <alise> (Seriously; it uses these keys: http://colorforth.com/keys.html as Dvorak)
15:34:24 <alise> Apparently the entire right is digits and ?, the left is a bunch of punctuation, z and j
15:34:32 <alise> and I have ".com" and "a"; for what, I know not
15:34:49 <alise> "Mount a formatted floppy. Contents irrelevant." How, you fucker?!
15:35:12 <alise> Oh goody, left alt changes it into actual letters mode.
15:35:41 <alise> "2?" WHY DO YOU NOT RECOGNISE 2
15:36:11 <alise> Yay, dup does something.
15:36:29 <alise> Whoops, I loaded the editor and QEMU crashed.
15:36:46 <alise> qemu: fatal: Trying to execute code outside RAM or ROM at 0x83672a33
15:38:43 <alise> "mount?" WHY ISN'T THAT THE WORD TO MOUNT WHY WHY WHY
15:38:52 <alise> Oh hell let's just assume it's mounted
15:39:08 <fizzie> qemu's monitor (ctrl-alt-2 or some-such) can swap floppies.
15:39:18 <alise> YAY SAVE DOES SOMETHING
15:39:34 <alise> NAMELY APPARENTLY CRASH THE SYSTEM
15:39:35 <fizzie> (Or "qemu -stdio", which is more convenient; then you can use the original terminal to fiddle with the monitor.)
15:40:34 <alise> Now I get to figure out the editor
15:40:53 <alise> "In case of difficulty" --colorForth website
15:41:21 <alise> [[The qwerty word 'save ' is an alias for the colorForth word (terminal space).]]
15:42:47 <alise> http://colorforth.com/user.htm Thank god, it has a manual
15:43:06 <alise> "You cannot backspace characters (they've already been packed)."
15:43:35 <cpressey> Wow, colorForth is even more... Moorey than I thought. Thank you alise for guinea-pigging it.
15:44:06 <alise> 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 <alise> Sometimes, it crashes.
15:44:56 <alise> I think this thing can't run without a proper floppy with it on.
15:46:00 <cpressey> <ais523> 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 <alise> 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 <alise> THIS IS THE FIRST THING I UNDERSTAND ABOUT COLORFORTH
15:46:17 <alise> HOW DO I EXIT THE EDITOR
15:47:28 <cpressey> So... esr has taken up 18th-century haberdashery, I take it?
15:48:05 <alise> chuck moore is the most idiotic visionary ever
15:48:10 <alise> idiotic, genius visionary
15:49:00 <cpressey> alise: Is this because I mentioned it last night...?
15:49:09 <alise> No, just the whole Forthy kick.
15:49:23 <alise> Turns out I'm a machine of Big Forth, not a Chuckist.
15:49:30 <alise> Or, at least, Medium-Sized Forth.
15:50:34 <cpressey> I don't think I can do Forth at all at this point. :/
15:50:54 <alise> It's no fun unless it's on the metal, anyway.
15:51:03 <alise> Which is why I'm so, so tempted to make Alise's Wonderful Forth OS Yay.
15:51:49 <alise> 14:41:17 <Gregor> .za is to South Africa as .ch is to Switzerland.
15:51:49 <alise> 14:41:26 <Gregor> In that it's not actually short for any /official/ name.
15:51:53 <alise> Very incorrect, past-Gregor!
15:52:24 <alise> "Confœderatio Helvetica" is used as the neutral form of the name "[the] Swiss Confederation", due to its multilingualness!
15:52:41 <alise> Because nobody speaks Latin, so it's equally horrible for everyone.
15:55:07 -!- Phantom_Hoover has joined.
15:55:17 <alise> cpressey: Actually what I'm really irritated at now is just how bloated OSes are.
15:55:42 <alise> 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 <pikhq> Also, South Africa was once known as "Zuid-Afrika".
15:59:45 <pikhq> It just stopped being the official name when they acknowledged that Afrikaans had ceased to be mutually intelligible with Dutch.
16:01:34 <pikhq> And the CCTLDs come from ISO country codes. When these were set, it was still "Zuid-Afrika", rather than "Suid-Afrika".
16:02:08 <alise> pikhq: You said that at the time.
16:02:12 <alise> Well, in less detail.
16:02:17 <alise> And you didn't mention the ISO connection.
16:02:27 <alise> (So you thought it was just a weird archaicism.)
16:02:32 <alise> This was in March.
16:02:43 <pikhq> Ah, yes. Time ago.
16:12:19 <alise> 17:57:45 <coppro> ''=~('('.'?'.'{'.('`'|'%').('['^'-').('`'|'!').('`'|',').'"'.('`'^'%').('{'^'"').('`'^'%').('{'^'[').('`'^'$').('{'^')').('`'^'/').('{'^'+').('{'^'(').'"'.'}'.')')
16:16:07 <asiekierka> i'm just not on when fizzie is talking
16:25:08 -!- relet has joined.
16:25:16 <alise> It's low-level, stack based, and all single characters! Wait, that's FALSE.
16:33:05 <alise> 12:30:34 <fungot> fax: maybe you shouldn't have mentioned your win by paradox in philosophy? bah, humbug :) don't have that
16:33:05 <fungot> alise: maybe i should put lisp-poetry in fnord furniture too much or you'll crack) has in ( mz)scheme?
16:33:11 <alise> well, it does have some philosophical issues...
16:37:39 -!- MigoMipo has joined.
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 <alise> Phantom_Hoover: in march
17:07:19 <cpressey> Weh, fax was here? Or are you looking at really old logs, alise?
17:08:37 <cpressey> Or, if I were to believe what was just said
17:10:50 -!- augur has quit (Remote host closed the connection).
17:19:14 <Phantom_Hoover> 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 <cpressey> fungot: Watch the steam coming off my head.
17:23:23 <fungot> cpressey: many people prefer to avoid it whenever possible. " formal language", maybe.
17:26:03 <fizzie> 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:28:07 <roblo> PUTAIN DE MERDE YA QUELQUN QUI VA REPONDRE!!!
17:28:43 <roblo> ya meme pas un bot!!!
17:29:12 <roblo> jai trouv ce chan sur wikipedia
17:30:53 <roblo> can you help me for brainfuck
17:31:23 <roblo> I look for an interpreter in real time
17:31:54 <relet> an interactive one?
17:32:43 <roblo> for he can look my keybord
17:33:01 <relet> 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:56 <fizzie> Do you want , to wait until keypress or what?
17:35:59 <roblo> I want he knows when I press a key
17:36:21 <fizzie> Phantom_Hoover: Asimov's, or something else? It's the sort of generic word I expect others have used too.
17:36:41 <Phantom_Hoover> fizzie, Asimov's is the only one I would use unqualified.
17:37:56 <alise> roblo: so unbuffered?
17:38:03 <alise> put termios code in
17:38:31 <fizzie> Alise a bit unportable, too.
17:40:35 <fizzie> 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:53:26 -!- oerjan has joined.
17:55:05 <oerjan> 09:11:08 <Phantom_Hoover> I thought oerjan unbanned (h(im)|(er))|(it)?
17:55:46 -!- sftp_ has quit (Ping timeout: 276 seconds).
17:59:46 -!- sftp_ has joined.
18:02:13 <fizzie> (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 <fizzie> Just say h(im|er)|it, or h(?:im|er)|it if you want to use the common non-capturing group thing.
18:04:14 -!- cal153 has joined.
18:27:29 -!- augur has quit (Ping timeout: 240 seconds).
18:35:38 <Phantom_Hoover> alise, you know how you said that there was a Coq proof of Gödel's first incompleteness theorem?
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.
19:02:57 <fizzie> It's the Hoover'th Phantom.
19:08:50 -!- augur has joined.
19:25:15 -!- derdon has joined.
19:37:38 <alise> <Phantom_Hoover> alise, you know how you said that there was a Coq proof of Gödel's first incompleteness theorem?
19:37:58 <cpressey> 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 <alise> Phantom_Hoover: http://r6.ca/Goedel/goedel1.html
19:38:07 <alise> cpressey: But assembly is crap.
19:38:09 <alise> Forth is wonderful.
19:38:26 <alise> 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 <alise> te. His work will be included in the next release of HOL Light.
19:39:23 <alise> 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 <alise> So that's pointless.
19:39:31 <cpressey> alise: Well, depends on the arch, I suppose. 6502 > Z80 > Forth > 68000, maybe.
19:39:47 <alise> cpressey: Duuude, no way.
19:39:51 <cpressey> Actually, I don't know about Z80. Never got into it much.
19:39:55 <alise> You can't turn 6502 into the perfect language.
19:40:05 <alise> It's at the lowest level and stays there.
19:40:18 <cpressey> 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 <Phantom_Hoover> alise, the important thing is that I know Coq, and I don't know the Boyer-Moore theorem prover.
19:42:06 <alise> I was merely quoting from the page.
19:42:54 <cpressey> 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 <alise> cpressey: Scheme is so limited in that respect compared to Forth, though! And Scheme code is so big.
19:43:46 <alise> Besides, Scheme relies on other systems below it, a runtime etc.
19:43:51 <alise> Forth is entirely self-reliant.
19:43:54 <alise> Like an adult's language!
19:43:58 <Phantom_Hoover> How do I stop Emacs from creating those irritating #backups# when I tell it to quit without saving a file?
19:44:23 <alise> Phantom_Hoover: http://amitp.blogspot.com/2007/03/emacs-move-autosave-and-backup-files.html
19:44:30 <alise> copy the code for GNU Emacs into your .emacs
19:44:35 <alise> this will also move foo~ files elsewhere
19:44:43 <alise> and #foo# will still exist, but moved out of the way
19:45:04 <alise> Phantom_Hoover: it just goes into /tmp, dude
19:45:09 <alise> they're useful for recovering files you lose
19:45:17 <alise> Phantom_Hoover: ...
19:45:19 <alise> THE CODE makes them do that
19:45:23 <alise> Copy the code from that blog post.
19:45:27 <alise> And they will go into /tmp.
19:45:40 <alise> Incidentally, the author of that proof, Russell O'Connor, has a great blog: http://r6.ca/blog/
19:45:44 <alise> Very interesting posts.
19:46:00 <cpressey> <alise> 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 <alise> cpressey: Because it's so big, it would never finish printing.
19:46:51 <cpressey> Bah. Oh right, Goedel encoding uses powers.\
19:47:44 <alise> ColorForth makes me weep.
19:48:04 <alise> Huh, RetroForth's homepage is hosted on TUNES.
19:48:09 <alise> Just like our logs! Buddies!
19:48:19 <ais523> on the subject of Emacs autobackups, I send them to a different directory
19:48:23 <alise> They share our log URLs!
19:48:26 <cpressey> alise: colorForth comes from a guy who proposed a one-handed, five-switch input device, iirc.
19:48:26 <alise> (but with retro instead, ofc)
19:48:39 <ais523> and the reason is to recover from an accidental rm *
19:48:39 <alise> ais523: yeah, the blog post I linked has code for GNU Emacs and XEmacs to do that
19:48:50 <alise> cpressey: actually, /those/ are a good idea
19:48:57 <alise> although you generally want more than five switches
19:49:02 <alise> (multiple directions of pushing for each finger)
19:49:08 <alise> keyboards are an ergonomic disaster, we're just used to them.
19:49:24 <ais523> alise: it depends on what you're using them for, really
19:49:24 <alise> Anyway, colorForth is awesome, I just can't use it.
19:49:34 <cpressey> Oh, but 5 is enough for 32 signals, which is, hell, MORE THAN YOU NEED (seems to be the Moorian logic.)
19:49:43 <pikhq> Cording keyers are awesome.
19:49:52 <alise> I think Moore did something horrible to cpressey.
19:50:02 <alise> pikhq: with two hands you can actually have no chording
19:50:07 <alise> since you have five buttons per hand
19:50:12 <alise> flick up, down, left, right, and press down
19:50:22 <alise> there's a device which does this, very expensive but very popular with everyone who uses it
19:50:26 <alise> fits on to your chair, your hand nests in it
19:50:26 <pikhq> alise: Yeah, but with one hand you can type with one hand.
19:50:28 <alise> has a built-in mouse too
19:50:59 <alise> pikhq: Someone's probably marketed a one-hand keyboard directly: "the Masturboard!"
19:51:01 <pikhq> And, yeah: traditional keyboards are an absolute ergonomic *nightmare*.
19:51:14 <alise> http://s3.retroforth.org/index.html Hey look, it's the site for classic RetroForth.
19:51:18 <alise> That's more like it.
19:51:29 <pikhq> Coming about soly because of the needs for traditional typewriters.
19:51:53 <cpressey> "Running on a virtual machine..." sigh.
19:52:47 <alise> cpressey: Yes, well, it's closer to real Forth than gforth.
19:52:57 <alise> Since with gforth @ and ! are extremely limited, obviously.
19:53:02 -!- augur has quit (Remote host closed the connection).
19:53:24 <alise> btw, fun slightly-insane colorForth fan: http://colorforthray.info/
19:53:31 -!- augur has joined.
19:53:32 <alise> Gene Ray, colorForth Ray...
19:54:11 <cpressey> colorForth: the official language of eye strain.
19:54:41 <augur> cpressey: colorForth: the official language of optometrists
19:55:07 <alise> I just realised something... I bet LoseThos works in QEMU.
19:55:09 <cpressey> 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:23 <alise> 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 <cpressey> Indeed, that would be both my problem and my solution.
19:56:12 -!- augur has joined.
19:56:38 <pikhq> cpressey: You know that colorForth does not actually require poor color choices, right?
19:56:49 <alise> [ehird@dinky losethos]$ qemu-system-x86_64 -cdrom LTCD.ISO
19:56:50 <alise> [boot crash boot crash boot crash boot crash]
19:56:51 <alise> I think it hates me.
19:57:00 <pikhq> It merely requires *some* visual distinction. Underlining, italics, strobe-lighting, etc.
19:57:14 <alise> Okay, what insane thing does LoseThos do...
19:57:26 <alise> Nope, -vga std doesn't help.
19:57:28 <cpressey> 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 <pikhq> Or just two fonts.
19:57:42 <pikhq> cpressey: That's called "syntax highlighting".
19:57:47 <alise> cpressey: Pretty much
19:57:50 <alise> But it's also dependent on the OS
19:57:53 <alise> And who the hell would use the OS?
19:58:46 <cpressey> pikhq: So what you're saying is that the VERY NAME OF THE LANGUAGE IS A LIE.
19:59:27 <alise> Let's talk about something funner.
19:59:36 <alise> Anyone wanna help me figure out why LoseThos doesn't work in QEMU?
19:59:47 <cpressey> 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 <alise> cpressey: Funner, not funnier. :P
20:00:00 <alise> -m megs set virtual RAM size to megs MB [default=128]
20:00:03 <alise> Clearly it needs 4 gigs.
20:00:29 <alise> -m 2048 makes it boot more, but now it won't do anything.
20:00:48 <alise> Uh, LoseThos? Helloooo?
20:01:44 <alise> [[The name, "LoseThos", was inspired by the scene in the movie, Platoon, where
20:01:44 <alise> Elias says to Chris, "S**tcan this and this...", referring to dorky standard
20:01:44 <alise> issue equipment.]]
20:01:49 <alise> Sense making of this: none.
20:02:40 <alise> qemu-system-x86_64 -m 512 -cdrom LTCD.ISO
20:02:54 <alise> pikhq: ais523: I have LoseThos running in a window right now.
20:02:59 <alise> Wow, the titles really do scroll constantly.
20:03:38 <alise> So many things are blinking and scrolling.
20:03:44 <alise> I have a headache.
20:04:23 <alise> Is the mouse cursor meant to be this slow? Who knows?
20:04:55 <alise> it uses #include to run files from the shell
20:05:30 <augur> alise: stop taking drugs
20:06:25 <alise> I'm taking LOSETHOS
20:06:33 <alise> which is EVEN BETTER
20:07:24 <alise> it's truly beautiful
20:07:32 <alise> i mocked it from a distance
20:07:47 <alise> it's like being touched by jesus
20:09:04 <alise> like using LoseThos
20:09:38 <Phantom_Hoover> The New Testament could be made much more entertaining.
20:12:37 <ais523> I can't remember what LoseThos is
20:12:42 <ais523> although I think i knew once
20:12:56 <Phantom_Hoover> It seems to be what you get when you take the OS out of an OS.
20:13:04 <alise> ais523: the crazy 640x480x4 64-bit operating system
20:13:21 <ais523> that's an...unusual juxtaposition
20:13:26 <alise> with the loony author who spammed bizarre Christian stuff on reddit
20:13:32 <alise> like how he talked to god using his random-word outputter
20:13:33 <ais523> although I am used to 640x480x4, it's what I grew up in
20:13:35 <alise> Phantom_Hoover: yes, 16 colours
20:13:46 <alise> ais523: it's well-known for being laughed at.
20:13:51 <alise> And my GOD it FLASHES.
20:13:56 <alise> Every window name scrolls across the itle bar, constantly.
20:14:00 <alise> "MENU" flashes, constantly.
20:14:05 <alise> Every cursor in every window flashes constantly.
20:14:09 <alise> Minimised windows appear to flash constantly.
20:14:17 <alise> Woo, I crashed it.
20:14:18 <ais523> I take it it isn't just using alternate-frame dithering to get more colors?
20:14:27 <alise> ais523: it DOESN'T get more colours
20:14:30 <ais523> happy australian mailman reminders day!
20:14:33 <alise> it's legitimately flashing
20:15:05 <alise> ais523: right now i'm just trying to get it to install, which is difficult as it wants a partition
20:15:19 <alise> the auto-partitioner appears to be working
20:15:21 <Phantom_Hoover> That 300K C++ file which ostensibly implemented Battleships?
20:15:28 <alise> although it creates 3 identical losethos partitioners, for some bizarre reason
20:15:31 <alise> Phantom_Hoover: oh yes, that thing
20:15:46 <alise> ok... you've done that part... display the next part of the installer please now losethos
20:15:48 <ais523> Phantom_Hoover: what did it /actually/ implement?
20:15:55 <ais523> also, how much of that 300K was encoded binary?
20:16:04 <Phantom_Hoover> ais523, some weird game that intersected somewhat with Battleships.
20:16:28 <alise> wow, there's an XcolorForth, for X11
20:16:31 <Phantom_Hoover> It implemented all games of Battleships in which Player 1 wins and no illegal moves are attempted.
20:16:47 <alise> what if player 1 lost?
20:21:20 <Phantom_Hoover> Actually, not only was that Battleships game only ostensibly Battleships, it was only ostensibly C++.
20:23:23 <alise> Yay, LoseThos is actually formatting.
20:23:36 <alise> Anyone want to golf a TCP/IP stack?
20:23:48 <Phantom_Hoover> I am going to install this and try to compile that game.
20:24:33 <alise> Phantom_Hoover: It has a VMWare install mode that should work with VMWare.
20:24:48 <alise> That's it, I'm going to partition with fdisk
20:26:58 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
20:27:04 <fungot> Phantom_Hoover: published july 1922 in home brew vol. 1, no. 5, p. fnord.
20:27:08 <fungot> 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:27 <fungot> Phantom_Hoover: when fnord the events of that horrible good friday of the previous year.
20:27:44 <fungot> Phantom_Hoover: written sep 1922 i lived a very normal life of work and recreation. there
20:29:46 <alise> IT IS INSTALLING!!!!!
20:29:51 <alise> Phantom_Hoover: I don't have kvm either.
20:30:05 <alise> He thinks he talks to God with his program that outputs random words.
20:30:13 <alise> Phantom_Hoover: Do you want to know how to install it with QEMU?
20:30:18 <alise> I can give you complete instructions.
20:30:25 <alise> (It's not easy if you don't know how.)
20:30:30 <Phantom_Hoover> alise, I assume it requires 64-bit virtualisation in software.
20:30:37 <alise> Just install QEMU.
20:30:47 <alise> Yes; it's fast enough.
20:30:51 <alise> But it's more than that.
20:30:56 <alise> That's not the installation process.
20:31:29 -!- madbrain2 has quit (Ping timeout: 240 seconds).
20:33:05 <alise> It's his mega-super C-alike.
20:33:44 <alise> Or good OS design.
20:34:25 <Phantom_Hoover> But what if you want your programs to screw around with the contents of 0x0? Inferior OSes lack this feature!
20:35:32 <alise> Phantom_Hoover: http://pastie.org/1129702.txt?key=q8chaljltwsiclmbchw3cq
20:35:38 <alise> Phantom_Hoover: How to install and run LoseThos using QEMU.
20:36:00 <alise> The mouse is so slow it isn't funny.
20:36:29 <pikhq> void *i = NULL;while(*i++=*NULL);
20:36:52 <alise> Phantom_Hoover: Pah, colorForth can do that!
20:39:35 -!- augur has quit (Remote host closed the connection).
20:40:01 -!- augur has joined.
20:40:07 <pikhq> I'm pretty sure LoseThos has malloc.
20:40:14 <pikhq> With a single heap, mind.
20:40:58 <alise> It's probably MemAlloc or something.
20:41:22 <alise> I'm surprised the guy actually managed to code something this, you know, "polished".
20:41:37 <alise> It doesn't randomly crash or anything, it has a ton of formatted debugging output, it has an automatic installer...
20:41:42 <alise> Phantom_Hoover: Did you follow my instructions?
20:41:45 <alise> Or is this post-install?
20:41:54 <alise> "You can adjust the mouse movement rate" YES PLEASE
20:42:00 <alise> Phantom_Hoover: Follow my instructions and don't do anything else, and it'll work fine.
20:42:11 <alise> The HD selection part is a bit difficult. Pay attention there.
20:42:16 <alise> I ran into problems with it.
20:42:25 <alise> YES I GOT RID OF WORDSTAT
20:42:28 <alise> Worst completion system ever
20:42:47 <alise> "Adjust these to set mouse move scale" yes plz ^_^
20:44:45 <alise> Phantom_Hoover: this is the most amazing thing ever
20:44:53 <alise> it's like i finally understand life
20:45:17 <alise> Phantom_Hoover: did you do my fdisk stuff properly?
20:45:50 <alise> To create a new partition.
20:45:54 <alise> It's the command do.
20:47:01 <alise> You are using Linux, right?
20:47:15 <alise> Phantom_Hoover: OK, wait.
20:47:24 <alise> Do the dd thing again, then run fdisk hd and tell me what it outputs.
20:47:31 <alise> My fdisk might be different to yours.
20:47:59 <Phantom_Hoover> Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
20:47:59 <Phantom_Hoover> Building a new DOS disklabel with disk identifier 0xc009eb3c.
20:47:59 <Phantom_Hoover> Changes will remain in memory only, until you decide to write them.
20:47:59 <Phantom_Hoover> After that, of course, the previous content won't be recoverable.
20:47:59 <Phantom_Hoover> Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
20:48:04 <Phantom_Hoover> WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
20:48:06 <Phantom_Hoover> switch off the mode (command 'c') and change display units to
20:48:18 <alise> That's ok, that's absolutely fine.
20:48:26 <alise> Well, and then enter.
20:48:37 <alise> Then press enter until you're back at the Command prompt.
20:48:42 <alise> Phantom_Hoover: Howso?
20:51:45 <alise> Phantom_Hoover: How about I give you my fdisk binary? :P
20:51:52 <alise> You're on 64-bit, yes?
20:52:16 <alise> LoseThos is well worth it, btw.
20:52:20 <alise> Phantom_Hoover: http://filebin.ca/ztskmb/fdisk
20:53:03 <alise> fdisk (util-linux-ng 2.18)
20:53:07 <alise> Mine's less sucky. Ha.
20:53:11 <alise> The binary should work.
20:54:05 <alise> Wowww using this thing is such a crapshoot.
20:56:13 <alise> I forgot that in my guide.
20:56:45 <alise> http://pastie.org/1129751.txt?key=sia4cjdcp4hkckxdpnaa Guide with p in it.
20:57:23 <alise> Wow, apparently I have multiple accounts now.
20:58:05 <alise> This is physically painful to use.
21:02:58 <alise> oklo is insane but in a nice way
21:03:00 <alise> this guy is just insane.
21:04:37 <cpressey> Jeez, one meeting and the scrollback size doubles.
21:04:51 -!- yorick has quit (Read error: Operation timed out).
21:05:39 <Phantom_Hoover> And I was doing something vaguely productive before you mentioned this.
21:06:05 <Phantom_Hoover> "* 64-bit compiler/assembler. Nothing is "interpreted.""
21:06:59 <alise> Like SBCL, only crazy.
21:07:08 <alise> http://www.reddit.com/user/losethos
21:07:12 <alise> dunno where the God program is
21:07:15 <alise> he might have got banned
21:07:56 <Phantom_Hoover> http://forum.osdev.org/viewtopic.php?f=11&t=18636 ← ahahaha.
21:08:35 <alise> ld: i386 architecture of input file `color.o' is incompatible with i386:x86-64 output
21:08:40 <alise> worst binary format EVER
21:09:07 <Phantom_Hoover> But some of his insanity touches slightly on our insanity...
21:09:55 <Phantom_Hoover> Like everything running in ring 0, and the JITing, and the 64-bitness.
21:10:06 <alise> Yeah -- I bet he likes food, and breathing too.
21:10:21 <alise> 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 <cpressey> Wait, so, the shell is this CPZ language, and what you enter is compiled?
21:10:45 <alise> Like Forth, only insane.
21:11:25 <cpressey> OK, insane but in a non-wonderful fashion.
21:11:53 <cpressey> I dunno, someone who intentionally designs a GUI with constant blinking.
21:12:08 <cpressey> Probably has his ocular nerves wired up in a special way.
21:12:27 <cpressey> Sounds pretty wonderful to me, for some value of wonderful.
21:14:16 <cpressey> I need to add a "crackpot" tag to my site and put the LoseThos and Laws of Form links under it.
21:15:13 -!- yorick has joined.
21:15:34 -!- alise has quit (Read error: Connection reset by peer).
21:15:40 -!- yorick has changed nick to Guest4213.
21:15:54 <cpressey> Phantom_Hoover: Yeah, you know. Laws of Form.
21:16:03 -!- Guest4213 has quit (Changing host).
21:16:04 -!- Guest4213 has joined.
21:16:30 -!- alise has joined.
21:16:40 <alise> One system crash just OBLITERATED my /usr/share/man/man3.
21:16:42 <alise> It is not there any more.
21:17:01 <alise> /lost+found is now very well-populated.
21:17:04 -!- Guest4213 has changed nick to yorick.
21:17:16 <alise> I don't know; this program must have a destroy_all_files() function somewhere!
21:17:21 <alise> (I ran it as root.)
21:17:23 <cpressey> I am LoseThos. Fear me! I shall eat your stdlib manpages.
21:17:36 <alise> cpressey: Oh dear God.
21:18:48 <alise> he claims to have proved several things
21:18:51 <alise> such as 4ct, riemann
21:18:57 <alise> and also that the computer proof of 4ct is wrong
21:19:39 <alise> ... oh dear; something appears to have forgotten that I disabled that god damn PC speaker.
21:19:52 <cpressey> 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:38 <cpressey> 'Twas my entry for the Essies one year, when that contest was still a-running.
21:21:15 <fizzie> The National Do Call, Nocturnally Call registry.
21:21:16 <alise> lrwxrwxrwx 1 root root 18 Aug 10 11:49 I465196.RCN -> CMS_get0_type.3.gz
21:21:32 -!- Wamanuz2 has joined.
21:21:34 <alise> man displays these pages.
21:22:56 <alise> The power of this one program, however, suggests something awesome.
21:23:15 <alise> We could make a hosted-in-Linux bootloader, like LOADLIN in the days of yore (DOS program that booted Linux).
21:23:25 <alise> Phantom_Hoover: The program is a random program that, when ran as root, crashed my system.
21:23:29 <alise> This is my local man.
21:23:40 <alise> It displays the files in /lost+found, which once were in /usr/share/man/man3.
21:23:44 <alise> Now they have lost their dignity and filenames.
21:24:06 <alise> XcolorForth; it's meant to run colorForth from Linux.
21:24:14 <alise> I guess it really hates 64-bit machines.
21:24:34 -!- Wamanuz has quit (Ping timeout: 276 seconds).
21:25:48 <Phantom_Hoover> Wow, the WP article on the Laws of Form seems to be biased crap.
21:26:16 <Phantom_Hoover> "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 <Phantom_Hoover> ic, Boolean algebra, and arithmetic, and the philosophy of language and mind."
21:27:04 <cpressey> alise: Was going to say some crap about writing my own OS in Forth. Really, just crap though.
21:27:12 <alise> cpressey: No, no, do say.
21:27:43 <alise> 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 <Phantom_Hoover> 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 <cpressey> 1 Write own Forthoid in Forth 2 Write kernel in Forthoid 3 Write VM for Forthoid in Forthoid to support virtualization?
21:29:05 <alise> 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:20 <alise> cpressey: You do realise 90% of writing Forth is extending it to become a Forthoid?
21:29:31 <cpressey> alise: I've seen a TCP/IP stack in a few screens of colorForth... somewhere.
21:29:41 <cpressey> alise: Yes, of course. You do remember I said "crap"?
21:29:49 <alise> 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:30:29 <alise> 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 <alise> Which isn't the most exciting plan, but it'd definitely be fun.
21:30:59 <alise> MenuetOS can go suck my Forth.
21:31:04 -!- myndzi has quit (Ping timeout: 276 seconds).
21:31:09 <alise> (Actually, I'm incredibly envious of the MenuetOS author. Takes skill.)
21:31:21 <alise> You could argue that it's a better OS than Linux!
21:32:02 <fizzie> 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 <alise> 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 <alise> Entirely in assembly!
21:33:07 <alise> Oh yeah, and it fits on a floppy.
21:33:41 <fizzie> (Of course kexec trickery might not lead to the evaporation of your stdlib manpages, so there's that downside to consider.)
21:34:47 <alise> 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 <alise> Possibly zero out the kernel if you have to.
21:35:10 <alise> The fun bit there, of course, is making the kernel commit suicide.
21:36:28 <fizzie> I'm not sure how you get to supervisor mode from userland code without doing something very nonstandard.
21:36:53 <fizzie> Of course if you're in it for the awesome, it's a different matter.
21:37:19 <alise> fizzie: You're root, so you can crash the system, right?
21:37:22 -!- asiekierka has quit (Ping timeout: 276 seconds).
21:37:27 <alise> So you can basically do whatever the fuck you want to memory.
21:37:36 <alise> no, that was to fizzie
21:37:42 <alise> Phantom_Hoover: So you can stop it switching out your task.
21:37:49 <alise> Other OSes kind of like to be the only guy in town.
21:37:52 <alise> Also, that's the fun part.
21:38:12 <alise> LOADLIN had it easy, since there was no real DOS kernel; it was basically a big library.
21:38:18 <Phantom_Hoover> This is getting near that CoreWars fanfic I want written.
21:39:21 <fizzie> 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 <fizzie> It's just that kexec is explicitly designed for handing control over. (How boring!)
21:39:44 <alise> Phantom_Hoover: CoreWars slash!
21:39:48 <alise> fizzie: But it's so UNGENERAL.
21:39:49 <Phantom_Hoover> Well, a uid 0 process can fiddle with the kernel's memory, can't it?
21:39:53 <alise> How can I load LoseThos from it?
21:40:07 -!- Wamanuz has joined.
21:40:42 <fizzie> 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 <alise> See, the kernelly enough bit is the issue!
21:41:20 <alise> You could make it inject a DRIVER.
21:41:23 <alise> Those run in the KERNEL, see.
21:41:28 <alise> You can see where I'm going with this.
21:41:38 <alise> Kernel-raping drivers!
21:41:50 <fizzie> Yes, but why! I no get it.
21:42:26 <fizzie> The kernelly-enough wrapper needs to be a few hundred bytes, it can then load your LoseThos just fine.
21:42:39 <fizzie> 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:43:26 <alise> fizzie: We want to load ARBITRARY CODE without succumbing to the kernel's EVIL KEXEC DEMANDS.
21:43:29 <fizzie> Yes, I can see it's more about cruelty than pragmatism with you!
21:43:31 <alise> MULTIBOOT? FUCK MULTIBOOT
21:43:36 <alise> We should be able to LOAD bootloaders from this
21:43:42 <alise> It should just execute RAW code
21:44:18 <alise> You could just write memory directly, Phantom_Hoover.
21:44:46 <Phantom_Hoover> Wait, I though this was going to be something like "sudo depose-kernel"!
21:44:48 <fizzie> No, you can't. UID-0 processes aren't exempt from memory access protections.
21:45:06 <Vorpal> <alise> fizzie: We want to load ARBITRARY CODE without succumbing to the kernel's EVIL KEXEC DEMANDS. <-- what demands?
21:45:13 <fizzie> I think they added some dev-kmem filters that are possibly the default now.
21:45:34 <fizzie> Vorpal: There's the loading address, and maybe some metadata in the image.
21:46:01 <Vorpal> <fizzie> 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 <Vorpal> of course you could just modprobe a module that let you do it
21:46:39 <fizzie> A suicidal driver is perhaps an appropriate method, yes.
21:47:03 <Vorpal> 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:26 <fizzie> Or: find a module with an exploitable bug. It's like jailbreaking your own computer!
21:47:38 <Vorpal> Phantom_Hoover, yeah not having the replay file system logs when booting next time is boring
21:47:51 <Vorpal> or having the new OS confused by already up-and-running hardware
21:47:57 <fizzie> Vorpal: That's what I said, but it wasn't the point here.
21:48:28 <fizzie> The point here is perversity for the sake of it, if I've understood right.
21:48:58 <Vorpal> 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 <Vorpal> Phantom_Hoover, if your solution doesn't do that then it fails
21:49:25 <fizzie> How did your stdlib-man-page-eating tool do its dirty trick, by the way?
21:50:04 <Phantom_Hoover> Vorpal, it ignores these holdovers from the tyranny of the previous kernel.
21:50:07 <fizzie> To alise; I always forget to direct.
21:50:24 <alise> fizzie: I don't know; it loaded some .s.
21:50:27 <Vorpal> Phantom_Hoover, okay now you are just being absurdly and stupidly silly
21:50:39 <alise> fizzie: http://colorforthray.info/XcolorForth.tar.gz
21:50:41 <alise> fizzie: Inspect it yourself.
21:50:51 <alise> (If you manage to get it compiled and aren't on 32-bit, it will eat your manpages.)
21:51:11 <Vorpal> alise, if anything loading a module is even more restricted in format than loading a kernel with kexec!
21:51:22 <alise> <Vorpal> Phantom_Hoover, yeah not having the replay file system logs when booting next time is boring ;; shut down file stuff beforehand
21:51:47 <fizzie> I'll look at it when not on the phone.
21:51:54 <Phantom_Hoover> Vorpal, general idea: module gets ring 0, kills kernel, replaces it with its own code.
21:52:26 <Vorpal> Phantom_Hoover, yes but the module format is even more restricted than kexec
21:52:38 <Vorpal> Phantom_Hoover, so your whole reasoning is completely flawed
21:52:57 -!- sftp_ has quit (Remote host closed the connection).
21:53:02 <Vorpal> Phantom_Hoover, so does a kexec image
21:53:09 <alise> Vorpal: shut the fuck up
21:53:11 <alise> we don't want to do kexec
21:53:36 <Vorpal> Phantom_Hoover, but with a module you need to hook it up to the linux kernel interface
21:53:41 <Vorpal> or it won't load or work
21:53:56 <Vorpal> Phantom_Hoover, with a kexec image you are free from such restraints
21:54:23 <Vorpal> Phantom_Hoover, thus your argument about freedom is flawed
21:54:27 -!- Phantom_Hoover has left (?).
21:54:33 <Vorpal> Phantom_Hoover, I understand the idea but your argument *for* it is flawed
21:54:36 -!- Phantom_Hoover has joined.
21:54:37 <Vorpal> which are quite different things
21:54:43 <Vorpal> * Phantom_Hoover (~phantomho@cpc3-sgyl29-2-0-cust326.sgyl.cable.virginmedia.com) has left #esoteric ("Leaving")
21:54:43 <Vorpal> <Vorpal> Phantom_Hoover, I understand the idea but your argument *for* it is flawed
21:55:10 <Vorpal> Phantom_Hoover, repasted the only line sent
21:56:13 <Vorpal> Phantom_Hoover, okay. Your argument for not doing so is still flawed
21:56:18 <Vorpal> besides the module thing is old
21:56:23 <Vorpal> seen it implemented once before
21:56:30 <Vorpal> was as a hack against 2.4 kerne
21:56:39 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:56:45 <Vorpal> Phantom_Hoover, so what you are now doing is fairly boring
21:57:40 <Vorpal> alise, besides your request for hypothetical software timed out today.
21:58:01 <cpressey> <alise> 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:21 <alise> Vorpal: our argument is WE DON'T WANT TO use kexec
21:58:30 <cpressey> Oh funt, what are we talking about now.
21:58:38 <Vorpal> alise, that is however no reason
21:58:53 <alise> And we don't need you telling us so because it's fucking obvious.
21:58:57 <Vorpal> alise, and your hack has been done before
21:58:58 <alise> Nothing done in this channel has much of a reason.
21:59:18 <alise> Yeah, I like how you conspicuously forgot to tell us that before.
21:59:53 <Vorpal> 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 <alise> I'll just get it off torrents.
22:00:06 <cpressey> omg there is YouTube of LoseThos: http://www.youtube.com/watch?v=9i0pMO697Zk and TERRIBLE MUSIC
22:00:07 <alise> You have told me three times already.
22:00:23 <alise> cpressey: God generated it
22:00:24 -!- FireFly has quit (Quit: swatted to death).
22:00:54 <alise> This thing is actually a complex piece with multiple time signatures and tempos
22:00:56 <alise> You just can't tell.
22:01:07 <cpressey> I CAN"T HEAR THE MUSIC FOR ALL THE BEEPING
22:01:17 <alise> It's experimental.
22:01:21 <alise> LOL @ the sad face
22:01:23 <alise> that just appeared
22:01:27 <cpressey> Rendered with a human hand on a violin, I admit, it could be... something.
22:01:28 <alise> Is he typing lyrics
22:01:28 <Vorpal> alise, why do you want to load LoseThos like that btw?
22:01:31 <alise> Or just typing about sins
22:01:42 <alise> No, it's lyrics. Wow.
22:01:47 <cpressey> But as it stands, uh, God has no rhythm.
22:01:54 <alise> Vorpal: Uhh, it was just an example of an OS that is compatible with no standard.
22:02:02 <alise> cpressey: Read the lyrics
22:02:17 <alise> That may just be my favourite video ever.
22:02:37 <Vorpal> <cpressey> I CAN"T HEAR THE MUSIC FOR ALL THE BEEPING <-- cpressey++
22:03:17 <Vorpal> <cpressey> 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 <cpressey> 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 <alise> fizzie: the Tome of all Knowledge.
22:05:25 <Vorpal> cpressey, btw that youtube thingy.... Why use that OS for that song
22:06:14 <Vorpal> 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 <alise> Because he is LoseThos...
22:07:16 <cpressey> Vorpal: Because that OS is AWESOME.
22:07:16 <alise> Besides, it's the only OS which can connect to God
22:07:25 <Phantom_Hoover> cpressey, from my understanding of the NASM manual, changing CS directly is only easily possible through black magic on the 8086.
22:07:28 <Vorpal> right, so he is a OS coding religious nutjob
22:07:31 <alise> "Why would LoseThos use LoseThos for X?" "Uhhh, I dunno lol"
22:07:39 <alise> Vorpal: He's a nutjob even for the religious.
22:08:08 <Vorpal> alise, well I suspected he was a nutjob for each half of that independently...
22:08:28 <cpressey> Phantom_Hoover: Sure you're not thinking of IP?
22:08:59 <Phantom_Hoover> But the detailed appendix to the NASM manual has been removed.
22:09:02 <Vorpal> 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 <cpressey> Phantom_Hoover: Well I know I've loaded *from* CS. OK, I realize, not at all the same thing.
22:10:11 <cpressey> Main:movax, cs; find DATA segment
22:10:15 <pikhq> Vorpal: Yes, he's obviously intelligent. He's also fucking nuts.
22:10:28 <Phantom_Hoover> cpressey, I'm pretty sure mov cs doesn't work, but pop cs worked on the 8086.
22:10:41 <Vorpal> pikhq, indeed. I'm more used to nutjobs like that also being fairly stupid
22:10:53 <Phantom_Hoover> It has never done so on any subsequent processor, though.
22:10:55 <Vorpal> pikhq, or at least acting fairly stupid in all areas
22:11:24 <cpressey> Phantom_Hoover: Hm. How do you execute code in another segment, then?
22:12:23 <cpressey> Oh, a far jump will update CS too? OK, that actually... makes sense.
22:12:45 -!- myndzi has joined.
22:13:29 <cpressey> (You don't run into this when everything you write you try to fit into 512 bytes.)
22:15:09 <cpressey> 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 <cpressey> Each of the Befunge-93 instructions can be implemented in less than 256 bytes of 80[2?]86 code -- surely.
22:17:37 <cpressey> 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:19:13 <alise> BefOS is rubbish :|
22:19:39 <cpressey> alise: Thus explaining the presence of a desire to make it ... not rubbish.
22:19:56 <alise> cpressey: I'd say a Befunge-93 instruction would be more like 50 bytes, not 256.
22:20:18 <fizzie> 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 <cpressey> alise: I guess 128 bytes per inst would still be plenty, and would let the interpreter be in the same segment.
22:21:33 <cpressey> If some inst really does need more, it can jump to some "spare" slot at the end.
22:21:42 <alise> cpressey: Really? The instructions are just things like +, /, p, g, ...
22:21:48 <alise> I can't imagine any of them being more than a few bytes, actually.
22:21:56 <alise> Apart from bounds checking, which would be minimal.
22:22:36 <alise> Jump elsewhere for it?
22:22:44 <alise> IO is slow anyway, after all.
22:23:22 <cpressey> 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:24:24 <cpressey> In fact, not at all sure this would be befunge anymore.
22:24:40 <cpressey> Although, it's a place to start.
22:26:26 <Vorpal> pikhq, hm I can't actually think of any other *intelligent* religious nutjob in modern times
22:28:06 <Vorpal> <cpressey> Was thinking about "writing my own OS", thinking now about extending BefOS instead. Well, sort of. <-- bef as in befunge?
22:28:16 <Vorpal> cpressey, is there any link to that?
22:28:27 -!- augur has quit (Ping timeout: 265 seconds).
22:28:35 <Vorpal> cpressey, but is it bef as in befunge?
22:28:51 <Vorpal> cpressey, if so it sounds awesome
22:28:53 <cpressey> Vorpal: Perhaps you should keep reading the log?
22:29:07 <Vorpal> cpressey, oh excellent idea
22:29:55 <cpressey> 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:24 <Vorpal> cpressey, I meant reading the log was an excellent idea
22:31:44 <Vorpal> cpressey, and befOS sounds awesome too
22:32:13 <Vorpal> cpressey, why do it in real mode
22:32:28 <Vorpal> cpressey, you wouldn't have the CS problem if you just went into protected mdoe
22:32:50 <cpressey> Because unreal mode is AWESOME.
22:33:02 <Vorpal> cpressey, how so? I don't remember the details for i
22:33:19 <fizzie> 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 <alise> fizzie: Yes; if you're on 32-bit, it /should/ work.
22:34:57 <alise> Although I have no idea what the fuck happens to Linux afterwards.
22:35:10 <cpressey> There appears to be a befos.com. "Admin Organization: BefOS". Should I be frightened?
22:35:38 <fizzie> 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:30 <cpressey> Also, zzo38's OS uses unreal mode. Just more evidence that it is AWESOME.
22:36:31 <Vorpal> fizzie, and why was that useful?
22:36:41 <Vorpal> cpressey, zzo made an OS?
22:36:59 <fizzie> 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 <cpressey> Vorpal: You should ask me more questions like that.
22:37:14 <alise> fizzie: ColorForth does rather more than run code inside its own address space, last I checked.
22:37:19 <alise> Such as direct hardware access.
22:37:47 <fizzie> alise: Well, Xcolorforth certainly won't do direct hardware access. It's not even located at 0.
22:38:05 <alise> fizzie: I thought color.s does.
22:38:09 <alise> Anyway, it has to be run as root otherwise nothing happens.
22:38:11 <alise> That's all I know.
22:38:17 <alise> When you run it as root, [boom]
22:38:28 <alise> Phantom_Hoover: Unreal is more likely to, being older. :P
22:39:08 <fizzie> 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 <Vorpal> cpressey, what exactly makes unreal mode better than protected mode?
22:41:47 <cpressey> Vorpal: Flat (non-segmented) access to the 32-bit address space.
22:42:04 <Vorpal> cpressey, right, protected mode has that too
22:42:22 <Vorpal> unless I completely misremember
22:42:24 -!- oerjan has joined.
22:42:31 <cpressey> That is what makes it more desirable to me. Not better.
22:42:34 <Vorpal> you can set up the segments so that they essentially don't matter
22:42:39 <cpressey> It would be equally valid to say that I like the name.
22:42:42 <alise> Do what LoseThos does! Set up paging to map directly to memory! HOORAY
22:45:10 <cpressey> "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 <fizzie> 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 <fizzie> Gah! Stop ruining my comments!
22:45:45 <cpressey> Not that I'd be running this code under DOS or anything mind you...
22:46:21 <Vorpal> 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 <fizzie> Doesn't it go to the virtual-8086 mode?
22:48:01 <Vorpal> fizzie, is that not enough?
22:48:26 <Vorpal> fizzie, hm... what does stuff like djgpp (sp?) do?
22:48:30 <fizzie> It involves basically switching to real mode and back every time you need something from DOS.
22:48:41 <Vorpal> presumably it somehow needs to access the DOS fs
22:49:21 -!- augur has joined.
22:49:26 <fizzie> It does DPMI, and the DPMI implementation involves a lot of that mode-switching, I believe.
22:51:16 <fizzie> 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 <fizzie> 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 <fizzie> DJGPP in particular uses CWSDPMI, IIRC.
22:58:46 <Vorpal> fizzie, couldn't it implement it's own FAT driver?
22:59:08 <Vorpal> fizzie, even my camera implements fat32, and back then you only had to do fat12 and fat16
22:59:24 <fizzie> And IDE drivers, too? You can't call into BIOS from protected mode either.
23:00:20 <fizzie> 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 <cpressey> Hey, now that's an actual reason. I do make lots of BIOS calls.
23:00:40 <cpressey> (*reason to not use protected mode in BefOS or whatever it is.)
23:03:01 <Vorpal> 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 <fizzie> 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:19 <cpressey> Oh, also a reason: I tried playing around with the EMS and XMS interfaces (BIOS interrupts) and found they sucked.
23:05:35 <Vorpal> how did those emm386 and himem.sys things of DOS work?
23:05:52 <Vorpal> wasn't there one doing a window into higher memory?
23:05:57 <fizzie> 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 <fizzie> And don't go to extended/expanded memory things; that way lies madness.
23:06:40 <Vorpal> fizzie, just wondering how it worked
23:07:02 <Vorpal> fizzie, the window into higher memory stuff sounds like it would need an MMU
23:07:12 <Vorpal> not available in real mode afaik
23:07:15 <fizzie> EMS in particular was intended originally for hardware memory extensions that aren't in the usual memory bus.
23:07:29 <Vorpal> fizzie, ah interesting
23:07:33 <fizzie> It doesn't need a MMU, it just involves a lot of copying. :p
23:07:54 <fizzie> (On a real hardware EMS implementation, it doesn't copy so much.)
23:08:15 <Vorpal> fizzie, how can it access the higher memory to copy from/to it?
23:08:23 <Vorpal> it goes into protected mode every now and then?
23:09:30 <fizzie> I guess it would have to, when it's emulated using regular processor-addressible memory.
23:10:18 <fizzie> 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 <fizzie> 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 <fizzie> While EMS involves EMM386 faking a "expanded memory" hardware thing, on a 386 or better.
23:18:11 <fizzie> 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 <fizzie> 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 <fizzie> As fascinating as the bizarro-city x86 is, I think I really need sleep now.
23:24:55 -!- derdon has quit (Ping timeout: 265 seconds).
23:44:19 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:48:12 <alise> 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.