00:05:23 <HackEgo> bin/emptylist \ bin/list \ bin/liste \ bin/lists \ bin/makelist \ bin/olist \ bin/pbflist \ bin/slist \ bin/smlist \ bin/testlist
00:05:57 <HackEgo> echo Taneb atriq Ngevd Fiora nortti Sgeo alot monqy
00:06:01 <HackEgo> #!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
00:06:51 <oerjan> `run rm bin/liste #IIRC this was the result of someone misunderstanding sed flag syntax
00:07:13 <oerjan> (specifically, that sed -ie is not equivalent to sed -i -e)
00:07:47 <oerjan> (the former uses the e as backup suffix)
00:08:12 <HackEgo> bin/addquote \ bin/define \ bin/delquote \ bin/fortune \ bin/fueue \ bin/google \ bin/hyfinate \ bin/pastaquote \ bin/paste \ bin/quine \ bin/quote \ bin/relcome \ bin/resume \ bin/runce \ bin/shove \ bin/translate \ bin/wehlcohme \ bin/welcome
00:08:54 <HackEgo> #!/bin/bash \ t=`tempfile` \ echo "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:05 <HackEgo> #!/bin/bash \ t=`tempfile` \ echo -e "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:35 <HackEgo> #!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())"
00:09:41 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied
00:10:19 <HackEgo> sh: Can't open bin/relcome test
00:10:22 <oerjan> `run sh bin/relcome test
00:10:30 <elliott> this is not the greatest script
00:12:46 <shachaf> `run sed -i /shachaf/d bin/list
00:14:20 -!- augur has quit (Remote host closed the connection).
00:15:55 <HackEgo> cat: /bin/list: No such file or directory
00:16:04 -!- sebbu2 has changed nick to sebbu.
00:16:06 <ais523> shachaf: you fail at sed
00:16:15 <elliott> ais523: um... you fail at `revert
00:16:22 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:16:24 <ais523> I thought that might be it
00:16:28 <elliott> you need to look up revision on the site every time if you want to revert stuff
00:16:38 <HackEgo> cat: bin/list: No such file or directory
00:16:49 <ais523> oh well, you can revert my revert, right?
00:17:39 <elliott> ais523: I hope that isn't the revert commit
00:17:42 <elliott> or in fact that won't even work
00:17:48 <shachaf> ais523: I think that command did what I expected.
00:17:48 <elliott> "`revert rev" takes the revision _number_ (not hash) to revert _to_
00:17:57 <ais523> elliott: well it's not listing hashes
00:18:02 <HackEgo> = 0 \ bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ u \ wisdom \ zalgo.hs
00:18:04 <ais523> err, not listing numbers
00:18:07 <shachaf> ais523: If you want something more fine-grained, feel free to do it yourself.
00:18:08 <elliott> ais523: you click the commit
00:18:14 <ais523> it just gave me more hashes
00:18:17 <HackEgo> #!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
00:18:19 <elliott> ais523: "changeset <number>:<hash>"
00:18:23 <ais523> anyway the revert to hash worked
00:21:09 <oerjan> <ais523> anyway the revert to hash worked <-- wait it did? this changes *EVERYTHING*
00:21:26 <ais523> that's a lot of change
00:22:00 <oerjan> as expected for a change all the way from revision 3. now why did i click that..
00:24:20 <oerjan> had to kill my browser
00:24:48 <ais523> I'm wondering if /that/ changed too
00:25:02 <oerjan> `run hg diff 2116:2112 | paste
00:25:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12699 \ 2116:2112: No such file or directory
00:26:31 <oerjan> `run hg diff -r 2116 -r 2112 | paste
00:26:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12320
00:26:49 <oerjan> why did i have this memory of colon working...
00:30:16 <oerjan> anyway knowing that hashes work should make things easier. although it will make the resulting descriptions even harder to interpret.
00:31:32 <oerjan> ais523: although a plain `revert would also have worked - the other 2 commands made no changes
00:31:45 <ais523> I didn't realise it skipped no-change commands
00:31:52 <oerjan> instead of `revert 3, that is
00:32:52 <oerjan> `perl -e 'print "testing\015ho"'
00:33:08 <oerjan> `perl -e 'print "testing\015ho";'
00:33:37 <oerjan> `run perl -e 'print "testing\015ho";'
00:33:53 <ais523> I'm more used to seeing it in hexadecimal
00:34:32 <quintopia> ais523: made sense to me. don't know if they'd make sense to a noobie though :P
00:35:04 <quintopia> ais523: do you think they are amenable to the color-coded symbol system? or if it does not encompass their strategies?
00:35:46 <ais523> I forgot the color-coded symbol system
00:36:02 <ais523> omnipotence can probably be described like that, at least
00:36:05 <ais523> less sure about anticipation2
00:36:15 <ais523> omnipotence is just a bunch of standard components glued together in a very nonstandard way
00:36:25 <ais523> (poke + full-tape clear has probably never been tried before)
00:36:58 <ais523> whereas anticipation2 is a synchronizing vibration program, the only other program like that is the original anticipation, as far as I know
00:48:23 <ais523> hmm… you know those random dating adverts which have a "here are people living nearby" thing
00:48:35 <ais523> I assumed that they were telling the technical truth, just not useful
00:48:48 <ais523> but… I observed the same advert twice on the same page, same photo, different name
00:49:07 <ais523> that seems to take more effort than doing it in a not easily disprovable way!
00:49:21 -!- DHeadshot has joined.
00:57:50 <Sgeo> I really want access to a nice dynamically scoped way to fake being standard IO
00:58:49 <Sgeo> Hmm, I see another way to solve my probkem
00:59:14 <Sgeo> That doesn't require some sort of library that makes it easy to write a shim I/O with multiple interpretations
01:00:12 -!- TeruFSX has joined.
01:03:33 -!- stuntaneous has joined.
01:04:53 <ais523> elliott: oh, an observation I had a while ago: lexical scoping works by replacing the variable names as you enter and leave the scope, and dynamic scoping by replacing the variable values
01:05:02 <ais523> so it's basically like scope-by-name, scope-by-value
01:05:06 <ais523> I wonder if there's a scope-by-need
01:06:56 <elliott> ais523: I dislike renaming-based reasoning
01:07:20 <Sgeo> Quick, someone make a BF derivative that relies on renaming
01:07:20 -!- stuntane has quit (Ping timeout: 252 seconds).
01:07:21 <elliott> I view explicit unstructured variable names like that as artefacts and definition in terms of them suspect
01:07:45 <Sgeo> Piss off two people for the price of one
01:08:00 <ais523> elliott: I know it's not a very /good/ view of lexical scoping, it's just a /possible/ view
01:08:17 <ais523> and I'm not saying this is going to be useful, I just saw a possible esoöpportunity
01:08:20 <elliott> it is an interesting observation apart from that
01:08:26 <elliott> scope-by-need sounds confusing
01:08:51 <kmc> well, call-by-need is a transparent optimization for call-by-name right?
01:08:54 <elliott> ais523: I just have an axe to grind, since I find the fact that people learn about alpha-renaming when introduced to the lambda calculus terrible beyond belief
01:09:06 <kmc> so i imagine scope-by-need is like "don't allocate a new frame until the old one is written to"
01:09:11 <kmc> a sensible optimization
01:09:15 <ais523> kmc: no, it's not equivalent to call-by-name or call-by-value in an impure language
01:09:23 <kmc> mmmmmm right
01:09:31 <kmc> i guess most obviously, if you have an object-identity operator
01:09:33 <ais523> in Haskell, it's only equivalent because all function calls are idempotent
01:09:37 <elliott> wouldn't you need *scoping itself* to somehow be impure to distinguish this, then?
01:09:46 <ais523> (and call-by-value is only different because of nontermination)
01:09:50 <elliott> kmc: I forgot that most languages have object-identity tests :(
01:09:52 <kmc> cough cough lazy blackholing of unsafePerformIO thunks
01:09:57 <ais523> elliott: yeah, I think so
01:10:02 <shachaf> Function calls are idempotent?
01:10:16 <ais523> if your language does dynamic scoping, the only way to determine the fact is by calling something in an outer scope
01:10:22 <kmc> evaluation is idempotent
01:10:24 <ais523> and seeing that it gets your variable rather than its variable
01:10:30 -!- stuntane has joined.
01:10:31 <FreeFull> In Haskell everything is interchangeable with a value, right? At least outside of the IO monad
01:11:06 <elliott> IO has nothing to do with it.
01:11:24 <ais523> possibly unsafePerformIO has something to do with it, but IO itself doesn't
01:11:36 <Sgeo> I thought, say, (car (1, 2), car (1, 2)) isn't optimized?
01:11:40 <FreeFull> You could interchange io with a value too if that value somehow still had the side effects
01:11:47 <elliott> and what does optimisation have to do with it
01:11:55 <Sgeo> Well, nothing observable
01:11:56 <kmc> FreeFull: IO actions are values too. evaluating an IO action doesn't do anything special. only /executing/ the IO action has any side effect
01:12:10 <kmc> the thing to focus on is not "pure vs impure" but "evaluation vs execution"
01:12:13 <kmc> man this takes me back
01:12:15 <ais523> and yeah, car is the Lisp name for fst
01:12:18 <kmc> i gotta go pick up my nooooodles though
01:12:32 <elliott> kmc: are those noodles made by nooodl
01:12:48 -!- stuntaneous has quit (Ping timeout: 240 seconds).
01:12:48 <kmc> no they are made by Thelonious Monkfish
01:13:12 <Sgeo> Does crashing vs not crashing due to poor algorithm count as observable?
01:14:10 <ais523> crashing is like non-termination for most purposes, except that you don't have to wait infinitely long to determine whether it's happened or not
01:14:26 <Sgeo> So, if the fact that Haskell might do the same function evaluation twice (not memoizing by default) can be exploited into a crash where a memoized version wouldn't crash...
01:14:33 <Sgeo> Observable memoization.
01:14:36 <elliott> incidentally IO does break the semantics of the language
01:14:39 <elliott> it can distinguish _|_s etc.
01:15:04 <ais523> elliott: it's more a case of "some IO actions in the standard library break the semantics of the language", isn't it?
01:15:13 <ais523> it's perfectly possible to imagine an IO that can't distinguish between bottoms
01:15:21 -!- augur has joined.
01:15:25 <Sgeo> Or can lack of memoization only result in nontermination but not actual crashes?
01:15:33 <FreeFull> kmc: Yeah, but you can't get a value out of an IO action without executing it, can you?
01:15:58 <shachaf> IO actions don't contain values in the first place.
01:16:13 <FreeFull> How does IO distinguish bottoms?
01:16:13 <Sgeo> You can build up another IO action that goes "imagine if we had a value from this IO action. I would like to do this with it"
01:16:26 <FreeFull> shachaf: so IO String is a fake?
01:16:31 <copumpkin> FreeFull: there is no value "in" IO
01:16:41 <lambdabot> dons says: - yeah, the idea is that you use the tools in the chapter
01:16:43 <lambdabot> shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files
01:16:45 <elliott> ais523: I am talking about Haskell, not an imaginary Haskell derivative
01:16:47 <Sgeo> IO String does not contain a string. It is an action that describes how to obtain a string.
01:16:58 <elliott> IO distinguishes bottoms by way of Control.Exception
01:17:12 <elliott> e.g. observable sharing should also "be impossible" if IO were truly "kosher"
01:17:20 <elliott> but these are not the details most people think about when they think IO is impure
01:17:24 <shachaf> It could presumably also "distinguish" them in some other ways.
01:17:45 <shachaf> Mostly more evil ways, though.
01:18:34 * oerjan thinks thelonious monkfish sounds like a member of the main girl genius villain family
01:19:32 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:19:53 <ais523> elliott: I was thinking about Haskell without access to certain libraries
01:20:06 <elliott> I think exception handling is in the Report
01:20:09 <ais523> which is certainly a legitimate language family (see, e.g., lambdabot)
01:25:36 <oerjan> hm that's spelled "mongfish"
01:27:28 -!- nollapiste has quit (Quit: Sto andando via).
01:41:23 <Sgeo> Does there exist a transform of BF program to BF program such that a BF program that relies on 255 + wrapping to 0 or something can be made to run on an implementation that 255+ crashes on?
01:41:32 <Sgeo> A mechanical transform
01:42:04 <oerjan> you will have to add cells, though.
01:43:38 <Sgeo> As in, I'm not sure what is meant
01:44:19 <oerjan> you cannot do it without adding memory bloat to get somewhere to put the necessary temporary cells for testing.
01:45:38 <oerjan> a constant number is enough, although then you need to transform > and < as well to move the extra cells together with your pointer
01:46:10 <ais523> oerjan: oh, and then you test the cell for each individual value to see if it's that value or not?
01:46:14 <ais523> actually, not sure you can
01:46:23 <ais523> how do you distinguish -255 from +255?
01:46:28 <ais523> or are we assuming unsigned only?
01:46:42 <oerjan> i was assuming you could only use values 0 to 255, inclusive
01:47:08 <Sgeo> Hmm, suddenly, I'm... not totally sure if... hm
01:48:09 <Sgeo> Yeah, could work
01:48:16 <oerjan> if you have negative values as well, it will be harder. in fact then i don't think you can do it with constant number of cells, since you pretty much have to store whether a cell is positive or negative to avoid things going wrong at one end
01:48:17 <Sgeo> Might need to transform :
01:48:40 * Sgeo is thinking in terms of Trustfuck
01:48:58 <Sgeo> If the native Trustfuck BF implementation were constrained, writing a compiler for a variation that is not so constrained
01:49:16 <oerjan> i don't really feel like wrapping my brain around trustfuck right now
01:50:29 <Sgeo> I do feel like it's simpler than I made it sound. ! sends the code block to a compiler stack, which compiles into Trustfuck native primitives, which then get compiled to target
01:50:59 <Sgeo> The resulting output has the current program on top of its compiler stack
01:51:09 <Sgeo> when it itself runs
01:51:40 <Sgeo> s/which compiles into/which collectively compile the code into/
02:15:43 -!- monqy has joined.
02:21:37 <zzo38> Is it possible to make something like LLVM's "appending" linkage in GCC?
02:26:50 -!- ais523 has quit.
02:44:39 <kmc> how does that linkage work?
02:59:34 <zzo38> Make multiple declarations of the array to be appending to put together.
03:01:55 <kmc> i don't know how to do that at the symbol level with gnu toolchain
03:02:26 <kmc> but sections of the same name get concatenated, and you can have arbitrary named sections in e.g. ELF
03:02:33 <kmc> Linux uses this to good effect in many places
03:03:11 <zzo38> But can it be made to work on cross-platform?
03:03:19 <kmc> Linux kernel code has a lot of macros that you put into your code which as a side effect output records into a table in some section
03:07:56 <kmc> these are used for all kinds of fun things which i would be happy to blather on about at length
03:08:33 <kmc> self-modifying code and stupid processor tricks
03:12:58 <Sgeo> self-modifying code in the kernel
03:13:16 <Sgeo> Is it actually... used for important stuff?
03:13:27 <Sgeo> Because there's a time and place to mess around, the kernel isn't it.
03:14:03 * Sgeo assumes that there is a good reason, otherwise it wouldn't be done. I hope.
03:14:09 <kmc> Sgeo: tons of it, and yes they have good reasons
03:14:11 <kmc> it's not "messing around"
03:15:01 <kmc> for example, if you boot a SMP kernel on a uniprocessor system, it will go through and remove lock instructions / prefixes
03:15:01 <kmc> and if you boot a kernel under paravirtualization, it will replace certain hardware operations with hypervisor calls
03:15:32 <kmc> all of this enables distributions to maintain fewer binary kernels, while keeping things flexible and performant for users
03:15:50 <Sgeo> Hmm, interesting
03:16:01 <kmc> the kernel may be a bad place for 'messing around' but it's a good place for marginal performance improvements because they apply to /everything/
03:16:37 <kmc> more remarkably though, if you boot a multiprocessor system and then hot-unplug all but one CPU, it will /dynamically/ remove those lock instructions
03:16:43 <kmc> and reinsert them if you bring another CPU online
03:17:31 <kmc> self-modifying code is also used for debugging, tracing, etc
03:17:42 <Sgeo> Hmm. How does one add locks where there weren't any? What if you're in a section that should have a lock around it when the new CPU comes on?
03:17:56 <kmc> you have each function start with a call to a "record trace" function, but you nop those out unless tracing is enabled
03:18:08 <kmc> much better performance than putting a conditional at the beginning of every function
03:18:35 <kmc> in fact they have an abstraction for "immediate variables" which look like variables you can assign to, but actually they are load-immediates and each "assignment" rewrites every instruction that reads those "variables"
03:18:53 <kmc> Sgeo: as to the first part, the locks were present in the compiled code, then they were NOPped out when you go to uniprocessor
03:18:57 <kmc> so there is space to put them back in
03:19:07 <kmc> as to the second, it happens in this wonderful function called stop_machine()
03:20:14 <kmc> which gives you total control of all CPUs
03:20:19 <kmc> so that nothing else is running concurrently
03:20:49 <Sgeo> (My first "question" was just really about the second)
03:21:21 <kmc> though those suspended processes still might be in the middle of some kernel function
03:21:21 <kmc> when they resume
03:21:32 <kmc> so i think you need to maintain certain properties about the code you're swapping out
03:21:59 <kmc> executing a NOP; MOV which is in the middle of turning into a LOCK MOV is okay
03:22:06 <kmc> because the NOP instruction and LOCK prefix are one byte each
03:22:13 <kmc> (talking about x86 here as an example i know well)
03:22:23 <kmc> (and because the most sophisticated tricks are for x86 and maybe ARM)
03:22:54 <zzo38> How can you expect that to work in a C program?
03:23:09 <kmc> you don't; it's all done with inline assembly
03:23:22 <kmc> Sgeo: here's the Linux kernel's big list of favorite NOP instructions: http://lxr.linux.no/linux+v3.7.7/arch/x86/include/asm/nops.h
03:23:32 <kmc> "Note: All the above are assumed to be a single instruction. There is kernel code that depends on this."
03:23:45 <kmc> that means you can replace them with a non-NOP of the same size without worrying about code that's in the middle of the instruction
03:24:25 <kmc> Sgeo: it gets more complicated for something like Ksplice, which is swapping out an entire kernel function for another. Ksplice does stop_machine(), walks the kernel stacks of all processes, and aborts if any of them are executing one of the functions to be patched
03:25:34 <kmc> depending on the patch and the workload of the machine this can actually make it rather hard to apply a patch
03:25:59 <kmc> like on the super oversubscribed OpenVZ hosts running 1000 separate Apache processes, it would be pretty hard to patch bits of the network stack
03:29:07 <Sgeo> Hard as in, takes time before there's a window of opportunity?
03:29:33 <kmc> the ksplice tools would retry periodically but sometimes it would take hours
03:38:28 -!- sivoais has quit (Remote host closed the connection).
03:39:34 -!- sivoais has joined.
03:45:49 <oerjan> `pastelogs ais523.*shove
03:46:27 <oerjan> `pastelogs ais523.*shove
03:46:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27210
03:57:41 <zzo38> Do you know if it is possible in GCC to include a variable (possibly in its own section) which is accessed by a machine code for a different processor from the main program?
04:08:56 <kmc> i don't understand
04:09:59 <zzo38> I mean without having to compile the other machine code within the C program, so it can instead be included in the compiled executable file.
04:20:33 -!- Arc_Koen has left.
04:39:35 <zzo38> C2 wiki mentions about three start programming, you might be a three star programmer ... if raw machine codes debugging is not low level enough. But now we have Verilog can we use that in such circumstances?
04:39:57 <kmc> oh C2 wiki
05:06:14 -!- TeruFSX has quit (Ping timeout: 256 seconds).
05:33:12 <shachaf> zzo38: Why didn't you tell me curl supports gopher?
05:33:48 <shachaf> oerjan: Should I figure out what a limit is?
05:33:58 <kmc> shachaf: how many buffer overflows in the gopher handlin
05:34:53 <shachaf> kmc: one more than you can handle
05:36:38 <shachaf> Maybe buffer overflow in the curl gopher code are zzo38's secret weapon.
05:41:00 <oerjan> maybe he never stopped
05:57:15 <zzo38> shachaf: I don't know exactly why I will tell you that, and I also didn't know if there are buffer overflow in the curl gopher code.
05:57:35 <zzo38> But you can just download a gopher file using netcat very easily
05:58:01 <shachaf> what if there's a buffer overflow in the netcat gopher code
05:58:32 <zzo38> Netcat has no gopher code.
05:59:24 <shachaf> zzo38: Do you ever tell people to "gopher it"?
06:18:36 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:19:11 -!- copumpkin has joined.
06:20:23 -!- pikhq has quit (Ping timeout: 252 seconds).
06:20:28 -!- pikhq_ has joined.
06:42:52 -!- pikhq has joined.
06:43:40 -!- pikhq_ has quit (Ping timeout: 272 seconds).
06:50:27 <shachaf> monqy: elliott is "holding me hostage"
06:50:44 <monqy> something about fake category theory
06:50:54 <monqy> “why not try the real thing„
06:51:22 <shachaf> because "the real thing doesnt have a type checker"
06:51:26 <shachaf> also "elliott hates maths'
06:52:20 <monqy> um agda has a type checker
06:52:45 <shachaf> agda isnt" the real thing monqy"
06:52:59 <shachaf> also i suggested agda and he said no
06:53:05 <monqy> you write the real thing in agda
06:53:11 <shachaf> also does agda have gobby mode
07:31:49 -!- Halite has joined.
07:41:00 <Halite> I lost the source for NAND++'s interpreter :c
07:57:12 -!- oklofok has joined.
08:02:00 -!- oerjan has quit (Quit: leaving).
08:12:12 -!- azaq23 has joined.
08:12:22 -!- azaq23 has quit (Max SendQ exceeded).
08:17:24 -!- DHeadshot has quit (Ping timeout: 272 seconds).
08:27:38 -!- Halite has quit (Remote host closed the connection).
08:45:38 -!- sebbu2 has joined.
08:45:53 -!- sebbu2 has quit (Changing host).
08:45:53 -!- sebbu2 has joined.
08:46:33 -!- sebbu has quit (Ping timeout: 272 seconds).
08:58:25 -!- quintopia has quit (Ping timeout: 246 seconds).
08:58:46 -!- quintopia has joined.
09:13:22 -!- epicmonkey has joined.
09:44:06 -!- sebbu2 has changed nick to sebbu.
09:47:09 <zzo38> A variant of UTF-18 could be made to allow surrogates to be used to encode code points which are out of range of UTF-18. (The ordinary UTF-16 surrogates would be used.)
09:48:40 <zzo38> What they call UTF-9 should be called VLQ-9 since it is actually VLQ and not UTF.
09:50:23 <zzo38> (Like UTF-8, it can be generalized to encode any numbers; it doesn't have to be Unicode at all.)
09:59:29 <fizzie> If it's an encoding for Unicode codepoints, it's a UTF, no matter how it can be generalized. (Of course they could have a name such as VLQ-9 for the encoding in general, and then specify UTF-9 as simply using it.)
09:59:35 -!- monqy has quit (Quit: hello).
10:04:48 -!- DHeadshot has joined.
10:13:18 -!- Nisstyre_ has joined.
10:14:47 -!- Nisstyre has quit (Ping timeout: 240 seconds).
10:23:25 -!- DHeadshot has quit (Ping timeout: 260 seconds).
10:30:52 <zzo38> I should make the program to print out the file of Internet Quiz Engine to fill out the quiz on paper.
10:31:53 <zzo38> First I should fix the analysis program.
10:33:54 <zzo38> On the C2 wiki I found that Visual Basic 9 has command like: Dim query = From token In tokens Group By token Into Count()
10:45:27 <Deewiant> That's the release where they added LINQ, I think.
10:57:39 -!- carado has joined.
10:59:56 -!- oklofok has quit (Ping timeout: 255 seconds).
11:17:27 -!- Phantom_Hoover has joined.
11:28:02 -!- nooodl_ has joined.
11:29:57 <HackEgo> NOOODL_: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
11:32:15 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: THANK: not found
11:35:34 <zzo38> Do you like "worse-is-better"?
11:43:14 -!- nooodl_ has quit (Ping timeout: 272 seconds).
12:36:34 <fizzie> http://sprunge.us/OaVJ "The problem is, the Wotan German AI holds the manifest destiny of becoming so smart in the future that humans will not so much "use" Wotan as co-operate with Him or even be subservient to Him."
12:36:41 <fizzie> (comp.lang.forth strikes again.)
12:46:33 -!- TeruFSX has joined.
13:24:14 -!- boily has joined.
13:28:13 * boily checks his calendar. hm. not Friday yet.
13:28:43 <boily> could someone here be amiable enough to please explain the link between a subatomic particle and a norse god?
13:29:16 <boily> (and if anyone points that electrons are probabilistic waves, I'll get quantic on their puny meatbody.)
13:33:12 -!- Taneb has joined.
13:33:24 -!- impomatic has quit (Quit: Core War - the ultimate programming game http://corewar.co.uk).
13:33:47 -!- TeruFSX has quit (Ping timeout: 252 seconds).
13:40:54 -!- ssue has quit (Ping timeout: 264 seconds).
13:41:13 -!- ssue has joined.
13:43:51 <Phantom_Hoover> note to self: don't read reddit threads on the dorner siege
13:53:09 -!- Taneb has quit (Quit: Page closed).
13:56:26 -!- cuttlefish has joined.
14:02:38 -!- ogrom has joined.
14:25:21 -!- Taneb has joined.
14:37:27 <FreeFull> http://www.chrisseaton.com/katahdin/
14:46:32 -!- ais523 has joined.
14:49:16 -!- Taneb has quit (Quit: Leaving).
15:03:12 -!- Gregor has quit (Ping timeout: 264 seconds).
15:03:19 -!- Gregor has joined.
15:03:44 -!- Gregor has changed nick to Guest92969.
15:04:08 -!- Guest92969 has changed nick to Gregor.
15:07:19 -!- Taneb has joined.
15:07:22 <fizzie> Is that a different message than the usual, or does it just have multiple, or do I just misremember?
15:07:40 <fizzie> Maybe it's the usual and people just rarely use the ? form.
15:08:11 <lambdabot> messages?. Tells you whether you have any messages
15:08:38 <lambdabot> messages?. Tells you whether you have any messages
15:21:00 <FreeFull> I wonder if I'll ever make use of the ST monad
15:26:24 -!- DHeadshot has joined.
15:31:32 -!- impomatic has joined.
15:37:07 -!- ogrom has quit (Quit: Left).
15:41:32 <zzo38> You have said about materialism is "everything is physics", but what is it called "everything is mathematics"?
15:42:02 <Slereah_> Mathematical realism or something
15:42:45 <Slereah_> Possibly Pythagorianism, but that one has a mystic vibe to it
15:42:54 <Taneb> Pythagorianism is weird
15:43:56 <FreeFull> Mathematics isn't restricted to describing reality though
15:44:10 <FreeFull> It describes things that aren't real just as well
15:44:28 <Phantom_Hoover> i'm cool with the whole "even numbers are female" or whatever thing they had
15:44:33 -!- Arc_Koen has joined.
15:45:14 <Taneb> I thought that was the Chinese
15:47:36 <Taneb> Slereah_, I think you're making too many assumptions about Phantom_Hoover
15:47:53 <Taneb> Nothing wrong with that
15:47:59 <Phantom_Hoover> hey who said i agreed with the pythagorean assignment of genders to numbers
15:49:04 <Phantom_Hoover> well, you have one number on top and the other on the bottom
15:49:37 <Slereah_> But how to determine if they're even or odd?
15:53:14 <Phantom_Hoover> you can generalise the idea of factorisation to Q but i don't know precisely how
15:59:32 <Taneb> I'm becoming increasingly annoyed at the admissions team of the maths department at Birmingham university
16:00:46 <ais523> Taneb: I suspect they're badly organized
16:00:58 <Taneb> And won't answer the phone!
16:01:19 <Taneb> And their phone number is similar to a blood collection service!
16:01:36 <ais523> there are definitely times of day when the phone wouldn't be answered
16:01:42 <ais523> it depends on if any of the secretaries are in or not
16:01:53 <ais523> email tends to be more reliable (this does not equal "reliable", though)
16:06:21 <Phantom_Hoover> Taneb, so is this one of those hilarious mishap things where it turns out you've actually sold all your blood
16:06:43 <Taneb> Phantom_Hoover, knowing my luck...
16:07:17 <ais523> Phantom_Hoover: I don't think it works like that
16:07:37 -!- Halite has joined.
16:08:30 <Taneb> (applicant visitor day)
16:08:34 <Halite> There should be an easy programming language creator to end the BF era.
16:08:39 <Taneb> (I need to register for it and their website sucks)
16:09:10 <Taneb> Halite, do you mean an "(easy programming language) creator" or an "easy (programming language) creator"
16:09:17 <Phantom_Hoover> well there's already an easy bf derivative creator, it's called tr
16:09:38 <ais523> Taneb: I think the idea would be to divert people who are going to make sucky esolangs
16:09:47 <ais523> into making sucky esolangs that aren't BF derivatives, but are just as sucky
16:10:07 <Halite> Taneb, an easy (programming language) creator, not to make easy programming languages but to make programming languages easily
16:10:20 <ais523> which instead of being a boring keyword substitution on BF
16:10:29 <ais523> is a boring keyword substitution on C-like imperative languages
16:10:53 <Halite> ais523, I want to make a programming language with new syntax
16:11:00 <Phantom_Hoover> it's a naff scripting language with a crappy joke for syntax
16:11:14 <Slereah_> Phantom_Hoover your british is showing
16:11:30 <Halite> instead of JS var x = 2, do set x to 2
16:12:01 <Halite> Phantom_Hoover, you're British, aren't you
16:12:38 <ais523> scottish is a subset of british
16:12:40 <Slereah_> http://www.youtube.com/watch?v=hp4mENrAnq4
16:12:57 <Halite> Taneb, but COBOL is a rarer programming language for today
16:12:58 <ais523> Phantom_Hoover: well, yes
16:13:11 <ais523> but I know the british/english distinction, and frequently correct foreigners on it
16:14:07 <lambdabot> Local time for Halite is Wed Feb 13 16:14:05
16:14:20 <Taneb> We haven't asked him the question
16:14:29 <Taneb> Halite, do you live in Hexham
16:15:23 <lambdabot> darcs get http://code.haskell.org/lambdabot
16:15:23 <Taneb> Please don't finger me.
16:15:44 <Halite> I'll stick my finger in your client as much as I want, thank you Taneb .
16:15:55 <Taneb> That's probably rape.
16:15:59 <Phantom_Hoover> are you, as is apparently the fashion nowadays, either in or planning to be in the west midlands
16:16:14 <Taneb> You're using the wrong command char
16:16:18 <Taneb> Use / rather than @
16:16:30 <Taneb> Phantom_Hoover, this is bad
16:16:38 <Halite> Taneb, I'm trying to get lambdabot to respond
16:16:49 <ais523> huh, Halite is indeed apparently in UTC+0
16:17:06 <ais523> Phantom_Hoover: the applicant visit days are already happening right now
16:17:12 <Taneb> Phantom_Hoover, most like the 20th
16:17:38 <ais523> Phantom_Hoover: wall, etc.
16:17:39 <Halite> Phantom_Hoover, is British.
16:17:43 <lambdabot> Local time for Phantom_Hoover is Wed Feb 13 16:17:09
16:17:48 <ais523> Halite: yeah, I was doing it as a quick test of whether you were likely to be in the UK or not
16:17:56 <Halite> I'm right, Phantom_Hoover is 16:17 too.
16:18:07 <ais523> it's not 100% conclusive either way (the timezone might be set wrong, and the UK isn't the only country in UTC+0)
16:18:26 <Halite> Phantom_Hoover, do you live in Hexham
16:18:44 <Halite> Phantom_Hoover, NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:18:51 <ais523> Phantom_Hoover: so the weather here is actually /better/ than you're used to?
16:19:25 <Taneb> Two people in this channel live in Hexham, three (including Halite) live in the West Midlands, and about 9 live in Finland
16:19:45 <ais523> I didn't think Phantom_Hoover /lived/ in the West Midlands, just that he happened to be here at the moment
16:19:46 <HackEgo> Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus.
16:19:57 <Taneb> ais523, he lives there in termtime
16:20:35 <ais523> Halite: that command fails in at least two ways
16:20:43 <lambdabot> Local time for ais523 is Wed Feb 13 16:20:42 2013
16:20:50 <Halite> ais523, are you British too
16:21:01 <ais523> unlike Phantom_Hoover, I am actually also English
16:21:13 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for" > wisdom/west\_midlands
16:21:23 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?west: not found
16:21:35 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for" > wisdom/west\ midlands
16:21:42 <HackEgo> Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so for
16:21:47 <ais523> `rm wisdom/west_midlands
16:21:50 <Taneb> `run echo "Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so far." > wisdom/west\ midlands
16:21:57 <HackEgo> CHICKEN: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
16:22:26 <HackEgo> rm: cannot remove `error': No such file or directory
16:22:29 <HackEgo> bash: error: command not found
16:22:46 <Halite> `run throw "I was thrown by Halite!"
16:22:48 <HackEgo> bash: throw: command not found
16:22:57 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:23:00 <ais523> what are you trying to do?
16:23:12 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:23:19 <Halite> trying to make the bot throw an error
16:23:19 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:23:37 <Taneb> I made the bot crash the other day and I have no idea how
16:24:04 <Taneb> Some people do indeed think
16:24:28 <Gregor> That won't work, it's interpreted as rm "-rf /"
16:24:53 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:24:57 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:25:22 <Gregor> `help is a special command. `run <foo> does bash -c '<foo>'
16:25:34 <HackEgo> rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi
16:25:38 <Gregor> Unfortunately, although my rm -rf / won't do anything, it'll take some time to not do anything ;)
16:25:57 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: eval: not found
16:25:58 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:25:58 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:26:13 <Gregor> (That was all the output from everything run in the interim)
16:26:26 <Gregor> And again, `rm -rf /* is interpreted as rm "-rf /*"
16:26:28 <HackEgo> Usage: rm [OPTION]... FILE... \ Remove (unlink) the FILE(s). \ \ -f, --force ignore nonexistent files, never prompt \ -i prompt before every removal \ -I prompt once before removing more than three files, or \ when removing recursively. Less intrusive than -i, \
16:26:47 <HackEgo> rm: cannot remove `/bin': Is a directory \ rm: cannot remove `/dev': Is a directory \ rm: cannot remove `/etc': Is a directory \ rm: cannot remove `/hackenv': Is a directory \ rm: cannot remove `/home': Is a directory \ rm: cannot remove `/lib': Is a directory \ rm: cannot remove `/lib64': Is a directory \ rm: cannot remove `/opt': Is a directory \
16:27:02 <Halite> lol it can't remove because it's a directory
16:27:24 <Gregor> Now that'll take another minute to fail, just like mine X-D
16:27:53 <Halite> it deleting all the directories
16:28:28 <Halite> it's shutting down bot
16:28:30 <Gregor> Why does everybody first try things that would only work if they were running as root X_X
16:28:34 <Gregor> People are really stupid.
16:28:34 <HackEgo> rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi
16:28:42 <Gregor> `echo OH LOOK I'M NOT SHUT DOWN
16:28:47 <HackEgo> bash: shutdown: command not found
16:28:49 <HackEgo> bash: shutdown: command not found
16:29:01 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shutdown: not found
16:29:18 <Gregor> Adding -f will not magically make the shutdown command be in $PATH.
16:29:30 <Taneb> Gregor, I think when I was unleashed on HackEgo, I tried to make it botloop
16:29:48 <Taneb> Which if it could be done at all probably could be done without root
16:30:04 <Gregor> Taneb: OK, then you get an exemption from the "People are really stupid" statement. *stamp*
16:30:10 <HackEgo> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (*
16:30:38 <Gregor> Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there.
16:30:38 <HackEgo> info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:32:16 <Phantom_Hoover> didn't lymia or someone actually successfully break it
16:33:02 <Gregor> It's been DoSed—heck, it was DoSed two minutes ago—but otherwise, no.
16:33:09 <Gregor> Lymia made the least stupid attempt.
16:33:22 <Gregor> Honestly I'm not even sure why I didn't work.
16:33:46 <Gregor> It was a rootkit for a bug in the kernel version I was using.
16:33:56 * boily is devising a new esolang
16:34:04 <Gregor> Phantom_Hoover: It would've only escalated to the hosting user, but that's more than nothing.
16:34:09 <Gregor> boily: YAY ON-TOPIC WOOOH tell us
16:34:12 <boily> the usual cat: « =0,1.12./.2.7./.3.6-/.4./.5./.1./.9,10.11+/.6.8./.9./.15./.13,/.13+/.12.0, »
16:34:20 <boily> (without the guillemets)
16:34:28 <Phantom_Hoover> (also didn't someone successfully ruin it for everyone by whining to the network staff)
16:34:29 <Halite> If I document my idea for an esolang, can you build an interpreter for it
16:34:35 <ais523> Gregor: yeah, botloops were my first idea too
16:34:45 <ais523> strangely, I don't think I've actually ever tried to break HackEgo's sandbox
16:34:55 <ais523> I just decided there wouldn't be much reason in doing so, I guess
16:35:01 <Gregor> Phantom_Hoover: Yeah, but that wasn't a security issue, it just let you say anything, including \x01LOL CTCP SPAM DERP\x01
16:35:09 <ais523> I enjoy learning about its security features, but not for that reason
16:35:39 <Phantom_Hoover> my first experience with HackEgo was trying to run something that exceeded the line lengths and failing miserably
16:36:08 <ais523> I think it's something of a rite of passage for bots in this passage, that someone tries to make a botloop with them
16:36:14 <ais523> (and unless they're really boring bots, succeeds)
16:36:24 <boily> (neat! I remembered my password!)
16:36:33 <HackEgo> bash: line 0: logout: not login shell: use `exit'
16:36:41 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: exit: not found
16:37:07 <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command
16:37:19 <Gregor> <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command // lul
16:37:30 <HackEgo> login: Cannot possibly work without effective root
16:37:49 <ais523> haha, I didn't know login had a sensible error message for that
16:38:06 <ais523> I guess you'd have a better (but still zero) chance with getty
16:38:11 <HackEgo> bash: getty: command not found
16:38:30 <HackEgo> bash: init: command not found
16:38:43 <ais523> I wasn't expecting that to work
16:38:47 <Taneb> `run echo "shut up this is boring"
16:38:48 <ais523> but I was interesting in how init would react
16:38:55 <Taneb> `run echo "talk about esolangs"
16:38:56 <Halite> `run rm -rf /home/hackbot/hackbot.hg/multibot_cmds/lib/*
16:38:57 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/fetch': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/limits': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/revert': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/sand
16:39:21 <ais523> hmm, does that imply there were things there that it /did/ remove?
16:39:26 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:39:30 <Phantom_Hoover> Halite, if you're interested in learning how to write interpreters, the standard first language to target is eodermdrome
16:39:30 <Gregor> ais523: In this case, no.
16:39:34 <zzo38> I can propose a feature of AWK, to allow any regular expression match with ~ (or implied) to expose the matches of full and parenthesized parts, by \0 and \1 and so on so that you can write /A([A-Z])Z/ { print \1 }
16:39:40 <ais523> apparently there weren't
16:40:05 <ais523> zzo38: doesn't Perl do that already, though?
16:40:14 <HackEgo> bash: quit: command not found
16:40:24 <ais523> also sed does that already, too (although it uses & not \0)
16:40:24 <HackEgo> bash: line 0: exit: -f: numeric argument required
16:40:31 <Gregor> Halite: Please, take it to #hackbot
16:40:34 <ais523> Halite: at this point, I'd suggest doing it in a different channel
16:40:38 <ais523> it's getting pretty spammy
16:40:39 <boily> just created Zucchini on the wiki.
16:41:01 <zzo38> ais523: I don't know, maybe it does, and AWK does it too inside of the replacement texts but not outside.
16:41:16 <Slereah_> As long as you're not Taft's ghosts
16:41:22 <ais523> Gregor: btw, the hackbot filesystem history seems to be overescaping apostrophes
16:41:35 <ais523> sed doesn't do it outside, but Perl does
16:41:44 <ais523> except they're called $&, $1, $2, $3, and so on, in Perl
16:41:47 <Slereah_> The Stay Puft marshmallow man was Taft's ghost
16:41:49 <ais523> because \1 means something else
16:42:20 <zzo38> In AWK $1 means something else
16:42:25 <Gregor> ais523: I didn't try especially hard to make it work properly. It's surprisingly difficult to get it to work when there can be Unicode and such *bleh*
16:42:54 <ais523> normally seeing \' rather than ' is a sign of a broken PHP installation, though
16:43:47 <ais523> in this case, it appears to be doing some sort of repr() on the strings
16:43:56 <ais523> not sure in which language, although it uses C-like escape synax
16:44:15 <Gregor> Heheh, no PHP here. Yeah, it tries to escape the strings, and does a crummy job of it. It's just to squeeze it into a box, it's far from correct.
16:44:27 <Gregor> Suffice it to say that the commit messages are for reference, they're not copy-pasteable.
16:44:29 <zzo38> It is possible to work around \' in PHP though, which can work regardless of the PHP setting. This is a dumb feature of PHP (well, PHP in general is stupid) but it can work around, at least!
16:44:45 <Halite> coppro, normally PHP is a sign of a broken
16:44:51 <Gregor> zzo38: It's quite possibly the silliest “feature” of PHP X-D
16:44:56 <Gregor> Although that's quite a competition.
16:45:00 <ais523> Gregor: no, register_globals is worse
16:45:10 <ais523> by orders of magnitude
16:45:35 <Gregor> I think we can all agree that PHP is unbelievably terrible.
16:45:59 <zzo38> Yes it is. I intend one day to rewrite Icoruma in something better and faster than PHP.
16:45:59 <Taneb> It's got to be better than LOLPHP
16:46:04 <Phantom_Hoover> also Halite, Gregor, coppro and ais523 all have the same length of nick
16:46:05 <ais523> Phantom_Hoover: that's just "stupid and buggy", rather than "requires every PHP program that wants to be secure against injection attacks to be written in a really obscure style just in case someone turns the option on by mistake"
16:46:09 <Taneb> That is, LOLCODE meets PHP
16:46:39 <Jafet> PHP has great features, such as Turkish locale support!
16:47:09 <ais523> Jafet: that's an unfair criticism, pretty much every program in existence breaks on Turkish, and the ones that don't were written purely to prove it was possible
16:47:50 <ais523> although Perl finally fixed the main issue in 5.14 by inventing the "cf" keyword, although it still doesn't work, because it would need a special pragma to tell it to work in "turkish mode" that isn't implemented yet
16:49:52 <ais523> haha, I was just going to add that
16:50:11 <ais523> Phantom_Hoover: basically, uppercase i in Turkish still has a dot, and lowercase I doesn't have a dot
16:50:19 <ais523> i.e. dotted i and dotless I are two different letters
16:50:38 <ais523> so its casefolding is actually inconsistent with pretty much every other language in existence that contains the same letters
16:51:17 <Gregor> Why didn'—oh jeez I'm stupid.
16:51:26 <Gregor> I was wondering why `? quine didn't do anything X_X
16:51:33 <Gregor> I need to go put my head in a bucket of water.
16:52:03 <ais523> now I'm trying to work out if `? quine is even a cheating-quine or not
16:52:11 <ais523> I think it's the same sort of quine as HQ9+ supports
16:52:32 <ais523> but slightly more legitimate
16:52:34 <Phantom_Hoover> http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/
16:53:29 <fizzie> http://sprunge.us/SMgZ that was confusing for a moment there.
16:53:54 <fizzie> It's a slightly #esoteric-specific quine.
16:54:46 <ais523> oh wait, is it actually checking the logs for the most recently spoken line?
16:55:10 <fizzie> Not that one, bin/quine.
16:55:32 <ais523> race conditions are fun
16:55:54 <ais523> this strikes me as a potential way to abuse the `list, too
16:56:25 <fizzie> It does have that problem too. It could do a tail -n 20 | grep `quine | tail -n 1 perhaps. Though then it'd fail worse.
16:56:34 <HackEgo> #!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; s/>.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
16:56:51 <fizzie> ais523: Didn't you-know-who-chaf already end up on `list because of that.
16:57:10 <ais523> fizzie: it was his own fault, though; he told fungot to `list, and interrupted it himself
16:57:11 <fungot> ais523: i find walking on gravel to be unpleasant and string processing is not my code ( define pi ( 4 ( 1 4 9
16:57:35 <ais523> so he might have been added via race condition, but he was responsible for causing the race condition in the first place
16:57:53 <fizzie> fungot: Those two things don't seem to have all that much with each other.
16:57:53 <fungot> fizzie: x? k?" at http://paste.lisp.org/ display/ 56631 than nothing
16:58:27 <ais523> I don't really like this style
16:58:29 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
16:58:37 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
16:59:17 <fizzie> Maybe I should train a new europarl too, one of these days.
16:59:18 <Jafet> What is the honourable fungot's opinion on PHP?
16:59:21 <fungot> Jafet: mr president, i welcome the acceptance of harm-reduction as a basic principle, so the range of subjects. there are also big regional differences within europe. an opportunity that we must make sure that this will provide you with more than 15 years, i would like to make several comments. first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected. furtherm
16:59:35 <ais523> hmm… = banning PHP, or = making PHP less harmful?
17:00:02 <Jafet> Did a member of parliament actually welcome the acceptance of harm-reduction as a basic principle
17:00:03 <ais523> although apparently whatever they were planning, they all agreed upon it, but it was rejected anyway
17:00:15 <ais523> Jafet: it's possible it's a literal quote
17:00:18 <ais523> but it's funny either way
17:00:22 <Halite> I have an idea for a programming language called Pancake
17:00:28 <fizzie> "first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected."
17:00:31 <ais523> that was yesterday, but go on
17:01:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16040
17:01:23 <ais523> if I don't say anything in the next hour or so, call an ambulence
17:01:27 <fizzie> I think I've lost the preprocessed Europarl dataset, since it seems it's one of the VariKN models I trained at my work-workstation, and the local disk of that got wiped the other month.
17:01:31 <ais523> although there are friends here, so they should be able to do it for us
17:01:36 <fizzie> Oh well; it wasn't well-preprocessed anyway.
17:01:53 <ais523> reading `quotes sometimes makes me laugh so hard I have trouble breathing
17:01:58 <ais523> so normally I read subsets of it
17:02:00 <fizzie> But it does mean I can't grep as easily for direct quotes.
17:02:56 <HackEgo> 922) <ais523> you can define Feather as "Smalltalk done right" if you want to confuse people into wondering why that would involve time travel stuff and all that
17:03:07 <fizzie> Hmm, the corpora dir of the cog group has enron already downloaded. I'm a bit tempted to run it through the gauntlet.
17:03:11 <ais523> HackEgo: my link above is all of them
17:03:16 <HackEgo> 556) <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo. <Phantom_Hoover> Also lesbian.
17:03:17 <ais523> or you can just do `quote for a random one
17:03:30 <ais523> if you do five `quote in a row, people will start debating what the worst one is, and then delete it
17:03:34 <ais523> it's one of the ways we maintain quality
17:03:41 <HackEgo> 942) <olsner> as long as you're in company where no-one knows both, you can always say either "that's just like welsh ll" or "that's just like klingon tlh"
17:03:42 <HackEgo> 917) <shachaf> FOUR SIMULTANEOUS TYPE SYSTEMS IN A SINGLE ROTATION OF THE LAMBDA CUBE
17:03:43 <HackEgo> 946) <augur> DIE <augur> oh hey elliott
17:03:43 <HackEgo> 16) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
17:03:44 <HackEgo> 599) <oklopol> that's crazy, it almost seems like you have to tell the program how you want it to manipulate the data and not just give it the relevant commands in a random sequence
17:03:54 <Halite> start maintaining quality
17:04:18 <fizzie> There seems to also be a random small dataset of 15k spam emails, but I doubt anyone *really* wants a ^style spam in fungot.
17:04:19 <fungot> fizzie: mr president, as we walked along, the young, women and children, who feel under a lot of progress but with every guarantee. in this regard, at a time when the copenhagen criteria, particularly those paid by users. any infrastructure charging system, like the immigrants forum, which must be emphasised that the fishing effort are also imposed on the palestinian point of view it is undoubtedly the involvement of women in t
17:04:48 <ais523> fizzie: it might be amusing, I guess; the problem is spambots sometimes use markov chains already, so it might even make more sense than average
17:05:15 <ais523> I don't really like 16, it's not particularly up to fungot's usual quality
17:05:16 <fungot> ais523: mr president, the eu does not have a community proposal, to fulfil its main objective. i am also saying it because, at this stage.
17:05:25 <boily> started describing Zucchini. will finish it some time later, need to eat now.
17:05:51 <fizzie> I like 16, but it's probably just because I liked the game.
17:06:08 <fizzie> The "he's really a tricycle! pass him!" bit is a verbatim quote.
17:06:21 <ais523> that makes it worse, doesn't it?
17:06:25 <ais523> I agree that 946 isn't so good
17:07:13 <Halite> so 946 and 16 should go
17:07:47 <ais523> no you can only delete one of htem
17:08:00 <ais523> also elliott isn't here which makes messing with the quotes risky
17:08:27 <Halite> not sure about 917; 599 is quite good in relevance to esolangs;
17:09:28 <ais523> Halite: oklopol actually wrote that language :)
17:10:58 <HackEgo> 159) [spam] Any flavored hell can pee on the pig pen, but it takes a real football team to throw a slyly optimal formless void at a hole puncher.
17:11:08 <ais523> fungot: do you get spam like /that/ in your data set?
17:11:08 <fungot> ais523: mr president, to paraphrase fnord twist, i have asked to speak before the subcommittee on security and defence policy.
17:11:18 <ais523> err, fizzie:, although it works both ways
17:11:27 <ais523> if you do, it has to be added
17:11:40 <ais523> otherwise, updating the bf joust stats page would probably be a better use of the time
17:13:30 <fizzie> Well, I can certainly do that.
17:14:04 <Taneb> Would that "fnord" be "Oliver"?
17:14:10 <Taneb> fungot: oliver oliver oliver
17:14:11 <fungot> Taneb: madam president, we are waiting for us to make a few brief words about each of those amendments substantially improve the text but i am sure that, like him, although convinced of the need to renew its working methods, without which this programme, which have been issued to others by the football league not the premiership. this is the first step in the right direction.
17:17:41 <HackEgo> #!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi
17:18:29 <HackEgo> 7) <oerjan> what, you mean that wasn't your real name? <Warrigal> Gosh, I guess it is. I never realized that.
17:18:37 <HackEgo> #!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi
17:20:22 -!- copumpkin has quit (Ping timeout: 252 seconds).
17:21:00 -!- copumpkin has joined.
17:22:29 <fungot> Halite: mr president, to consider the long-term solution of establishing a work programme not a legislative proposal, should problems arise in the discussion under way on reforms reforms that will be implemented. the resolution even goes so far as it continues to operate its plants safely. mrs ahern, and the rules of the game for the single currency.
17:22:36 <fungot> Halite: it is scandalous, i am aware that this fish used to be about baltic sea regional cooperation. finally, madam president, in declaring my vote in favour of this. politicians cannot and may not ascribe to them the insecurity to which they improve the commission's proposal, namely consumer protection and i am in a position to strike in the charter of rights could equally be used to break a deadlock which has existed, for me
17:22:44 <Halite> fungot, oliver oliver oliver
17:22:53 <HackEgo> 365) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
17:23:03 <Phantom_Hoover> fungot has a limit on how mucn he'll reply to a single person for exactly this reason, btw
17:23:04 <fungot> Phantom_Hoover: mr president, mr harbour, for their contribution to establishing world peace and stability, tackle the problem. it is also a measure which would support these misplaced positions.
17:23:04 <Halite> why doesn't it know my gender
17:23:04 <ais523> it never did find the fifth, the computer crashed first
17:23:16 <ais523> so we wrote a paper about it instead
17:24:00 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: style: not found
17:24:06 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
17:24:10 <fungot> Phantom_Hoover: well, mine's from namco! let's see... " you are not to come within one hundred feet of our mascot, pac man." they are so overreacting.
17:24:11 <fungot> Halite: that... that sounds really nice. lil' jim. that's real fucking fantasy, there.
17:24:27 <fizzie> fungot: Stop with the verbatim quotes there. :/
17:24:27 <fungot> fizzie: except they're probably all girls, who are just pretending to be guys. no, relax! i'm not sure what this means!"
17:24:41 <fizzie> I'll have to retrain that with different options some day.
17:25:08 <ais523> xkcd would be interesting if not for the fact it wouldn't work
17:25:33 <Halite> fungot, Namco is a dictatorship
17:25:33 <fungot> Halite: yeah... but i need that insulin to live!
17:26:09 <Halite> fungot, you can get insulin without Namco
17:26:09 <fungot> Halite: the where is mommy map. i should've... should've liked the saturn!
17:26:35 <fungot> Halite: it's tribes 2! we're... we're saved!
17:26:36 <fizzie> There's already a number of webcomics, also.
17:26:45 <fungot> Halite: extra! read all about it.
17:26:58 <fungot> Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011)
17:27:17 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube
17:27:18 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube
17:27:20 <fizzie> That's the full list, you know.
17:27:30 <fungot> Selected style: youtube (Some YouTube comments)
17:27:40 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
17:27:42 <fungot> Phantom_Hoover: bear in mind closely that i did not exactly relish this task, for the covered parts of the building and in the flaming violet light gilman thought he saw a dimly illumined corridor lined with worm-eaten panelling.
17:27:45 <fizzie> That's three videos or so, it's kind-of borking.
17:27:49 <fizzie> Well, maybe borking too.
17:27:53 <fungot> Halite: the thing in the moonlight that flooded the spacious plain was a spectacle which no mortal fnord to the last calm, cold, slight, and fnord revelled clumsily here and there. the ground under one of the repugnant shantaks, helping him up as his judgement struggled with his loathing. it was not that distant whine which robbed me of my faculties and set upon my soul such a seal of fright as tangible as a draught of air whic
17:28:35 <Halite> h blew me away into a trash landfill
17:29:11 <Halite> fungot, var fnord = oliver
17:29:11 <fungot> Halite: so instead of accepting the train he chose i telephoned the station and devised another arrangement. by rising early and taking the train at rowley after the branch was dropped but now they have fnord themselves to unknown kadath in the cold
17:29:21 <zzo38> I fixed the analysis program for Internet Quiz Engine. It still fails in cases of questions other than a plain ? due to its simplicity but should work in most cases, which will not use those features.
17:30:02 <fungot> Halite: a reservoir of darkness, where solid and fnord forms were known only by their windy stirrings, and cloudy patterns of force seemed to fnord as though mirrored in fnord waters. i was reminded of some vaguely disquieting lines i had once called home. the old ones an fnord relationship which must have been malignly silent suddenness, the portrait of joseph curwen at last. that newspaper item and what his mother had heard i
17:30:10 <Halite> fungot, Phantom_Hoover
17:30:10 <fungot> Halite: sometimes when earth's gods are homesick they visit in the still harbour.
17:30:27 <ais523> I don't think thutubot works properly in /query, but I@m not sure
17:31:04 <Halite> Fatal Error: /home not found
17:31:09 <Taneb> Pietbot doesn't work in /query
17:31:10 -!- Halite has quit (Quit: Fatal Error).
17:31:20 <Taneb> Then again, Pietbot doesn't work in channel
17:31:40 <zzo38> http://sprunge.us/jKMZ This is copy of the program for analysis of Internet Quiz Engine files.
17:32:21 -!- Halite has joined.
17:32:40 <zzo38> It will still consider the timers and multiple selection questions when counting how many slots it takes up, though.
17:33:18 <Halite> I want to make a programming language
17:33:37 <ais523> do you have any interesting concepts to base it on?
17:33:48 <Halite> well, NAND being functionally complete
17:34:07 <ais523> that's been done a few times in the past
17:34:10 <Halite> I want too make one whose only boolean operation is binary NAND
17:34:28 <ais523> the problem is, that NAND-based programming languages don't lend themselves to infinite state
17:34:41 <ais523> but see, say, http://esolangs.org/wiki/Norfuck http://esolangs.org/wiki/Suffolk
17:34:59 <zzo38> If you add NAND and shifting then will it work?
17:34:59 <ais523> that should help you understand where the TCness issues come from
17:35:21 <ais523> zzo38: hmm, bitwise NAND? if you can shift both ways, it would work
17:35:25 <ais523> if you can shift only to the right, no
17:35:33 <ais523> if you can shift to the left but not right, I'm not sure
17:35:40 <ais523> and "not sure" is always a good place to be
17:35:42 <Taneb> Halite, did you see Nandypants?
17:36:02 -!- augur has quit (Remote host closed the connection).
17:37:29 <Halite> I don't want it to look like Brainfuck
17:37:35 <ais523> say we have an OISC, whose only command is "a = ~(b & c) << 1", where b and c can be variables or literal numbers, and everything is bignum
17:37:55 <ais523> and, hmm, some sort of flow control; probably while is enough, like in BF, perhaps we should have if and while
17:38:13 <Halite> btw. I have an idea. We could eliminate the need for any operation by creating a new data type called 'truth tables'
17:38:33 <ais523> well an OISC has only one operation
17:38:42 <ais523> so it eliminates the need for specific operations that way
17:38:48 <ais523> although it's not an OISC if I'm adding if and while :)
17:39:10 <ais523> I guess to make it a proper OISC, we need the instruction pointer to be a variable you can assign to
17:39:27 <Halite> I think I'll make it something like an OISC
17:40:40 <Halite> with one operation but IF, WHEN, and WHILE
17:42:02 <Halite> Should I call it Nandy or NAND#
17:42:17 <ais523> I wouldn't be surprised if both those names, or similar ones, were already taken
17:42:23 <ais523> so I'd suggest being more creative
17:43:01 <Halite> can you think of a name
17:43:49 <ais523> not right now, although sometimes I can
17:44:01 <ais523> normally I name it after concepts in the language itself, which requires writing the language first
17:44:13 <Halite> I'll document the language in a draft first.
17:44:21 <Halite> I won't write an interpreter yet.
17:50:03 <fizzie> Oh, speaking of fungot's fnords: there's also a technical limit in the format that restricts the vocabulary to some not-terribly-giant number (2^21 tokens, maybe? Or a total of 2^28 characters in the string table?) -- though of course that "drop OOV things" option is always possible.
17:50:03 <fungot> fizzie: just about every night on some of them do))
17:51:38 <HackEgo> 2007-10-25.txt:17:29:14: <lament> setting up the initial conditions themselves can be represented as a program
17:51:38 <Halite> Could I make a programming language where the if condition is formatted if(operand1,operand2) { function }
17:52:19 <ais523> I'd need more details to know whether it was a good idea or not, though
17:52:27 <fizzie> Bleh, Lingua::EN::Sentence is kinda slow. It has taken now something like 20 minutes to process about 6000 emails.
17:52:39 <HackEgo> bash: kernelbugcheck: command not found
17:53:15 <Halite> 'kernelbugcheck' would force a Kernel Panic
17:53:37 <Gregor> Feel free to force a kernel panic, it won't affect the bot.
17:53:50 <ais523> Gregor: is each request run with a separate kernel?
17:54:06 <ais523> and is that for security reasons, or just because it was easier that way?
17:54:41 <Phantom_Hoover> How does running each request with a seperate kernel work?
17:55:01 <Gregor> Phantom_Hoover: http://bitbucket.org/GregorR/umlbox
17:55:04 <ais523> Phantom_Hoover: it's UMLbox
17:55:19 <ais523> so it's treating kernels just like any other process
17:58:06 <ais523> as opposed to weboflies, which uses the same kernel as the rest of the system, but has its own idea of time, process IDs, networking namespaces, filesystems, and init
17:58:20 <ais523> and probably a few other things too
18:00:49 <fizzie> Only three unpruned 6-grams of my enron subset: "to thank you for your patience", "not be able to determine which" and "communication i believe that the new".
18:01:20 <ais523> is that the spam, or the nonspam?
18:01:35 <fizzie> It's the enron, which I suppose shouldn't contain any spam?
18:02:04 <fizzie> I only took a few messages out of it, though. It has a bit over half a million emails.
18:02:14 <ais523> I get a lot of internal spam sometimes
18:02:36 -!- sebbu has quit (Ping timeout: 272 seconds).
18:02:39 <fizzie> I suppose it depends on what "spam" means.
18:02:58 <Gregor> Is it homogenized meat product?
18:05:00 -!- iamcal_ has quit (Read error: Operation timed out).
18:05:48 <kmc> does fungot do enron?
18:05:48 <fungot> kmc: and right well and i i
18:06:21 <kmc> yes and i forgot
18:06:25 <kmc> does fungot do enron?
18:06:25 <fungot> kmc: there's a couple of hours
18:06:33 <fizzie> http://sprunge.us/fhWV well, I don't know if that's so good. (Each paragraph is a single output.)
18:06:36 <fizzie> At the very least it needs some MIME preprocessing step to get rid of the =20's. And the HTML.
18:06:47 -!- epicmonkey has quit (Ping timeout: 240 seconds).
18:07:00 <fizzie> I don't know what all that ".?" stuff is, too.
18:07:02 <ais523> Gregor: the company who makes that actually put out a press release saying that they were happy with people using "spam" to refer to unsolicited email, but wanted to reserve "SPAM" in allcaps for their homogenized meat product
18:07:12 <tswett> http://pastie.org/6154897
18:07:13 <kmc> "bentley, wear hand-tailored silk shirts and jackets if you wish you were from hizbullah, a lebanese billionaire rafik hariri"
18:07:17 <tswett> What determines which category a word falls in?
18:07:27 <Gregor> ais523: All press is good press.
18:07:29 <kmc> category theory
18:07:48 <tswett> Ah, but I have fooled you. These "categories" are actually disjoint sets.
18:08:52 <ais523> Gregor: in general, yes
18:08:56 <ais523> I think there are exceptions, though
18:09:05 <ais523> especially as a company gets larger
18:09:23 <Gregor> ASDA: Your Premier Source for Horse Meat
18:09:55 <Halite> Tesco: Every little bit of Horse Meat helps
18:10:24 <ais523> well at this point, you have to work out what's screwed up with the supply chain
18:10:24 <Halite> (that should be a quote, that should)
18:10:30 <ais523> rather than with the people who ended up with it
18:10:43 <ais523> ever since the BSE thing, Europe's tried really hard to make all meat traceable
18:10:49 <Halite> what is screwed up with the supply chain is that suppliers are labeling Horse Meat as Beef
18:10:51 <ais523> so this is quite embarrassing for the meat inspector people
18:11:02 <ais523> Halite: well yes, obviously
18:11:12 <ais523> but there are many suppliers in the chain, so you want to find out which ones are responsible
18:11:15 <kmc> each request to HackEgo basically boots up a separate Linux machine, runs the command, and then merges the filesystem changes using Mercurial
18:11:18 <kmc> it's the best
18:11:21 <ais523> also, why are you initcapitalizing "Horse Meat"?
18:11:32 -!- sivoais has quit (Quit: leaving).
18:11:46 <Gregor> kmc: Actually it never has to merge anymore, it sequentializes writing requests.
18:12:01 <HackEgo> login: Cannot possibly work without effective root
18:12:33 -!- sivoais has joined.
18:12:33 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
18:13:06 <kmc> Gregor: oh that's too bad
18:13:10 <Gregor> Heh, it's got a pretty restrictive /etc X-D
18:13:16 <kmc> !!!Horse Meat
18:13:31 <ais523> I don't think EgoBot has a !!Horse command
18:13:31 <HackEgo> sivoais: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:13:34 <ais523> Gregor: we've done that already
18:13:43 <Gregor> ais523: Well piffle to you too then!
18:13:55 <ais523> Gregor: well elliott told me off for doing it when /I/ did it
18:14:01 * ais523 hopes sivoais feels properly welcomed, at least
18:14:28 <HackEgo> Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:15:36 <Gregor> That reminds me, I've been once again thinking about how HackEgo could reasonably be made to trigger on other situations, such as channel-join. For a while I was thinking that so long as any particular trigger fires only once, that would be OK, but in retrospect, that's useless in both dimensions (it doesn't restrict spam enough, and doesn't actually accomplish anything).
18:17:18 <Halite> `run echo "No output."
18:17:28 <Halite> `run echo "Yes output."
18:18:43 -!- augur has joined.
18:18:55 <Halite> `run echo "Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)"
18:18:56 <HackEgo> Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:14 <Halite> `run echo "Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)"
18:19:16 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:26 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:28 <Gregor> Yes, your ability to make the bot do things is downright masterful.
18:19:31 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:40 <HackEgo> augur: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
18:19:49 <HackEgo> CHICKENS: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.)
18:20:35 <augur> i hate you so much
18:21:35 -!- sebbu has joined.
18:24:43 <Gregor> Maybe that's because you're botspamming.
18:25:02 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Waugur: not found
18:26:48 <fizzie> Wauguries of Innocence.
18:28:02 -!- ogrom has joined.
18:28:35 <fizzie> How surprising, piping the stuff through MIME::Parser is even slower. Oh well.
18:33:49 -!- zzo38 has quit (Remote host closed the connection).
18:34:53 <fizzie> he also thought that socal was being PODQUOT naive if they thought they would get a better deal from the legislature than from the bankruptcy court PDOT PCDQUOT this is such a BUSINESS-ORIENTED thing.
18:35:36 <fizzie> he added that the davis PSLASH socal mou is dead and that all the PODQUOT plan b's PCDQUOT are PODQUOT speculative PCDQUOT at best PDOT also what's a "mou"?
18:36:14 <fizzie> A "memorandum of understanding", apparently.
18:43:55 <boily> fizzie: mou is a French word meaning soft (things), without initiative or personality (persons).
18:44:23 <boily> also, updated Zucchini. feel free to give me any feedback!
18:48:27 <fizzie> Okay, a new try on MIME-parsed messages: http://sprunge.us/DPbW well, I dunno... there's still quite a lot of email-formatting crap in the body texts that would need to be heuristicced away; quoted messages and the like.
18:50:41 <fizzie> Though I did not know that wearing shorts was favoured by industry executives.
18:51:24 <fizzie> "layoffs first in oilpatch as lower energy commodity prices to keep people from watching porn" I don't know about that either.
18:53:27 -!- Halite has quit (Changing host).
18:53:27 -!- Halite has joined.
19:02:48 -!- monqy has joined.
19:07:07 <HackEgo> 15) <FireFly> Meh <FireFly> ._.
19:07:26 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rmquote: not found
19:07:27 <HackEgo> 16) <fungot> oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him!
19:07:31 <Gregor> Oh, what's the command...
19:07:39 <HackEgo> *poof* <FireFly> Meh <FireFly> ._.
19:08:17 <HackEgo> 942) <olsner> boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 943) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it \ 952) <boily> not only there is no God, but try to find an APL keyboard on Sunday. \ 955) <boily> ais523: I'm not sure my
19:08:36 <HackEgo> 955) <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
19:09:02 <boily> everything is fine. my narcissistic paranoïd self is reässured.
19:09:17 <Gregor> boily: The "oi" in paranoid is not a diaeresis.
19:09:36 <ais523> yeah, "reässured" is fine, but it's "paranoid"
19:10:16 <ais523> the vowel with the diaeresis has to belong to a different syllable to the vowel before
19:12:02 <Gregor> You peöple are goïng to drive me to the saüce.
19:19:19 -!- epicmonkey has joined.
19:20:33 -!- Taneb has quit (Quit: DINNER).
19:23:57 -!- ogrom has quit (Read error: Connection reset by peer).
19:29:54 -!- Halite has quit (Remote host closed the connection).
19:36:15 -!- sirdancealot has quit (Ping timeout: 260 seconds).
19:41:40 -!- ogrom has joined.
19:43:15 <Sgeo> I should really just be writing code and then filling in the corresponding strings later
19:43:31 <Sgeo> I wrote a little main=getContents>>=print utility to help me with that bit later on
19:47:37 <kmc> :t interact
19:49:35 -!- Taneb has joined.
19:50:50 * Sgeo is vaguely worried about the call stack
19:51:42 <Sgeo> It's going to grow by one for each compiler in the compiler stack :/
19:51:56 <Sgeo> The way I'm implementing, anyway
19:53:21 <Sgeo> Actually, it might not, depending on each compiler in the compiler stack
19:53:31 <Sgeo> If the last thing they do is ! (compile)....
19:53:53 <ais523> you may hit the problem that most recently halted Feather :(
19:55:12 <ais523> Sgeo: the whole "how do you have a forever-growing stack of interpreters without losing time" thing
19:56:08 <FreeFull> Have each interpreter write the next one
19:56:13 <Sgeo> I take it that "The slowdown is inevitable, it's just an experimental concept anyway" is not an adequate solution?
19:57:11 <Taneb> This sounds like the problem I had with programming in Brook, except not at all
19:57:31 <Taneb> It sounds like the problem I thought I would have with programming in Brook, except backwards
19:57:36 <Sgeo> At any rate, these are compilers, which compile into the TF primitives, so it's not like each one in the stack needs to be recompiled itself before being used
19:57:43 <Sgeo> Just interpreted
19:57:55 <Taneb> The actual problem with programming in Brook is making a quine in a crappy language
19:58:41 <Sgeo> Taneb, that's what was about to stump me with what I now call the ! operation. So I made it so that ! doesn't compile in terms of primitives, but in terms of the currently executing language
19:59:55 <Taneb> Sgeo, I've given up understanding your new language
20:02:01 <Sgeo> Let's call the primitive implementation H0, and the language that it implements L0
20:02:07 <Sgeo> L0 is Trustfuck
20:03:04 <Sgeo> I write a compiler for L1, which is whatever language, in L0. This consists of reading L1 code, transforming it into L0 code, then emitting with : and compiling with !
20:03:21 <Sgeo> When I compile, H1 is output.
20:04:47 <Sgeo> I can now write a compiler in L1 for another language L2. The primitive ! and :, which may be called something else in L1, take L1 code now, not L0 code
20:04:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:04:57 -!- iamcal_ has joined.
20:05:01 -!- augur has quit (Ping timeout: 245 seconds).
20:06:14 <Sgeo> Internally, when I emit H1 from my L0 program, a compiled form of L0 is itself stored in H1, on top of the compiler stack
20:07:03 <Sgeo> Thus, when I use the ! primitive from an L1 program, first the code to be compiled is run through the L1 compiler which was written in L0, before the L0 primitives are compiled by whatever means
20:08:00 -!- Vorpal has joined.
20:08:11 <Sgeo> I do feel quite limited by basing this on Brainfuck
20:08:36 <Sgeo> Maybe a future Trust-family language could, say, state that different code other than itself will get thrown onto the compiler stack?
20:10:03 <Sgeo> erm, support a mechanism for doing so
20:17:53 <Sgeo> Actually, I see a simple extension to Trustfuck that could support that
20:18:05 <Sgeo> But right now, meh
20:18:59 <FreeFull> I have a big appreciation for :info, even if it doesn't tell me everything I want to know
20:19:00 -!- DHeadshot has quit (Ping timeout: 260 seconds).
20:19:40 <FreeFull> ghci should have a way to see all definitions in its current scope for which part of their type signature matches x
20:20:01 -!- DHeadshot has joined.
20:20:53 -!- augur has joined.
20:41:26 <Sgeo> My brain feels like slime when I'm working on this
20:41:38 <Sgeo> And it's more me forgetting how to program in Haskell than it is me not grasping my idea
20:42:10 <Sgeo> I should probably be using lenses, shachaf
20:42:17 <Taneb> And that's the downside of using so many languages, Sgeo
20:42:20 <cuttlefish> Does the same as the system call of that name.
20:42:20 <cuttlefish> If you don't know what it does, don't worry about it.
20:42:20 <cuttlefish> -- Larry Wall in the perl man page regarding chroot(2)
20:42:40 <ais523> heh, I remember reading that recently
20:43:01 <Taneb> Stick to one, and eventually people will laugh at you for not being able to understand C
20:43:31 <boily> I have the feeling that what Taneb said works with only knowing C.
20:46:58 <Sgeo> How do I fix this to not be so ugly (I'm not even sure if it's correct, I haven't tried compiling it)
20:46:59 <Sgeo> http://hpaste.org/82310
20:47:21 -!- ogrom has quit (Quit: Left).
20:48:54 <Gregor> I think there's a special place in Hell for people who do chroot in perl.
20:49:37 -!- Taneb has quit (Ping timeout: 248 seconds).
20:50:26 <Sgeo> I could factor it out
20:50:41 <ais523> Gregor: it makes sense if you're a sysadmin and using perl as a shel
20:50:45 <Sgeo> That would be good practice, rather than copy/pasting the way I usually would in this situation
20:51:02 <Gregor> I think there's a special place in Hell for people who use perl as a shell.
20:51:22 -!- carado has quit (Ping timeout: 246 seconds).
20:51:55 <olsner> boily: indeed :) otoh, C could actually be small enough that you *could* know it
20:52:28 <Vorpal> Gregor, did you figure out the -R issue with umlbox btw?
20:52:37 -!- Taneb has joined.
20:52:40 <Gregor> Vorpal: Haven't had time to investigate yet.
20:53:04 <Vorpal> Gregor, also chroot in perl? You mean by doing the syscall?
20:53:13 <Vorpal> and why would you do that in a perl script
20:53:13 <Gregor> I'm thinking it may not be worth investigating, it'd be best to just rip that out and find a better way to communicate guest-host. The tty system is a nightmare.
20:53:25 <Gregor> Vorpal: Read just a liiiiiiiiiiiiiiiiiiiiiiittle bit further back in the backlog.
20:54:21 <Gregor> The mudem itself is good AFAIK, it's just that UML ttys are awful.
20:54:43 <Vorpal> Gregor, what options to ttys are there
20:55:09 <Gregor> Err, s/options/alternatives/?
20:55:37 <Gregor> It has a system for memory-mapping host files. That's not a stream though.
20:55:42 <Gregor> I don't think it has any other stream options.
20:55:42 <Vorpal> Gregor, I blame that on them being the same word in Swedish
20:55:56 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de).
20:56:08 <Vorpal> Gregor, doing manual stream over a mmap page sounds awful
20:56:26 <Vorpal> but if you want to, go ahead
20:56:27 <Gregor> Hence why I haven't tried X-D
20:56:46 <Vorpal> especially the syncronization
20:57:09 <FreeFull> Gregor: What about people who use ghci as their shell?
20:58:06 <Vorpal> Gregor, how does normal uml do networking?
20:58:38 <FreeFull> rawSystem "bla" ["buh","bluh"]
20:58:40 <Gregor> Vorpal: It exposes either a tun/tap or slirp as an ethernet device. That's implemented as a kernel module. Neither really allow me to meaningfully place any restrictions.
20:59:02 <Vorpal> Gregor, the tun/tap one would work, you just have to use iptables to restrict it
20:59:16 <Vorpal> no idea about the slirp one
20:59:27 <Gregor> Well, OK, tun/tap is impractical because UMLBox doesn't run as root.
20:59:36 <Gregor> And many can run at once.
20:59:57 <Gregor> Really, it's just plain nutty that uml has no reliable host/guest character device.
21:00:07 <Gregor> That's probably a good approach.
21:00:22 <Gregor> The biggest issue with slirp is that it has a "let's run arbitrary host commands" pseudo-server.
21:01:40 <Vorpal> Gregor, so patch that bit out?
21:01:42 <Sgeo> Hmm, my code seems a bit repetitive
21:01:42 <Sgeo> interpret' (Inc:cmds) = modTape incTape >> interpret' cmds
21:01:42 <Sgeo> interpret' (Dec:cmds) = modTape decTape >> interpret' cmds
21:01:42 <Sgeo> interpret' ((Set n):cmds) = modTape (setTape n) >> interpret' cmds
21:02:41 <Gregor> Vorpal: I haven't looked into it, at the time the mudem approach seemed better (whitelist instead of blacklist)
21:03:48 <Vorpal> Gregor, why would it allow executing commands on the host at all?
21:04:03 <Vorpal> isn't it just a user space program forwarding network
21:04:13 <Gregor> Yes, it offers that as a virtual service.
21:04:23 <Gregor> Because it's stupid that way X-D
21:04:28 <Vorpal> that sounds complicated
21:04:33 <Vorpal> also who came up with this shit
21:05:11 <Vorpal> so what is slirp originally intended for?
21:05:53 <Gregor> I think it was so that you could have an ethernet-connected computer accept dial-in connections without needing to run a whole other networking stack in-kernel.
21:06:30 <kmc> i think it's for old ISPs that gave you dial-in shell access only
21:07:36 -!- oerjan has joined.
21:07:36 <Vorpal> that was never common over here afaik
21:07:48 <Vorpal> it was usually just straight PPP or SLIP
21:12:59 <FreeFull> Sgeo: I can make it less repetitive at the cost of readibility
21:14:24 <FreeFull> Sgeo: by the way, where is the case for []? Or is : here not the list constructor?
21:14:38 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
21:15:10 <Sgeo> It occurs to me that the Linux kernel has swears in it, yet that wouldn't stop someone from pointing to it on their `resume
21:15:21 <Sgeo> FreeFull, I didn't show all cases, but forgot about that one, ty
21:15:31 <monqy> Sgeo: my advice is to factor out the thing that goes from instruction to action like Inc->IncTape
21:16:12 <monqy> and Set n -> setTape n
21:16:32 <FreeFull> You might be able to map and then sequence_
21:20:16 <FreeFull> interpret' = mapM_ mod where mod x = modTape $ case x of { Inc -> incTape; Dec -> decTape; (Set n) -> setTape n }
21:22:10 <fizzie> I had a slirp-driven dialup connection going a while (a decade? 15 years?) ago.
21:22:32 <fizzie> Though probably not as the regular "commercial ISP" at-home dialup.
21:22:40 <Sgeo> Besides, I have cases that don't involve just modifying the tape
21:22:55 <Sgeo> data InterpState = InterpState { tape :: Tape, higherInput :: Maybe String, currentCompilerStack :: [[TFCommand]], codeBlock :: String }
21:22:55 <monqy> Sgeo: ok then think for yourself
21:23:16 <Sgeo> Does thinking not to bother with factoring it out as much as possible count?
21:24:05 -!- Phantom_Hoover has joined.
21:24:38 <Sgeo> Hi Phantom_Hoover. I believe that the easiest Trustfuck programs to write are probably BF derivative compilers.
21:24:45 <monqy> you don't have to do it "as much as possible" (what does that mean???) but i suggest avoiding too much repetition because duplication leads to error and also pain
21:24:49 <monqy> you dont want this
21:24:56 <Sgeo> In fact, I plan on making a few
21:24:59 <Sgeo> Just to test it out
21:25:07 <Sgeo> switching [ and ]
21:25:37 <oerjan> logically, Phantom_Hoover now has to replace Sgeo's brain with a brick factory
21:26:36 <olsner> brick factory might be a nice name for a brainfuck derivative
21:27:11 <Taneb> I seem to remember a brick factory near Newcastle
21:27:37 <monqy> could make your own bricks
21:27:43 <olsner> I thought they made bricks by pouring mud in molds in the desert
21:27:44 <monqy> homemade bricks for that "homemade" charm
21:28:19 <olsner> I wonder what kind of desert has lots of mud though
21:28:23 -!- augur has quit (Remote host closed the connection).
21:28:45 <oerjan> Phantom_Hoover: hm i'd suggest Leca, but that's apparently a norwegian company so might not be in britain
21:30:56 <fizzie> There's a brick factory next to the summer place of some people I know. It's in Mjösund, Kemiö, if you're interested. I'm sure it's not much out of your way.
21:32:31 <oerjan> hm ok they've been absorbed by Weber, which seems multinational.
21:33:42 <oerjan> <olsner> I wonder what kind of desert has lots of mud though <-- the ones rivers run through? see: egypt, mesopotamia
21:34:54 <fizzie> ais523: Oh, I updated the bfjoust stats, incidentally; started it when you mentioned it, but then totally forgot about it so didn't rsync.
21:35:08 <olsner> oerjan: mythological deserts don't count
21:35:16 <ais523> do you have the link handy?
21:35:49 <oerjan> oh actually weber is part of saint-gobain.
21:36:14 <ais523> `pastlog bfjoust stats
21:36:25 <fizzie> ais523: http://zem.fi/egostats/
21:36:33 <fizzie> (Faster than a speeding bot.)
21:36:48 <fizzie> (Maybe HackEgo doesn't quite always count as "speeding".)
21:37:10 <oerjan> HackEgo is best at grinding
21:38:07 <ais523> hmm… so I conclude from this that part of the reason omnipotence does so much better than the other top programs is that it doesn't have issues with short tape lengths
21:38:59 <Sgeo> @hoogle Char -> Int
21:38:59 <lambdabot> Data.Char digitToInt :: Char -> Int
21:39:00 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
21:39:02 <fizzie> Hrm... the "absolute values" plot for it has numbers from (about) -24 to 12; that sounds a bit suspicious.
21:39:49 -!- augur has joined.
21:40:05 <ais523> coppro: it's a new BF Joust innovation, and it wins "fairly", mostly (although it'd be hurt if people used timer clears more often even when they had no reason to suspect defence)
21:40:34 <fizzie> The others have negative values there too. Hrm, perhaps I have broken it.
21:41:10 <ais523> the absolute tape value plot is interesting because it shows strategy
21:41:19 <ais523> most programs have their flags near 128
21:41:32 <ais523> anticipation2 does synchronization, so its flag tends to be really low when it wins
21:41:56 <ais523> and omnipotence defends but doesn't synchronize, so its flag is averaging approximately 64 (i.e. pretty much a random value)
21:42:41 <fizzie> Yes, the overall average (plot_tapeabs) version seems to work, the numbers are nonnegative; but the per-program versions I probably have managed to break.
21:42:48 <fizzie> I did refactor some repeated code out of there.
21:44:41 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: list: not found
21:47:26 <fizzie> Yes, I seem to have managed to drop an "abs" out.
21:47:39 <Sgeo> I hate monad stacks I hate monad stacks I hate monad stacks
21:47:50 <Sgeo> And after pressing Enter, I tried to Ctrl-S to save IRC
21:49:17 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
21:50:04 <oerjan> `run sed -i 's/shachaf //' bin/list # It's getting annoying
21:50:12 <fizzie> Is there a `delist / `unlist already, incidentally?
21:51:51 <Sgeo> Oh crud I am lost in a monad stack
21:52:22 <monqy> advice: dont do that
21:52:27 <oerjan> Sgeo: you are not supposed to use explicit lift's hth
21:52:39 <Sgeo> Not done writing this function, but http://hpaste.org/82314
21:52:45 <Sgeo> I think I need to use liftIO somewhere
21:52:58 <Sgeo> The function itself returns a StateT InterpState IO ()
21:52:58 <monqy> what's the signature of interpret'
21:53:06 <Sgeo> interpret' :: [TFCommand] -> StateT InterpState IO ()
21:53:11 <oerjan> Sgeo: modify takes just one argument
21:53:29 <Sgeo> Yeah, that part's also still in progress
21:53:54 <Sgeo> But I think I need to fit a liftIO near the getChar
21:54:04 -!- dessos has quit (Quit: leaving).
21:54:34 -!- Taneb has quit (Quit: Leaving).
21:54:39 <oerjan> shachaf: yw, even if you could have done it yourself instead of messing it up every time
21:55:21 -!- dessos has joined.
21:59:08 <Sgeo> `welcome dessos
21:59:11 <HackEgo> dessos: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
22:02:22 <oerjan> * boily checks his calendar. hm. not Friday yet. <-- good chap.
22:07:19 -!- augur has quit (Remote host closed the connection).
22:08:18 <FreeFull> What is the cleanest way to map over the second element of a tuple?
22:08:52 <oerjan> <Slereah_> Phantom_Hoover your british is showing <-- but naff is such a cute word!
22:09:07 <oerjan> FreeFull: second from Control.Arrow
22:09:37 <Phantom_Hoover> oerjan, it's the perfect word to describe inoffensively bad things"
22:10:52 <oerjan> FreeFull: if you're doing deeper stuff, maybe you should look at lens.
22:11:13 <lambdabot> (Functor f, Field2 s t a b, Indexable Int p) => p a (f b) -> s -> f t
22:11:49 <oerjan> if i only remembered the names
22:11:58 <FreeFull> second is just \f (a,b) -> (a,f b) right?
22:12:02 -!- Phantom_Hoover has quit (Quit: Leaving).
22:12:12 <oerjan> FreeFull: on the (->) Arrow, yes >:)
22:12:14 -!- Phantom_Hoover has joined.
22:12:35 <FreeFull> oerjan: Does anyone use any other Arrows?
22:12:37 <lambdabot> (Integral e, Num a, MonadState s m) => ASetter' s a -> e -> m ()
22:13:04 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
22:13:04 <oerjan> FreeFull: i think zzo38 uses Kleiski and probably some others do too
22:13:44 <boily> oerjan: dates are complex. time is hard. I need periodic sanitic realitic checks.
22:13:47 <oerjan> what's the lens equivalent of modify
22:14:07 <oerjan> boily: especially on the 13th, no?
22:14:12 <FreeFull> http://en.wikipedia.org/wiki/Arrow_%28computer_science%29 This article seems to have been written by Haskellers
22:14:56 <oerjan> FreeFull: probably, i'm not sure if anything but Haskell uses them
22:15:26 <oerjan> they're kind of not mathematically pretty like monads are
22:15:44 <oerjan> they're sort of a chimera of Category and Applicative
22:16:19 -!- nooodl_ has joined.
22:16:37 <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:16:54 <FreeFull> boily: That'd be a retarded SCP
22:17:27 <coppro> `addquote <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:30 <HackEgo> 963) <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:55 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
22:17:57 <oerjan> more readable alternative
22:18:06 <nooodl_> wow i'm reading _2 as (-2) "thanks apl"
22:18:18 <FreeFull> I think I'll just import Control.Arrow (second)
22:18:28 <boily> nooodl_: friday thirteens.
22:18:32 <shachaf> > over theSecondOne succ (1,2)
22:18:35 <oerjan> nooodl_: hm i'm not, even if i've been using it that way all the time while writing Fueue
22:18:45 <FreeFull> shachaf: we aren't trying to make it into English
22:18:55 <nooodl_> > over theSecondOne succ (1,2,3)
22:19:06 <oerjan> (Fueue doesn't have _, but i needed something to distinguich negative numbers from - positivenumber)
22:19:46 <nooodl_> i'm, how can that even work in haskell
22:19:53 <lambdabot> (Enum b, Field2 s t b b) => s -> t
22:20:23 <FreeFull> > liftIO putStr "a" :: Maybe String
22:20:25 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:37 <FreeFull> > (liftIO putStr "a") :: Maybe String
22:20:39 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:46 <Sgeo> Maybe is not a MonadIO
22:20:51 <Sgeo> Also, bad parenthization
22:20:58 <Sgeo> liftIO $ putStr "a"
22:21:11 <FreeFull> > (liftIO $ putStr "a") :: Maybe ()
22:21:13 <lambdabot> No instance for (Control.Monad.IO.Class.MonadIO Data.Maybe.Maybe)
22:21:29 <oerjan> FreeFull: you can only liftIO into monads that are built on top of IO
22:21:47 <FreeFull> > (liftIO $ putStr "a") :: MaybeT (IO a)
22:21:49 <lambdabot> Not in scope: type constructor or class `MaybeT'
22:23:08 <FreeFull> I'm guessing there is an instance MonadIO a => MonadIO MaybeT a
22:23:54 <oerjan> boily: it's a little known fact that everyone dies every Friday the 13th and is resurrected with partial amnesia the next morning
22:24:20 <boily> you sure of that? I have no memories of it.
22:26:05 <oerjan> > over _2 succ [1,2,3]
22:26:07 <lambdabot> No instance for (Control.Lens.Tuple.Field2 [t0] a0 b0 b0)
22:26:15 <boily> next time, I'll write myself a post-it.
22:26:53 <oerjan> boily: there might also be a few things replaced or missing, hth
22:27:54 <oerjan> boily: also you cannot write a post-it when you are dead, duh
22:28:11 <boily> oerjan: good point.
22:29:33 <boily> that means I nead to get back my cloneduino from my brother, and implement some contraption with it that will write to a post-it when I'm dead, then wrap the precious slip into a safe, then lock the aforementioned safe in a secret underground vault.
22:30:46 <lambdabot> (Conjoined p, Effective m r f) => (s -> m a) -> p a (f a) -> p s (f s)
22:32:18 <oerjan> i'm not sure that's the act from lens
22:32:26 <lambdabot> The operator `Control.Lens.Action.act' [infixl 9] of a section
22:32:41 <lambdabot> (Field2 s t a b, Indexable Int p) => p a b -> s -> t
22:35:31 <Sgeo> Hmm, my currently envisioned primCompiler has too many jobs I think
22:36:01 <Sgeo> Translating a string of Trustfuck into TFCommands, and then outputting the appropriate Haskell
22:39:19 <Sgeo> I could call primTranslation the translation of Trustfuck->[TFCommand]
22:42:01 <lambdabot> No instance for (Control.Monad.State.Class.MonadState s0 ((->) a0))
22:46:36 -!- ais523 has quit.
22:48:01 <Sgeo> Oh hey there's a J 8 beta
22:53:33 <nooodl_> oh apparently there's just some boring GUI changes
22:54:21 -!- copumpkin has quit (Ping timeout: 252 seconds).
22:55:01 -!- copumpkin has joined.
22:56:55 -!- augur has joined.
22:59:37 <Gregor> Vorpal: ARRRRRRRRRRRRGH
22:59:41 <Gregor> Vorpal: PYTHOOOOOOOOON
23:00:01 <Sgeo> I've only begun hating Python recently
23:00:42 <Gregor> Vorpal: umlbox mudem bug fixed.
23:04:02 <oerjan> <Gregor> Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there. <-- funniest thing, not a single thing he did showed up in the repository
23:04:07 <lambdabot> Prelude catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> System.IO.Error catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> Control.OldException catch :: IO a -> (Exception -> IO a) -> IO a
23:04:40 <Sgeo> :t (Just <$> getChar) `catch` \_ -> return Nothing
23:06:00 * oerjan is not sure how he feels about using catch just to check for eof
23:06:01 <Sgeo> grr typing } does not mean I want to deindent
23:06:09 <Sgeo> What's a better way to check for eof?
23:06:32 <oerjan> admittedly catch may be shorter
23:08:27 <oerjan> oh or just isEOF for stdin
23:08:55 <lambdabot> System.IO.Error isEOFError :: IOError -> Bool
23:09:03 <nooodl_> "deindenting" should be called "exdenting" imo
23:09:55 <monqy> have I heard "dedent"??? maybe.
23:10:26 <nooodl_> i've heard "dedent" but "de-" isn't the opposite of "in-"...
23:10:27 <oerjan> monqy: DEDENT is a lexical token in python, iirc
23:10:57 <oerjan> used for implementing its indentation blocks
23:11:28 <shachaf> what does it use for implementing its dedentation blocks
23:13:22 <Sgeo> oerjan, ok, using isEOF
23:13:37 <Sgeo> What I wrote is more verbose, but using catch like that makes me feel icky
23:14:25 <oerjan> @hoogle Bool -> m a -> m (Maybe a)
23:14:25 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:14:26 <lambdabot> Data.Time.Calendar.MonthDay monthAndDayToDayOfYearValid :: Bool -> Int -> Int -> Maybe Int
23:14:26 <lambdabot> Control.Monad unless :: Monad m => Bool -> m () -> m ()
23:15:23 <oerjan> gah when and unless are the closest but don't give maybes
23:16:05 <Sgeo> @hoogle Maybe a -> a -> a
23:16:06 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
23:16:06 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:16:34 <oerjan> Sgeo: you need something which starts with a Bool, something haskell standard libraries sorely lacks
23:16:37 <shachaf> oerjan: To be fair Bools are evil.
23:16:51 <Sgeo> oerjan, it's fine, I just used do notation
23:17:11 <Sgeo> I could also use >>= and a lambda
23:17:17 <shachaf> @pl \x m -> if x then Just <$> m else pure Nothing
23:17:17 <lambdabot> flip flip (pure Nothing) . (. (Just <$>)) . if'
23:17:20 <Sgeo> Nothing -> liftIO $ do
23:17:20 <Sgeo> if eof then Just <$> getChar else return Nothing
23:17:32 <shachaf> @ty \x m -> if x then Just <$> m else pure Nothing
23:17:34 <lambdabot> Applicative f => Bool -> f a -> f (Maybe a)
23:17:50 <oerjan> Sgeo: sure. it's just awful that afaik there is no way to do it that is shorter than your catch expression
23:18:19 <oerjan> well not _quite_ shorter but...
23:18:37 <monqy> @ty \case { True -> "hello"; False -> "goodbye" }
23:19:01 <oerjan> monqy: old lambdabot is old
23:19:27 <shachaf> do you have anything to say about galois connections today
23:20:29 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= maybe (return Nothing) getChar . guard
23:20:31 <lambdabot> Couldn't match expected type `a0 -> IO (Maybe a1)'
23:20:31 <lambdabot> In the second argument of `maybe', namely `getChar'
23:21:04 <oerjan> :t maybe (return Nothing) getChar . guard
23:21:06 <lambdabot> Couldn't match expected type `a0 -> m0 (Maybe a1)'
23:21:06 <lambdabot> In the second argument of `maybe', namely `getChar'
23:22:40 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= fromMaybe (return Nothing). (getChar <$) . guard
23:22:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:22:50 <oerjan> this isn't going very well
23:22:58 <oerjan> :t (getChar <$) . guard
23:22:59 <lambdabot> (Functor f, MonadPlus f) => Bool -> f (IO Char)
23:23:39 <oerjan> :t fromMaybe (return Nothing) . (getChar <$) . guard
23:23:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:24:29 <Sgeo> :t String -> IO a
23:24:36 <Sgeo> @hoogle String -> IO a
23:24:37 <lambdabot> Foreign.C.Error throwErrno :: String -> IO a
23:24:37 <lambdabot> Network.Socket.Internal throwSocketError :: String -> IO a
23:24:37 <lambdabot> System.Environment withProgName :: String -> IO a -> IO a
23:24:42 <lambdabot> Control.Exception.Base throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.Exception throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.OldException throw :: Exception e => e -> a
23:24:44 -!- Nisstyre_ has changed nick to Nisstyre.
23:25:06 <oerjan> :t fromMaybe (return Nothing)
23:25:08 <lambdabot> Monad m => Maybe (m (Maybe a)) -> m (Maybe a)
23:25:20 <Sgeo> Hmm. What should happen when a compiler in the middle of the compiler stack attempts to do normal output?
23:26:08 -!- epicmonkey has quit (Ping timeout: 255 seconds).
23:26:51 <Sgeo> "Chaos" is easily achieved by just doing normal output
23:27:36 <Sgeo> Imagine something randomly outputting in the middle of creating x86 binary for no good reason
23:28:20 <Sgeo> Well, any program that does that is ... certainly broken
23:28:55 <Sgeo> The question is, do I throw an error?
23:29:10 <Sgeo> Also, I have separate sorts of output: Output via . and output via : and !
23:29:26 <Sgeo> I've been wondering whether to separate input out in that fashion
23:29:56 <Sgeo> That is, any compiler in the middle of the compiler stack that uses , rather than codein ; would see standard input
23:30:03 <Sgeo> Rather than code in the language they were expecting
23:30:07 <Sgeo> Possibly causing havock
23:30:32 <Sgeo> Right now though I'm just going to keep implementing the spec as-is
23:31:14 <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:32:23 <oerjan> fizzie: making its lamarck on game history, surely
23:32:33 <FreeFull> How would you rewrite sum . map (\(x,y) -> if x == y then 1 else 0) $ zip not to use $ like that?
23:33:13 <Sgeo> http://hpaste.org/82320
23:33:55 <Sgeo> I like how -> and <- align. I am easily amused
23:34:29 <oerjan> FreeFull: in any case, that would use . not $
23:35:05 <FreeFull> zip is a function of two arguments
23:35:19 <oerjan> so .: which is not standard
23:36:08 <oerjan> :t sum .: zipWith (uncurry (==))
23:36:10 <lambdabot> Couldn't match expected type `b1 -> b0' with actual type `Bool'
23:36:10 <lambdabot> Expected type: b2 -> b2 -> b1 -> b0
23:36:23 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:36:32 <oerjan> CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALE
23:36:45 <FreeFull> What I meant was something like \x -> sum . zipWith (\x y -> if x == y then 1 else 0) x
23:37:34 <oerjan> :t sum .: zipWith (\x y -> if x == y then 1 else 0)
23:37:37 <fizzie> oerjan: Apparently the game was not in fact good. :/ (But the Ghost Crab did evolve to Fiddler Crab and then the Yeti Crab and then the Coconut Crab.)
23:38:51 <fizzie> Phantom_Hoover: [01:31:14] <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:39:15 <nooodl_> length . filter (uncurry (==)) . zip
23:39:39 <FreeFull> :t (length . filter (uncurry (==)) . zip)
23:39:40 <lambdabot> Couldn't match expected type `[(b0, b0)]'
23:39:41 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:44 <FreeFull> :t (length . filter (uncurry (==)) .: zip)
23:39:46 <lambdabot> Couldn't match expected type `[[(b0, b0)]]'
23:39:46 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:46 <lambdabot> Expected type: [a0] -> [[(b0, b0)]]
23:40:28 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:40:35 <lambdabot> (Functor f1, Functor f) => (a -> b) -> f (f1 a) -> f (f1 b)
23:40:47 <oerjan> that's the portable version
23:40:47 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:41:02 <monqy> cale cale cale cale cale
23:42:10 <oerjan> :t length . filter id . zipWith (==)
23:42:12 <lambdabot> Couldn't match expected type `[Bool]'
23:42:31 <oerjan> :t (length . filter id) .: zipWith (==)
23:42:55 <nooodl_> i have no idea when to use (.).(.) it's so stupid
23:43:10 <monqy> that's why they call it (.:)
23:43:27 <FreeFull> :t (.).(.) (length . filter id) (zipWith (==))
23:43:29 <lambdabot> Couldn't match expected type `a0 -> b0' with actual type `Int'
23:43:30 <oerjan> :t (length . filter id .) . zipWith (==)
23:43:31 <lambdabot> The operator `.' [infixr 9] of a section
23:43:31 <lambdabot> must have lower precedence than that of the operand,
23:43:40 <oerjan> :t ((length . filter id) .) . zipWith (==)
23:43:48 <monqy> (∴) is maximally stupid, sorry
23:44:03 <monqy> also maximally stupid
23:44:23 <shachaf> isomorphic up to isomorphic isomorphism
23:44:25 <oerjan> if they'd only made . associate the other way, the innermost parentheses would be unnecessary
23:44:47 <lambdabot> Data.Functor (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:47 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:54 <shachaf> lambdabot: plz support unicode again.........
23:44:58 <monqy> i don't have not tilde on my compose key :(
23:45:05 <lambdabot> Text.PrettyPrint.HughesPJ Chr :: Char -> TextDetails
23:45:05 <lambdabot> Text.PrettyPrint Chr :: Char -> TextDetails
23:45:12 <shachaf> 2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO [≇]
23:45:15 <shachaf> 2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO [≆]
23:45:18 <shachaf> 2245 APPROXIMATELY EQUAL TO [≅]
23:45:30 <Sgeo> @hoogle Int -> Char
23:45:30 <lambdabot> Data.Char intToDigit :: Int -> Char
23:45:30 <lambdabot> Data.Text index :: Text -> Int -> Char
23:45:35 <nooodl_> that reminds me of my favorite thingy in unicode
23:45:36 <shachaf> it's missing ACTUALLY BUT NOT APPROXIMATELY EQAUL TO
23:45:36 <Sgeo> @hoogle Char -> Int
23:45:37 <lambdabot> Data.Char digitToInt :: Char -> Int
23:45:37 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
23:46:11 <nooodl_> wow shachaf how did you know
23:46:16 <nooodl_> i was just looking it up. ⋚
23:46:29 <shachaf> nooodl_: "im an expert in knowing things"
23:47:00 <nooodl_> ⪠ wow these are trainwrecks
23:47:23 <nooodl_> ⪢ i can't even see this one
23:47:25 <shachaf> 2A76 THREE CONSECUTIVE EQUALS SIGNS [⩶]
23:47:29 <nooodl_> but i trust that it looks really nice
23:47:44 <nooodl_> i can't see that one either but that's actually good
23:48:12 <shachaf> nooodl_: the good thing about THREE CONSECUTIVE EQUALS SIGNS is that it goes way out of the box into the next character
23:48:16 <nooodl_> because i imagine that they're just haphazardly smashed into a single unicode character "box"
23:48:32 <shachaf> 2AA4 GREATER-THAN OVERLAPPING LESS-THAN [⪤]
23:48:39 <nooodl_> what's a good font that supports all of these
23:48:57 <shachaf> I use the font called "Monospace"
23:49:08 <oerjan> <Sgeo> @hoogle Int -> Char <-- tip: while ord and chr exist, i usually don't bother importing them and just use fromEnum and toEnum instead.
23:49:19 <shachaf> 2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL [⪔]
23:49:19 <nooodl_> however xchat2 does all kinds of stupid things
23:49:31 <shachaf> 2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT [⪄]
23:50:09 <nooodl_> i'm installing a unicode font so i can fully enjoy all of these
23:50:10 <Sgeo> undefined is going to be so useful
23:50:11 <HackEgo> Linux version 3.7.0-umlbox (root@codu.org) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 Wed Feb 13 23:30:40 UTC 2013
23:50:12 <kmc> it's great how Unicode has this whole combining-characters mechanism but then they throw in 3865927348 pre-composed characters as well
23:50:17 <Sgeo> Nice to be able to compile incomplete code etc
23:50:19 <Gregor> `curl http://google.com/
23:50:21 <HackEgo> gcc: '-V' option must have argument
23:50:22 <HackEgo> % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
23:50:24 <HackEgo> Using built-in specs. \ Target: x86_64-linux-gnu \ Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecd
23:50:30 <Gregor> `run curl http://google.com/ 2> /dev/null
23:50:32 <HackEgo> <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> \ <TITLE>301 Moved</TITLE></HEAD><BODY> \ <H1>301 Moved</H1> \ The document has moved \ <A HREF="http://www.google.com/">here</A>.
23:50:33 <shachaf> 2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE [⩩]
23:50:43 <Lumpio-> So how long to U+1672A RUBBER CHICKEN WITH A PULLEY IN THE MIDDLE
23:50:44 <kmc> Sgeo: did you see that GHC now has a feature to defer type errors to runtime
23:50:46 <Gregor> OK, HackEgo's network access should be considerably more reliable now.
23:50:54 <FreeFull> You want to have Symbola installed
23:50:55 <kmc> an ill-typed term is replaced with error "whatever"
23:50:58 <Sgeo> I'm still on GHC 6.something
23:51:11 <Sgeo> I'm on Ubuntu 10.10
23:51:16 <shachaf> it's had that feature for basically forever..........
23:51:23 <kmc> shachaf: o?
23:51:23 <FreeFull> The Glorious Glasgow Haskell Compilation System, version 7.6.2
23:51:28 <HackEgo> ghc: unrecognised flags: --version` \ Usage: For basic information, try the `--help' option.
23:51:52 <Sgeo> What I really want is to not lose bindings I make when I :r
23:52:07 <kmc> eternal september
23:52:16 <FreeFull> What I want is a way to remove certain bindings in GHCi
23:52:26 <kmc> what i want is a god that stays dead, not plays dead
23:53:18 <shachaf> what's an adjunction between monoids like
23:53:53 <shachaf> since basically every pair of functors between monoids is an adjunction, or what??
23:53:53 <kmc> shachaf: so easy
23:54:04 <kmc> FreeFull: what does "abs int" mean?
23:54:21 <FreeFull> kmc: Any negative value becomes positive before any other action is taken
23:54:42 <kmc> no, because 0 + (-5) ≠ -5
23:54:43 <oerjan> <Sgeo> Nice to be able to compile incomplete code etc <-- not in the platform yet i think, but newest ghc has some nice new features for this
23:54:51 <kmc> so 0 is not an identity
23:55:18 <kmc> but the nonnegative integers under 0,+ are a monoid
23:55:21 <Sgeo> let inVal = fromMaybe -1 (fmap ord maybeIn)
23:55:28 <Sgeo> inVal should be an Int after that, right?
23:55:45 <Sgeo> :t fromMaybe -1 (fmap ord Nothing)
23:55:46 <lambdabot> (Num (Maybe Int -> a -> Maybe a -> a), Num (a -> Maybe a -> a)) => a -> Maybe a -> a
23:56:07 <oerjan> <Gregor> OK, HackEgo's network access should be considerably more reliable now. <-- yay!
23:56:36 <kmc> :t fromMaybe -1
23:56:38 <lambdabot> Num (a -> Maybe a -> a) => a -> Maybe a -> a
23:56:38 <lambdabot> (Functor f, Ord (f ())) => f a -> f a -> Ordering
23:56:38 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:56:39 <kmc> :t fromMaybe (-1)
23:56:45 <FreeFull> > fromMaybe -1 (fmap ord Nothing)
23:56:47 <lambdabot> No instances for (GHC.Num.Num (a0 -> Data.Maybe.Maybe a0 -> a0),
23:56:56 <nooodl_> FreeFull: so mempty is 0, and mappend is (\x y -> abs x + abs y)?
23:56:57 <kmc> :t fromMaybe (-1) (fmap ord Nothing)
23:57:16 <Sgeo> Dear Haskell: Please switch to using _ for negatives
23:57:25 -!- augur has quit (Remote host closed the connection).
23:57:27 <FreeFull> nooodl_: kmc already showed it isn't a monoid
23:57:38 <Sgeo> Yay! I get a different error now!
23:58:26 <oerjan> <kmc> what i want is a god that stays dead, not plays dead <-- are you sure he's playing dead, and that you weren't just not invited to the game
23:59:26 <nooodl_> http://en.wikipedia.org/wiki/Group_(mathematics)#Generalizations looks like it's indeed a semigroup. (hey, this table is cool)
23:59:40 <boily> oerjan: again with dead people. are you a zombie or something?