00:00:29 Sgeo: great 00:01:37 elliott@dinky:~/code/pkg$ wc -l pkginfo.c 00:01:38 174 pkginfo.c 00:01:38 elliott@dinky:~/code/pkg$ wc -l pkginfo.sh 00:01:38 39 pkginfo.sh 00:01:46 pikhq: I think that maybe an sh-based packaging utilities system is a splendid idea. 00:03:19 <3 this game 00:03:30 Played the single-player campaign before, but still fun 00:07:49 elliott: Mmm. 00:08:53 pikhq: Even though sh is terrible. 00:13:13 pikhq: 00:13:13 $ busybox sh pkginfo levee | awk '/^Version:/ { print $2 }' 00:13:13 3.5a 00:13:17 I declare it portable and useful. 00:22:20 pikhq: Virtual packages: http://sprunge.us/SdDH 00:25:02 pikhq: I should probably write the actual installation script in C so that if you replace the utilities a shell version would use it still works... 00:29:37 -!- FireFly has quit (Quit: swatted to death). 00:39:44 pikhq: I use $*. Question: Am I bad? 00:40:15 elliott: you're talkative 00:40:19 elliott: http://www.jaybirdgear.com/cart/sb2/# 00:40:21 which color 00:40:53 augur: they look uncomfortable, putting form above function, and lookinga t it they probably have terrible audio quality. 00:40:56 oh bluetooth? 00:41:03 it compresses the audio lossily then 00:41:09 have fun with that 00:41:53 :| 00:45:07 Why does Perl have an unless? 00:45:37 Sgeo: Because it does. 00:46:17 Sgeo: because it reads better 00:46:19 same as "until" 00:48:10 elliott: $*? Not necessarily bad. 00:48:25 naked blocks should not count as loops 00:48:33 Sgeo: Good! Because they don't. 00:48:33 They should count as ... scopy things 00:48:38 Sgeo: Good! Because they do. 00:48:52 elliott: And, yeah, having the installer in C is a good idea. 00:48:52 The slide for my class says: 00:48:57 Provides an "oh shit" button. 00:49:02 There are five kinds of loop blocks in Perl. These are the blocks of 00:49:02 for, 00:49:02 foreach, 00:49:02 while, 00:49:02 until, or 00:49:03 the naked block. 00:49:13 pikhq: A good idea that I am ignoring because it's too much of a pain! 00:49:15 pikhq: ~patches welcome~ 00:50:08 elliott: At bare minimum, provide an easy way to run it using busybox. 00:50:19 And make it function using the busybox you ship, of course. 00:50:37 pikhq: Why? What's more reliable about busybox vs. ksh? 00:51:01 elliott: Getting a full busybox running is easier than a full coreutils. 00:51:33 Well, the loop control... stuff (like redo) works in naked blocks 00:51:34 In case of dire emergency, I could readily statically link a busybox from just about any system. 00:51:51 pikhq: http://www.wormhole.hu/~ice/ksh/ 00:51:55 Of course, you *could* just say "screw it", like Gentoo does. 00:51:59 @d unless(_1) if(!(_1)) 00:52:02 @f unless if 00:52:03 pikhq: Find me a system with a C compiler and BSD make that this doesn't compile on. 00:52:05 (which requires a full Python installation for the package manager) 00:52:06 pikhq: (Hint: Such a system does not exist.) 00:52:18 elliott: Hint: your package manager relies on more than *just* a shell. 00:52:36 pikhq: Hint: it's rather likely that the rest of the coreutils is busybox. :p 00:52:40 In my opinion the package manager should not require Python 00:52:49 elliott: Okay, so make it function perfectly with ksh and busybox. 00:53:14 elliott: That is still *quite* easy to set up. 00:53:30 pikhq: "busybox sh" is my Portability Checker(TM). 00:53:32 ... Heck, if your package manager relies on just those two, you could probably bootstrap a Kitten system from a floppy disk. 00:53:50 Ah. Yeah, if it works on Busybox sh, it'll probably work anywhere. 00:53:55 pikhq: (Also dash, because it's so terrible that nothing that runs on it could possibly fail anywhere else.) 00:53:56 What with being a *subset* of Bourne shell. 00:54:40 Mmm, having a minimal installer smaller than Debian. :P 00:55:34 * Sgeo wants @ 00:55:51 I'm pretty certain that this discussion is not about @ 00:56:04 Sgeo: No, it isn't, but no way am I gonna develop @ on Debian. 00:56:10 I want something I can trust not to go stupid overnight. 00:57:00 pikhq: Hmm, does using rsync to update a compressed tarball work well? 00:57:07 pikhq: Obviously updating a tarball with it is just as good as updating each individual file. 00:57:19 pikhq: But do, say, .tar.xzs change more than the set of changes to the original files? 00:57:29 Thus making rsync less efficient on these already-compressed things? 00:57:39 elliott: It would not work well with a compressed tarball. 00:58:12 pikhq: Are you suuuuure? 00:58:16 For the *precise* same reasons it doesn't work well with encryption. 00:58:35 pikhq: Right, because perfectly compressed data is indistinguishable from random data. 00:58:51 But that doesn't mean you can't diff two pieces of similar random data and get a short diff, no? 00:59:03 They won't be similar, in general. 00:59:20 pikhq: Well, I'm also not going to run unxz before every rsync and xz afterwards. 00:59:26 pikhq: Suggestions welcome. :p 01:00:37 Store uncompressed, use rsync's compression? :P 01:01:01 pikhq: Store uncompressed = lol, wasteful. I guess it isn't a big deal, but still. 01:01:18 pikhq: (Also, fun fact: I'm compressing the kernel with LZO for the sole reason that it's the fastest to decompress.) 01:03:01 elliott: http://zsync.moria.org.uk/ 01:04:20 pikhq: Nice! gzip-specific... but better than nothing. 01:04:33 elliott: Actually, the gzip-thing could be readily patched. 01:04:41 pikhq: Yeah, but I have enough work on my hands anyway. 01:04:47 Mmkay. 01:05:01 [[If you don't specify the names of any files to put in the archive, then tar will create an empty archive. So, the following command will create an archive with nothing in it: 01:05:01 tar --create --file=empty-archive.tar]] 01:05:02 LIES 01:05:05 tar: Cowardly refusing to create an empty archive 01:05:29 But hey, it's rsync-like and works on compressed files, and seems to work much nicer with standard (easily available) servers. 01:06:06 ha, apparently you do 01:06:09 --files-from=/dev/null 01:06:12 to stop tar trying to second-guess you 01:06:22 what an anti-feature 01:06:39 wtf, that just creates a bunch of zeroes 01:06:43 10K of them 01:07:02 well, whatever 01:09:31 pikhq: Things I hate more than anything: Stuff that remembers its --prefix. 01:09:40 I WANT TO BE ABLE TO COMPILE SHIT WITHOUT USING A CHROOT, FUCKERS 01:11:12 pikhq: Holy shit, you know fakeroot? 01:12:08 elliott: Yeah? 01:12:28 pikhq: Guess what version control system it uses. 01:12:29 pikhq: Wrong! 01:12:35 ... 01:12:36 pikhq: The answer is Arch 1, aka tla. 01:12:37 Patch? 01:12:42 *Oh*. 01:12:44 *vomit* 01:12:45 flrghl 01:12:45 pikhq: *The thing uses Arch. In 2010.* 01:12:50 *arch 01:12:58 I'm sorry, but, I have to respect anyone crazy enough to do that. 01:13:05 % tla register-archive fakeroot@packages.debian.org--fakeroot \ 01:13:05 http://arch.debian.org/arch/fakeroot/fakeroot/ 01:13:05 % tla get -A fakeroot@packages.debian.org--fakeroot fakeroot--main--0.0 01:13:23 tla's motto is "Simple things should be difficult, hard things should cause you to commit suicide." 01:13:28 *difficult things 01:15:34 extern.h:200: error: conflicting types for ‘getline’ 01:15:34 /usr/include/stdio.h:651: note: previous declaration of ‘getline’ was here 01:15:42 pikhq: in which glibc extensions harm someone not even using them 01:16:16 elliott: -std=c99 should turn off glibc extensions. 01:16:24 pikhq: *c89 01:16:25 in this case 01:16:26 Indeed. Still. 01:16:42 Still, the extensions should *not* be on by default. 01:16:56 Have them all you want, but they should be enablable options, not default. 01:17:10 there should be a #define to disable them 01:17:15 or an #undef 01:17:29 GreaseMonkey: There's a #define to enable them. That GCC does by default. 01:17:36 You may now curse at GNU. 01:17:53 Maybe the GNU extensions should be disabled if the compiler is invoked by the name 'cc' instead of 'gcc' 01:18:39 pikhq: Wait a second, why the fuck does the C compiler change what the glibc does by setting how the code is compiled? Does glibc actually check if the C compiler claims to implement "GNU C", and help it in its evil quest by adding features of GNU C? 01:18:43 hrfffffffffff gnu lockin 01:19:20 I think standards mode controls predefined macros and macros control glibc evilness 01:20:14 elliott: Glibc checks if the C compiler claims to implement "GNU C", and helps it in its evil quest by adding featurs of GNU C. 01:20:29 elliott: BTW, another option: gzip --rsyncable. 01:20:42 elliott: Glibc checks if the C compiler claims to implement "GNU C", and helps it in its evil quest by adding featurs of GNU C. 01:20:45 ha ha ha ha ha ha ha i hate this shit. 01:20:48 elliott: Produces gzip output that is *barely* larger, but readily rsyncable. 01:21:05 pikhq: Nice. But I think I'll just use zsync anyway. :p 01:21:09 HTTP access is nice, after all. 01:21:28 Yeah; quite a bit nicer to do it all with nothing more than a somewhat-sane HTTP server. 01:25:26 $ sudo ./pkginstall levee 01:25:26 * Installing foo... 01:25:26 * Installing levee... 01:25:28 HAHAHA SCIENCE 01:26:26 pikhq: Dependencies of that: the "set" built-in, the "[" built-in, the "cd" built in, echo, tar, and touch. 01:28:12 Beautiful. 01:28:16 -!- zzo38 has quit (Quit: This is a secret message! Please figure out what it means!). 01:28:45 elliott: How's it doing dependency resolution? 01:28:50 Naively? 01:28:56 if [ -e $1/needs ]; then 01:28:56 for dep in $1/needs/*; do 01:28:56 install_pkg $(readlink $dep) 01:28:56 done 01:28:56 fi 01:28:59 pikhq: Is that naive enough for you? 01:29:03 Naively. 01:29:07 pikhq: Of course install_pkg does nothing if it's already installed. 01:29:20 pikhq: Feel free to suggest a better way, but I'm unlikely to use it because... there are no runtime dependencies. 01:29:27 Termcap files. That'd be a runtime dependency. Apart from that, uh... 01:29:29 Though likely working just fine for your purposes, because you are unlikely to ever have circular dependencies. 01:29:34 Executables that other programs use, obviously. 01:29:40 But ... not much really. 01:30:02 Yeah, the odds are that your dependency graph won't get ridiculously complex. 01:30:31 And that anyone who really wants "standard" programs can install Gentoo Prefix or something. 01:31:44 pikhq: Define "standard" programs. 01:33:03 Expecting your standard, dynamically linked, GNU-filled environment. 01:33:22 Ew. 01:33:41 pikhq: "But why would you want to". :p 01:34:03 pikhq: Although I'm hardly unbiased; I'm including Java for one single program. Guess what program. 01:34:13 Minecraft. 01:34:23 pikhq: HOW DID YOU GUESS 01:34:25 :p 01:34:36 MAGIC 01:34:46 elliott: Java? :/ 01:34:55 olsner: Minecraft is written in Java. 01:35:05 I will not run any OS that cannot run Minecraft. 01:35:06 Thus Java! 01:35:37 Back. 01:35:39 well... wtf? 01:35:45 olsner: What do you mean, "wtf?"? 01:36:07 elliott running any kind of java thing, if it weren't for minecraft it would be inconceivable 01:36:27 olsner: i have a slight feeling you're trolling me here :) 01:36:32 olsner: I KNOW YOU'VE USED ANT 01:37:23 hmm, no, I'm not really trolling 01:38:34 I have never used ant voluntarily, note you 01:39:05 but I have indeed used it, which is how I know how horrible and braindead it is 01:39:46 it's kind of bancstar+xml+java molded into a build system 01:40:29 Ant is perhaps the worst-designed build system I have seen. 01:40:52 ... "build system" - at best you can use it to do sequencing in a language worse than dos/cmd batch files 01:40:55 you've never used drupal then 01:41:17 And I include the horrid monstrosity I once saw that was a hybrid of *interactive* Perl, shell, Make, Autotools, and C in that consideration. 01:41:32 pikhq: git? 01:41:35 cheater99: No. 01:41:38 cheater99: IRAF. 01:41:49 what you have just described sounds like git. 01:41:50 cheater99: Which is also notable for being almost its own OS. 01:41:58 even a "do your worst" given all those tools should end up better than ant 01:42:11 -!- Mathnerd314 has joined. 01:42:11 ==Phantom_Hoover logreading== I have struck diamond. I WILL NOW ACCOUNT FOR EVERY SINGLE DIAMOND BLOCK I MINE SO THAT IT CAN BE SPLIT 50/50. 01:42:14 olsner: Quite true; Ant is just revolting. 01:42:18 Even though it matters not. 01:42:29 2 blocks. 01:42:30 pikhq: I am glad we agree :D 01:42:37 + 2 blocks. 01:42:46 + 2 blocks. 01:42:53 + 2 blocks. 01:43:11 Done; 8 blocks in total. 4 each. I will put them in my chest. 01:43:40 http://en.wikipedia.org/wiki/Apache_Ant The sample build file here makes me want to vomit. 01:44:11 It actually demonstrates just about everything wrong with XML. 01:44:36 pikhq: lol - it gets MUCH WORSE 01:44:48 that's not even a real-world example 01:45:01 It has such a revolting amount of syntactic noise. 01:45:19 tag based languages are in general a mega failure 01:45:24 hadn't found one that doesn't suck 01:45:37 Even just replacing the structure with sexps naïvely would dramatically improve that. 01:46:03 with what now? 01:46:05 8 iron blocks mined. 01:46:18 cheater99: With sexps. Lisp syntax. 01:46:26 ant is sufficiently braindead and horrible without the syntactic overhead though 01:46:32 don't think that's the only fault! 01:46:33 ok 01:46:42 olsner: True, I'm *only* criticising the syntax ATM. 01:47:03 it's just... vomit all the way down 01:47:05 olsner: let's write a multithreaded pi computation in ant 01:47:11 olsner: just to prove how bad it can get 01:47:23 Tag-based markup languages are truly vomitous for any usage other than actual markup of text. 01:47:44 cheater99: no. ant is not even interestingly horrible 01:47:57 ok 01:48:04 6 iron blocks. 01:48:27 -!- Sasha has quit (Remote host closed the connection). 01:48:28 i'm listening to music which was sequenced from analysis data of a dna protein 01:48:37 it's actually pretty cool. 01:48:53 -!- Sasha has joined. 01:49:02 cheater99: it's up to you to go ahead and do it, but only do it if you truly have *nothing* better to do 01:49:03 2 iron blocks. 01:49:21 olsner: i have a non-empty set of things better to do 01:49:36 cheater99: I'm glad :) 01:49:39 olsner: Why is it that every make replacement has *worse* syntax? 01:50:04 pikhq: because make is actually at the upper end of build system sensibility 01:50:12 Sadly, it is. 01:50:13 A bunch of coal mined, but whatever. 01:50:29 lots of people seem to say "make sucks", then go build something so much worse 01:50:32 olsner: that is more a statement about everything except make, than a statement about make 01:50:43 elliott: right you are 01:50:49 olsner: well, make works only on some systems 01:51:00 olsner: ant works on more systems 01:51:14 cheater99: that's just the anal sex argument 01:51:20 People should look at what make does *right* when replacing it. 01:51:25 [Sever] COBOL IS A HORRIBLE LANGUAGE. 01:51:28 olsner: no 01:51:29 *Server 01:51:32 Cobol is horrible, Netcraft confirms it. 01:51:42 olsner: people needed ant for things which didn't exist on, say, windows at that point 01:51:43 or on mac 01:51:44 olsner: I like how it's now transformed into "the anal sex argument". 01:51:50 Oh yeah, you know, that common argument about anal sex. 01:51:51 For instance: its syntax is *simple and readable*, and it is *declarative*. 01:52:26 elliott: it isn't afaik, I just thought the analogy was so right for this case 01:52:32 olsner: it is as of your message 01:52:58 cheater99: The build system that shipped with the official Mac development stuff was a Make derivative. :) 01:53:22 cheater99: And Windows has had Microsoft nmake for ages. 01:53:41 pikhq: not before osx 01:54:23 cheater99: are you saying that software was not built on windows before ant? 01:54:31 cheater99: Macintosh Programmer's Workshop. Make and Shell. 01:54:39 pikhq: troll, feeding, etc. 01:54:42 it was, but people needed something interoperable 01:55:00 make vs. shell script, who wins? 01:55:08 elliott: boring, monotnous, etc. 01:55:14 note initial expressing of ant ignorance and then switching to advocating ant when that seems to be the thing that'll generate more messages. 01:55:15 +o. 01:55:17 And anyways, *nowadays* it is very very easy to make an interoperable build system. 01:55:19 Assume UNIX. 01:55:39 elliott: ant ignorance? i use ant in my job. 01:55:43 you know, that thing you don't have. 01:56:57 doubly maintaining separate build systems always existed. makefile/project/whatever generators are also available. also, cygwin (for shell scripts while still supporting windows) and scripting languages 01:57:19 in other words: there is no problem that any solved that didn't already have a better solution 01:57:21 cygwin sucked very much when ant was being created 01:57:25 any/ant 01:57:27 still sucks much 01:57:52 no part of cygwin has suckage in the amounts that ant does 01:57:57 I'm fairly certain that just having two completely different build systems sucks less than ant. 01:57:58 yeah 01:58:00 i agree 01:58:10 i'm just reminding you of the premise :p 01:58:10 (make and Visual Studio) 01:58:32 (or just saying "screw it" and build with mingw) 01:58:38 haha 01:58:40 * GreaseMonkey <3 mingw 01:59:24 cheater99: am i meant to feel inferior because i do not yet have to work to sustain myself? 02:00:31 only if you want to 02:05:40 -!- Hiant has joined. 02:05:49 good night, and beware of ant 02:06:43 nn 02:08:06 I'm fairly certain that just having two completely different build systems sucks less than ant. // build WebKit some time. 02:08:14 It has at least four separate build systems. 02:08:53 More coal, blah blah blah. 02:12:28 6 irons. 02:13:00 More coal. 2 irons. 02:16:12 1 gold; coal. 02:19:47 ok, gotta clone this hdd. bbl sweeties 02:19:58 -!- cheater99 has quit (Quit: Leaving). 02:24:16 Gregor: As in, one build system for each OS. 02:24:25 More. 02:24:26 Gregor: Not an unholy hybrid of build systems. 02:24:34 And an unholy hybrid. 02:24:39 Gregor: He means that one build system is what he prefers to ant. 02:24:43 Thus invalidating your example. 02:24:45 * elliott interpreter 02:25:03 Lemme guess. A large part of it is KDE-autotools. 02:25:18 pikhq: On Mac OS X, each subsystem is independently maintained in a separate XCode build, but only JavaScriptCore will build in XCode. They have to be cobbled together by a series of convoluted Perl scripts. 02:25:23 -!- Hiant has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]). 02:25:28 (KDE's usage of autotools is sufficiently unique to count as a seperate build system, IMO) 02:25:37 pikhq: It uses autotools for GTK+, qmake for Qt. 02:25:53 ... So they redid the entire KHTML build and made it worse. 02:25:57 Gag me. 02:25:59 3 diamond. 02:26:06 pikhq: KDE uses cmake. 02:26:23 elliott: KDE 3, which Webkit was forked from, used KDE-autotools. 02:26:26 pikhq: Something else for ETL, it has two build systems for Windows (one for VS, one for MingW/Cygwin), and a wholly separate build system based on scons for Chrome. Also it has cmake stuff in there I haven't been able to identify the user of. 02:26:34 pikhq: Right. Although I think late KDE 3 used cmake. 02:26:40 Which had a gigantic swath of its own macros to replace most of KDE 3's functionality. 02:26:42 elliott: No. 02:26:53 And I think the wx fork must have went away since I haven't seen it lately. 02:26:59 elliott: The Cmake switch came into being well after porting to Qt 4. 02:27:28 Erm, s/KDE 3's/autotools'/ 02:34:17 How to become suicidal: 02:34:25 1. Mine endlessly in Minecraft. Pick up tons of valuable materials. 02:34:31 2. Discover a HUGE, and ore-rich, cavern system 02:34:34 3. Get lost. 02:34:41 4. Find what you think is a path you haven't tried yet. 02:34:44 5. There's lava on the way. 02:34:56 6. Successfully execute a jump onto the platform in the middle! Fuck yeah! 02:35:02 7. Jump forwards to get out. 02:35:04 8. End up in the lava. 02:35:08 9. Flail wildly. 02:35:10 10. Burn. 02:35:11 11. Die. 02:35:14 12. Lose everything. 02:40:42 "Lose everything"? 02:40:52 Sgeo: Die -> lose inventory. 02:40:57 :/ 02:41:04 Including the tons of stuff I mined, all my trinkets, and all my tools. 02:41:11 I have enough to rebuild them with some tree-punching in my chest, but still, fuck that shit. 02:41:22 I should have just poured water over it. ...Why didn't I...? EURGH YASD 02:42:14 Holy fuck. EFL uses cmake. But it's not the ONLY user of cmake. I don't know what the other one is. 02:42:19 This has at LEAST a dozen build systems. 02:42:55 Gregor: You are so making me not want to package anything that uses WebKit :P 02:43:04 elliott: Yeah. Don't. 02:43:07 Gregor: I bet it's two times the fun if you want to create static libraries, right? 02:43:18 999999999999999M libwebkit.a 02:43:24 I doubt very highly that it's capable of that. 02:43:36 Gregor: I am pretty sure it is, actually. 02:43:38 Although the GTK+ build definitely does create them since it uses .la 02:43:41 At least the suckless guys seem to think so. 02:43:44 But I doubt it's capable /in general/ of doing that. 02:43:56 That is: Only 1/3rd of its hundreds of build systems support that ;) 02:44:00 Gregor: Thankfully, I'm doubly uninterested in building non-gtk versions :P 02:44:14 And most make/cmake stuff will let me just pass -static and go on with my life. 02:44:23 *get on 02:44:32 Oh look, Android uses a different build system from Chrome, and is Make-based. 02:44:48 Y'know what's terrible? I am currently NOT looking for build systems. I'm trying to do something else. 02:44:57 http://terryxu2008.blogspot.com/2008/08/webkit-runs-on-fltk.html 02:45:10 "Hey guys! I ported WebKit to FLTK, which is a major and useful development! Now watch me never say anything about it again, or release the source!" 02:45:19 Just a WIIIILD weekend hack! 02:45:53 Good, don't need yet another build system :P 02:47:09 http://c2.com/cgi/wiki?WhyNobodyDeletesWiki -- voted for title most likely to cause harm to the wiki :P 02:47:22 WhyNobodyPressesEditAndSelectsAllAndThenPressesSaveOnThisPage 02:47:26 erm 02:47:30 WhyNobodyPressesEditAndSelectsAllAndDeletesAndThenPressesSaveOnThisPage 03:05:24 Vorpal: this synthesis thesis is *wonderful*! 03:05:27 thank you for pointing me to it 03:05:29 i will read all of it 03:10:37 LightBot 2.0 has a level editor 03:11:11 And recursion and conditionals, don't remember if the first had either 03:11:28 * Sgeo goes to play a bit of RoboZZle 03:12:27 Meh 03:12:33 My brain seems to be off right now 03:14:13 How would I clear a screen in brainfuck... 03:15:37 Goosey: You can't. But if you assume a standard terminal -- 25 lines on Windows, 24 on Unix -- then you can just print that number of newlines to be sure you're on a blank screen. 03:15:43 Of course you might be further down than that. 03:15:49 There is ANSI codes and stuff you can output but bleh. 03:16:13 Goosey: If you keep track of how many multiples of 80 chars you have printed (because it wraps the line at 80 chars), and how many newlines, you can do (24 or 25) - that to get how many lines you need to output. But is it really worth the bother? 03:16:18 elliott, how do commands like clear and cls work? 03:16:24 the same way? 03:16:29 Goosey: cls, I don't know. 03:16:36 $ clear | cat -v; echo 03:16:36 ^[[H^[[2J 03:16:40 Goosey: clear, as you can see, uses special control code. 03:16:44 there, ^[ = the escape character 03:16:45 so that's 03:16:50 {ESCAPE}[H{ESCAPE}2J 03:16:59 will clear an ANSI-compliant screen 03:17:03 ah 03:17:14 That makes sense 03:17:24 Never thought I'd type man can 03:17:26 Goosey: escape is ascii 27 03:17:30 man cat for that matter 03:17:55 Goosey: so basically print 27, print "[H", print 27, print "2J". you probably want to print 10 after that for new-line so that it gets flushed to the terminal; otherwise it might be buffered and not happen 03:18:06 hmm 03:18:08 although that might actually leave you on the second line of the new screen, so you'd have to use cursor codes to go up 03:18:08 I'll try it 03:18:09 but try it and see :P 03:18:27 Goosey: you will find http://en.wikipedia.org/wiki/ANSI_escape_code useful 03:18:33 all the various ANSI escapes 03:19:07 Goosey: btw, i don't know of any brainfuck programs using the ansi escapes. so you may be innovating here :) 03:19:18 Goosey: of course having to output a newline to have any of them take effect is a real blocker. but good luck. 03:23:37 -!- Hiant has joined. 03:27:05 olsner: so do you want me to summarise what i was thinking for that tarpit kernel or not? :p 03:35:42 olsner: http://sprunge.us/gXiR 03:37:08 -!- elliott_ has joined. 03:37:23 -!- elliott has quit (Disconnected by services). 03:37:25 -!- elliott_ has changed nick to elliott. 03:37:27 -!- elliott has quit (Changing host). 03:37:28 -!- elliott has joined. 03:48:53 -!- Goosey has quit (Remote host closed the connection). 03:49:05 -!- Goosey has joined. 03:50:05 -!- zzo38 has joined. 03:50:08 hey 03:50:10 so 03:50:19 assuming * are escapes 03:50:31 (I cant send the escapes in this I guess) 03:50:41 *[H*2J 03:50:45 does that look right? 03:51:11 Goosey: yes 03:51:19 why is it that 03:51:29 Goosey: 'cuz ANSI said so :) 03:51:34 well 03:51:36 Goosey: [H will do something and 2J will do another thing 03:51:39 see my wikipedia link for exactly what 03:51:43 if ^[ is an escape 03:51:56 Goosey: but you need a newline after that, probably, or the OS won't send it to the terminal 03:52:02 and it is ^[[H^[[2J 03:52:04 shouldnt it ibe 03:52:13 *[H*[2J 03:52:17 or is it because 03:52:32 2J is 2 characters? 03:52:40 Goosey: only some things start with [ 03:52:48 the ^[ thing is either coincidence or poor choice 03:52:50 i haven't run it yet, except in the interpreter 03:52:56 (poor choice in putting [ after it that is) 03:52:59 I'm sure that if it's compiled to asm there is a higher chance 03:53:31 erm, not really 03:53:39 since it's still likely to use the C stdio 03:53:42 which is buffered 03:53:45 I think the 2J (clear screen) does have [ before it 03:53:50 oh, indeed it does 03:53:53 ^[[H^[[2J 03:53:53 so 03:53:54 >.> 03:53:56 *[H*[2J 03:54:00 THATS WHAT I WAS SAYING XD 03:54:13 lol 03:54:17 I'll try that then 03:54:22 shaddap :D 03:54:32 we offer advice from the finest of minds, nobody ever said it had to be *accurate* 03:54:43 Only single-character escapes have no [ while the control sequences (where there is a list of zero or more numbers separated by semicolons, followed by a command code) do have [ because ESC [ is the control sequence introducer. 03:54:46 sometimes the oracle of wisdom doesn't bother checking! 03:57:53 Lol 03:57:54 Hm 03:58:36 anyway something like 03:58:47 *[H*[2JHello, world! 03:58:48 Foobar! 03:58:51 should work just fine 03:58:53 but if you do 03:59:06 *[H*[2J and then want to read input without printing another newline 03:59:08 that would be impossible i think 03:59:10 try it and see 03:59:28 holy shit 03:59:38 I dont know if this is supposed to happen when compiling with beef 03:59:43 but I'm totally getting the thing cleared 04:01:25 Indeed 04:01:27 It works 04:01:28 -!- wxl has joined. 04:01:35 I thought it might have been an escape code 04:01:42 but I never would have known wich 04:01:44 which* 04:02:32 anyone know where I can find more info on prelude? 04:02:40 wxl: define prelude? 04:02:45 haskell? 04:02:46 ah, http://esolangs.org/wiki/Prelude? 04:03:05 yep 04:03:05 wxl: well Nikita Ayzikovsky is our friendly or... uh, semi-friendly absentee channel op, lament 04:03:14 wxl: if you hang around here for a week or three he'll turn up 04:03:23 heh, k 04:03:48 wxl: and of course information on http://esolangs.org/wiki/Fugue is likely to apply 04:03:52 since Prelude is just Fugue in ASCII 04:04:02 right 04:04:26 http://web.archive.org/web/20060504072859/http://z3.ca/~lament/prelude.txt draft spec on internet archive 04:04:27 sadly I'm not well versed in musical notation 04:04:49 i suggest just sticking around here, it's entertaining enough to be worth the wait :P 04:04:55 he pops in basically regularly. 04:05:40 sounds good 04:07:36 this aint much different than wots on the wiki 04:07:51 wish I could find some other sample programs 04:08:11 i remember seeing some fugue tracks by someone who came in here. 04:08:16 tracks, programs, whatever :P 04:08:46 damnit I guess I must resolve to learn music :D 04:08:59 wxl: just enough to convert to prelude :P http://esoteric.voxelperfect.net/files/fugue/src/hworld.mid 04:09:02 there's hello world 04:09:50 you know that much elliot? :) 04:10:02 wxl: no, i just have a copy of the entire channel logs and grep(1) 04:10:31 heheh 04:13:59 I wonder if this brainfuck program is faster than clear... 04:14:12 doubt it because clear is inline 04:16:52 Goosey: "inline"? 04:17:08 it's inside bash 04:17:12 not here 04:17:22 $ builtin clear 04:17:22 bash: builtin: clear: not a shell builtin 04:17:22 Oh, i assumed it was :/ 04:17:27 Oh 04:17:29 lol 04:17:45 I made a game that has a scroll in it somewhere with the message "This game is bad because Hitler played it" 04:17:56 unlike the GNU implementation of true(1) and false(1), clear seems to not have --help or --version 04:17:59 what minimalism! 04:18:23 Why should a implementation of true(1) false(1) need --help or --version or anything else? 04:18:29 zzo38: because GNU crazy! 04:18:29 http://sprunge.us/jdLP 04:18:32 you can't make this shit up. 04:18:41 For complete documentation, run: info coreutils 'true invocation' 04:19:38 Just write in assembly language the true and false program, or machine-codes, for your machine, and then write a simple version in C if needed for cross-platform however 04:20:07 You really really don't need to whip out asm... 04:20:18 -!- Hiant has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]). 04:20:43 I agree GNU packages are very crazy and bloated mostly, which is why I wrote internationalization.wi program and these things. I like to use the GNU GPL for many of my own programs, though. (For others I use public domain) 04:21:11 elliott: You do not need asm for all programs, but the one as simple as true/false should be simple enough to write a few bytes of machine-codes 04:21:25 Or you could just do 04:21:30 int main(void) { return 0; } 04:21:38 and not waste your time micro-optimising a utility where it's totally unneeded. 04:21:57 elliott: Yes you can do that too. 04:22:19 "As you may know, BINARY is a language devised by machines to CONFUSE us." 04:27:17 meh 04:27:38 The only compiler I have found for linux seems to crash when I try to use it :/ 04:28:00 Goosey: Only? Really? 04:28:06 Goosey: You are not looking nearly hard enough, there are hundreds! 04:28:18 Goosey: The state of the art is http://code.google.com/p/esotope-bfc/ 04:28:26 Goosey: which generates highly efficient C 04:28:32 Goosey: and compiles Hello world to a single print statement 04:29:09 -!- p_q has changed nick to poiuy_qwert. 04:29:54 Goosey: There's also "also written in brainfuck" which is a compiler written in brainfuck outputting x86 Linux assembly among others... but really, just use esotope for the best :P 04:31:06 I got one 04:31:10 well 04:31:12 the one i was using 04:31:35 when copying the assembly I accidently deleted the last line 04:32:06 Goosey: There's no real reason not to use esotope since it's so heavily optimising. 04:32:15 It will beat any to-assembly compiler I know of. 04:33:31 -!- GreaseMonkey has quit (Quit: ilua). 04:38:55 I have idea to make up a roguelike game (I wrote it on paper already), the front-end and back-end each written in Enhanced CWEB, and the program to generate format files written in gforth. This program is a combination of D&D (3.5e), Magic: the Gathering, ADOM, Nethack, ToME. 04:40:40 When I write some in the computer, I will post it 04:42:11 -!- wxl has left (?). 04:43:47 -!- elliott has quit (Quit: Leaving). 04:44:26 not bad 04:44:39 too bad its to C not assemeblee xD 04:44:42 The tunes.org logs does not log the PART messages, it only logs it is part 04:45:24 Like, the log file says "20:42:11 --- part: wxl left #esoteric 04:45:42 but my screen says ":wxl!~wxl@c-98-232-228-160.hsd1.or.comcast.net PART #esoteric :"into the aether..." 05:18:06 Goosey: There's not *much* benefit for assembly for Brainfuck compilation. 05:18:49 Especially when your optimiser does some crazy crazy stuff already. 05:19:01 Today's myth is: That something written in assembly will naturally be faster than the equivalent written in C! 05:19:02 Yeh, oh well, I'm not writing in brainfuck to save the workld :P 05:19:07 world* 05:19:10 The reason it's a myth? Because C compilers are much, MUCH smarter than humans. 05:19:23 Despite being written by humans 05:19:28 or are they? :O 05:19:30 And because assembly is only faster than C if the assembly programmer is brilliant. 05:19:57 For an example of this, see: x264. 05:20:06 Goosey: Hahah, of course I'm kidding, we were written by humans! 05:20:12 I mean, C compilers were written by humans! 05:20:17 Also they're not sentient! 05:28:11 There are some who believe we were written by something smarter than humans 05:28:38 Although I don't think they'd use the word "written" 05:28:51 * Sgeo suddenly sees the time gap 05:33:19 They can't have been THAT much smarter with how much they fucked up ... frankly I would assume that if that's the case, they were at or below our intelligence, just much farther than us in technology. 05:33:50 And don't give me any of this "benevolent omniscient deity" bullshit :P 05:35:56 What protections could a smart creator provide against cancer? 05:36:10 (Just wondering, not saying "Oh, what you're saying is wrong" 05:36:38 The cell already has safeguards. How many more safeguards could be added? 05:36:44 More redundancy. And I wasn't really arguing that that in particular was a fuck-up, there are far more fundamental fuckups we don't even think about. 05:37:03 They're so fundamental that you wouldn't even realize them normally. 05:37:20 Things like having a sleep cycle and being an animal capable of advanced math with a prime number of fingers. 05:37:45 Things like storing excess spare energy in a form that's harmful and we can't voluntarily expel. 05:37:58 We don't have a prime number of fingers 05:38:05 Per hand. 05:38:08 Unless you have an extr.. oh 05:38:09 Yes, we're symmetrical, la-dee-da. 05:38:20 The people and planets are invented by the Universe. 05:38:25 But the result is that our base for counting is 10, which is an utterly-useless base with only two divisors. 05:38:25 -!- Vikrokk has joined. 05:39:05 We should go back in time and chop off everyone's pinkys 05:39:23 Note: In real life, I am not a Lamarckian 05:39:30 Which furthermore is totally useless for interop with base-2 systems, which is the most sensible base for things like computers since it doesn't require anything more complicated than a greater-than comparison so it's easily convertible to and from analog. 05:39:33 And many of these thing are supposed to be like that. If you do not like it, modify your own body by cutting off your fingers or whatever you want to do. 05:39:49 "Supposed to" 05:39:49 "supposed"? 05:39:52 There is no supposed to. 05:40:13 There is no divine purpose. We have five fingers because that's how many fingers our ancestors evolved. 05:40:33 They didn't evolve a number of fingers ideal for math because math is not necessary for sex. 05:41:06 05:42:50 Gregor: Yes, and that is the divine purpose, of what is supposed to be. The divine purpose of what is supposed to be, is how many fingers your ancestors evolved. It can happen by random, but many things mixed up together and then the probable and supposed to be is the way Universe evolves by quantum uncertainty principle. 05:43:32 Your definition of "supposed to" is, I would therefore say, totally unhelpful. 05:43:54 (I do not mean there is a divine purpose for the evolution of that many fingers, what I mean is that the evolution of that many fingers *is* the divine purpose, the divine purpose is not *for* that.) 05:44:53 That's sort (in fact precisely) like saying that a god most certainly exists by the materialist definition of "god"; sure, it's true for that definition, but such a god confers no value to life, so who cares. 05:45:07 *sort of 05:45:45 There's a materialist definition of "god"? 05:45:45 -!- Vikrokk has quit (Quit: Leaving). 05:46:26 But feel free to please cut off your own fingers or modify your DNA or whatever you like to do to yourself. But do not force to do other people unless they said OK at first explicitly, and only in a small group. 05:46:28 Sgeo: A being is just a complex ongoing computation (by the CS-y materialist definition ;) ). The universe is a complex ongoing computation. Therefore the universe is a being. That being is god. That god clearly exists. QED. 05:46:49 Gregor: Clearly we should time travel and give humans a total of 8 fingers. 05:47:01 Eight or twelve would be great :) 05:47:05 Gregor, do Christians ever state that as a proof of God? 05:47:15 Sgeo: No, that's not a Christian god. 05:47:24 And I would shy away from capitalizing "god" for that god :P 05:47:27 I can still imagine someone saying it 05:47:42 That's part of my argument of why I'm agnostic and not an atheist :P 05:47:58 That is not a proof of God (I think it should be capitalized; the non-capitalized "god" means something different); it is just an opinion of God. 05:48:19 I thought agnostic was "It can't be known" not "It depends on your definition" 05:48:36 zzo38: The capitalized "god" is the name of a particular deity; this deity is not that deity. 05:48:40 Sgeo: There is different kind of "agnostic". 05:49:01 One of them is "ignostic", which is "I can't answer the question because the question isn't even definable" 05:49:19 With the further caveat that any useful definition yields an unanswerable question. 05:49:39 (Where that question is "Is there a god?" or "Is there a higher power?") 05:49:58 "The Christian God" is a useful definition, with a clear cut answer -- No 05:50:14 Mmm, even that depends on your flavor of Christianity. 05:50:14 Gregor: No that is not what I mean by the capitalized/uncapitalized. The non-capitalized "god" is used when the term "gods" can be used for many of the same if applicable. The capitalized "God" is the "supreme being" or such, or whatever; hence, it is usable as a name and can be capitalized. 05:50:18 Sgeo: Not that clear cut. 05:50:27 "Christianity" is a *class* of religions, not a single one. 05:50:34 Certainly the fundamentalist God (everything in the Bible is rock-solid Truth with a capital T that's a crucifix) is false. 05:50:59 I am also agnostic; but a lot of difference from other agnostic. 05:51:10 Gregor: Yes, an all-loving and all-hating God is quite a contradiciton. :) 05:51:17 What would a form of Christianity that can be true in a materialistic universe look like? 05:51:57 There is many denomination of Christianity, including Illogical Christianity (a.k.a. "Chicken", as Jack Chick). 05:52:52 The Bible literally is all contradiction and nonsense and lying. Therefore, do not read the Bible literally if you want to mean anything from it (but there will still be many different opinion, which is also OK). 05:53:30 Religions' ability to convert useful parables into useless "truth" is pretty impressive actually. 05:54:00 I kind of wonder e.g. in ancient Greece or Rome how much people actually believed in the literal existence of their pantheons of gods. 05:54:22 Or their one pantheon of renamed gods, really :P 05:54:27 Aren't there some parts that aren't supposed to be directly from God? (Psalms, Song of Soloman), so what do fundamentalists mean by "the whole Bible"? 05:54:42 Gregor: Yes many religious stuff often does convert useful parables into useless "truth". 05:54:58 Sgeo: Fundamentalists believe that all of it was inspired by God and is therefore Truth with a capital T that's a crucifix. 05:55:23 Sgeo: Uh, Song of Solomon is... Porn. 05:55:55 Whether or not anything in the Bible is directly from God, is irrelevant, in my opinion. I do not believe God directly wrote it. Say it is "inspired by God" though if you want to; that is OK with me if you want to say that, but is OK also if you prefer to don't say that. 05:55:55 Therefore, Porn is the Truth! 05:56:06 * Sgeo worships Porn 05:56:30 And Psalms is just poetry and songs in worship of God. 05:56:50 Well nobody believes that God literally penned the Bible (I think?), everyone believed it was penned by humans with divine intervention. 05:57:01 *believes 05:57:11 And by "everyone" I mean "all relevant people" or something :P 05:58:25 The Bible was written by many authors; even reading Genesis, it is clearly that the first chapter and second chapter are different. 05:59:13 Anyway this is a craaaaaaazy tangent :P 05:59:27 The point is we have five fingers per hand and that totally sucks. 05:59:40 And we spend 1/3rd or more of our time unconscious for no clear reason. 05:59:42 Gregor: Then cut off your fingers if you dislike that. 06:00:30 zzo38: Cutting off MY fingers does not help, I could just as well count in a different base than everyone else, the number of fingers we have has caused a problem that permeates literally all math. 06:02:24 Gregor: Well, that is what you can do; if you do not like it, then do not to do it, please. 06:02:29 It's not our fingers' fault that we use pi instead of tau=2pi 06:03:01 zzo38: It is merely an argument that we were not created by a being that is both omniscient and benevolent, it is not some bizarre social complaint. 06:03:10 You don't need the "to" there in "to do" 06:03:25 Someone please explain to me why? 06:03:33 Sgeo: That is a completely different reason having to do with mathematics. There are some reasons why 2pi is better and sometimes pi, so that is why pi used. 06:03:51 Sgeo: Because it's in imperative, not infinite form ... 06:04:01 Sgeo: "do it" is an imperative, as is "do not do it" 06:04:09 Ah 06:04:53 Gregor: It is OK to argue about created by or not, since there is many different opinion based on different reasons. Your opinion argument does work, though, so it is OK. 06:04:56 e^i2pi = 1 06:05:00 Wait 06:05:20 Why was I uncertain of that? 06:07:21 I could live with only 2 fingers in each hand (I have tried), but it is difficult and I have no intention to do so. Therefore, I have 5 fingers in each hand (if you count a thumb as a finger (some people don't)) and it is work good. 06:08:18 Six fingers would be great too. 06:08:41 There are a few people with six fingers, I think. But it is very rare. 06:09:01 It's even rarer for it to be a fully-developed and usable finger, rather than just a deformed stump. 06:09:37 Gregor: Yes. But it has happened, even though it is even more very rare. 06:09:46 Sure 06:10:40 (Do you want to know why I have tried? It has something to do with D&D game; the way I play it comes up with many strange (and sometimes obscure) questions, some of which I can answer and some of which I cannot answer.) 06:13:19 -!- wareya has quit (Read error: Connection reset by peer). 06:13:54 -!- wareya has joined. 06:17:00 I feel like I'm acting out an artificial hyperness of http://tvtropes.org/pmwiki/pmwiki.php/Main/DidYouJustHaveSex that sort despite not in fact getting laid 06:17:17 Ok, that may have been TMI for this channel 06:18:20 -!- oerjan has joined. 06:19:26 -!- zzo38 has quit (Quit: zzo38). 06:55:20 * oerjan gets the brilliant idea to actually _search_ the wiki for "Site maintenance" and "reserve copy page", finds two missed spam pages 07:14:15 * Sgeo googles for a creepy quote 07:14:39 * oerjan also searches for quot, amp and lt 07:15:13 "However, one could always draw stoic comfort from the possibility that perhaps in the course of time the new vacuum would sustain, if not life as we know it, at least some structures capable of knowing joy. This possibility has now been eliminated." 07:15:21 ...darn the search doesn't include words shorter than 4 letters 07:16:24 I'm pretty sure that "this possibility" is supposed to mean the idea of vacuum decay, but it looks like it's referring to the possibility of structures that can know joy in the new vacuum 07:16:27 How chilling 07:16:35 And how effect-depleting when I explain something 07:17:02 Actually, I may be wrong and that "this possibility" may be referring to those structures 07:17:52 Anyone want to read http://www.slac.stanford.edu/pubs/slacpubs/2000/slac-pub-2463.html to help me out? 07:18:36 Um 07:18:46 Right before that bit in http://blogs.discovermagazine.com/cosmicvariance/2007/11/19/sidney-coleman/ 07:18:59 "T" 07:19:14 "T" 07:19:15 GAH 07:19:32 Sgeo: i'd hazard a guess any dual meaning is entirely intentional 07:19:48 Why is it so bloody impossible to select text in Chrome's PDF reader 07:19:53 "This is disheartening" 07:19:56 also, i don't seem to be able to revert the Brainfuck Constants page. darn hugeness. 07:21:02 TL;DR: AFAICT, it's the depressing meaning 07:29:58 * Sgeo needs a mood depressant 07:30:00 Night all 07:38:37 -!- Goosey has quit (Remote host closed the connection). 07:50:42 -!- Sgeo has quit (Read error: Connection reset by peer). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:16:26 -!- kar8nga has joined. 09:12:41 " And we spend 1/3rd or more of our time unconscious for no clear reason." <<< i slept 14 hours the night before last, 11 now 09:13:46 " Sgeo: That is a completely different reason having to do with mathematics. There are some reasons why 2pi is better and sometimes pi, so that is why pi used." <<< no, pi is never better 09:23:31 -!- kar8nga has quit (Remote host closed the connection). 09:24:27 -!- MigoMipo has joined. 10:00:03 -!- Phantom_Hoover has joined. 10:20:55 -!- eafkuor has joined. 10:43:37 Both major estimates of IANA IPv4 depletion are now under 100 days... 10:46:10 -!- kar8nga has joined. 10:49:35 And before adress space runs out, it starts to fragment, with maximum allocatable block falling in size. Right now it is still /8. 10:51:11 (VARIOUS, LACNIC and AFRINIC all have free complete /8). And IANA has 11 of those in pool. 10:52:04 well i guess once IANA runs out they'll start counting down for individual NICs... 10:52:40 Yup. 10:52:44 w/in 25 10:55:11 Or actually, it might be that once the first RIR (APNIC) depletes, allocations diversify to other RIRs (which will then fragment the routing table to hell). 10:59:28 no matter what, BAD THINGS will happen 10:59:37 * coppro is at an organization with a /16, so there 11:00:35 in fact, due to it having a /16, I have a Real IP Address 11:00:36 -!- MigoMipo has quit (Quit: Quit). 11:12:20 Heh... NIC (GbE) in this new computer supports jumbo, but NIC (fast ethernet) in this old computer doesn't. 11:14:44 -!- Mathnerd314 has quit (Ping timeout: 245 seconds). 12:11:07 -!- cheater99 has joined. 12:19:43 -!- cheater00 has joined. 12:28:07 -!- yorick has joined. 12:37:29 -!- eafkuor has quit (Ping timeout: 272 seconds). 12:40:53 -!- Guest49186 has joined. 12:41:48 i want to identify u darling 12:42:06 sweatheart 12:42:09 -!- Guest49186 has quit (Client Quit). 12:58:18 -!- kar8nga has quit (Remote host closed the connection). 13:35:46 -!- oerjan has quit (Quit: leaving). 13:39:30 -!- fxkr has quit (Quit: leaving). 13:45:56 -!- fxkr has joined. 13:47:01 -!- digger has joined. 13:47:56 -!- digger has quit (Client Quit). 14:19:28 -!- Hiant has joined. 14:24:06 -!- Hiant has quit (Client Quit). 14:36:21 -!- rodgort has quit (Ping timeout: 245 seconds). 14:37:39 -!- rodgort has joined. 14:37:41 -!- rodgort has quit (Client Quit). 14:38:18 -!- rodgort has joined. 15:19:46 -!- sebbu2 has changed nick to sebbu. 15:22:38 -!- elliott has joined. 15:24:46 21:42:50 Gregor: Yes, and that is the divine purpose, of what is supposed to be. The divine purpose of what is supposed to be, is how many fingers your ancestors evolved. It can happen by random, but many things mixed up together and then the probable and supposed to be is the way Universe evolves by quantum uncertainty principle. 15:24:55 Gregor: Can you translate this from word soup to English? 15:25:50 21:49:58 "The Christian God" is a useful definition, with a clear cut answer -- No 15:26:07 Actually, the clear cut answer is more like 2^(-(number of claims made in the Bible or thereabouts)). 15:27:10 21:56:50 Well nobody believes that God literally penned the Bible (I think?), everyone believed it was penned by humans with divine intervention. 15:27:11 21:57:01 *believes 15:27:11 21:57:11 And by "everyone" I mean "all relevant people" or something :P 15:27:12 jesus wrote the bible 15:27:15 prove me wrong 15:27:41 21:59:42 Gregor: Then cut off your fingers if you dislike that. 15:27:43 22:02:24 Gregor: Well, that is what you can do; if you do not like it, then do not to do it, please. 15:27:48 i am laughing so much 15:28:34 22:17:00 I feel like I'm acting out an artificial hyperness of http://tvtropes.org/pmwiki/pmwiki.php/Main/DidYouJustHaveSex that sort despite not in fact getting laid 15:28:41 I have no idea what you just said, but you're fucked up, dude. 15:36:29 -!- kar8nga has joined. 15:41:22 elliott, hi 15:41:34 hi 15:42:55 [[Why would someone who refuses to use new technology or follow business requirements or write code that no one else can maintain be a 'real programmer'.]] --proggit; all the replying concurring commands are talking about wasting company money and time. Sigh. 15:43:09 Can we just kick out every software company from the universe, please? 15:43:19 (It's in the reply to the Story of Mel.) 15:47:00 Vorpal: thank you times a gajillion for this synthesis paper, btw 15:47:24 i just wish it wasn't in badly-rendered .ps 15:49:56 elliott, I read a html-ised version 15:50:06 elliott, the ps one I would like to see 15:50:36 Vorpal: I recommend the HTML version! But: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.4871 15:50:43 The PDF is just a conversion of the ps and so is even worse. 15:51:13 hey olsner 15:51:14 you there? 15:51:32 To be honest, http://valerieaurora.org/synthesis/SynthesisOS/ with a bit more LaTeXy CSS would be nicer. 15:54:44 olsner: ping 15:57:31 Vorpal: i'm not sure i quite understand what a callout is 15:58:07 -!- FireFly has joined. 15:59:08 elliott, heh 15:59:21 can you try and explain it? he's sort of just glossed over it in three sentences 15:59:22 elliott, trying to remember. Was over a year ago I read it 15:59:32 elliott, if you can job my memory a bit. 15:59:48 Vorpal: Well I'd copy and paste except the ps doesn't let me. 16:00:05 elliott, so the html version? 16:00:12 The interface to a quaject consists of callentries, callbacks, and callouts. A client uses the services of a quaject by calling a callentry. Normally a callentry invocation simply returns. Exceptional situations return along callbacks. Callouts are places in the quaject where external calls to other quaject's callentries happen. Tables 4.2, 4.3, and 4.4 list the interfaces to the Synthesis basic kernel quajects. 16:00:12 Callentries are analogous to methods in object-oriented systems. The other two, callbacks and callouts, have no direct analogue in object-oriented systems. Conceptually, a callout is a function pointer that has been initialized to point to another quaject's callentry; callbacks point back to the invoker. Callouts are an important part of the interface because they specify what type of external call is needed, making it possible to dynamically lin 16:00:13 k one of several different quaject's callentries to a particular callout, so long as the type matches. For example, the Synthesis buffer quaject has a flush callout which is invoked when the buffer is full. This enables the same buffer implementation to be used throughout the kernel simply be instantiating a buffer quaject and linking its flush callout to whatever downstream processing is appropriate for the instance. 16:00:39 for the BufferIn quaject, get and read are callentries, and fill (replenish the empty buffer) is a callout 16:00:49 elliott, sounds like delegates? 16:00:51 kind of thingy 16:00:55 if you know about C# 16:01:04 Vorpal: yeah but i have a feeling it's more than that... 16:01:24 Vorpal: Also, don't you mean "function pointer"? :) 16:01:46 elliott, well sure but delegates is more specific than function pointer. It indicates a specific use 16:01:53 eh? 16:02:30 Vorpal: how? 16:03:46 elliott, well, function pointers can be used for stuff like dlopen() while I can't remember having seen delegates used for anything than "subscribing" to an event kind of thingy 16:03:55 ah 16:03:58 okay then 16:04:35 Vorpal: do you know if this system or at least its entire source is available anywhere? 16:04:37 elliott, but I'm not completely sure what callout is 16:04:39 I would love to emulate it somehow. 16:04:57 elliott, I think source has been lost. Read someone claiming that somewhere. But I don't know for sure 16:05:11 :( 16:05:26 Vorpal: The irritating thing is all these little snippets of 68k assembly -- so much nicer than x86 :P 16:06:57 :P 16:11:46 Vorpal: is it bad that i'm just trying to ignore everything even vaguely imperative in this paper? 16:12:46 elliott, err. How could you possibly do that? 16:12:52 elliott, it is very imperative 16:13:25 Vorpal: No it's not. 16:13:28 elliott, would the thing even make sense ignoring the imperative bits? 16:13:35 elliott, still synthesis? 16:13:38 Vorpal: Of course. 16:13:53 Vorpal: Synthesis is a pure optimisation; f^create(x)(y, z) = f^big(x, y, z) 16:14:06 Vorpal: It is known as "specialisation" in functional programming circles. 16:14:23 Vorpal: http://blog.sigfpe.com/2009/05/three-projections-of-doctor-futamura.html 16:15:03 elliott, yes indeed. But the way it is implemented (handcoded asm) is very imperative 16:15:28 Vorpal: Well, sure. But you could implement the quajects in a pure, high-level language, I would think. 16:15:32 Perhaps modified slightly. 16:15:38 Vorpal: (Language designed for this purpose, that is.) 16:16:13 elliott, functional: certainly. Pure one I'm less certain of 16:17:06 Vorpal: Well, we'll have to see. 16:18:42 elliott, has this completely changed plans for ehirdOS? 16:20:22 Vorpal: No. 16:20:40 Vorpal: In fact I was already strongly looking into a functional specialisation-based system. 16:32:25 Vorpal: Aww, there's a ByteQueue quaject. It should be a Queue[Byte] instead, and be specialised. :) 16:41:27 hah 16:43:56 Vorpal: Very clever how the "self" argument problem is avoided by effectively doing "instance->method = specialise[class->method(instance, ...)]". 16:44:15 (For small procedures; and then having larger procedures know what self is, but then call the class method with it as the extra parameter.) 16:44:32 indeed 16:44:55 Vorpal: How does this fit into the tiny size?! 16:45:04 elliott, no clue. 16:45:40 256 kilobytes of ROM for "the entire Synthesis kernel, monitor, and runtime libraries". 16:45:46 i.e. the OS. 16:52:16 -!- sshc has quit (Ping timeout: 255 seconds). 16:53:24 -!- MigoMipo has joined. 16:54:20 Vorpal: yay run-linking! 16:57:41 bbl 17:07:17 -!- kar8nga has quit (Remote host closed the connection). 17:13:01 elliott, hm? 17:13:16 elliott, run-linking? 17:13:23 elliott, also 256 KB was large back then 17:13:37 Vorpal: run-linking is one of its forms of dynamic linking, that resolves symbols only when they are used 17:13:50 ah 17:14:04 elliott, I don't think I read that paper from end to end. I read the bits I was interested in 17:14:20 I recommend it! 17:14:21 elliott, anyway linux only resolves symbols when needed iirc 17:14:34 unless you pass some special linker flags 17:15:11 Vorpal: Umm, no. 17:15:15 Vorpal: You can't link a program that does 17:15:18 if (0) { podkfsdpfjsdiofsd(); } 17:15:30 In Synthesis using the run-link system, you can, and it'll run fine because that code path is never executed. 17:15:35 i.e., late binding. 17:15:40 ah 17:16:14 elliott, I meant in a different sense 17:16:28 elliott, the sense of relocations in ELF binaries only being resolved when hit 17:17:11 right 17:22:08 elliott, minecart system complete btw 17:22:42 Vorpal: Oh fuck you, I forgot that game existed until right now. 17:23:17 elliott, :P 17:24:49 Vorpal: I seriously did. 17:36:51 Vorpal: down? 17:37:12 ineiros, down? 17:37:28 elliott, think so 17:37:48 Vorpal: that going-down has led me to discover the source of all MP lag/sync issues. 17:37:55 elliott, oh? 17:37:56 Vorpal: You know how when people walk continuously, you see it as them walking in short spurts? 17:38:03 elliott, yes 17:38:13 Vorpal: Well, when I was on the cart there, I kept going forwards a bit, and then resetting back to where I was, continuously. 17:38:16 Vorpal: What I have discovered is: 17:38:22 yes I seen that happen 17:38:32 Vorpal: The client *runs the game world itself* without the server. It does not do any prediction. 17:38:35 So carts move, but people stay still. 17:38:44 Vorpal: And then, when the server tells it "what's up", it completely forgets everything it did and updates to that. 17:38:45 elliott, and you are going to have a hell cleaning up duplicate carts if you timeout while riding one 17:38:54 Vorpal: This also goes a long way to explain the double-mining bug. 17:38:58 elliott, yes this is called "prediction" 17:39:00 elliott, it is common 17:39:05 Vorpal: No... 17:39:09 Vorpal: As I said, it does not do any prediction. 17:39:19 It merely simulates the world *without any other actions*. 17:39:29 So everything you do takes effect, but it does not even try to predict what another player will do. 17:39:31 elliott, which is just a sort of prediction 17:39:33 If it did, movement would not be in spurts. 17:39:37 Vorpal: Ehm, no. Look it up. 17:39:44 elliott, well a primitive form 17:39:54 elliott, "I predict everyone else will do nothing" :P 17:40:24 Server's back up. 17:40:47 elliott, I know 17:56:51 -!- Sasha2 has joined. 17:56:52 -!- Sasha has quit (Ping timeout: 264 seconds). 18:01:22 -!- Sasha2_ has joined. 18:03:28 -!- Sasha2 has quit (Ping timeout: 264 seconds). 18:03:42 -!- MigoMipo has quit (Remote host closed the connection). 18:04:16 -!- MigoMipo has joined. 18:11:08 -!- wareya has quit (Read error: Connection reset by peer). 18:11:24 -!- MigoMipo has quit (Ping timeout: 245 seconds). 18:11:41 -!- wareya has joined. 18:14:34 elliott, down? 18:14:34 Vorpal: down? 18:14:36 :D 18:14:37 hah 18:14:43 Vorpal: btw there's more cool things in the mine 18:14:45 Vorpal: lava lakes for instance 18:15:03 elliott, mhm. Is that huge one still left? 18:15:14 elliott, anyway entrance is how water safe 18:15:19 how? 18:15:24 also: BORING 18:15:26 server up 18:16:42 -!- Goosey has joined. 18:23:17 -!- yorick has quit (Ping timeout: 272 seconds). 18:32:50 -!- yorick has joined. 18:37:57 -!- mycroftiv has quit (*.net *.split). 18:37:57 -!- Ilari has quit (*.net *.split). 18:37:57 -!- Ilari_antrcomp has quit (*.net *.split). 18:37:58 -!- Vorpal has quit (*.net *.split). 18:37:58 -!- ttm_ has quit (*.net *.split). 18:37:59 -!- augur has quit (*.net *.split). 18:37:59 -!- Slereah has quit (*.net *.split). 18:37:59 -!- Zuu has quit (*.net *.split). 18:37:59 -!- bsmntbombdood has quit (*.net *.split). 18:38:00 -!- oklopol has quit (*.net *.split). 18:38:00 -!- sebbu has quit (*.net *.split). 18:38:05 -!- Quadlex has quit (*.net *.split). 18:38:05 -!- cal153 has quit (*.net *.split). 18:38:05 -!- SimonRC has quit (*.net *.split). 18:38:05 -!- aloril has quit (*.net *.split). 18:38:05 -!- comex has quit (*.net *.split). 18:38:05 -!- mtve has quit (*.net *.split). 18:38:05 -!- fxkr has quit (*.net *.split). 18:38:05 -!- myndzi\ has quit (*.net *.split). 18:38:05 -!- jcp has quit (*.net *.split). 18:38:06 -!- coppro has quit (*.net *.split). 18:38:06 -!- Goosey has quit (*.net *.split). 18:38:06 -!- Sasha2_ has quit (*.net *.split). 18:38:06 -!- pikhq has quit (*.net *.split). 18:38:06 -!- Wamanuz5 has quit (*.net *.split). 18:38:06 -!- Deewiant has quit (*.net *.split). 18:38:07 -!- rodgort has quit (*.net *.split). 18:38:07 -!- cheater00 has quit (*.net *.split). 18:38:07 -!- Phantom_Hoover has quit (*.net *.split). 18:38:07 -!- poiuy_qwert has quit (*.net *.split). 18:38:07 -!- sftp has quit (*.net *.split). 18:38:07 -!- Gregor has quit (*.net *.split). 18:38:08 -!- Quadrescence has quit (*.net *.split). 18:38:08 -!- ineiros has quit (*.net *.split). 18:38:10 -!- wareya has quit (*.net *.split). 18:38:10 -!- cheater99 has quit (*.net *.split). 18:38:10 -!- EgoBot has quit (*.net *.split). 18:38:10 -!- Leonidas has quit (*.net *.split). 18:38:11 -!- yiyus__ has quit (*.net *.split). 18:38:11 -!- jix has quit (*.net *.split). 18:38:11 -!- dbc has quit (*.net *.split). 18:38:11 -!- lifthrasiir has quit (*.net *.split). 18:38:12 -!- fizzie has quit (*.net *.split). 18:38:12 -!- olsner has quit (*.net *.split). 18:38:12 -!- yiyus has quit (*.net *.split). 18:39:43 -!- Ilari has joined. 18:39:53 -!- sebbu has joined. 18:39:58 -!- Ilari has changed nick to Ilari_. 18:40:18 -!- Ilari_ has changed nick to Ilari. 18:40:26 -!- Gregor has joined. 18:41:29 -!- yiyus_ has joined. 18:41:30 -!- ineiros_ has joined. 18:41:30 -!- Wamanuz has joined. 18:41:30 -!- Goosey has joined. 18:41:30 -!- Phantom_Hoover_ has joined. 18:41:30 -!- coppro_ has joined. 18:41:30 -!- sftp_ has joined. 18:41:30 -!- Sasha2 has joined. 18:41:30 -!- wareya has joined. 18:41:30 -!- rodgort has joined. 18:41:30 -!- fxkr has joined. 18:41:30 -!- cheater99 has joined. 18:41:30 -!- oklopol has joined. 18:41:30 -!- 17SAAIFGN has joined. 18:41:30 -!- dbc has joined. 18:41:30 -!- lifthrasiir has joined. 18:41:30 -!- pikhq has joined. 18:41:30 -!- augur has joined. 18:41:30 -!- Slereah has joined. 18:41:30 -!- myndzi\ has joined. 18:41:30 -!- Vorpal has joined. 18:41:30 -!- EgoBot has joined. 18:41:30 -!- Leonidas has joined. 18:41:30 -!- Zuu has joined. 18:41:30 -!- ttm_ has joined. 18:41:30 -!- cal153 has joined. 18:41:30 -!- SimonRC has joined. 18:41:30 -!- bsmntbombdood has joined. 18:41:30 -!- aloril has joined. 18:41:30 -!- fizzie has joined. 18:41:30 -!- Quadlex has joined. 18:41:30 -!- mycroftiv has joined. 18:41:30 -!- Ilari_antrcomp has joined. 18:41:30 -!- comex has joined. 18:41:30 -!- jix has joined. 18:41:30 -!- olsner has joined. 18:41:30 -!- mtve has joined. 18:41:30 -!- yiyus has joined. 18:41:46 -!- cheater99 has quit (Ping timeout: 240 seconds). 18:41:53 -!- Deewiant has joined. 18:41:56 -!- poiuy_qwert has joined. 18:42:05 -!- Quadrescence has joined. 18:43:06 -!- Quadrescence has quit (Changing host). 18:43:06 -!- Quadrescence has joined. 18:44:06 -!- cheater99 has joined. 18:44:38 -!- cheater00 has joined. 18:44:40 -!- Gregor has changed nick to Guest7321. 18:44:41 Wowsa. 18:44:41 -!- 17SAAIFGN has quit (Ping timeout: 255 seconds). 18:45:09 -!- Guest7321 has changed nick to Gregor. 18:45:36 -!- jcp has joined. 18:47:40 -!- yiyus__ has joined. 18:50:49 -!- yiyus_ has quit (Ping timeout: 245 seconds). 18:50:49 -!- poiuy_qwert has quit (Ping timeout: 245 seconds). 18:50:49 -!- rodgort has quit (Ping timeout: 245 seconds). 18:51:10 -!- poiuy_qwert has joined. 18:52:33 elliott, down? 18:52:50 Vorpal: seems so 18:53:48 up 18:53:58 elliott, ^ 18:54:09 Vorpal: I'm taking a break :P 18:54:18 elliott, you will have to /home then 18:54:26 elliott, I doubt you will find your way out 18:54:34 I plan to. 18:54:38 (/home) 18:54:44 elliott, also why did you call me crazy? 18:55:00 elliott, this is nothing compared to the computer in minecraft. Or Enterprise in it 18:55:17 elliott, I mean, seriously. Get some perspective 18:55:22 Vorpal: Computer is just a bunch of redstone shit. Engineering really. 18:55:27 Vorpal: Enterprise was done with an editor 18:55:30 Your mines: crazy :P 18:55:35 a huge bunch 18:55:42 elliott, there are crazier mines on the forum 18:55:56 how big is Vorpal's? 18:55:57 Vorpal: but none of them are on our server! 18:55:57 elliott, a whole thread dedicated to density/efficiency calculations 18:56:03 oklopol, I have no idea 18:56:04 oklopol: big enough that i got lost (so like more than 3x3) 18:56:19 oklopol: also he uses SHORTHAND on his signs 18:56:21 how many minutes to walk from one end to other 18:56:23 oklopol: and has some freaky multi-layer displacement thing 18:56:26 oklopol: no ends, it's all... sandwiched 18:56:31 oklopol: he calls branches shit like "B1.1+" 18:56:32 -!- rodgort has joined. 18:56:34 -!- Sasha2 has quit (Read error: Connection reset by peer). 18:56:38 :P 18:56:44 elliott, no that is branch 1.1 "and above" 18:56:56 elliott, B1.1, B1.2 (and in future 1.3 and so on) 18:56:57 -!- Sasha2 has joined. 18:57:11 elliott, that is what the + means 18:57:28 oklopol: just listen to him! 18:57:39 he's planning for B1.3, which means that B2 must be like five years away 18:57:45 (logic!) 18:57:54 elliott, no. 2 would be one layer higher 18:57:57 vertically 18:58:02 2.1 that is 18:58:23 the first number is the vertical index in that section. The second is the horizontal one 18:58:45 diamond 18:58:56 like 1 space from my corridor that I just widened 18:59:13 8 diamond 19:01:43 elliott, and S0/S1/S2 are "service station " 19:01:57 elliott, the system is perfectly sensible 19:02:09 elliott, considering the size of the signs 19:02:15 oklopol: he said "CAV" and "Btlp" because typing "Cavern" and "Boatloop" would, i dunno, get too tedious after doing it 459834758935 times 19:02:18 elliott, if I typed this out it would require several signs 19:02:38 elliott, because it fit with the rest of the notation on the signs :P 19:02:45 -!- cheater99 has quit (Ping timeout: 240 seconds). 19:02:45 elliott, also it should say BTL. Must be a typo 19:02:50 suuure 19:02:55 -!- Goosey has quit (Ping timeout: 264 seconds). 19:02:59 -!- cheater00 has quit (Ping timeout: 240 seconds). 19:03:36 elliott, fixed that sign now 19:03:48 -!- Goosey has joined. 19:03:51 elliott, another advantage: confusing you 19:04:12 -!- MigoMipo has joined. 19:05:08 http://www.randomfactory.com/lfa/doslinux.html 19:05:34 -!- mycroftiv has quit (Write error: Connection reset by peer). 19:05:34 -!- mycroftiv has joined. 19:05:57 elliott: Somebody made a prepack Debootstrap installer for Android. 19:06:27 Gregor: NO DON'T LOOK AT IT 19:06:34 Gregor: IF YOU KNOW OF PRIOR ART YOUR HACKING FEELS LESS FUN 19:06:47 elliott: It doesn't do the X11 stuff, which is the interesting part anyway :P 19:06:52 (I refused to google for any info on putting another distro on the Ubisurfer :P) 19:06:57 Although it probably isn't there, it would DESTROY THE FUN ANYWAY. 19:07:08 Gregor: I only looked up how to do Windows NT for MIPS in an emulator BEGRUDGINGLY. 19:07:48 "thanks for the suggestions no further forward first command said not found second gave me link to the website third said unknown among other things about make and model will keep trying ill get there in the end always do ohh if it helps most off the files in /etc are .d file type" 19:07:51 --LinuxForums 19:08:08 *brain axplote* 19:08:28 elliott, markov chain? 19:08:41 Vorpal: no, very confused human 19:08:58 markov chains are fun :D 19:09:06 "if it helps most off the files in /etc are .d file type" made that line I think 19:09:15 elliott, either this means markov chains are sentient or that human isn't. 19:09:50 once, I used a markov chain to convert binary to decimal 19:09:51 lol 19:09:59 Goosey: heh, cool 19:10:03 nice 19:10:29 Yeah, it was slick 19:10:40 but its not the best way :? 19:10:42 Gregor: Vorpal: Thanks for the suggestions! I'm no further forward. The first command said "not found". The second gave me a link to the website. The third said "unknown" among other things about make and model. I will keep trying. I'll get there in the end, always do. Oh, if it helps, most of the files in /etc are of the ".d" file type. 19:10:44 haha! i decoded it 19:10:45 ow my brain 19:11:20 That ... is not a decoding. 19:11:29 All you've done is add punctuation, it's still nonsense. 19:11:46 Gregor: There were three commands in the previous post to try and deduce what distro the UbiSurfer runs on. 19:11:57 The ".d" file type thing is obviously /etc/init.d and the like, thinking directories are files. 19:12:03 The website is the ubisurfer website or whatever. 19:12:09 elliott, I now have 64 + 5 diamonds that I mined myself :D 19:12:11 At least you can read it with context and understand it rather than brain crazy :P 19:12:57 What is this doslinux link O_O 19:13:06 elliott, /etc/shadow.d (I predict this will happen. Some insane distro will make it happen) 19:13:22 after all I have ld.so.conf.d nowdays 19:16:02 -!- cheater99 has joined. 19:17:14 -!- cheater00 has joined. 19:17:28 elliott, my tree farm grew 19:17:44 oklopol: oh yeah, he has a huge underground tree farm 19:17:46 yay invisible leaves 19:17:48 because he is, as i have stated, crazy. 19:17:57 elliott, that I got from the wiki... 19:18:07 -!- sftp_ has quit (Remote host closed the connection). 19:18:21 -!- sftp_ has joined. 19:18:30 ah reconnecting fixed the invisible leaves 19:20:17 ineiros_, there? 19:21:24 elliott, also nailor said "cool" about my tree farm 19:21:29 -!- oklopol has quit (Ping timeout: 255 seconds). 19:21:40 -!- oklopol has joined. 19:21:53 The film details the "chronicle of [Holmes's] greatest accomplishment" in which famous detective Sherlock Holmes (Ben Syder, making his film debut) and his companion Dr. Watson (Gareth David Lloyd) investigate a string of unusual "monster" attacks before stumbling on Spring-Heeled Jack's plot to destroy London with the aid of his robotic dinosaurs. The film has recently been shown on the Syfy channel in the United Kingdom. The film is also availa 19:21:53 ble on iTunes. 19:23:35 -!- pikhq_ has joined. 19:23:49 -!- pikhq has quit (Ping timeout: 264 seconds). 19:24:49 Vorpal: do you think the synthesis .ps will print nicely 19:25:07 olsner: ping 19:25:35 -!- Sgeo has joined. 19:25:54 elliott, how should I know? 19:26:03 elliott, besides you don't believe in paper 19:26:08 elliott, use the html version? 19:26:20 elliott, how should I know? 19:26:21 cleverly 19:26:24 elliott, besides you don't believe in paper 19:26:29 well i do when the .ps is this ugly on screen. 19:29:22 WHERE IS OLSNER IS HE IN SPACE 19:30:57 elliott, can a sapling grow if you are standing on it? And what happens if it does 19:32:43 -!- Goosey has quit (Remote host closed the connection). 19:32:43 -!- zzo38 has joined. 19:32:56 -!- pikhq has joined. 19:34:11 Vorpal: How should I know? 19:34:21 Vorpal: I doubt it would. Either that or you'd get stuck in the bark. 19:36:26 -!- Leonidas_ has joined. 19:36:34 -!- augur has quit (Ping timeout: 252 seconds). 19:36:34 -!- Sasha2_ has joined. 19:36:35 elliott, yeah probably one of those 19:36:35 Has anyone ever tried? 19:36:35 I dislike PDF and PostScript, they are both really bad idea, in my opinion. 19:36:35 -!- Leonidas_ has quit (Changing host). 19:36:35 -!- Leonidas_ has joined. 19:36:35 -!- oklopol has quit (Ping timeout: 240 seconds). 19:36:36 -!- coppro_ has quit (Ping timeout: 240 seconds). 19:36:36 -!- coppro has joined. 19:36:36 -!- EgoBot has quit (Ping timeout: 240 seconds). 19:36:36 -!- jix has quit (Ping timeout: 240 seconds). 19:36:37 -!- Leonidas has quit (Ping timeout: 240 seconds). 19:36:41 I dislike PDF and PostScript, they are both really bad idea, in my opinion. 19:36:42 why 19:36:57 zzo38, so what do you prefer? 19:37:01 dvi? if so ugh 19:37:03 -!- Goosey has joined. 19:37:16 zzo38: why do you dislike them 19:37:25 -!- oklopol has joined. 19:37:46 -!- jix_ has joined. 19:37:47 -!- HackEgo has joined. 19:37:49 -!- pikhq_ has quit (Ping timeout: 240 seconds). 19:37:49 -!- 84XABBDYY has joined. 19:37:49 -!- Sasha2 has quit (Ping timeout: 240 seconds). 19:37:50 -!- 84XABBDYY has quit (Ping timeout: 240 seconds). 19:38:12 -!- EgoBot has joined. 19:38:22 Vorpal: Yes I prefer DVI. DVI is simpler and more sensible. PDF and PostScript are very complicated and full of really messy stuff that does not make sense, including animations and audio clips, attachments, encryption, so on... 19:39:08 postscript doesn't have encryption afaik 19:39:27 zzo38: Postscript does not have animations or audio clips or attachments. 19:39:37 Yes, PostScript does not have encryption, but PDF has a lot of useless stuff like that, though. PostScript has other problems. 19:39:49 A completely different kind of problems. 19:40:05 zzo38: And what are they? 19:40:55 Mostly difficulty of parsing the file. Both PDF and PostScript have a lot of complexity. 19:41:12 zzo38: Please explain how it is difficult to parse PostScript. 19:41:23 zzo38: It is just a stack-based language, like Forth. 19:41:29 Forth is not difficult to parse and implement, and neither is PostScript! 19:50:51 -!- Goosey has quit (Read error: Connection reset by peer). 19:50:54 As far as I can tell, PostScript is very complicated, and in my opinion is not suitable as an output format. 19:51:15 -!- Goosey has joined. 19:53:38 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 19:56:39 And both PDF and PostScript use text formats for their files, too. 20:01:32 And both PDF and PostScript use text formats for their files, too. 20:01:33 what? 20:04:23 -!- Goosey has quit (Read error: Connection reset by peer). 20:04:49 -!- Goosey has joined. 20:15:07 elliott, I'm adding a lava fall to my castle I think 20:18:04 Vorpal: haha, this paper is destroying my mind 20:18:36 Vorpal: I'm writing a boot sector now and instead of making a function that calls another function in a loop, i'm putting the wrapper function before that function, changing the future ret to a jmp back here, and then letting it trail through the main body function 20:18:40 restoring the ret at the end 20:18:46 FUCK YOU CACHE 20:19:08 elliott, I'm trying to make sense of that 20:19:13 elliott, also it isn't a paper. It is a thesis 20:19:18 thesis = long paper :p 20:19:23 (if it is synthesis) 20:19:25 Vorpal: i'll demonstrate 20:19:41 putstr: ...conditional ret... 20:19:50 mov [return_here], *code to jump to putstr* 20:19:51 putchr: 20:19:54 ... code to put a character ... 20:19:56 return_here: ret 20:20:03 see? :D 20:20:06 uh 20:20:08 putstr avoids the overhead of a call instruction! 20:20:12 elliott, how is that relevant to the boot sector? 20:20:19 hah 20:20:23 Vorpal: um my boot sector has a putstr function for printing to the console 20:20:33 ah 20:20:37 Vorpal: and boot sectors have to be small! and fast. micro-optimisation for the win 20:20:41 -!- Goosey has quit (Ping timeout: 265 seconds). 20:20:43 elliott, and how is that relevant to the paper in question? 20:20:48 Vorpal: self-modifying code 20:20:53 for optimisation purposes 20:21:15 elliott, see the final conclusions in that thesis 20:21:43 gah 20:22:11 Vorpal: what were they, i haven't got that far yet 20:22:13 *what are 20:22:17 "it isn't worth it?" 20:22:18 *it"? 20:22:22 :P 20:22:47 elliott, "concerns about future up and coming cpu designs" amongst other things 20:23:11 heh 20:23:19 a pig just stepped off a mountain 20:23:59 * elliott decides this self-modifying thing isn't going to work out 20:28:21 fff 20:28:29 "mov al, byte [cx]" stupid stupid this not working stupid x86 i hate x86 20:28:31 x86 should die 20:28:33 forever 20:28:52 actually wait what did i do wrong... 20:29:52 elliott, I now have a nice lava fall on my house 20:29:55 What's a good VOY episode? 20:30:00 Sgeo: there are none. 20:30:26 What's a good TNG episode? 20:30:34 Sgeo: well, maybe Scorpion. MAYBE. but that was ruined by deciding to recruit a borg afterwards 20:30:37 good TNG episode? 20:30:38 all of them! 20:30:51 well, all post-first-season. :P 20:30:55 Apparently "Shades of Grey" is not well thought of 20:31:38 well, it's a clip show... 20:32:58 Why don't I go watch Time's Arrow? 20:33:24 elliott: There's bad ones post-first-season. 20:33:41 pikhq: Yes, but you can generally pick a TNG episode at random and get consistent quality. 20:33:43 Sgeo: Good VOY episode? The Thaw. 20:33:53 I liked The Thaw. 20:33:56 Bad ending, though :P 20:33:56 elliott: True, the bad ones are a *minority*. 20:33:59 They should have ALL DIED 20:34:14 pikhq: Of course what you should do is pick a DS9 episode, non-randomly, pick the first one, and then next time, pick the second one, and then keep going until you pick the last one, and then stop. 20:34:18 Still. It was one of the few genuinely well-written Voyager episodes. 20:34:24 That's the most consistent algorithm to get a quality episode :P 20:34:31 elliott: I'm in the process of that, actually. 20:34:39 -!- Goosey has joined. 20:34:44 elliott: Sadly, there has been one bad episode in the run so far. 20:34:45 elliott: Q Less. 20:34:56 elliott: But that just confirms that only TNG should be allowed Q. 20:35:15 A bad Q episode? 20:35:29 Sgeo: If it's not in TNG, it's probably a bad Q episode. 20:35:37 Bad Q episode: EVERY SINGLE VOYAGER Q EPISODE EVER 20:36:02 Also, Encounter at Farpoint was kinda a bad episode when Q wasn't on-screen. 20:36:19 elliott, you could do it the reverse way too 20:36:31 elliott, or start at a random one and loop around 20:37:15 Vorpal: no 20:37:19 Vorpal: DS9 relies heavily on continuity 20:37:46 DS9 is very much non-episodic. 20:37:50 That's one of its strengths. 20:37:57 mov al, byte [cx] 20:37:58 WHY DOESN'T THIS WORK 20:38:03 WHY IS X86 SO NON-ORTHOGONAL 20:38:06 elliott, ah 20:38:28 Hm 20:38:36 Maybe I should start watching DS9 then 20:38:38 elliott, with voy you can watch 9/10 of the episodes out of order (ignoring two-part episodes) 20:38:50 I like continuity 20:38:51 A lot 20:38:56 Vorpal: yes, indeed, and they'll all suck 20:39:18 Sgeo: DS9 is quite good. 20:39:42 It's the last good Star Trek series, in fact. 20:41:37 Does anyone know x86 here? Ata ll? 20:41:51 Man. Voyager and DS9 ran *simultaneously*. 20:42:15 elliott, I vaguely do. 20:42:58 And Voyager did everything wrong that DS9 did right, pretty much. 20:43:04 mov al, byte [cx] 20:43:08 Phantom_Hoover_: WHY IS [CX] INVALID 20:43:19 Pass. 20:43:27 Effective addresses are _insane_. 20:43:30 Try playing some Star Trek games on SNES :P 20:43:33 They're all really awful :P 20:43:50 Did you know: [sp] is encoded completely differently to [ax]. 20:44:14 You've got either "really slow-paced write down every word you see game: The Musical!" or "Prince of Persia IN SPACE with more ridiculous timing constraints" 20:44:22 http://www.posix.nl/linuxassembly/nasmdochtml/nasmdoca.html 20:44:24 Phantom_Hoover_: But that's just the thing, [ax] doesn't work either! 20:44:32 Gregor: Now blend them both. 20:44:47 Gregor: Prince of PERSIA IN SPACE with more ridiculous timing constraints where you have to write down every word you see. 20:44:47 Prince of Persia IN SPACE: The Musical! 20:44:50 pikhq: TNG and DS9 ran simultaneously too, DS9 spanned part of both other series'. 20:44:53 That has a pretty good explanation of both x86-16 and -32. 20:45:04 ... Where can I go to pay for that? 20:45:15 pikhq: That would be the worst musical ever :P 20:45:18 I'd see it. 20:45:19 Gregor: And TNG→VOY marks good to bad. 20:45:20 -!- cheater00 has quit (Quit: Leaving). 20:45:29 Gregor: Astounding the short transition there. 20:45:40 Eh, Voyager had its moments. I'd say VOY -> ENT marked bad to wtf. 20:46:07 And then ENT -> Star Trek X marked wtf -> Star Wars Trek 20:46:24 Yeah, VOY→ENT was bad to PAIN AND AGONY. 20:46:43 Gregor: Define X 20:47:00 elliott: 10 20:47:07 elliott: Though I think he means 11. 20:47:16 I know what 10 is :P 20:47:25 pikhq: No, he means XII. 20:47:33 Erm, sorry, yes, XI ... I forget the number because they fucked it up. 20:47:38 First Contact, Insurrection, Galaxy Quest, Nemesis, Star Trek. 20:47:41 Duh. 20:47:44 (source: http://qntm.org/odd) 20:47:54 Ah, right, Galaxy Quest. 20:47:54 Gregor: But I thought (2009) was *good*. 20:47:59 Or at least everyone who isn't you has said so :P 20:48:08 I haven't seen it! 20:48:12 It wasn't THAT bad, it just wasn't Star Trek at all. 20:48:43 Gregor: Kinda like The Voyage Home, then. 20:48:43 Then again, I'm defining Star Trek in terms of post-TOS Star Trek, so maybe it's more faithful than I'm making it out to be *shrugs* 20:49:11 Gregor: If you're saying "Too much action! Not enough talking!" then thank god because TOS talking bits were awful :P 20:49:15 Actually TOS was just awful. 20:49:28 Gregor: Was Kirk a womanising bastard with a gigantic ego? 20:49:32 I don't care about anyone who disagrees. It was a terrible TV show and Gene Roddenberry without other people to contain him is a hack. 20:49:39 And William Shatner is a terrible actor. 20:49:45 elliott: probably you either have to use eax/ecx, or you need some kind of address size override thingy, or you're in real mode and enjoy only being allowed to use e/bx and e/bp in addresses 20:49:52 elliott: I kinda like some of TOS, but yeah, it was corny as hell. 20:49:59 olsner: real mode, yes. bleh. wait, what's bp 20:50:03 elliott: And William Shatner is an absolute ham. 20:50:29 elliott: Yeah, TOS really wasn't that great, TNG was the height of the franchise which is why I consider it the beginning of "true" Star Trek :P 20:50:46 elliott, ebp is another GPR. 20:51:10 Well, inasmuch as x86-¬{64} *has* GPRs. 20:51:45 Phantom_Hoover_: x86-32 has one! ECX! 20:51:49 err 20:51:49 In the normal C calling convention it's used to store something in the call process. 20:51:51 cmp al, 0 20:51:51 jz end 20:51:53 this is redundant, right? 20:51:56 what's the cmp meant to be 20:52:00 i've totally forgetteneren 20:52:12 cmp is subtraction without storage of the result. 20:52:15 Gregor: Nope. That's just more general than the others. 20:52:17 It still sets the flags. 20:52:22 Can you do OR AL AL 20:52:24 Phantom_Hoover_: so that's really what i have to do? 20:52:27 You can. 20:52:34 oh, that's probably faster 20:52:41 mov al, byte [bp] 20:52:41 jz end 20:52:42 will that work? 20:52:49 mov doesn't set the zero flag. 20:52:54 joy 20:52:58 FWIW, 0-testing is normally done with test foo, foo 20:53:10 alright then 20:53:14 (test is like cmp but it does a bitwise and) 20:53:26 And then jz. 20:54:04 Now to figure out how to write 20:54:08 putchr:push ds 20:54:08 push 0xB800 20:54:08 pop ds 20:54:08 call _ptchr 20:54:08 pop ds 20:54:09 ret 20:54:11 shorter. 20:54:15 Don't think I can optimise _ptchr itself. 20:54:24 -!- cheater00 has joined. 20:54:31 Why are you saving ds again? 20:54:49 Phantom_Hoover_: Because I'm going to go out on a limb here and say that boot sector code is probably doing things with ds. 20:54:54 Seeing as it has to load stuff in and move it around. 20:55:02 -!- Goosey has quit (Ping timeout: 250 seconds). 20:55:02 Admittedly it might not be putchring at the same time. 20:55:03 Hrm. 20:55:09 Okay, I'll clobber ds and let the caller handlei t. 20:55:11 *handle it. 20:55:14 I have written a bootsector code in case you need to see 20:55:37 No, that will be fine, thank you. 20:55:44 OK 20:56:10 -!- Goosey has joined. 20:56:18 Gregor: Actually, TAS is where Trek started getting good. Though the acting and animation there sucked. 20:56:20 Phantom_Hoover_: Hmm, there's no ret-if-zero, right? Just jump to a ret... hrmph. 20:56:26 Also, wait, holy shit, Deewiant spoke. 20:56:30 Deewiant: You haven't spoken in like seven years. 20:56:33 pikhq: Never saw TAS *shrugs* 20:56:37 pikhq, TAS? 20:56:39 Inaccurate. 20:56:41 Vorpal: The Animated Series. 20:56:43 Vorpal: The Animated Series 20:56:47 ah 20:56:47 Deewiant: Okay, well, at least a few months. 20:56:57 TAS is awesome 20:57:00 elliott, AFAIK there aren't conditional rets. 20:57:12 A few, yes. 20:57:13 Remember, x86 is a sucky CISC arch. 20:57:20 About two, I think. 20:57:22 Phantom_Hoover_: Okay! Now to find out why [0xB800:0] is somewhere in the middle of the screen. 20:57:24 I have designed a instruction set that all instructions are conditional, and all instructions are orthogonal. 20:57:25 Deewiant: Did you DIE? 20:57:40 Haven't been following the channel much. 20:58:03 Deewiant: But all sorts of nothing have happened! 20:58:07 It had Kzinti! 20:58:08 Unmissable nothings. 20:58:18 And Slavers! 20:58:20 fizzie, why did you leave the game? 20:58:47 Vorpal, perhaps because he has non-Minecraft things to do? 20:58:49 I was going to say something sarcastic about Minecraft at some point when I noticed that going on, but decided against it. 20:58:50 (thank you Niven) 20:59:02 Phantom_Hoover_, no: server error 21:00:06 Deewiant: "Glad to see you're all getting into Dwarf Fortress!" 21:00:18 elliott: you wouldn't be using string instructions to write to the screen? beware that those write to es, not ds 21:00:55 olsner: I was actually just doing it character-by-character, but YES THAT SEEMS LIKE A SANER IDEA WHY DIDN'T I DO THAT. 21:00:58 * pikhq actually hopes for a Star Trek series that has the balls to bring back the Kzin. 21:01:07 olsner: Thank you for reminding me those exist :P 21:01:09 ... Sorry, a Star Trek series that *doesn't suck* while doing that. 21:01:18 (ENT wanted to for its 5th season) 21:02:12 pikhq: Oh dear god, someone on the internet who does the long s thing like did a while ago. 21:02:14 -!- Goose has joined. 21:02:16 MUST PUNCH 21:02:40 -!- Goose has changed nick to Guest31764. 21:02:42 elliott: Þou muſt punch, þou ſayeſt? 21:03:12 olsner: actually, how would the string functions help? 21:03:18 pikhq: DIE IN A FIRE 21:03:39 elliott: See my code you learn how the string functions help and how ES segment is used and so on 21:03:43 olsner: hmm i guess if i used movsb, but still how would that help? 21:03:44 zzo38: ok 21:04:11 -!- Goosey has quit (Remote host closed the connection). 21:04:53 olsner: i really can't see how that would help :D 21:04:58 http://sprunge.us/GGja Note this just copies a single character multiple times, but you can use another string function easily copy a entire string too 21:04:59 zzo38: have you got a link? 21:05:00 thank you 21:05:04 elliott: the point is mostly that they increment si and/or di automatically 21:05:15 olsner: that's *it*? :p 21:05:24 but I didn't really suggest using them, was rather asking if you were using them already 21:05:54 Yes it does increment SI/DI automatically and you can add a repeating prefix, which is can be used for repeat to copy a string. 21:05:57 olsner: i'm not, no 21:06:05 hmm 21:06:10 * elliott does strings pascal-style instead, might be simpler 21:06:15 or maybe not 21:06:34 also they can make simple loops into single instructions with one of the rep prefixes (of which there are a bunch) 21:06:59 Actually I think there is only two possible repeating prefixes 21:07:01 olsner: how does that help when i need to have the 0x07 bytes there, too? 21:07:52 -!- Guest31764 has changed nick to Goosey. 21:09:44 The repeating string commands uses CX register to count how many. 21:10:17 zzo38: so would that copy (cx) bytes? 21:11:15 elliott: Yes 21:11:42 You can see mine as the example 21:11:54 OK 21:12:58 This program is the entire MBR code, including loading the kernel. 21:16:03 OK, it works and all, but that still doesn't tell me how I can make it somehow insert the 0x07 byte after every bte. 21:16:04 *byte. 21:16:45 olsner: so did you look at my thing? 21:16:49 * elliott gets the link 21:16:59 olsner: http://sprunge.us/gXiR 21:17:29 elliott: Yes you do need to do that, and the repeating string commands in x86 cannot do that, so you would instead make your own loop with these string commands in order to do so. 21:17:39 zzo38: But that sort of defeats the point of using them... 21:18:27 You can still use load and then jump if zero and then store and put color and store string next and then repeat over again 21:19:12 fizzie, is it down? 21:19:52 However you might still decide to use my code (if you want to) for loading the kernel it is a very simple way to do so. 21:19:52 -!- sebbu2 has joined. 21:19:57 Hey y'all. Lol 21:20:18 fizzie, missed line before I lost connection "or service station rather" 21:20:42 "This is quite a system indeed." or some-such from me. 21:20:46 -!- sebbu has quit (Ping timeout: 245 seconds). 21:20:53 fizzie, you saw those multi-layer mines 21:20:56 fizzie, ? 21:21:20 fizzie, like .^.^.^ in multiple layers 21:21:31 Briefly. 21:21:34 Oh, reconnected. 21:27:55 hmm 21:28:03 "mov dword"s aren't any slower in real mode right? 21:28:05 than in protected 21:34:43 the instruction would probably be a byte longer in real-mode because it'd need a 32-bit prefix 21:37:09 -!- sebbu has joined. 21:38:55 -!- sebbu2 has quit (Ping timeout: 264 seconds). 21:42:13 olsner: it's upsetting how long these functions are :( 21:42:17 i have cls, putstr, nl (newline) 21:42:20 nl doesn't work, the other two are long 21:42:28 olsner: I might go back to manually munging VGA memory like my last boot sector :P 21:42:36 is cls long? 21:42:44 olsner: not really 21:42:48 ; clobbers es, di 21:42:49 cls:push 0xB800 21:42:49 pop es 21:42:49 mov di, 2000 ; 80*25 21:42:49 _cls:mov word [es:di], 0x0720 21:42:49 dec di 21:42:51 dec di 21:42:53 jnz _cls 21:42:55 ret 21:43:30 that's a rep stosd :) 21:43:46 olsner: eff you :P 21:43:55 ALWAYS GOLFIN' MAH PROGRAMS 21:44:00 olsner: now read http://sprunge.us/gXiR already 21:44:42 olsner: also, stosw, no? 21:45:11 yes, didn't notice you write 0x0720 as a word 21:46:18 I think you can just fill vga memory with zeroes btw, then you only need to zero a register - which doesn't require a fancy constant 21:46:37 olsner: that gave me weird artefacts last time i tried but ok 21:46:37 ; clobbers es, di 21:46:37 cls:push 0xB800 21:46:37 pop es 21:46:37 xor di, di 21:46:38 mov cx, 2000 21:46:40 mov ax, 0x0720 21:46:42 rep stosw 21:46:44 ret 21:46:46 somehow after executing this, 21:46:48 my putstrs do nothing 21:46:50 :| 21:47:05 olsner: filling with zeroes does appear to work 21:47:36 olsner: for some inexplicable reason though, writing to [0xB800:0] after that doesn't end up in the top-left 21:48:23 oh wait 21:48:24 never mind 21:49:08 now why doesn't nl work... 21:51:03 ok, cls and nl both work 21:51:15 olsner: now tell me how to move or disable the vga cursor without going through the bios :-P 21:51:16 lawl 21:51:35 out x,y ; fill in x and y 21:51:38 probably! 21:51:48 With the VGA registers, it's often several outs. 21:52:00 97 boot.o 21:52:02 time to size-optimise 21:59:21 olsner: now will you comment on http://sprunge.us/gXiR?! 22:00:27 elliott: hmm, yeah, I should comment on that 22:00:50 olsner: are you avoiding it :P 22:04:20 olsner: okay stop it, at least say "no it's shitty and i hate it" 22:04:29 i had to think to write that! 22:05:27 olsner: ;_; why do you do this to me 22:06:09 Maybe I can write a program converting ESC/P codes into DVI, with options for enabling specials to indicate such things as half speed mode, and so on? 22:09:56 fizzie: stop olsner 22:09:57 or uh 22:09:58 start him 22:11:47 olsner: remind me to never try and tarpit your kernel again :p 22:14:23 Are there such things as printers with Plan 9 protocol? 22:14:42 no. 22:16:41 I've become obsessed with counting WebKit build systems :P 22:16:53 fizzie, down? 22:16:58 Phantom_Hoover_, ^ 22:17:10 Yes. 22:17:18 olsner: ping 22:17:20 elliott: hmm, since that's just a summary of what we discussed last time, I'm not sure if there is anything more I can add... I still don't like that grant/revoke thing and would rather only have "giving" of pages 22:17:35 fizzie, up 22:17:36 olsner: it is more! mainly the problems to solve section 22:17:43 olsner: also, how the heck would you have freeing of memory with only givinf? 22:17:59 olsner: also, there's no "revoking" in my system; there's just re-granting except this time with no permissions, which happens to be equivalent 22:18:00 *giving 22:18:13 The tally thusfar (keeping in mind that these are build systems, not backends, although the build systems correspond to backends): XCode, Qt (qmake), GTK+ (autotools), EFL (cmake), wx (autotools), Chrome (scons), Android<2.1 (make), Android>=2.2 (make), MingW (make?), Visual Studio, mystery cmake, whateverTF "gyp" is and whateverTF "waf" is. 22:18:39 one thing I did realize though, is that block-until-write is a bit awkward since in most cases you have more than one byte to communicate 22:19:00 Gregor: waf is http://code.google.com/p/waf/ 22:19:03 and requiring completely separate signaling-pages seems inefficient 22:19:04 fizzie, and down again 22:19:08 ineiros_, ! 22:19:12 olsner: i was thinking it'd be sort of state-machiney 22:19:17 olsner: block-until-write gives a pointer so you'd do like 22:19:22 olsner: mypage - block-until-write(page) 22:19:29 olsner: 0 is operation, 1 is arg 1, 2 is arg 2, etc. 22:19:31 the result is in bytes 22:19:34 I think I'll take a break instead of reconnectering all the time. 22:19:42 olsner: but the question is, what if multiple processes want to do ipc at the same time... 22:20:43 elliott: Mmmm, maybe that's what Chrome uses now, although there still seem to be vestiges of scons ... 22:20:46 fizzie, if you VERY far west you will find a huge marker. Should be visible on TOPO map 22:20:57 fizzie, with a sign at the base saying a nice message 22:21:06 fizzie, no torch marked path 22:21:18 I haven't even looked at the map in a long time. 22:21:50 fizzie, do it. It is huge 22:22:03 you'd need to use some kind of lock-free data structure in the shared memory I think 22:22:12 fizzie, red thing at the bottom of the map 22:22:15 There is a giant tower-looking thing in the topo-map, yes. 22:22:28 fizzie, 1 wide tower with platform at max alt 22:22:39 fizzie, did it before health was implemented 22:22:48 would be nearly impossible to get down nowdays 22:23:03 Uh, you just build it one wider than necessary, and then dig down. 22:23:11 fizzie, ah that works 22:23:13 Or rather, one block more. 22:23:30 Should I update the server? 22:23:40 you'd need to use some kind of lock-free data structure in the shared memory I think 22:23:42 you could... have different data and control pages, write something magic to the control page to wake the process up and make it read some IPC:d stuff from the data page 22:23:45 olsner: malicious process goes and clobbers the whole page 22:23:46 what now? 22:24:58 ineiros_: I doubt it'd hurt. 22:28:10 %macro dpstr 1 22:28:10 .str:db .len, %1 22:28:10 .len equ $-.str-1 22:28:10 %endmacro 22:28:12 This macro, it is the useful. 22:29:29 ineiros_, disconnected 22:29:36 ineiros_, tell me when it is done. 22:29:46 ineiros_, I was working on terraforming 22:30:39 No, tell me and not him! 22:30:54 (I assume you will only tell one person.) 22:31:53 elliott, what assembler? NASM or YASM? 22:32:04 Phantom_Hoover_, or gas (I doubt it) 22:32:29 Vorpal, the only person who likes gas is you, and that's because you're a fool. 22:32:47 Phantom_Hoover_, I presume whoever invented it likes it 22:33:09 Vorpal, the people who invented it meant for it to be a compiler backend.. 22:33:11 Phantom_Hoover_, and the reason I like it is that I'm used to that syntax 22:33:25 It is a good compiler backend. It is a terrible language to write anything in. 22:33:31 ineiros_, upgrade takes long time? 22:34:00 Phantom_Hoover_, I more often read asm than I write asm 22:34:51 Ready. 22:35:35 Vorpal, it's a terrible syntax to read. More so than to write, actually. 22:36:08 elliott, what assembler? NASM or YASM? 22:36:10 basn 22:36:22 *basm? 22:36:30 nasm 22:36:41 Ah. 22:37:05 Phantom_Hoover_: wanna SPACE-OPTOMISE my code? :p 22:37:18 No. 22:37:43 -!- kar8nga has joined. 22:37:59 I once got fact down to some very small number of bytes, but that's irrelevant and anyway it only worked when it was 32-bit. 22:38:43 Phantom_Hoover_: 16-bit in this case :P 22:39:36 I don't know very much about 16-bit x86, except that its address scheme is insane, as is its segment system. 22:42:54 What's the code for? 22:43:19 Phantom_Hoover_: Boot sector, take two. 22:43:36 elliott: hmm, right, it's probably just a bad idea for more than one process to share the same page for IPC:ing 22:44:20 elliott, how hard is a boot sector? 22:44:27 olsner: right. which poses a problem. as in, how do you do that. 22:44:29 Note: I have never made a boot sector ever. 22:44:32 Phantom_Hoover_: Not hard! But mine's FEATUREFUL. 22:44:52 elliott, if you have features in the boot sector something's badly wrong. 22:45:15 You have 512 bytes. You do not dick around when you have 512 bytes. 22:45:29 Phantom_Hoover_: Well, my previous boot sector got into protected mode. 22:45:30 you have more like 440 bytes 22:45:34 *And* had more than one diagnostic. 22:45:37 olsner: you have 510 bytes 22:45:40 olsner: nobody said it's going in the mbr 22:48:47 olsner: holy shit i just realised you can use cp437 22:48:48 that means 22:48:50 BOOT SECTOR SMILIES 22:49:05 elliott, what diagnostics do you want to do in the boot sector? 22:49:26 Phantom_Hoover_: EVERY DIAGNOSTIC 22:49:34 elliott, ...why 22:49:43 Do them in the code the boot sector calls. 22:49:56 Phantom_Hoover_: More seriously, there's little point not going into protected mode in the boot sector. 22:50:14 You can do it with plenty (over half) the space left to waste. 22:50:23 And it saves you writing what's essentially a pointlessly long boot sector split in two. 22:51:57 elliott, OK. You go into protected mode, load the actual startup code, then run it. 22:52:25 Phantom_Hoover_: Diagnostics you need: 22:52:32 Phantom_Hoover_: "Oops, something went wrong turning on the A20 line." 22:52:38 Phantom_Hoover_: "Oops, something went wrong going into protected mode." 22:52:44 Phantom_Hoover_: "Oops, something went wrong reading the floppy." 22:52:56 If something goes wrong in either of those, you just abandon the computer in disgust. 22:53:07 Phantom_Hoover_: I think you underestimate floppy failure rates... 22:53:20 Possibly after printing "Dear god, man, get into the 21st century!" 22:53:29 elliott, wha? 22:53:41 Where does the floppy come in? There is no floppy. 22:53:57 Phantom_Hoover_: I see. Where is your OS stored? 22:54:14 Phantom_Hoover_: Also note that reading from a floppy takes less code than from an HD... 22:54:15 On the hard disk; how old is your computer? 22:55:03 For some reason, I thought people disliked DS9 22:55:24 Or am I missing some insane bit of PC design? 22:56:01 Phantom_Hoover_: You really have never written a bootsector. 22:56:19 Phantom_Hoover_: (Also, good luck trying to make an OS that fills an entire floppy unless you use C++ or something.) 22:57:13 The MBR code I wrote does not check for disk failure (but maybe it should? At least the MBR code is loadable) 22:57:25 elliott, OK, I'm assuming the floppy isn't a physical floppy disk stuck into a slot on the computer. 22:57:57 Phantom_Hoover_: no, it's a virtual floppy disk in qemu. 22:58:07 If you're testing it on an actual machine: yes, it is a physical floppy disk stuck into a slot on the computer. 22:58:19 zzo38: Well, usually the fisrt floppy read has to be done three times. 22:58:30 zzo38: The two usually fail on real hardware due to the floppy drive initialising. 22:58:39 *The first two 22:58:42 elliott, not many computers still have them... 22:59:06 Phantom_Hoover_: No, but who tests their experimental OS on a modern computer? 22:59:10 That's just asking for a wiped hard disk. 22:59:33 elliott: You will remove the hard disk first, then. 22:59:48 zzo38: And boot it from what exactly? 22:59:57 In this case the assumption is that it has no floppy drive. 23:00:05 elliott: From the floppy disk or optical drive or USB. 23:00:13 elliott, OK, so you have an experimental OS with a boot sector that's useless for modern computers. 23:00:19 Or else, replace the hard disk with the one for the experimental operating system. 23:00:38 Phantom_Hoover_: Not all "modern" computers lack floppy drives. 23:01:05 elliott, large numbers do. 23:01:50 Phantom_Hoover_: So what? It's much less annoying testing in a VM anyway. 23:01:56 Adding hard disk support can be done later, much later. 23:02:11 elliott, you want x86-64, yes? 23:02:16 Phantom_Hoover_: Yes? 23:02:41 So you have to suffer without hardware virtualisation? 23:02:44 The same MBR code can be used with floppy disk and hard disk, I think. And the codes for accessing the disk is also the same if you use the BIOS to do so. 23:03:56 Phantom_Hoover_: ...what? 23:04:16 Phantom_Hoover_: You do realise that any hobby OS isn't bloated enough to run slowly when software-emulated? 23:04:24 My MBR code could be modified to make it try again if the read fails. 23:04:26 Phantom_Hoover_: You do realise that... what is even your point? 23:04:33 Plenty of x86-64 machines have virtualisation. 23:05:10 %macro dpstr 1+ 23:05:10 %%str:db %%len, %1 23:05:10 %%len equ $-%%str-1 23:05:10 %endmacro 23:05:13 more better this time! 23:05:20 .load:dpstr "Loading kernel...",1 23:05:23 it has a smiley face at the end. 23:07:01 I do not know whether or not FreeDOS will load with my MBR code. 23:07:25 -!- Phantom_Hoover_ has quit (Ping timeout: 255 seconds). 23:12:13 ineiros_, down? 23:12:42 I'm up. 23:12:53 ineiros_, horrible lag 23:13:05 ineiros_, timed out 23:13:23 Do you have any ANSI arts to test the anstomzm.w program? 23:14:03 Vorpal: For some reason, my outbound connections are horribly slow. 23:15:19 ineiros_, saw the lava fall at my castle of dread? 23:15:42 No. 23:16:35 ineiros_, looks wonderful during the night (like atm) 23:18:17 -!- Phantom_Hoover_ has joined. 23:20:28 Phantom_Hoover_: Anyway boot sectors are a pain because you have to read a bunch of data off whatever, move it elsewhere, and repeat. It's more of a pain than it sounds. 23:21:33 elliott: I do not think so, you do not have to do any of that stuff. 23:21:54 zzo38: Yes you do, if the kernel is greater than a certain size, or you want to load it in the higher half of memory. 23:23:49 Actually you can just use unreal mode for that. 23:24:03 zzo38: The BIOS still can't load outside the 1 meg area. 23:24:35 elliott, what's this the boot sector for? 23:24:41 Phantom_Hoover_: OS 23:25:07 Kitten or a part of Mitosis or something even more irrelevant/ 23:25:18 elliott: And what happened if you define the segments for unreal mode to write the high memory? 23:27:13 Phantom_Hoover_: Why would it be for Kitten? :p 23:27:27 zzo38: Uh, that might work. *Might*. I'm pretty sure BIOS calls are always relegated to real-mode style memory. 23:27:34 elliott, part of Mitosis or further irrelevancy, then? 23:27:43 zzo38: Besides, if your kernel is too big you *must* copy it, since the BIOS can't write to more than one segment. 23:27:53 Phantom_Hoover_: Let's call it part of Mitosis. 23:28:01 It's aimless coding for inspiration. 23:28:25 Mitosis: the bootloader. 23:28:57 elliott: You can read the disk and then change the address and then read the disk a second time in a loop until you are finished with loading the kernel? 23:29:28 -!- Phantom_Hoover__ has joined. 23:30:16 zzo38: I don't believe the BIOS can write that far. 23:31:40 it wouldn't write far, it would just write several time with different bases :) it might actually work too 23:32:10 zzo38: indeed: "Boot record loads kernel image (below the 1mb memory mark, because in real mode that's the upper memory limit!)" 23:32:33 assuming the bios doesn't assume that it can get the value of es and restore it later, since that would upset the unreal magic 23:32:39 -!- Phantom_Hoover_ has quit (Ping timeout: 245 seconds). 23:33:19 olsner: O, yes, that is it, exactly. 23:34:52 olsner: that sounds dangerous to rely on :) 23:40:05 -!- augur has joined. 23:40:11 elliott, how does linux and grub manage to load a kernel image larger than 1 MB? 23:40:51 Vorpal: well who knows with the "advanced" things. the obvious thing to do is either the copying thing or uh 23:40:57 talking to the IDE driver manually in protected mode? 23:40:58 who knows 23:42:32 ineiros_, new maps yet? 23:43:31 good thing elliott will never find that easter egg btw. 23:44:02 ineiros_: which easter egg would that be? 23:44:20 ineiros_, you aren't allowed to tell him any details! 23:44:23 elliott, something I made 23:44:26 that is all I'm saying 23:45:05 i'll just mine out mount vorpal to find it then 23:45:28 elliott, well it isn't there :P 23:46:06 elliott, btw you should put a sign halfway down the falling hole in those stairs saying "if you can read this you are going to die" 23:46:19 elliott, alternatively: "good luck trying to read this" 23:46:55 Or how about "HA HA, YOU'RE FUCKED." 23:47:07 that works too 23:47:20 Vorpal: The stairs are suspended until I patch health out :P 23:47:31 And until I get ineiros_ to edit the map to make the first hole down to level 0, so I can fix the alignment of the two. 23:47:45 elliott, I like health (except for tools) 23:47:59 Vorpal: yeah, but ineiros_ already said he'll probably apply it if i don't change anything else 23:48:02 so sucks to be you :p 23:48:36 Someone actually made a font for the Culture's language. I'm not sure whether it's cool or sad. 23:49:27 Phantom_Hoover__, private use unicode codepoints? 23:49:39 Vorpal, not sure. Haven't tried it. 23:49:58 The font needs to be METAFONT if you are going to use it with TeXnicard. (Or some other format that creates GF) 23:50:34 'Twould appear that it's just one of those ones which maps over the alphabetic codepoints. 23:51:35 Phantom_Hoover__: If it is, then it had better be also the unicode flag is turned off so that it is clearly that is not unicode mode 23:52:11 I am also vaguely irked at the Culture for using 9 bits to encode a character set of 32. 23:52:23 New maps are in. 23:52:24 Even including controls, you can't need more than 6. 23:53:50 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:54:29 Phantom_Hoover__: Have you explored the other cavern I found? 23:54:32 While mining. 23:54:33 It's big. 23:54:44 Approximate location? 23:55:49 -!- wareya has quit (Read error: Connection reset by peer). 23:56:44 I mean depth. 23:56:57 -!- wareya has joined. 23:57:09 Wait, is that the one where I found a lava stream and a load of stuff lying around? 23:59:31 Also, it connects to the Great Cavern Off The Tunnel.