00:01:08 -!- FireyFly has changed nick to FireFly.
00:01:30 <estoppel> "There, this should be enough to confuse the stupid spam bots, so I'll only get mail from the intelligent spam bots." <- very ais523
00:01:45 <ais523> was that me who wrote that, or someone else/
00:01:54 <ais523> I admit I could have writen that, but I don't remember writing that, it's my attitude
00:04:56 -!- jix has quit ("...").
00:07:31 -!- kerlobot has joined.
00:07:43 * kerlo flicks kerlobot's nose
00:07:47 -!- kerlobot has quit (Remote closed the connection).
00:10:34 -!- BeholdMyGlory has quit (Remote closed the connection).
00:11:05 -!- KingOfKarlsruhe has quit (Remote closed the connection).
00:11:27 <ais523> <Google> once in a blue moon = 1.16699016 × 10-8 hertz
00:12:09 <ais523> well, I suppose you can calculate it...
00:12:20 <ais523> given that there's an official definition of blue moon
00:12:25 <ais523> also, everyone loves nanohertz
00:13:23 <estoppel> hertz is a measure of time ... ?
00:13:27 <kerlo> I wonder if there's a product called Nanohertz, or a trademark on it.
00:13:53 <ais523> so that measures the rate at which blue moons happen
00:14:10 <ais523> 1 / (once in a blue moon) would be a measure of time
00:14:14 <ais523> which would be the interval between blue moons
00:14:21 <lament> blue moons happen once per year iirc
00:14:55 <ais523> it acts weirdly between upgrades and restarts
00:15:06 <ais523> but I was actually getting assertion failures, which is unusual
00:15:47 <ais523> 1 / once in a blue moon = 2.71542689 years
00:19:04 <oerjan> so pretty close to e years
00:21:35 -!- FireFly has quit ("Later").
00:22:09 <estoppel> "So, make sure you catch all possible exceptions in your C-callable C++ functions. By the way, C++ exceptions can be of any built-in or user-defined type, and you can't catch an arbitrary exception and check what kind of exception it is at run time, and operator new can throw exceptions. Enjoy."
00:30:31 -!- Jophish has quit (Read error: 104 (Connection reset by peer)).
00:41:17 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
00:44:01 -!- calamari has joined.
00:49:39 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
00:55:37 -!- estoppel has changed nick to ehird.
01:46:28 -!- calamari has quit (Read error: 60 (Operation timed out)).
01:55:48 -!- oerjan has quit ("Good night").
01:57:58 -!- calamari has joined.
02:06:25 <kerlo> Esoteric quotation marks: The beginning of a quote is marked by quotation marks followed by a space. The end of a quote is marked by a space followed by the same number of quotation marks. It is not legal to use more than that many quotation marks in a row within the quote.
02:06:51 <kerlo> So, if you want to quote the string {"""""""""}, you have to say """""""""" """"""""" """""""""", not " """"""""" ".
02:08:17 <kerlo> Heavily nested quotes are easy: """"""" """""" """"" """" """ "" " foo " "" """ """" """"" """""" """""""
02:28:15 -!- Dewio has joined.
02:28:16 -!- Leonidas has quit (Remote closed the connection).
02:28:20 -!- Leonidas has joined.
02:28:58 -!- calamari has quit (Read error: 60 (Operation timed out)).
02:29:12 -!- calamari has joined.
02:35:56 -!- olsner has quit ("Leaving").
02:41:35 -!- Dewi has quit (Read error: 110 (Connection timed out)).
02:45:40 -!- Slereah has joined.
02:59:15 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
04:23:51 -!- GreaseMonkey has joined.
04:45:03 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
04:47:14 -!- calamari has joined.
05:20:11 -!- Sgeo has joined.
05:24:01 -!- psygnisfive has joined.
05:24:49 -!- question has joined.
05:25:30 <question> oh shit hahaha this one is for esoteric programming
05:25:40 -!- question has quit (Client Quit).
05:32:48 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
05:44:43 -!- Azstal has quit (Read error: 104 (Connection reset by peer)).
05:44:53 -!- Azstal has joined.
07:27:08 -!- asiekierk has joined.
07:42:41 -!- asiekierk has quit.
07:42:44 -!- asiekierk has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:10 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)).
09:23:47 -!- Slereah has quit (Read error: 60 (Operation timed out)).
09:23:49 -!- Slereah_ has joined.
09:57:12 -!- GreaseMonkey has quit ("Client Excited").
10:00:03 -!- DH__ has joined.
10:28:56 <asiekierk> I'm still working on AsieCrypt for no reason
10:29:12 <asiekierk> Now I made it make colors way-too-scrambled
10:51:52 -!- tombom has joined.
11:04:52 -!- jix has joined.
11:14:11 -!- jix has quit ("Computer has gone to sleep").
11:33:19 -!- DH__ has left (?).
11:33:30 -!- DH__ has joined.
11:37:47 -!- jix has joined.
12:26:19 -!- jix has quit ("...").
12:53:11 -!- jix has joined.
13:07:23 -!- jix has quit ("...").
13:35:03 -!- neldoreth has joined.
13:37:28 <neldoreth> hi there, i got a little question to befunge: i want just to print some letters right after each other, but when i have a second line in code i end up in an endless loop http://pastebin.com/m8052f85 - can someone give me a hint what i am missing
13:53:21 -!- jix has joined.
14:07:42 <fizzie> Uh... the code flow wraps around, so at the end of line 1 it wraps to start of line 1. You need to use explicit v, ^, <, > instructions to direct your instruction pointer to the second line if you want it to go there.
14:08:21 <fizzie> Though for character-printing the canonical way is to just do something like 055+"!dlrow ,elloH">:#,_@
14:11:02 <neldoreth> thanks for responding fizzie - i think i understand it now
14:14:24 <neldoreth> so i run with ^<>v through the code, right?
14:15:37 <fizzie> Yes. Well, I mean, you stick one of those whenever you want to turn somewhere.
14:17:21 <fizzie> Or want to make sure you are going somewhere. The more rectangular way of writing the print loop -- >:#,_ -- is:
14:18:38 <fizzie> If you want to see an inspirational piece of Befunge, our local irc-bot, fungot, is written in it: http://zem.fi/~fis/fungot.b98.txt
14:18:39 <fungot> fizzie: also, use firefox 3 or a webkit nightly....
14:18:58 <fizzie> fungot: It's a *plain text* page! Why would you need Firefox 3 for it?
14:18:58 <fungot> fizzie: hmm. 2 alt keys wouldnt work in an interpreter
14:19:23 <neldoreth> :O nice - so you really can write something useful with it :>
14:19:32 <fizzie> For some values of useful, sure.
14:19:57 -!- Slereah has joined.
14:20:18 -!- Slereah_ has quit (Read error: 60 (Operation timed out)).
14:20:21 <neldoreth> yeah i mean you are quite limited with this language like opening a file or something like that
14:20:51 <fizzie> Well, yes, that's why fungot is written in Funge-98, which adds a whole lot of extensions.
14:20:51 <fungot> fizzie: two ways 2 fix, but there is no new-line in morse code ( the way databases do it), but...
14:21:10 <fizzie> Like the FILE fingerprint for file operations, or SOCK for internetsy stuff.
14:21:44 <fizzie> Incidentally, I didn't know databases do it in morse code.
14:21:57 <neldoreth> ah i will check this out - cause i have to write a "creative" program with an esoteric language like befunge, brainfuck or whitespace and i have no idea what to write
14:22:21 <fizzie> "Have to"? Is it some sort of an assignment or what?
14:25:00 <fizzie> Where do they have esolang-related assignments?
14:29:13 -!- neldoreth has quit (Remote closed the connection).
14:29:17 -!- neldoreth has joined.
14:30:56 <ehird> esolang assignments?
14:32:06 <neldoreth> yeah, just "whatever we like", but it should creative and i have no idea what i should write :D
14:35:00 <ehird> definitely go for funge-98 if you have to use befunge to do something
14:36:18 <neldoreth> yeah but i am not sure if we are allowed to use it, cause they said that we can use befunge, brainfuck, intercal or whitespace - but with funge98 you can do much more
14:36:38 <fizzie> They seem to be classicists, with that sort of language selection.
14:36:48 <ehird> neldoreth: befunge-98 classes as befunge
14:37:22 <fizzie> It's not the fairness: I just have to hide tiny esolang-related things in otherwise-sensible programs; never has there been yet a "do something with befunge" course assignment.
14:37:45 <ehird> The world is cruel.
14:38:55 <neldoreth> ehird: ah ok, i ve just read that its an generalization of befunge - but that sounds good, so i guess i will check it out
14:39:05 <ehird> neldoreth: kind of
14:39:20 <ehird> funge-98 defines unefunge-98, befunge-98 and trifunge-98
14:39:31 <ehird> befunge98 is just an extension of befunge93
14:39:40 <ehird> and "befunge" refers to both
14:39:53 <ehird> "unefunge" and "trifunge" always refer to -98, since there's no other versions
14:40:07 <ehird> ... well ... maybe -97 :-D
14:44:58 <ehird> be glad you picked befunge
14:45:07 <ehird> since you can use -98, and it's also pretty easy :P
14:45:17 <ehird> brainfuck and whitespace are about equal
14:45:29 <neldoreth> yeah i think they are too hard to read
14:45:31 <ehird> but intercal inputs as "ONE FIVE TWO" for 152 and outputs as roman numerals :-D
14:45:45 <ehird> oh, and it has no conventional arithmetic whatsoever. you have to implement it yourself.
14:45:55 <ehird> also, the opposite of GOTO. (COME FROM).
14:46:10 <fizzie> But it looks more enterprisey than some silly befunge.
14:50:30 <neldoreth> is there a specific interpreter you can recommand me ?
14:50:43 <ehird> CCBI or cfunge are the only compliant befunge-98 interpreters.
14:50:55 <ehird> And the first was released in 2007. Turns out it's hard to get it right.
14:51:18 <ehird> neldoreth: Use cfunge if you want ridiculous amounts of speed for whatever reason, unless you're on windows, because AnMaster refuses to support windows.
14:51:26 <ehird> If you are on windows, try CCBI.
14:51:46 <ehird> CCBI has a linux binary, though. That might be easier.
14:51:47 <ehird> http://users.tkk.fi/~mniemenm/files/befunge/interpreters/ccbi/ccbi_linux.zip
14:52:07 <ehird> If you want to compile CCBI: http://iki.fi/matti.niemenmaa/befunge/ccbi.html
14:52:09 <ehird> Or cfunge: http://kuonet.org/~anmaster/cfunge/
14:52:51 <Deewiant> ehird: you're forgetting RC/Funge-98
14:53:20 <ehird> neldoreth: if you type like this,,,,,,ehehehehhe.....try rc/funge98....http://rcfunge98.com/
14:53:21 <AnMaster> ehird, one thing: ccbi has a debugger, but it is slower. cfunge is way faster and only has a basic trace
14:53:32 <ehird> AnMaster: ah, that's a good reason to use ccbi as a newbie then
14:53:41 <ehird> (neldoreth: but don't try and compile it, it's hell to compile the D source)
14:53:58 <AnMaster> ehird, well it all depends on what you are using it for. fungot running a slow underload interpreter? cfunge or in the future jitfunge
14:53:58 <fungot> AnMaster: when first i was a
14:53:58 <Deewiant> it should actually be pretty easy due to that, these days
14:54:01 <ehird> no matter what you say, getting a D environment is a pain
14:54:09 <ehird> AnMaster: neldoreth.
14:54:12 <ehird> he's writing a befunge program. for school.
14:54:19 <ehird> and he hasn't used the language before.
14:54:23 <AnMaster> though one thing: ccbi's debugger is quite a pain
14:54:28 <Deewiant> ehird: hg clone <LDC repository>, run cmake and you have a D environment
14:54:29 <AnMaster> if you are used to something nice like gdb
14:54:32 <ehird> so speed is probably not an issue, and a debugger is useful
14:54:34 <fizzie> fungot: When first you were a... what?
14:54:34 <fungot> fizzie: some semantics guy who is doing the compilation." hahahah puns r fun.
14:54:36 <ehird> also, CCBI has more crazy fingerprints for that
14:54:57 <Deewiant> I was surprised at how easily I got it to work, actually :-)
14:54:59 <ehird> I might just try that.
14:55:07 <Deewiant> They fixed the bugs after I tried it :-)
14:55:13 <AnMaster> ehird, did you know there is a "break on instruction" in ccbi? However it only works if you enter the number representing the ASCII code point, not the letter...
14:55:14 <Deewiant> ehird: http://www.dsource.org/projects/ldc/
14:55:21 <Deewiant> The bugs that broke CCBI, that is
14:55:28 <Deewiant> I haven't tried it for a while, though, it could be it still doesn't work
14:55:31 <ehird> it's better than no debugger
14:55:43 <ehird> and since speed is an issue, ccbi is probably the better choice for a newbie
14:55:56 <AnMaster> true. cfunge *does* include a .gdbinit file though
14:55:57 <Deewiant> Speed isn't an issue anyway unless you run the game of life or optimize for Mycology
14:56:04 <fungot> AnMaster: i can let you do it?
14:56:05 <Deewiant> Well, maybe for fungot, I haven't tried that
14:56:06 <fungot> Deewiant: spineless tagless g-machine, a virtual machine for an oisc processor, but using the sxml fnord you see it, if it can't! it doesn't complain about fnord
14:56:18 <Deewiant> AnMaster: have you tried it on CCBI?
14:56:50 <Deewiant> Or just 0.1 instead of 0.05 seconds response time? :-P
14:56:52 <fizzie> I don't remember anymore. I've done it on RC/Funge though; how do those two speed-compare?
14:56:57 <ehird> it was indistinguishably fast
14:57:00 <ehird> since IRC lag is the main factor.
14:57:05 <ehird> (apart from on e.g. complex ^ul)
14:57:28 <fizzie> For fungot speed mostly matters if you care about the speed of the brainfuck/underload interps.
14:57:28 <fungot> fizzie: last time i checked
14:57:29 <AnMaster> Deewiant, he said he could let the bf interpreter run about 4 times as many cycles before "out of time" under cfunge iirc..
14:57:29 <ehird> * LLVM Test Suite (67M)
14:57:30 <Deewiant> If I had to guess I'd say RC/Funge-98 is somewhere between CCBI and cfunge
14:57:37 <AnMaster> or that might have been for rc/funge
14:57:48 <ehird> Deewiant: rc/funge is unoptimized, I think
14:57:53 <AnMaster> anyway I do remember he said he increased the limits under cfunge
14:57:53 <ehird> so it's probably the slowest
14:58:18 <ehird> D is a lil slower than C too.
14:58:21 <Deewiant> But then, everything is unoptimized compared to cfunge
14:58:32 <AnMaster> Deewiant, no, jitfunge is more optimised
14:58:34 <ehird> llvm is unoptimized compared to that dungpile.
14:58:40 <ehird> uh, jitfunge doesn't optimize.
14:58:41 <Deewiant> I take issue with people saying "language A is slower than language B"
14:58:48 <ehird> Deewiant: yes, yes, I know
14:58:54 <ehird> show me a D as fast as C
14:59:06 <Deewiant> I can show you D programs as fast as C programs ;-)
14:59:13 <fizzie> Deewiant: Do they do the same thing?
14:59:16 <ehird> D minus D features is basically weirdo C.
14:59:23 <Deewiant> fizzie: Amazingly enough they do
14:59:29 <AnMaster> ehird, well depending on what you mean, nor does cfunge. jitfunge could potentially. Just in cfunge I tried to write all the C code fast. But I don't try to constant fold code. Like jitfunge does
14:59:38 <AnMaster> so I'd say jitfunge is more optimising
14:59:55 <fizzie> jitfunge is broken, though; that's a disadvantage.
15:00:02 <ehird> lol, llvm's configure has --enable-optimized
15:00:05 <Deewiant> If something doesn't work it doesn't count
15:00:09 <AnMaster> fizzie, yes it isn't finished yet
15:00:16 <AnMaster> cfunge was broken in the beginning too
15:00:25 <AnMaster> anyway currently cfunge is in a code clean up phase
15:00:38 <Deewiant> But then, I suppose AnMaster would argue CCBI is broken since FILE's R doesn't reflect on EOF currently :-P
15:01:04 <AnMaster> Deewiant, since you mention that. Fixed mycology for it?
15:01:04 <Deewiant> ehird: What're you building LLVM for, binaries too simple for you?
15:01:10 <Deewiant> AnMaster: nope, not even locally
15:01:20 <ehird> Deewiant: macports only has 2.4
15:01:26 <Deewiant> AnMaster: Feel free to do it yourself
15:01:32 <ehird> and 3rd-party binaries for CLI software make me itchy
15:01:44 <ehird> I should start a Scheme channel that, whenever someone says "This program doesn't work", and it doesn't meet the standard, we'll reply "Mu. Show us a program."
15:01:51 <ehird> (re Deewiant: But then, I suppose AnMaster would argue CCBI is broken since FILE's R doesn't reflect on EOF currently :-P)
15:02:22 <Deewiant> Meh, binaries from seemingly trustworthy 3rd parties are fine
15:02:23 <neldoreth> is there somewhere in addition to the spec simple examples for the file i/o usage
15:02:32 <AnMaster> Deewiant, well, it wouldn't be the official version. What if every funge developer then decided to fork mycology so their interpreter passed. Wait forget that. Changing the interpreter would be easier than changing mycology...
15:02:33 <Deewiant> You never know if your compiler has been taken, anyway
15:02:46 <Deewiant> AnMaster: ... I meant that you'd send me a patch
15:02:57 <ehird> Deewiant: not itchy as in nervous
15:03:12 <ehird> itchy as in dammit it's a .pkg and I don't know where it's going graagh why does a CLI program have a graphical installer this is stupid I'm compiling my own.
15:03:29 <AnMaster> Deewiant, mhm. diff thinks mycology is a binary file btw... ;P
15:04:03 <AnMaster> yeah. -a forces it to treat the file as text
15:04:07 <ehird> wtf llvm's Make has no clean
15:04:22 <AnMaster> ehird, um. what? iirc it uses configure?
15:04:28 <ehird> autoconf != automake.
15:04:36 <neldoreth> Deewiant: ok, the ~ part speaks quite for it self
15:04:38 <AnMaster> ehird, I always done out of tree builds
15:04:46 <ehird> Deewiant: it also has a make system
15:04:51 <AnMaster> Deewiant, cmake build system is WIP iirc
15:04:52 <ehird> $(Verb) rm -rf BuildTools
15:04:58 <ehird> ah, so it does have a clean, it's just broken.
15:05:19 * ehird in the near future: `make -j9`
15:05:21 <AnMaster> ehird, suggest solution: mkdir build; cd build; ../configure ...
15:05:30 <AnMaster> then to clean just delete build
15:05:36 <ehird> it DOES an out of tree buil
15:05:55 <ehird> agh, I dont' think their build system does -j properly
15:05:58 <AnMaster> ehird, then your llvm is quite different from mine...
15:06:09 <ehird> fuck this yall, I'm compiling it with cmake
15:06:17 <ehird> AnMaster: http://llvm.org/releases/2.5/llvm-2.5.tar.gz
15:06:19 <ehird> yes, very special.
15:06:36 <AnMaster> ehird, last I asked, which admittedly was a few months ago, cmake didn't yet handle the install bit
15:06:50 <ehird> 2.5 came out a few days ago.
15:07:00 <ehird> Deewiant: is that you gobo
15:07:17 <ehird> install(DIRECTORY include
15:07:19 <ehird> PATTERN ".svn" EXCLUDE
15:07:21 <ehird> PATTERN "*.cmake" EXCLUDE
15:07:23 <ehird> PATTERN "*.in" EXCLUDE
15:07:35 <AnMaster> well they fixed it then I guess
15:07:38 <Deewiant> ehird: http://www.dsource.org/projects/ldc/ does have installation instructions for llvm too, just in case you're making life too difficult for yourself
15:07:50 <ehird> okay, how do you set cmake options?
15:08:03 <ehird> specifically, I want to enable PIC, optimized, and 3-jobs-at-once
15:08:11 <ehird> does it allow me to configure parallel builds?
15:08:40 <AnMaster> ehird, well cmake/ccmake generates Makefiles, so you would use make -j12357687 or whatever after
15:08:43 -!- KingOfKarlsruhe has joined.
15:09:11 * ehird thinks fondly of his dead netcc project
15:09:23 <ehird> (basically, -j<sizable portion of online netcc users>)
15:09:35 <AnMaster> ehird, no idea if llvm's cmake build system properly handles -j. I mean, I cmake itself handles -j fine in my experience, but some projects manage to break it
15:09:43 <ehird> (the issue is verifying that the objects aren't tampered with)
15:10:11 <AnMaster> you could compile a local copy then and compare ;)
15:10:37 <ehird> Deewiant: nahh, object files are only like 1mb
15:10:41 <ehird> this would be for huge projects like kde
15:10:59 <ehird> where expending the bandwidth in exchange for massively parallel builds makes sense
15:11:20 <Deewiant> downloading a megabyte can well take longer than compiling an object file of that size
15:11:25 <AnMaster> um... sending that over internet would be slow. Consider that for distcc you have to have gbit ethernet for it to be useful in practise
15:11:33 <AnMaster> Deewiant, depends on how many C++ templates it uses...
15:11:39 <ehird> you guys ever compiled kde? :P
15:12:34 <AnMaster> I haven't compiled KDE 4 though
15:13:16 <ehird> cmake should only allow you to compile it with cmake
15:13:42 <AnMaster> um. cmake is like automake. It generates makefiles
15:14:06 <ehird> there would be an EULA forbidding you from distributing the resulting makefiles
15:16:04 <AnMaster> iirc autoconf/automake generated files have a "as a special exception you may distribute this generated file with non-GPL software using auto* build system"
15:18:07 <ehird> AnMaster: ccmake gives me no option to enable optimized
15:18:18 <AnMaster> ehird, try t for advanced options?
15:18:24 <AnMaster> also it is project that defines option
15:18:34 <AnMaster> the build type may be relevant
15:19:46 <neldoreth> when i read a input (stdin) with ~ - how can i check when i am finished - so check for eof
15:19:50 <AnMaster> ENABLE_OPTIMIZED=ENABLE_OPTIMIZED=1
15:20:16 <ehird> no OPTIMIZED in cmakelists
15:20:28 <Deewiant> neldoreth: Did you read the specs?
15:20:40 <AnMaster> ehird, there are multiple included files
15:22:35 <ehird> http://groups.google.co.uk/group/comp.lang.scheme/browse_thread/thread/f6c5066346672b00 <-- 346 users, gee! that deserves a group!
15:22:44 <AnMaster> ehird, their irc channel is on irc.oftc.net
15:22:46 <ehird> newlisp doesn't even have lexical variables :-D
15:30:24 <neldoreth> i am just not so sure about catching it if its acting like an r - only with w?
15:32:47 <Deewiant> neldoreth: #v~ where the v leads to the error/EOF condition
15:37:01 <ehird> "Computer justified type only looks good to people who like straight edges on their blocks but don’t bother to read the text inside them. " http://hellbox.org/archives/001566.html
15:39:24 <Deewiant> This well-documented open-source algorithm was only finalized in 1982, of course, so it's silly to ask Amazon to do equally well today.
15:42:23 -!- Judofyr has quit (Remote closed the connection).
15:48:34 -!- Judofyr has joined.
15:50:31 -!- Judofyr has quit (Remote closed the connection).
15:51:05 -!- Hiato has joined.
15:54:07 <AnMaster> Deewiant, one thing though: This is for their ebook reader right? I don't know how powerful it is, but the TeX algorithm is not that fast, though I read that thanks to dynamic programming it isn't too bad. For a complete book it could take a while on a low end device I guess..
15:54:19 <ehird> that's why you pre-render it, duh
15:54:47 <AnMaster> yes I was writing that, but you finished your line first
15:54:57 <ehird> type faster you hobo
15:55:28 <AnMaster> anyway Plain TeX algorithm isn't that good. pdftex has some optional enhancements that are really nice
15:55:40 <ehird> beats that awful algorithm on the page
15:55:44 <AnMaster> use the package microtype to enable them
15:55:58 <ehird> of course, an incredibly easy way to solve this is to just have it ragged-right, which is easier on a screen anyway.
15:56:02 <AnMaster> very nice. As usual for TeX there is a lot og good docs for it.
15:56:03 <ehird> 0 computational cost!
15:56:12 <AnMaster> ehird, well you have to compute line breaks
15:56:20 <ehird> well, okay, but that's trivial :P
15:56:21 <AnMaster> and I find straight margins easier on screen too
15:56:48 <AnMaster> the margins in that example you linked I agree ragged would have been better
15:57:17 <ehird> I think it's generally well-known that ragged-right is easier on a screen, might not be for you but you're weird.
15:57:43 <AnMaster> mhm. Well depends on what sort of text
15:58:14 * AnMaster notes man uses monotype + straight margins
15:58:19 <ehird> The fact that the fast majority of text I've read has been ragged-right on a computer for a huge portion of my life may have something to do with it
15:58:29 <ehird> also, man doing that enrages me to no end
15:58:33 <ehird> (isn't it technically troff that does that?)
15:58:38 <AnMaster> the result isn't good IMO, but better than the kindle thing
15:58:46 <ehird> wonder if troff has an option to turn it off
15:58:51 <AnMaster> ehird, well probably. Or one of the other programs that troff invokes
16:01:16 <AnMaster> ehird, maybe in your mandoc format definition? On my system that is in /usr/share/groff/current/tmac/andoc.tmac
16:01:21 -!- DH__ has quit ("Trillian (http://www.ceruleanstudios.com").
16:01:27 <AnMaster> yeah andoc... -m andoc -> -mandoc ... go figure
16:01:39 <ehird> heh, like the ubygems trick
16:02:04 <AnMaster> oh? rubygems is some package manager for ruby right?
16:02:26 <ehird> you need to require rubygems before you can use rubygems packages
16:02:31 <ehird> (for various ugly reasons)
16:02:33 <ehird> and ruby has -r for require
16:02:41 <ehird> so they made ubygems.rb `require "rubygems"`
16:02:49 <AnMaster> ehird, you know about libiberty? Well -liberty is the link command... GNU people...
16:03:12 <ehird> i love how that sounds when you pronounce it
16:03:35 <AnMaster> andoc doesn't contain the word "margin" anyway
16:03:49 <asiekierk> oh no, I was again working on Asiecrypt
16:04:08 <ehird> AnMaster: .\" Load either an-old.tmac or doc.tmac.
16:04:12 <asiekierk> This time it encrypts an image into random gibberish and can still decode it
16:04:16 <AnMaster> ehird, doesn't say that here...
16:04:22 <ehird> maybe a BSD thing.
16:04:40 <ehird> doc.tmac has the 3-clause BSD license
16:04:53 <AnMaster> wait, it does: "Either load doc.tmac or an-old.tmac"
16:04:54 <ehird> . nr an-margin \\n[IN]
16:05:15 <AnMaster> ehird, well the syntax isn't that far from TeX one
16:05:32 <ehird> except you can read tex because its names aren't all meaningless 2-character gibberish with \s and .s everywhere
16:05:53 <AnMaster> ehird, look. This saves bytes. Remember /usr/share is limited in size. Or was.
16:05:54 <fizzie> syslog-ng uses the libol.a library to get "-lol"; I don't think the "ol" meant especially anything there.
16:06:26 <ehird> that's some mature humor
16:06:47 <ehird> fizzie: it doesn't seem to be intentional
16:07:08 <AnMaster> btw what software has libibido?
16:07:24 <ehird> but i presume some kind of open source porn viewer would utilize it somehow
16:07:25 <AnMaster> oh? there is no package for it
16:07:30 <ehird> yes, it doesn't exist
16:07:38 <fizzie> Yes and apparently nowadays: "I moved to using glib instead of libol, as glib is more mature and provides several nice & easy to use features."
16:07:39 <Deewiant> Maybe GHC could use libambda when it gets proper shared object support
16:07:41 <ehird> hmm. there's an mm.tmac
16:07:47 <ehird> -mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
16:08:04 <AnMaster> ehird, -mm ? I think that exists. I have a m.tmac here...
16:08:09 <ehird> I have an mm.tmac.
16:09:53 <AnMaster> ehird, you will also need to check /etc/man.conf or something like that for what -m is actually used
16:10:07 <AnMaster> man_db.conf on some systems. And no idea on OS X
16:10:35 <AnMaster> TROFF /usr/bin/groff -Tps -mandoc
16:10:49 <ehird> "Right-margin justification is turned off for the mm macros."
16:11:44 <AnMaster> well mandoc.tmac includes andoc.tmac
16:11:51 <ehird> .\"0 == left-justified
16:11:52 <ehird> .\"1 == indented .P
16:11:54 <ehird> .\"2 == indented .P except after .H, .DE or .LE.
16:11:58 <ehird> I think nr is a variable
16:12:27 <ehird> jesus christ this is just painful
16:12:52 <AnMaster> ehird, at least, teco would have been worse
16:13:15 <ehird> naw, teco is obscure but not much more than, say, befunge
16:13:19 <ehird> just because it has short commands
16:13:26 <ehird> whereas this is a syntactic clusterfuck
16:13:30 <AnMaster> well roff has short commands too
16:13:40 <ehird> yeah, but it's everything else that's the issue.
16:14:17 <AnMaster> ehird, I'm not sure what the other stuff is. I just know enogh *roff to write a simple man page. Which is far from that above.
16:15:09 <ehird> i mean, teco is pretty intuitive, actually
16:15:13 <ehird> EBhello.c<ESC><ESC>
16:15:17 <ehird> E means edit, B means with backups
16:15:24 <ehird> and two escapes terminates a command
16:15:38 <ehird> P<ESC><ESC> p means P-age it reads the first page of text in
16:15:56 <AnMaster> ehird, I think most languages seem easy/intuitive if you used them enough :P
16:15:58 <ehird> SHello<ESC>0TT<ESC><ESC> <- ESC obviously separates command arguments
16:16:16 <ehird> not sure what 0TT is, probably "print line 0" (with relative offsets)
16:16:22 <ehird> i don't even know teco, but it seems simple enough to me
16:16:30 <ehird> -5DIGoodbye<ESC>0TT<ESC><ESC>
16:16:36 <ehird> -5D prints 5 characters backwards, obviously
16:16:41 <AnMaster> ehird, does that bf interpreter in TECO seem "simple enough" too?
16:16:47 <ehird> 0TT just prints the current line
16:17:03 <ehird> anyway, I is obviously insert
16:17:05 <ehird> then it prints the line
16:17:29 <ehird> i mean, i get that the brainfuck interp looks complex, but actual editing seems basically like ed
16:17:33 <AnMaster> @^UB#@S/{^EQQ,/#@^UC#@S/,^EQQ}/@-1S/{/#@^UR#.U1ZJQZ\^SC.,.+-^SXQ-^SDQ1J#@^U9/[]-+<>.,/<@:-FD/^N^EG9/;>J30000<0@I/
16:17:34 <AnMaster> />ZJZUL30000J0U10U20U30U60U7@^U4/[]/@^U5#<@:S/^EG4/U7Q7;-AU3(Q3-91)"=%1|Q1"=.U6ZJ@i/{/Q2\@i/,/Q6\@i/}/Q6J0;'-1%1'
16:17:34 <AnMaster> >#<@:S/[/UT.U210^T13^TQT;QT"NM5Q2J'>0UP30000J.US.UI<(0A-43)"=QPJ0AUTDQT+1@I//QIJ@O/end/'(0A-45)"=QPJ0AUTDQT-1@I//
16:17:34 <AnMaster> QIJ@O/end/'(0A-60)"=QP-1UP@O/end/'(0A-62)"=QP+1UP@O/end/'(0A-46)"=-.+QPA^T(-.+QPA-10)"=13^T'@O/end/'(0A-44)"=^TUT
16:17:36 <AnMaster> 8^TQPJDQT@I//QIJ@O/end/'(0A-91)"=-.+QPA"=QI+1UZQLJMRMB\-1J.UI'@O/end/'(0A-93)"=-.+QPA"NQI+1UZQLJMRMC\-1J.UI'@O/en
16:17:39 <AnMaster> d/'!end!QI+1UI(.-Z)"=.=@^a/END/^c^c'C>
16:17:54 <ehird> it's ugly, but I bet if you added newlines after command blocks it'd make sense
16:18:09 <ehird> it's just because it's all mushed together, and plus, using a text editor to implement brainfuck will never be pretty
16:18:13 <ehird> (disregarding things like elisp)
16:18:40 <ehird> agreed, but you can read a bf interp in it easily
16:18:52 <ehird> elisp itself is horrific
16:18:55 <AnMaster> even with all optional spaces/newlines removed?
16:19:05 <AnMaster> and with one letter names where possible
16:19:09 <ehird> i'm going to install teco
16:19:13 <ehird> te(1) is an implementation of TECO in portable C. It implements DEC standard
16:19:13 <ehird> TECO, with some exceptions and extensions described below. te assumes a
16:19:15 <ehird> VT100-type terminal, and its display driver is hard-coded for such.
16:19:17 <ehird> Homepage: http://www.ibiblio.org/pub/academic/computer-science/history/pdp-11/teco/
16:19:38 <ehird> semi-official os x package manager
16:19:42 <AnMaster> ehird, some package maintainer gone insane
16:19:54 <ehird> nomaintainer@macports.org is indeed insane
16:20:02 <ehird> they let just about everything into their repos, which is nice
16:20:10 <AnMaster> I would expect debian to have it, if license is ok. Otherwise no distro
16:20:15 <ehird> TECO for UltrixMatt FichtenbaumFebruary 27, 1987
16:20:25 <AnMaster> ehird, how do you submit ports then?
16:20:33 <ehird> AnMaster: ask in #macports :P
16:20:35 <AnMaster> I would like to submit a rootkit named gcc
16:20:47 <ehird> backward paging in file (negative arguments to P, N, etc.)
16:20:49 <ehird> under missing features
16:20:58 <ehird> isn't backwards paging, kind of
16:21:06 <ehird> trivial to implement?
16:21:16 <ehird> yeah, but this is an editor :P
16:22:20 <ehird> Most DEC command languages interpreted the "MAKE filename" command as a command to start TECO and create the named filename. Many (most?) TECOs would respond to "MAKE LOVE" with the message "Not war?". At some TECO installation sites, the resulting file "LOVE" was considered a good-luck charm and was thus accorded heavy file protection (e.g., <777> under TOPS-10), never to be deleted.
16:22:21 <AnMaster> ehird, anyway what about dc code?
16:22:28 <ehird> eh, dc is just like underload really
16:22:37 <ehird> except with arithmetic, so even easier
16:23:23 <AnMaster> well, I have seen dc programs that look about as confusing as the bf interpreter in TECO.. And I have seen readable ones.
16:23:30 <AnMaster> I have written confusing ones too
16:23:54 <ehird> <esc><esc> terminates the command :D
16:23:56 <AnMaster> dc is a nice calculator, but doing text processing in it is just stupid
16:23:58 <ehird> (and makes a new command line)
16:24:37 <ehird> hmm, this is buggy
16:25:03 <AnMaster> http://99-bottles-of-beer.net/language-dc-704.html <-- that isn't too bad. But I have seen much worse
16:26:15 <fizzie> Debian bug report 298432 -- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=298432 -- is someone requesting TECO, but it never happened.
16:28:15 <ehird> AnMaster: Jannis Harder? that's jix
16:28:36 <ehird> the writer of that 99bob
16:30:30 <AnMaster> ==1234== 99 bytes in 1 blocks are still reachable in loss record 1 of 99
16:30:30 <AnMaster> ==1234== 98 bytes in 1 blocks are still reachable in loss record 2 of 99
16:30:55 <AnMaster> ehird, not the same of course. But a parody
16:31:48 <AnMaster> just a case of making a leaky enough program that generates the output you want
16:32:19 <ehird> also, how much interest do you think there would be in a precise, generational, parallel and concurrent (i.e., the GC uses multiple threads, and runs in parallel with the mutator) GC?
16:32:40 <ehird> well, that's kind of rhetorical, there's huge demand for that
16:32:43 <AnMaster> ehird, if it also gives good performance: A *LOT*
16:32:59 <AnMaster> depends on for what language/vm
16:33:02 <Deewiant> Isn't that exactly what's happening with GHC soon/now?
16:33:05 <ehird> AnMaster: pluggable
16:33:12 <ehird> Deewiant: ghc's gc still pauses threads
16:33:13 <Deewiant> I.e. somebody was working on it
16:33:19 <ehird> AnMaster: you can't make a precise GC for C
16:33:33 <ehird> AnMaster: it may be possible to plug in some stuff to make it conservative
16:33:45 <ehird> i.e., you set off some defines for your language and you're done
16:33:58 <AnMaster> ehird, you mean one GC that you can plug into java, .NET, ocaml, ghc and so on?
16:34:07 <ehird> well, you have to modify their implementation to do it, of course
16:34:24 <ehird> but it'll just need some functions like heap traversal etc
16:34:45 <AnMaster> also a GC for a single assignment language can take advantage of some extra stuff iirc
16:35:12 <ehird> I was planning to basically optimize it for Scheme.
16:35:30 <ehird> i.e., not all-out-imperative, but not purely-functional, strict, high-level
16:35:43 <ehird> that should cover a wide range of other languages
16:35:55 <ehird> e.g. most modern scripting languages like perl, python, ruby
16:38:16 <AnMaster> seems valgrind sorts so largest leak is last
16:41:22 <ehird> AnMaster: woo, I've sussed basic editing with teco
16:41:30 <ehird> http://pastie.org/private/xstfyhfbfciqpr6yqkuhvw
16:41:43 <ehird> should be evident how it works from that session
16:42:09 <ehird> (S puts the cursor right after the term)
16:42:15 <ehird> thus the mid-line prompt after 0T
16:43:32 <AnMaster> ehird, will you use this as your main text editor now?
16:43:43 <ehird> but I might use it where I would have used ed
16:43:48 <ehird> (tiny changes to system files)
16:43:56 <ehird> tapping <ESC><ESC> all the time is a bit annoying
16:46:54 <ehird> [ehird:~/Junk] % ls -lh `which teco`
16:46:54 <ehird> -rwxr-xr-x@ 1 root wheel 99K 10 Mar 15:39 /usr/local/bin/teco
16:46:55 <ehird> [ehird:~/Junk] % ls -lh `which ed`
16:46:57 <ehird> -r-xr-xr-x 1 root wheel 111K 10 Sep 02:06 /bin/ed
16:47:56 <AnMaster> You appear to be a bot, I can't accept your paste. JS is now required to paste.
16:48:03 <AnMaster> I tried to use a pastebin ehird liked
16:48:07 <ehird> AnMaster: LOL what pastebin?
16:48:11 <ehird> also, i don't like the pastebins I link
16:48:17 <ehird> I was just trying to find a fast one
16:48:33 <ehird> that is amazingly retarded.
16:48:40 <ehird> I'm using paste.lisp.org from now on.
16:48:51 <ehird> AnMaster: I'll write you a command-line paste.lisp.org paster, dammit :P
16:48:57 <AnMaster> ehird, btw http://rafb.net/p/1giASD62.html
16:49:20 <ehird> ( http://pastie.org/412847 )
16:49:21 <ehird> also, that's great
16:49:36 <ehird> you should record it
16:49:45 <ehird> The proxy server received an invalid response from an upstream server.
16:49:45 <ehird> The proxy server could not handle the request GET /.
16:49:46 <ehird> Reason: Error reading from remote server
16:50:02 <ehird> 15:47 Deewiant: /bin/ed is 49K here O_o
16:50:07 <ehird> Mach-O binaries tend to have large overhead
16:50:20 <Deewiant> Ah, right, it's two binaries, isn't it?
16:50:37 <ehird> I don't think it's universa
16:51:25 <Deewiant> Mach-Os can have code for multiple archs
16:51:33 <Deewiant> Not only the new Universal ones
16:51:44 <ehird> universal binary = marketing term for dual-arch mach-os
16:52:27 <ehird> PPC macs are probably going to be unsupported in 10.7 or so
16:52:55 <ehird> since it'll have been 5-6 years since you could buy a ppc mac
16:53:40 <neldoreth> http://pastebin.com/m564d25c7 can someone give me a hint what i have to do to read a new char from stdin? i want to evaluate the first one, then print something and then read one again, but at this point the program quits
16:54:18 <ehird> neldoreth: <<< is pointless
16:54:20 <ehird> you only need one <
16:54:24 <ehird> and it'll keep going that way
16:54:28 <ehird> prettier, though, I guess
16:54:38 <Deewiant> Cue AnMaster saying it's slower
16:55:10 <ehird> I was just thinking that
16:55:15 <ehird> Deewiant: see neldoreth's paste
16:56:12 <neldoreth> i know but i can "draw something" :D
16:56:12 <neldoreth> i should run back to the ~ in the left corner all the time
16:56:13 <Deewiant> neldoreth: it might be easier to use "a"- instead of 99*-44*-
16:56:28 <ehird> proposed new name for naive mark and sweep GCs: Racially discriminatory garbage collection
16:56:30 <Deewiant> or if you're using Befunge-98, 'a-
16:56:30 <ehird> (white/black, geddit?)
16:56:44 <AnMaster> ehird, http://rafb.net/p/kpPckS27.html
16:57:09 <ehird> AnMaster: now do it as a loop
16:57:12 <AnMaster> Deewiant, also space is faster in ticks
16:57:14 <ehird> (99bob only accepts looping submissions)
16:57:27 <AnMaster> ehird, well hard, valgrind will merge the leak records then
16:57:32 <ehird> ( http://pastie.org/private/iv4m2aemernoywywhfy2nq )
16:57:34 <ehird> AnMaster: just loop in cpp
16:57:35 <AnMaster> + it doesn't print the actual lyrics
16:57:35 <Deewiant> AnMaster: Yes, exactly that's what I said you'd say
16:57:38 <ehird> 99bob has been done in CPP
16:57:53 <Deewiant> neldoreth: Your logic seems strange
16:58:00 <neldoreth> the left top box in the middle checks if the input is an a, the right top one if its an b - the lower boxes are just printing something
16:58:02 <ehird> also, it'd probably be accepted if you explained why it's as close as you can get in valgrind
16:58:09 <AnMaster> Deewiant, well you might prefer <<< if you want to sync threads
16:58:32 <Deewiant> neldoreth: Or no, wait, you quit if you don't get an 'a' or 'b'
16:58:54 <ehird> AnMaster: #define G(n) void l ## n (){for(int i=0;i<n;i++)malloc(1);}
16:59:00 <ehird> you don't need c99 there...
16:59:10 <AnMaster> ehird, indeed, but it is longer if you move int out
16:59:18 <ehird> it's not a golf contest :D
16:59:23 <AnMaster> #define G(n) void l ## n (){int i;for(i=0;i<n;i++)malloc(1);}
16:59:26 <AnMaster> #define G(n) void l ## n (){for(int i=0;i<n;i++)malloc(1);}
16:59:42 <ehird> anyway, you'd have to make it looping for the site
16:59:45 <ehird> so it'll be longer anyway
16:59:55 <AnMaster> ehird, so it would use the preprocessor
17:00:03 <ehird> it would be cpp+C+valgrind 99bob
17:00:08 <AnMaster> anyway does it really qualify? It isn't the original lyrics
17:00:09 -!- neldoreth has quit (Remote closed the connection).
17:00:14 -!- neldoreth has joined.
17:00:15 <ehird> yes, if you explained, probably
17:00:17 <ehird> as a novelty entry
17:00:29 <AnMaster> ehird, and valgrind outputs it sorted so largest leak is last. Which is why I need tac there
17:00:41 <ehird> okay then, it's cpp+C+valgrind+shell
17:00:52 <ehird> you could get a 'most languages combining to produce the wrong output' reward :D
17:01:00 <AnMaster> ehird, not shell builtin. Anyway I don't think I will submit it.. Probably
17:01:11 <AnMaster> but I should try to making it looping in cpp
17:01:16 <AnMaster> need to figure out how that works first...
17:01:30 <neldoreth> did someone responded after "[16:59:27] neldoreth : the left top box.."
17:01:30 <AnMaster> ehird, anyway it is looping. for loops
17:02:04 <Deewiant> neldoreth: After I complained about your logic I said: 2009-03-10 17:58:32 ( Deewiant) neldoreth: Or no, wait, you quit if you don't get an 'a' or 'b'
17:03:23 -!- BeholdMyGlory has joined.
17:04:03 <neldoreth> ah, when i type a and press return i first handle the a and then the newline and so it quits - what i want is to read another time from the stdin
17:04:29 <Deewiant> neldoreth: So... don't quit if you get a newline? :-P
17:05:11 <AnMaster> ehird, (not yet recursive) but c89: http://rafb.net/p/eMJu3514.html
17:05:39 <ehird> ( http://pastie.org/private/2uu4zcnp28kjjolbkjlza )
17:05:42 <AnMaster> ehird, and don't claim I'm anal about clean C when I wrote this.
17:06:38 <Deewiant> neldoreth: You might want to read getting a blank line as a quit, though
17:08:04 <AnMaster> ehird, "# Approval may take some time (currently 354 languages in our queue) unless your submission is 'obviously correct' to us."
17:08:13 <ehird> hmm. sounds rather abandoned.
17:09:40 <AnMaster> ehird, hm in http://99-bottles-of-beer.net/language-c-c++-preprocessor-997.html?PHPSESSID=dd5c2ef875ab6fe583f94a4bf5a6d0b1 what on earth do the | do?
17:10:29 <ehird> AnMaster: it's just cpp
17:10:32 <ehird> so it's interpreted as plaintext
17:16:31 -!- MigoMipo has joined.
17:26:54 <AnMaster> wait, main() returns implicit 0?
17:27:06 <AnMaster> is that standard or gcc thing?
17:29:19 <Deewiant> I think it was just a normal int-returning function then
17:29:57 <Deewiant> What does the C standard say about functions which don't return but are prototyped to?
17:30:03 <AnMaster> http://rafb.net/p/RSKN7292.html
17:31:02 <ehird> http://pastie.org/private/nfhn6okyyubkdnmkwjpfg
17:31:09 <AnMaster> ok but what do you think about it?
17:31:24 <AnMaster> also paste.lisp seems to work now
17:33:44 <ehird> http://common-lisp.net/project/lisppaste/lisppaste.el
17:33:47 <ehird> lisppaste from emacs
17:33:49 <ehird> good enough for you?
17:34:38 -!- FireFly has joined.
17:38:40 <ehird> how to write better shell: alias return=echo
17:38:56 <ehird> AnMaster: what are erlang extensions?
17:39:32 <AnMaster> .erl for source, .hrl for includes
17:40:54 <ehird> ><option value="WebKit (text or diff)"
17:40:55 <ehird> >WebKit (text or diff)</option
17:40:57 <ehird> now what the fuck does that mean
17:41:40 <AnMaster> it seems like a cut out fragement of some HTML code?
17:42:04 <ehird> yes, it's a paste.lisp.org syntax highlighting option
17:42:08 <ehird> I'm trying to figure out wtf it means
17:45:54 <ehird> how do you convert to lowercase in bash?
17:48:18 <ehird> http://lists.osuosl.org/pipermail/darcs-users/2009-March/018239.html <- I think the darcs devs have just given up
17:48:55 <pikhq> tr '[:upper:]' '[:lower:]'
17:50:04 <ehird> if you pass a shell function something like "a b", it can just use $1 instead of "$1", right?
17:52:13 <ehird> yay, my shell script just lost 500KB of quotes :P
17:53:09 <ehird> AnMaster: http://www.nopaste.com/
17:53:19 * ehird continues writing script
17:53:48 <ehird> seems to be IP-based.
17:54:00 <ehird> so I guess it's for the "oh shit I just pasted my password"
17:54:29 <ehird> true, it does lack highlights
17:54:32 <ehird> AnMaster: C highlight would work for bash
17:54:40 <AnMaster> ehird, not well in my experience
18:03:43 <ehird> lisp.paste.org has no bash hgihlighting, actually
18:03:47 <ehird> whch is a shame but oh well, who cares
18:07:11 <ehird> AnMaster: hey, the captcha is gone!
18:07:17 <ehird> maybe it only does it once per IP
18:07:40 <ehird> the captcha is css
18:08:04 <ehird> '<input type="hidden" name="captchaid" value="4ccbd82bbeddf490a6eede296e92c403" />'
18:08:14 <ehird> I could just use the xml-rpc, but meh.
18:09:10 <ehird> % curl -s http://paste.lisp.org/|grep captcha
18:09:11 <ehird> ><input type="text" name="captcha" /><input type="hidden" name="captchaid" value="d90835c8e963fd8044287b4e2f11a498" /></td
18:09:58 -!- jix_ has joined.
18:10:40 <ehird> % curl -s http://paste.lisp.org/ | grep captcha | sed 's/.*value="\(.*\)".*/captcha=lisp\&captchaid=\1/;'
18:10:41 <ehird> captcha=lisp&captchaid=02bbbb07dd6f667b9c1c94194843771b
18:11:52 <ehird> uh oh, I need to urlencode in bash
18:12:16 <AnMaster> why not use some other language?
18:12:22 <AnMaster> I do have python, perl and so on
18:12:22 <ehird> I started writing it in bash
18:12:30 <ehird> actually my bash is looking vaguely like python
18:12:34 <AnMaster> ehird, I don't think bash is the sanest language for this...
18:12:35 <pikhq> Remember what channel this is, AnMaster.
18:12:38 <ehird> because I'm not really quoting anything
18:12:42 <ehird> AnMaster: one word: envbot
18:12:52 <AnMaster> so I should know when it is insane
18:13:03 <AnMaster> if I say it is insane to do in bash, it has to be really insane
18:13:10 <ehird> hokay let's see well this shouldn't be hardy hard
18:13:32 <ehird> meh, it's almost done
18:13:35 <ehird> just some trivial curl
18:13:44 <ehird> and mapping file extensions to languages
18:14:03 <ehird> okay, so, urlencoding:
18:14:07 <ehird> replace space with +
18:14:20 <ehird> replace anything not in 0-9a-zA-Z and $-_.!*'(), with %XX
18:14:24 <ehird> where XX is the character code in hex
18:14:45 -!- oklopole has changed nick to oklopol.
18:15:10 <pikhq> ehird, that's great and all, except that you replace space with %20.
18:15:22 <ehird> pikhq: + is accepted by everything under the sun
18:15:36 <ehird> pikhq: search for hello world on the google dot com
18:15:39 <ehird> take a look at the url
18:15:44 <pikhq> Doesn't make it right.
18:16:14 <ehird> pikhq, if I was going for right I'd be half way through writing my lisp operating system:)
18:16:45 * pikhq hands ehird a copy of the Emacs source code
18:16:58 <ehird> I was hoping for something more elegant. :P
18:17:16 <pikhq> Yeah, I know... But any Lisp operating system simply *must* also count as an Emacs.
18:17:34 <pikhq> Not necessarily GNU Eamcs, of course. Bit of a hack, that.
18:17:36 <ehird> Well, yeah, the lisp machine OSes were basically generalized emacses
18:17:50 <ehird> I'm not yet crazy enough to make my own hardware, though.
18:18:09 <pikhq> Doesn't need to be a Lisp machine, you know.
18:18:32 <pikhq> Just needs to be normal hardware, with car, cdr, lambda, and def defined. :p
18:18:52 <ehird> can you car a lambda or something?
18:19:04 <ehird> pikhq: why not just have lambda
18:19:08 <pikhq> Sorry. Scratch the car and cdr.
18:19:12 <ehird> after all, def is just a fancy ((lambda (name) ...) value).
18:19:34 <ehird> methinks we have a slight problem, namely that of io...
18:20:09 <pikhq> Fine, fine. You want it to be *useful*...
18:20:21 <pikhq> Guess you'll need read and print as well...
18:20:28 <AnMaster> http://www.nopaste.com/p/aQnonJ8OT
18:20:37 <pikhq> Perhaps some more complex IO as well.
18:20:58 <ehird> AnMaster: nope, sorry
18:21:01 <ehird> you're not allowed to name 99-1
18:21:05 <ehird> you have to loop that part
18:21:47 <AnMaster> ehird, but I still think this is rather nice. My plan is to loop the 99-1 bit too
18:22:07 <ehird> pikhq: the AFO deregistered
18:22:17 <AnMaster> ehird, by recursively calling cpp in -traditional mode to expand one step at a time + add part of the next
18:22:23 <ehird> hmm, I'm only the third person to tell you I see
18:22:29 <AnMaster> ehird, what do you think about that?
18:22:35 <ehird> AnMaster: no no no
18:22:38 <ehird> you can loop with plain cpp
18:22:42 <ehird> you just do recursive #includes
18:22:43 <AnMaster> ehird, yes but this is funnier
18:23:02 -!- jix has quit (Read error: 113 (No route to host)).
18:24:11 <ehird> I wonder if you can loop through a string's chars in absh
18:25:06 <AnMaster> $(for i in {0..99};do echo -n | cpp -traditional -Da$i="r($i)a$((i+1))"; done | sed '^/|//')
18:25:08 <pikhq> ehird: Yeah; I intend to register the AFO when next possible.
18:25:22 <ehird> pikhq: Um, but Murphy is the one who deregistered it and he is a party.
18:25:32 <ehird> He'd just deregister it again if you didn't seek consensus.
18:26:05 <pikhq> Alas, I *can* talk to Murphy.
18:26:10 <AnMaster> ehird, what do you think of that idea?
18:26:24 <ehird> pikhq: WHAT BUT THAT'S IMPOSSIBLE :|
18:26:38 <pikhq> How else do you think the Left Hand came into being?
18:26:58 * pikhq wonders if that contract still exists...
18:26:58 <ehird> I believe judicial precedent is that while it existed, it didn't work...
18:27:05 <ehird> also, I think it was terminated in a cleanup
18:27:13 <ehird> http://agora-notary.wikidot.com/system:page-tags/tag/contract
18:27:50 <ehird> Taking this to /msg, to unclutter #esoteric:
18:36:14 -!- psygnisfive has quit (Remote closed the connection).
18:51:27 <ehird> Some sort of captcha problem.
18:51:30 <ehird> AnMaster: lisppaste(1) is almost don.
18:58:56 <ehird> AnMaster: it's done, the only thing it doesn't do is annotate a paste
18:58:59 <ehird> do you need that? :P
19:01:22 <AnMaster> http://www.nopaste.com/p/a1S6eQHnp <-- fixed version slightly
19:01:29 <ehird> http://paste.lisp.org/display/76773
19:01:33 <AnMaster> no I'm not yet done with recursive
19:01:46 <ehird> Pop in ~/bin, put in your .profile:
19:01:51 <ehird> export LISPPASTE_USER=AnMaster
19:01:59 <ehird> lisppaste [language] (filename | -)
19:02:26 <ehird> dunno if that's in sh
19:02:35 <AnMaster> ehird, does it work on filenames with spaces?
19:02:43 <ehird> AnMaster: yes, I'll test just to make sure
19:03:06 <AnMaster> if [ $1 = - ]; then <-- think that would break with it
19:03:36 <AnMaster> echo -n "$1" | perl -pe's/([^-_.~A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg'
19:03:55 <ehird> AnMaster: http://paste.lisp.org/display/76776 updated version
19:03:58 <AnMaster> ehird, what exactly does it do? convert to hex ascii value?
19:04:38 <ehird> also, it sets the title to the filename you give it (no expansion done)
19:04:41 <ehird> or untitled if stdin
19:05:28 <AnMaster> ehird, but question, what exactly does that perl do. I guess convert everything not in [-_.~A-Za-z0-9] to %octalvalue ?
19:05:50 <AnMaster> ehird, want to know how in pure bash?
19:06:05 <ehird> Curl can urlencode for you
19:06:10 <ehird> I could just use that
19:06:15 <AnMaster> hex() { printf -v "$1" '%d' "'$2"; }
19:06:48 <AnMaster> ehird, needs bash 3.1 or later. for 3.0 too do something like:
19:06:57 <ehird> (labels(({(] &rest [)(apply([
19:06:57 <ehird> ])[))([(>)(elt(]())>))(](<)(do-external-symbols(] :cl)(push ] <))(sort
19:06:58 <ehird> <`string<`:key`string))(}({ + ^)({`816`1/5)({`688({`875({`398()"~{~A~^
19:07:00 <ehird> ~}"(]())){(+ { +)))({`381)^))(do*(({`5248({`584 }`36063))([`874({`395
19:07:02 <ehird> {`6))(]`4({`584 {`6))(}`#36RH4G6HUTA1NVC1ZHC({`395 }`36063)))((} [ ]
19:07:04 <ehird> ({`977 ]))({`902)({`381))))
19:07:12 <ehird> AnMaster: run it in a common lisp interpreter
19:07:34 <AnMaster> ehird, not sure I want to. could be overwrite files or whatever
19:07:38 <ehird> AnMaster: it isn't.
19:07:47 <ehird> seriously, I'm the last person to do something like that
19:07:51 <ehird> AnMaster: you know japh programs?
19:07:53 <ehird> (just another perl hacker)
19:07:55 <ehird> it's one of those.
19:08:10 <ehird> they print out "Just another perl hacker,"
19:08:13 <ehird> in the most obscure way possible
19:08:42 <ehird> as far as I can tell, by the way, this one works by searching through all standard common lisp names, finding one with the most consecutive characters to output next, and outputs it
19:09:13 <ehird> uh oh, is that a dead pixel on my screen?
19:09:18 <ehird> I can't wipe it off.
19:09:28 <AnMaster> ehird, doesn't most screens have 1-2 or so?
19:09:38 <ehird> This one has had none.
19:09:45 <ehird> it's probably just some dust or something
19:10:06 <ehird> well, maybe it has them but it's in some obscure corner where I never look
19:10:11 <ehird> the dpi is high enough that i'd probably never notice
19:10:15 <ehird> but this one is in a particularly annoying place
19:10:47 <AnMaster> of course. Over my name in the nick list. Could be no worse place ;P
19:10:53 <ehird> Right now, on my IRC input line, which is white-backgrounded, so it stands out a lot.
19:11:10 <ehird> Well, all going to plan I'll be replacing this monitor soon, anyway, so no great loss ...
19:11:23 <AnMaster> ehird, that is the good thing with black terminals :P
19:11:32 <ehird> yeah, the one good thing
19:11:34 <AnMaster> you don't see the dead pixels as much
19:11:58 <AnMaster> personally I also find it easier to read white on black...
19:12:32 <oklopol> i wish books were printed that way
19:12:43 <ehird> It would be true if you used the computer a lot at night; but I hate the dark (it depresses me) so I optimize for daylight
19:13:26 <AnMaster> oklopol, no that wouldn't work as well, Screen and print are different
19:13:41 <ehird> he'd find a way to make it work.
19:13:58 <oklopol> i love white on black it on print too
19:14:03 <oklopol> have you actually tried, anmy?
19:14:12 <AnMaster> high quality paper too, since ink would otherwise saturate it badly
19:14:16 <ehird> AnMaster: so does lisppaste(1) work for you?
19:14:34 <ehird> AnMaster: make sure to set LISPPASTE_USER
19:14:41 <ehird> probably want to do that in .profile or whatever
19:16:12 <AnMaster> ehird, did you see http://common-lisp.net/project/lisppaste/xml-rpc.html btw?
19:16:24 <ehird> but xml-rpc is a hideous protocol
19:16:28 <ehird> and I'd have to escape XML
19:18:53 <ehird> I could also fucking write it in dd/sh but I won't :P
19:19:04 <ehird> (dd/sh = use only shell builtins and dd)
19:19:18 <AnMaster> how would you open network connection then?
19:19:26 -!- ais523 has joined.
19:19:34 <ehird> AnMaster: it's a shell builtin
19:19:35 <ehird> http://select.intercal.org.uk/dd.sh/
19:19:50 <AnMaster> /dev/tcp is a bash extension afaik?
19:20:01 <ehird> but it's a BASH builtin
19:20:10 <ais523> how can a file be a builtin?
19:20:14 <AnMaster> but that is dd/bash, not dd/sh
19:20:24 <ehird> ais523: uh, dd.sh uses files
19:20:28 <ehird> it's just the commands that are restricted
19:20:31 <AnMaster> but I decided to ignore it to avoid confusion
19:20:40 <ehird> ais523: today I compiled a TECO port for unix
19:20:45 <ehird> it's actually quite usable
19:20:57 <ais523> well, it was the main editor around for ages
19:21:00 <AnMaster> ais523, and I wrote 99 bottles of valgrind
19:21:02 <ais523> so I wouldn't expect it to be unusual
19:21:17 <AnMaster> ais523, not the actual song lyrics exactly
19:21:21 <ais523> ehird: are you using it as an interactive or batch editor?
19:21:28 <ehird> ais523: interactive
19:21:35 <ehird> the commands are basically like ed
19:21:36 <ehird> except more intuitive
19:21:38 <AnMaster> ais523, http://www.nopaste.com/p/a1S6eQHnp
19:21:41 <ehird> TECO is easier than ed.
19:22:10 <AnMaster> ais523, I plan to avoid the _ thing by doing something like: $(for i in {0..99};do echo -n | cpp -traditional -Da$i="r($i)a$((i+1))"; done | sed '^/|//')
19:22:39 <ais523> maybe I should learn it
19:22:42 <ehird> ais523: here, I'll give you a transcript URL
19:23:02 <ehird> ais523: http://pastie.org/private/xstfyhfbfciqpr6yqkuhvw
19:23:09 <ehird> note that at one point, I get a * prompt in the middle of the line
19:23:10 <AnMaster> ais523, anyway what do you think of that program?
19:23:33 <ais523> AnMaster: it's a memory-leak 99 bottles of beer?
19:23:44 <AnMaster> ais523, it is safe to run. I assume you have valgrind
19:23:48 <ais523> couldn't you use a loop? writing all 99 bottles by hand is cheating
19:24:03 <ais523> but I've only just sat down and already people are trying to make me do everything at once
19:24:11 <AnMaster> I can't call same function, valgrind merges backtraces
19:24:15 <ehird> look at mine first, it's cooler ;-)
19:24:18 <AnMaster> so it can't work without 99 different functions
19:24:24 <ais523> AnMaster: what if you call it from 99 different contexts?
19:24:29 <ehird> ais523: btw, $ there is how <ESC> is printed
19:24:38 <ehird> two escapes terminate a line
19:24:38 <ais523> valgrind doesn't merge different callstacks
19:24:39 <AnMaster> ais523, hm. That would still need 99 code paths right?
19:24:42 <ehird> one escape terminates a variadic command (like insert (I))
19:25:00 <ais523> AnMaster: 99 codepaths you can do with just 2 functions
19:25:08 <ais523> if those functions are both directly recursive and mutually recursive
19:25:22 <ais523> although you'd need to increase the context depth a bit in valgrind
19:25:23 <AnMaster> ais523, err valgrind *does* merging between 8 calls backwards
19:25:45 <ais523> AnMaster: you can choose the number of stack entries that have to match
19:25:55 <ais523> besides, 99 < 2 to the power 7
19:26:07 -!- kar8nga has joined.
19:26:38 <ais523> ehird: what does newline do in TECO, by the way?
19:26:45 <AnMaster> ais523, how would that work out... *thinks*
19:26:48 <ais523> I know that all the unprintable characters do something
19:26:49 <ehird> ais523: it's not interpreted specially, so it just keeps waiting for input
19:27:00 <ehird> to insert multiple lines
19:27:02 <AnMaster> oh you mean aaab, aaba and so on?
19:27:05 <ehird> it's just like ed, really
19:27:14 <ais523> AnMaster: yes, what else
19:27:31 <AnMaster> ais523, well right, need to work out how to figure out what to call when
19:27:32 <ais523> ehird: I think TECO's a worthy ancestor to both Emacs and vi
19:27:36 <ais523> ed was clearly inspired by it
19:27:41 <ais523> and vi descended from ed
19:27:42 <AnMaster> you would have to do some modulo tricks
19:27:48 <ais523> whereas Emacs was originally written in TECO
19:27:49 <ehird> vi was descended from ex
19:27:53 <ehird> which was descended from ed
19:28:16 <ehird> [ehird:~/Junk] % teco
19:28:18 <ehird> ?NYI Not yet implemented
19:28:23 <ehird> I am not yet implemented :(
19:28:34 <AnMaster> that implementation needs work?
19:28:44 <ehird> no, it just isn't 100% complete :P
19:29:11 <ais523> finding out what your name does in TECO used to be a common thing for people to figure out
19:29:13 * oklopol has a course in mathematica
19:29:25 <AnMaster> ais523, yes but running and checking is cheating
19:29:27 * ais523 screams receding into the distance
19:29:29 <AnMaster> you need to work it out *first*
19:29:39 <ehird> AnMaster: can you notice messages, please?
19:29:43 <ais523> AnMaster: in reply to oklopol
19:29:43 <ehird> 18:29 oklopol has a course in mathematica
19:29:51 <ehird> ais523: also you copied that from wikipedia
19:29:59 <ehird> AnMaster: ais523, wolfram prize, mathematica, hates, memory working yet?
19:30:04 <ehird> ais523: no, the TECO name thing
19:30:14 <ais523> I think I've seen it before, possibly in the jargon file
19:30:21 <AnMaster> ehird, still the reaction seems like a strange joke
19:30:33 <ehird> oh, you don't even have to use uppercase with teco
19:30:38 <ehird> it's case insensitive
19:32:01 <ais523> ok, that's crazy: it reacts to all the control codes, but doesn't distinguish lowercase/uppercase?
19:32:05 <ais523> oh, I just realised why
19:32:06 <ehird> and, of course, most ASCII does nothing since TECO had a more restrictive character set
19:32:14 <ais523> TECO was probably invented before lowercase on computers was
19:32:30 <ehird> "It is literally the case that every string of characters is a valid TECO program"
19:32:38 <ehird> Case in point: I get errors.
19:32:55 <ehird> ''Initially, if I remember correctly, EMACS was Eugene Ciccarelli's init file which made use of MIT TECO's ^R mode ("Realtime") that repainted the screen. RMS started hacking on it around '76 I think and it kind of, um, grew."
19:33:01 <ehird> Ha, rms didn't start emacs.
19:33:29 <ais523> ehird: no, I don't think so
19:33:33 <ais523> GNU Emacs was only one implementation
19:33:49 <ehird> it was originally just EMACS
19:34:00 <ehird> i was just saying that he originally forked it from someone else's init file :D
19:34:20 <ais523> there were others, I even came across a rather primitive one years ago, for DOS
19:34:20 <ais523> elisp is specific to GNU Emacs and its derivatives, though I think
19:34:35 <ehird> we're talking the 70s
19:34:40 <ehird> I don't think you understand what I am saying
19:34:41 <AnMaster> ais523, about finding out which order to call, what would be the best way? I'm thinking of some sort of depth counter combined with the number counter
19:34:58 <ehird> common knowledge: RMS started emacs. Funny anecdote: It was originally a fork of someone else's init file.
19:35:37 <ais523> AnMaster: just use a decrementing int
19:35:40 <ais523> and check its bit pattern
19:35:49 <ais523> or, you don't even need to do that
19:36:13 <ais523> insert parameters and some bottoming-out condition to taste
19:40:49 -!- KingOfKarlsruhe has quit (Remote closed the connection).
19:45:08 <AnMaster> mymacro=$(a=$(for i in {1..99};do echo -n "|cpp -P -traditional -Da$i=\"r($i)a$((i+1))\" - "; done | sed 's/|//'); echo "a1" | eval "$a" | tail -n1); echo $mymacro
19:45:17 <AnMaster> ais523, I think that is a much more promising way
19:45:23 <ehird> that's cheating, though
19:45:30 <ehird> you might as well just echo out valgrind's output
19:45:35 <AnMaster> ehird, depends on what language you declare it is in?
19:46:08 <AnMaster> it generates the macro expansion in question
19:46:18 <AnMaster> but of course, a recursive variant is another one
19:50:19 <ehird> ais523: Oh, and here's a program that done paste stuff. http://paste.lisp.org/display/76773
19:50:33 <ehird> (Tip: export LISPPASTE_USER.)
19:50:48 <ehird> And yes, those cases look like ocaml.
19:51:27 <ais523> ehird: ah, an autopaste script
19:51:38 <ais523> but wasn't quite sure, given that you mentioned a pastebin later on the line
19:51:40 <ehird> AnMaster refused to use another pastebin with one, so. :P
19:51:51 <ais523> whether you were referring to that it did pasting, or that you were pasting
19:52:12 <ehird> (oh god help I'm a teco user)
19:52:46 <ehird> wow, that's shorter than the corresponding regex
19:52:47 <AnMaster> ehird, I bet almost no one will understand the teco implication
19:53:04 <AnMaster> also... it looks quite similar to sed
19:53:43 <AnMaster> ehird, so what if you want a literal I there?
19:53:55 <ehird> $ (<ESC>) is the command terminator
19:54:05 <ehird> AnMaster: Swith$IouIt$$
19:54:16 <ehird> commands like S and I take up to the next <ESC>
19:54:18 <AnMaster> would that be same as: s/with/Iout/
19:54:29 <ehird> S and I are commands, they read along until <ESC>
19:54:41 <ehird> S(with); I(ouIt);<ENTER>
19:54:52 <ehird> AnMaster: I don't know how you put an escape in
19:54:59 <ehird> AnMaster: I don't know how you put an escape in
19:54:59 <ehird> AnMaster: I don't know how you put an escape in
19:55:20 <ehird> as soon as you hit an I it reads until <ESC>
19:55:29 <ehird> yes but I just told you
19:55:31 <ais523> AnMaster: it's a bit like Lua
19:55:36 <ais523> in that Lua starts blocks lots of different ways
19:55:38 <ehird> ais523: what no it isn't
19:55:39 <ais523> and ends them all with end
19:55:50 <ais523> TECO's the same, it starts commands with lots of different chars, but all end with <ESC>
19:56:03 <ehird> only commands that take text input
19:56:05 <AnMaster> ehird, so the $ means an escape. So when you write it in a teco script is it $ or <esc>?
19:56:13 <ais523> AnMaster: it's <esc> and echos as $
19:56:18 <ehird> D takes -5 *before* it
19:56:23 <ehird> meaning 'delete the previous 5 characters'
19:56:27 <ais523> echoing as a literal escape character would be confusing for your terminal
19:56:35 <ehird> yeah, you input as <esc>
19:56:47 <AnMaster> ehird, what if you want to edit a teco script? replacing <esc> in it?
19:56:47 <ehird> ais523: you can even do
19:56:48 <ais523> although actually, all the teco-inspired editors retained that feature in some form
19:56:58 <ehird> i think it has a stack
19:57:02 -!- MigoMipo_ has joined.
19:57:06 <ais523> ehird: TECO is not only TC
19:57:16 <ehird> it doesn't work like that
19:57:19 <ehird> you have to put it right before
19:57:26 <ais523> literal escape in emacs is C-q ESC
19:57:45 <ais523> and it appears as ^] in the file
19:57:51 <ais523> in red, rather than the usual colour, if you have colour on
19:58:27 <AnMaster> anyway I see ^?ELF^B ..... ^@\250 and such
19:58:34 <AnMaster> so I guess it does both ^ and \
19:58:48 <ais523> yes, \ is for characters with codes over 126
19:59:02 <ais523> File Edit Options Buffers Tools Help
19:59:10 <ais523> that's a literal esc at the start of the line
19:59:15 <ehird> ais523: Here's the TECO I use: http://almy.us/teco.html
19:59:26 <ehird> You need the linux version, not the unix one
19:59:38 -!- tombom has quit ("Peace and Protection 4.22.2").
19:59:42 <ais523> interesting, there isn't normally that much of a difference
19:59:45 <ehird> copy tecoc, teco, Make, and inspect into your PATH
19:59:51 <ehird> and then you can start it with 'teco'
19:59:58 <ais523> ehird: no make install script?
20:00:08 <ehird> also, teco/Make/inspect are symlinks
20:00:13 <ehird> tip: to exit, try "EX$$"
20:00:24 <AnMaster> why does the it need a special linux version?
20:00:33 <ehird> AnMaster: the UNIX is for old unixes
20:00:38 <ais523> AnMaster: many old UNIX programs needed changing when ported to Linux
20:00:46 <AnMaster> so you use linux one on macosx?
20:00:49 <ais523> yacc vs. bison is one of the most common sticking points
20:00:56 <ehird> you use the os x one on os x
20:01:04 <ehird> although don't copy over Make since HFS+ is case insensitive
20:01:09 <ehird> (use 'tecoc make')
20:01:14 <ais523> ehird: what do you use on OS9?
20:01:16 <AnMaster> ais523, err I have yacc, byacc and bison
20:01:26 <AnMaster> usage: /usr/bin/yacc [-dlrtv] [-b file_prefix] [-p symbol_prefix] filename
20:01:31 <ais523> AnMaster: yacc is still bison in yacc compatibility mode
20:01:32 <ehird> ais523: this one is so old all the filenames are INUPPERCASE.C
20:01:34 <AnMaster> $ /usr/bin/yacc.bison --version
20:01:55 <ais523> although it's possible you have a genuine old copy of yacc lying around somewhere
20:01:56 <ehird> 10-Dec-1987 version 100
20:01:56 <ehird> baseline version as of Fall Decus Symposium, Anaheim
20:02:05 <ais523> ehird: are they really C++? that would be so great if they disguised the extension like that
20:02:05 <ehird> it's a modern port to portable C, and yet it's still ancient
20:02:21 <AnMaster> ais523, dev-util/yacc is from http://dinosaur.compilertools.net/#yacc installed as a dependency of something
20:02:42 <ais523> AnMaster: dinosaur.compilertools sounds like a good description for original yacc
20:02:59 <AnMaster> HOMEPAGE="http://dinosaur.compilertools.net/#yacc"
20:02:59 <AnMaster> SRC_URI="ftp://metalab.unc.edu/pub/Linux/devel/compiler-tools/${P}.tar.Z"
20:03:00 <ais523> C-INTERCAL build used to fail on SunOS because it needed directives to tell lex to increase the size of its internal buffers
20:03:30 <ais523> all I was saying was, on most linux systems with a program called yacc, it's a wrapper around bison
20:03:36 <ais523> yours just happens to be different
20:03:38 <AnMaster> ${P} is replaced with yacc-1.9.1
20:03:55 <AnMaster> ais523, yeah that wrapper is /usr/bin/yacc.bison
20:04:09 <ais523> GNU bison generates parsers for LALR(1) grammars.
20:04:11 <AnMaster> <AnMaster> ais523, err I have yacc, byacc and bison
20:04:31 <AnMaster> what were you replying to then?
20:04:34 <ais523> $ file /etc/alternatives/yacc
20:04:35 <ehird> can you upgrade your freaking brain firmware, it runs on DOS and is unable to multithread conversations
20:04:35 <ais523> /etc/alternatives/yacc: symbolic link to `/usr/bin/bison.yacc'
20:04:41 <ais523> /usr/bin/yacc: symbolic link to `/etc/alternatives/yacc'
20:04:55 <ehird> 19:01 ais523: ehird: what do you use on OS9?
20:04:55 <ehird> 19:01 AnMaster: ais523, err I have yacc, byacc and bison
20:04:57 <ehird> 19:01 ehird: you don't
20:05:00 <ehird> as I was talking about teco at the time
20:05:03 <ehird> what the heck do you think?
20:05:04 <AnMaster> <ais523> ehird: what do you use on OS9? <ehird> you don't
20:05:20 <ais523> well, yacc seems to be in debian alternatives
20:05:25 <ehird> There are two types of arguments: numeric arguments, and text arguments. Numeric arguments come before the command; text arguments come after the command.
20:05:29 <ais523> which implies strongly to me that debian have a non-bison yacc in the repos somewhere
20:06:00 <ehird> AnMaster: Alternatively (and easier to read), if the command is prefixed by an "@" character, then the first character after the command is the delimiter, and the string will continue until the next instance of that character.
20:06:16 <ais523> AnMaster: ah, that appears to be BSD yacc
20:06:24 * ais523 just did apt-cache search yacc | grep yacc
20:06:29 <AnMaster> http://dickey.his.com/byacc/byacc.html
20:06:34 * ais523 makes it case-insensitive just in case
20:07:03 <AnMaster> dev-util/btyacc - http://www.siber.com/btyacc - Backtracking YACC - modified from Berkeley YACC
20:07:06 <ehird> @eb"hello.c" <- practically modern.
20:07:12 <ehird> AnMaster: what do you mean wth?
20:07:15 <ehird> it's yacc that can backtrack
20:07:54 <ehird> First, you can use them as variables: each Q-register stores a string and an integer. Second, any string stored in a Q-register can be used as a subroutine; in fact, that's the only way to create a subroutine.
20:07:57 <ehird> perl, is that you?
20:07:59 <ais523> ehird: actually, original yacc never backtracks
20:08:12 <ehird> 'yacc that can backtrack' = modified yacc
20:08:15 <ais523> it can handle general grammars, but it does that a different way
20:08:25 <AnMaster> well why would you want a backtracking yacc...
20:08:29 <ais523> ehird: yes, I noticed, your sentence was ambiguous
20:08:35 <ais523> AnMaster: because you have a nondeterministic grammar to process?
20:08:54 <AnMaster> ais523, ok. Like intercal right?
20:09:06 <AnMaster> ais523, any other such languages?
20:09:19 <ais523> regular INTERCAL can just about be handled by regular yacc, but only due to a restriction in the INTERCAL-72 standard specifically to make that possible
20:09:30 <ais523> and C++ and Perl both have similar parsing problems
20:10:04 <ais523> AnMaster: I found a really diabolical line of C++ in the FQA, let me dig it up
20:10:06 <ehird> AnMaster: parsing C++ is turing complete
20:10:32 <ais523> ehird: no, that proves compilation is turing complete, not parsing
20:10:41 <ehird> due to typename stuff
20:10:42 <ais523> as it happens, though, the compilation can affect the parsing, making it turing complete too
20:10:47 <ehird> a template can make something a typename that wasn't
20:10:50 <ais523> that parsing is TC, but you didn't explain the reason
20:10:52 <ehird> so it IS due to templates
20:11:04 <ais523> int x = confusing<sizeof(x)>::q < 3 > (2);
20:11:19 <ais523> that can actually parse differently depending on the return of sizeof, with appropriate definitions
20:11:27 <AnMaster> err, iirc you have to use "typename" in front in ambiguous situations
20:11:44 <ais523> see http://yosefk.com/c++fqa/web-vs-c++.html for the full program
20:12:18 <ehird> cool, TECO has <tab> as an insertion command
20:12:21 <ehird> that's like I but puts a tab in front
20:12:27 <ehird> *Iint main(void) {$$
20:12:37 <ehird> * printf("Hello, world!\n");
20:13:07 <ais523> ehird: does it autoindent?
20:13:17 -!- MigoMipo has quit (Connection timed out).
20:13:23 <ais523> it's TC, shouldn't be too hard to implement
20:14:05 <ehird> How to write a TECO hello world, with TECO:
20:14:07 <ehird> % tecoc make hello.tec
20:14:30 <ehird> ais523: teco-c is the implementation
20:14:35 <ehird> teco and inspect are linked to it
20:14:39 <ehird> but HFS+ is case insensitive
20:14:42 <ehird> so I can't use that symlink
20:14:48 <ehird> (because of, y'know, make(1))
20:14:52 <ehird> so I have to invoke the implementation directly.
20:14:56 <ais523> ehird: HFS+ is optionally case-sensitive
20:14:59 <ais523> I think it's configurable
20:15:03 <ehird> yes, but that breaks things and I'd have to reformat
20:15:09 <ehird> plus I like it this way
20:15:13 <ais523> no idea how much chaos it would caused if you changed the configuration param while there were files on it
20:15:43 <ais523> ehird: I like the description of the mac os x version of teco
20:15:50 <ais523> it looks like it was aimed at you in particular
20:16:21 <ehird> % tecoc make 42hello.tec
20:16:22 <ehird> *42<I^AHello, world!
20:16:32 <ehird> Makes a teco program that prints "Hello, world!\n". 42 times.
20:16:49 <AnMaster> ehird, teco quine without opening the script to read from?
20:17:23 -!- MigoMipo_ has changed nick to MigoMipo.
20:17:39 <ehird> so, to explain my 42 program:
20:17:43 <ehird> btw, ^A is a literal ^A
20:17:49 <ehird> ^Afoo^A outputs foo
20:17:57 <ehird> number<...> executes ... number times
20:18:04 <ehird> and, of course, I inserts up to escape
20:18:18 <ehird> 42 times { insert "^AHello, world!\n^A" }; exit
20:19:03 <ehird> it's a pretty good esolang, actually
20:19:08 <ehird> the concept of a text editor is a fun one to base an esolang around
20:19:40 <ehird> Mackerel Economics in Prison Leads to Appreciation for Oily Fillets
20:19:42 <ehird> http://online.wsj.com/article/SB122290720439096481.html
20:20:55 <ehird> if you start teco after editing a file and quitting?
20:20:58 <ehird> it starts editing it again
20:21:01 <ehird> I think it sees the backup file
20:21:10 <ehird> % cat teco9054.tmp
20:24:31 <ehird> AnMaster: ais523: ping
20:26:17 <ais523> if you're going to do that old joke, at least get it right...
20:26:27 <AnMaster> ais523, I wasn't following any standard
20:26:41 <ehird> April fool's day prank on programmer: Mess up internet connection configuration. Remove GUI configurators for it. Symlink all editors to teco.
20:27:28 <ehird> http://www.df.lth.se/~lft/vim/hanoi
20:27:35 <ehird> http://www.df.lth.se/~lft/vim/mandelbrot
20:27:38 <ais523> ehird: what, you'd have to uninstall bash too
20:27:52 <ais523> besides, my GUI configurator is also the program that does the actual connection
20:27:54 <ehird> ais523: Eh, just remove cat and echo.
20:28:12 <ais523> ehird: echo's a shell builtin, and bash has cat as a builtin too but with different syntax
20:28:12 <ehird> cp file /dev/stdout
20:28:21 <ehird> ais523: Make teco their login shell.
20:28:36 <ehird> AnMaster: it's the guy who wrote life.b
20:28:37 <ais523> ehird: I'd go into single user mode from the bootloader if you tried that
20:28:51 <ais523> and also wonder how you got access to my computer
20:28:56 <ehird> ais523: yes, april fool's jokes are reversible if you're a sourpuss, zomg, how revolutionary
20:29:25 <ehird> Ihello, world!$0T$$
20:29:38 <ais523> that * was a correction star
20:29:43 <ais523> but I was trying to delete an excess space
20:29:43 <ehird> for the extra space
20:29:50 <ais523> so nothing else showed up
20:30:36 <AnMaster> <ehird> April fool's day prank on programmer: Mess up internet connection configuration. Remove GUI configurators for it. Symlink all editors to teco. <-- what gui configurator?
20:30:55 <ehird> God, you people suck.
20:31:21 <ais523> ehird: seriously, though, given that for internet connection my configurator is the same program that actually handles the connection
20:31:38 <ais523> then removing the configurator would mean that restoring the connection file by hand wouldn't help me
20:31:40 <ehird> AnMaster: yes, ha ha, you are 1337 and do not have any programs that let you graphically configure your internet
20:31:44 <ehird> you are such an awesome linux user
20:31:57 <ais523> well, knetworkmanager atm
20:32:04 <AnMaster> ehird, I just use config_eth0=( "dhcp" )
20:32:16 -!- Hiato has quit ("Leaving.").
20:32:17 <ais523> nm-applet's broken for the specific sort of wireless the university has
20:32:30 <ais523> and it's already been fixed in trunk, but for some reason they haven't sent out an update with the fixed version
20:32:37 <ais523> so I use knetworkmanager even on gnome atm
20:32:43 <AnMaster> ehird, on my freebsd server it is more complex, it has a block of 8 statical IPs
20:33:24 <AnMaster> anyway 1) using a GUI configurator on a server in a datacenter is just silly
20:33:38 <ais523> AnMaster: you have a /29?
20:33:39 <ehird> don't care, don't care, don't care
20:33:55 <AnMaster> ais523, err probably, too lazy to calculate
20:34:38 <AnMaster> what is it with ehird when he realises how silly his comment was...
20:34:51 <AnMaster> I mean, I have seen this "don't care" pattern before
20:35:16 <AnMaster> ais523, surely you agree not using any GUI is sane on a remote server that you only have ssh access to?
20:35:21 <ehird> no, it's just you made a shitty joke in response, i responded to it pointing out how shitty and old it was, then you went and blabbed on about your network which i honestly couldn't care less about if I possibly tried
20:35:31 <AnMaster> well I could get kvm access... $20 / 12 hours
20:35:42 <oklopol> ehird: but would you try, for me?
20:36:03 <AnMaster> .....................................
20:36:20 <ehird> congrats, you found the . key
20:36:26 <ehird> by the way, ellipses have 3 .s
20:36:57 <oklopol> only if you have a really small ellipse and a crappy ellipse algo
20:37:34 <AnMaster> oklopol, and using eclipse to write it
20:37:45 <ehird> "Perl is written in C, so when the parser has figured out what you want to do, you're executing compiled code as fast as any C program. "
20:38:06 <ais523> and did they have any clue how Perl works?
20:38:07 <ehird> "samizdat" on perlmonks.org
20:38:26 <ais523> Perl's implemented internally as a bytecode compiler
20:38:58 <ehird> now where is that dd.sh page
20:40:41 <AnMaster> http://select.intercal.org.uk/dd.sh/ "dd/sh: The One True Programming Language"
20:42:01 <ehird> I wonder if you can do 'stty raw' with /dev of some sort
20:43:59 <AnMaster> <ehird> Mackerel Economics in Prison Leads to Appreciation for Oily Fillets <ehird> http://online.wsj.com/article/SB122290720439096481.html <ehird> (injoke) <-- yes obviously, so what is the context. The joke makes no sense to me
20:44:10 <ais523> AnMaster: it wouldn't, it's an injoke
20:44:11 <ehird> if I told you it would not be an injoke.
20:44:20 <ehird> therefore I won't tell you
20:44:53 <ais523> AnMaster: you seem to be missing the fundamental nature of injokes, look it up
20:44:55 <ehird> hmm, `stty raw` uses ioctl, doesn't it?
20:45:20 <AnMaster> ais523, indeed. But I assumed ehird got the joke since he pasted it
20:45:49 <ais523> and I don't facepalm very often
20:46:03 <AnMaster> or was be commenting on the fact that it was an injoke he didn't understand?
20:46:28 <ehird> ais523: i'd give up round about now
20:47:36 -!- Slereah_ has joined.
20:47:39 <AnMaster> well, I fail to see why you wouldn't want to *explain* a injoke that you do understand. Since you pasted it in the public channel
20:48:06 <ais523> AnMaster: if it were explained, it wouldn't be an injoke
20:48:19 <AnMaster> and why would that be a huge loss?
20:49:06 <AnMaster> now you are just being unreasonable...
20:53:01 * ehird is writing a TECO clone in dd/sh
20:53:10 <ehird> if you run it under bash, you can use /dev/tcp to use it as a kind of netcat :D
20:53:26 <ehird> you can't use dd with /dev/tcp presumably
20:53:28 <ais523> how do you specify the port number using /dev/tcp?
20:53:33 <ehird> /dev/tcp/host/port
20:54:00 <ehird> anyway, it's not quite dd/sh
20:54:00 <ehird> save_state=$(stty -g)
20:54:02 <ehird> reset_tty() { stty "$save_state" }
20:54:12 <ehird> you could run it without them, just need to hit newline a lot
20:54:18 <ehird> and you'd see your input twice
20:55:10 <fizzie> If you just want dd output into /dev/tcp, you can obviously just omit the of= and > it in.
20:55:27 <ehird> is of=x always equiv. to >x?
20:55:39 <fizzie> Well, not if x is /dev/tcp.
20:55:55 <ais523> it could be pretty different if x were /dev/tty, too
20:56:41 <ehird> agh you have to assign it first
20:56:46 <ehird> exec 3<>/dev/tcp/...
20:56:50 <ehird> instead of using it as a file multi times
20:57:03 -!- Slereah has quit (Read error: 110 (Connection timed out)).
20:59:53 <ais523> to be precise, it's the language created when you use sh and the only other program it's allowed to invoke is dd
21:00:08 <asiekierk> ...The first person to make a miniature linux distro for dd/sh wins a copy of AsieCrypt, the only encrypter of images that can turn completely logical pictures into random gibberish and STILL decode it!
21:00:18 <ais523> and, I suppose, itself recursively, but you never need to do that
21:00:22 <ehird> for one, that's not even possible
21:00:27 <ehird> for two, it's uninteresting
21:00:33 <ehird> for three, the prize is crap.
21:00:44 <ais523> ehird: I suspect Debian webinstall plus dd would be enough to run arbitrary dd/sh programs
21:00:46 <asiekierk> for one, there are many Linux-on-a-floppy distros
21:00:53 <ehird> ais523: he meant a linux distro with just kernel+dd/sh
21:00:59 <ehird> which is patently useless
21:01:00 <ais523> for what it's worth, you could even do that with Debian webinstall without the package manager, there's hardly anything in that
21:01:16 <asiekierk> for two, yes it is possible (AsieCrypt), it's just shifted colors and good ole VideoCrypt
21:01:19 <ais523> ehird: I wouldn't call it completely useless, although admittedly not particularly useful
21:01:23 <asiekierk> for three, the prize is crap, I admit
21:03:46 <comex> I think dd/sh would be turing complete pretty easily considering sh's capabilities
21:03:53 <ehird> sh is turing complete
21:03:58 <ehird> but you need dd for non-trivial IO
21:04:03 <asiekierk> and there is a turing machine for dd/sh
21:04:04 <ehird> brainfuck style IO can be done with just sh
21:04:14 <ehird> so you can trivially write brainfuck in sh
21:04:19 <ehird> but for file IO, etc, you need dd
21:04:25 <ehird> you couldn't do substrings with sh
21:04:30 <ehird> ok, you do need dd for IO then
21:04:47 <comex> see what I did there
21:04:50 <ehird> asiekierk: that's what i just SAID.
21:05:06 <comex> you could do substrings with sh
21:07:06 <comex> where is a reference for what standard sh allows?
21:07:27 <ehird> gives you a full list
21:08:16 <ehird> heh, that would actually remove the need for my stty stuff
21:08:41 <ais523> comex: see if you can find a copy of POSIX floating aroung
21:08:54 <ais523> IIRC, man for most shells will explain the differences from standard sh in a portability section
21:09:17 <ais523> so you can deduce the sh standard from that
21:11:29 <comex> I'm not sure it's possible in just sh to do substrings
21:11:33 <comex> ais523: do you know a way?
21:12:17 <ehird> lol wut, "echo -n foo" is echoing "-n foo\n"
21:14:46 <ehird> http://i.gizmodo.com/5167465/get-200-itunes-store-vouchers-for-260
21:14:51 <ehird> that is pretty cool.
21:15:17 <ehird> now... where's the code :D
21:16:53 -!- BeholdMyGlory_ has joined.
21:17:30 -!- BeholdMyGlory has quit (Nick collision from services.).
21:17:35 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory.
21:17:45 <ehird> * A Pentium emulator (just for the fun of it - with that you don't actually need the perl5 interpreter as you can install Linux under the emulator and ruin perl from it; of course, that would also run sh and dd, therefore allowing any level of emulation).
21:20:25 <asiekierk> * To include only dd and sh, I would need to change BusyBox in some way
21:20:43 <asiekierk> * And that makes it completely worthless
21:20:52 <ais523> asiekierk: BusyBox is entirely configurable as-is
21:21:02 <asiekierk> as in, I can disable certain commands
21:21:04 <ais523> I believe it can be configured to only contain dd and sh
21:21:07 <asiekierk> or better, remove them at compile-time?
21:21:16 <asiekierk> since that would be fairly useless
21:21:19 <ais523> I know, I've done custom busybox builds before
21:21:25 <asiekierk> You need SOME commands to maintain it all
21:21:31 <ehird> pseudoteco.sh: line 26: syntax error: unexpected end of file
21:21:55 <ais523> asiekierk: cd's a shell builtin
21:22:02 <Deewiant> all you need is dd and /proc and you can do anything
21:22:16 <ais523> Deewiant: is it actually possible to change the current directory of a process by writing to its /proc?
21:22:26 <ehird> change its in-memory binary to cd next
21:22:27 <ais523> I would so love it if it were, although it seems unlikely
21:22:31 <asiekierk> BusyBox has way too much commands by default
21:22:41 <ais523> asiekierk: you are missing the point of busybox, then
21:22:45 <ehird> really, dd is unneeded
21:23:05 <ehird> kitten <offset> <amount>
21:23:21 <ehird> kitten <offset> <amount>
21:23:26 <ehird> skips offset bytes of stdin
21:23:30 <ais523> is kitten an version of cat that only does part of the file?
21:23:31 <ehird> then copies amount bytes from stdin to stdout
21:23:40 <ehird> ais523: pretty much, but offset=0 and amount=-1 will copy all
21:23:40 <asiekierk> ais523: You know, I just want a distro with dd, sh, and some misc. basic commands
21:23:46 <ais523> and is it standard, or obscure, or did you just invent the name?
21:23:52 <ais523> asiekierk: try debian webinstall
21:23:57 <AnMaster> indeed. The point of busybox is the point of having a statically linked rescue shell around... Hopefully you will never need it
21:24:04 <ehird> basically, the rest of dd is unneeded for 100% io facilities
21:24:08 <ais523> it contains basically nothing but enough tools to make an internet connection, and a package manager
21:24:11 <ehird> since if/of can be done with pipes, and soforth
21:24:16 <ais523> then use the package manager to installdd
21:24:47 <ais523> actually, it may have dd already for help in creating swapfiles and that sort of thing
21:24:51 <AnMaster> ais523, hm? doesn't busybox have dd?
21:24:51 <ehird> is there a syntax error there?
21:24:57 <ehird> i think it's continuing until EOF
21:25:02 <ais523> AnMaster: Debian webinstall != busybox
21:25:04 <asiekierk> AnMaster: busybox has dd, sh, and a 1000 other commands
21:25:14 <ais523> busybox is for the debian boot floppy, rather than the webinstall
21:25:39 <ais523> but nowadays is mostly used in embedded systems despite being originally intended for debian-on-a-floppy
21:26:34 <AnMaster> ais523, also what does it have to do with debian? afaik it is a separate project
21:27:15 <ais523> but historically, busybox was created for debian
21:27:29 <ais523> it just found more uses in wider situations than that, that's one of the joys of open source
21:27:48 <AnMaster> ais523, for me it is just something that I hope I will never need...
21:27:57 <ehird> "In one infamous software error, a misplaced minus sign resulted in a fighter jet's control system flipping the aircraft on its back whenever it crossed the equator. In one infamous software error, a misplaced minus sign resulted in a fighter jet's control system flipping the aircraft on its back whenever it crossed the equator."
21:28:03 <ais523> what's the UNIX command to remove blank lines from a file, again
21:28:14 <ehird> ais523: well, with dd, that should be possible.
21:28:25 <ais523> yes, but I mean the normal way
21:28:31 <AnMaster> ais523, hm? sed '/^$/d' should work
21:28:34 <ais523> bash: th--: command not found
21:28:43 <ais523> AnMaster: yes it does, I thought there was a standard one though
21:28:53 <AnMaster> ais523, in that case I didn't know about it
21:29:32 <AnMaster> Deewiant, wait no it wouldn't in the general case
21:30:11 <ais523> well, busybox contains 298 commands according to its man page, then
21:30:44 <ais523> Deewiant: fails on a Windows-format text file with \r\n newlines
21:30:54 <ais523> yes, I know me and AnMaster have just made contradictory demands on you
21:31:15 <ais523> it probably wouldn't on Windows, but would on UNIX
21:31:16 <AnMaster> does the sed command work on \r\n?
21:31:25 <ais523> again probably not on unix
21:31:33 <jix_> that's what i do if i want to remove empty lines
21:31:44 <AnMaster> anyway. \r\n isn't an empty line
21:31:51 <ehird> I have a literal ^M in my file :D
21:31:58 <ais523> AnMaster: it certainly can be, it depends on the file format
21:32:02 <ehird> ^ way to do that without a newlnie?
21:32:13 <ais523> on some operating systems, "000" can be an empty line
21:32:25 <ais523> because IIRC there's an operating system that stored lines of text files length-prefixed
21:32:29 <ais523> rather than delimited with anything
21:32:50 <Deewiant> I believe "there's" is in the wrong tense for said system
21:33:13 <ais523> well, abbreviation for was
21:33:32 <ais523> ehird: was it you who kept talking about how length-prefixed was better for strings than null-terminated?
21:33:45 <ehird> ais523: lines are not the fundamental unit of text
21:33:47 <ais523> if so, would you say the same argument holds for filesystems?
21:33:50 <ehird> so it doesn't make sense
21:34:00 <ais523> actually, I agree too I think
21:34:03 <ehird> ais523: because you'd have to have a bignum file length.
21:42:36 -!- neldoreth has quit (Remote closed the connection).
21:42:41 -!- neldoreth has joined.
21:44:10 <Deewiant> neldoreth was asking about Befunge earlier today
21:44:11 <ais523> invented Underload, Thutu, BackFlip, and a few other esolangs
21:44:25 <ais523> also maintain C-INTERCAL
21:44:26 <Deewiant> Coding something for school, if I understood correctly the few lines I read
21:44:50 <neldoreth> we learned about c-intercal in the lecture, please
21:45:14 <ais523> wow, it's rare for lectures to mention intercal
21:45:16 <neldoreth> yeah i had a little assignment to do in a esoteric language
21:45:38 <neldoreth> i could have chosen between it and brainfuck, befunge or whitespace
21:45:40 <ais523> if it's any help, run your intercal programs with -byO and use the e command
21:45:51 <ais523> that'll tell you what the expressions you write actually do
21:45:58 <ais523> it's amazingly useful if you actually have to use the things
21:46:41 * ais523 notices that most other languages don't need a command to explain what an expression does, apart from C which has cdecl
21:46:51 <ais523> although that's data types not expressions
21:46:54 <neldoreth> thanks for the advice - maybe i will try something out in intercal - but ive chosen befunge for my little program - maybe i will try more when there is more time for it
21:47:04 <Deewiant> Whitespace is probably the easiest of those languages to use
21:47:08 <ais523> intercal's probably the hardest there
21:47:14 <ais523> befunge is a good one to learn
21:47:18 <Deewiant> Just don't write it /in/ Whitespace
21:47:23 <FireFly> [21:45:19] <neldoreth> yeah i had a little assignment to do in a esoteric language
21:47:33 <ais523> you can learn a lot of programming from befunge, actually
21:47:56 <ais523> Deewiant: RPN and stack-based representations, for one thing
21:48:07 <neldoreth> http://pastebin.com/m1aa54e4e this is what ive done, nothing special and it nearly can do nothing (cause i honestly had no idea what to write)
21:48:09 <ais523> properly understanding how loops work, for another
21:48:22 <Deewiant> Yeah, I learned that working with a stack when you can only access the top two elements sucks
21:48:27 <ais523> neldoreth: that's pretty
21:49:16 <neldoreth> :D but nothing more, sensless in every aspect :D
21:49:21 <ais523> so, that program starts out by inputting a character and comparing it to capital A?
21:49:59 <ais523> for some reason I did 9*9-4*4 not 9*9+4*4
21:50:09 <ais523> and upper and lowercase A differ by 32, obviously
21:50:28 <Deewiant> neldoreth: You still don't handle EOF, I see
21:50:46 <neldoreth> i am just quitting with q now, if you type something different you can retype
21:51:03 <ais523> well, a loop with an exit condition's always nice
21:51:06 <Deewiant> If EOF is given that's an infinite loop you've got there
21:51:15 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
21:51:27 <ais523> what does EOF do in befunge-93?
21:51:41 <ais523> it's a reflection in funge-98, but befunge-93 wasn't as picky IIRC
21:51:48 <neldoreth> i dont think that anyone will run this program with a given file via stdin < :] - i dont think anyone will run this program anyway :D
21:51:58 <Deewiant> ais523: Seems undefined, actually
21:52:09 <ais523> IIRC, many programs assumed it returned -1
21:52:13 <ais523> so that's probably what the reference interp did
21:52:14 <Deewiant> neldoreth: I can type ^D (^Z on DOS/Windows)
21:52:28 <AnMaster> <ais523> AnMaster: it certainly can be, it depends on the file format <-- yes, some are broken
21:52:38 <AnMaster> grep and sed operate on *text* files
21:52:45 <AnMaster> no one said they made sense for binary files
21:53:00 <AnMaster> <ehird> ^ way to do that without a newlnie? <-- depends. If bash yes
21:53:30 <ais523> neldoreth: anyway, not even befunge, obfuscated befunge
21:53:49 <ais523> I think fungot can run funge one-liners, but only fizzie can submit them because it's written in funge itself and the programs might escape
21:53:50 <fungot> ais523: i'm not stupid, just not the only barrier, if it had arithmetic, it might be -1 too.
21:54:20 <Deewiant> Why doesn't it use = or something for them?
21:54:31 <neldoreth> yeah we crossed obfuscated code too like the raytracer you can find on ioccc
21:54:46 <ais523> you have a great teacher
21:55:12 <AnMaster> <ais523> if so, would you say the same argument holds for filesystems? <-- file systems *does* store length separately. Using in-band data for it would be very silly.
21:55:14 <Deewiant> Befunge is no fun unless it's obfuscated or in the shape of something
21:55:16 -!- kar8nga has quit (Remote closed the connection).
21:55:42 <ais523> AnMaster: I know, I was talking about using length-prefixed lines as a text file format, some filesystems used to do that
21:56:04 <AnMaster> * ais523 notices that most other languages don't need a command to explain what an expression does, apart from C which has cdecl <-- C++ would need it...
21:56:15 <Deewiant> The fun parts are, anyway. ;-)
21:56:22 <AnMaster> <Deewiant> Whitespace is probably the easiest of those languages to use <-- only with good syntax highlighting
21:56:26 <ais523> Deewiant: it looks quite readable for a Befunge torture-test
21:56:40 <ais523> AnMaster: you write Whitespace in a wimpmode first, then compile
21:56:46 <fungot> Available: agora alice darwin discworld europarl ff7 fisher ic irc* lovecraft pa speeches ss wp
21:57:00 <ais523> neldoreth: by the way, are you submitting your assignment electronically, or printed?
21:57:18 <ais523> with Whitespace, that would have been fun
21:57:45 <AnMaster> <Deewiant> Yeah, I learned that working with a stack when you can only access the top two elements sucks <-- variables. You have sizeof(fungecell)*sizeof(fungecell) - program size of them.
21:57:55 <Deewiant> AnMaster: That's not working with a stack now is it.
21:58:22 <ais523> actually, it doesn't suck if you can do things like dip combinators, but befunge-93 is sadly lacking in those
21:58:37 <ais523> in befunge-98, you can use the stack stack to do something similar but it's a bit unwieldy
21:58:53 <ais523> Deewiant: "run this code on the current stack minus its top element, then put the top element back again"
21:58:58 <AnMaster> <ais523> what does EOF do in befunge-93? <Deewiant> Same as -98, no? <-- iirc undef, but I have seen push -1 as one variant...
21:58:59 <Deewiant> All of this is assuming you have access to something other than the top two elements of a stack. :-P
21:59:03 <ais523> dip is a~*^ in Underload
21:59:10 <ais523> which only has access to the top two elements
21:59:12 <Deewiant> AnMaster: Do try and read a few lines ahead before responding.
21:59:19 -!- atrapado has joined.
21:59:35 <ais523> but can use dip tricks to get more
21:59:36 * AnMaster catch up on what was said while he were writing
21:59:41 <Deewiant> ais523: dip implies that you can access more than the top two.
22:00:01 <ais523> ^ul (a)(b)(c)(SS)a~*^S
22:00:02 <Deewiant> Yes it does, as it is in itself a mechanism to access more than the top two.
22:00:14 <ais523> ^ul (a)(b)(c)(SS)~a~*^S
22:00:21 <ais523> what am I doing wrong?
22:00:30 <ais523> ^ul (a)(b)(c)(SS)~a*^S
22:00:45 <ais523> dip is actually ~a*^ in Underload
22:00:59 <AnMaster> <ais523> AnMaster: you write Whitespace in a wimpmode first, then compile <-- oh?
22:01:25 -!- olsner has joined.
22:01:27 <ais523> AnMaster: the whitespace wimpmode in question would presumably list each whitespace /command/ as a separate visible printable character
22:01:29 <Deewiant> AnMaster: E.g. http://yagni.com/whitespace/index.html
22:01:34 <ais523> and compilation is then trivial
22:01:39 <AnMaster> <Deewiant> AnMaster: That's not working with a stack now is it. <-- true
22:01:46 <Deewiant> Or http://www.burghard.info/Code/Whitespace/index.html
22:02:50 <ais523> Deewiant: any way, my point is that dip in Underload can be implemented despite no ability to access stack elements beyond the top two
22:02:59 <ais523> in only four characters, in fact!
22:03:22 <AnMaster> ais523, that is because you can expand the elements
22:03:22 <Deewiant> ais523: But where is the top element stored while the code is being run?
22:03:35 <ais523> Deewiant: in the program
22:03:44 <ais523> depending on how you think about it
22:03:46 <AnMaster> ais523, you have more than a plain number on your stack
22:03:59 <Deewiant> ais523: So there's an alternate storage location beyond the stack.
22:04:01 <ais523> now, you could do something similar in bignum Befunge if you had a mingle operator
22:04:19 <ais523> Deewiant: there is in Funge too, it's the IP delta
22:04:19 <neldoreth> and you guys are programing in esoteric languages just for fun?
22:04:27 <AnMaster> so. Befunge is like C. Pointer or Integer? No way to tell. Underload is managed. Because you can see data type
22:04:31 <ais523> why would anyone program in an esolang for any other reason?
22:04:45 <Deewiant> ais523: It can only store four values without x
22:04:49 <AnMaster> ais523, well duh that is easy...
22:04:53 <neldoreth> because he has to, like i had to - but it was fun
22:04:59 <FireFly> Well, esolangs do have their bright sides
22:04:59 <AnMaster> ais523, for the enterprise solutions that exist
22:05:15 <Deewiant> neldoreth: Befunge is fun, other esolangs not so much, in my experience :-P
22:05:16 <FireFly> It's way easier to learn BF by heart rather than learning the whole Java class library :D
22:05:25 <AnMaster> then we shall take the corporate world with storm
22:05:31 <ais523> AnMaster: if there's ever another OMGWTF competition, I'll enter it trying to make out that INTERCAL is an enterprise langauge
22:05:41 <Deewiant> FireFly: But on the other hand, learning the whole Java class library implies you can actually, you know, do things.
22:05:45 <ais523> using INTERCAL will probably conflict with the requirements, but in the OMGWTF that doesn't actually matter
22:05:55 <ais523> AnMaster: the worsethanfailure Olympiad of Misguided Geeks
22:06:03 <ais523> although it's back to being called dailywtf.com again now
22:06:05 <neldoreth> Deewiant: yeah, i think whitespace/brainfuck are just painful to write
22:06:08 <AnMaster> ais523, ah... got a link to previous ones?
22:06:15 <ais523> there was only one previous one, let me try to find it
22:06:22 <Deewiant> neldoreth: Whitespace is okay if you use an assembler
22:06:29 <Deewiant> neldoreth: But it's not particularly /fun/ IMO
22:06:42 <Deewiant> Befunge, for some strange reason, I actually do find fun
22:06:50 <ais523> http://omg.worsethanfailure.com/
22:07:00 <AnMaster> though I prefer writing *interpreters* for esolangs
22:07:08 <Deewiant> Of course that can still be offset by unsavoury tasks
22:07:31 <AnMaster> neldoreth, writing an optimising brainfuck -> C compiler is quite interesting
22:07:39 <AnMaster> much more than writing *in* brainfuck
22:07:49 <ais523> the OMGWTF was all about writing programs that looked like they were generated via a bad development process
22:07:55 <Deewiant> I'm not that interested in writing interpreters/compilers for uninteresting esolangs
22:07:58 <ais523> although it turned into a contest for ridiculous programs, more than anything else
22:08:08 <neldoreth> hm someone gave me a link to the befunge irc bot now, are there some additional bigger projects/programs in these languages? (so more or less useful ones)
22:08:21 <Deewiant> DOBELA is one that I've been thinking of implementing, don't really have much time now
22:08:25 <ais523> the specification of the contest was "implement a clone of Windows Calculator, using one of these two provided skeleton GUIs written in C"
22:08:36 <Deewiant> neldoreth: Mycology is the biggest Funge program, I think
22:08:37 <ais523> it was a trivial task, the competition was all about how badly you could mess it up
22:09:00 <Deewiant> neldoreth: http://iki.fi/deewiant/befunge/mycology.html
22:09:04 <AnMaster> ais523, ah I remember reading about that contest being announced...
22:09:51 <Deewiant> neldoreth: If you find a bug, please report it ;-)
22:10:04 <AnMaster> neldoreth, cfunge does include some simpler example programs in the tarball. And some weird test programs
22:10:14 <AnMaster> half of which only make sense for cfunge
22:10:33 <AnMaster> Deewiant, not likely unless he write his own interpreter
22:10:33 <ais523> AnMaster: why? because they test things only cfunge gets wrong? because they test cfunge-specific features?
22:10:35 <Deewiant> neldoreth: http://www.rcfunge98.com/ has some examples and links
22:10:56 <ais523> it sort of has the opposite philosophy to Mycology
22:10:58 <AnMaster> ais523, well some of them test undef behaviour that I want to behave in a specific way
22:11:19 <AnMaster> ais523, some are about funge109
22:11:26 -!- jix_ has quit ("...").
22:11:36 <AnMaster> ais523, and a few are just not in mycology but should be
22:11:46 <ais523> neldoreth: another good Funge link is http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/
22:11:51 <ais523> which is one of the longer domain names on the Internet
22:11:56 <AnMaster> concurrent-issues.b98 iterate-iterate2.b109 iterate-zero.b98 perl.b98 split-in-iterate.b98 text-output.b98 wrap.b98
22:11:56 <AnMaster> iterate-fetchchar.b98 iterate-jump.b109 jumpwrap.b98 refc-invalid-deref.b98 sysexec.b98 turt.b98
22:11:56 <AnMaster> iterate-iterate.b109 iterate-space.b109 multi-file.b98 sigfpe.b98 sysinfo-multi-stack-sizes.b98 turt2.b98
22:12:11 <AnMaster> ais523, a few of them were crash bugs found with fuzz testing
22:12:19 <AnMaster> like the concurrent-iussues one
22:12:52 <AnMaster> ais523, I know that ccbi were affected by a few of them
22:12:52 <ais523> neldoreth: Befunge-93 or Befunge-98, by the way?
22:12:59 <AnMaster> like the refc-invalid-deref.b98 one
22:13:08 <ais523> AnMaster: "CCBI was", unless CCBI has somehow managed to become plural
22:13:22 <AnMaster> ais523, well I have two copies of CCBI here
22:13:29 <neldoreth> ais523: first thanks for the links, will check them out - was not specified, just "befunge"
22:13:37 <ais523> "If CCBI were affected by them" is correct but hardly seen nowadays
22:13:48 <ais523> neldoreth: write a program that works differently in the two, then
22:14:12 <ais523> a hint: double quote space space double quote pushes two entries on the stack in Befunge-93, but only one in Befunge-98
22:14:16 <Deewiant> Oh, wait, I do it in Mycology.
22:14:31 <AnMaster> Deewiant, yes exactly. And you could depend on a reflecting in 93
22:14:38 <ais523> Deewiant: I still think Mycology violates the Befunge-93 spec by being too big
22:15:00 <Deewiant> ais523: Quite possible, it's really not well specified
22:15:02 <ais523> interfunge fails because of that, and basically passes otherwise
22:15:22 <ais523> the only difference from expected output is that it prints numbers with Roman numerals
22:15:24 <Deewiant> Mycology wasn't intended as a Befunge-93 test suite anyway, I just noticed that I could so I did
22:15:30 <ais523> but that's a misfeature, not a bug
22:15:44 <AnMaster> ais523, kate: Edit -> Block mode (~ due to l10n), copy. Paste in new file. Save as mycolgy-93.bf
22:15:54 <neldoreth> ah a sudoku solver, thats more or less useful
22:15:55 <ais523> AnMaster: it's an easy enough issue, I did it with sed
22:16:06 <AnMaster> ais523, how? I don't know sed well enough
22:16:19 <ais523> AnMaster: strip the first 25 lines to 80 characters, delete all the others
22:16:41 <ais523> s does everything in sed
22:16:51 <AnMaster> <ais523> AnMaster: strip the first 25 lines to 80 characters, delete all the others <-- um... ?
22:16:55 <ais523> you should have no trouble writing a regex to delete all but the first 80 characters
22:17:12 <ais523> and 26,$d will delete all but the first 25 lines
22:17:14 <AnMaster> ais523, well iirc sed doesn't support {a,b} for range
22:17:25 <ais523> some versions support \{ \} for range, IIRC
22:17:30 <ais523> but writing 80 dots is easy, just tedious
22:17:31 <Deewiant> ? and grouping is enough to support {}
22:17:44 <Deewiant> ais523: 80 dots won't work if there're less than 80 chars
22:17:49 <ehird> 21:04 AnMaster: so. Befunge is like C. Pointer or Integer? No way to tell. Underload is managed. Because you can see data type
22:17:53 <ais523> Deewiant: then the s/// won't match, so it'll do nothing
22:17:58 <ais523> which is the correct thing to do in this case
22:18:15 <ehird> AnMaster: not bash, no
22:18:19 <ehird> has to be plain sh(1)
22:18:21 <AnMaster> ehird, well the interpreter has a higher level understanding of it
22:18:32 <ehird> you just have programs
22:18:40 <ehird> yes, but same with befunge
22:18:43 <ehird> there is no language-level distinction
22:18:54 <ehird> can you tell dd to copy-all-but-1?
22:18:57 <AnMaster> that reclaims unused funge space
22:18:58 <ais523> ehird: Underlambda actually has fewer data types than Underload, they both have exactly one but Underlambda's is lighter-weight
22:19:04 <ehird> AnMaster: impossible
22:19:13 <ais523> impossible unless you put restrictions on what the program can do
22:19:16 <AnMaster> ehird, indeed. For same reason as C
22:19:21 <Deewiant> ehird: You can skip at the start of input
22:19:23 <ehird> for an entirely different reason
22:19:23 <ais523> otherwise, nothing's stopping it revivifying a pointer
22:19:27 <ehird> you can't know whether you'll access fungespace
22:19:32 <ehird> in C etc, you just traverse the heap from one pointer
22:19:36 <ehird> to see reachable objects
22:19:38 <ehird> you can't do that with befunge
22:19:49 <Deewiant> ehird: Using that and swab you can reverse the file
22:19:49 <AnMaster> you can get bounds on the used area
22:19:57 <ais523> well, even in C you can write *(int*)0x480dacef, which confuses garbage collectors no end, but it's considered bad form
22:20:02 <ais523> and is undef behaviour
22:20:03 <Deewiant> ehird: And then skip from the start of the reverse
22:20:11 <ehird> Deewiant: swab is another command?
22:20:14 <ais523> on the other hand, in Funge that sort of thing's rather normal
22:20:28 <Deewiant> Swap every pair of input bytes
22:20:35 <ais523> how many Funge programs are there that hardcode p and g coordinates?
22:20:47 <ehird> must be a simpler way
22:20:50 <AnMaster> ais523, me, Deewiant, most other people?
22:20:51 <ais523> now, how many Funge programs are there that use some sort of fungemalloc to find unallocated fungespace?
22:20:55 <Deewiant> ehird: Too Esoteric for you? :-P
22:21:02 <ehird> Deewiant: no, just too tedious
22:21:10 <ais523> that's why a Funge garbage collector makes no sense
22:21:10 <AnMaster> ais523, anyway C programs have hard coded coords.
22:21:16 <ais523> AnMaster: static variables?
22:21:25 <ais523> yes, but those aren't garbage-collected
22:21:27 <Deewiant> Hmm, fungemalloc sounds like a cool idea actually
22:21:41 <Deewiant> Much better than Mike's silly C malloc, anyway :-P
22:21:42 <ehird> a high level language specifically designed to target befunge would be fun
22:21:45 <ais523> Deewiant: agreed, there should be a fingerprint that does that
22:21:55 <AnMaster> or we would have had REAL issues
22:21:58 <oklopol> hhhhhhhhhhheheheehhhhhhhhhe
22:21:58 <ais523> allocating in negative fungespae would probably be safest
22:22:03 <ehird> AnMaster: what issues?
22:22:16 <ais523> ehird: MikeRiley implementing a fungemalloc before we could write a decent spec for it
22:22:17 <AnMaster> ehird, a badly specced fingerprint for GC in befunge which didn't actually work
22:22:26 <ais523> oh, garbage collection? that would be worse
22:22:42 <ehird> also, I find mkry's fingerprints to be okay, on the whole
22:22:42 <ais523> although at least nobody sane would try to use it
22:22:43 <AnMaster> he has a fingerprint for malloc()
22:22:43 <ehird> but some of them are awful
22:22:49 <ais523> ehird: which one do you think is worst?
22:22:50 <ehird> i mean, the specs are simple enough to follow
22:22:56 <ehird> ais523: there's one that I forgot
22:23:02 <ais523> apart from the one that violates the semantics of the langauge
22:23:07 <ehird> Deewiant: only some of them
22:23:10 <ais523> that one's obviously worse in a language-lawyer sense
22:23:14 <ehird> others just specify blanket behaviour like reflecting
22:23:27 <Deewiant> ehird: Well he says "reflect on error" without saying what's an error
22:23:29 <AnMaster> well, reflecting on error isn't bad
22:23:38 <AnMaster> but yeah should specify what are errors
22:23:52 <ais523> Deewiant: that was the one
22:24:04 <ais523> I couldn't remember which of FING and FNGR was the good one and which was the broken one
22:24:07 <AnMaster> Deewiant, FNGR is at least not badly specced
22:24:08 <Deewiant> ais523: He retconned it to switch to the alternate semantics
22:24:17 <AnMaster> there are some fingerprints I have no idea what the hell they are supposed to do
22:24:22 <Deewiant> "When this fingerprint is loaded, fingerprints work like this."
22:24:48 <Deewiant> His botching of MVRS annoyed me
22:24:49 <ehird> http://rcfunge98.com/rcsfingers.html#MACR
22:24:53 <ehird> "Macros are simple mini-funge like Befunge-like subroutines that execute in a single tick"
22:24:57 <Deewiant> We thought up some pretty good stuff to make it work well
22:25:00 <AnMaster> ehird, he retconned that one too
22:25:11 <Deewiant> But he kept with his first implementation/spec
22:25:27 <Deewiant> And it's just not very interesting/smart that way, I forget which
22:25:31 -!- BeholdMyGlory has quit (Remote closed the connection).
22:25:41 <ehird> AnMaster: TRGR is wellspecced
22:25:48 <ehird> it's in the list below the instruction overview
22:25:51 -!- BeholdMyGlory has joined.
22:25:51 <Deewiant> Anyhoo, for this funge malloc thing
22:25:54 <AnMaster> ehird, again slightly retconned
22:25:55 <ehird> "The trigger table contains executable code for the new IP, the code for A begins at the trigger table vector, B starts at the same X one line lower, C below that, etc"
22:26:00 <ehird> well stop giving me retconned ones
22:26:08 <ehird> Deewiant: M ( -- x y)
22:26:11 <Deewiant> 1) Something to specify an area as not to be allocated into
22:26:27 <AnMaster> ehird, so M returns a block of what size?
22:26:33 <ehird> AnMaster: ah, good point
22:26:41 <AnMaster> Deewiant, well, some way to return malloc a block of a specific size, getting coords back
22:26:43 <ehird> M (x y -- x y) allocate fungespace block
22:26:49 <ehird> F (x y --) deallocate fungespace block
22:26:56 <ehird> P (x y x1 y1 --) don't allocate in this block
22:27:01 <Deewiant> AnMaster: Yeah, I'm continuing from what ehird said :-)
22:27:01 <ais523> you should have a realloc too
22:27:01 <ehird> Q (x y x1 y1 --) undo P
22:27:13 <ehird> what Deewiant said
22:27:19 <ais523> Deewiant: I would suggest unique names for the parameters...
22:27:27 <ais523> AnMaster: because realloc is useful
22:27:39 <ehird> I was typing out Deewiant but with x1,y1 for the second pair
22:27:40 <ais523> it's make this bigger, and move to a different part of fungespace if it doesn't fi
22:27:41 <ehird> then he said it :P
22:27:56 <ais523> I suggest x,y for position, w,h for width/height
22:28:09 <AnMaster> ais523, iirc I remember a comment from boehm-gc saying "eww realloc, well we are stuck with it since it is in C standard"
22:28:13 <AnMaster> or something to the same effect
22:28:14 <Deewiant> I suppose we could do GC as well
22:28:31 <ais523> use large negative numbers for coordinates
22:28:37 <ais523> that are unlikely to show up in the program
22:28:53 <Deewiant> Free everything not touched in t ticks
22:28:55 <ais523> then look for numbers anywhere on the stack or in fungespace that are in the allocated range
22:29:05 <AnMaster> you basically need to do what valgrind --tool=exp-ptrcheck
22:29:07 <ais523> Deewiant: conservative would work, I think
22:29:18 <ais523> AnMaster: how can you tell an integer from a pointer in befunge?
22:29:33 <AnMaster> ais523, well you could tell how the value from this fingerprint was copied
22:29:44 <ais523> Deewiant: who says fingerprints have to be cheap
22:29:47 <Deewiant> I think my tick idea is pretty workable
22:29:57 <AnMaster> I wouldn't implement the GC bit
22:29:59 <ais523> we're discussing garbage-collected Befunge here, and you want it to be /efficient/?
22:30:12 <Deewiant> ais523: I don't want it to be needlessly inefficient
22:30:21 <ais523> Boehm-GC is conservative, anyway
22:30:22 <AnMaster> allocate arena to allocate from
22:30:27 <ehird> http://nopaste.com/p/arvgu9k9bb
22:30:34 <ais523> also, deallocating data just because it hasn't been used recently is mad
22:30:39 <Deewiant> ais523: But if you want, we can spec that negative values given to G do funky stuff
22:30:47 <ais523> that's a Silly Emplosions idea
22:30:49 <Deewiant> -1 can be your conservative collector
22:30:56 <ehird> it specifies all behaviour
22:30:57 <AnMaster> ehird, "<AnMaster> A (x y w b --) <AnMaster> allocate arena to allocate from"
22:31:00 <ais523> for the sake of sanity I think we should agree that Silly Emplosions stuff shouldn't be ported to any lang but INTERCAL
22:31:04 -!- asiekierk has quit (Read error: 104 (Connection reset by peer)).
22:31:09 <AnMaster> so program has to mark areas to allocate from
22:31:14 <AnMaster> ehird, your is stupid. Mine is better
22:31:16 <ais523> I think by default the arena should be negative fungespace
22:31:31 <ais523> and programs should have to mark which bits, if any, they're using
22:31:31 <oklopol> F (x y --) Deallocate block. <<< what does this mean?
22:31:33 <ehird> mine is better because the amount of manual fungespace usage is more likely to be finite,
22:31:38 <ais523> oklopol: like free() in C
22:31:39 <ehird> than the allocatory areas
22:31:40 <Deewiant> oklopol: Later allocations can use it
22:31:43 <oklopol> "deallocate an allocated block of size x,y"?
22:31:43 <AnMaster> ais523, you could have multiple arenas. As memory pools
22:31:48 <ehird> it should be x y x1 y1
22:31:53 <ais523> oklopol: deallocate the block allocated at coordinates x,y
22:32:01 <ais523> the size is known from the coordinates
22:32:06 -!- jix has joined.
22:32:09 <ais523> because it was allocated via fungemalloc in the first place
22:32:13 <Deewiant> ais523: Why not just have the arena be the whole space
22:32:17 <ais523> there should also be a "Get size of allocated block"
22:32:19 <AnMaster> ais523, where is the meta data stored?
22:32:22 <ais523> Deewiant: and overwrite the function?
22:32:25 <ehird> http://nopaste.com/p/aunvNDw2J
22:32:30 <ais523> AnMaster: in fungespace? fungemalloc can allocate its own bit
22:32:31 <oklopol> ais523: that's what makes most sense, but i dislike it not being mentioned and x, y used for another purpose too.
22:32:32 <ehird> I eagerly await implementations :P
22:32:36 <Deewiant> ais523: You have to start by saying what can't be allocated on top of
22:32:41 <AnMaster> ais523, and how can it know program won't Q it?
22:32:50 <oklopol> R (x y x1 y1 -- x2 y2) Resize the block x*y to be x1*y1, return new coordinates.
22:32:56 <Deewiant> ehird: Yes, I know you did, I even said it before you originally :-P
22:33:02 <ais523> I think all implementaitons should have P,Q, but we should agree what the default arena is
22:33:05 <ehird> Deewiant: Yes yes.
22:33:08 <ehird> ais523: implementation defined
22:33:10 <oklopol> that definitely means any random block of size x*y
22:33:11 <ais523> should be "the block at (x,y)"
22:33:32 <oklopol> Deewiant: if it's the point x*y, why not just give an integer
22:33:33 <ehird> also, my R is fine
22:33:34 <Deewiant> Implementation defined actually seems like the best idea
22:33:35 <ais523> programs would have to run Q then P in order to guarantee what they did at all
22:33:37 <ehird> since only one block can start at one place
22:33:54 <AnMaster> why are everyone ignoring this suggestion?
22:33:56 <ehird> if you use any fungespace manually, use P
22:33:57 <ais523> ehird: it's just that you're using x*y rather than (x,y) for coordinatese
22:33:59 <ehird> AnMaster: because it's shit
22:34:02 <ehird> ais523: ok, i'll change that
22:34:05 <ais523> AnMaster: because it's the same as ehird's, just with differnet defaults
22:34:19 <Deewiant> Well yeah, one can be implemented in the other
22:34:20 <ais523> you can just do it by Ping everything then Qing your arena
22:34:26 <AnMaster> ais523, not really. It would be easier to implement
22:34:31 <Deewiant> Oh, that brings up a good point
22:34:34 <AnMaster> because a program could P/Q in a complex overlapping way
22:34:46 <ehird> http://nopaste.com/p/aPrF2K5xA
22:34:49 <Deewiant> The latest call takes precedence?
22:34:50 <AnMaster> therefore I suggest non-overlapping areans
22:34:50 <ais523> Deewiant: the newest overrides older ones
22:34:50 <ehird> Deewiant: Undefined.
22:34:54 <ais523> ehird: no, not undefined
22:35:01 <ais523> newer overrides older is the only sane way
22:35:04 <AnMaster> I'm going to handle circle shaped pools
22:35:14 <AnMaster> Deewiant, well t is synced still
22:35:23 <AnMaster> from interpreter point of view
22:35:23 <ehird> http://nopaste.com/p/aAXmy9lnib
22:35:31 <ais523> Deewiant: they share pools IMO
22:35:31 <ehird> Err, wait, nevermind.
22:35:33 <Deewiant> If one essentially says 'I want you to allocate here' and the other says 'I want you to not allocate here' what happens
22:35:34 <ehird> http://nopaste.com/p/aAXmy9lnib <- updated version
22:35:40 <Deewiant> ais523: Yeah, I guess, so you have to work it out yourself
22:35:42 <ehird> Deewiant: whichever gets there last works
22:35:42 <ais523> Deewiant: the latest takes precedence
22:35:45 <AnMaster> Deewiant, if we have overlapping P/Q then you can count me out
22:35:55 <AnMaster> that is just too hard to try to fit
22:36:04 <ais523> if one thread allocates a pointer, and another thread frees it, which takes precedence?
22:36:06 <Deewiant> AnMaster: I figured we'd count you out anyway, I know how you are with feral fingerprints. :-P
22:36:08 <ais523> AnMaster: why is it difficult?
22:36:10 <ehird> ais523: the one that gets their last
22:36:20 <AnMaster> Deewiant, I'm fine with a simple suggestion as I suggested
22:36:27 <ais523> ehird: well, obviously, I was trying to make it a rhetorical question so Deewiant understood
22:36:29 <AnMaster> with allocating pools and allocating from these pools
22:36:41 <ais523> P and Q just flip allocatableness of a fungespace element
22:36:44 <ehird> I think we're all agreeing here apart from AnMaster, who is boring as far as fingerprints go.
22:36:48 <ais523> that isn't even a feral fingerprint!
22:36:52 <ehird> ais523, Deewiant: Any issues with http://nopaste.com/p/aAXmy9lnib?
22:36:53 <ais523> what's feral about it?
22:36:57 <Deewiant> ais523: 'feral' is poorly defined.
22:37:03 <AnMaster> ais523, well how would you try to fit an allocation in
22:37:18 <ehird> R (x y x1 y1 -- x2 y2) Resize the block at (x,y) to be (x1,y1) sized, return new
22:37:28 <ehird> http://nopaste.com/p/aFetqtklgb Updated version.
22:37:34 <ais523> Deewiant: my definition of non-feral is "could be implemented in the INTERCAL part of C-INTERCAL+IFFI+cfunge without modifying anything on the funge side apart from fungespace"
22:37:35 <Deewiant> ais523: Usually we've taken it to mean storing data related to the Funge state beyond what is stored in an interpreter without the fingerprint
22:37:53 <ehird> Deewiant: any qualms with http://nopaste.com/p/aFetqtklgb?
22:37:55 <Deewiant> ehird: Use w and h, please. :-)
22:38:17 <AnMaster> forget it. I'm going to do my own with same name
22:38:20 <ais523> Deewiant: oh, OK, I've taken it to mean things that can't be implemented without tinkering with interp internals
22:38:30 <AnMaster> just because ehird is ignoring me because of who I am
22:38:31 <Deewiant> AnMaster: Say goodbye to Mycology compatibility then ;-)
22:38:36 <ais523> so implementing x in a fingerprint is feral, implementing a stack stack in an interp isn't
22:38:39 <Deewiant> ais523: Well, that's essentially the same thing
22:38:50 <AnMaster> Deewiant, anyway see my point above about how I think it should be done
22:38:54 <ehird> AnMaster: I'm ignoring you because your idea is shit.
22:38:56 <ehird> Stop being paranoid.
22:39:00 <ais523> Deewiant: I mean, my definition allows fingerprints to have internal state
22:39:06 <AnMaster> ehird, you haven't justified that
22:39:07 <ehird> I have already explained that
22:39:09 <ais523> whereas as far as i can tell, yours doesn't
22:39:11 <ais523> AnMaster: it isn't general enough
22:39:18 <ais523> and there's no reason not to generalise
22:39:23 <ehird> ais523, Deewiant: http://nopaste.com/p/aVFHswSKL
22:39:25 <ehird> Now using w and h.
22:39:31 <ehird> (x,y) to be (w,yh) size
22:39:32 <ais523> why restrict the user to a rectangular arena that can't be changed over time?
22:39:34 <Deewiant> ais523: With internal state, everything is nonferal since you can just embed an interpreter. :-)
22:39:43 <ais523> think of Q as being a befunge version of sbrk
22:39:44 <AnMaster> ais523, sure can, allocate another arena
22:39:52 <ais523> Deewiant: that's feral in a multithreaded program
22:40:01 <AnMaster> that is what the plural s mean
22:40:04 <ais523> as you're altering state too quickly for the other threads to take steps
22:40:11 <ehird> http://nopaste.com/p/au1ZCEs3i Easier to read.
22:40:13 <ais523> AnMaster: can you deallocate them again?
22:40:19 <ehird> If anyone other than AnMaster has comments, they're welcome.
22:40:24 <ehird> Don't allocate fungespace in the (x1,y1) sized region starting at (x,y).
22:40:26 <AnMaster> ais523, yes, just empty pools first and call some other instruction
22:40:27 <ais523> ehird: give me time to read one
22:40:30 <Deewiant> ais523: Presumably you can access the host interpreter's threads from within the fingerprint.
22:40:35 <ais523> rather than posting new versions so quick I nver reach the end
22:40:40 <ehird> AnMaster: no, you just have an idea about this fingerprint I don't care for
22:40:45 <ais523> Deewiant: oh, I don't assume that
22:40:52 <ehird> but, if you want, I'm happy to make it personal, as you're doing a good job of showing yourself to be an idiot
22:40:55 <ais523> I don't assume anything about the interp at all except ability to access the stack and fungespace
22:40:59 <ehird> http://nopaste.com/p/axl96oLTab Tada.
22:41:05 <ais523> maybe my definition of "feral" is "requires knowledge of the interp to implement"
22:41:24 <Deewiant> ais523: I assume access to the entire Funge state of the host including everything in the -98 standard
22:41:50 <Deewiant> ais523: I.e. some sort of interface to all the internals so that you can implement any fingerprint.
22:41:51 <AnMaster> ais523, being able to have an interpreter-global state + be able to run something atomically compared to ticks would be allowed
22:42:01 <ais523> good thing it's a loose definition
22:42:03 <Deewiant> ais523: Without that, feral fingerprints couldn't really happen :-)
22:42:07 <AnMaster> but I'm not sure if you can access other threads in cfunge fingerprints
22:42:16 <ais523> ehird: looks good; I would state that by default, all fungespace is available for allocation
22:42:20 <Deewiant> ais523: Something like that is what's intended
22:42:23 <ais523> in fact, I'd prefer the default to be all negative fungespace
22:42:31 <Deewiant> ais523: But it's really unclear and thus a fairly useless term in practice
22:42:37 <ehird> ais523: I'll make all fungespace
22:42:44 <ehird> I'll make it implementation defined
22:42:52 <ais523> so programmers don't have to worry about changing P commands whenever they update their program
22:42:53 <AnMaster> Deewiant, in cfunge fingerprints can't access other threads
22:42:55 <ais523> Deewiant: that's much worse
22:43:01 <ehird> it should be all fungespace
22:43:03 <ais523> because programs wouldn't be able to be portable
22:43:16 <ais523> without overriding the defaults
22:43:19 <ehird> http://nopaste.com/p/aSZv3hZFI
22:43:24 <ehird> Now gives all fungespace by default.
22:43:29 <ais523> put it this way, suppose in C malloc() could be defined to either overwrite your program, or not
22:43:38 <ais523> and there was a command to tell it not to overwrite given functions
22:43:51 <ais523> everyone would have to call it for every function in their program to be portable
22:43:52 <AnMaster> ais523, good point. And I have suggested a solution that ehird censored away
22:43:59 <ehird> Yes, I'm censoring you by not listening to you.
22:44:03 <AnMaster> I don't know why *he* began writing the fingerprint
22:44:05 <ehird> Shut the fuck up and go cry me a river.
22:44:06 <AnMaster> since it was my idea to begin with
22:44:09 <ais523> even if most C interps did the sane thing which is to not overwrite any
22:44:17 <ehird> Omg, I am also an IDEA THEIF
22:44:19 <ais523> AnMaster: personally, I think systems should give sane defaults
22:44:19 <ehird> get over yourself...
22:44:30 <ehird> P and Q are corner cases
22:44:30 <ais523> I dislike your system because it gives the insane default of not working
22:44:32 <AnMaster> ais523, exactly. I should have written a spec without mentioning it
22:44:40 <ehird> yes, so I couldn't steal your ideas
22:44:40 <Deewiant> AnMaster: Was it not ais523's idea?
22:44:41 <AnMaster> and then presented it when mostly done
22:44:43 <ehird> what is up with you
22:44:45 <ais523> and I dislike ehird's because it gives the insane default of possibly overwriting the user's program
22:44:46 <ehird> it wasn't even your idae
22:45:01 <ehird> I'll change it to all fungespace outside the program or something
22:45:06 <ehird> any thoughts on that?
22:45:09 <Deewiant> AnMaster: 22:20:50 in your time zone
22:45:15 <ais523> the reason I chose negative is that it can't be written without g/p
22:45:16 <ehird> all unused fungespace?
22:45:21 <ehird> Deewiant: comments?
22:45:22 <ais523> but unused may also work
22:45:25 <AnMaster> Deewiant, I'm sure I suggested GC first at least
22:45:27 <Deewiant> ehird: All fungespace not in the rectangle specified by the file
22:45:35 <ais523> actually, there's an interesting problem here
22:45:37 <Deewiant> You can write that in some more understandable way, I'm sure. :-)
22:45:43 <ais523> which is to do with Lahey-lines, and wrapping
22:45:50 <Deewiant> I just realized that as you said there's a problem
22:45:54 <ehird> ais523, Deewiant: http://nopaste.com/p/avRd8YmTS
22:46:00 <ais523> what happens if your malloc allocates space on a Lahey-line htat the program actually uses for wrapping?
22:46:24 <ehird> Deewiant: thoughts?
22:46:32 <Deewiant> Ability to mark a given Lahey-line as with P
22:46:39 <ehird> it should be default
22:46:44 <ehird> otherwise programs would break like hell
22:46:48 <ais523> the problem's relatively easy to solve if you only use cardinal coordinates
22:46:48 <Deewiant> You can use x to get on any Lahey-line
22:46:54 <Deewiant> ais523: Yes, but that's boring
22:47:11 <AnMaster> ais523, and you couldn't say "non-cardinal wrapping undef with this fingerprint" or such
22:47:23 <Deewiant> ehird: By default, only the four quadrants diagonal from the initial rectangle, and then we need an additional command
22:47:24 <ais523> by by default, allocating only if you don't share an x- or y-coordinate with the original fungespace
22:47:35 <ais523> AnMaster: saying "non-cardinal wrapping undef with this fingerprint" is bad anywawy
22:47:51 <AnMaster> ais523, well ok. better wording needed
22:47:54 <ais523> a nicer but unfortunately buggy solution to wrapping is to surround the program with semicolons
22:47:58 <ais523> AnMaster: no, better concept needed
22:48:10 <AnMaster> ais523, the malloced block could contain ;
22:48:16 <ais523> buggy both because a flying IP might jump them, and because a cardinal program might write a ; into the block
22:48:28 <ehird> maybe just specify that you can't allocate on a lahey-line?
22:48:36 <ehird> that a program points to
22:48:41 <ehird> hmm, that came out awkward
22:48:44 <ais523> unfortunately every element of fungespace is on some lahey-line
22:48:56 <ais523> and specifically enumerating every lahey-line you use would get boring fast
22:49:20 <ehird> also, that'd get too tedious
22:49:22 <Deewiant> For specifying a Lahey-line for non-use
22:49:23 <ehird> by default, it should just work.
22:49:27 <AnMaster> ais523, would doing that for every cell in a 32-bit funge space be larger than G=
22:49:40 <Deewiant> ehird: Btw, those should be general vectors of course, so it makes sense in Trefunge
22:49:43 <AnMaster> ais523, anyway I suspect it would be "bloody large"
22:49:49 <Deewiant> I guess Unefunge is screwed with this fingerprint
22:49:55 <ehird> Deewiant: after we fix this problem, sure :-)
22:50:00 <ais523> Deewiant: not if it doesn't try to use wrapping
22:50:39 <AnMaster> ais523, that is 2^32*2^32 cells. Coords can be 2^32*2^32 different values. Wait that's a lot...
22:50:48 <ais523> ok, actually working but feral solution: malloced blocks are untouchable by the IP as if they contained spaces
22:50:57 <ais523> that's like setting noexec on malloced memory
22:51:04 <ehird> it'd be fun to execute malloc'ed blocks
22:51:06 <ais523> agree it's boring, and I'd like a better one
22:51:10 <ehird> interpreter detector
22:51:14 <AnMaster> ais523, I have an early draft for a NX fingerprint...
22:51:22 <AnMaster> but I refuse to say anything more
22:51:30 <AnMaster> since ehird would mess that up too
22:51:36 <ais523> actually, an NX fingerprint would be nice whether or not we do this malloc thing
22:51:38 <ehird> Are you crying or something?
22:51:41 <ais523> and they would combine well
22:51:48 <ehird> Because I stole the idea that wasn't yours and broke it because it wasn't your idea?
22:51:52 <ais523> it would be sort-of like abstain from INTERCAL
22:51:54 <AnMaster> ehird, no but I'm soon ignoring you
22:52:02 <Deewiant> Also, what happens if an already-malloced block is P'd?
22:52:05 <ehird> *snort*. You call me a sore loser...
22:52:13 <AnMaster> ais523, well my idea was to cause exit/debugger entry on NX
22:52:23 <AnMaster> ais523, but ignore could be interesting too
22:52:29 <ais523> AnMaster: ignoring is much more interesting
22:52:42 <ehird> http://nopaste.com/p/aPJgTXEWfb slight update; still needs a lahey-line fix
22:52:44 <ais523> actually, more general:
22:52:49 <Deewiant> I was going to say that reflection should be reserved for out of memory errors
22:52:51 <AnMaster> ais523, well it was supposed to be a joke about real NX....
22:53:00 <Deewiant> But then realized that that doesn't really make sense in Funge
22:53:05 <ais523> a fingerprint that lets fungespace cells be different when run as a command from when read as a value
22:53:12 <AnMaster> ais523, with mprotect() like interface
22:53:25 <ais523> sort of like those Perl constants that have different values as ints than they do as strings
22:53:34 <AnMaster> ais523, and possibly minimal block page sizes
22:53:35 <ais523> so you could fill an area with acts-like-space, or acts-like-r
22:53:42 <AnMaster> to allow the interpreter to still be efficient
22:53:45 <ais523> whilst the cells still kept their orignal value
22:53:53 <ehird> ais523: stop it, you're stealing & ruining his fingerprint!
22:54:05 <ais523> well, I like my idea about this better than AnMaster's
22:54:10 <AnMaster> ehird, no, ais523 is contstructive
22:54:12 <FireFly> AnMaster, you should design an optimizing compiler for Brainfuck, in Brainfuck
22:54:14 <ais523> AnMaster's is just a joke, mine's a feral esoprogramming technique
22:54:25 <ais523> AnMaster: yours could be implemented in mine using act-as-@
22:54:31 <AnMaster> ais523, it should be possible to combine them
22:54:50 <AnMaster> ais523, no @ != q and enter debugger of interpreter if any
22:55:06 <ais523> AnMaster: I know @ != q
22:55:09 <AnMaster> ais523, + mine include "read only" too
22:55:24 <ais523> AnMaster: well, mine could also implement "write only"
22:55:28 <ais523> by making cells unreadable
22:55:35 <AnMaster> ais523, so could mine. per-threads
22:55:35 <ais523> having -wx-wx-wx permissions is occasionally useful
22:55:48 <ais523> although admittedly, I've never used it
22:55:51 <AnMaster> ais523, so one thread could write and others only read
22:56:12 <ais523> AnMaster: why would you need that? encapsulation in Befunge is never going to be safe...
22:56:23 <AnMaster> ais523, you don't want to see my *other* ideas then
22:56:27 <ais523> by the way, with that mentioned, anyone up for trying to write a security fingerprint for Befunge that restricts all unsafe operations?
22:56:38 <AnMaster> ais523, sure- Cfunge already has that partly
22:56:40 <ais523> like the Safe module in Perl?
22:56:45 <ais523> AnMaster: that's an interpreter, not a fingerprint
22:56:56 <AnMaster> ais523, you could make the flag per-thread
22:57:15 <AnMaster> and with a fingerprint to control it
22:57:59 <AnMaster> ais523, but my idea was ring based, or optionally capabiltity based
22:58:20 <AnMaster> both NX and this RING/CAP would be efunge only.
22:58:34 <AnMaster> though SAFE would be trivial in cfunge
22:58:34 <ais523> good fingerprints shouldn't be interp-specific!
22:58:53 <AnMaster> ais523, no, I just don't like slowing down the core of cfunge with checks
22:59:02 <ais523> even IFFI is worded so that it could be implemented in non-cfunge-plus-C-INTERCAL implementations
22:59:16 <AnMaster> just I wouldn't implement them in cfunge
22:59:20 <ais523> just nobody has tried yet
22:59:33 <ais523> it doesn't even assume the existence of an INTERCAL implementation
22:59:51 <AnMaster> ais523, read what I said. You misunderstood me!
23:00:18 <AnMaster> ais523, btw IFFI will soon need major updates. cfunge is currently in code/API cleanup
23:00:52 <AnMaster> ehird, why BROK for your malloc() one?
23:01:02 <ehird> It brokers memory.
23:01:05 <ais523> although originally I said that because I read his stack (--) things upsidedown
23:01:07 <ehird> http://en.wikipedia.org/wiki/Broker
23:01:20 <AnMaster> ais523, well ok. But still bad?
23:01:36 <ais523> still rather underspecified
23:02:00 <AnMaster> you read B (v n -- v ..) as B (^u -- ^ ..)
23:02:27 <ais523> AnMaster: I misread it as (q ɐ ɐ -- q ɐ)
23:02:40 <AnMaster> ais523, that isn't even same one...
23:02:52 <ais523> well, that's the one that made me wtf mentally
23:03:00 <ais523> and also that made me realise I was reading it upsidedown
23:03:04 <AnMaster> ais523, what program did you use to invert?
23:03:16 <ais523> http://www.sherv.net/flip.html, the first Google result on the issue
23:03:23 <AnMaster> ais523, also I assume you meant left-to-right or something like that
23:03:24 * ais523 leads ehird to draw inconsistent conclusions about me
23:03:40 <ehird> ais523: BE CONSISTENT DAMMIT :|
23:04:24 <ehird> ә!Ⴈ ʇouuɐɔ ! puɐ sʇʇnq ƃ!q әʞ!Ⴈ !
23:04:26 <ais523> AnMaster: I wouldn't exactly call that a bad fail
23:04:33 <AnMaster> ais523, also it fails badly on upper case
23:04:45 <ehird> ɹәʇʇɐɯ ʎႨႨɐәɹ ʇ! sәop ʎoʇ ɐ s,ʇ!
23:04:46 <ais523> do /you/ know the unicode for combining upside-down umlaut offhand?
23:05:00 <ais523> and in fact I suspect there isn't one
23:05:05 <ais523> although this is Unicode so I might be surprised
23:05:08 <ehird> iʎsɐә s!Ⴁʇ uәәq ɹәʌәu sɐႡ uʍop әp!sdn ƃu!ʇ!ɹʍ ˙әɯ!ʇ әɯɐs әႡʇ ʇɐ sɹәpɐәɹ әႡʇ ɹoɟ unɟ ɟo ʇoႨ ɐ puɐ ƃu!Ⴈƃƃoq-pu!ɯ puɐ ƃu!ƃɐƃuә әʇ!nb s,ʇ! ˙ʇxәʇ әႨ!ɟoɹd ɹo sәƃɐssәɯ ʎɐʍɐ 'sәƃɐssәɯ snʇɐʇs Ⴈɐuosɹәd 'sәɯɐu uәәɹɔs ɹnoʎ oʇ әႨʎʇs sppɐ ʇ! puɐ әnb!un s,ʇ! ˙ʍәu puɐ Ⴁsәɹɟ s,ʇ! iʎɹʇ ɐ ƃu!ʇ!ɹʍ uʍop әp!sdn ɹno әʌ!ƃ uәႡʇ ¿sʇu
23:05:11 <ehird> oɟ ʎɹɐu!pɹo puɐ pɹɐpuɐʇs Ⴁʇ!ʍ pәɹoq noʎ әɹɐ
23:05:46 -!- ehird has set topic: p=o؛u=ɔ¿/ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:06:03 <ehird> heh, it worked perfectly
23:06:29 <ehird> your font is effed
23:06:48 <ehird> you mean putting it back?
23:06:59 <AnMaster> it manages to put it back mostly
23:07:10 <ehird> ais523: do you think our topic counts as a log link according to freenode? :D
23:07:22 <ais523> it's enough to inform people that the channel is logged
23:07:35 <ehird> if they speak upside-downese, yes :D
23:07:36 <ais523> admittedly, it isn't very useful...
23:07:55 <ehird> also, the c=n;o=d doesn't work lowercase
23:08:02 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:08:26 <AnMaster> ბttp://tunes.org/~nef/იogs/esoteric/?c=n;o=d
23:08:30 <FireFly> AND it's copy-paste protecting
23:08:39 <Deewiant> I'm missing the h and the l here
23:08:40 <FireFly> If you'd need it for something
23:08:44 <ais523> FireFly: in a log link, why is copy-paste protection good?
23:08:46 <ehird> yeah, it fails on h and l
23:08:51 <ehird> ais523: annoys people
23:08:57 <ehird> also, it's a very ESOTERIC link...
23:09:02 <ais523> ehird: do you consider annoying people a good thing?
23:09:03 <ehird> aw dammit ais523 you beat me to it
23:09:16 <ais523> however, I agree about the esoness
23:09:19 <Deewiant> I wonder what it would take to get them out of some other font
23:09:35 <Deewiant> Since it appears I do have fonts that have those
23:10:56 <ehird> so, to be the first person since the 70s to say this
23:11:07 <ehird> for it is a good editor.
23:11:12 -!- AnMaster has set topic: hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:11:18 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:11:21 <ehird> don't break the TOS
23:11:23 -!- ais523 has set topic: Ⱒ/sʍ˙➡//:dʇʇɥ.
23:11:26 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:11:31 <ehird> ais523: invalid character
23:11:38 <ehird> AnMaster: it almost certainly doesn't count as a link
23:11:51 <Deewiant> ehird: And the current one does?
23:11:51 <AnMaster> ehird, we had it spelled out before
23:11:52 <ais523> what, a glagolitic capital letter spidery ha looks the same whether it's upside-down or not?
23:12:03 <ehird> also, ais523's doesn't inform the current chanel is logged
23:12:08 <ehird> mine counts as a link due to a very trivial isomorphism
23:12:11 <ais523> oh, i had "Logs:" in there
23:12:15 <ehird> and the link clearly demonstrates we're logged
23:12:15 <ais523> it got lost somewehere
23:12:20 <AnMaster> ehird, since when do you decide?
23:12:20 <Deewiant> ehird: There's a very trivial isomorphism for AnMaster's as well
23:12:23 -!- ais523 has set topic: Ⱒ/sʍ˙➡//:dʇʇɥ :sƃol.
23:12:30 <ehird> AnMaster: using logic
23:12:33 <ais523> hmm... that tinyarrow isn't upside-down
23:12:34 -!- AnMaster has set topic: Logs: hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:12:34 <ehird> Deewiant: only if you know swedish
23:12:37 <ehird> which isn't clear enough
23:12:40 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:12:54 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:12:56 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:13:01 <Deewiant> ehird: And if you have a crap font, the title currently is a bunch of boxes.
23:13:09 <AnMaster> I think ais523's one is better
23:13:10 <ehird> the arrow is the wrong way around
23:13:16 <ais523> ehird: I just fixed the arrow
23:13:23 <Deewiant> ais's looks mostly like boxes to me
23:13:25 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:13:27 <ehird> AnMaster: OMG IT'S PERSONAL WHY DO YOU HATE ME
23:13:35 <ehird> wait, that's your job.
23:13:43 <AnMaster> ehird, rather why do you think everyone else's topic is stupid
23:13:47 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:13:50 <ehird> AnMaster: I didn't say stupid.
23:13:51 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:13:53 <ais523> Deewiant: what, that glagolitic capital letter spidery ha has been in the topic for ages
23:13:55 <ehird> I said insufficient according to the TOS.
23:13:58 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:01 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:02 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:04 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:06 <Deewiant> ais523: Quite possibly it was a box then as well
23:14:07 <ehird> I have more patience than you.
23:14:07 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:08 <ais523> how do you not recognise the specific box by now?
23:14:15 <AnMaster> ehird, that proves you are immature
23:14:16 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:22 <Deewiant> These boxes, they are identical.
23:14:23 <ehird> Yes. Patience is a huge sign of immaturity.
23:14:24 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:25 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:27 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:36 <AnMaster> ehird, both me and ais agrees. Two against one.
23:14:46 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:48 <AnMaster> now ignoring majority is immature
23:14:50 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:14:52 -!- AnMaster has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:14:53 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:15:02 <ehird> Protect the right revision!
23:15:06 <lament> stop changing the topic, asiekierka is not even in the channel
23:15:14 <ais523> lament: we're having a topic war
23:15:16 <ehird> I am asiekierka in disguise.
23:15:20 <ais523> ehird is outnumbered but trying to win just by being more specific
23:15:25 -!- ais523 has set topic: Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol.
23:15:29 <ais523> mine is clearly better
23:15:33 <ais523> as it leads to the logs in sorted form
23:15:38 <ais523> whereas ehird's doesn't
23:15:39 <ehird> 22:15 AnMaster: indeed I agree with ais523 <-- imagine what IRC would be like if every person who agreed replied saying so every line
23:15:45 <Deewiant> Maybe it's because of the boxes?
23:16:02 <ehird> see, we have someone who cannot access the logs
23:16:03 <Deewiant> AnMaster: latest dejavu sans mono
23:16:04 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:16:09 -!- Deewiant has set topic: http://tunes.org/~nef/logs/esoteric/.
23:16:14 <ais523> Deewiant: it's "logs: http://tinyarro.ws/GLAGOLITIC CAPITAL LETTER SPIDERY HA"
23:16:17 <ais523> just upside-down and with more unicode
23:16:45 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:16:51 -!- ehird has set topic: /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ.
23:16:58 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/.
23:17:01 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:17:07 <ehird> can we stop fiddling with the topic and just leave it at the logs
23:17:11 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/.
23:17:14 <AnMaster> ehird, yes all variants please
23:17:14 <ehird> that's a simple compromise
23:17:16 <ehird> without all this bullshit
23:17:18 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:17:29 <AnMaster> ehird, you have your there too
23:17:36 <ais523> ehird: compromising normally requires at least one person to agree with you to some extent, although you have deewiant on your side
23:17:37 <ehird> I don't care, I'm trying to stop this topic idiocy
23:17:41 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/.
23:17:48 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/ | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:17:53 <Deewiant> My Firefox shows none of the chars at http://www.alanwood.net/unicode/glagolitic.html :-/
23:17:57 <ais523> ehird: not reverting is generally considered a good way to end a revert war
23:18:06 <ais523> besides, I report you both for IRC 3RR
23:18:14 -!- ehird has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D.
23:18:18 <ehird> Mine is superior on technical grounds.
23:18:20 <ehird> It has the correct ordering.
23:18:25 <ehird> QED, can we all go home now?
23:18:25 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D| Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:18:31 -!- AnMaster has set topic: http://tunes.org/~nef/logs/esoteric/?C=N;O=D | Ⱒ/sʍ˙⬅//:dʇʇɥ :sƃol | /ɔ!ɹәʇosә/sƃoႨ/ɟәu~/ƃɹo˙sәunʇ//:dʇʇႡ | hå te te pe kolon snestreck snestreck te u en e es punkt o er ge snestreck ~ en e ef snestreck el o ge es snestreck e es o te e er i se.
23:18:40 -!- ChanServ has set channel mode: +o lament.
23:18:53 -!- AnMaster has joined.
23:18:57 -!- ehird has changed nick to notehird.
23:19:02 -!- notehird has joined.
23:19:06 -!- notehird has changed nick to ehird.
23:19:15 <AnMaster> lament, kick him under his right nick
23:19:20 <ais523> lament: you kicked both ehird and anmaster with the other as the rason
23:19:26 <ais523> and they both auto-rejoined
23:19:27 -!- ehird has changed nick to ninja_.
23:19:41 <ninja_> <<<<<<<<<<<<-----------------
23:19:42 <AnMaster> ais523, yes my bouncer has this channel as "sticky channel"
23:19:53 <AnMaster> ais523, since I don't want to part by misclick
23:19:59 <AnMaster> so yes this one is auto rejoin
23:20:06 <ais523> it would be more fun just to link you each up to the other's bouncer, and see what happened
23:20:22 <ais523> so you were both writing as each other
23:20:24 <Deewiant> According to http://www.alanwood.net/unicode/fontsbyrange.html#u2c00 almost no fonts have those glagolitic letters, where do you guys get them from?
23:20:31 <ninja_> ais523: I'd get myself a K-line.
23:20:34 <ais523> I can't see them either
23:20:43 <ninja_> Maybe go to #freenode and spam goatses.
23:20:48 <AnMaster> ais523, no. I'm on way more channels than ehird
23:20:52 <ais523> but it's definitely a glagolitic capital letter spidery ha, Character Map confirms it
23:21:12 <AnMaster> I think ehird couldn't handle that
23:21:13 <Deewiant> I prefer UniView for such testing but yes, it is
23:21:13 <ninja_> You have no way of knowing how many channels i am on.
23:21:17 -!- ninja_ has changed nick to ehird.
23:21:21 <ais523> AnMaster: how many of those 582 do you actually read?
23:21:33 <Deewiant> ais523: What about the arrow? Do you have a monospaced font that has that?
23:21:43 <ais523> Deewiant: I'm using proportional atm
23:21:48 <AnMaster> ehird, I do. You said you were only on freenode recently. Freenode limits to 20 channels, or 100 on special request to staff
23:21:52 <ais523> but I see no reason it wouldn't be in a monospaced
23:22:01 <Deewiant> ais523: http://www.alanwood.net/unicode/fontsbyrange.html#u2b00
23:22:28 <AnMaster> ais523, some I need but don't read. Like #services on one network where I'm oper. I don't read it unless something unusual happen
23:22:32 <ais523> AnMaster: what do you actually do, the rest of the time?
23:22:41 -!- jix has quit ("...").
23:22:45 <ais523> I mean, surely reading 582 IRC channels would take up your entire life?
23:22:53 <Deewiant> I was on 30 a few weeks back, decided that was too much and parted from about 10
23:23:02 <AnMaster> ais523, Also some I idle in and only ask when I need help. Saves "polite initial wait before asking question"
23:23:13 <ehird> What do you mean being in channels you don't actually talk in or read is stupid?
23:23:17 <ais523> although one's been dead for ages, I'm in it on the hope it becomes alive again
23:23:29 <ehird> #interhack? #rootnomic?
23:23:49 <ais523> I no longer have #ESO on autojion
23:23:56 <AnMaster> ais523, me and comex are there
23:24:01 <ais523> there doesn't seem to be much point until ESO actually gets running again
23:24:12 <ais523> although if someone asks me over there, I'll join
23:24:23 <ais523> my general rule is to not join so many channels/queries they won't all fit on my screen at once
23:24:28 -!- ehird has changed nick to tusho.
23:24:30 <ais523> the tabs for them, I mea
23:24:44 <lament> ais523: mine too, but i keep stretching the window to overcome that
23:24:44 <tusho> AnMaster: now you're on 581
23:24:51 -!- tusho has changed nick to ehird.
23:25:00 <ais523> AnMaster: err, wouldn't it take up more space?
23:25:08 <AnMaster> * ehird sets modes [#eso +b AnMaster!*@*]
23:25:08 <AnMaster> * You have been kicked from #ESO by ehird (ehird)
23:25:12 <ais523> mine's a horizontal row of tabs
23:25:39 <AnMaster> ais523, with small font. Tabs take more space
23:25:54 <ais523> ehird: ISO C forbids modification of an integral constant
23:26:05 <AnMaster> ehird, I never saw any reason you said
23:26:12 <ehird> AnMaster: why do I have to give a reason?
23:26:16 <ehird> I don't think that's in freenode policy
23:26:19 <ais523> I was trying to word the error message as gcc -pedantic would give
23:26:27 <ais523> to give the impression that gcc without -pedantic wouldn't care
23:26:28 <AnMaster> ehird, oh. Oppression and censorship
23:26:40 <ehird> AnMaster: are you trying to be funny? it's not working.
23:27:46 <Deewiant> I was hoping #define 582 would work but evidently not.
23:28:15 <AnMaster> Deewiant, identifier in C is [a-zA-Z_][a-zA-Z0-9_]*
23:28:30 <Deewiant> AnMaster: Yes, and I was hoping #define would not want identifiers.
23:28:44 <ais523> ehird: cpp's pp-token definition of identifiers is the same as the main lexer's, though
23:28:47 <ais523> so in this case it doesn't matte
23:28:57 <ehird> I was referring to why Deewiant tried.
23:29:00 <AnMaster> I tried something like that today
23:29:06 <ehird> It is not immediately obvious that #define's first parameter is a C identifier.
23:29:09 <ais523> it doesn't matte, either, because it prefers to gloss over the issue
23:29:23 <ehird> I was talking to AnMaster, not ais523.
23:29:30 <AnMaster> ais523, <ais523> it doesn't matte, either, because it prefers to gloss over the issue <-- what a horrible pun
23:29:42 <ais523> sorry, I should really have done /nick oerjan first
23:29:55 -!- ehird has changed nick to oerjan.
23:30:05 <oerjan> Whoa. I have a swatter now.
23:30:17 -!- oerjan has changed nick to ehird.
23:30:20 * ais523 catches oerjan in a butterfly net -----\XXXXX/
23:30:24 <ehird> Aaa! It disintegrated...
23:30:31 <ehird> The swatter requires oerjan-nature. :(
23:30:32 <AnMaster> <oerjan[ehird]> Whoa. I have a swatter now.
23:30:41 <ais523> AnMaster: your client tracks nick changes?
23:30:47 <AnMaster> ais523, "<AnMaster> my client does nick tracking"
23:33:05 <AnMaster> what sort of alarm is that supposed to be?
23:33:20 <ais523> probably the system call alarm()
23:33:30 <ais523> or whatever it's misspelt as
23:34:35 <AnMaster> why is saving one char worth it?
23:34:52 <ais523> and so it's easier to fit into an 8.3 filename, probably
23:35:01 <ehird> C and UNIX are concise.
23:35:06 <ehird> Don't like it, take a look at Windows.
23:35:08 <ais523> (that was a facetious response...)
23:35:25 <ehird> I mean the original unix spirit.
23:36:53 <AnMaster> IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1-2001.
23:36:59 <ehird> it's not the original UNIX spirit
23:37:12 <ehird> which is blindingly obvious; anything older than the early 80s isn't.
23:37:23 <AnMaster> identifiers are only unique up to 8 chars
23:37:33 <ehird> No, only guaranteed to be.
23:37:38 <Deewiant> It's six chars, case-insensitive.
23:37:40 <ehird> I doubt any implementation actually does that
23:37:46 <AnMaster> but C99 has longer identifiers
23:37:49 <Deewiant> And only for external identifiers.
23:38:01 <AnMaster> Deewiant, yes but C99 has longer ones
23:38:01 <Deewiant> C89 allows 31 characters for internal identifiers.
23:38:20 <ehird> teco woul dbe nicer if you could use something else instead of <ESC>
23:38:36 <AnMaster> ehird, write a script to do it
23:38:40 <ais523> ehird: just use xmodmap or the OS X equivalent to remap <ESC> onto, say, e
23:38:46 <ehird> teco wraps the terminal
23:38:53 <ehird> ais523: how about no :D
23:38:58 <ehird> also, that'd stop me putting e into code
23:39:15 <ehird> I'd use ctrl-c or something
23:39:29 <AnMaster> ais523, you forgot os x probably doesn't have that
23:39:44 <ais523> why not? it has everything else
23:39:50 <ehird> all keyboard layouts are regular plist files
23:39:55 <ehird> you can modify them, make your own, etc etc etc
23:40:01 <ehird> and there are apps to make it even easier (point and click)
23:40:09 <ehird> there are gui apps to make it easier
23:40:19 <ehird> it's such a rare operation that not including a gui for it isn't exactly unsurprising
23:40:25 <ehird> does ubuntu ship with an editor for keyboard layouts?
23:40:52 <ehird> I'm disappointed that N<X> repeats X N times in TECO. That's way too simple.
23:40:53 <AnMaster> ehird, does OS X include a good package manager that can be used to get lots of stuff like font editors and such btw?
23:41:00 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)).
23:41:17 <AnMaster> ehird, how do you do that for non-fixed N?
23:41:18 <ehird> MacPorts is semi-official and a few clicks away, but it's mostly useful for CLI apps.
23:41:37 -!- atrapado has quit ("Abandonando").
23:41:48 <ais523> ehird: why would you need MacPorts to do nonfixed loops in TECO?
23:41:49 <ehird> HelloHelloHelloHello*
23:42:04 <ais523> too good a message combination to ignore
23:42:06 <AnMaster> ais523, you need multi tasking
23:42:40 <ehird> we should scientifically prove that AnMaster can never recognize a joke first time round, no matter how blatant :D
23:42:51 <ais523> ehird: Ubuntu doesn't ship with such an editor, but I found one in the repos in about 20 seconds of searching
23:42:55 <ehird> he has no funny bone
23:43:06 <ehird> ais523: I found one in 15 seconds with google last time I wanted to do that :P
23:43:10 <AnMaster> ehird, I can. I enjoy discworld books
23:43:22 <ehird> AnMaster: how do we know you don't consider them non-fiction?
23:43:32 <ehird> http://www.google.com/search?client=safari&rls=en-us&q=os+x+keyboard+layout+editor&ie=UTF-8&oe=UTF-8
23:43:35 <ehird> the first one is Ukelele
23:43:38 <ehird> which I used and is great
23:43:39 <AnMaster> ehird, well they are in a way a parody of the real world.
23:43:46 <AnMaster> ehird, but fictional of course
23:43:50 <ais523> I found xkeycaps, which I haven't tried to use
23:44:01 <AnMaster> ehird, we *don't* live on A'Tuin
23:44:07 <ehird> AnMaster: yes we do!
23:44:38 <ehird> This just in: 1/0 is 0.
23:44:40 <AnMaster> ehird, hah. Actually I do believe we have been in space. And live on a world. Lets call it roundworld.
23:45:03 <AnMaster> ehird, um Funge has 1/0 = 0 too
23:45:27 <ais523> IMO, 10/ should be a reflection in 98
23:45:33 <ehird> 1/0 = 0 is probably one of the least useful values you can give
23:45:52 <ais523> I'm talking about what IMO the specs should say, not what they do so
23:46:13 <ehird> PUT IT IN FUNGE-109
23:46:13 <ais523> the INTERCAL standard library returns 0 on division by 0
23:46:21 <ais523> which is strange as it errors on overflow when doing addition
23:46:24 <ehird> I want to write cat in teco. Hm.
23:46:26 <AnMaster> maybe 109 should use option packages
23:47:07 <AnMaster> (man posixoptions on a linux system, *bsd doesn't have the man page iirc. Go check your local POSIX copy)
23:47:16 <ehird> aww, ER/dev/stdout$$ doesn't work
23:47:22 * AnMaster does have a release copy of POSIX.1-2008
23:47:32 <ehird> it has special stdin/stdout support it seems
23:47:33 <ais523> AnMaster: how much did it cost you
23:47:53 <ais523> is that one available for free, then?
23:48:10 <ais523> you're a member of posix?
23:48:20 <AnMaster> ais523, that is free yes. Interested party
23:48:23 <AnMaster> means you are on a mailing list
23:48:31 <AnMaster> ais523, it is quite different from "gold member"
23:48:33 <ais523> so can anyone get a copy just by joining a mailing list?
23:48:53 <AnMaster> ais523, you are a member of austin group mailing list
23:48:57 * ais523 wonders why anyone buys it, if that is the case
23:49:09 <AnMaster> I seem to have identity problems
23:49:11 <ehird> *IIHello, world!$@I $ @I $ $$
23:49:33 <AnMaster> ais523, well it is a bit hard to find.
23:49:48 <ehird> (inserts IHello, world!<ESC><ESC>, you could also just do @I/IHello, world!<ESC>/@I/<ESC>/<ESC><ESC>, but that's less fun)
23:50:05 <AnMaster> ais523, it isn't on the member area of austin group. You can only find the last draft there
23:50:18 <AnMaster> ais523, you have to use the same login on the main opengroup site in the bookstore section
23:50:20 <ehird> that's nice to know
23:50:25 <ais523> well, drafts are more fun to read than the actual standard
23:50:42 <AnMaster> ais523, oh? There is one useful one that is a diff against the previous version
23:51:10 <AnMaster> ais523, all of posix in one pdf make jack swap trash
23:51:26 <ehird> pfft, how big is it?
23:51:27 <ais523> why? is your PDF reader bloated?
23:51:36 * ais523 suddenly wonders if PDF is streamable
23:51:59 <ais523> most people have 14MB memory...
23:52:00 <ehird> a 14MB pdf would be like... 50MB in memory
23:52:07 <AnMaster> ais523, well I suspect kpdf renders badly
23:52:18 <AnMaster> ehird, well. it isn't "optimised" one
23:52:20 <ais523> I normally use Evince, although I have kpdf and xpdf here too
23:52:35 <ehird> Preview.app renders pdfs faster than just about anything that isn't xpdf
23:52:47 <ais523> ehird: I didn't realise xpdf was that fast
23:53:05 <ais523> oklopol: slightly smaller than an OOXML
23:53:06 <ehird> it has an x in the name, so I get the impression of a ridiculously fast but useless program
23:53:12 <ais523> and about 2/5 the size of OOXML + corrections
23:53:18 <ehird> that's the best measure of size ever
23:54:35 <AnMaster> or yes an index. "Page 1" "Page 2"
23:55:16 <ehird> I hereby officially found the Esolanger's TECO User Group.
23:55:23 <ehird> Anyone who uses TECO for writing esoprograms is welcome.
23:55:39 <AnMaster> ehird, I suggest you should require teco as main editor
23:55:44 <ehird> whoa, TECO even escapes its output for you
23:56:03 <ehird> AnMaster: the programs must be written in TECO
23:56:07 <AnMaster> ehird, "<ehird> Anyone who uses TECO for writing esoprograms is welcome." <-- Using TECO as editor to write befunge?
23:56:23 <ehird> No, using TECO as an editor to write TECO programs that don't just edit text.
23:56:31 <ehird> Although using TECO for _anything_ probably qualifies.
23:56:38 <ehird> AnMaster: why write in esolangs?
23:56:54 <AnMaster> ehird, no. Why not teco for main editor
23:57:02 <AnMaster> without writing non-text editing
23:57:09 <AnMaster> but then you said it qualifies too
23:57:17 <ehird> because then couldn't be admitted
23:57:49 <ehird> I don't use teco as my main editor
23:57:59 <ehird> "Fill up the screen with an indeterminate amount of 'a's: ^B<^Aa^A>"
23:58:07 <ehird> (^BOperating-system dependent encoding of current date
23:58:07 <ehird> RT-11:(((month*32)+day)*32)+year-1972
23:58:09 <ehird> RSTS/E:((year-1970)*1000)+day within year
23:58:11 <ehird> RSX-11:((year-1900)*16+month)*32+day)
23:58:37 <ais523> no, ((year-1900)*16)+month
23:58:43 <AnMaster> ehird, that last one look almost like befunge...
23:58:45 <ais523> but still, it's a bit strange
23:58:59 <ais523> to speed up the arithmetic slightly
23:59:06 <ais523> whilst making it harder to compare dates
23:59:14 <AnMaster> stack_push(pushStack, (funge_cell)(curTime->tm_year * 256 * 256 + (curTime->tm_mon + 1) * 256 + curTime->tm_mday));
23:59:18 <AnMaster> stack_push(pushStack, (funge_cell)(curTime->tm_hour * 256 * 256 + curTime->tm_min * 256 + curTime->tm_sec));
23:59:33 <AnMaster> well I let compiler optimise. It is smart enough