00:00:09 slereah__: obfuscation is something you do to code, you don't usually call languages that 00:00:10 Nah. 00:00:16 Most are just minimal 00:00:21 but false does nested functions, and suchamathing. 00:00:36 i have no idea what you mean by obfuscation here 00:00:54 I'll just read up False on the wiki 00:00:58 that it looks like line noise? ofc it does, if you want it to 00:01:10 i'll have to read too, ages since i did 00:01:16 -!- GreaseMonkey has joined. 00:01:20 slereah__: obfuscation is something you do to code, you don't usually call languages that 00:01:20 um 00:01:23 malbolge? 00:01:31 heh 00:01:50 that it looks like line noise? ofc it does, if you want it to <-- oh we are talking about perl? 00:01:54 malbolge might be an obfuscated language 00:01:56 Heh. 00:02:04 perl has an entry in esolang wiki, i think :) 00:02:10 :D 00:02:11 Yes, there is 00:02:18 http://www.esolangs.org/wiki/Perl 00:02:26 Although the follow up has not arrived! 00:02:34 Is there a good one for J or K? 00:03:23 Making substitution rules in Schönfinkel's combinator is hard. 00:03:47 It seems it's hard to replace variables when there aren't variables anymore :o 00:05:05 heh, what is that perl program? It just prints 30. 00:05:32 it's a metaphore, apparently! 00:05:55 lament, it actually works! 00:05:56 !?!?! 00:06:16 i don't know if it works or not, but it prints 30 00:06:35 plenty of stuff which prints 30 doesn't work. 00:07:18 Does Linux have a Perl interpreter? 00:07:34 I just typed that in the console shell, and it's doing nothing :o 00:07:38 Not even an error message 00:08:14 slereah@Vixem:~$ perl -wlne'END{print$n}eof&&$n++;/([^<]+)/i&&$n--' * 00:08:14 <slereah__> 929 00:08:16 <slereah__> D: 00:08:19 <slereah__> This isn't 30. 00:08:23 <slereah__> This isn't 30 at all! 00:09:01 <oklopol> i spot a regex matching the contents of the title 00:09:12 <oklopol> but i don't really know perl 00:09:51 <slereah__> And I really don't know Perl 00:10:00 <oklopol> i :) 00:10:04 <oklopol> ... 00:10:06 <oklopol> :) 00:10:22 <oklopol> i'm such an egoist i like to type an "i" and just look at it 00:10:28 <oklopol> sometimes i forget to delete it 00:10:47 * SimonRC grins at the censoring: http://answers.yahoo.com/question/index;_ylt=Ah4pBKeFFHxVdUWNrNoikqGIxQt.;_ylv=3?qid=20080320073519AA7zuRZ 00:10:55 <SimonRC> "What is moby-***** connection to romanticism?" 00:18:53 <oerjan> lament: i think that perl program counts the number of files in the current directory, minus the number of lines in those files containing something matching /<title>([^<]+)/i 00:19:37 <lament> oh! useful. 00:20:02 <oerjan> i'm sure someone has needed it at some point, since it was invented :) 00:20:24 <lament> not invented, discovered! 00:20:48 <slereah__> You don't write programs that you need to post them on the esowiki 00:21:17 <oerjan> slereah__: no parse 00:21:26 <oklopol> ditto 00:22:03 <slereah__> Wut? 00:22:25 <lament> oerjan: imagine somebody looking with a telescope into a vast universe of perl one-liners. "Hey! That one could be useful for something, one day! Let's write it down!" 00:22:32 <oerjan> slereah__: your sentence is hard to get the meaning of, and possibly ungrammatical 00:22:51 <slereah__> Program that you actually need XOR program that you post on the esowiki 00:23:06 <slereah__> Well, forgot the turnstile at the beginning of the sentence. 00:23:35 <oerjan> turnstile? is may client censoring characters i wonder 00:23:52 * oerjan brings up the logs 00:24:42 <oerjan> hm no, still incomprehensible in proper unicode 00:25:37 <oerjan> lament: sounds like Erdos's big book 00:25:50 <lament> erdos had a book? 00:26:12 <oerjan> no he had a metaphor of a Big Book that contained all interesting mathematics 00:26:48 <oerjan> "God has the Big Book, the beautiful proofs of mathematical theorems are listed here." . Paul Erdos 00:27:41 <oerjan> now for the Perl book we might want to ask the competition instead. 00:28:09 <SimonRC> That reminds me of the reasoning that people should be able to copyright numbers. 00:28:20 <SimonRC> large ones with no easy pattern, at least 00:28:37 <SimonRC> imagine a huge pile of sand... 00:29:08 <SimonRC> on one grain of that sand is enscribed a novel that will sell 100,000 copies, if published 00:29:34 <SimonRC> if you find that grain of sand and publish the novel, you should have the right to the money 00:30:07 <SimonRC> because though you didn't create it, you did a hell of a lot of work and society benefited from it 00:30:23 <SimonRC> the analogy with copyrighting the numbers that represent movies etc should be obvious 00:30:48 <lament> that's not a good argument for copyrighting. That's a good argument for _some_ form of compensation. 00:30:48 <oklopol> sure, but it was fairly obvious without the analogy too :) 00:30:59 <oklopol> it's just a number can represent anything 00:31:06 <SimonRC> lament: yes 00:31:20 <oklopol> this is why we always simultaneously copyright the way in which to interpret the number 00:31:41 <SimonRC> huh? 00:32:03 <oklopol> you can have an infinite number of numbers representing a certain book 00:32:14 <SimonRC> ah, ok 00:32:41 <slereah__> Heh. That reminds me. 00:32:57 <slereah__> I once saw one of those IQ-test type of question 00:33:09 <slereah__> With the following number of a sequence. 00:33:18 <slereah__> I then thought "This is fucking stupid". 00:33:30 <slereah__> And found a handful of numbers that fitted. 00:33:59 <SimonRC> indeed 00:34:22 <SimonRC> with polynomial curves, you can make any next number fit 00:34:39 <oerjan> A given IQ-test only works within a range of IQs i think. you mustn't be so smart as to overanalyze it... 00:34:51 <slereah__> The following number of <1,4,9,16> was then 27, 90, 27 again, 31, 17, 81, 20.25 00:35:01 <slereah__> Also "any number", "any set" 00:35:03 <slereah__> And 25. 00:35:50 <slereah__> The solutions were the following : http://paste-it.net/7475 00:35:59 <oerjan> now that is rather silly. 25 _is_ the obvious answer. 00:36:57 <slereah__> I was rather amused that p(n) + f(n-1) fitted the description :D 00:37:44 * oklopol is not 00:42:24 <oklopol> Not just toy programs have been written in False, the list of programs in the distribution includes various useful convertion utilities, a compression program, Life, an expression evaluator, a module ripper, queens, tic-tac-toe, a html-table generator, and, probably the biggest False program ever, a complete working BreakOut clone. 00:42:28 <oklopol> breakout :o 00:42:50 <oklopol> what are these people... 00:42:58 <oklopol> i should make something fun too 00:43:10 <slereah__> A party? 00:43:33 <SimonRC> Does false have anything that can model a TM tape? 00:44:27 <SimonRC> I thought it only had 26 variables and the stack 00:44:44 <SimonRC> though you can peek arbitrarily far down the stack, that isn't very nice. 00:44:44 <vixey`> I finished a Prolog interpreter in Scheme 00:44:52 <vixey`> anyone want it? 00:45:08 <slereah__> Sure, why not 00:45:14 <vixey`> http://paste.lisp.org/display/57253,6/raw 00:45:47 * vixey` failed at coding a WAM a couple times.. :( 00:47:13 <SimonRC> vixey`: "WAM"? 00:48:00 <vixey`> that's the typical VM people compile Prolog, the first Prolog compiler was VAM based 00:48:03 <vixey`> oops WAM 00:48:08 <vixey`> VAM is a vastly different beast 00:48:45 <SimonRC> ok 00:48:47 <vixey`> compile Prolog to* 00:49:08 <vixey`> this code is really slow for making magic squares :/ 00:49:36 <AnMaster> oklopol, make breakout in befunge! 00:49:59 <SimonRC> befunge lacks non-blocking input 00:50:02 <vixey`> you can actually do interactive realtime graphic stuff with befunge? 00:53:15 <AnMaster> vixey`, sure 00:53:21 <AnMaster> vixey`, use a fingerprint 00:53:34 <AnMaster> vixey`, there is one for ncurses 00:53:37 <AnMaster> should work well 00:54:50 <AnMaster> SimonRC, so with NCRS fingerprint you get non-blocking indeed :D 00:55:03 <AnMaster> SimonRC, and clients may have that anyway 00:55:09 <AnMaster> err 00:55:12 <AnMaster> interpreters 00:55:14 * AnMaster is tired 00:55:29 <AnMaster> look, 1y will tell you what kind of IO is used 00:55:44 <AnMaster> and NCRS will always be non-blocking 01:11:09 -!- BMeph has joined. 01:13:09 <SimonRC> BMeph: yo 01:13:32 <BMeph> SimonRC: Hey 01:35:11 -!- timotiis has quit ("leaving"). 02:01:45 * SimonRC goes 02:04:19 -!- vixey` has changed nick to vixey. 02:12:57 -!- jix has quit ("CommandQ"). 02:22:36 <vixey> an Algol implementation with the J operator would be cool 02:23:10 <vixey> has nobody implemented ISWIM yet? :S 02:24:38 <GreaseMonkey> " "90" "26* v 02:24:38 <GreaseMonkey> p < 02:24:55 <GreaseMonkey> ^ program to freeze fully-compliant befunge-98 interpreters 02:32:15 -!- puzzlet has joined. 03:30:00 -!- puzzlet has quit (Remote closed the connection). 03:30:05 -!- puzzlet has joined. 04:05:18 -!- Corun has quit ("This computer has gone to sleep"). 04:42:53 -!- olsner has joined. 05:36:24 <RodgerTheGreat> pikhq: http://www.nonlogic.org/dump/images/1206074168-preview4.png 05:42:10 <pikhq> :D 05:49:52 <oerjan> new page? 05:56:24 <RodgerTheGreat> possibly 05:57:01 <RodgerTheGreat> I'm thinking about going back and reorganizing the panel layouts a bit- I think the current format is a little too rigid and boring 05:57:16 <RodgerTheGreat> so, for now, all bets are off on page numbers 05:58:45 <RodgerTheGreat> anyway, goodnight folks 05:59:08 -!- RodgerTheGreat has quit. 07:03:09 -!- BMeph has quit ("calls it a night"). 07:10:05 -!- oerjan has quit ("leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:06:40 <Sgeo_> G'night all 08:07:13 -!- Sgeo_ has quit (Read error: 104 (Connection reset by peer)). 08:51:41 -!- lifthrasiir has joined. 09:21:02 -!- rutlov has joined. 09:29:02 -!- rutlov has left (?). 10:04:37 -!- GreaseMonkey has quit ("Read error: 110 (Connection chickened out)"). 12:36:33 -!- timotiis has joined. 13:16:10 -!- Corun has joined. 13:23:24 -!- sebbu has joined. 13:40:40 -!- Taggard has joined. 14:04:55 -!- Taggard has left (?). 14:17:03 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 14:18:03 -!- bsmntbombdood has joined. 14:30:21 -!- jix has joined. 14:37:35 <Judofyr> AnMaster: Check out http://yr.judofyr.net now 14:37:40 <Judofyr> added some more data :) 14:40:17 -!- Corun has quit ("This computer has gone to sleep"). 14:47:20 * AnMaster tests 14:47:50 * AnMaster waits while browser is locked up for about 30 seconds after clicking add button 14:48:10 <AnMaster> Judofyr, apart from the slow speed it looks very nice 14:48:30 <AnMaster> Judofyr, my connection is 8 mbit down / 1 mbit up so it isn't that slow 14:48:30 <Judofyr> yeah, it sucks to bridge :( 14:48:44 <Judofyr> it's rather the connection to the server 14:48:46 <AnMaster> ADSL from Swedish Tele2 14:49:15 <Judofyr> you asks for data -> server fetches from api.yr.no -> server sends them to you -> you receive them 14:49:28 * Judofyr want cross-site Ajax! 14:49:32 <oklopol> Judofyr: the speech bubble goes under the "weather everywhere" title 14:49:44 <Judofyr> oklopol: I know 14:49:55 <oklopol> not that nice for us scandinavians 14:50:05 <Judofyr> yeah 14:50:08 <Judofyr> I'll fix it 14:50:44 * Judofyr loves Firebug 14:50:49 <AnMaster> Judofyr, what about google maps bit then? 14:51:13 <Judofyr> the maps shouldn't load slow, or that's not my fault 14:51:24 <AnMaster> Judofyr, odd btw, google maps fails to load some of the bits, there are some grey rectangles in misc places 14:51:34 <AnMaster> like one near the top and one just in the middle 14:51:42 <AnMaster> zooming in and then out again fixes it 14:51:48 <AnMaster> waiting a long time doesn't 14:51:58 <Judofyr> sometimes the map won't load in Safari 14:52:07 <AnMaster> Judofyr, not safari, konqueror 14:52:11 <Judofyr> zooming in and out again fixes that also 14:52:22 <AnMaster> Judofyr, it doesn't fix it always btw 14:52:26 <AnMaster> but often it does 14:52:36 <Judofyr> AnMaster: noted. just wanted to say my problems 14:52:49 <AnMaster> oh changing to sattelite mode helps all the time 14:53:11 <AnMaster> though the satellite data over Örebro area is crappy 14:53:41 <Judofyr> AnMaster: you're interested in Örebro :P 15:40:29 -!- vixey has quit ("Leaving"). 16:26:42 -!- puzzlet_ has joined. 16:27:27 -!- puzzlet has quit (Remote closed the connection). 16:46:53 <AnMaster> Judofyr, just random, and not too far away from where I live (I live out in the middle of nowhere though, but Örebro is the closest large city) 16:49:00 -!- ais523 has joined. 17:30:51 -!- Sgeo has joined. 18:00:03 <ais523> hmm... my entire terminal window is just full of PINGs, PONGs and Sgeo's join message 18:00:37 <ais523> anyone care to start a conversation? 18:02:46 -!- Hiato has joined. 18:03:12 <Hiato> Hello, world! ;) 18:03:28 <ais523> Hiato: hello! 18:03:43 <ais523> were you logreading, or was that just good timing? 18:03:55 <Hiato> good timing I suppose 18:04:02 <Hiato> no logs for me - yet :P 18:04:04 <Hiato> why? 18:04:21 <ais523> I had got bored of a terminal-full of PINGs and PONGs and asked someone to say something 18:04:49 <Hiato> oh, lol. Well then, fate has it's means :P 18:05:05 -!- slereah_ has joined. 18:05:18 <ais523> hello slereah_ 18:05:28 <Hiato> ditto 18:05:55 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 18:06:02 <ais523> suppose you have a certain number of people inside and outside an IRC channel 18:06:18 <ais523> each of which likes each other person a certain amount, and has a certain boredness 18:06:19 <Hiato> (on a side note, any opinions http://rafb.net/p/5Uodtk56.html ) 18:06:52 <ais523> challenge: given that bored people are more likely to say hello, and people are more likely to say hello to people they like, and people join and part at random, create an esolang 18:07:07 <Sgeo> Delayed, but if I started the conversation, you know what it would be about.. 18:07:08 <Sgeo> lol 18:08:05 <Hiato> heh, now there's an idea. Not sure how one could influence branching/looping if people (variables?) leave and appear at random though 18:08:23 <ais523> Sgeo: actually, I've been meaning to ask you about that 18:08:31 <Sgeo> ais523, oh? 18:08:36 <ais523> is there any way in PSOX to read from multiple input sources at once? 18:08:50 <Sgeo> ais523, you could switch between file descriptors 18:08:54 <ais523> i.e. read user input and a socket simulataneously, and get the first message from either? 18:09:00 <Sgeo> oh 18:09:08 <Sgeo> currently, no 18:09:11 <ais523> Sgeo: that would require knowing which one would be next to send a message 18:09:28 <ais523> the lack of ability to do that is holding up my INTERCAL IRC client 18:09:31 -!- Corun has joined. 18:10:01 <Sgeo> ais523, you're writing an INTERCAL IRC client w/ PSOX? 18:10:02 <Sgeo> Cool! 18:10:59 <ais523> Hiato: I've looked at your paste, it looks interesting but I don't really understand the syntax 18:11:26 <ais523> Sgeo: I was thinking of implementing the CLC-INTERCAL syscall library using C-INTERCAL's ffi 18:11:48 <Sgeo> ais523, so not PSOX, you're wondering if PSOX solved a problem? 18:12:03 <Hiato> heh, probably entirely my fault, I didn't really intend this so much as a publication, but an internal doccy for my own benefits. Would you like me to explain, or would you prefer to leave it as a mystery? :P 18:12:33 <ais523> Hiato: an explanation would be interesting; Sgeo: I was wondering how PSOX handled the situation 18:12:55 <ais523> Sgeo: because it's quite a complicated thing to do in many languages 18:13:03 <ais523> the relevant syscall is 'select' 18:13:16 <ais523> in POSIX 18:13:55 <Sgeo> Well, all I know is that Windows select() can only use things from Winsock 18:14:10 <Sgeo> So incorporating select() into PSOX would be problematic 18:14:20 <Sgeo> (The only reason I know that is from the Python docs) 18:14:39 <ais523> yes, Windows isn't very good at selecting by default 18:14:58 <ais523> that's actually a big problem, though, because some way to select is necessary to write an IRC client 18:15:15 <Hiato> Well, lets see. Look at every chunk of code as a function. It all returns a value of some kind or another. Whether the value is stored, where it is stored and for how long is entirely up to the user. the basic structure is this {Operation} {Variable/Constant} ( {arguments/code} ) {imperative/questionative/no signal} 18:15:35 <ais523> (it's either that, or using a second IRC username to repeatedly ping the one you're logged in on, thus ensuring that the first one gets data at an acceptable rate, and using a separate process for input from the user) 18:15:57 <Hiato> so, the various operations are listed in the file, then, the variable is a variable of the form {lower case letter}{number} eg z7643 or a2 18:16:22 <ais523> (actually, I just thought of a simpler way to select, which is to use three processes, two in input loops that communicate to the third asynchronously) 18:16:22 <Hiato> finally, the arguments may be a list of variables seperated by a comma, or more code in the same form 18:16:38 <Sgeo> ais523, I suppose asynchnorous reading would also work? 18:16:43 <Sgeo> Maybe something for PSOX 1.1 ... 18:16:59 <ais523> which leads to the nested pattern that things like + and - create? 18:17:05 <Hiato> yep 18:17:12 <Hiato> (if that was aimed at me) 18:17:14 <ais523> Sgeo: that works but uses up more CPU time than it ought to 18:17:27 <ais523> Hiato: it was 18:17:51 <ais523> having two conversations in the same channel can be confusing at times, though 18:18:04 <ais523> especially if other people say something immediately after you've made a typo 18:18:19 <ais523> I have to get better at touch-typing to do this properly... 18:18:31 <SimonRC> hi 18:18:33 <Hiato> thus, we can assign a10 to 65 through the following 18:18:34 <Hiato> : 65 (a1) 18:18:34 <Hiato> that tells us to use the assignment operator, and apply 65 to a1 using it. This does infact return something (nil) but it is un-important so we can disregard it 18:18:50 <Sgeo> I don't touch type 18:19:06 <Sgeo> I used to hunt-n-peck, but I've done that for so many years that it's now know-and-peck 18:19:07 <Hiato> meh, I made a typo too ;) 18:19:09 <ais523> hello SimonRC 18:19:15 <SimonRC> Sgeo: yes 18:19:46 <ais523> Hiato: many languages with assignment statements return the value that was assigned 18:19:56 <ais523> s/assignment statements/assignment expressions/ 18:20:25 <ais523> Perl is slightly different, and returns the variable that was assigned to 18:20:38 <ais523> it comes to much the same thing, except in cases like ($a=4)++ 18:20:42 <SimonRC> so an assignment is an lvalue? 18:20:57 <ais523> SimonRC: yes 18:21:09 <Hiato> hrmm... yeah, something worth considering, but It doesn't really matter because you can do multiple assignments using lists. :64(a1,a2,a3) in place of grabbing the returned value like this- :(:65(a1))(a2) etc 18:21:32 <ais523> one of the most famous lines of C code went like this: 18:21:43 <SimonRC> op, value, variable is a funny order to put it in 18:21:45 <ais523> while(*dest++=*src++); 18:21:52 <SimonRC> Sgeo: yup 18:21:54 <SimonRC> oops 18:21:57 <SimonRC> ais523: yup 18:22:07 <ais523> that's a one-liner strcpy implementation 18:22:15 <Hiato> SimonRC: yeah, but it's nice and different for a change ;) 18:22:17 <ais523> which relies on the return value of = 18:22:30 <SimonRC> Hiato: it's a bit forth-like 18:22:39 <SimonRC> Forth has value, var, op 18:23:05 <Hiato> well, I'm afraid you have me there, I've never really heard of Forth before (well, I've *heard* , but that's as far as it goes) 18:23:29 <ais523> when concatenative languages have variables, they generally go value, [var], op 18:23:35 <Hiato> asi523: I should just probably nod :P 18:23:43 <Hiato> about the earleir c line 18:24:00 <SimonRC> no, you must understand 18:24:02 <ais523> it isn't that difficult to understand 18:24:15 -!- Judofyr has quit. 18:24:39 <ais523> *ptr++ returns the memory location that ptr points to, and then increments ptr 18:24:51 <Hiato> oooh, aaah 18:24:56 * Hiato sees the light 18:25:05 <Hiato> ingenious :) 18:25:11 <SimonRC> specifically, ++ increments pointer after evaluation but before the next sequence point 18:26:13 <ais523> ah, the whole 'sequence points' thing, which fugged up comp.lang.c for months despite being in the FAQ 18:26:49 <ais523> people kept on asking about the infamous statement i=i++; (which doesn't actually do anything defined, because you're trying to assign two different values to i simultaneously) 18:27:19 <SimonRC> indeed 18:27:51 <SimonRC> or things like (i++ * i++) 18:27:52 <Hiato> well, can't it be broken down recursively. i = i + 1 forever onwards ? 18:28:12 <ais523> it's defined to be undefined behaviour in the C standard 18:28:25 <SimonRC> I found a good way of showing the ambiguity: 18:28:29 <ais523> which means that a C compiler can do anything it likes, even if it doesn't make logical sense, on encountering the statement 18:28:52 <Hiato> oh, I see. Hrmm... interesting that. Predefined ambiguity ;) 18:28:53 <ais523> most compilers either do nothing or add 1 to i 18:29:03 <oklopol> hmm, can it actually decide to do *neither*? 18:29:07 <oklopol> that i didn't know 18:29:15 <ais523> oklopol: yes 18:29:19 <oklopol> Hiato: most languages have that 18:29:28 <SimonRC> for example, if the compiler keeps a flag on each variable that is set if the variable must be incremented after the current expression, it would be expected to only increment once in the expression (i++ * i++) 18:29:32 <ais523> the archetypal example is 'demons flying out of the user's nose' 18:29:42 <SimonRC> ais523: indeed 18:29:42 <ais523> no known compiler does that, but it's allowed by the Standard 18:29:45 <Hiato> really? Shows where I've been (glances over shoulder at rock) 18:30:05 <oklopol> :) 18:30:12 <SimonRC> ISTR that for a while gcc would launch nethack if it encountered an unknown #pragma, too 18:30:25 <ais523> it was any pragma, if I remember 18:30:30 <SimonRC> ok 18:30:38 <ais523> because #pragma can do anything as long as the implementation documents it 18:30:42 <SimonRC> indeed 18:30:51 <ais523> but I think nethack was something like third in the list of things it tried to do 18:31:05 <ais523> it first attempted to start Emacs running a Towers of Hanoi simulation 18:31:08 <SimonRC> heh 18:31:26 <Hiato> awesome :) 18:31:34 <ais523> presumably the nethack was a fallback for if Emacs wasn't installed 18:32:11 <SimonRC> lol: http://www.galactanet.com/comic/view.php?strip=307 18:32:19 <SimonRC> (a good comics strip generally 18:32:20 <SimonRC> ) 18:32:36 <ais523> actually, I just looked it up, it was nethack, then rogue, then towers of Hanoi on Emacs 18:32:57 <ais523> and if all of those failed, it printed "You are in a maze of twisty compiler features, all different." 18:33:26 <Hiato> awesome comic there :) 18:36:53 <ais523> hmm... does anyone here know if it's possible to open a write handle to a socket with one process, and a read to the same socket with a different process 18:37:09 <ais523> as in, connecting to freenode on port 6667, but having one process writing to it and another process reading? 18:37:36 <oklopol> who here did J? 18:37:46 <oklopol> or was it faxathisia 18:38:38 <ais523> ehird was talking about it a lot, but I'm not sure whether they used it 18:39:07 <oklopol> doubt they did 18:39:27 * ais523 is inclined to agree 18:39:42 <oklopol> i recall it was mostly K they were interested in 18:39:54 <oklopol> am i supposed to say "were" or " they was" :P 18:40:09 <oklopol> i like the latter <3 18:40:16 * ais523 usually says 'they were' along the lines of 'you were' 18:40:36 <ais523> but I prefer 'themself' in the singular context 18:40:52 <oklopol> yarrr 18:43:18 <oklopol> the two problems with me learning new languages are that i always have to read all the documentation before i even start considering using the language, and that i usually never learn to use the interp/compiler 18:43:42 <oklopol> god there's a lot of foreigns 18:44:44 <ais523> oklopol: if you read all the C-INTERCAL documentation, you would know how to use the compiler 18:44:50 <ais523> I spent ages writing it 18:45:12 <ais523> it's decent as a reference source as well, although not as good at being a tutorial 18:47:56 <oklopol> i'll put intercal on my list of implementing-something-in 18:49:43 <ais523> there's already Unlambda and Befunge-93 interps in INTERCAL 18:51:09 <oklopol> no brainfuck? 18:51:36 <ais523> suprisingly, no 18:51:59 <ais523> you have an unlimited number of stacks available, so a brainfuck interp shouldn't be very difficult 18:52:30 <oklopol> i'll make on as my test project, well, try to make on at least 18:52:37 <oklopol> *one 18:52:49 <ais523> dealing with the I/O model is likely to be one of the harder parts 18:53:21 <ais523> by the way, http://intercal.freeshell.org has the manuals for CLC-INTERCAL and C-INTERCAL, and downloads for the implementations 18:53:37 <oklopol> this isn't intercal day, this is jayday 18:53:49 <ais523> there are a lot of other references, but they're mostly out of date 18:54:07 * ais523 goes to write an IRC bot in Thutu 19:02:58 -!- ais523 has quit ("for testing, will be back soon"). 19:03:25 -!- ais523 has joined. 19:22:54 -!- Tritonio_ has joined. 19:26:52 -!- Hiato has quit (Read error: 110 (Connection timed out)). 19:37:57 <ais523> grr... why is it so hard to connect a program's stderr and stdout to telnet using shellscript? 19:39:26 -!- Corun has quit ("This computer has gone to sleep"). 19:51:57 -!- thutubot has joined. 19:52:11 <ais523> \hello 19:52:28 <Tritonio_> hi 19:52:39 <ais523> hmm, it doesn't work 19:52:42 <Tritonio_> why is it hard? 19:52:59 <ais523> partly because I'm having problems linking the bot to freenode in both directions 19:53:10 <ais523> and also I've probably made a mistake in one of my regexps 19:53:20 <ais523> \quit 19:53:44 -!- thutubot has quit (Remote closed the connection). 19:54:33 <Tritonio_> do you use a named pipe? 19:55:11 <ais523> I tried that, but it didn't work for some reason 19:55:33 <ais523> the info went down the named pipe OK, but perl wasn't reading telnet's output for some unknown reason, not even when I piped them together directly 19:56:01 <ais523> maybe telnet was sending control codes on stdout that shouldn't have been involved, or something like that 19:56:03 <Tritonio_> O_o 19:56:09 <ais523> or maybe it just wasn't flushing its output 19:56:31 <Tritonio_> then maybe you should rewrite e telnet app... ;-) 19:58:03 -!- Tritonio_ has quit (Remote closed the connection). 20:07:37 <oklopol> i love j already 20:08:08 <ais523> neat, isn't it? 20:10:20 -!- puzzlet has joined. 20:13:07 <oklopol> fun stuff, although oklotalk still would own its ass if only i managed to write an efficient interp for it 20:13:16 <oklopol> at least i think it would 20:13:51 <oklopol> oklotalk is very much like J, K and APL, but with pattern matching and OOP if you want the use them 20:14:09 <oklopol> well, not exactly OOP... message passing 20:14:58 <oklopol> just so general you can easily write functions for inheritance and suh 20:14:59 <oklopol> *such 20:15:09 <ais523> recursive regexps need a proper sort of replace ability 20:15:22 <oklopol> hmm? 20:15:26 <oklopol> replace? 20:15:57 <oklopol> recursive here means you can do x = (.*); y = x|a x c? and such? 20:16:00 <oklopol> or just plain recursion 20:16:04 <oklopol> i mean 20:16:08 <oklopol> what do you mean? :) 20:16:36 <oklopol> my example was an example of just being able to call other regexes, whereas recursion would just be calling the current regex 20:16:51 <oklopol> probably didn't come through 20:17:05 <oklopol> eh 20:17:22 <oklopol> my example was an example of being able to call any regex from inside a regex 20:17:30 <ais523> a recursive regex lets you use part of the regex inside itself 20:17:41 <oklopol> what does that mean 20:17:43 <oklopol> part of it? 20:18:22 <oklopol> like, you can tag a certain place in its parse tree and reuse it, like reg = X@(a | b) | (X)+ 20:18:29 <oklopol> :D 20:18:34 <ais523> e.g. a regex to match nested angle brackets could be (|<$1>$1) 20:19:25 <ais523> that is, a string consists of nested angle brackets if either it's empty, or it's a string consisting of angle brackets surrounding a string consisting of nested angle brackets followed by a string consisting of nested angle brackets 20:19:27 <oklopol> $1 meaning what exactly 20:20:15 <oklopol> oh, $1 means the whole thing 20:20:38 <oklopol> it's just $1 should mean the *matched* thing, not the actual regex 20:21:03 <oklopol> so... whatever it matched, we'll call that M, would have to be of the form M = <M> 20:21:10 <oklopol> which is impossible, unless the string is infinite 20:21:21 <oklopol> i may be totally clueless here, just wondering 20:21:26 <ais523> in Cyclexa (my work-in-progress regex language) 20:21:33 <ais523> $1 means the code of group 1 20:21:41 <oklopol> ah 20:21:41 <ais523> whereas \1 means the text matched by group 1 20:21:46 <oklopol> oh, right, i see 20:22:08 <ais523> so (|<$1>$1) 20:22:13 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 20:22:19 <oklopol> can it have infinite strings and (|<\1>\1)? :) 20:22:42 <oklopol> haha 20:22:49 <oklopol> \w 20:22:50 <ais523> I'm not entirely sure what happens if you put \1 inside group 1 itslef 20:22:57 <oklopol> for cardinals 20:22:59 <oklopol> like 20:23:00 <oklopol> omega 20:23:02 <oklopol> whaddyacallit 20:23:29 -!- Corun has joined. 20:23:46 <oklopol> well, that should match the string infinity*"<" ++ infinity*">", for instance 20:24:20 <ais523> sorry, could you write the original example again? I got slightly confused due to the way my low-tech IRC client works 20:24:34 <oklopol> (|<$1>$1) 20:24:36 <oklopol> this one? 20:24:42 <ais523> yes 20:25:02 <ais523> it's equivalent to (|<(|<$2>$2)>(|<$3>$3)) 20:25:06 <ais523> and so on 20:25:23 <oklopol> yes 20:25:34 <ais523> now, one of Cyclexa's features is that it's possible to match antitext 20:25:43 <oklopol> meaning? 20:25:51 <ais523> so instead of removing text from the input string, you add text to the input string 20:26:08 <ais523> this, and one extra feature, allow Cyclexa to be TC with an empty input string 20:26:54 <oklopol> probably even with just one regex 20:27:06 <ais523> a program is just one regex 20:27:25 <oklopol> ah okay 20:27:48 <oklopol> can you do something like "don't match this at all" 20:27:49 <oklopol> like a nop 20:27:55 <ais523> the syntax for antitext is, e.g. (abc)^ adds (abc) to the group 20:28:01 <oklopol> i mean, you could make regex variables like that, quite neatly 20:28:04 <ais523> probably, it depends on exactly what you want 20:28:07 <oklopol> like 20:28:22 <ais523> (abc)^+ does nothing to the input string 20:28:26 <oklopol> that you could have all your regexps in $n's 20:28:34 <oklopol> without having to declare them as you use the 20:28:36 <oklopol> "declare" 20:28:59 <ais523> for predeclaring groups, doing something like (''(group)(group)(group))? would do 20:29:11 <ais523> '' is like fail in Prolog; it never matches anything 20:29:12 <oklopol> ''? 20:29:17 <oklopol> ah 20:29:22 <oklopol> why not _ 20:29:24 <oklopol> hmm 20:29:29 <oklopol> not sure how that's good. 20:29:39 <oklopol> just felt it was a failure character :P 20:29:40 <ais523> because it's an empty character class 20:29:52 <ais523> [abc] becomes 'abc' in Cyclexa 20:30:14 <ais523> but the apostrophes are cleverer than []; 'ab+c' matches a, c, or any number of bs 20:30:14 <oklopol> that's actually pretty neat, i always hated that in regexes 20:30:30 <oklopol> having nestable characters for an unnestable group 20:30:55 <ais523> 'a(bc)d' matches a, d, or bc 20:31:08 <ais523> and so is equivalent to (a|bc|d) 20:31:17 <oklopol> yep 20:31:24 <ais523> in fact, (??a|bc|d) because the group shouldn't be given a group number (that's what the ?? does) 20:31:43 <ais523> I overload a lot of characters, particularly ^$+*?\ 20:31:54 <ais523> they can mean many different things in different contexts 20:32:04 <oklopol> does (??a (b c)) still give the inner group a number? 20:32:08 <ais523> because I don't like character sequences that have no sensible meaning 20:32:11 <ais523> yes 20:32:28 <ais523> you can also give a group a particular number like (?4this) 20:32:37 <oklopol> have ?!?!?!!?!? for nor giving nested ()'s group number either 20:32:39 <oklopol> *not 20:32:45 <oklopol> *numbers 20:33:01 <ais523> maybe that would be (?^nonumber(nonumbereither)) 20:33:14 <ais523> that would be more orthogonal, because the ^ has a meaning of 'not' in many group modifiers 20:33:21 <ais523> and ? sets a group number 20:33:48 <oklopol> yes, also, ^ is one of the characters that have a "nesting" feeling in them, i mean, in my head 20:34:06 <oklopol> usually exactly that of unnesting stuff 20:34:27 <ais523> one thing that amuses me is that the ^ and $ are implemented completely differently to each other in the Cyclexa regex ^abc$ 20:34:28 <oklopol> well, because of how it looks, and the fact it does that in oklotalk, now that come tpo i think of it :) 20:34:30 <oklopol> *to 20:34:41 <ais523> the $ means 'only match at end of string' in this context 20:34:58 <ais523> and the ^ means 'don't put an implied .* at the start of the program' in this context 20:35:28 <oklopol> you switched their meanings? 20:36:04 <ais523> no, a ^ at the start of a regex still anchors it to the start of the string, and a $ at the end still anchors it to the end of the string 20:36:13 <ais523> they're just implemented in really different ways 20:36:32 <ais523> because Cyclexa basically treats a string as a stack of characters, whose top is at the start of the string 20:38:00 <ais523> http://pastebin.ca/951922 20:38:13 <ais523> what I've done so far on the Cyclexa spec and implementation 20:38:29 <ais523> but the implementation isn't done enough to even be able to interpret a single program 20:38:38 <ais523> so far it's just the parser, which was hard enough to do 20:40:26 <oklopol> is C<...> for cyclexa? 20:40:29 <oklopol> i mean 20:40:41 <oklopol> is that your "cyclexa regex" bracketing 20:41:01 <ais523> because strings of +*?^ often tokenize in many different ways 20:41:01 <ais523> and there are precedence rules to say which way is correct 20:41:01 <ais523> it's POD 20:41:01 <oklopol> i usually ask before reading the next line explaining it. 20:41:05 <ais523> a markup language normally used to document Perl programs 20:41:16 <ais523> it's equivalent to <tt>...</tt> in HTML 20:41:28 <ais523> so basically just marking the code as code 20:41:38 <oklopol> i c 20:42:26 <oklopol> # 20:42:26 <oklopol> In some cases, a single Cyclexa expression can completely 20:42:26 <oklopol> # 20:42:26 <oklopol> translate one language to another, although this is unusual. 20:42:33 <oklopol> what prevents it? 20:42:55 <ais523> the translation is often too hard to manage by regex alone 20:43:04 <ais523> for instance, imagine compiling BASIC into C 20:43:10 <oklopol> ah, you mean, in practise. 20:43:20 <ais523> you'd have to figure out which type each variable was, and add declarations 20:43:49 <oklopol> well yeah, but you *can* do it for any language, right? 20:44:02 <ais523> well, Cyclexa is TC 20:44:16 <oklopol> that doesn't mean you can do any translation, necessarily 20:44:21 <oklopol> but you can? 20:44:21 <ais523> so in theory it can do any compilation from one language to another that's theoretically possible 20:44:30 <ais523> some translations aren't possible 20:44:41 <ais523> such as TwoDucks -> Malbolge, for instance 20:44:58 <slereah_> TIME TRAVELLING MALBOLGE 20:45:01 <slereah_> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH 20:45:23 <oklopol> i meant, can you do any translation you can do in, say, perl? 20:45:48 <oklopol> tcness doesn't exactly say you can, it comes to questions about io 20:46:05 <oklopol> i mean 20:46:12 <ais523> it's BF-complete as well, for that matter 20:46:15 <oklopol> cyclexa programs take a string and return a string, basically? 20:46:21 <ais523> yes 20:46:25 <oklopol> hmm, yeah, that's a better way to put it 20:46:34 <oklopol> i always forget we already have that concept too 20:46:35 <oklopol> :P 20:46:56 <ais523> there's an input command 20:47:10 <ais523> there's going to be some way to do output too, but I haven't yet figured out the details 20:47:52 <oklopol> btw, is there a purely functional language, that does io by having two infinite lists, popping heads from which, and putting heads to which, perform input and output 20:48:02 <oklopol> so that you'd carry those around and at recursion, do io 20:48:07 <oklopol> perfectly pure 20:48:11 <oklopol> and doesn't need monads 20:48:18 <ais523> that's basically a monad that you've defined there 20:48:22 <slereah_> Heh. 20:48:25 <oklopol> :P 20:48:27 <ais523> just with an explicit monad chain 20:48:28 <slereah_> Zing! 20:48:30 <oklopol> i see 20:48:31 <oklopol> isee 20:48:51 <slereah_> All you need to do for a purely functional language is to print the expression at every step! 20:48:59 <slereah_> Then you only have to read the expression! 20:49:07 <slereah_> And possibly understand it. 20:49:07 <oklopol> ais523: i see no explicit infinite input list in haskell. 20:49:23 <ais523> oklopol: it's the monad chain for the IO monad 20:49:29 <oklopol> hmm 20:49:31 <oklopol> right 20:49:46 <oklopol> i hate this world 20:49:50 <ais523> the monad chain is hidden by monads, though, because otherwise you could perform IO twice on an earlier monad chain, which doesn't make a whole lot of sense 20:49:59 <oklopol> right. 20:50:07 <oklopol> that's exactly what i was thinking for the lists 20:50:14 <oklopol> hiding them exactly like that 20:50:21 <oklopol> "you could've invented monads" 20:50:54 <ais523> Underlambda has only one monad 20:51:04 <ais523> whose chain is the stack that all commands operate on 20:51:16 <ais523> so despite being purely functional, all commands run in a strict order 20:53:44 <oklopol> wow, i just realized that's a real fuckload of text :P 20:53:55 <oklopol> i'll read cyclexa later... 20:55:07 <ais523> anyone who wants to help me implement it, feel free; it's really difficult! 20:55:33 * oklopol makes that his first J project! 20:55:35 <oklopol> ...or not 21:00:03 <oklopol> hmm 21:00:17 <oklopol> i should make a turing-complete Tree using a new construct called "seed" 21:00:35 <ais523> how does it work? 21:00:39 <oklopol> dunno :P 21:00:48 <oklopol> the stack is a bit non-tree 21:00:56 <oklopol> i want something like a worm holding the stack... 21:01:01 <oklopol> :D 21:01:27 <oklopol> i like languages with real life origin in syntax to have real life semantics too, as much as possible 21:02:42 <oklopol> Receives two characters as input and outputs the greater of the two inputs 21:02:42 <oklopol> ^ 21:02:42 <oklopol> # | 21:02:42 <oklopol> \<| ~~ 21:02:42 <oklopol> |/ 21:02:43 <oklopol> v | 21:02:45 <oklopol> \| v 21:02:47 <oklopol> |/ 21:02:49 <oklopol> i don't get this 21:02:54 <oklopol> first v -> stack = A 21:02:58 <oklopol> second v -> stack = A B 21:03:04 <oklopol> ~ -> stack = A B B 21:03:11 <oklopol> ~ -> stack = A B B B 21:03:19 <oklopol> then <, which is false 21:03:23 <oklopol> so outputs B 21:03:39 <ais523> that reminds me slightly of HOMESPRING 21:04:15 <oklopol> tell me how that works, if you have the 30 seconds 21:04:26 <oklopol> or is it fucked up? 21:04:38 <ais523> how HOMESPRING works? 21:04:56 <oklopol> errrrrrrr i mean, how that *program* works 21:05:01 <oklopol> http://esoteric.voxelperfect.net/wiki/Tree 21:05:10 <ais523> I don't know either 21:05:45 <oklopol> Tslil? interesting name 21:06:31 <ais523> oklopol: ? 21:06:39 <oklopol> anyway, my seed idea was something like dropping seeds that grow a similar tree, and start new execution 21:07:04 <oklopol> possibly not the exact same tree, you'd have to do something real clever to keep semantics intact :P 21:07:12 <oklopol> ais523: creator of the lang = tslil 21:07:48 <ais523> ok 21:33:41 -!- boily has joined. 21:34:21 <ais523> hello boily 21:37:04 <boily> hello ais523 21:38:16 * ais523 is saying hello to people when they join in the hope of resparking a conversation 21:40:49 <boily> hmm... uh... how are you? (i know it's not much for a conversation, but it's a start!) 21:40:59 <slereah_> Y HULO THAR 21:40:59 <ais523> fine, but a little tired 21:41:11 <slereah_> My name is Epic Fail Guy, and I am here to ruin your esolang. 21:41:31 <ais523> sleareah_: I'd be interested to see how you would go about doing that 21:41:52 * ais523 finished an 8-month project on Wednesday 21:42:10 <ais523> so now I have time to waste doing things like using telnet as an IRC client 21:42:20 <boily> eh? 21:43:24 <ais523> I'm typing in IRC commands by hand 21:43:48 <ais523> it's one reason why I'm anxious to start a conversation, because repeatedly PONGing is boring 21:44:03 <oklopol> http://jsoftware.com/help/dictionary/dccapdot.htm okay J owns. 21:44:51 <ais523> wow, there are a lot of irssi users here 21:45:06 <boily> conversation starter: i was recently thinking about an assembly-based esolang. 21:45:24 <ais523> assembly's reasonably esoteric as it is, so that might be a good starting point 21:45:34 <ais523> most OISCs can be seen as assembly-based esolangs 21:48:20 <boily> about your remark that assembly is obfuscated enough by itself, you are right. 21:49:03 <ais523> I like some of the DSP assemblies that have commands that do crazily specific things 21:49:10 <boily> such as? 21:49:35 * boily hates 8086 assembly, and my homeworks. 21:49:35 -!- Deformati has changed nick to Deformative. 21:49:45 <oklopol> add ax to bx, when ax = 4, bx = 2 and cx < 100 21:49:47 -!- GreaseMonkey has joined. 21:49:58 <oklopol> otherwise divide 5/8, and lose result 21:50:00 <ais523> One I used had a command to multiply two registers and add the result to an accumulator, load another two numbers from memory into those registers, increment the pointers that said which address to load those two numbers from, and also store another accumulator into memory elsewhere 21:50:13 <oklopol> :D 21:50:16 <oklopol> lol awesome 21:50:17 <boily> good one! 21:50:22 <ais523> oklopol: what a pointless task 21:50:30 <slereah_> In what is it used? 21:50:36 <oklopol> ais523: the one i said? 21:50:58 <ais523> oh, and if adding to the acccumulator gave a value above 4294967295, it saturated at that value 21:51:05 <ais523> oklopol: yes 21:51:21 <ais523> slereah_: it's useful in doing a Fast Fourier Transform 21:51:30 <ais523> also in taking the product of two vectors 21:52:54 <ais523> it had lots of variants too; for instance, one subtracted the two numbers being loaded from memory and stored their difference in a register, rather than storing both of them 21:53:07 <ais523> that was useful for calculating the length of a vector 21:53:33 <ais523> the instruction looked kind of ridiculous in the assembly code because it took so many arguments 21:53:55 <ais523> oh, and it wasn't restricted to just incrementing the pointers; it could add or subtract 1, 2, or 3 21:55:19 <boily> bus time 21:55:21 <boily> bye! 21:55:22 -!- boily has quit ("WeeChat 0.2.6"). 21:59:50 -!- Tritonio_ has joined. 22:00:12 <ais523> hello Tritonio 22:16:32 -!- oerjan has joined. 22:17:37 <ais523> hello oerjan 22:17:46 <AnMaster> just found a very nice tool, helps you find holes in your structs due to alignment issues: http://git.kernel.org/?p=linux/kernel/git/acme/pahole.git;a=summary sadly it seems you have to use git, can't find it anywhere else 22:18:25 <AnMaster> ais523, ah you are? 22:18:26 <oerjan> hello 22:18:27 <AnMaster> ok 22:19:14 <ais523> I can't think of any sensible way to write an IRC client without the ability to select() 22:19:31 <slereah_> What about a crazy way? 22:19:32 <AnMaster> ais523, intercal lacks that? 22:19:34 <ais523> there's a method involving three processes and two usernames, but it isn't sensible 22:19:45 <AnMaster> ais523, why two usernames? 22:19:49 <ais523> it lacked even the ability to read its own output for several decades 22:20:39 <ais523> the crazy way involves one thread to interact with the user, one to read from the server and write things back, and one to repeatedly ping the thread that's writing to the server on a second username so that it writes data every now and then 22:20:53 <ais523> the repeated pinging prevents the need to select 22:20:57 <AnMaster> ais523, hah 22:21:35 <AnMaster> ais523, ok that is plain crazy, well that is also why I couldn't do a sane irc client in bash, but it is fully possible to do a bot in bash 22:22:01 <ais523> I agree; I tried to write a bot in Thutu, but it wasn't getting messages back from the server for some reason 22:22:19 <ais523> I'd used a named pipe to connect my program to telnet in a loop, but the communication only seemed to be one way 22:22:25 <AnMaster> one issue however remains, that to do periodic events I do read with timeout of 5 seconds, and then look for periodic events that should have happened the during the last 5 seconds 22:22:33 <ais523> either that, or telnet was sending control chars that confused Thutu 22:24:00 <ais523> did you get that problem in your bashbot? 22:27:22 <AnMaster> nop 22:28:09 <AnMaster> it can use: socat, gnutls-cli, netcat, openssl sclient, /dev/tcp (fake device built in into bash, selectable at compile time of bash) 22:28:18 <AnMaster> so called transport modules 22:28:21 <AnMaster> easy to add new ones 22:28:51 <ais523> ah, so you didn't use telnet 22:29:09 <AnMaster> it just defines a set of methods: "get list of supported features and check deps installed", connect, disconnect, get line, send line 22:29:10 <AnMaster> :) 22:29:35 <AnMaster> unlike normal envbot modules you can only load one transport module 22:29:46 <AnMaster> and not unload or reload at runtime 22:30:27 <AnMaster> ais523, :D 22:30:53 <AnMaster> envbot is very advanced, and has the potential of getting to the same level as, say, supybot 22:31:05 <AnMaster> apart from multiple networks 22:32:39 -!- pikhq has quit ("Leaveth"). 22:32:58 <ais523> I'll just have to add a select() syscall to INTERCAL 22:33:08 <ais523> but first I'll have to get the ffi working so I can implement it 22:34:00 -!- Judofyr has joined. 22:34:41 <AnMaster> ais523, what about poll? 22:35:07 <AnMaster> err, wait that just does one fd 22:35:18 <AnMaster> wouldn't help at all 22:35:29 <ais523> polling isn't really much use if you don't have the syscall for that either 22:35:41 <AnMaster> hah true 22:37:44 <AnMaster> ais523, what about doing async IO? 22:37:51 <AnMaster> aio_read/write/whatever 22:38:23 <ais523> or set the async flag on the file descriptor 22:38:36 <ais523> but the dearth of syscalls affects me again 22:38:45 <AnMaster> dearth? 22:38:51 <ais523> there are only something like 7 in CLC-INTERCAL, and I haven't implemented any in C-INTERCAL yet 22:38:57 <AnMaster> ais523, does that work on anything but linux, setting async flag I mean 22:39:01 <ais523> maybe I used the wrong word 22:39:09 <ais523> O_NONBLOCK is POSIX IIRC 22:44:41 -!- okofolor has joined. 22:44:56 <okofolor> rofl, switching back to linux is starting to feel like a good idea, my j interp crashed, took me like 5 minutes to get my computer running again :D 22:45:09 <okofolor> (on vista now) 22:45:51 -!- okofolor has changed nick to okopol. 22:45:57 -!- marshmallows has joined. 22:46:15 -!- oklopol has quit (Read error: 113 (No route to host)). 22:46:58 * oerjan picks up a stray 'l' from the floor. wonder who it belongs to? 22:47:23 <ais523> oerjan: any idea why there are stray lowercase letters on the floor? 22:47:36 <oerjan> i guess someone must have lost one, ais523 22:48:22 <oerjan> hm lais523, doesn't look like 22:48:33 <oerjan> *right 22:49:36 <AnMaster> http://rafb.net/p/gWAc2P69.html <-- interesting tool that pahole 22:49:48 <oerjan> and i don't think anyone called me loerjan since primary school or thereabouts 22:50:49 <ais523> AnMaster: what is that? it looks Befunge-related 22:51:16 <AnMaster> ais523, yes the struct is, but the output is from pahole, a tool that find holes in your structs due to alignment issues 22:51:30 <marshmallows> oh I wrote that 22:51:32 <AnMaster> developed by linux kernel people originally 22:51:38 <AnMaster> marshmallows, !? 22:51:40 <okopol> oerjan: could you hand that to me? 22:51:50 <okopol> or just insert it yourself 22:52:07 * oerjan gives okopol the 'l'. Be careful with it! 22:52:14 <okopol> yeah yeah, i've done this before 22:52:17 -!- okopol has changed nick to oklopol. 22:53:07 <oerjan> mind you, LanMaster sounds sorta cool 22:53:17 <oklopol> :P 22:53:22 <oerjan> but it was the wrong case anyhow 22:53:35 <oklopol> AnMalster sounds like "an molester" 22:53:56 <AnMaster> marshmallows, you wrote what? 22:54:33 <oerjan> oh no not marshmallows again. 22:54:39 <AnMaster> oklopol, oerjan: why the "l" discussion? 22:54:45 <oerjan> he is such a jerk, not like that nice guy faxathisia 22:55:49 <oerjan> AnMaster: oklopol lost an 'l' a while ago 22:56:03 <AnMaster> oerjan, oh? 22:56:23 <oerjan> fortunately it was recovered 22:56:52 <ais523> oerjan: are you sure that was the right 'l'? There's several over here that could fit 22:57:01 <oerjan> ooh 22:57:43 <oerjan> nah, none of them have the right black metal look 22:58:52 <ais523> that's a relief 22:58:59 * AnMaster someone left two dots here, they look like they would fit you oerjan 22:59:11 <AnMaster> örjan maybe? 22:59:16 <oerjan> no 22:59:26 <AnMaster> oh you want the dash over there then? 22:59:38 <oklopol> örjan usually leaves his dots home, they're strictly forbidden here 22:59:44 <oklopol> ah 22:59:46 <oklopol> indeed 22:59:51 <AnMaster> oklopol, I think he want an Ø not an Ö 22:59:52 <oerjan> don't think so, clashes with the e 22:59:59 * ais523 just came across this: http://catless.ncl.ac.uk/Risks/24.93.html#subj10.1 23:00:32 <ais523> strikes me as being a somewhat ambitious attempt 23:00:38 <oerjan> a ¨ is just a crumbled e anyhow 23:00:53 <ais523> but presumably the sort of people who fall for spam emails would fall even for that 23:01:08 <ais523> however, the plan would be thwarted due to such people's inability to use a fax machine 23:01:51 * marshmallows cries 23:02:22 <oklopol> i wish i had more money 23:02:29 <oklopol> i would gladly fund phisters 23:02:32 <oklopol> *phishers 23:02:56 <ais523> oklopol: why? 23:03:21 <marshmallows> I just bought this http://www.info.ucl.ac.be/~pvr/book.html 23:03:37 <oklopol> because in a perfect world, everyone would fall for that, and i could get rich doing something like that 23:03:51 <oklopol> donating money, clearly, makes the world a bit better. 23:04:08 <oerjan> marshmallows: i've heard great praise of it over at lambda the ultimate 23:04:10 <oklopol> my logic is flawless, as always 23:04:23 * ais523 is laughing out loud again, but at least this time there's nobody else in the lab to hear 23:04:45 <oklopol> :D 23:05:34 <oerjan> oklopol: too bad the world doesn't work on logic 23:06:00 <oklopol> too bad your mother doesn't work on logic 23:06:11 <oklopol> i'm on fire today 23:06:15 <oklopol> better continue my j's 23:06:41 <Judofyr> oklopol: I'm very sorry, but I can't make the header go under the box :( 23:06:47 <marshmallows> bleh 23:06:51 <ais523> oklopol: you'll have to change your nick to oklorofl some time if you continue reasoning like that 23:06:56 <marshmallows> can't find my code 23:07:07 <ais523> Judofyr: context? 23:07:19 <Judofyr> ais523: http://yr.judofyr.net 23:07:25 <Judofyr> click the marker 23:07:30 <Judofyr> (very beta) 23:07:57 <marshmallows> btw I'm really annoyed at IRC 23:08:05 <oklopol> ais523: good idea 23:08:08 <marshmallows> I just realised how silly this is (I mean other than #esoteric) 23:08:10 <oklopol> i love playing with my nick 23:08:15 <oklopol> i wish i could do it with my real name 23:08:22 <marshmallows> Why do we segregate into programming language specific channels? 23:08:42 <marshmallows> Would it not make so much more sense to have paradaigm specific channels instead? 23:08:49 <ais523> marshmallows: so that people don't have to be in conversations that don't interest them? 23:09:02 <ais523> much of IRC is "how do I do X in programming language Y" 23:09:21 <ais523> there's #concatenative, anyway 23:09:26 <marshmallows> yeah sort of like that ais523, but it ends up that people use a single programming language instead of many 23:09:34 <marshmallows> I thought that was the factor channel :p 23:09:39 * oklopol joined 23:10:21 <oklopol> they said "hi", what a nice channel :))) 23:10:24 <marshmallows> hmf :[ 23:10:40 <oerjan> oklopol: there is this tv guy in norway who added "Værsågod Takkskalduha" to his surname, legally 23:10:49 * marshmallows is alone in #declarative #functional and #procedural 23:10:58 <oerjan> spelled slightly differently, i think 23:11:04 <oklopol> heh 23:11:16 -!- Corun has quit ("This computer has gone to sleep"). 23:11:18 <oklopol> well, the problem is, while you can do that here, too, you cannot change it back. 23:11:42 <oerjan> marshmallows: there is a #concatenative i believe 23:11:53 <ais523> oerjan: what does that translate as? 23:11:56 <oklopol> hmph, i cannot translate that to english, just finnish 23:12:46 <oklopol> here you are | thanks? 23:12:54 <oerjan> something like that 23:13:47 <oerjan> yeah i think there is some limit on how often you can change your name 23:14:03 <marshmallows> It just seems totally wrong to me 23:14:12 <oklopol> we have once in a lifetime / for a *good reason* / marriage 23:14:23 <oklopol> marshmallows: still on the paradigm topic? 23:14:26 <marshmallows> I am thinking of the story with all the blind people trying to figure out what an elephant is 23:14:27 <oerjan> he did it after the laws were greatly liberalized 23:14:28 <oklopol> or changeing names 23:14:37 <oklopol> changing 23:14:46 <marshmallows> they are all expert in one thing, so none of them really understand it 23:15:15 <oklopol> i haven't heard that story 23:15:19 <oklopol> will you tell it? 23:15:22 * marshmallows wants to merge all the procedural channels in one.. all the functional into one.. 23:15:28 * oklopol gathers by the fire 23:16:08 <oklopol> #haskell is quite different from #scheme... 23:16:24 <ais523> and likewise C++ is quite different from Java 23:17:16 <marshmallows> It just feels like segregation 23:17:30 <marshmallows> and I think it's bad but I'm probably wrong and worrying about nothing 23:18:16 <ais523> on Usenet there are newsgroups at all levels 23:18:49 <ais523> so for instance comp.lang.c only talks about 100% ANSI- (or K&R-) compliant C, or occasionally about whether code is conforming 23:19:01 <ais523> to discuss things like POSIX C, you would go to comp.unix.programmer 23:19:20 <ais523> but to discuss algorithms (which are language-dependent), comp.programming would be the best place 23:19:29 <marshmallows> I see 23:19:36 <oklopol> language-dependent? 23:19:38 <oklopol> or independent? 23:20:05 <ais523> I meant independent 23:20:13 <oklopol> yrar 23:20:56 <marshmallows> anyway I'm happy I got someone into logic programming today :P 23:21:09 -!- Corun has joined. 23:21:36 <ais523> marshmallows: which language? 23:22:00 <marshmallows> I used Prolog, http://reddit.com/r/programming/info/6cwnk/comments/ , but they will probably learn Oz, I guess.. which I also want to do 23:22:32 <marshmallows> Oz is this witches cauldron language seems pretty cool 23:23:11 * ais523 likes Prolog but doesn't think it goes far enough 23:23:25 <ais523> it has lots of restrictions, just to make it implementable... 23:23:27 <marshmallows> Yeah Prolog is severely flawed in many ways.. 23:24:03 <marshmallows> Still it's one of the best :/ 23:24:39 -!- slereah_ has changed nick to Slereah. 23:25:24 <marshmallows> always looking for new Logic langs/implementation techniques :) 23:25:44 * ais523 is planning a Prolog-like esolang 23:25:49 <ais523> that's very uncomputable 23:26:03 <ais523> it manages to be above-TC (and therefore TC) despite having no way to loop 23:26:14 <ais523> because it can perform uncountably many computations in parallel 23:26:21 <marshmallows> :D 23:26:22 <marshmallows> cool 23:26:37 <oklopol> the one that could actually check its own halting if implemented perfectly? 23:26:38 <Slereah> How will it do it! 23:26:58 <Slereah> Perfect proof generator? :o 23:26:59 <ais523> basically, a program contains a certain number of variables 23:27:14 <marshmallows> There was a nice thought exercise, adding the language construct infinity { ... } to C 23:27:16 <ais523> which can take on infinitely many values 23:27:29 <ais523> 'untyped function' is one of the possible data types 23:27:41 <ais523> A program consists of constraints on those variables 23:28:29 <oklopol> can you do "recursion"? 23:28:41 <ais523> of course 23:28:44 <oklopol> define constraints in terms of other constraints 23:28:50 <oklopol> i guess would be more appropriate 23:28:59 <oklopol> hmm 23:29:18 <oklopol> or not, that might sound more confusing 23:29:41 <ais523> as for recursion, you simply add an argument to a function that represents recursion depth and place a constraint on the relationship between values of the function at different depths 23:30:14 <oklopol> yeah, sure 23:30:30 <oklopol> i think we need some help from the matlab people 23:30:45 <oklopol> it obviously needs to be able to do all mathematics known to man! 23:31:18 <oklopol> can you do algebra? 23:31:19 <oklopol> hmm 23:31:34 <oklopol> i guess you can just make tree constraints and use the parse trees of algebraic expressions 23:31:39 <ais523> algebra's fine 23:32:19 <marshmallows> give it a MAXIMA FFI :D 23:32:36 * ais523 tries to remember what MAXIMA is 23:32:51 <marshmallows> nice algebra system written in Common Lisp 23:33:07 <oklopol> can you just do stuff like A*x^2 + Bx + C == 0 <==> x = (-B+sqrt(B^2-4*A*C))/(2*A) 23:33:11 <oklopol> to add mathematical truths :-) 23:33:23 <oklopol> +- 23:33:34 <oklopol> or <==> -> ==> 23:33:38 <oklopol> errr 23:33:40 <oklopol> <== 23:33:44 <oklopol> errrr 23:33:46 <oklopol> you fix it 23:33:46 * marshmallows whines about introducing such compilex axioms 23:33:57 <marshmallows> why not just prove it in the language itself? 23:33:59 <ais523> that's easy enough to deduce without that rule using completing-the-square 23:34:08 <oklopol> indeed 23:34:18 <oklopol> but can you hint the program? 23:34:26 <Quendus> bah, why can't esolang creators do anything more interesting than brainfuck-derivatives? :( 23:34:42 <marshmallows> Quendus: Check out #esoteric! 23:34:45 <oklopol> you should be able to give it that axiom *and* deduce that 23:34:55 <ais523> many esolang creators do 23:34:56 <oklopol> Quendus: some can, look deeper 23:34:58 <marshmallows> Quendus: they are talking about something totally different ovwer there 23:35:17 <Quendus> RLY??? 23:35:18 <ais523> look at the list of esolangs I've created, for instance, or that any of the regulars here have created 23:35:25 <marshmallows> :( 23:35:30 * marshmallows hasn't made any esolang... 23:35:43 <ais523> http://esolangs.org/wiki is a good starting point 23:35:43 <oklopol> most of esolangs.org are brainfuck-derivatives, or at least clearly imperative, and very close 23:36:02 <oklopol> but there are many languages completely unlike it 23:36:08 <ais523> http://esolangs.org/wiki/User:ais523 contains a list of the ones I've created 23:36:10 <Quendus> I looked at the list of things on the wiki and found very little else 23:36:19 <oklopol> and some of the brainfuck-derivatives really do have a point. 23:36:19 <ais523> I don't think many of them are Brainfuck-based 23:36:24 <marshmallows> oh well I implemented an esotericish lang (one that lets you run programs forwards or backwards in ..) 23:36:24 <Quendus> and so far nothing that more fun than befunge to write in 23:36:33 <marshmallows> I guess that's something.. 23:36:38 <marshmallows> ? 23:36:49 <ais523> Quendus: try Underload if you haven't already 23:37:24 <oklopol> Quendus: also unlambda and lazy k are based on a different mathematical model than brainfuck 23:37:33 <oklopol> very different 23:37:38 <Quendus> ok, thanks 23:37:57 <ais523> yes, the functionals are pretty different 23:38:09 <ais523> you might also want to look at languages like Thue and /// 23:38:17 <ais523> which is a different paradigm again 23:38:23 <Slereah> Writing a mathematical function in Brainfuck is as easy to do as a CAT program in Unlambda :D 23:38:49 <marshmallows> hehe 23:39:01 <oklopol> in thue, the way i program, is basically to simulate something like a a turing machine 23:39:06 <oklopol> just much harder 23:39:11 <marshmallows> thue is so cool o_o 23:39:23 * Slereah never had the courage to read up Thue 23:39:31 <marshmallows> oh I wrote a thue-ish interpreter too! 23:39:35 <ais523> what other paradigms are there? 23:39:45 <marshmallows> I have implement lots of langs but not invented :/ 23:39:54 <ais523> there are object-oriented langs like Glass and ORK 23:39:56 <Slereah> Cellular automatons? 23:39:58 <Slereah> Also bully 23:40:02 <marshmallows> Procedural, Logic, Functional 23:40:04 <oklopol> hmm... weird kolmogorov thing no one understands, are there esolangs based on it? 23:40:10 <oklopol> Slereah: 23:40:13 <oklopol> ^ 23:40:14 <Slereah> oklopol: Well, I'm trying. 23:40:22 <ais523> oklopol:Andrei Machine 9000 23:40:25 <marshmallows> Declarative, Constraint, Term Rewriting, Cellular 23:40:27 <Slereah> Although right now, I have a lot of school. 23:40:28 <oklopol> oh, right :D 23:40:34 <ais523> there are langs like Flip, BackFlip, and Black 23:40:51 <oklopol> *the weird 23:41:13 <Quendus> ok, that should be enough to distract me from matrices :> 23:41:14 <Slereah> And multi-paradigm. 23:41:20 <Slereah> Like the dysfunctional languages :D 23:42:02 <oklopol> no one mentioned stack based langs? 23:42:07 <oerjan> Smetana and Smatiny 23:42:09 <oklopol> concatenative 23:42:24 <oklopol> also destructor-based languages, they are a bit hit 23:42:26 <oklopol> :D 23:42:30 <ais523> well, I mentioned Underload 23:42:32 <Slereah> Destructor based? 23:42:43 <oerjan> well yeah if they weren't just vaporware i guess :) 23:42:44 <oklopol> Slereah: oerjan's reaper 23:42:50 <ais523> there's also Sceql, a queue-based lang 23:42:50 <oklopol> oh 23:42:55 <oklopol> then there's nopular programming 23:42:59 <oklopol> for instance nopol 23:43:00 <oerjan> o_O 23:43:09 <oklopol> where no program does absolutely anything. 23:43:11 <oklopol> hmm 23:43:14 <oklopol> err 23:43:14 <ais523> and OISCs like Subskin, SMATINY (not quite an OISC but similar), and MiniMAX 23:43:20 <oklopol> where every program does absolutely nothign. 23:43:21 <Slereah> Oh, like Unecessary or minimal 23:43:23 <oklopol> *nothing 23:43:32 <marshmallows> LAZY! 23:43:34 <oerjan> oklopol: i preferred the first explanation 23:43:52 <oklopol> hmm, just sounded weird at first 23:43:53 <Slereah> There's the social esolangs. 23:43:55 <marshmallows> Stacky, Consey, Array-based 23:43:56 <Slereah> Such as IRP 23:43:56 <oklopol> irp! 23:44:02 <oklopol> chirp chirp 23:44:05 <marshmallows> hash table based ;p 23:44:32 <oklopol> hash tables are a special function, paradig...mically speaking 23:44:33 <oerjan> would Turkey Bomb be a social esolang? 23:44:36 <marshmallows> is there any good IRP -bot-? 23:44:48 <oklopol> special case of functions 23:44:58 <oklopol> asdasdf, i can't form sentences today 23:45:00 <oerjan> marshmallows: i made an IrpBot but i wouldn't call it good... 23:45:04 <ais523> is there a hashtable-based esolang? 23:45:05 <marshmallows> :D 23:45:19 <ais523> oerjan: if it just did all the examples on the wiki page, it would probably be good enough 23:45:23 <marshmallows> ais523: I think adu described one here but didn't implement it 23:45:50 <oerjan> ais523: oh nothing like that 23:45:55 <oklopol> oh, then there's tag systems... not sure if they actually belong to some category 23:46:02 <oklopol> i'd call them queue-based languages 23:46:14 <ais523> how could I have forgotten cyclic tag? 23:46:26 <oklopol> indeed, you're the WCT guy 23:46:26 <ais523> it's really good at proving TCness of /very/ simple systems 23:46:45 <ais523> and it's the lang I proved the 2,3 Turing machine could emulate 23:47:03 <Slereah> Also, uncomputable langs 23:47:10 <oklopol> hmm... aren't they actually the ideal model for queue-based langauges? i think people have talked about making a queue-based language, but haven't heard the comparison to tag systems 23:47:11 <Slereah> Although they're kind of uncomputable. 23:47:15 <oklopol> *languages 23:47:30 <oklopol> *i haven't heard 23:47:51 <ais523> yes, I wonder why nobody mentioned that during the creation of Qdeql and Sceql 23:50:54 <ais523> there's ordinary tag as well as cyclic tag, of course 23:51:35 <Slereah> No freeze tag? 23:52:01 <ais523> Slereah, what's that? 23:52:26 <oklopol> a game 23:52:32 <oklopol> kids play it 23:52:43 <Slereah> A variation of the one the tag system is based on. 23:52:51 <Slereah> Well, named from 23:53:20 <oklopol> what's ordinary tag? 23:53:24 <ais523> Slereah: how does it work? 23:53:41 <ais523> oklopol: you repeatedly disregard the first n characters of a queue 23:53:49 <Slereah> IIRC, like normal tag, but when someone is it, he can't move 23:53:59 <Slereah> He can move again if another player unfreeze him 23:54:01 <ais523> then put something on the end of the queue that depends on the head of the queue 23:54:33 <ais523> it can be compiled into cyclic tag easily 23:54:37 * oerjan thinks a tag game where 'it' cannot move would be a tad boring 23:54:42 <oklopol> umm, and cyclic tag different how? 23:54:59 <oklopol> actually, 'it' doesn't change 23:55:01 <Slereah> oerjan: The "it" guy remains the same 23:55:10 <Slereah> But he has to tag everyone. 23:55:10 <oerjan> thought so ;) 23:55:12 <Slereah> I think 23:55:16 <Slereah> It's been a while 23:56:01 <ais523> ah, you can't move if you're tagged, and you can be released by anyone who hasn't been tagged? 23:56:03 <oklopol> *tag is 23:56:10 <oklopol> ais523: yeah 23:57:04 <oklopol> fun game for everyone except the poor bastard who happens to be 'it' 23:57:10 <Slereah> Heh. 23:57:41 <ais523> oklopol: you remove the first character from the queue each time. If it's a 1, you add a string to the end of the queue that depends on the number of steps the system has run, modulo some constant 23:57:57 <oklopol> oh, right 23:58:16 -!- Judofyr has quit. 23:59:00 <ais523> so a tag system examines every nth character, and has often more than two characters available, but adds something at every step 23:59:25 <oklopol> hmm... i may have asked before, but does anyone know anything about the complexity of the 1 -> 11 -> 21 -> 1211 -> 111221 -> 312211 thing? 23:59:29 <ais523> whereas a cyclic tag system examines every character, adds something only on one character (so only two characters are available), but what is added depends on the number of steps the system has been running 23:59:48 * ais523 has to go home 23:59:52 -!- ais523 has quit ("bye!").