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